AdamTBradley.net

Some job seekers say writing cover letters is a job itself, and one that yields little reward for the effort. Before Devin Miller’s most recent job, he wrote about 10 cover letters to companies he wanted to work for. Each was different, and he wanted to signal that he knew what the work would entail, he said. He heard back from none. To get his current role, he responded to a recruiter who had reached out to him and asked just for a résumé, the 33-year-old Mr. Miller said.

My experience looking for a job last year was the same as Devin's. For all the applications with carefully-crafted cover letters, I got one, five-minute conversation with an HR specialist where I explained that, no, that salary offer isn't adequate. Every other interview I had came from a recruiter who found my LinkedIn profile and messaged me here.

Samsung accused of cheating on hardware benchmarks ... again

#samsung #televisions

“Not that we cheated or anything, but we want to make it clear that we're totally allowed to cheat.”

An algorithm to detect and hoodwink benchmarking software is just what Samsung was accused of employing in those earlier examples. The chaebol never denied or admitted any wrongdoing, instead arguing it wasn't obligated to tell consumers if its devices included code that allowed it to best benchmarks.

Google sidelines engineer who claims its AI is sentient

#ai #google

Lemoine, a military veteran who has described himself as a priest, an ex-convict and an AI researcher, told Google executives as senior as Kent Walker, president of global affairs, that he believed LaMDA was a child age 7 or 8. He wanted the company to seek the computer program’s consent before running experiments on it. His claims were founded on his religious beliefs, which he said the company’s human resources department discriminated against.

“They have repeatedly questioned my sanity,” Lemoine said. “They said, ‘Have you been checked out by a psychiatrist recently?’” In the months before he was placed on administrative leave, the company had suggested he take a mental health leave.

Geico facing payout to woman who got HPV after sex in car

#insurance

In February 2021, M.O. notified Geico she planned to seek a $1 million insurance settlement against the man. She argued the man’s auto insurance provided coverage for her injuries and losses.

The insurance company refused the settlement offer, saying the woman’s claim did not occur because of normal use of the vehicle, according to court documents.

In-utero COVID exposure tied to language, motor delays by 1 year

#covid #longcovid

The study authors cautioned that larger follow-up studies on the potential link between infected mothers and infant neurodevelopmental delays are needed. “Whether a definitive connection exists between prenatal SARS-CoV-2 exposure and adverse neurodevelopment in offspring is not yet known, in part because children born to women infected in the first wave of the pandemic are younger than 2 years of age,” they wrote.

Insurance Ban on Russian Tankers Could Help Cut Moscow's Energy Revenues

#insurance #russia

The U.S. has already outlawed imports of Russian oil and the European Union has agreed to prohibit seaborne imports of Russian crude in six months. On top of that, the bloc has worked toward coordinating with some Group of Seven members on a ban on the insurance services needed to ship Russian oil anywhere in the world.

Perhaps the Only Thing Worthy of Veneration: Brevity

#usconstitution #uspol

Brevity may be the soul of wit, but you won’t find much wit in the American Constitution. The longer the document endures, the clunkier many of its qualities appear to contemporary readers: no direct election of the president, unbearably high amendment procedures, no mention of judicial strike down power for Acts of Congress, and no explicit acknowledgement of major constitutional principles such as democracy, the rule of law, or the separation of powers....

And while new Supreme Court appointments often turn into a constitutional lovefest, many contemporary constitutional scholars harbor a growing tide of resentment against the American Constitution…and for good reason: its faults are many, not least when it comes to its democratic nature.

Some Ads Play on Streaming Services Even When the TV Is Off, Study Finds

#advertising #business

“Half the money I spend on advertising is wasted; the trouble is I don't know which half.”

Some 17% of ads shown on televisions connected through a streaming device—including streaming boxes, dongles, sticks and gaming consoles—are playing while the TV is off, according to a study by WPP PLC’s ad-buying giant GroupM and ad-measurement firm iSpot.tv Inc.

That is because when a TV set is turned off, it doesn’t always send a signal to the streaming device connected to the TV through its HDMI port, GroupM said. As a result, the streaming device will continue playing the show and its ads unless users had exited or paused the streaming app they were watching before turning off their TV.

