Monday, September 25, 2017

Updated About Page and fixing broken links

Maintaining a web directory is time consuming enterprise and has little reward. Anyway, I just updated the about page for Community Color.

I also started fixing some of the broken links to pages in the directory which will hopefully increase traffic.

My last server could only deliver 10,000 pages a day. I believe that the new server will be able to deliver several hundred thousand page views per day. The challenge is figuring out how to create content that is worth that many page views.

Saturday, August 12, 2017


I logged into yesterday and was sad to see that Mozilla's "Open Directory Project" had finally failed.

DMOZ was a really big thing back in 2000.

DMOZ was a human edited directory maintained by volunteers. The directory was arranged in a hierarchical fashion which is a common structure for organizing data.

The DMOZ directory was a primary source for some of the early search engines. For awhile a listing on DMOZ resulted in a big boost in one's position on Google and Yahoo.

Apparently, DMOZ inspired the creation of Wikipedia.

DMOZ was owned by AOL (America Online). AOL was a huge thing back in the 1990s. AOL provided online access before the general public was allowed to connect to the Internet and instantly became the biggest internet service providers when the public was allowed access. AOL was acquired by Verizon in 2015.

My desire to build community portals coincided with the creation of DMOZ. I never found a funding source. I never developed a network of volunteers because I believe strongly that people should be paid for their work.

My idea is to mix affiliate ads with the free listings on the directory. This income stream fails because people don't use directories for shopping. They use directories for browsing.

Anyway, I am staring at the blank page for DMOZ and am left wondering if I should see the fall of the largest Internet directory as an opportunity or if I should see it as yet another sign that the days of my project are numbered.

Friday, August 11, 2017

New Home Computer

I finally faced up to the fact that the last computer I purchased did not have enough power to do complex tasks like edit photos, open spreadsheet files or load ad laden web pages such as Tumblr.

The computer had enough power. IMHO, the real problem was that Windows10 had become so bloated even fast computer is bloated down by bad software.

So, I bought a new computer.  Since I've been using Ubuntu for my web server, I decided to get one built for Linux. It is Meercat from System76.

System76 Meerkat

Sunday, March 05, 2017

Porting to new server

I am finishing the job of porting web sites to the new server. The new site uses PHP7, SQLite and HTML5. Things are different enough that I have to rewrite every single line of code in the program.

Anyway, I would love to receive comments on the site. I've been working on this project since 1999 and have actually received any comment on the idea of creating local directories.

The site currently does not have any interactive features. So, I will use this blogspot blog for comments.

I just moved to the new server. The site seems to respond quickly. The last Utah directory to to will be the Salt Lake Directory.

Monday, February 20, 2017

The Martyrdom of Parley Pratt

I was raised in Denver and grew up loving the history of the Old West.

One of my goals in creating the Community Color sites was that sites would justify taking time to explore the colorful history of different regions.

My family moved to Utah some decades ago. The problem I face is that I really do not like the history of Utah.

Utah was settled by Mormons. Mormonism, it turns out, is a culture war religion. The Book of Mormon claims that there was once a great extermination war that took place on this continent between the Nephites (who were white and delightsome) and a variety of other tribes who were dark and loathsome. The Nephites lost the war.

Both Joseph Smith and Brigham Young claim that the proof of the Book of Mormon is the base observation that Europeans have lighter skin that Native Americans.

Mormonism teaches that a group of righteous saints are to be gathered in the "latter days" and that these saints are locked in an unending culture war with everybody who is not a member of their tribe.

Joseph Smith liked the ladies. Smith restored the principle of polygamy and sealed himself to as many women as he could get his hands on. Smith's band of wives included some fourteen year old girls and the wives of his followers.

Polygamy is an interesting device in that it allows powerful men to grab even more wealth and power.

The history of Utah is one in which Brigham Young and the Mormons would form powerful polygamist clans and would then use the clans to grab as much territory as possible.

There were invariably conflicts between the immensely powerful Mormons and everyone else.

The story of Saint Parley Pratt provides the typical settlement story, but with one sensational twist. (Members of the Latter Day Saints consider themselves Saints on earth).

Anyway Parley Pratt was an early convert to Mormonism and was a part of Joseph Smith's twelve Apostles. Pratt saw the potential of polygamy and took to marrying multiple women with a vengeance.

After emigrating with Brigham Young, Pratt helped with the survey of Parley's Canyon and, being an extremely powerful member of the LDS Church, grabbed the choice chunk of land which is now Park City.

While in San Francisco, Parley Pratt seduced a woman named Eleanor who was married and had three children with a man named Mr. Henry McLean. Without gaining a divorce, Eleanor was "sealed" to Parley Pratt in Salt Lake.

I need to point out that Joseph Smith had sealed himself to the wives of several of his followers. So, marrying another person's wife is not considered outlandish among Mormons.

Anyway, Henry McLean was cantankerous. He tried sending his children to their grand parents in New Orleans to keep them from the clutches of Parley Pratt.

Parley and Eleanor went to New Orleans to collect the children. After Pratt took the children, Henry McLean followed and eventually shot Parley Pratt.

So, Parley Pratt, who was an Apostle of Joseph Smith, was pursued, persecuted and martyred by an evil gentile named Henry McClean.

This martyrdom of Apostle Parley Pratt is held by Mormons as one of the great persecutions of their faith.

I guess Mormons hold that a great man like Parley Pratt should be able to marry the wives of non-great mean like Henry McClean without repercussion.

Now, here is the problem I have with Utah history: Mormonism is a culture war religion. The LDS Church teaches that its adherents are the righteous who were gathered in the latter days to engage in an extermination war with the evil gentiles.

Because the area was built by people engaged in culture war, every piece of history in this state gets interpreted as part of the culture war. It is impossible to research the history of the state without getting drug into this mean hateful culture war.

The town of Park City was originally named Parley's Park City after Parley Pratt.

