NSA code in Android OS

I thought the comic from the Joy of Tech was fairly cute and didn’t expect it to actually be true. After a bit of searching, it seems to be fairly well corroborated:

I found this quote from Business Week to be particularly interesting…

Through its open-source Android project, Google has agreed to incorporate code, first developed by the agency in 2011, into future versions of its mobile operating system, which according to market researcher IDC runs on three-quarters of the smartphones shipped globally in the first quarter. NSA officials say their code, known as Security Enhancements for Android, isolates apps to prevent hackers and marketers from gaining access to personal or corporate data stored on a device. Eventually all new phones, tablets, televisions, cars, and other devices that rely on Android will include NSA code, agency spokeswoman Vanee’ Vines said in an e-mailed statement.

Naturally, this made me wonder if the code does anything more than just make the devices more secure. I’d be curious to know if anyone in the Android community has actually examined the code to see if it has any hidden surprises. It also looks as though Apple doesn’t accept source code from government agencies… so there’s that.

I’m a big fan of open source for situations where it is appropriate — and many great technologies are developed this way. WordPress and its vast plugin community is a perfect example. The main core functionality is meticulously curated by a single organization; yet anyone can contribute to the project. Code contributions are considered, integrated, tested and then potentially approved into the platform (or not). This “Linux-like Benevolent Dictator” approach works well because there exists one ruling body to enforce and control a universally consistent distributable version of the software.

This approach breaks down if core code is modified because responsibility for upkeep of the code base transitions to the party modifying it. Updates cannot be deployed without merging or reapplying expensive changes. Developing for a branched version is no longer standard and when left unchecked, complicates the entire landscape for developers because of the potential for mind blowing fragmentation. While orthogonal updates are good (plugins/apps), taking ownership of a vast codebase is generally not so good; especially from a cost perspective where unanticipated support costs can easily outweigh the revenue and make it cost prohibitive to keep the branch up to date. In the case of WordPress, this happens when a developer doesn’t respect the boundaries with core code — these folks are pretty universally considered sloppy. With Android, these are the phone manufacturers that alter the core OS for their devices and subsequently fail to maintain the software. The OEMs have little choice but to take ownership of the support since tent-pole features like Email and Calendar are not even included as part of the core Android Framework.

An environment that requires each manufacturer assumes such a level of support for a framework they didn’t create leads to a fragmented, unmanageable ecosystem which punishes application developers and end users alike. In this muddied landscape, the NSA has just as much right and reason to contribute to the codebase as any other organization — and hey, at least they’re contributing, right? Just make sure you understand that when choosing your next mobile device.

iWatch Sensors

I was just hoping for pulse tracking, but something this powerful could possibly also detect medical issues like Cardiac Arrest or Strokes and save lives.  Not only would this make the iWatch a useful gadget for business folks that carry around iOS devices, but I’m imagining great benefits for the health here.  I’m very excited to see what comes out of the first new product line in the Post-Jobs Apple era.

Read the full scoop on MacRumors: http://www.macrumors.com/2013/07/18/apple-taps-new-hires-in-health-sensors-broad-array-of-internal-experts-for-iwatch-team/

Fetching Lyrics in iTunes

Back when people bought CDs they came with liners that typically had lyrics in the liner notes. because yes kids, we  didn’t always have iTunes, the Amazon MP3 Store or even a bay filled with anti-ninjas. Every song in your iTunes library has something called an ID3 tag — it’s where all the information about the song is stored such as track name, album name, artist name, etc. There’s also a spot in this tag for song lyrics. The iTunes store populates several fields in the ID3 tag when you purchase a song but it mysteriously leaves a big blank hole for lyrics.

Gimme Some Tune – The previous solution

In the past, there was an automatic and rather instant way to add these lyrics as each song played in iTunes with a program called Gimme Some Tune. It’s a great app for adding some cool functionality onto iTunes, but the lyrics fetching no longer works because the wonderful folks at the RIAA have decided they can’t allow a useful service like LyricWiki to exist if they don’t make money of it. You can read the Gimme Some Tune developer’s blog entry here from yesterday – July 3rd, 2010.  It sounds like an updated version is still quite a ways out.

iLyrics – Automatic method

The alternative I’ve come across is called iLyrics and runs as a widget on OSX. You can download and install it from http://www.creativecrap.com/ilyrics-widget-itunes under the “Downloads” section. The current version I am working with is 2.4.1

It also has the ability to run as a daemon and also update songs on the fly as they play in iTunes. Keep in mind that since this is a widget, you have to enable and disable it from always running in the widget settings (see next paragraph). Also, when it is running and successfully finds and updates lyrics, you’ll notice about a 2 second pause right after a song starts playing — iTunes needs to briefly stop the audio in order to update the ID3 tag. Just like tingling hair conditioner “That’s how you know it’s working.”

To change the settings (after it has been installed) bring up your dashboard to see your widgets (hit f4 or click the Dashboard icon).  In the lower right corner there is a grey dot  that’ll appear when you hover over it.  When you click the dot it’ll flip the widget over to show settings for the widget. Here you can tell it to auto-check for lyrics and auto-save if the song has no lyrics.  Click Done once you’ve set it up.

You might even want to give iLyrics a try with Needle Drop. You can let it run overnight with iTunes on mute.  Needle Drop allows you to play a short chunk from every song in your iTunes library — if you set it to about 5 or 10 seconds, it should provide enough time for iLyrics to query the internet for lyrics and then update the file before moving on to the next one.

iLyrics – Manual method

If you prefer to update songs manually and not leave the widget running all the time, I’ve outlined it below as a simple 3 step process.

Step 1:

Start playing a song with no lyrics. You can right click a song and choose Get Info to bring up the window shown below. Remember to Close the Get Info window once you see that it has no lyrics… The widget can’t update the lyrics if you have the ID3 settings open for edit.

Step 2:

Launch your Dashboard Widgets — to do this, hit F4 or click the Dashboard icon, or you can also set an active screen corner for it under System Preferences -> Exposé. You’ll notice the new widget knows what is playing in iTunes and shows the ID3 info it knows about.

Step 3:

On the very bottom of the widget you’ll see a drop down list with an option to Save to Song…  Click that and BOOM you’re done!  It’s like Magic!  Unfortunately lyrics won’t be available for every song you try.

An Added Bonus

When you play the song on your iPhone / iPod / iPad it can display the song lyrics.

iPhone 4: One week later (review)

So last week I woke up at the ridiculous time of 5:30 AM and made my way down to the Apple Store in Corte Madera.  I had managed to reserve one of the Shiny new iPhones via the wonderful Apple Store App along with hundreds of thousands of other folks across the country apparently. I even managed to discover that standing about 10 dudes behind me was Rick McCallum, producer of the Star Wars movies.  I snapped a few paparazzi shots of him too.  I guess he was probably picking up a phone for himself and maybe one for George.

I showed up around 6:20 and there were already well over a hundred people in line ahead of me.  By 8:15 or so I was inside and by 8:30 I was out the door with my new iPhone in hand. They can activate the phone in the store, and so you walk out with a fully charged mostly functioning phone in your hand.  The only reason I say mostly functioning is because until you get to iTunes somewhere, you don’t have any of your apps, music, or contacts.  Although, if you have a mobile me account, as soon as you set it up on the phone, it will transfer in all your contacts.

The main reason I decided to join the loonies and wait in line super early was to save time.  The new iPhone shoots HD video and I wanted to make sure that I had the new phone for my upcoming trip to Disneyland with my dad and step mom.  It’s been several years since they’ve been to the park, and I didn’t want to have to lug 2 cameras around with me the whole time to record the trip.  If I didn’t sacrifice a little sleep that morning, I would have probably wasted countless trips to the Apple store to check and see if they had them. Eventually I would have given up and just ordered one online. That’s exactly what happened with my iPad and I didn’t want to succumb to insanity. Also, I have to admit at least half the reason I was willing to get up and go wait in line was the same reason people line up to see a movie on opening night, or tailgate before a big sporting event like when I go to Raiders games with my friend Jon West.  It’s the camaraderie and the excitement of anticipation.

So, if you’re still reading and haven’t fallen asleep yet, here’s a quick overview of what I’ve come across after a week with the new shiny.

