I'm not sure if this qualifies but.... In college, I had a professor who was trying to make a joke (I'm quite sure nobody laughed). But, as we were handing in our latest programming assignments (a . Net GUI app that drew some things on the screen - nothing fancy) he said, 'For extra credit - you can write a program that will grade all of these!' (referring to the 30-something assignments sitting on his desk).
Naturally, being somewhat a class clown; I took him at his word. This was a Tuesday and our next class met on Thursday.My program would run through all of the . Exe's in a particular folder, 'test' and 'grade' them.
The directions for the assignment were obnoxiously direct; to the point of telling you exactly what to name each control on the form. I was able to use Win32 API calls to determine if those buttons really did exist. Then it would perform a mouse click and verify that the shapes that were supposed to be drawn on the screen were actually being drawn by using 'GetPixel' along with some logic to determine what shape it was.
It was certainly hack-ish; and rushed - but I was quite proud of myself. I cleaned up the code and printed the source and put it in one of them 'I spent $1.00 on plastic, therefore whatever paper is in here must be important' things from the student center. I showed up to class on Thursday after pulling an all-nighter to get it finished.
If I'd only spent that much time working on actual assignments. Class began...after about five minutes I interrupted and asked if he would be collecting the Extra Credit assignment today? He looked confused and asked, 'What extra credit'.
It was pretty classic. I said, 'The assignment grading program! '.
He took the assignment and continued on with class. That evening I received an e-mail from him asking me to stop by his office on Friday. I did, and he offered me a graduate assistanceship (IE - no tuition to go to graduate school + monthly stipend to assist a professor).
In terms of 'dollar per hour' it was the most productive programming I ever did.
3 this the best one great work! – Yassir Jul 5 '09 at 22:16 1 Inspiring story indeed! +1 – mizipzor Jul 6 '10 at 9:00.
This one wasn't me, but it was my friend Scott Anderson. He had a problem. He had 7 cats, who all thought it great fun to climb the Christmas tree.
Which destroyed the tree. He taught them not to do it when he was around, but he was generally asleep at 2 AM so that didn't protect the key. He therefore bought a motion sensor and (after some experimentation) wrote a program so that when it sensed motion it would run the vacuum cleaner for 30 seconds.
After a week of random, "WHIRR! " "Mrow! " and then a mad cat dash, often resulting in thumps of collisions, the cats learned that the Christmas tree was not to be trifled with.
Bonus points for when his wife forgot the system was there and was caught trying to sneak presents under the tree!
If so, you wouldn't need a computer in the loop -- unless the specification to shut it off after 30 seconds is what motivates the requirement for a computer (and a programming language). – JasDev Apr 8 '10 at 19:50.
We are in the custom integration business. We had a customer ask us to put a sensor on the powder room toilet. When someone flushed the toilet during a party a flush sound is played through the whole home audio system.It is a novelty but it made the customer happy.
– Thomas Owens Sep 23 '08 at 18:37 7 if only they broadcasted all the other sounds too – CRice Jul 1 '09 at 4:38.
I once made a perl script to insert ascii art into other people's web server logs.
I once wrote an assembly interpreter in python for a fake assembly language our teacher was pestering us with. He would give us these ultra long, ultra complicated code listings and dare us to find out what it produced and what the "machine" looked like after each instruction. Then he would brag about how we were all too stupid to understand the machine and that Java was rotting our minds (it was!)... But I showed up with an Excel sheet with the machine state after executing each instruction per row :).
1 Dunno if you deserve thumbs down for positively reinforcing this aggravating teacher or thumbs up for bad attitude. I guess I'll give thumbs up because of the use of Python :) – ddaa Oct 21 '08 at 19:23 13 +1 for taking the teacher on. Sometimes, they just deserve it.
– ojrac Apr 13 '09 at 22:34.
My father was in radio communications on submarines in the British Royal Navy when he was younger. He's in his mid 60s now, but about 10 years ago he came across a defense job opening with ASIO (the Australian spy agency) keeping tabs on the radio chatter coming out of Indonesia. This was pre-Bali Bombing, so maybe ASIO knew something was going on back then.
I wrote a Pascal application that converted text strings into Morse code and played it out the PC speaker so he could check his Morse abilities. He could also use the spacebar as an input to "send" messages. He didn't end up applying for the job, but he got a chance to show off his skills to us kids.
He was proud that I could program the computer to talk Morse; I was proud of him for talking Morse without a computer.
Microsoft Excel Minesweeper I was being under-utilized at a temporary job I had during a summer several years ago. Unfortunately, they didn't have a minesweeper game on my workstation. I made one from an Excel spreadsheet and VBA.
Because it was work-product, I can't post the code publicly- it remains the property of my former employer. I cannot foresee any circumstance that would compel me to do that again.
It sounds like they tossed you in a hole and left you for dead.(Unless it wasn't a programming job.In either case, no internet is no fun. ) – Cristián Romo Apr 13 '09 at 23:19.
When I was in college, one of the other CS students claimed to have found a vulnerability in the way Novell authenticates passwords on the network, and backed it up by telling me (correctly) my network password, which I promptly changed. But a while later, I noticed that, on some of the computers in some of the computer labs, my first login attempt would always fail, no matter how carefully I typed my password. I did some poking around.
This was back in the DOS-and-Windows-3.11 days, and the Novell login app was a text-mode DOS app. I found that what he had really done was to write his own DOS app that looked like Novell's login screen, and added it to Autoexec. Bat on some of the computers.
After you typed in your username and password, his app would say "bad password", then exit back to Autoexec. Bat, which would continue on to the real Novell login app. But not before his app had saved your login and password to a hidden, semi-ROT13-encrypted file.So I wrote an app of my own, saved it in my home directory on the network, and set it to run every time I logged in from any computer in the network.
My app would look for his password file on the local hard drive, hunt through it looking for my login name, and replace my ROT13-ed password with characters that, when decrypted, would be a long sequence of BEL characters. Never did hear if he found my app, but I like the mental image of him frantically hitting Ctrl+Break so that everyone else in the lab, looking to see why his computer is making all that racket, doesn't catch him with his list of hacked passwords onscreen...
3 +1 for proper use of ASCII 7 :) – orip Dec 9 '09 at 18:23.
I built an online poker bot in C++ and it made a tidy profit, and only took 3 years to build! Woot!
1 +1 Excellent post – Andreas Grech Jul 5 '09 at 22:19.
For one of my Computer Science masters project, I've made a CPU scheduler simulator ...in Microsoft Excel 97. I've got job algorithms implemented. You can simulate one second/tick intervals Currently in used in a school somewhere (one of my classmates teaches and used my code to demonstrate CPU scheduling) The project can be found here: github.com/MrValdez/CPU-Scheduler-in-Exc....
1 Ok. I've finally decided to release this as an open source project: github. Com/MrValdez/CPU-Scheduler-in-Excel-97.
This is the first time I've open sourced one of my code, so please be gentle. :p – MrValdez Apr 13 '10 at 3:54.
Our receptionists would send out the Daily Birthdays email every day, an email to the entire company to announce who has their birthday that day (including weekends on Friday's email). This made everyone feel a little loved by this human touch. They got a little tired of this, and since everyone's birthday is in the staff HR database already, it became my task to implement this in code.My nickname for it?
Automated Love.
11 Now all that's needed is for everyone to add e-mail filter rules to automatically ignore the automatically generated emails. Then their will be no human involvement in a system intended to make people think other people care about them. – BCS Apr 9 '10 at 2:12.
Right now I'm writing software to track how many times people wash their hands in a hospital setting. Big Brother is here.
1 This actually sounds like good software. It's scary how bad this still is in the century. Check this: institute-shot.Com/hand_washing_by_health_care_providers.
Htm – Mladen Mihajlovic Oct 17 '08 at 7:49.
I made a llitte php spcrit taht mix wodrs folliwong the legned abuot taht invtietgasion taht seatts that if you scrmable the txet idsine a wrod, levinag the fsirt and the last ltteer unthocued you can stlil read it. They siad that is bscauee we raed wlhoe wrdos, not ltteer by lteter.
2 I did the same thing but as an Outlook macro. I'd annoy my friends by running it on email before sending it to them. – Steve ner Nov 3 '08 at 20:56 3 I did this too as my first programming project, but in Java.
I made a whole bunch of methods to manipulate strings that were already in the API (like split) because I didn't know that. I'm one of those people on The Daily WTF who reinvents the wheel over and over. The code was awful.
– JulianR Apr 13 '09 at 22:29.
Oh yes, forgot to mention the Dancing Steve Jobs that can be run in iTunes as an visualizer. Some ideas just have to be realized :).
My teacher told us to write a useful program using recursion. I wrote a zombie apocalypse simulation program that would figure out how many humans would be converted into zombies and how many zombies would be killed each day. By my calculations, my town would survive a zombie attack, but only 6 people would survive.
I wrote a duplicate file detector in Python using only lambda, no def, to prove it could be done and still be somewhat comprehensible. I'll leave it up to the reader to decide whether I succeeded: import sys import os import hashlib check_path = (lambda filepath, hashes, p = sys.stdout. Write: (lambda hash = hashlib.
Sha1 (file (filepath). Read ()). Hexdigest (): ((hash in hashes) and (p ("DUPLICATE FILE\n" " %s\n" "of %s\n" % (filepath, hasheshash))) or hashes.
Setdefault (hash, filepath)))()) scan = (lambda dirpath, hashes = {}: map (lambda (root, dirs, files): map (lambda filename: check_path (os.path. Join (root, filename), hashes), files), os. Walk (dirpath))) ((len (sys.
Argv) > 1) and scan (sys. Argv1)) I've also written a working GUI calculator similar to calc. Exe with a main that consisted only of: int main () { return 0; }.
13 That's some awfully nice LISP you have there ;) – Cody Brocious Sep 23 '08 at 3:36.
Not too intense on the programming angle, but I setup an RSS feed for the coffee machine in our building so that folks could make a quick post when they started up a fresh pot. We were spread out enough that I thought having a little notifier would be handy, without coding from scratch, but everybody looked at me a little funny 8^D.
The Wardrobe'. A database for clothing. Depending on wheather, mood, occassion etc it outputs the perfect combination for the day.
A 'Turkey Management System' C++ , Motif Script GUI Controlled the turkey feeding rota's and grooming data for a turkey farm. It used previous weeks data to modify yield calculations etc.....and I did it for fun...no customer....must have had turkey on the brain, or bird flu?!
I decided to use the Y-combinator pattern to reduce factorial in JavaScript down to the Peano axioms. That is I wrote factorial as a recursive function in terms of multiplication which was written recursively in terms of addition which was written recursively in terms of the functions +1 and -1. For some reason I got too much recursion when calculationg 8!.Pity.
The code is kind of long so I'll just provide a link. Oddly enough my attempts at nice indentation don't seem to have made it very readable. Since I'm using a functional technique, maybe it would be better translated into Lisp?
Again the code is long, so I'll just provide another link. Hmmm. People might not prefer it, but MIT Lisp proved it was better at recursion than JavaScript.It handled 8!
Successfully and failed at 9!. Should we consider this proof that Scheme is a better language than JavaScript? Or should we prefer Ruby for looking at the Ruby translation and deciding that no program could legitimately have that many braces open at once?
Obviously this is not a useful factorial algorithm. In the factorial thread I posted a far more efficient version of factorial.
I once put an emulator of a Jupiter ACE in a CAVE with 4 sides. The emulator was interfaced through a 3D model of the computer and a TV set and one could type on the keys to ie load a game. This was late 1997 and the setup was a SGI rack IR Onyx with 4 barco projectors and was priced to almost 2 million USD...and on this I emulated an "outsider" home computer from the early 80'th which had a price of 150 USD.My collegues shook their heads and I knew then that I nailed it :) A windows version is available here.
I'm into home automation, mostly using X10 modules. I'm also into theater lighting, sound, and special effects, so Halloween is a big deal to me. One year I put it all together and ran my Halloween special effects from my computer.
Not only did I have certain lights get brighter and dimmer at random, but I wired a relay into the switch of my fog machine, and had my computer randomly trigger the fog machine. But the fog machine would spittle if you let it on for too long without firing, so it would also have hard minimum and maximum cycle times. Best of all, I had a motion sensor on the stairs that would trigger a pair of strobe lights.
Second best is, before I built my MythTV box, I had an infrared transceiver on my server that could send channel commands to the cable box, and start/stop/record commands to two VCRs. I had my recording schedule in my crontab file, and at the correct times, the program I wrote would send the codes to turn on the cable box, change to the right channel, turn on one of the VCRs (load balanced), and start recording. At the end of the show it would shut everything down again.
A C interpreter in Prolog (it handled a subset of C (with memory management)). A simple web browser in Prolog.
My most recent weird project: A word processor that threatens to destroy what you've written. Write Attack! It's for NaNoWrimo 2008.
One of the first things I do to learn a new programming language is to write a program that analyzes a source text and then uses a Markov-chain analysis to generate random gibberish that's somehow written in the style of the source text. I think I've done this in six or seven languages now. Why I love Python: It took me about two hours to get it working.
And that two hours included building a little IDE in C# that executes the program using IronPython, because I didn't realize I could just use IDLE or grab Eclipse. It's actually not a bad program, for one written by someone who doesn't know Python (it's importing clr so that it can use the CLR's Random class; making this work in vanilla Python is an exercise for the reader): import sys import clr from System import Random r = Random() def buildmap(text, size): map = { } for I in range(0, len(text)): if I + size length: break char = mapwordr.Next(len(mapword)) output. Append(char) word = word1:len(word) + char return "".
Join(output) text = sys.stdin.read() map = buildmap(text, 6) print producetext(map, 1500) Not bad, though not as Pythonic as it could be. Here's some sample output. Determining what the input was is another exercise for the reader: Open your hat get your hat get your hair Your face like a Cuban plane My love is like ribbons And the swamplands From the hillside struggling to the casements Rip the Florida coast to the searchlights up Turn the helicopter passes We're pretty sure they're here will walk again Put on the wind stopping Feel the way down with a broadsword.
I wrote a DNS server that used SOCK_RAW sockets to issue responses to queries, because I wanted to run two DNS servers, one for privileged users and one for unprivileged users, based on rules in the firewall. Doing an iptables -j DNAT --to-port $highport allowed the secondary DNS server to receive the UDP DNS query packets, but when the response was issued, because of the way things worked, the response would come from the highport instead of the domain port that it was originally sent to, and the querying host would discard it. As a result, I had to take requests via a normal UDP socket, construct the packets, do manual ARP requests and have an internal representation of the routing table, in order to send the response to the correct place from the correct port and to the correct port.It was honestly the nastiest hack I've ever written.
I took the phonetic model from the Festival text to speech engine (when it was still in Scheme, SIOD) and turned the tree inside-out to produce a dictionary of homophones. The intent was to use it as a Phonetic Human Interactive Proof to help protect data on a web-site from being scraped. The normal site had an image based HIP (CAPTCHA), and the mirror-site that compiled with the American's With Disabilities act used the phonetic HIP.
My weirdest program ever made was likely a Windows PE (.exe) -> Linux ELF converter, as part of the Alky project. A big chunk of Python code that would convert the exe into a . O and, through some ld magic, would end up producing a binary that would initialize all of the proper libraries to do the Win32 layer.
When I was in seventh grade I played around with VB 6.0. I decided I would make a "cheese database" which was a bunch of forms with cheese images, descriptions, and wine paring. I even had an easter egg in the app which played a sound of Homer saying "Mmmm... cheese".
In order to get out of bed in the morning, I wrote a wake-up program which produced endless beep sounds. The pitch for each beep was random, and there were 5 beeps every second. The sound was extremely unpleasant, and with the volume turned sufficiently up, it effectively achieved the desired result - a shocked, but nonetheless awake version of myself.
I cant really gove you an answer,but what I can give you is a way to a solution, that is you have to find the anglde that you relate to or peaks your interest. A good paper is one that people get drawn into because it reaches them ln some way.As for me WW11 to me, I think of the holocaust and the effect it had on the survivors, their families and those who stood by and did nothing until it was too late.