Friday, May 21, 2010

Motivate team to work on legacy products...

In every company, we have situations where some legacy products. Legacy can be in sense of programming language OR platform OR UI OR features OR anything else you think 'legacy'! But still we need to work on it because we have clients using it and we need to provide maintainability/support for them.


Only cash can not make the developers happy. You should provide them good environment so that they can pay attention to their work.

Another thing is no technology is bad OR legacy OR older. Thing is if your company needs to maintain it, then you must keep it going. But keep all standards for designing, coding, testing, code review, interactive sessions etc...

Also you can motivate them to convert your legacy code to some new platform for better performance and maintainability. Every company does that even once. Why?I think, because they want to compete with other market products.

Also provide them some cool sessions for other technologies which are used in your company but they don't know or use. Let them be deeply in the things, give them proper time and support and be problem solving. Main goal is to deliver on time with less rework and bugs.

Provide some rewards towards their work and keep them happy about their work. After all work is what we do together. If the team feels right, they will do right and develop right.

Until your product works fine without any problem and client is happy then you can think to add new feature to it. Today technology is better and we can integrate different applications without any programming language bar. You can do new development in new-age languages and integrate them with your product, which will keep your product ready for today's competition.

Sunday, June 1, 2008

Gmail with Thunderbird - Just 2 minutes

This Saturday i was trying to set up an email client for my gmail account. First i laid my hands on Microsoft Outlook. It took nearly 30 mins to setup the same. Then i thought why to go for Outlook when i have open-source cross-platform way of doing it. Yes you got that right - Thunderbird.


In this tutorial i would show you how to setup ur gmail account so that its up and running in
ThunderBird.

First things first. Enable IMAP in Gmail. For this you have to follow the following steps.
Sign in to you gmail account.

Click on the settings from the top.

Click on Forwarding and POP/IMAP tab.
Select Enable IMAP radio button.
Click on save changes.
There you go, first part is done.




Now for the second part setting up the client, its too easy.
Download Thunderbird.
Run Setup.
After installation, run Thunderbird.
As it is the first time it will show you with below dialog box.



Select Gmail and proceed to next dialog box.
Enter you name and email Id.


There you are, Done!! You have configured gmail with ThunderBird Client. Just 2 minutes !!!



Tuesday, May 20, 2008

Javalibs: Controlling Module Dependencies in Eclipse

Jay has written a nice article on Module dependency for J2EE module in Eclipse on Javalib, our java ground.

J2EE Module Dependencies is a critical issue in an enterprise application. You need your one web module to access some resources while prohibiting others. Similar is the case with EJB modules.

The full article shows images of eclipse for configuration.

I am not writing it whole here, so check it on javalibs.

Thursday, May 15, 2008

Using proxies (the basics for noobs)

1. Introduction:

This is intended as a summary of proxy basics. A reminder as to why its required. Anonymity is needed because there are people who surf the net looking for other people's ip address or url name so they can then publicly malign them by finding their "true" identity and telling the world this person eats spam or likes to watch the grass grow, or in the case of an Advertising Corporation which will sell your identity to some retailer like WalMart. So some basic precautions that you need to take to avoid this are: using a proxy, disabling all cookie options, java, active-x, and all scripting options in your internet browser, print and file sharing in NetBios, and also installing a firewall. The following text attempts to be a summary of those basic methods by which you can anonymously communicate with other like minded persons.

2. Just a number? :
Before you can understand how best to protect your privacy, it's helpful to know just what information you're generating when you connect to the net, and how easy this is to trace.

