Archive for August, 2008

Aug 28 2008

Is There Something Dirty I Can Pretend ERP Means?

Published by under Coding

A big part of my job is working with these third party business software packages.  They call them ERPs: Enterprise Resource Planning applications.  They’re basically Quicken on steroids, allowing you not only to Balance Your Budget  but also Track your Inventory and possibly even Forecast The Future!  They’re the little brothers of those monstrosities you see at big corporations like Peoplesoft, but they pretend to do everything the big guys do, meaning they do a crappy job at everything.

The Face Of Evil

The Face Of Evil

You might be able to guess that this is by far the favorite part of my job.

What I need to do sounds simple.  Our software receives a purchase order, which we need to shove into our customer’s ERP.  Then, when they invoice or ship, we need to rip those documents back out of the belly of the beast to send on to their partner’s.  We do some other stuff, too, but let’s just focus on the basics.  Shove in, rip out.  Repeat.  A lot.

That it sounds easy should tell you that it’s not.  The science of API design is, in my eyes, still feeble.  That may be changing with a lot of the really interesting web APIs being build by Google and Yahoo and Twitter and whoever else, but on the desktop side APIs and SDKs are afterthoughts.  They’re added when executives realize, late into the game, that an application which someone can Program At may sell better than one which can only be used through the buttons visible through its UI.  It’s then implemented by programmers, who have built an application whose buttons may not do their desired tasks as it is, in the fastest fashion possible.

Then, at some point over the next year, they start trying to fix it, at which point it simultaneously gets better and worse.  Better because it starts technically working,  but worse because there’s rarely any way to tell which of the vaguely named methods do what, and because strange new forks in the road get taken midstream, giving the API a case of schizophrenic maturity.  Small sections of the API, the ones people have been bitching about, get tons of attention and work perfectly, while similarly structured but different sections of the API appear to be the same but, in practice, are not.

ERPs are now required by Business Mandate to have some kind of SDK/API, but their dedication to the utility of these tools varies wildly.  They all have the gloss of professionalism, but under the hood is where the nightmares begin.  My favorite, by far, is the SDK of SAP Business One.  Its SDK contains two wonderful pieces.

Ugly, But Seriously Less Evil

One is the DI-API; the Data Interface for the system.  This is what you’d use to integrate with the system from an external application.  It’s what we use in most cases, and while we use it for SBO, we don’t use it for everything.  Which is too bad, because while it’s twitchy and crappy, at least once you’ve got it working it functions.  Oh, sure, they decided to build it so that it’s child’s play to update the client software without updating the SDK, leading to confusion and frustration when the integration “suddenly” breaks.  But other than that you can, you know, shove things in and rip them out.  No big deal.

No, it’s the second piece that is the true star of the ERP Nightmare Circus.  It’s the UI-API; the User Interface API.  On, how the fun begins.  They have something like three ways of building forms, none of them great.  One is driven off of XML.  Another uses an add-on called Screen Painter which, at the time we developed the solution, didn’t work. Finally you can just build the forms through the code.  Or if you’re like most developers, you can mix and match wildly.  Fun!

The UI-API allows installed add-ons to block events from reaching other add-ons.  This is one of the best features, allowing developers to accidentally break each other’s add-ons with gleeful abandon. What’s best is that nothing errors out, exactly.  Things just stop working.  To sweeten the pot, SAP also offers no Add-on compatibility testing at all, so someone selling these add-ons has no idea if they’ll mix safely unless they test them on their own.  You can imagine, I’m sure, the joy in customer’s voices when two things they paid money for break their entire system.

This is in addition to the kind of shoddy documentation and barely useful testing tools that all APIs come with.  And I shouldn’t complain too much: the SDK for our software is worse, since it’s still stuck in the “We should have it” phase without having moved onto the “We really need to fix this now” phase.  We’ll get there.

Though, since I’m being mean and calling SBO out I should give credit where credit is due.  While still a bit buggy, the SDK for Everest Advanced is shockingly good, with OK documentation and a test tool that really saved my butt while I was developing for it.

And I’m still looking for a good, dirty riff on ERP.

No responses yet

Aug 22 2008

Eric’s Top 10 – Friday, August 22

Published by under Randomness

10. Kingdom of Heaven, by Ridley Scott

9. Freakangels Vol. 1 ends, by Warren Ellis & Paul Duffield

8. My New Twitter Obsession, via the iPhone

7. U.S. Women’s Beach Volleyball Gold, courtesy Misty May-Treanor & Kerri Walsh

6. Don’t Make Me Think, by Steve Krug

5. Dinosaur Comics, by Ryan North

4. Google Docs

