216 colors that don’t REALLY matter any more

This table is now only good for a quick lookup of colors. For a few short years it was known as the WebSafe 216 colors. These were the colors that you were suposed to use on your website in order to GUARANTEE that your site would look exactly the same on every computer and with every browser out there. These colors were invented when everybody was only using 256 color monitors. And most monitors and video cards did not allow you to adjust the RGB values. Now however, because no one surfs in 256 color mode any more and everyones monitor contrast is set differently anyway, this color scheme is relatively useles as far as websites are concerned. That said, people STILL try to promote its use and if you are reading this article, now archived, someone probably told you the same thing.

Don’t listen. Make your site plain and simple. If you are using colors that MUST be displayed exactly right for your text to be readable, then you are doing something wrong. Contrast, to a certain extent, is a good thing.

Others, like me, might just want to look up some colors in HEX because you don’t know their official web color names. That’s why this has got a spot in the code cave. If I need a number, I follow the link at the end of this post…

BTW Color names are a myth too. I know there’s a wonderful page out there that has all sorts of colors that work in IE and some other browsers, Colors like “Dark Orange” or “Silver dew on yellow marigolds”, but that’s all a myth too. There are only 16 official web color names. Anything else is added on by the browser’s developers and who knows what color you’ll get if Use hex instead of any color name that is not: aqua, black, blue, fuchsia, gray, green, lime, maroon, navy, olive, purple, red, silver, teal, white, or yellow.

The 216 Web safe pallete color lookup table can be found here.

Now, go add some color to your life!

Lookie lookie I got a package! $400 of software!

(Editor Note: If you are trying to find how to install custom PEAR modules on 1and1.com, you actually want to go to “How to install custom PEAR modules on 1and1.com and other shared servers”. There’s more information there.- B)

Visual Studio 2005 Standard came in the mail yesterday.


Very cool.

And it was all free: http://www.thecodecave.com/?p=55

Even cooler!

Also included was a coupon for 50% a microsoft certification package. And another coupon for $400 VS2005 professional.

Now to see if I can activate ASP.NET on a 1and1 Linux server… It looks like it is possible…
according to this article. You just need Project Monkey’s (Mono’s) mod mono package installed. Heck, it’s worth a try just because I haven’t seen any documentation about running ASP.Net on 1and1’s apache servers…

I’ve had very good luck installing everything else on 1and1 including custom PEAR modules, AWStats, PHPMyAdmin, CVS. 1and1 is a great host for technical people that can actually read instructions a see what is behind them. The ONLY negative thing I have to say about them that they play it a little too safe in their tool upgrades. For instance their MySQL databases haven’t been migrated to MySQL 5 yet. But jeez they have presences in most major countries on this planet. The bigger a company is, the slower it moves to change. That isn’t something to complain about, in the business world, it is often a good thing. I’d rather have a slow update, then have them crash my site.

Anyway, if I get it to work, I’ll post how…

“URL vs. URI” = “Caving vs. Spelunking”

aka “URL vs. URI vs. URN”
aka “What does URL stand for?”
aka “What is a URI?”
aka “What is a URN?”

A little bit ago I decided to get to the bottom of the why WordPress (and I think VBulletin) refer to URIs rather than URLs.

And it turns out that the answer is Sociology and Peer Pressure.

See, we all have the need to feel cool and knowledgeable. I suffer from this same affliction. I, too, am a self-proclaimed sciolist (look it up).

It’s a character trait/flaw I have and it is probably one of the reason I have this blog. We all want to better ourselves and get patted on the back for it. It’s human nature.

One place that this can be prominently seen is the caving world. (And YES this does related back to URL vs. URI. just be patient…) When someone first takes you caving, and you like it, you tell all of your friends about visiting a cave. If you do it a few more times, you’ll quickly label yourself a “caver”.

At that point, the caver often starts to do some reading and learns that (“ooooo!”) the scientific term is called spelunking. So, you start calling yourself a Spelunker and talking about how you so enjoy spelunking that you spelunk every chance you get and you’re a guru spelunker because you know the $10 word.

Well, as it turns out, caving by any other name does not smell so sweet. (That phrase works so much better for roses…).

Anyone with a lot of caving experience, who isn’t writing journals that have to sound pretentious in order to get funding, does not call the activity spelunking. Those that do it all the time, the dedicated hobbyists and professionals alike, don’t go spelunking. They are once again going caving. Why? Because spelunking is the word used by relatively new cave geeks.

I’ve got the impression that this whole URL vs. URI thing is following the same pattern. Only this time, URI is the term used by relatively new PHP geeks.

