Archive for the ‘Technical’ Category

Munimo

Thursday, January 8th, 2009

If there is something that is booming right now, it is mobile software. In spite of the vast variety of incompatible platforms, the number of mobile applications is growing very rapidly. Business houses know that mobile presence is imminent for them, and developers just can’t stop themselves from making new applications for their mobiles. Given such a huge development activity, one would expect current day mobile handsets to be full of software to do almost everything. However such is not the case. The discovery and distribution of applications is still an open problem. People want to try out software on their phones, but they don’t know what software to try, where to get it from, etc.

App Stores from Apple, RIM, Palm are initiatives in this direction, and they have definitely solved a part of the problem. For these phones, there is atleast  one place where software can be found. However all these initiatives are very specific in nature, and are usually not very unbiased. There is usually an entry cost for applications, and a number of other things one could of have done without.

There has to be something simpler, something more genuine. So there is Munimo. Munimo is a community initiative, started by myself & Mobisy Technologies (P) Ltd in association with MOMO Bangalore, where mobile enthusiasts come and share their favorite applications. With a very small number of contributors at the moment, Munimo has already started turning useful for new users. Go there, and you can see the favorite applications of most avid mobile users. You know of an application and you want to share with others, just log in to Munimo and add it to the collection. Your contributions will surely go a long way in making mobiles more useful for everyone.

In its current state, Munimo is simply a web portal where people come and tell about the applications they love. The next step for us is to push out Munimo mobile application for as many platforms as possible. Though it may sound like an ardous task, but thanks to Mobitop it essentially is just a few clicks job. Oops, not aware of Mobitop? For the uninitiated, Mobitop is magic wand for mobile application developers developed by Mobisy. Mobitop is an application platform which allows developers to convert their wap sites into mobile applications via a packaging tool. As of now, Mobitop is not directly available on Mobisy website, however that’s going to change soon. But feel free to get in touch with them, Mobisy team is more than eager to share their creation with everyone.

Once the applications are out, what would you like to see more? If you got any ideas, please let us know. Ideas/Suggestions are more than welcome. Code to implement them - even more :).

What do you think about a Mobile Application Profile (MAP). So you use a phone, and have a number of applications on it. The applications and their genre is what I call a MAP. When you move on to another phone, chances are that you are going to use a similar set of applications. What if all that happens by itself using your MAP. I think it’s very cool. What do you think?

Let’s make it happen.

Software Quality

Saturday, November 22nd, 2008

Quality is one of the most talked about, and yet the most ignored aspect of software development through out the industry. Organizations take a lot of efforts to create a buzz about the quality of delivery. In one of the software companies that I worked for, every week someone from HR would put up a new poster in each employee’s cabin, featuring inspirational quotes about quality, and it’s benefits. Such efforts do create awareness, but rarely do they translate into the production quality.

One may wonder if quality is just a nice to hear thing, or if there is a tangible definition to it. There is of-course no common definition to it. Quality means different things to different people. For some, it may be about a polished & chic user interface, for some other it may be low memory foot print & zero leaks, and for some others it may be just about the number of bugs filed by the quality team. It is not essential to have a common definition of quality, but what is essential is to have a definition - to each one his own.

Quality has very commonly been seen as an outcome rather than as a process. All the examples stated in the last paragraphs are the outcomes of the development activity for a software. They are just ways to quantify quality. And more often than not, that is where the story ends. Organizations follow rapid development models, with minimal thought. The understanding is - time not spent on coding, is time wasted. They would make the software in what they think is the minimal possible time, and would then devote the last phase to quality by fixing as many bugs as possible. And that is what they call making quality software. What this process conveniently ignores is that quality is not a top-down process, it is bottom-up. In a top-down process, one just makes sure that the software works at least in scenarios which are important by putting patches, hacks or whatever comes to rescue. The result, as you can imagine, is that in every two-three releases the entire software gets scrapped and needs to be rewritten so as to accommodate the new requirements.

Software development has been plagued with the can-do approach for a very long time. Anyone reasonably comfortable with the programming language constructs is considered fit to write software. How can one believe that a few programming courses can make someone a programmer. This is like expecting the leadership courses to actually produce great leaders.