At the very lowest level, when you connect to a website it will receive a record of your IP address - the unique number that indicates which computer you're using. If you use an ISP like Demon, that gives you a fixed address, that's enough to pinpoint your account. With a dynamic address, it'll pinpoint the modem line you connected to. Finding out which customer was using that line means matching up a time with the records from the computers that handle your login. On a busy system, that could mean finding one from tens of thousands of entries, but it can be done. This is how the police were able to track the source of the Love Bug virus to a dialup account used by a group of students in the Philippines. Some systems, such as AOL, might share an IP address between more than one user. The same is true of some corporate gateways to the net; but even so, there will usually be a way to work back to a specific system, even if it involves trawling through pages of log files. One way of hiding these sites is to go via a proxy, making the address that appears in the web server's logs that of the proxy server. Of course, all that's really doing is adding another link to the chain, since the proxy server will have a record of what you're asking it to do. But with the Proxy Server resident in a foreign country this is time consuming, probably not practicable and faced with proxy chaining, most will just give up. This is also what makes proxy servers a useful tool for those who want to see what you're up to. Even though you may not think your web requests are going through one, many internet service providers (ISPs) use so-called 'forced proxying'. This means that all web requests are routed via a transparent proxy. You don't need to change any settings in your browser, but the effect is the same. For an organization or country that wants to control and monitor what people are seeing on the web, it's ideal.

Thoughts regarding the use of system logs as evidence: Log files make crap evidence, for a start they're easily forged, and you're reliant upon computer generated evidence. What jury will believe a computer over a human? At best log files are supporting evidence, in most cases they only show logins, connections and other impersonal evidence, no log can say BEYOND REASONABLE DOUBT that someone did something, they only say this machine number connected at this time, it don't say anything about the identity of the person. If in doubt, deny everything, after all its the job of the prosecution to prove you are guilty of some misdemeanor.

3. What is a proxy server:-
A Proxy Server is a firewall and cache server. It can allow an entire network of computers to access the internet(http or ftp) with a single IP. it can act as a kind of filter for that network. Let's say you have 3 computers in some small network in japan going through a proxy server, schematically it looks like this.

1. ------->|
2. ------->|Proxy Server ----> The Web Site
3. ------->|

If you are at home with internet access through your ISP, this is what your connection looks like :
(PC)------>Your ISP ----> The Web Site
If the proxy server in the network above allows other users to use it we can do this :
(PC)------->Your ISP ---->Proxy Server ----> The Web Site
From the above diagram we can go through the proxy server and hide our real ip address or url name! The Web Site will only see the ip address or url name of the proxy server and NOT that of your isp, thereby making you anonymous!

4. Why Use One:-

* To act as a security firewall or ip filter.
* To reduce the network load by caching commonly requested pages.
* To translate the material into another language.
* To improve access speed for users, achieved by caching.

Our interest lies in the first option i.e. becoming anonymous and Surfing Safe It isn't guaranteed that simply by using a proxy you will be anonymous. Some proxy servers will forward your real ip at random intervals others do it by default, others do by request from the web site that you visit. This makes it necessary to test your proxy for anonymous status at a Proxy Checking site. These sites will allow you to test the information or headers that are passed from the proxy server to the web site, careful inspection of these will allow you to decide just how anonymous you really are. An example header is:
HTTP_USER_AGENT: IE5 WIN2000which tells the site your browser and operating system type. So once you enter a website, and click any one of the files on the webserver, the website owners can find out these items of information about you, and much more:

1. Your IP Address.
2. Your hostname.
3. Your continent.
4. Your country.
5. Your city.
6. Your web browser.
7. Your Operating System.
8. Your screen resolution.
9. Your screen colors.
10. The previous URL you visited.
11. Your ISP.

5. Proxy Types:-
The two most commonly used proxy types are http and socks each uses the common ports 8080, 1080 respectively. http proxies are for use with your browser. Socks which is a valid proxy alternative allows you sockisfy http, ftp, telnet, nntp, and common chat protocols similar to icq, hotline.

For more information visit Proxy Server

Wednesday, May 14, 2008

Discuss It: Linux is faster then windows...



I was just surfing net and i found this long but cool article which talks about speeds of Linux and windows.

It talks about how Linux is optimized that it can run on even lower configurations also which win XP can't. Windows applications are good and fast on Linux compared to windows itself! Isn't its strange? Yeah and also windows based games runs faster with wine on Linux. It shows some benchmarks also for results of comparisons.