Park City is one of the choicest pieces of real estate in the Mountain West and is now an internationally recognized destination resort.

One cannot talk about the history of Park City without discussing Parley Pratt.

One's opinion of Pratt almost always follows culture war lines.

The righteous hold that Apostle Pratt was a great patriarch of the faith who married 12 women  but was persecuted and martyred by an evil gentile. Non Mormons tend to look at Pratt and see a lecherous lout who broke families apart by seducing married women.

The great culture war that dominates live in Utah means that people in general cannot talk about the history of the area without being drawn into a mean hateful culture war launched by Joseph Smith.

BTW, I do not believe that Native Americans are loathsome. My observation is that people in southern climates tend have darker skin than people in northern climates because they spend more time in the sun than people in cold northern climates.

Thursday, February 16, 2017

New Site and Advertising

I am finalizing the the new site design for Community Color. I have only two sites pointed at the new server.

The new site is much faster than the old site, and I hope it will be able to handle a hundred times the traffic of the old server.

The Community Color project had over 10,000,000 page views last year. The old server would freeze up whenever I exceeded that amount.

Sadly, I made less that $3,000 revenue from the site. Last year I performed three test purchases on the site. I received credit for only one of the three purchases. It makes me livid. I am sending hits to advertisers by the thousands who are not crediting me with the traffic.

I figured my best bet for salvaging the project is to replace the affiliate ads with direct advertising. The problem with direct sells is the collection cost. Spending two hours to collect $10 from an advertiser is a path to insolvency.

So, what I decided to do is to sell the ads in units of 100,000. The price for the unit will be $25.00.

As mentioned, I had 10,000,000 page views last year. I should be able to consume 100 lots of 100,000 ads.

Advertisers can order an ad (I need advertisers in Colorado, Utah, Arizona and Southern Wyoming.).

If I approve the ad; I will place the ad on the site and send a Paypal invoice show the ad placement. If the advertiser is happy; the advertiser can pay the bill. If not; I will delete the ad after a week or so.

Now for the scary part. I am betting the boat on my ability to sell 100 ads for $25 a pop to make $2,500.

The market for local advertising has been so weak for the last few years that I am not sure there's a hundred businesses in the Mountain West that would buy the ads.

Anyway, I have the ad ordering program online. The ad is 738x90 banner that goes above the fold on the page. I have at most one such ad per page. The ad can be text or an image.

I am looking for ads in Arizona, Colorado, Utah and Southern Wyoming. Here is the ad ordering page.  You can order an ad. I will put it online and send a Paypal Invoice. If you like the ad, you can pay the invoice; Otherwise I will remove the ad.

Monday, February 06, 2017

Reviving Utah Color

I have put this project off for too long!

I am in the last stages of moving the Community Color sites to the new server. Due to changes in PHP, I've been forced to rewrite the code from ground up and it is going extremely slow.

I decided to start the migration with the The new design will feature a subdirectory for each of the 29 counties in the state. Egads, 29, this is a lot of work.

I am laying in a framework starting with Beaver, Carbon County, etc.

I appreciate any feedback on the site.

Quite frankly, the reason that I've taken so long on the rebuild is that I have not received any feedback and the lack of input has zapped my enthusiasm for the project.

Saturday, November 26, 2016

Small Business Special

At the dawn of the Internet, I realized that small business was likely to get the shaft while big businesses make big deals between themselves to dominate the web.

I decided that I wanted to do something to help small business; So I started making little directories for local businesses in select towns in the Mountain West.

The original idea was that I would build directories and web services for small communities. The directories would be funded by affilate ads from big business. The big businesses would pay for free services for small businesses and charities. This worked okay for awhile.

This year, I decided to experiment with selling ads directly to small businesses. The ad rate will be $25.00 for 100,000 page views. The Ads are 728x90 banners that gone in the upper fold. Note, I serve the ads in SVG and they scale to screen size. The ads can be a 728x90 banner or just plain text. I present the Text in SVG. The ads scale to screen size.

The sites show at most one ad per per page. The click through rate on my old affiliate ads was a little over one click per thousand page views.

I am only interested in local ads from small business. The directories are in the mountain west. I have select towns in Utah, Colorado, Wyoming and Montana. I have a county by county directory for Arizona.

The work flow for ordering an ad is: You select a directory and a subject within a directory. You then define the ad. The Text ads have two lines. The title line should be under 28 characters and the text line under 75.

If you have a 728x90 image on line, you can enter a link for the image. I will copy the the image to my server.

I also use box ads (336x280). These ads go on calendar events. My ad inventory for these box ads is really small. So I am not pushing the box ads.

When you order an ad I require that you give me your name and an email address.

If I approve the ad; I will place the ad on apropriate areas on my site. After placing the ad, I will send you an invoice via Paypal to your email address for $25. The invoice includes a link showing the placement along with ad stats. You can then review the placement.

If you are unhappy with the placement; don't pay the invoice!

Note, I do not offer a money back guarantee after you pay the invoice. I am giving you a review period in lieue of a money back guarantee.

Some ad campaigns have a fixed duration. If your ad expires in the next 90 days, enter the expiration date. I charge only $12.50. I turn fixed duration ads off when they expire or have 40,000 page view, which ever comes first. I cannot guarantee 40,000 page views and don't offer a prorated refund as calculating a prorated refund for $12.5 is a pain in the tush.

This program is in an experimental phase. I do not mind if people order the ads just to test the program. Write in the note area that the order is a test.

Here is the ad ordering page for Park City. The first line of the program lets you select the site for your ad. Park City is the only site on my new server. This new ad program goes live as I move sites to the new server.

Wednesday, September 07, 2016

Demise of ITT Tech

Looks like The Obama Administration was successful in shutting  down ITT Tech. I wander if they will be able to shut down the University of Phoenix this year?

The closure of ITT Tech makes me sad. A decade ago the school had a curriculum that was better than most local community colleges. ITT Tech students were actually getting a higher return for the amount of money they invested in education than other schools.

