March 26, 2006
EQO
EQO is an innovative mobile service which lets you use Skype from a mobile phone. EQO acheives this by running a client on the user`s desktop and mobile phone.
March 24, 2006
Sun Grid
Sun Grid is now available in US. Just $1/CPU-hr. Cool URL too. (network.com).
http://www.network.com/
http://www.network.com/
March 23, 2006
Nutch
March 18, 2006
XCA
XCA is a very user friendly GUI to manage X509 certificates and RSA keys. Very useful to generate custom certs like Self Signed, chain of trust CAs etc.
J323
J323 is a java based H323 call / media control engine, with JTAPI based programming interface.
Media control is done using JMF (Java Media Framework).
Media control is done using JMF (Java Media Framework).
March 17, 2006
JRat
JRat (Java Runtime Analysis Toolkit) is a profiling tool to collect timing stats, trace logs, response time etc of Java apps.
March 16, 2006
JTAPI
JTAPI (Java Telephony API) is an API for java based telephony applications. It provides easier interface to create apps to do calls , integrate it with backoffice apps to develop call center applications etc.
Thru "Provider" interface, the apps can be ported to any telephony hardware providers supporting JTAPI. One more advantange is, these providers can be protocol specific like SIP, H323 etc and still the apps can have common interface to do call management.
Thru "Provider" interface, the apps can be ported to any telephony hardware providers supporting JTAPI. One more advantange is, these providers can be protocol specific like SIP, H323 etc and still the apps can have common interface to do call management.
March 15, 2006
S3
Online Storage is picking up again. Amazon`s S3 (Simple Storage Service) is an online storage service. It also has a Web Service API to store/retrieve data.
March 14, 2006
libMicro
libMicro is a OS benchmarking tool to test the performance of system/lib calls of OS. Its part of opensolaris. It generates a HTML report.
Performance Anti-Patterns
acmqueue has a nice article on Performance Anti-Patterns. Very interesting to read.
March 12, 2006
My first J2ME app on RAZR
RAZR rocks. Here is one more reason why i love this phone. I just uploaded my first J2ME app (Hello J2ME !) to RAZR and it worked.
Here are the steps
Here are the steps
- "Java App Loader" must be enabled. To check whether its enabled , go to Settings->Java Settings. There should be a menu called "Java App Loader"
- Download Motorola`s MIDway tool , needed to export JAD files to the phone. This is part of the Motorola`s J2ME SDK
- Write the J2ME app and package it into JAD. Refer to this doc for more details
- The USB cable can be used for transfer. Make sure the COM port is set correct in MIDway tool
- Click on "Java App Loader". "Insert cable now" msg appears
- Open the MIDway tool now. It should now connect to the Phone.
- Once connected the JAD can be uploaded to the phone and it will appear under "Games & Apps"
Java FTP libraries
JavaWorld has a nice benchmark on various Java FTP frameworks. I use Sun JDK based home grown FTP framework, since we have some product specific cases which needs fine tuning.
For daily use, I prefer to use scp compared to ftp, for its ease of use
For daily use, I prefer to use scp compared to ftp, for its ease of use
March 11, 2006
HP & Telecom

HP has released the following telecom related products.
- SIP stack called "OpenCall USP SIP" which has both JAIN Java APIs and C/C++ based APIs
- SDK for developing Telecom services called "Open Call MP SDK" which has support for Voice XML, ASR , TTS etc
Web Developer extension
Web Developer is an extension for Firefox , which has lot of web development tools. Some of the features are display CSS styles applied to Elements, live editing etc
March 10, 2006
JODE

JODE (Java Optimize and Decompile Environment) is a Java .class file decompiler. As an optimizer it can obfuscate, remove debugging info etc.
Parsing SSL Certificates
How to parse base64 encoded certificate ?
By using java.security.cert.CertificateFactory API. This will be useful if custom certs needs to be uploaded and it has to be presented to the user in a more readable format.
sample from javadoc
By using java.security.cert.CertificateFactory API. This will be useful if custom certs needs to be uploaded and it has to be presented to the user in a more readable format.
sample from javadoc
FileInputStream fis = new FileInputStream(filename);
CertificateFactory cf = CertificateFactory.getInstance("X.509");
Collection c = cf.generateCertificates(fis);
Iterator i = c.iterator();
while (i.hasNext()) {
Certificate cert = (Certificate)i.next();
System.out.println(cert);
}
How Products are made...
An interesting site which provides info on how various products like Air Conditioner, Jeans, Gum, CD, DVD Player etc are made. It includes detailed manufacturing process. Very useful and informative.
March 09, 2006
Java / SNMP

SNMP is a widely used network management protocol for monitoring network systems/hardware etc. SNMP4J is a Java based API for SNMP. It can be used to write agents, clients and also to send SNMP traps.
Wildcard & Classpath
Having Wildcards in ClassPath is one of the long awaited features in Java. The workaround is to have custom launchers, custom class loaders etc.
Now Mustang has support for Wildcards in Classpath.
Now Mustang has support for Wildcards in Classpath.
March 08, 2006
JNode
JNode (Java New Operating System Design Effort) is a Java based OS. Most parts of the OS are written in Java.March 07, 2006
Next Net 25
CNN Money has listed 25 web 2.0 companies that are reinventing the web. Great to see Digg, YouTube, Technorati, Wink, SIPphone, 37Signals in the list.
XUL
XUL (XML User Interface Language) is a language used to define rich web applications in a simple way.
For example to create menus in web applications, it takes lot of complicated JS code. But with XUL, using menu and menuitem elements, it can be easily created.
XUL is supported in Firefox,Mozilla and other Gecko based browsers.
For example to create menus in web applications, it takes lot of complicated JS code. But with XUL, using menu and menuitem elements, it can be easily created.
XUL is supported in Firefox,Mozilla and other Gecko based browsers.
March 06, 2006
serial to tcp
We have a CPE device which has only serial port access for their GUI and this device sits in our lab. So I was looking for a tool which can do serial-to-tcp forwarding, so that i can access this device from my office and came across interceptty.
The following simple command will do it, to make Serial Port 0 avl thru port 4001.
The following simple command will do it, to make Serial Port 0 avl thru port 4001.
interceptty -q -s 'ispeed 19200 ospeed 19200' /dev/ttyS0 '@0:4001'
TIBCO GI

TIBCO`s GI (General Interface) is an IDE/framework to develop rich internet apps using AJAX and other related technologies. The IDE or the Builder itself is built on GI framework which runs within the browser itself.
March 05, 2006
Preemptive Kernel
Preemption is the concept where a high priority process will preempt a running process which has low priority.
To be more clear, Preemption happens at 2 levels, user and kernel. Without preemptive kernel, a high priority process will not given a chance to run whenever its ready, if a low priority process is running in kernel space.
In non-preemptive kernel, a high priority process can override a low priority process, only if the low priority process is running in user space
The main Linux Kernel has inbuilt support for this starting from 2.5. Kernel Preemption can be enabled by setting CONFIG_PREEMPT=y in kernel config.
To be more clear, Preemption happens at 2 levels, user and kernel. Without preemptive kernel, a high priority process will not given a chance to run whenever its ready, if a low priority process is running in kernel space.
In non-preemptive kernel, a high priority process can override a low priority process, only if the low priority process is running in user space
The main Linux Kernel has inbuilt support for this starting from 2.5. Kernel Preemption can be enabled by setting CONFIG_PREEMPT=y in kernel config.
March 04, 2006
24 Moments from 24 Yrs
Sequoia

I was looking for a Database Clustering and LB solution and came across Sequoia, an open source implementation which is based on C-JDBC.
I have to try it out and see how the caching works in case of writes and how much it depends on DB replication.
March 03, 2006
NetBeans / remote debugging
NetBeans has a feature to do remote debugging against a running JVM. To use this, the JVM should be invoked with the following debug options, to create the debug listener.
-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=4000 -Xdebug -Xnoagent -Djava.compiler=NONE
Provide the host/port mentioned above in NetBeans debug session to attach to the JVM.
jdb (java debugger) that comes with JDK can also be used for remote debugging.
-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=4000 -Xdebug -Xnoagent -Djava.compiler=NONE
Provide the host/port mentioned above in NetBeans debug session to attach to the JVM.
jdb (java debugger) that comes with JDK can also be used for remote debugging.
The N+1 problem
ORM is a way to have Object mapping to Relational DB. It has it own pros and cons. One of the feature called "lazy fetching" can be good and evil , depending on the way, this feature is used.
lazy fetching specifies whether any data from associated tables needs to be fetched or not, when a table is used for select.
Let says for eg. Employee and Project tables.
Enabling lazy fetch is good when...
Employee is queried for its attributes alone and there is no need to fetch attributes of Projects.
Enabling lazy fetch is bad when...
Employee is fetched to get the projects he/she is working on , using employee.getProjects(). In this case, it may lead to the N + 1 problem, where N queries are fired to fetch 'n' of the associated records.
One way to avoid N + 1 problem, is to enable outer-join.
lazy fetching specifies whether any data from associated tables needs to be fetched or not, when a table is used for select.
Let says for eg. Employee and Project tables.
Enabling lazy fetch is good when...
Employee is queried for its attributes alone and there is no need to fetch attributes of Projects.
Enabling lazy fetch is bad when...
Employee is fetched to get the projects he/she is working on , using employee.getProjects(). In this case, it may lead to the N + 1 problem, where N queries are fired to fetch 'n' of the associated records.
One way to avoid N + 1 problem, is to enable outer-join.
March 01, 2006
SAML and SSO
SSO (Single Sign On) is a concept used to authenticate/authorize users across multiple web domains, without the need for login at each of the domain.
Most SSO products have their custom way of storing these SSO tokens that gets passed between websites either thru Cookies or as GET/POST params. The problem with this approach is that all the domains that are part of SSO must use the same product.
To solve this issue, SAML comes to help. SAML (Security Assertion Markup Language) defines the XML messages needed to pass these SSO tokens across domains. This way any SAML enabled SSO product can be used.
Most SSO products have their custom way of storing these SSO tokens that gets passed between websites either thru Cookies or as GET/POST params. The problem with this approach is that all the domains that are part of SSO must use the same product.
To solve this issue, SAML comes to help. SAML (Security Assertion Markup Language) defines the XML messages needed to pass these SSO tokens across domains. This way any SAML enabled SSO product can be used.

