The Contest
For the next month, I'll be running a contest here for programmers to promote learning something new.
I've had this spare iPod Nano that I've yet to use (and likely never will), I've been
covering
how to save your
job with Chad Fowler's
My Job Went To India, and I'm passionate about learning new things. It
seems the best way to combine all three is a contest to help me spread that passion.
In particular, since I think it's
useful to learn languages and
different programming paradigms, that's what this contest will focus on.
Here are the rules:
- Write a program in any language you are unfamiliar with.
- Choose a language or a program that is in a different paradigm
than languages (or programs) you already know (how to write).
- Use at least one idea from that language that you've never (or rarely) used in another language.
- Make it a useful program, though it needn't be big.
- Follow good programming practices appropriate to the paradigm you're programming in (as well as universal ones).
- If you have a blog and want to participate, post the solution there to be scrutinized in comments.
- If you don't have a blog and want to participate, email the solution to me via my
contact page or my email address if you already know it, and let others scrutinize the solution
here in the comments.
- I'll get the prize out the door in time for you to receive it by Christmas, in case you want to give it away
as a gift.
- When you submit your program, be sure to point out all the ways you've done the above items.
But I need your help
- If you have any ideas for possible programs, list them below. This would give people something to choose from, and make for more participation.
- If you have an idea that you want to do, but aren't sure if it would work, it probably will. Feel free to ask if it makes you more comfortable though.
- If you think this is as important as I do, spread the word - even if you don't want to participate.
- The winner will likely be chosen in a random drawing, but I need people proficient in different paradigms to help me judge what qualifies. I'm not an expert in everything.
Overall, the
point is to learn something new, to have fun doing it, and to get people involved in learning new concepts.
If you accomplish any two out of those three goals within the next month, let me know
about it and we'll enter you in the contest.
You have until December 5. Start coding.
Hey! Why don't you make your life easier and subscribe to the full post
or short blurb RSS feed? I'm so confident you'll love my smelly pasta plate
wisdom that I'm offering a no-strings-attached, lifetime money back guarantee!
Leave a comment
Sam,
I am interested in participating, but I'm not sure I'm clear on the "different paradigm" bit. I am a CF developer, and that is really the only language I'm currently proficient in (I've dabbled on others in years past, but today it's all CF). So my idea was to write a program in Java. Does that sound like it would fit the bill?
Posted by
Jake Munson
on Nov 05, 2007 at 08:41 PM UTC - 6 hrs
I think Java is fine if you think you'll learn something new, or try something new, in a new language!
I was primarily thinking, "don't go from C# to Java, or Ruby to Python, ..." languages that look to be siblings of each other.
Of course, if one language allows a technique you've never used and you'd like to explore it, I think even close cousins are Ok.
I don't want this to be hard or take up an incredible amount of time, so don't go too overboard (unless you want to!)
Posted by
Sam
on Nov 06, 2007 at 06:04 AM UTC - 6 hrs
Well, Java is definitely new to me. I've dabbled with Java in the past, but it was VERY minimal, and a long time ago. I'll try to find some "problem" that I could solve with Java that I haven't done with CF. Maybe I'll do something with web services...I haven't done that yet. :)
Posted by
Jake Munson
on Nov 06, 2007 at 01:12 PM UTC - 6 hrs
Cool! Java 6 upgraded web service support to make it easier than it used to be - see if you can work Swing into that somehow and create a desktop app that uses web services. I've never done anything with Swing, and I'd like to see it.
Of course, you are absolutely free to ignore that if you don't want to do it - it's up to you!
Posted by
Sam
on Nov 06, 2007 at 02:56 PM UTC - 6 hrs
Sam, is the competition open to the world or just to residents of the U.S. I'm in Perth, Western Australia, so it's kinda important for me.
Posted by
Mike Minutillo
on Nov 06, 2007 at 09:55 PM UTC - 6 hrs
If you don't have a blog, why not write one?!
I often dabble in languages and learn the usage of particular interesting features, but almost never write anything with them. So it should be fun to force myself to do so, with a time constraint even.
Posted by Brennan
on Nov 07, 2007 at 01:44 AM UTC - 6 hrs
@Brennen - Good question! I'm looking forward to seeing your submission. =)
@Mike - I thought about that a little. I'll say yes, but if the shipping is going to be outrageous to get it there by Christmas or if there is any hassle with customs (I don't guess there should be) then I might not be able to keep that guarantee of timing.
But I will ship it anywhere I'm able to.
This iPod comes from the US though, so any adapters it needs are your responsibility (Like I said, I've never used it so I don't know what it might need - but I think it gets charged through a USB connection, so you may just need nothing).
Posted by
Sam
on Nov 07, 2007 at 06:02 AM UTC - 6 hrs
Ideas for people looking for ideas:
Remote RSS Feed: Some sites don't have an RSS feed but desperately need one (my teacher's website among them). Write a little program that scrapes a site (or uses an internet scraper like google) then updates an rss file. Bonus points if you make it dynamic and hostable so that you don't have to upload it.
Utilities required: cron/at, programming language of choice, optionally(webserver)
Posted by Chuck Vose
on Nov 07, 2007 at 10:36 AM UTC - 6 hrs
Chuck - that's a great idea. I've always wanted to do a website that would check specific pages for you and alert you when they changed (mostly because of the professor's who communicate changes through a web page but don't offer a means to know when it is updated without checking every day).
Trouble was, it seemed like it would end up eating too much bandwidth if I went public with it, and I couldn't think of a way to monetize it to pay for the costs, so I never did it.
Posted by
Sam
on Nov 07, 2007 at 11:11 AM UTC - 6 hrs
I'm pretty sure my objective isn't useful for many people. Here it goes:
* Material: I have been saving the xkcd comics in a directory, and creating a tab-seperated-value file to map between the comic number, the file name, and the title text
* The plan: use Erlang to convert that CSV file to XML, then use XSLT to convert that to XHTML, for my viewing pleasure
Some comics are augmented by other comics from the community, and I put those right under the number-name-title line, which necessitates some sort of state keeping. I haven't found how to do state keeping in a functional language like Erlang yet. And I plan to use pattern matching to decide what each line means.
On the second phrase, I need to learn some XML defining language (eyeing RELAX NG) and some bits of XSLT.
Posted by
Hoàng ??c Hi?u
on Nov 08, 2007 at 12:23 AM UTC - 6 hrs
Looks like I need better international character support =)
Hoàng - I like the idea, especially trying to figure out how to solve the problem of state management.
Posted by
Sam
on Nov 08, 2007 at 05:34 AM UTC - 6 hrs
I have no programing experience but I found your contest interesting because I ame looking for a program to help with dynamic spellchecking with an editable library for Adobe Illustrator. I don't know if anyone can help or has something hidden in their back pocket but if so, I'd love to know about it.
Posted by Berger
on Nov 28, 2007 at 07:16 AM UTC - 6 hrs
Berger - are you talking about creating a plugin for Illustrator? That sounds like fun, but I would have imagined it had spell check... Does it?
Posted by
Sammy Larbi
on Nov 28, 2007 at 08:23 AM UTC - 6 hrs
Leave a comment