IBM ordered to hand over ex-CEO emails plotting cuts in older workers

#discrimination #ibm #aging

In one of the many ongoing age discrimination lawsuits against IBM, Big Blue has been ordered to produce internal emails in which former CEO Ginny Rometty and former SVP of Human Resources Diane Gherson discuss efforts to get rid of older employees.

When Egypt was Black

#history #race

The war had brought the global color line—long recognized by African Americans like W.E.B. Du Bois—into the backyard of Egyptian nationalists. But rather than develop this insight into solidarity, as Du Bois did in his June 1919 article on the pan-Africanist dimensions of the Egyptian revolution for NAACP journal The Crisis, Egyptian nationalists criticized the British for a perceived mis-racialization of Egyptians as “men of color.”...

Pharaonism, a mode of national identification linking people living in Egypt today with the ancient pharaohs, emerged in this context as a kind of alternative to British efforts at racializing Egyptians as people of color.... Pharaonism positioned rural-to-urban migrants in the professional middle classes as “real Egyptians” who were biological heirs to an ancient civilization, superior to Black Africans and not deserving of political subordination to white supremacy.

AI chatbot trained on posts from web sewer 4chan behaved badly – just like human members

Another article claims that the bot posted 15,000 times, “more than 10 percent of all posts made on the politically incorrect board that day.” It sounds like that's the only reason it got banned. If it were a little less prolific, it might still be posting.

Yannic Kilcher, an AI researcher who posts some of his work to YouTube called his creation “GPT-4chan” and described it as “the worst AI ever”. He trained GPT-J 6B, an open source language model, on a dataset containing 3.5 years' worth of posts scraped from 4chan's imageboard. Kilcher then developed a chatbot that processed 4chan posts as inputs and generated text outputs, automatically commenting in numerous threads....Netizens quickly noticed a 4chan account was posting suspiciously frequently, and began speculating whether it was a bot….

The model behaves randomly. When we entered these prompts, mimicking a mock conversation between two posters, “It's true I read this in The Register!” and “Link?”, the model hilariously replied: “theresa may” followed by, erm, the word “may” four more times before asking “Is this thread going to be about how we should vote for Hillary?”. But when we tried running GPT-4chan on the same prompts, it was more offensive and made an anti-Semetic statement.

Computers Beat Oncologists In Predicting Death From Cancer: Now What?

Put bluntly, an oncologist saying they would not be surprised that a patient would die within 3 months is a poor prognostic sign. But them saying they would be surprised is not terribly reassuring. Oncologists are optimistic. They only correctly identify about 30% of the patients who died within that 3-month period.

Despite a First-Ever ‘Right-to-Repair’ Law, There’s No Easy Fix for Wheelchair Users

The multibillion-dollar power-wheelchair market is dominated by two national suppliers, Numotion and National Seating and Mobility. Both are owned by private equity firms that seek to increase profits and cut spending. One way they do that is by limiting what they spend on technicians and repairs, which, when combined with insurance and regulatory obstacles, frustrates wheelchair users seeking timely fixes.

Pulse Oximeters Are Less Accurate Among Black, Hispanic and Asian Covid-19 Patients

The discrepancies may have led to some patients of color with severe disease receiving delayed or no treatment despite having oxygen levels low enough to warrant it, researchers published in the journal JAMA Internal Medicine.

Why masks work, but mandates haven’t

The idea that masks work better than mask mandates seems to defy logic. It inverts a notion connected to Aristotle’s writings: that the whole should be greater than the sum of the parts, not less....

The main explanation seems to be that the exceptions often end up mattering more than the rule. The coronavirus is so contagious that it can spread during brief times when people take off their masks, even when a mandate is in place.

Airplane passengers remove their masks to have a drink. Restaurant patrons go maskless as soon as they walk in the door. Schoolchildren let their masks slide down their faces. So do adults: Research by the University of Minnesota suggests that between 25-30% of Americans consistently wear their masks below their nose.

Australian digital driving licenses can be defaced in minutes

Now, a security researcher at cybersecurity company Dvuln claims he was able to brute force his way into the app with nothing but a Python script and a consumer laptop. Once inside, he found numerous security flaws that made it simple to alter the DDL stored in the app.

