Metacircular thoughts

June 26, 2007

Someone please make the bubble die

Filed under: Life, Politics, RIAs, The Dark Side, Web development — metacircular @ 11:38 pm

OK, we’re now deep in 1998-1999 territory with respect to Web 2.0 bullshit. Like the real estate crash, if you don’t see what’s going to happen in about 8-24 months coming a mile away you’re living under a rock.

Look at what’s on the top blogs, mang. Remember all those experimental psychology papers you’ve seen which make a pretty convincing, fairly scientific argument that people aren’t effective at multitasking? Disregard that and embrace meaningless phrases like connected mode: do stupid shit faster! That’s right. All the old facts (who has time for facts anymore?) are irrelevant. It’s different this time. Smug dipshits who can’t produce code wearing ironic t-shirts gather at parties and rub each other’s balls in a circlejerk of self-congratulatory praise. We are so awesome. We’re wiseguys. Everyone outside our incestual Valley echo chamber is a sucker.

Somehow, human nature has changed in the last three years: cool office + caffeine + slave labor = startup success! Or, alternatively: MacBook Pro + Rails + Ajax todo-list app = startup success!

Another forgettable blog proclaims non-chalantly: “…as businesses … get more productive to remain competitive…” The same message is everywhere: no one (an absolute) has time to do anything: (another absolute) read books (except masturbatory productivity ones), write coherent essays, or learn new things that don’t involve Javascript. The same people using motherfucking PHP talk about increasing productivity without a hint of irony in their high-pitched voices! Unfuckingbelievable!

OK, so proprietary vendor Z wants to lock users in to new platform C, which garners significant mindshare from developers busy locking people in to platforms A and B from proprietary vendors X and Y, and I’m supposed to be impressed? Ignore the fact that you can’t link to a single fucking thing in this RIA widget shit Z is pushing, and you can’t increase the size of the text, or use Firefox extensions on it, or do most of the things a web browser is currently useful for. Nevertheless: game-changing!

TechCrunch is a sea of forgettable names: PopSugar, Meebo, Cellfish, Jobster, Topix, Kiptronic, PicLens, Pixoh, Snipshot, Cumshot, Gazeebo, Dildo, whatever. That sinking feeling in your stomach and glaze in your eyes as you read those names is the knowledge that this has all happened before (and that it doesn’t have to be like this). Yes, it’s not as insane as it was during the first bubble. But there are still millions of dollars going after companies that can’t possibly actually have, you know, customers, revenue, the stuff that actually sustains business. This Valley-blog-startup-TechCrunch-iPhone-Digg bullshit is not indefinitely sustainable. Like Sarah Connor stuck in her Armageddon nightmare, you can pound against the fence and scream all you want, but the mushroom cloud is coming, man.

Look, you little Bay Area-dwelling, public transportation-using, podcatching, bespectacled too-cool-for-cool circlejerk pricks: calm the fuck down. Chill the fuck out and read a computer science textbook. Learn a functional/concurrent/logic programming language. Read Steve Yegge. Face the fact that your startup, rather than being “game-changing,” is boring and banal, just like most businesses; what matters is whether revenue - expenses > 0 or not. Learn how code generation in a modern compiler works. Make a toy operating system. Learn how the CLR in .NET works by reading books, documentation, and examining IL bytecode. Tinker with OpenBSD and write a solid technical article about what Mac OS X/Linux users could learn from it (crypto? firewalls? there has to be something). Do something real for once, for fucks’ sake! Do something a bright teenager could grasp the outcome of but when asked how he’d do it would scratch his head and say, “uh… hm.” REAL! And I’m not talking about robotic toys that don’t do anything interesting from a science/engineering perspective! And no data center/sysadmin shit that only applies to web hosting companies who are hosting 50 terabytes of data, nor something a smart 15 year old kid could do in a weekend in between Bangbus marathons. You’re driving me nuts. Less TechCrunch, more Fog Creek. OK?

(Am I just jealous I’m not on the gravy train? Uh, obviously.)

May 14, 2007

What do you get in a commercial Common Lisp implementation?

Filed under: Lisp, Politics, Prolog, The Dark Side, Web development — metacircular @ 8:44 pm

