Haris Khan
7:19 pm on August 22, 2008
This week I had the pleasure to attend An Event Apart design conference. It was a great experience to hear some great presentations and learn new approaches towards design. In next few posts I will try to share all of my experiences.
Starting off the best presentation of the day one was by Jason Santa Maria who is the Creative Director at Happy Cog studios. It was about “Storytelling by Design”. He had raised a very good point that why the design experience on a Wired in-print magazine is so different then Wired’s web experience. The point was that in-print designers try to set the mood around the content but on the web we lose the esence of story telling and just focus on content. Ironically, I think it should be the other way round as we have more tools and independence on the web. The other issue designers face is that we don’t have the control on the medium. Unlike print where the designer can exactly control the layout web designers are at the mercy of browser type, screen resolution and personal settings.
A very interesting book site NoOneBelongsHereMoreThanYou.com
was shared as a case study for its out of box approach.I agree with Jason that its wonderfully done and it has a very unique approach. The image on the the left is the homepage and you will see that it doesn’t have any traditional elements like About Us or Info rather it has a compelling text which draws you in. Similarly I also liked Jason’s site, which tries to break away from conventional design and take each post as an individual story that’s why you will see different design around each post.
Great visual design which has a story to tell has been around for many years and its very apparent from the below example of Charles Joseph Minard graphic illustration of Napoleon’s Russian campaign of 1812. If you move from left to right, the design illustrates the size of Napoleon’s army in yellow when he started his march toward Russia and moving from right to left in black you can see the size of his army when he was returning to France. Its amazing to see that how a simple design explains such an dramatic event in history. I think at the end it was just Napoleon and his buddy who reached back.

