Seen this morning at the Waller Street Skate Park: an in-real-life Cons pair:
I looked around and saw a car but no obvious cdr, so perhaps this was a list of length one.
(Sorry if this sounds confusing, but I hope it amused both LISP programmers in my audience.)
Permalink
In the constructor notes for today's Puzzmo crossword,
Zhouqin Burnikel says her original gimmick idea (not used) was
people whose names had a fruit-word and a season-word.
But she could only find one example, so she used a different
theme instead.
That got me thinking, so I wrote a little script that looked through
my phrase list
for two-word phrases and used
wordnet to detect
fruit-words and season-words. Then I eyeballed the resulting list of fruit-season phrases
to see which might be names. The program overlooked the fruit-season name that Zhouqin Burnikel
found. (My phrase list doesn't know that name.) But it did find:
Jack Spring (an athlete), Jack Winter (a TV writer).
Wordnet says that "jack" can mean "jackfruit", and who am I to disagree?
Anyhow, here's the little script I wrote. I put it here not because I feel it's amazing, but
because my previous wordnet-use blogposts fell out of Google's index, so when I went searching
for past examples, I ended up having to grep around my hard drive like an animal. Anyhow, behold
the majesty:
from nltk.corpus import wordnet
FRUIT = wordnet.synset('edible_fruit.n.01')
SEASON = wordnet.synset('season.n.02')
already = {}
is_fruit = {}
is_season = {}
def categorize(word):
if word in already: return
sss = wordnet.synsets(word)
fruity = [ss for ss in sss if FRUIT in ss.hypernyms()]
seasonal = [ss for ss in sss if SEASON in ss.hypernyms()]
if len(fruity): is_fruit[word] = True
if len(seasonal): is_season[word] = True
for line in open("Phrases_20240103_085450.txt"):
score_s, phrase = line.strip().split("\t")
words = phrase.split()
if len(words) != 2: continue
w1, w2 = words
categorize(w1)
categorize(w2)
if (w1 in is_fruit and w2 in is_season) or (w1 in is_season and w2 in is_fruit):
print(w1, w2)
Permalink
The Hearst Newspapers News-sites, no doubt jealous of the NYT's
puzzle section, have launched their own syndicated puzzle page, Puzzmo.
Each day there's a cool mini-crossword from the AVCX folks and
some other puzzles.
(I don't think you need to subscribe to a Hearst news-site to play the puzzles.
When I tried visiting in Incognito just now, it let me get started on the crossword.
To play some of their "experimental" and "bonus" puzzles, you need to join Puzzmo;
as near as I can tell, that's separate from being a Hearst news-site subscriber, maybe?)
I got mad at a couple of their word puzzles because they leaned on
some obscure words. E.g., I got stuck on a Typeshift puzzle
and asked for a hint. The hint told me I should have used the word
motlier. Motlier. As in "Look at that motley fool and the
motlier fool next to him," I guess. I didn't want to have
to use a desperate-Scrabble-ploy word to solve a puzzle.
I enjoyed solving the clever crosswords. I wasn't having fun solving
the Typeshift and Wordbind puzzles, knowing that my scores would always
be trounced by folks who could stomach using words like motlier.
(Scrabble champs would no doubt point out that the real problem is that I'm unwilling
to put in the work to memorize those weird words. Anyhow.)
Instead, I wrote a couple of little computer programs to solve those
puzzles for me. That was fun. I set them up to favor
using actual-words-that-people-use; but fall back to
words-never-uttered-outside-a-Scrabble-board.
Unfortunately solving those puzzles still isn't fun, even with the helper programs…
So I stopped. But I still visit the site each day for the cool crossword.
Permalink
Book Report: Software Engineering at Google
It's a pretty-good survey of important systems (technical systems and people-systems) at Google Engineering. When I say "survey" I mean it covers a lot of topics lightly. E.g., the chapter "How to W...
Permalink
I continue to check my little dashboard of San Francisco COVID numbers each morning to figure out whether heading into a creperie for a hearty-yet-inessential breakfast is a worthwhile morale boost o...
Permalink
I made some more word ladder memory drill web pages; and tweaked the computer program I use to make them to be not so San Francisco street-specific. Several days ago, I made a San Francisco street n...
Permalink
I continue to check my little dashboard of San Francisco COVID-19 numbers each morning. Lately, those numbers have snuck upwards; I'm thus stopping going inside public places for not-so-essential thi...
Permalink
I continue to check my little dashboard of San Francisco COVID-19 numbers each day to decide whether swapping air with strangers for inessential activities is probably-OK or invisibly taking a silly ...
Permalink
A couple of months back, there was news about the San Francisco Police Department losing their database of cars' catalytic converter theft. I still wonder what kind of mishap could have caused this. ...
Permalink
Shim to add images to Lemmy RSS Feeds
I use a RSS feed reader to view some image meme forums on Reddit. Reddit's CEO recently changed some policies, and those changes alienated many Reddit users, inspiring them to move to Reddit's rival ...
Permalink
Here's a screen shot of my phone Messaging app's Spam folder: Apparently when the app sees a message from a new-to-me number that contains a picture, the app chucks that message into the spam bi...
Permalink
I continue to check my little dashboard of San Francisco COVID-19 numbers each day to decide whether doing inessential activities in public is foolhardy or just good fun. Lately, all the numbers have...
Permalink
[Update: When I wrote this, I assumed that the California Open Data Portal had permanently stopped updating their Cal-SuWers data. But I was wrong, it was just "on pause" for a while as they changed ...
Permalink
Book Report: Abolish Silicon Valley
It's a memoir by a computer nerd who bought into the startup myth, and then was very disillusioned very quickly. I worked at a pre-IPO software startup. We IPOed, but at a low price. The investors...
Permalink
I still check my little dashboard of San Francisco COVID numbers to figure out when it's safe to do inessential indoor things, eat inside a restaurant, etc, etc. It used to be a dashboard of S.F. and...
Permalink
UCSF Med School smartie and COVID-19 pundit Bob Wachter tweets that he's once again willing to dine indoors and unmask in small groups. This is exciting news for people like me who trust Wachter's ju...
Permalink
MemeC, the Meme Composer web app
I made MemeC, a web app to ease creation of captioned image memes. These apps abound on the web; but the easily-found ones insist on stamping the created image with a "Made with app" blurb. I don't w...
Permalink
I am learning more about things javascript can do in the browser, without using a computer server. Like when a web page tells you to upload a picture, I assumed that the web page had to save that pic...
Permalink
Did you ever find out about a new-to-you API and immediately know what you wanted to use it for? ...
Permalink
Some days back, I mentioned I was tinkering with a little San Francisco COVID dashboard, calculating the risk of going to the supermarket vs getting groceries delivered. Since then, I learned more ab...
Permalink
I've been doing some small-data tinkering, putting together a dashboard to answer my recurring question: are the COVID levels in San Francisco low enough such that I can go to the supermarket in pers...
Permalink
crunching IMDB data
IMDB, the Internet Movie DataBase, has a lot of information about movies, TV shows, actors, directors, gaffers, animators, etc. I just crunched some exported IMDB data to build a crossword dictionary...
Permalink
Book Report: Imagine That!
It's the autobiography of Ed Smith, one of the first African-American people to work in electronics design, video games, and personal computers. Dude grew up in a then-bad neighborhood and seemed des...
Permalink
I updated that Bewordled game, the one where you swap tiles to make words kinda like Bejewelled but with words. Now it looks prettier with firecracker emojis and clouds. After I updated it, it occurr...
Permalink
Thr33dle
I made Thr33dle, a version of 3-Polydle with an auto-suggest function. That's a strange statement with a lot to unpack. In the past few months, I've played a lot of Polydle, a Wordle variant tha...
Permalink
Book Report: Unix (a History and Memoir)
Brian Kernighan wrote some remembrances of his time working on Unix-y things at Bell Labs. Some of it was new to me; some I'd already read elsewhere. (When I think about the timing, I suspect that th...
Permalink
This week's 50 Years of Text Games post is about Universal Paperclips. Universal Paperclips is an online "clicker game." Well, it's kinda online. It's a web page; but all of the game's programming ru...
Permalink
I updated the public Octothorpean source code. It said something like "This is the source code to the Google App Engine .go program behind 'Octothorpean'," though that's been wrong for a year. I copi...
Permalink
Further Bewordled
I read Allison Parrish's article "Rewordable versus the alphabet fetish," in which she discusses the design of the card game Rewordable. Like Scrabble and Bananagrams, in Rewordable a player builds u...
Permalink
Circly
I made a picture filter. I call it "circly" because it's kinda like pixelize, but with circles. And then I made a web page of circle-drawing animations so you can lose yourself in watching lots of ci...
Permalink
wordnet, is-a
ColinTheMathmo asked folks to think of animals that were also verbs, like "bug". I thought of some and then it occurred to me: wordnet ("wn") is a computer tool that knows the meaning of many many wo...
Permalink
I had some thoughts about automatically-generated mazes rattling around in the back of my head and figured out a way to apply an algorithm from that Mazes for Programmers book to a problem I'd notice...
Permalink
Book Report: Mazes for Programmers
This book is about randomly generating mazes by writing computer programs. Before reading this book, I'd tried randomly generating some mazes, but those mazes hadn't pleased me: too many little nubbl...
Permalink
Book Report: Humble Pi
This book talks about math errors and the consequences that follow. There are errors of engineering, software errors (dear to my heart), and plain old computation errors. Some of these get pretty int...
Permalink
Site's corollary: Never attribute to stupidity that which is adequately explained by software complexity. –Dick Sites ...
Permalink
link: Web War Stories
Computer nerds, take note: I just enjoyed watching "Overflow," a @WebWarStories episode about debugging and fixing a gnarly computer bug. The bug occurred on a rapidly-growing-popular web site, so th...
Permalink
"The more time I spend in front of a keyboard, the more I think my core skills here aren’t any more complicated than humility, empathy and patience; that if you understand its authors the code will r...
Permalink
Book Report: Hello World
It's a book about AI and ML, especially where they bump into ethical questions. Part of the problem we get into is… computers nowadays (as in the past) are good at things humans are bad at; bu...
Permalink
I still use computer files. So I keep remote backups. Some weeks back, my backups stopped working. I was using Dropbox, and Dropbox was doing some biiiig upgrade. One side effect of this upgrade was...
Permalink
Book Report: Grace Hopper and the Invention of the Information Age
It's a combination biography of Grace Hopper and story of the development of COBOL, the first mumble programming language (where historians and quibblers enjoy arguing about what exact phrase goes in...
Permalink
Book Report: How Smart Machines Think
When Sean Gerrish isn't automating the creation of wordplayish portmanteaux, he wrangles artificial intelligence… or writes this book about it. It's a popular-science survey of modern AI. You ...
Permalink
Book Report: Troublemakers
It's a swath of Silicon Valley history in the 70s and thenabouts; short biographies of some folks I'd heard of and others I hadn't. There's a good variety. I didn't learn much about the organizations...
Permalink
A team reported a typo in an Octothorpean Order online puzzlehunt puzzle's hint. So, no problem. I fix up the puzzle file on my computer, and go to upload it to the Octothorpean site… and get ...
Permalink
A while back, you'll recall I made a phone game that involved walking around and "checking in" to various landmark-y locations. The game got its information about local landmarks from Foursquare, tha...
Permalink
Book Report: Life in Code
It's a collection of essays by Ellen Ullman, a writer about technology who has actually worked as a programmer and thought about it and isn't a blowhard. I'd seen some of these before, but some appea...
Permalink
I'm learning Objective-C for work. (We have SDKs for folks who want to write apps that talk to banks, and one of those SDKs is for iOS, which is an 🍎 thing, and thus uses Objective-C.) It's been a tr...
Permalink
The new job starts Monday. The main programming language there is Java. I haven't done much with Java in years. In my remaining free time, I took a few whiles to catch up on how the language has chan...
Permalink
Job search is done: I accepted an offer at Token, which writes software to help banks do bank-y things on the internet. Many thanks and appreciations to folks who pointed me at places, pointed places...
Permalink
Help me find a programming job?
[Update:] Job found! Hello excellent friends, especially local computer nerd friends. I'm looking for work. Specifically, I'm looking for work as a programmer in the San Francisco Bay Area. Behold,...
Permalink
Book Report: Homeland
It's a sequel to Little Brother. Much of the action takes place during protests. Uhm, and that's pretty much all I remember. Remember back when my website got zapped for a few weeks? The good news i...
Permalink
Game: Troubador Tour Board
I made a phone game: Troubador Tour Board. You play it by walking around with your phone, occasionally pressing a button. Nowadays, that's not so unusual for a game. This game's unusual in that you d...
Permalink
Remember phraser, that tool for generating puzzle-design-friendly word lists? I just updated it. I found OMDB, a big database of movie info with a public API. (Did I find it? Or did one of you tell m...
Permalink
OpenID Connect for Google accounts
The document OpenID Connect | Google Identity Platform doesn't have a freeform feedback mechanism, so pardon me as I vent here. When it says "JSON array" it means "JSON object". Okay yeah I figured ...
Permalink
phraser, a word list generator
When you construct word puzzles, it's good to have a nice list of words to work with. Over the last several weeks, I've been tinkering on and off to build phraser, a tool that chugs through wiki data...
Permalink
Worlds Colliding, well, Lightly Brushing anyhow
QuizUp, a trivia quiz app, is built using Pants, that build tool I wrote documentation about. ...
Permalink
Computer programmers say "premature optimization is the root of all evil" because it encourages our tendency to complicate programs for negligible benefit. But here's another reason: the start of a p...
Permalink
Comic Report: The Imitation Game
It's a comic biography of computing pioneer/codebreaker Alan Turing. It's pretty good as you'd expect since it's written by Jim Ottaviani, who's done other excellent science-y biography comics. ...
Permalink
Book Report: 10 PRINT CHR$(205.5 + RND(1)); : GOTO 10
It's a book about a little "one-liner" Commodore 64 BASIC program. What happens when a bunch of academics want to talk about the good ol' days of 1980s home computer programming? A book like this, th...
Permalink
Book Report: Adrenaline Junkies and Template Zombies
It's like a pattern language for software development organizations. This isn't a design pattern language; it's more of a catalog of emergent patterns. You will encounter these situations as you make...
Permalink
It wasn't the BUILD Dictionary
Correction. I said that Bazel's BUILD Encyclopedia used to be the BUILD Dictionary. A Googler gently corrected me: But in fact, it was the encyclopedia back then as well. : ) I apologize for the ...
Permalink
Link: Why Chromium has code owners
One fun issue with working in a biiiiig codebase is that nobody knows it all. Something that can help: have "local experts" own parts of the codebase. Give them a chance to say how to make some code ...
Permalink
Bazel is an anagram of "Blaze"
Well dog my cats: http://bazel.io/, an open-sourcing of the Blaze build tool. (But I guess it doesn't build your code on Google's internal cloud machines.) The BUILD Dictionary (which I worked on) is...
Permalink
2Tone, OpenID
The 2-Tone Game web site has players "log in" so it can keep track of them. E.g., This player has solved these puzzles, has those puzzles open, and hasn't even seen those other puzzles over there. In...
Permalink
I attended an interesting talk recently. It was about tracing requests in complex service-oriented-architecture web service dealies. It was by Ben Sigelman, who worked on the Dapper project—whi...
Permalink
I attended an interesting talk recently. It was about tracing requests in complex service-oriented-architecture web service dealies. It was by Ben Sigelman, who worked on the Dapper project—whi...
Permalink
I played the computer game Hack 'n' Slash and it was pretty fun. It's that game where you get to change the game's program as you play through it. (I guess it's also a platform by which you can creat...
Permalink
"It turns out they were images of the tape records written by a Cedar Mesa program called the Archivist. Luckily, when the 9-track tapes were transferred to 8mm tapes, a file called rosetta.tar conta...
Permalink
Link: Video: How 1000s of Devs Can Work on the Same Code and Understand Each Other
If your organization doesn't use C++, you might be surprised that this talk about Google's C++ Style Guide could be relevant. But very little of it gets into C++. It's mostly about coming up with a s...
Permalink
fantabular.py: already obsolete
Remember a few days back when I posted about fantabular.py, a little computer program to convert Quip docs to spreadsheets? It's already obsolete: Quip now includes spreadsheets. Now I wish I'd procr...
Permalink
fantabular.py converts puzzlehunty Quip docs to spreadsheets
fantabular.py is a little computer program to look at your Quip documents, find those with "Tabular" in the name, and convert their tables to spreadsheets. If you're part of a puzzlehunt team, you o...
Permalink
I updated the downloadable 2-Tone Game source code. More recent versions of the App Engine SDK weren't compatible with this four-year-old (five-year-old? something like that) code. I just wanted to u...
Permalink
Link: Testing Culture
If you liked Parts 1 and 2 of Mike Bland's Unit Testing vs Heartbleed and goto fail bugs, you'll be glad to know that the rest of the article is up: setting up a unit testing culture, ...
Permalink
Link: Testing Culture vs Heartbleed
It's Part 2 of Mike Bland's article on how a testing culture could have prevented recent high-profile bugs. This time, it's Heartbleed, a darned innocuous bug which is causing umpty-ump percent of th...
Permalink
Link: Testing Culture vs goto fail
Catching software bugs requires testing culture. It's a mix of technology and attitude. Technology should make running tests easy. Attitude should encourage you to write tests—hey, it's easy so...
Permalink
FAQs, Facts, Drowning in Questions
You're a small team of software developers. You make a service|API|tool|thingy used by many, many software developers. They have questions, so many questions. You're drowning in questions. How can yo...
Permalink
Book Report: Little Brother
Remind yourself it's fiction: after a terrorist attack, the DHS goes police state on San Francisco. That part's all too believable. The less-believable part: our hero is a teenaged computer programme...
Permalink
Link: godep Go Dependency Management talk video
A while back, I went to a local GoLang meetup to see some quick talks about the Go Programming Language. Keith Rarick gave an interesting talk about godep, a tool to manage dependencies. The regular ...
Permalink
Link: 2014 #mysteryhunt IT and Infrastructure
It's a blog post by an Alice Shrugged team member about keeping their team-puzzle-state server up and running. We need jargon for this. HintOps? Solutions Reliability Engineering? ...
Permalink
Puzzle Hunts are Everywere, so Don't try to Think About Other Things
Working on the UI for the upcoming Ghost Patrol game, I took some little breaks. (Part of the UI is a little countdown timer that lets you know how long until the game starts—and eventually tel...
Permalink
Book Report: Debugging
It's a book about debugging, about troubleshooting. It has some good advice and some fun anecdotes. As I write this, it's been a few weeks since I read it, and the anecdotes have all leaked out of my...
Permalink
Book Report: Mr Penumbra's 24-Hour Bookstore
Like every novel-reading San Francisco bay area tech worker, I enjoyed Mr Penumbra's 24-Hour Bookstore. Its computer and code bits are more science-fantasy than hard science fiction, but they support...
Permalink
Syllables from Phonemes: Nothing is E-Z
I want to write puzzles that use word-sounds. And by "write," I mean I want a computer to do all the hard work while I stare off into space and think about burritos. But word sounds are tricky for co...
Permalink
Link: Can you code better than a fourth grader?
What if we're talking about a Vietnamese fourth grader? Neil Fraser went to Vietnam, and since he's a programming/educating nerd, he checked out the local computer science programs. He didn't just ch...
Permalink
Book Report: Java Concurrency in Practice
I work with the Scala programming language but Scala runs on the JVM, the Java Virtual Machine. This is pretty important. Java turned out to be an icky programming language, but some smart folks have...
Permalink
This tech talk about election software http://www.youtube.com/watch?v=RBSiuVGQECs shows politicians can't cooperate. In theory, it's a UX programmer talking about how he and other geeks worked with t...
Permalink
App Engine Programmers: Go just got practical (versus just plain fun)
tl;dr someone wrote some code that showed me how to speed up a game, so I'm happy. If you're a Pythonic App Engine programmer, then you know that AppStats and NDB make your life a lot easier. AppSta...
Permalink
I have infinity words for you
Developers Developers Developers Developers Developers Developers Developers Developers Developers Developers Developers Developers Developers Developers... ...
Permalink
Open Source, part of the new gig
It feels like Twitter has open-sourced a bigger fraction of its software than Google has. I haven't scientifically measured that; and even so, I hedged with "fraction"—Google has open-sourced a...
Permalink
Twitter -> RSS bookmarklet updated
I wrote a bookmarklet so that if I was visiting someone's twitter page, I could bring up the feed of their twitter stream in Google Reader. But the feed URLs moved, so I had to update my bookmarklet....
Permalink
Presentation: Tech Writing for non-Tech Writers
I'm a rara avis at Twitter, the only full-time technical writer. As such, my life is that of a celebrity: I'm constantly being invited to events, everybody wants to be seen with me, etc etc. At least...
Permalink
Book Report: Team Geek
Ben and Fitz wrote a book about coexisting with your fellow geeks on team projects without going mad. Those of you who are still reading this book report instead of going to Amazon... probably don't ...
Permalink
Book Report: Broken Ballots
A few people want to steal elections. A few billion people want fair elections. How do you make an election un-stealable? It's not easy. Elections do't run themselves; we need election officials. Fol...
Permalink
@ikai pointed out an unintentionally funny article The Real Reason Silicon Valley Coders Write Bad Software. The reason? Because they aren't better English writers. This article made it into the Atla...
Permalink
The Power of Type Theory in the Context of Buffoonery
In programming, there are types. E.g., if your program says x = 2, it's also useful to say that x has the Integer type. That allows us to organize our functions based on the kinds of thingies they ca...
Permalink
Link: Middle-Aged Software
Ranty Chris Crawford reminds you that your software project doesn't need a red sports car. And probably doesn't need half the new features that your power users agitate for. ...
Permalink
From the list of recent edits to Scala School, a tutorial for the Scala programming language, you might guess that puzzle nerds were trying to sneak in some easter eggs: You'd see a bunch of changes ...
Permalink
Book Report: The New New Thing
It's a biography of Jim Clark, a high-tech entrepeneur. This book talks about a period of his life after he helped found SGI and Netscape, when he was working on health-service software and designing...
Permalink
Book Report: In the Plex
Why do I keep reading Steven Levy books? They're full of mistakes. He interviews people who know a lot... and then somehow still gets it wrong. I read In the Plex because, golly, he talked to all the...
Permalink
Book Report: Version Control by Example
For a hobby computer programming project, I used a revision control program called Veracity. It works fine. One of the Veracity programmers wrote a book about revision control; I found it cheap, so I...
Permalink
Crossword Compiler Noob Diary
Unsurprisingly, creating mediocre crossword puzzles is easy but creating good crossword puzzles is hard. Mind you, I don't feel pressured to create great crossword puzzles. For puzzlehunts, I only ne...
Permalink
Soon I will be insufferable.
I switched groups at work. Instead of working with the internal training group on [confidential] [confidential] [confidential], I'm working on something I can actually talk about! Unfortunately for y...
Permalink
Book Report: Closure: The Definitive Guide
This book is about computer programming, specifically about how to use the Google Closure Library and Google Closure Compiler. I learned things that I didn't learn from Google's own documentation for...
Permalink
Follow Twitter in Google Reader Bookmarklet
Update: the version of the bookmarklet described on this page no longer works, sorry. You want the updated version which works instead. Twitter changed their UI and now I can't find any tweeter's RS...
Permalink
Link: Clang MapReduce video
If you're a computer programmer and don't have much computer code, then refactoring is easy. You start up your IDE, fill out a little dialog box, and there you go. But if you're part of an organizati...
Permalink
Book Report: Why Programs Fail
Today we celebrate #DennisRitchieDay ahem excuse me, Dennis Ritchie Day, in memory of a computer programmer who... Oh, man his stuff is in your computer, in your phone, Dennis Ritchie's stuff is ever...
Permalink
The Go Gopher Meme is Too Damn High
I've been messing around with writing an web app on App Engine using Go. A few months ago, there was a nice demo presentation of creating such an app that used as its example Mustach-io, a program fo...
Permalink
Book Report: The Architecture of Open Source Applications
If you're a computer programmer who thinks about software design, it helps if you've had a chance to learn about a variety of software designs. This is a great book for that! Maintainers of several p...
Permalink
Book Report: I'm Feeling Lucky
It's anecdotes and interviews about Google's early history by Doug Edwards, an early employee. (Is this a good time to repeat that my opinions are mine? They're mine. I speak for myself. I don't spea...
Permalink
Book Report: Knuth: Selected Papers on Fun and Games
Don Knuth is, of course, one of our greatest scholars of Computer Science. If someone asks you, "What's an efficient way to to sort ______ for quick retrieval?" you are always safe bluffing the answe...
Permalink
Book Report: Managing Humans
It's kind of a book about people-management by "rands," a blogger who's also an engineering manager. I suspect that people-managers who aren't used to dealing with nerds might get creeped out by thi...
Permalink
Book Report: Waltzing with Bears
This book's subtitle is "Managing Risk on Software Projects" and it's written by the Peopleware guys. OK, nobody's reading this blog post anymore; the non-computer folks have clicked away to find som...
Permalink
Do you ever worry that you've been using your Javascript programming framework so long that you've forgotten how to write plain ol' Javascript? You probably never worry about that. Anyhow, I wrote a ...
Permalink
I know, I'll use another regular expression. ...
Permalink
Book Report: The Design of Design
It's Groundhog Day, which the movies tell us is a day in which we have to worry about the same thing repeating over again. So maybe today's a good day to report on a book whose title repeats, The De...
Permalink
Wikipedia article data is available again: http://download.wikipedia.org/enwiki/latest/ Now you can tinker with nutrimatic. ...
Permalink
Book Report: An Engineer's Guide to Silicon Valley Startups
I read an early draft of An Engineer's Guide to Silicon Valley Startups months ago, but didn't blog about it then because it wasn't published yet. And then, when it was published, I forgot that I had...
Permalink
Book Report: Apprenticeship Patterns
For some reason, I thought this would be a book of mentoring patterns, but that's not what's going on here. This is a book for a computer programmer who wants to learn more about the craft. If you'r...
Permalink
Book Report: Coders at Work
I used to post an annual list of top 10 fave reads of the year. Nowadays, I post a "book report" for every book I read. It takes less time than writing up the top 10. It took too long to pick the ...
Permalink
Puzzle Hunts are Everywhere: 2-Tone Game GC Notes
If you've played through the 2-Tone Game and emerged, thinking Wow, that was strange; I wonder how it turned out that way?—you're in luck. At long last, some rambly essays about how the game c...
Permalink
Book Report: Finite Fields for Computer Scientists and Engineers
I'm not at Blackhat, nor will I be any time soon. Crypto is hard. I didn't finish this math book, Finite Fields for Computer Scientists and Engineers. My math is pretty shaky. Usually, when I'm t...
Permalink
Book Report: Two Bits
Two Bits is a book about the free software movement, explained in terms that an academic can understand. The author tries to steer around debates about what exactly constitutes an example of Haberma...
Permalink
Book Report: Masterminds of Programming
I just read a blog post, The Myth of the Superior Programming Language. In it, he points out that people who insist on using some wack-ass different programming language are kind of annoying. I agr...
Permalink
Musicians about the Internets
Yesterday, I went to a party at which I knew almost nobody. (Well, I knew some folks, but they mostly showed up at about the time I had to leave.) What's an introvert to when faced with a crowd like...
Permalink
Book Report: Organizational Patterns of Agile Software Development
This book is about software development process. I guess it's aimed at project leads, project managers, and managers. But it's organized into Design Patterns, a form loved by many computer programm...
Permalink
Book Report: Planning Extreme Programming
For me, this was a "Casablanca" book. By that, I mean it reminded me of my experience watching the movie "Casablaca." I kept thinking Big deal, I've seen all this before. But of course, that's beca...
Permalink
Link: My Secret Identity Revealed on CPedia
The folks at the Cuil search engine have a new way of presenting their data, Cpedia. Instead of the stereotypical list-of-ten-results, they construct an encyclopedia article. Where by "they", I mea...
Permalink
chris451's comment on Caja
[Edited to add: If you have questions or concerns about Caja, the Google Caja Discuss group is a good place to ask them.] Since I switched blogging software, people who think they're commenting on m...
Permalink
"What is a Content Management System?"
At the GC Summit, Debbie mentioned that the organizers of the excellent DASH treasure hunt game will start using a content management system to keep track of their puzzles. Someone in the audience a...
Permalink
Book Report: Hackers
It's another Steven Levy book about the history of technology. As with other Levy books, I keep spotting things that I know are wrong, so it makes me not trust Levy to tell me things I don't know. ...
Permalink
Rapid Development: an Example
Speaking of Rapid Development... There's a protocol called pubsubhubbub by which your blog can tell the world that it's updated. Usually when I hear the word "protocol", that means "oh man, complica...
Permalink
Book Report: Rapid Development
Today at work, we talked about ripping of^W^W repurposing some material from that McConnell book on software engineering, Code Complete. So maybe today is a good day to post a book report on another...
Permalink
Under Construction, as Ever
Thanks, Blogger.com, for five wonderful years of managing this blog! Sorry that y'all will stop supporting FTP publishing, which I was using. I've been scrambling this weekend to throw together som...
Permalink
Links to some Early 2010 Posts
I'm switching blogging software. The good news is that blog posts made via the new system won't clobber my old blog posts. The bad news is that I didn't really try to "weave together" the old stuf...
Permalink
Book Report: the Pragmatic Programmer
This book, The Pragmatic Programmer is difficult to find by searching, since there's also a series of books by that name. So maybe I'll give the full title here: The Pragmatic Programmer / ...
Permalink
100% Organically Farmed Software
The book The Mythical Man-Month pointed out the organic nature of software development in 1975 ...The building metaphor has outlived its usefulness... If, as I believe, the conceptual structures we...
Permalink
Tutorial: Closure Tools Javascript compiler and library
There are some fine tutorials out there for using Closure Tools, but I wrote a tutorial anyhow. Go read Closure Tutorial: Displaying Friendfeed Items. Uhm, by "Closure Tools", I mean the set of rec...
Permalink
Book Report: The Mythical Man-Month (a Study Guide)
If this book report seems a little heavy on the questions? It's because it's the first draft of a study guide? For people reading the book? Oh man it's way too long? But hey give me a break, it's...
Permalink
Book Report: The Mythical Man-Month (leftover cheap joke)
Last week, I posted a rough draft of a study guide for The Mythical Man-Month. I left a cheap joke out of that study guide. That study guide was serious business and had no room for cheap jokes. S...
Permalink
Link: Deny you ever read about Crypto Strikes Back in this blog post
In theory, I'm hobbyishly working on a little programming project. In practice, I make almost no progress on it. I'm almost never home and awake and alert enough to code. The bad news is: not much...
Permalink
Google & OpenID: discovery URL
A while back, I mentioned that Google supported Opendid. There's one important detail that I had a hard time finding amidst the mountains of documentation: If the user wants to use their Google acco...
Permalink
Book Report: Knowledge Sharing in Software Development
I was in meetings most of this last week at work. Meanwhile, one of my co-workers was learning a new style of programming--and thus was trying to learn about four big new things at once. She sent m...
Permalink
OpenID, OAuth, Learning by Gossip
Last weekend, I did some programming. Well, not much programming. Mostly I did research preparatory to programming. Well, not exactly research. It was more un-research. I started out learning ho...
Permalink
Aiming for Precisionism but Missing
When I was in Houston, I took perhaps my favorite photo-of-mine ever, this shot of the Houston Hyatt. It reminded me of some photos that the artist Charles Sheeler took. But he didn't leave his pho...
Permalink
Book Report: The Elements of Programming Style
Non-programmers might not realize it, but some computer program source code is even harder to read than the rest. Some of this code is so messy that an experienced programmer looks at it and says "I...
Permalink
Book Report: The Difference Between God and Larry Ellison
I've "used" Oracle applications. When I say "used", I mean "tried and gave up". Oracle calendar was slow, buggy, and thought it was a good idea to store my password, unencrypted, in a publically vi...
Permalink
Book Report: Applied Cryptography
This is an old textbook about applying cryptography; that is, it's about computer security. It's the textbook by Bruce Schneier, the book he later said wasn't so important--you can get this stuff ri...
Permalink
Book Report: Exploiting Online Games
This book is about hacking online games. Unfortunately, they started out talking about plenty of stuff which I already had read about. Cheating happens. E.g., people in shoot-em-up games use video...
Permalink
Book Report: The Psychology of Computer Programming
How to get programmers to get along together. Attempts to use psychology to design easier-to-use computer language features. Discussion of which is better for your organization's culture: batch proc...
Permalink
Book Report: Crypto
This last weekend, I pitched in for a playtest of MSPH12 "Jeopardy!". These puzzle-solving endeavors have wonderful moments. Solving puzzles in a team environment--it's very satisfying when my skil...
Permalink
Site Update: It's like Web2.0, but three years too late to be considered cool
You know how I had separate lists of Twitter updates and Blog updates? Like, on my home page, I listed each of those, but they were in separate areas? That was kind of silly. And unnecessary: Frie...
Permalink
Link: Caja's HTML sanitizer for Javascript
[Edited to add: If you have questions or concerns about Caja, the Google Caja Discuss group is a good place to ask them.] When you write a program that's supposed to be secure, you have to plan on ...
Permalink
Book Report: Working Effectively with Legacy Code
This book is a classic amongst computer programmers. Well, it's a four-year old classic. It captures the, uhm, zeitg^W movement towards unit testing and refactoring. It shares a problem with other...
Permalink
Book Report: Code Complete
Computers are hard. This afternoon, I was trying to figure out why some people couldn't view my web site. It sounded like a DNS problem; one guy reported it was affecting him on Comcast in Boston. ...
Permalink
Book Report: Code Reading
I am getting ready for a The Game, and am thus hyper-aware of white cargo vans. This is tricky; while team-mate Wesley is in town, he's staying close to Delancey Street. As in Delancey Street Mover...
Permalink
Puzzle Hunts are Everywhere: a web-crawling puzzle-hunt robot that didn't work
When the applications for the Ghost Patrol game started appearing, it was pretty humbling. New videos kept showing up on YouTube. The videos... the videos made me glad that my team (Mystic Ghosti) ...
Permalink
Book Report: Refactoring
Here I am tending to my blog on the bus. I wasn't really planning on it. I was just checking my email. I get email, among other occasions, when someone or something posts a comment to this blog. ...
Permalink
Book Report: Defensive Design for the Web
It's sad news that Rory Root, owner of Berkeley's Comic Relief comic book store, died today. But no-one reads this blog for news. You're here for book reports. Here is a book report for Defensive ...
Permalink
Puzzle Hunts are Everywhere: The Elementarizer
Yes, it's another blog post about programming & puzzle-hunts. This one isn't a web crawler. Dr Clue runs team-building puzzle hunts. Alexandra's done some puzzles for them and I've proofread a...
Permalink
Puzzle Hunts are Everywhere: Simple Website Monitor
Waiting for the bus, Jonas asked me: "Why did you start beeping during that tech talk?" People at work occasionally start beeping. We're an internet company with many servers. When servers have pro...
Permalink
Puzzle Hunts are Everywhere: an elegant Mastermind Crawler
Last time, I wrote about a brute force web crawler. This time, I'm writing about an elegant web crawler. As you would expect from elegant code, I didn't write it. The Pirates BATH game had a pregam...
Permalink
Puzzle Hunts are Everywhere: Brute Force Web Quiz Crawler
It's another blog post about how web programming skillz can aid in game-ish activities. A couple of years ago, Team XX-Rated hosted the Paparazzi Game. I was sorry that illness made me miss the gam...
Permalink
Book Report: Beautiful Code Chs 30-33
(If you're reading these posts in reverse chronological order, be aware that this Book Report is the last one of a series. This book report is for Beautiful Code, a book of essays. Rather than try ...
Permalink
Book Report: Beautiful Code Chs 26-29
Labor-Saving Architecture / William R. Otte and Douglas C. Schmidt This is a fun essay, talking about issues that arise if you have a distributed network of computers and you want all of those comput...
Permalink
Book Report: Beautiful Code: Chs 9-12
(I started learning Erlang a couple of weeks ago. Then I stopped. I'd started learning how to use the concurrency features. So I tried a simple program: it ran a "while true" loop in two threads--...
Permalink
Book Report: Beautiful Code Chs 5-8
Correct, Beautiful, Fast (in That Order) / Elliotte Rusty Harold Emerging from the previous essay, I saw that this essay was going to be about verifying correctness of XML. My yawning muscles tensed...
Permalink
Book Report: Beautiful Code Chs 22-25
(Visiting the doctor is good for you. Today, I visited a cardiologist to make sure that my recent hospital visit was Really No Big Deal. Thus, I missed the last bus to work and worked from home tod...
Permalink
Book Report: Beautiful Code Chs 2-4
(Another episode of Iron Puzzler is coming soon. And now, on to our partial book report, Beautiful Code, chapters 2-4...) Subversion's Delta Editor / Karl Fogel This essay was nice. It talks about...
Permalink
Book Report: Beautiful Code Chs 17-21
Another Level of Indirection / Diomidis Spinellis I'm not exactly sure what I was supposed to get out of this essay. "Function pointers can be useful."? OK, the point of these essays was not to in...
Permalink
Book Report: Beautiful Code Ch 1
Beautiful Code is a book about programming well. There are 33 chapters. In each chapter, one or two big-name programmers write about "the most beautiful piece of code they knew." As you'd expect w...
Permalink
Site Update: Updated Tags for Old Blog Posts
Blogger.com manages this part of my site, the /new/ part. In the long-forgotten days of 2006, Blogger.com didn't support labels/tags/whatever. In those dark days, I hand-made some tags, tags which l...
Permalink
Site Update: Mini-feed on Home Page
I continue to putter around with the computer. I did some programming this morning, and now this site's home page has a little mini-feed with links to a few recent articles on this blog. Not wildly e...
Permalink
Book Report: Parallel Distributed Processing
Based on the title, I hoped that this heavy two-volume set of books containing a number of articles would teach me a lot about how to write programs that run on several machines at once. After readi...
Permalink
Book Report: Beautiful Code: Chs 13-16
The Design of the Gene Sorter / Jim Kent This essay is what I want to see in a book called Beautiful Code. He talks about the design. He dives into specifics of implementation. The section "Theory...
Permalink
Book Report: BAE05: Ellen Ullman's "Dining with Robots"
The Best American Essays 2005 contains two essays which pay homage to the then recently-deceased chef Julia Child. One of them is by Ellen Ullman. Ellen Ullman is a geek; she writes about software ...
Permalink
Switching Gears
Today I felt like I'd lost a fight with the interior of a passenger van, but that wasn't the problem. I'd had a great weekend playing in the Griffiths Game, a 24+ hour puzzle hunt run by the Burnina...
Permalink
Book Report: Game Physics
David Eberly wrote this computer programming book about physics and numerical methods. Where "numerical methods" means making quick accurate calculations. It's an interesting subject, and this is a...
Permalink
Link: Parallel Analysis with Sawzall
People ask me what I do at work. I did not write the academic paper Interpreting the Data: Parallel Analysis with Sawzall (Pike, Dorward, Griesemer, Quinlan 2005). But I did revise the tutorial for t...
Permalink
Link: Joel on Hungarian Notation
Just when I thought I was going to have to read the papers myself, Joel Spolsky wrote a readable paper about the non-braindead version of the software engineering technique Hungarian Notation. Is th...
Permalink
Hungarian Notation Not Brain Dead
(If you are not a computer programmer, this item will not make sense.) For years I made fun of Hungarian Notation and Charles Simonyi. Now, thanks to Joel Spolsky, I find out that Hungarian Notation...
Permalink
Book Report: The Process of Creating Life
The Process of Creating Life is the second book of Christopher Alexander's Nature of Order tetralogy. That is, this is a book that is Alexander's theory of the universe and how this nature should gui...
Permalink
Hiding Data in Metadata
I'm flipping through this telegraphic code book which E. E. Morgan's Sons used for encoding messages long ago. Most of it consists of code words to convey phrases. E.g., instead of sending "one hund...
Permalink
Book Report: The Phenomenon of Life
Summary: This is a good book if you skip the first four chapters, the last chapter, and half of the appendices. Christopher Alexander is famous as the honcho behind A Pattern Language. A Pattern Lan...
Permalink
Tech-Brain Candy
When I commute to work, I change buses close to the San Francisco main library. Tonight, I took advantage of this. During the ride from Mountain View to San Francisco, I'd been reading Managing Gig...
Permalink
I bet you get these mixed up all the time
Last week, I read the book Managing Gigabytes by Witten, Moffat, and Bell. It's about storing and retrieving huge repositories of data. This week, I am reading Trilobite! (Eyewitness to Evolution) ...
Permalink