1048576.com 2 to the 10th, squared!


One-Line Apple New Products Reviews, Oct 23, ‘12

iPad Mini: bigger screen than GOOG's Nexus 7 with lower resolution; disappointing, skip.

iPad 4th Generation (iPad 4): Lightning, faster CPU & front-facing 720p cam only appealing if you don't own the still-plenty-fast iPad 3rd gen, or unless you have an iPhone 5 and hate having to switch chargers.

13" MacBook Pro Retina: star of the show, everything you ever wanted in a 13" notebook; 3.57 lb. (1.62 kg), $1,699, a dollar per gram.

iMac "Slim": sexy packaging, Ivy Bridge, a no-brainer if you don't have the previous gen.

Mac Mini: still great cheap way to get into Mac/OS X, now with Ivy Bridge & Intel HD 4000.

Fusion Drive: hybrid SSD + mechanical drive; good move, surprised it's come so late.

Decision to drop SuperDrive optical drive from all models: two thumbs up!


How to find Google+ App in App Store

Google Plus has just released the long awaited Google+ App for iOS, something Android users have had for a while.  The main attraction being that you can now upload photos off iOS devices with built-in cameras like the iPhone and iPad, which you can't do off the regular mobile HTML site (which, if you haven't checked out yet, is awesome!).

There's only a small problem - as of now, searching for either "Google Plus" or "Google+" or even just "Google" in the App Store app does not find the app.  I'm sure this will be fixed, but for now if you want to find it search for "Google huddle" and it will be the only result shown.

Here's a direct link to app in iTunes: Google+.


Google+ Developers Group

If you're like me, you can't wait to get your hands on Google+ APIs to start building cool new things which run on Google's new social network. What's got me excited about G+ development is the robust range of offerings that Google can make available as part of the ecosystem for apps to run in, with single sign on across them all.

So how do you get in on the action? Right now there isn't much out there but Google has created a form on which you can sign up to be notified when new info is released:

To stay updated as the Google+ project develops and get a heads up when we have more details to share about Google+ developer opportunities, sign up here. Your email will be added to a Google group. In addition, we'd love to gather more information about you.

I was notified "Your information has been sent to Google and your email has been added to the Google+ Developers group" after filling it out. Knuckles cracked, sleeves rolled up and ready to build cool new things once APIs surface - bring it!

What will you build?


iPhone HDR photography passes Porsche test!

This has been reported in many a place before, and I will admit that it is in big part to showcase the picture I snapped of the new 2011 Porsche Boxster Spyder, a car that not only looks great but is also one of the best dynamic performance cars ever built. As in, built so far - remb, this is a technology blog and we're not big on nostalgia here; we're into things like the Porsche PDK automated dual-clutch transmission.

Photos were taken with an iPhone 4 running iOS 4.2.1 with HDR (High Dynamic Range) turned on. Roll over the image to see just how much more detail the HDR photo was able to pull in. In particular, check out the sky, the background buildings, the parking space stop, the car's brake discs, wheels, side and top. Pretty amazing that you can do this with your phone today!

2011 Porsche Boxster Spyder HDR on iOS/iPhone 4

Note: You need JavaScript enabled for this to work.


Gawker and being proactive about online security

The massive Gawker security breach, in which both the user account data and source code was downloaded and released on the internet, seems like a pretty major and negative event. All users' email and password hash were dumped, and those accounts using weak passwords had the password hash brute-forced to expose the plain-text password. Extra annoying: this is for all site using the Gawker Comment system, not only for the main site - so if you ever left comments on a sites like Gizmodo, Lifehacker, Kotaku, io9 and Jalopnik, your account is part of the compromised data. As spammers got their data on the list, you should have already noticed a significant increase in the amount of SPAM that gets into your inbox on main providers such as Gmail.

An embarrassing event for Gawker for sure, but a something positive can come out of it - bringing awareness to using the same weak password on more than one sites, and a chance to provide lessons in online security to educate users regarding the pitfalls and the best practices to avoid them. By this time you all know the drill, if you used the same password on other sites start by changing those passwords first, then proceed by changing all of your passwords to unique, high-strength passwords.  There are many password manager software packages out there that have excellent built-in high-strength password generators, or you can just make up your own long passwords by combining mixed-case letters, numbers and punctuation.

You would think this pretty much covers it, and there's not much else to be done. However, one site out there has gone the extra mile and gets the extra credit in recognition for their forward thinking regarding their users' online security. That site is LinkedIn. Earlier today they disabled all the accounts that were compromised by the Gawker security breach and required all users to reset their password. Initially there was no explanation for it, choosing to simply say "We have recently disabled your account for security reasons." Most people put 2 & 2 together, and about 10 hours later around 6 PM EST LinkedIn emailed out this official statement:

[...] This was in response to a security breach on a different site, Gawker.com, where a number of usernames and passwords were exposed. We want to make sure those leaked emails and passwords were not being used to attack any LinkedIn members. There is no indication that your LinkedIn account has been affected, but since it shares an email with the compromised Gawker accounts, we decided to ensure its safety by asking you to reset its password. [...]

A minor technical flaw is that they allow users to use the old password when setting the new password. While this may be as-intended, I can see a problem with it: when people got the original notice which did not tell them why they were asked to reset their passwords, some could have been annoyed and used the same old password. Had they known why they were asked to reset their password, they would probably have been more likely to use a different password.

