Archive for the ‘humor’ Category

Folksonomy of Programmers   3 comments

I don’t program for a living.  However, I know a bunch of programmers, as part of my job I talk shop with Computer Science people, and programming languages interest me from the standpoint of logical systems.

I was chewing the fat with one of those aforementioned Computer Science folk this morning, and I offered a classification system for programmers that he found entertaining.  Since I needed something to write about to get me back into the blogging gig, here it is for your consumption, with some embellishment.

Class One: The Directionless Hack

How to recognize them:

These people don’t know much about anything.  They’re the type who learned how to program by reading “Java for Dummies”, or by hammering away at their computer to get something specific done (like, building the web site for their band or their buddy’s motorcycle shop). Edited to add: as Corey points out in the comments, you can have a degree in Computer Science, from a reputable university, and still be a directionless hack.  How you learned what you know is less important than what you haven’t learned, and “just getting this next thing done” is a very common approach to formal education, too.

In and of itself, self-taught programmers aren’t necessarily a bad lot (many of the below classes started here), but these yahoos haven’t got an enormous amount of intellectual curiosity about how programming works and their “self-taught” skills stop precisely at the place where their current problem ends.  They generally keep solving the same problems over and over, as they fail to realize that the problem that they’re trying to solve is something that someone else already solved a couple of decades ago.

They program almost entirely in Perl, PHP, or JavaScript, because that’s what they can hack together with a minimal amount of abstract work, and they run everything over the web that they can.  They’ve built at least one database in their lifetime, and anyone who understands normalization will scream in abject horror if they see the database schema.  Generally, they need complete access to everything to get anything done, because they can’t explain what they’re doing while they do it, at least in part because they’re not sure what they’re doing.  Within a very short period of time after they leave their code up and running, it will collapse in a way that only the original developer can untangle.  They don’t use version control; or if they use version control a typical change comment will include, “Checking in some changes”.  Comments in the source code will be likewise either nonexistent, or include no useful information.  They don’t work well with systems administrators, DBAs, or networking folks.

Common statement: “Well, it works for me.”

Class Two: The Directed Hack

How to recognize them:

These are the people who know they need to get something done, but figured out somewhere along the line that it might be a good idea to pick up at least a couple of books about programming concepts instead of just “howto” manuals.  If they graduated with a CS major, they paid enough attention in their theory classes to grasp what “layer of abstraction” means, although they may not be able to explain it.  Like the directionless hack, they usually need full access to most things to get anything done, however unlike the directionless hack they’ll have learned enough about at least some things to know they don’t want to mess with it any more.  If they have more than 5 years of experience, they’ll have some comments in their code (precisely at the location where most of the bugs are), because they occasionally want to go on vacation.  They program in whatever language is currently en vogue wherever they are, or they will default to Perl or Python.  They will have an opinion on what the best language is, but their strength of their opinion will be directly correlated to whether or not they’ve worked primarily on writing their own code (in which case they will prefer an unstructured language), or supporting the code of someone else (in which case they will prefer a much more rigorously structured language).  Depending upon the stage of their professional development, they will work well with systems administrators, database administrators, or networking personnel, but never all three at the same time.  These people actually make up the bulk of systems administrators, industry-wide.  Programming editors vary wildly.

Common statement, in comments: “# I know this sucks, but it works.  Do it yourself if you don’t like it.”

Class Three: The Mercenary Professional

How to recognize them:

They know Java, ASP.NET, and/or C#.  They’re at least conceptually familiar with SOAP and/or Ajax.  They hate whichever database they’ve relied upon that had the least competent DBA, and like whichever database they’ve relied upon that had the most competent DBA.  They want version control, they want detailed specifications, they don’t want to have more than two meetings with the customer.  They regard most of what they learned in college (if they were a CS major) as useless and unnecessary.  These people want to get stuff *done*, and they don’t want another phone call about it afterward.  They regard systems administrators and networking staff as necessary evils.  They will love good DBAs, and set fire to bad ones.  They will have a love-hate relationship with XML.  They will likely prefer Waterfall development, and use NetBeans or Visual Studio IDE.

Common statement: “File that bug report with the maintenance team,” or “That’s not in the spec.”