Then there are some really disastrous myths that exist.

  • Adhoc development can help you make a quick prototype. Oh, I see people doing this all the time. They write the code in a day’s time, try to make it work for the next 2 weeks, and then spend another month to accommodate a requirement they forgot to take care of. And still the program crashes, if one clicks on a button in quick succession. :)
  • A well designed software can not run fast. Ahh, as if the software gives you extra credits for reckless programming.

Disclaimer: This article is not intended to preach a way of programming, or to define quality. It is just a plea to care enough to think before churning out code. A software can do much better with a fewer lines of code put at the correct places.

Funny side of being a technical person

Sunday, July 20th, 2008

When I decided for myself that machine programming is what I want to do, little did I know that I would also have to serve as the global help-desk of all the relatives, non-technical friends that I have.

Ring, Ring.. Ring, Ring..

Me: Hello..
Uncle: Hey Mayank, How are you?
Me: I am fine (Come on, tell me what you gotta ask)
Uncle: Beta, we have run into a trouble. My laptop has got stolen.
Me: Hmm.. (This is going to be tricky one)
Uncle: I had my data on the hard drive (see I know quite a bit, don’t think of me like other ignorant relatives of yours who trouble you with non-sensical questions)
Me: Hmm.. (Ofcourse)
Uncle: Tell me of some technology with which I can take data out of that. I understand we can’t do much about the laptop.
Me: (OMG) So you want to retrieve data out of the hard drive of your stolen laptop
Uncle: Yea.. (Tell me, quick!!)
Me: It does give me ideas about a smart bootup application, but now that nothing of that kind is already installed on your machine, I am afraid that I have no idea about how can that be done.
Uncle: Hmm.. Come again.. (Put it simpler, your nerd)
Me: No, nothing can be done. (I know putting it that simple, I am risking my reputation)
Uncle: But you work in Adobe, right? (You useless fella!!!)
Me: Oh yea, that’s there. (Don’t tell me you are gonna suggest them to throw me out because i can’t retrieve data from a stolen machine)
Uncle: Well then, I think I will speak to a technician I know.
Me: Ok uncle, let me know if he has a solution.
Uncle: Yea, sure..

Want to hear one more, here it is.
This happened once when I was visiting a friend.

Friend: There is a problem in my machine, whatever i type appears in the reverse order.
Me: Wow!! Since when has it started happening.
Friend: It started happening yesterday. Since then it’s like almost impossible to work on it.
Me: Ofcourse, getting used to composing emails and sentences in reverse order will take time.
Friend: This is not funny dude.. Please have a look
Me: Well this looks like a keyboard issue.
Friend: I don’t know.

<we go to the machine, and he shows me typing a few words. The cursor stays at its place as you type, so of-course the words come in reverse order>

I guessed that the left arrow key of the keyboard has got stuck. I picked up the keyboard, and smashed it once. It started working fine.

Friend: (What crap!! That’s not the kind of solution i expected. It’s a computer not a bloody scooter.) Isn’t there like a better solution, you know…
Me: Sorry dude, I wish if I could have achieved this via some fancy software.

He was thoroughly disappointed :). And as you can imagine, my so called reputation went for a toss yet again.

HereCast

Tuesday, February 27th, 2007

While researching on ways through which I can get some estimate of location on a non gps device, I came across this very interesting link. Its called Herecast.
These guys are working on providing location information using Wifi access points. Quite cool. If I let some enthusiastic users collaboratively tell my system whats the location coordinates (or lets say name) of this access zone, and provide location based services to consumers around, I see some value there.
GPS does not work well inside the buildings. So if these two things work together - GPS in the open and HereCast inside the closed buildings (Wifi enabled) it can be quite a good offering.

I am wondering if a similar thing can also be done simply using internet access points and not just the Wifi. Let me do some research into it, and come back with results. :)

BluXone : The power beneath

Sunday, February 4th, 2007

Do read Harshdeep’s post on BluXone as a precursor to this post. He has written a great description of the application. Read It

