Moss's Bloglet

About

This is the personal weblog of Moss Collum, a programmer living in Boston, MA. I used to have a description here of what I tend to blog about, but whenever I try to nail down a few main topics, I end up getting interested in something else. If you want to know what to expect, browsing the recent archives should give you some idea.

If you've found this page through Google, I hope it helps. The search tool may help find the exact post you're looking for. If you want to see what I've posted lately, you can go to the front page of the blog.

If you're someone I know, you probably already know about this blog and come here regularly, but if not, please leave me a note: chances are I'd be delighted to hear from you.

If you want to contact me, you can email me at gmail (where my address is my first name dot my last name), or just leave a comment here.

Note that the "Bloglet" of my page title is the Perl script I use for my blogging, not the other, better known Bloglet.

Journal

"Anonymous" (hackers loosely connected to 4chan) have declared war on the Church of Scientology. I can't decide what to think of this, and find myself ill-prepared to make any sense of it at all, but the whole thing is fascinating. At the very least, it's a sign of what a bizarre future we live in. Further relevant sources:
- The Declaration of War, in YouTube video form.
- Project Chanology on the Insurgent Wiki--a rallying point of sorts.
- Encyclopedia Dramatica article
- Slashdot post
- MetaFilter post
- Wired article
- Surprisingly well researched Gawker post
- And some noticeable effects on the front pages of Digg and Reddit. _
respond?
10:47:16 PM, Thursday 24 January 2008

-

I've been thinking a lot lately about how to break large (several day) projects down into smaller tasks--probably because that's what I do most Monday afternoons at work. There are various little heuristics we've come up with for recognizing good task breakdowns, but I think they amount to three basic rules:
1) Break projects down into tasks of about five hours.
2) Say how you will know when each task is finished.
2) If you can't do this, spend about five hours answering your questions. _
respond? (6)
01:20:06 PM, Friday 18 January 2008

-

Make x not y! _
respond?
08:16:41 PM, Tuesday 15 January 2008

-

Rope is a Python refactoring library that supports all the usual refactorings and a few unusually fancy ones. I haven't tried it out in practice, but it looks like they do some very clever code analysis that should make it work unusually well for a refactoring tool in a dynamic language. There's also an IDE that comes with it--I can't tell whether the library is there to support the IDE or the IDE is there to support development of the library, but either way it means that the library is pretty well designed for integration with other IDEs. I'm thinking of trying to do a vim plugin for it. _
respond?
11:07:42 PM, Thursday 10 January 2008

-

The most delicious interpretation of Tolkien ever: candy replicas of the Battle of Helm's Deep and the Battle of Pelennor Fields. _
respond? (3)
08:55:24 PM, Thursday 10 January 2008

-

Speaking of in-browser text editing widgets (which I was, like, over a week ago), somebody has done a vi clone in Javascript. _
respond? (17)
09:32:24 AM, Thursday 10 January 2008

-

Parking Lot Glacier
Parking Lot Glacier
_
respond? (3)
08:43:49 PM, Saturday 5 January 2008

-