Regardless, this is a commendable effort on LinkedIn's side, and I both hope and encourage more online businesses to follow in their footsteps. This of course means that LinkedIn's software engineers likely downloaded the Gawker torrent, but unlike the other guys who did the same, they used it for good!


omnitty on OS X

A kick-ass sysadmin I worked with in the past, that I'll refer to as Mr. Kim, introduced me to the omnitty SSH Multiplexer, "a curses-based program that allows one to log into several machines simultaneously and interact with them, selectively directing input to individual machines or groups of selected machines."

Suffice to say that omnitty is great for working on large numbers of similarly configured servers at the same time such as those making up your web farm. I use it almost every day (and I'm not an admin by day!) for a variety of tasks such as switching out hosts files on 16 boxes at the same time or tailing/grepping debug logs to troubleshoot prod issues.

A while ago I switched to a Mac running OS X as my primary desktop at work. All fine and dandy, until it came time to run my favorite SSH multiplexer. Most of the other guys on OS X run Cluster SSH (cSSH), but I was determined to get omnitty going. It put up a bit of a fight but I eventually got it to work. Below I list how you can do the same.

First, ensure you have gcc (gcc -v will tell you), make and patch. If you don't have them, stop here and install them - Google will readily show you how.

Then, after verifying the prerequisites are there, follow these steps:

  1. Create a new, empty working directory and download everything below to it (i.e. mkdir /tmp/omni && cd /tmp/omni).
  2. Download libROTE, the terminal emulation lib omnitty uses. ROTE is not often updated, the version as of this writing is 0.2.8 (filename: rote-0.2.8.tar.gz). Unpack (tar zxf filename).
  3. Download the omnitty tarball (filename: omnitty-0.3.0.tar.gz); unpack.
  4. Download my OS X patches tarball omnitty-0.3.0-rote-0.2.8-OSX-patches.tar.gz; unpack. Extra credit: check out the README and the patch files.
  5. Patch, build and install rote in one shot (sudo will prompt for your pw):
    cd rote-0.2.8 && patch < ../rote-0.2.8-OSX.patch && ./configure && make && sudo make install && cd ..
  6. Patch, build and install omnitty in one shot:
    cd omnitty-0.3.0 && patch < ../omnitty-0.3.0-OSX.patch && ./configure && make && sudo make install && cd ..
  7. Run omnitty!

You now have this invaluable tool available to use on your Mac! Enjoy it as much as I do.



Here's one I picked this up a while ago, for those that rock mysql at the command line all day like I do:

master/wp> UPDATE user SET ad_id='fb' WHERE user_id = 1337 LIMIT 1;

It's a good way to ensure that if you seriously fcuk the query up, you only update 1 record. For multiple records, there's another good practice to get used to: do a SELECT first, using the same exact WHERE criteria you plan to use in your UPDATE statement. This verifies the set you will be affecting when you do run the UPDATE is indeed what you want to update, and you can plug the row count you get from it into your UPDATE's LIMIT clause.


Best ChangeLog message EVER!

I was browsing available app updates in the Apple App Store for my iPhone 3G today, and I'm one of those that likes to read the changelog message before I install an update. The reasoning behind this is kinda funny: I mostly engage in this activity when in the bathroom, and I don't have WiFi only 3G available. Because 3G is slower, I tend to only install updates that do something more than generic bugfixes - I'm mostly interested in updates which include new features, improved navigation, etc.

Yelp is an iPhone app that's frequently updated, which is what you want to see from an app developer  -  timely updates that keep the app current and in sync with their web service.  As Yelp happens to be one of the apps I use almost daily when out and about, I checked to see what this latest update includes. I LOL'd when I saw this - good thing I was sitting down! :)

Yelp! 4.1.1 ChangeLog

"Superamazing bug fixes and, unfortunately, still no jet packs."

ROFLMAO! Unfortunately, this doesn't really relay what was fixed, but it was original enough to get me to update.  Happy to see that people to there still have a sense of humor!


Intel Moblin & Nokia Maemo merge: MeeGo

Intel's kickass Moblin project, which rocks netbooks with its slick user interface, and Nokia's Maemo mobile device platform are being merged into a new project called MeeGo, which will run on both x86 and ARM microprocessor architectures.  The official announcement talks about the reasoning behind this, and it makes sense to join forces as I think this will be one of the areas that will see a lot of much-needed innovation in the near future.  With the advent of internet-enabled TVs just around the corner, the market MeeGo will go after is poised to blow up!  We're not talking just netbooks and TVs, but in-vehicle "infotainment" systems, tablets, "media phones" are new classes of mobile-like devices that will soon become as indispensable as mobile phones.

While I have not played with Maebo, I really liked Moblin 2.1's interface on a 10" netbook.  One can clearly see the GUI is optimized for the limited real estate offered by this class of devices.  While at this point MeeGo is vaporware (much like HipHop for PHP, still MIA as of today), the first project release is scheduled for Q2 2010. I hope MeeGo has native VM support so it runs without workarounds like those required by Moblin.  Can't wait to play with it!


Facebook HipHop for PHP video

As previously reported, Facebook is getting ready to open source HipHop for PHP. Nothing at GitHub yet, but here's the video introducing the project at Facebook HQ in Palo Alto, CA:

Some of the tasty meat:

  • single-process multithreading model in their own HTTP server allows sharing of DB connections between threads
  • you can run directly in their own interpreter, HPHPi, for faster workflow
  • they made some PHP extensions thread-safe, code to be released with HipHop

As an audience member said, can't wait to start playing with it!