Class Four: The Cabalist

How to recognize them:

They have a very, very strong opinion on which language is teh best evar, and the list of candidates includes Lisp, C, Modula-3, and Haskell.  They will be able to write up at least six different logical diagrams of any project before writing any code… although they probably won’t write up logical diagrams because they can move from one layer of abstraction to another, on the fly, in their own head (or at least, they think they can).  Their first approach to most software projects will be to suggest a complete re-write in a language that doesn’t suck.  They will hate most programming languages, including any language that is proposed by anyone on their programming team that isn’t a Cabalist or a Professional.  Good Cabalists will work well with good DBAs, but bad Cabalists will annoy the hell out of them by offering suggestions on how to improve the database.  They will often argue with systems administrators or networking staff about technical limitations (of the systems or network) as if problems with deviation from RFCs are the technical staff’s fault.  They will likely prefer some sort of agile programming methodology, and have a strong preference for their particular favorite incarnation.  Cabalists typically will use Emacs (and have a very strong preference for a particular incarnation of emacs), and sneer at any IDE.

Common statement: “Only a complete idiot would do it that way.”

Class Five: The Theoretician

Closely related to The Cabalist, the Theoretician goes one step farther.  They will have done one of the following: written a major software program in Assembly, written their own compiler in a language *other* than Assembly “just to do it”, written their own programming language, installed a C compiler on their HP calculator, contributed a driver or a chunk of the kernel to either the Linux, FreeBSD, or NetBSD projects, or installed and run Plan 9 on their home network un-ironically.  These people are nearly useless in a team environment as nobody else can understand them except a Cabalist, and Cabalists and Theoreticians rarely get along.  However, they also can be the sort of Free Electron that can re-write an entire application over a weekend.  Almost all Theoreticians use vi.

Common statement: “Yeah, I wrote about that in the 2001 issue of IEEE Interactions between Compilers and Computer Architectures”

Class Six: The Weary Wise One

These guys and gals used to be one of the above classes, but have passed into programming Nerdvana to Enlightenment.  They will have opinions, but no longer care about the strength of those convictions.  They will re-write the entire code base, but only if necessary, or hack it if that’s the best way to get the job done.  They will cheerfully reuse another programmer’s code (even bad code), or buy an off-the-shelf component if that’s legitimately the best way to get the job done nearly on time, basically on budget, and with quality good enough to make everyone happy.  They will hate most operating systems, programming languages, and programming methodologies equally.  Typically they will prefer vi or emacs over an IDE, but will use an IDE if it gets the job done.

Common statement: “This is still better than my dot-com days.”

Advertisements

Posted November 17, 2010 by padraic2112 in humor, software, tech, Uncategorized

Fanese   2 comments

Roy, over at Meg’s blog, asked what language she was speaking in her most recent post.  Meg was speaking Fanese, Roy.

Fanese is a collection of international dialects specific to regionally popular sports.  Euro-fanese, for example, is focused on football, tennis, and winter sports (non-American football, that is, or what we call over here, “soccer”).  Euro-fanese and Asiatic-fanese have a collective sub-dialect Anglindo-fanese, which includes local idioms from England and India concerning cricket.  Asiatic-fanese is a fairly broad class of dialects, itself.

Over here in America we speak Amerifanese, which most linguists now accept is the actual root of all Fanese, as the Americans are the first culture to elevate “sports” to a level of social prominence unheard of in other cultures.  Traditionally, of course, the linguist Dr. Franken Hausenfrausen launched the study of Fanese in his seminal 1914 paper “On The Characteristics of Physical Competition Derived Linguistic Objects” with the claim that the language originates in Ancient Greece, however this work fell out of favor in the 1950s as the study of Fanese underwent its first paradigm shift.  Dr. Hausenfrausen’s Munich School is largely considered to have lost the war, so to speak, as the study of Fanese largely shifted to the University of Vancouver under the auspices of Dr. Laura Higginsbottom.