At the core of BluXone lies an application level protocol which enables the devices to communicate seamlessly over Bluetooth. The motivation to create such a protocol came from the fact that Bluetooth puts a lot of restrictions on the number of simultaneous connections a device can have, and in the manner they can communicate with each other (Master/Slave). This protocol acts as a time sliced multiplexer between the Master and the Slave functionality, and emulates multiple live connections by regulating the network traffic in small data chunks.

This protocol enabled BluXone to provide a TCP/IP sort of seamless connectivity over Bluetooth. However to test BluXone for all such network scenarios was a big challenge. Neither I had the devices, nor the manpower required to test all the scenarios. Plus I was not even sure how much the users are going to care about this feature of multiple active connections simultaneously.

Because of all these reasons, I made BluXone restrict this multiple connection behavior from a top level, atleast in the first release. So what that essentially means is if you are currently downloading a file from another phone, and you want to download another one simultaneously it will ask you to wait till the download is complete.
However, if the users really want that kind of networking support, I would definitely work towards maturing it, and make it available in the later releases.

Proximity Advertising

Monday, January 22nd, 2007

Just attended the MoMo Delhi meet a couple of days back. It was a good experience all in all. It was energising to see the enthusiasm in the atmosphere. But I think it can do better with a little more structure and direction. The delhi chapter of this group is quite new and I am sure it will grow manifolds in the times to come.

One of the things that caught my attention (not necessarily in a good way :)) was a talk over Proximity Advertising by a company called ValueFirst. They have developed a piece of hardware which can keep on sending advertisements over Bluetooth (as OBEX messages) to devices in the range. What I liked was the effort and enthusiasm with which they presented their stuff, but could not stop wondering if that really made sense. I did some googling to find out if there are others who are doing it, and found to my amazement that a lot of people are doing it.

Advertising works and makes sense when it comes along and on top of great value. When you watch ads on the TV, you get annoyed but you still watch them because you are getting to see great content within which these ads come. When you watch ads on the internet, you dont mind them because they come when you are visiting an interesting website, and the ad is sitting is flashing on the bottom right corner. Tell me how would you feel if a pop up comes up on your screen time and again, and (lets get fancy) you are not even using the internet. Thats what these guys are trying to achieve.

Bluetooth is a great technology which has not yet been harnessed even to a fraction. But come on guys, lets be a little creative. Lets create value for the users first. If I can create value for my users, if i can create something which people love to engage with, I dont think I require an Einstein to tell me how to make money from it.

Apart from this, there were a lot of other interesting presentations. Will come back to write about them as well.

BluXone goes Limited Beta

Friday, January 19th, 2007

BluXone opens up today for Limited Beta Release.
Its a cool Bluetooth networking software for Series 60 2nd Edition Mobile Phones.

BluXone

Quoting the website,

BluXone (Blu-Zone) is a bluetooth application for your Series 60 based Mobile Phones. With BluXone, you may now use your mobile phone to:

  • Share favourite songs, videos, pictures and ring tones with others
  • Creat personal profiles for others to view- share your likes, dislikes, thoughts, actions, emotions
  • View profiles of others around you and chat with them
  • Make announcements - all users in your range will get to know what you have to say
  • Free to download and free to use!!

Try it out on your phones, and let the team know how do you like it. Your inputs would help the BluXone team shape the product better, and reach the public beta soon.

Mobile Monday

Wednesday, January 10th, 2007

I just realised that ten days have gone by and I haven’t even wished my blog a Happy New Year. So, first things first, A Very Happy New Year to all of you and my dear blog :).

This year has had quite an eventful beginning for me, some events which I can share and some which desire only to stay with me. A great night long new year bash, some good things at work, a lost cricket match, and a fractured finger - to mention a few :). And now the next thing that stands on my calender is the Mobile Monday Delhi meet on Jan 20.

The remarkable Mobile Monday phenomenon began almost by accident in Helsinki, Finland during the chilly autumn of 2000. Vesa-Matti ‘Vesku’ Paananen, a well-known Finnish mobile visionary, invited more than fifty mobile innovators to an Irish pub for an informal get-together and perhaps a drink. The only suitable time? You guessed it, Monday evening. After meeting many new faces and discussing the latest in mobility, the group decided to continue meeting on the first Monday of each month – and MobileMonday was born.

