Saturday, December 31, 2016

Some reflections on freedom of speech


Every teenager discovers, at some point, the inherent weakness in the idea of freedom of speech: "if you support freedom of speech, then you support my right to loudly proclaim that you are racist/impotent/a paedophile/etc, in the terms and manner of my choosing, regardless of whether my accusations are based on any factual evidence.".

Those who went to private school, or who received their education back when children, like animals, had no say in their upbringing (and rightly so, for like animals, children have agency but no ability to perceive goals beyond their immediate self-interest), were quickly taught that what is colloquially referred to as "freedom of speech" is actually "freedom of opinion": an individual has the right to hold any opinion they desire (even and especially unpopular ones), and has the right to express their opinion according to the rules of civil discourse, without fear of legal reprisal.


A complete reading of the oft-invoked First Amendment (to the 1787 Constitution of the United States, it hardly need be said) specifically limits what can be considered a constraint on freedom of speech (ignoring, for the moment, interpretations by the Supreme Court which may or may not be rooted in political expediency):

Congress shall make no law respecting an establishment of religion, or prohibiting the free exercise thereof; or abridging the freedom of speech, or of the press; or the right of the people peaceably to assemble, and to petition the Government for a redress of grievances.*

The First Amendment, therefore, only makes it illegal for Congress to pass a law diminishing freedom of speech. Since many State legislatures take their cues from Congress, and many local legislatures take their cues from the State legislature, this effectively translates to "No law shall be passed which abridges the freedom of speech". We can leave off the technical definitions of "abridge" and "freedom of speech" for now: what is important is that this is a restriction on the laws that can be passed. It is not a guarantee of freedom of speech. Private individuals, non-legislative organizations, companies, and so forth can all impose restrictions on what may or may not be said in their presence, using their facilities, or over their communication channels.


What about that "abridging", though, and that "freedom of speech"? It is illustrative to look at the laws that do apply to speech: namely slander, libel, and fraud.

Slander and fraud are similar: knowingly representing a falsity as truth. This includes the famous "falsely yelling 'Fire!' in a crowded theater": it is quite permissible to yell "Fire!" if there is, indeed, a fire, but to do so when there is not is to make a misrepresentation of fact -- and claiming that every individual in the theater could perform their own fact-checking to verify the claim of fire is not a valid defense, nor is the claim that the person yelling "Fire!" was not in the uniform of a Fire Department, and therefore should not have been considered an authority on the matter of the theater's flammability.

