John Sequeira

Amped::Technology

Monday, December 05, 2005
Sean McGrath Needs to try Leo

Sean describes literate programming ...

I think the possibilities here are very interesting. By and large, we write programs in text editors. That immediately creates problems in creating good documentation. Not easy to throw in the odd diagram. Not easy to segment the contents hierarchically and stick a TOC at the top. Not easy to footnote the code. Not easy to cross-ref one part of the code to another. Not easy to include the spreadsheet that holds the master decision tree etc. etc. etc.

So why not knock out your code in say, OpenOffice, use paragraph styles to indicate what parts of the text are really code. Then feed just the code bits through to your compiler or interpreter?

Why stop there? Why not make import statements in programming languages smart enough to recognise zipped XML Office notations when they see them?

I read this thinking, Sean really needs to check out Leo... and in his blog comments the Leo and JythonLeo authors show up to say the same thing. :-)

I have to admit, I can't always get Leo to work correctly -- my outlines and my docs sometimes get out of sync, I haven't *quite* figured out the best way to reconcile literate programming with either POD, RST, etc or unit testing... but I love it anyway. If you need to write text in languages that don't support factoring via (class) hierarchies or subroutine constructs (like SQL, XML, XSLT, ReST, TT2, config files, .aspx templates, etc) LEO's adds them back in with outline views and cloned nodes (which work like include files or language macros). These features provide you with a self-documenting, navigable outliner UI that

  • works across all languages and
  • is an enormous help.

    It's especially useful for reverse engineering -- being able to outline+comment someone else's code tells you a lot and stores it much more succintly than linear or inline comments alone.

    There are arguably better tools within a particular problem domain (VS.NET2005, say), but if you switch platforms and tools a lot like me LEO+Emacs takes you really far.

    For example, my latest application for LEO is constructing FIT tests for Selenium, which are HTML tables that repeat a lot of elements (i.e. look for "Error" in the webpage is a test that comes up quite a bit). I'll try to write this up when I get around to covering Selenium.
    11:57:47 AM      comment []  trackback []

  • Solar Largess

    I wasn't too excited about the 'Sun declares (Sun) software licensing dead' announcement when I first heard it, mainly because I thought it concerned BIG COMPLEX SOFTWARE like App Servers, Grid management etc -- things that I don't normally have time or use for.

    But Stephen O'Grady pointed out (by way of Mark Fleury) that the SeeBeyond piece is quite promising, in that it's a potential category-killer in the integration niche, one that I work in all the time. I know that some of my financial services clients use SeeBeyond to execute stock trades, which tells me it's :

  • extremely capable
  • possibly extremely complicated (it is distributed systems, after all)

    However, there is a ETL piece of SeeBeyond that might be more comparable to Informatica, which seems to be the current king of moving data around for my bigger clients. I haven't yet had a chance to work with Informatica, but I would love the chance to work more closely with (i.e. get up to speed, recommend, implement + support) a similarly featured competitor.

    Oh... and I'm really hoping Sun giveaway includes the Clustra DB code they purchased in 2002. I suspect 'the 5 9's database that never stops' ended up demoted to serving the role of memcached for Sun's app server ecosystem... but from what I've read it would be a very cool piece of RDBMS tech. With their newfound love of Postgres, it might be hard to justify the $$$ to produce Clustra abandonware, but hey I can ask, right?

    (Aside, Clustra's ex-CEO Gary Ebersol is now CEO of ANTS' Database Server. If ANTS does what it says I'm sure the lucky stiff will get acquired once again.)
    10:35:15 AM      comment []  trackback []

  • And in other Apache news...

    Reading throughtthe 2.2 changelog, I felt a little nostalgic. Apache now supports scheduled jobs and database connection pooling. These always seemed like strange omissions to me, since

  • almost all web apps need these
  • other web server/frameworks have them. e.g. AOLServer + Cold Fusion (et al) has had them for ~ 8+ yrs.

    I'm certain their inclusion is more a philosophical than technical, but I'm glad they've come around.
    10:19:42 AM      comment []  trackback []


  • © Copyright 2006 John Sequeira.
     
    December 2005
    Sun Mon Tue Wed Thu Fri Sat
            1 2 3
    4 5 6 7 8 9 10
    11 12 13 14 15 16 17
    18 19 20 21 22 23 24
    25 26 27 28 29 30 31
    Nov   Jan

    Click to see the XML version of this web page.
    Click here to send an email to the editor of this weblog.
    Yahoo: johnseq2
    MSN: [email protected]
    AIM: amped02139
    Skype: johnjulian