Commercial Common Lisp implementations like LispWorks and Allegro Common Lisp cost thousands of dollars. What do you get in them which isn’t included in SBCL or something, which costs $0?

  • ACL has AllegroCache, a true object database which has ACID transactions and scales to billions of objects. It is used transparently and integrates seamlessly with CLOS, Common Lisp’s ridiculously powerful object system. Depending on the project, this alone could be worth thousands of dollars.
  • LW and ACL have fast embedded Prolog compilers which seamlessly integrates with everything else in the distribution, including AllegroCache. LW actually gives you a full-blown expert system IDE (which is LW’s distinguishing feature as it doesn’t have an object database). In the ’80s, the kind of expert system functionality LW provides costed thousands of 1980s dollars.
  • Good cross-platform support so that you don’t run into the kind of problems the reddits had when working between Mac OS X and FreeBSD.
  • Libraries for web programming: XML/SOAP/WSDL/yadda yadda parsers, HTML parsers, a Lispish web application server and HTTP server, and easy libraries for all major networking protocols bundled in.
  • Cross-platform GUI libraries which are good enough for prototyping “programmer interfaces”.
  • Database libraries: ODBC, MySQL, Postgresql, Oracle.
  • Excellent foreign function interfaces for C libraries.
  • ACL provides OLE/COM linkage and examples of things like creating a simple CLOS layer for working with Excel.
  • Linkage to Java and/or .NET (e.g., jLinker and full support for RDNZL), which, together with the C FFI, means you can easily use code written in all the most popular languages.
  • Native threading (I guess you don’t get this), Unicode, and other oft-neglected but essential stuff.
  • Abundant working examples and comprehensive, helpful documentation for all of this.
  • All these libraries are bundled in, they work, they’re efficient, and they are supported.

All Common Lisp distributions give you efficient implementations of CLOS, a metacircular multiple-dispatch multiple-inheritance object system with an amazing metaobject protocol, as well as mini-languages for pretty-printing and iteration. SBCL, LispWorks, and ACL all have optimizing native-code compilers that give you performance somewhere between C and Java. SLIME, LW, and ACL provide IDEs matched only by Squeak in power.

Clearly if you pay $3,000 or however much, you’re getting a helluva lot more than just an implementation of a spec from 1984.

April 22, 2007

Web 1.0 sites were better than Web 2.0

Filed under: Teh Cute, Web development — metacircular @ 5:21 pm

Why is a site about pictures of adorable cats more popular than Web Worker Daily or Scoble? Stick that in your dismissive “that’s so Web 1.0″ pipe and smoke it.

Jeffrey Zeldman leading the Internet towards adoption of web standards is Web 1.0. Mark Pilgrim writing about recovering from addiction is Web 1.0. Dean Allen falling in love with Gail Armstrong over the Internet is Web 1.0. Dreamless, Something Awful, and all the other great online communities out there also predate the current buzzword fest. As far as I can tell the content that came out of that era was way better.

AJAX is lipstick on a pig. Try making a web-based photo manager that can scroll through 15,000 photos at once. Try making a spreadsheet that can handle 25,000 rows at once.

Now that I’m employed in a capacity that has nothing to do with the browser, I’m not going to waste my spare time dealing with Internet Explorer 6 or its shit-for-brains users.

March 30, 2007

What I’ve been up to

Filed under: Lisp, Web development — metacircular @ 1:00 am

I’ve been trying to make SQL and templates in web development not suck ass. I am going about this by creating a template language and a database tier generator where you declare templates and model information in Lisp and then a lot of PHP code is written to disk.

The database tier generator is fairly unremarkable at this point, but I’m kind of proud of the template language. The Lisp code on the left generates the PHP code on the right:

(#content
  .left.column
    (h2.welcome 'Welcome to our site!')
    (p print_information)
    (p more_information param1 (get username))
  .right.column (include sidebar))

<div id='content'>
  <div class='left column'>
    <h2 class='welcome'>Welcome to our site!</h2>
    <p>
      <?php print_information(); ?>
    </p>
    <p>
      <?php more_information($param1, $_GET['username']); ?>
    </p>
  </div>
  <div class="right column">
    <?php include 'sidebar.php'; ?>
  </div>
</div>

It’s inspired by Haml. This stuff should be dropping pretty soon, stay tuned.

March 7, 2007

Props to Zeldman and to MyPunchbowl.com

Filed under: Web development — metacircular @ 7:12 pm

I don’t have anything really substantial to write about, I just wanted to say a few things that need to be said.

On the unreasonable effectiveness of the web standards movement

It was a long time ago, but there was a time when browsers had terrible support for web standards. All the usability experts, especially Jakob Nielsen, eager to preserve the status quo said we’d be stuck with this shit for a long time to come. But like Martin Luther King disregarding those who said blacks had to wait longer for civil rights, Jeffrey Zeldman and the others that made up the Web Standards project disregarded the naysayers and the defenders of the status quo, successfully lobbying major browser vendors to build in basic support for web standards. Today, most excellent web applications make heavy use of the DOM and CSS. That we don’t even really consider this to be unusual is indisputable proof of how thoroughly successful the web standards movement was. It is as far as I know one of the most successful instances of a small, determined community getting huge corporations like Microsoft to listen and to change in the short history of the Internet. And all the while as they were succeeding many intelligent people continued a chorus of negativity. Well, screw the snot-nosed Fortune 500-kowtowing Jakob Nielsens of the world, web standards won big.