Unscrupulous individuals (cf. LBJ's "But let's make the bastard deny it!") will present slanderous accusations as opinion ("it is my opinion that he is a paedophile!"), and that is why we have libel. This gets a bit tricky, because there are matters of public interest ("does the head of the SEC have a gambling problem?") and public record ("this person was convicted of child molestation by a fair jury trial"). Simply put, if the matter is not of public interest or public record, it can be considered libelous: the publication (on any media, be it print, radio, video, twitter) of information, true or false, intended to damage the reputation of another. It may be both true and unsavory that your political opponent regularly masturbates to the AARP Magazine; but it is libelous to publish the claim that he does. That word "publish" is key: recording a damaging claim is legal,
but publishing that recording is libelous. This is regardless of intent: the intent of neither the speaker nor the publisher may have been to damage the target of the claim, but the act of publishing causes damage and is therefore libelous.

Of course, all of this leaves out the actual justice system, which requires that legal expenses be incurred and that damages be demonstrated and so forth. Again, the justice system is as erratic and self-serving of its personnel as any political institution, and is not to be entirely relied on as an arbiter of what should and should not be legal.



*Emphasis mine, of course, to extract the clauses relevant to freedom of speech. The same thing could be done with the Second Amendment, for example: those troublesome first two clauses amount to the simple justification "because a well-regulated militia is necessary to the security of a free state", and while they provide context, they are not part of the actual legal clause about the right of "the people" (but not, you will note, "every person") to bear arms.

Wednesday, September 21, 2016

Step one

Photography should be banned. Only licensed professionals should be permitted to take photographs outside the privacy of their own homes.

There, I said it.

We all know it would make the word a better place. And it will rid us of the drones that enthusiasts have been trying to get us as a society to accept as normal.

Wednesday, June 1, 2016

Forgotten truisms

Just some quick observations from unrelated stories in the morning news read.

When someone "tells it like it is", they're just telling you what you want to hear.
Projecting your inner world onto a politician is never a good idea. Remember "plain talking" Bush Jr? How about "hope and change" Obama? Hire a functionary, not a crowd-pleaser.


The performance is entirely about the performer, not about you.
That's why you're the one paying for the privilege of being there. All that stuff about "the customer is always right" that spoiled children entitled narcissists shout when they don't get their way? Turns out that only applies to the retail and service industries -- and even then, it's because the cost of giving a customer a freebie is immediately recouped when they return with additional business. Not about you; never has been.


Nobody with either class or integrity takes part in a reality TV show.
This one really needs no explanation, as to date there is no known counter-example. General rule: do not give money to anyone involved with a reality show, nor take behavioral or aesthetic guidance from them.

Tuesday, May 31, 2016

labor relations for the working programmer

There's a bit of a trend this past decade or so that can only be described as programmers acting against their long-term interest.


This started off innocently enough, with Agile methodologies that sought to make individual developers easily replaceable. We're not talking about "easily replaceable" in the preventing-evil-sysadmins sense, where a single employee can hold the company hostage because they keep the details of their work a secret. With Agile methodologies, "easily replaceable" means not only automating the development process so that it can easily be taken over by a trainee, but even keeping two people performing the same development task ("pair programming") so that losing a developer to insult or injury is of no consequence. I don't intend for this to be read as a slam on Agile methodologies, just adding a bit of perspective for the labor side of the equation, for whom the benefits of Agile methodologies are less clear-cut (than they are for, say, management).

All well and good. But then something odd happened: the impatience of programmers to release code to the world -- which is a rather irresponsible urge, to be sure -- has resulted in programmers taking on more and more of the work that was previously assigned to specialists.


First came test-driven development. Tired of waiting for QA to clear your code? You can be your own QA department! Just write your own tests, prove to your own satisfaction that code works the way you think it should, and it's read for release! 

Now, every programmer worth their salt tests their code regardless, and TDD has resulted in better testing tools (programmers, forced to use them, have now started to pay attention when writing them). But testing is not QA. For that matter, TDD is not testing. The rule is quite simple: the person who tests the code must not be the same person who wrote it. In other words, the person who signs off on some code as being product-ready or release-ready should be anybody but the person who wrote that code.


Next came NoSQL databases. Tired of waiting for that DBA to make your changes to the database? You can be your own DBA! Just ditch the RDBMS and use a key-value datastore! No waiting!

OK, so you lose referential integrity and ACID compliance, but for the kind of stuff you're storing (let me guess: user clicks) it doesn't really matter. You have also lost that domain expert whose entire job is to make sure you, the developer, didn't screw up the data or the database with some short-sighted decision intended to just make the damn code work.

So, you are now writing your own tests and maintaining your own database, as well as, you know, writing code. Well, so far it's only a 60-hour work week, and that's normal for start-ups, right?


Now we have devops. Tired of waiting for the sysadmin to push your code out to production? Impatient with the "official" versions of webservers or frameworks being half-a year behind cutting-edge? You can be your own sysadmin! Just set up everything you need as a container, then push that container to virtual hosting (er, sorry, the cloud) and you're good to go!

Alright, now you've lost the person whose job it is to make sure that everything works together, that all the security patches are in place, and that there hasn't been some gaping security hole introduced to the system because, hey, the developer can't be bothered to modify the default configuration of the software they're using -- after all, they're not a specialist in this sort of thing!


Starting to see a pattern here? Developer gets impatient when having to work with others. Developer comes up with a way around working with others. Developer brings more work upon themselves, introduces more bugs into the system, and ships lower-quality product. The developer loses, the customer/userbase loses, the formerly-employed specialist loses. The only person who gains from this is the employer: they get to pay fewer salaries, and they have somehow managed to convince some of the most highly-paid non-executive employees to work longer hours, which translates to lowering their effective wage.


There's a lesson buried in here somewhere. Learn to work with others. Accept that your timeline is not their timeline. And while you're waiting for them to get around to the work you need done, do what your father and your grandfather did in your position: knock off early for a beer.

Saturday, May 28, 2016

manufactured HR crisis

Employers are aghast at the job-hopping nature of young employees -- something that has been part of our culture since the mass layoffs and destruction of pensions in the 80s.

For some reason, the rabid newscycle has decided this is not the modern start to a career, but rather a Millenial Problem. Headlines like "Companies across the board are struggling to retain Gen Y workers" and "How to Attract, Retain, and Develop Millenial Employees" abound.

What could those crazy kids want? What is it that makes them so hard to please? "Helping Bosses Decode Millenials" cites standard perks such as a flexible schedule, working fewer hours, Fridays off. You know, the things everybody wants, and that employees are rewarded with once they have demonstrated their commitment and responsibility. Nobody gets a flexible schedule and a short work week right off the bat, because if you give the new hires that, half of them stop working entirely.

There's also some nonsense in that Decoding article about Millenials preferring "stories over numbers" and wanting their work to be meaningful, but eh, that is invariably what young people want from their employment.


But here's the cognitive-dissonance (remember that word? newscycle has long forgotten it) inducing part: Millenials are the most under-employed generation currently in the workforce. That means that, guess what? There's always another Millenial.

So who cares if they stay? If your Young Person employee feels they are under-appreciated, and that they could do better in another company, let them move on! Hire somebody leaner, more desperate to prove themselves. Somebody willing to put the time in to demonstrate their commitment and sense of responsibility.

Face it, there's a lot of exploitation of workers going on, especially in the tech industry. There's a lot of refusing to pay people what they're worth, a lot of mandatory office time for work that only requires a laptop and an internet connection, a lot of hiring only clones of the company's founders (young, white, male, with a CS degreee).

Let's fix all of that, instead of worrying about how to motivate a twenty-year-old with an over-inflated sense of self-importance.