Over-engineering Things

Things that don't belong anywhere else. (Check first).

Moderators: Moderators General, Prelates, Magistrates

User avatar
krynd
Posts: 194
Joined: Tue Jan 08, 2008 2:09 am UTC
Location: Basement Bedroom

Over-engineering Things

Postby krynd » Thu Jul 31, 2008 5:09 am UTC

Recently, I have taken on a simple project: convert my "Family Tree" into a nice little booklet people can read at the annual reunion.

In classic xkcd fashion: I over-engineered it to insanity.

It started simple, type it in Open Office and print it. Then I decided "I want it to look good", so I messed around with custom tab-stops and breaklines. Nothing bad, right? Then I decided I wanted a different font altogether, which would mean messing with the tab-stops, etc to re-align the formatting.

Now, the craziness begins. I decided "Oi!" (I felt a little British at the time :D) "I want this to be a record for posterity. I want it to not only be easily modified, but self-contained". So, I threw everything onto a CD-RW. Then I decided I'd better include a word processor, just in case, so I included Open Office Portable. Then I got to thinking, "what if the future doesn't have Windows?" (we can all dream) and started to include the source code, SKD, and URE (just in case) for Open Office. While doing this, I decided I'd have to include gcc - both source code and all the binaries (just in case). Then I decided I'd include some electronic books and text files I wrote to help the user compile Open Office and GCC (yes, I wrote a theoretical paper about compiling GCC on a system which doesn't exist yet. Worse yet, I recommended that they download a commonly-available (in their time) compiler to compile GCC. The initial thinking was that the version I included would be more likey to work better than a half-arsed backwards-compatibility fix their compiler would have), so long as they could go through the steps of compiling it. Then I thought about including readers for all the help files (which were mostly text files and PDFs). At this point, there was talk of rioting in the streets over something called a "virtual machine" (yes, I tried to explain the concept of a virtual machine (just in case) to someone who's probably used one his/her entire life) and how to emulate the necessary operating system.

