Archive for May, 2009

Why net neutrality is so important

Wednesday, May 20th, 2009

A very compelling argument as to why net neutrality is so important on all levels. Who but the ISPs can enforce something that the judges have had such a hard time understanding? Hopefully we discover the answer before it’s too late.

But telcoms firms are all recipients of invaluable public subsidy in the form of rights of way and other grants that allow them to string their wires over and under our streets and through our homes. You and I can’t go spelunking in the sewers with a spool of cable to wire up our own alternative network. And if the phone companies had to negotiate for every pole, every sewer, every punch-down, every junction box, every road they get to tear up, they’d go broke. All the money in the world couldn’t pay for the access they get for free every day.

Read the full article »

Posted in Law, Programming | No Comments »

Increasing Popularity with Nigerian Scambaiting

Tuesday, May 12th, 2009

We have all seen the e-mails from “The Prince of Nigeria” or “his secretary”, trying to con us out of our hard-earned money. These “419 scammers” (typical advance-fee fraudsters), often located somewhere in Africa, have been around since before the internet and continue to thrive by sending out fraudulent correspondence through all channels of the Internet in hopes to wrangle in a sucker dumb enough to cough up some bills. Although you may think the world would be aware of such scams by now, many people are fooled each day and millions are lost each year to these scammers.

What interests me, however, are the people who deliberately set out to “bait” the scammers. Their purpose is simple: to waste a scammer’s time so that there is one less scammer in the world. “Scambaiters,” as they are often called, will get a scammer’s hopes up so much that the scammers do some pretty hilarious things with the presumption of a largely unearned (and ill-gotten) profit in return.

It works like this: A scammer sends out an email to your inbox. You see their ridiculous claim and turn the tables on them by making up an equally or slightly less ridiculous response that involves instead promising them some sort of payout provided they do something for you. If you are good enough at it, you can get a scammer to do some pretty funny things, provided the irony the whole situation. I have read stories about scammers getting symbols tattooed on themselves, scammers traveling over 3000 miles, getting arrested at airports, and other nuisances as they seek their precious fortune, which never even existed in the first place.

All in all, I think scambaiting is a fun and effective way to not only bring awareness to these types of injustices, but it’s also something to do when you’re bored which is always nice. Whether or not it is legal to lead people on in this way is another story, but you also have to consider the nature of your first contact with said scammers in the first place before giving it too much thought.

Read more »

Posted in Law | No Comments »

Simple drop-downs using YAHOO.util.Dom.isAncestor

Saturday, May 2nd, 2009

The Yahoo! User Interface Library (YUI) has a bunch of very nifty little methods to make complex tasks easier. One that immediately stood out to me was isAncestor, as I can attest first-hand to the cross-browser troubles when trying to detect ancestry in the DOM. Although a very basic concept, most drop-down code often becomes bloated or restrictive. I’m not advocating the use of JavaScript drop-downs over a CSS method, but there are some added benefits of using JS to achieve this effect:

  1. Clean markup, no need for conditional comments
  2. The ability to animate show and hide events
  3. Added styling opportunities, won’t break so long as the nested list structure remains in tact

Below is a simple example of how to use YUI’s isAncestor to create flyout menus with HTML and CSS.

(function() {
	function mouseover(e) {
		var menu = this.getElementsByTagName('ul')[0];
		YAHOO.util.Dom.setStyle(menu, 'display', 'block');
	};

	function mouseout(e) {
		if (!YAHOO.util.Dom.isAncestor(this, e.relatedTarget) || e.relatedTarget == document.getElementsByTagName('html')[0]) {
			var menu = this.getElementsByTagName('ul')[0];
			YAHOO.util.Dom.setStyle(menu, 'display', 'none');
		}
	};
	YAHOO.util.Event.on(YAHOO.util.Dom.get('nav').getElementsByTagName('li'), 'mouseover', mouseover);
	YAHOO.util.Event.on(YAHOO.util.Dom.get('nav').getElementsByTagName('li'), 'mouseout', mouseout);
})();

See Example »

If you need something more complex, see the YUI MenuCreator page.

Posted in Programming | No Comments »