Google Analytics is Cool

So after being frustrated yesterday by not having any pretty Google Analytics reports to look at, they finally crunched up some data for me, and this morning I was able to start kicking the tires.

First assessment… WOW! They generate a report for just about anything you could possibly what to know, including things like what major ISP’s your viewers are coming from. My personal favorite is the Geo Map Overlay which uses Google Maps to show what parts of the world your traffic is originating from. I was really surprised to see how many international visitors found their way here. Maybe it’s because I, like the rest of the world, think our President is an uneducated Neanderthal.

Additionally cool is the idea that Google Analytics is a sucker punch to Microsoft. Hey, I love anything that hurts Microsoft. They don’t suck as much as our President, but they’re sure as hell trying.

Some analysts saw the timing of Google’s latest announcement as significant: It came on the heels of a Microsoft (MSFT) manifesto that Web and ad-subsidized services were the future (see BW Online, 11/10/05, “Microsoft: Ozzie’s Online Charge”). “It’s a bit of a slap of the face to Microsoft, reminding them, ‘We’re in this game,'” says Marc Strohlein, vice-president and lead analyst at Outsell, a market research firm.

For my part, my only complaint is that they don’t update update the data often enough, and they seem to have some gaps in the data they’ve collected. For instance, this morning, they thought I had had 400 visits, when in reality I had 1136 just yesterday according to bstat. They have been up and down because of high load over the past few days though, so the discrepancy is understandable. Apparently they have had a whole lot of people signing up since they went public.

Of course, the data will become much more useful over the long term, so it will be interesting to see how people are using the site, and what they like and don’t like.

Yes Al, I already know you hate the political rants.

What’s up with the new CMS?

There are quite a few reasons I decided to move away from PhPNuke, but the biggest of the all was the fact that it is simply FULL of security holes. Day after day I read about SQL injection vulnerabilities that would allow a user to gain administrative access to the site, and go at it with a hatchet. I was simply tired of always worrying that someone would hack my site and leave me with a big headache.

I was also getting increasingly frustrated by the fact that PhPNuke never supported pingbacks, trackbacks, or xmlrpc. I read something months ago about someone developing trackbacks for PhPNuke, but it would seem he went the way of Jimmy Hoffa, and nobody ever heard from him again. As time went on, it was becoming more and more clear that PhPNuke needed to be abandoned for a better product, and the only question that remained was which product to chose.

I’ve always liked Mambo, but while it is much more secure than PhPNuke, it still lacks pingbacks, trackbacks and xmlrpc. Drupal is a very nice product that does everything I wanted it to do and more. There is even a script that will migrate all the users and data from PhPNuke into Drupal, but in the end, I was just not happy with the look and feel of the site under Drupal.

Casey over at had recently moved his site from P Machine to Word Press, so once I confirmed that it had Gallery2 Integration I decided to take a look to see what he liked so much about it. He had written a really cool statistics plugin called bstats, and overall the CSM presented things very cleanly. Overall, I’m pretty happy with the software. It does everything I want it to, and it’s quite nice to have the option of managing my stories through xmlrpc with Ecto.

Casey Bisson’s bstats plugin > 
Word Press Gallery2 integration >


Issues forcing Speed / Duplex on ”ce” and ”bge” Ethernet cards

After doing a number of system upgrades over the weekend, I became quickly frustrated by the fact that the standard settings in the /etc/system file, normally used to lock the Ethernet interface to 100 / Full Duplex don’t seem to work if your server is using a "ce" or "bge" Ethernet card.

Normally, the settings in /etc/system would look something like this:

set ce:adv_100hdx_cap=0
set ce:adv_10fdx_cap=0
set ce:adv_10hdx_cap=0
set ce:adv_autoneg_cap=0
set ce:adv_100fdx_cap=1

Unfortunately, if you are using a "ce" or "bge" Ethernet adaptor, this tried and true method does not work, and the kernel gives the following errors at boot:

Feb 6 08:10:02 hostname genunix: [ID 492708 kern.notice] sorry, variable ‘adv_100fdx_cap’ is not defined in the ‘ce’
Feb 6 08:10:02 hostname genunix: [ID 492708 kern.notice] sorry, variable ‘adv_100hdx_cap’ is not defined in the ‘ce’
Feb 6 08:10:02 hostname genunix: [ID 492708 kern.notice] sorry, variable ‘adv_10fdx_cap’ is not defined in the ‘ce’
Feb 6 08:10:02 hostname genunix: [ID 492708 kern.notice] sorry, variable ‘adv_10hdx_cap’ is not defined in the ‘ce’
Feb 6 08:10:02 hostname genunix: [ID 492708 kern.notice] sorry, variable ‘adv_autoneg_cap’ is not defined in the ‘ce’