Anyone who cares about the Internet owes an immense debt to people like Jeffrey Zeldman, Eric Meyer, Mark Pilgrim and everyone else who has strongly advocated for standards and accessibility on the web. My hat’s off to all of you. Thank you.

MyPunchbowl’s cool greenfield dashboard

Upon the recommendation of Scoble, I signed up for MyPunchbowl, an event planning app. Ignoring the fact that I almost never go to parties or engage in any real-world social activity, it gets all the Getting Real stuff right: it asks for an email address when you sign up, but you don’t have to go through the banal “type in email address/go check email/click URL in email/click superfluous ‘I actually want to register’ button” rigamarole found so commonly in, e.g., PHP-based bulletin boards. Instead, you can start using the app as soon as you give it valid information. The interface has a light, festive (although not cartoonish/unprofessional) feel consistent with its reference to events as “parties” and includes links to a blog, light-hearted illustrations, a list of upcoming holidays and events, and a sample event all to help get you started and keep you from turning away from the app without ever coming back. It has a link to the site’s blog so that you can see that there are real, live people behind it and that the application is alive and well, addressing the concern every user has about whether the app (and your data) will still be around in six months.

In short, it is very carefully designed to minimize the barriers between you and the act of using the application to host events. And plus it has neat-o Google Maps integration, which can be used to give helpful driving directions, etc., but the important thing is that they’ve clearly thought very carefully about how they should go about getting people to sign up and actually use the thing they have worked so hard on.

February 21, 2007

Exercises in bad web design: IBM developerWorks tutorials

Filed under: Web development — metacircular @ 9:38 am

IBM has quite an investment in Java; they are a driving force behind Eclipse and have a wide suite of Java-related products. Thus, the more people doing Java business applications there are, the better for them.

So, why, then, do you have to register to view tutorials such as this one about using iBATIS with Apache Derby? So that they can get my email address in the hopes of sending email about their products? That’s not a real permission relationship that they’ve established. They have my email address, but they twisted my arm to get it, and I’ll resent them if they send me anything, and most developers are likely to do the same.

It makes no sense. And then, when you sign up, they have the gall to make you fill out or look at tons of useless fields. You don’t need my name (much less my address or any other crap), you need a working email address, at most. See how that works? You give them an inch and they think they can take a mile. And then even after that you have to read through pointless legalese-laden license agreements to download the source for the examples.

This is retarded.

I think I know what happened. They’re using an inflexible CMS that they have to use for everything so it’s equally frustrating for all content accessed. They want one One CMS to Rule Them [i.e., the users] All. They probably copy-and-pasted a standard user input form that asks for your name, social security number, bank account numbers, and mother’s maiden name. We’re pragmatic, we’re IBM developers, we can’t possibly screw up.

My default reaction when presented with such a situation is not to endure their insolence, but instead to hop over to Google and type in:

intitle:"Index of" ibatis in action +(pdf|chm|zip|rar) -inurl:html -inurl:htm -inurl:jsp -inurl:asp -inurl:php and be on my way. How you like them apples? How does it feel to be a rolling stone, bitch? You pissed me off so much I’m typing an angry blog entry about you, such is the degree of my discontent. Word.

February 8, 2007

Eating my words re: Flex/RIA

Filed under: Web development — metacircular @ 2:00 am

OK, this Scrapblog thing looks cool. Kudos to them for apparently making excellent use of Flex. Ryan Stewart has other examples of good Flex apps so I am now convinced that Flex can look very good and be perfectly usable. I’m not “close-minded,” after all, Mr. Stewart. :D

However, I still think you need to consider how it will be used the majority of the time rather than how it’s used by cream-of-the-crop developers and designers. You have to look at what interface defaults lead users to create often times and what someone in a hurry is likely to do. What might occur is that initially the default behavior will lead to undesirable practices which will then be rectified for the most part. This happened with Flash and Dreamweaver (remember the Web Standards Project and wondering when people would learn to use CSS? God I’m old).

February 6, 2007

Walmart’s new “Media Downloads” site is laugh-out-loud pathetic

Filed under: Web development — metacircular @ 2:25 pm

