14 Mar 2008

by Noel

Welsh’s First Corollary to Weakliem

Weakliem’s First Rule of Application Development states, roughly, that design is less important than functionality. While I agree in principle I think his proof is lacking in a number of places. Specifically, he states: “Recall that when Google first appeared, most search engines embraced the design philosophy still in evidence at MSN.com: bright and noisy, yet roughly equivalent in functionality. Google was positively audacious in both its austerity and its function. … Similarly, My employer’s website is frequently ridiculed for being amateurishly designed” What I think he forgets is all design, however amateurish, still conveys something. Google’s (to my eyes incredibly ugly) logo said “hey, we’re a bunch of geeks having some fun” which exactly matches the company culture and helps attract all those PhDs that Google employs. Similarly Gordon’s employer’s website looks like it was designed by someone’s cousin, but that is the right look for its clients. It gives the website credibility with the consumers who put down a large chunk of change for a holiday they can only afford once a year. Good design is design that is right for the target audience, which can be something very different to aesthetically pleasing design.

Posted in Design | Comments Off on Welsh’s First Corollary to Weakliem

7 Mar 2008

by Noel

Of Interest 07/03/2008

  • TRIZ is a methodology for creativity. Worth looking at.
  • The iPhone SDK has got every geek drooling over his keyboard, and for good reason. I think this model will work.
  • Is 1000 True Fans the path to happiness? The argument goes that 1000 true fans will provide sufficient income for an artist, and that isn’t that many people. Assuming your work requires only you to produce it this seems a plausible number, but I think the scarcity of true fans is a big roadblock. You might need 100,000 fans before you get 1000 who are really into what you do.
  • Looking at what you can do with rather more than 1000 true fans, interesting workplace experiments from 37Signals. I like the four-day week; funding passions is too normative; the release of the iPhone SDK means discretionary spending accounts gets the thumbs up from Dave.

Posted in General | Comments Off on Of Interest 07/03/2008

3 Mar 2008

by Noel

Of Interest 03/03/2008

  • This Wired article, though not very deep, gives a nice overview of Internet business models.
  • I don’t normally like rants, but found this one well written and amusing. Also, the Jakob Neilsen style bolding of important phrases: I think it works. Look for more strong on Untyping in the future.
  • We’re going to London on Wednesday presenting at QMUL on the work we’ve been doing for the School of Biological and Chemical Sciences. If you fancy meeting up, drop me a line and we’ll see if timetables can sync.

Posted in General | Comments Off on Of Interest 03/03/2008

29 Feb 2008

by Noel

Announcing: Instaservlet

We’ve just released a package called Instaservlet, which enables you to get a servlet running in two lines of code, plus the servlet code. Here’s a simple example:

  (require (planet "instaservlet.ss" ("untyped" "instaservlet.plt" 1)))

(define (servlet request)
'(html (head (title "It's working!"))
(body (h1 "Instaservlet is in the house!"))))

(go! servlet)

Try it in PLT Scheme 3.99 and see!

This package arose out of the development work I did on Smut Shorts, which made me I realise we needed to support a quick start for web development. Instaservlet is the first step in doing this. Not only does it setup the servlet, it does it in a robust manner. Continuations are managed using the LRU manager, which can be a bit difficult to setup but it much more robust than the time-out manager. Instaservlet uses some sensible defaults which should work for most small to medium size sites — they’re the setting used on Smut Shorts, so we know they can handle a reasonable load. It also sets up a nice default page to handle continuation expiry. Instaservlet is good enough to get you started with, and future versions will enable more customisations so it can scale to any website build using PLT Scheme.

Posted in Web development | Comments Off on Announcing: Instaservlet

22 Feb 2008

by Noel

Naming Your Wireless

From my study I can pick up about six different wireless networks. They all have simple names: the name of the router (good oldBelkin54g is always up and always open), the street, the owner. But in West Hollywood that is not the way they roll. How aboutfuckyougetyourownnetwork, or my favourite,Lesbian_Dildo_Vagina_Party? Is this a cultural thing? In all my time in the UK I’ve never seen a network with names like those. On the other hand I am pleased to see one of the networks is named after me. What are the networks around you called?

Posted in General | Comments Off on Naming Your Wireless

15 Feb 2008

by Noel

Requiring up and down syntax levels

If you do any macro programming in PLT Scheme you are sure to run into the dreaded “no #%app syntax transformer is bound” error message at some point. Though puzzling, the fix is actually quite simple in almost all cases. Assuming you’re using 3.99, you either need to:

  1. (require (for-syntax scheme/base))
  2. (require (for-template scheme/base))

What the error means is that some syntax has expanded in a function application, but #%app, the PLT Scheme primitive that actually handles application, is not bound in the phase in which the syntax is being evaluated. Requiring for-syntax will bind #%app in the phase before the current evaluation phase, while requiring for-template will bind #%app in the phase after. In most cases you wantfor-syntax. However, if you are writing functions that return syntax that is then inserted into a program (such a function would be required for-syntax elsewhere) you must use the other form, to make sure the syntax has #%app available to it.

Posted in Code | Comments Off on Requiring up and down syntax levels

14 Feb 2008

by Noel

Happy Valentine’s from Untyped

For Valentine’s Day we have created a new website,<a
href=”http://smutshorts.com/”>Smut Shorts. If you have
something to say about love or lust, and can do so in 500
characters or less, then please add it to the growing number
of “shorts”. It’s anonymous and fun. Just, no
porn thanks.

