Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Howfuckedismydatabase (howfuckedismydatabase.com)
229 points by malvosenior on Aug 26, 2010 | hide | past | favorite | 46 comments


http://howfuckedismydatabase.com/nosql/

Bob: So, how do I query the database?

Ed: It's not a database. It's a key-value store!

Bob: Ok, it's not a database. How do I query it?

Ed: You write a distributed map reduce function in Erlang!

Bob: Did you just tell me to go fuck myself?

Ed: I believe I did, Bob.


that is rather hilarious !


  Warning: oci_connect(): ORA-$$$$: Insert coin to continue
Fantastic!


This reminds me a story...

At my last job we used Postgres on a Windows server. Whoever initially set up the database pretty much stuck to the defaults.

Whenever we would read/write text to the db in code we were using functions that basically returned raw data. All of our text was encoding using UTF-8.

When using the Windows Postgres Admin tool to run a query that returned text, you'd occasionally see some weird characters (café), sometimes you wouldn't (café). Sometimes the query would fail due to invalid characters.

When I looked into it I quickly realized what was wrong - on Windows Postgres defaults to Win1252 encoding (which is a form of extended ascii). Normally when you are writing text to the database Postgres will convert the encoding but since we were writing raw bytes we skipped this part.

Win1252 contains some undisplayable characters which occasionally show up in a multi-byte UTF-8 character, explaining the failed queries. However it didn't explain why sometimes we got café and sometimes we got café.

It turned out that there were some scripts/apps that were reading file names on Windows and inserting them into the database without converting it to UTF-8. Windows uses UTF-16, although somewhere this was auto-magically being converted to Win1252.

This meant that our Win1252 encoded database contained both Win1252 text and UTF-8 text. I ended up doing a text dump of the database and writing a Perl script that would run through it all byte-by-byte and convert all characters above ascii 127 that were not part of valid UTF-8 sequences into UTF-8. This was then used to create a new database correctly encoded as UTF-8. It actually worked (although there were a few snags - we were getting some data from this service that would randomly include the sub character (ctrl-z) occasionally which would cause cat/split to stop running).


I am a fairly large database nerd and this is epic. The comic on the NoSQL is priceless.


I first read your reply as "I am a large database and this is epic" :|


The source, since it didn't cite it: http://www.agmweb.ca/blog/andy/2254/


Gosh, this is silly! You don't even have Excel listed. Amateurs!

(The Oracle < $1m answer is a RIOT.)


See http://howfuckedismydatabase.com/letters/

“After reviewing your site, I'm so glad we are sticking with emailed Excel spreadsheets for our mission critical database requirements.”

And:

“Databases? Fuck that. I use Excel's pivot tables.”


The Storray Engine didn't make the list. Guess I'm safe.

http://thedailywtf.com/Articles/The_Storray_Engine.aspx


Hahaha, I can answer how to convert that to .NET! I worked for a while as a web developer at a PR company. My predecessor had apparently heard of the Storray engine and converted it to .NET. He stored all the product information for one of our clients' sites in an XML file. Fortunately I only had to work on some CSS for that site, I would have been pretty distraught if I had to give up the awesome power of Storray for MSSQL.


There's the old joke about finding an SO. Attractive, intelligent, available: pick any two.

I recently realized that with programming languages, it's similar, but not quite the same. Runs fast, has libraries, isn't totally frikkin braindead: pick one, if you're lucky.

Just now I realized that much the same applies to databases.


It applies to much more than you'd expect. I've always heard it referred to as the golden triangle, in which the three best options are presented.

In IT services (or web design, or whatever, really), my first exposure to it was "Good, Fast, Cheap; Pick any two."


Used to apply that to PC builds as well.

Fast, Quiet, Cheap


I would say the people who made this site are fucked. Google is only showing PSA ads.


What ads?


Google Adsense is showing public service advertisements (freebies[solar power|green stuff]) instead of database related ads in the footer. Be gone with your no-script browsers!

Either it is: intentional -> High five for charity. an accident -> He really missed out on the $2-$6 CPC of the glorious database keywords... especially without having a button to go back. This page has what, 144 pts? That usually rounds off to 10000+ page views from my perspective. 1429 tweets, so maybe toss in an extra 7000 or so. That's at least $51~ he could have raked in based on 17k views times $3 avg a mille. :(


He can't run adsense on his site without having everything revert to PSAs. Google automatically switches a page to PSAs if there are certain "trigger" words in the URL related to sex, violence, profanity, tragic events, etc. The fact that the word "fuck" is in the domain name makes 100% of his pages a target for this filter.


Damn. I should've hired you as my Adsense consultant. I haven't used Adsense in years and I couldn't find the spot to put in the keywords? I was probably doing it wrong. Too busy fixing all my broken databases.


The mysql path ought to ask whether or not you're using Java, paying the 500$ license fee for the damned driver, and then remind you that you're extrafucked.


Anyone else thought that the site will try SQL injection and stuff to tell you how vulnerable is your database?


Could we stop pretending that "NoSQL" refers to a homogeneous set of technologies?


That's pretty unbelievably awesome.

If anything, I wish it was more complex though.


A dBase III option would be neat. They're still using that in certain places....


Oh gawd... I had to use it in high school, I've got B on that test. what a horrible thing it was


It probably should display informix as an option, but got a row lock error.


Just realized there is not an option for FileMaker Pro.


Rather you than me. Warning: mssql_connect(): Cannot open connection: Timeout expired. in /var/www/database/mssql/common.php on line 10


I got "Massively fucked", dunno why...


wait for it, wait for it.

Microsoft JET Database Engine error '80004005' Table 'tblTable' is exclusively locked by user 'Admin' on machine 'MyMachine'.

Ahhh there it is..


This is great. Requesting Sybase!


You should come up with a joke about it ;P


I chose sqlite, one concurrent user and I. Had this:

Warning: sqlite_open(): file is encrypted or is not a database in /var/www/database/sqlite/common.php on line 10



No Excel? :-)


Nor text files.


No DB2?


People who use DB2 don't need to go to howfuckedismydatabase.com


Exactly. Its rock solid. Especially when coupled with the lovely IBM i operating system. I'm guessing few here have touched these systems, and the younger crowd might not have ever even heard of them.


True fact: The main reason we didn't include DB2, is indeed because none of us have any direct experience with it. All the other jokes were informed by hands-on experience.


I worked for IBM for a year a while back as a student, my predecessor had at one point worked on some obscure DB2 fixes. He regaled me once with a story of how when looking for the root cause of a bug, he found a comment saying something along the lines of:

// Quick hack, will fix properly soon!

It was dated sometime in the 80's.


At some point I interfaced with a DB2 product and some of the code was seriously 30 years old and had goto's as a best practice... really.

Really.


Yes, I believe it. I've come across the same. But, something to remember, that code was written 30 years ago, and its still running. And the best part, its could be 30 year old code running on the latest and greatest hardware. GoTo isn't the right way to do coding, but at one point in time it was all a programmer had. But it still works, like it or not (maintainable or not).


Just choose Oracle, the answers also match, especially if you use DB2 Enterprise.


  Warning: pg_connect(): Unable to connect to PostgreSQL server: FATAL: database "postgreserrors" does not exist in /var/www/database/postgres/common.php on line 10


That's the joke, dude...

Re OP: Ah, the joys of being a Sybase user, nobody even makes fun of us.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: