Adding Google Adsense Ads Code Directly to Blogger XML Template

Advanced users of Blogger.com service may have tried to insert and put Google AdSense ad code which is actually a Java script directly into the blog pages by manually editing the XML-based template HTML coding interface. Actually, it’s possible add any ad code by using HTML/JavaScript page element within the Blogger new XML template system, but the place where you can place the new block is rather limited, i.e. above or below the post body, header, footer, within sidebar or between blog posts. In case you want to put the ads inside the post, or align the ads to float and wrap around the text, or just within the single individual article content view, you will have to edit directly the HTML coding of Blogger template.

GroupWise GWIA 420 TCP Read and TCP Write Error

A customer Penang was recently replacing their Sendmail to GroupWise 8.0. However for the past one month, they are facing problem sending email to certain users of certain email domains where they had no problem sending with Sendmail before.

We are seeing some 420 TCP Read Error, 420 TCP Write error and also TCP 421 Timeout error in the GWIA logs. The followings were the errors from the GWIA logs :-

[Winwamedical.com]
16:00:13 896 MSG 58050 Command: [202.75.48.118]
16:00:13 896 MSG 58050 Response: 220 smtp1.mschosting.com
16:00:13 896 MSG 58050 Command: EHLO mail.sunrisepaper.com.my
16:00:13 896 MSG 58050 Response: 250 ok
16:00:13 896 MSG 58050 Command: MAIL FROM:
16:00:13 896 MSG 58050 Response: 250 OK Sender ok
16:00:13 896 MSG 58050 Command: RCPT TO:
16:00:13 896 MSG 58050 Response: 250 OK Recipient ok
16:00:13 896 MSG 58050 Command: DATA
16:00:13 896 MSG 58050 Response: 354 Start mail input; end with .
16:00:13 896 MSG 58050 Detected error on SMTP command
16:00:13 896 MSG 58050 Command: Data...
16:00:13 896 MSG 58050 Response: 420 TCP write error

[Escatec.com]
16:41:20 880 MSG 58121 File: /root/sunriseEmail/sunDom/wpgate/gwia/wpcsout/gwi3f3a/4/4a118fb0.000 Message Id: (4A112097.908:101:48786) Size: 86.5 Kb
16:41:20 880 MSG 58121 Sender: alicia_chua@sunrisepaper.com.my
16:41:20 880 MSG 58121 Converting message to MIME: /root/sunriseEmail/sunDom/wpgate/gwia/send/xa118fb0.024
16:41:20 880 MSG 58121 Recipient: Saravana@escatec.com
16:41:20 880 MSG 58121 Recipient: Yeoh.KengHong@escatec.com
16:41:20 880 MSG 58121 Queuing message to daemon: /root/sunriseEmail/sunDom/wpgate/gwia/send/sa118fb0.024
16:41:20 352 DMN: MSG 58121 Sending file: /root/sunriseEmail/sunDom/wpgate/gwia/send/pa118fb0.024
16:41:22 352 DMN: MSG 58121 Attempting to connect to mailserver.escatec.com
16:41:23 352 DMN: MSG 58121 Connected to [203.106.231.124] (mailserver.escatec.com)
16:47:25 352 DMN: MSG 58121 SMTP session ended: [203.106.231.124] (mailserver.escatec.com)
16:47:25 352 DMN: MSG 58121 Send Failure: 420 TCP write error
16:47:32 896 MSG 58121 Analyzing result file: /root/sunriseEmail/sunDom/wpgate/gwia/result/ra118fb0.024
16:47:32 896 MSG 58121 Command: escatec.com
16:47:32 896 MSG 58121 Response: 220 escatec.com [ESMTP Server] service ready;ESMTP Server; 05/18/09 16:45:04
16:47:32 896 MSG 58121 Command: EHLO mail.sunrisepaper.com.my
16:47:32 896 MSG 58121 Response: 250 ok
16:47:32 896 MSG 58121 Command: MAIL FROM:
16:47:32 896 MSG 58121 Response: 250 Sender OK
16:47:32 896 MSG 58121 Command: RCPT TO:
16:47:32 896 MSG 58121 Response: 250 Recipient OK
16:47:32 896 MSG 58121 Command: RCPT TO:
16:47:32 896 MSG 58121 Response: 250 Recipient OK
16:47:32 896 MSG 58121 Command: DATA
16:47:32 896 MSG 58121 Response: 354 Start mail input; end with .
16:47:32 896 MSG 58121 Detected error on SMTP command
16:47:32 896 MSG 58121 Command: Data...
16:47:32 896 MSG 58121 Response: 420 TCP write error
16:47:32 896 MSG 58121 Deferring message: /root/sunriseEmail/sunDom/wpgate/gwia/defer/sa118fb0.024