Dr. Higginsbottom argued (quite successfully in my opinion), that the Ancient Greeks (or Ancient Anythings, for that matter, as many other cultures celebrated physical competitions of one sort or another) were focused primarily on what she termed “pre-Enlightenment physical competitions”.  These competitions were focused nearly entirely upon basic challenges (who can throw this object the farthest, who can lift the most, etc.) which were, in turn, based in large part upon the warrior-based cultures of the pre-1800s.  In addition, those challenges and how they were regarded culturally were largely limited to the warrior class or at the very least the patrician class.  Even when exposed to “the masses”, as gladiatorial combat was in ancient Rome, the lingua franca of the greater society did not adopt new terminologies to describe the events themselves.

The Enlightenment era, she argued, began in the United States in the 1850s, when the term “national pastime” was originally coined to refer to baseball.  All Fanese, according to the Vancouver School of thought, is derived directly from this moment, as it is the first outward expression of the idea of a game (as opposed to an individual competition) possessing cultural prominence on a national stage, and the first indications of actual linguistic changes directly attributable to modification of existing terminology to refer to sports-related activities or new terminologies altogether.

There are, of course, dissenters to this view, but recent work by Dr. Jonesmith of the Vancouver school does answer many of the challenges of the old Munich school, particularly in regards to modern versions of boxing, sumo wrestling, and Olympic competitions and how their adoption of their popular terminologies can now be traced to sociolinguistic factors that can be directly linked to 1850s baseball in New York.  His work, published in the 1980s, shows that the linguistic changes in national records of many countries regarding their “national sports”, (e.g., Japan (regarding sumo), Thailand (regarding Muy Thai),  England and India (cricket), etc.) are all related to those cultures adopting to some degree the until-that-point uniquely American obsession with sports.

Basically, Fanese can be directly attributed, for good or ill, to the United States and our cultural obsession with football, basketball, and baseball.  But everything comes back to baseball.

Posted August 27, 2010 by padraic2112 in humor

Found on Facebook   1 comment

Posted May 18, 2010 by padraic2112 in humor, Uncategorized

Self-Referential Idiocy!   2 comments

In the spirit of the last post, we have this gem courtesy of Lowering The Bar:

In 2007, an Islington officer ticketed an Islington vehicle, but the department that got the ticket appealed.  Because the department is not a different entity, in legal terms the council was appealing a ticket it got from the council, and under the rules above, the council was hearing its own appeal.  After the council rejected its appeal, it then appealed again to the Parking Adjudicator.  But having appealed, it then presented no evidence, and the Adjudicator voided the ticket.  Feeling its appeal had been an outrageous waste of time, the council asked for costs, thus accusing itself of having acted frivolously, vexatiously and/or wholly unreasonably toward itself.  The Adjudicator declined to award costs, pointing out that “[t]he legal status of the two parties in this appeal amounted to one and the same.”

Posted March 6, 2010 by padraic2112 in humor, law

Recursion!   1 comment

Paulie posted this to Facebook today: someone has submitted a patent application for patent trolling.

Methods for a first party to acquire and assert a patent property against a second party are disclosed. The methods include obtaining an equity interest in the patent property. The methods further include writing a claim within the scope of the patent property. The claim is written to cover a product of the second party where the product includes a secret aspect. The methods further include filing the claim with a patent office. The methods sometimes include offering a license of the patent property to the second party after the patent property issues as a patent with the claim. The methods sometimes include asserting infringement of the claim by the second party after the patent property issues as a patent with the claim. The methods sometimes include negotiating a cross-license with the second party based on the assertion of infringement of the claim, where under the cross-license the first party obtains a license to an intellectual property right from the second party. The methods sometime include attempting to obtain a monetary settlement from the second party based on the assertion of infringement of the claim.

Posted March 4, 2010 by padraic2112 in humor

Artistic License   1 comment

Some of you may recall the three wolves shirt.

I offer you two new sets of Amazonian awesome for your perusal:

The Collected Reviews of Dr. M. Von Vogelhausen

Amazon Products tagged with “WTF”

Some of the above NSFW.

A couple of samples

Posted March 3, 2010 by padraic2112 in humor

Sad But True   1 comment

I can’t attest to the first.  I just don’t buy many movies anymore because the second is painfully true.

Posted February 19, 2010 by padraic2112 in humor