Jeffry Zeldman also gave an interesting example of how conflict between design and marketing team can result in a funny situation. RealPlayer wants to be a dominat player in media players but on Real.com it seems that someone was able to convience the the company to psuh a paid version of realplayer down our throat by making free version very hard to find. Apparently someone wants us to download the paid version only. Nice job!!
At the end I will also encourage you to viist a design site named Fray.com which has some great visual stories. In my next post I will share some more great snippits on design and in the meanwhile if you know some other great design sites then please share them in comments.
Haris Khan
7:41 am on August 21, 2008
Mobile space is the next paradigm of computing where more and more mobile devices are getting the computational power to now host interactive native applications. Offcourse iPhone has taken a giant leap but now other devices are also catching up. Recently we spent sometime to figure out which development environment will be best suited for new generation of mobile applications. In this report we have not covered FlashLite and iPhone. As a result we produced a technical discovery document to explore different mobile application development environments and how one can go about it. Below is the report and you can also download the pdf version of report.
This report was created by : Abdul Wadood, Atifa Nadeem, Naima Khan and Haris Khan.
Overview:
Mobile application depends heavily on the exact requirements. Our basic assumptions are stated in the section 3. Based on the basic requirement to create a very generic mobile application following are the three approaches in the order of our preference:
- Considering the basic and generic requirements Java ME is the ideal development platform. We can adopt different approaches within Java ME to reduce the development effort to make the application ready for all possible platforms and devices. Biggest drawback for this approach will be the application performance and security as this app will run on top of JVM.
- Second approach is to create a custom Mobile Execution Environment. We will need to develop this environment for each platform with minimum interfaces/APIs as per our requirements. This will result in more effort to create such MEEs for each platform/handset but application development will be rapid. Users will require downloading our own MEE just like they need to download JVMs.
- Finally the most stable and secure approach will be to create each application in platform’s native language. This will be requiring substantial effort but application’s performance will be at its best.
Development Platforms/Technologies
In this section we have briefly explained how each development platform will be used across different handsets and OS for basic features.
1)- Java ME (formerly, J2ME)
Introduction / Development Approach:
- Java ME Platform represents the only true open solution for building mobile applications for the industry. The technology allows portability of applications between platforms and investments are kept to a minimum through the possibility of reuse.
- The Java ME technology is based on three elements:
a- A configuration provides the most basic set of libraries and virtual machine capabilities for a broad range of devices.
b- A profile is a set of APIs that support a narrower range of devices.
c- An optional package is a set of technology-specific APIs.
Deployment Approach:
To be MIDP 2.0-compliant, devices must support OTA provisioning. The easiest way to package MIDlets for wireless installation is to use the J2ME Wireless Toolkit, which incorporates a small provisioning server that emulates a production OTA environment. Available in version 2.0 Beta 2 and later versions of the toolkit, this nice feature enables you to get an idea of whether a server will provision a device with your application successfully without the hassle of setting up and configuring a local web server to act as an OTA server. Some MIDP 2.0 features – like the push registry – are available only to applications downloaded via OTA. If your application uses those features, the built-in OTA server is a critical tool of the development process.
Features:
PUSH
The MIDP includes a feature called “PUSH Registry” to push data from server to mobile devices, without the interaction of user. The MIDlet registers a port along with the protocol name in the mobile device. From the server, a message is sent to the specific mobile device using the particular protocol and port where the MIDlet application is registered to listen. After the message is delivered to the mobile device, the AMS calls the MIDlet application. Once the message is delivered to the MIDlet, it is the application’s responsibility to process the message accordingly.
SMS Integration
- The Wireless Messaging API (WMA) is an optional package for J2ME that provides platform-independent access to wireless communication resources like Short Message Service (SMS). WMA can be used on top of CLDC and MIDP.
- There are many third party APIs available for SMS integration in Java ME applications. Some examples are Java SMS library from new-phone.com, SMS JDK from NCL Technologies Ltd, jSMS from objectXP, etc.
Data Synchronization:
- Recently released, Sun’s Mobile Enterprise Platform (MEP), provides two-way data synchronization with security, device management and off-line access features for enterprises. It can integrate data from a wide range of back end applications.
- A third party API, Sync4j is an open source initiative to deliver a complete mobile application platform implementing the SyncML protocol. SyncML defines a standard way to synchronize data and remotely manage devices. Sync4j provides SyncML client APIs (J2SE, J2ME and C++) that you can use to build an application.
Devices and Platforms:
Motorola:
- MOTOMAGX, Motorola’s next-generation Mobile Linux®, supports three different application environment– Java ME, Web UI and native Linux
- MOTODEV Studio for Java ME, Motorola’s robust toolset for developer innovation currently supports the Java ME application environment on many Motorola handsets and wireless modules
Nokia:
- Nokia phones have an extensive Java ME API set
- Nokia provides support for the industry’s leading open-source Java™ IDEs: NetBeans and Eclipse. Both IDEs offer robust tools that make it easy to create high-quality Java applications efficiently
Blackberry:
- Many new Blackberry devices support the Java 2 Platform, Micro Edition (J2ME), primarily because Java technology makes developing applications so much easier. Its platform-independence eliminates many porting woes and its automatic garbage collection lets developers concentrate on application logic rather than memory management
- In addition to Java-based handhelds, RIM offers a BlackBerry Development Environment for J2ME
Samsung:
- Some Samsung handsets give errors for J2ME (user experience). Some users have reported errors like Samsung not suitable for J2ME game developers, slow emulator, Java apps can only be loaded via OTA, giving “Unsupported content error” on Samsung F490 phone
LiMO:
- LiMO application developers will be able to use SDKs to write managed code running in a Java virtual machine, browser apps for WebKit, and native code.
S60:
- It supports Java (J2ME MIDP 2.0 commonly, but varies from phone to phone) applications and Symbian C++ applications.
Wireless Providers:
Verizon
- Verizon Wireless doesn’t offer J2ME support on their phones. Instead, it uses BREW but one can run J2ME applications via BREW-Authored KVM but still it is not that simple
T-Mobile
- Users are able to download J2ME apps (JAD+JAR) if they have an offline app, like a standalone mobile game but if the app requires an internet connection the users will be able to access internet if and only if:
- The application was signed with a T-Mobile certificate, or
- The user has a $20 “total internet” plan instead of the regular $6 T-Zones one, or
- The handset was not bought through T-Mobile
In short, if you are aiming for a mass-market consumer application and not just one targeted at business users or tech-savvy users, your hands are pretty much tied. The only way to achieve that goal is to go on-deck with T-Mobile
AT&T
- AT&T appears to be a little less strict than T-Mobile. You can download J2ME applications from anywhere, other applications that want to use socket communication, access to the file system, address book and messaging (SMS/MMS) will probably be blocked
2)- BREW
Introduction/ Development Approach
- BREW is a software platform that can download and run small programs for playing games, sending messages, sharing photos, etc.
- Using BREW, you can easily port your applications between all Qualcomm devices.
- BREW applications can be written using Java™, C, or C++.
- Unlike the Java ME platform where any developer can upload and execute software on any supported handset, BREW applications must be digitally signed
- The BREW developer community is fairly small and limited to Qualcomm’s boards and web sites.
- BREW code can only be compressed if you devise your own method or buy a commercial solution.
Deployment Approach
- Compile for the specific BREW version available on the handset.
- Installer Packaging Options: OTA
Features
Brew compatible mobile phones can get push based sms/email on the Alltel’s network
Interfaces like ISMS, ISMSMsg, ISMSNotifier, and ISMSStorage are there to handle SMS integration for BREW applications.
Open Mobile Alliance for Data Synchronization and Device Management.
The BREW platform is pre-integrated into the MSM™ chip software and includes reference implementations for many other device-specific issues (drivers and UI). All the mobile vendors doesn’t provide with MSM™ chip. So, we have very limited number of mobiles by default for running BREW application.
Wireless Providers
Every mobile vendor is supposed to provide handset with the support of BREW for different wireless providers.
3)- Windows Mobile
Introduction/ Development Approach
- Windows Mobile is an operating system for mobile devices, based on Microsoft Win32 API.
- Devices that run Windows Mobile include Pocket PCs, Smartphones, Portable Media Centers, etc.
- For application development there are different options available, including:
- Writing native code with Visual C++
- Writing Managed code that works with the .NET Compact Framework
- Developing an application using Java Me. There is a limitation if you develop an application in Java ME for Windows Mobile platform. Sun doesn’t officially support windows mobile devices and Sun hasn’t released an official JVM for pocket PC’s so you must go to a third party solution if you intend to use Java ME on Windows Mobile platform.
Deployment Approach
Windows Mobile-based Smartphones and Windows Mobile-based Pocket PCs (Phone Edition) can be bootstrapped by means of over-the-air (OTA) Wireless Application Protocol (WAP) push. This method is useful if the mobile operator prefers to bootstrap the device over the air at the point of sale or after purchase. In this method, a provisioning document that uses the format defined in the WAP Provisioning specifications can be pushed to the device over the air through the WAP connectionless non-secure push mechanism over the Mobile Terminated Short Message Service (SMS) bearer.
Features
The “Direct Push Technology” from Microsoft uses Exchange ActiveSync to keep data on a Windows Mobile based device synchronized with data on a Microsoft Exchange server. The ActiveSync technology on the device manages the direct push communication with Exchange Server. It establishes an HTTP connection with the server for a specified time, and then goes to sleep while waiting for the server to respond. The server responds with either a status indicating that new items were received or that no new items arrived. The device then sends either a synchronization request or another direct push request. Exchange Server 2003 Service Pack 2 includes a direct push component that augments the Exchange ActiveSync infrastructure that supports synchronization.
.Net Compact Framework provides different DLLs for SMS integrations (Microsoft.WindowsMobile.dll, Microsoft.WindowsMobile.PocketOutlook.dll). Using these DLLs you can integrate SMS Send and Receive functionality as well as SMS filtering support in your mobile application.
Exchange Server 2003 is used to synchronize data using ActiveSync. It uses OTA for Installer Packaging.
Nokia & Sony Ericsson
Net60 is an implementation from Red Filve Labs to bring .Net Compact Framework applications unchanged, to Symbian platform (the OS running the Nokia and Sony Ericsson Smartphones).
Wireless Providers
Most of the carriers have handsets with Windows Mobile.
If you have any queries please feel free to contact me at haris[dot]khan[at]zigron[dot]com