Main reasons which can be the main cause of windows slowness are,
-Linux use preemptive multitasking which means 'processes are forced to share CPU rather they want to or not'. And windows use Cooperative Multitasking which means 'process currently controlling the CPU must offer control to other processes'.

-windows is based on registry so while booting, it will load registry in memory. This is not the case with Linux.

-Windows has only one desktop which uses more resources and on the other side, Linux has many desktops which are configurable and many new are coming for different distributions.
The best lines said on source,
So, it seems to me the primary reason why Linux runs faster than Windows is because it is better designed to work with hardware, in the context that it handles operations in a more efficient manner than Windows.

In my opinion, I also get the perception, that perhaps the development of Linux is guided by people who seek to maximize performance. It does not appear to be developed predominantly by those who seek to maximize profits.
Full article @ ubuntuLinuxHelp

Blogger: Most visited posts widget script...

This script finds your most visited posts and gives you back theresult in html.I found this from bloggerbuster and it uses pipes.yahoo.com to get the ratings.
So now you don't need to put your features post links.Just put the script in new widget,change the url,change the number of posts you want to show, and done!
<script type="text/javascript">
function pipeCallback(obj) {
document.write('<font ><ol style="text-transform: capitalize;">');
var i;
for (i = 0; i < obj.count ; i++)
{
var href = "'" + obj.value.items[i].link + "'";
var item = "<li>" + "<a href=" + href + ">" + obj.value.items[i].title + "</a> </li>";
document.write(item);
}
document.write('</ol></font>');
}
</script>
<script src="http://pipes.yahoo.com/pipes/pipe.run?_render=json&_callback=pipeCallback
&_id=1cf38ae68efbe859c4ba1ee239cec099&url=http%3A%2F%2Fwww.techlads.com&num=10" type="text/javascript"></script>

In the url, only below part is important. Change the url to your one and change the num param to what you want.I made it only top 10 posts.
url=http://www.techlads.com&num=10

Tuesday, May 13, 2008

Java optimization and performance

No new Exception if not needed

Many of us do this when we want to throw an error. But if you are throwing exception from another catch, then don't make new exception object. Keep throwing the same exception which you caught if possible. This will be better for performance. And also in new exception usually we change the description only to reflect the perfect error cause, but other ways are there to track it.

Avoid excessive synchronization

Yah threading can be a bit complex situation sometimes in java. And we all use synchronization to avoid dead locks. But it needs a more attention then we give it. Try to make a block of code synchronized rather then making the whole method synched. The whole method will stop all other threads, waiting to go inside it. It will generate more overhead. So keep the design like we need less sync code.

Read Full @ javaLibs

Friday, May 9, 2008

Spring Framework problem : SqlReturnResultSet() not returned

One more problem with servicemix and spring is in DAO classes, when you make any private static class of StoreProcedure, then in its constructor you must declare SqlReturnResultSet before you declare SqlParameter.Otherwise you will not be able to find return data from StoredProcedure execution.Check the code below,
public MySp(JdbcTemplate jdbcTemplate){
super(jdbcTemplate,"sp_mysp");
declareParameter(new SqlReturnResultSet("strRs",rsMyResultSet));
declareParameter(new SqlReturnResultSet("strRs1",rsMyResultSet1));
declareParameter(new SqlParameter("myId", Types.INTEGER));
compile();
}
so keep in mind while using Spring DAO support.Must declare resultsets first.

servicemix problems: NormalizedMessage getContent,copyPropertiesAndAttachments()

Though servicemix is widely used and very nice ESB framework, it has some basic problems.The one i am talking about here is very little thing but it can be annoying if you forget this or don't know this.

While creating and sending NormalizedMessage object from any data, after doing that if you read data using NormalizedMessage.getContent() method and send the message object with exhchange to deliveryChannel, using DeliveryChannelImpl.send(MessageExchange) method, then you will get null exception in DeliveryChannelImpl class.

Yes this is true.I don't know why, but it removes content from the message object.Only the content is removed and the properties are still there.