Analysis:

  • Retina Display
    • Yes, it really look frakking amazing. I showed someone picture of a car that I’d taken and they said “It’s like looking at the car through a window.”
    • Here is a side by side comparison of the displays between the 3G vs the v.4 iPhone. No really… I’ll wait.  Go ahead and zoom in and enhance, rotate 90º

      Click through for the full size image….
    • With the IPS technology they use for the display, you can look at the screen from any angle and it doesn’t lose brightness or detail.  And I don’t just mean side to side angles.  Literally, any angle that you can see the front of the phone, the blacks are very dark black and the colors stay true.  Everything just pops.  When I switch back to the iPad the IPS technology is there, so it looks great any any angle, but the pixel density is so much lower that it feels like it is a generation behind.  I don’t expect an iPad to come out with a retina display any time soon since the required resolution for a 9.7 inch screen at over 300 ppi would work out to more pixels than the 27″ iMac… and that’s asking a bit much of a mobile processor.
    • Reading text is like night and day between the 3G/3Gs and the v.4 iPhone.
  • 5 Megapixel Camera / 720P HD Video / Front facing camera
      • The front facing camera is going to come in handy so I look a lot less like a fool when trying to take a picture of myself in front of something interesting when I’m off exploring on my own.  Also it makes a handy mirror since the on screen display swaps east/west.
      • The flash on the back is good for blinding people because it is wicked bright!
      • I don’t generally give too much credit to megapixels since a crappy lens with higher megapixels will just get you a really high resolution shitty picture.
      • I haven’t taken enough pictures with it to really say how good or bad the pictures look, but I figured this pretty much sums up where it sits…  iPhone 4 probably won’t replace point and shoot cameras for snap shots but it does for video.  But I do think it makes sense to use the iPhone 4 as your secondary up camera if you also have a DSLR.

  • FaceTime
    • Right now this is little more than a neat gimmick until the Verizon iPhone comes out in January and my family jumps on the iPhone bandwagon, however, it’s eerily interesting that it just happens to be AT&T that really did “bring it to you.”  Remember these commercials narrated by Magnum P.I.?
    • I’m fairly sure this will be in the next version of iChat — come on Apple, seriously! Hopefully AIM, MSN, Yahoo!, Google chat, Facebook and/or Skype may jump on the band wagon and come up with a platform and service agnostic way of chatting.  Chat on the internet is broken — you can’t send a message from one protocol to another.  Can you imagine if email worked that way?  “Wait, hang on, let me log into my Yahoo! mail account so I can send you this email because it won’t go through if I send it from Gmail.” I guess nature’s “solution” to this problem was creating applications that let you simultaneously be online multiple accounts at the same time and condense your buddies’ multiple accounts into one contact, e.g.  Adium for OSX, Pidgin for Windows or BeeJive for iPhone and BeeJive for iPad.
  • New Solid Aluminium enclosure
    • I haven’t had any of those “you’re holding it wrong” issues that I’ve seen other folks report. And I’ve done all but lick around the edges and hold my hands completely around every surface of the phone.
    • It really feels very solid and almost weaponized — as though you could lob it squarely at an attacker’s temple and knock the dude to the ground.
    • The buttons and mute switch feel a lot more sturdy… I know a lot of folks had their mute switch fall off on the 3G/3Gs models so I’m glad they corrected that.
    • Now that the front and back are both slick flat glass, I tend to pull it out of my pocket and try to click a non-existant home button on the wrong side.  I’m sure I’ll eventually learn to go by the volume controls instead of trying to feel for a curved backside.
    • The home button itself seems to click differently… It’s almost identical to the original iPhone — it has a lot more give to it when you push it in.  The 3G/3Gs barely moved at all.
  • Speed, Performance, etc
    • Yea, it seems faster, but maybe that’s because when I installed iOS 4 on my 3Gs everything went slow as dog poo on a cold day.  I can’t imagine what the iOS 4 runs like on the standard 3G.
    • It seems like the new dual mics for noise canceling (the extra hole in the top next to the headphone jack) must make a difference. I’ve mostly done my calls so far on Speakerphone, and I’ve gotten a lot less “WHAT’S?” back from the folks I’ve talked to. I suppose this was a requirement for them to get FaceTime to be worth a damn.
    • Battery life seems drastically better than my 3Gs.  Apple has put all its research to good use from what it learned with the MacBook Air.  I think they’re quite a ways ahead of anyone else in terms of battery technology.  They shrunk the size of the components in this new phone, increased the size of the battery, and replaced the processor with their own Apple A4 chip.  Apple was smart to pick up Intrinsity in order to acquire all their  low power / high speed chip technology.
  • Where did my HOLD button Go?