ITT Tech was briefly owned by ITT and was truly focused on giving students the skill sets needed for the technology environment of the day.

Businesses tend to align with their funding source. The primary funding source was the Federal Government and guaranteed student loans.

So, instead of focusing on developing a better curriculum for less. It appears that ITT Tech took the low road and turned into a mill for processing student loans.

Even worse, ITT Tech appears to have devolved into a student loan mill during a weak job market. The poor students would pop out of the company into a soft job market and simply be umemployed and deeply in debt.

I had the misfortune of wasting two years of my life as an instructor for a student loan mill in Utah. The company was very good at getting students to sign the dotted line on the loan application, but was providing a subpar product.

Many public universities appear to be little more than student loan mills. Since the universities don't have private investors, they don't get raise the ire of the public. When public universities go bad, Democrats simply yell for higher taxes.

Anyway, now that the Obama Administration has the formula for closing down private for profit schools, I wonder how many schools he will be able to close before the end of his administration.

Tuesday, September 06, 2016

Replacing Affiliate Ads with Direct Ads

I am upgrading the Community Color Web Sites to PHP 7. I am also replacing MySQL with SQLite3 and upgrading to HTML5. It's a big project that I hope to complete this week.

As part of the upgrade I will replace the Adsense Ads and Affiliate Ads on the site with direct local ads.

I like the basic concept of affiliate advertising. A site with a product to sell offers a commission on sales. Web sites run their ads and get an occasional commission.

There are tens of thousands of merchants with affiliate programs. These merchants offer millions or products.

I believe that affiliate marketing is a good thing. Because there are so many products, web sites can run ads for things they support without compromising their message.

The problem I have with affiliate marketing is that the huge networks that offer affiliate ads aggressively track user activity. These use the information they gather to manipulate user behavior. They often engage in activities that undermine the sites that run their ads.

I believe that my sites are well enough established to break from the clutches of the big marketing firms and that I will be able to replace the ads. Currently, I have over 10,000 page views a day. My 10 year old server freezes up when I have more. I believe the new new server and improved code will be able to handle a hundred times more traffic.

I decided that the best way to handle local advertising is to sell the ads in blocks of 100,000.  I am currently getting about $30 for every 100,000 page views. Since I will bill in advance, I decided to charge $25 for every 100,000 page views. This is a super low rate of 25¢ CPM.

The new site will go live in a week or so. I would love to have a few people buy ads before the site goes live so that I can tweak the program.

The ad is a 728x90 banner that is in the upper fold of the page (between the page title and contents). I put text ads in a stylized SVG block. You can pre-order ads on my test server.

Use this form to order text ads.
Use this form to order a banner ad (you need a link to a 728x90 banner).

The ads won't go live until I switch to the new server which I hope to do soon.