You can read properties from it in same component as many times as you want.If you are forwarding same message to next component, properties will automatically goes.But if you read content once, you must set it again :(.

Also remember that if you need to make new MessageExchange, then you must copy all properties and attachments using TransformComponentSupport.copyPropertiesAndAttachments(outExchange,inMsg,outMsg) method.Then all your data from one message will be copied to another message.

So keep checking this if you getting null Exceptions while sending message through DeliveryChannel.

Sunday, May 4, 2008

Design the Firefox Logo in Photoshop

This tutorial is going to tell you how you can make firefox logo in photoshop in some easy steps.

very nice tutorial and shows simple steps making the hard logo! :)
after checking you will think, "ah!its very easy,may i have done this before firefox!".But then also, a cool tutorial.

The final output is attached here. but see the source for details.

Full thing @
henryhoffman.com

Thursday, April 24, 2008

Servicemix Queue filled - increase Queue size

I have been using servicemix since more then 1 year.As we have seen in urlier articles that servicemix uses ActiveMQ for Message queuing. The messages sent are filled in the Queue of destined component which will be fetched later on.

When we started using Servicemix, we faced a strange problem.After running for sometimes,our application stops processing messages.When we looked in the JMS Queue, we found that after certain period the messages in the queue are not removing.So new messages can't be processed.The Queue is full and we must restart the application to get rid of this.

Then we dig into the source code of servicemix and found how queue is given size.We increased the size as per our need and the problem was solved.

Basically when message processed by the component, it will be removed from its queue.But for some reason, if message not processed or not removed from the queue then further messages will be stored in the queue and processing stops.The application seems to be running but messages are not processed.

The class org.apache.servicemix.jbi.util.BoundedLinkedQueue contains the property capacity_
Constructor of this class contains the magic which initializes the capacity of queue size.

By default it is 1024.you can change it as per your need. I mean how much messages you think will be processed after every restart.

code:
public BoundedLinkedQueue() {
this(1024);
}
public BoundedLinkedQueue(int capacity) {
if (capacity <= 0)
throw new IllegalArgumentException();
capacity_ = capacity;
putSidePutPermits_ = capacity;
head_ = new LinkedNode(null);
last_ = head_;
}
I just simply changes the 1024 to bigger number like 1024*10 etc...

Try this.may be it can solve your problem also.

And others who know about servicemix and want to share their problems and tweaks are welcome.Put your comments here i will post it.

via javaLibs Blog

Java Web application cookie lost?

I got one new change to do in our java web application.I have not been in it since 2 or 4 months and forgot some of its settings.

First of all my jboss refuses to run from eclipse!i was very worried about it, but later i re-configured it as a "dynamic web application" project in eclipse.

So when jboss runs finally, i logged in it and a big blast! it redirected me to error page. I checked the logs but i can't find anything.I was thinking that even i have not chnaged the things in code,configuration etc. then also it stucks here?

But suddenly, a spark happned and i remembered that we set domain for cookies in most web applications.And that thing sucks in local environment.
cookie setting code:
Cookie c1 = new Cookie(name, value);
c1.setDomain(domainName);
So i just commented out c1.setDomain(domainName); and my application is ok.

via javaLibs Blog

Java Mail API with Encoded Attachment FileNames

This is very strange problem i faces as per me. May be because different email clients have different encodings or something else, but we will get encoded filename header from some email clients like lotus, blackberry phone etc.

Message header for attachment:
Content-Transfer-Encoding: base64
Content-Type: image/jpeg
Content-Disposition:attachment;
filename="=?Windows-1252?B?SU1HMDAwMTYuanBn?="
Then i was stucked with the thing that how to decode the filename.I have the filename only in subject line.But i can not trust that because say if 3 attachments are there, then there will be 3 filenames in subject in order.But we should not depend on the subject of the email.

javax.mail.internet.MimeUtility util class which helps to decode the encoded strings in message header values as below

Method:
javax.mail.internet.MimeUtility.decodeText(strValueToBeDecoded);
But most of the encodings with java 1.3.1 are not supported. At least 1.4.1 must be used.

via javaLibs Blog

Friday, April 11, 2008

Using Apache ServiceMix - ESB with spring