The Delhi Chapter however usually seems to meet on the Saturdays, and that does makes sense, doesn’t it. In this meet, I will be giving a talk on Mobile Development Environments. In this talk, I will be giving an analysis of the available development platforms for Mobiles. The talk is intended for people who want to get initiated in mobile development, or for someone who has an idea in mind and needs to take an informed call on which target/platform to develop the solution on keeping the nature solution and the business in mind. If time permits and people are still awake, I am also thinking of demonstrating some of my work in the domain.
If you have some particular issues in mind which you believe such a talk should cover, do leave a comment for that.

Apart from this, there will be a lot of other presentations as well. You can check out the details at the Wiki page.

Symbian OS - Series 60 Versions

Sunday, December 31st, 2006

For the uninitiated, Symbian OS is an Operating System for Mobile Phones, much like what Windows/Linux are for the Desktops and Laptops. Most of us often think of the User Interaction Workflows (how you interact with the system to do your tasks) as being a part of the OS. However, thats not precisely true when you talk of Operating Systems in a theoretical manner. Symbian OS offers the flexibility for third parties to write their own UI layers, and plug them in with the system. Series 60 is one such UI layer provided by Nokia. So to summarize, Symbian is OS, where as Series 60 is a UI layer.

Even though I have been programming for Mobile Phones for more than 3 years now, still I sometimes get confused about which Symbian OS Version corresponds to which Series 60 Version.

Well if you ask me whats the need to know that, I would say Good Question ;). The need comes when you want to search software for your mobile phone. The manual of the phone would often tell you which Symbian OS it corresponds to, whereas the software might be listed based on Series 60 versions, or vice versa. And if by chance you are a developer, and want to develop for these platforms, you better know as its your bread. :)

So, here is a mapping between the Series 60 and the Symbian OS versions.

Symbian OS Series 60
v6.1 First Edition (& Feature Pack 1)
v7.0s Second Edition (& Feature Pack 1)
v8.0 Second Edition Feature Pack 2
v8.1 Second Edition Feature Pack 3
v9.1 Third Edition
v9.2 Third Edition Feature Pack 1

Also want to put a mapping of phones versus the OSes, but I am feeling lazy at the moment. I will do it in sometime.
Find any discrepancies, or want some more info, write to me.

Installing applications on the Mobile Phone

Tuesday, November 28th, 2006

While demonstrating BluXone to some friends, I realised that people are still not comfortable with installing applications on their mobile phones. On further querying I found out that they are actually not aware of how to do it. So I thought I would just write a small article on how to install applications on the Mobile phones.

Symbian (Nokia) Phones

  1. Install Nokia PC Suite in case you dont have it. Its a free software from Nokia to establish seemless connectivity between your work machine and the mobile phone.
  2. Connect your phone to the desktop. You can do it in a number of ways.
    1. Can use the data cable which comes with the phone.
    2. If your desktop has Bluetooth/InfraRed capabilities that you can also use them to connect to your phone. Adding Bluetooth/InfraRed capabilities to your desktop/laptop is as simple as putting in a USB adapter for the same in your machine.

    Whichever mode you choose, PC Suite would figure out the connection.

  3. Downlaod the application installer on your desktop/laptop. Installation files are usually *.sis, *.sisx (Symbian Installation Packages), or *.jar (J2ME Installation Packages).
  4. All you need to do now is to double click on the application installer.
  5. Rest of the installation instructions would come on your phone.
  6. If your phone has internet connectivity, you can also point your phone directly to the application download link. Download the application on your phone, and the installation would begin as the download completes.

Windows Mobile Phones

  1. Install Microsoft ActiveSync, and rest of the procedure should be all same.
  2. Installation files are usually *.cab, or *.jar (J2ME Installation Packages).
  3. If you have the .exe for the application, you can simply copy it to the phone as well (using ActiveSync), and can start using it. The beauty of a Windows Mobile phone is that using it is no different from using Windows on your desktop.

Will come back and write about doing this on other platforms as well. Will also fill up the gaps in the information here. Drop a comment if you would like to know about something specifically.