August 30, 2014

Introducing our business messaging app for team collaboration

Have you ever wondered what if there's an app like Whatsapp that you can use to collaborate with your colleagues and customers in a secure way?

Have you ever felt that it's hard to reach your employees or sales folks who are on the road through email?

Have you ever found it hard to jump between different apps like Whatsapp/Skype for messaging, Asana/Trello for tasks etc?

Would you like to use an app that combines messaging with productivity enhancements like assigning tasks to your team members and setting reminders to yourself?

Then, you have reached the right place! We will be releasing the beta version of our iOS app in few weeks. Make sure you sign up for the beta at our website

More on the app in few weeks...

October 19, 2013

iOS 7 AirDrop – Is it really Wi-Fi Direct?

After iOS 7 was released, I got excited about the AirDrop feature. Most of the media folks wrote that it is based on Wi-Fi Direct and I thought, wow that would be cool. Android has been supporting Wi-Fi Direct for an year now and our initial reaction was how cool would it be to develop a nice app using Wi-Fi Direct for both iOS and Android devices. We also came up with a nice idea and starting working on it. The rest of the post is about how things didn't work out exactly like we expected.

Wi-Fi Direct is a P2P standard for devices to transfer data without being connected to the same Wi-Fi network. So, you can share pictures and videos with your friends wherever you are without any Wi-Fi or 3G connection. The main advantage is that it works at full Wi-Fi speed (upto 250 Mbps). So, you can send a large video in few seconds ideally. But in reality, the transfer speed is not that high. Android has an app called SuperBeam whose users are claiming speeds like 35 Mbps, 50 Mbps etc. Now that's what I expected to get with AirDrop.

While developing the app, we first found that iOS and Android devices are not compatible with their P2P implementation. This is because Apple uses "Bonjour over Bluetooth" to advertise its Multipeer services and Android doesn't support Bonjour over Bluetooth. Then I came across some complaints in forums that Multipeer connectivity is not as fast as one would expect. I also felt that AirDrop was not transferring fast enough. So, I decided to test the performance of AirDrop. I created a 3 minute video (size 231 MB) and did two tests.

Test 1: Transferring while connected to the same wifi network

This took about 1.5 minutes. A simple calculation of data rate: 231 MB * 8 bits / 90 seconds = ~ 20 Mbps. 

Test 2: Transferring while not connected to any network

This took over 3 minutes! Data rate works out to be only about 10 Mbps.

I tested again with another large video and similar results. If this was really Wi-Fi Direct, then the availability of a network shouldn't make such a big difference. So, now I have doubts if AirDrop is Wi-Fi Direct or not? To be fair to Apple, they did not mention Wi-Fi Direct in any of the description/videos about AirDrop. My gut feel is that it is just Adhoc Wi-Fi that Apple has been using Macs for years. With a little research, I also found that Adhoc Wi-Fi is mandated not to exceed 11 Mbps by Wi-Fi standard so that even devices with old 11 Mbps Wi-Fi chips can join the Adhoc network (Reference)

If anybody has any proof that AirDrop is actually Wi-Fi Direct, please share it.

September 4, 2008

The Web is not ready for Chrome yet!

Most of you would have read about the new and fast browser from Google called Chrome. I have always been amazed at how Google gives its own twist to a well established application paradigm. When they announced Gmail, I wondered how I was using an email application without conversation mode so far and immediately fell in love with Gmail. This time, it is Chrome. Geeks who tested it with Javascript benchmarks are stunned by the results from benchmarks. Everyday internet users who tried Chrome are not so impressed because it's not visibly faster than IE or Firefox for most websites. And that is because the Web is not yet ready for Chrome! Let me explain why.

It is an understatement to call Chrome as a browser. It is a mini operating system for running Web applications. So far, most of the Web applications have been running on the server side and used the browser only for display. Recently, there has been a push towards Rich Internet Applications (RIA) that use your browser's advanced functionalities such as Flash, Javascript etc to deliver desktop application-like complex feature set. Zoho and Google docs are examples of popular Office applications that run in your browser. This trend has just started and is growing. Think of a photo/image editing application as complex as Adobe Photoshop but runs in a browser and allows you and your friend (living in a different state/country) to edit a photo simultaneously across the Web. Think of a Movie editing application like Windows Movie maker that runs online completely. Chrome has been designed with such complex future applications in mind and that's why we don't see its impact right now.

Let me just touch upon the features of Chrome that make it suitable for such complex applications.

Application Isolation

Any complex application will have atleast a few bugs. Imagine that you are running a Photoshop-like application in one tab of IE/Firefox and a Powerpoint-like application in another tab. If the photo application crashes because of a bug, IE/Firefox itself will die and you will lose your (potentially unsaved) work in the presentation application. This is unlike a real OS environment where PhotoShop crashing won't affect PowerPoint application. Chrome provides such isolation by restricting the failure to just one tab and all other tabs will stay alive. There are very few websites that use Javascript heavily now. So, the impact of this will only be seen in future.

Memory Management

Any good Operating System will try to avoid memory fragmentation and reclaim unused memory effectively. Chrome does this by creating a different process for each tab and using a thorough garbage collection mechanism. Chrome comic book explains this clearly if you are interested. Yes, it will take up more operating memory than Firefox due to multiple processes but then Chrome is not just a browser. It's a platform for complex applications that will require lot of memory themselves.

V8 Javascript Compiler

As you know, Javascript is the language for creating client-side Internet applications. Normal websites will only have a few lines of Javascript. But truely complex applications could have thousands of lines of js code. So far, Javascript engines have always been interpreting the javascript code whereas V8 will compile it directly to the target machine code. Anybody who has taken a basic computer course will know that interpretation is much slower than compilation. Java, when it was originally introduced, was an interpreted language and it was dead slow. Later, they implemented Just-in-time (JIT) compiler and there was dramatic improvement (I have experienced the difference myself when I was working on a JVM). Now, Chrome has given Javascript the status of an advanced programming language! This will encourage developers to build Internet applications that will run much faster. Their Javascript application will run as fast as a C++ or C# application and it will also be able to collaborate effectively across the Web.

So, the next time you see somebody ignoring Chrome as just another browser, tell them it's not. Chrome is getting ready for the future of Internet. It's just that the Web is not ready for Chrome yet.