Larry Hosken: New: Tag: programming

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 set of rules, each of which is "worth it." It's easy to come up with an arbitrary set of rules, but coming up with a credible set of rules that are worth following… that takes a change of attitude, but it's worth it.

Permalink
& Comments

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 procrastinated on that one just a little longer.

Permalink
& Comments

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 occasionally want to collaborate on making a spreadsheet of data. You arrive at a playground|lawn|garden. Scattered about the place lurk placards|posters|dioramas. The team splits up into two or three groups to cover ground faster. For each thingy, you jot down some notes. Then you regroup and try to make sense of your collective notes. Probably the result is hard to follow: different people took notes in different ways. When you noted down the poster color, you set up a "color" column and jotted down "red" or "black". Your teammate set up a "red?" column and jotted down "yes" or "no". Either system makes sense, but when you try to look over all of your data, it's a muddle. Maybe it gets confusing enough such that you decide to transcribe everything to one table (carefully!). And then one of your teammates channels Dan Egnor and say "We should really put this in a spreadsheet".

In this age of smartphones and documents "in the cloud", it seems like we should just be able to use our phones to work together in the same spreadsheet from the get go. I haven't found a great way to do that. Quip has a pretty sweet mobile-collaboritive editing experience…for word-y documents, not spreadsheets; but those documents can contain tables. So I wrote fantabular.py, a little python script to fun on my laptop to peek at my Quip documents, find those with "Tabular" in the title, download them, grab the tables from them, and convert those tables to spreadsheets.

So we can share a document named "Tabular Shinteki Legion" or whatever, put together a big table of data that we're all looking at (and can all see that we should say "yes"/"no" instead of "red"/"black"), and when we regroup, haul out the laptop to convert to a spreadsheet.

On the one hand: yay, better living through software. Yay me for writing this code. Yay. On the other hand: wow, it feels convoluted to tell your teammates: hey let's all use this word-y document editing app so we can later turn it into a spreadsheet. I'm posting this halfway hoping that someone will tell me "Larry, you goofball, what a waste of your time. Didn't you know that ______ is a great way for smartphone-ish folks to collaborate on a spreadsheet?" Because I have to think that would be less roundabout than what I've got going on here.

Permalink
& Comments

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 upload a new photo: a certain intersection downtown lost its street sign again. Alas, to update the puzzle content for 2-Tone Game, you have to send a new version of your program to App Engine: the puzzles and the program are all in the same bundle. And App Engine balked at the old, old code. So I took out the old parts, used new parts instead. The resulting program is simpler—the new stuff is cleaner than the old stuff. It's a little silly that it took me a few hours of learning new stuff just so I could, y'know, update a photo. Still, over the years I've spent less time dealing with computer-obsolescence compared to city-obsolescence. App Engine is pretty forgiving.

Anyhow, now you can download some works-in-2014 code if you want a starting point for slapping together something similar; or the original code if you, uhm, are an archivist or something.

Permalink
& Comments

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, Google's unit testing culture, how to change your engineering organization's culture to embrace testing. Yeah, there's a lot there; depending on where your organization is on the unit-testing adoption curve, you probably want to read some parts closely and skim the others. There are things to do if your organization doesn't have tests; there are things to do if your organization's testing culture is thriving and you want to figure out how to get some weird feature under test.

Permalink
& Comments

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 the internet to revoke certs. There's a silver lining: the OpenSSL open-source project might actually add a test for this.

Permalink
& Comments

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 it's worth it. Attitude should raise an eyebrow at code that's hard to test: maybe that difficulty should be fixed.

Mike Bland wrote an article about how testing culture could have caught the "goto fail" bug. He reduces the test down to its essence; you don't have to fight with some testing framework to set up this test. He talks about a way to structure code to make it easier to test. He talks about a culture in which that test would have arisen naturally—not in an after-the-disaster writeup.

It's Part 1 of what's going to be a multi-part article: Goto Fail, Heartbleed, and Unit Testing Culture.

Permalink
& Comments

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 you make the questions stop? Maybe you can stop the questions with documentation. Build a thick wall of documentation around your team. Or maybe that's a terrible idea.

You want to stop the boring questions. You want to preserve a trickle of interesting questions.