[kingston.com.my]
10:51:26 184 Queuing deferred message: /root/sunriseEmail/sunDom/wpgate/gwia/send/sa113669.006
10:51:26 184 MSG 57671 Analyzing result file: /root/sunriseEmail/sunDom/wpgate/gwia/result/ra1133ec.002
10:51:26 184 MSG 57671 Command: kingston.com.my
10:51:26 184 MSG 57671 Response: 220 MYMF1 ESMTP SonicWALL (7.0.0.1393)
10:51:26 184 MSG 57671 Command: EHLO mail.sunrisepaper.com.my
10:51:26 184 MSG 57671 Response: 250 ok
10:51:26 184 MSG 57671 Command: MAIL FROM:
10:51:26 184 MSG 57671 Response: 250 2.1.0 MAIL ok
10:51:26 184 MSG 57671 Command: RCPT TO:
10:51:26 184 MSG 57671 Response: 250 2.0.0 Ok
10:51:26 184 MSG 57671 Command: RCPT TO:
10:51:26 184 MSG 57671 Response: 250 2.0.0 Ok
10:51:26 184 MSG 57671 Command: DATA
10:51:26 184 MSG 57671 Response: 354 3.0.0 End Data with .
10:51:26 184 MSG 57671 Detected error on SMTP command
10:51:26 184 MSG 57671 Command: Data...
10:51:26 184 MSG 57671 Response: 421 4.0.0 Error: timeout
10:51:26 184 MSG 57671 Deferring message: /root/sunriseEmail/sunDom/wpgate/gwia/defer/sa1133ec.002

We knew that these errors were due to communication issues, but we did whatever we could based on Novell Support Knowledgebase and even User Support Forums. Things remained rotten until we logged a support incident with Novell Technical Support.

The Novell Technical Support's Chat feature was awesome. From the Novell Customer Center, you can access the Chat feature in the Service Request Details page and a product related Technical Support Engineer will assist you.

Since it's a communication issue, the only way to find out the root of the problem is to packet trace the whole email sending process. We installed Ethereal on the SUSE Linux Enterprise Server 10 SP2 which powered the GroupWise system and start capturing packet trace sending emails to those three users domains.

Within a day or two, Novell Technical Support come back with the root cause of the problem and the solution. The suggested solution rocks and emails went through to those users. Apparently it was due to some Path MTU Discovery where the server does not receive the ICMP3-4 from routers that are connected to a link with a smaller MTU. By disabling the Path MTU Discovery on the SLES 10, it resolved the issues.

To Disable Path MTU Discovery
# 'sysctl -w net.ipv4.ip_no_pmtu_disc=1'

To Disable the Path MTU Discovery permanently
Put the line 'net.ipv4.ip_no_pmtu_disc = 1' (without quotes) in /etc/sysctl.conf to keep this setting configured after a server reboot.


The following is the original message from Novell Technical Support explaining the roof of the problem and the suggested solutions :-

I just picked up your Service Request from the unassigned queue and checked the problem description from the customer and the LAN trace called PACKETTRACE from the compressed archive PACKETTRACE.TAR.GZ that is attached to the Service Request.

If you have Ethereal or Wireshark installed, you can open the trace and follow my analyses below:

The trace shows two problems:

1) Path MTU Discovery - Server does not receive ICMP 3-4 (Destination Unreachable / Fagmentation Needed and DF Set) from routers that are connected to a link with a smaller MTU.

A SMTP connection, where the GWIA fails to deliver a mail message to recipient JulianaChooi@kingston.com.my because of this problem is the TCP connection between sockets 192.168.1.254:51064 (GWIA) and 202.188.165.2:25 (mailer daemon at mymf1.kingston.com.my).