Making your own iPhone Ringtones in iTunes for free

Ever wondered about making your own ringtones in iTunes, but didn’t want to re-buy a song you already own just to convert it to a ringtone?

Personally, I’m a huge fan of iTunes.  It was literally the first Apple product I ever used and liked.  The first time I used it was when I was working for the geeksquad and a client wanted to burn MIDI files to a CD.  I discovered that iTunes could do it, so we downloaded it, played around with it, and I was hooked.  Eventually I got an iPod and that was enough momentum to bring me over to the light side.

So, here’s what to do to take an MP3 and convert it into an iPhone ringtone with iTunes.  (You can also create free ringtones with other programs that ship with OSX, like Garage band, but since that doesn’t exist on Windows, I’m going to stick with iTunes.) Here’s what the properties looks like for a finished ringtone (note that file sizes and quality will be different for different versions of iTunes, since now iTunes handles quaility automatically for Apple Lossless Files.)

Step 1. If you don’t already have a playlist to use for chopping up mp3’s create a new playlist. I call mine “Chop” and that’s about the only thing I use it for. From the file menu, select New Playlist.

A playlist named ‘untitled playlist’ will be added to your collection, and automatically will be selected for rename so you can just begin typing and then give it a name.  This playlist will be where to dump songs that you want to convert into a ringtone.

Step 2. Drag and drop the song file you want to convert from your music collection into your new playlist.  Then click on the Playlist to see only the songs in the playlist.

Step 3. Make sure you are looking at your chop playlist.  You’ll need to listen to the song a couple times to narrow down the 30 second chunk that you want.  Once you figure out where in the song you want the ringtone to start, take note of the minutes and seconds into the song you you are.  Once you know how far into your song the good part begins, we need to tell iTunes that’s where it should start playing this song.  Let’s call this your ‘start time.’ So, we need to change the properties for this file.  Right click on your song and select “Get Info”

Step 4. This should only change how the song plays when played inside of this playlist.  Inside the properties window, go to the Options tab. On this tab you’ll see Start and Stop times.  Check the boxes next to both and put the minutes and seconds of the ‘start time’ we got in step 3.  Then, add 30 seconds to your start time, and that’ll give you your stop time.  Click OK and now that you’re back looking at your playlist in iTunes double click the song to play it again.  Chances are your guess wasn’t exact and you’ll need to add or subtract tenths or hundredths of a second from your estimated start time.

…after testing different starting times, I’ve ended up with 1:52.85 as the perfect start time for this song. This will only change how the song plays when played inside of this playlist.

Step 5. You’ve just done the hardest part and now you’re almost there.  You need to tell iTunes to convert this song to the ringtone format.  Go into Preferences for iTunes.  On OSX this is under the iTunes menu item, in Windows I think it is inside the File menu.  Make sure you are in the “General” Tab (it’s the first tab on the left) and click the “Import Settings…” button.

…and choose the Apple Lossless Encoder.  This will encode songs as .m4a files which are identical to .m4r files in every way that matters.  Then hit OK.

Step 6. Right click on your file again, but this time choose “Create Apple Lossless Version.”

It should take about a second and then it will make the typical happy sound it makes after it finishes ripping a CD.  Now go back to your full music collection and find the 30 secondversion of your file.  It will be right below the full length one.  Note it won’t show up in the chop playlist because you haven’t added this version of the song to your playlist yet.  Once you find it, right click on it and in OSX select “Show in Finder”  (I think in windows it should say “Show in Explorer.”)  Now that you’re staring at the file on your filesystem rather than the song in iTunes, go ahead and rename the extension to m4r (be sure you are doing it to the version you just created not the full version of the song.)  It will probably warn you about changing the extension and tell it to go ahead and change the extension.  Keep the finder/explorer window open so you can return to the .m4r file in a second but switch back to iTunes and delete the 30 second version of the song.  When it asks if you want to delete the file too, or just remove it from iTunes, tell it to just remove it from iTunes. You don’t want to trash the file you just made. Now, return to your .m4r fle in finder/explorer and double click it.  It should immediately begin playing and be added to your Ringtones section in iTunes.

It should also now show up in your list of Ringtones to Sync once your iPhone is connected.

Sync your iPhone with iTunes and it should now be available as a ringtone! Don’t forget to go back to the original file and uncheck the start and end times.