• Anonymous Myst nerd (unregistered) in reply to Erick
    Erick:
    Nope, nerdiest person would actually be able to code them.

    D'nian number system. Ah, the nostalgic memories of Riven.

    I think it's possible given the grammar in the definition file, but it would take a whole lot of statements.

    Sorry, it's impossible. OMG!OCRCAL only allows base 10 calculations by defining the "Zero" through "Nine" logical entities. The D'ni number system is base 25. Maybe version 2.0 should allow arbitrary bases.

  • (cs) in reply to Anonymous Myst nerd

    Ehhh, all you gotta do is hack out 0 through 9. It won't be base 25 but it'll get the job done. You can save a lot of trouble by ignoring the bounding box for each number and just coding the symbol inside.

    one is a long vertical line

    two is a part of circle 1 to 5

    three is a short slash line a short backslash line bottom of first joins top of second

    and so on...

  • Muhammad Haggag (unregistered)

    Regarding the "application configruation is incorrect" error: It could very well be due to missing VC++ 8 SP1 runtime DLLs. If the exe is built with an SP1 VC++, it won't run on PCs wihtout the runtime installed.

    The runtime is located at: C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\BootStrapper\Packages\vcredist_x86, in case someone can upload it somehwere (it's 2.55 MBs in size)

  • Csaboka (unregistered)

    It seems to have a problem with dividing with decimals. For example, 6.8/2 gives (after a long calculation) 3.1E...

    Oh well, nothing can be perfect.

  • Someone (unregistered) in reply to Erick
    Erick:
    Ehhh, all you gotta do is hack out 0 through 9. It won't be base 25 but it'll get the job done. You can save a lot of trouble by ignoring the bounding box for each number and just coding the symbol inside.

    The only problem with this is that (if I recall correctly) the D'ni zero is a single dot in a box; without the bounding box, it would be the same as the decimal point. One would then be stuck finding some other representation for the decimal point (icosapentimal point, perhaps). Do the D'ni numbers have one? I can't remember.

  • slamb (unregistered)

    Wow...the others were WTFy, but this...this is sheer misapplied genius. The author should be locked up in an insane asylum or Research & Development laboratory.

  • (cs) in reply to Thygrrr
    Thygrrr:
    And this is ranked #6 ???

    OMG... awesome idea. Can't even barely fathom the others.

    This isn't really a WTF...its actually pretty cool. I'm digging it down.

  • (cs) in reply to AbbydonKrafts
    AbbydonKrafts:
    Ozzy:
    Has anyone defined the roman numeral configuration file yet?

    I was working on it, but it looks like I can't tell it to put a line beside another one. Instead, it stacks them.

    Yes, the feature of putting one shape to the side of another is missing. That's the consequence of "config file driven development". '=' was the only disjoint shape, so 'never intersects' really means 'is located above'. Well, it shouldn't take long to add four new join definitions to the parser and join finder. What troubles me most is that I feel like doing it... no, must resist temptation. Better to declare it GPL and give world write access to SVN repository.

  • Joe (unregistered) in reply to Anonymous Myst nerd
    Anonymous Myst nerd:
    Sorry, it's impossible. OMG!OCRCAL only allows base 10 calculations by defining the "Zero" through "Nine" logical entities. The D'ni number system is base 25. Maybe version 2.0 should allow arbitrary bases.

    And I know just how to do it... In the configuration file, each entry is a link to the previous, like:

    One is the number after zero, shaped like
    	either
    		a long vertical line
    	or
    		a long vertical line
    		a very small slash line
    		top of first joins top of second
    

    zero, decimal, and the operators are the only hard-coded entities. After parsing the config file, the number of numerical entities is the base you're working in. It's left as a topic of debate what the result should be if you have two numbers that both declare themselves "after x".

    Hmmmmmm....

  • (cs) in reply to Anonymous Myst nerd
    Anonymous Myst nerd:
    OMG!OCRCAL only allows base 10 calculations by defining the "Zero" through "Nine" logical entities. The D'ni number system is base 25. Maybe version 2.0 should allow arbitrary bases.
    Never thought about it, but you just have to rewrite the Evaluator::inc() and Evaluator::dec() methods to change the base. The strings "Zero" and "One" have special meaning outside these methods, but nothing else does. And it's trivial to remove hardcoded values from dec(), replacing them by inc() called in loop, so that leaves one place. I'm not sure, though, that the shapes with so many parts will be recognized successfully.
  • Da' Man (unregistered)

    Hm, how comes this definition language reminds me so much of AppleScript?

  • (cs) in reply to IMil
    IMil:
    What troubles me most is that I feel like doing it... no, must resist temptation. Better to declare it GPL and give world write access to SVN repository.

    I LOL'ed. Same here. The code isn't that WTFey, so it wouldn't be too much effort. But.. it's just wrong to do that.

  • (cs) in reply to slamb
    slamb:
    Wow...the others were WTFy, but this...this is sheer misapplied genius. The author should be locked up in an insane asylum or Research & Development laboratory.

    It is quite spectacular. If it doesn't win, it should get a special prize of it's own.

  • Chris (unregistered)

    The "keypad" area is blank for me, and OCR isn't working?

    (And yes definitions.txt is present.)

  • (cs)

    And the WTF is?

    Seems like a really cool program, and I'm glad you showed it to us, but it doesn't belong in the top 12 (of course Sanjay didn't either)

    Perhaps the code is WTF worthy, except Alex didn't think so enough to give us any samples. I didn't see anything in the writeup that even qualifies as a WTF. Except perhaps the concept that you are doing math without numbers (keep deluding yourself)

    Cool program, but not what the contest was about.

  • Mitch T (unregistered) in reply to Da' Man

    You never used cobol before have you?

    My wrists ache just thinking about that english major inspired language. Bah.

    Seriously though, can we do another wtf contest a month long that has people create the most off the wall programs?

    This is sheer diabolical genius. Not a regular wtf, but it definitely IS a wtf. The best wtf part is that we are all sitting here saying, "well it is damn good, but we can't define a shape like II, time to modify the parser" instead of: Next time you do stuff like this, share what you are smoking.

  • (cs) in reply to Muhammad Haggag
    Muhammad Haggag:
    Regarding the "application configruation is incorrect" error: It could very well be due to missing VC++ 8 SP1 runtime DLLs. If the exe is built with an SP1 VC++, it won't run on PCs wihtout the runtime installed.

    The runtime is located at: C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\BootStrapper\Packages\vcredist_x86, in case someone can upload it somehwere (it's 2.55 MBs in size)

    I have some questions about the legality of such and "upload". There are quite a few MS folk who read this site BTW, so such an upload could quickly result in a Web site being shut down. OTOH, Microsoft is pretty generous with its runtimes, generally listing them among redistributables that can be bundled with applications, and most likely has it available somewhere in its downloads area for free download. [M$ has a vested interest in supporting its development tools] I suggest that finding the location for a legal download might be a better approach to getting this, as well as other programs built with the same development tools, to run.

  • (cs) in reply to chrismcb
    chrismcb:
    And the WTF is?

    Seems like a really cool program, and I'm glad you showed it to us, but it doesn't belong in the top 12 (of course Sanjay didn't either)

    Perhaps the code is WTF worthy, except Alex didn't think so enough to give us any samples. I didn't see anything in the writeup that even qualifies as a WTF. Except perhaps the concept that you are doing math without numbers (keep deluding yourself)

    Cool program, but not what the contest was about.

    Perhaps you're right. The code itself is not very WTFy (I recall that there were some 'clever' parts, but can't find them now). But you are definitely wrong when you call the program 'cool'. It may look almost usable from description, but in fact it's barely able to pass test cases. This especially applies to the 'recognition' part. Well, there's no way I could produce a working OCR in this time.

  • Trinetra (unregistered)

    What's with Russians and OCR anyway? :) Jokes apart, they're definitely the world's smartest programers...

  • (cs)

    YO! I believe, definition.txt stuff OCR'ed by the same super-engine as well?

    must be I18N'ed! sure.

    respect!

  • Nyuserre (unregistered)
    if we can describe the shape of numbers, why can't we recognize the mouse movements based on the same description? And hence, the OMG!OCRCAL was born.

    So it's not even OCR at all then, is it? Nice touch.

  • Ap (unregistered)

    Very nice, best one so far IMO.

  • Crom (unregistered)

    Don't get me wrong, this is great, but this has been done before. Most handheld devices have their own calculator program that works the same way. A google search revealed this project (source code included)

    http://pgmrcalc.sourceforge.net/

  • theultramage (unregistered)

    "The application failed to start because its configuration is incorrect" is microsoft's new way of saying "msvcrt80.dll is missing". Now for some wtfs:

    1. Placing it into the app's directory won't work anymore, you have to install it as a side-by-side assembly.
    2. These things aren't bundled with windows by default (not even Vista).
    3. You need the x64 package if you run a 64bit OS, even though the module is 32bit.

    To deal with this, either get used to bundling the installer with your app (google "Microsoft Visual C++ 2005 Redistributable Package"), or switch the project to static crt linking. Either way you lose.

  • (cs) in reply to AbbydonKrafts
    AbbydonKrafts:
    IMil:
    What troubles me most is that I feel like doing it... no, must resist temptation. Better to declare it GPL and give world write access to SVN repository.

    I LOL'ed. Same here. The code isn't that WTFey, so it wouldn't be too much effort. But.. it's just wrong to do that.

    I think it is beautiful, and I stand by that. It may be insane, but it's the pretty kind of insane. If I knew C instead of Java, I'd so give this a variable base extension.

    (Of course, this comes from someone who enjoys typing things like "three plus five times sine of pi squared" into the Google search box.)

  • Wolf Logan (unregistered) in reply to rjnewton

    The contents of the vcredist_x86 directory are specifically intended to redistributed, although usually it's expected that they'll be included on the dist media for an app that requires them. It's allowed to include them in downloads, as well, although they're usually not packaged together with the app in these cases due to the size of the RTL.

    You can get the "official" distribution at Microsoft's download site.

    Oh, and the "$" in Microsoft's initials? You're so witty.

  • Jan (unregistered) in reply to rilarios

    You are lacking the VS2005 SP1 version of Visual C++ Redistributable Package that is required to run applications built with Visual Studio.NET 2005 SP1, such as R4. More information and download links can be found here: http://blogs.msdn.com/nikolad/archive/2007...r-download.aspx.

  • Jan (unregistered) in reply to Jan

    That was supposed to be http://blogs.msdn.com/nikolad/archive/2007/04/23/vs2005-sp1-version-of-visual-c-redistributable-package-is-available-for-download.aspx

  • Yet another Anonymous (unregistered) in reply to Anonymous
    Anonymous:
    To all having trouble to enter digits: You have to do it one shape per mousedown. (e.g. three: mousedown-semicircle-mouseup-mousedown-anothersemicircle-mouseup) If you draw the entire digit at once, it won't recognize it.
    Holy fuck! I was just about to kick this shit thing into the bin since it never recognised anything... well in this case I guess it tracks the mouse moves rather than doing OCR!?
  • veronica (unregistered)

    I just recently found the site, and I've been going through the archives. It would be great to be able to actually look at more than just the snippets of code from OMGWTF that are posted in the actual articles, but it seems that the zip files are missing! Any chance they could be reposted?

  • yes (unregistered)

    I tend to favor this: a small circle a long vertical line a small part of circle 9 to 3 a long vertical line a small circle a small horizontal line a very small circle 3 of first joins bottom of second top of second joins 9 of third 3 of third joins top of fourth bottom of fourth joins 9 of fifth left of sixth joins 9 of third 12 of seventh joins 12 of third right of sixth joins 3 of third

    ...

  • Dick Piccard (unregistered) in reply to snqow

    That would be "The Feeling of Power." Not only had they forgotten how to do arithmetic without electronics, they had forgotten that it COULD be done. See, for example,

    http://en.wikipedia.org/wiki/The_Feeling_of_Power

    for more details.

  • Mike (unregistered)

    This should be refined and ported to Android and iOS immediately.

  • noah (unregistered)

    Never ever EVER make a plain-text configuration file in plain English. That's rule 1; rule 2 is that configuration files should only be in binary if it's ABSOLUTELY necessary. The fact that it's actually worth mentioning that it isn't in binary tells me there is something seriously wrong with the world.

  • Dasrren (unregistered)

    Program runs fine but doesn't recognise any characters I draw in - does it have to match 100% to the digits on the right???

  • Frank Foobar (unregistered)

    Someone, please provide a working download link for teh source code.

  • (cs) in reply to Frank Foobar
    Frank Foobar:
    Someone, please provide a working download link for teh source code.
    https://github.com/imil/OMGOCRCAL

    See the recent post for details.

  • real-modo (unregistered)

    The commenters who say this is not a WTF are right: it's a pitch-perfect example of chindōgu.

    Chindōgu is a Japanese art form (or, in the way of Japanese things, possibly a subtle and profound Zen commentary on life). From Wikipedia:-

    "Chindōgu is the Japanese art of inventing ingenious everyday gadgets that, on the face of it, seem like an ideal solution to a particular problem. However, chindōgu has a distinctive feature: anyone actually attempting to use one of these inventions would find that it causes so many new problems, or such significant social embarrassment, that effectively it has no utility whatsoever. Thus, chindōgu are sometimes described as "unuseless" – that is, they cannot be regarded as "useless" in an absolute sense, since they do actually solve a problem; however, in practical terms, they cannot positively be called "useful"."

    Coders should be quite at home with chindōgu - in concept space, it's near both WTF and wabi-sabi.

Leave a comment on “OMGWTF Finalist #06: OMG!OCRCAL”

Log In or post as a guest

Replying to comment #:

« Return to Article