Angsuman Chakraborty
August 19th, 2008

I tried delving into Ruby couple of times in the past. Every time I had this weird feeling of what am I doing here when I am already very well conversant with a simpler language - Java, which gives me everything I need. Ruby just felt very syntax rich, may ways and interesting tricks to do stuff and so on.While these may be appealing to a script-kiddie, nice syntactical sugars do not help much in the long run or help you create robust code (unless you love flying whales and a service which fails every other day).
I am not afraid of developing CRUD interfaces nor do I find it time consuming. What value can I get from RoR? Every time I delve into Ruby & RoR, I come back feeling unsatisfied. What am I missing here?
Read more (315 words) »
Filed under Database, Enterprise Software, Headline News, Java Software, Open Source Software, Programming, Ruby | Feedback | RSS 2.0 | Email this Article
Angsuman Chakraborty
August 19th, 2008
Also: How To Flexibly Pass JVM parameters to Apache Ant Java (Runtime) Task
Apache Ant is an excellent Java based build & deployment system using XML configuration file. In Ant properties are extensively used to configure tasks, conditionally run targets and more. In short they are an intergral part of build system. My requirement was simple. I wanted to pass JVM arguments to the Java runtime. However sometime I wanted to invoke it without passing any special runtime arguments. Unfortunately jvmarg element doesn't like it when its value is an empty string or even a string with spaces. Finding no way to fool it, I then tried to find a way to set the property to something when it is initially not set (while invoking). This proved surprisingly hard to do. Here is an elegant (I think) solution I came up with. Read more (231 words) »
Filed under Enterprise Software, Headline News, How To, Java Software, Open Source Software, Programming, Tech Note | Feedback | RSS 2.0 | Email this Article
Angsuman Chakraborty
August 19th, 2008
Apache Ant is an excellent and popular Java based build system. It has several built-in commands (tasks in Ant lingo) one of which allows you to create Jar file from your existing class file and resources. What if you wanted to include not just class files but selective contents of other jar files too and make a single big jar file?
Ant provides an undocumented way to include the contents of multiple jar files within a single jar file.
Read more (180 words) »
Filed under Enterprise Software, Headline News, How To, Java Software, Open Source Software, Programming, Tech Note, Web | 3 Comments | RSS 2.0 | Email this Article
Angsuman Chakraborty
August 19th, 2008
In earlier versions of Db4o we used Db4o.configure() to configure all Db4o database globally (across all ObjectContainer). However in 7.2 (and above) versions of Db4o Db4o.configure() has been deprecated and it is suggested to use Db4o.newConfiguration() instead. Unfortuanately they do not clearly mention anywhere that these two functions are not equivalent. I assumed they are equivalent like Db4o.set()is equivalent Db4o.store() or Db4o.get() is equivalent to Db4o.queryByExample().
Read more (201 words) »
Filed under Database, Enterprise Software, Headline News, How To, Java Software, Open Source Software, Programming, Tech Note | Feedback | RSS 2.0 | Email this Article
Angsuman Chakraborty
August 18th, 2008
Db4o is an excellent open source object database for Java & .NET platform by Carl Rosenberger's team. I highly recommend it for rapid prototyping and RAD. It transparently handles object storage and retrieval. Today I will talk about the single biggest gotcha in Db4o which is bound to stumble any newcomer as well as pros who haven't been using it in a while.
In Db4o you can create an complex objects with other objects as its member and Db4o will save them all like a champ with a single set() (now store()) method. So intuitively you try to use the same concept for updating the database. This is where you will stumble. Db4o by default doesn't recurse when updating an object.The stranger aspect is that when you save it to the database with a store or set and then retrieve it again it will appear to work fine. However after you close and re-open the database your data will be lost! This is the single most baffling feature I found in Db4o.
Read more (318 words) »
Filed under Database, Enterprise Software, Headline News, How To, Java Software, Open Source Software, Programming | 1 Comment | RSS 2.0 | Email this Article
Angsuman Chakraborty
August 17th, 2008
Smack is an excellent Java XMPP Library. While creating a pubsub broker in XMPP I faced a strange issue where few messages were missing. I then found a simple way to debug the Smack library. Just start your JVM (java) with the following option:
Read more (81 words) »
Filed under Enterprise Software, Headline News, How To, Java Software, Open Source Software, Programming | Feedback | RSS 2.0 | Email this Article
Angsuman Chakraborty
August 17th, 2008
Ant is a popular, high quality Java based build and deployment tool from Apache Foundation. You can invoke Java programs in ant using the java task. Optionally you may want to pass it command line arguments. Here is how you can do it.
Read more (89 words) »
Filed under Enterprise Software, Headline News, How To, Java Software, Programming | Feedback | RSS 2.0 | Email this Article
Angsuman Chakraborty
August 6th, 2008
The tutorials are an intensive one-day overview of the fundamental concepts of the Ruby on Rails Web programming framework, presented by the UC Berkeley RAD Lab. The tutorials consists of six sections of approximately one hour each.
Read more (216 words) »
Filed under Enterprise Software, Headline News, How To, Programming, Ruby, Web, Web 2.0 | 1 Comment | RSS 2.0 | Email this Article
Angsuman Chakraborty
July 21st, 2008
Translator Plugin Gold (for WordPress blogs) provides automatic machine translation of blogs in 32 languages (more will be added soon) - German, Spanish, French, Italian, Portuguese, Japanese, Korean, Chinese Simplified, Chinese Traditional, Arabic, Dutch, Greek, Russian, Norwegian, Brazilian Portuguese, Bulgarian, Croatian, Czech, Danish, Finnish, Hungarian, Icelandic, Latin American Spanish, Filipino, Polish, Romanian, Serbian, Slovenian, Swedish, Welsh, Turkish and Latin. We provide unlimited free updates and upgrades and 6 months of free support.
Translator Plugin Gold has a lucrative affiliate program too. You can make a cool 30% from each sale!
The new features and fixes in version 1.2 (free upgrade for existing customers) are:
New Features
- Directory browsing of translator plugin directory has been disabled for better security.
- The ability to switch off translation statistics (from translator option page under Basic->Statistics->Disable Statistics section). You may gain some performance by switching off the statistics simply because it uses a database query to store the data. You can still use the Statistics widget to display your existing statistics. However it will not be updated if you decide to switch off stats. You can again switch it on any time.
- In Translator Plugin Gold 1.2 we added a new hook / callback facility to enable you to view and process the translated page before it is served to the end user. Please refer to developer guide to know how to use it. The importance of this hook cannot be understated.
You can use the tgTranslatorPostFilterHook to edit / modify the content of the translated pages before it is served to the user. You can also take action based on the content or engine used to translate the page.
This hook can be used to handle errors in translation or even catch and process new types of errors. The actions include 1. ability to send custom error pages, 2. re-direct to original pages (for example in case of error), 3. displaying custom error messages and more. Few use cases for this hook are:
- Provide customized title, meta tags & descriptions for translated pages to eliminate concerns about duplicate content. Check out the translated pages in simple thoughts for some usage examples (hint: look at the meta tags and title).
- Provide custom error pages or re-direct to original page when translator is unable to translate a page (due to overload or temporary unavailability of engines).
- Filter translated pages
- Add your own content to translated pages like advertisements etc. You can also do it using existing translator API. However this provides full control over processing translated pages before it is served to the end-user.
Read more (704 words) »
Filed under Company, Headline News, PHP, Pro Blogging, Programming, SEO, Taragana, Translator Plugin Gold, Web, Web 2.0, WordPress, WordPress Plugin | 1 Comment | RSS 2.0 | Email this Article
Angsuman Chakraborty
July 21st, 2008
Translator Plugin Pro (for WordPress blogs) provides automatic machine translation of blogs in 13+1 languages (many more will be added soon) - German, Spanish, Russian, Arabic, Dutch, Greek, French, Italian, Portuguese, Japanese, Korean, Chinese Simplified, Chinese Traditional and optionally Norwegian (note: we provide 32 languages with Translator Plugin Gold). We provide unlimited free updates and upgrades and 6 months of free support. The new features and fixes in version 5.2 (free upgrade for existing customers) are:
New Features
- Directory browsing of translator plugin directory has been disabled for better security.
- The ability to switch off translation statistics (from translator option page under Basic->Statistics->Disable Statistics section). You may gain some performance by switching off the statistics simply because it uses a database query to store the data. You can still use the Statistics widget to display your existing statistics. However it will not be updated if you decide to switch off stats. You can again switch it on any time.
- In Translator Plugin Pro 5.2 we added a new hook / callback facility to enable you to view and process the translated page before it is served to the end user. Please refer to developer guide to know how to use it. The importance of this hook cannot be understated.
You can use the tgTranslatorPostFilterHook to edit / modify the content of the translated pages before it is served to the user. You can also take action based on the content or engine used to translate the page.
This hook can be used to handle errors in translation or even catch and process new types of errors. The actions include 1. ability to send custom error pages, 2. re-direct to original pages (for example in case of error), 3. displaying custom error messages and more. Few use cases for this hook are:
- Provide customized title, meta tags & descriptions for translated pages. Check out the translated pages in simple thoughts for some usage examples (hint: look at the meta tags).
- Provide custom error pages or re-direct to original page when translator is unable to translate a page (due to overload or temporary unavailability of engines).
- Filter translated pages
- Add your own content to translated pages like advertisements etc. You can also do it using existing translator API. However this provides full control over processing translated pages before it is served to the end-user.
Read more (618 words) »
Filed under Headline News, PHP, Pro Blogging, Programming, SEO, Translator Plugin Pro, Web, Web 2.0, WordPress, WordPress Plugin | 1 Comment | RSS 2.0 | Email this Article
|
|