Here’s the low down in one sentence – URI (Uniform Resource Identifiers) are divided into two categories: URLs (Uniform Resource Locations) that describe the location of a something, and URNs (Uniform Resource Names) that identify something but don’t specify the location or method to get to it.

So, what has happened is that in the growing world of PHP whiz kids and Web 2.0 excitement where EVERYONE knows what an URL, someone learned that a URL is really just a type of URI. SO the blogged about a something using the term URI in big fancy sentences. People saw that and then said “oooo, I’m cool too! I’m gonna call these things URIs.” “URL? That’s so Web 1.0 of you!”

Back in the real world, one can almost guarantee that EVERY field you fill in, that asks for a “URI”, is asking for an address not an identifier. It’s asking for a location: a URL.

What we have in the self propogating blogosphere is all of the blogs, CMS sites, open source and public domain projects that are supported by weekend warrior coders referring to URIs because it was deemed by someone to be more correct. Meanwhile, all professionally developed products will ask for URLs. That’s because professionals know that they REALLY want to have a URL and not a URN.

They know asking for a URI is wrong if you cannot accept a URN.

They additionally know one more thing through experience. The professional DOES NOT want to make the user think. If the user has to stop their process (filling in a form or whatever) and ask themselves what the software expects them to do, the developer has failed.

Now, you might be asking yourself: OK, great – at the start of this I just wanted to know what a URI is, now what the heck is a URN????

I’ll answer that, but if you want it in geek speak, look here:


If you want it in plainer English read on, for it is really easier to see it in examples. I can find no other place on the entire net that explains it in the detail I plan to here, so I hope this is helpful.

What is a URI? A Uniform Resource Identifier (URI) is a standardized way to explain the name and/or location name of a resource.

What is a Resource? A resource is a collection of information in any form. It could be a website. It could be a blog. It could be your mother’s 1953 Betty Crocker Cook Book. It could even be this post you are reading now. A resource does NOT have to be related to computers.

There are two types of Uniform Resource Identifier (URI): URLs and URNs.
The first type I’ll cover is the easy one: the URL. We all know that URLs are used to point to a location on the internet. What you may not also realize is that as they are telling you where on the interenet something is, they also tell your computer the method that must be used to reach that location. That’s the “http://” or “ftp://” part of an URL. It’s the part of the URL called a “scheme”.

Here are some examples of URLS with schemes:


The Uniform Resource Name (URN) is the second, less common type of URI. Basically a URN is a unique code that identifies a resource. That code will ALWAYS identify the resource even after that resource no longer is available. It does not tell you where you can find that resource. It doesn’t mean that there is only one of that resource available. But if a URI is identified in a document, the reader will know EXACTLY what the author was discussing. Specification documents often have a URN. If I refer to RFC 2648, that has specific meaning. It refers to a specific “Request For Comment” held by “The Internet Society” (I’m sure I have their card in my Illuminati card deck…). If I want to put that reference in the form of an URN, that would be: urn:ietf:rfc:2648

There is a very short list of official URNs. They are:
URNs: Official (according to the RFCs):

‘ietf’, defined by [RFC 2648], URN Namespace for IETF Documents
‘pin’, defined by [RFC 3043], The Network Solutions Personal Internet Name (PIN): A URN Namespace for People and Organizations
‘issn’ defined by [RFC 3043], Using The ISSN as URN within an ISSN-URN Namespace
‘oid’ defined by [RFC 3061], A URN Namespace of Object Identifiers
‘newsml’ defined by [RFC 3085], URN Namespace for NewsML Resources
‘oasis’ defined by [RFC 3121], A URN Namespace for OASIS
‘xmlorg’ defined by [RFC 3120], A URN Namespace for XML.org
‘publicid’ defined by [RFC 3151], A URN Namespace for Public Identifiers

You may not have heard of any of those. However, there are a large number of unofficial or pending URNs that you will have heard of.

