- Feature Articles
- CodeSOD
- Error'd
- Forums
-
Other Articles
- Random Article
- Other Series
- Alex's Soapbox
- Announcements
- Best of…
- Best of Email
- Best of the Sidebar
- Bring Your Own Code
- Coded Smorgasbord
- Mandatory Fun Day
- Off Topic
- Representative Line
- News Roundup
- Editor's Soapbox
- Software on the Rocks
- Souvenir Potpourri
- Sponsor Post
- Tales from the Interview
- The Daily WTF: Live
- Virtudyne
Admin
That process has been going on since - when? late in the last century. Somebody starts a forum or a mailing list demanding something to happen, which generates a heated debate that dies off after a few weeks. Rinse and repeat.
The dirty little secret is that most vendors of commercial genealogy programs don't want an efficient and reliable data exchange method. They want their users locked into their proprietary turfs.
"Dinosaur Bob" has been the one decent exception to this rule, but now it's been a long time since I saw him participate in an open discussion. Maybe it's me who haven't been to the right places. I don't care much anymore, neither; I'm rather content with my own project Yggdrasil which doesn't even try to be "GEDCOM-compatible".
Admin
To build a building we have teams of engineers, labourers (of varying specialities) and technicians. To write software we bundle a handful of graduates together, add a sprinkling of hobbyists who have heard Java and XML in the same sentence and insist they revolutionise the world. Doesn't help that somewhere in there we let the Programmers make business decisions, and the managers make technical decisions and we have a recipe for disaster.
Probably also doesn't help that people seem to think that we can make generic programs, or standardise processes for everything we do. The reality is that the planning involved in software is often not done well - though I'm not sure how it can be improved. How can you estimate effort, without putting in similar effort to actually complete the task (that is, to reduce everything to such a low level that you can reasonably estimate it, you've probably created a prototype - which not only takes time, but then reduces the effort required)? Experience? Not always helpful, especially where each piece of work you do is significantly different, has different technology limitations and will probably involve significantly different hurdle to the last one. I worked with someone who used to get angry when managers wanted percentages on how complete a particular task - in his way of thinking (and I can sort of relate to it, I must admit) the work was either finished or it wasn't - the percentage complete could not be quantified until after the fact (that is, afterward we can say "on the 23rd July it was 50% complete but we didn't actually know that on the 23rd of July).
I used to be amazed at how estimates evolve. A seemingly simple task is estimated at 1 day by a developer who (rather arrogantly, perhaps) thinks they can knock it off in about an hour. Their Team Leader doubles that to introduce a safety net, and the Project Lead doubles it again. Even with 6 layers of management (none of whom want their head in the chopping block) this "trivial" task is estimated at 32 days - plus management overhead and testing. I can't help but think that a lot of it (as has been discussed/argued/fought over here squillions of times is the lack of interest from Techs in management, and the lack of understanding in management of technical areas (even at a reasonably high level). It bothers me that I've had managers who (even at a simplistic level) do not understand that WebMethods is different to C - or (worse still) that a Unix Server is not a Mainframe ("Yeap...we'll get them to do it on the Solaris Mainframe..." - and no, we don't use IBM System z). Unfortunately (and perhaps ironically), managers with technical backgrounds often struggle at the other extreme - to let go of the technical - and invest too much in projects - micromanaging and dictating technical specifics.
Basically a Manager should have a view that is neither too high (so high that everything is a black box) nor too low (so low that they feel personally responsible for every code path). It is a difficult balance, and I'd like to think erring by having too low a level view is probably less harmful than too high - although both can be very dangerous.
Admin
That is an excellent example of management not understanding the Pareto principle (the 80/20 rule), which applied to programming implies that 80 % of the functionality will be achieved by doing 20 % percent of the work. In the end, to make perfect software covering all corner cases and guarding against every effect of user idiocy, the cost in terms of developer hours will rise asymptotically.
Admin
This looks a lot like a surrealist animal-classification system that some well-known (but not well-known enough for me to remember his name right now) philosopher once proposed, which went something like:
Admin
Jorge Luis Borges, in “The Analytical Language of John Wilkins”, perhaps?
Admin
I swear I've worked with this guys 'output' before. I worked with a small ISP startup at the begining of my career and I think this chap was brought in to do the company DB and billing system. He was an ex-civil engineer who "knew a thing or two" about computers and was quite heaviliy into his genealogy. The billing system was a MS Access database and a similar gem of software development best practice. Would the author of the post care to share the initials of the SDK author?
Admin
MvADD: Error writing to 'Merchant2/00000001/DEN_TINYCART/recent.dbf': Runtime error in /Merchant2/4.24/modules/util/DEN_TINYCART.mvc @ [00000054:000000be]: Line 1666: MvADD: Error writing to 'Merchant2/00000001/DEN_TINYCART/recent.dbf': Runtime error in /Merchant2/4.24/modules/util/DEN_TINYCART.mvc @ [00000054:000000be]: Line 1666: MvADD: Error writing to 'Merchant2/00000001/DEN_TINYCART/recent.dbf':
Masterful! dBase hilarity ensues.
Admin
Admin
I know a guy who wrote foxpro app in '90 and maintains it till this day. By now source is over 2MB, split into two files. New features are added, dead code is left alone, several if cases based on hardcoded customer variable (even for menu structure). Source control: what's that? Global variable slots are used up long time ago, instead db is used to hold runtime variables. Dbf table string fields are split to several sub-fields, length only known in source. We tried to convert it to latest fox but failed epicly. Complete rewrite would be in order.
captcha: opto - I opto out of memories of foxpro.
Admin
No. They will approach infinity.
Admin
CAPTCHA: iusto (use typelibs for inter-thread marshalling but now I only use them for dynamic dispatch.)
Admin
Our smart client rewrite all FoxPro apps to java based apps. Good business decision I think. What you say?
Admin
Because genealogy file formats are extremely complex and varied, a fact apparently unknown to the flippant commentators here.
The database specs are confidential and not shared by the respective developers. To wit: Legacy (Access), Personal Ancestral File (home-grown), Roots Magic (formerly CodeBase, now SQLite), Family Tree Maker (formerly Windows Compound File, now VistaDB, no relation to Windows Vista), etc. etc. If you try to just "read a file", you are in for a world of hurt.
GEDCOM does not accurately capture the various data models, hence the need for GenBridge.
Admin
I think we are missing the real issue here, which is how does a small, one-man shop balance the day-to-day exigencies of supporting customers, fixing bugs and rolling out new features on one hand, versus taking a year (or two) off to completely rewrite one's app?
It's easy to dismiss the design decision to choose FoxPro twenty years ago. Back then, it was a very effective way to get an app out quickly, running on a 386 (as has been pointed out). But we don't all have the luxury of stopping the business and go code in our lair full-time.
"Genealogy software" should not be dismissed derisively. The genealogy data model of relationships, sources and citations is complex. Genealogy is probably the only pursuit where mutually contradictory assertions must be preserved and entertained, sometimes forever, as neither can be conclusively disproven because evidence is lost to the passage of time. Would you have guessed that you need to store multiple birth and death dates, and multiple sets of parents? Only your Mom knows who's your Daddy for sure.
I know TMG and Dinosaur Bob. Despite its shortcomings, his software is highly regarded by his customers as the only genealogy program to accurately capture the complexities and intricacies of the craft. He has focused on implementing features, for the benefit of his grateful customers. Most of them don't give a hoot what he writes in (except of course when they bump up against Unicode).
I'd love to hear from any self-employed developers here, who have successfully rewritten half a million lines of code and stopped being paid for a couple of years.
Admin
Yup, that's the one.
Admin
You have no chance to survive make your time. Ha Ha Ha Ha ...
Admin
Wonderful ... commentators here have a hard time realizing how f'ing retarded some crappy programmers can be - as in expeting them to even think anyone would want to steal their useless disgusting code ...
Meh.
Like seriously ... 'A Software for Genealogy' .
Lol ? you sure you don't want a specific software to do explorer tasks for images only, and another for text files only ?
Admin
Dude . lol . One or two years to rewrite a genealogy app . Return to cleaning up the desks thx.
HALF A MILLION LINES OF CODE !!!! ZOMG 1101011110101111 !!!
Right . when you code crap, Mloc is probably a good performance measure.
After all it can be directly related to HDD space required and thus perceived duration of install time . brilliant.
Admin
Façade design pattern, no?
Admin
I am laughing so hard right now.
Admin
Programmers of “static” languages accuse dynamic code of being untyped and unchecked mush. Programmers of “dynamic” languages accuse static code of being sclerotic, myopic and inflexible. There's some truth in both, but much misunderstanding too.
Admin
And I would InstaQuit that job. I'd rather panhandle or whore myself out at the truck stop.
Admin
Admin
Static and dynamic must coexist. I love C#4 for it.
Admin
C#? Objective C has been managing mixed static and dynamic typing since 1990.
Admin
Admin
Well son, Viscomte Cranborne, you died in 1947 and know squat about programming. Stay down!
Admin
IDispatch is root of all evil, being COM! Even better, XPCOM (the component system used by Mozilla) is a horrible reimplementation of this dreck. The one thing going for COM and XPCOM is that they do not need three different classes to expose a single class to RPC like J2EE. Thankfully I've never had to use CORBA to see how bad it can get.
Admin
You mean like, say, Adobe Illustrator and Microsoft Word? Just wondering.
Admin
women whose given name contains liz.flp
...get added to Bob's little black book, because he has a Liz fetish. Seriously, what utility could this actually provide? And WTF is with the whitespace in a filename?! Forbidden!!!