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 uscis.gov 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 prog.communitycolor.com. 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 VPS.net

Hurray, VPS.net 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 VPS.net. 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 www.vps.net/products/ssd-vps 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.)
  • VPS.net 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 Westhost.com. 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 VPS.net.

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

I will have to do all the management for the VPS.net 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 VPS.net 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 VPS.net. 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 yintercept.com.

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 yintercept.com .

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 yintercept.com 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. whois.ICANN.org lets you look up the current owner of a domain. whois.domaintools.com 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 irivers.com/stock.html .

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 aFountainOfBargains.com 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 https://communitycolor.blogspot.com. 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 blogger.com and clicking SSL.

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



*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.
Date:

Time:
Week:

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.

Monday, December 01, 2014

Live Long and Prosper This Cyber Monday

Happy Cyber Monday.

The Cyber Monday phenomena occurred early in the evolution of ecommerce when few people had home computers. Workers would window shop on Black Friday, then buy the items they wanted on the Monday following Black Friday. Some ecommerce shops saw more sales on the Monday following Black Friday than on Black Friday.

Home Internet access is now common and the Cyber Monday effect has vanished, but ecommerce shops use the day to launch their holiday shopping season.

While the focus of Cyber Monday is big ecommerce, it is actually quite easy for small blogs and web sites to get in on the action.

Today, I want to look at a company called "Prosperent" of Denver.

Prosperent might best be described as a link aggregator. They have affiliate relations with over 4000 leading merchants. If you join the program you can make commissions on sales from any of these 4000 sites which list several hundred thousand products. (I will write a program to list all the merchants after I finish this post)

With prosperent, you join just one affiliate program and can get commissions from over 4000 of the top ecommerce sites!

Prosperent has a referral program. If you join Prosperent through this link and end up making sales; I will get some sort of reward.

After you join prosperent and are approved, they will give you a public and private API key. My public key is 44b70e82e2cec9e8e105be57e63664ab.

The links have the awkward format:

http://prosperent.com/api/linkaffiliator/redirect?apiKey=44b70e82e2cec9e8e105be57e63664ab&url=http%3A%2F%2Fwww.zappos.com

The link above goes to Zappos.com which sells shoes. I can link to any of the 4000 web sites listed at Prosperent just by replacing www.zappos.com with the merchant's URL.

I can also link to individual products. The sample below links to Burton Snowboards. The program will look up all merchants that sell such boards and send me to a random merchant.

http://prosperent.com/click/api/phraselinker/apikey/44b70e82e2cec9e8e105be57e63664ab/sid/12345/phrase/Burton+Snowboards

Prosperent has a full API. I could write a program that queries all of the stores carrying Burton Snowboards and list them by price.

The Prosperent site has full documentation for the links and API. If you decide to join, let me know and I will send you some PHP code for accessing the API. Click Here to Join Prosperent.

I am highlighting Prosperent today for two reasons. One is I want to see what happens if someone joins the program through my link. The second reason is that Prosperent highlights one important aspect of affiliate markets.

There are thousands upon thousands of merchants playing the affiliate game. It is easy to join the programs. Because there are so many you can usually find online ad programs to help fund your web site without having to cowtow to the merchants.

Lets say you came across a product that you really liked. You could write a review about the product. Put up an ad next to the product and you might make some money.

Lets say I wanted to sell Lego building blocks from my web page about building a Lego castle. I simply create a prosper ad block using the code.

<script type="text/javascript">
  var _prosperent = {campaign_id: '132654ea61dc9841adda5d3e22e944ad'};
</script>
<script type="text/javascript" src="//prosperent.com/js/prosperent.js"></script>
<div class="prosperent-pa" style="width:480px;height:360px;" pa_sid="blog" pa_topics="lego"></div>


Prosperent produces an ad for a merchant selling Lego blocks that looks like:

Saturday, November 29, 2014

Small Business Saturday

Happy Small Business Saturday.

Small Business Saturday is an advertising gimmick dreamed up by American Express in 2010. The event takes place on the Saturday between Black Friday and Cyber Monday as a way to work small businesses into the holiday sales mix.

There is a little irony in the fact that Small Business Saturday was created by one of the thirty stocks in the DOW Industrial Average. I guess we are also suppose to glance over the fact that a large number of small businesses are closed on Saturday.

Here is an interesting historical note: In the 1980s AMEX wanted to expand in the financial service sector. It acquired Shearson, Lehman Brothers Loeb, EF Hutton and other firms to create a leading brokerage system which it spun off in 1995. So, the multinational that created Small Business Saturday had created one of the investment banks that went belly up in the 2008 financial crisis.

In the last few years, small business has gotten smaller, but it is good to have events that recognize the role that small business plays in the economy.

