Announcing Acire

After a wonderful week in England with family celebrating Christmas, Erica and I flew home to the East Bay. We were sat at Heathrow having a cup of coffee and I was thinking of what I occupy myself with on the plane ride over. Unfortunately, Lernid hacking was out of the question as I had no net connection on the plane, so I got to thinking of something else. After some busy hacking time at 35,000 feet I am proud to show of the results of my labor: a little program called Acire.

Let me provide a bit of an introduction.

I love Python and I love PyGTK and as I have waxed lyrical about recently, I am passionate about how tools such as Quickly are lowering the bar for opportunistic programmers to scratch their itch. The problem is, much as Python and PyGTK are incredible for writing apps, like any other tool they still need to be learned, and the best way to learn is by downloading, running and playing with code snippets. Traditionally this has involved finding scattered bits of sample code online and stuffing it into a directory. Not only do we download other people’s sample code but we often write our own little code snippets as we learn new parts of these tools, and these would be perfect to share with others. Unfortunately, many of us never end up putting them anywhere online. Acire is a first step in making this whole process easier.

Right now, Acire is a tool that allows you to browse snippets easily. It looks like this:

The combo box in the top left provides different categories of snippets. In the screenshot above you can see the general category PyGTK, but there is no reason why we can’t have sub-categories such as PyGTK -> TreeViews. When you select a category, the list underneath it shows all the current snippets. Clicking on a snippet not only loads the code in the view to the right, but also provides a simple description and location of the snippet underneath the code. You can then run the snippet by clicking the Execute button or copy the full code to the clipboard by clicking the Copy button.

To make snippets work in Acire, I have created some simple metadata tags that snippet authors should put at the top of the snippet in the code. Here is an example:

# [SNIPPET_NAME: Actions]
# [SNIPPET_CATEGORIES: PyGTK]
# [SNIPPET_DESCRIPTION: Demonstrates using Actions with a gtk.Action and gtk.AccelGroup]

To test this out I have already added this meta data content to all the examples from the PyGTK Manual. This functionality already makes browsing available snippets, running them and looking at the code an absolute doddle.