Download the report
Haris Khan
10:39 pm on July 26, 2008
PingMyCompany.com was started with a pure and simple intention to gather more data about ourself as a firm and know about others too. I have explained it before and Rashid also shared his development story.
Now after 3 months since its launch I have witnessed a change which I was hoping to happen but didnt expected to happen so quickly. Before PingMyCompany’s launch people hardly knew about Zigron and what it does. It was very hard for us to get the talent which was a right fit. Yes we had our portfolio out in public but it was hard to attract potential hires as they were never the target individuals for those projects.
Now during interviews when I ask potential candidates what they know about Zigron and the first thing they say is “PingMyCompany”.
PMC has not only helped us get our name out but most importantly it has helped us attract the right talent. We were getting alot of resumes but most of them didnt really matched our needs but after PMC the quality of resumes have improved dramatically. We are still getting the same number of resumes but now we are getting individuals who really understand what we do and how they can be part of it.
So the take away from all this is that companies need to create more engaging experiences for their future hires through technology and transparency. There has never been a better time to do this as technology to build such experiences and means to reach out has never been so cost effective ever in the history of mankind.
Considering all this we are working on upgrading PingMyCompany.com to create more engaging experience, so stay tuned via PMC blog and twitter feed.
Please feel to share your own ideas on how firms can create such experiences in different fields to attract top and most importantly the right talent.