<?xml version="1.0"?>
<!-- name="generator" content="blosxom/2.0" -->
<!DOCTYPE rss PUBLIC "-//Netscape Communications//DTD RSS 0.91//EN" "http://my.netscape.com/publish/formats/rss-0.91.dtd">

<rss version="0.91">
  <channel>
    <title>sjh - mountain biking running linux vegan geek spice   </title>
    <link>http://svana.org/sjh/diary</link>
    <description>mtb / vegan / running / linux / canberra / cycling / etc</description>
    <language>en</language>

  <item>
    <title>[comp/design] API design and error handling in code</title>
    <pubDate>Mon, 25 Feb 2008 21:12:00 </pubDate>
    <link>http://svana.org/sjh/diary/2008/02/25#2008-02-25_01</link>
    <description>&lt;!-- 2008-02-25 21:12:21 --&gt;

I am catching up on some posts on planet Gnome and I came across 
&lt;a href=&quot;http://jeffreystedfast.blogspot.com/2008/02/worse-is-better-in-form-of-autosave.html&quot;&gt;this
post about error handling with g_malloc&lt;/a&gt; and a 
&lt;a href=&quot;http://blogs.gnome.org/otte/2008/02/04/error-handling/&quot;&gt;response&lt;/a&gt;
agreeing with it. I find this interesting for a few reasons.

&lt;p&gt;

First it is true that putting in full error handling in code when using fairly
standard libraries can take a lot of time, complexity and ugliness. However
there should be some way somewhere to find out if errors happened I suggest,
largely so you can deal with them if there is a situation they may be
likely. Also understanding that libraries can fail in calls and what this
means is important for coders, even if they do not handle them all. When
marking assignments at uni I am keen to see that students have thought about
error conditions and made the decision about what level of complexity to trade
off against what likleyhood certain errors have of occurring.

&lt;p&gt;

The above issue with assignments however does tend to be students who are
newer to programming than most free software hackers so there are
considerations in both directions there. As for the other reason the above
posts interest me, it is cool to see Cairo getting such props for great design
again. &lt;a href=&quot;http://cworth.org/blog/&quot;&gt;Carl&lt;/a&gt; and co have done a stellar
job with that library.

&lt;p&gt;

As I continue reading the planet I can see more 
&lt;a href=&quot;http://blogs.gnome.org/snark/2008/02/04/about-error-handling/&quot;&gt;entries&lt;/a&gt;
in the &lt;a href=&quot;http://log.ometer.com/2008-02.html#4.2&quot;&gt;thread&lt;/a&gt;.</description>
  </item>
  <item>
    <title>[comp/design] Open source cookie design attempt, what they missed</title>
    <pubDate>Thu, 01 Dec 2005 17:44:00 </pubDate>
    <link>http://svana.org/sjh/diary/2005/12/01#2005-12-01_02</link>
    <description>&lt;!-- 2005-12-01 17:44:02 --&gt;

Malcom Gladwell as is often the case can write a good article, this article I
found linked from &lt;a href=&quot;http://www.kottke.org/&quot;&gt;kottke&lt;/a&gt; concerns an
attempt to 
&lt;a href=&quot;http://www.gladwell.com/2005/2005_09_05_a_bakeoff.html&quot;&gt;develop a 
great diet cookie using a few different software development
methodologies&lt;/a&gt;. On the whole the article is interesting to see an attempt 
at applying software development methodologies (eXtreme Programming,
Cathedral, and Bazaar) to another problem space/industry. From my reading of
the article I believe they misapplied the open source model to a large
extent.

&lt;p&gt;

Gladwell is a great author and often writes interesting and entertaining
articles as I have noted in the past on occasion, however coming from an open
source geek perspective there are obvious points missed here that show how the
open source methodology could have been better applied. For example the quote
&quot;Linus Torvald, the Norwegian hacker&quot; shows two problems, Linus' surname has
an s, and Linus originates from Finland. The guy who ran this multi methodology
project, Steve Gundrum, got off on the right foot, talking with Mitch Kapor as
to the viability of applying the open source methodology to this new problem
space, however I would suggest the team established did not operate in the
manner teams on successful open source projects tend to.