Apache ServiceMix is an open source ESB (Enterprise Service Bus) that combines the functionality of a Service Oriented Architecture (SOA) and an Event Driven Architecture (EDA) to create an agile, enterprise ESB.

Apache ServiceMix is an open source distributed ESB built from the ground up on the Java Business Integration (JBI) specification JSR 208 and released under the Apache license. The goal of JBI is to allow components and services to be integrated in a vendor independent way, allowing users and vendors to plug and play.

Features:

ServiceMix is lightweight and easily embeddable, has integrated Spring support and can be run at the edge of the network (inside a client or server), as a standalone ESB provider or as a service within another ESB. You can use ServiceMix in Java SE or a Java EE application server.

ServiceMix uses ActiveMQ to provide remoting, clustering, reliability and distributed failover.

ServiceMix is completely integrated into Apache Geronimo, which allows you to deploy JBI components and services directly into Geronimo. ServiceMix is being JBI certified as part of the Geronimo project.

Other J2EE application servers ServiceMix has been integrated with include JBoss, JOnAS with more to follow.

ServiceMix includes a complete JBI container supporting all parts of the JBI specification including:
* Normalized Message Service and Router
* JBI Management MBeans
* Ant Tasks for management and installation of components
* full support for the JBI deployment units with hot-deployment of JBI components
ServiceMix also provides a simple to use Client API for working with JBI components and services.

More @ javaLibs

Developement Processes: Some Important some boring

This is no new thing i am writing about.All developers know this and gone through this when ever they got some new thing to develop. It hurts in heart when someone says something which you must do as a process and feels boring.

As per SDLC, some basic steps needed for developers are,

Reading specs and use cases

This is most annoying thing i ever found. Yes because what the analysis team does all knows. Copy-paste some basic paragraphs from the templates,making funny and ugly diagram in word which is never usable to developers,using fast vivid colors which will just make you cry or feels you are reading some horror story and finally the language which is too complex and contains thing which are not of use! What they mention you can't get and what you want them to know they can't deal with it!

Deciding approach & Making design diagrams

This is somewhat very important thing if the team is well. Otherwise all are just suggesting diff. approaches and no decisions at the end!Design diagrams must be prepared before the development but sometimes the project managers or the CEOs are in so hurry that they want get it done fast and deployed even without any Technical documents/design diagrams!
Sometimes the coder submits the diagrams and docs for review but the leaders/seniors are so busy (or may be ignoring it thinking 'its not related to my project') and not reviewed it.And after the code is done, they will find loopholes and design problems in that.Now say whose fault is this?
This is cool when its a small thing and approach is simple, but when you are expecting a whole big feature/module/functionality in short period ,with testing yes keep this in mind "with testing" done,then its a hell for developer. After the coding done, developer asked for diagrams. Now say, isn't its boring? Yes that what i am saying. It sucks!

Coding

Its best part if the thing is designed and design is reviewed properly.As per my experience this is the least time taking step for a good team.

Code Review

CR must be done. But if its done in quite short time after the code done. it means, CR should be fast process of all because developer can complete task fast if its in period while he is inside the thing.Once he had given for CR and you get back to him after some 1 month or so then he even doesn't remember what he had done!
And at some places, quite boring procedures for CR. you submit code filenames for CR, distribute it to some person,write comments on it and etc... This is time wasting and it stinks! It must be a simple process like pressing a button because developers' time is not for this funny things.

Deployment

This may be complex thing but it should not waste coders time. But at some places, system people stuck and call for coders.Some are intelligent to get into but some are even not understanding on total help and documentation provided by a coder.Only the instructions needed to be given by a coder.Its not his job to deploy the whole titanic into the sea!

Testing

Now is the worst thing that a developer may be need to do sometimes.Yes i have done this even more than hundreds times because of some funny and frustrating test cycles! Sometimes they even don't know how to test & What should they do!You can say its better you do it all instead giving them the idea.This is mostly happens because nowadays testing people are nontechnical! They just know clicking the button and etc.They don't know how to deal with application internals and view log and all.May be companies wants some nontechnical arts graduate as a tester in less money instead of a good testing software engineer!
And sometimes they raise wrong bugs which have been tested with wrong scenarios,even on your instructions that this is not right one to test!And when you draft a mail which makes them shy or some senior person bang on them, they feels you like an enemy!

