FTP without real files!

http://publib.boulder.ibm.com/infocenter/systems/index.jsp?topic=/com.ibm.aix.prftungd/doc/prftungd/ftp.htm –

You can use the ftp command to send a very large file by using /dev/zero as input and /dev/null as output. This allows you to transfer a large file without involving disks (which might be a bottleneck) and without having to cache the entire file in memory.

Java Profiler

http://java.sun.com/developer/technicalArticles/Programming/HPROF.html – (H – Heap) The Java 2 Platform Standard Edition (J2SE) has always provided a simple command line profiling tool called HPROF for heap and cpu profiling. HPROF is actually a JVM native agent library which is dynamically loaded through a command line option, at JVM startup, and becomes part of the JVM process.

How HPROF works? Read the above link for details. But in short it uses BCI (byte code insertion) when cpu=times to profile every function and JVM TI(Read below link) when cpu=samples or heap=<dump|sites>.

http://java.sun.com/j2se/1.5.0/docs/guide/jvmti/jvmti.html#whatIs – JVM Tool Interface. The JVMTM Tool Interface (JVM TI) is a programming interface used by development and monitoring tools. It provides both a way to inspect the state and to control the execution of applications running in the JavaTM virtual machine (VM).

JVM TI is a two-way interface. A client of JVM TI, hereafter called an agent, can be notified of interesting occurrences through events. JVM TI can query and control the application through many functions, either in response to events or independent of them.

Agents run in the same process with and communicate directly with the virtual machine executing the application being examined. This communication is through a native interface (JVM TI). The native in-process interface allows maximal control with minimal intrusion on the part of a tool.

Coding Standards

http://www.ambysoft.com/essays/codingGuidelines.html – One of the most comprehensive coding standards I have seen till date. Across Languages(compiled and interpreted) and architectures.



This post is motivated by an interesting article posted above.

Also interesting uses of XOR can be found in the form of XOR swap (no-temp-swap) and XOR linked list (Doubly linked list with a single variable to store both the prev and next pointers)

Following properties of XOR are what makes it very powerful –

X^X=O (Zero) – common sense (a value xor’d with itself is bound to be zero)

X^O = X = identity

X^Y = Y^X  = Reflexivity

X^(Y^Z) = (X^Y)^Z = transitivity

Web app Studio


Sounds like a good RAD tool for all web app development.

Back to Basics

http://www.joelonsoftware.com/articles/fog0000000319.html – I always love to read Joel Spolsky’s articles and this one is probably one of the best.

Research, Microsoft and Google

http://research.microsoft.com/en-us/research/default.aspx – MSFT


http://research.google.com/ — GOOG

http://googleresearch.blogspot.in – Google research