I realized early on that small business plays a central role in the economy and that small business was getting systematically squeezed out. What I've done through the years is to create and maintain a collection of local directories under the brand Community Color. These directories give free links to small local businesses. I fund the directories through the affiliate programs of big ecommerce shops.

So, the directories will have free links to all of the small shops and an affiliate link to Walmart ... the employees of Walmart are members of the community too.

The directories get 5000 page views a day but the affiliate programs no longer collect enough money to pay the hosting fees.

I have directories for Utah (where I live), Colorado (my home state) and one for Arizona.

I admit, I have a rather quaint idea about community. I believe that everyone in a community should be considered part of the community ... even if they don't belong to the State's religion.


The idea behind local directories is that people could link to the directories and help support independent businesses in their community.

As you see, the whole point of the internet is links. If we want small businesses to succeed in the information age; small business has to be linked in. The best way to link them in is other small businesses.

My directories link to all the businesses, blogs, charities, government agencies and church groups that I can find.

I've been working on the directories since 2000.

Sadly, In 14 years I've yet to have anyone express even passing interest on the Utah directories. (There is some interest in the Colorado and Wyoming Directories. I happen to be a third generation Coloradan. My ancestors moved to Denver in the late 1800s.)

Anyway, Let's say you wanted to do something for small business this small business Saturday and you lived in Grand Junction. You could write a blog post that included a link to gjct.com. This would send a little bit of web traffic in the direction of Grand Junction businesses. A miniscule amount of traffic might go to the affiliate programs that fund the site.


If you aren't in a small business mood. I have tumblr galleries with pictures of Arizona, Colorado and Utah as well.

Monday, November 10, 2014

Age Plus Plus

I needed a quick birthday jingle for a data geek; so I tapped out this to sing after the Happy Birthday Song:

Age plus plus; update; commit;
The years spin round and round.
Age plus plus and so it goes
We're happy you're in town.

I assume programmers prefer age++ to "Happy Birthday" since incrementing the age variable is more efficient than legacy birthday systems.

Anyway, geeks seem to appreciate the age plus plus bit.

Wednesday, August 27, 2014

Salt Lake Startup Weekend

I was getting prepared for the Salt Lake Startup Weekend scheduled for tomorrow. I logged on to check the address for the event. To my dismay, the program was moved back a week to avoid conflicts with Labor Day Weekend.


Scheduling startup weekend for the Labor Day Weekend was not the best move. People who are working on start ups often have to give up holidays. Giving up Labor Day didn't register as a concern for me, but it may have reduced participation.

Delaying the event might prove to my advantage.

I plan on giving a pitch related to the recreation industry.

The pitch is the type of thing that might appeal to students. So, I am really happy about the change in venue from an office downtown to the Junior Achievement section of Discovery Gateway. If you are young and want to make a little money in recreation, I have a great opportunity.

So, the more I think about it, I am happy with the change in time and location of the event.

Sunday, August 24, 2014

Denver Color Crosses Million Hit Mile Marker

My directory for the Mile High City (Denver Color)  just crossed the million mark. The directory has 4300 active links. I've deleted 1380 broken links through the years.

Sadly, a million hits doesn't mean much in Internet speak. My ad revenue has fallen to about four dollars for every hundred thousand page views. Fortunately, the most popular page on the site is the shopping directory which is the one page that has the most potential.

To celebrate crossing the million hit mark, I created a page about the the founding of Denver. My original hope was to add a large number of pages about local history, but without an adequate funding source, I've been unable to accomplish that task.

Monday, June 16, 2014

Startup Weekend

I just plunked down $50 to attend the August 28th Start Up Weekend in Salt Lake City. I am going to pitch an idea and I am hoping beyond reasonable hope that there will be a few people at the event wanting to jump in on the ground level of a really fun low cost opportunity with a tremendous upside.

My big fear is that the event will be overloaded with idea pitchers and few working bees. Even worse, I fear that winning pitches are decided before the event, in which case I will be left brooding at an empty table.

But who knows. There might be people there wanting to coach start ups or others attending the event to network in which case I might succeed in starting up a business.

I will have only a minute for my pitch, but my pitch is strong and offers a world class opportunity for all takers. (HINT: It involves playing games, taking photos and traveling. Imagine making money to help pay for travel!)
 
If you are wanting to get in on the ground level of a multi-billion dollar new industry; You should sign up for the Salt Lake Startup Weekend on August 28th. If you are going there to pitch an idea; don't bother, as everyone will be flocking to my idea and you will be left brooding at an empty table.

PS: If you don't want to spend the money on the weekend but still want to get in on the opportunity, could just contact me and I will deal you in. If I find support at Startup Weekend, I will be hosting free events after the Startup Weekend.

Monday, June 09, 2014

The Independent Web is Failing

I've been building independent community directories since 1999. To my dismay, I've seen the vast majority of small independent web sites fail.