Bug fixing


This is most 'long long long' process for coders.The diff. natured(technical/nontechnical,thinking themselves as coders) testers rais long list of bugs out which rare cases are function issues.Most are like for UI things.And when a coder is given a bug which not of his area then definitely it will consume more time and if we calculate total time for such non-related-area bugs of all coders then it will make a big difference in the process completion date.May be it can delay release if the testing cycles are more in numbers but less detailed and proper.

This is not like i am bored of coding. I love coding but everything which is having its charms,have some bad things also associated with it.Say if testers are also coders then? may be you can get more bugs? yes but you can test fats and at the end your final release would be a great thing.Same thing applies for all team in SDLC ;). i mean analysis,project management,testing all.

I am telling what i think. It depends on particular's likings ;)

Just do Code.

Friday, April 4, 2008

Java Spring Framework : Multiple PropertyPlaceholderConfigurer configurtion

This is very small thing which can be very annoying while coding in spring framework. Of cource no one can directly understand the problem until he faced that.

At first, I had only one property file from which i am reading some values into spring applicationContext Xml configuration file.So when i needed to add second one for my new feature, i think it is just to add new propertyPlaceholderConfigurer bean with second prop file.

my first prop file 'default-prop.properties' is :
default-prop.custName=testing customer
default-prop.address=building1
and the bean definition in the applicationContext xml file for this is:

<bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location">
<value>classpath:default-prop.properties</value>
</property>
</bean>

so while adding second one, i have just added second bean for it like:
<bean id="propertyConfigurerNew"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location">
<value>classpath:second-prop.properties</value>
</property>
</bean>
and in xml, prop has been read as,
<property name="customerName" value="${default-prop.custName}" />
But when i done this, i got error
"Could not resolve placeholder 'default-prop.custName' "
So i have to do some workaround and digg into spring references. And i found that we can define seperate placeHolderPrefix and suffix for each property configurer bean.

I have changed the bean definition as,
<bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location">
<value>classpath:default-prop.properties</value>
</property>
<property name="placeholderPrefix" value="${" />
<property name="placeholderSuffix" value="}" />
</bean>

<bean id="propertyConfigurerNew"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location">
<value>classpath:second-prop.properties</value>
</property>
<property name="placeholderPrefix" value="#[" />
<property name="placeholderSuffix" value="]" />
</bean>
it means, for first prop bean, we will use ${default-prop.custName} and for second bean we will use #[second-prop.secondName]

And voila! it solved my problem...

You can also use
<property name="ignoreUnresolvablePlaceholders" value="true" />
for each PropertyPlaceholderConfigurer bean defined. But, i have used the prefix-suffix one solution.
And my problem is resolved.

Give your comments on this problem and solution.

Wednesday, March 26, 2008

Recover deleted files on an ext3 file system

It happens to everyone sooner or later: a split second after you hit Enter you realize your mistake, but it's too late; you just deleted a valuable file or directory for which no backup exists. Or maybe you have a backup, but it's a month old... and in shock you see the past month flash before your eyes as you realize in pain what you'll have to do all over again...

Fortunately, you remember that files are never really deleted, at most overwritten by new content. So, you remount the disk read-only as fast as possible. But now?

The most frequently quoted passage comes from the ext3 FAQ itself:
Q: How can I recover (undelete) deleted files from my ext3 partition?

Actually, you can't! This is what one of the developers, Andreas Dilger, said about it:

In order to ensure that ext3 can safely resume an unlink after a crash, it actually zeros out the block pointers in the inode, whereas ext2 just marks these blocks as unused in the block bitmaps and marks the inode as "deleted" and leaves the block pointers alone.

Your only hope is to "grep" for parts of your files that have been deleted and hope for the best.
All information is still there, also the block pointers. It is just slightly less likely that those are still there (than on ext2), since they have to be recovered from the journal. On top of that, the meta data is less coherently related to the real data so that heuristic algorithms are needed to find things back.

