Hi there, thanks for stopping by. This is an accumulator of things I've left lying around across the web. As you can see, I play with a lot of different services and sites, and I generate a lot of stuff. So, in order to tame things a bit, I'm pooling it all here.
Everything you find here is something I've either written, created, marked as favorite, or otherwise caused to be recorded as activity somewhere. It's almost, but not quite, totally unlike a Gelernterian lifestream.
Who am I? My name is Leslie Michael Orchard. I'm also findable as l.m.orchard in many search indexes, and most friends just call me Les. I'm a serial enthusiast playing with a variety of web technologies and social software. I've written a couple of books, and I hope to write more — in fact, if you like what I do around here, you might like to buy them and bring the magic home.
Click the "Hide Options" link above to hide this introduction for the next time you visit. It might reappear from time to time when this message changes. Now, hopefully you'll find something interesting to click on below with which to make your escape.
There's a lot of stuff here, and you might only care about a little bit of it. So, here are some options you can use to narrow down the display. These preferences are saved in a browser cookie and should be retained for your next visit.
And, yeah, this feature - like this site - is experimental. I'm still working on the style to handle the missing entries - it breaks a bit sometimes.
I've made the source code of this thing available here:
Someday, this section might describe how this thing is made. But, I'm lazy. So, here's a quick list of things I've used so far:
A funny thing happened on the way to building a delayed real-time feed display: I got temporarily obsessed with implementing a template language in JavaScript that, as it turned out later, I didn’t need. About the feed project itself, I hope to write more soon—but for now I want to get this extra template language thing out of my system and see if anyone else might have a use for it.
See, I had a notion it would be keen if I had access to the same template language on the client as on the server. I needed to render a number of list items statically on the server with feed entries, then update that list with new entries on the client as they became available through JSON feed polling. It’d be a pain in the butt to maintain two separate list item templates for client and server, so I reached for a shared template language.
Never mind that I’d just gotten done writing a small book on Dojo, and was already aware of the existence of the DojoX Django Template Language. This might’ve worked, since the server end of things was written in Python (though not with Django). That the JavaScript side already used jQuery wasn’t too tall a hurdle. Also, I’m sure there are a handful of other JavaScript/Python template language match-ups to be found.
But, let’s be honest here: I’ve always been a fan of Zope’s Template Attribute Language for their Page Templates, and have long wondered how hard it would be to implement. The concept seems so much cleaner to me than most string-formatting template languages, and the workflow from mockup-to-template and back again has always been appealing to me when it works. So, when my first few experimental steps in trying my hand at it actually started working, I couldn’t stop coding.
And now, the thing is mostly done. It has no tests, has features left undone, and probably yields plenty of bugs—but I finished it enough to use it practically, and that was long enough to convince me it wasn’t the right tool for the job.
Still, though, I can’t help thinking it might be the right tool for some job. That could be because I spent a lot of time on it, or that I’m unreasonably fond of TAL, but it still feels like a decent little plugin to have on hand. Maybe someone reading this will have a similar conclusion.
Oh and by the way, plain jQuery turned out to be a better tool for the job in question. This seems to nicely balance the duplicate effort between server and client, demanding only that I stick with semantically significant CSS class names in the server template—something I should be doing anyway:
// Clone and populate a new entry.
var new_item = $('#feed-items .entry:last')
.clone()
.attr('class', entry_classes.join(' '))
.find('.group span')
.text(tags['group'])
.end()
.find('.title')
.find('.favicon')
.attr('src', favicon)
.end()
.find('.link')
.attr('href', entry.link)
.text(entry.title)
.end()
.end()
.find('.updated')
.find('.timeago')
.attr('title', entry.updated)
.text(entry_updated.strftime('%+'))
.timeago()
.end()
.find('.time')
.text(entry_updated.strftime('%I:%M %p'))
.end()
.end()
.find('.author')
.text(entry.author || 'n/a')
.end()
.prependTo('#feed-items')
.hide();
Of course, plain is a relative term here.
"The First Amendment is actually not that complicated. It can be read from start to finish in about 10 seconds. It bars the Government from abridging free speech rights. It doesn't have anything to do with whether you're free to say things without being criticized, or whether you can comment on blogs without being edited, or whether people can bar you from their private planes because they don't like what you've said. If anything, Palin has this exactly backwards, since one thing that the First Amendment does actually guarantee is a free press. Thus, when the press criticizes a political candidate and a Governor such as Palin, that is a classic example of First Amendment rights being exercised, not abridged."
"It's fun! It doesn't have to be full of bullshit and drama like your single life. It reduces your sense of obligation. It's so much less work to go out. The Ball and Chain is for Losers. Married people are hot and getting hotter. You can just say "screw everybody else" sometimes. You can have sex whenever you want. You become less of an asshole."
Yikes. This is really making me hope that Android or Palm linux phones grow up fast. "It seems that the engineers at Opera developed a version of Opera Mini that would run on the iPhone (and the iPod touch), but this browser will never see light of day because Apple rejected it from the App Store."
"Kids get a complete free pass on inaccuracy, as do folks who throw an outfit together to have some fun at a party. But when you clearly put lots of effort and even lots of money into a costume without giving it lots of thought...that's a Mission Failure. If you show up dressed as a Ranger from "Babylon 5" I'm not going to loupe your Anla'shok badge to make sure that the Minbari and Human figures are in the correct sides. But I am going to point out that their weapon of choice was a Minbari extendable pike, not a stubby hollow plastic pirate cutlass from Toys 'R IUs. (Memory is weak but while I'm at it: in which episode was it established that the Anla'shok code is "We live for the One, we die for the One, and as our tee shirt clearly states, we insist that Han Shot First"?)"
deusx posted a photo:
deusx posted a photo:
"The purpose of this RFC is to decide on a namespace separator Criterions (1) type-ability (how easy is it to type the separator) (2) typo-vulnerability (how easy is it to make a typo and get an unwanted behavior without a error/warning) (3) parse-ability (how easy is it to read the code and figure out whats going on without getting confused with similar syntax that means another thing) (4) IDE compatibility (5) number of chars "
"Although the events are sad in one way, it is refreshing to finally see twiki.net take a definitive stand against the community, making explicit what has been implicit in their behaviour. The project can now be taken out of limbo. Most (if not all) of the active contributors have jumped ship and gotten on the fork bandwagon. There’s a great number of features lined up that people didn’t commit during the governance crisis, for fear of being taken advantage over by TWiki.net. They have proven again and again that marketing the hard work of community volunteers as their own is not below them."
"New rules: I will stop calling George Bush a jackass when he stops calling me a terrorist: Either you are with us, or you are with the terrorists. I will stop calling John McCain an ass when he stops calling Barack Obama a socialist at every dog and pony show on the Straight Talk Express tour. I will stop calling Sarah Palin a bitch when she stops calling Obama a terrorist sympathizer. And I will stop calling Sarah Palin a bitch when she stops calling the parts of the country where I don’t live more Pro-American than the part of the country where I do live. And I will definitely stop calling Sarah Palin a bitch when she stops acting like a bitch."
"If you want to be good at something, you have to to be obsessive. You have to do the thing all the time, and when you’re not doing it, you have to be thinking about doing it. Why do you think business people who make millions are so good at it? They’re always doing business. Even when they’re not working, they’re thinking about better ways to do business. Same with the greatest writers and painters. They obsess all the time. Ruby, if you want to be good at writing, you need to be obsessive about it."
"A funny thing happens when you copy and paste this character into a text editor: þ "
For her part, Sarah Palin, who has lately taken to calling Obama “Barack the Wealth Spreader,” seems to be something of a suspect character herself. She is, at the very least, a fellow-traveller of what might be called socialism with an Alaskan face. The state that she governs has no income or sales tax. Instead, it imposes huge levies on the oil companies that lease its oil fields. The proceeds finance the government’s activities and enable it to issue a four-figure annual check to every man, woman, and child in the state. One of the reasons Palin has been a popular governor is that she added an extra twelve hundred dollars to this year’s check, bringing the per-person total to $3,269. A few weeks before she was nominated for Vice-President, she told a visiting journalist—Philip Gourevitch, of this magazine—that “we’re set up, unlike other states in the union, where it’s collectively Alaskans own the resources. So we share in the wealth when the development of these resources occurs.”
"Dear Red States... We've decided we're leaving. We intend to form our own country, and we're taking the other Blue States with us."
"I’m really typecasting myself here. If there were an international “Person most likely to write a Spectrum emulator in Javascript” award, I’d have taken it for the last five years running. So here it is - probably the most stereotypical project I’ll ever come up with."
I really wish this question had not been asked. Mu, dear god, mu! "Does Obama / McCain slash fiction exist? If so, where can I find it and what are the major themes in the genre?"
"Netflix streaming will be coming to TiVo DVRs by the end of 2008. The ability to stream Netflix movies and TV shows will begin beta testing for select TiVo owners immediately, with an official roll-out scheduled for early December. It will be available on TiVo HD, HD XL, and Series3 DVRs (not Series2 or DirecTV models). The service will effectively be identical to the Netflix feature available on the LG BD300, Samsung BD-P2500, and BD-P2550, Roku Player, and--as of mid-November--the Xbox 360. That means that existing Netflix subscribers can stream more than 12,000 movies and TV shows directly to their TV over a broadband Internet connection on an "all you can eat" basis, with no additional charges beyond the existing Netflix and TiVo service fees."
Nerdy, but I could actually see this being kinda fun, wearing a headset on the couch MST3K'ing with some friends locally and cross-country. "Instead of only communicating, Microsoft is going one step further. They have partnered with Netflix to incorporate their streaming movie service into Xbox Live. This will allow one person in the party to select and start streaming a movie, which all people in the party room can watch, while communicating with each other in real time. Basically, it's a virtual, multi-person movie theatre."
"As the name suggests, it is a combined scanner and shredder. Basically, the scanner has "transient" memory of say, 30 seconds. If you shred something by accident, simply press the "oops" button, plug in the USB cable, and retrieve the document."
"This is what the Republican Party has done to us this year: It has placed within reach of the Oval Office a woman who is a religious fanatic and a proud, boastful ignoramus. Those who despise science and learning are not anti-elitist. They are morally and intellectually slothful people who are secretly envious of the educated and the cultured. And those who prate of spiritual warfare and demons are not just "people of faith" but theocratic bullies. On Nov. 4, anyone who cares for the Constitution has a clear duty to repudiate this wickedness and stupidity."
"The Unfinished Swan is a first-person painting game set in an entirely white world. Players can splatter paint to help them find their way through an unusual garden. "
"Science Fiction movies have been a source for speculation about the future of technology and human computer interaction. This paper presents a survey of different kinds of interaction designs in movies during the past decades and relates the techniques of the films to existing technologies and prototypes where possible. The interactions will be categorized with respect to their domain of real-life applications and also evaluated in regard to results of current research in human computer interaction."
"In February 1995, working in conjunction with nutritionists at the University of Michigan, Ann Arbor, I adopted a super fiber-rich diet which allowed me to successfully produce a single extruded excrement the exact length of my colon: 26 feet. I documented the extrusion at the Cranbrook-Kingswood High School Bowling Alley, Bloomfield Hills, MI, which offered a length of floor suitable for the process and measuring the results. The cathartic diet was supplemented by a high intake of Metamucil fiber substance. The weeklong endurance prior to the event was ensured by the employment of a plug specifically designed to curtail any premature excretions."
From Mark Bernstein’s entry on Practical Prototype and script.aculo.us:
When chemists consult a volume about professional chemical technique, or when surgeons reach for the latest update on neuroanatomy, they can usually find a book that isn’t couched in terms of silly examples and jokes. So can poets, mathematicians, and geologists. For some reason, though, it has become the accepted practice that language manuals should spend lots of time with silly, self-deprecating jokes, and that their example applications should be breakfast loggers and fantasy football leagues (or, conversely, payroll programs).
As an tech author with just a few books under my belt, Mark’s take on Practical Prototype and script.aculo.us struck a bit of a sour note for me, because I’d like to work on making my tech writing more entertaining than not. I think that’s a good thing, but I’m willing to be convinced otherwise.
I think the issue is that there are different meanings for “professional” when it comes to the web. There are web scientists and there are web masons. Web scientists pursue fundamentals and disambiguations, while web masons are busy building the next micro-site for the new product release from the almighty client. Many web scientists are also computer scientists and many web masons are also web scientists—but most web masons I’ve known come from creative liberal or fine arts backgrounds.
Though, for what it’s worth, even amongst computer scientists there’s still a tradition of leaving room for jelly stains and other oddities. This seems to be the sort of thing Mark acknowledges with dismay. (”It’s not fair to blame Mr. DuPont for the general vice.”)
Is playfulness in literature just a computer science thing? I’m not a chemist; maybe chemists just don’t like being funny in writing, or maybe their jokes are more subtle.
In any case, I think the “practical” genre of tech books is aimed at people who want to get something done, aren’t interested in or have little time for context or background, yet wouldn’t mind being entertained during the course of weekend tinkering and self-education.
So, a good book. But take out the jokes, trim back the sample code (or dispatch it to the Web site where it makes more sense), and give us to professional perspective, and everyone is going to be much happier.
The guidelines with which I’m familiar for tech books in the “practical” or similar genres include advice such as “show, don’t tell”. They also suggest that, although sample code should be made available online, the author should compose the book assuming that it’s a standalone product. Web sites and CDROMs with code often vanish, but a bound book remains stable—which is especially useful on a cross-country flight without net access. Professional perspective is of course a desirable thing to work into the prose, but job #1 is to illustrate the right way to do things through running code.
How does Prototype+Javascript relate to other languages — C++/STL, say, or SELF? What, precisely, are the semantics of the key methods? I don’t need the inevitable chapter 1 pitch for the wonderfulness of Javascript and the badness of MSIE, but it might be a good place for a quick summary for the pros. Call by reference • no pointers • primitives are objects • everything has a prototype slot • parens() do this, braces {} do that, brackets [] do something else • single and double quotes are different. Kernighan & Ritchie did this so well in C, and it’s not like we’re not familiar with their example.
I’d posit that most in the audience for “practical” tech books are entirely unfamiliar with Kernigan & Ritchie and haven’t touched a line of C source code. Most of these readers have probably tumbled down the slope from HTML to CSS and finally to JavaScript in order to get something interesting to happen in a browser—and usually while under an unreasonable deadline.
I’d really be surprised if many readers have heard of Self or C++/STL or have much of a grounding at all in computer science or programming language fundamentals. Having these fundamentals would of course help web masons get a deeper understanding of the technologies that make the job possible, but the pragmatic rewards tend not to make up for the effort involved.
So, to sum up, the purpose for this entry isn’t to beat up on Mark Bernstein. He’s written a great deal of prose and code that I respect, so his opinion is interesting to me. Rather, I’ve tried to express my own understanding of this writing market, and hoping I’ve aimed at the right goals.
"Yes, the photo above is real: It is Animal—from The Muppets—driving a British Audi while speeding through a German road. The famous pink drummer is driving the police there absolutely crazy, because he keeps doing it again and again. Or better said, the real driver is, using a low-tech approach to take advantage of a weak point of the radar cameras."
"We already have a word for people who create for the love of it, rather than being paid to, and it is 'amateurs'. As with many other pleasures, when we seek out opinions, we prefer those that flow from passion rather than from payment. Now it may be argued that, given the decline in the teaching of Latin and French, the loving root of 'amateur' is no longer perceived, so those who write pour l'amour ou pour le sport may see 'amateur' as a slight. In which case lets retranslate it to english and call it 'lovingly created media'."
2008-11-02T01:00:28Z
All times are UTC.
Wow. You actually made it all the way down to the footer. I guess that means I should really think about putting something worthwhile down here, huh? Got any ideas? What did you expect to see here? Drop me an email!