Skip Ribbon Commands
Skip to main content

Meet Mr. Ashish Shukla
Student and Developer
Mr. Ashish ShuklaThe best developments in software have long been known to come from the academic community. Student developers have always been the most innovative and conducive to new approaches. In the field of Indic Computing solutions one such student developer is Ashish Shukla. Ashish is obtaining a Bachelors Degree in Computer Applications from Indira Gandhi National Open University and devotes his spare time to independent software development. We spoke to Ashish about his solution, LibXMS2 and how it can contribute to Indic Computing.
Please tell us something about yourself
AS: I am 20 years old, and am currently pursuing my BCA degree from Indira Gandhi National Open University. My interests include programming and developing software solutions. I want to learn each and every thing about computers. I live in New Delhi.
My interests are Computer Architecture, Operating Systems Design, Compiler Design, Maths, Algorithms, etc.
I got into programming at the age of 9 yrs. VM (Virtual Machine) Technologies .NET Framework interested me a lot. I am keen on learning more Windows Longhorn programming, XAML using Xamlon, F# (a Microsoft Research Language), mobile technologies like J2ME and .NET Compact Framework. I recently started to contribute for Indic languages. The project I made for the RAD 203 contest is also an Indian Language Project in Hindi.
Ashish, you’ve listed your solution LibXMS2 on the BhashaIndia Solutions Directory. Tell us a little about LibXMS2 and how it came about
AS: LibXMS2 is a mobile application library which can be used to interface a mobile phone with a PC to use Indian languages on the mobile. You can send SMS, edit and manage the phone book, and so on. The idea started with SMS, when a friend suggested it, and then I added more features with time. I have listed it on the solutions directory at BhashaIndia so that more people can learn about it and use it. LibXMS2 is written in Microsoft .NET and can be used by any phone which uses a data cable.
What are the features of the project? What are the functions that LibXMS2 provides?
AS: You can send SMSs from your software using this library. You can write address book, message store synchronization software using this library. You can even get battery charging status, cell location using this library. For example, say you phone is connected to your laptop, and suddenly battery charge status goes below 40%, so you can log that message into event log, or even trigger the charger to start charging the phone. You can send Flash SMSs, Unicode SMSs etc. There is one limitation, currently only one SMS can be sent at a time. A big chain of SMSs or bulk messaging is not possible as of now.
What features of .NET have you used in your project?
AS: I've developed this project in Microsoft .NET Framework 2.0.40607 (beta) in Microsoft Visual C# Express IDE. This project doesn't use any kind of localization as such. I've used the System.IO.Ports namespace. This namespace provides classes used to interface with serial ports (COM1, COM2 etc.). The System.IO.Ports.SerialPort class is used for opening the port. I've also used System.Windows.Forms namespace for designing a sample application based on the class library LibXMS2. I've used new controls which are provided in the System.Windows.Forms namespace, which gives the entire application an Office 2003 like UI appearance. In addition to this I have also used the System.IO namespace for streaming I/O. And finally the Generic Collection classes (System.Collections.Generic namespace), which are introduced in .NET Framework 2.0, have been used for storing the input queue. I've also used WMI for querying the available modems. Although there is a function named QueryDosDevices() (or similar) in Win32 API which lets you know how many COM* devices are present.
How did you enable Unicode support, what did you use for this purpose?
AS: LibXMS2 does all the message and address book transactions with mobile phone in Unicode. This enables it to use any language that supports the Unicode standard. I've used Hexadecimal Transformation Format. I am not sure about the implementation details of the transformation format, but it is nothing but the hexadecimal equivalent of the character codes in Big-Endian byte order, i.e. most significant byte first, as a string for transferring Unicode characters between the mobile phone and the PC.
How does the interface to the mobile phone work?
AS: This library interfaces with modem built into the mobile phone. Usually when a mobile phone is interfaced with a computer via infrared, USB, RS-232 or Bluetooth, it is exposed to the computer as a modem and appears as the COM3 or COM4 port. These ports are not physical but logical in nature. This is also the case when a PCI internal modem is plugged in to the system. The modems can then be accessed via port input/output methods available with .NET. All modems support a standard command set known as AT Command Set which is an industry standard for interfacing with computers. The GSM modems also support some commands which are known as GSM extensions. Some commands are specific to a particular mobile phone, and some are standard and common to all phones. I have used these standards to interface.
What kind of mobile phones can support LibXMS2?
AS: LibXMS2 can be used by any mobile phone which has GSM modem capability. The phone should also expose itself as a serial port to the computer when connected to it by any one of the connection mechanisms such as infrared, USB, Bluetooth or RS-232. Finally the phone should support the AT command set in order for the LibXMS2 functionality to be usable with it.
Can this support be extended to cheaper mobiles?
AS: Unfortunately, cheaper mobiles don't provide any methods of interface with PCs. Also programming support is very limited on the lower end models. So LibXMS2 cannot be extended to older models like Nokia 3315 etc.
What are the OS requirements on Windows? Can we extend this to older versions of Windows?
AS: The OS requirements are same as of .NET Framework 2.0.40607 and later builds. Any version of Windows which supports this .NET framework version can also run LibXMS2.
Do you plan to add more features to LibXMS2? Do you have any plans of commercializing it?
AS: Initially I did plan to add more features, but then the project got sidelined for a while due to other time concerns. Also in order to test more features, I would have needed a variety of mobile phone instruments, which were not available. I'd only one mobile phone (Nokia 6610) to test my application. So, whatever that phone instrument supports has been added for the time being. As of now I have no plans of marketing LibXMS2. I want everyone to be able to use this software. That is the reason I have put it up on a community site like BhashaIndia, so that more people can download it and learn about it.
You recently won the third place in the BhashaIndia Claim to Fame contest. Tell us about the experience
AS: It was a great experience to have my work noticed. I had sent an ISCII to Unicode converter, which has the features like conversion ISCII-91 or IS13194:1991 to Unicode format. It can convert text from Devnagari, Bengali, Tamil, Telugu, Oriya, Kannada, Malayalam, Gujarati, Gurmukhi. Assamese is not supported because there is no equivalent Unicode Sub range in Unicode. The converter can also be used to convert ISCII documents to Unicode on the web. All the conversion is done on the fly.
Would you be interested in working further with language computing?
AS: With Yes, I'm interested in working further in language computing. It would be great if we could have our computer in our own language, from BIOS to OS with everything internationalized. I am very interested in doing some pioneering work in this field.

This site uses Unicode and Open Type fonts for Indic Languages. Powered by Microsoft SharePoint 2013.
©2016 Microsoft Corporation. All rights reserved.