3. At Mount Zoomer, by Wolf Parade

2. “Three Of Us”, cover by We Were Pirates, Lyrics by Starlee Kine, Music by Joe McGinty and Julia Greenberg

1. “Tropic Thunder” Viral Video – by Ben Stiller, Robert Downy Jr., Jack Black and Carl

No responses yet

Aug 21 2008

That kid’s gonna be so embarassed one day…

Published by under Randomness

Ok, so maybe the banner image is about four times too large in technical, web design terms, but I haven’t laughed at one as much as this in a really long time.

2 responses so far

Aug 21 2008

Debate Team

Published by under Doing

I love debate, and so I hate debating.

In theory, the idea of debate is beautiful.  Fencing for people who are weak, uncoordinated pansies.  Carefully dancing around defenses, looking for openings.  Occasionally goading your opponent into making a poorly considered attack.  Emotions come into play, but the point is not to get infuriated.  Winning isn’t the point.  The form is the point.  Debate is a whetstone for your beliefs.  You may not change the other person’s mind, but both of you will have honed your opinions.

In practice, people suck at debating.  I think this is largely because people think the point of a debate is to win it, or to convince the other person they are wrong.  And so as soon as an attack comes in that challenges one of their preciously held beliefs, they start responding with a mixture of stupidity and maliciousness that ruins the fun for everyone.

The Internet has codified poor debate strategy in the minds of millions.  The first real forum of conversation online was Usenet, and a cursory glance through any long thread will show you what I’m talking about.  They start with a half dozen interesting, reasoned posts that go back and forth on a subject.  And then someone comes in and kicks the damn table over and lights it on fire.

I’m discounting the truly odious trolls here, the ones who say insulting things about your mother’s anus or the lack of limits in your relationship with your dog.  It’s simple to ignore the violently abusive posters, since their only desire is to get some attention.  People like this are why all modern social networks come with a “block” button.  Use them.

No, the people of which I speak are the ones who wade into the center of a debate and derail the proceedings out of sheer obstinace.  They begin with slightly logical sounding points that are in direct contention with whatever the most popular view is, but mix in a few poison pills in the process.

It might be taking someone’s argument and expanding it well beyond the point they intended to make.  If someone says they disagree with the idea of using DRM in media, the stealth troll will respond as if you had said there is never, ever a point for DRM and those who wish to use it are cretins.  If you suggest you prefer OS X over Linux, they will paint it as if you are saying Linux is a bug ridden, trash heap of an operating system and then take you to task for your lack of knowledge.

They might “correct” you endlessly, nitpicking minute details of what you said to force you into a position of defending things sentence by sentence instead of addressing the larger point.  This is a tactic perfected online, made simple by allowing people to quote you verbatim while editing out pieces that don’t support their point.  All it takes is a “>” followed by some of your text and they’re off to the races.  Once this starts, it’s almost impossible to stop.  Your first desire is to correct them, because you loath to see your words taken out of context.  But even if you don’t take the bait, you’ll never get things back on track again.

Or perhaps they’ll demonstrate their knowledge of Latin words describing logical fallacies.  Not of the actual fallacies, mind you.  Just the words.  Sometimes they won’t even know the words themselves, but they’ll have a grasp on a handful of the words that make up the definition.  Instead of addressing the topic at hand, they simply start crying foul, citing poorly understood rules that sound important.  You could call this the “plea for sanity” defense, used when an argument has gone outside of their ability to easily control.  You could also call this “whining.”

They may also use half-truths, or simply lie.  Often, they’ll mix the two to confuse you.  This tactic has unfortunately become very common of late due, I think, to the fact that this form of discourse is now accepted on national television.  If you can stomach it, watch a television news talk show.  See if anyone is ever challenged on any data they provide, even when you and everyone involved know it’s not true.  This makes debate impossible.

The very nature of debate relies on there being some kind of standard for factual information.  Debate is, in my mind, about the rhetorical manipulation of facts to make some kind of point. Once you start mixing in untruth to make your case, and when challenged simply cite more imaginary facts, you’ve done your job.  You’ve killed it.

Congratulations.

Not that formal debate is any better at this point.  Yikes.

No responses yet

Aug 20 2008

In which a dinosaur is more profound, but in less words

Published by under Randomness

I cannot hope to match this statement, not even with all my words from earlier today.

No responses yet

Aug 20 2008

To Live and Die in (place name)

Published by under Doing

...and a chasing after wind.

It’s a terrible thing to waste your time in this life, yet we are all programmed at the deepest of levels to live as if we are immortal.  We do this, I’m sure, because the prospect of death is too frightening to stare in the face.  Spending unconcerned hours Twittering or watching television or just straight up staring into space is our way of telling ourselves that death is something that happens to other people.  We’ve got time to waste, baby.

