Coincidence: Software development

This post has been doing the rounds lately. I didn’t pay it much mind, filing it under “at last one developer sees the wrong of his ways.”

I read this, by Cory Doctorow, a few days later. It’s fiction but you betcha something like this will happen. It already may have but if so it has been kept quiet.

Then I found this article on Business Insider.

So yeah, software developers are definitely making the world a worse place and no amount of ethics will fix it. What a developer in the US doesn’t want to do, the company will find someone in Asia or Eastern Europe to write. Market dynamics as applied to ethics.

IoT, anyone?

Extra! Extra! Fake news are real! Extra

In addition to doing more to weed out lies and false propaganda, Facebook could tweak its algorithm so that it does less to reinforce users’ existing beliefs, and more to present factual information. This may seem difficult, but perhaps the Silicon Valley billionaires who helped create this problem should take it on before setting out to colonize Mars.

Source: Mark Zuckerberg Is in Denial – The New York Times

El Zuckerberto wants all the money he can have so he can be on the third ship to Mars. The first one made it there, the second one brought all the toys, and the third is for the rich people who want off the planet.

At least on twitter it’s easy to look up and see what the others are talking about, even while mired in abuse.

My job is managing being interrupted

Last year I turned off all my notifications. I stopped booking meetings. I started living asynchronously.

Source: Live asynchronously.

My job (and that of my coworkers) is being constantly stopped from finishing the task we are working on. I’m told that I’m really, really good at it, but I only got that way by working in the kitchen, where the job is, again, being interrupted.

But the cognitive load is immense, and intense. I often get home feeling more tired from working at the office job for 6 hours than from working in the kitchen for 12 hours.

And no, I don’t get breaks at either job unless it’s slow.

You’re just having a taco de ojo at this point

Services like Tinder and Hinge are no longer shiny new toys, and some users are starting to find them more frustrating than fun.

Source: The Rise of Dating-App Fatigue – The Atlantic

In my case it’s not app fatigue, it’s more of a life fatigue. My work schedule doesn’t help any, as the kind of gal I like usually has a work schedule that is exactly opposite mine.

It is one of the things that killed my last relationship, after all. The upkeep is just so, so hard.

Someone get me her book?

Since we seem to agree on the fact that Trump is a garbage monster, there’s no need to even go there. Instead, let’s talk about Hillary. First, allow me to reframe your assertion that she is monumentally corrupt. No, no. The system is monumentally corrupt, and Hillary is masterful at gaming it. I respect that. I don’t see it as a character flaw, because despite what Fox News would have you believe, Hillary really does have a conscience. She is a dyed-in-the-wool progressive who still manages to get shit done in this grotesque plutocracy of ours.

Source: Dear Coquette

Coquette is the best.

This is really scary stuff

Source: The Short Life of a Vulnerable DVR Connected to the Internet – SANS Internet Storm Center

I’ve set up DVRs and the UX/UI on most of them is appalling, along with the entire setup and configuration process. Then to find out the moment you connect them to your network they just become another attack vector, one that cannot be easily closed off.

These are pretty pricey devices that I believe can be replaced with a Raspberry Pi to obtain more flexibility and better recording quality. It’s just the software that’s needed.

No money for all these things!

Source: FIXED: Xbox One losing TV signal error message with DirectTV – Scott Hanselman

This is why piracy wins. You buy all the expensive toys, then you run into issues that require you to buy even more crap that consumes more power that then you have to remember to manage.

You know what doesn’t fail? Some HD or 4K torrent that you can just push to any display over any physical media. Plug and play, as it were. Funciona aqui, en China, y en la chingada.

No additional devices required. No matter where you are.

You cannot beat that.

Without it, you’re a non-citizen.

Nor do I want to add to the refugee crisis in your countries, God forbid. I am lucky to have my passport. Could you please return it to me? Thank you.

Source: I Am Lucky to Have a Syrian Passport · Global Voices

You know what’s even riskier than traveling without a passport? Traveling without one.

Worse, being denied your citizenship outside of the country that provided you with it.

You become a non-entity.

A Debian Wifi Router: Kernel tuning

So it turns out that if you go with the default kernel parameters on the device you won’t get much throughput. I’m currently paying my ISP for a 25Mbit/s pipe both ways, which is bloody awesome.

I was having problems with throughput and network jitter, though. I was able to have a fast connection from my devices to the router and the router had the full connection available to itself; problems were the router was not able to make the full connection bandwidth available to its clients and the bandwidth would go from 25Mbit/s all the way down to 5Mbit/s all the time.

This is really damn annoying when you’re putting in a good match on Unreal Tournament, let me tell you.

Thinking it could be something related to hostapd I played around with a few more settings but nothing really made a difference. I’m having problems with reception and throughput in my bedroom but that’s for another post, I guess. Suffice to say that with a direct line of sight to the router everything works about as expected.

