Awesome Conferences

Recently in Misc Category

Things you might not have known about Google Authenticator:

Copy and paste

If you press and hold the 6-digit number, it puts it in your cut and paste buffer.

Re-order the list

If you click the pencil to go into edit mode, you can change the order of the items.

I find this particularly important because I now have 12 different systems authenticating with this app, and only 4 fit on the screen of my tiny iPhone SE.

I've pushed the ones that I use the most to the top of the list. The Google-related services that generally authenticate via a notification asking "Is this you trying to log in?" are now all shifted to the end of the list, since I rarely need them.

As a result, I am able to authenticate in about half the time.

Posted by Tom Limoncelli in MiscSecurity

Gall bladder Removal

Today I say goodbye to my gall bladder. I'll miss you, little guy.

I scheduled this blog post to appear around the time I should be coming out of surgery. Recovery should be pretty fast (a few days).

Here's the story told in cartoon form:

You can read all of The Awkward Yeti's cartoons involving gall bladder here.

See you soon!

Posted by Tom Limoncelli in Misc

A feast of analogies

A few years ago a coworker noticed that all my analogies seemed to involve food. He asked if this was intentional.

I explained to him that my analogies contain many unique layers, but if you pay attention you'll see a lot of repetition... like a lasagna.

By the way...

I've scheduled this blog post to appear on the morning of Wednesday, Feb 10. At that time I'll be getting gum surgery. As part of recovery I won't be able to bite into any food for 4-6 months. I'll have to chew with my back teeth only.

Remember, folks, brushing and flossing is important. Don't ignore your teeth. You'll regret it later.

Posted by Tom Limoncelli in Misc

How does Bitcoin work?

A brilliant description. It's certainly the best explanation I've ever seen. For the first time I actually understood how it works.

Posted by Tom Limoncelli in Misc

A friend commented to me:

Are we really so lazy that we cannot "take the time" to remove a 4 inch device from our pocket to check the next meeting or see who's calling?"

A new level of convenience turns something old into something new. Remember the move from dial-up to cable/dsl wasn't so much about speed but the "always on" capability. Wanted to look something up? Your computer was already connected. Friction-free use of the internet made the internet feel more useful. Today can you imagine a 30-60 second delay any time you want to use the internet? No, you can't and you wouldn't want it that way.

These new wristwatches have a similar effect. Yes, you can pull your cell out of your pants or purse, but having it on your wrist means not interrupting the flow of what you are doing. I don't have one but I know a few people with Pebble devices. They use it like a remote display for their cell phone: displaying time, txt messages, weather. For about the same price as an expensive watch (or 2x a cheap watch) it becomes a no-brainer.

Of course, tethered wrist-devices are really just a practice run for the industry who is really waiting for components to shrink enough to have a full-fledged phone on your wrist. Right now they're developing market share and trying new things. By the time the industry figures out the what the killer apps are, how the UI should work, and so on, the hardware world will have caught up with them and be ready for a wristwatch that eliminates the need for a cell phone in your pocket.

Which is all we really wanted in the first place.

Posted by Tom Limoncelli in Misc

Welcome to our fine city! Some say its the greatest city in the world. We love tourists and we want you to visit. NYC has some of the finest theater, museums, shopping, history and dining. I know NYC has a reputation for being unsafe but its actually one of the safest places for tourists to visit.

Which brings me to Tom's 4 point guide to visiting NYC:

Point 1: Dine well.

Say away from the following restaurants: Applebee's, Olive Garden, Hard Rock Cafe, Burger King and McDonalds.

Seriously, folks! You are in NYC! Eat someplace you can't find in your own town.

If you are near Times Square walk 2 blocks to Koreatown, look at the store-fronts and go into the first Korean restaurant you see that scares you a little. I promise you the food will be excellent. This works in every NYC neighborhood.

Do this even if the kids complain. Even if they cry the entire time because the food is "weird". 10 years from now it will be one of their favorite family stories to tell.

Point 2: Rush-hour is 8am-10am and 4pm-6pm, even on the sidewalks.

New Yorkers walk very fast. You don't. That's ok. Just please for the love of all that is Lady Gaga: Step to the side and let us through!

You know that expression, "Live everyday like its your last"? We are! We need to cram as much into today as possible. That means walking very fast.

Between the hours of 8-10am eight million people need to get to work. Between the hours of 4-6pm eight million people need to get home.

Most of us "commute" via subway and sideway. During those hours we own the sidewalk. Don't believe me? Look at 8th Ave between 33rd and 40th during those hours. In the morning there are so many people streaming out of Penn Station that the sidewalk overflows and the left lane of 8th Ave is full of pedestrians. There aren't cops blocking it off. We just take it over! Please folks! Step aside. For many of us running to work is the closest thing to "exercise" we get.

  • If you stop. Step aside.
  • If you pause to look at a map. Step aside.
  • If you slow down because you just saw something awesome. Step aside.
  • If you slow down to avoid a homeless person. Step aside.
  • If you walk slowly because you walk slowly. Step aside.

In short: step aside.

Do this on sidewalks, on the open areas in Time Square, on the concourses in Penn Station, Grand Central Station and Port Authority. Do this on escalators ("stand to the right, walk to the left"). Especially do this in Penn Station on the path between NJT Track 4 and the 2/3 subway entrance. That's the path I take every morning and, look folks, I gotta get to work.

I know NYC is full of distractions but always be self-aware enough to know that there is a person behind you that wishes you'd move faster.

Please don't misinterpret our rush as being unfriendly. You probably get unhappy when your daily car commute is slow. It is the exact same thing, except we walk to work!

Between 10am-4pm please, walk slowly all you want. Well, except from 11am-1pm when we're rushing to get lunch.

Point 3: Talk with us. Ask for directions. We love it!

People see our rush-rush-rush NYC lifestyle and think we are unfriendly. No, we're actually the opposite. We're starved for social interaction! In other words, please talk to us!

  • We love giving directions.
  • We'd love to learn where you are from.
  • We'd love to know what attractions in our fine city you are visiting.

In fact, when I see a tourist looking at a map I actually wish they'd ask for help so I can have a little conversation while riding the subway.

Point 4: Oh, and one last thing. About that conversation...

One last thing. That little chat we have on the subway after I help you with your map question? I love it. Learning where you are from, how long you are staying, your plans... it's awesome.

There's one thing I don't want to hear.

I can't tell you how many times I've heard people say something like "We're so excited! We're going to a Broadway show! We're going to MOMA! ...and we're really excited because tomorrow we're going to Ground Zero."

That's the point that I end the conversation as politely as possible and go away.

But here's what I really want to say, and I think every New Yorker will agree:

"Excited" is exactly how you should feel about Broadway, museums, the Empire State Building, 30 Rockefeller Center, Central Park, and all the other plans you have... but not Ground Zero.

Ground Zero is where thousands died. It was a really fucking awful day. I was 20 miles away and it was a really fucking awful day. I didn't lose anyone close to me and it was a really fucking awful day.

Please don't describe your anticipation about visiting Ground Zero with any of the following words: excited, happy, thrilled, "pumped", or "psyched". Ground Zero is not an amusement park. There's no tilt-a-whirl. I don't think they should even sell tshirts.

I don't come to your home town and tell you I'm excited, happy or thrilled to visit where your grandparents died. Right?

Some words you might want to use: Solemn. Respectfully. Curious. Obligated. Ceremoniously. Or just say, "And we have decided [and this is where you pause and put on your serious face] to visit the September 11 Memorial at WTC."

Stick with these 4 points and we'll get along just fine.

Thank you.

Posted by Tom Limoncelli in Misc to sign up.

It will be particularly fun at LISA to see everyone on the map!

Posted by Tom Limoncelli in Misc

"Google engineer: What I learned in the war"

Dan and I have worked at two employers: Google and Cibernet. He's a great guy and I'm proud to know him. In addition to Dan, I have 2 other friends that have served in the Iraq and Afganistan wars. I was relieved and thankful (and a whole bunch of other adjectives and emotions) they all made it all home alive.


Posted by Tom Limoncelli in Misc

Please wish him a happy birthday by posting a comment here or on the band new "G+ Page" for Usenix:

Doug: Working with you on the LISA 2011 conference has been a blast. I can't believe it is less than a month away! It is going to be the best LISA ever! Have a great day! -Tom

Posted by Tom Limoncelli in Misc

Dennis Ritchie

Dennis Ritchie has died after a long illness. He was 70; two years younger than when my own father died.

