morgan deprecated undefined format: specify a format

Learning about middleware with node.js I encountered a problem.
When I installed morgan, and run the following piece of code I get an error.

var express = require("express");
var http = require("http");
var logger = require("morgan");
var app = express();

// Logging middleware

// Send "hello world"
app.use(function(request, response) {
    response.writeHead(200, {"Content-Type": "text/plain"});
    response.end("Hello world!\n");


The error goes something like

morgan deprecated undefined format: specify a format app.js:13:9

This page seems to suggest that I have to specify the format of the output. So change from




Errrh, you are welcome.

Python Decorators: A cool breeze tutorial

When I started learning Java EE, I liked the dependency injection that was used to create EJB and Managed beans. Anytime you wanted to inject some dependency just use @SomeComponent and you have it.

Now I am having to use Python. The same syntactic sugar is being used here. But this time, it is for extending the functionality that a function gives. I really thought I could not comprehend this concept but this blog did a very good job of dissecting the issue.

I went like,” Ohhh, these people have introduced yet another difficult to understand concept. Ah, can’t they just stick to simple python stuff. They just want to worry mankind. ”

So after going through this blog I am stunned. Check it out.

Neat trick with the ps Command

I’m fond of using the ps command to help me get an estimate of the time a running programm is spending. The ps Command with the -o option can be used to find relevant information about processes. For example, the command ;

ps -o etime process_ID

gives the elapsed time of the process since its creation. Cool Ah ?

Moving from Solr to Lucene in Alfresco 4.0.e ( FULL REINDEX)

I decided to change the indexing subsystem from Solr  to Lucene since Solr was getting stuck on some nodes. There was a script that was moving and renaming folders in Alfresco and this seemed to get Solr broken during indexing.

In order to change over from Solr to Lucene the following procedure should suffice.

-> Stop Afresco.
-> Open the /tomcat/shared/classes/ file.
-> Comment out the solr section like this;

### Solr indexing ###

-> Add the following lines


-> Create the above folders if they do not exist.
-> Start alfresco
-> Stop alfresco.
Change from index.recovery.mode=FULL to index.recovery.mode=AUTO in the said file.

Start afresco again if you please.

Ephesoft and OpenLDAP issues

It is very frustrating to install, uninstall and reinstall Ephesoft all in the name of trying to fix OpenLDAP issues. The problem here is that sometimes the OpenLDAP service does not get removed on uninstallation. It is the one from the previous installation that lingers in the services list.

A very neat quick fix to the removal of the OpenLDAP service problem is the Autoruns program. Upon installation, click on the services tab and remove the associated service and it will be done.

You may also try this

Connecting Java to Mysql (JDBC) on Debian

I woke up about 6am today trying to tie Mysql and Java together without much success. At about 12:30 I finally got it to work and this is how I fixed it.

1. Download the mysql/Java connector from Mysql’s site. If you are using debian do like this.

          apt-get install libmysql-java

2. After you write you program compile ( it like any regular java file because the classes will be automatically pulled in for you.

3. Critically on the commandline do like this;

java -classpath .:/usr/share/java/mysql-connector-java-5.1.10.jar HelloConnect

Haha, now you are laughing !

Programming assembly for x86-64 bit machines

Following assembly books which are written for x86-32 bit machines on a 64 bit machine can be a pain in the ass. Thankfully I found this site
that really clarified things for me. Thus this is a short example of an assembly program written for an x86-64 bit machines demonstrating how a function can be called. The sample function takes a number a returns the square of that number.

# A program to call a function a compute 
# the square of a number.

.section .data

.section .text

.globl _start


	push $5			#push first argument	

	call square		# call the square function
	movq $1, %rax    #Call to exit

	int $0x80

# Square Function.
# takes a number and squares it.
# returns the squared number.

.type square, @function
	push %rbp			# save old base pointer
	movq %rsp, %rbp     		# make stack pointer the base pointer
	movq 16(%rbp), %rcx   		# Copy the first argument from the
					# stack which is on position two. 
					# Thus its 2 quad-words which requires 16
	imul %rcx, %rcx   		# Square and store the number
	mov %rcx, %rbx			# store the return value
	movq %rbp, %rsp			# restore the stack pointer
	pop %rbp


Get every new post delivered to your Inbox.