The failure is not limited to poorly designed, content free sites. Well designed and content rich sites are failing as fast as other sites.

The reason for this high fail rate is simple:: No-one links to small independently owned sites.

The web is all about links. If no-one links to you, then you fail.

For some odd reason, people simply are not willing to link to small independent sites.

I want people to succeed.

I figured that the best solution to this problem of rapidly failing sites is for people like me to create and maintain dedicated local directories. I created a selection of directories for the Mountain West with town centric sites that cover Arizona, Colorado and Utah.

My site for Grand Junction is gjct.com. My site for Moab is iMoab.com. These directories actively seek out local sites. The open directories list every site I can find (with the exception of pornography and hate sites). The directories include free links to small businesses, blogs, churches, and campaign sites from all parties. I list a ton of independent photo sites, artist web sites and more.

The idea behind an independent directory is that people who want to support locally focused web development can link to the directory without all of the hassles involved in maintaining a directory.

Maintaining a links page is a big hassle. As mentioned, sites have a high fail rate. Through the years, I've listed 10,000 links on Salt Lake Sites. I've pulled out 4000 broken links so far. There are still several hundred broken links among the 6000 links listed on the directory.

Unfortunately, independent local directories are bound to the same fate as all independent sites. If no-one links to the directory, then the directory fails.

That said, I still think that small, independent, locally focused community directories are still the best hope for maintain a vibrant web full of diverse ideas.

By linking to an independent directory, one supports the local community with a minimal amount of effort.

I think I've done a fairly good job of linking to a rich selection of sites in the Community Color directories.  These directories focus on the Mountain West. I fund the site by linking to affiliate programs by the big chain stores. I have links to Walmart.com. My Walmart affiliate links have pulled in $130 in revenue which helps me cover my webhosting fees. I clearly mark all the affiliate links..

Because the links go through the affiliate program, the links to the chains are seen by search engines as advertisements and not as organic links. The revenue does not detract from the local focus as much as one imagines.

Many pundits are predicting the demise of locally focused directories and geodomains. But, I believe that, in the long run, such sites are still the best hope for maintaining a robust independent local web. I would encourage anyone reading this post to search out and support independent local directories in their community.

It is very simple exercise. Google your town and the word "directory." I Googled "Salt Lake Directory." Not surprisingly, my site (Salt Lake Sites) no longer shows up in Google's listing. What really disappoints me is that, in 20 pages of listings, I found only one inclusive local directory.

I found multiple cookie cutter sites that reprint the Yellow Pages and White pages. There are a few associations that show only links to members of the association, but the search term "Salt Lake Directory" no long pulls up any independent inclusive directories.

There used to be 20 or more good locally owned geodomains for the valley. They locally focused geodomains have all been systematically purged by Google. The fact that my site was purged just tells me that I haven't done a good job. The fact that all independent geodomains have been purged tells me something is wrong with Google.

The last few years have been hard on small business. If you happen to be a supporter of small independent businesses, a positive step that you can take is to drop links on your blog or web site to geodomains that link to small businesses and independent sites.

The heart of HTML is the hyper-link. Linking to independent sites is something that we can all do to help encourage independent web development and small business.

Friday, May 09, 2014

Going Live with Local Deals

I stumbled on a company called "Prosperent" out of Denver.. This is a technology company that aggregates data for affiliate marketers. They have a huge database of products and deals from thousands of merchants.

I am interested in developing Geodomains in the mountain west. At this point the domains are basically a local directory and calendar. My problem is that I haven't found a way to fund the sites. If I can't fund the sites, I can't expand them.

So, I decided to try Prosperent API to see if I can make some compelling ads.

The API includes an interface for searching local deals. So, I made a local deals search engine for each of the sites. Here are entry points to the search by state: Arizona, Colorado and Utah. If you go to the state site, you will see a list of local communities. Simply press the Search button next to the community name and you will see the local deals.

I will receive commissions from local searches. Affiliate Networks report that earnings for local deal sites run from one to two pennies per click. I am hoping to get about 2000 searches year at and make $0.02 per click which would be $40/year income. I have my fingers and toes crossed. A more realistic expectation is 200 searches per year generating an average of penny per click, which would be below the minimum payment threshold meaning no money.

I don't expect the local deals to be enough to pay my hosting fees but, if I combine local deals with other  efforts, the sites might return to a state where the income covers the hosting fees ... which run about $100 a month.

The reason I went through the brain drain adding a local deals database to my sites is that I believe that it would enhance what I am doing with the sites. I am trying to create a structure in which local sites can get some traffic outside the huge search engines that dominate the market. The Local Deal sites allow local merchants and restaurants to list coupons and deals. LocalSaver gives a site a direct link along with the coupon.

BTW: I also have sites for Missoula and Cheyenne.