• (cs)

    people whose comments are FRIST.flp

  • Aves (unregistered)

    Bob's my uncle.

  • (cs)

    GbComment(1) // frist!

  • (cs)

    FoxPro anyone..?

  • My Name Is Missing (unregistered)

    The proper choices would be (1) quit or (2) write your own SDK against the file formats. After all Dinosaurs were all killed by a giant meteor so clear Bob can't exist.

  • Comments (unregistered)

    “Your comment lacks proper philosophy.” “You lack sympathy for hard-working commenters” “You do not know how to read other people’s comments” “You are filing too many comments to keep up”

  • (cs)

    Reminds me of a system we're in the process if killing. It was written by a company in the US, from where it's hosted on their servers. We're based in the UK, and communicate with this thing via an undocumented and broken SOAP API. Nothing is logically or intuitively named, a search typically returns duplicate records, other records that shouldn't match the search criteria, and omits some that should match. Any modification to the configuration takes at least a few weeks, or else gets forgotten, although we always get promptly billed. The original developer quit the company before the system was complete, and it's now maintained sporadically by a guy in a completely different time zone to the vendor.

    When I asked how such an unfit for purpose system got commissioned from a company who clearly had no track record in the market, I was told that the one of my company's directors got a free ski trip out of it (the vendor's based in Colorado). As a result, a cheaper system from a larger vendor who was well known in the market was ignored.

  • codemonkey73 (unregistered) in reply to Ol Bob

    TMG is indeed a FoxPro based program.

    Gb no doubt stands for GenBridge which is a quite widely used now SDK for reading in genealogy file formats and makes a complete mess doing so with some of them,

    GenBridge is written by the TMG author IIRC.

  • (cs)

    Me, I'd flp out if someone was that terse and useless.

    Of course, Dinosaur Bob is probably a one-man shop (or as near as damn-it) which has an SDK to read the data because that's what you have to have in the modern world. John is probably the only person really trying to use this SDK, especially if you consider only experienced developers with a sense of how software should be built.

    None of this really excuses Bob's behaviour, of course. My fondest memory of software customer support was a guy (whose name now escapes me, this was almost 25 years ago, but goggle says it was D. P. Johnson) who provided an alternative floppy controller driver for Microware's OS9 (no relationship to MAC OS 9) on the TRS-80 Color Computer. It generally worked really well - the CoCo's floppy controller was a capable beast somewhat hampered by the computer it was connected to - but I had some problem or other (details are lost in the mists of time, sorry), and phoned him up directly. He was polite and technically-aware, and understood my problem immediately. A patched version of the driver arrived in the post (c'mon, this was 1987 or so, did you really think he emailed it to me?) shortly afterwards.

  • Geoff (unregistered)

    I am thinking he should have just learned to parse the files directly. I mean they can't be much more complex then Bob's API. As far as if that is safe or not, I can't imagine creating more bugs and corrupting file formats is any more likely than by using Bob's API.

  • Leif (unregistered) in reply to codemonkey73
    codemonkey73:
    TMG is indeed a FoxPro based program.

    Gb no doubt stands for GenBridge which is a quite widely used now SDK for reading in genealogy file formats and makes a complete mess doing so with some of them,

    GenBridge is written by the TMG author IIRC.

    TMG is the common abbreviation for The Master Genealogist. It's a somewhat outdated genealogy program, but with a very good data model. The "TMG" format is actually a zipped backup file of the dataset. I was a TMG user from 1997 to 2005 when I migrated all my data to a homegrown PostgreSQL database, and immediately recognized all the filenames.

    And "Dinosaur Bob" must be Mr. Bob Velke himself ... a guy sticking with FoxPro in 2011. It doesn't even support Unicode.

    There's a good article about the sorry state of TMG here:

    http://www.tamurajones.net/TMG8PublicBeta.xhtml

  • (cs)

    I once worked for a company that built its DOS programs using a "graphics" library someone had purchased for the company. It was the typical collection of screen-clears, box-draws, text positioning, coloring, etc. However, for "convenience" everything was done through a single function call with parameters. It was torture to use this thing. For a simple screen clear, you still had to supply empty arrays of characters, ints and floats even though they were never used. For text on screen, supply your text, build an array with non-homogenous data. Sometimes you got lucky and the code would work. sigh I know it takes effort to write a good SDK, but I think it takes a special sort of stupid to sink below mediocre and write a really crappy one.

  • (cs)
    Bob refused saying that, “learning a new system would take away the productivity from actually fixing bugs.”
    Right you are, Dinosaur Bob, that's why good systems are sane, simple, and documented properly: it makes them easier to learn.
  • (cs)

    ROFL! The website (http://www.whollygenes.com/) for this is soooooo 2.0!

    OMG! It costs 60 bucks!

  • Patrick (unregistered)

    I would have asked Bob where the SDK was after seeing that mess. Looks like he didn't do any work at all.

  • Patrick (unregistered) in reply to ubersoldat
    ubersoldat:
    ROFL! The website (http://www.whollygenes.com/) for this is soooooo 2.0!

    OMG! It costs 60 bucks!

    [image] Nice graphic! He has l33t MS-Paint skillz.

  • robinwood (unregistered) in reply to ubersoldat

    No wooden table... I'm disappointed.

  • (cs) in reply to robinwood

    Use Gedcom, it's a Mormon-Format and it's failry standard but you do need a state machine to read it properly. But do get ready to have several ways to express the same thing in one file. It looks like @INDI 256423 01 NAME Stefan Maier 02 BIRT 03071985 03 PLAC Frankfurt 02 MARR @234569 03 PLAC Heidelberg

  • Kh3pra (unregistered)

    lol

    TMG => The Master Genealogist

  • Iceman (unregistered)

    The correct way to handle an API like this is to write your own API on top of the wierd one that handles all the crap and gives you a unified and consistent view.

  • Meta Ethical (unregistered) in reply to hallo.amt

    When they clear that data, then we'll drink bee nectar. Truly.

    Anyone see the fuse today? Zoe, my lob. What fools, we are, in this demented fay.

    Kiss, kiss. Kadafi is easy.

  • (cs) in reply to Argle
    Argle:
    ... However, for "convenience" everything was done through a single function call with parameters. It was torture to use this thing. For a simple screen clear, you still had to supply empty arrays of characters, ints and floats even though they were never used. For text on screen, supply your text, build an array with non-homogenous data. Sometimes you got lucky and the code would work. *sigh* I know it takes effort to write a good SDK, but I think it takes a special sort of stupid to sink below mediocre and write a really crappy one.

    Reminds me of Microsoft's IDispatch. Did they ever catch the guy who created that? Or is it a "cold case"?

  • (cs) in reply to Iceman
    Iceman:
    The correct way to handle an API like this is to write your own API on top of the wierd one that handles all the crap and gives you a unified and consistent view.
    Thanks. I would have never thought of that.
  • codemonkey73 (unregistered) in reply to hallo.amt

    Gedcom doesn't look like that at all. Try:

    0 @I256423@ INDI 1 NAME Stefan /Maier/ 1 BIRT 2 DATE 03 JUL 1985 2 PLAC Frankfurt

    would be the individual record you attempted to give.

    MARR belongs on a FAM record, not an individual and would look something like

    0 @F1@ FAM 1 HUSB @I256423@ 1 WIFE @I234569@ 1 MARR 2 PLAC Heidelberg

    While there may be a standard the quality of following it by all genealogy programs is absolutely terrible. GenBridge is advertised as being a better alternative to Gedcom as it happens!

  • Jeff (unregistered)

    At one of my first dev jobs after getting up to speed on their software and workflow (read: bug fixing process) I was told that I was "finding too many bugs".

    Apparently they would have liked me better if I was blind. Their superstar was a guy named "Dork" (well not really, but one letter different from that) that created 95% of the bugs I was finding.

    So, actually, blind and sloppy. That's what management truly valued.

  • Joffrey (unregistered) in reply to Jeff
    Jeff:
    At one of my first dev jobs after getting up to speed on their software and workflow (read: bug fixing process) I was told that I was "finding too many bugs".

    Apparently they would have liked me better if I was blind. Their superstar was a guy named "Dork" (well not really, but one letter different from that) that created 95% of the bugs I was finding.

    So, actually, blind and sloppy. That's what management truly valued.

    It sounds like they valued productivity and shipping product. Additonally, they probably also valued teamwork and getting along with others. Just saying.

  • (cs) in reply to Iceman
    Iceman:
    The correct way to handle an API like this is to kidnap the author, lock him in your basement, and force him to eat Hot Pockets and listen to Rebecca Black while being beaten with a catfish, and then force him to write a new API that gives you a unified and consistent view.
    FTFY.
  • (cs) in reply to dgvid
    dgvid:
    Reminds me of Microsoft's IDispatch. Did they ever catch the guy who created that? Or is it a "cold case"?
    IDispatch is a solution to the specific problem of how to call COM interfaces from a live-interpreted scripting language like VBScript.

    I'm not trying to defend it, merely to point out the fundamental underpinnings driving its design. A "Custom" interface (i.e. what any sane person would build for if designing an API to COM objects, more or less compatible with a reasonable definition of C++ virtual function tables) is hard to call from an interpreted language like that, while a combination of an invoke method and VARIANT parameters (evil one and all, granted) makes it fairly easy. To get the best of both worlds, derive your custom interface from IDispatch instead of IUnknown, and build the right invoke function (I think the MIDL compiler might do it for you...)

  • Mark (unregistered) in reply to Joffrey
    Joffrey:
    Jeff:
    At one of my first dev jobs after getting up to speed on their software and workflow (read: bug fixing process) I was told that I was "finding too many bugs".

    Apparently they would have liked me better if I was blind. Their superstar was a guy named "Dork" (well not really, but one letter different from that) that created 95% of the bugs I was finding.

    So, actually, blind and sloppy. That's what management truly valued.

    It sounds like they valued productivity and shipping product. Additonally, they probably also valued teamwork and getting along with others. Just saying.
    Ahh, yes, the glorious team. I'm on one of those now. A team. With a whole bunch of people to help. Many hands make light work, right?

    So I go to the meeting and explain the problem. Dumbed down, so they can understand it.

    Well what do you think we should do?

    So I explain the solution. Dumbed down, so they can understand it.

    Well how can we do that?

    I'd like to do it using a database and some scripts, which I could have already finished if I were working alone, but they don't understand databases and scripts. So I have to lead them painfully step by step through how to keep track of everything manually in a spreadsheet. "Well once we do step X for item Y we will want to remember that it is done so we don't choose item Y again later." "Oh, yeah, I didn't think of that. Can we (that means me) copy the row out of one spreadsheet and paste it into another so we will know which ones are done?" Yeah, we can do that.

    So after months we come up with a workflow everyone can understand. Now, who should do it?

    Me, of course.

    So here I am doing it the slow stupid way so the other team members, who contribute absolutely nothing but talk, can understand.

  • (cs)

    Complete documentation for your new S. S. Titanic:

    You have a fine ship. Use it properly and it will serve you well. If you have any questions about its operation, please contact Dinosaur Bob via his receptionist.
  • (cs)

    This is standard operating procedure for open source software.

  • B00nbuster (unregistered) in reply to Geoff
    Geoff:
    I am thinking he should have just learned to parse the files directly. I mean they can't be much more complex then Bob's API. As far as if that is safe or not, I can't imagine creating more bugs and corrupting file formats is any more likely than by using Bob's API.

    Absolutely.

    The real WTF (tm) is that he didn't learn to parse the format directly.

  • (cs) in reply to mott555
    mott555:
    Iceman:
    The correct way to handle an API like this is to kidnap the author, lock him in your basement, and force him to eat Hot Pockets and listen to Rebecca Black while being beaten with a catfish, and then force him to write a new API that gives you a unified and consistent view.
    FTFY.
    But what if he likes Hot Pockets?
  • (cs) in reply to PedanticCurmudgeon
    PedanticCurmudgeon:
    mott555:
    Iceman:
    The correct way to handle an API like this is to kidnap the author, lock him in your basement, and force him to eat Hot Pockets and listen to Rebecca Black while being beaten with a catfish, and then force him to write a new API that gives you a unified and consistent view.
    FTFY.
    But what if he likes Hot Pockets?
    Make him eat them before they cool properly.
  • (cs) in reply to Joffrey
    Joffrey:
    Jeff:
    At one of my first dev jobs after getting up to speed on their software and workflow (read: bug fixing process) I was told that I was "finding too many bugs".

    Apparently they would have liked me better if I was blind. Their superstar was a guy named "Dork" (well not really, but one letter different from that) that created 95% of the bugs I was finding.

    So, actually, blind and sloppy. That's what management truly valued.

    It sounds like they valued productivity and shipptting product.

    FTFY. Blindly chucking something out the door full of bugs in a way that alienates all your customers and loses you sales is not a good thing just because it's on time.
  • Paul (unregistered)

    There are a few of these oddball one-man shops out there, making software for niche markets.

    I use one such program. It has an appalling-but-powerful UI (in fairness, so do its few competitors). Bug reports are via email to the author. There are version numbers, but the only version available for download is the current release, they all have the same filename and often minor bugs will be fixed and released without a version number bump. I've taken to saving the "last known good" installer just in case a new update breaks anything important and I have to roll back.

    Similarities to Dinosaur Bob, thankfully, end there. This software actually is fit for purpose and well worth dealing with the idiosyncrasies of its development and release cycle.

  • Machtyn (unregistered) in reply to frits
    frits:
    PedanticCurmudgeon:
    mott555:
    Iceman:
    The correct way to handle an API like this is to kidnap the author, lock him in your basement, and force him to eat Hot Pockets and listen to Rebecca Black while being beaten with a catfish, and then force him to write a new API that gives you a unified and consistent view.
    FTFY.
    But what if he likes Hot Pockets?
    Make him eat them before they cool properly.

    Make him eat them before they've been properly heated.

  • GEDCOM? (unregistered)

    Use good old GEDCOM, with any extension tags prefixed with _.

  • Zekses (unregistered)

    I think the reason why they went with the receptioninst was because ticket system was also written using this SDK :)

  • (cs) in reply to frits
    frits:
    PedanticCurmudgeon:
    mott555:
    Iceman:
    The correct way to handle an API like this is to kidnap the author, lock him in your basement, and force him to eat Hot Pockets and listen to Rebecca Black while being beaten with a catfish, and then force him to write a new API that gives you a unified and consistent view.
    FTFY.
    But what if he likes Hot Pockets?
    Make him eat them before they cool properly.

    Irrelevant. Nobody likes Hot Pockets.

  • MadAdder (unregistered) in reply to Machtyn

    Microwave them without using that little browning sleeve.

  • Tom (unregistered) in reply to dgvid
    dgvid:

    Reminds me of Microsoft's IDispatch. Did they ever catch the guy who created that? Or is it a "cold case"?

    Thanks for bringing that pain back. You're a mean one Mr. Grinch.

  • MadX (unregistered) in reply to Aves
    Aves:
    Bob's my uncle.

    Uncle Bob's my father.

  • (cs) in reply to Leif
    Leif:
    ... a guy sticking with FoxPro in 2011.
    He's not the only one, either! Our bridge club, like many hundreds (thousands?) of others worldwide, need to use Dealmaster Pro to create pre-dealt hands. And which of course was and continues to be written in FoxPro >shudder<.
  • (cs) in reply to PedanticCurmudgeon
    PedanticCurmudgeon:
    mott555:
    Iceman:
    The correct way to handle an API like this is to kidnap the author, lock him in your basement, and force him to eat Hot Pockets and listen to Rebecca Black while being beaten with a catfish, and then force him to write a new API that gives you a unified and consistent view.
    FTFY.
    But what if he likes Hot Pockets?

    You aren't feeding him hot pockets because you care about weather on not he likes them. You are feeding him hot pockets for the same reason they used to feed prisoners bread and water for weeks at a time. It really fucks with your guts.

  • (cs) in reply to frits
    frits:
    Iceman:
    The correct way to handle an API like this is to write your own API on top of the wierd one that handles all the crap and gives you a unified and consistent view.
    Thanks. I would have never thought of that.
    I thought about doing that for the API I mentioned above. However, it dawned on me that that "master function" undoubtably called a collection of other functions that did the various operations. So essentially, I'd write functions to call one function that then called functions paired one-to-one with mine. Even though I was young when I encountered all this, I still found that squeamish to contemplate. I got shifted to working with unix stuff right about then so I just left the nastiness behind. curses!
  • A. Non (unregistered) in reply to PiisAWheeL
    PiisAWheeL:
    PedanticCurmudgeon:
    mott555:
    Iceman:
    The correct way to handle an API like this is to kidnap the author, lock him in your basement, and force him to eat Hot Pockets and listen to Rebecca Black while being beaten with a catfish, and then force him to write a new API that gives you a unified and consistent view.
    FTFY.
    But what if he likes Hot Pockets?

    You aren't feeding him hot pockets because you care about weather on not he likes them. You are feeding him hot pockets for the same reason they used to feed prisoners bread and water for weeks at a time. It really fucks with your guts.

    No, you feed him Hot Pockets because death by starvation is too good for him.

  • (cs) in reply to Joffrey
    Joffrey:
    Jeff:
    At one of my first dev jobs after getting up to speed on their software and workflow (read: bug fixing process) I was told that I was "finding too many bugs".

    Apparently they would have liked me better if I was blind. Their superstar was a guy named "Dork" (well not really, but one letter different from that) that created 95% of the bugs I was finding.

    So, actually, blind and sloppy. That's what management truly valued.

    It sounds like they valued productivity and shipping product. Additonally, they probably also valued teamwork and getting along with others. Just saying.

    Which is great, but it's SO much better to ignore bugs and ship a piece of crap than to properly document and track bugs, thereby risking hurting the feelings of the developer who coded them.

  • Marnen Laibow-Koser (unregistered) in reply to Ol Bob

    I think so. I don't know anything about FoxPro, but I do know a thing or two about genealogy software. I assume TMG is The Master Genealogist, which was indeed built on top of FoxPro.

  • (cs) in reply to MadX
    MadX:
    Aves:
    Bob's my uncle.

    Uncle Bob's my father.

    Father Bob's my ... no, best not go there.

Leave a comment on “S(adistic)DK”

Log In or post as a guest

Replying to comment #:

« Return to Article