I tend to work with teams who are drowning in questions, trying to shield themselves behind a big pile documentation. (I'm a technical writer; it turns out that writing a big pile of documentation is a lot of work. Some teams ask for help.) When I was young and naive, I set out with the goal to document everything. I thought that nobody should ever have to ask for help (except for those folks too lazy to study). But now? Now I prefer to leave some gaps, leave some room for conversation. Some folks will ask you questions; it's good that they do; you want to hear them.

When a question is asked and answered, there's more learned than just the answer to that question.

Not all questions lead to such inspiration, of course. The fifth time you answer that same dull question, you're sick of that question. You can feel like you're drowning.

The book The Social Life of Information explores how knowledge oozes through an engineering organization. (Spoiler: Documentation helps, but conversations help more.) Knowledge Sharing in Software Development reminds us that pair programmers share knowledge without even trying; contrariwise, developers don't always choose useful things to document; it's easy to waste time answering questions that nobody will ask.

What can you do? If documentation is so useless, why am I still a professional technical writer? Well, it's not useless. It's useful, you just don't want to go overboard.

Answer the boring questions with documentation.

If someone asks you that same old question, you should have documentation that answers it. If you're tired of answering that question, then don't; point folks at the already-existing answer instead.

Ask them for help in writing the documentation.

Let through a trickle of interesting questions.

You want to let through just enough questions to make sure you're in touch with your customers. Depending on how many of those people there are, you want a loose filter or a strict one. If you're a team of six supporting 60 developers, you probably can sit by them without getting too many questions. If your team of six supports 600 developers, you want to make sure they check a FAQ first. If you support 6000 developers, you probably erect more barriers: rules about how to submit questions. If you support 60000 developers, only those who are pure of heart and can find you at the top of the mountain can ask.

If you get the balance right, you might be genuinely glad when a question gets through to you. Your delight might even keep your customers thinking that you care about them.

Permalink
& Comments

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 programmer; he's better at computer programming than pretty much anyone I know. He doesn't do anything in particular that you haven't heard of someone doing… but he's simultaneously expert at programming services, defeating computer security, defeating real-world security… sort of a teenage hacker as trickster god. A fun read; bonus puzzlehunt points for having a puzzle-y ARG as a plot point; inspiring a puzzle hunt in San Francisco; and for listing Seth Schoen in the acknowledgments.

Permalink
& Comments

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 go tools make it easy to slap together some working code that depends on open-source libraries from elsewhere: the go tools will happily fetch the latest code and build it. But what if you want to re-create that state later and those libraries have changed meanwhile? Once you've figured out a combination of versions that works, you kinda want to hang onto it all in case you need it later.

So far, I've gotten along OK just using the standard Go packages, not using any other libraries. But since my day job involves a lot of thinking about dependencies, this was an interesting glimpse.

Permalink
& Comments

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
& Comments

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 & Comments

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 & Comments

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 & Comments

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 & Comments

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 & Comments

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 & Comments

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 & Comments

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 & Comments

I have infinity words for you Developers Developers Developers Developers Developers Developers Developers Developers Developers Developers Developers Developers Developers Developers... ...

Permalink & Comments

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 & Comments

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 & Comments

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 & Comments

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 & Comments

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 & Comments

@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 & Comments

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 & Comments

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 & Comments

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 & Comments

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 & Comments

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 & Comments

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 & Comments

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 & Comments

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 & Comments

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 & Comments

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 & Comments

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 & Comments

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 & Comments

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 & Comments

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 & Comments

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 & Comments

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 & Comments

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 & Comments

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 & Comments

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 & Comments

I know, I'll use another regular expression. ...

Permalink & Comments

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 & Comments

Wikipedia article data is available again: http://download.wikipedia.org/enwiki/latest/ Now you can tinker with nutrimatic. ...

Permalink & Comments

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 & Comments

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 & Comments

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 & Comments

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 & Comments

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 & Comments

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 & Comments

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 & Comments

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 & Comments

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 & Comments

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 & Comments

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 & Comments

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 & Comments

"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 & Comments

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 & Comments

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 & Comments

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 & Comments

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 & Comments

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 & Comments

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 & Comments

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 & Comments

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 & Comments

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 & Comments

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 & Comments

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 & Comments

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 & Comments

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 & Comments

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 & Comments

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 & Comments

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 & Comments

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 & Comments

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 & Comments

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 & Comments

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 & Comments

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 & Comments

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 & Comments

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 & Comments

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 & Comments

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 & Comments

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 & Comments

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 & Comments

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 & Comments

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 & Comments

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 & Comments

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 & Comments

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 & Comments

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 & Comments

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 & Comments

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 & Comments

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 & Comments

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 & Comments

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 & Comments

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 & Comments

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 & Comments

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 & Comments

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 & Comments

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 & Comments

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 & Comments

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 & Comments

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 & Comments

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 & Comments

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 & Comments

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 & Comments

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 & Comments

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 & Comments

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 & Comments

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 & Comments

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 & Comments

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 & Comments

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 & Comments

Updates:

Tags