Start Here !

Welcome to my website. Find articles, presentations, tutorials, experiments on various technologies.

You can get in touch with me anytime at

r o m i n . i r a n i @ m i n d s t o r m s o f t w a r e . c o m

I am also active on Twitter – do follow me.

Posted in Uncategorized | Leave a comment

Once Upon a Time in India : #1 – Khaled and his Didi song

Part of “Once Upon a Time in India Series“: 

The musician Cheb Khaled must have got the shock of his life and maybe he has still not recovered when his song titled “Didi” captured India in the 90s (1993-1994).  It fast became a song that got the crowd into a frenzy at any joyous gathering of people. And best of all, people who started dancing to this song were not even drunk at times. I also believe (could be wrong) that 99.99% of us did not understand even one word of what he was trying to say and could only pronounce “Didi”. Maybe that was the essence, all you had to do was just say “Didi” at some intervals in the song and  you were in !

It showed music had universal appeal and it surely adds to the confusion in the minds of everyone about “what succeeds in India”.

Anyways, enjoy the song :

Do give your comments on what you think should appear in this series. You will be credited for it. The essence of this series is captured here, so please read that.

P.S: The # in the title is just a number, not a ranking.

Posted in Personal | Leave a comment

New Series titled “Once Upon a Time in India”

As you grow older, you look back at some event or the other that happened across India, which is where I was born, brought up and live. These events typically captured the imagination of the nation and while they their influence was short-lived (typically), the hysteria that it generated was tremendous.

It is with that spirit, that I wish to capture some event and chronicle it .. well .. just for the sake of it. This event could be some sporting thing, or a music video, or a cartoon, or some comment / dialogue, a film, a song, a new technology .. almost anything.

jif_2009

You can write to me in the comments on whatever you believe caught our fancy .. and I hope to target those events for which we have some online content that can be linked to, so that the readers can relive and of course enjoy that moment. Ideally I am looking for something that has occurred in the 80s and 90s but still feel free to note and let me know otherwise. I will credit you with the link, if I publish it.

I do not promise the frequency at which this series will post stuff but it should help chronicle some key incidents.

The order of publication will be completely random and in no order of significance or craziness that it caused. I am also not interested in any political/terrorist/religious activity that caused suffering/pain and divisions. 

Maybe someone has already thought of such a series and it is there on the web (in fact it should be!) but still I don’t care. In the spirit of “Let’s do this”… we move forward.

So, sit back and enjoy.

Photo Credits : http://jaxindiafest.org/mission

 

Posted in Personal | 2 Comments

Book Review : Raspberry Pi Server Essentials

This is a book review for Packt Publishing‘s Raspberry Pi Server Essentials.

packt-rpi-server

Raspberry Pi is often touted as a boon for classroom computing. I have often seen scenarios where several folks have purchased a Raspberry Pi and after a few sessions with it have not utilized it much. Well sure the hobbyists are busy building sensor networks but most people need to understand how to employ their Pi for tasks that are likely to be more useful to them, in and around their computing needs.

This is where “Raspberry Pi Server Essentials” book comes in. It contains several chapters that help you to use your Pi for a specific purpose.

The initial chapters focus on the basics of setting up your Pi, Operating System installation/updates and setting up the networking. This forms a good base to then explore the remaining chapters.

The next set of chapter focus on a specific use of the Pi. The chapters range from:

  • Using the Pi as a Web Application Server
  • Setting up a File Server
  • Setting up a Game Server
  • Media Center
  • and even a Bit Coin mining machine (Hope you get lucky with that one!)

For households that have multiple devices, setting up a File Server or Game Server powered by your Pi is a great way to streamline things. In fact, you could jump to any chapter, if the specific purpose of that chapter is what you want to use your Pi with.

The instructions in each of the chapters are very precise. Right from downloading the software, configuring and running it, the instructions are good and focus just on the task, which is how it should be for a book of this kind.

Overall, this is a good book to explore practical uses that you could put to use immediately for your Pi.

Posted in Books, Personal, Reviews | Leave a comment

Hello Developer

There has never been a better time to be a developer. I believe this statement will remain true irrespective of the times we live in.

Large-Crowd-537x402

As a developer today, it is important to look at the full stack when developing applications today. This includes :

  • Web client
  • Native client (Android / iOS / etc)
  • Server side. Yes. You need the server too to power your mobile application functionality.