If you’re reading this site, you’re probably interested
in the technical details behind Smut Shorts. It is a
collaboration between a number of people, most of whom have
chosen to be anonymous. The majority of the coding was done
by yours truly, and therefore in Scheme. It is running on
the PLT Scheme webserver (version 3.99) and uses PostgreSQL
as the back-end. I coded it up in about two days. It was a
side-project, so it was a bit of rush job and there is lots
still to do. If you break the site let me know and I’ll try
to fix it.

A few interesting lessons were learned from doing this
site. It all comes down to scalability, which is something
that has recently been on my mind a lot. In this case we
want to scale down to the low end — the guy who is
just hacking up something in his spare time and wants to get
it done in a hurry. Our frameworks, Snooze and Lylux, are
pretty good but they don’t support a fast start. You have
to create a whole bunch of files before you’ve even got your
first page up. Furthermore, we’ve always avoided creating a
templating mechanism, as we’ve said that we’d rather use
smart people who can balance parens than create this
unnecessary divide between designers and programmers. I now
recognise this is a mistake. Had we a templating mechanism
I could have pushed more design work to my collaborators.
It’s not that they’re stupid (far far from it) but they’re
busy and don’t have time to learn even Scheme basics just so
they change a few lines of text. If we’re gonna grow the
Scheme web-hacking community it has to start with dudes
messing around in their spare time, so we need to address
the low-end of scale. The high end of scale can wait till
the IPO ;-)

Posted in Web development | Comments Off on Happy Valentine’s from Untyped

25 Jan 2008

by Noel

SPIN-Farming, Franchising, and the Future of Software Frameworks

Ever thought about buying a franchise? Like the idea of running
your own business but don’t want the risk of trying it all
alone? How about farming? Attracted by the notion of
growing all your own food, and connecting with nature? How
about both — franchised farming? Sounds unlikely, but
that’s essentially what SPIN farming is.

The core of SPIN farming is, well, farming, but not on
the scale that most people associate with modern farming
techniques. SPIN farmers typically work plots less
than an acre in area, and achieve good returns by
concentrating on the most profitable crops, and utilising
crop rotation to increase yield. The best
description I’ve found is<a
href=”http://www.celsias.com/2007/02/07/spin-farming-part-ii-heeding-the-call-to-farm/”>here,
though it isn’t very detailed.

In itself the farming techniques aren’t that radical. I
remember learning in high school that crop rotation was one
of the key innovations of the agrarian revoluation, and that
was some time ago (both high school, and the agrarian
revolution). What is novel is the way the SPIN farming
business is run, and that’s what causes me to call it a
franchise. Contained in the guide books (the<a
href=”http://www.spinfarming.com/buy/”>complete set can
all be purchased online) is everything you’d expect from a
good franchise: a business plan, marketing advice, and a
detailed day-to-day workflow. In standardising the product
and creating a reproducible process it really isn’t any
different from McDonalds. Now SPIN farming isn’t a true
franchise — you don’t buy the right to use the name,
and there isn’t any ongoing fee. And there’s no equivalent
to<a
href=”http://www.mcdonalds.com/corp/career/hamburger_university.html”>Hamburger
University either. At least not yet. It is still an interesting business
model and one that I think has great potential, though
perhaps not for the financial gain of the founders.

The franchise idea, believe it or not, has great
relevance to computing. What is<a
href=”http://softwareengineering.vazexqi.com/files/pattern.html”>convention
over configuration if not the computing equivalent of
the franchise’s reproducable process? Perhaps by regarding
frameworks as franchises we can shift the emphasis from
technical development to supporting the developer in every
way they need to succeed. This seems to me a better goal
for both framework developers and users.

Posted in Business | Comments Off on SPIN-Farming, Franchising, and the Future of Software Frameworks

4 Jan 2008

by Noel

Word of the Milieu: Flattline

Flattline |flatˌlīn| (verb).

To post a difficult problem, often syntax related, to the plt-scheme mailing list in the hope that wiser folk will solve it. For example: “I’ve gone nowhere on this macro in two weeks. I’m going to Flattline it.”

The term depends on an ambiguity between the medical term flatline, indicating a patient is dead (as in “he flatlined before we reached the hospital”), and the suggestion that one has a hotline to Matthew Flatt, the motive force behind the PLT Scheme implementation. Uses of the word that exclude either meaning are incorrect, so one should not say, for example, “I’m going to put a call on the Flattline”. One should also not expect Matthew Flatt to solve all of one’s problems.

Posted in Fun | Comments Off on Word of the Milieu: Flattline

7 Dec 2007

by Noel

Corporate Blanding

Amusing interaction on the last.fm forums. Concerning bugs in the current last.fm client on Leopard, a member of staff writes:

We’re aware of there being a fuckload of problems concerning the client and Leopard. Fear not, for work shall be focused on ironing these bugs out in the coming days.

Which brings the following customer responses:

Is this what passes for professionalism on Web 2.0?

and

Paying or not, we’re customers, and we deserve to be treaded with some professionalism.

As a testament to how poorly that language can be received, just witness how this support thread has degraded since the post.

Seeing this, I’m now a FORMER last.fm customer. While one customer may not matter in the short term, every customer does count to a healthy business.

The same last.fm staff member then makes things just a little bit worse with the following rather sarcastic apology:

I hereby apologise to the tiny fraction of the 5% of our userbase who are Mac users for offending them by the use of the word “fuckload.” We’ll try and be more corporate and sterile in future.

To be fair there were at least as many posts from people who didn’t find the language offensive, or even liked it. But the whole mess could have been avoided by simply using, say, “shedload” in the original post, which would have kept the character of the post without causing offense. It pays to remember that on the big old Internet not everyone shares the same values.

Posted in Business | Comments Off on Corporate Blanding