Thursday, May 28, 2009

Why is SMS limited to 160 characters?



Why 160 why not more? Have we ever asked ourselves why SMS length is fixed to 160 characters only?

SMS is the oldest application to be used in GSM phones. Currently it has more than 2.4 billion active users. It’s an age-old application, but we hardly see any modification/upgrades with the advent of new technology. Yes we did see the upcoming of MMS, but SMS remained more or less the same.

Have you ever wondered why it is limited to 160 characters? While going through some bookmarks in Delicious, I found an article on the same. I found it irresistible to share and it goes this way…

Alone in a room in his home in Bonn, Germany, Friedhelm Hillebrand sat at his typewriter, tapping out random sentences and questions on a sheet of paper.
As he went along, Hillebrand counted the number of letters, numbers, punctuation marks and spaces on the page. Each blurb ran on for a line or two and nearly always clocked in fewer than 160 characters.

That became Hillebrand's magic number -- and set the standard for one of today's most popular forms of digital communication: text messaging.
"This is perfectly sufficient," he recalled thinking during that epiphany of 1985, when he was 45 years old. "Perfectly sufficient."


Another popular implementation of this magical number is Twitter. To avoid the need for splitting cellular text messages into multiple parts, the creators of Twitter fixed the length of a tweet at 140 characters, keeping the extra 20 for the user's unique address.

Keep visiting us for further insights

Wednesday, May 27, 2009

What do users want in iPhone 3.0?

Are you an iPhone user? If so, what do you want to see different in your phone?

There are many rumors around the top features of iPhone 3.0. Apple has announced in their website that iPhone 3.0 will introduce over 100 features. Some of them are :

  • Search your iPhone
  • Cut, copy, and paste
  • Send photos, contacts, audio files, and location via MMS
  • Read and compose email and text messages in landscape

In my opinion, below are some of the top features that current iPhone users are really looking forward to.

  • Better (Higher resolution) camera. It is high time iPhone got it, as there are competitors who are offering 5 & 8 MPX cameras
  • Video recording
  • Better battery life. There are rumors that the current LCD display will change and Apple will introduce a OLED screen which will give better battery life.
  • Ability to remove battery without having to go through the pains of sending it to Apple
  • Ability to multi task and background enable applications
  • Higher data storage & Increased OS speed
  • Usability features
    • Ability to pick calls without using slide bar
    • Delete selected SMS messages from a particular user
    • Organize picture/music/video folders using phone without having to connect to PC
    • Native support for voice tags
    • Mark a SMS as a task in your "To Do" list
    • Solve the keyboard usability issues
    • Ability to sort SMS messages

Apart from the above, Enterprises are looking at Apple to fix some of the issues inorder to make iPhone Enterprise Ready. Refer to my blog on Enterprise readiness of Apple for more details on this.

I really hope that atleast some of these are in the list of 100 features that Apple introduces in iPhone 3.0... These will surely give them better Customer Satisfaction !!

Memory Management on Windows Mobile 6.x

When you start developing for Windows Mobile you will be amazed by the things we can build for a Mobile. If you have developed windows desktop applications, mobile development is similar. The Compact Framework is subset of the full .NET Framework functionality. Most of the API’s and libraries available for desktop are available for mobile but are of smaller version. To start with Windows Mobile development, developer should know the limitations of Mobile devices when compared to desktops, the main limitations in Windows Mobile 6 are the memory, battery life and program speed. Do not build desktop sized applications for mobile without considering the memory limitations.

Let’s understand the memory architecture of Windows Mobile 6.x. Windows Mobile 6.x inherits its memory architecture from the Microsoft Windows CE 5.0, which is a 32-bit operating system. Windows CE 5.0 was designed when a small footprint of memory was important. Windows Mobile has only 32MB virtual memory for each application to leverage in the process space. The latest devices are getting shipped with more memory as it is cheaper these days, but it does not matter how much memory is built into the device, Windows mobile will only use this in 32 bit slots. This memory limitation has been removed from in Windows Embedded 6.0, and might reflect in Windows Mobile 7.

I will try giving my observations for developing memory efficient mobile applications, which I have read from various other blogs related to memory management. When developing large applications with lot of UI, images, sounds and other resources, we need to keep in mind the 32 MB Virtual Memory limitation per application. All the resources added to the EXE will make the EXE heavy and this will take maximum memory from the allotted slot. To view the 32 memory slots usage, you can use the VirtualMemory application developed by William Blanke’s and view your applications memory usage in one of the 32 slots.

image

To avoid memory crunch when developing large mobile applications, we can keep the EXE empty and create a managed DLL which will hold the code, forms, resources and data. This will reduce the amount of Virtual Memory the app uses in the given slot and at will also take advantage of the memory outside the slot in 1 GB shared memory area.

