This is the beginning of a multipart series on developing Windows 8 mobile apps for Salesforce.com with the user interface design language that was–until recently–referred to as Metro UI. Though the name is now Windows 8 UI, the typography-based design principles are the same, and you can read more about them in my April 30 … read the whole post
Big Data Made Small with Heroku, DynamoDB, and Elastic Map Reduce
One million tweets per day. An average of fifteen words per tweet. Four (awesome) days of Dreamforce 2012… Out of the 60 million words that scrolled across the screen on the Model Metrics Art of Code exhibit Moving the Cloud during Dreamforce 2012, which were the most frequently used? Well, “social” was #1, then “touch” … read the whole post
Mobile Device Management and Enterprise Application Development
With Gartner reporting that the top three technology agendas for CIOs globally are analytics, mobile, and the cloud, Tech Republic reporting that iOS is now as secure as Blackberry, and Forbes saying “the sin of ignoring mobile will not go unpunished” if you aren’t considering how to roll out mobile devices and apps for your … read the whole post
Moving the Cloud — HTML5 and CSS3 on Node.js
Moving the Cloud is an experiment in using HTML5 and CSS3 technologies and Node.js. It was also an experiment on using Node.js on the Cedar stack in Heroku, but that didn’t quite work out as expected (more on that later). It’s also an Easter egg on the Model Metrics Homepage. Click on the animated 1s … read the whole post
Private Cloudwashing — No Innovation? Duh…
David Linthicum’s June 2012 post over at InfoWorldmakes an interesting argument that “innovation is in scarce supply” in cloud computing. He mentions that companies are either just copying what Amazon is doing with Amazon Web Services (Rackspace, I guess) or rebranding the same old virtualization offerings in an attempt at “private cloudwashing” — just polishing … read the whole post
Fluid Mobile HTML5 Design and Development
In the world of print publication, laying out a design starts with a canvas that has a known height and width. If an agency is putting together an advertisement for a magazine, and they know that they are (hypothetically) designing for a page that is 8 inches wide and 10 inches high, assuming a standard … read the whole post
Codesign: Re-Signing an IPA between Apple accounts
Since much of the iOS development work we do is for clients who are developing apps to distribute internally with an In House Mobile Provisioning Profile using their Enterprise Distribution Certificates, and not all of them want to share those files outside of their organization, we frequently need a way to send them the IPA … read the whole post
Developer’s First Look at Windows 8 Metro
With all the recent buzz around Windows 8 RT for ARM and the Metro interface, I wanted to do a bit of a first-look at developing for the Windows 8 Metro interface. To get started, I thought I’d take a look at getting the Windows 8 Consumer Preview installed on an actual tablet, so I … read the whole post
Storing Data Offline with Salesforce Mobile SDK SmartStore
Storing Data Offline with Salesforce Mobile SDK SmartStore Say you’re writing a “hybrid” mobile app for iOS and Android using PhoneGap (“Callback” or “Cordova”) and you want to store data locally. Your choices are kind of limited. You could, for instance, use WebSQL, which has been implemented in WebKit for a while now and is … read the whole post
Using XMLHttpRequest2 in iOS 5 or Android OS 3 to download binary files using HTML5/Phonegap
One of the things added to Safari and UIWebView in iOS5 is support for XMLHttpRequest 2, which according to W3C adds new features “such as cross-origin requests, progress events, and the handling of byte streams for both sending and receiving”. As part of the last bit of that, it’s now possible to set the responseType to arraybuffer, which is … read the whole post
oAuth 2.0 for Salesforce.com
At this point in time, we’ve implemented the oAuth 2.0 User-Agent flow and the Refresh Token flow for iOS, Android, and Flex/AS3. I figure that makes us as much an expert at doing this as anybody, so I thought I’d take a moment to describe some of the details. First off, the reason you want … read the whole post
Setting Up and Using DiffDog for Salesforce.com Deployment Validation
There are a few different ways to deploy metadata from org to org with Salesforce.com. The three main options are to use Eclipse, to use Ant (the “Force.com Migration Tool”), or to use Change Sets. The first two are completely manual to set up (although Ant, obviously, is able to be run over and over … read the whole post
The day the cloud stood still. Lessons learned roundup…
The well-publisized outage of EBS on multiple availability zones in the US-EAST-1 Region of AWS last week kicked off some excellent blog posts from companies who, through robust architectural choices, managed to weather the storm quite well. It lasted five days, it’s been called the worst cloud computing disaster ever, and Amazon’s communications strategy didn’t exactly shine, but it has presented … read the whole post
It’s Not Broken. You’re Just Doing It Wrong.
Okay, so the title is a bit harsh. I was intrigued by the rather excellent post over at the blog Il y a du thé renversé au bord de la table, [Rant] Web development is just broken. Yoric makes the argument that web developers are forced to deal with too many “nightmares” that have very … read the whole post
iOS Enterprise MDM Configuration Capabilities
Thought I’d put together an easy to reference list of the various things that can be configured by an enterprise Mobile Device Management administrator for iOS: Password Required No Repeating/Ascending/Descending Characters Require Alphanumeric Minimum Password length Minimum number of non-alphanumeric characters required Maximum password age (1-730 days) Auto-lock (1-5 minutes) Password History (1-50 Passwords) … read the whole post
Some Thoughts on Gamification
There seems to be a lot of industry buzz lately around the concept of “gamification”, and the idea is basically one of applying game mechanics to the world of business to motivate employees or customers. Bunchball has done a really nice job with their Gamification 101 white paper of illustrating how gamification can work in … read the whole post
Cloud to Cloud: Using AWS Simple Email Service from Force.com
Amazon released a really interesting service not too long ago called Simple Email Service (SES). It allows you to send individual or bulk emails without having to rely on your own mail servers. This is important because sending (legitimate) mass emails while staying off spam blacklists like Spamhaus is no simple task, and you don’t want … read the whole post
Importing a Flex 3 AIR project into Flash Builder 4
I had some issues over the weekend trying to import an Flex Builder 3 AIR project into Flash Builder 4. This post gives a good description of how it is supposed to work, and I assume that it does work for Flex web projects, but it didn’t work for me with an AIR project. Every time I imported the AIR project, … read the whole post
OSX Firefox Flex/Flash redraw bug workaround
There’s a known redraw bug in the OSX version of the Firefox Flash Player plugin that’s pretty irritating. If you do something that causes too many redraw events to get called in quick succession, Flash will fail to redraw the screen properly, and you end up with a mish-mash of phantom objects on the screen: This … read the whole post
Setting up automated testing in Flex SDK 3.3.0
Automated testing tools like FlexMonkey, RIATest, and QTP in Flex require you to add a few .swc files from Adobe to the compiler arguments in order to run. This is easy enough to set up in the project settings: -locale en_US -include-libraries “${flexlib}/libs/automation.swc” “${flexlib}/libs/automation_agent.swc” “${flexlib}/libs/automation_dmv.swc” But if you try to do this in version 3.3.0 … read the whole post
Force.com Flex Toolkit AIRConnection updates
We’ve been working more and more with Adobe AIR and Salesforce.com recently, and as such we’ve been putting the AIRConnection class through its paces, fixing bugs and adding functionality along the way. Here are a few of the modifications we’ve made, and why: SQL Reserved Words One of the first things that we noticed was that we … read the whole post
Clang! Powerful Memory Profiling for the iPhone
I’ll start by saying that Clang is a must-have tool for every iPhone developer. It’s easy to use, and it does a fantastic job of profiling the memory usage of your apps. The iPhone is a powerful hand-held device, but the memory constraints are tight enough that they can cause serious problems with application … read the whole post
iPhone Programming: Adding a Contact to the iPhone Address Book
Adding a contact to the iPhone’s address book isn’t horribly complicated, but it’s not the most straightforward process in the world, either, because the documentation leaves a bit to be desired. There is an Address Book Programming Guide published by Apple, but at 28 pages, it feels a bit bloated when you’re just trying … read the whole post
Lessons for the Beginning iPhone Developer
Following are some lessons indented for developers who are well versed in any number of other programming languages, but who are coming to the iPhone for the first time.