The Grand App Writing Challenge

Yesterday I gave my talk on opportunistic developers on ustream.tv (which I plan on repeating next week). In that session I floated the idea of having a fun challenge next week when Ubuntu Opportunistic Developer Week happens. The idea was pretty popular, so I wanted to share it here.

The idea is simple:

Think of a fun program to write, and see how much you can get completed by the end of the week, Fri 5th March 2010. On Friday I will write a blog entry that showcases screenshots of your progress and (if possible) a PPA where people can download a package to try.

Getting Started

Getting started with this is simple. First think of something that would be fun to write. This could be a GUI front-end to a command line tool, a simple app that does something useful for you that will improve your life, a game or anything else. Pick something that isn’t too hard: something that is a good first step to dip your feet into development. Folks, do share ideas for apps in the comments here so those people who can’t think of something have a pool of ideas available. :-)

When you have idea you can create your app really easily with Quickly. You can first install Quickly from the Ubuntu Software Center by clicking Applications -> Ubuntu Software Center and search for quickly.

When it is installed, just run:

quickly create ubuntu-project <yourprojectname>

As an example:

quickly create ubuntu-project mycoolapp

Now run:

quickly tutorial

This will explain how to get started working on your application. If you have questions related to using quickly, you can join #quickly on freenode. If you have general software development questions, you can join #ubuntu-app-devel on freenode.

Sharing Your Progress

When you have something you would like me to blog, send an email no later than the end of the day Pacific time on Thu 4th March 2010 to me at jono AT ubuntu DOT com and include:

  • The name of your program and a brief description of what it does.
  • A link to a screenshot online that shows your new app running.
  • If available, tell me the name of the Launchpad project where it is hosted and the PPA with the package. This is a great way for people to try your program and possibly join the project and contribute to it!

I will send a t-shirt out to the three app authors who made the most interesting apps with the most progress. :-)