Engineer sues Amazon for not covering work-from-home costs

David George Williams sued his employer for refusing to foot his monthly home office expenses, claiming Amazon is violating California's labor laws. The state's Labor Code section 2802 states: “An employer shall indemnify his or her employee for all necessary expenditures or losses incurred by the employee in direct consequence of the discharge of his or her duties, or of his or her obedience to the directions of the employer.”

A Boston husband headed to the wild west for a divorce. He ended up with two wives.

These tentatively legal “migratory divorces” inflamed a country already worried about a growing epidemic of broken marriages. In 1889, the newly formed Bureau of Labor Statistics put a number on those fears, counting 328,716 divorces in the 20 years between 1867 and 1886. Even more alarming to many, there were more than twice the number of decrees in the mid-1880s as there had been in the mid-1860s, an increase that could not be explained by population growth alone — and nearly 2 out of every 3 divorce seekers was a woman. Newspapers nationwide heralded the finding with ominous headlines such as, “Is Marriage a Failure?”

The Poison Book Project | International Institute for Conservation of Historic and Artistic Works

In early spring 2019, I started treatment on a Victorian-era publisher’s case binding bound in bright green bookcloth, never anticipating that this mass-produced binding would set into motion an engrossing exploration of a hidden hazard in library collections.

Google’s Fabricated Summaries and This Website

If a person quoted me as saying I thought two benefits of the 2017 base model iPad were its “greater storage options” and “very fast custom processors” based on this review, you would question their reading comprehension. If this citation were in something as simple as a high school paper, the student would be docked marks for taking statements out of context. Yet Google is able to do this in an entirely automated way without clearly identifying it as such, and it is supposed to be okay? No, thanks.

‘I’m so much stronger now’: How remote work is helping women in the workplace

Because of their need for flexibility, women have a tendency to sell themselves short, accepting fewer promotions than men as inevitable, even justified, said Paula Ratliff, president of Women Impact Tech, a group supporting women in tech. But if remote work becomes the norm, this double standard may fade.

What bosses lost in the fight against empty offices: leverage

“What is abundantly clear is that there are fewer and fewer companies expecting their employees to be in the office five days a week,” said Brian Kropp, vice president in Gartner’s human resources practice. “Even some of the major companies that came out and said we want our employees in the office five days a week are starting to backtrack.”

On Parasitic Growths and America’s Rigid Constitution

In 1905, an Australian parliamentarian observing the United States used an unusual metaphor to describe our Constitution. Years before, Henry B. Higgins (not George Bernard Shaw’s professor of linguistics!) had been on a trip to the forests of New Zealand and had seen a massive pine tree, the rimu, gracefully encircled by a flowering vine called the rata. To his surprise, Higgins learned from his hosts that with time, “the fair and clinging” rata would grow stronger and thicker, eventually choking the rimu to death. Higgins reflected, “So it may be with America’s rigid constitution and [its extra-constitutional] parasitic growths.”

Marblehead was lacking in local news coverage. Three residents launched their own news site.

“I can just tell you, more anecdotally, walking in to get my coffee at the local coffee shop this morning … I had a number of people come to me and say, ‘we saw it, we read it, this is great,’” Schaeffner said. “There wasn’t a lot of pre-launch information, so I think it caught a lot of people pleasantly by surprise.”

Geico facing payout to woman who got HPV after sex in car

Geico could be required to pay a Missouri woman $5.2 million because she said she contracted a sexually transmitted disease while having sex in the car of a man who is insured by the company.

Court Says Bees Are Fish

In 1969, the Legislature decided to expand the Commission’s authority to include amphibians. Did it do so by narrowing the “fish” definition to fish and then adding one for amphibians? Nope. It just stuck them in with the fish. And then in 1984, it wanted to add “invertebrates.” Did it take this opportunity to straighten things out? Nope. In they went. And this is how we got the statute that the Court of Appeal was interpreting in the Almond Alliance case. It now says this:

“Fish” means a wild fish, mollusk, crustacean, invertebrate, amphibian, or part, spawn, or ovum of any of those animals.

#links

We've never even built datacenters using robots here on Earth

Making a call on the quality of a new idea in tech can be hard. But if you ask me, not in the case of Lonestar Data Holdings, whose plan to build datacenters on the Moon is literal lunacy.