After doing a little poking around, I learned that the method for forcing Ethernet interfaces on the newer (ce & bge) cards has changed, and it is now necessary to create a driver configuration file in /platform/sun4u/kernel/drv.
First, so that you don’t have to reboot again, force the interface using the ndd commands. Remember to change all instances of "ce" to "bge" if that is your card type.

ndd -set /dev/ce instance 0
ndd -set /dev/ce adv_100T4_cap 0
ndd -set /dev/ce adv_100fdx_cap 1
ndd -set /dev/ce adv_100hdx_cap 0
ndd -set /dev/ce adv_10fdx_cap 0
ndd -set /dev/ce adv_10hdx_cap 0
ndd -set /dev/ce adv_1000fdx_cap 0
ndd -set /dev/ce adv_1000hdx_cap 0
ndd -set /dev/ce adv_autoneg_cap 0

Now, create a /platform/sun4u/kernel/drv/ce.conf (or bge.conf) file with the following line, and reboot the system whenever you get around to it.

adv_autoneg_cap=0 adv_1000fdx_cap=0 adv_1000hdx_cap=0 adv_100fdx_cap=1 adv_100hdx_cap=0 adv_10fdx_cap=0 adv_10hdx_cap=0;

Make sure this is all one long string of text. There should be no tabs, and their needs to be a semicolon at then end. There should also be no more than this one line of text in the file. Occasionally, carriage returns get added by various text editors in different ways, so make sure to use a predictable editor like vi.

Forcing Sun Network Interfaces to 100/Full Duplex

For one reason or another, many network switches don’t like to negotiate properly with the ethernet cards in Sun servers. This can result in a lot of headaches, and sometimes the problem is difficult to diagnose. Usually the autonegotiation software within the switch can tell that the network card on the server is able to link at 100 Mbs, but is unable to confirm that it can do full duplex. The switch the links up at the lowest common default, and you wind up with a link running at 100/Half Duplex.

Usually the link will seem very slow, and you will see many packet collisions on the interface when you do a:

netstat -i

To resolve this issue, we have to force both the switch and network card to run at 100/Full Duplex. This can be done on the host in three ways. I like to just set it in the /etc/system file, and then I never have to worry about it again. You can do this by editing /etc/system, and adding the following lines:

Please note that this assumes the ethernet card is "eri", and that these lines will apply to all "eri" network cards within this server. If you have a a different type of network card, "hme", for example, simply replace "eri" with "hme" in the lines you add to your /etc/system file.

set eri:adv_100fdx_cap = 1
set eri:adv_100hdx_cap = 0
set eri:adv_10fdx_cap = 0
set eri:adv_10hdx_cap = 0
set eri:adv_autoneg_cap = 0

Once you’ve added the lines and written out the file, all you have to do is reboot the server, and so long as the switch is forced to 100/Full Duplex as well, you should be all set. Sometimes, however, we can’t just reboot our servers whenever we want, so we will have to force the interface while the system is still up.

To force the eri0 to 100 full duplex from the command line we can use the following commands. Please note, however that the settings will stay active only until the machine is rebooted. If you wish to have the settings stick, you must edit the /etc/system file, as shown above.

Again, these commands, as they are, apply only to an "eri" type ethernet card. If you do not have an”eri” card, replace all instances of “eri” with the name of your card.


ndd -set /dev/eri instance 0 (select interface; 0=eri0, 1=eri1, etc…)
ndd -set /dev/eri adv_100fdx_cap 1 (enable 100MBit/s in Full Duplex)
ndd -set /dev/eri adv_100hdx_cap 0 (disable 100MBit/s in Half Duplex)
ndd -set /dev/eri adv_10fdx_cap 0 (disable 10MBit/s in Full Duplex)
ndd -set /dev/eri adv_10hdx_cap 0 (disable 10MBit/s in Half Duplex)
ndd -set /dev/eri adv_autoneg_cap 0 (disable auto-negotiation, forcing driver.


If, for some reason, you really don’t want to edit your /etc/system file, you could always add a script containing the "ndd" commands to your /etc/rc2.d directory, and have them executed at startup. Let’s say we create a script called /etc/rc2.d/, and add the above commands to it. It would look something like this:

Forcing eri0 to work at 100mb full duplex.
ndd -set /dev/eri instance 0
ndd -set /dev/eri adv_100fdx_cap 1
ndd -set /dev/eri adv_100hdx_cap 0
ndd -set /dev/eri adv_10fdx_cap 0
ndd -set /dev/eri adv_10hdx_cap 0
ndd -set /dev/eri adv_autoneg_cap 0

Then we’d just do a:

chmod 755 /etc/rc2.d/

And the commands would be executed as the machine started up. Again, however, I strongly suggest you simply edit your /etc/system file. It’s a lot easier, and it’s just one less thing to worry about.