When I joined Bell Labs in 1994 I was very excited that I would be on the sysadmin team that served computer scientists such as Dennis Ritchie. Many of my favorite textbooks were written by people that would now be my users. On my first day, however, I was told that I shouldn't ask Dennis, or anyone, to autograph a book: they didn't like that.

This was disappointing. I had many books I had hoped to get autographed. None more than my original copy of The C Programming Language, also known as "The K&R Book".

My copy of K&R was well-used and worn. I had read it over and over. In high school they taught Pascal but I knew that C was must more interesting and taught myself the language. C had only recently escaped the labs and there weren't many resources for learning it. I taught myself it as much as I could considering I was in high school and had no access to a computer powerful enough to run a C compiler. I was surrounded by 8-bit machines (Apple II, Commodore 64, Atari 800).

I collected languages like other kids collected baseball cards. C was beautiful, simple, power, and expressive. It was the opposite of the languages I learned before it: BASIC [Apple, C-64, TI-99/4A, GW-Basic, Simon's], Pascal (UCSD P-System, Tubro, assembly languages (6502, 68000) plus odd languages like COMAL. It was like "the perfect assembly language". If you knew machine code / assembly language you appreciated C infinitely more... in ways I can't express in words.

It was an exercise in self-control that when I left Bell Labs seven years later none of those books were autographed.

I'll close with one anecdote and one thought.

The anecdote...

One day I was in my boss's office. The phone rang, he answered it. He listened for a moment and then replied, "Yes, I'll send one right away." He hung up and turned to me to say, "Normally when a user calls to say that their monitor isn't working I ask the usual questions about whether or not it is plugged in, connected right, and so on. But since that call came from the inventor of C and Unix, I think we can just send him a new monitor." We had a good laugh.

The thought...

I should have fucking asked him for his autograph.


Posted by Tom Limoncelli in Misc

[Update 2015-10-18: Now that Perl6 has shipped, this article is less relevant. The point, however, is that shipping "good enough" is better than not having anything available. That's always true.]

In all the time I've been waiting for Perl6 I learned Python and, guess what? I like Python better.

I'm a big fan of Perl. I have been since 1991, Perl 4.032. That was 19.5 years ago. Back then learning perl was "radical" and "fringe". Backk then it wasn't acceptable at most companies to use Perl. Since then perl was gone from being revolutionary to accepted broadly. Initially it was mostly used by sysadmins but the invention of the web (and therefore CGI scripts), saved it. Prior to this there wasn't much need for heavy string processing (awk was sufficient) or database connectivity (who could afford $50,000 for Oracle?). However with Perl's CGI module and MySQL integration using Perl became "obvious". Heck, you might say that "CGI saved Perl from irrelevance". I was proud to be an early adopter of Perl. Like the apes that learned to use tools before the other primates, it gave me an evolutionary advantage that was undeniable.

Perl4 was good. Perl5 was great. There were 3 things I wanted in Perl6: Cleaner OO support, cleaner grammar, and the third thing? Well, I wanted it to ship.

I'd like to say, "I gave up waiting and learned Python instead" but the truth is that I took a job that was Python-centric, not Perl-centric. At Google we have one official compiled language, one official scripting language, and one official UI language. Yes, other languages are supported in some way or another, but sticking with "the big three" meant support libraries, tools, and an easier way to find collaborators. Sadly the scripting language of choice was Python, not Perl. So I learned Python.

Python has a very clean object model. It has a consistant grammar. And that third thing I wanted? Yes, it's shipping.

Being a Perl Patriot meant resisting Python at first. However now I have to admit that in the last 2 years (and mostly the last year) I've written a lot of Python. In my entire career I've written more perl "quick scripts" (1 to 5 line single-purpose or single-use scripts) but I've now written more lines of "big programs" in Python than in all my Perl experience. (that's more of a comment about how few large programs I'd written in Perl, I guess :-) ).

What I like about Python is:

  1. There's one way to do things. Code becomes a lot cleaner when there is one obvious way to do things. In Perl there are many ways to do things... having some ability to be creative is nice; have too much is stifling. Imagine being at a doughnut shop with 10,000 choices. It's confusing. Now go to a doughnut shop that specializes in chocolate cream filled. Sure, they have others in case you really want a cruller, but you know that the obvious choice (their speciality) is the way to go.

  2. It is readable. It is so readable that often guessing how something might be done is the right way to do things. Here are some examples:

    • Does an element exist in a hash (Python calls them 'dicts'): myelement in myhash
    • Does a substring exist in a string: 'substring' in string_variable
    • Having actual boolean values True and False means I can type "x = True", which is much more readable than "x = 1" (which could mean I want the integer that comes after zero and before two).
  3. Parameter passing is awesome. You can easily set default parameters, names parameters, etc. Yes, Perl can do that now but it is cleaner in Python. Also if someone passes 2 named parameters and 2 unnamed parameters there is a clear order to where those unnamed parameters should go.

  4. I'm in love with None. Yes, Perl has "undef" but it isn't used much. In Python a variable can be equal to None, which is different than zero or not defined. I can default a parameter to None, and take action "if x is None". (that's valid Python. "is" is like equals, only better)

  5. "Batteries included". CPAN is nice but it is stifling to have to decide between 3 different modules that do the same thing. Python has one awesome library for URL manipulation, for one awesome library for file handling, and so on. I'm enjoying how the web framework Django has enabled me to write some really nice, simple, web apps without a lot of code. (I hear Ruby-On-Rails is better but both Rails and Django seem to be better than anything I saw in Perl).

  6. The object model is very easy to work with. With Perl I was confident in using other people's object-oriented modules but fretted about writing my own. With Python it is much clearer to me how things work and why. Since everything is an attribute, I can even monkeypatch objects with confidence.

  7. No interpolation of strings. If you want to format something, there is a great formatting system which is highly optimized.

  8. The "Perl datastructures cookbook" is awesome. You know what's more awesome? Not needing it. In Python data structures make sense so you don't need a secret decoder ring to use them.

  9. Unicode support is really good, and in Python3 is the default (want an old-style string? use a bytearray).

  10. Immutable data types. At first I was confused. "What do you mean I can't edit a string? I have to change it while copying it?" Oh, now I understand! This simplifies so many other things and permits optimizers to really dig into your code. Cool.

What do I dislike about Python? I don't like that to use regular expressions I first have to "import re", but then the regular expression stuff has a lot of useful features. I don't like that I can't write one-liners, especially since I use to use Perl's "-a" and "-n" options a lot. I don't like Python3's ".format()" system, and hate that they are deprecating "%".

When I've made this points in conversations people often think I mean that "Python is what Perl6 should have been". I don't mean that at all. Python is very different than Perl. However, I'm more happy with Python than I am with Perl at this point, and by the time Perl6 is shipping and (hold your breath) main stream I'll have many years of using a language that gives me the benefits I was looking for.

And just to reiterate... my favorite feature is: it's shipping.

Update: 1pm: Fixed some typos.

Update2: 1:01pm: Devdas Bhagat tweeted: "Most of the Perl gripes appear to be a few years old. Perl has backported most of the stuff you want from P6 to P5." I reply: Many fine features have been backported. I'm more concerned with unfixable things like readability other things from my list.

Posted by Tom Limoncelli in Misc

I love the new(ish) bank automatic teller machines (ATMs in the US or "CashPoints" in the UK) that scans checks and cash and makes them available for immediate deposit. Imagine recognition for the win! (Should I mention that Bell Labs was showing demos of this to NCR in 1997? What took you so long?)



Here's a nitpick that I have with the user interface: The prompt is for "Cash or Checks" but the slots are in the reverse order, Checks on the left, cash on the right. (original photo is here)

Does anyone else find this annoying?

Anyone reading this blog know how to reach the developers at BoA to see if it can be fixed? This isn't the kind of thing I would report at their customer service phone number because it is my experience that there is no line of communication from customer support to the bugtracking/feature request system. Customer support people are usually trained to write down the suggestions just to be polite, they don't actually get submitted.

It would be amazing if companies could expose their bugtracking systems to the world. I'm used to this in the open source movement and would like to see it elsewhere too. The tech industry usually has a parallel bugtracking system that is exposed to the world, done this way to hide confidential information. I wonder how long before this kind of business practice works its way to other industries.

If someone could figure out a way to help companies provide an external view of their bugtracking system I'd be very happy. I'm very optimistic about the trend that Satisfaction has started, trying to re-invent customer support. Customer support is ripe for innovation.

Posted by Tom Limoncelli in Misc

First was January. This was followed by February which transitioned rather abruptly into March. April followed, as did May. June, July and August were next, in that order. September came and went. October followed September, just as it has for as long as I can remember. Soon it was November and lastly December.

I look forward to seeing what 2011 brings.

Posted by Tom Limoncelli in FunnyMisc

I've ordered an Eye-Fi card so my camera can geotag and download pics without a cable: Full line of products or via Picasa Get it "free" with a Picasa paid storage account.

Your camera thinks it is a 2G memory card. However, it has a WiFi thingie built in and your Mac or PC sees it as a computer it can download pictures from. The advanced cards have an "infiniite memory" mode where it is always downloading to your computer, freeing up space for more pictures.

Posted by Tom Limoncelli in Misc

Bacteria use IRC

It turns out bacteria are big users of IRC.

All bacteria hang out on two IRC channels. First, all bacteria hang out on #HO+OH+O+O. Second, each species of bacteria has their own, private, channel that only bacteria of that kind hang out on (#species-NAME).

If you aren't sure if two bacteria cells are the same species, do a /whois and see which 2 channels it is on. When a bacteria species has evolved enough to be different than their their parent species, they start using a different species-specific channel.

Now that we know this, it is easier to classify bacteria.

And if you don't believe me, watch this TED.COM talk by Bonnie Bassler of Princeton University.

Posted by Tom Limoncelli in Misc

Help me with a survey?

I'm curious about "recommendation engines", the systems that enable Amazon and NetFlix to make recommendations like "People who bought _____ also bought ____". I'm conducting experiments to build such a system. To do that, I need raw data. Would you help me by filling out my survey?

I'm doing this in my spare time as a hobby. I am a computer system administrator and author but this is a side-project. I'll keep the data private and secure. I'm not collecting names or email addresses thus the data is useless to marketing companies and spammers. There is a link to a privacy policy on the survey.

All that I ask is that you answer the questions honestly.

For best results, I need to collect information from at least 10,000 people of a large variety of political, ethnic, and geographic backgrounds. Since most of my friends are in a similar political leaning, I really need help finding people outside my social circle to fill out the survey. If you could spread the word (blogs, etc.) between now and the end of June (I'm shutting off the survey on July 1, 2008).


Take the survey here.

Posted by Tom Limoncelli in Misc

Do you speak a language that is outside of the usual "top 40" languages spoken internationally? More importantly, do you know the locale-specific issues like how date ranges are written (May 3-5, 2008)?

You may have heard of Unicode, the replacement for ASCII that lets you type in hundreds of languages. Did you know that the same organization maintains the Common Locale Data Repository, which includes machine-readable definitions of how dates are represented, words are sorted, and so on. The latest update is going to attempt to include even more attributes: not just the date format, but the format for date ranges; not just how to alphabetize words, but the alternate sorting rules used in that country's phone book, ...

The Unicode CLDR Project has set up a web site where people can review their current data and submit updates.

I think it is great that they are opening the project and searching for volunteers. A project like this can only be done with the power of the open web.

The project's homepage:

Anyone can view the data. You only need to create an account to report updates or make suggestions.

If you are interested in what kind of bugs are being reported, view the recent submissions here.

If you know a particular language or culture very well, please volunteer!

Posted by Tom Limoncelli in Misc

2X thin clients

Hey folks! If you've come to you might notice that I have an advert from 2X. They do an interesting Linux-based think client system. They're currently giving away 1 million clients if you want to see what its all about. I just thought you'd like to know.

If you do purchase their products, I would appreciate it if you told them you saw it on this web site.

Posted by Tom Limoncelli in Misc

I suppose it would be even funnier if I knew most of the people, but still it's hilarious. Lee Demon's page ("When Wookie's go bad") is the perfect caption:


I attended the SAGE-AU conference in 2002 and had a wonderful time. Everyone was very friendly and I learned a lot. I highly recommend you go yourself.

Posted by Tom Limoncelli in Misc

I've got permission to hire a sysadmin in our London office. After describing what I'm looking for to a friend he said, "So, you're looking to hire Mini-Me for the London office." I think he nailed it.

So, if you've read the book and still would want to be work for me, consider sending a resume. [email protected]

Posted by Tom Limoncelli in Misc

Berch on Food visited Switzerland and ran into Christine and Eliot!

Posted by Tom Limoncelli in Misc