About 8 hours after I started, I felt the need to include an operating system. Yes, I actually thought to include it all on a live CD (Ubuntu or Knoppix). At this point, I set it aside to do research on creating a custom live CD without compiling everything on the disk (ie a way to just "add it on", instead of compiling Ubuntu, its packages, etc along with my data). Somewhere along the line, I realized that people in the future might not have CD drives, or that Ubuntu or Knoppix might not work with their surely new-fangled hardware (I somehow doubt they've designed Linux to be that awesome. Damn you, temporal limitations!). Dumbfounded as to how I could work around this (a bit like sending a CD to Thomas Edison and telling him to play it using only his own inventions and some instructions on what a CD player is and where to buy one over 100 years in the future, only backwards temporally), I decided to take a break from it for a while after that.

Currently, I'm fighting the urge to have two versions of the CD: a "Developer Edition", which would be for me and any other tech-oriented people in my family, and a "Regular Edition" which would include just the files and maybe Open Office (cunningly sharing Free Software is always a Good Thing). It's a frightening prospect (the Developer Edition), because we all know what happens when nerds get together...

The only thing I can hope for is that when I get a job writing code/designing systems, that I remember the lessons I've learned from today: build a time capsule, stow a laptop and set of copies on backup media (CDs, DVDs, flash drives) in a lead-lined, concrete box in the capsule, and modify your DNA so a "tattoo" will appear on your children's back on their 18th birthday with detailed instructions on where to find the capsule. As a last resort: host it on a website and burn several copies on CD to pass around the family (just in case).

tl;dr:
This is what happens when you give someone who reads xkcd a simple project (convert "family tree" to a booklet). It went from "hey, I'll just type this tablet of information into a document, and print it out for everyone" to "how can I install Linux on a computer 100 years in the future?".

My question (sorry for the story, I just thought it was too good to pass telling you all) is: have you ever over-engineered a simple project like this, especially to this degree?



EDIT: I just noticed something strange (that I'm not sure others have noticed, at least not in the "Cautionary" thread): the alt-text is the same in both linked stories. I am beginning to doubt the validity of Randall's assertion. Then again, he might have just forgot to write his assertions properly. He's had trouble with this before.
Dangermouse wrote:I hope this doesn't mirror too much of what you've read--and btw, you should read less and do more. No one takes good pictures or runs a marathon sitting on their couch surfing the internet.


WCG xkcd team

User avatar
Spoffin
Posts: 509
Joined: Mon Nov 26, 2007 12:51 am UTC

Re: Over-engineering Things

Postby Spoffin » Thu Jul 31, 2008 7:47 am UTC

No, I've never done that.


You forgot about the language issue though.
The thing to remember about Spoffin is that he's playing by rules no one else understands

User avatar
Bruce
Posts: 447
Joined: Tue Feb 12, 2008 11:44 am UTC
Location: Melbourne

Re: Over-engineering Things

Postby Bruce » Thu Jul 31, 2008 8:16 am UTC

Indeed in the future we will all only know newspeak.

My main example is my todo list. It started as a text file. Eventually moved to Excel. Gained lots of cell formulas in excel. Some of these were upgraded to VB. Now it is really a small(ish) VB program pretending to be a todo list.
COMFORT, n.
A state of mind produced by contemplation of a neighbor's uneasiness.

User avatar
joff
Posts: 166
Joined: Wed Mar 12, 2008 12:28 pm UTC
Location: Melbourne, Australia
Contact:

Re: Over-engineering Things

Postby joff » Thu Jul 31, 2008 8:53 am UTC

What if computers of the future aren't x86 based... DID YOU THINK OF THAT? NO? WELL YOU'RE SCREWED NOW!
mostly_true_comics wrote:...we're forgetting about the geopolitical ramifications of such an incursion. If you think the Morloks, Molemen, and Lord Kinbote are going to sit still while you tunnel through their territory, think again.

28/♂/hetero/NZ

User avatar
EdgarJPublius
Official Propagandi.... Nifty Poster Guy
Posts: 3725
Joined: Tue Oct 09, 2007 4:56 am UTC
Location: where the wind takes me

Re: Over-engineering Things

Postby EdgarJPublius » Thu Jul 31, 2008 10:09 am UTC

CDs are already slowly going out of fashion!, and it can be only a matter of time before other solid state removable memory devices follow suit.

The only solution then is to create a corporation to pay for some webspace on which to host your project. This has the advantages of perpetuity, ease of modification and ease of distribution. In fact, using this method, you could open source your family tree! ensuring it's continued relevance and accessibility.

Although, 100 years might be a bit optimistic, as no doubt the Technological Singularity will have put an end to modern humanity at least 50 years prior and no amount of foresight can predict what will come next or whether it will have any interest in family trees.
Roosevelt wrote:
I wrote:Does Space Teddy Roosevelt wrestle Space Bears and fight the Space Spanish-American War with his band of Space-volunteers the Space Rough Riders?

Yes.

-still unaware of the origin and meaning of his own user-title

CogDissident
Posts: 761
Joined: Wed Apr 02, 2008 3:34 pm UTC
Contact:

Re: Over-engineering Things

Postby CogDissident » Thu Jul 31, 2008 2:20 pm UTC

The AIs created in the tech singularity will probably keep humans around for the random element. There are always a few forms of research that cannot be performed by pure logic, and they'll always need our random, wierd, certifiably insane viewpoints to advance science. (No machine would have ever postulated quantum mechanics, or string theory)

User avatar
Macbi
Posts: 941
Joined: Mon Apr 09, 2007 8:32 am UTC
Location: UKvia

Re: Over-engineering Things

Postby Macbi » Thu Jul 31, 2008 3:01 pm UTC

CogDissident wrote:The AIs created in the tech singularity will probably keep humans around for the random element. There are always a few forms of research that cannot be performed by pure logic, and they'll always need our random, wierd, certifiably insane viewpoints to advance science. (No machine would have ever postulated quantum mechanics, or string theory)

Then they'll just create their own race of more efficiently unpredictable minds.
    Indigo is a lie.
    Which idiot decided that websites can't go within 4cm of the edge of the screen?
    There should be a null word, for the question "Is anybody there?" and to see if microphones are on.

User avatar
krynd
Posts: 194
Joined: Tue Jan 08, 2008 2:09 am UTC
Location: Basement Bedroom

Re: Over-engineering Things

Postby krynd » Fri Aug 01, 2008 1:53 am UTC

Spoffin wrote:You forgot about the language issue

Drat! I knew I was forgetting something. Unfortunately, I lack the knowledge or funds to translate the files. Then again, 100 years is a long time. Think I could master the world's (and Kingon) languages in that amount of time?

joff wrote:What if the computers of the future aren't x86 based?

I'm not sure it'd be outrageous to assume that at least a few computers are using that architecture. Intel's tried to move away from that architecture for years, and we're still using it. [/informational joke about an absurd idea that sadly might be possible]

EdgarJPublis wrote:CDs are already slowly going out of fashion, and it can only be a matter of time before other solid state removable memory devices follow suit

True. Then again, I don't think it'll be completely gone in 100 years, if only because all the proletariots have invested in it for so long that someone will still use it (even if it is an old guy who regularly screams "get off my space lawn!"). Look at record players. Some people still have them, and some even still use them (in fact, some "audiophiles" are going back to records because of the "warmer" sound they have. I personally think they're going back because they realize how crappily-recorded the music they listen to was, and now want to cover it all back up again).

EdgarJPublis wrote:The only solution then is to create a corporation to pay for some webspace on which to host your project

What if the company goes under? They'd have to constantly be paying for webspace, and hope that the server cluster didn't go down without a viable backup. It's still pretty risky, especially since they'd have to sell some product to finance my project, because I can't afford to pay hosting for the next 100 years (even on a $5/month plan, which likely would be worse than failure because I'd implicitly trust them to do things they likely wouldn't do, but would say they will).

To make this remotely viable, I'd have to brainwash several CEOs to hide my project on their servers, and to keep constant backups of it. I don't have any Manchurian skills (yes, I know, that was about the president of the US, but it's a similar concept. Bear with me...), and still couldn't trust that their companies wouldn't go under. I mean, look at SCO. Last I heard, they were going under because of their patent trolling.

CogDissident wrote:The AIs created in the singularity would probably keep nerds around for the random element
There, fixed it for you. The common Joe/Jane out there would be too illogical for them. I mean, even Spock could barely handle our illogical nature at times, and he was half-human! Joke is that Spock's half-human nature gave him some idea into the nature of our illogic, that could act as a buffer keeping him sane. Hopefully I won't be innundated with Trekkie hate mail now.

Anyway, to all those who said that the technology would outpace my project, I'll highlight my initial "solution" (yes, I seriously considered this for about 2 minutes).
Me wrote:The only thing I can hope for is that when I get a job writing code/designing systems, that I remember the lessons I've learned from today: build a time capsule, stow a laptop and set of copies on backup media (CDs, DVDs, flash drives) in a lead-lined, concrete box in the capsule, and modify your DNA so a "tattoo" will appear on your children's back on their 18th birthday with detailed instructions on where to find the capsule. As a last resort: host it on a website and burn several copies on CD to pass around the family (just in case).

The theory behind the tattoo idea was that it'd be passed down through the generations, so that someone would know where to find it. I threw the idea away when I realized it would only work if in-breeding were allowed (which is kind of messed up), because random genes couldn't be completely predicted (ie I can't guarantee the "tattoo" gene will be 100% dominant in the genome).

I'm also regretting the "host it on a web server" idea, because of what I wrote above in response to EdgarJPublis. Then again, it's better than nothing, and at least it'll work for a while. Honestly, 100 years was beyond a lofty goal, because families grow apart for political reasons (ie someone doesn't want to talk to someone, fragmenting the family somewhat. If done by enough members, it renders the data incredibly inaccurate and speculative at best), or won't report changes to the upstream (me or someone who's foolish enough to take over).

Actually, given what I just wrote, I'd like to issue this friendly reminder: when you make a change to an open source project, report your changes to the upstream. If you don't, your project will inadvertantly fork from the main project and you'll become an "orphan". Just think what that'll do to Little Bobby (Drops Tables)'s psyche when he finds out he's an orphan. Remember: only a real programmer can responsibly maintain a project.


Anyway, what "over-engineered" ideas have you had/implemented. I thought Bruce's was pretty funny, and likely something I'd do (I've once thought to add network support to notepad, until I remembered that I could use Subversion to manage multiple copies of the "same" list on multiple machines). I hear on here all the time about people writing calculators in Python because (for some reason or another) they don't have one on their machine (didn't install it? Who does that?), etc. Surely, someone here must have an over-engineered Python-powered calculator that is practically on the same level as Emacs (note: I use Emacs on my Linux box. I'm allowed to joke about it. Please no religous wars).


tl;dr: The reasons you mentioned are why I eventually dropped the project. I was able to save myself from over-thinking things to death... at least this time...
Also, what have you all over-engineered? It doesn't have to be a completed project (mine wasn't. I stopped before adding my own custom kernel and designing my own circuit boards), just something you've let go insanely out of context before reeling it back in.


Reasons Edited: fix formatting errors (quote blocks and inadvertant premature closure of italics block), add tl;dr section.
Dangermouse wrote:I hope this doesn't mirror too much of what you've read--and btw, you should read less and do more. No one takes good pictures or runs a marathon sitting on their couch surfing the internet.


WCG xkcd team

User avatar
EdgarJPublius
Official Propagandi.... Nifty Poster Guy
Posts: 3725
Joined: Tue Oct 09, 2007 4:56 am UTC
Location: where the wind takes me

Re: Over-engineering Things

Postby EdgarJPublius » Fri Aug 01, 2008 6:56 am UTC

I was talking about a corporation as in a legal entity rather than a business.

A properly formed corporate entity will never die and provided sufficient initial investment will be able to maintain your web-space indefinitely (at least until the singularity renders webspace nonexistent, but as already mentioned, post-singularity humanity will probably neither need nor want family trees)

You don't need to brainwash any CEO's, just employ a suitable number of lawyers and insurers, the Lloyds of London have maintained similar ventures (structurally similar, not as in other bids to maintain family trees) for hundreds of years on no more income than interest and the fact that until the last year or so, holding debt was actually more valuable than getting paid (and likely will be again once the current credit/foreclosure crisis is dealt with) (for reasons that I have neither the time, inclination nor intelligence to understand, let alone explain)
Roosevelt wrote:
I wrote:Does Space Teddy Roosevelt wrestle Space Bears and fight the Space Spanish-American War with his band of Space-volunteers the Space Rough Riders?

Yes.

-still unaware of the origin and meaning of his own user-title

User avatar
Solt
Posts: 1912
Joined: Tue Mar 27, 2007 5:08 am UTC
Location: California

Re: Over-engineering Things

Postby Solt » Fri Aug 01, 2008 7:27 am UTC

I know what it's like to be on an inventive spree and thus I know you don't want to hear this, but.... the tech has already been invented.


Get some archival quality paper and some archival quality ink. Print out the family tree.

There's a decent chance the record will end up lasting longer than your family.
"Welding was faster, cheaper and, in theory,
produced a more reliable product. But sailors do
not float on theory, and the welded tankers had a
most annoying habit of splitting in two."
-J.W. Morris

liquidspoon
Posts: 10
Joined: Tue Jul 29, 2008 9:02 am UTC

Re: Over-engineering Things

Postby liquidspoon » Fri Aug 01, 2008 8:03 am UTC

I don't think regular CD-Rs last more than 10 years. The fancy archival ones might last longer, but I think you're looking for something more long term. Maybe cave paintings or cuneiform in clay tablets (still readable after 3500 years).

User avatar
krynd
Posts: 194
Joined: Tue Jan 08, 2008 2:09 am UTC
Location: Basement Bedroom

Re: Over-engineering Things

Postby krynd » Fri Aug 01, 2008 8:26 pm UTC

Solt wrote:I know what it's like to be on an inventive spree and thus I know you don't want to hear this, but.... the tech has already been invented.


Get some archival quality paper and some archival quality ink. Print out the family tree.

There's a decent chance the record will end up lasting longer than your family.

Damn you!!!!

Lol. Too bad I didn't think of that. Then again, they aren't modifiable, which is a major component of my project. It won't do any good to have a static family tree, unless I reappear as an AI construct and murder them all before it goes too far out of date (and claim in a "backup file" that the AI may have corrupted over the years).

Anyway, since this derailed my original point of making this thread (cases where you've over-engineered something), I close by re-affirming that I went with the web hosting + CD-Rs solution.

To fix the issue with CDs becomming out of date or falling apart, I guess I'll have to throw it on whatever new media is out there at the time. It's not like I wouldn't see at least some of them again (why would I build a massive project, then decide "the hell with you people", especially when I'm related to them?). They could re-distribute it to whomever, and it should remain fairly intact (it's not like there aren't already family members who've distanced themselves from the rest of us). I may even go through with the AI construct idea, if it becomes viable (I'll remember to switch off the homicidal sections of code, lol).

To the timestamp afficianados out there: I wanted to link up the story on my post in the "10, 20, 40 Years" thread with the story here. I thought it was somewhat funny (The Joker - funny, AKA homicidal irony), considering all the trouble I planned to go through to accomplish that goal.
Dangermouse wrote:I hope this doesn't mirror too much of what you've read--and btw, you should read less and do more. No one takes good pictures or runs a marathon sitting on their couch surfing the internet.


WCG xkcd team

User avatar
quintopia
Posts: 2906
Joined: Fri Nov 17, 2006 2:53 am UTC
Location: atlanta, ga

Re: Over-engineering Things

Postby quintopia » Fri Aug 01, 2008 8:50 pm UTC

No, I haven't, except for occasionally allowing feature creep in my software.

I vote for printing the whole thing out on archival paper, putting the pages in plastic sleeves, and then putting it all together in a heavy-duty binder. This is as overengineered as it could possibly get:

-forward compatible for as many generations as archival paper lasts, which is a Really Long Time
-easily modified and upgraded (pages slip in and out, and binders allow for new pages to be inserted)
-water- and drop-resistant (less likely to be crushed than CD or memory stick)
-very portable
-low (no) power consumption
-low price
-easily adapted for collaboration (can pull out all the sleeves and distribute them to different people at the same time)

Let's see you beat those specs with your fancy electomagick pretentiousness. The only con is that it takes more time to duplicate.
Last edited by quintopia on Fri Aug 01, 2008 11:35 pm UTC, edited 1 time in total.

User avatar
bbctol
Super Deluxe Forum Title of DESTINYâ„¢
Posts: 3137
Joined: Tue Mar 06, 2007 10:27 pm UTC
Location: The Twilight Zone
Contact:

Re: Over-engineering Things

Postby bbctol » Fri Aug 01, 2008 9:55 pm UTC

Buy an eee pc and a hand generator. Load it up. Bury it.

User avatar
quintopia
Posts: 2906
Joined: Fri Nov 17, 2006 2:53 am UTC
Location: atlanta, ga

Re: Over-engineering Things

Postby quintopia » Fri Aug 01, 2008 11:34 pm UTC

Are you crazy? No one sane's gonna bury $300 worth of perfectly usable equipment!

User avatar
TomatoBlue
Posts: 73
Joined: Sat Jun 28, 2008 5:16 am UTC
Location: Undisclosed, Midwest.

Re: Over-engineering Things

Postby TomatoBlue » Fri Aug 01, 2008 11:47 pm UTC

quintopia wrote:Are you crazy? No one sane's gonna bury $300 worth of perfectly usable equipment!

Sane?
This is xkcd. I don't think that's going to be a problem.

User avatar
Yakk
Poster with most posts but no title.
Posts: 11129
Joined: Sat Jan 27, 2007 7:27 pm UTC
Location: E pur si muove

Re: Over-engineering Things

Postby Yakk » Sat Aug 02, 2008 12:16 am UTC

Post it on usenet. Complete and unabridged.

Include a format to replace older entries.

Someone out there will cache it. :-)

Alternatively, give a copy to the Mormons.
One of the painful things about our time is that those who feel certainty are stupid, and those with any imagination and understanding are filled with doubt and indecision - BR

Last edited by JHVH on Fri Oct 23, 4004 BCE 6:17 pm, edited 6 times in total.

User avatar
mat-tina
Posts: 331
Joined: Mon Jun 02, 2008 3:33 pm UTC

Re: Over-engineering Things

Postby mat-tina » Sat Aug 02, 2008 1:36 am UTC

A month ago, I wanted to limit my computer usage (for political reasons), so I started writing a parental control timer to use on myself. Instead of starting it as soon as I turned the computer on (I need to use it for schoolwork), I added the script to the fluxbox startup file of my do-fun-stuff-waste-your-life user. However, running the script in userspace would not let me turn the power off. Of course, I could have messed with the sudoers file, to allow me to run shutdown, but I wasn't satisfied with something that easy. I needed something more powerful, something that would make me feel good: I needed to run it as root. Long story short, I wrote a daemon that closed everything upon receiving a message and made it autostart. It probably has some serious security implications, but it was worth it.
More serious over-engineering mostly occurred when I first started to program. Things like making a simple platformer game would end with me trying to write complex event based algorithms that I didn't quite understand myself, and no work getting done.
Felltir wrote:has no sig, and therefore something to hide
GENERATION n: The first time you see this, copy it into your sig on any forum. If n is an even number, divide it by 2. If it's odd, multiply it by 3 and add 1. Prove that this sequence converges to 1 for all n.

User avatar
'; DROP DATABASE;--
Posts: 3284
Joined: Thu Nov 22, 2007 9:38 am UTC
Location: Midwest Alberta, where it's STILL snowy
Contact:

Re: Over-engineering Things

Postby '; DROP DATABASE;-- » Sat Aug 02, 2008 7:19 am UTC

Once in high school I had an assignment to make an Excel spreadsheet. I spent the whole time writing and debugging a macro to basically do it for me, and never finished it. :(

Also, I still haven't finished my website, because every time I try, the spec goes from being a simple forum system to something with more features than phpBB, VBulliten, SMF, and whatever 4chan runs combined, and I spend a few hours just trying to decide how to design it such that all this stuff can fit in and interact properly before becoming overwhelmed and giving up. I've gotta stop doing that.
poxic wrote:You suck. And simultaneously rock. I think you've invented a new state of being.

User avatar
The Hyphenator
Posts: 791
Joined: Mon Nov 19, 2007 2:16 am UTC
Location: The Shades, Ankh-Morpork

Re: Over-engineering Things

Postby The Hyphenator » Sun Aug 03, 2008 1:51 am UTC

I might have told this story in another thread, but...

My friend, when he first started "programming" in TI-BASIC for the 83/84, wrote these two programs to add one to a variable repeatedly (pseudo-code):

#1

Code: Select all

:A++
:Display A
:Wait for user to press enter
:B = A
:Call program 2


#2

Code: Select all

:B++
:Display B
:Wait for user to press enter
:A = B
:Call program 1

:roll:
The image link changes whenever I find a new cool website.
Spoiler:
Image

User avatar
krynd
Posts: 194
Joined: Tue Jan 08, 2008 2:09 am UTC
Location: Basement Bedroom

Re: Over-engineering Things

Postby krynd » Sun Aug 03, 2008 2:08 am UTC

'; DROP DATABASE;-- wrote:Once in high school I had an assignment to make an Excel spreadsheet. I spent the whole time writing and debugging a macro to basically do it for me, and never finished it. :(

Also, I still haven't finished my website, because every time I try, the spec goes from being a simple forum system to something with more features than phpBB, VBulliten, SMF, and whatever 4chan runs combined, and I spend a few hours just trying to decide how to design it such that all this stuff can fit in and interact properly before becoming overwhelmed and giving up. I've gotta stop doing that.

Thank you for reminding me of my HTML class project that I turned horribly wrong.

Actually, it wasn't over-engineered so much as just too much "horsepower" for the task, which lead to project failure. It was a simple exercise demonstrating our ability to work with tables. To make it a "real-world kind of thing", we had to create and modify close to 30 tables by hand (Dreamweaver was not allowed at this point). As someone who embraces the ideals of programming (namely to automate things whenever possible to save my own time for creative things), I went and created a program to create the tables for me. While a fellow classmate may have thought it was a "cheat", I was never formally reprimanded, or even stopped; and the "courteous" classmate who told the instructor what I was doing was ignored (she shrugged it off and just let me continue. Probably because, for some idiotic scheduling reason, a programming student who was about to graduate got shoved into a 1st year class, and I guess she knew I knew how to do it the "easy" way).

So, my small C++ app was supposed to write the initial tables out (copied and pasted the raw data into notepad from the file, and set the delimiters by hand (took a whole 5 minutes. Probably should've found a way to automate that...)). All it was supposed to do was create the <tr> and <td> tags when it encountered the correct delimiter, and I would perform the necessary modifications (namely to throw some CSS in to make it "pretty") later.

Unfortunately, it turns out that my C++ skills are apparantly not sharpened enough for this simple task (seriously, it's just a nested loop that's using "find(innerDelimiter, currentPositionInString)" to know when to stop reading and start writing the <td> and </td> tags, and using a newline character to know when to advance the outer loop to start a new row). 6 weeks later, it still was not done (clearly credit for the exercise had expired). I shelved it, and now have this itch to find out what went wrong.

I do have to say, it was fun, although frustrating. It may not have been over-engineered, but it was certainly over-thought. In the end, I probably should've just typed it by hand like the rest of my class. Then again, I'd also have to turn in my nerd badge.

I'm slowly starting to realize that I should probably not work on any time-critical (ie short deadline) projects when I start writing professional code, at least not until I fix this problem of mine...


EDIT: The Hyphenator, at least he didn't try to use GOTOs...
Dangermouse wrote:I hope this doesn't mirror too much of what you've read--and btw, you should read less and do more. No one takes good pictures or runs a marathon sitting on their couch surfing the internet.


WCG xkcd team

User avatar
Babam
the Nearly Deleted
Posts: 1170
Joined: Tue Apr 01, 2008 2:05 am UTC
Location: A multiverse, wandering the couch
Contact:

Re: Over-engineering Things

Postby Babam » Sun Aug 03, 2008 8:05 am UTC

I <3 what xkcd/tech does to peoples brains :D
Spoiler:
crucialityfactor wrote:I KNEW he could club bitches!

SecondTalon wrote:Reality - More fucked up than Photoshop.

s/notwittysig/wittysig

User avatar
Bruce
Posts: 447
Joined: Tue Feb 12, 2008 11:44 am UTC
Location: Melbourne

Re: Over-engineering Things

Postby Bruce » Sun Aug 03, 2008 8:15 am UTC

krynd wrote:EDIT: The Hyphenator, at least he didn't try to use GOTOs...

Actually GOTO would have been better, because you would not run out of stack space like that example will.
COMFORT, n.
A state of mind produced by contemplation of a neighbor's uneasiness.

der_bAUer
Posts: 74
Joined: Wed Nov 01, 2006 9:55 am UTC

Re: Over-engineering Things

Postby der_bAUer » Sun Aug 03, 2008 12:29 pm UTC

For the last three years or so, I have programmed about six to eight different databases for time-management/note-taking/GTD. I am not content with any of them so far. My current project is intended to be the final solution.

Some things I want to eventually include in that database:
  • GTD (next actions / projects / contexts)
  • some kind of wiki
  • a tree of notes like those I currently manage with the Leo outliner
  • simple bugtracking for my programming projects

Some of the ridiculous requirements I have:
  • everything can be linked/cross-referenced with each other (i.e. I can set a link to a wiki page in the text of a GTD next action)
  • full-text search
  • a data format which is so general that it can be still read in 50 years
  • must be able to run on my Nokia n810 Internet Tablet (at least the GTD functions)
  • full version history (also helps avoiding link rot)

So far, I have thrown away about three designs already. I looked at RDF, but it seems to be too unwieldy for anything but metadata. Now I plan to store a generic graph structure in an SQL database. Directed and undirected edges are possible, so I can represent one-to-one, one-to-many and many-to-many relationships. Only UTF8-encoded text will be stored, no binary file formats. Storing the whole database as XML is not an option because of performance reasons and the lack of easily accessible XML databases for the n810.

I assume that SQL databases will still be around in 50 years. The general data structure (a graph stored in a transaction-time relational database) has to be kept simple, so that I can implement a generic browser on a weekend once I can't run python on a computer. While the binary format of some SQL database implementation will probably always be proprietary, the data can be archieved as an UTF8-encoded SQL dump.

It is important that the database is self-contained so that it does not rely on any characteristic of, say, the file system (i.e. assuming that the file system will always be case-sensitive). I assume that computers in 50 years still support the concept of a file.

User avatar
Dave Rapp
Posts: 79
Joined: Sun Mar 23, 2008 6:57 am UTC
Location: Illinois
Contact:

Re: Over-engineering Things

Postby Dave Rapp » Sun Aug 03, 2008 3:07 pm UTC

If you want a super long term family tree record, get a huge sheet of stainless steel and use a cutting tool of some sort to carve the words/records into it. To my knowlege, stainless steel sticks around for like a bajillion years for the same reasons that keep it from rusting. I'm too lazy to wiki it to find out exactly what makes it "stainless."
My webcomic is made with 100% LEGO products and I think you should check it out.
http://www.lq-comic.com

User avatar
krynd
Posts: 194
Joined: Tue Jan 08, 2008 2:09 am UTC
Location: Basement Bedroom

Re: Over-engineering Things

Postby krynd » Mon Aug 04, 2008 7:11 am UTC

Babamthegrunt wrote:I <3 what xkcd/tech does to peoples brains :D

No, it hasn't done it to our brains. Our brains were already like that to some extent. We (those like me) were already inclined to over-thinking things and just happen to apply this extreme amount of thinking to a tech problem (Correlation != Causation). For instance, before I ever got a computer, I remember thinking for hours on end about some philosophical or political idea. Before that I thought of causation and it's effects. Before even that, I thought about how to improve my skills at X, often for longer than I ever performed X (ex. hours thinking how to complete SMB on NES in the shortest amount of time. I was 4 at the time, so I have an excuse ;)).

Bruce wrote:Actually GOTO would've been better, because you would not run out of stack space like that example will

True, but then Dijkstra would roll in his grave, causing a buffer overflow (actually, he may have been alive at that point, but I digress).
Dangermouse wrote:I hope this doesn't mirror too much of what you've read--and btw, you should read less and do more. No one takes good pictures or runs a marathon sitting on their couch surfing the internet.


WCG xkcd team

User avatar
Emu*
Posts: 689
Joined: Mon Apr 28, 2008 9:47 am UTC
Location: Cardiff, UK
Contact:

Re: Over-engineering Things

Postby Emu* » Mon Aug 04, 2008 11:48 am UTC

You might like to know that the Mormons maintain a perfectly good piece of software for maintaining Family Trees. My sister is a member of a site whose primary I/O format is the Mormon one.

I think the word GEDCOM is involved somewhere. I once considered making her a web-app which would be "better" than the other software, til I realised there was nothing actually wrong with it.

If might be a semi-proprietary format, but it's maintained, which is the important thing. If they implement a successor, they will make converters. Good ole Mormons.
Cosmologicon wrote:Emu* implemented a naive east-first strategy and ran it for an hour, producing results that rivaled many sophisticated strategies, visiting 614 cells. For this, Emu* is awarded Best Deterministic Algorithm!


Return to “General”

Who is online

Users browsing this forum: No registered users and 15 guests