Somebody has done a browser-based, syntax-highlighting code editor in JavaScript. It's really slick. It's the sort of thing that inspires ideas for exciting ways it could be used: a better blog post editor? a wiki for code? a web framework that exposed the source code for its widgets? all kinds of things seem possible!
[via Simon Willison, who's been posting whole lot of great programming links lately] _
respond? (2)
08:37:05 PM, Tuesday 1 January 2008

-

If anybody was missing the sidebar editor, it's fixed now. _
respond? (2)
08:13:05 PM, Tuesday 1 January 2008

-

Classical Computer Science Texts

Going by the ones I've read, this is a great list. I'm going to have to seek out the others. _
respond?
08:23:21 PM, Monday 31 December 2008

-

WTF?
WTF?
_
respond? (9)
04:37:16 PM, Monday 31 December 2008

-

Elevator Button
Elevator Button
_
respond? (1)
04:36:08 PM, Monday 31 December 2008

-

I've vaguely wondered for a while what evidence there is about the health impact of MSG. Reading an old post from Tigers & Strawberries earlier today, I finally became curious enough to go do some research. I got bored before coming to any conclusions, but I thought I'd post what I found anyway.

Barbara's two earlier posts about MSG proved to be a good place to start. From there, I went to the Wikipedia articles on MSG and on "Chinese Restaurant Syndrome, both of which link to PubMed entries for several relevant studies (incidentally, this is the best thing about Wikipedia--the need for outside citations means that a good Wikipedia article will often have links to more reliable and detailed sources). As presented by the Wikipedia, the studies didn't show any conclusive evidence that Chinese Restaurant Syndrome was caused by MSG, or that MSG had any ill effects on humans in normal doses. If I were researching more, my next move would be to search in Google Scholar for full text of some of the studies, and to see if I could find others that disagreed with them. Also possibly worth looking into, a short FDA report on MSG, and a post from another blog that links to some interesting research, but draws some (I would say) unjustified conclusions from it, among other problems. _
respond? (16)
10:48:14 PM, Sunday 30 December 2007

-

150 Extra Engineers _
respond?
12:54:03 PM, Saturday 29 December 2007

-

These early ‘Sesame Street’ episodes are intended for grown-ups, and may not suit the needs of today’s preschool child. _
respond? (1)
02:31:30 PM, Thursday 27 December 2007

-

Speaking of good rants, Alex Russell has a fantastic one up about how stagnant web standards are killing the web:
Let that sink in a bit. To get a better future, not only do we need a return to “the browser wars”, we need to applaud and use the hell out of “non-standard” features until such time as there’s a standard to cover equivalent functionality. Non-standard features are the future, and suggesting that they are somehow “bad” is to work against your own self-interest.

Web developers everywhere need to start burning their standards advocacy literature and start telling their browser vendors to give them the new shiny. Do we want things to work the same everywhere? Of course, but we’ve got plenty of proof to suggest that only healthy browser competition is going to get us there. Restructuring the CSS WG or expecting IE8 to be “fully standards compliant” is a fools game. _
respond?
01:08:01 PM, Wednesday 26 December 2007

-

Something we struggle with at work: because we're dealing with objects that are stored in a database, and because we'd like our queries to be reasonably efficient, we often end up having to recreate the same logic, once in Java, and once in SQL. Since duplication is generally a Bad Thing in code, we often think about ways that this situation could be improved. There are a number of practical possibilities that we've talked about, but the ideal would be to just write the code once, in Java, and have it magically execute on the database when necessary.

If we were using Ruby, we could now do exactly that, using Ambition, an exceedingly clever new tool that actually walks the parse trees of Ruby blocks and translates them into SQL queries. Very nice. _
respond?
10:31:54 AM, Sunday 23 December 2007

-

On some level, I agree with Tim that "ethnically based, perpetual claims of land ownership" are an appalling idea. But that description really oversimplifies a huge spectrum of things, including monstrosities like Nazi Germany, but also the normal day-to-day operations of any government in the world. This seems to me like one of those cases where people could use a little more confusion and a little less clarity, and in aid of increasing that confusion, I offer this list of cases (some fictional) to consider:
- Czechoslovakia peacefully, by mutual consent, splits into two friendly countries.
- Germany and Spain declare war on France, and, as a result, France withdraws from the E.U.
- Various republics break off of the U.S.S.R., and Russia asserts that it should continue to rule some of them.
- Quebec continues, apparently in keeping with the majority opinion, to be part of Canada.
- Virtually everything anyone says about Israel and Palestine.
- East and West Germany unify.
- The I.R.A. claims that Northern Ireland should be part of the Republic of Ireland.
- The U.K., in the early 20th century, claims that it should be the only government of Ireland.
- The Confederacy secedes from the United States.
- D.C. secedes from the United States.
- Guam secedes from the United States.
- The Falkland Islands.
- Canada declares that the U.S. and Mexico are Canadian territory, and that all residents of both countries have the full rights of Canadian citizens.
- As above, but in response to widespread anarchy after the collapse of the governments of the U.S. and Mexico.
- Or in response to the appearance of dictatorships in the U.S. and Mexico that are powerful, but widely opposed by citizens of both countries.
- Or in response to a huge majority vote in the U.S. and Mexico requesting it.
- The U.S. declares that nobody with red hair shall have the right to vote. In response, redheads throughout the U.S. decide to move to one state, and declare its independence.
- The U.S. Congress declares that Californians shall not have the right to own property, and what property they own is given to people from other states. Twenty years later, the law is reversed, and Californians are allowed to own property again. Twenty years after that, some Californians demand that the property that was originally confiscated from them be returned.
- As above, but with a pauses of fifty years instead of twenty. People are demanding the return of property confiscated from their parents or grandparents. Much of the property now belongs to people who inherited it, or who bought it legally.
- Yugoslavia. _
respond? (4)
08:49:09 PM, Friday 21 December 2007

-

Steve Yegge has an interesting rant up about the dangers of code bloat and a whole host of associated issues. The whole thing's a good read (if, ironically, rather longer than it needs to be), but the part I found especially striking was this observation, about the way that Java's brittleness is reinforced by the very IDEs that are intended to help manage it:

Java-style IDEs intrinsically create a circular problem. The circularity stems from the nature of programming languages: the "game piece" shapes are determined by the language's static type system. Java's game pieces don't permit code elimination because Java's static type system doesn't have any compression facilities – no macros, no lambdas, no declarative data structures, no templates, nothing that would permit the removal of the copy-and-paste duplication patterns that Java programmers think of as "inevitable boilerplate", but which are in fact easily factored out in dynamic languages.

Completing the circle, dynamic features make it more difficult for IDEs to work their static code-base-management magic. IDEs don't work as well with dynamic code features, so IDEs are responsible for encouraging the use of languages that require... IDEs. Ouch.


I don't think the situation in Java is quite as dire as he describes it. Two years ago I would have agreed with him wholeheartedly, but recent experience has taught that, with a little cleverness, Java can be coaxed into removing much more duplication than it lets on. But it still is a real problem. Java's type system enables a whole host of features that make code easier to work with and easier to simplify automatically, but it also keeps you from ever being able to code as briefly and expressively as you can in a more dynamic language.

(As for the assertion that ECMAScript is the best successor to Java... well, it's not as crazy as it sounds). _
respond?
11:07:48 PM, Thursday 20 December 2007

-

Richard Ankrom's unofficial improvement of a sign on I-5 is one of the more delightful pieces of modern art I've heard of. A little more background on Wikipedia.

Found via a comment on a Crooked Timber post about another instance of guerilla public service. _
respond? (4)
10:21:22 PM, Wednesday 12 December 2007

-

Rob Jellinghaus's Growable Language Manifesto has a pleasingly ambitious set of language features to aim for, for those who are interested in language design. _
respond? (1)
01:21:50 PM, Tuesday 11 December 2007

-

My evening has been brightened considerably by the discovery of someone who's cooking the entire French Laundry Cookbook at home and blogging it. _
respond?
11:43:02 PM, Monday 10 December 2007

-

Yes you are! _
respond?
09:23:32 PM, Friday 7 December 2007

-

Steve Yegge: "The short synopsis is that I'm building a complete JavaScript environment in Emacs-Lisp, with two goals: (1) create a world-class JavaScript IDE for Emacs, and (2) permit writing Emacs extensions in JavaScript, since (2a) people aren't exactly flocking to elisp, and (2b) JavaScript turns out to be a better language, now that I know them both in excruciating detail."

(Emphasis mine.) _
respond? (6)
01:12:25 PM, Friday 7 December 2007

-

Python _
respond? (1)
08:06:36 AM, Wednesday 5 December 2007

-

As an alternative to traditional voting, what about a sort of market in political representation? Not one based on money, of course (we already have that), but something like this: each election, everyone receives 100 representation credits. They then put in bids on all the candidates: how many credits they'd spend to have that person representing them in congress. After all the bids are in, the candidates are selected: first, the one who will bring in the greatest total number of credits; next, the one who will bring in the greatest number of the remaining credits, after removing all those that were bid for the first; and so on. Benefits: no fear of wasting your vote, as your votes only get spent on winning candidates; fairer representation for people with minority opinions, as they have more credits left over in the later rounds of voting. Optional addition: any credits you don't spend in one election can be saved for the next, so that lack of representation in one term can be remedied with better representation in another. How does it sound? Insane, a good idea, or something in between? Does this even make sense without a more detailed explanation? _
respond? (20)
01:17:53 AM, Tuesday 27 November 2007

-

Simon Willison points out an interesting post from James Snell suggesting that OpenID and OAuth could be a foundation for a better form of HTTP authentication. It sounds like a very interesting idea. OpenID is very cool, and it seems safe to say that current HTTP methods really don't do all they should, given that virtually nobody seems to use them for authentication on real websites. Then again, as one of the commenters on Snell's posts asks, isn't the real problem just that browser authentication UI is so awful? _
respond?
09:07:17 PM, Saturday 24 November 2007

-

While I was busy moving, the rest of the programming world apparently started feeling as strongly as I do about JavaScript/ECMAScript, and now there's controversy raging over the proposed new standard. The many interesting links I didn't have time to read have been collected by Sam Ruby, Brendan Eich, and Lambda the Ultimate. (For what it's worth, based on what I've seen of ECMAScript 4, it is absolutely moving in the right direction: the new language features add power and expressiveness, while keeping the core language simple.) _
respond?
08:26:00 AM, Tuesday 13 November 2007

-

Drywall Monster
Drywall Monster
_
respond? (1)
09:10:40 PM, Sunday 4 November 2007

-

Inquisitive Bird
Inquisitive Bird
_
respond?
03:14:39 PM, Sunday 4 November 2007

-

Bird On My Arm
Bird On My Arm
_
respond? (3)
03:12:11 PM, Sunday 4 November 2007

-

Freight Kitten
Freight Kitten
_
respond?
02:03:07 PM, Sunday 4 November 2007

-

Flowers
Flowers
This is the view out one of the windows at my mother's house. _
respond? (1)
02:00:31 PM, Sunday 4 November 2007

-

I find it interesting that the major topic of my blog lately is graffiti. It's not something I'm especially preoccupied with, but photos are the easiest thing for me to blog, and graffiti is some of the easiest stuff to photograph when walking around a city. And I do find it interesting, for any number of reasons. Still, I also mean to start blogging with words more often again. The other question that plagues me, blog-content-wise, is whether to post about technical programming stuff here, or to set up a separate blog for that. Pros of doing it here: only one blog to maintain, and a little less artificial division of my interest. Cons: writing for a non-programmer audience would make it harder to talk about some things, and programming stuff could be boring to a lot of people here. Pros of doing it elsewhere: something singularly dedicated to programming might be of broader interest, and I wouldn't have to convince bloglet to handle source code well. Cons: people who like reading this one miss out on that stuff, and people who might be interested miss out on this stuff. Dunno. _
respond? (4)
12:56:50 AM, Tuesday 30 October 2007

-

Cheese Loves You
Cheese Loves You
_
respond? (13)
12:16:35 PM, Monday 29 October 2007

-

Walk
Walk
_
respond?
12:13:37 PM, Monday 29 October 2007

-

older entries

Archives

Search blog

Browse by date

Recent activity