I have developed two versions of a mobile application which has images bound with it. The below are the findings from the both versions of the application, the StandardApp.exe with the images bound to it and the OptimizedApp.exe with the EXE being empty and moving the form, code and images to managed DLL.

image image

Standard EXE, which occupies more memory at the bottom of the 32 MB slot.

Optimized EXE, which occupies very less memory at the bottom of 32 MB slot.

The application code should have an exe with only a call to the managed DLL, and the managed DLL should have the forms, code and other resources. This makes the EXE smaller from 3 MB to 5KB.

Sample code:

  • OptimizedApp Exe:

    OptimizedExe

  • Managed DLL:

    ManagedDLL













    Points to remember when developing WM 6 applications:

  1. Write code smaller and lighter to save space in Virtual Memory. Use programming shortcuts as opposed to following pure programming practices that can inflate code size and memory consumption.
  2. Try keeping your EXE empty by keeping all Forms, resources, code and data in managed DLL. This will reduce the memory required for EXE in the 32 MB slot for this application.
  3. Merge small DLLs into larger ones (64 KB aligned), Windows Mobile 5.0 loads components on a 64 KB space, which means that even a small DLL will used minimum of 64KB. If there are many small DLLs it will be better to merge into one DLL resulting in 64KB.
  4. Never rely on Garbage Collector although on managed environment. Avoid calling GC.Collect method.
  5. Implement the IDisposable interface and finalizers effectively.
  6. Do not cache unnecessary data (mostly volatile data) which you will use occasionally.
  7. Use custom strongly typed or generic data transfer objects instead of DataSets to reduce memory overhead and improve application performance.
  8. If your application requires logging, try to use compressed format to reduce the memory and storage usage.
  9. Use the using keyword in C#, this declares and instantiates the object as late as possible, and disposes the object as soon as possible.

    using
    This will implicitly call the Dispose method for the connection instance after the use.

Monday, May 25, 2009

Is iPhone Enterprise Ready?


"Is iPhone Enterprise Ready?" is a very straightforward question, with a difficult answer. I have been trying to read up on this ever since I saw an article which said that Blackberry & Windows Mobile will outrun iPhone in the future.

There are many websites/blogs out there which have different view points about this. Some say that iPhone is already 100% Enterprise Ready, some say that it will be Enterprise Ready sometime in 2009 and some say that it will never be. Apple baosts that iPhone is "The best phone for business, ever". So, really where is Apple with respect to Enterprise Readiness?

According to the analysis that I have done, below are the areas that Apple needs to improve before they can really call iPhone "Enterprise Ready"

  • iPhone already has a good customer appeal. It is high time Apple shifted their focus to device security
  • Allow background-enabled applications. iPhone allows this for native applications. How can enterprise IT teams run diagnostics and gather data if they are not able to run background apps?
  • Make app development and distribution easier. In the current scenario, dependency on Apple is very high for developers to distribute their apps.
  • Make device updates easier, so that organizations do not have to depend heavily on their IT teams to support large scale deployments
  • Provide volume discounts, so that enterprises can get good rates when they purchase in bulk. Blackberry's Buy-one-get-one-free promotional campaign got them the huge upward trend in sales numbers for Q1 of 09 and earned them the Best selling consumer phone of 2009.
  • Finally, PLEASE allow people to change/swap battery on their own. This is something which is super important for Enterprises who expect their employees to have 24 hour connectivity. People carry spare laptop batteries to have backup charge. How can Apple expect people to be always connected when the iPhone doesn't even retain charge for more than 24 hours?

Windows Excel Mobile

Excel feature in the Windows Mobile let’s you work with spreadsheets just like how you work with Microsoft Excel on your desktop. To deal with limited screen resolution, Excel Mobile also has the ability to use a full-screen mode. In addition, it supports filtering of data and split panes to view different parts of a worksheet at one time.

We can use Windows Excel Mobile's feature as a sample database to keep track of things such as business-related expenses, personal income and expenses, update or create the data. Using Windows Excel Mobile's features you can also get things done when you’re out of the office. For example, you can store your business related information in the excel template available in the windows mobile and save it. When you are at office, you can copy the saved excel template in the mobile to your desktop and combine with the already existing data using excel.

Windows mobile provides you the ability to view the reports in the view and edit modes.
Some of the features of Windows Excel Mobile are :
  • Create new spreadsheets
  • Create new charts with different chart types
  • Quick data entry with single view/entry mode
  • Use format toolbar for quick cell formatting
  • Function list and auto-function insertion into cells
  • Change column width (including auto fit)

