I had a strange problem pop up recently in Mac OS X Mountain Lion where operations to reveal a file in the Finder would not work. I noticed it first in Chrome where I would try and open a downloaded file and could not get to it. Then I tried to reveal a download in Safari and got the same thing (confirming it was not a bug in Chrome). The same issue then appeared in Sublime Text 2, I could not jump to the Finder with my file selected. Same with Adobe Lightroom. iTunes still works, but that’s the only example I found that was not broken. Pretty much everywhere you can “Reveal in Finder” or “Open in Finder” is broken. The craziest part of this thing is it happened both on my laptop and desktop.
It appears I am not alone, which means it’s likely on Apple’s side and is not due to some combination of apps that I use. There is not a permanent fix [yet!], but you can get a temporary reprieve by killing the appleeventsd process:
$ sudo killall -KILL appleeventsd
The underlying bug seems to be unrelated to the action of actually revealing a file in the Finder, but that’s a common operation that demonstrates the issue. According to this report, the problem is applications getting into a state where they cannot send Apple events when the events are addressed by the bunder identifier.
After years of considering it, I finally scooped up my first eInk display powered Kindle. The Amazon Kindle PaperWhite is the latest generation of Kindle and combines the touch screen technology first seen in the Kindle Touch (though it has been improved) with a novel backlight system to facilitate reading in the dark. The light is what suckered me in, I had stayed away from eInk because I frequently read in bed and having to use a book light seemed absurd (not to mention distracting for anyone else). Now with the PaperWhite I can read in full sunlight and in the dark, all without any accessories.
The size is great, if you haven’t used a 7″ tablet before it’s the perfect size for reading. That’s why Apple shrunk the iPad (or slightly enlarging the iPhone I guess, since it came first) to be the same size. You can hold it with one hand and it’s perfect for reading while laying down. After using the Kindle for a bit the [full sized] iPad feels gigantic.
I live in Florida and it’s wonderful to have a device with a screen that looks perfect in direct sunlight. I can’t wait until they figure out how to do the same with non-eInk displays so that phones and regular tablets will be usable outside (or even with polarized sunglasses).
The touch screen on the PaperWhite responds faster than the Kindle Touch and the redraw rate also seems improved. The on screen keyboard is surprisingly usable, though I have only needed to use it a few times for WiFi passwords and a couple searches. I opted for the 3G model so that my reading progress would sync to Whispernet without connecting to WiFi which is often the case if I’m traveling.
The only thing I would change is to put a button on the back to turn the page. It’s slightly annoying to have to touch the front, though usually a thumb can reach and not be too much of a hassle.
I had Google Drive pop up an interesting dialog today asking for my permission to add status indicators to icons in the Finder. I think this is a play to make Drive more like Dropbox, which uses icons to show the status of files in the Finder. I gave my permission and then checked my Google Drive folder to see if anything changed and after a few minutes it looks like I was exactly right. For reference, I’m currently using version 1.5.3654.0684.
They still seem a little buggy because I noticed after dragging that folder of photos into my Google Drive that they all initially had a green “synced” check icon and then all switched to the blue refresh icon and finally each updated back to a check as they were synced. They also don’t appear to update in the background, I had the window out of focus and thought progress was stalled, but clicking on the window updated all the icons to show sync was complete.
I got an iPhone 5 right after getting a Hyundai Genesis and to my dismay the new phone and new car did not work together. I assume other car manufacturers are in the same boat because Apple did not provide any heads up on the new Lightning connector. The Genesis has an auxiliary input as well as a USB input and Hyundai actually included a 30-pin connector cable that oddly fits into both ports. This worked great with any previous iOS device, you get a digital signal right into the head unit and can control playback through the steering wheel and everything else you would expect.
The iPhone 5 does away with the venerable 30-pin connector in favor of the smaller Lightning connector. A Lightning to USB cable is provided in the box for charging and plugging that into my Hyundai Genesis sent the phone into a repeating loop of trying to connect but never making it. Frustrating to say the least, but at least Bluetooth still worked fine so I had music (but no control, over Bluetooth you have to change the songs on the phone and not from the car which is not safe).
I ordered the iPhone 5 along with the $29 Lightning to 30-pin Adapter at the same time, but Apple apparently put more focus on the phone and didn’t start shipping the adapters until last week. It’s now at a 2-3 week shipping time which I assume means they’re selling like hot cakes (no surprise since at this time there are exactly 0 accessories that are compatible with the Lightning connector…) I have finally received the adapter and am happy to report that there appears to be full functionality with my car–the phone shows it has power and playback is controlled through the vehicle. Success. Your mileage may very, all iPod integrations are not the same and it may only be a certain variety that are compatible. All I know is that whatever is in the 2012 Hyundai Genesis is indeed compatible with the new Lightning to 30-pin Adapter Oddly enough, apparently even Hyundai had no idea if it would work or not and were similarly waiting to get their hands on an adapter to find out. Apple really could have made this transition a lot smoother.
Spoiler: the Lightning to 30-pin Adapter is compatibile with the Hyundai Genesis (and likely other models)
Despite the phone now working with my car, I still think I’m just going to go with an iPod Classic and keep it in the center console. 160GB fits my whole music collection and I don’t have to bother with plugging or unplugging anything when using the vehicle. It’s also nice that with the direct connection music starts where I left off and as soon as I start the car (with Bluetooth it defaults back to the radio and if I have to plug in my phone there’s obviously a delay there too).
Have you noticed a large amount of direct traffic from Inktomi Corporation in your Google Analytics reports? In my case the traffic was all coming from Bethesda, Maryland though I have read reports with the same issue form different cities. The visits are all direct and are one page per visit (or very close to it). The browser is “Mozilla Compatible Agent” and it is version 5.0. I have thousands of these visits (see screenshot below).
After installing Mac OS X Mountain Lion you may find that your Python virtualenv setup has broken. I saw a traceback ending in “IOError: [Errno 2] No such file or directory: ‘/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/__init__.py'”
Another error was being produced by virtualenvwrapper when trying to use the workon command: “ImportError: No module named virtualenvwrapper.hook_loader”
Fixing my virtualenv setup was pretty simple:
- Installed the XCode 4.4 Command Line Tools.
- Re-installed pip: sudo easy_install pip
- Re-installed virtualenv and virtualenvwrapper: sudo pip install virtualenv virtualenvwrapper
No other changes were needed and everything was running smoothly.
I keep looking up the resources sizes for iOS web apps (for when users save to their home screen). This is complicated by the sizes changing from time to time, so there is a lot of misinformation. Here is what’s current and what works:
||Home screen icon
|iPhone 3Gs / iPod Touch
||57 x 57
||320 x 480
|iPhone 4/4s / iPod Touch
||114 x 114
||640 x 960
|iPad / iPad 2
||72 x 72
||768 x 1004 (portrait) 1024 x 748 (landscape)
||144 x 144
||1536 x 2008 (portrait) 2048 x 1496 (landscape)
I live in downtown Tampa and the 2012 Republican National Convention is taking place here this August. The city has seen a lot of public works project in advance, mostly beautification , but also some infrastructure. Good infrastructure like improved cell networks (LTE here is fast), but also bad infrastructure like a mesh network of spy cameras (or CCTV if you’re working for the man). I have seen the installation happen and it started by mounting antennas all over the downtown area. Seeing workers isn’t unusual here, but each of these installations was conspicuous because of a Tampa Police Department car parked by the cherry picker. Very strange to need a cop to watch someone mount an antenna, let alone dozens of antennas.
It’s a Saturday today and I was out for a walk and saw the familiar seen of someone in a cherry picker and a TPD cruiser looking over. This particular corner had an antenna installed weeks before (and I had taken pictures then too, curious about the specifics of the antennas), so I figured the camera portion was getting added today. I watched for about 15 seconds and noticed that the worker at the top was looking back at me. Strange, but there’s not much to distract yourself with up there so I didn’t think much of it. Then I took out my phone and snapped a picture. This set the worker off, he started yelling at me and then yelling “he took a picture, go get him!” to the cop. It’s a hot day and the deputy was inside his car, so I assume it took a bit for him to respond because I continued walking and was not interrupted. During my walk I made sure to upload the photo just in case I got in contact with an officer who had a less than perfect legal mind.
I grabbed a drink and then on my walk back decided to get another look, this time from across a fenced and barricaded street from another unrelated beautification project. He caught on quickly and yelled again, saying that I was a “piece of trash” and then yelling to the cop who was now out and about. The worker’s perch let him give updates to the cop, but again I was able to walk away without being interrupted.
I want to know what’s going on. We all know there will be spy cameras in downtown Tampa because of the RNC. We all have eyes and can see where they are. The antennas are large and noticeable, even an untrained eye can spot them. This was a public street and there was no way to know that photography was prohibited, even though the law there is dubious at best (I was in public, surrounded by people and taking a picture of a light pole which will remain fully visible for years).
When citizens complain about spy cameras, the response is frequently if you’re not doing anything to hide, you have nothing to fear. Or that they will just be used to solve crimes. It’s not very encouraging that they are already suppressing freedoms during the installation of these private eyes in the sky. The city has given millions of dollars to Aware Digital for apparent goons to install cameras that invade all of our privacy. Even St Petersburg has paid hundreds of thousands of dollars for CCTV during the RNC even though they aren’t hosting it. Governments use things like this as an excuse to get the toys they could never justify previously. The RNC is in and out in a week, we’re stuck with big brother for ever.
When they began installing the equipment, I took these photos. I didn’t know they would come in handy later.
Finally, since they apparently have something to hide, here’s a little bit about what cameras are being installe. The main contract is to Aware Digital, a creepy sounding Miami based company with nearly no web presence (coming soon, @2006) and Orwellian employment practices. They’re wireless and run on a custom built wireless mesh network. Officers can access the live video from mobile devices, ensuring future citizens will have to walk faster than I did. The contract is for about 60 cameras, which should cover a large amount of downtown. Their contract stated it needed to be up by July 1, which would explain why they were working today (June 30). Exact specifications of the cameras are hard to pin down, with people saying different things. City council types love to think they have classified intelligence and both boast and understate. Aware Digital spoke a little more about the system they had for Superbowl XLIV in Miami. That was two and a half years ago, so we’re likely a lot more sophisticated but they had HD pan/tilt/zoom cameras with 10x optical zoom. Not too shabby.
Update: It’s Monday and I was walking by the county courthouse and saw the familiar scene of a squad car and cherry picker. Low and behold it was the same Aware Digital goon. Unbelievably, out of the mass of people at lunch time around the busy courthouse he spotted me before I took a photo. I then snapped a picture as he yelled to a cop, “I knew it, there he is!”. What is going on?
Update 2: I have started a Google Map to track the locations of all these CCTV cameras. If you have spotted a camera that isn’t on the map, please get in touch.
Update 3: I got bored and made this data into a mobile friendly web app for use around Downtown during the convention: RNCCTV.
By default Django renders templates from disk on each request, which means if you edit a template file the changes will be reflected instantly on the site. That’s intuitive and all, but since code is kept in memory and thus code changes are not reflected until server processes are restarted, it’s easy to get yourself out of sync. I recently deployed a code/template change that depended on each other (the existing templates were incompatible with the new code) and between the time Mercurial synced files and the Apache processes were restarted I received dozens of emails about 500 errors. It was only a couple of seconds and I could not have done it any faster, but at the end of the day seeing dozens of errors is unacceptable.
django.template.loaders.cached.Loader. It’s a template loader introduced in Django 1.2 that keeps template files in memory. I’m not sure how I missed this until now. Using the cached loader will increase your memory footprint a bit, but it will keep them in sync with the code so all your changes deploy at the same time. If you have a lot of templates the memory footprint may be more significant, but it was very minor in my case.
To use it you wrap
django.template.loaders.cached.Loader with the other template loaders you want it to cache. Since I wasn’t doing anything unusual I was able to get away with it wrapping the default loaders like so in
TEMPLATE_LOADERS = (
With that one change I can now deploy code and template changes and have them reflect at the same time. I am not sure why this isn’t the default, having your code update separately from your templates is illogical. Keeping it all in sync seems like common sense.
This change can be somewhat annoying while using the development web server since it automatically reloads when you change code but not when you change templates. To get around this you can either set TEMPLATE_LOADERS differently based on the value of DEBUG or override TEMPLATE_LOADERS in your local settings file(s) (assuming you have one). I’m overriding and it works fine.
This is more for me in the future, but it’s public just in case anyone else has the same question. I have a KitchenAid Artisan Series 5-Quart Mixer (it’s great, I’ve had mine since 2007) and often bake with a digital scale. On multiple occasions I have wanted to subtract the weight of the mixing bowl, but only deciding this after adding things to it and forgetting to notate its starting weight or taring the scale. It’s a pain to figure this out after the fact and I had previously managed to not write down its weight. So for me and whoever else, here it is:
The weight of KitchenAid’s standard 5-quart mixing bowl is 793 grams (28 ounces)