So it wasn’t hostapd. Played around with iwconfig and iw but neither made much of a difference. That left the network interfaces themselves and the kernel.

Dug around and found plenty of links and articles on what settings to adjust and how to adjust them but all of them are geared towards servers of some sort. There isn’t much information that a home/office IT guy would be able to use for tuning the kernel for bandwidths of less than 100Mbit/s, which is what I’m attempting to do here. The most popular post (which I basically copied into my configuration) is using settings for 1Gbit/s connections that I then changed with the one entry that matched from the Ars Technica post.

Here’s sysctl.conf as I have it right now:

# /etc/sysctl.conf - Configuration file for setting system variables
# See /etc/sysctl.d/ for additional system variables.
# See sysctl.conf (5) for information.

#kernel.domainname =

# Uncomment the following to stop low-level messages on console
#kernel.printk = 3 4 1 3

# Functions previously found in netbase

# Uncomment the next two lines to enable Spoof protection (reverse-path filter)
# Turn on Source Address Verification in all interfaces to
# prevent some spoofing attacks

# Uncomment the next line to enable TCP/IP SYN cookies
# See
# Note: This may impact IPv6 TCP sessions too

# Uncomment the next line to enable packet forwarding for IPv4

# Uncomment the next line to enable packet forwarding for IPv6
#  Enabling this option disables Stateless Address Autoconfiguration
#  based on Router Advertisements for this host

# Additional settings - these settings can improve the network
# security of the host and prevent against some network attacks
# including spoofing attacks and man in the middle attacks through
# redirection. Some network environments, however, require that these
# settings are disabled so review and enable them as needed.
# Do not accept ICMP redirects (prevent MITM attacks)
#net.ipv4.conf.all.accept_redirects = 0
#net.ipv6.conf.all.accept_redirects = 0
# _or_
# Accept ICMP redirects only for gateways listed in our default
# gateway list (enabled by default)
# net.ipv4.conf.all.secure_redirects = 1
# Do not send ICMP redirects (we are not a router)
#net.ipv4.conf.all.send_redirects = 0
# Do not accept IP source route packets (we are not a router)
#net.ipv4.conf.all.accept_source_route = 0
#net.ipv6.conf.all.accept_source_route = 0
# Log Martian Packets
#net.ipv4.conf.all.log_martians = 1
# Kernel parameter adjustments
# 2016/09/12 02:59:32:
kernel.sem = 250 256000 100 1024

# Increase system file descriptor limit
 fs.file-max = 100000
# # Discourage Linux from swapping idle processes to disk (default = 60)
 vm.swappiness = 10
# # Increase ephermeral IP ports
 net.ipv4.ip_local_port_range = 10000 65000
# Increase Linux autotuning TCP buffer limits
# Set max to 16MB for 1GE and 32M (33554432) or 54M (56623104) for 10GE
# Don't set tcp_mem itself! Let the kernel scale it based on RAM.
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_max = 4194304
net.core.rmem_default = 4194304
net.core.wmem_default = 4194304
net.core.optmem_max = 40960
net.ipv4.tcp_rmem = 4096 87380 4194304
net.ipv4.tcp_wmem = 4096 65536 4194304

# Make room for more TIME_WAIT sockets due to more clients,
# and allow them to be reused if we run out of sockets
# Also increase the max packet backlog
net.core.netdev_max_backlog = 25000
net.ipv4.tcp_max_syn_backlog = 4096
net.ipv4.tcp_max_tw_buckets = 200000
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 10

# Disable TCP slow start on idle connections
net.ipv4.tcp_slow_start_after_idle = 0

# If your servers talk UDP, also up these limits
net.ipv4.udp_rmem_min = 8192
net.ipv4.udp_wmem_min = 8192

# Disable source routing and redirects
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.accept_source_route = 0

# Log packets with impossible addresses for security
net.ipv4.conf.all.log_martians = 1

Everything in here I’m sure can be tuned further and the file itself is so damn ugly to look at but for now at least I have a starting point I can use.

All this tomfoolery is turning me into a network wonk.

I really don’t want to be writing this. Well no, that’s not true. I don’t want to have to write this, but sex education is lacking as it is and far too many people are being rather lackadaisical about the whole thing. Because I can’t in good conscience let condoms which can’t reliably condom be on the market […]

Source: A Pox On Your Box: The Problem of LELO Hex – Lorax Of Sex

It’s makes all the difference whether something fails silently or something fails and explodes in your face.

For most programming code written out there, you want some indication that it failed (that is, it sets off a small explosion or it sets off a big explosion) so you can know something is wrong and can fix it. When something fails silently you don’t even know there’s a problem until something happens that you literally cannot fix. Like your backups silently failing until you need to recover something… to find the information has been lost. Forever.

