HeartBeat

I am starting a project called HeartBeat

HeartBeat phase 1 will consist of the following features:

1. Server script configuration
2. Implementation of libtrilead for Java SSH
3. Creation of libheartbeat
4. Basic GUI under Swing

Users will be able to configure almost any service and start and stop it remotely through SSH.

Imagine a single GUI to manage all your servers around the world with a simple click!

Most popular windows – linux equivalent softwares

0) Windows – Linux

1) uTorrent  – rTorrent

If you like uTorrent, you will definitely like rTorrent. Its much simpler and easier to use!

2) Remote Desktop – rDesktop/VNC

If you want to share desktops, use VNC. If you want to Remote desktop to a windows machine from a linux system, use rDesktop

3) Yahoo/MSN – Pidgin

Your all in one instant messenger. Gives you better features: Major one being, you can login with multiple accounts on the same system! Isn’t that cool?!

4) IE – Firefox

Ok, we all know how good firefox is!

5) Outlook – Thunderbird

DONT USE OUTLOOK unless you want to screw your system up with hackers around! Use Thunderbird for windows and linux both!

6) Photoshop – Gimp

Gimp is quite matured now! It gives  you better brushes than photoshop..

7) Dreamweaver – Quanta Plus

Used dreamweaver since long and cant use it in linux? Try Quanta..

8 ) MS Office – OpenOffice.org

I’ve personally stopped using MS Office on windows too ( Ok, Ive stopped using windows too)

9) VMWare – Virtual Box

Virtual box is still a bit buggy, but you’ll not get to know unless you’re a hacker.

10) Notepad – GEdit/VI

We all know this!

11) Media Player – VLC Player

VLC is not in looks, but neither is Media Player.

12) WSFTP – Filezilla

Use filezilla for both , windows and Linux

webMethods Vs TIBCO

WebMethods and Tibco are the two most popular Enterprise Application Integration tools in the market today.  Lets look at some technical details to bring out the differences between them.

If you understand EAI, you’ll probably understand Hub and Spoke Architecture and Bus architecture.

1. Hub and Spoke Vs Bus Architecture

WebMethods is Hub and Spoke Architecture and Tibco is Bus architecture.
Hub and spoke is some thing where you have a centralized server, and all the data lines extending from it like spokes whereas

Bus architecture is like a data bus connecting and serving data to all the applications connected to it. One has to imagine many practical scenarios before one can perfectly avoid confusion between the two.

2. Broker Vs EMS
WebMethod has a product called Broker Server. This is their way of implementing JMS ‘kind of stuff’. I say ‘kind of’ because it can be used easily only with webMethods Integration server. Other data can be exchanged only through some extra wrappers/adapters.

On the other hand Tibco came out with a complete 100% JMS implementation which they say is written in C(and they also claim that because its written in C, its faster – I have doubts). The product is called EMS. One can create queues and publish and subscribe to it.

3. Document Vs XML

WebMethods internally stores each structure as a document. The broker can understand only documents. This means that if you have an XML , you’d first need to create a document out of it and then will be able to use it on their brokers(off course they provide API for conversion)

Tibco is quite good at these. You can send and receive just any XML or data by defining a schema. Hats off on that..

4. Packages Vs EARs

In Webmethods, each module or project is represented as a package. Each package may have functions called flow services. These can be invoked by other packages residing on the same Integration server. A package can contain their own flow language code(which is in XML). This gets converted internally into Java code. A Java service will have pure Java code.

Tibco deployment is more like a Enterprize archive(EAR). You need to pack all your compiled code and then deploy to the server(called BusinessWorks Engine).
This can sometimes be problematic because we have to have our own version control system, whereas webmethods has it inbuilt.

5. Integration Server Vs BusinessWorks

Webmethods has a centralized server where all the code is deployed. This is called an Integration Server. An integration server will also contain their built in services.
Tibco on the other hand has the product called BusinessWorks. EAR files are deployed on the BW engines to work out the trick.
At the end, I feel both are nothing but tweaked tomcat servers!!!

6. Services Vs Pallets.

A service in WebMethod , be it built-in or user built is a small function of a package(think of it as a class). There is a set of complete startup utilities which WebMethods provides. These are called Built-in Servcies