And not just that, it is important to understand design. Design is increasingly becoming an area that Developers need to understand and be part of, to create applications that not just wow your users but also make it intuitive to use.

As part of its Developer outreach, Google has teamed up with Udacity to provide several courses that address each of the above areas. These courses in my opinion are supported by best in class tools, teachers and materials and if you were looking to start off, these are great resources.

Here are the courses:

  1. Android Development
  2. UX Design for Mobile Developers
  3. Developing Scalable Apps on App Engine (PaaS)
  4. Website Performance Optimization
  5. There are couple of other courses, which have been there for a while and are still available:
    1. Mobile Web Development
    2. HTML5 Game Development

All the materials have been completely opened up for access by anyone. You do not have to pay the $150 / month. Just sign up and go for the Courseware link.

I recommend these courses strongly and hope you do take them. For inspiration, check out Reto Meier’s article titled “Enabling the next 50 Million Developers” and build apps for all.

Posted in Android, Cloud Computing, HTML5, Mobile | Leave a comment

Dive into HP IDOL OnDemand APIs

The future lies in processing data and deriving some value from it. Often, the process is tedious and could involve multiple sources of data, images, videos and more to link together.

hpidol

HP IDOL On Demand is a great set of APIs that is made available by the HP Cloud Platform that make things much easier for the developer.

Check out my article at ProgrammableWeb that goes into the details of the HP IDOL OnDemand APIs and code snippets to get started on them today.

Posted in APIs, Cloud Computing, Personal, Reviews | Leave a comment

Tutorial : Cast your Android Wear Screen To All

In a presentation that I recently did on Android Wear, one of my challenges was to cast my Samsung Gear Live watch to the audience, so that they can understand the basic working of the device.

androidwear

Note that these set of instructions also apply in case you are looking at setting up a development environment with a connected Android Phone and Wear Device. So except for the last step, where you have to cast the screen to all, the rest of the steps are the same. 

In the past I have done Android trainings in which I have used Droid@Screen utility to do the same and I have a write up on that titled “Project Your Android Screen to All“, if you are interested.

The Android Wear device presented its own little challenges to get things working but I will lay out the precise steps here for you to follow.

Note that these set of instructions also apply in case you are looking at setting up a development environment with a connected Android Phone and Wear Device. So except for the last step, where you have to cast the screen to all, the rest of the steps are the same. 

Assumptions

  • You have setup the Android SDK on your machine. Specifically, you need to be aware where you have setup your Android SDK and Tools and are aware of the adb command.
  • You have an Android Phone that you have paired up with your Android Wear Device. This means that you have setup the Android Wear Play App on your Android Phone.
  • You have an Android Wear Device (as of current writing, this means the LG G Watch or the Samsung Gear Live Watch) and it has been paired and setup successfully with your Android Phone.
  • You are familiar with basic usage of the Wear device i.e. going to Settings and so on.

I have a Samsung Gear Live device and the instructions will contain screenshots from there but I assume that things will pretty much be the same on the LG G Watch too!

Step 1 : Enable Developer Options on your Android Wear device

If you have setup Developer Options on your Android Phone, the steps to do that on your Wear device is the same.

1. Go to Settings on your Wear device

wear-settings-screen

2. Click on Settings and go to About

wear-about-screen

Note that you will not see the Developer Options item that you are seeing in the menu above if you are doing this for the first time. Since I have already enabled it, that’s why it is visible there. But your goal should be to get this option on your device and that is what is explained next.

3. Go to Build Number list item and tap that 7 times (yes 7 times!).

wear-build-number

Once you do that, it will display a message that it has setup Developer options successfully. This should allow you to see the Developer Options in the Settings list.

OK, now let us move over to the Android phone.

Step 2 : Enabling Debugging over Bluetooth on your Android Phone

We are now go setup the debugging over Bluetooth between your Android Phone and Wear Device. To do this, follow these steps:

1. Launch the Android Wear App on your Android phone.

2. Go to Settings from the Action Bar. This should bring up a screen as shown below:

device-1

3. By default, the option Debugging over Bluetooth will not be selected. Selected that as shown above. This will show the following:

Host : disconnected
Target : disconnected

Our goal is to get both of these in the connected state.

