Larry Hosken: New: Tag: programming

Seen this morning at the Waller Street Skate Park: an in-real-life Cons pair:

pair of Converse shoes, branded "Cons"

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.

two computer windows next to each other. On the left a browser window shows the Puzzmo site, zoomed in on a Wordbind puzzle. On the right, a computer command line shows someone using a program called wordbind.py to cheat ahem I mean suggest words to use in the puzzle; it suggests using the ahem word backstamped.

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

Tags