Here is the example of how to use reporting with windows mobile and get work done more efficiently.

See the tips and tricks to work with Windows Excel Mobile. You can see more details about Office Mobile here

Thursday, May 14, 2009

AndRead: New RSS reader for Android!

Aditi Technologies launches AndRead, a new RSS reader for Google Android. Hoping you all have a good time AndReading!

Read more about AndRead

Monday, May 11, 2009

AndRead: RSS Reader for Android

AndRead is a free to use user-friendly RSS reader developed by Aditi Technologies Pvt. Ltd. on the Google Android platform. It allows you to subscribe and organize any RSS feed and share them with your friends and contacts using Text messages, e-Mail or Tweet.

The reader allows you to easily access and follow your subscribed feeds without any hassles of login and registration. We have already added some categories and feeds that we think you might like, but hey, if you don’t, you can always remove them and add your own feeds.

The following features are available on AndRead:

Read: View your articles and news from RSS feeds subscribed

Categorize: Organize your feeds by adding them to custom categories created by you. You can also edit or remove these categories, and add as many as you like.

Subscribe: Add feeds from websites that you want to follow, and we will get their latest feeds for you. You can edit their names as you want them to appear or remove them, if they no longer interest you.

Favorites: Select the star and mark any feed as a favorite, and we’ll get them for you beforehand.

Share: Send feeds you like, and want to share to your friends and contacts via SMS, Mail or Tweet them.

Settings: Set reader settings, and when you want the favorites to be updated.

Notifications: Get notifications on feed updates, new versions and other interesting applications we are building.

AndRead Terms & Conditions

Friday, May 8, 2009

AndRead: Terms & Conditions

AndRead is a free to use, user-friendly RSS reader developed by Aditi Technologies Pvt. Ltd. The following are the license terms for AndRead, please read this agreement in its entirety.

1. This software is provided by the copyright holders and contributors as is and any express or implied warranties, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose are disclaimed.

2. You hereby, authorize AndRead (this application) to download Web Contents (HTML, RSS, GIF, JPG, or any other types of contents supported by WebKit) from the Internet, optimize these Web Contents on your device, and display these Web Contents for your personal viewing purposes only. Please note that AndRead does not process the Web Contents on any external server(s) and never sends, routes, redistributes, disseminates, or otherwise makes available any of the downloaded Web Contents outside of the device where it is installed.

3. AndRead is not affiliated with any of the Content Providers whose Web Contents are displayed by this application.

4. You shall indemnify, defend, and hold AndRead or its creator(s) harmless against any claims asserted by or against you by any of your relative(s) or by any third party related to your use of the software, including but not limited to claims of infringement of the intellectual property rights of any third party.

5. This application is not designed for any commercial or financial transaction processing. Accuracy of the information provided by this application purely depends on the content providers. End users are advised to verify the accuracy and appropriateness of the information before making any decision.

IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES (INCLUDING BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF SUCH DAMAGE.

6. This is a legal and binding agreement.

Sunday, May 3, 2009

Building your first IPhone/IPod application - PART II

It's been a while since i wrote anything here. I was busy learning the technology myself and as if murphy's is always right, my day tasks started becoming more challenging. So, to make it work, I chose to reduce my sleeping hours and blow a few weekends to learn this fundamentally strong platform. Fundamentally strong!, well i'm not going to compare what is better but i understood that things can be made better by choosing the right tools and understanding what the end-users really need?

This part will be short and is a crash course on how to build your first production ready application on Iphone. When i say production, you can very well push this application

- Into the App Store
- Get it approved by Apple
- Watch real users downloading and experiencing your ideas

And accept it or not, you may end up with some good and bad ratings on the application's interface, usability and of course content.

So where's the code and how did i do it?

The start -
This is an intro video that posted to our Secure FTP. It may not be very beginner but i assumed it shouldn't be too difficult to follow. So, i actually skipped a lot of stuff while explaining how to create a simple hello world application that can be executed in either the IPhone/IPod or the shipped simulator inside the IPhone SDK.

btw, I tried my first screencast so bear with me :) (i missed a few things while talking ;))
- The video is posted here - usftp.aditi.com. Contact Mini if you don't know how to access it.



And for the App Store application -

----------------------
------------------------
---------------------
------------------ means i'll be posting this to the same FTP in a few days.


That was easy! Well, it did make me lose my sleep for a while to get things up & running the way i wanted. But, hey i did a lot of things wrong and then got them right. I felt this should let you avoid those unnecessary cycles and get you to the point more faster.

Here's the source code -

The app is called ? availble for Free on the app store. In my next part, i'm going to talk about code-signing and app store upload.