My latest coding project involves Mame, specifically iMame4All. iMame4all is an emulator for iOS devices that lets you run ROMs from old arcade machines. Emulators like this are pretty common place. I’ve been running several on my Mac and iPad for a while including the Commodore 64. What has reinvigorated my interest is my latest geek acquisition, the iCade.
The iCade is a mini arcade cabinet that allows you to slide your iPad in and utilize the built in joystick and buttons like a classic arcade machine. It even includes a nice light up quarter slot! The iCade works by emulating a bluetooth keyboard. Joystick movements and button presses are translated into keyboard commands. Specifically, it sends commands when you start pressing something and another when you stop pressing something.
The iCade already has the support of several apps in the App Store including Atari’s Greatest Hits, Mos Speed Run and Super Mega Worm. This is great, but the fact that iMame support was recently added to iMame4all really opens up the floodgates. iMame4all supports thousands of ROMS including Pac-Man, Donkey Kong, Mario Bros, Metal Slug, etc…
The “catch” is that iMame4all requires a jailbroken iPad to run. I do keep my iPhone jailbroken but prefer to keep my iPad clean, so this was a bother especially since I was running iOS 5 BETA to test some of my app store apps.
The reason why the app was never put in the app store is that it violates a few policies. It allows execution of remote code, and more specifically it uses external libraries. The app store sandbox requires static linking. In addition, the external library referenced (btstack) uses some undocumented API’s which is a big no-no for app store apps. The good news is that I think btstack is really only necessary for those who want to use a Wiimote with it, which I do not care about in my case.
My goal has been to get the source code into an actual Xcode project and functioning in a way that would allow it to be executed and installed by anyone with an Apple developer account. While we could never get it into the app store, we would have some other possible distribution methods for people who want to use the app without jail breaking.
iMame4all is an open-source project started by Seluco based on an existing MAME project. I had just started to get things wrapped up when I noticed that another developer contributing to the project (sandro z) had already gotten an initial version working. It allows loading the ROMs through iTunes like any other document. There isn’t a branch yet for this, so here is a link on my dropbox to the latest version. As long as you have a Mac, Xcode and a developer account you should be able to build the project. Enjoy!
http://dl.dropbox.com/u/546153/iMame4all-2.7z
Update:
I highly recommend you check out Les Bird’s code at
http://www.lesbird.com/iMame4All/iMame4All_Xcode.html
His xcode iMame4all project incorporates all the changes from the latest version (1.8.1) whereas the one in my dropbox is an older one. Great job Les!

