JailbreakMe.com is a website that offers visitors the ability to jailbreak their iPhone without a computer-based tether. It does this by exploiting the system-wide ability for applications to read PDF files, where an incorrectly-formatted PDF file can lead a hacker to do anything they want to your system. While this bug CAN be used maliciously to steal all the personal data from your phone, the developers in this instance used it to enable jailbreaking.
Others will tell you why you should or should not jailbreak your iPhone. Others will decry the developers for bringing to light a serious vulnerability in the iPhone OS. In this blog post, I won't do any of that, but will instead point out some things you should and shouldn't do if you decide to jailbreak.
Backup first, and backup the backup
It should go without saying that, before you start mucking around with the internals of the software on your phone, you should back everything up with iTunes. Sync down all the data into iTunes, and explicitly backup by right-clicking the iPhone in the sidebar and choosing "Back Up". Once that is done, you should backup the actual backup files to somewhere safe. This way, if you ever want to go back to a vanilla iPhone, it's fairly straightforward. The files are located in ~/Library/Application Support/MobileSync/Backup.
Understand what you're doing
Jailbreaking lets you run apps on your iPhone that, for a variety of political and technical reasons, you could not run otherwise. Apple has gone to great lengths to prevent you from running unauthorized apps on your iPhone, and for several reasons; the most important is for security. Since jailbreaking is designed to let you run those apps, that means that in order for the jailbreak to work, several of those security measures are simply shut off and disabled. This does not mean that you'll automatically get viruses and have your data stolen, but it does open up more avenues for hackers to gain access to your data. You simply must be more vigilant and attentive about security when your phone is jailbroken.
Only add sources that you trust completely
When you jailbreak, you will notice a new app on your home screen, called "Cydia". You can think of this as the jailbroken App Store for your iPhone. You will be able to use this to install lots of apps; you can also install mods that change app icons and fonts, mods that change how apps behave, and mods that add new features system-wide. One way this differs from Apple's built-in App Store is that third parties can publish their own list of apps and mods at their own whim, and users can add those lists to Cydia. You can find lists of third-party sources available by doing some creative Googling.
Now, since you can add any third-party list you want, and those lists can contain mods which can access all of the data on your iPhone, you need to be extremely mindful of which sources you add. Seemingly innocuous apps, such as simple wallpaper lists, can contain code which subtly and sneakily siphons away your contacts, or worse. Since you don't have Apple vetting apps before they hit your phone, you won't be able to trust that an app isn't malicious if it's from an unknown source.
Only install what you need
Many of the apps and mods you can download through Cydia will not be things that you can technically do on the iPhone using Apple's published APIs. An example of this is the project which allows you to install a Growl-like UI for push notifications; it simply is not possible to do through the App Store. This means that you will have mods injecting code into the memory of other apps (sometimes into EVERY app). The more mods like this you have, the more they will start to clash with each other. This can lead to crashes, drained batteries, hangs, and system slowdown. You should consciously try to minimize the number of mods that you install, to preserve the experience of your iPhone.
Be mindful of OpenSSH
Packages in Cydia often times will require use of other libraries to achieve their goals. These needs are called dependencies in Cydia, and they will be listed when you try and install packages. There are packages which will blindly install a package called OpenSSH, which installs a server on your iPhone that allows you to log in via a Terminal. Now, this package uses a file on the iPhone to determine what the default password is, which happens to be 'alpine'. As you can imagine, many people don't change that password by default, and instead just let the default stick and never change it; this led to disaster last year when someone used the default password to extort lazy iPhone jailbreakers.
If you install this package, the absolute first thing you should do is change the root password.
Be wary of iOS software updates
In all likelihood, your iOS software updates will be far more involved than non-jailbreaking. The hacks used to enable jailbreaking are usually patched in the next update of the OS. This means that, if you want to keep your jailbreak mods, you will need to wait for the iPhone dev community to release an updated jailbreak procedure. Sometimes this takes hours, sometimes this takes weeks. Once the jailbreak is released, updating generally consists of backing up everything, restoring your iPhone to the new OS, re-jailbreaking, and reinstalling all of your jailbreak software. It is a far more involved process, on top of the already involved update process of the iOS. You will likely update the OS far less than you would if you were non-jailbroken.
For those that don't know, I've been employed at Ambrosia Software for almost 2 and a half years. In that time, I've helped our team ship some great products, worked to massively improve the user experience on our web site, and expand our presence in and use of social media. It was a great ride that made me a better software engineer by an order of magnitude, and I am forever grateful for the opportunity.
As of this morning, I have accepted a software engineer position at ngmoco:). As part of this, I will be ramping down my current work at Ambrosia, prepping for a move to the San Francisco Bay Area over the next month. I will begin at ngmoco:) in July.
I am extremely excited for this opportunity to contribute to the world of social gaming, and look forward to what the next few years will look like. I wish my colleagues at Ambrosia Software the best of luck in the future.
This is hilariously effective. It scrapes a few online lyrics databases and does some analysis to determine the quality of a rhyme. Be sure to check the bottom of the whitepaper for some sample output. Direct PDF link.
iPhone had the first two store UIs; the iTunes Store for content like music and movies, and the App Store for software. The iPad will add a third, the iBookstore, for buying eBooks. These stores all provide content for users to extend the utility of their device. But each has a pretty different user interaction model for accessing, purchasing, and consuming that content.
- The iTunes Store is a separate app that is completely distinct from the iPod app. When you find something to buy, prompting you for your iTunes account password. It then adds the purchase to the app's Downloads tab. Once you have purchased the content, you must then switch back to the iPod app to listen to or watch it.
- The App Store is a separate app. When you purchase something, it prompts you for your iTunes password, and then exits to the home screen, switching to the screen where the app will live. The state of the download is reflected in the app icon. When the download is complete, you tap the icon on the home screen to use it.
- The iBookstore (the one word is the official name as used by Apple) is not a separate app, but lives within the iBooks app on the iPad. Purchasing content prompts for the iTunes password and downloads in-app, which can be directly accessed after it has finished downloading.
Each type of content follows a different workflow when going from access to purchase to use. If a goal of the iPad's low price is to drive content sales through the three stores, as some speculate is the case, then the purchase model should be as streamlined for the different types of content. Forcing different workflows will only confuse users who can't remember which type of content comes from where.
We've all got our thoughts on what the Jesus Tablet will be, so here are my guesses. I fully expect to be completely wrong on all of this, as many of these answers are completely blind shots and that Apple will blow my expectations out of the water.
Hardware
- 8"-10" touch screen, running at 1280x720
- Very thin; less than 1/2" thick (the iPhone 3GS is 0.48" thick)
- About 1lb heavy, light enough to hold in one hand
- 8 hours of battery life
- 32 or 64 GB SSD
- WiFi
- 3G over GSM, and Apple's US 3G partner will continue to be AT&T
- There will be some way to pair your Tablet cell connection with your iPhone's cell connection; either with an official announcement of AT&T tethering, or by adding your Tablet to the 3G account
- Front-mounted camera
- Some kind of collapsible stand in the frame, so the device can sit on a table
Input/Output
- Multi-touch on the display, exactly like the iPhone
- Multi-touch on the back of the device, similar to the surface of the Magic Mouse
- Photos and video via front-mounted camera
- Audio via front-mounted microphone and speakers, wired headphones, or Bluetooth
- Dock connector
- Expanded voice recognition
- Software keyboard, no Bluetooth keyboards available
Software
- It will run the iPhone OS 4.0; or rather, the iPhone OS will become a "Mobile OS X", consisting of the heavyweight Tablet and the smaller iPhone.
- It will allow multiple apps to run at the same time, with some UI for viewing multiple apps alongside each other. This may not be possible on the iPhone.
- It meant to replace a full PC for most common day-to-day needs
- iPhone applications will not run "automatically", but will need to be resubmitted through the App Store approval process. Most applications will run without much modifications. Icons will need to be higher resolution.
- A system-wide Dock for documents, applications, and small widgets will be onscreen at all times
- The home screen will be significantly revamped, and renamed to the Dashboard. App icons, web clippings, and widgets will be freely arrangeable.
- Handwriting recognition will be available for text input, with an optional stylus, or with a gesture such as two closed fingers drawing as if you had a pen.
- Some gestures will be used on the back of the device, such as scrolling and zooming.
Apps
- Standard kind of iPod and Internet communications apps the iPhone OS comes with. iTunes video, iTunes LP content, Maps, and Safari web content will look phenomenal.
- Sketchbook, an unlimited workspace to sketch and write notes, with collaboration features.
- iWork, a full port of the iWork application suite, tied to the Internet (and expansion of the iWork.com web application), with collaboration features.
- iChat, a port of the Mac app, with a heavy emphasis on video conferencing
SDK
- The SDK will be available immediately, with a simulator.
- There will be an emphasis on application interoperability.
- Applications will be able to register plugins with view controllers and UTIs. When an application wants to expose an object (say, an image) to other apps, it will look for app plugins which respond to the "public.image" UTI, load one which matches the UTI, and present the view without leaving the application.
- Applications will be able to expose services, similar to how they work on Mac OS X. Services will be integrated into the voice control system.
Product
- 32 GB model will be available for $899
- 64 GB model will be available for $999
- Available in US in March, major countries by summer
- There will not be a WiFi-only model at launch.
Other Predictions
- Updated MacBook Pros and MacBook Airs, with the mobile Core i5 "Arrandale" processors from Intel.
- There will be no mention of Verizon
- There will be no updates to the iPod or the Apple TV
- There will be no announcements of the iPhone 4G
I finally got around to fixing my Chyrp installation, so I can resume my bloggingness. I still quite enjoy Chyrp, so I've upgraded it to 2.0 final and am back to using it again. I've made some changes that will hopefully improve the experience.
First, I've removed the ability for people to post comments. Very little good comes of enabling comments; rather, they attract spam and drive-by comments which are unproductive. Most people who do respond will do so via Twitter.
Second, the auto-posting to Twitter is still going to happen. However, many people were understandably annoyed when I would post a link to the blog, and the auto-tweet would post a link to the blog, needing to click another link to get to the actual content. I toyed with the idea of framing the link content, but popular opinion says that it's a greedy and inappropriate thing to do. Instead, I made the following improvements to ensure that links cross-posted will be a little less awful:
- text posts and project announcements will link to the blog,
- link posts will have a direct link posted,
- photo posts will be direct-linked where possible, but will link to the blog if there's no direct link
- video posts will link to the blog, because YouTube is full of idiots
Third, I've created this site design after a couple months of working on it, named Cream. It's meant to be extremely minimalist and to emphasize the page content. It's nearly complete, and will be open-sourced when it's done.
I could not be more pleased about this news. iTunes 8.1, which was released about an hour ago, renamed "Party Shuffle" to iTunes DJ. I've used Party Shuffle for a long time as a queue of music to play for day-to-day work, and have been frustrated with Apple's Remote iPhone app and its lack of support for Party Shuffle. But their 1.2 App Store update, also released earlier today, has full support for it.
iTunes DJ divides iPhone users into two groups - guests and, for lack of a better term, the admin. The admin's iPhone is paired to iTunes as before, and they get the iTunes DJ playlist added. You can skip through songs, cast a vote (addressed below), and request songs. While iTunes DJ is playing, selecting a song anywhere else throughout the app brings up a menu asking if you want to add to iTunes DJ or play on its own.
Guests don't have to pair their iPhones to iTunes. They get to see a modified Now Playing screen, devoid of playback control. They can, however, request songs for iTunes DJ, and cast votes for songs. When they request a song, it automatically casts a vote for it.
Votes are pretty simple on the facet, but appear quite useful. Songs in the queue can be voted on by anybody. As they get voted on, they are automatically resorted in the queue by number of votes. However, you might get some guy at the party vote-clogging all night; fortunately, votes can be shut off by the admin.
All in all, this is the Big Deal feature in iTunes 8.1, and seems very well thought out.
I was really hoping this would happen. President Obama has, since the election, been working with Senator McCain on cabinet nominations. McCain has said that he would have made many of the same appointments.
There's been quite a bit of misunderstanding about what Palm's new WebOS is, versus what it isn't. So I'd like to dispel some of the questions surrounding it from the information I've been able to find on it. There isn't much I was able to find (not surprising, as the thing was just announced today), but we can draw some conclusions from the information.
From Web Apps to Widgets
Many people will respond with derision at the fact that applications in WebOS are built with HTML, CSS, and JavaScript; given the state of most web applications today, this isn't hard to understand. However, the biggest reason web apps are crap compared to their desktop equivalent is that web apps have no integration with the host OS. Which means that web apps have a tough time dealing with multiple OS windows, the clipboard, and offline access.
When Apple released Tiger, they shipped with it the popular Dashboard interface. Inside were miniature applications which were also written with HTML, CSS, and JavaScript. There was a slight difference, however; Apple included the means to integrate the Dashboard with JavaScript. One example is how a Dashboard widget will display its settings via a smooth, GPU-accelerated 3D animation where the 2D widget flips over. This is possible because Apple included JavaScript hooks to perform this animation. But the core tools were just the same - HTML, CSS, and JavaScript.
The Mojo Framework
WebOS applications are much more sophisticated than Dashboard widgets, and certainly more so than regular web applications. This is because WebOS includes a set of tools for creating apps, called the Palm Mojo Application Framework. This, at its highest level, is conceptually similar to Cocoa Touch on the iPhone; it provides common functionality to all applications. It's what will provide all the common code on the device, from data manipulation of stuff like your calendars to the whizzy animation effects you'll see throughout the interface. It's the reason that, in most iPhone apps, the scrolling behavior feels exactly the same.
So, from what I can tell, the Mojo framework is an implementation of all of these ideas, using JavaScript as the programming language, and using HTML5 and CSS for drawing to the screen. Despite there being very little information, they do mention the following features on the developer website:
- apps are installed and run on the device,
- apps are designed to be multitasked and run in the background,
- apps have full access to gestures and the touch screen,
- apps can use a Growl-esque system to display user notifications,
- apps will have access to sqlite databases for data storage (part of HTML5), and
- apps can exchange data via a common messaging mechanism.
The Performance Argument
"But won't it come down to speed?" Yes, it will. However, WebOS is based on WebKit, and likely is using the latest enhancements from the SquirrelFish project. There is a battle royale going on right now between the developers of WebKit, Firefox, Chrome, and Opera for fastest JavaScript interpreter, which means that JavaScript is only going to get faster and faster.
Why go with JavaScript? It provides a low barrier to entry; nobody really needs an SDK to write apps. It makes it very easy to sandbox apps, as the underlying operating system is still invariably written in some form of C, and JavaScript provides no way to break that barrier. And many other reasons, which I talked about last year before the iPhone SDK came out.
tl;dr: JavaScript is just a language. Palm used that to build a system for making applications. They're nothing like web apps.