» tagged pages
» logout

(Feed found, click Add Page to syndicate.) Error finding feed, please try again » Find feed title

A Blog Page allows you to add entries, for news or other time sensitive postings

(Login required to save to your tagged pages.)
(or Cancel)

Make further edits, (or Cancel)

(Login required to save to your tagged pages.)
(or Cancel)

(Editing anonymously: to be credited for your changes, login or register a new account)

Change Page Permissions? Changing these permissions will adjust who can modify this page.

Anonymous (change)
(change)
(or Cancel)
Upload an image from your computer:
or Copy an image from a URL:
or Erase the current icon:
Icon Preview:

or Cancel

Erase bile? The contents of bile page and all pages directly attached to bile will be erased.

or Cancel

(Editing anonymously: to be credited for your changes, login or register a new account)

other page actions:
bile

bile

Tags Applied to bile

No one has tagged this page.

bile Wiki Pages

Tag Cloud

To further filter what appears in the Things Tagged bile list, select a tag from the Tag Cloud.
What is bile? Edit this page and describe it here.

sorted by: recent | see : popular
Content Tagged bile

Good and Bad Open Source Smells

I like open source as much as the next guy, probably more.

But being open source, under whatever common definition of the term one wants to use, is neither a necessary nor a sufficient condition for something being good, or even adequate. Evaluating a given piece of OSS for use, especially when you’re in a hurry, can be tricky, and sometimes there are signs and portents that suggest more promise than is really present.

Things that Cross my Mind When I Look at an OSS Project for the First Time:

  • The presence of a vibrant and active community of contributors: It’s nice to see active discussion forums, wikis, bug databases, documentation updates and regular releases. If the activity isn’t all gnashing of teeth by plausibly competent people who are making credible and well supported arguments that things don’t work worth a damn, all the better.
  • Something that Builds: A source distribution should be as self-contained as possible. If there are external dependencies you must obtain separately, they should be clearly called out in READMEs, the documentation, the source and pretty much anywhere a user might be looking when one turns out to be absent. A credible, working and usable Ant or Maven build, or autoconf/automake setup, or whatever should be a requirement.
  • Crap that doesn’t build: No automated build? In this case why even consider it real software? It’s offered you no proof to the contrary. Are the build files or scripts full of hardcoded paths to ’/home/rjnutsack’, or anybody else’s home directory? Anathema. Did you get nothing more than a vague description of all the places in DevStudio, IntelliJ, Eclipse, Borland Power Snogger Mega Delphi Turbo Modula-2 Builder ‘99 or some other IDE that you need to click to have a prayer of seeing it build and run? The suxx0r! Any sign that the stuff hasn’t been built or run on any machine beyond that of the putz who apparently prematurely loosed it on the world falls in the no es bueno category.
  • Something with Good Tests: Are you going to use this stuff? Maintain it? Change anything and not to have to pray to Great Father Dagon that you didn’t just break or regress something in some way subtle or gross? No tests mean no confidence. Whoever put this thing out either didn’t test it, or did so in a non-reproducible, half-assed way that can’t be easily replicated by you and probably even them. It’s possible they had an all-singing, all-dancing, crap-of-the-world regression suite so clean you could eat off of it, but if they really had such a thing, why wouldn’t they be sharing it? Want to come over tonight and see the supersonic, lawn-clipping fueled rocket car I’ve been testing in the state of the art wind tunnel in my garage? Oh, sorry, I won’t be home. Maybe we can reschedule for some unspecified time in the future.
  • No tests of any kind, or obviously inadequate tests: Even if it builds, why should that alone make you consider it to be software of decent quality? It’s offered you no proof of that. So now you have no evidence that it works worth for poop, and no easy way to determine that it may have stopped working after you made your first trivial seeming whitespace change in a header file.
  • Bad Internal or External Documentation: If nobody bothered writing a single word about the stuff outside of the source code, and if the only comments in the source aren’t discussing the actual ideas and concepts that hold the whole thing together and rationalize its structure, but instead look like the following, it may be time to node, smile politely, and back away from the thing.


i++;  // increment 'i' (by one!)