Read full article to get deleted data from ext3 @ xs4all.nl

Thursday, March 13, 2008

Most used CSS tricks

I found this cool article about CSS tricks. I am just showing some of them.

Rounded corners without images
<div id=”container”>
<b class=”rtop”>
<b class=”r1″></b> <b class=”r2″></b> <b class=”r3″></b> <b class=”r4″></b>
</b>
<!–content goes here –>
<b class=”rbottom”>
<b class=”r4″></b> <b class=”r3″></b> <b class=”r2″></b> <b class=”r1″></b>
</b>
</div>

.rtop, .rbottom{display:block}
.rtop *, .rbottom *{display: block; height: 1px; overflow: hidden}
.r1{margin: 0 5px}
.r2{margin: 0 3px}
.r3{margin: 0 2px}
.r4{margin: 0 1px; height: 2px}

Double blockquote
blockquote:first-letter {
background: url(images/open-quote.gif) no-repeat left top;
padding-left: 18px;
font: italic 1.4em Georgia, “Times New Roman”, Times, serif;
}

Find more tips @ StylizedWeb.com

Wednesday, March 5, 2008

Tips: Get Unlimited Gmail accounts with your one!

Most Gmail users will answer one! Rest will answer 2-3 or little more. But in reality, all Gmail users have infinite Gmail addresses even if they have registered for only one Gmail account!

All these addresses act as aliases to Gmail address you use and can be divided in three categories as explained below. At the end some smart tips are given to make use of these aliases to get more from your Gmail accounts!

So lets start with aliases now…

#1. googlemail.com alias

Every address@gmail.com have a alias address@googlemail.com by default.

#2. dot [.] alias

Gmail ignores dot [.] character in email address. Means all of the following are same…

123.4@gmail.com

1.2.3.4@gmail.com

#3. Plus [+] alias

Now first look at this example - 1234+test@gmail.com

Now this is also same as - 1234@gmail.com

Gmail ignores plus [+] character and anything after that in ID part!

#4. Combination of aliases

Yep, you can use above aliases in any possible combination.

Now you can create specific filters for specific 'To' email ids.It will categorize your emails.

Read more @ DevilsWorkshop.org

Monday, March 3, 2008

Gajim : Jabber client can use multiple protocols!


Yes this is truth.
Gajim is the best jabber client i have seen. Ihave written many article on IM clients, because i have used all of them.

Miranda is good but UI is not good and too much configuration.

Pidgin is the best if they can provide single file (even per day is better) history log for chats and broadcasting message to multiple contacts.

Spark is good but eats all my memory.

Many others are there which lacks some things, so not mentioning all of them here.

Now i will talk regarding Gajim only. Basically it supports multiple jabber accounts. Yes,
you can use your local lan jabber, Google talk and any other account using jaber protocol.

I am using it for local lan and gtalk jabber. So i am running 3 accounts (2 are for gmail :) ).

Now the turn for steps of yahoo and msn support on gajim.

1. Make any of your jabber account working. Any one, your local or google talk.

2. Then discover services for other transports with your jabber server. If your local jabber server supports transports, its best.

3. gmail.com (for google talk) is not supporting any transports. so change server name in service discovery window to
'jabber.no' (for yahoo) and 'gajim.org' (for msn). I have used this way because jabber.no has some problem with msn transport.

4. Register with that transport with your specific account and all your contacts will be added in your account through which you have discovered the transport
(i.e if you used gmail.com account for discover then all contacts will be added in that account).

Done! Enjoy your chatting.

Some shortcuts to use with gajim

- Type name of contact for search in group.
- In chat window, clik Ctrl + H for history window, Ctrl +I for information of contact and in that info window click Alt +L to disable/enable logging for that contact.

Enjoy using it with most protocols with transports.
And if you want even more then you have to find other transport servers. or you have to use pidgin.
Keep in your mind that Transports still works even your port for specific protocol is banned because it connects through jabber port :)