I have a deep, unmanageable fear of death.  It may be a product of my rather vivid imagination, but any thought of possible demises is usually enough to get me to play the entire thing out.  From there comes a brief but powerful depression, followed by forced ignorance of the entire issue via this blog, or whatever I’ve got handy with which to kill some time.

Most of us have things that, at some point in our lives, we decided would define us.  It might have been raising a family, or writing great American novels, or playing hockey with the Detroit Red Wings, or whatever would be today’s medical equivalent to discovering Radium.  Few of us get anywhere near our ideals.

For some, this isn’t a problem.  Their future self-concepts were either incorrect or were a product of the moment they were imagined in.  A baby comes, and then another, and you find that the family thing was potentially what you wanted all alone.

Many – most, in fact – don’t reach any ideal at all.  For the vast majority of people in the world, this is through no fault of their own.  Living in the comfortable boundaries of the United States of America, we forget just how little choice most people in the world are given as to the direction of their lives.  If you are one of the thousands of babies born with the HIV virus, existential questions about which vocation will define you are irrelevant.  If the shop you own, your very livelihood, is burnt down in a war you did not start, your first concern is not going to be finding a therapist to work you through the oncoming mid-life crisis.

Here’s an uncomfortable fact: we have no control over our own lives.  No amount of planning, self-improving or hard work will improve our chances against catastrophic collapse.  I can already hear arguments forming against this.  Wait.  Think about this for a second.  Most of what will happen in your life is based on a series of lucky or unlucky draws in which you had no part.  If you have a natural inclination towards music or law, you got lucky and were born with it.  If, one day, you find that you have contracted Alzheimer’s in your 50′s, you’ve been struck with bad fortune and not the consequences of a lack of judgment.  Most of the things that happen to you in your life are completely outside of your control.

That includes those sometimes short, sometimes long periods where things are in your control.

Contradiction?  No, and that’s why I wanted you to stay with me before getting too pugnacious.  There are absolutely periods in our lives that are safe from the cruel ravages of the world.  Some of us may spend our entire lives in those harbors, unaffected by the awful things that blindly claw at us.  When I talk about wasting time, it’s people like me in a time like this to which I refer.

We, those who have been blessed with a reprieve from the utter crap that life can be, have perfected the art of squandering that gift.

In watching the Olympics, I’ve been struck by the dedication the best of them have.  Please understand I don’t mean “winner” necessarily when I say “best,” but winning is often the result.  These are people who have spent every day in devotion to their goal.  To their ideal.  They want to be the best at what they do, and they focused.  They didn’t get to choose to have flipper-like hands or the eternal build of a 12 year old, but they sure didn’t waste the opportunity.

I’m lucky if, after I get home form my cushy desk job, I spend even an hour on my writing.  That’s my ideal.  My goal.  I do it when it’s convenient.  But I have to be honest, I’m worrying more and more.  How much longer is convenience going to be a possibility?  Have I wasted my time in the harbor without realizing it?  Or are fears glimpses of a storm at sea, warning me to move while I still have time?

One response so far

Aug 19 2008

In Fact It Does Me Bad

Published by under Watching

I love This American Life a whole awful lot.  I’m not even a big radio show freak, but from the first moment I listed to it almost 10 years ago I knew it was something special.  At that point, I didn’t even know what I was listening to, I just knew I had hit upon something special.  It helped that the first thing I heard of the show was Sarah Vowell’s brilliant American Goth bit, where she lets a bunch of goth kids dress her up for a night on the town.  Until I connected that bit to the title “This American Life,” I had thought it must be some treacly piece of Americana, where wholesome stories of wholesomeness were foisted upon people in need of restoring their image of their nation.

If you remove the treacly part and the wholesome part, I guess the rest of my conception was sorta right.

If you didn’t know, “This American Life” is now putting out a weekly free podcast on iTunes and on their site.  If you haven’t given it a try,  you should, and I have a place to start (if you haven’t already listened to “American Goth”, in which case…yeah, start there).

This week’s episode – which hopefully is still posted – is called “Break-up.”  I’m hoping you can guess what the subject is.  As is their form, the show examines the issues of breaking up from a couple of different angles.  The best is the first.  Act 1.  “Dr. Phil.”

No, not that one.  Better than that.  See, this act is the story of writer Starlee Kine’s breakup with her boyfriend, in which lyrics of Phil Collins songs were inadvertantly tossed out during an arguement.  In her desire to let go of the pain, Starlee decides to write a pop love song.  And somehow convinces Phil Collins to give her advice.