And there’s more…

  • Puzzling genealogy: If the project looks like a mutant offshoot of a bastard child of some collection of other half-orphaned projects by quasi-alienated misanthropes whose working relationship fell apart before the project became valuable enough for someone well adjusted to keep it moving forward, what do you think the odds are that it’s in good hands now?
  • The Reputation of its Producers: Knowing the code comes from an organization that’s serious in its intent and scrupulous in its development practices goes a long way. On the flip side of this, some organizations tend to jump the shark with their projects living on long past the ability of the organization to do good work. This can happen through fatigue, attrition, too rapid of hiring or induction of new developers, bad luck, ego, vanity, sloth, pride the second system effect and a host of other factors. Things that call themselves “frameworks” tend to be particularly susceptible to this sort of failure mode since many framework builders have a tendency to restructure their entire intellectual universe around their framework, and assume that you’re not only willing but eager to do the same thing. You don’t want to use their stuff to make one of your problems go away. You want to use it so that you can worship in their gilded, rathole cathedral of self-indulgent, technical pretentiousness. Duh, of course. Once that’s started to happen the project is standing at the platform waiting for the next train to Uselessville Junction.

User:jerryk: Making Software And Related Things

Agile Tardwatch, Installment #238,661,891

Check this out.

  • Then you go agile and start shipping every six weeks or so. You deliver value on a regular cadence, respond quickly to your customers’ needs and are suddenly nimble enough to leapfrog your competitors. But being agile has one Achilles’ heel – it’s hard to know when to celebrate.

Wow… when you’re so 733t and your breath smells so good and your teeth are so straight, it’s hard to know when to celebrate your wondrousness! Life must be pain for these folks, living as they do under the supernova-like radiance of their futures so bright that they need to wear #14 welder’s glass shades.

Seriously though, Agile clearly has some things to recommend it… I love test-driven development to pieces, although in saying that I’m assuming that they still claim that as one of their distinguishing marks even though they clearly didn’t invent it.

On the other hand, 2001 was a while ago and maybe it’s time for a new fad.

If “Agile” was the software development pet rock of the early to mid 2000s…

...and Gang of Four Patterns were the hula hoop of the late 1990s (even if most of their contribution to the field was an utterly soporific book that appeared to be more an utterly unwitting and pathologically un-self-conscious apology for C++’s wet, sloppy, poop for brains type system and object model (I can’t say I’m sure because the universe doesn’t contain enough carbon to produce sufficient crank to enable me to get through the thing and Yog-Sothoth knows that I try to read it roughly once a year…

...and UML was the glorious panacea in an extra fancy and really expensive patent medicine bottle of the early 1990s…

...then I don’t quite know where we’re supposed to go next. I could channel Steve Yegge and his statement (really almost a theorem I fear) that if you add enough Hormel canned chili to dog shit, it will eventually taste like chili, but that would lack originality, and I would feel crippled by guilt at such a monstrously shallow and droll recycling of somebody else’s hard-won and richly earned cynicism.

Really, though, I think it’s time for something like UML, the Rational Urinary Process (that was what it was called wasn’t it?), to return, bottomless hat in hand, like a half-witted, threadbare messiah…

...and if it can bring along with it a cottage industry of charlatan consultants, books that make Nostradamus look like the pinnacle of intellectual integrity and scientific rigor and a vast armada of tools whose actual value is inversely proportional to the number of digits after the dollar sign on the price field in the Programmer’s Paradiso catalog then all the better!

Sign me up for some of that! See you at my first workshop on the JACKSMACK methodology… it’s $1000 a head for the one day seminar, but don’t worry… you get a healthy portion of the finest chocolate dipped strawberries the soulless Courtyard Marriott near the highway on-ramp has to offer.

User:jerryk: Making Software And Related Things

Peeve of the Week, Installment #5,772,156

Claims, benchmarks, or (even worse) “research papers” claiming to compare the performance of two things, usually making some definitive, strong and universally quantified statement in favor of one or the other despite:

  • Making totally irrelevant apples to razor blades comparisons;
  • Showing total statistical illiteracy in the analysis of results (two distributions with the same mean are obviously the same right? There are no other interesting moments to consider);
  • Using one of the systems under comparison in such an inappropriate, unnatural, or bizarre manner that only a huckster or complete numbnuts would contrive to do so (quite deliberately in one case, quite mouth-breathingly in the other);
  • More than one of the above.

Usually the inanity of these pieces of work is rivaled only by their smugness, something that would be hard to sustain if what one was saying was more obvious in its isomorphism to:

  • “I mowed the lawn with my Porsche and it made an awful mess… clearly it’s a terrible machine relative to my Toro Lawninatrix 2000.”

or…

  • “I tried brushing my teeth with a Husqvarna chainsaw and the results were clearly inferior to those obtained with my Sonicare.”

or…

  • “Wow this supposed to be real-time, 3D, ray traced first person shooter I wrote in Prolog really sucks—-what a stupid language.”

One of these crimes against reason can be remedied by taking to heart some of the advice here. The cures for some of the others are less obvious, but it’s possible that chainsaw would come in handy.

User:jerryk: Making Software And Related Things

Username:
Password:
(or Cancel)