In the case of this condom design, the consequences of it failing silently are literally of life and death important:

  • You could get an STI and not know.
  • You would then become one of those asshole people that don’t even bother to get tested for STIs because “it could never happen” to them.

  • You could get pregnant, or get someone pregnant.
  • When a regular condom fails you know it failed and you can take measures. In this case the only alternative will be to have the baby, or have an abortion.

These things are important and fact people are falling for the hype means sex education is simply not keeping up with the reality of the world.

How Things Work

One of Gawker’s most cherished tags was “How Things Work,” a rubric that applied to posts revealing the sausage-making, the secret ways that power manifests itself. The phrase has a children’s book feel to it, bringing to mind colorful illustrations of animals in human work clothes building houses or delivering mail. Of course it also carries the morbid sense of innocence lost, and the distance between the stories we tell ourselves about the world and the way it actually works. Collapsing that distance is, in many ways, what Gawker has always been about.

And so Gawker’s demise turns out to be the ultimate Gawker story. It shows how things work.

Source: How Things Work

Much lauded, much hated. So long.

Confusion and mayhem

Source: Gordon’s Notes: Systemic failure in American medicine: combining ICD-10-CM with “leaf code” reimbursement rules

It’s confusing and quite abstract if you don’t work in healthcare, but it does make sense when you think about it in terms of money, as I did. The only times I’ve stepped in a hospital in the past five years are when I buy coffee from a store inside of one.

The system as described by Gordon lacks something crucial when talking about illness, disease and health conditions: specificity.

When you can’t properly code something in a very specific way, everything else built on top of it goes out the window.

A new mythology

These characters no longer truly belong to the writers who are writing their stories. They exist independent of their individual fictions. In our minds, many of their traits are already set in stone.

Source: Captain America Isn’t Bi or a Nazi, He’s Just God | Myths RETOLD

Fandom lets us ignore the shitty decisions made by ‘owners’ of our contemporary myths at the bottleneck of IP law.

Source: Captain America (Updated): On the heroic epic, the nature of story, the implied contract with the reader, the dumpster fire that is Marvel Comics’ choice to pursue this storyline, and why indefinite copyright is harmful to contemporary myth: a cranky Twitter rant.

The corporate behemoths that now own all of these characters have no idea how to plan for the long term. They keep wanting to bring stories of the past into the present, but what about stories of the present taken into the future?

No amount of copyright law will change the fact a character’s mythos are an organic thing that grows, changes, mutates, evolves, as time goes on and more people are made aware of it.

Most Cyclists Are Working-Class Immigrants, Not Hipsters

Misidentifying who, exactly, rides bikes is hardly a new problem, Longhurst said. Historically, every generation has created a new idea of who rides a bike, but the older associations have stuck around, too.That creates a situation in which cyclists are simultaneously associated with elites displaying conspicuous consumption, those sacrificing for the good of society, competitive athletes, children, and sometimes those who are coming home from their job washing dishes at 2 a.m. because other options aren’t available.

Source: Most Cyclists Are Working-Class Immigrants, Not Hipsters

I’m one of those people. Since I’m usually at work it is extremely hard for me to participate in initiatives to extend biking infrastructure here in Minneapolis. Same goes for most of the people who work in the service industry, regarless of their race or country of origin.

We bike because it’s cheap and convenient. And when you’re going home anytime after midnight, usually the only option you have to get home since taxis are relatively expensive and mass transit cuts service.

No, I’ve never gone canoeing drunk at night in one of the lakes. I was probably working

So knowing to disclose deeply personal information about yourself—the best stories are not necessarily why you want to be a banker at Goldman Sachs, but how you reached the summit of Mount Everest—knowing that’s what interviewers value creates a disadvantage for individuals who don’t have those types of stories, or don’t know how to tell them.

Source: Recruitment, Resumes, Interviews: How the Hiring Process Favors Elites – The Atlantic

This is me. I don’t have stories about crazy adventures while young — I much preferred to be alone. I don’t have epic tales of surviving an extremely busy shift in the kitchen — at the end of those days usually you just want to go home and pass out.

While I am fortunate enough to know how to tell these stories when pressed, the fact is most of these stories are not something the interviewer would appreciate listening to, nor appreciate if they have no way to identify with me given my employment history: car washer/valet, cybercafe attendant, call center rep, sysadmin, barista, cook, server. If they’ve never been one of these it will be almost impossible to imagine the situations you live.

Meritocracy is a myth and it is high time people realize this.

Where there’s a will, there’s a way

The Life of a Completely Blind Iranian Programmer

Source: How I got through Docker’s censorship – Parham Doustdar’s Blog

The most interesting part is being blocked by both the country government and the companies based in other countries. You not only have to develop ways to make packet traffic flow from outside the country into your own, but also to make funds available to you locally.

Not an easy feat.