Start your engines folks, let’s see what we can do! I can’t wait to see how you folks get on! :-)

  • icyj

    I am thinking about writing an app that communicates and parses data from a PLC (GE or Rockwell automation). Right now the only software that can do this is closed source, built for windows, and expensive. I don’t think I will see much progress by Mar 5th though, since I have never developed an application for linux (excluding java apps required in my CSci classes)… But that is not what matters to me, it is all about furthering becoming a better programmer.

  • jono

    That’s awesome! It would be great to see just how far you do get this week. :-)

  • http://www.theopensourcerer.com The Open Sourcerer

    I have an idea to re-write rsnapshot in Python as a learning tool for myself mainly and also to improve my home backup solution.

    Not having written any Python before, nor looked at the rsnapshot Perl code either I don’t hold out much hope. But I may well just give it a go…

    Watch this space.

  • jono

    Sounds great. Do let me know how you get on!

  • AoWhijun (or Alvin)

    Haven’t even looked at programming in a couple of years. Took a C++ and VB class a while ago.

    I think I’m going to try to create a game based on the Fortune’s Tower game from Fable 2 Pub Games. It’s going to be a simple version of it though. I’ve always wanted to play this game outside of my XBox 360 and who couldn’t use a little more mindless entertainment.

    I wonder if I can work out how to do graphics….

  • oliver

    Great idea! For the best possible experience with Quickly, Bazaar, Ground Control and other goodies, would you recommend Karmic, or is Lucid already stable enough? It’s going to be installed in a virtual machine anyway, but is it good for actual use already?

  • ethana2

    Can quickly be used to make Java-Gnome apps?

  • Kevin

    Can it be in any language?

  • pdunn

    Thanks for the talk yesterday and the hint on quickly, very nicely done! I’m learning python right now and know a little bit. My idea is to write a auto maintenance app with mileage tracker. People will be able to plug in when they did the last oil change and get reminders of when the next one is.

  • AoWhijun (or Alvin)

    If I was paying attention to Jono yesterday, it can only be used with Python.

  • Kondziu

    I got positively intrigued by Quickly when it first appeared on Shot of Jaq, and I started playing around with it right away. Then I stalled for two months, and now, reminded by your app challenge, I completed my itch-scratching app!

    Quickly is amazing. It cuts the packaging overhead and it renders hacking together simple spur-of-the-moment apps possible. I mean, I wrote a stupid app for making words out of letters, that I wouldn’t consider writing otherwise…

    Whether the world needs an app like that is a whole different question.

  • Jef Spaleta

    I don’t think the point is to worry about the larger questions about audience or general utility.

    My take on what Jono is trying to do here, is this is about discovering a new way to help introduce more individuals in some small way to the benefits of belonging to the “maker culture.”

    It’s sort of like introducing a lot of music consumers to the joys of music composition. There’s going to be a lot of ear-splitting, grimace inducing collection of noises but they’ll be cherished ear-splitting, grimace inducing noises by those who have put the time and effort in into creating them. And that’s perfectly fine.

    -jef

  • https://launchpad.net/~brunogirin Bruno Girin

    I’d like to write a small and simple app that enables you to annotate an image (photo, screenshot, etc) with things like highlighters, comments, arrows and other highlights. I know you can do all that with GIMP or OO Draw but I want to do something very simple dedicated to that task, a bit like skitch on the Mac: http://www.skitch.com/ (but without the sharing service, of course)

  • http://www.nixternal.com nixternal

    icyj, I did this many many years ago when I worked for Rockwell Automations using Allen Bradley PLC-5 and SLC 500 systems. I assisted with writing the initial TCP/IP systems way back when. So most of these system have TCP/IP communications or can communicate via RS-232. The protocols on all of these systems are closed-source the last I remember (2000 was the last time I touched a PLC). You might get lucky and find an Open Source HMI application for one of them. I know you won’t find one for Allen Bradley equipment, but you might for the GE Fenucs. Oh, Allen Bradley is Rockwell, which I am fairly certain you already knew. Feel free to throw things at me if you would like, nixternal at that gmail address. I can’t promise you anything, but I do have connections still in that industry as well as at Rockwell. Don’t think though that what you would create here would be all that opportunistic, as it would be one hell of a deep and difficult experience, but could very well be doable.

  • http://www.nixternal.com nixternal

    Oh wow, I take that back. Googling ‘allen bradley opensource’ lead to a bunch of links to get their open protocols. I saw df1 which I remember as one of the first links. Funky enough, they have quite a few of their things on sourceforge.

  • jono

    Sure, although it is really simple to ensure that your app supports multiple languages using Rosetta as a translations tool. :-)

  • jono

    That is a sweet idea! I can’t wait to see and hear about your progress this week! :-)

  • jono

    You don’t have to use Python, there are languages such as C, Vala, Mono etc, but we are just big fans of Python in Ubuntu world. :-)

  • jono

    Sweet! What app is it? Can you show us a screenshot here?

  • jono

    Hi Jef!

    “discovering a new way to help introduce more individuals in some small way to the benefits of belonging to the “maker culture” is a really, really nice way of describing it – giving people the excitement and feeling of liberation to roll up their sleeves and be creative with software. :-)

  • jono

    Not AFAIK, it is just Python.

  • jono

    You can certainly get some great value out of Karmic: Quickly is available and the platform is there to build apps.

    Lucid is not ready yet but pretty darn stable. I have been running it for months with fewer issues in the this cycle than in the Karmic cycle. Also Lucid brings some fun things like app indicators, the Gwibber Python API (so you can tweet/dent from your apps) and of course Ground Control. :-)

  • Kondziu

    Yeah, I forgot to post a link due to reckless enthusiasm.

    A screenshot and links to the code, etc in here: http://grittyscripts.blogspot.com/2010/02/gcraziest.html

  • Chris Lees

    Do you have to use Quickly or Glade? Or can I write a program using Pythoncard? I’m interested in Quickly but I… er… don’t think I can learn PyGTK ‘quickly’ enough for this challenge.

  • https://launchpad.net/~flimm Flimm

    An itch I’ve been wanting to scratch is to write a taskbar extension for GNOME Shell. It would have to be in Javascript, though. Does that count?

  • Andrew Breiner

    Working on creating a blogging client that pulls in RSS/ATOM feeds and displays the blog posts similar to how gwibber displays its posts. Hopefully, I can get it to show the first few lines with a + and that plus would then show the rest of the post. Don’t know if I will get it to use webkit and the + by tomorrow. Also still looking for a good name, tried Gwibblog, but it doesn’t roll of the tongue quite right.

  • jono

    That sounds great! I can’t wait to see your progress! :-)

  • scott

    I’m going to try and make a Wordplay app.

    It’s sort of a dated idea but a lyric generator to help finish songs or come up with ideas for songs.

    finish word, finish sentence.

    variations etc.

  • Nikola Trifunovi?

    I noticed that there are not so many web design programs, so I started on making one, for now simple, HTML editor. Editor has 3 views : code view, page view(uses webkit) and split view(like in dreamweaver, half of the editor is used for coding and other half for preview).This is my first time I program in Python, so I have very messy code :( But I am learning it and love it ! I also made some shortcuts in editor so you can : bold, italic, underline and strike text,insert image, insert link, insert mailto link and insert color as hex code. Don’t have name for it now, but I will think of something ;)

  • http://owaislone.org Owais Lone

    Rick Spencer is working on a similar app called Photobomb. Why not contribute to that instead of making a new one.

  • http://www.jonobacon.org/2010/03/06/the-grand-app-writing-challenge-submissions/ The Grand App Writing Challenge Submissions! | jonobacon@home

    [...] the week kicked off, I offered a fun little challenge called The Grand App Writing Challenge. With a week of rocking content ahead designed to help build a fun and thriving community who like [...]

  • http://exploreubuntu.wordpress.com/2010/03/06/rename-them-all/ Rename Them All « Explore Ubuntu

    [...] Rename Them All By Arnab Das Leave a Comment Categories: Ubuntu Tags: Advanced Packaging Tool, Bath, Deb, File Management, File Managers, Grand App Writing Challenge, image, Linux, Operating Systems, Process, Ubuntu Rename Them All is a batch renamer, in lay man’s terms that means it allows you to rename the file names of multiple files at once. The app was part of The Grand App Writing Challenge. [...]

  • http://hosting.informoney.net mike

    I can get it to show the first few lines with a + and that plus would then show the rest of the post. Don’t know if I will get it to use webkit and the + by tomorrow. Also still looking for a good name, tried Gwibblog, but it doesn’t roll of the tongue quite right.