I have just got in from a day of traveling, I am exhausted, and headed to bed. I will get the code online tomorrow and talk more about plans for Acire. :-)

  • http://www.sourceguru.net Mez

    Were you forced to call it that? Or was it just on a whim through puppy-dog-eyed naming conventions?

    I think you should just flip-reverse it, some of the best Debian programs are named after random girls.

  • http://www.rpgmaster.wordpress.com RPG Master

    I am a 15 year old kid whose been wanting to jump into the world of programing with python, and I just want to thank you for making this and Quickly.

    So thank you Mr. Bacon :)

    Also, I am looking for some good books on the subject of learning python, from the perspective of someone who has never programmed before. I found this one called “How to Think Like a Computer Scientist: Learning with Python”. Would you have any suggestions?

  • nicolas

    Hi Jono, thanks again for a wonderfull idea and putting it in practice. I am not much of a programer but this might help me push some of my ideas into reality. Right on time for next years resolutions ;-)

    BTW, I love the name of the program. ;-) Thanks for everything and have good intro into 2010.

    Nico

  • http://popey.com/ Alan Pope

    Who was it that said (at LUGRadio Live 2009) developers shouldn’t name programs :) MPT I think..

    I think he has a point.

    ps. yes, I am aware that Acire = Erica ;)

  • http://www.didrocks.fr didrocks

    Hey Jono. I see that traveling is always a good time for hacking ;)

    At the last UDS day, Rick ran a “code snippet” session in the desktop track and here is the result: https://wiki.ubuntu.com/Quickly/Snippets I think that can heavily interest you :)

    Simple application (Execute/Copy), searchable by domain (Pygtk and others): the developer handbook in a nutshell. Awesome!

  • http://mgdm.net Michael Maclean

    Popey: well, at least it’s not as bad as KFoulEggs :)

  • http://hauberg.org Søren Hauberg

    This is actually a very good idea. Would be nice if you showed the code in a GtkSourceView widget, though (for syntax highlighting)

  • http://www.kelvinism.com Kelvin Nicholson

    What a great and simple idea! Do you have plans to eventually create a site where people can submit snippits, and your app can then automatically search them?

  • http://sayamindu.randomink.org/ramblings Sayamindu

    It may make sense to include the pygtk-demo samples. I have found them to be useful at times.

  • http://lizards.opensuse.org/author/cyberorg/ CyberOrg

    Also check out Sugar’s pippy.

    http://wiki.laptop.org/go/Pippy

  • http://dullass.blogspot.com/ Scott Lavender

    As far as the app name…I’m still going to “blame popey”™

  • http://blog.lassehavelund.com Lasse Havelund

    Looks nice–any chance this is going on Launchpad soon? In addition, I second Søren’s proposal—give us pretty source code! :)

  • http://hetal.wordpress.com Hetal

    I am getting into learning Python and this tool would definitely be useful for me. I realised the name Acire is the reverse of Erica. Good one.

  • bastianazzo

    Great! I would also suggest to allow the selection of multiple categories at a time, in order to obtain a very useful refinement

  • http://theravingrick.blogspot.com rickspencer3

    :)

    This just rocks

  • http://www.mikealrogers.com mikeal

    I’m assuming this is stored in CouchDB since it’s a Quickly app.

    Should be easy enough to write an accompanying web application :)

  • http://afuera.me.uk sam thursfield

    one of the first focal points of my juvenile programming was the ‘ALL BASIC CODE’ packets.. where every two months you could download a collection of snippets of BASIC code. there was a fancy reader to browse them. it was very exciting. this has potential!

    http://www.phatcode.net/downloads.php?id=205&image=abcxrd_02.png

  • Derek

    What a fantastic idea! I wonder how hard it would be to extend it to other languages, especially scripting ones. Having a shared db of snippets is also an excellent idea.

    Very sweet name, now I know what it means. ;o)

  • jani mikkonen

    Way back in the old when i started coding, there was a tool called SWAG for pascal code. Used it quite alot too =) But now, there’s ofcourse google’s codesearch et al.

  • http://boycottnovell.com/2009/12/31/mobile-linux-tribute/ Links 31/12/2009: Great Year for Mobile Linux | Boycott Novell

    [...] Announcing Acire After a wonderful week in England with family celebrating Christmas, Erica and I flew home to the East Bay. We were sat at Heathrow having a cup of coffee and I was thinking of what I occupy myself with on the plane ride over. Unfortunately, Lernid hacking was out of the question as I had no net connection on the plane, so I got to thinking of something else. After some busy hacking time at 35,000 feet I am proud to show of the results of my labor: a little program called Acire. [...]

  • pt

    have you tried cherry tree

    http://open.vitaminap.it/en/cherrytree.htm

  • http://michael.mulqueen.me.uk Michael Mulqueen

    This looks brilliant. I can’t wait to get a copy of this. I’ve been thinking about going a bit further than plain scripting for a while now and this might be just the thing to get me started.

    When will this be going up on Launchpad?

    One tiny thin, I agree with Søren, syntax highlighting would be the cherry on the top.

    Good work!

  • http://www.jonobacon.org/2010/01/08/acire-delivering-a-world-of-python-snippets/ Acire: Delivering A World Of Python Snippets | jonobacon@home

    [...] few weeks back I blogged about my new program Acire: a simple little tool that provides a library of Python examples called [...]

  • http://full-linux.com/jono-bacon-acire-delivering-a-world-of-python-snippets/ Jono Bacon: Acire: Delivering A World Of Python Snippets | Full-Linux.com

    [...] few weeks back I blogged about my new program Acire: a simple little tool that provides a library of Python examples called [...]