You can extract this connection and all ICMP messages from the trace in Wireshark or Ethereal with the following display filter:

(ip.addr==192.168.1.254 && ip.addr==203.106.231.124 && tcp.port==55400 && tcp.port==25) || icmp

In frames #9438, #9446 and # 9447 you can see the initiation of the SMTP connection. In the TCP options of the SYN packets you can see that the TCP at each side negotiated a Maximum Segment Size of 1460 bytes.

The trace was captured at the GWIA host at IP address 192.168.1.254) and the remote SMTP server at IP address 203.106.231.124 seems to be 10 routers away from the GWIA.

Communication between the two TCP ends works well until the TCP at 192.168.1.254 sends a full data segment of 1448 bytes to 203.106.231.124 in frame #9484. The TCP at 203.106.231.124 never ACKnowledges income of this data segment, probably because it never received it. You can see in frame #9483 the last data segment that the TCP at 192.168.1.254 received from the TCP at 203.106.231.124 before the problem occurs. The sequence number of the first byte in this segment is 3246232251 and because it carries 46 bytes of data, the sequence number of the last byte in this segment is 3246232296 and hence the TCP at 192.168.1.254 would return ACKnowledgment number 3246232297 to confirm receipt of this segment.
You can see in frame # 9484 the full data segment that is sent by the TCP at 192.168.1.254. As you can see, the ACKnowledgment number in this segment is 3246232297 to confirm receipt of the segment in frame # 9483, and the sequence number of the first data byte in this segment is 4130583027. The total number of bytes in this segment is 1448 and hence the sequence number of the last byte in this segment would be 4130584474, so the TCP at 203.106.231.124 would return ACKnowledgment number 4130584475 to confirm receipt of this segment. Please note that this is the first fully sized TCP segment that was sent on this connection from the TCP at 192.168.1.254 to the TCP at 203.106.231.124.
In frame # 9485, the TCP at 192.168.1.254 continues transmission with a small segment of only 16 bytes.
Because the TCP at 192.168.1.254 does not receive an ACKnowlegment from the TCP at 192.168.1.254 that it received these two segments, it starts retransmitting the full segment in frames # 9530 and # 9561.
Frame # 9635 shows that the TCP at 203.106.231.124 still did not receive the full TCP segment from 192.168.1.254. It retransmitted its data, because it did not receive ACKnowledgment for it (the ACKnowledgment number is in the full segment from the TCP at 192.168.1.254). Another prove that it did not receive the full segment is that the ACKnowlegment number in the retransmitted TCP segment in frame # 9635 remains 4130583027. The TCP at 203.106.231.124 would have increased the ACKnowledgment number to 4130584475 if it had received the full segment from the TCP at 192.168.1.254.

The Don't Fragment flag in the IP header of the datagram in frame # 9484 is set, to indicate that routers are not supposed to fragment it when they need to forward the IP datagram on to a link with a smaller MTU (Maximum Transmission Unit).
A router should return an ICMP 3-4 message when it drops a datagram that is too big to forward and should be fragmented, but has the Don't Fragment flag enabled.
Because the trace does not show such ICMP message, it is either not sent by a router in the network path from 192.168.1.254 to 203.106.231.124 or it has been blocked by a firewall.

Please make sure that routers in the network path from 192.168.1.254 to 203.106.231.124 will send ICMP 3-4 messages in case they need to forward a datagram where the DF bit is set, while it needs to be fragmented to fit the MTU of the next link in the network path and make sure that firewalls do not block ICMP messages of type 3, code 4.

In case you cannot change router and firewall configuration in your network, then you can disable Path MTU Discovery at the GWIA host (192.168.1.254) per '# sysctl -w net.ipv4.ip_no_pmtu_disc=1'. Please do not forget to put the line 'net.ipv4.ip_no_pmtu_disc = 1' (without quotes) in /etc/sysctl.conf to keep this setting configured after a server reboot.


Kudos to the Novell Technical Support team for a great job to get the problem solved.

Bank Average Fixed Deposit Rates Since Year 1980

This is the average of the fixed deposit rate in Malaysia from the period of 1980 till 2009.

Period (in months)
Average Fixed Deposit Rates 1 3 6 9 12
1980 6.13 6.23 6.54 6.79 7.50
1981 9.46 9.68 9.67 9.73 9.94
1982 8.92 9.75 9.94 10.03 10.48
1983 7.50 8.02 8.29 8.38 8.75
1984 9.17 9.50 9.50 9.53 9.62
1985 8.45 8.81 9.04 9.25 9.29
1986 7.04 7.08 7.17 7.42 7.42
1987 2.56 3.00 3.97 4.31 4.50
1988 2.72 3.29 3.57 3.83 4.24
1989 4.47 4.56 4.77 4.98 5.20
1990 5.55 5.72 6.00 6.01 6.21
1991 6.94 7.11 7.27 7.35 7.48
1992 7.85 7.94 7.97 7.98 8.03
1993 7.01 7.03 6.98 6.96 6.95
1994 4.74 4.89 5.09 5.24 5.46
1995 5.79 5.93 6.14 6.28 6.50
1996 7.02 7.09 7.12 7.14 7.18
1997 7.73 7.78 7.80 7.81 7.83
1998 8.40 8.51 8.54 8.53 8.56
1999 4.10 4.12 4.16 4.21 4.29
2000 3.31 3.36 3.44 3.62 4.06
2001 3.36 3.37 3.40 3.53 4.16
2002 3.20 3.21 3.22 3.31 4.00
2003 3.07 3.07 3.08 3.12 3.80
2004 3.00 3.00 3.00 3.01 3.70
2005 3.00 3.00 3.00 3.01 3.70
2006 3.09 3.15 3.26 3.35 3.74
2007 3.09 3.16 3.31 3.41 3.71
2008 3.07 3.13 3.26 3.33 3.68


This is the monthly breakdown the fixed deposit rate in Malaysia from the period of 1997 till 2009.

Novell GroupWise 8 Vs Microsoft Exchange Server 2007

Facts about Microsoft Exchange 2007

1: The Infrastructure

First up, the infrastructure: Exchange 2007 requires Active Directory. It requires that all users be in Active Directory before they can be Exchange users. This is unlike GroupWise 8, which requires eDirectory only for management - users do not need to be in eDirectory. (eDirectory can be installed on any SUSE Linux, Windows or NetWare box where GroupWise is running.) Therefore, if you do not have Active Directory fully deployed with all users in it, you will need to build Active Directory. This will require servers, the number of which depends upon the size of your organization. As part of this cost, you will need Windows 2003 servers and a Client Access License (CAL) for each user in Active Directory. Consider this and the costs.


Which Adsense Format & Color Scheme Will Work Best for You ?

Should I use the 300x250 Adsense Rectangle or the much wider 336x280 for maximizing clicks? What do I select - 4 or 5 ads per Adlink unit ? Will text only ads perform better than text+image ads ? Should I hide the colored border ?

These are some very common questions among web publishers especially those who have just gained admission to the University of Adsense. While the answer is to keep on experimenting, most Adsense experts employ a simple technique called "AB Split Testing" to optimize their Adsense Ads.

The basic idea is to display different Adsense formats at the same location simultaneously but randomly. [This is done using the random() function in Javascript that generates a number between 0 and 1 with equal probability]

google adsense reports

Show Google Adsense Ads Below Post Title and Post Body

In this tutorial I will explain how to place Adsense Ads below post title in Blogger Blogs with lots of customization tips. You might have noticed that most of the bloggers show Google Adsense ads below title to increase their "Click Through Rate" (CTR) and earnings.

According to Google Adsense help pages " Where to place Adsense Ads ?". Placing Adsense ads below title and above article content can bring high CTR and performance.


2. Click on the Edit link in the "Blog Posts' column [look at the below screenshot]

A pop up window opens ...

3. Check the box next to 'Show Ads Between Posts'

Next, Configure the Inline Ads, choose the Format, Colors etc and SAVE THE CHANGES.

That's it! Now your Adsense Ads will show between blog posts.


Showing Adsense Ad only in Post pages :-

1. Sign in to your Blogger Dashboard > Layout > Edit html

Check the box next to 'Expand Widget Templates'

2. Scroll down the window till you see this code

<b:if cond='data:post.includeAd'> <data:adEnd/> <data:adCode/> <data:adStart/> </b:if>


3. Replace that code in the template with the below code

<b:if cond='data:blog.pageType == "item"'> <b:if cond='data:post.includeAd'> <data:adEnd/> <data:adCode/> <data:adStart/> </b:if> </b:if>

4. Again, scroll down the template and find out data-post body tag

Copy the following code :-

<b:if cond='data:blog.pageType == "item"'> <b:if cond='data:post.includeAd'> <data:adEnd/> <data:adCode/> <data:adStart/> </b:if> </b:if>

If you want Ads to show above the Post Body after the Post Title, paste the code above that tag.




If you want Ads to show below the Post Body, paste the code below that tag.



If you would like to show them at both the top and bottom of your posts you should only show them on the post pages since we are only allowed to display a certain amount on each page so to get them at the bottom and top of your posts.

<b:if cond='data:blog.pageType == "item"'> <b:if cond='data:post.includeAd'> <data:adEnd/> <data:adCode/> <data:adStart/> </b:if> </b:if>


Paste the code above and below the <data:post.body/> tag so it should look something like the following screenshot



Save the template and view a post on your blog you should see Ads at the top and bottom of the Post Body.

Leave you comments if you like the post or if you have any questions doubts.

The Differences between RON92, RON95 and RON97

Filling gasoline into a car.


Despite the change of ministry leadership, the proposed restructuring of fuel grades and pricing will go ahead as scheduled. The new Domestic Trade and Consumer Affairs Minister Datuk Seri Ismail Sabri Yaakob has announced that the price of RON97 fuel will be increased to RM2.00 per liter from the 1st of September 2009 onwards. That is an RM0.20 increase from the current price. We’ve paid RM2 per liter for RON97 before as that was the price during the period of the 18th of November 2008 to the 2nd of December 2008. Also on September 1st, RON95 and Euro 2M diesel are expected to be introduced into the market. RON 95 petrol will be available at all petrol stations nationwide retailing at RM1.75 per litre. This will replace the RON92 petrol, and push RON97 petrol as premium product to RM2 per litre, 20 sen more than the current price.

Have you ever wondered what they mean? Why is RON97 more expensive than RON92, and can you use RON92 to save on fuel costs? The following will give you an idea what is the differences between RON92, RON95 and RON97 :- Many said that RON92 oil is the older oil, only suitable for older cars or for cars that uses carburetor only. There are also some that said that RON92 oil will make the engine dirty and also said that that RON92 oil is less powerful compared to RON97 and RON99. 

Before you make any false assumptions, let us see what the real meaning of RON is. RON stands for Research Octane Number. Octane number or octane rating refers to the gasoline ability to withstand auto ignition (knocking) inside the engine. Higher octane number refers to higher ability of the oil to fight auto ignition. In other words, it means that RON95 is harder to ignite compared to RON92.Different vehicles are designed to be use with different octane number of oil. Higher octane number oil is basically designed for high performance vehicles such as sport vehicle and racing vehicle. Why is that so? This is to avoid premature ignition of oil inside the engine because of auto ignition, which happens before the spark plug ignite the fuel. This phenomenon is known as knocking. Knocking is not wanted because it reduces the performance of vehicle. The right usage of octane number based on design and adjustment of engine will maximize the performance and effectiveness of the vehicle. Modern vehicles are equipped with knock sensor which enables it to adjust its combustion timing automatically according to the oil octane number to avoid knocking or premature ignition of oil. 

Not all vehicles require high octane number petrol. 

You can check your vehicle fuel requirement inside the guide book of your vehicle or you can simply check the minimum Octane Rating at the back of the fuel lid cover of your vehicle. Most cars can still use RON92. Higher RON number does not means that it is more powerful. It means that it is harder to ignite. It is also cost you more. It is a misunderstanding to think that RON97 fuels produce more power than RON92 fuels, even more so with the fact that in reality a higher RON number means the fuel burns less easily! RON refers to the ability of the fuel to resist knocking and nothing else. By pumping the RON97 into a car which engine only requires the RON92, all you are going to get is an emptier wallet hardly counts for performance gains via weight reduction! 

 If you find that your engine can use RON92 petrol and decide to save a bit of money, do check out if a petrol stations RON92 petrol is leaded or unleaded. All RON97 petrol is unleaded, but some RON92 petrol might be leaded although this could be very very rare today.