Step 3 : Enable ADB Debugging on your Android Wear Device

Now, switch over to your Android Wear Device.

1. Go to Settings and then Developer Options.

2. Enable that ADB Debugging and Debug over Bluetooth are set to Enabled as shown below. If they are not, just tap on them.

wear-adb-debugging

 

Once you do this, you will see the Debugging over Bluetooth enabled on your Wear Device. This screen will be persistent on your Wear device. So once you are done with your debugging and want to go back to using your watch normally, do disable the ADB Debugging from the Settings->Developer Options->ADB Debugging on your Wear Device to remove this screen.

wear-debugging-enabled

3. If you look at the Android Phone screen now, it should show the Target as connected, as given below:

device-2

 

In case you find that the Target is remaining in disconnected mode, simply toggle the Debugging over Bluetooth option and it should take effect. I have seen this happen sometimes.

Step 4 : Fire up a few ADB Commands

Great ! We now have to adb forward and adb connect commands to get the Host connected too.

To do this, launch the Command Line (Terminal). This will assume that you have the adb executable present in the PATH. The adb executable will be found typically in the <sdk>/platform-tools folder.

The two commands to give are:

adb forward tcp:6666 localabstract:/adb-hub

and then

adb connect localhost:6666

Please use any other port that you see fit. When you fire the 2nd command, a security confirmation dialog will come up on your phone. Please give the permission. This will finally, turn the Host also into connected mode and you are now all set.

device-3

Step 5 : Verify that both Android Device and Wear Device appear in the ADB devices

You could do that in two ways:

1. You can use the adb devices command to see a list of devices. On my machine, I see the following output:

Romins-MacBook-Pro:~ rominirani$ adb devices

List of devices attached
TA93305YW5    device
localhost:6666   device

The first one is my Android Phone and the other one is the Gear Device.

2. I can also launch the ADB Monitor and see that both the devices are visible:

adb-monitor

You can now take screenshots if you want from within this tool itself for any of the devices. Cool, isn’t it ?

Step 6 : Use any of the ADB Screen Casting Tools

We are now in the final lap. We just have to select which casting utility now to use for projecting any of the screens, in this specific case the screen of our wear device.

I have used 2 utilities till now that both do the job and you are free to choose any one of them.

1. Droid @Screen

You can download this utility from here. It provides you a JAR (droidAtScreen-1.1.jar). The version numbers can change over time.

To run this utility, make sure you have Java setup on your machine and that the java executable is available in the PATH. Simply go to the Terminal (Command Line) and give the following command:

java -jar droidAtScreen-1.1.jar

This will bring up a screen which shows both the devices connected as given below:

droidscreen-1

You can optionally deselect any one of them and simply cast your Wear device as shown below:

droidscreen-2

2. Android Screen Monitor (ASM) 

You can download this utility from here. It provides you a JAR (asm.jar). Thank you to Adam Singer for mentioning this utility.

To run this utility, make sure you have Java setup on your machine and that the java executable is available in the PATH. Simply go to the Terminal (Command Line) and give the following command:

java -jar asm.jar

This will bring up a screen as shown below where you can select which of the two devices you want to cast. We shall select the Wear device setup on localhost:6666.

asm-1

The utility then starts casting the Wear device as shown below:

asm-2

Final Comments

I have found both these utilities good enough to do the job but there is one big problem at the moment. Since the bridging is over Bluetooth, there is a severe lag at times before the audience can see the screen refresh. This could potentially create confusion but I am not sure what can be done more to reduce this lag.

In my tests, I found the utilities performing much better on Mac rather than Windows and additionally the ASM utility displayed a much reduced lag as compared to Droid@Screen but you are free to do your own tests.

 

Let me know via the comments if you find this useful and if you have used other tools that are better and provide a much less lag, I would be happy to learn about that.

Posted in Android, Mobile | Leave a comment

Android Wear – An Introduction

I recently conducted a presentation on Android Wear.

androidwear

The presentation was aimed at developers to understand the following:

  • What is Android Wear?
  • Android Wear – Features, Design Principles, Types of Applications
  • Android Wear – Developer Tools
  • Android Wear – Conceptual working of a sample application

Please find my presentation and feel free to use it if  you want.

If you have any specific feedback/comments – I would love to hear that.

Posted in Android, Mobile, Presentations | 1 Comment