Picasa on newer macOS (including Apple Silicon) using WINE

As you may know, Apple macOS has discontinued support for 32-bit apps and Carbon (as of Catalina and later, from 2019).  Picasa for Mac was never updated after this, so it doesn't work at all anymore on newer Macs.

If you want to use Picasa occasionally on a Mac, it turns out the best (and cheapest) way these days is to use the Windows build and run it under wine. (If you have Apple Silicon, you should make sure to have Rosetta2 installed for this.)

  1. First, you should install https://brew.sh/ (homebrew).
  2. After homebrew is installed, do this from a terminal window:
    > brew tap gcenx/wine && brew install wine-crossover
  3. Then download a Windows Picasa build here: http://www.oldversion.com/windows/picasa-3-9-10-4

Now, you can run the installer (just double-click it) and it should make a Picasa3.exe. 

  • Find the Picasa3.exe and drag it to your dock (in the "documents" part next to the trashcan, because to the Mac it isn't an app). Clicking it will then launch wine and let you run Picasa.
  • Adjust Tools->Folder Manager to index things on your Mac. For me,  the Z: drive is my Mac volume, so I've added Z:\Users\[me]\Pictures and the rest to the list of watched folders.

Expected issues: you'll have to ignore most Google services, there's no retina support, and raw support is ancient (so you may want to turn it off). Similarly, integration with Finder is not very good. But it does work, and it's mostly still pretty fast (though it draws to the screen a little bit slowly).

Thanks to the Wine team, this works better than the old actual Mac build, which is something, but thanks to them anyway!

Walled-up Backup: getting photos off my iPhone without copying through the cloud

I recently got a new iPhone with iOS 13, and, well, I can't get my photos off my iPhone by plugging it in, the way it's worked for years. The garden walls are getting steeper, even if it's only an "accident". This particular problem (WIA/PTP being broken) has been causing fits for people for at least a year, and it needs to be fixed.

Right now, the only supported way to get photos off a phone is to copy them through iCloud, which is apparently not that well encrypted. I wonder how many people have no other backup at all?

Getting photos out should be easy

I've always kept a separate backup of photos from the phone, which is usually as simple as plugging it in and syncing the files to a Windows PC. This simply doesn't work with the new phone.

Dropbox says that the iPhone is "locked", even after I've hit the "Trust" button on the phone every single time. Windows Photos app starts the import and then says that something failed. Picasa starts copying, but if you do anything else on the phone while this is happening, the import stops suddenly and never recovers. It's as if the phone is deciding that this import is too expensive and killing it off, even though my new phone has 4GB of RAM, and my old iPhone 6 (which did this fine) only had 1GB.

I've tried the same thing on three machines. Reddit told me that you should uninstall iCloud from your PC first, but it didn't help. Also, that you have to "wait" several minutes after plugging in the phone, but that doesn't help either. It does take several minutes for the DCIM folder to appear in Windows Explorer, but that's a silly shell extension so you can't do a reliable "copy what changed" operation from it.

See other people with this problem here and here and here.

It seems like this is not a thing that needs to work in Apple's ecosystem, so it just doesn't work.

Tried a lot of things

The only thing I've been able to do so far: I told my iPhone's screen to "never" shut off, and left the Dropbox app running for 8 hours. It failed to upload 100 videos, but otherwise mostly worked. There is apparently still no API for Dropbox to use for background upload, so they do some location hacks if you let them.

This is all so unbelievable for 2020. Great camera, but I'm not allowed to do what I want to with the photos. 

As we were making Picasa, I visited my grandfather and looked through his baby book from more than 90 years before, and we wondered how digital photos would get preserved for 100 years. This is one reason we always left files in folders on disk, so people would be in control as technology changed or cloud services went offline. Even when Picasa shut down, people didn't lose their photos. 

I hope the people building modern locked-in services will consider how they could meet the same standard. It's not an easy one, but allowing people to be in control of their data and copy their own files and memories should be a fundamental human right.

HPE ML110 for ZFS

I've usually posted my ZFS NAS builds here, but there hasn't been a new one in a while.

Amazingly the SANS digital TR8x enclosure I bought in 2009 (8x2 RAID-Z2) just before the Thailand floods, had lasted about ten years and is still basically working, with two power supplies replaced, otherwise no problems. The Hitachi drives of that era seem indestructible. But I was running out of space and figured ten years was enough.

The older posts are here:

The truth is that I was holding my breath waiting for all-flash NAS to come down to reasonable prices. But what really happened is that SSDs got cheap enough that all our laptops have 512-1TB disks to backup now (not the small ones they used to). So in the end, I was too cheap to pay for all-flash this time around, so I went with 3.5" disks again, one more time. 

Mainly, there seemed to be a big tradeoff between space and noise, so it took some research to pick an enclosure.

As of 2019, there are lots of "quiet" 4-disk enclosures, but with RAID-Z2, you end up paying a lot for only 50% utilization, so I thought 5 disks for the RAID itself would be a minimum. More would be better. Interestingly, in my microserver gen8 (which is great), having only one PCI-e slot meant upgrades were limited. Internal storage worked great, and the SAS adapter broke out to 8 more disks, so I had a lot of storage. But there wasn't a second PCI-e available to do anything with, like a GPU for deep learning, or 10GB ethernet, or a second SAS adapter to move to bigger storage. This ruled out NUCs and other "compact" cases like the microserver for this version.

But the noise!

When you move up to 8-16 disk enclosures (3.5" for mass storage) things seem to get noisy. You're talking mostly about rack-mount gear with really big fans. So it's not very pleasant to have this kind of gear in your office.

I only found a few "tower" cases that had good airflow, with low noise. I heard very good things about the HPE ML110 gen10. This relatively compact box can be upgraded with an extra 4-disk hot-plug enclosure, for a total of 8 disks in one box, with a Xeon, tons of RAM, and even dual-CPU options if you want to spend tons of money.

Parts list for the ML110 build:

  • HP ML110 Gen 10 with Xeon 4108 and 4 LFF cas (P03686-S01)
  • HP 4-disk hot plug kit (total: 8 LFF drives) (869491-B21)
  • 6 x 10TB HGST, arranged as RAID-Z2 (for 36TB total) (0F27604)
  • 2 x Samsung SSD MZ-(1TB mirror) (7LH960NE)
  • Some adapters and knock-off rails from Amazon
  • An extra 32 GB ECC RAM from Crucial
Total for all of this is right around $100/TB, which is pretty good right now if you want a machine that can run real containers and not just act as a NAS. There are probably cheaper options if you only want a NAS with less RAM or CPU.

This machine uses nearly 100W, so I'm still trying to lower the idle power usage, but it has performed wonderfully so far. It's totally quiet when idle, and you hear the disks otherwise, but they're a lot quieter than the ones from 10 years ago.

Sharing a USB drive with Mac & Windows

Just parking these instructions here so Google so people can add a Mac partition to an NTFS USB disk without losing data.

If you get a USB drive with NTFS, and try to resize & format a second partition for your Mac, you'll get an error from Disk Utility like this: "MediaKit reports not enough space on device for requested operation". Every bit of advice online says that the fix for this is to wipe the disk, which, for me, would wipe out the NTFS partition I wanted to keep.

The trick is simply to make an EFI partition >200 MB (I made a 260MB one), which you can do using Windows diskpart: https://www.easeus.com/partition-master/restore-repair-deleted-efi-boot-partition-in-windows-10-8-7.html

After you've made your EFI partition, format the rest of the space as an empty volume, and then the Mac will cope with it just fine.

ZFS xattr tuning on Linux

It took me a while to figure out why my Linux ZFS disk was so slow, but there's an easy fix.

I moved disks over from OpenSolaris b134 to ZFSOnLinux directly. The new NAS had just awful performance over Samba and rsync, especially with large folders. I did a bunch tracing and watched the xattr request for posix ACLs use tons of time.

After reading up on it, what I found out is this: ZFS on Linux stores xattrs in a hidden folder, as regular files! This is very slow, requiring multiple seeks per xattr, and it doesn't appear to cache very well either.

The fix is to store the data in the inodes. And given the performance impact, I can't tell at all why this isn't the default:
zfs set xattr=sa (pool)
If you use ZfsOnLinux, you should probably go do this now. It's that big a difference.

(Also, some bugs were reported early on with "xattr=sa" but they appear to be fixed as of 0.6.2.)

Performance is quite amazing after this change, and I recommend it. I hope it's the default someday.

Also, I installed samba4, and this new version can store xattr data in a "tdb" (Samba's "temporary" database.) I didn't need to do this after the above fix.

Too many Chargers

Quick roster of things that charge:

  • I have 5 laptops and only 2 of them are charged at all.
  • I have two Kindles that have been out of batteries for 6 months.
  • We share chargers in the kitchen because we have too many  iOS devices.
  • I got a Fitbit and an Up bracelet and I charged them each twice, ever. Confused about when to take them off for 8 hours too. e.g., if I want sleep and fitness tracking, then I can't ever charge!

I hope this iteration of smart watches, devices, etc. have some clever charging solutions too, because I am out of plugs and time.

Charging all these new devices is really a first-order problem, and whoever solves it will win the market. It shouldn't be an afterthought, or these things will sit in drawers like all the old devices do.

Spying is Easier on the Non-Stupid Network

Many writers have attributed the early success of the Internet to its being a "stupid" network. You could build all the smarts you wanted on a single computer, a "smart" node, and then you'd have a new application. If you had to re-program all the Internet routers for each new protocol, not much would get done, but on the Internet this didn't need to happen.

Recently, the major IM providers stopped doing point-to-point communications. Instead, they started logging all your traffic to a server, apparently to allow you to use multiple devices. So if you get up from your desktop PC in the middle of a conversation and pick up your cell phone a half hour later, you can continue where you left off, because the conversation, and the stuff your friend typed while you weren't looking at a screen, now lives on a server somewhere. Similarly, Dropbox is so useful because your data is on a server somewhere, too.

Ten years ago, many of the IM clients allowed you to make a connection directly to another person and chat, without that traffic going to a server at all. For the most part this doesn't happen anymore.

Perfect Forward Secrecy

What's interesting about this change is that there are really quite good ways to encrypt point-to-point communications ("Perfect Forward Secrecy" including Diffie-Hellman and the Elliptic-Curve equivalents), ensuring nobody is snooping in the middle. It's sort of implicit with these methods that you throw away the actual key you used after the communication is done, and that's really important.

Even if you capture all the encrypted traffic from one of these conversations, it's impossible to recover a key later that lets you see what was communicated. You have to actually go get the computer out of someone's bedroom to see what was said! Not so much when there's a server in the middle, even if the data on that server is encrypted. Of course everyone tells you they encrypt your cloud storage, but it's not the same as a secure communication channel between two smart nodes. These are totally different grades of encryption.

As soon as you decide you must persist a key to get at your data, you also have a key that can be subpoena'd or recovered, so a packet capture of the transmission can be later decoded. If two smart clients agree on a key that is discarded after the information is transferred, no such recovery is possible.

And this fundamentally is the risk the cloud poses to secure communications. If someone's logging encrypted communications and has a legal framework to recover persisted keys, the only way around this is to make point-to-point communications a lot more prevalent.

You could make a Snapchat that was entirely and profoundly secure from snooping. You can't very easily make a Facebook that is.

Linux ZFS move (OpenSolaris all gone)

I moved my big ZFS array from a working OpenSolaris system to ZFS on Linux!

Previously I was running Linux but on a VirtualBox hosted by OpenSolaris, mounting ZFS over NFS, which turns out to be very slow (VirtualBox seems kind of slow at network I/O. KVM is the more modern way to do this, and I suspect it's a better way.)

I would guess that the Linux port of ZFS is somewhat slower, but it's totally great to have all my stuff on Linux again, and for certain, the apps I'm running on Linux are quite a bit faster now.

This new machine is the gen8 microserver, which in practice is quite a bit faster than my old 3GHz Xeon. I'm booting it to an ext4 SSD software RAID-1 (md), and then using the same LSI card that came with my Sans Digital TR8x for the external ZFS array.

Other than thinking "if it works don't fix it", the only thing that held me back from this move was the idea that NFSv4 ACLs (i.e. NTFS ACLs you copied from Windows to ZFS) would somehow make for a trainwreck when I moved away from the built-in Solaris CIFS service to Samba. I felt "locked in" somehow by setting up all those ACL bits. But no such catastrophe has occurred - a few chown's and an occasional setfacl and it's fine. The ACLs are inherited in ZFS (and there's a Samba option for this too), so most of it just continues to work.

Samba is probably faster too, because it supports SMB2 and CIFS does not. Also, if the ACL issue bugs you, you can even compile Samba with ZFS-style ACLs - I didn't even do this.

A Solaris-like auto-snapshot service is available with one git checkout: https://github.com/zfsonlinux/zfs-auto-snapshot. Everything else I was running is tons easier to configure on Linux anyway.

Maintaining one server OS is going to save me a lot of time, and for that alone, it was worth the move.

The Few can now Watch the Many: 1984 vs 2014 and Exponential Growth in Surveillance Tech

My friends know lots of things about topics like Machine Learning and Big Data. They can detect phrases in speech, objects and faces in billions of pictures, or sort trillions of numbers in a few minutes.

And not unsurprisingly, these same people could do so much less just 10 years ago. Machine Learning and Big Data have been on such an amazing curve that these whole fields have been reinvented very recently. The technology is reaching a totally new scale and range of capabilities.

You think for a minute about that Orwell book,1984. It's suddenly a bestseller again.

Half of us, Spies?

What would it have taken to build the surveillance state in our 1984? Well, you would have had to hire half the population just to spy on the other half. Without technology to help, you would need massive quantities of human attention to do surveillance. It would be an immense cost and massive operation. That's one of several reasons it never happened.

But today, 30 years later, it's conceivable to filter all voice communication through very smart algorithms, to run face detection at airports, to log every license plate that drives by many thousands of locations. Easy stuff now.

If the NSA is paying $600 million to Amazon or $860 million to build a new datacenter, those numbers are pretty small, even tiny, compared to hiring just 10,000 people to do the same work manually.

Let me say that again. Thirty years ago, it would take 100 million people to keep track of what everyone was saying and doing. And this year, it's 10,000 times cheaper. (I even looked at the license-plate reading cameras and thought of buying one for my house. It's under $1000 for a complete system.)

So maybe, ten years from now, what if you could just buy today's NSA cloud computing infrastructure for maybe a million dollars?

Ultimately, it doesn't matter how much you cut the NSA budget. Technology is getting cheaper really fast. The algorithms are getting better, while the storage is getting lots cheaper.

And I've started to think that this exponential growth is the story that isn't getting written. We know from the tech boom that technology centralizes control. A few people can write code that makes billions of dollars in just a few years. That's unprecedented in history, kind of like this "new" surveillance issue.

Even knowing that, there are still two kinds of people in the world: the 0.1% who are watching this exponential growth in machine technologies and understand the implications of the scale and centralization, and everyone else, who thinks maybe the NSA/Snowden thing is just some questionable policy and nothing new in the world other than perhaps an abuse of power.

People are completely and utterly unprepared for this particular exponential growth curve. Surveillance is going to be millions of times cheaper than it was ever before.

But most of the world's population has no way to reason about this, or to understand it. There is no precedent for this in history. 

Microserver gen8: a good (great?) home server

[EDIT: OpenIndiana-discuss concludes that the broadcom network chip is not supported on Solaris, but there is some interest. Also, to use 4 disks as storage, you may have to use the on-motherboard microSD chip, or the optical disk slot, to boot from. I'm using Linux and am very happy with it.]

HP made an amazing new Microserver, the gen8.

Intel. Haswell. Fanless (the CPU at least.) And it's as fast as my old 3GHz one.

Two NICs.


It's tiny and holds 4 disks (plus a tiny space for a 5th on top.)
I just turned off the built-in soft RAID.

This is a really good start for a home server. Recommend it.

A couple notes to get ZfsOnLinux working on CentOS 6.4

I've been trying out ZfsOnLinux, which seems pretty stable according to a couple of friends.

In addition to the usual stuff, I had to make two symlinks to get DKMS to work on CentOS 6.4.

First, the post-install script DKMS uses is pointed to /usr/lib/ and not /usr/lib64/ (this should probably get fixed some other way):

ln -s /usr/lib64/dkms /usr/lib/dkms

Also, the kernel build is using the fully-qualified version and not the abbreviated one:

ln -s /usr/src/kernels/2.6.32-358.14.1.el6.x86_64 /usr/src/kernels/2.6.32-358.el6.x86_64

There is probably some reason for all this, or it will be fixed in a week. But anyway, it might save you time this week. It compiles the kernel module for me now.

Toddler Usability, Nouns vs. Verbs

Watching our 2 year old navigate the iPad has been amazing. She has a huge capacity to figure it out, play her favorite songs, run her favorite apps, etc.

Of course she does a lot better when there are pictures. An icon, no matter how small, gives her tons more benefit than just a text label.

But it's about the Nouns

But the biggest concept I've learned is the idea of nouns vs. verbs.

When language starts developing, you see thousands of nouns appear, before verbs really show up at all.

And even for adults, the best interfaces are made of simple nouns. Apps are nouns. One of the big splits between an early "technology" for "professionals" and "consumer apps" seems to happen at the point a UI gets noun-ized. A photo, a song, a file.

It's not a "workflow" or a "write down these steps." It's, that app, or, that icon. It's when you become a noun that your software takes a leap in usability.

In real life, our most important tools do things, so software designers try to emulate that. But the best-loved tools are also nouns. And those tools, those nouns, can only do a few things. You start a sentence with a noun, and it limits which verbs apply. So your brain is just faster this way.

It's what toddlers do, and it's the same with people bigger than two years old.

Your users aren't so smart that they want a workflow or a wizard or an action.

Instead, you should try to start with nouns.

On Crossfading Properly

Since Adobe Revel just replicated the thing Google+ did, and they're both wrong, I thought I would say this:

If you have two images over a black background and you want to crossfade between them, please DO NOT fade out the first one as you fade in the second.

(Exception: you can fade the first one out, quickly, at the very end of your animation, if the aspect ratios are different.)

The reason is this: in the middle of your animation, if you do it the Google+/Adobe way, you will have:
 - image A at 50%
 - image B at 50%
Total opacity: 75%

And you didn't really mean to have 25% of the background showing through there, did you?

Crossfading between two images this way will leave you with a 25% darker image in the middle of your very fast crossfade, and that's very distracting and looks bad.

You don't want intensity to change in a crossfade, unless it's very slow and fades to black on purpose.

Windows 8

I bought a Lenovo Yoga to try out Windows 8. The good news is that screens are getting somewhat better on Windows laptops. The Yoga even has IPS, so it has contrast and the colors don't look insane when you look at it from a slight angle.

Many other touchscreen laptops have screens that bounce around when you touch them, which is a bad thing for a touchscreen to do. The Yoga is pretty solid.

I really disliked everything about the new OS, but now I find that I'm adjusting to most of it, and touch on the desktop is the unexpected HUGE benefit.

Overall the "new" parts of the OS feel very rough. In a way, Windows 8 gives me the ability to goof off and to work on the same machine (which feels more like working than using an iPad.) It's not going to be my main machine, though, because it doesn't deliver on work or play as well as the dedicated machines do.

What's Surprisingly Good

IE on a touchscreen! Because two-finger zoom on a desktop browser is just incredible. Of course, I don't use IE because Chrome is actually faster for everything other than zooming, and Chrome doesn't zoom yet. In my opinion, touch without zoom is not nearly as much fun.

Scrolling with your fingers in regular apps, when it works. Sketchup is pretty fun with touch especially.

What's Not Great 

Touch almost works on the desktop, but you really can't click anything that's of a normal size. I can't close a tab in Chrome, can't close a Window, and I can't actually hit most buttons in a dialog box. This may be the accuracy of this model's touch screen, but it's very frustrating - I can use remote desktop on an iPad more easily than this, probably because it allows zooming when I really want to click a button.

Because Microsoft didn't spend enough effort fixing the desktop, a majority of the UI is inherited from Windows 7 (like the entire Control Panel and Explorer), which is made up of tiny close-together links, so nothing at all is usable with a touchscreen. There is apparently no gesture to zoom in to click on a thing you really want to, so you're absolutely stuck using the trackpad to click on small objects, which is almost everything.

The ugly desktop: the window chrome is huge and the visual design is completely lacking. It's like looking at a Powerpoint wireframe of a UI, and less customization than ever before. For instance, there is a narrow range of color settings that makes the taskbar look decent at all, and while they give you a couple color choices by default, it's very hard to see at a glance what's going on: which shade of gray is the active window, etc. This set of choices makes the desktop UI tiring to use.

The two-headed hydra of "Modern" vs the traditional OS: the launcher has never previously needed full-screen real estate on the desktop, and it pretty obviously doesn't deserve it. This UI is very half-baked, and it misses on some basic usability. Microsoft could have built a Quicksilver-style overlay view in the desktop mode that allows launching the 4 most popular Modern apps, but they might have also kept the benefits of the desktop UI.

In case this point hasn't been articulated by every single reviewer of the OS so far, I'll add my two cents. On the desktop I always have tons of state in my head, and I usually launch an app to add to it, not to replace it. When I haven't used my PC all day and I go to look something up, that is the time I want a modal UI that asks which task I meant to do, so I don't forget and admire all the old things I was reading yesterday. But other than this single case, I want the PC to be full of overlapping windows and tons of complexity.

The quality of the built-in Modern apps is mostly poor. The finance app and a few others are pretty nice, but most of them are too minimal, and all of them are too slow. On pretty much the fastest laptop I can buy, most of these apps take >5 seconds to launch. Scrolling is often chunky, not even animated. The email app is flaky. I'm not used to the gestures for sharing content from them, so I won't use them very much. I have existing ways to share content on the desktop, and I don't want new ones.

There are extra rough edges, like Modern apps switching in to tell me they need to update while I'm trying to do work on the desktop.

But overall, I'm surprised that I really like touch in a desktop environment. I almost bought a machine with no touchscreen, but it is more fun than you expect.

I wish Microsoft had spent more time making touch work on the desktop, rather than all the effort they put everywhere else. Touch on the desktop is actually a killer feature (not a flashy one) and it deserves more of their effort in the future. Adding multiple ways to do the same tasks (but in a more limited way) is just not useful.

If Microsoft spent all their effort in the next year making touch magical and seamlessly integrating the best of their new apps a la carte with the Windows desktop, they would have a product people would love, at least a little bit.

iTunes, by spamassassin

I found a copy of the iTunes Terms and Conditions and Privacy Policy in my spam folder.


Here's what Spamassassin has to say about it:

*  2.2 INVESTMENT_ADVICE BODY: Message mentions investment advice
*  2.1 ADVANCE_FEE_4_NEW Appears to be advance fee fraud (Nigerian 419)
*  3.5 ADVANCE_FEE_3_NEW Appears to be advance fee fraud (Nigerian 419)
*  0.0 FORM_FRAUD_5 Fill a form and many fraud phrases

How Daylights Savings Time made me Tired for Two Weeks

Along with everyone else, we stopped observing Daylight Savings Time a couple weeks ago. Lorna and I adjusted all our clocks, at least the ones that didn't adjust automatically.

Of course that switch makes everyone tired for a few days. But it's been worse this year, and I didn't understand why until recently.

It has something to do with our toddler.

Because in that way that babies are, the baby didn't notice. She just doesn't read most words or notice what time it is.

Now, a couple weeks after the "switch," I realized that I'm living in a house with a person who basically ignores what time the clock says. Baby Girl is going to bed and waking up at the same time as before, but the same solar time. We are going to bed an hour later, and then waking up when she does.

And interestingly, what's happening is: we're missing about an hour of sleep every night, and it took me a long time to figure out why. But I've been tired for two weeks now, and that's why.

It's seems so obvious that a person who can't read the clock is behaving differently than one who does. We must be really attached to going to bed at a certain time, and not when we're tired, right?

The temperature

Around the same time, my nest updated, and it seems to regard the numbers we set with a little more "flexibility" than before. So 72 doesn't seem to be 72 anymore. It's 71 or 73, or whatever. I can't really explain, just that I used to dial in particular magic numbers, and now they seem to overshoot sometimes. 

And in nest's defense, I do think nest deserves to use numbers, because it can't adjust the temperature instantly. You need a way to say what you mean for the future.

Photo editing

And back in the old days when we were designing Picasa, we took the numbers off of a lot of the sliders, so you would look at what you were doing to the picture, rather than the number. This was really uncommon back then. In photo editing, you can actually make an argument that the numbers matter. What if you want to do the same thing to 5 photos, but you don't want to copy & paste the whole set of effects? Photoshop jocks do really use the numbers, and they like to see them, and then copy and paste and tell people about them.

But we took them off anyway, and we tried to make the sliders work right instead. So I guess what I'm about to say is a thing I've been thinking for a while.

That Analog Show

Mostly, I've been thinking about the next f.lux UI, and how much to show the color temperature number ("5000K!") and how important it is, or isn't. Maybe it isn't. I made it really big in one sketch and then I took it off completely in another.

And you wind up realizing that we use numbers when we need to coordinate. Like, "I'll meet you at 2PM." Or to make things reproducible ("Set the Photoshop levels to 0, 220 with a gamma of 1.2.") Or even when there's a delay, like "Make the temperature 72 sometime soon. I'm too cold." Or maybe, if you have to explain something to someone over email or on the phone.

But if you don't have a reason like this, you are...

In love with numbers

One big part of simplifying our interfaces is to make them more analog, more relative, and more human. It doesn't mean that we should give up the text that lets us coordinate and communicate.

But maybe we're ignoring our own best judgment, like when to go to bed, because we have this clock that says, "It's only 10:30!" And in these cases, it might be advisable to hide the numbers temporarily, unless you need them for some important reason. Like if you have an appointment you have to drive to, or if you want to talk about the details of your Photoshop filter.

In a way, wall clock time is just a technology. It's a pretty good one, suitable for coordinating activities and knowing if a store is opening without driving to it. But with modern devices, you could really pretty much replace the entire technology of time with realtime communications. It's a neat exercise to think through the implications of removing these numbers. Does it make it harder or easier? How much reinvention do you need to replace those numbers with something meaningful and intuitive?

So it's a challenge sometimes. But what if we did the experiment to dial numbers back a level in our interfaces, and then we figured out how to make things work without them? It's actually important not to lose the functionality that the numbers give, but to replace it intelligently and in an ambient way.

Maybe that's a challenge for you, too. 

A Day with Philips Hue

I got a Philips Hue on the first day it was available at the Apple Store and had f.lux running 3 hours later. Here are my notes.

Some notes about Hue in general:
  1. Color is great, whites look good
  2. Bulbs are efficient (8.5W)
  3. Brightness is good, useful as a regular bulb.
  1. The controller rate-limits updates from the software. So if you wire up a slider to send messages at 10fps, it won't work. You can send 2-3 messages per second, and then it does some interpolation on its own, which might not give the "look" you want.
  2. Powering down a bulb (like with a lightswitch) and restarting loses all the bulb's state! Depends on a client to restore it. The controller bridge really should do this automatically.
  3. Range isn't so great -- Zigbee loses to my DECT phones and baby monitor and wireless network. So you really need a "mesh" of nodes, not two bulbs 50 feet away.
  4. Minor: Bulbs have a front-facing distribution (put out less light to the side and back than the L-Prize bulb.)
Here are some notes about the interface to the Hue controller (I didn't look into the Zigbee side, just sniffed the iOS client.)


Hue uses SSDP (like Roku and Sonos do). So, discovery is pretty standard. You can also walk your class-C network and look for a webserver responding to /description.xml, which is cheating (but it works.)


Hue relies on client-generated secrets. Each client generates a secret (likely one of the device unique identifiers), and then uses that to talk to the hub.

So you'll see an http request like this:

GET /api/{secret}/lights HTTP/1.1

And the switch will respond "unauthorized user." The client will then start polling to make a user:

POST /api
{"username": "{secret}", "devicetype":"{name}"}

And Hue will respond (in JSON):
"link button not pressed"

Once the button is pressed:

Basic Controller

The current iOS client appears to poll /api/{secret} once per second, which gives the whole dump of settings. Most of these seem writable.

To change a light you do a PUT to /api/{secret}/lights/#/state (not POST).

(where # is a number you found from the main lights feed. On the default kit you'll have lights 1-3 available.)

Contents are JSON! For single brightness and color settings (not groups or scenes) you might see something like this:

{"bri": 128, "ct": 200, "on": true}

Brightness appears to go to 255, color temperature is 500 to 154 (which corresponds roughly to 2100K to 5800K, somewhat nonlinear.)

Or you can send xy coordinates to control the bulb in color (use your handy sRGB to XYZ matrix):

{"bri": 255, "xy":[0.4, 0.4], "on": true}

You must rate limit your client in the range of 2-3 updates per second, or the hub will send you a 503 and throw away your changes. It appears to be "worth it" to stay in this range, or the rate limits get a little more severe.

Advanced Controller [TBD]

The software has the ability to define groups and scenes. Have not investigated yet.

Just in case you want to avoid updating an iOS app...

If you're using a jailbroken phone and you want to avoid updating an iOS app for any reason:

1. Login via ssh and copy the sandboxed version of the app to /Applications. 
2. Uninstall the sandboxed version.
3. Reboot/Respring to make Springboard notice the version in /Applications.

It's all about the Audience

It was 2004, and we were in a meeting at Google debating if Picasaweb would have comments in the first version. (There was actually a contingent saying that maybe this wasn't needed.)

And I remember this moment like yesterday. Lorna, our PM (who I married two year later, so I'm not biased at all) piped up to say, "You know, Flickr gives people who look at your pictures something fun to do. It's all about the audience." Blink.

This view won several years later, and it's one of the biggest network effects online today. You don't make photo sharing sites that make it easy to share photos--it doesn't matter. You make photo sharing sites that give you an audience for sharing. That's Facebook, and it's the reason it is so very hard to compete with Facebook right now. Best audience, and the rest doesn't matter.

I keep telling people if Facebook made it nightmarishly hard to post a photo, 10x harder than today, it actually wouldn't matter much. People would figure out how and keep doing it, because the audience is there, and they like being there. They look at me like I'm insane for a few seconds, and then it usually clicks.

Moral of the story: when you "focus on the user", it's important to know who the user actually is.

iPhone vs. S3

Just a little spreadsheet for your day.

8GB iPhone: $99
16GB iPhone: $199 (+$12.50/GB)
32GB iPhone: $299 (+$6.25/GB)
64GB iPhone: $399 (+$3.12/GB)

Dropbox: $2/GB/year
Amazon S3: $1.25/GB/year

Cloud storage looks cheap when you compare it to storage in your pocket.