Boing Boing reports on the turd that is Walmart’s pathetic answer to iTunes. Basically, Walmart thought they’d sell 320×240 DRM movies (incompatible with all other DRM systems out there — all the DRM systems are mutually incompatible, of course) for $14.88 or something. The problem is they didn’t bother to test it in this little niche browser called Firefox, the browser a highly disproportionate amount of early adopter-type potential customers are likely to use.

You can view the site here. The site is completely garbled and impossible to navigate in Firefox 2. BoingBoing discussed this.

What wasn’t mentioned is that even in Internet Explorer 6 it’s a terrible experience. You can’t get a video preview of anything and the thumbnail movie graphics are grimey; the type on movie titles is all distorted and dirty. There’s no place for reviews or any other sign of how users feel about the offerings anywhere.

Lousy graphics at Walmart’s site

Look at the distortion on the title for the movie Flicka. Now compare this to the movie’s website. Huge difference. Flickamovie.com actually gives you a feel for what the movie is like in a rich, aesthetically pleasing manner, although Tim McGraw isn’t really my cup of tea. Walmart makes the idea of paying $15 to watch that movie remarkably uncompelling.

walmart3.jpg

Here’s a side-by-side comparison of Pirates of the Carribean 2 in iTunes and on the Walmart site. It speaks for itself.

Moving on to the shopping cart checkout, Internet Explorer prompts me to install an ActiveX control called ‘walmartcheck2.cab’, just to buy a microscopically-sized DRM’d version of Talladega Nights or whatever.

Ridiculous ActiveX control at Walmart’s site

And guess what they built it on. Of course! Java! Only the best enterprisey solutions for a giant corporation that treats people like completely interchangeable cogs. Think of the executives who oversaw this, the Senior VPs in charge of VPs, in their custom-tailed suits, stiff upper lips, patting themselves on the back for this crap. “We’re serious business people. We know what’s going on in the market. Our summer homes in the Hamptons confirm this! We do business.” These are the same kind of people in charge of Ford who don’t quite know why they lost $12.6 billion last year, but they do know people love to buy gas-guzzlers that flip over in a strong breeze.

The rest of the site — the menu and other aspects of the user interface — has the same uninspired, non-designed appearance as stuff by Google. Very Javaish. Like Google’s products, Walmart’s site looks like it was designed by programmers. At least Google produces products that, despite mediocre interfaces, are fairly useful and often innovative.

It looks like they outsourced this to rentacoder.com for $50.

Walmart is great at exploiting desperate people and selling bland, inoffensive music that won’t stimulate the loins or the mind too much, but Apple they are not.

February 5, 2007

Do all Rich Internet Applications technologies suck?

Filed under: Web development — metacircular @ 6:54 pm

On the Scala mailing list the other day, David Pollak and I talked a little bit about these XML-based, Flash-targetting “Rich Internet Application” markup languages that are out now, like Adobe Flex, OpenLaszlo (what a lousy name for a product), etc. David is cooking up stuff to use this stuff in his upcoming framework Mondo from what I hear.

Here is my opinion of these thus far:

  1. They are usually ugly. Especially OpenLaszlo. Because it appears the people who work on this stuff have no taste, probably it will mangle and maim type even worse than usual on the Internet.
  2. They are either impossible to make usable or default to highly unusable behavior the way Flash used to. There are many things wrong but, consider the most egregious problems, such as apparently non-resizable type and non-standard scrollbars.
  3. They take too long to load (maybe this is a special case of (2)), some of them bringing my computer to its knees. Ridiculous.

Now Adobe’s upcoming Apollo project seems to rectify (1). But that appears to default to unusably small type as well. Here is a little video demo of some apps one of the Adobe people has cooked up with Apollo internally.

I conclude from this that all this RIA stuff basically sucks, and we’ll be stuck with <textarea> for a while yet.

January 18, 2007

When bad web development causes real-world financial problems

Filed under: Web development — metacircular @ 5:11 pm

I intend for this blog to be technical and consist of solid technical content, but I’m still a little freaked out over what just happened when I tried to pay tuition fees online. They must have changed the interface somehow, because it wasn’t displaying properly in Firefox - everything was broken and garbled up. When I changed how I was going to pay, it didn’t reflect the change (even when, e.g., I hit F5 to refresh). After a little while I got the idea to try again in Internet Explorer and it worked just fine. If someone waited until the 11th hour to pay and didn’t know what to do in situations like this, it could cause someone’s classes to get canceled, and that’s not cool.

When real dollars and important events in people’s lives are involved, do not fuck around.

Planned: polite HTTP retrieval, JDBC made easy, and massively scalable systems à la Erlang using thread-based actors in the new scala.actors package screw it, a lot of the examples are outdated and don’t work, and the library is terribly documented.

Blog at WordPress.com.