I only have 10,000 page views per day (which I've split into targets). I only want ads related to the target. I don't want to show ads for Denver Lawyers on the Moab Real Estate page. The flow of the program is as follows. A person orders an ad. If I have a relevant target, I will approve and place the ad.

Some time after the new site is live, I will send the user a payment request using Paypal (Paypal accepts Visa, Mastercard, etc). The request will show the ad placement. If the person is happy, they can pay the bill. If not I will remove the ad. I am using a delayed payment instead of a money back guarantee.

Monday, September 05, 2016

Still No Date Picker in Firefox

I am bummed out. Firefox still hasn't implemented the date picker that was in the HTML 5 specs that came out a few years back.

I hold that the date picker should be provided by the browser because it gives the client a unified experience across sites. Here is a sample form with the new HTML date types. Chrome and the other browsers I tested have date pickers. Firefox does not.

This means I can't depend on the feature. Arrrggggggghhhhhhhh!

Friday, September 02, 2016

New Privacy Policy

I created a new privacy policy page for the Communtiy Color sites.

The privacy policy tells the world that [gasp] I track activity on the site.

I track the activity to see what parts of the site people visit. I use this data to figure out how to expand the site. If people are interested in sports, I add more info about sports. If they are interested in history, I add more pages about history.

Our leaders and media vilify small sites for using cookies and tracking activity. The EU requires that web sites apologize if they use cookies.

A cookie is simply a device that allows web sites to carry information between pages. I do not use cookies for casual visitors to the site. However, I do drop a session cookie when a user logs in to the site. I need the cookie so that they can modify the information on their account.

Now, I find the idea that every site provides a privacy policy to be absurd. The only privacy risk of small sites is that they might send spam if they require a user's email address. This risk is adverted by being careful in giving out one's email address. Personally, I use multiple emails addresses and never give up my most private addresses.

As for this new policy:

I've been hoping to replace my large national advertisers with small local advertisers; So, I am using the privacy policy to sell my new local advertising product.

My advertising product seeks to replace advertisements from large national advertisers that track user activity with small local advertisers that do not.

So, while I think the demand that every site includes a privacy statement to be foolish, I am not adverse to using the page to sell a product. If advertisers bought their ads directly from sites, it would help replace ads from big advertisers that create user profiles with small sites that do not.

Thursday, September 01, 2016

Online Advertising

I've been working on upgrading the Community Color sites. The process is taking longer than I had hoped.

The new design will offer targeted local advertising.

The way this works is I assign each page a target. The Design an Ad page allows advertisers to select a target and create an ad related to the target. The program will allow both text and image ads. I create the text ads with SVG.

The cost for the ads will be $25 for 100,000 ad views. That is an ad rate of 25¢ per thousand ads. This is an extremely low rate.

The catch is that it might take several years for me to display 100,000 ads on some of the smaller targets.

The new design is not yet live, but my test server is up.

The process will work as follows. Advertisers can design ads on my test server. If I approve the ad; I will send a Paypal invoice to the advertiser after the new site goes live. Advertisers can then accept the placement by paying the invoice or reject it by not paying the invoice.

You can order an ad. See what it looks like on the site and then cancel the ad just by ignoring the Paypal invoice.

It would be fun to have a few ad orders before going live. That way I could test the program with live data.

Monday, August 08, 2016

SQL Table Object

I open sourced the code for the object I use to create simple HTML tables. This is somewhat of a Swiss Army Knife object that can be used to create tables in multiple ways.

To understand the object you will want to look at both the source code and the demonstration page.
The object I use to produce forms is much more complicated. I am updating it for Forms 4.0.

NOTE: The program uses the sqlRow() function which  encapsulates the PHP PDO object. It uses the htag() function which indents the output; so that my HTML is well formatted.

Friday, August 05, 2016

Path to Citizenship?

In 2013, the US naturalized 777,416 immigrants. The chart on indicates that the United States has naturalized well over a half million immigrants every year this decade.

Hillary Clinton's claim that there is no "path to citizenship" is a lie. The fact that the United States continues to have the most generous immigration systems on the planet proves Clinton to be a liar. (Not surprising for a person married to a convicted perjurer).

The problem we face isn't the lack of a "path to citizenship" but the fact that that millions of people are blatantly ignoring immigration laws which makes it much more difficult to define that path to citizenship.

In today's speech, Clinton made the claim that illegal immigrants pay some $13 billion into Social Security.

I need to point out that it is the employers who pay into social security.

The true statement that employers paid some $13 billion into social security.

Quite frankly, this same amount of money, if not more, would have been paid into the system on the behalf of US citizens if the employers hired US citizens instead of illegal immigrants.

I personally do not hire illegal immigrants. Many illegal immigrants appear to be part of a shadow economy and the people in the shadow economy work in cash and do not pay social security.

The claim that Republicans are anti-immigration is a blatant lie. We have a path to citizenship proven by the half million people who make it through that path each year.

The problem is that we don't have an effective path for denying citizenship.
As for deportations, If I were president, I would make enforcing visas a priority. A visa is a contract. People violating the terms of their visa show a contempt for contracts and the rule of law.

Hillary's statement that she would only enforce immigration laws in regards to violent offenders is horrible. We need to enforce visa laws to have an effective visa system. By openly declaring that she would not enforce Visa laws, Hillary has made it more difficult to have a liberal visa system.

Aggressive enforcement of visas is not anti-immigrant because it allows for a greater liberalization of visa laws. The idea that being granted a visa should be seen as a path to citizenship is absurd.

Quite frankly, since violating the terms of a visa shows contempt of law, I would say that people who grossly violate the terms of the visa should be kicked off the path to citizenship. Showing respect for contracts, including a visa contract, should be part of the path to citizenship.

Monday, August 01, 2016

Redirects and Broken Links

The migration to the new server is going slow. I am rewriting each line of code. Oddly, my programming style is becoming more Spartan. with time.

Here is the code for the primary redirect program. A redirect program simply records a hit and sends the user to destination for a link.

Most users don't like web sites recording their links. So, I only use the redirect program on merchant ads and paid links. I only track usage for about 5% of the links in the site.

My stat counters say that the redirect program has been called 1.7 million times; So, I figure that I have sent well over 20,000,000 hits to sites listed in the directory.

There are several robots, eg Googlebot, that read the site. Many of these robots are created by companies that send traffic to web sites. I believe my local directories have had a positive impact on local commerce.

Anyway, I made two huge improvements with this new version of my redirect program.

The first is that the program now produces full blown pages, instead of a cryptic message, when links aren't found.

The really big improvement is that I decided to start recording information about broken redirects.

I did not do this before because my site verify the existence of a link before generating the code for the link.

While coding this site, I realized that, if I began using redirects for more links, then I would be in a better position to discover broken links as they occur.

So, I will probably come back and visit this redirect page after I finish the migration to my new server.

Thursday, July 21, 2016

First Page

I am still extremely unhappy with the PHP Object Model. But I simply have to move my sites to a new server or perish.

Anyway, I just created the first official page for the new design. I decided to start with something simple; So, I created the About page . Each site in the project has an about page with a blob of text about the project. I store the blob in a SQL table.

As promises I am open sourcing the code. The code for this page is four lines long. The page simply calls the framework and says: I want to print a page with this data.

Here is the code for the About Page.

Okay, I could have reduced the size of the page to three lines of code.

PS: I am still working on the CSS and overall page layout. I will finish the work on the layout after I put up several pages with more complex content.

PPS: Okay, Okay. I removed the fourth line of code. The whole point of this project is that if one has a decent framework, then thee pages themselves will be short and fast.

Monday, July 18, 2016

Recoding Site

I need to get myself in gear and start programming again.

The problem I face is that PHP deprecated the mysql_query() function and wants people to use a hideous piece of code called PDO.

I have yet to find a single implementation of PDO that does not turn my stomach. I am to the point of giving up on PHP altogether and just writing everything in C. Let's face it, the only reason I used PHP was because my webhost wouldn't let me write and compile code on the server.

PHP is a programming language that is commonly used to create HTML for display on a browser. Most PHP programmers don't care about the quality of the HTML, but I want the HTML produced by my programs to be well formed and well formatted.

PHP does not allow programmers to override the echo command; So I wrote a function called htag() which keeps track of the indentation level of the HTML code.

As for PDO, I created a function called dbConn() to encapsulate the PDO Object. I make the calls to the database with functions called sqlValue(), sqlRow() and sqlExec().

Being a good netizen, I will open source the PHP for the Community Color project on the site The program includes a schema viewer which lets you see the create statements for the tables used by the site and a code viewer which lets you look at the PHP for select files in the program.

The first piece of code I present is the code viewer. This pieced of code was just a brute force program I wrote to show formatted code. It is not well designed.

The cool thing about these viewers is that they pull and display code from the live web site.

Saturday, May 21, 2016

Starting the Web Site Move

Users of the Community Color sites may have noticed that the sites are overloaded. I added some come that drops the page when the serverload is over 85%. Without that code, the sites would be crashing every hour or so.

The sites are dropping several thousand of pages each day.

This should not be happening. I bought enough resources that I should be able to handle ten times the current traffic.

The solution is to redesign the site and move to a new server. Back in December, I experimented with PHP7 on Ubuntu 14.04. Several of the features of PHP7 did not work correctly; So, I decided to wait until PHP7 was available on a Linux distribution with long term support.

That finally happened about ten days ago.

The day after I bought the new account, my father passed away. Since that event, I've been unable to get a block of time sufficient to test the server and start the migration.

This morning, I decided there was insufficient time to fully test the new server; So, I started the migration. I turned off the ability to register as a user and started the migration.

Five minutes after taking that action, a family member came to the house with ambitious plans that will consume the next three days. I probably won't get an opportunity to work on the migration until next Wednesday or Thursday.

I apologize for the inconvenience.

Thursday, May 12, 2016

In Passing

My father passed away today. It was an expected event after months in rehab and hospice; So, I didn't get a chance to work on my website migration as I had hoped. I will probably be busy for a few days.

Migration to

Hurray, finally added a template for Ubuntu 16.04 (Xenial Xerus). This LTS (Long Term Support) release includes PHP7. LTS means that a company called Canonical will provide security and product upgrades for 5 years.

I plan on migrating the Community Color sites to this new service. My site has been on its current server for about eight years. One should upgrade servers about every five years or so; So, this upgrade is long past due.

I will be using the VPS SSD account. The account is actually hosted on an array stack of SSD memory rather than a traditional hard disk.

I already moved my email accounts to the new service and am extremely pleased with the performance of the server.

I don't send a lot of email; So, I purchased a single node account for my mail server. The cost of a single node is $5/month or $60 per year.

Webhosts often put email same server as the email. This means that people who attack your email accounts can attack your website and people who attack your web site can get their fingers into your email.

Putting the email on its own server also frees up resources on the web server for delivery web pages.
Email tends to be disk intensive; so it is an ideal application for an SSD cloud account. I am using To get an account do the following:

  • Copy the number 69032. This code gives you a $10 discount on the service and gives me a $10 discount.
  • Go to and select a single node for $5 month.
  • Select the data center which is closest to you. At this point in time, I would select Ubuntu operating system and the Ubuntu 16.04 template (which was just released.)
  • will ask for billing information. Paste the number 69032 into the coupon box. This gives you $10, which offsets the cost for the first months.
  • I installed the following packages for my web server: Postfix (a mail transfer agent), Dovecot (email server). Setting up an email server is a pain in the tush. The default settings of these programs often work, but it is best to read the online manuals to fine tune the configuration.
  • I like to read email online; So, I installed Apache2 (a web server), PHP7 and SquirrelMail. (Most of the tutorials have you install MySQL, but you don't need it.
  • As only a few people use my email server. I decided to use a self-signed SSL Certificate. If multiple users use the server, you might one to get one from a certificate authority.
  • The hardest part of the installation was setting up the DNS. This is different for different domain registrars.
Setting up an email server is a real pain in the tush. But I highly recommend putting email on a separate account from the main server.

Saturday, April 16, 2016

Account Maxed

I apologize for the intermittent delays and outages on the Community Color sites. It appears that I've maxed out the resources on my account with I am using the Westhost cloud service with costs $50 a month. I could double the capacity of the account by going to the next service level, but this would cost another $50/month.

But the sites don't generate $50/month in revenue!

I cannot a $50 a month upgrade!

So, what I am going to do is to switch to an SSD Cloud account on

The Westhost account is a managed account. I includes the CPanel management tool.

I will have to do all the management for the account. I will have to use an SSH Shell instead of CPanel ... but I will save $20/month.

As I don't want to spend a lot of time configuring Linux. I decided to go with a basic install of the Ubuntu framework. Ubuntu goes through a little bit more testing that Debian or Centos.
I want to use the Xenial Xerus release of Ubuntu which is scheduled for release on April 21, 2016. I don't know how long it will take to offer this on their service.

I am excited about this release.

Xenial Xerus uses PHP7 which includes some major performance improvements. I also intend to switch from using MySQL to SQLite which should also result in performance improvements.

The final problem I face is with the structure of my code.

I wrote two different versions of the site. The first version follows best practices and uses the object-oriented syntax of PHP. The second version uses structured functions.

Despite the fact that object-oriented syntax is considered to be the best form of programming. Traditional structured programming seriously outperform the object-oriented style.

The universities, Fortune 500 firms and governments that prefer class-based object oriented programming can overcome the inherent inefficiencies of this programming style by throwing more hardware at the problem.

But, even $5.00 a month is a huge difference for a small company or individual. (My performance tests all tell me that using the class-based object code in PHP will cost me $5.00 a month.)

Since I am struggling to survive, my temptation is to simply scrap all of my class-based code and just stick with functions.

This leads to my final problem: I have the naive notion that I should open source all of my code. I would be publishing a bunch of functions to people who've been taught that class-based objects are superior to functions.

So, I've been spinning my wheels trying to develop a collection of objects that do not take up more resources than traditional procedural programming. And simple can't nail down a design.

Anyway, I want to apologize for the down time people are experiencing on the Community Color sites. It would cost me $50 a month to fix the problem on my current server. So I am stuck waiting for a software release hoping to lower my costs so that I can keep the sites live.

I anticipate that I will be able to move the sites within a few days after Xenial Xerus becomes available on Until then, I am only able to apologize for down time. I anticipate the release being available some time in early May.

Saturday, February 13, 2016

At the Center of Every Tribe There is a Chief

Many groups and businesses these days have taken to calling themselves "tribes."

At first I thought the trend was cute. The term "tribe" has friendly echoes of community.

For the most part, when I see groups outside the Native American community using the term "tribe," I see a group that is trying to create a deeper senses of community.

I should point out that there is a long (and mostly positive) history of community organizations like the boy scouts that frequently use terms from the native culture.

But after reading blogs by self-proclaimed tribal leaders, I've started getting the willies when I come across efforts to establish a new tribalism in America. Some of the leaders of this new tribalism seem to be going beyond promoting a sense of community. They seem to want to tell people who to think.

I was perplexed by a reading a blog by a "tribal leader" of the new tribalism a week ago. This morning the sentence popped into my head: "At the center of every tribe their is a chief."

This sentence makes a nice gauge for testing groups declaring themselves a tribe.

So, lets say you have a job interview with a group using the term "tribe" in its literature. You should look closely at the political structure of the group. If you can find a person or small group in the organization trying to set themselves up as chief; you should stay clear of the company.

Self-declared chiefs in self-declared tribes tend to be control freaks and it best to stay clear of such creatures.

Control freaks are not seeking to promote community at large, but are seeking to gain power by dividing people and setting them against each other.

In tribal societies of old, the leaders often fit the model of war lords and tribalism was not an ideal society but an extremely fractured existence with the tribes set against each other in fierce conflict.

While I still associate the term "tribe" with friendly ideals about small local communities, I fear that the New Tribalism taking hold in our communities is source of division and not of unity.

Sunday, January 17, 2016

Referrer Report and Link Development

The migration to my new server is taking longer than expected. I keep hitting diversions and suffer long interruptions.

Yesterday, I had a short break; so I created a referrer report and opened a disqus forum titled Link Development.

Rather than just starting a new web site. I want to draw people into a discussion about the direction of the Internet itself.

The World Wide Web was written in a language called HTML (HyperText Markup Language). The defining trait of HTML is the Hyperlink.

Hyperlinks are an interactive feature. You can click on a link and go to a different internet resource.

The configuration of links is actually a very interesting topic, but I rarely come across people openly talking about the overall configuration of links.

Right now, the Internet is dominated by large repositories of links called "search engines." I question if this domination of link repositories is healthy because it effectively centralized power and concentrates wealth.

If centralized repositories are not the best structure, what alternatives can we develop?

I developed the Community Color web sites are simply human edited directories which list links for select towns in the mountain west. I developed the directories to investigate the natural links between local entities. I live in Salt Lake. It frustrates me to no end that there is so little local internet in the direction the Internet is headed.

But there might be people in the broader world who find a discussion of the linking structure of the Internet interesting.

The referrer report tallies up info from the REFERER variable submitted by web browsers that visit my new site. The Link Development is a stub for a section of articles on the topology of links and internet traffic and steps that individuals can take to help keep the Internet a level playing field.

I have to complete the site redesign before writing the articles. But I think it's fun to discuss web design while knee deep in the process.

Wednesday, January 06, 2016

Privacy Policy for New Site

I am working on a major upgrade for the Community Color sites.

I am developing the code on

I added a code viewer so that I can claim the site is open source.

I decided to log statistics for the site in a SQLite Database.

When writing the "privacy policy" I decided to show the information that the site has collected.

I did this to emphasize that the data collected by small sites like mine is basically harmless.

The reason I track data is to answer questions about the site. For example, I want to know how many people visit a page and the amount of resources consumed by a page.

About seventy percent of the traffic on the web is robots and webcrawlers. I want to know what the robots are doing.

I want to be able to defend the site against DDOS attacks.

I learned the painful lesson that one cannot offer interactive features to the public, like a guestbook, without attracting a great deal of spam.

I require a log in for interactive features.  I use a system of User IDs and Sessions to track usage.  Interactive sites require an id, otherwise they can't respond to the things that you are doing.

The privacy concerns we face on the Internet are not the result of cookies or web owners monitoring their sites. The problem is with huge corporations (and governments) seeking to dominate the Internet by tracking individual activity in minute details.

Unfortunately, the self declare privacy rights activists use methods that make life very difficult for small sites.

The fact that small sites use cookies to provide interactive features is not a problem.  The big sites that monitor activity can do so without cookies.

I hope that my showing the details I track on the site to the public, people will learn that independent web sites are not a threat, but it will probably backfire.

Tuesday, December 08, 2015

Community Color Redesign

PHP7 was released last week.

I am doing a huge redesign of the Community Color sites. I am writing and testing the code on the domain .

I know this sounds pathetic, but I stopped programming a few years back because my coding style is considered an "antipattern" by the technorati. The word "antipattern" is the way that thugs in the programming world put people down.

I finally decided that it is stupid let oneself be cowed by a bunch of thugs.

So, I decided to call my coding style The Resource Model of Web Design.  I just opened a Disqus Thread and invite people who enjoy code or have comments on design to drop a line. The site uses PHP7, SQLite3, HTML, CSS and SVG.

Note, I am blocking in the structure for in HTML. I will add the PHP script after I've tested it line by line with PHP7.

Saturday, November 28, 2015

Happy Small Business Saturday

Happy Small Business Saturday.

The theme of today's post is simply that ownership matters.

Personally, I believe that the most robust form of society involves a large number of small businesses owned by people who are active in the local community.

Mathematically, one can show that networks with a distributed framework and many independent yet interconnected nodes is more robust and more resilient than societies formed in a hierarchy or dominated by a few control centers.

History provides thousands of examples where communities depending on a single business or product fail when faced with adversity, while diverse communities are able to adjust to changes.

Societies that depend on big government, big business or big capital might thrive for a moment but are subject to systemic risks which can can cause untold hardships.

The driving theme of the different project that I engaged in on the Internet is that ownership matters.

So, rather than shopping at a small business on this small business Saturday; I would like to encourage readers to think about and research the ownership of the companies with which they do business?

Look at your credit card statement. How often do you spend at a big business and how often do you shop at small businesses.

One should look through their household. Where did the stuff come from? How much, if any, of things were made locally?

You can look up your web history? How often do you visit small locally owned web sites?

I believe that ownership matters. I want to frequent locally focused small business whenever possible.

One valuable tool for researching ownership is the whois lookup. lets you look up the current owner of a domain. maintains a database with the domain history, but you have to register to use the service. (more domain related tools)

The whois record shows who owns a domain-name. Some times the the domain name is owned by a different person or group from the business. Even worse,  domain registrars push "enhanced privacy services." These services mask the domain ownership.

If you have a business; you should never use domain privacy service. Instead you should maintain a good clean registry entry with your business address. If you are own a business and are using a domain privacy service, you should cancel that service and display accurate information about your business.

The one privacy caveat is that you should not use your primary email address in the domain record because unprincipled marketers harvest publicly displayed email addresses and spam them. Since you can control the email address on your registry record; you don't need to buy privacy services.

I use the email address spam (at) community color. com to inform the user that I treat every message received by that address with suspicion. To date, just about everything I've received on that email address is useless marketing garbage.

A useful shopping tip: If you are considering purchasing something online, you should check out the whois record first. I never buy from a web site that uses privacy services. If a business is not willing to display good contact information, then I assume they are hiding other things as well. Domain privacy should only be used by opinion sites.

The Internet makes it easy to trace down owner the ownership of a domain. It is more difficult to track down ownership of businesses.

Publicly traded firms are required to post quarterly filings with the SEC. I've been maintaining a list of stocks of local concern on this page .

Unfortunately, only the largest businesses in a community are traded publicly.

Wikiepedia often has good information on huge corporations. But almost no information on local firms.

Anyway, my goal for 2016 is to track down other sources to help people figure out who owns what in their local community. There are many good sources of info on the Internet. States require businesses to file incorporation records and DBA records. Counties often have good databases on land records.

My message for Small Business Saturday is that ownership matters and that responsible consumers should be attentive to who owns what and should consider ownership in purchasing decisions.

Friday, November 27, 2015

Black Friday and onto Small Business Saturday

It's Black Friday and I feel that I should do something commerce related like post coupons or sales.

The truth of the matter is that I really don't care too much for marketing.

My experience is marketers of the modern-mindset tend to do negative things in their efforts to control markets.

Marketing gimmicks like Black Friday tend to be dominated by big commerce and big media.

I like the idea of Small Business Saturday. This is a gimmick invented by American Express in which people are coaxed to support small local businesses after Black Friday.

The Community Color project fits this format better. This project lists web sites from select local communities in the Mountain West. The main page lists directories for Arizona, Colorado and Utah.

NOTE: I started this project by creating sites for towns in Idaho and Montana. That project was taken over by a different group. I kept the domain Missoula.WS because my partner didn't like the WS TLD.

Originally, I intended to make sites for towns. The ArizonaColor.US has a county focus.

The first design included numerous interactive features. I discovered that the people who make posts on general information sites tend to rude; So, I removed all the interactive features.

I wanted to include maps and other resources. Unfortunately, I ran out of diskspace. I will be switching web hosts with the release of PHP 7 and might start reading interactive features.

Basically, if you live in the Mountain West, you can go to the site and find directories with links to local businesses. I fund the project by listing affiliate programs for national web sites. My plan was to create a structure in which big business funded free listings for small business.

To be truthful, the sites barely make enough money to pay my web hosting fees, but, as I said at the beginning of this post. I am not very good at marketing. I want to find ways that give small business and individuals a voice to counter big media and big business. But this is really not something that people support.

BTW, the site is my attempt at affiliate marketing. Anything I make from that effort goes to pay the web hosting fees for the community sites.

Thursday, November 26, 2015

Adding SSL

I've read several blog posts by people who say that they refuse to visit or link to web sites that do not SSL.

I would never enter a credit card number of buy from a web site that does not use SSL, but I have never been so paranoid as to refuse to visit unencrypted web sites.

SSL does not encrypt the meta data left by your computer browsing. A hacker who finds out that you visited this blog will see exactly what you see when you visited this blog ... just a bunch of opinionated posts by a computer hack.

SSL certificates do not prevent advertisers from tracking your every move. They only prevent people who are sniffing web traffic on a router from seeing the content that you see. 

I have not added SSL certificates to all my sites for a very simple reason. The certificates are expensive and require regular maintenance. A certificate for a single subdomain costs  about $70 per year. (The sale price of certificate at Godaddy was $62 on 11/26/2015) Wildcard subdomains cost several hundred dollars.

The cost of SSL is prohibitive for charities, small businesses, and information sites.

This particular blog is hosted by Google on blogspot. I decided to turn on the SSL option. You can see the SSL version the site at Google is a huge company at the center of the Internet world; So, I guess they are able to get wildcard SSL certificates at a sufficient discount that allows them to give the things away.

Turning on SSL is a simple matter of going into settings page on and clicking SSL.

They only have SSL options for sites ending in I cannot add SSL to my other blogspot blog

*It is possible to add a self-signed certificate to a web site. Internet browsers raise a warning when you enter a web site with a self signed certificate. I find the warnings silly because a site with a self signed certificate is more secure than a site with no certificate.

Wednesday, April 15, 2015

Tax Day

It's Tax Day. I am sitting here doing my taxes and feeling depressed.

For some odd reason, I've found that I am unable to do my taxes before the deadline. I will often finish gathering all of my tax documents in January and February. But when I sit down to finish my taxes, I get so depressed that I am unable to finish the tax.

This is the only task that affects me so deeply. And I really don't know why.

Actually, I do know why. I get depressed because the way the United States goes about taxation is absurd.

In the current system, the government collects taxes from our employers and business relations. We have to clutter our living spaces with petty little documents then refile all of the information to the IRS.

If the IRS decides there is an error in our taxes, the IRS rains down upon us like a ton of bricks.

If Americans had a functional political system, we could very easily streamline the process.

I dislike this antiquated tax system. This year, I decide to take a stand for sanity. Early this month, I launched a KickStarter Campaign to publish a book about tax reform.

The reform I propose is quite simple. I want our government to create a computer program that calculates and collects taxes to eliminate the need to file a tax return.

The reform suggests that Congress start an Open Source Program to create an account based alternative to the current income tax system. I named the reform The Object Tax after Object Oriented Programming. I named the reform after a design methodology because the reform is not about changing the tax code. The goal of the reform is to use computer technology to streamline the process of tax collection.

The reform creates a thing called "A Tax Aware Account" as an alternative to payroll withholdings and an annual return.

The Tax Aware Account would include all the information needed to calculate a progressive tax. Taxpayers would get their whole paycheck deposited into the account. They would pay taxes when they withdraw the money for spending.

Lets say you earned $1000 and your progressives tax rate was 20%. When you withdrew the money, the account would send $200 to the government and you would get $800.

The Tax Aware Account includes all of the information needed to pay your taxes. This way people wouldn't have to file a tax return. (If a person's tax status changes during the year. They would record the change in the Tax Aware Account which would calculate the effect of the change and create a transaction to reflect the change.

I must emphasize. The program creates an alternative to the existing system. The taxes collected in the new system are based on the old system. People would only use the new system if they found it more convenient.

I like the approach of creating alternatives better than the audacious approach used by programs like PPACA and The FairTax which force a reform on the entire nation at once.

I want to publish a book on this reform proposal because it includes some unique insight on taxation that I have not found in other works about tax reform.

For example, this reform changes the flow of money. In the current system, the money flows from employers to the government. With the Tax Aware Accounts, the money flows from taxpayers to the government.

The bureaucracy tends to form around the flow of money. Because our tax dollars flow from employers, the government aligns itself to employers and large corporations. Changing the flow of money so that it comes from individual accounts would make the bureaucracy responsive to the needs of the people.

Let's face it. The fact that Walmart and other big corporations write huge checks to the government each month gives these huge corporations additional clout. If these same tax dollars flowed from Walmart workers to the government, the government would be less attentive to the corporation and more attentive to the worker.

Changing the flow of money also transitions the income tax from a tax on production to a tax on consumption.

My articles on consumption taxes makes one extremely important argument that many economists seem to have missed: In order for a tax to be a true consumption tax, the money has to flow from the consumer.

Supporters of the FairTax want to replace the income tax with a national sales tax. The advocates of the FairTax believe that a sales tax is a consumption tax, but they miss the subtle point that since the money flows from the producer, the FairTax is still a production tax.

From the point of view of the producer, a sale is the moment when one realizes profit from production. A huge sales tax dampens production at the most important moment in the production process ... the point of sale.

The Object Tax is a true consumption tax because the money flows from the consumer when the consumer prepares for consumption. The FairTax is a production tax because the money flows from the producer at the point of sale.

The Object Tax also brings up some fascinating discussions about the role that the Open Source Movement could play in implementing public policy.

In our current way of doing things, Congress bids out contracts to huge service providers. The service providers with the best inside connections usually win the contract. The contractor then builds a huge monolithic program. The contractor is often monolithic nature of their program to accumulate even more wealth and power.

The effect of this approach is that it concentrates wealth and power in a few hands.

The goal of the Object Tax is to create a computer program that collects taxes.

Rather than seeking a single provider, the reform launches an Open Source Project that would invite thousands of service providers to create a base of common code that could be used be used by hundreds of thousands of companies. This reduces the concentration of wealth and power that occurs in the status quo.

There are some other really cool things that would happen if Congress launched an open source program to create an account based alternative to the current income tax. For example, the open source project could be designed so that it is extended by state governments to collect state and local taxes.

If programmed properly, the Tax Aware Accounts could provide a single point from which to collect federal, state and local taxes.

While the Object Tax is really just an thought experiment on my part, the project introduces insights that might be of value in other attempts to reform the tax code.

My Kickstarter Project has been up for several days and has received zero backers. It runs until May 13, so I get to spend a month checking a project that most likely will receive zero support for a month. yippee, hooray.

Anyway, I have to get back to my taxes. If you hear a person jumping off a bridge in despair. That's just me. I get depressed at tax time because I know that there are better ways to go about collecting taxes than this stupid system of payroll withholdings and an annual return.

Monday, January 26, 2015

HTML 5 Date Picker

Firefox just updated itself.

Every time Firefox updates, I stop what I am doing to see if Firefox has started supporting the new date picker functionality of the HTML 5 specifications.

A few years back, I started upgrading my sites to HTML 5.0. Since several of the sites needed a date picker. I decided to put off the upgrade until the functionality of HTML 5 was in place; So, I am really irritated that this needed function is not yet in place.

Chrome, Opera and Safari support the new date picker. Firefox is pretty the last hold out. I should say it is the last holdout that matters. I have no idea what Internet Explorer is doing.

Anyway, the purpose of this post is to see if the date picker works followed by an essay on why the date picker should be implemented on the client side.


Client Side Date Picker

Dates and times are extremely important in computer systems. We use the date and time to figure out the sequence of events.

While it is easy to use timestamps to record the date of computer actions, we need an easy way to query users for events that took place outside the computer.

A date picker is not a difficult piece of code to write. For the most part it is sufficient to know that weeks are seven days long and every fourth year is a leap year.

It is easy to write a javascript date picker. The problem here is that such code needs to be tested on hundreds of devices. Ideally, it should be checked in multiple languages. This type of testing is very expensive.

After that expense, the next problems kick in. The first is that the web site needs to send the javascript to the client with each page that contains a date. The second is all the web sites need date checkers send different code. This creates a confusing experience for users.

A client side date picker will present users with one consistent date picker that can be used on multiple sites. This greatly simplifies both the life of the web user and the developer who needs only send the parameters for the date.

Anyway, I've been anxiously awaiting the inclusion of a date picker in Firefox. The main purpose of this post was to create a form with a date, week and hour field to see if the picker was implemented yet.

If Firefox does not support this feature soon, I will probably just switch to Opera or Chrome.