eM Client - Another Outlook Killer ?


Looking for another alternative to Microsoft Outlook? While Mozilla Thunderbird offers many of the same features as Microsoft's email client, you need to install plugins to add calendar and task management features. eM Client, on the other hand, comes equipped with a full featured email client and contact, task, and calendar managers.

While it's not exactly an Outlook killer yet, eM Client's developers are working on a few killer features:
  • Google Calendar and Contacts Sync
  • ActiveSync support
  • Universal translation tool
  • Facebook integration
  • IM integration
  • Anti-virus integration
eM Client also has a highly customizable interface, which is always nice.

How to reverse a doubly linked list ?

I talked about how to reverse a singly linked list earlier. That was slightly tricky to understand.
Reversing a doubly linked list is relatively easy. The logic is : You need to keep on changing the next and previous pointers as you traverse the entire list. Here is the code snippet in Java :

public void reverse()
{
if (first == null)
return
;

DoubleNode previous = first;
DoubleNode current = first.next;
first.next = null;
while (current != null)
{
DoubleNode next = current.next;
current.next = previous;
previous = current;
current = next;
}
first = previous;
}

Google Calendar going offline ?

It looks like Google is preparing to add offline functionality to Google Calendar. A few days ago the folks at the Digital Streets blog noticed that Google seemed to have added some code to the Google Calendar page that would bring up a prompt to install Google Gears for access to 3 months worth of calendar data while you're offline. But once you install Google Gears, nothing happens.

Googlified noticed a new option in the settings section of Google Calendar. Go ahead and check, odds are you'll see an "Offline" tab in your own calendar settings. When you click the tab, you're told to download Google Gears. Unfortunately, once you install Google Gears, nothing seems to happen. Visiting Google Calendar with Gears installed just brings up the plain old Google Calendar with no option to save your data for offline viewing. But we get the feeling that Google wouldn't be adding features to the Google Calendar settings menu if the company didn't plan to activate those features soon.

Master Firefox Configurations.


Configuration Mania
is a Firefox add-on that organizes and displays many of the options that are normally only available through about:config. Here are just a few o the things you can change using Configuration Mania:

  • Location bar auto-complete behavior
  • Default domain guessing behavior (should Firefox add www or .com when you type a word into the location bar?)
  • Tab behavior (where to display the close button, default tab width, etc)
  • Hide the Go button next to location bar
  • Change your user agent
  • Adjust cache settings
Configuration Mania is available for Firefox 2 and Firefox 3 beta.  [via gHacks]

Hulu is here...finally!


It's been hyped, dissed, and privately tested for five months, but now you can check out Hulu, a streaming video site created by NBC Universal and News Corp.,

Implement a Queue using two stacks

Recently I encountered a trivial but interesting question. "How to implement a queue using two stacks ? ". My first reaction was "Why would I do that ..? " But if I am forced to do such a thing, how would I go about doing it ? So, here is how we implement a queue using two stacks.
Logic : We'll implement a FIFO queue using two stacks. Lets call the stacks Instack and Outstack. An element is inserted in the queue by pushing it into the Instack. An element is extracted from the queue by popping it from the Outstack. If the Outstack is empty then all elements currently in Instack are transferred to Outstack but in the reverse order.
We start with a Stack Interface :
public interface Stack {
void push( Object x );
Object pop( );
Object top( );
boolean isEmpty( );
void makeEmpty( );
}

and a class that implements this interface :
public class ArrayStack implements Stack {
private Object [ ] theArray;
private int topOfStack;
private static final int DEFAULT_CAPACITY = 10;
public ArrayStack( ) {
theArray = new Object[ DEFAULT_CAPACITY ];
topOfStack = -1;
}
public boolean isEmpty() {
return topOfStack==-1;
}
public void makeEmpty() {
topOfStack= -1;
}
public Object pop() {
if(!isEmpty())
return theArray[topOfStack--];
else
return null;
}
public void push(Object x) {

if(!isFull())
theArray[++topOfStack] = x;
}
public Object top() {
return theArray[topOfStack];
}
public static void main(String[] args) {
//Not relevant to our code
}
public boolean isFull()
{
return (topOfStack == theArray.length);

}
}

Now we come to actual class that implements a Queue using two stacks.

public class stackQueue {

ArrayStack inStack = new ArrayStack();
ArrayStack outStack = new ArrayStack();

public static void main(String[] args)
{
stackQueue queue = new stackQueue();
queue.enqueue(new String("first"));
queue.enqueue(new String("second"));
queue.enqueue(new String("third"));
queue.enqueue(new String("fourth"));
queue.enqueue(new String("fifth"));
System.out.println("1. " + queue.dequeue());
System.out.println("2. " + queue.dequeue());
System.out.println("3. " + queue.dequeue());
System.out.println("4. " + queue.dequeue());
System.out.println("5. " + queue.dequeue());
}

public void enqueue(Object value)
{
inStack.push(value);
}
public Object dequeue()
{
if(outStack.isEmpty())
{
while( ! inStack.isEmpty())
{
outStack.push(inStack.pop());
}
}
return outStack.pop();
}
}

Use a Googlemail.com Address to Manage Gmail Spam

The Digital Inspiration blog points out a Gmail trick that can be very useful for blocking spam. Everyone who has an "name@gmail.com" address can also receive mail sent to "name@googlemail.com." What's the big deal? Well, knowing this gives you a stronger hand when you fight against spam, bacn, and all that other not-so-important but distracting email. Try giving out one or the other addresses to important, close contacts, while using the other for all the other stuff.

Wow! All Gmail Users Are Given Two Separate Email Addresses [Digital Inspiration]

Coffee...

Yes we geeks love coffee...my friend Arnab - a coffee-connoisseur in the making, has an excellent write-up. I can't wait for the book he has been threatening to write for a while now.

Check Your Email Account for Impostors

If you've ever had suspicions that someone may be reading your email but you've never seen proof, weblog MakeUseOf details how to set up an "electronic tripwire" in your email account to keep you aware of email break-ins. The trick uses a web utility called OneStatFree to track file requests, and depends on the email snoop reading this email. Since OneStatFree will let you know if anyone tries downloading the file (and will log the time, IP address, and approximate location of the snoop), you'll know the snoop was there even if the he tries covering his tracks by marking the message as unread.

Are you Sure your Email isn't being Hacked? [MakeUseOf]

Understand HijackThis Results with HijackReader

We discussed a the usefulness of HijackThis in the previous article, but only if you can understand exactly what it's telling you is running. Free utility HijackReader does the leg work of checking with trusted web databases and providing Google search links to help you understand what's running on your system and whether you can safely get rid of it. It works by taking a HijackThis log file (by browsing or cut-and-paste) and analyzing its contents, then producing an HTML file with descriptions and relevant links to more information. Even if you don't quite grasp every process it reports on, seeing the "OK" next to something you're suspicious of can be a big relief. HijackReader is a free download for Windows systems only.

HijackReader [via gHacks]