Starlee Kine

The result of all this was a song called “The Three Of Us.”  I kept expecting not to hear the song at all, because there was no way it was going to turn out well.  And then she played it – both for our benefit and for Phil Collins’ – and, egads, it was kinda awesome.  In that amateur but heartfelt song way.

But wait, there’s more!

Try to listen to the story itself before you follow my next link.  If not, it’s cool.  The producers realized that the emotions of the song they had constructed changed depending on the arrangement of it, and decided that they would hold a contest.  Send in the best arrangements or covers of the song and they’d post the winners.  As you’d expect some of them are meh, but a few are bloody awesome.  Especially that cover by We Were Pirates.

It’s a great example of the kind of amazing stuff that comes out of “This American Life,” which on top of being a great show is also the best source of writing inspiration I’ve found.  Check it!

I’m ok with second best.

Just love her more and love me less.

I don’t know why I love you, but I do.

I really do.

It doesn’t do me any good, In fact it does me bad.

‘Cause you’re oh so gone, and I’m oh so sad.

- “The Three Of Us” Lyrics by Starlee Kine; Music by Joe McGinty and Julia Greenberg

One response so far

Aug 18 2008

I Love My Blog When…

Published by under Blogging on Blogging

I look at what search terms got people to my site and I see something like:

cat hair mustache

No responses yet

Aug 18 2008

*Hacker slaps Saalon around a bit with a large trout

Published by under Randomness

So on Saturday I get to my computer and there’s an iChat window up from someone named ColdTrout.  It says one thing: “hi”.  Thinking it’s one of my friends who’s just changed their screen name, I respond with a “hi” of my own.  And I get this in response:  “Who are you?”

Ok, so this is some kind of stupid game.  “You said hi to me,” I reply.  “No,” ColdTrout says, “you said hi to me.”  Screw this crap.  I close the window and go about my day.

Later in the day, another person with Trout in his name hits me with a “hi” and I ignore it.  I probably know the person, I think, and they’re being stupid and immature and if I wait they’ll just come clean.  Or it’s someone I don’t know, and I’ll ignore them and they’ll go to find someone else to play with.

Sunday night rolls in and SeveredTrout sends me a message.  This one is a little creepier.  “are you going to die.”  Hmm, ok, so the game is escalating.  This time I reply.  “Everyone does, eventually.”  Because the proper response to stupid internet mind games is to reply with banal philosophy. Clearly.

By this point I’ve googled every *Trout name I’ve heard from to no avail.  I’d search for “trout,” but we all know that would get me nowhere.  So I’m really happy when SeveredTrout himself gives me the clue I need.  “why do these trout bots keep finding me?”

A Little LISP

A Little LISP for our bot

Trout bots!  Got you!

As soon as I realize I’m talking to a bot I start looking at the conversation differently.  I find people making vague references to these bots that pop up on IM and how they used to be Salmon bots but as of August 3rd these TroutBot things have been rearing their head.  And the TroutBots might be more malicious, fishing for information and occasionally dropping the personal information that led them to contact you into the conversation to freak you out.

I think back and decide the responses I’ve gotten could have been bot-generated, except that they are occasionally a little too in-response to things I’ve said.  And either way, this entire phenominon is starting to weird me out a little bit.  I flash myself into some kind of cyberpunk world and wonder if I’m the target of a copy without an original.   Then I actually, you know, read the Wikipedia entry on them and it all makes sense.

The Laughing Man

The Laughing Man strikes!

The TroutBot is not responding at all. Its purpose is to randomly connect two screen names and route their messages between each other.  So each person thinks they’re talking to *Trout, but truly are talking to each other.  The big difference with the *Trout is that, unlike the *Salmon, *Trout drops in random questions and phrases to further confuse the issue.  I’ve also heard that it occasionally changes words in actual responses.  Interesting.

It’s possible the purpose of the *Trouts is to use a now familiar hack to get people to reveal personal information about themselves.  I’m not sure.  It was fun to get a genuine sense of online creepout, which doesn’t happen very often anymore.  If you get hit with one, try playing along for a bit.  It’s fun.  But be careful with what you say, since this is a hack and could have malicious intent.

Or maybe there’s a ghost in the wired.

One response so far

Aug 16 2008

Even Apple’s Errors Are Cooler

Published by under Randomness

There’s some seriously annoying bug in Apple’s iPhone Crash Reporter Tool.  It crashes.  Seriously.  Every time I plug my iPhone in . It isn’t doing anything bad, thankfully, but seriously.

I’d be angry if the error wasn’t the best error ever:

mutating method sent to immutable object

No responses yet

Next »