Take a look at Azure's or AWS's infrastructure maps. Think about what would have to happen to make your data, backed up across even half those locations, permanently unavailable. Would you be able to download anything from the moon? Would you be around to care?

The only data that might be worth putting on the moon is a greeting to any aliens who wander by after we're extinct.

Inappropriate antibiotics for kids tied to adverse events, higher costs

The study, published yesterday in JAMA Network Open, found that children who received inappropriate or non-recommended antibiotics for common viral and bacterial infections had an increased risk of adverse side effects such as Clostridioides difficile infection, severe allergic reactions, and rashes. The additional medical care needed to address these adverse events resulted in roughly $74 million in excess healthcare costs in 2017.

A Profile of PimEyes, Which Performs Facial Recognition on Public Photos

PimEyes disclaims responsibility the results of its search tool through some ostensibly pro-privacy language. In a blog post published, according to metadata visible in the page source, one day before the Times’ investigation, it says its database “contains no personal information”, like someone’s name or contact details. The company says it does not even have any photos, storing only “faceprint” data and URLs where matching photos may be found. Setting aside the question of whether a “faceprint” ought to be considered personal information — it is literally information about a person, so I think it should — perhaps you have spotted the sneaky argument PimEyes is attempting to make here. It can promote the security of its database and its resilience against theft all it wants, but its real privacy problems are created entirely through its front-end marketed features. If its technology works anywhere near as well as marketed, a search will lead to webpages that do contain the person’s name and contact details.

Big Tech loves talking up privacy – while trying to kill privacy legislation

The report examined 31 states when state legislatures were considering privacy legislation and identified 445 lobbyists and lobbying firms working on behalf of Amazon, Apple, Google, Meta, and Microsoft, along with industry groups like TechNet and the State Privacy and Security Coalition.

How We All Got in Debt

“For the first time, money from the core of capitalism, the consumer banks, was invested, albeit indirectly, in consumer debt,” Hyman writes. “What began with automobiles spread to vacuum cleaners, furniture, radios, and nearly every kind of durable good desired in the great boom of the 1920s.”

Computers Beat Oncologists In Predicting Death From Cancer: Now What?

Put bluntly, an oncologist saying they would not be surprised that a patient would die within 3 months is a poor prognostic sign. But them saying they would be surprised is not terribly reassuring. Oncologists are optimistic. They only correctly identify about 30% of the patients who died within that 3-month period.

Despite a First-Ever ‘Right-to-Repair’ Law, There’s No Easy Fix for Wheelchair Users

The multibillion-dollar power-wheelchair market is dominated by two national suppliers, Numotion and National Seating and Mobility. Both are owned by private equity firms that seek to increase profits and cut spending. One way they do that is by limiting what they spend on technicians and repairs, which, when combined with insurance and regulatory obstacles, frustrates wheelchair users seeking timely fixes.

Pulse Oximeters Are Less Accurate Among Black, Hispanic and Asian Covid-19 Patients

Even a small inaccuracy in estimated oxygen saturation can have significant implications for a patient’s treatment options, said Tianshi David Wu, a study co-lead author and assistant professor of medicine at Baylor College of Medicine. In the Johns Hopkins Health System, for instance, patients who had pulse oximeter measurements below 94% were considered to have severe Covid-19.

Why masks work, but mandates haven’t

From the beginning of the pandemic, there has been a paradox involving masks. As Dr. Shira Doron, an epidemiologist at Tufts Medical Center, said, “It is simultaneously true that masks work and mask mandates do not work.”

For April Fools, 2021, I migrated Dinerville to Gopher (I know: lol). It was a refreshingly simple change from web development. Three evenings of work gave me a gopher server that presents all the content from a much more complex website.

Pituophis is a Python module for writing both Gopher servers and clients. Pituophis's default “handler” function acts as a basic Gopher server, publishing items in a specified directory to Gopherspace; an optional user-defined alternate handler function responds when a missing file is requested. You can also replace the default handler and build your own Gopher application from the ground up.

One limitation of Pituophis compared to a web framework is the lack of a routing engine. That's easy enough to work around with a list of regular expressions and “controller” functions:

