Tag Archives: way

Java resource bundle modification to identify hardcoded strings

In Java, Internationalization of applications is supported through the ResourceBundle class. The strings which need to be translated are packaged in individual resource bundles and each language will have its own resource bundle which is loaded by the ResourceBundle Class based on the application logic.

I was involved in the modification of the Java ResourceBundle class to make it optionally decorate all the strings coming from any specific resource bundle with certain special characters like {{ or [[ so that it will be possible to visually identify any hard coded strings in the application. My role in this project was to specifically hack the XliffResourceBundle class which decorates the strings from Xliff resource bundle files. The decoration process had to be turned off or on by the user and had to obey certain rules/filters which allows the user to decorate specific strings (exclude any numbers/dates etc).
As all strings which support internationalization typically use the resource bundle class to fetch the translated strings, modifying the class itself at the root level will help one to indentify the ones which are not using this class (and hence hardcoded).
But one might ask “why not write a tool to scan through hardcoded strings using regex”. Yes , you could do this, but there are cases where this method wont be sufficient. The strings could still be following your regex pattern and might not be using the resourcebundle class to fetch the translated strings. Only modifying resource nundle class can provide a foolproof way to identify them.

Why ?
Identifying hardcoded strings is very much necessary for any software application which has to be internationalized. Especially when the software is used all over the world. Typically Arab speaking and Chinese users contribute to a major percentage of profits and they prefer localized versions of the user interface. Localizing the UI after a software has become successful will take minimal effort and the results of such a move are quite astounding.

But usually during inital phases of development, no developer will give much importance to externalizing string and coding in a way that makes localization of each UI easier. The tendency is to concentrate on the functionality of the software and make things work well. The problem comes when the functionality breaks during the localiztion process. Also from the profits point of view, localizing the software becomes important. But to the developer, who feels that putting additional efforts to just make the software work under different locales and obey the rules of different regions in showing the dates/currency and timezone implications , it is something of least interest. They are the developers who just copy past code samples from the internet and never give importance to how things work. Such negligence gives rise to performance issues too. But internationalizing existing programs also become difficult is this is the case.

Incoming search terms:

3ds max animation

Since childhood, I was always fascinated by the movies having those CG animation sequences. I always dreamt of growing up to be an animator. But it started taking shape when I installed the trial version of 3ds max 4. The ease of use and the hidden power of 3dsmax immediately stuck to me. I started spending hours together staring at the screen trying to make some cool shapes with different materials. Continue reading “3ds max animation” »

Incoming search terms:

Textoo : iPhone (and now Android) app to send free SMS using web gateways

History of Textoo

It all started back in 2010, when I had written a PHP script to send SMS through different Indian SMS gateways (see blog post on this). I would go around different websites trying to publicize this PHP script so that I would get more hits on my blog as well. In some of the blogs I had noticed different J2ME apps which send free SMS and were quite famous. But none of them had ported their apps to iphone and android platforms. A quick search revealed only the 160by2 official app which can do this.
Then I thought, Why not make a small iPhone app which can provide a client user interface to compose messages and then send the message using my own PHP script which I had already made by then. Since then, I started exploring the Appcelerator Titanium framework which was a vry impressive tool to create iPhone and Android apps using plain Javascript syntax. So I applied for both iOS developer access and Android market access by paying 99$ and 25$ respectively.
Once I got through the membership requirements, I started coding the UI in Titanium. And within a few weeks, the iPhone app was ready. The app would connect to my PHP script which would send the messages through the gateways and then return the result back to the app. The app was quite simple and had only 3 views. “Compose message” where you actually type the message after choosing your contacts from the phone addressbook, the “Outbox” view where you see the sent messages, and the “Settings” view where you add the gateways and account details.
After uploading the finished app to App store and getting it approved, I tried making it a paid app for 0.99$ The first few days I received around 1-5 sales a day. But people started complaining about some bugs in the app. And also there were a few problems with the PHP script. So I decided to make it free after a week of sales, so that I can get myself some time to fix the bugs. Since then it remained free and I spent minimal time of enhancing the app and the app continued to be downloaded for almost 6months with an avergae of 20-50 downloads a day.
I kept myself busy working on some freelancing projects on odesk.com and never actually thought of working on the app itself. But one of the iPhone projects which I had taken up on odesk got scrapped mid way through it. I did receive payment for the effort I had put in, but the app was not complete and the codebase was never used anywhere. Instead of scrapping the whole thing, I planned to use in the next version of the iPhone app and started working on the SMS app again.
But this time there was a big change. The app wouldnt send the SMS through my server/PHP script, but instead will connect directly to the gateway website. This way the load on my server would be minimal, and the gateway website would be happy to see all the HTTP requests coming from different IP addresses instead of my server addresses.
So since then, I spent most of my free time in working on the new version of the app and the new version was named Textoo Pro which can be downloaded here

What does it do ?

Textoo connects to major free SMS websites like way2sms, 160by2 etc and sends your SMS for free. It is a multi-account group-SMS app which can be thought of like a pidgin for SMS websites. You add your account username & password on to your app and instead of you going manually to the website and sending your messages, the app will automate it for you. The main purpose of the app is to give back the native texting experience to the end user even when they wish to use free SMS gateways.

Update: Android app also available.

Read more / Download the app

Incoming search terms:

About

Hey there, My Name is Kiran Kumar (so is the name of this site) and I am a 23 yr old web developer from Mangalore, India. This blog is a place for me to share my thoughts and my contributions to the open source community. Apart from that, this website is my face on the internet where I publish links to my work and a medium for you guys to reach me anytime. You have reached the about me page on my blog and I should say that this was one of the most difficult part of writing a blog, i.e, writing about thyself. So here it goes,

I am a Chemical engineer by degree, Oracle employee by the day and a freelance developer by the night

My interest in the web technologies started in late 2005 when I became a part of the web enthusiasts club at my college; NITK Surathkal. By then I had already decided that I would pursue chemical engineering as I had no clear cut idea on what specialisation to choose. But slowly my interests in web technologies started to captivate me and I started spending most of my time working on the web. In my college, I started becoming known for the websites I designed and the posters I created. In my free time I had learnt a lot of different technologies on my own. My first love was for SWiSH , an alternative to Macromedia Flash 5 at that time. I liked to create fancy text effects and make small flash movies using Swish. Slowly, I moved on to 3dsmax, to enter into the world of visual effects. But the hardware config of my desktop prevented me from getting too close to CGI. Simple 3d scenes took a lot of time to be rendered, and when the rendering time went to the magnitude of days coupled with the frequency of power cuts in India , it became an impossible feat to get anything out of it.

Then I found my new interest in PHP after one of my friends told me about it. And since then, I have been actively involved in PHP development. To me, the simplicity of the language combined with the power of the open source community always gave way to endless possibilities. Along with PHP came all its friends. Javascript, HTML, Flash, Photoshop, I loved them all !

I worked on a couple of different softwares/technologies and here is the list of things which I can recall right now :

  1. Rating: ★★★★★★★★★☆ PHP 5
  2. Rating: ★★★★★★★★☆☆ ExtJS framework
  3. Rating: ★★★★★★★★☆☆ Flash CS3 & Actionscript 3 -
  4. Rating: ★★★★★★★½☆☆ HTML & CSS :
  5. Rating: ★★★★★★★☆☆☆ Javascript
  6. Rating: ★★★★★★★☆☆☆ Joomla 1.5 component, plugin creation
  7. Rating: ★★★★★★½☆☆☆ Selenium & QTP UI automation
  8. Rating: ★★★★★★½☆☆☆ Titanium framework for iPhone & android app development
  9. Rating: ★★★★★★½☆☆☆ Photoshop
  10. Rating: ★★★★★★☆☆☆☆ VBscript & VB app design -
  11. Rating: ★★★★★☆☆☆☆☆ Google sketchup 3d modelling & rendering
  12. Rating: ★★★★☆☆☆☆☆☆ Facebook API & Twitter API
  13. Rating: ★★★★☆☆☆☆☆☆ Poser animation
  14. Rating: ★★★★☆☆☆☆☆☆ 3dsmax
  15. Rating: ★★★★☆☆☆☆☆☆ Matlab coding & GUI
  16. Rating: ★★★☆☆☆☆☆☆☆ Autocad (2d only)
  17. Rating: ★★☆☆☆☆☆☆☆☆ HP Quality center OTA API

I worked on a small content management system of my own which , in the final year of my college this helped me get a job in Oracle and be a part of Content Management (ECM) team in Oracle. At Oracle, I am a part of Middleware suite globalization team where I work with people from Beijing, Tokyo and San Francisco on Oracle’s acquired as well as in-house ERP applications. The toughest part of the job is learning to understand the accents used by different people.[Update: I now work as a mobile developer at an e-commerce startup flipkart.com]

Until recently, I was only involved in web based projects, but the day I can across Appecelerator’s Titanium framework, I said ‘this is definitely my cup of tea’.For the last 6 months, I have been busy  developing native applications for iPhone & Android using the Titanium framework and I absolutely love it.[Update: I have started hating it now. Its very difficult to manage titanium projects when they become big]

I am passionate about my work and I always love to learn new things. I hate limiting myself to a single domain and always push myself hard to explore new interests which can keep me occupied all the time. People may call it ‘lack of focus’ , hyper-wandering-mind or a Jackass of all trades ! But its just the way I am designed. There hasnt been a day where I dont get a tingly feeling about learning or doing something new. But most of my work have been in varied domain, and are unorganized.

I think that much text should be good enough for you to give a glimpse into my life, if you like to get in touch with me send me a mail, or chat with me, or follow me on twitter or drop in a comment.

Incoming search terms: