Sunday, November 20, 2011

Cross-Platform Mobile development tools/frameworks

Was exploring some cross-platform mobile frameworks in the market. Even though there are lot of them in the market. Couple of open source solutions sounded very impressive.
1. Rhomobile
2. PhoneGap

Tried some samples on Rhomobile, yet to try phone gap. In a way these frameworks saves lot of time & cost involved in developing application specific to an operating systems / app markets. Instead of working on a specific SDK's it's a no-brainer to choose such frameworks. Write once & port to any device type. How cool it is !!!, way to go...

Sunday, July 31, 2011

web-log-analyzer - Hosted a project in google code base today

Hosted a project in google code base today "web-log-analyzer". Simple Utility to analyze your web access log to help you identify potential traffic, response times (min/max/avg), most used URL's etc.

http://code.google.com/p/web-log-analyzer/


Garbage Cat - Analysis of you GC Log

Came across this handy utility(garbagecat) to analyze Garbage Collector logs. Simple to use, output contains nice analysis report & recommendation on your GC.

Refer the documentation for more details on the usage.

Sunday, June 12, 2011

My Test Drive on JBoss AS 6.0.0

Took a test drive of JBoss 6.0.0 this weekend, thought would be nice to summarize my observation (with the background of using JBoss 4.3.0 version for my current projects).

JBoss 6.x.x is a re-architecture of JBoss 4.x with new the kernal (JBoss Microcontainer). Good news for application developers not much of change to the folder structure with exception of few new configuration files & some old ones were moved around.

High Lights
  1. Default support to Java EE 6.0 Specification support.
  2. JSF 2.0 support with integration with Bean Validation (JSR-303)
  3. CDI (Contexts and Dependency Injection) JSR - 299 , Weld is JBoss project to support CDI.
  4. Hornet MQ is the default & recommended messaging infrastructure.
  5. New Apache CXF-based JBossWS stack.
  6. JBoss Embedded AS
  7. New Admin-Console to ease the server administration.
Admin-Console
  1. New Admin-Console is a refresher, user friendly with tree based navigatio.
  2. Lot of resembles to Weblogic Admin console :), never mind it does the purpose.
  3. All configuration parameters are persisted for good, unlike the JBoss 4.* version.
  4. "Service Binding Manager" Component externalizes all port configuration for a given/running profile. This saves lot of time fiddling with the raw .xml files :) as in 4.3.0.
  5. Applications (.war, .ear) can be added/updated dynamically using the console.
  6. Queues & Topic can be added dynamically using the console.
  7. Database connection pools can be added dynamically using the console.
  8. You have provision to restart/start/shutdown the server using the admin console.
  9. Very detailed Garbage Collector / Memory pool info on the console.
  10. The Metric tab for every component provides you useful statistics/metrics an the component. Ex: Selecting a queue provides (Message count, consumer count etc.)

JMX-CONSOLE
  1. JMX-CONSOLE is still available, but with a new look & feel.

Others
  1. Jboss VFS (Virtual File System), help yourself reading this article to understand.
  2. Jboss Web is the default webserver offering from JBoss 5.x.x, build on top of Tomcat.
  3. Felt the Server startup & Shutdown is slower than 4.3.0 GA :( hoping minor tweaks should take care of it.
  4. Couldn't find any documentation on migration from 4.3.0 to 6.0.0, will keep looking...
Reference
Jason Greene - What's new in JBoss AS 6.0.0
Admin Console user guide
www.jboss.org
www.java.dzone.com

Friday, June 10, 2011

Power of AccessLog & Tomcat Valve configuration

In recent past we faced quite a performance issues resulting in different modes of collecting performance statistics from web server. One of the handy tool was web server access logs, all I had to do is configure my webserver to write access logs. It dumps all the requested information (URL, Timestamp & Even roundtrip/response time of a request), How cool... with zero additional code you get response time of each request.

Link below details of access log configuration on tomcat, this could vary depending on the type of webserver used. But every webserver would have a access log by default.
http://tomcat.apache.org/tomcat-5.5-doc/config/valve.html#Access_Log_Valve

All different types of valves supported by Tomcat, most useful of it all is "Request Dumper" valve (dumps all request detail) & "Access Log" Valve.
http://tomcat.apache.org/tomcat-5.5-doc/config/valve.html#Request_Dumper_Valve

Example, below configuration (%D %T) will log response time for a request & timestamp of the request.


Valve className="org.apache.catalina.valves.AccessLogValve" prefix="localhost_access_log." suffix=".txt" pattern="%D %T"

Lot of tools can help you analyze the access logs & provide more insight of the usage response time etc.
http://www.nltechno.com/awstats/awstats.pl?config=destailleur.fr

Conclusion: We all know it's mandatory for a web server to have an access log,
but the good part is this can greatly ease performance study & tune
your web application.

Monday, December 27, 2010

How to use Intent to pass object ?

During my eZeditor app development I figured out how to pass an object using intent from one activity to another.

Example:
  1. If you want to pass an Object (Note.java) from one activity to another.
  2. The Note.java should implement android.os.Parcelable interface.
  3. Before you say startActivity(intent) on the source activity to navigate.
  4. Say intent.putExtra("com.ez.editor.note", note); where note is an object.
  5. On the target activity this.getIntent().getParcelableExtra("com.ez.editor.note"); should return you the object that you intent to pass.
public class Note implements Parcelable {

public static final Parcelable.Creator CREATOR = new Parcelable.Creator() {

public Note createFromParcel(Parcel in) {
return new Note(in);
}

@Override
public void writeToParcel(Parcel out, int flags) {
out.writeString(name);
out.writeInt(index);
}

public Note[] newArray(int size) {
return new Note[size];
}

};
}

Android eZedit (My first open App)

Application Name: eZedit (Android Application).

API Used:
SQLLite Database, Custom View (onDraw), Usage of intent, Touch/Click Listeners & etc.

Objective:
Simple android app let's you "Write your notes in your own handwriting" by touching the screen.

Android Eclipse project:
eZedit.zip

Android installable:
eZedit.apk

Android Version:
Android Platform 2.2 / API level 8

Disclaimer:

  1. I have tested it on an emulator, never on a real phone.
  2. No warranty & support will be provided.
  3. The code is open for reuse.
  4. Try at your own risk :)

Wednesday, July 21, 2010

Is there a way to surprise your loved ones after "Death" ?

Even writing "Death" makes me sad & terrified, but sometimes things change very little even if you want to. Every one of us has an end to this life, but our love for people around doesn't change much. If you have seen the movie "P.S. I love you", I felt amazed that someone can plan so much after his death to surprise and gift his wife at perfect instances. That's exactly what i am talkin about.

Is it possible or any entrepreneur out their thinking about such a service, were someone can subscribe and pay for a service that need to be performed after his/her death :). Typically, Schedule all the moments and time to gift and surprise his/her loved ones.

I know I sound crazy here, not all that shown in movies can be brought to reality, but if it really makes someone special to you happy, Why not ?

Sunday, July 11, 2010

8 Traits of a Great Leader

One question keeps popping up all the time "What makes a true leader ?". In all my years of experience, i have seen many leaders whom i really admire, worship & imitate (to be frank). I am very sure everyone of us would have such icon, and their influence on each one of our work hence this is "My Version or Belief of a Great leader".

  1. Style Of Leadership: There is no one single recipe to be a great leader, first trait is to be yourself and have a style of your own. Effectiveness of a leadership is directly proportional to the context (environment, industry, nature of work & type of people you handle).
  2. Courage: You step back, your team does the same. As a leader you need to be man enough to speak when you have to. (customer, top management doesn't matter).
  3. Talk less: Show "How to get things done?", rather than lecturing for hours.
  4. Understanding individuals: Every human being is unique and they get motivated for some, and may not for some. You need to understand, better than being a clown.
  5. Panic - Band Wagon: Don't jump in to the panic band wagon when the whole team is already in their. These are times of fight back and thinking rationale and no time for panic.
  6. Innovation: Just like how one goal can bring the spirit back into the team. It's important to keep innovating, this means a lot of positive energy, openness to compete.
  7. Be a real captain: You should be the last person to jump from a wrecking ship, Believe me this means a lot of guts.
  8. Winning Habit: Everybody wants to be on a winning team, winning is a critical factor for further success as a leader. All you can do here is to give yourself a best chance, leave the rest to the fate...

Search This Blog

Loading...