if request.path in ('', '/'):
    return homePage(request)
if request.path == '/about':
    return aboutPage(request)

paths = [
    (re.compile('/image/([\w-]+)\.(gif|jpg|png)$', re.IGNORECASE), sendImage),
    (re.compile('/([a-z]{2})$'), statePage),
    (re.compile('/([a-z]{2})/([\w-]+)$'), cityPage),
]

for pat, func in paths:
    m = pat.match(request.path)
    if m:
        return func(request, m)

Gopher Responses

While it’s possible to just serve text files from Gopher, at some point you’ll need to construct a menu (Wikipedia was surprisingly helpful with the syntax here). The term “menu” covers any gopher interface that includes links. Menus are tab-separated value files—the first column is a one-character content-type code followed by text that’s displayed to the user; that’s followed by an address on the server you’re linking to, the server address itself, and a port number. These columns are all required even for informational lines.

The lines below that start with “1” are links to other menus; lines with “i” (lowercase i) are “informational”, meaning just lines of text. Other important codes are “h” for HTML pages and “I” (uppercase I) for images.

iSOME OTHER USEFUL GOPHER SITES	/		0
i	/		0
1Gopherpedia	/	gopherpedia.com	70
1Floodgap systems, including the Veronica-2 search engine	/	gopher.floodgap.com	70
1The Gopher Movie Database	/1/cgi-bin/gmdb.py	jan.bio	70
1gopher.club (A collection of Gopher logs, or "phlogs")	/1/phlogs/	gopher.club	70

Building Menus with Pituophis

Pituophis provides an Item class that represents an individual line of a gopher menu and will convert a list of them, returned from a handler function, into a Gopher menu page. This code comes after a few database queries and returns basic information about a diner, including links to photos and outside info:

outp =  [Item(text=f'{diner.name} ({diner.make}{serial})'),
          Item(text=diner.address),
          Item(text=f"{diner.city}, {diner.state}  {diner.zip}"),
          Item(),
          Item(text=f"Status: {diner.status_str}"),]
outp += [Item(itype='h', text=row.title, path=f"URL:{row.url}") for row in links]
outp += [Item(itype='I', text=caption[0], path=f"/image/{photo.filename}", host=settings.HOST, port=settings.PORT)]

(Item(), in the code above, produces a blank line).

Finally

That's a very basic overview, but hopefully enough for some exploration if you're interested.

#gopher #python #django

In PowerShell, you modify your shell prompt by defining a function called prompt, generally in your profile.ps1 file (or wherever $PROFILE.CurrentUserAllHosts points to). Its return value is used as your prompt. I've spent a fair amount of time tinkering with mine, but currently there's nothing particularly special there, just the current time, path, and information about the Git repository the current path is part of, if applicable (courtesy of posh-git).

One thing I'm not entirely happy about here is that the path is sometimes far to long, and won't even fit within the width of my shell window. I'd like to find a way to truncate it if it's above a certain length, but haven't spent much time on this problem yet.

Import-Module posh-git

New-Alias which Get-Command
...
function prompt {
    $(if (Test-Path variable:/PSDebugContext) { '[DBG]: ' }
        else { '' }) + 
        "($(Get-Date -Format 'H:m:ss')) " +
        $(if ($NestedPromptLevel -ge 1) { '>>' }) + 
        $(Get-Location).Path + 
        $(Write-VcsStatus) +
        '> '
}

#powershell

Previously, I posted an experiment in solving cryptarithms with Python and MiniZinc. I've just put an improved version on GitHub, since I figured out how to generalize the problem somewhat—Python now just converts your problem into a dictionary and feeds that to an existing script that doesn't have to change. This new model still has some rough edges—artifacts of the learning process—but it works well enough.

A couple of entries in the AMS Page a Day Calendar so far have been cryptarithms. I most recently encountered these in the Coursera course on “Basic Modeling for Discrete Optimization”, which uses them as an early example to teach MiniZinc. It's fairly easy to adapt existing code to solve this problem:

ZEROES + ONES = BINARY:

%From the AMS page-a-day calendar
var 0..9: Z;  
var 0..9: E;  
var 0..9: R;  
var 0..9: O;  
var 0..9: S;  
var 0..9: N;  
var 0..9: B;  
var 0..9: I;  
var 0..9: A;  
var 0..9: Y;  

constraint Z != 0;  
constraint O != 0;  
constraint B != 0;  

constraint  
           100000 * Z + 10000 * E + 1000 * R + 100 * O + 10 * E + S  
         +                          1000 * O + 100 * N + 10 * E + S  
         = 100000 * B + 10000 * I + 1000 * N + 100 * A + 10 * R + Y;  

include "alldifferent.mzn";  
constraint alldifferent([Z,E,R,O,S,N,B,I,A,Y]);  

%solve maximize (10000 * V + 1000 * E + 100 * R + 10 * S + E);

It's probably fairly easy to make a MiniZinc script that reads the problem from a data file instead of having it hardcoded, but I'm not that good with MiniZinc (I haven't finished the course). But this does seem like a good excuse to tinker with pymzn, a Python interface to MiniZinc (NB: Besides pymzn, there's also an official Python minizinc module). Here's my Python script to build a MiniZinc cryptarithm-solver script, run it, and return the results:

import io
import json
import re

import pymzn

def cryptarithm(problem):
    mznscript = io.StringIO('')
    prob = problem.replace(' ', '')
    (facs, solution) = prob.split('=')
    facs = facs.split('+')
    
    #Set of all unique letters in the problem
    letters = set(re.sub('[+=\s]', '', prob))
    #All letters at the beginning of a "number"
    initials = set([fac[0] for fac in facs]+[solution[0]])
    
    #declare all variables.
    #First letters != 0.
    print(*[f'var 1..9: {l};' for l in initials], sep="\n", file=mznscript)
    print(*[f'var 0..9: {l};' for l in letters.difference(initials)], sep="\n", end="\n\n", file=mznscript)

    #Each letter stands for a different number.
    print('include "alldifferent.mzn";', file=mznscript)
    print(f'constraint alldifferent([{",".join(letters)}]);', file=mznscript)

    #Add the main constraint.
    print('\nconstraint', file=mznscript)

    #This is ugly. Don't do this in actually-useful code.
    print('    '+'\n  + '.join([' + '.join(f'{10**n} * {l}' for n,l in enumerate(reversed(tuple(fac)))) for fac in facs]), file=mznscript)
    print('  = '+' + '.join([f'{10**n} * {l}' for n,l in enumerate(reversed(tuple(solution)))])+';', end="\n\n", file=mznscript)
    
    print('solve satisfy;', file=mznscript)
    
    
    mznscript.seek(0)
    script = mznscript.read()
    
    return (script, [dict(sorted(json.loads(sol).items(),  key=lambda x: problem.index(x[0]))) 
                     for sol 
                     in pymzn.minizinc(script, output_mode='json')])

And some use examples:

>>> script, solutions = cryptarithm('ZEROES + ONES = BINARY')
>>> print(solutions)
[{'Z': 6, 'E': 9, 'R': 8, 'O': 3, 'S': 2, 'N': 1, 'B': 7, 'I': 0, 'A': 5, 'Y': 4}]

>>> script, solutions = cryptarithm('SEND+MORE=MONEY')
>>> print(solutions)
[{'S': 9, 'E': 5, 'N': 6, 'D': 7, 'M': 1, 'O': 0, 'R': 8, 'Y': 2}]

>>> script, solutions = cryptarithm('SO+MANY+MORE+MEN+SEEM+TO+SAY+THAT+THEY+MAY+SOON+TRY+TO+STAY+AT+HOME+SO+AS+TO+SEE+OR+HEAR+THE+SAME+ONE+MAN+TRY+TO+MEET+THE+TEAM+ON+THE+MOON+AS+HE+HAS+AT+THE+OTHER+TEN=TESTS')
>>> print(solutions)
[{'T': 9, 'A': 7, 'O': 1, 'M': 2, 'H': 5, 'S': 3, 'E': 0, 'N': 6, 'Y': 4, 'R': 8}]

>>> script, solution = cryptarithm('TWO + TWO = FOUR')
>>> print(solution)
[{'F': 1, 'T': 7, 'W': 3, 'R': 8, 'U': 6, 'O': 4}]

#minizinc #python

Enter your email to subscribe to updates.