Tibco has a concept of pallets. These pallets are also some small function. But the implemennntation is done in just one city!

7. Triggers Vs Queues

Whenever a data comes to the Broker from an Integration server or rather say, webmethods Broker receieves a Queue, then a Trigger is called. These triggers in WebMethods do nothing but call another service[built-in or custom built].

JMS implementation of TIBCO called EMS does a delivery of the message(JMS message -Remember it can be anything!) to all the clients who have subscribed to the Queue.

8. Developer Vs Designer

Developer is for Webmethods. Its a java (old fashioned look, revamped in new version) based IDE which connects to IntegrationServer and allows you to ‘drag-n-drop-programming’. It gives you options to watch variables, debug, step through etc.

Tibco Designer – This is also a Java based tool which allows you to create your processes. You have have predefined template (basically a folder structure) for a new project and build everything accordingly. It gives you options for testing/debugging with breakpoints etc.

9. Flow Language Vs Flow Charting

Webmethods uses a language called Flow Language. A flow language consists of simple programming constricts like looping, branching, breaking etc. A flow service is written in Flow Language and comprises of Flow Steps(instructions ). Everything is drag and drop with some basic property setting such as Input/Output and pipeline variables.

Tibco implements everything like a flow chart. There is a canvas where start and stop end points are given. We can drag and drop existing processes and connect them with flow lines. These flow lines carry data with them in its pipeline kind of implementation.

It has to be noted that Webmethod’s earlier version (say around 3-4) had a similar interface what Tibco has it today. Further to that, Webmethods 7 interfaces have changed a lot from webmethods 6.

10. Software AG Vs Tibco Software

Software AG acquired Webmethods and has a revenue around 200mn. Whereas Tibco has a revenue of 500mn. (Figures from wikipedia).
I personally believe that Tibco markets its product quite well. They also have a good grip on open source community by sponsoring DWR and TIBCO GI projects. Current trend goes towards Tibco because of their wide range of products and excellent marketing. But webmethods is not a bad software too!  There are more resources available for webmethods (advantage website) than Tibco. I strongly believe one doesn’t need an official training to get started(offcourse yes! for advance stuff) but you’ll find more webmethods trainers than Tibco in the market.
Support wise, I feel both are same – somewhat useless. Support now a days is just the name! But both release patches etc etc.
Implementation – Depends on how complicated you want things to be! (So, equal points to both here as well)
Cost – Depends again on the deal your crack with those guys. They don’t release the prices on their sites, which means they see you first(check your spending capability) and name the price!!

Overall , both middle wares are quite a good competition to each other. There are no translators available between the two for migration. For your company to choose which one to implement: Consider the following factors:

1. Cost – The deal you crack with them?
2. Products needed?
3. XML based or can work with Documents ?

Factors which shouldn’t affect your choice.

1. Cool and convincing marketing
2. Myths like Tibco is next gen tool
3. Myths like WebMethods is age old and time tested
4. One performs better than other – Trust me , Ive worked with both and performance is programmer’s responsibility not framework’s!

Debit card without Bank Account?

Yes, now its possible.

Payoneer is the name. The online mass payout solution that pays directly to universally accepted Prepaid MasterCard® cards.

Payoneer Website

Payoneer is easy to use although its as difficult compared to Paypal, Western Union in terms of currency exchange rates and trasfer rates. But you’ve a step ahead: You get  a debit card and can use this at Shopping centers, gas stations, ATMs to withdraw money!

Check out more at : http://www.payoneer.com/

GridMACD FOREX Algorithm Explored for Meta Trader

Ive been lost in GridMACD Forex trading algorithm and I tried to explore it more and more.

Then I just came across this wonderful flowchart.

Then I came across someone who added another logic to enhance it for better performance. (none other than my brother Johan from Indonesia!)

Will someone be interested to write an OPEN SOURCE version until I write it?

Click on the image for a larger view

Barcamp Pune 5

I’m going to speak at Barcamp Pune 5.

I will be talking about a framework on mobile phones and the topic is:
Building Enterprise Mobile applications without programming.

Some interesting topics I’d like to listen to:

Microsoft Windows Mobile Development – Mayur Tendulkar
Rapid Robotics Development using Microsoft Robotics Studio – Nikhil Dandeker
Mobility application development with moblin – Sachin Kelkar Intel
Performance Tunning on Application Server -Tara Lodh

Yes I’m lazy

I’m known to be a lazy person. The whole world tells me, I tell myself. But what to do.

Here are some TOP secrets to cope up with my lazy attitude while running an enterprise solution..

1) I don’t re-invent the wheel. I use what is available. ‘Google it’ is my favorite dialogue. People misunderstand this with lack of creativity but whats so wise in doing something already done!

2) Use open source. I just love open source. Everyone who believes in open source are my team mates.

3) Automate. This is perhaps my one word advice to ALL. Try to automate everything. Try to make it “one touch and done”. (If I could, I would have automated something to scratch my back…ha ha ha .. ok back to serious stuff)

4) Plan to be lazy from the start: Always design to scale and make it generic. Always think of huge numbers. Assume double the size of scale than the scope. Always make your designs generic to adapt to change at minimal cost and time factor. Some tips for young lazy enthusiasts.

5) Sometimes things may have to be manual, Use monitors – Open source monitoring tools are available at call. Use them. They are quite good.

6) Use schedulers. I must admit, many of my emails are just scheduled to send out automated replies. I just type them and choose date/time for sending. Let your clients feel you’re there for them 24/7/366!

7) Test your apps. I believe in thorough testing and benchmarking. Believe me all the clients should know this. Don’t release anything just for the sake of releasing, it has a bad impression about your quality of work even though you may have won the battle by delivering on time.

8) Communicate when needed -Here’s another tip to be laze around. Communicate with the fastest channel. It may cost a bit, but it will buy you a lot of laziness to enjoy with! Trust me, it works…

9) Use the proper tools and technology. Don’t pick up some xyz technology just because you know it. My experience says that its a mirage of laziness. If at a point your xyz technology is not suitable for the client, the client will take away your laziness..

10) Now that you have so much time to laze around, try to find more ways to be lazy..Facebook, orkut, You don’t have to be so hard. Just laze around all the more…

Rediff.com Coding Standards: An Analysis

By Hussain Fakhruddin

hussulinux@gmail.com





Rediff has a lot of portals within its main portal.

This is how they organize their re-usable code.

The first thing I did is logged on to: http://indian-railways.rediff.com/



I opened my Fire Fox’s Error Console and found this:




The next thing I did was to open up the source code:

I was shocked. I could really figure out that this type of code was

1) Written by just “Jugard” of code from their own paces here and there!

2) Not at all reviewed!

3) Done in haste to meet the deadlines!



I will put some screenshots to prove my point:(Please enlarge them as needed)




  1. Are these written by the same programmer?

Subsequent lines of code, but one in caps and other in small.

– Seems like they have just copied it from some previous page.

  1. Dirty CSS to look good? : Reuse of CSS codes, but not at all arranged in a proper manner. They are probably using the code which is lying here and there.

  1. Code lying here and there + insert what is needed and get the things done!

  1. JavaScript in the middle of an external CSS.

    Why not place it together along with the code above!

  1. Just Wow: Internal JS > CSS > External JS > Internal JS

    CSS surrounded between JavaScript and JavaScript surrounded between CSS!

  1. Where are your code conventions Mr. Rediff?

    See the CSS classname ‘Naming standards’

  1. Rediff’s way of importing external JS!

They are using JavaScript to import another JavaScript code!

Look carefully!



  1. Debugging debris remains…

  1. Reuse the code, but not in the same page man!

    I saw this CSS defined AGAIN somewhere below the code!
  2. What a waste of memory!

    Everything commented inside the function, what does this function do then?!



  1. Agreed we all use broadband, but what a waste of Bandwidth?

Why so many wide spaces!

Don’t you guys know browser ignores them but bandwidth network doesn’t!


  1. Broken Link

Wanna report?

  1. Total time over 512KBPS

    No comments!

  1. 19 Requests to the server! Woah!

    Thank you that I have an advance browser to do these for me!

  1. So many DNS resolutions

    My ISP might think I am doing a DNS attack!




16. Best of all:

Around 8 MB of Memory occupied by just 41KB of HTML code!