&lt;p&gt;

They established a team for the open source group by inviting 15 well known
specialists in the related food industry to be involved and make suggestions
that would be implemented by Gundrum's company. Asking these people to design
the cookie in effect. During the project, when some arguments or difficulties
arose there was no dispute arbitration mechanism or established way to make a
final decision. Also no one was actually elected as a benevolent dictator,
without one or both of those mechanisms I am not surprised the project
suffered and many people involved came out of it not particularly happy with
the results.

&lt;p&gt;

Using the Linux kernel as an example again I think a few things they missed
are, lack of benevolent leader, a dispute arbitration mechanism based on
something akin to show me the code, ie coming up with ideas or suggestions is
not sufficient, it needs to be implemented, tested and proven to work in a
satisfactory manner, also some specific specialising in areas may have helped,
especially with such a large team. Looking at the goals of the project and
dividing up components such that people who may better work on those aspects
could have more control over them. However I think one of the biggest failings
was the scratch an itch component of free software or passion for it. This
project though possibly interesting to those involved was unlikely to inspire
passion from them. A combination of technical ability and the passion for the
project really does provide a lot of the groundwork for success in the open
source world. Even those people paid full time to work on open source are
generally still passionate about their work (Linus, 
&lt;a href=&quot;http://samba.org/tridge/&quot;&gt;Tridge&lt;/a&gt;, 
&lt;a href=&quot;http://ozlabs.org/~rusty/&quot;&gt;Rusty&lt;/a&gt;, 
&lt;a href=&quot;http://samba.org/~anton/&quot;&gt;Anton&lt;/a&gt;, etc).

&lt;p&gt;

The article does mention some of Joel Spolsky's (of 
&lt;a href=&quot;http://www.joelonsoftware.com/&quot;&gt;Joel on Software&lt;/a&gt;) reservations
about open source development, and admittedly they could be relevant, however
they could also be disputed. The argument about lack of innovation and simply
following the herd would be disputed I suggest by looking at the innovation
happening in given problem spaces in open source. Some of the desktop software
such as &lt;a href=&quot;http://amarok.kde.org/&quot;&gt;amaRok&lt;/a&gt;, 
&lt;a href=&quot;http://www.gnome.org/projects/f-spot/&quot;&gt;f-spot&lt;/a&gt; or the 
&lt;a href=&quot;http://gstreamer.freedesktop.org/&quot;&gt;gstreamer&lt;/a&gt; based 
&lt;a href=&quot;http://www.fluendo.com/&quot;&gt;Fluendo&lt;/a&gt; (admittedly this is a company,
however it is open source development with 
&lt;a href=&quot;http://www.flumotion.net/&quot;&gt;Flumotion&lt;/a&gt;) are all doing things way
ahead of and more interesting than other entries in that problem space
worldwide. Sure there are problems that do not mix well with open source
development, but a simple argument being made that there is no innovation in
the open source would I think is quite narrow minded.

&lt;p&gt;

Looking at how close the open source cookie was in second place I suspect that
with a better understanding of the methodology and applying it with a group of
people that fit well to that mechanism would have somewhat improved results.</description>
  </item>
  <item>
    <title>[comp/design] How many programmers can you fit in a telephone booth?</title>
    <pubDate>Tue, 01 Mar 2005 19:06:00 </pubDate>
    <link>http://svana.org/sjh/diary/2005/03/01#2005-03-01_01</link>
    <description>&lt;!-- 2005-03-01 19:06:24 --&gt;

A few months ago &lt;a href=&quot;http://www.michaeldavies.org/weblog/&quot;&gt;Michael
Davies&lt;/a&gt; 
&lt;a href=&quot;http://michaeldavies.org/weblog/misc/poor-office-environment.html&quot;&gt;wrote&lt;/a&gt;
about the Fog Creek (&lt;a href=&quot;http://www.joelonsoftware.com/&quot;&gt;Joel on
Software&lt;/a&gt;)
&lt;a href=&quot;http://www.joelonsoftware.com/articles/BionicOffice.html&quot;&gt;office
design&lt;/a&gt;. The premise for Fog Creek was, they want to attract and keep the
best and brightest programmers, thus they went to the effort of creating
office space that would entice these people.

&lt;p&gt;

Today &lt;a href=&quot;http://www.stillhq.com/&quot;&gt;Mikal&lt;/a&gt; 
&lt;a href=&quot;http://www.stillhq.com/cgi-bin/blosxom/2005/03/01#000765&quot;&gt;commented&lt;/a&gt;
&quot;It's impossible to work in a cubicle.&quot; suggesting that offices really do help
a programmer with their work. I should admit one of the reasons I really like
working at a University is they give you an office, Michael has an office here
also, as a PhD student, however he does not have one at work as a senior
software engineer.

&lt;p&gt;

Anyway this all ties in in an interesting manner also to something 
&lt;a href=&quot;http://liw.iki.fi/liw/log/&quot;&gt;Lars Wirzenius&lt;/a&gt;
&lt;a href=&quot;http://liw.iki.fi/liw/log/2005-02.html#20050223b&quot;&gt;wrote about&lt;/a&gt;
recently. Having just read an IBM paper from 1978, 
&quot;&lt;a href=&quot;http://www.research.ibm.com/journal/sj/171/ibmsj1701C.pdf&quot;&gt;IBM's
Santa Teresa Laboratory -- Architectural design for program development&lt;/a&gt;&quot;
(google can display an html version if you wish), Lars commented on how much
it sucks that employers do not seem to think about the environment for
programmers as much today as they did then.

&lt;p&gt;

I admit it does seem to lack sense for software companies, that base their
business on producing good software (well one would hope they do that, though
many do not appear to make that a primary goal) would forgo this sort of
office plan so often. Michael Davies and Michael Still (both of whom I know
personally and respect) both seem to agree with the ideas presented in the IBM
paper or by Joel, I wonder how many others agree?

&lt;p&gt;

Oh and apparently some people have no idea where I got the title of this diary
entry from. You obviously never participated in 
&lt;a href=&quot;http://www.nostalgiacentral.com/pop/telephonebooth.htm&quot;&gt;Telephone&lt;/a&gt;
&lt;a href=&quot;http://www.badfads.com/pages/events/phonebooth.html&quot;&gt;booth&lt;/a&gt;
&lt;a href=&quot;http://library.thinkquest.org/3205/Phon.html&quot;&gt;stuffing&lt;/a&gt;.</description>
  </item>
  <item>
    <title>[comp/design] Over designing standards</title>
    <pubDate>Thu, 23 Dec 2004 22:55:00 </pubDate>
    <link>http://svana.org/sjh/diary/2004/12/23#2004-12-23_01</link>
    <description>&lt;!-- 2004-12-23 22:55:37 --&gt;

Recently at some XML conference (XML Dev Con 2004) 
&lt;a href=&quot;http://www.tbray.org/ongoing/&quot;&gt;Tim Bray&lt;/a&gt; from Sun spoke about
standards design. After my 
&lt;a href=&quot;https://svana.org/sjh/diary/2004/12/22#2004-12-22_03&quot;&gt;complaints&lt;/a&gt;
yesterday concerning complex standards this seemed somewhat appropriate. In
his presentation Bray said something along the lines of &quot;Whenever people are
complaining that a standard is too simple for their application, that's a good
indication that the standard is going to be a hit&quot; 
(&lt;a href=&quot;http://neopoleon.com/blog/posts/8829.aspx&quot;&gt;source&lt;/a&gt;). He was also
quoted as saying &quot;If you don't have an urgent burning requirement for things
right now.  You ain't going to need it.  Failed standards have too much stuff
in them.&quot; 
(&lt;a href=&quot;http://blogs.msdn.com/rdias/archive/2004/10/20/245273.aspx&quot;&gt;source&lt;/a&gt;) 

&lt;p&gt;

Both these are relevant, both to standards design and simply to
programming. Do not do premature design or try to design for features you
imagine you may one day want to use. 
&lt;a href=&quot;http://www.extremeprogramming.org/&quot;&gt;Extreme Programming&lt;/a&gt; though of
course simply another selection of tools in the programmers toolbox (and not
the second coming as some people seem to think) does have some good
points. One of which is the avoidance of premature design or coding for
&quot;future&quot; features. The &lt;a href=&quot;http://asg.web.cmu.edu/acap/&quot;&gt;ACAP&lt;/a&gt;
standards yesterday struck me as over engineered for a few basic things to
attach to IMAP, using my example of the need for an address book that is
accessible with your email. If an email client was to implement an address
book functionality in ACAP, it would still need to decide on the format of the
address book data in ACAP, and other clients would need to implement this and
agree on this also.

&lt;p&gt;

Anyway back to the subject of conferences, 
&lt;a href=&quot;http://neopoleon.com/blog/&quot;&gt;Rory&lt;/a&gt; was covering the XML conference
in an amusing manner, and at one point for example paid quite a lot of
attention to the shoes worn by a speaker. The shoes a 
&lt;a href=&quot;http://neopoleon.com/blog/posts/8821.aspx&quot;&gt;speaker wears&lt;/a&gt; are
obviously important and must be blogged or covered in some way at
conferences. For &lt;a href=&quot;http://lca2005.linux.org.au&quot;&gt;linux.conf.au&lt;/a&gt; we
will obviously need to ensure there is online coverage of what shoes speakers
are wearing. &lt;a href=&quot;http://www.stillhq.com/&quot;&gt;Mikal&lt;/a&gt; will I am sure be
keen to self nominate for this task of telling the world about the speakers
shoes, even uploading some photographs of their shoes maybe. Lets hope the
speakers understand and do not become too freaked out by this behaviour.</description>
  </item>
  <item>
    <title>[comp/design] Creative process of design</title>
    <pubDate>Thu, 30 Sep 2004 18:06:00 </pubDate>
    <link>http://svana.org/sjh/diary/2004/09/30#2004-09-30_01</link>
    <description>&lt;!-- 2004-09-30 18:06:33 --&gt;

While looking around at various blosxom plugins I found a link to 
&lt;a href=&quot;http://warpedvisions.org&quot;&gt;warpedvisions&lt;/a&gt; as this person had some
interesting blosxom plugins. Reading through some of their other entries I
have decided I should read this blog regularly. Mostly due to their comments on
design as a creative process when discussing 
&lt;a href=&quot;http://warpedvisions.org/article/7/blog-zen&quot;&gt;Blog Zen&lt;/a&gt;.

&lt;p&gt;

Quoting from the entry

&lt;p&gt;

&lt;blockquote&gt;

I just have to let the ideas percolate until my subconscious orders them,
filtering it all into something better. This is how I've always done
design, it just happens that Bradbury uncovered the mechanics of it for
me. Forced design is why a lot of software is bad, that and all the compromise
added to it. Well, there are probably other reasons commercial software sucks,
like honesty and integrity, but that's not the point.

&lt;p&gt;

Bradbury also harps on the fact that he writes (and reads) endlessly, which is
how he feeds his subconscious. He's right: that's how creativity
works, it needs to be fed and cared for. I never realized it, but that's
how my design process works, as it's really a creative force (versus a
pedantic force). Pedantic may be the wrong word, but when designers attack a
problem from the meticulous, anti-creative angle, the result is not
cohesive -- and is often forced beyond the workable.&lt;br&gt;

&lt;/blockquote&gt;</description>
  </item>
  </channel>
</rss>