One of the most exciting days for Apple developers is WWDC, Apple’s worldwide developers conference. It is typically held in June and offers a first look at what Apple is preparing to update software-wise across a number of their products. They also, on occasion, release a new iPhone.
This conference is really targeted towards developers, not the general public who use their products. The news released, however, is incredibly relevant to everyone. I thought I would try to consolidate their announcements today into an easily-consumed post. Something that the non-technical could easily understand.
The announcements today really apply to three groups of people:
1. People who use iTunes on any platform
2. People who use a Mac
3. People who use an iOS Device (iPhone, iPad, iPod)
You may fall into one or more of these groups. So, let’s start:
iTunes Users
If you use iTunes on a PC, Mac, or iOS device, this pertains to you.
Anything you buy in iTunes (or have bought) can be redownloaded. No more worrying about backing up the music you have purchased. This is all free and is part of iCloud.
Your music can be instantly pushed or downloaded to all your devices.
If you have music you bought somewhere else, or ripped from a CD, you can purchase something called iTunes match for $25 a year. This lets you have a high quality copy of ALL your songs no matter where you purchased them available in the cloud and pushed across all your devices. What’s neat about this is that you don’t have to actually upload the music files. iTunes scans your songs and detects what they are, then simply makes them available in iTunes. No upload required unless it is a song that does not exist in the iTunes library. There are over 18 million of them.
All your apps, books, music is all stored in the cloud and re-downloadable.
Mac Users
Apple is releasing a new version of its operating system called Lion in July. Don’t panic! The truth is that it will look and operate like it does now, so you can continue to use your Mac and probably not see any major differences if you like the way things operate now. That being said, Apple has incorporated some really neat stuff into Lion if you want to use it. A lot of what you will see in this new operating system is based on them taking the best ideas from the iPad and incorporating it into the Mac. There are nifty gesture based features that will let you quickly see all your apps, your windows, and even incorporate full-screen into apps. If you use the latest iPhoto in full-screen you will get an idea what I am talking about. It eliminates the clutter of multiple windows and lets you really focus on what you are doing.
Apple also added some enhancements including automatic snapshots and versioning. This means you could have a document or app open and then next time you open it, it will remember exactly what you were doing. It will also automatically create backups of documents you are working on and let you go back in time to revert to any version of it. Think of it like Apple’s Time Machine for documents.
Of course, iCloud integration is also in Lion. All your documents, music, books, backed up for free.
iOS Users
A new version of the iOS operating system is coming called iOS5. It will run on the iPhone, iPad, iPad 2, and recent iPod touch. Not sure which versions of the iPhone can upgrade yet…definitely the 4.
1. Notifications
The way you are notified of an incoming text or message has always been a sore spot for iOS users. If you get more than one message it can be cumbersome to see what came in. The lock screen (where you swipe to unlock) will now include a very simple notifications center. Just swipe down from the top of the screen and they appear. Swipe on one of the notifications and it brings you right to whatever app it came from. It also has some weather/stock data available right from the lock screen if you want it.
2. Newstand
This is basically iBooks for Magazines and newspapers. Get all your latest magazine/newspaper subscriptions automatically downloaded to your device in the background.
3. Twitter Integration
Not much to say here, but if you use twitter you will like this. Better integration with iOS allowing you to instantly tweet things like pictures.
4. Camera Tweaks
You don’t have to get in the camera app to take a picture anymore! You can take it right from your lock screen by just pressing volume up! It will also have built in crop, rotating and red-eye reduction features.
5. Reminders
Apple introduces a new reminders app to keep track of those little things you need to do. It can even be location based like reminding you to call someone when you leave work.
6. Mail
Better support for people who use their iPhone at work. It works really well already, but this update adds things like certificate support that are important for people who work with sensitive data.
7. Game Center
You can now use your own picture as your profile pic. It also adds built in support for turn-based games like Words with Friends, so expect to see a lot more turn-based games that work really well.
8. No PC!!
You no longer need a Mac or PC to get your iDevice up and running or update it!!! It can all be done wirelessly. No more plugging in your iPhone to update it. No more plugging in to sync with iTunes!
9. Messaging
This is kind of like an SMS/Text message replacement by Apple that works across all of your iOS devices. Doesn’t cost anything extra and allows you to talk to other iOS users. You can get a message on your iPhone and then pick up where you left off on your iPad. If you have used Blackberry’s BBM, this is Apple’s answer to it. Blackberry users will love it for sure.
10. Mirroring over AirPlay
If you have an Apple TV, you know you could instantly start streaming a video or audio from your iOS device to your Apple TV or speakers. Now they have added a feature to let you mirror your display to the TV over Airplay. This is huge for gamers.
11. The Cloud
This impacts more than just iOS devices, but to put it simply, everything you save on your iDevice will automatically be backed up into Apple’s cloud. Photos, documents, contacts, email, calendar, bookmarks, settings, music, apps, books, everything. It will be backed up everyday and it is FREE!!!! It will also allow you to access the stuff you saved from one device on another iDevice automatically. You get a total of 5GB, but music, books and photo streams do not count towards the limit. That’s plenty of space for most people.
Well, it has been a long time coming. IT departments across the nation are having to deal with empowered users who have taken up arms (or should I say iPhones) and demanded the ability to use what they want to do their job. So, as an IT manager you might think I would be one of the police teams with shields who beat back these independent thinkers.
You would be dead wrong.
The sad truth is that a lot of people in the IT arena have forgotten what our purpose is. We are there to help the business meet its goals and act as facilitators, not dictators. Devices like the iPhone and iPad have made their way into users hands because they are easy-to-use and provide a lot of incredible apps and features to augment their life. It only makes sense they would want to bring these into their work life as well. By purchasing their own devices they have saved their company a lot of money and aggravation, not to mention being productive outside their normal business hours. With apps to allow remote meetings, VOIP, Sharepoint access, analytics, etc they are actually bringing an enormous wealth of tools and information on the go that cannot be discounted.
For those in the “biz” for a while, this scenario played out when mainframes ruled the landscape. The PC was seen as a threat. We know how that turned out.
The typical stance of those blocking progress is fear of security breaches, and compliance issues with things like SOX and HIPPA. These do not hold water anymore though, as there are plenty of ways to provide the access people want without compromising your security. The ability to remotely wipe a phone, put policies in place to require a passcode, and even locate a missing phone all exist in the iOS ecosphere. Android also offers many of these features, with the exception of on-device encryption. Even there, there are some companies providing third-party solutions, albeit somewhat clunky.
I’ll give you a great example. VPN access to corporate resources is standard fare nowadays. We need to be able to work remotely and access information away from the office. We do this from our home computers now, in some cases forcing a remote desktop or Citrix session. You can do all this on your iPad or iPhone. In the case of F5, a great client is a download away in the app store. What is the difference using a VPN solution from your iPad versus a laptop? None, but there are still some people who are fearful for no reason. What’s worse is when the objections are based on a bias or a predisposition to a particular platform.
The truth of the matter is that IT departments who do not embrace change or going to end up holding their organizations back and condemn them to mediocrity. It’s about time we start acting like we live in 2011, not 1999.
I made a small change to the storybook to allow photos to be taken on the iPad 2. It has been submitted to Apple so it should be up in the next couple of weeks.
As always, if you have suggestions or things you would like to see in the storybook, I’m always listening.
BTW, I do have the iPad 2 and it is incredible. If you haven’t taken the plunge on a tablet yet, this is the one to go for.
Like a lot of technical mobile users and developers, I have my own opinions on the best mobile devices out there. I have a lot of respect for Google, but I’m not a huge fan of Android as both a consumer and a developer. Here is why.
Fit and Finish: Anyone who compares the apps in the app store versus Android’s marketplace easily comes to the same conclusion…the fit and finish of the Android apps just doesn’t meet the same levels of their iOS counterparts. A lot of this has to do with the platform itself. This includes the control set that is offered to developers, and what the OS supports. The lack of GPU support makes Android always seem a bit laggy. Is it horrible? No, depending on which phone you have. It’s little details like this though that make the iOS experience much more polished. This will be even worse for tablets under Android because while Honeycomb might support tablet resolutions, their isn’t a marketplace ecosystem for tablet apps. If apps are what you look forward to in a tablet, prepare to be disappointed.
App Selection: Android is missing a lot of great apps like Netflix. Really great apps that do something innovative never get released on Android first, if ever! This is readily apparent in any forum that covers mobile apps like Gizmodo. The number of posts begging for a developer to bring the app to Android can be seen everywhere. There are actually a few reasons for this. Hardware fragmentation is an issue no matter who says differently. It can be tricky to try and support so many different devices in so many configurations. The OS fragmentation is not in itself a real issue, but it is compounded when you factor in the hardware.
Statistically, people do not buy software on Android like they do on iOS. That does not provide a lot of incentive for a developer to release something on Android first. Developers seem to gravitate towards a freemium model on Android depending on add revenue. This is what Rovio did with Angry birds a year after it was already released for iOS.
Inconsistent: Manufacturers of Android devices can put whatever kind of UI they want on the device making it inconsistent from one to the next. On one hand, this might seem like a good thing but not from a user perspective frankly. Having a consistent UI and hardware make things easier for people migrating between devices as well as developers.
Open , but not really: A common argument from Android proponents is that the OS is open. It is open in the sense that the source is readily available and can be recompiled, added to, etc. It is open for the device manufacturers, but that doesn’t mean you can do whatever you want. The problem with firmware updates not making it to these devices in a timely manner is a serious one. Some Android phones have not seen the latest firmware updates on over a year and a half. You cannot simply upgrade the firmware yourself without rooting the phone (i.e Jailbreak) so it’s not really open. Also, sideloading apps is up to the discretion of the carrier. AT&T for example does not allow this. Sideloading is being able to install an app on your phone even if it not available in the marketplace. A recent app called Kongregate for Android was removed from the marketplace by Google because they said “it was a competing marketplace”. Many users can still install this app by downloading it manually from their site, but not all.
Not Enterprise Ready: Android has the second worst enterprise support of all the mobile operating systems right now. They simply are not giving it enough attention. In order of best support, it is Blackberry, iOS, Android, Windows Phone 7.
Development: The development environment for Android is “ugly” for lack of a better word. For people whose primary language is Java and work with Eclipse, this is probably less of an issue. The tools simply do not have the integrated polish that Apple’s (or Microsoft’s WIndows Phone 7) do.
Ultimately, Android as an OS is not horrible and gets better with each iteration. That being said though, it is clear that they are always playing catch up with Apple as it seems like they are in a rush to add new things but not a lot of time is spent figuring out the best way to do it. You end up with a mobile OS that can be very confusing to average users looking for a simple, well-integrated interface. The lack of refinement in their operating system UI is why Android manufacturers try to play up things that differentiate them from Apple. In my opinion, things like Flash support or a USB connector mean nothing when the OS itself and the apps itself are lackluster.
As far as hardware goes, it is not as cut and dry. 90% of the android devices out there are awful. Even the biggest android fanboys will admit that. Be VERY careful picking one out if you have decided to go this route. HTC make the best Android phones in my opinion so start there first.
I’ve been working on a universal app for Lillian Vernon and it has finally been released to the App Store. The storybook is completely free, and allows the user to personalize the title page with a child’s photo and name. You can also record your voice reading each page of the book. It’s great for relatives who are visiting and want to record something the child can keep after they leave, or parents who are going on a trip or deployment.
Most of the coding for this project I did on my own time. It was a lot of fun and I think it will help bring in a lot of new potential customers to Lillian Vernon. They have a lot of cool things planned for next year, so the app is well timed. It also allowed me to get familiar with Universal apps that run on all of the devices. The app looks especially great on the iPad.
Since the engine is reusable, expect more books in the future!
Current Postcards 1.2 has been submitted to the App Store. It should show up soon. It includes the following changes:
- Supports foreign character sets. This includes Emoji characters.
- IOS 4 support. This allows you to save your state when switching to other apps or taking a phone call.
- Faster upload processing. We use a faster upgraded server.
- Better handing of multiple lines of text. It will help prevent text going off the edge of the card on the bottom.
Sorry for the delay in getting this out.
How do you roll out enterprise applications and configuration settings across iPhones and iPads in your enterprise? Apple has a whole site on it, including some documentation and a configuration utility. You can find them here.
In a nutshell, Apple offers a program for both Windows and the Mac called the iPhone configuration utility. This utility allows you to create a configuration profile that contains everything you need to setup for users across your organization. That includes exchange, VPN, applications, rights, restictions, LDAP, SCEP, etc.
Getting the configuration file to a person can be done via email or sms, but you can also setup a website and have it pushed to them initially that way. Just send them a link to the website and off they go. As far as updating them and distributing applications, this is done through a web service and is called enrollment. The document Apple provides includes some source code for this.
If you are an iPhone/iPad or Mac developer, good things are coming soon with XCode 4. For those not familiar, Xcode is the development IDE when developing anything for the Mac or iPhone natively. It is the equivalent of Visual Studio in the Microsoft world. I have been pretty happy with Xcode, but the upcoming changes are really going to make it better. You can find more info at Apple’s site.
There always seems to be a push from IT folks to cross-develop for multiple mobile platforms. The truth is, in many cases you just cannot make a mobile application that is quite as compelling as a native app. You lose a lot of the hardware access and speed that make it so satisfying to use something like an iPhone application. That is why you see people like Facebook making apps for every device. In addition, you lose the app store exposure and marketing unless you package the web app into some kind of native wrapper.
All of that being said, there are cases where a web app will do fine and can target more than one platform. e-Commerce is a good example. Web storefronts created with an MVC design pattern can swap out a simpler presentation layer that will look better on a mobile device. Go to target.com as an example.
The elusive search for a nice framework that goes past basic HTML and leverages more advanced features across all smartphones has been going on a while. I’ve seen many, but they either suck completely or will not be accepted into the app store. With iSkygaze, I used a library called IUI to make a web app that seems more like a native app. Today though, there is a new solution and I’m liking it a lot….
http://www.sencha.com/products/touch/
Senchatouch is made by the same people who made ExtJS. It combines HTML5, CSS3 and Javascript to make a pretty nice apps for the iPhone, iPad, and Android devices. Is it a replacement for native apps? No, but it could be a great solution for people developing apps for internal use in a corporate environment where app store visibility is not important.











Thanks for dropping by!