Announcing APDB: The World's Fastest Database

  • Roadhead 2010-04-01 09:05
    This thing does indeed fly, I've never gotten data in and out of anything so quickly. This is manna from Heaven!
  • Steve The Cynic 2010-04-01 09:08
    AP, yer a sick pup, no doubt about it.

    Although a quick look at the calendar suggests you aren't quite as serious as all that, in which case,...

    Yer a sick pup, no doubt about it. <-- This time for giving people ideas...
  • JayT 2010-04-01 09:10
    Using javascript to access a database directly...

    Yep I can't see a single flaw in tha... oh wait... in superfast days is security still important? no? great news :D

    Nice contribution to the calendar date :D
  • pubbing 2010-04-01 09:13
    Ha!!!!!

    It's my first one of the day. Thanks Alex.
  • Brompot 2010-04-01 09:14
    APril fools DataBase!
  • Gullible 2010-04-01 09:17
    ... for a few paragraphs at least :-D
  • SR 2010-04-01 09:19
    I'm truly in awe of this development. I'll spend the rest of the day researching. I've booked a meeting to propose APDB as our production database from next week.

    There are times when it's worth being on the bleeding edge! What a great date to be alive! :oD
  • smit 2010-04-01 09:22
    well played, sir
  • sadwings 2010-04-01 09:23
    Nice of you to let TopCod3r submit today's article!
  • Anon 2010-04-01 09:25
    Sweet; I just hacked this in to replace the aging MySQL box we had running as our development box, and we've noticed over a 300% increase in database I/O in our profiling tests. You just saved my team 3 months of optimisation work. Cheers!
  • frits 2010-04-01 09:26
    I'm waiting for the first hackles-raised DBA to fire off a mega-flame without reading any comments or consulting the calendar. It should be hilarious.
  • fool 2010-04-01 09:28
    I was getting angry/befuddled before I bailed mid-article, skipped ahead to the comments and realized I'd been punked. If I had continued reading to the part where it discussed bypassing HHD drivers I probably would have figured it out on my own. Probably. Anyway, nicely done.
  • AP != Attack Power? 2010-04-01 09:29
    JayT:
    Using javascript to access a database directly...

    Yep I can't see a single flaw in tha... oh wait... in superfast days is security still important? no? great news :D

    Nice contribution to the calendar date :D

    Of course security is important. And this is AWESOME SECURE, because the DB is SOOO FAST that the bad guys CAN'T KEEP UP! And also the mandatory ALL CAPS YELLING scares them away!
  • Sam 2010-04-01 09:30
    This is awesome! Can you run a filesystem on top of it? Think about all the time that we could save if the filesystem were run from a database?

    Can you add XPath support as the next feature?
  • fool 2010-04-01 09:30
    fool:
    I was getting angry/befuddled before I bailed mid-article, skipped ahead to the comments and realized I'd been punked. If I had continued reading to the part where it discussed bypassing HHD drivers I probably would have figured it out on my own. Probably. Anyway, nicely done.


    HDD.

    Shut up.
  • Jeff 2010-04-01 09:30
    Really quite clever. I mean, the file system is a database, after all. I, too, wonder how many you're going to catch.
  • SR 2010-04-01 09:30
    frits:
    I'm waiting for the first hackles-raised DBA to fire off a mega-flame without reading any comments or consulting the calendar. It should be hilarious.


    It's true that APDB does run better spread over 10 partitions.

    Outer sectors of the drives, people. Outer sectors only!
  • Jeff 2010-04-01 09:31
    Replying to myself? Oi!

    Would have been even funnier if you'd talked about using LBA as a security feature.
  • fool 2010-04-01 09:33
    SR:
    Outer sectors of the drives, people. Outer sectors only!


    Gah, I know what this is a reference to. Time to register here, I guess.
  • Virtualizer 2010-04-01 09:34
    You too can now virtualize the World's Fastest Database. Run it on any OS, with any hard drive. Leverage the World's Fastest Database into your system too, with no pain, no need to write machine code, no need even to know about machine code.
  • Tom 2010-04-01 09:36
    Will this be open sourced, or are you part of the evil monopoly?
  • JayT 2010-04-01 09:36
    ZOMG I hadn't thought of it that way!!! Using speed to avoid attacks, This database is the RoadRunner of the IT world!!!
  • ICH 2010-04-01 09:37
    This method was used in the late 1970's early 1980's to get fast lookups on large mainframe database systems. The UK Police National Computer used this method for accessing the vehicle registration number (VRM) database. As the VRM was of a fixed and known format, 3 letters 3 digits and a final letter indicating year of registration,(unlike US registration numbers) It was possible to use this method. The VRM was its own hash key to the database. As the request came down the comms line, you could perform the lookup character by character without waiting to receive the full VRM, using Controller, string, drive unit, platter, track and sector. The down side is that you have to have space for all possible instances of data, not just those that have actually been used.

    And you thought it was a joke!
  • djmaze 2010-04-01 09:39
    Damn i even got this up and running using WINE and it is still damn fast!
    When can we expect slave support?
  • P.M.Lawrence 2010-04-01 09:46
    In the early days that was the approach Forth used for disk access whenever it was implemented on bare bones hardware without the help of any operating system, compilers for other languages or other software tools (usually because there wasn't any yet, which was what made Forth a good choice under the circumstances). Of course, the point of doing that was usually to provide enough of a toolkit to get other stuff up - like an operating system, compilers for other languages and other software tools.
  • OzPeter 2010-04-01 09:46
    Back in late 1985 I wrote an industrial control system where I needed to persist data to/from a local drive. The trouble was that the system could only be written in TI basic (not MS even though other parts of the system implemented MS Basic) and the drives were 8" floppies. And the only method I had to load/store data was a command that read and wrote individual sectors. So for the system to work my code read a sector of data and overlaid it on the top of an array of numbers. I then pulled the desired entries out of the array for use in the actual program.

    And to top it all off this was done asynchronously so that other parts of my code could respond to operator key presses in real-ish time.

    So in effect in 1985 I implemented APDB in a multitasking system written in TI Basic with an 8" floppy disk back-end storage system. But it all worked really well and that is one system that I am proud to have written as I managed to get the required functionality from a horrendous architecture.
  • BentFranklin 2010-04-01 09:47
    Your database technology is FAT!
  • MicroChannel Man 2010-04-01 09:48
    Arrgghh .... I can’t get this to work with my MicroChannel system. Any chance on supporting this in the next version?
  • All your base are belong to us 2010-04-01 09:51
    I see some fundamental problems with this and look forward to seeing them released in the next update (which I suspect will take just about exactly a year to develop.)

    What happens with 4K sector disks that are coming on line. Will this still work?

    What if I want to run this on a flash drive? They don't address memory the same way.

    And can I hook up a hard drive to my smart phone so I can store and index my photos faster. I don't mind the extra weight.

    captcha: aliquam - Not quite as deep as an aquarium.
  • RHuckster 2010-04-01 09:52
    Ladies and gentlemen, I think we've found a GREAT product for SpectateSwamp's showdown!
  • you crazy 2010-04-01 09:56
    Anyone run the attached exe? Even in a VM I wouldn't run a downloaded exe as an administrator.
  • Nibh 2010-04-01 09:57
    All your base are belong to us:
    I see some fundamental problems with this and look forward to seeing them released in the next update (which I suspect will take just about exactly a year to develop.)

    What happens with 4K sector disks that are coming on line. Will this still work?

    What if I want to run this on a flash drive? They don't address memory the same way.

    And can I hook up a hard drive to my smart phone so I can store and index my photos faster. I don't mind the extra weight.


    I'm sure all this will be addressed in the enterprise edition, though I don't know if your cell phone will have enough memory to handle all the features.
  • Bryan The K 2010-04-01 09:58
    I love a good April Fools joke.
  • Loof Lirpa 2010-04-01 09:59
    Hmm, I think this is pretty dumb. You are taking away a lot of the abstraction which has been put in, over the years, for a very good reason. I can imagine that using physical locators is fast, but you are taking away a lot of the checks & strategy which the filesystem does for you.

    Admittedly this will make things faster in a single instance, but overall you will have worst robustness and you will have to implement filing strategies yourself (of course, this may be what you want!).

    Also, I am not sure how many people will want to give up SQL!
  • My Name Is Missing 2010-04-01 09:59
    Cnngratulations, you've reinvented the original SABRE reservation system.
  • Gieron 2010-04-01 10:01
    I was totally sold on the concept until he started going on about machine code.

    But I still think Alex might be on to something here.
  • KirbyG 2010-04-01 10:03
    Any description of a release that includes "There are no known bugs" is a prank in itself...
  • Helix 2010-04-01 10:04
    This is common on an embedded system with low memory.
  • OzPeter 2010-04-01 10:07
    KirbyG:
    Any description of a release that includes "There are no known bugs" is a prank in itself...
    Well if you don't test it you can honestly say there are no known bugs. I don't mind known bugs .. its the unknown ones that I object to.
  • Abe 2010-04-01 10:08
    ROFL, from relational db via mmmm javascript down to hacking hdd microcontrollers , ROFL.
  • pbirmingham 2010-04-01 10:09
    That's nice, but totally useless until there's a Brainfuck API.
  • Shondoit 2010-04-01 10:10
    There are no known bugs

    I knew this was a joke!
  • Anonymous 2010-04-01 10:10
    Great job Alex, I spent the whole article wondering why you'd want to troll us like this but dammit if it isn't offically "Troll Day" today. Cheers, good laugh.
  • Anonymous 2010-04-01 10:14
    you crazy:
    Anyone run the attached exe? Even in a VM I wouldn't run a downloaded exe as an administrator.

    Never used a disassembler before? Or a hex editor? Executables are not black boxes you know. If you want to know what it does just crack it open.
  • Vilx- 2010-04-01 10:17
    Yeah, Wikipedia lists many available x86 disassemblers. Just pick one and give it a whirl!

    P.S. To Alex: Nice one, all the way! :)
  • DeepThought 2010-04-01 10:19
    Alex Papadimoulis:
    Plus, they’re built to work hand-in-hand with the single-most fundamentally game-changing technology ever: JavaScript.


    I almost spit up coffee when I read this. Thanks for the laughs Alex!
  • Steve Syfuhs 2010-04-01 10:21
    Assembly.Load(new byte[] {...});

    Nice.
  • Vilx- 2010-04-01 10:24
    Steve Syfuhs:
    Assembly.Load(new byte[] {...});

    Nice.
    Could have at least run it through GZipStream. Otherwise a hex editor reveals too much. :P
  • cognitive delay 2010-04-01 10:29
    you crazy:
    Anyone run the attached exe? Even in a VM I wouldn't run a downloaded exe as an administrator.


    this is what I did, it won't let you partition a virtual drive in a VM though... looks like you need a physical drive to use this thing.
  • iToad 2010-04-01 10:29
    This really speeded up my latest project. However, if you want true performance, you should also scrap all of your Java code and rewrite it in X86 assembler.
  • SlyEcho 2010-04-01 10:33
    Why do you see a need to bypass LBA? Wouldn't it be simpler to use a single LBA address instead? The CHS address can be converted to LBA for backwards compatibility.

    I'd like to see the source code to see how the database can be expanded to use more generic storage solutions like USB drives.

    Would you be willing to open source APDB?
  • tomurb 2010-04-01 10:36
    GREAT!That was the thing the whole industry was waiting for! I'm already going to install this on all production servers!
  • Anonymous 2010-04-01 10:38
    Well done for defining an entire assembly as a raw byte array then dynamically loading it through reflection. Made it much more fun than usual to figure out what was going on in there!

    As for the people complaining about running untrusted executables - are you in school or what? You don't need to run an executable to figure out what it will do.
  • EatenByAGrue 2010-04-01 10:38
    What Alex failed to make clear is that APDB allows you to leverage industry best practices to create a service-oriented SOX-compliant EnergyStar-approved system capable of lightweight agile processing in the enterprise environment.
  • Dave 2010-04-01 10:39
    The real WTF is that it took me way too long to realize this was a WTF.
  • Abdiel 2010-04-01 10:41
    You didn't mention another highly important feature: The APDB can work just as fine on an embedded platform with no filesystem.
  • Yes Indeed 2010-04-01 10:43
    *applause*

    (b) disasembled the code and saw the facade
  • you crazy 2010-04-01 10:44
    Right yeah, next time I'm bored and have time on my hands I'll make sure to bear it in mind.
  • Anonymous 2010-04-01 10:44
    EatenByAGrue:
    What Alex failed to make clear is that APDB allows you to leverage industry best practices to create a service-oriented SOX-compliant EnergyStar-approved system capable of lightweight agile processing in the enterprise environment.

    Come say that to my boss and he'll hire you on the spot. A critical mass of buzzwords like that and you can't fail. It really doesn't matter that it's nonsense.
  • you crazy 2010-04-01 10:45
    you crazy:
    Right yeah, next time I'm bored and have time on my hands I'll make sure to bear it in mind.


    Meant to quote this:

    As for the people complaining about running untrusted executables - are you in school or what? You don't need to run an executable to figure out what it will do.
  • Twigg 2010-04-01 10:45
    "Although the APDB Engine is written in machine code, I used .NET 2.0 for menu stuff"

    That's pure win.
  • RobReagan 2010-04-01 10:50
    AP, this was working awesome, but my drive crashed. Luckily I had a backup. But now after the restore on a separate drive, I'm getting the exception "No data at cylinder/sector/address." Can you help?
  • LIUNX NERD 2010-04-01 10:52
    We've had this stuff for years, just a coupla calls to "dd" and you're sorted. Your "solution" doesn't even run under WINE...

    I recommend you install Ubuntu and rewrite this in Bash/awk, shouldn't take more than 10 minutes
  • toth 2010-04-01 10:53
    You had me going until JavaScript. Well played, Mr. P.
  • CodeRage 2010-04-01 10:54
    It was so fast, I looked up data today and got it yesterday!
  • Ken 2010-04-01 10:56
    I can't tell if this person was completely duped or if they are trolling for people to laugh at them for being duped. I kinda hope it is the second one.
  • Derek 2010-04-01 10:57
    Hi.

    Your application is great. It didn't recognize our hard disks at first, but we just reflector'd the executable, made a few changes and recompiled it as a dll.

    It's going in production tomorrow.

    thnx:D

  • Tzafrir Cohen 2010-04-01 10:59
    All your base are belong to us:
    I see some fundamental problems with this and look forward to seeing them released in the next update (which I suspect will take just about exactly a year to develop.)

    What happens with 4K sector disks that are coming on line. Will this still work?

    What if I want to run this on a flash drive? They don't address memory the same way.


    It breaks. And in WTF-worthy ways of their own:
    http://lwn.net/Articles/377895/

    (That article is Linux-specific, but explains the main issues. You'll have to read most of the way through to encounter the worst parts)

    Also note that with flash drives you actually have much logic that separates between you and the actual storage. If you can use a raw storage and a log-structured file-system on top of it, you can probably do some more interesting stuff.
  • Robert 2010-04-01 11:05
    Ken:
    I can't tell if this person was completely duped or if they are trolling for people to laugh at them for being duped. I kinda hope it is the second one.


    Seeing as how their poster name is 'Loof Lirpa' (hint: read it backwards') I am pretty sure they knew what was going on.
    Unless, you are trying to dupe people into thinking you think a person got duped! *dons tin foil hat*
  • grizz 2010-04-01 11:06
    KirbyG:
    Any description of a release that includes "There are no known bugs" is a prank in itself...


    Quite the contrary! It's really simple to release a product with no known bugs. Simply place you hands over your ears and go "la la la!" any time it appears someone is about to tell you about a problem!
  • DaveK 2010-04-01 11:06
    BentFranklin:
    Your database technology is FAT!
    This line didn't sound quite right though:
    A pattern that I’d recommend is to simply use the first head on each disk for your index storage.
    I think he meant to say first cylinder rather than first head. FAT reserves the first track for the FAT+root dir, not 50% of the entire disk!


  • David 2010-04-01 11:07
    The filesystem for the IBM System i (is that still what they are calling it? It changes names like every month) is basically a DB2 database, if I remember correctly.
  • Brian follower of Deornoth 2010-04-01 11:11
    "It’d be as futile as trying to explain Twitter to someone from 1999."

    It'd be as futile as trying to explain Twitter to someone from 2011.
  • Rudy Komacsarluctus 2010-04-01 11:15
    APDB v1.3.9 (x86)
    (C) 2010, Alex Papadimoulis

    Unpacking libraries........
    Loading plugins...
    Inspecting run-time environment....................
    Initializing environment..

    INITIALIZATION ERROR!
    Interrupt descriptor table register (IDTR) contains unexpected
    contents. This condition occurs when APDB is running in a
    virtual machine, which is not supported.

    Press ENTER to quit...

  • Thg 2010-04-01 11:17
    What were you smoking when you wrote this crap editorial ?!?!
    The Relational Database is one of those brilliant primitive innovations, where every attempt to produce something theoretically better leads to an unworkable dead-end.

    ... like the C programming language, or the bound paper book.

    They work, and they work simply---without the convolutions of their would-be replacements.


    And another thing: I knew this was an April Fools joke all along. (ha! got you! ... maybe)

    Captha! damnum (I think it's missing a 'b' on the end)
  • tragomaskhalos 2010-04-01 11:18
    Named after Alex, but cuter would be Avril Poisson DB !
    Nice gag, except that a lot of the NoSQL stuff is no less extreme than this !!!
  • amischiefr 2010-04-01 11:21
    From 1999? Hell, I still don't understand what all the hub-bub is about. I don't get it, really. Who cares that you just got home? Who cares that you're watching American Idol?
  • anon 2010-04-01 11:22
    Public Shared Sub WriteLineAwesomely(ByVal s As String, ByVal dots As Integer, ByVal sleep As Integer)

    kule!
  • random.next 2010-04-01 11:25
    I wouldn’t call Notepad a disassembler, but it got the job done. You should make it a bit harder the next time.
  • Anonymously Yours 2010-04-01 11:31
    As one of your many converts to Front Ahead Design, I lament that I can't roll this database out immediately. There's just too much SQL in our FAD sites. With everything crammed into the view, we'd need some kind of... I don't know, comments? Docs? We'd need something to tell us what we did, where we did it, and why. Anything we had like that would have been on disposable media (likely paper towels) and was used to mop up spilled coffee long ago.

    Anyhow, my suggestion is you support your fellow FADders until we can create replacements for our existing work. We need some kind of daemon that acts as a middleman to translate SQL into JavaScript APDB recipes on the fly. It wouldn't be getting CHD#s, so you'd probably have to convert the IDs and table names into some kind of hash, allocating blocks on the fly, managing the indexes, and so on. It would be a "SQL Hashing-Allocating Management Etc. Daemon" to support existing code.

    You'd definitely get APDB out there to the public faster if it could run with existing code. After a bug-free release, I'm sure integration using my middleman suggetion would be seamless!
  • Samuel A. Falvo II 2010-04-01 11:31
    In recognizing this is an April Fool's joke, I must remind you that Forth beat you to the punch, most likely before you were born. Certainly a decade before *I* was born...

    It's called block storage, and is actually *superior* to your approach, because it uses logical block addressing, not CHS addressing.

    And, yes, I use the technique in my Forth-written blog. I'm imminently pleased with the results. See http://www.falvotech.com/blog2/blog.fs/articles/1002 .
  • Filo 2010-04-01 11:34
    I believe table mountain is relatively easy to model.

    Good article, I was hooked.
  • caught me too 2010-04-01 11:47
    bahahaha... me too... is that sad?

    also, i'm still new to the IT world. i wasn't entirely sure this was a load of bunk until i started reading the comments.. then i remembered the date.... 'nuff said...
  • HeWhoComesBackToHauntYou 2010-04-01 11:56
    TRWTF is that you're using JavaScript instead of VBScript. However, even VBScript would be suboptimal. I suggest you make everyone write their scripts in machine code as well, like that you don't get any performance bottlenecks from those silly VMs (or even sillier JITs).

    Also, how well would this scale to a cloud setting? Since everyone knows the cloud is dah future!

    Captcha: nulla - I like my pointers nulla flavoured!
  • kayeff 2010-04-01 11:56
    Tom:
    Will this be open sourced, or are you part of the evil monopoly?


    It was written in machine code and he gave you the binary... that's as open source as it gets.
  • ShowMeTheMonkey 2010-04-01 12:01
    SR:

    It's true that APDB does run better spread over 10 partitions.

    Outer sectors of the drives, people. Outer sectors only!


    Are there extra points for quoting a previous WTF?
  • zoips 2010-04-01 12:13
    Worth it just for ReticulateSplines().
  • SR 2010-04-01 12:15
    Brian follower of Deornoth:
    "It’d be as futile as trying to explain Twitter to someone from 1999."

    It'd be as futile as trying to explain Twitter to someone from 2011.


    +1 (Funny)
    +1 (Insightful)

    PS It'd be as futile as trying to explain Twitter to someone from 2010.
  • PITA 2010-04-01 12:23
    ShowMeTheMonkey:
    SR:

    It's true that APDB does run better spread over 10 partitions.

    Outer sectors of the drives, people. Outer sectors only!


    Are there extra points for quoting a previous WTF?

    You get points for stuff?
  • James 2010-04-01 12:27
    You just don't know MySQL well enough. :) You should have used the Blackhole storage engine: instantaneous commits and selects with unlimited capacity for data. And only one result from a select, so you can optimize away all of your selects.
  • drachenstern 2010-04-01 12:35
    Loof Lirpa:
    Hmm, I think this is pretty dumb. You are taking away a lot of the abstraction which has been put in, over the years, for a very good reason. I can imagine that using physical locators is fast, but you are taking away a lot of the checks & strategy which the filesystem does for you.

    Admittedly this will make things faster in a single instance, but overall you will have worst robustness and you will have to implement filing strategies yourself (of course, this may be what you want!).

    Also, I am not sure how many people will want to give up SQL!
    I admit it, Loof Lirpa almost had me believing someone fell for it... ah well, what a day to get caught by a troll huh?

    And the line about Enterprise support being addressed in the next version...
  • Scott_Babu 2010-04-01 12:37
    Had me going all the way.
    Good one
  • hack 2010-04-01 12:37
    PITA:
    ShowMeTheMonkey:
    SR:

    It's true that APDB does run better spread over 10 partitions.

    Outer sectors of the drives, people. Outer sectors only!


    Are there extra points for quoting a previous WTF?

    You get points for stuff?


    -1 for asking about the points
  • RogerWilco 2010-04-01 12:37
    sadwings:
    Nice of you to let TopCod3r submit today's article!
    This cracked me up.

    Nice way to end my day, after not seeing one April's Fools joke the entire day. (even the mail about cake during coffee time was real!)

    Of course APDB reminds me of this other thing, oh yeah, a file system
  • NorgTheFat 2010-04-01 12:38
    Wow, now if only we could integrate APDB with the "customer friendly system" and the "Enterprise Rules Engine" programming would be so much easier!

    But seriously, nice April Fools joke Alex!
  • CT 2010-04-01 12:41

    Trackbacks (URL)

    * April Fools on the Web. (04/01/2010)

    Suave.
  • jasmine2501 2010-04-01 12:53
    I was kind of hoping for a Rick Roll...
  • Nobody 2010-04-01 12:57
    Back in the early 90s we used to use video grabber cards that had a hard drive mounted on the card. It used the disk as a big fifo buffer and wrote directly to the disk blocks with no filesystem to get enough speed. If you had a bad block you had a bad bit of image - tough
  • Tom 2010-04-01 13:00
    I Topeka'd for other DBs of this type, but didn't find anything like it.
  • MD 2010-04-01 13:03
    How much for an enterprise license for 30,000 users and 200 developers? We're looking for a replacement for our 19 Teradata nodes...
  • forgottenlord 2010-04-01 13:04
    I need a shower
  • derula 2010-04-01 13:05
    I tried running it on Mono, and it's giving me an exception:

    Unhandled Exception: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.EntryPointNotFoundException: GetCurrentProcess
    
    at (wrapper managed-to-native) Papadimoulis.Alex.APDB.Engine.MemoryManager:GetCurrentProcess ()
    at Papadimoulis.Alex.APDB.Engine.VirtualMemoryPtr..ctor (Int32 memorySize) [0x00000] in <filename unknown>:0
    at Papadimoulis.Alex.APDB.RuntimeEnvironment.IsExecutingInVirtualMachine () [0x00000] in <filename unknown>:0
    at Papadimoulis.Alex.APDB.CommandLineApp.Program.Main (System.String[] args) [0x00000] in <filename unknown>:0
    at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (object,object[],System.Exception&)
    at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in <filename unknown>:0
    --- End of inner exception stack trace ---
    at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in <filename unknown>:0
    at System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) [0x00000] in <filename unknown>:0
    at Papadimoulis.Alex.APDB.Program.Main (System.String[] args) [0x00000] in <filename unknown>:0

    Hope this can be fixed soon.

    Btw: I'm not sure you understand Namespaces correctly, but nevermind.
  • D-Coder 2010-04-01 13:10
    I immediately recognized this as an April firdeleted by moderators
  • swschrad 2010-04-01 13:12
    obviously, we can take this one step further.

    direct memory access.

    to make it faster, specify the actual memory write lines from the processor or memory controller as parameters.

    making the requests off hex keypad will reduce all the overhead necessary for GUI or CLI screens.
  • Patrick 2010-04-01 13:13
    The trackback spoils it. Take it off.
  • ObiWayneKenobi 2010-04-01 13:19
    The sad thing is, while this post is an April Fool's joke, the idea that RDBMS are dead and MongoDB or CloudDB or whatever the latest fad are the "wave of the future" is not a joke. I've seen a lot of well-known, prominent developers hyping these new fads as the "way to go" for new development.
  • NotaDBA 2010-04-01 13:28
    I know this was meant to be funny, but most of what it says about relational databases is true.
  • Worf 2010-04-01 13:40
    SOrta figured it out by the end, but it's so plausible because the first part is true.

    Though, I was half expecting a Real WTF to follow.
  • J 2010-04-01 13:48
    Loof Lirpa:
    Hmm, I think this is pretty dumb. You are taking away a lot of the abstraction which has been put in, over the years, for a very good reason. I can imagine that using physical locators is fast, but you are taking away a lot of the checks & strategy which the filesystem does for you.

    Admittedly this will make things faster in a single instance, but overall you will have worst robustness and you will have to implement filing strategies yourself (of course, this may be what you want!).

    Also, I am not sure how many people will want to give up SQL!


    Of course people will give up SQL when they realize that AFQL will support natural language queries like "get me all the data I need right now". Syntax optional.
  • ircmaxell 2010-04-01 13:50
    ObiWayneKenobi:
    The sad thing is, while this post is an April Fool's joke, the idea that RDBMS are dead and MongoDB or CloudDB or whatever the latest fad are the "wave of the future" is not a joke. I've seen a lot of well-known, prominent developers hyping these new fads as the "way to go" for new development.
    Well, it is a joke. The RDBMS is not dieing, nor will it any time soon. Sure, there are paradigms that the NoSQL DBs excel at, and they are replacing RDBMS in those areas (Content centric websites, stats management, distributed file systems, etc). But the idea that they aren't good for anything is foolish. Show me one bank that'll consider replacing their SQL cluster for a MongoDB cluster, and I'll show you one that I'll pull my money out of today. If the only tool you have/like is a hammer, every problem looks like a nail...
  • ObiWayneKenobi 2010-04-01 13:52
    ircmaxell:
    Well, it is a joke. The RDBMS is not dieing, nor will it any time soon. Sure, there are paradigms that the NoSQL DBs excel at, and they are replacing RDBMS in those areas (Content centric websites, stats management, distributed file systems, etc). But the idea that they aren't good for anything is foolish. Show me one bank that'll consider replacing their SQL cluster for a MongoDB cluster, and I'll show you one that I'll pull my money out of today. If the only tool you have/like is a hammer, every problem looks like a nail...


    I agree, but like I said a lot of well-known developers are hyping this NoSQL stuff and trashing RDBMS. It makes it frustrating looking at what to learn because you have very experienced people saying that these weird fads are the way to go.
  • jonnyq 2010-04-01 13:59
    New in 2.0:

    - Create an "index" for the data so it can be accessed by name instead of CHS#
    - Add "extension" at the end of a data field's name to determine the type of data
    - Add permissions to the data by setting an 'owner' to the data field, and also read-write permission, possible using an octal number
    - organize the data into a hierarchical structure using a delimiter in the data's name, such as a '/' or '\'
  • A Gould 2010-04-01 14:07
    SR:

    PS It'd be as futile as trying to explain Twitter to someone from 2010.


    The internet's natural extension of award show acceptance speeches? (You can say whatever you want, but we cut you off before you can say anything really profound.)

    Anyhow, for those of us stuck at work without a spare harddrive to "test" this one, would someone mind show/telling what this thing *actually* does at some point today/tomorrow?
  • stat 2010-04-01 14:10
    I must admit that I fell for this hookline and sinker. For a few hours until I posted the link to a friend and he was joking about it, and I was taking it seriously until finally he was like "... You know what day it is right?".

    *Hangs self*
  • Jeff 2010-04-01 14:14
    Wow, thats amazing! What could possibly go wrong!?!?! ...wait for it... wait for it... can't... hold.. in.. pedantry... a corrupt sector kills the linking and now your db is trashed!!
  • Ike 2010-04-01 14:20
    Sigh. We've been through all this before. Accessing the disk directly through CHS? Way too slow. Putting all the data in RAM? Still too pokey for REAL TIME. I even experimented with keeping the database in processor registers, but even then, it can take as long as a whole processor clock cycle to manipulate the data.

    No, the solution is to hardcode all of your data in silicon. The processor should have a unique instruction for each database record. You want record 292 of your database? You just execute the machine code instruction FETCH_RECORD_292, and BAM!, you've got your record. What if you don't know the record number, and want to look up a record by its index? That's what compilers are for, duh.

    The only faster solution is to put each record on a wooden table, photograph it, and put it in a filing cabinet with the other photographs of records. And we all know that's just not practical.
  • JohnFx 2010-04-01 14:33
    Damnit Alex!

    What if my CEO had seen that post!?!??

    I'd be writing business cases for APDB for the next quarter!
  • Mike 2010-04-01 14:37
    Didn't fall for this one, but I and a friend of mine both fell for Google's AFD joke. Took me almost a minute for the light to turn on.
  • southamerican 2010-04-01 14:57
    hahaha!! in this part of the world fools day is November 28... hahaha, so mine was a truly "WTF?!?!?!?!?!" I mean, I knew something went wrong and (or the editor went crazy...) had to check the comments!!
  • DaveK 2010-04-01 15:02
    stat:
    *Hangs self*
    Pics or it didn't happen!
  • DaveK 2010-04-01 15:04
    Jeff:
    Wow, thats amazing! What could possibly go wrong!?!?! ...wait for it... wait for it... can't... hold.. in.. pedantry... a corrupt sector kills the linking and now your db is trashed!!
    That's easily solved. Just keep a second, duplicate backup of the table in which you index all your file allocations.

  • DaveK 2010-04-01 15:14
    Well, it came to nothing in the end, but a looong long time ago, I started working on a project for a simple little address-book style database, to run on C64 + 1541 disk drive.

    The data was all going to reside in a fixed block of preallocated sectors at the start of the disk, using fixed record sizes for random access.

    The fun bit was that the drive had its own cpu, so all the searches were going to be run on the drive itself, which was probably more-or-less capable of reading the sectors and searching for the desired record on the fly, as fast as the disk turned. It made a lot of sense given the cripplingly-slow serial interface between the drive and the actual C64, as sending all the data to the computer to be searched there would have been vastly slower.

  • Rajandeep Sekhri 2010-04-01 15:25
    hi,

    pls show me example of using javascript and APDB.
  • your name here 2010-04-01 15:31
    Tom:
    I Topeka'd for other DBs of this type, but didn't find anything like it.

    You failed. You topeka'd other DB's of this type with AltaVista.
  • Right Wing-Nut 2010-04-01 15:32
    sadwings:
    Nice of you to let TopCod3r submit today's article!


    Yep, first paragraph made it clear. You guys who took longer to identify the fox by his paw are scary.

    Really, Alex should make that a featured comment.
  • Tanuki 2010-04-01 15:51
    JayT:
    Using javascript to access a database directly...

    Yep I can't see a single flaw in tha... oh wait... in superfast days is security still important? no? great news :D

    Nice contribution to the calendar date :D

    Can you btw XMLHttpRequest to port 118, or what ever port the database is configured to listen, on local server to directly access DB from JS?
  • ssaboum 2010-04-01 16:04
    I kept on thinking... "no man! he can't be seriously thinking..." good job :-)
  • Telepath 2010-04-01 16:19
    So... where's the joke? How is this funny?
  • nocturnal YL 2010-04-01 16:31
    I was actualy shocked when I first read "Relational Database is dead"! Nice April's Fool.
  • frits 2010-04-01 16:33
    Rajandeep Sekhri:
    hi,

    pls show me example of using javascript and APDB.


    +1
  • TheRealWTF 2010-04-01 17:26
    ** \\.\PHYSICALDRIVE0 **
    Model: WDC WD15 00AHFD-00RAR SCSI Disk Device (Supported)
    Sector Count: 293040720 (Supported)
    Interface: IDE (Not Supported)
    Firmware: 21.0 (Needs Reflash)
  • Catalin 2010-04-01 17:30
    I got all excited about taking apart your hacked HDD firmware :(
  • James 2010-04-01 18:07
    I'm interested in why you chose .NET Framework for "The Worlds's Fastest Database" since direct hardware access isn't available until 4.1.
  • ErikF 2010-04-01 18:46
    Your APDB is okay, but it uses a hard drive for storage which everyone knows is literally exagigamegabillions times slower than using RAM. In fact, if you use RAM for your next version of APDB, you can avoid using CMS altogether and switch to a linear system (maybe its location in memory) for referencing data! You can even avoid the need to use chaining if you store the size of the data before the data itself.

    I propose calling this method "programmable online immediate named text entity retrieval", or POINTER for short. I think that it will revolutionize the data-storage industry. Sure, some people will argue that having to keep track of these POINTERs to data is a chore, but people like that obviously shouldn't be programming anyways!
  • Aigarius 2010-04-01 19:02
    While I appreciate the Fools Day fun, I really wish that more people would actually consider if they really, REALLY need a RDB. Especially when performance really matters. If you want more than 1000 requests per second from each thread of your program, the big Oracle DBA will just tell you that you are nuts. However, if you go with the key:value store, such as Tokyo Cabinet, you can actually achieve millions of read or write requests per second on each thread on decent hardware.

    Databases (round-trip latencies, 2-3 hard drive accesses per request, ACID overheads, SQL parsing costs, ...) can easily be the bottleneck in many high performance environments, but too many programmers are used to just getting the latest from Oracle, sticking it on a few millions worth of hardware and hoping for the best.
  • my name 2010-04-01 20:51
    YOU DO NOT MAKE JOKES ABOUT SUCH THINGS!
    It won't take long until some very, very sick person implements this.

    I read the text by reading the executable in the text viewer integrated into WinRAR. Nice one with the VM detection.

    Its quite obvious that it is an aprils fools joke as the style of the article differs greatly from the others and it is dripping of irony and sarcasm.
  • xtremezone 2010-04-01 21:19
    Another inherent problem that relational databases have is that, fundamentally, they’re designed for insecure developers. This whole notion of “data integrity” is a crutch for the weak that cripples the able-bodied. I don’t need some database telling me what data I can and can’t store: accept the bytes that I give you, and give them back to me when I ask. I know what they are, I know what they’re supposed to be, and I know how to use them, thank you very much.
    This had me seriously doubting its functionality, but that didn't make me question its reality.
    Think about and savor that last point for a moment. Mmmm, JavaScript. Think about how much code you’d not have to write if you could go directly to your database from Client Script.
    That's when it hit me. ;D

    Awesome post, Alex!

    It would be nice if you'd post the source code (for those of us too paranoid to execute binary only releases :P).
  • Aurelien 2010-04-01 21:33
    Need a database, and it give you a file system ... ?!?!?!
  • Aurelien 2010-04-01 21:33
    Need a database, and it give you a file system... ?!?!?!
  • Jerry 2010-04-01 22:11
    You guys make me laugh. That's why I love this site.
  • nande 2010-04-01 23:51
    this is ... april 1st.
  • Dave 2010-04-02 00:26
    Brompot:
    APril fools DataBase!


    Nope, this is how the SABRE database, dating from the 1950s, worked. It's still in use today, or at least its legacy is, your airline record locator located the position on the DASD where your travel information was stored.
  • Gary B 2010-04-02 00:30
    My team built a fast system - one of the very first 911 map display systems, if not the first, for Fairfax County VA in 1985. The maps were 8-bit color images, not vector files (although other data was overlaid from vector files) One of the key design elements was that the map image tiles were stored in physically optimal sectors on the disk so that when the user was 'live' panning across the county, the next image tile could be found and read as fast as possible. The visible image was two tiles square (IIRC), and the display buffer held all the bordering tiles.
    Given a street location, the system could look up the address in the geolocation database, and would get back a list of the disk addresses of the necessary tiles to retrieve.

    This system was powered by a 286 with six expensive display cards. Each 286 system supported six graphic terminals, and there were four systems sharing two disk servers via an early SCSI interface with hacked drivers (to allow multiple controllers). This system supported 24 911 operators with an average initial display of 1.5 seconds from the moment the address came in - a lot better than the required 7 seconds.
  • Alys 2010-04-02 00:45
    *clap clap clap*! I actually read up to "The APDB Engine & Architecture" before I realised, and the sense of relief then was overwhelming. :) I wouldn't want to live in the same universe as this product! :)
  • George Nacht 2010-04-02 01:51
    Sorry to be U-boat captain.... I mean naval Nazi.... But sextant is not exactly "dead". It´s just so damn reliable it takes away all fun from the navigation.
    In all other aspects - Great job, Alex! Oracle is sitting and rotting on it´s stinking throne for way too long now...
  • Bonghit 2010-04-02 01:53
    Hi

    I am now selling a full APDB package on ebay for $199.95AUD, full manual & support included.

    This is your chance to get this brilliant database software delivered to your door!

    For a limited time only i will also be providing installation & setup support, totally free of charge.

    Don't miss out on this exciting offer, bid now so you wont be disappointed.

  • sunny 2010-04-02 04:02
    Your article is wonderful!Hold it.WTFis my favourite,thanks
  • DBfool 2010-04-02 04:24
    It was april foolday
  • Simon 2010-04-02 05:26
    If you're going to do April Fool's joke stories, can't you even *try* to be clever, to be subtle? This one stood out at a joke from the title alone, and didn't get any better.

    There's an art to these things, you know - it's not just a case of mixing up a load of bullshit, and posting it online.
  • Filo 2010-04-02 07:45
    If you're going to do April Fool's joke stories..........

    Simon, Simon, Simon

    Relax fella, it's only a bit of fun.
  • jimolina 2010-04-02 08:53
    Very good...reminds me of the 4/1 PC magazine stories of old:

    "4-bit processors to replace 32 or 64 bit" (because 4-bit processing goes faster than 32 or 64 bits, just like risc goes faster than cisc), etc.






  • Fabiano 2010-04-02 09:42
    The best DB ever... but in this way it looks far too much OOstuff, there is too much abstraction in the middle! ;-)
  • method1 2010-04-02 09:49
    RHuckster:
    Ladies and gentlemen, I think we've found a GREAT product for SpectateSwamp's showdown!


    I'd forgotten about him - the living April Fool all year round. He really was something else, a human WTF
  • Jason 2010-04-02 09:52
    I did a case-fixed benchmark that showed exceptional performance in our customer-oriented business intelligence multi-million dollar solution. I will strongly recommend this to our CEO on the next board meeting as the new paradigm-shifting award-winning design pattern industry standard.

    Thanks for not protecting this one with a patent.


    Jason Jackson,
    CTO


  • YourName 2010-04-02 10:19
    Just keep in mind the tradeoff that your writes may be slightly slower.
  • Morry 2010-04-02 10:58
    so you invented TPFDF for the non-mainframe?
  • Wyrd 2010-04-02 12:48
    Happily, I figured out it was a joke in paragraph four,
    "Depending on what you’re looking at, . . . molecules. And those of course break down to atoms, . . . the world just simply doesn’t work like that."

    The text was, of course, scientifically accurate, but it was just too damn pointless-frothy-wordy-rambling. Geeks don't talk like that unless they've had a few too many or they're attempting to deceive. That made my BS detector switch on, and I decided now would be a really good time to check the article's post date. ;-)

    The article was good for some chuckles. The end of the article is good for making it actually *seem* plausible. Seriously, though, is it even possible to bypass all that virtualization jazz in the hard drive controller these days? If so, wtf do you do when you get a read error? See, with the HDC operating in its role, it can actually save you from having to deal with many disk errors as it will silently move your piece of data out of the starting-to-fail sector before it gets completely unreadable.

    Btw, I think that would be the fatal flaw with your (joke) proposed APDB. Physical Read Errors. Yeah, now *that's* the Real World. Let's see your database model that! On second thought, let's not. Heh.

    --
    Furry cows moo and decompress.
  • Lunkwill 2010-04-02 12:56
    I particularly like the "Retreive" method. People might find it wierdly named but think about it: would HTTP ever have reached its popularity without the "Referer" header?
    Of course not.
  • Coyne 2010-04-02 13:26
    To me, these approaches seem inadequate to meet the real zero-time requirements of modern applications. I think new database designs need to focus on some of the upcoming negative delay technologies.

    When these technologies are perfected then query complexity and storage strategy become irrelevant. No matter how long the request requires, a request sent to the appropriate time in the past will have the results ready at 0 time in the present.

    (For example: To use a query that requires 100 execution seconds, just send a message to the database engine with a -100 second delay. Then use the result, which is now ready on demand.)

    Determining the proper delay might seem a challenge but is simply solved. First of all, the database engine keeps a record of the runtime of each query. The requestor sends a request with a +10000 second delay to the database engine; the engine looks up the actual time required by the indicated query, and responds with the required negative delay interval by using a -10000-n (n=lookup time) second delay. The requestor then uses the returned negative delay to start the desired query.

  • Bill Grogan 2010-04-02 13:57
    Coyne:
    To use a query that requires 100 execution seconds, just send a message to the database engine with a -100 second delay.

    OK, nice idea but two problems:

    1. A 64-bit CPU can't send more than 6.4 seconds into the past, and then only if it has a hyperhypervisor. Obviously, you set up a recursive bucket brigade to keep sending it farther and farther back until it hits the target. (Those who wish to learn about time-travel recursion must first study time-travel and recursion.)

    2. This one's a little harder to solve. Yes, normally the query would need only 100 seconds. But the instant you power up the world's first hyperhypervisor, seventeen trillion script kiddies from the distant future are going to DOS you with CPU requests, and within 3 seconds it will melt a hole in your floor.
  • Tim E Kaard 2010-04-02 14:02
    Bill Grogan:
    Those who wish to learn about time-travel recursion must first study time-travel and recursion.

    Yes, but once you get the time travel part figured out, you can go back in time and teach yourself. In fact, why haven't you done that already?
  • Harrow 2010-04-02 14:29
    I was unable to get this utility running with any of my hard drives, so I adapted it to use my Digital Equipment Corporation TC11/TU56 storage subsystem. I am quite pleased with the overall performance, which is several times faster than the Microsoft SQL-Server 2008 on the company network.

    -Harrow.
  • Pete Bytecode 2010-04-02 15:25
    Are you a total TARD ? "I don’t need some database telling me what data I can and can’t store:" So I suppose you have no problem if the DB tells your idiot doctor your BP is 80 over 120 because one of your tard friends forgot to implement the integrity rules we all hold self evident for blood pressure ?

    Actually, I apologize, I called you a tard, you're not. "I could write an entire book on the database engine (and in fact, I am)". Your just a low-rent, hype-mongering, self-promoting SOB.
  • your name here 2010-04-02 15:36
    TRWTF is there's no WTF for April 2nd.
  • Anonymously Yours 2010-04-02 15:40
    Tim E Kaard:
    Bill Grogan:
    Those who wish to learn about time-travel recursion must first study time-travel and recursion.

    Yes, but once you get the time travel part figured out, you can go back in time and teach yourself. In fact, why haven't you done that already?
    Perhaps he got side-tracked becoming his own grandfather.
  • TimG 2010-04-02 15:51
    Tim E Kaard:
    In fact, why haven't you done that already?

    Maybe he will have had already? Or is it "will do already?"... I'm terrible with tenses.
  • Affirmative What, now? 2010-04-02 16:36
    You'd better be careful with your April Fool's jokes. You give anyone the idea to do anything in JavaScript and they'll find a way to do it, whether it should ever exist or not.
  • Skip Sailors 2010-04-02 16:46
    I would explain Twitter to a 1999 garp as
    > tail -f daily.digest.news.*
  • ContraCorners 2010-04-02 17:00
    Pete Bytecode:
    Are you a total TARD ? "I don’t need some database telling me what data I can and can’t store:" So I suppose you have no problem if the DB tells your idiot doctor your BP is 80 over 120 because one of your tard friends forgot to implement the integrity rules we all hold self evident for blood pressure ?

    Actually, I apologize, I called you a tard, you're not. "I could write an entire book on the database engine (and in fact, I am)". Your just a low-rent, hype-mongering, self-promoting SOB.

    New to the web then, are we Pete?
  • RandomUser423672 2010-04-02 17:09
    Tim E Kaard:
    Bill Grogan:
    Those who wish to learn about time-travel recursion must first study time-travel and recursion.

    Yes, but once you get the time travel part figured out, you can go back in time and teach yourself. In fact, why haven't you done that already?
    Because "go[ing] back in time and teach[ing] yourself" has a reasonable chance of being this: http://www.xkcd.com/716/.
  • 8-bit 2010-04-02 17:23
    So my question is: what kind of destruction can be wrought by hackers?
  • Daniel Alexiuc 2010-04-02 18:39
    Even though I knew this was April Fools, my heart was still in my mouth requisitioning that drive with Administrator privileges.

    Pretty elaborate April Fools joke!
  • Brillant 2010-04-02 18:47
    8-bit:
    So my question is: what kind of destruction can be wrought by hackers?

    But that's why adding JavaScript support was so Brillant.
    Your problem, though, is you are thinking very negatively, with that destruction talk. Think of it as Empowerment! People will finally have control over the data that rules their lives!!!
    Think of it as merging social networking into the database.
    Nothing could be wrong with that. It's Brillant!!!!
  • rktect 2010-04-02 20:09
    April Fools?

    If not... wow - there are just so many flaws in your understanding of databases in general (both RDBMS and NoSQL) and your solution architecture - I wouldn't even know where to start helping you grasp basic knowledge necessary.

    I'm afraid you're in for some constructive criticism by some knowledgeable experts.

    I guess... congrats for trying?!!
  • dreadwolf 2010-04-02 20:14
    You got be kidding! Ummm... right?
  • jkrebo 2010-04-03 00:14
    Go to address 4C38: "April Fools! If you've made it this far, then that means you (a) have a whole lot of gaul for going all the way, (b) dissassembled the code and saw the facade (c) have a hard disk you're willing to sacrifice, (d) actually want to use APDB a whatever the reason, you deserve a WTF sticker!"

    Instructions follow.
  • Matteo Italia 2010-04-03 06:02
    jkrebo:
    Go to address 4C38: "April Fools! If you've made it this far, then that means you (a) have a whole lot of gaul for going all the way, (b) dissassembled the code and saw the facade (c) have a hard disk you're willing to sacrifice, (d) actually want to use APDB a whatever the reason, you deserve a WTF sticker!"

    Instructions follow.

    Finding the string in this way is no fun. Disassembling the whole thing is much better.
  • davedavenotdavemaybedave 2010-04-03 09:25
    Gary B:
    My team built a fast system - one of the very first 911 map display systems, if not the first, for Fairfax County VA in 1985. The maps were 8-bit color images, not vector files (although other data was overlaid from vector files) One of the key design elements was that the map image tiles were stored in physically optimal sectors on the disk so that when the user was 'live' panning across the county, the next image tile could be found and read as fast as possible. The visible image was two tiles square (IIRC), and the display buffer held all the bordering tiles.
    Given a street location, the system could look up the address in the geolocation database, and would get back a list of the disk addresses of the necessary tiles to retrieve.

    This system was powered by a 286 with six expensive display cards. Each 286 system supported six graphic terminals, and there were four systems sharing two disk servers via an early SCSI interface with hacked drivers (to allow multiple controllers). This system supported 24 911 operators with an average initial display of 1.5 seconds from the moment the address came in - a lot better than the required 7 seconds.


    Would you believe I just read all the way through that thinking it had something to do with Porsche drivers?
  • jkrebo 2010-04-03 10:44
    But I did disassmeble it! And it was still fun.
  • Muppet 2010-04-03 15:41
    Surely you don't need to hardcode all of the data. Why not break up complicated things like words into their separate components like letters and maybe assign a number to that letter and convert it to a series of 1's and 0's. I hear computers deal very well with these.

    Then you can just write them like this directly to the disk or perhaps to memory if you're not worried about what might happen if the power goes off.

    Simply then get the computer to read the 1's & 0's in the right order and you can re-create the information that you wanted to retrieve.

    Using this simple process you only need to have a disk or memory that has sufficient storage to hold "just the basic data", so like A-Z (don't bother with lower case, it's over-rated) and 0-9 and perhaps some punctuation. But not {} and []. They just get confusing in javascript.

    So you'd only need about 50 or so storage locations. The saving on memory and disks would be immense.

    You could just write each letter onto a piece of paper and photograph it on said wooden table. The table would easily be big enough with the advantage that if the power did go off, it'd still be there.
  • OldNews 2010-04-03 19:14
    "It’d be as futile as trying to explain Twitter to someone from 1999."

    Does the author really believe that Twitter is that unique or hard to comprehend?

    The only part you would have to explain to your 1999 self is why people would bother to use it. Smaller more targeted social networks existed in 1999. Just explain how celebrities can make anything marketable in our 2010. Is the product useful? Who cares if you have a Celebrity (thus marketing) on your side.
  • One way to download your BASIC programs... 2010-04-03 23:26
    Depending on what you’re looking at, the room you’re in has dimensions, contains walls and maybe window coverings. The furniture in a room is constructed from blueprints/plans using wood and metal, which in turn are cut to size and are made up of even smaller things like molecules. And those of course break down to atoms, which have sub-atomic particles, and quarks.


    So the world's really just a big XML document? *shudder*
  • oh 2010-04-03 23:49
    Muppet:
    Surely you don't need to hardcode all of the data. Why not break up complicated things like words into their separate components like letters and maybe assign a number to that letter and convert it to a series of 1's and 0's. I hear computers deal very well with these.

    Then you can just write them like this directly to the disk or perhaps to memory if you're not worried about what might happen if the power goes off.

    Simply then get the computer to read the 1's & 0's in the right order and you can re-create the information that you wanted to retrieve.


    do you think we could somehow encode programs in this way as well? if we could put those on the disk maybe we could get rid of all those cards with holes in.
  • Anonymouse 2010-04-04 06:18
    I was reading this like "What the hell has this guy been smoking?" until I realised it was posted on April 1st. Funny.
  • PinkFloyd43 2010-04-04 09:08
    Oh damm it took an entire clock cycle!
  • googlyeyesultra 2010-04-04 10:13
    For quite a while I thought that the decrying of the decline of relational databases and the like was a lead-up to a SpectateSwamp joke. SSDS is clearly superior to your APDB. No known bugs!
  • CS 2010-04-04 17:15
    I just opened up the file in a simple hex editor, scrolled down to the string tables, trawled through loads of crap until I got to the "April Fools" bit. Does this count as option (b) - disassembling the code? I didn't really disassemble it as such, just opened the file up ;)
  • not very decent 2010-04-05 07:32
    Was this supposed to be an April Fool's joke?
    I thought this was too stupid to be one.
  • ParkinT 2010-04-05 08:17
    Where do I submit Bug Reports for APDB?
  • Herbie 2010-04-05 20:40
    What you are describing sounds remarkably like the Pick Database. Each record is accessed via a Hashing algorithm (key that is). The data may contain anything, within reason, and is completely dynamic, growing and shrinking as needed. Need 20 bytes for a name, no problem. Need 50, so.. Just put the name in and the record adjusts.
    Indexes are under your control.
    And again, No fixed length fields. No loss of disk space, even tho it's cheap. Only uses what is needed.
    File, and I do mean files, are allocated by what is called a Modulo. If you need to make the file larger, resizing may done on the fly or at restore time.
    Granted, there are issues, like adding an item sometime later would put the new item wayyyyy out on disk. That is if it didn't fit into the original file sizing parameters.
    Perhaps going to this link http://en.wikipedia.org/wiki/Pick_operating_system might prove more informative.
  • me 2010-04-05 21:37
    and they're portable too! http://dvice.com/archives/2009/05/35-inch-floppy.php
  • Scarlet Manuka 2010-04-05 22:39
    Twigg:
    "Although the APDB Engine is written in machine code, I used .NET 2.0 for menu stuff"

    That's pure win.

    Especially given the DOSy menu screenshots.
  • z f k 2010-04-06 05:32
    amischiefr:
    From 1999? Hell, I still don't understand what all the hub-bub is about. I don't get it, really. Who cares that you just got home? Who cares that you're watching American Idol?

    Well, let me see...
    Advertisers? Customer profilers?
    Do you have something (even a non-material one, like... smokeware) to sell? You need to know what people do and where, when and how they do it? Just grep a bunch of tweets and analyze it. Or pay somebody a crapton dollars to do it for you.

    CYA
  • z f k 2010-04-06 05:33
    One way to download your BASIC programs...:
    Depending on what you’re looking at, the room you’re in has dimensions, contains walls and maybe window coverings. The furniture in a room is constructed from blueprints/plans using wood and metal, which in turn are cut to size and are made up of even smaller things like molecules. And those of course break down to atoms, which have sub-atomic particles, and quarks.


    So the world's really just a big XML document? *shudder*


    Hee hee. MatriXML. ^_^;;;

    CYA
  • Anonymous 2010-04-06 09:39
    Drive manufacturers have moved beyond the cylinder, sector, head architecture for a while now- in lieu of LBA. In fact, the fastest drives on the planet do not even *have* cylinders and heads anymore. A single number can act as index for either drives, files or any other block device. No need for 3 different numbers just to have an index.

    I call fad on this one.
  • Konamiman 2010-04-06 12:51
    I don't get this one. What is the WTF here?
  • Nick 2010-04-06 13:18
    Could this have been the plan of the poster of http://ask.slashdot.org/story/10/03/02/2341236/Write-Bits-Directly-Onto-a-Hard-Drive-Platter ? I sure do hope so.
  • Nick 2010-04-06 13:19
  • lyates 2010-04-06 13:44
    APDB utilizes the physical memory locator (CHS# - Cylinder, Head, Sector) as data-access keys.


    In the late '70s, I actually worked at a place that removed its' file system and stored everything this way.

    When I (as system admin) restored the file system all hell broke loose!!!

    Not only that, but when it rained water would leak onto the huge disk packs. LOL
  • Gordon Haddely-Smythe 2010-04-06 14:19
    ... another down side is that you can never upgrade or re-organize your storage hardware, so make sure you get it right first time!
  • Costanza 2010-04-06 16:39
    you sure it's not Not Too F'ing Smart?
  • olygofren 2010-04-07 11:07
    Pretty good stuff though the obfuscation was a bit lame ;)

    An intriguing mix of prank and some really interesting and useful code I learned a lot from, 10x.
  • Jay 2010-04-07 13:23
    Bah, this system has the obvious flaw that it is totally vulnerable to hardware failures.

    The real wave of the future is a recent invention called "punch cards". They are totally impervious to magnetic anomolies and head crashes. They have even been proven to be capable of withstanding an EMP attack. They are inherently both machine-readable and human-readable. Indeed, the data is still accessible even if your sever is completely down! What other database can guarantee that?
  • IsItEverFastEnough 2010-04-07 14:30
    The database won't work with my system. Oh, wait... SHIT! My WD drive model number ends in 'S'!!!

    Hysterical.

  • swschrad 2010-04-07 16:27
    red flag: "There are no known bugs."

    even if it was programmed by monkeys on crack, there would be known bugs.

    if there is one operator and one operand in a program, there must be a bug. that is a given.
  • Stinky 2010-04-08 13:05
    If you want state of the art, try the FSDB. The "File system Data Base" uses the findfirst() and findnext() file system directory functions to index your objects. Using symblic links, it even acts relationally. With the FSDB you simply create directories instead of tables. Then you persist your objects to files in these directories.
  • not very decent 2010-04-08 13:57
    Costanza:
    you sure it's not Not Too F'ing Smart?

    Quite.
  • hoodaticus 2010-04-10 08:04
    Now if we can just replace the Wheel, we'll be ready to move into the 22nd century.
  • frits 2010-04-10 09:19
    hoodaticus:
    Now if we can just replace the Wheel, we'll be ready to move into the 22nd century.


    With jet packs!
  • frits 2010-04-10 12:05
    hoodaticus:
    Now if we can just replace the Wheel, we'll be ready to move into the 22nd century.


    With jet packs!
  • Paperless 2010-04-11 19:42
    Jay:
    Bah, this system has the obvious flaw that it is totally vulnerable to hardware failures.

    The real wave of the future is a recent invention called "punch cards". They are totally impervious to magnetic anomolies and head crashes. They have even been proven to be capable of withstanding an EMP attack. They are inherently both machine-readable and human-readable. Indeed, the data is still accessible even if your sever is completely down! What other database can guarantee that?


    My refrigerator magnet database has been up and running since 1981. I'm thinking of upgrading with a web cam, so I can access it from work.
  • Paperless 2010-04-11 20:06
    Funny. The odd bug is - APDB needs an external database to manage the keys, otherwise how do you find where you put which keyed data?
  • RRR 2010-04-12 04:50
    Wow! Cool! Wait... What?!...
  • Yanman 2010-04-15 09:21
    But can it run Crysis?
  • WaltDismal 2010-04-20 21:58
    My client SCO had me contact you since they own the rights to one-click direct data addressing, which they tell me they bought from Ada Lovelace. You owe us eleventy bazillion dollars for infringement. Also, I have notified the RIAA that your cat downloads mice illegally. Don't mess with us, we know what we're doing.

    Sincerely,

    A. G. Douchebag
  • women puma shoes 2010-04-30 04:04
    Hello! I have read a lot on this topic, but you definitely give it a good vibe. This is a great post. Will be back to read more! Please come visit my site:http://www.salepumashoes.com/ welcome your coming when you got time!Thank you!
  • D&G Ladies Leather Watches 2010-09-27 23:14
    unless you should concerning lAmid A smeach particular, certain equally discount Womens Watches though anyhow having the status of Jaquet Droz Watches Les Lunes, you surround come on the road on the road that the apposite stance. Cartier Watches Montres 21/Chronoscaph offers a deep get hold of of brin addition-name Audemars Piguet Watches Ladies Collection - Danaé at bizarre regards.we hope the so as topgreatest timbre of watch replicas friendly, in force type by the adjoining of side as well as the manufacturers to infer the most straight middling to repeat each one tyle, prepared of towering appraise equipment, afterward also species consideration. we retain crowd very inflexible quality stas well asards & material rudder to all suppliers.
    our Jaquet Droz Watches Les Lunes and Womens Watches are in effect the awfully as the primary ones having the status of including the welcoming price, high quality materials and imposing workmanship. sell Breitling Watches Aeromarine Collection - Colt Automatic is also publicized.
    our aim is to reserve you with first sort services as well as preeminent impressions watches, and issue your online shopping skill a wonderful one.9088232343002
  • Sam 2011-02-03 10:53
    Hey kinda new to this but doesn't this limit you to using only certain drive types. Also what about the merger into solid state drives. And would you ever need to defrag? Juwst some thoughts. But I surely like the concept.
  • damnum 2011-02-16 20:30
    Pretty similar to something I was doing in the mid 80's, and generally pissing over what SQL could provide.
  • Norman Rorqual 2011-10-22 19:02
    This is pretty great, but...I can't imagine what that EXE file he linked at the end would actually DO. Can anybody explain for those of us who may be a bit rusty on our hex-editor hacking?
  • JasonD 2012-02-10 05:41
    So... How well does this play with "Spread Writes", which is done by the HD, not the OS?

    How well does this work if something decides to defrag, and relocate data to new cells, to keep it contiguous?

    How well does this work, per volume of data? Any time-demos?

    Times using simple 2D arrays (rows/columns), 3D arrays (row/column/page), xD arrays... Non-format data (raw) and (non-fixed length)... 1000 entries on 1000 tables, and 10000000 entries on 100000000 tables... and table/cell/data locking...

    Failed-erase, Failed-writes, sorting, condensing for duplication/backup for later expansion... (Has to repopulate the same cells, which may now be other data. Thus destructive restoration, thus must inject and re-create the whole DB every time... That is a LOT of time just to restore, and what to do with new data, not restored.)
  • Oscar Carserud 2013-10-05 11:50
    Hmm. Sounds like the grana software db to vic64.
    Exept that was flopy disc times.
    The logic is the same.
    The sweet 80 ies.
    As the 90 arrived,
    I remember the yoy of relational databases as they where a new consept.