ISBN – The International Standard Book Number (http://en.wikipedia.org/wiki/ISBN) allows you to identify a book with an URN. I’ll show the URN first and then a url to get information about that resource.

Here are some example ISBN:

URN:ISBN: 1-5562-2637-3 identifies this book (not the website) Advanced Graphics and Game Programming in Delphi
URN:ISBN:1-5920-0733-3 identifies this book (not the site): Advanced 3d Game programming All in One

Digital Object Identifier (DOI) Read about this one here: http://www.doi.org/ and here: http://en.wikipedia.org/wiki/Digital_object_identifier

ALEXA’s ASIN: Amazon has its own code that will probably never become an officially adopted URN, however it is common on the internet as it is now used to rate websites through Alexa. ASIN stands for Amazon Standard Identification Number. Almost every product on our site has its own ASIN–a unique code we use to identify it. For books, the ASIN is the same as the ISBN number, but for all other products a new ASIN is created when the item is uploaded to our catalogue. Read more: http://en.wikipedia.org/wiki/ASIN &
What is an ASIN?

Here are some example ASIN:

URI that is an the URL containing the URN: in this link
URI that is an the URL containing the URN: in this link

Did you know that songs also have unofficial URNs:

ISRC International Standard Recording Code
ISRC:USPR37300012 – The song “Love’s Theme”, from US’s “The Love Unlimited Orchestra”.
ISRC:BRBMG0300729 – The song “Enquanto Houver Sol”, from the Brazilian group “Titãs”

I think that should make it all clear, but feel free to ask any question you might in the comments. And if you use this info anywhere, please refer back to The Code Cave.

So, back to WordPress and it’s prompt for a URI. It should be clear at this point that when it is asking for the “WordPress address (URI):”. It will not and DOES not accept any old URI. In fact, it will ONLY accept an URL. And THAT’S what it should ask for. But then we wouldn’t have thousands of people blogging about the differences between a URL and a URI would we?

The other Code Cave


This is a support article for my (soon-to-be) new About page. It explains one meaning of a “Code Cave”. It also shows you how to use a Code Cave that was left in Notepad to hack in some new functionality.

You can (soon EDIT: OK, I guess I lied -b) see the about page for an even better description of a Code Cave. I’ll summarize here by saying that taking advantage of a code cave is just one method commonly used by gamers to get past anti-cheat/PunkBuster measures in multiplayer games like Quake I-IV, Return to Castle Wolfenstein, Call of Duty and others.

This site is not going to get into hacking very much. I’ll probably just explain a few website vulnerabilities, just because they are cool and the fact that other sites published them has taught me how to write good code – and that IS a subject covered by this site. So, here is the OTHER meaning of a Code Cave and why I get some stray hits from people searching Google for hacking tools!

NOTE: if you do look for original versions of this article, be aware that:

  • it is full of MS html spam
  • the files it links to are infected with a virus
  • I also censored the language so I could keep my General Audience/Safe for kids rating on my site.
  • the files some how download from the link even though you hit cancel. I wouldn’t have believed it if I hadn’t seen it myself. I am CERTAIN I hit cancel because I didn’t get a save as dialog even though the infected file appeared in my internet cache.

That’s just a BIT bothersome. So, you might want to avoid it all together.

Continue reading The other Code Cave

The Islamic Muslim rational for web censorship

I’m making this a different post from Web censorship in Saudi Arabia because it more has to deal with differences in the Qur’an and the Bible than SA’s take on censorship.

Usefulness of Filtering:

God Almighty directed humanity in the Nobel Qur’an in the words of His prophet Joseph: “He said: My Lord, prison is more beloved to me than that to which they entice me, and were you not to divert their plot away from me I will be drawn towards them and be of the ignorant. So his Lord answered him and diverted their plot away from him, truly, He is the All-Hearer, the All-Knower” Yusuf(12):33-34

This reasoning Seems to be the basic “If your eye offends you, pluck it out” logic extended to include “If your neighbor’s eye might offend him, pluck it out.” That may sound harsh, but there is a certain logic to it. If it is certainly better for you yourself to get to heaven with 1 eye than with none at all, wouldn’t the choice be the same for a loved neighbor? It takes a first party statement and moves it to third party. The side effect however is that with this specific verse as the example, it specifically has the state of Saudi Arabia taking on the place Allah in its people’s lives. In the Bible, though Christians are told to give unto Czar what is Czar’s, the government taking on the role of God is not supported. In fact the protestent and anabaptists movements were both started in part because the Church was taking on the role of God.

Though Saudi Arabia’s internet service also provides secular reasoning based upon scientific research done in the United States, their actions are based, religiously, upon two verses of the 12th chapter of the Qur’an. That Chapter/Book is called Yusuf.

Yusuf largely parallels the story of Joseph from Genesis 37 & 39 with, from my perspective, a few twists, details, motivations and editorials added in. Christian and agnostics alike will probably recognize the story as that of “Joseph and the coat of many colors” (or the Joseph and Technicolor dream coat if you only know of the Bible through Broadway Musicals).
Continue reading The Islamic Muslim rational for web censorship

Web censorship in Saudi Arabia

An exausting but good day…Yeesh… just got a chance to breath. was supposed to make some phone calls when I got home tonight but after getting the kids in bed it was too late.

I just checked the logs at on my wife’s site Knitchat.com and she’s had another incredible day. four days ago, she shot up from an average of 850 unique hits (using the most generous of three unique hit log analyzers) to 5995. The past couple days she’s been up at 1300. So, whatever happenned, it seems to have stuck.

A large number of the hits are from Saudi Arabia. That, to me, at first screamed “anonimizer proxy”. There are many services that will give you fake IPs from all around the world, but I can find no trace, so far, that these are not legit people. I guess I need to get the actually times and IPs of the visitors and see if they are at regular intervals or something, but without digging straight into the logs, this all looks legit.

Anyway, I went over to the website that the various SA addresses resoved to and it was this www.ISU.NET.SA the main internet service provider for Saudi Arabia.

I thought I would share some of their views on the internet with you:

Introduction to Content Filtering
What is this service?:

The Internet Services Unit oversees and implements the filtration of web pages in order to block those pages of an offensive or harmful nature to the society, and which violate the tenants of the Islamic religion or societal norms. This service is offered in fulfillment of the directions of the government of Saudi Arabia and under the direction of the Permanent Security Committee chaired by the Ministry of the Interior.

Types of Materials Blocked:

The types of materials which the ISU is directed to block are few, most noteworthy among them are pornographic web pages which consist of 95% of all blocked web pages. As for the other categories, they consist mainly of pages related to drugs, bombs, alcohol, gambling and pages insulting the Islamic religion or the Saudi laws and regulations.

How are they filtered?:

KACST maintains a central log and specialized proxy equipment, which processes all page requests from within the country and compares them to a black list of banned sites. If the requested page is included in the black list then it is dropped, otherwise it is executed, then the request is archived. These black lists are purchased from commercial companies and renewed on a continuous basis throughout the year. This commercial list is then enhanced with various sites added locally by trained staff.

The difference between filtered and unfiltered web page retrieval reaches on average no more than half a second, which is too miniscule a timeframe for most humans to perceive.

Usefulness of Filtering:

God Almighty directed humanity in the Nobel Qur’an in the words of His prophet Joseph: “He said: My Lord, prison is more beloved to me than that to which they entice me, and were you not to divert their plot away from me I will be drawn towards them and be of the ignorant. So his Lord answered him and diverted their plot away from him, truly, He is the All-Hearer, the All-Knower” Yusuf(12):33-34

Confirmation from modern scientific studies:

In a study by Cass Sunstein in the Duke Law Journal it was found that countries which impose strict laws relating to prevention of pornography enjoy a reduction in the rate of rape and murder and vice versa. Similarly, in a study conducted by the Attorney General’s Commission on Pornography and another conducted by the University of New Hampshire it was found that those states trafficking most heavily in pornography saw a similar increase in the rate of rape. Specifically, Alaska and Nevada were the two states with the highest rates of pornographic materials (five times that of other states), accompanied by a similar increase in rape activity (eight times that of other states).

You may now discuss the aspects ethics of National Internet Censorship…

On a much lighter note…

Chris and John went duck hunting for the first time.

They took decoys, shotguns, and camouflage hunting suits. Before they left, a friend suggested that they bring a “dog to get the ducks”. They took his advice and off they went.

As noon time rolled around, the other hunters on the lake were heading back with boats filled with ducks, while Chris and John had not a single duck.

Chris asked “What do you think we’re doing wrong John?”

John replied “Maybe we’re not throwing the dog high enough”…

Buh dom bom… Sorry I couldn’t resist that one… It so reminded me of jokes from the Prarie Home Companion Joke shows. But they are always Sven and Ole (Pronounced Ollie)… Like this one from 2004

Swen and Ole go duck hunting and Ole is very excited to show off his new hunting dog. They are out in their duck hunting boat and a couple of ducks fly over. They fire and a duck them drops. Ole sends his retriever out to get the duck. The dog jumps out of the boat and runs across the water picks up duck and hops back into the boat. And much to Ole’s dismay, Swen doesn’t say word.
Another couple of ducks fly over. They shoot and another duck falls. Ole sends his dog out again. The dog again runs across the water, picks up the duck, and runs back and hops into the boat. Still, Swen doesn’t say a word.
This happens several more times and finally Ole smugly says, “So Swen, do you notice anything unusual about my new dog?”
“Ja, he can’t swim.”