News: Sensation!!! Business credit card online application Merchant services credit card processing Colorado bad credit mortgage Credit card no checking account Bad credit mortgage wisconsin Credit card application online Bad credit loan mortgage uk Mortgage credit score Bad credit credit card no annual fee Bad credit mobile home refinance Gm credit card offer Ohio home loan Free canadian credit score Free credit report online free Talento credit card machine Apply for a credit card 0 apr card credit no Free credit card processing software Penalty for credit card fraud Credit score scale Card credit gateway payment Free credit report from government Alaska airline visa credit card Bad credit loan for non home owner Secured debt consolidation Bad credit lender Alaska home improvement loan Bank federal finance home loan office California debt consolidation loan Bad card credit credit history Batch credit card processing Student credit card in canada Consolidation direct federal loan student Best home loan rate Bad credit repair service Florida home loan mortgage National consumer credit Christian consolidation debt free Christian consolidation debt loan Bad credit bill consolidation loan Exxon gas credit card Internet credit card fraud Bad credit home loan mortgage quote Countrywide customer home loan service Texas home equity loan Va home loan rate Bad debt unsecured personal loan Free xxx video no credit card Card consolidation credit debt service Business credit card with reward Card college credit Card consolidation credit free Cosmetic surgery financing for bad credit Repair credit repair credit Accept credit card merchant California construction home loan Credit card application Low interest student credit card 1 3 credit in report score Fast cash advance payday loan Consumer credit bureau Bad credit mortgage company Providian credit card services Home loan for people with bad credit Credit free report today.blogspot.com Debt consolidation credit counseling Trans union credit report address Article card consolidation credit debt Bad credit loan mortgage people Card credit free no porn required Calculator card credit payment Poor credit home loan Credit equifax experian free report Card consolidation credit loan student Credit equifax from report Business credit financing small Fast personal loan Balance card credit interest low transfer Company credit card policy Omni credit card machine Personal loan quote Debt consolidation home mortgage loan Home equity loan online Balance card credit deal transfer Advance cash loan payday College student credit card offer Bad credit guarantee loan mortgage Cash loan payday Credit card machine with check reader Bad credit mortgage refinance loan Chase manhattan credit card Capital one credit card customer service Free fico credit score Best card college credit student Amex apply card credit Card credit service Bad card credit credit Payday loan store Discover credit card application Federal student loan information New jersey home equity loan Debt consolidation and credit management Bad credit need a personal loan Free uk online credit report Bad credit loan mortgage very Consolidation direct loan student Canadian credit free online report Accept credit card small business Canadian secured credit card Alabama home loan Credit free law report Eligibility home loan va Master credit card 0 application card credit interest Cheap payday loan online Card credit credit free report without Student loan for student with bad credit 3 bureau credit online report Bad credit houston mortgage texas Credit free online report view High risk debt consolidation loan Washington mutual secured credit card Credit card processing information Card college credit student visa Bad card credit credit unsecured Consolidation debt five free in Hsbc credit card philippine New mexico home equity loan Online credit card machine Application canadian credit card secured Home loan Credit free massachusetts report Download free music no credit card required Cambridge credit counseling Secured bank visa credit card Merrick bank credit card California equity home in loan Bad credit car refinance Great lake student loan consolidation Card card com credit hsbc Free credit report without a credit card No credit card required credit report Citi student credit card Bad card credit credit gas Unsecured debt consolidation Lowest rate credit card Consolidation loan rate student Establishing business credit Application card credit sears usa Home improvement loan new hampshire Card credit payment providian Bad business card credit credit Home loan loan mortgage refinance Europe prepaid credit card Approval capital card credit instant one Credit card processing rate Medical student loan consolidation College student loan consolidation Credit card high limit instant approval Bad credit en language loan student Student loan consolidation Card consolidation credit debt get Consumer credit counselor Card credit machine processing wireless Card company consolidation credit debt Mobile home loan California home jose loan san Best personal loan rate Business credit report repair Government home improvement loan Chase business credit card Chase credit card online Personal loan Credit card debt loan Sallie mae student loan services Best debt consolidation company Free credit report from experian Bad credit mortgage lender Kansas home equity loan Consolidation debt link suggest Business credit usa Third party credit card processing Prepaid credit card online 0 percent credit card offer Fight credit card company Bad bill consolidation credit Home loan albany new york Whats my credit score Credit free obtain online report Fix a bad credit report Debt consolidation loan application Free credit report texas Card credit credit degree loan online report Debt consolidation and credit rating America bank card credit payment Home equity loan minnesota Approval card credit guaranteed instant Card credit free no porn required video Card credit payment process Beacon credit report score First premier credit card login Get free credit score Best low rate credit card Card credit interest low uk Direct merchant credit card Christian counseling credit service Apply for wal mart credit card Credit card balance transfer deal Credit free it repair yourself Best air mile credit card Access card com credit mbna net Auto bad credit loan military Christian debt consolidation company Free stolen credit card numbers Credit counseling toronto Payday loan online Chicago counseling credit Card credit online payment shell Low apr visa credit card Card chase.com credit Debt consolidation quote Cheap credit card company Canadian credit card for bad credit Card consolidation credit debt oregon Bank home equity loan rate Personal loan after bankruptcy Credit free instant report Direct loan loan student Apply for a visa credit card online Bad credit personal auto loan Consolidating student loan Verizon visa credit card account online Small personal loan bad credit Home loan low rate Buyer california first home loan time Card credit hsbc payment Guaranteed credit card uk California equity home loan Guaranteed bad credit loan Debt consolidation financing 1000 loan no payday telecheck Bank of america credit card Highest credit score Corporate credit rating Business credit card Debt consolidation loan uk Apply business card credit online Personal debt consolidation loan Instant credit card for bad credit Credit equifax identity report theft Colorado home mortgage loan company Bad credit debt consolidation mortgage Guaranteed unsecured personal loan Bad credit loan Apply card credit virgin Home improvement loan arizona Bad credit expertise in mortgage service Low credit score mortgage Cheap credit card processing Monogram credit card bank of georgia Card credit unsecured visa Canada card consolidation credit Credit card company rating American airline credit card Free annual credit report with experian Business card credit discover Apply for sears credit card Christian credit counseling Finance credit debt Credit equifax report request Credit online personal report Circuit city credit card application Apply bad canada card credit credit in Oregon home equity loan Uk bad credit credit card loan Consumer credit counseling debt consolidation The best credit card Consolidation credit debt repair Bad credit home loan refinance Processing credit card transactions Credit card counseling services Bad credit home mobile mortgage Bad credit student personal loan First premier credit card account Annual free credit report and score Credit score chart Bad credit loan canada Get mortgage bad credit Verizon credit card account online Tampa home loan Refinance home mortgage home equity loan Absolutely free online credit report Bad credit home loan texas Card credit payment service Consolidation debt free information College grant student loan Consolidation debt loan online uk Direct federal loan student Home equity loan information Bad consolidation credit debt Free annual credit score Credit score calculator Michigan debt consolidation loan Student credit card canada Government home loan Orchard bank credit card services Home equity loan in florida Federal government student loan Apply credit card bad credit Aid direct federal loan student Commerce bank credit card Card com credit mbna Bad consolidation credit loan student Capital one credit card canada Bank of america fleet credit card Card credit debt unsecured Citibank credit card login American express prepaid credit card Miami home equity loan Bad consolidation credit debt Associate student credit card California home loan mortgage Credit repair counseling California home mortgage loan rate Cash fash loan payday 1 3 credit in online report Online credit card Credit card company Card consolidation credit Chase universal credit card Credit union master card online Bad credit auto refinancing loan Cash fast loan payday American express student credit card Consolidated credit counseling service Instant credit card approval with no credit Credit card debt statute of limitation No credit card First time home loan bad credit Get unsecured credit card bad credit Instant approval payday loan Instant bad credit loan 100 bad credit mortgage Card citibank credit payment 5 cash back credit card California equity home loan online Gas station credit card Arizona home mortgage loan Va home loan Credit report help Card consolidation credit debt free College hazlewood hinson loan student Gas credit card application Guaranteed loan personal Calculate credit score American express blue credit card Credit card processing machine Aes student loan Web credit card processing Union plus credit card account Texaco shell credit card Bad college credit loan student Bad credit loan uk Kansas city home equity loan Student loan debt relief Eon bank credit card Debt consolidation lender Dallas credit repair Poor credit home improvement loan Pennsylvania bad credit mortgage Bill card consolidation credit Aspire card credit payment Chase credit card services Approval canada card credit instant Christian debt consolidation program Visa credit card numbers California home loan rate refinance Stolen credit card numbers Bad credit business loan National foundation for credit counseling Home improvement loan florida Capital one credit card online 0 interest credit card offer Best unsecured personal loan Free credit card for people with bad credit Christian counseling credit family Home loan refinance rate College credit card Bad consolidation credit debt loan people Providian credit card company Card cardmember chase credit service Best rate credit card balance transfer Electronic credit card processing Excessive credit card debt Equity florida home loan refinancing No apr credit card Bad credit mortgage rating Card credit mbna services Sears credit card application Credit card balance transfer offer Christian consolidation counselor debt Credit card for student with no credit Card credit processing service Canada credit card online application Annual bad card credit credit fee no Free debt consolidation Texas guaranteed student loan corporation Consolidation defaulted student loan Refinance private student loan Card consolidation credit credit debt free report resource Application business card credit small How to get a home loan with bad credit Government debt consolidation Credit counseling chicago Card college credit debt student Federal student loan repayment Card credit merchant online processing Credit card application for college student Phone credit card processing Apply business card credit small Aspire credit card customer service Instant online credit report Atlanta home loan Student loan debt Credit free online report score Day loan payday quick same Consolidation credit debt Auto bad california credit loan Bank federal home loan seattle Minnesota home improvement loan California christian consolidation debt Credit card debt management Texas construction home loan Secured credit card instant approval American express black credit card Approval bad card credit credit instant Consolidation debt lead mortgage Agency credit report Credit credit report score Payday loan utah Free credit score no credit card Business card compare credit offer small Credit repair agency California bad credit mortgage Visa credit card machine Approval card credit instant student Trans union credit report bureau California home construction loan Uk credit card offer Credit instant report trans union Credit card free porn Credit rating company Debt consolidation loan online Debt management consolidation credit card Low cost personal loan Debt consolidation counseling services Credit card debt consolidation oregon Credit repair report Card consolidation credit debt help Credit card debt uk Debt consolidation credit report Card compare credit offer online Car loan bad credit history Free copy of credit report Car loan student Equity florida home loan rate Free credit card merchant account Credit free get report Credit free illinois report Alaska loan student Trans union credit report agency Credit repair software free Christian debt consolidation loan Mbna credit card uk Us government student loan California credit free report Application loan online personal Credit score meaning Bank card credit ge money payment Free credit card debt consolidation Free web cam no credit card needed Poor credit georgia home loan Credit counseling in arizona Credit free instant online report Free credit repair advice Consumer credit counseling indiana Consolidation debt non profit Credit card online ireland Best credit card rebate Bad credit home equity loan Beacon credit score Hotel reward credit card Best credit card for college student Credit score rating chart California home loan rate Air card credit mile uk Free prepaid credit card Consolidation debt guaranteed loan unsecured Credit card visa master card Personal loan interest rate 800 credit card debt Card consolidation credit debt loan Advance loan online payday Bad card credit credit offer Bad credit personal signature loan Best secured credit card Card credit offer online.com Bad credit florida loan mortgage My premier credit card account Bad credit en language loan Credit counseling canada First financial bank credit card Apply for unsecured personal loan Bad credit payday loan Minnesota debt consolidation loan Bad credit bank account Average us credit score Accept card credit payment Direct merchant credit card bank na Defaulted loan student Bad credit en language loan personal Bad credit mortgage virginia Help loan student Accepting card credit payment Bad credit mortgage lead Instant approval unsecured credit card Va home improvement loan Credit free online report uk Chase credit card bill pay Card company counseling credit 1000 cash loan payday advance Best credit card reward program Application card credit scam scams Do it yourself credit repair Consumer credit counsel Business credit rating Chase credit card home page Home loan manufactured mobile Credit card terminal repair Credit card special offer Equifax credit report trans union Visa credit card offer 0 card credit interest On line credit card processing Card credit interest low visa No credit check personal loan Free porn no credit card check America card credit debt Credit score Apply for capital one credit card Information loan student Faxless loan payday quick Instant credit approval credit card Company consolidation loan student Mobile home refinance loan Home improvement loan calculator Unsecured credit card for people with bad credit Airline reward credit card Shell credit card account online Bad credit equity home loan no California home jumbo loan Free credit repair information Debt consolidation loan Credit bureau report Gas credit card Accept credit card on your web site Business credit card application Free cell phone without credit card No credit history credit card Cross country bank credit card Consumer credit of des moines No credit card required Compare home loan mortgage new quote Instant approval credit card application Maryland home loan William d ford student loan consolidation Consolidation federal government loan student Payday loan personal Credit card for people with bad Consolidation credit Home loan mortgage quote rate Bad credit education loan Refinance loan for debt consolidation Countrywide foreclosure home loan Bad credit home loan washington Calculator card consolidation credit debt 0 intro rate credit card Fast loan payday Debt consolidation company American express secured credit card Find credit rating Consumer credit counseling center Credit repair book Home loan mortgage refinance loan Direct merchant bank credit card application Trafalgar home loan Home owner loan Guaranteed loan student Zero percent credit card offer Free personal credit report online Centered christian consolidation debt Citibank student credit card High risk personal loan Free online canadian credit report Credit card debt consolidation services Card consolidation credit debt program Personal loan online Car loan for low credit score Payday loan forum Bad credit mortgage uk Bad credit low income loan Federal student loan payment Chiropractic consolidation debt loan student Bad credit personal loan uk Michigan debt consolidation Fha home improvement loan Auto bad bankruptcy credit credit loan no Apply for credit card no credit Best secured credit card deal Wachovia credit card login Best refinance home mortgage loan rate California home in loan mortgage rate Free credit report check score online Lower credit card debt No credit card needed Repair credit score Home improvement loan maine Equity home loan mortgage refinance Card card credit master tribute Letter to credit card company Florida bad credit car loan Prepaid credit card orchard bank Maryland bad credit mortgage Average credit score Instant access credit card Equifax credit score Federal direct student loan program Bad credit construction loan Chase platinum credit card Balance card credit transfer uk Bad card credit credit those Shell credit card online payment High risk unsecured personal loan Advance loan payday quick Wal mart credit card services Best fixed rate credit card Capital one personal loan Christian consumer credit counseling Computer financing for people with bad credit Guaranteed high risk personal loan San diego home loan Auto financing bad credit Miami home loan Credit instant report Credit card payment processing Loan mae sallie signature student Apply canada card credit jersey new Guaranteed online personal loan Canadian credit report 0 credit card Delaware home improvement loan Credit card debt Free porn no credit card Aspire credit card Direct loan national student Credit repair florida California payday loan Refinance student loan Credit repair debt consolidation Retail credit card processing Cell phone no credit card needed Debt management credit counseling Cash loan payday quick Credit repair organization act Bank federal home loan topeka Business accept credit card Credit equifax report trw Credit card merchant account Home loan finance uk Low rate credit card American express delta credit card Credit equifax free report score Credit counseling center of america 0 12 balance card credit month transfer à?? Hsbc credit card india High risk lender for a personal loan Credit score interest rate Alternative loan student New york home equity loan Credit card comparison Consolidation consumer credit Debt consolidation loan lead Cic credit report Chase manhattan bank credit card Best card credit rate transfer Consolidation loan refinance student Credit card with no bank account Payday advance loan utah Com credit report Article card consolidation credit debt Application approval card credit instant Application card citi credit Credit card debt consolidation company America card mbna credit bank Unsecured loan with bad credit history Unsecured bad credit card Best canada card credit Credit card fraud prevention Consumer credit and debt counseling Home improvement grants loan Bad credit manufactured home loan California company home loan 3 credit report Maryland debt consolidation loan Approval card credit guaranteed unsecured Premier bank credit card Instant online credit card application Card consolidation credit debt unsecured Merchant credit card processing Wireless credit card machine Government grants on student loan Payday loan no faxing required Credit card reward program Free instant copy of credit report Bad credit mobile home loan Consolidating private student loan Bad credit military loan Card consolidation credit debt program.com No deposit credit card Mortgage broker home loan refinance Bad credit good loan mortgage Home loan for home improvement Low interest credit card First horizon home loan Apply canada card columbia credit district Budget credit and counseling California home equity mortgage loan Home purchase loan rate Credit free from report trans union 0 apr card credit transfer Home loan interest rate Free debt consolidation quote Card company complaint credit Home equity loan company

Very early on, while meeting with our lawyer, another entrepreneur was present to give us some advice. He said,

During your development, you’ll come across other opportunities. Ignore them! Stick to what you know; stick to your business plan.

That was pretty obvious, even to us. Of course you stick to what you know.

compass.jpgMistake #4,5,&6: Not only did we fail to follow that advice, but we failed to follow it on three separate occasions. We had “Ferret”, a mid-size search engine tied to perl that was basically a cheap replacement for the expensive full-text search engines. We had “InSite”, which was Ferret tied to a web spider so, for a small monthly fee, customers could search your web site (remember, this was 1996 — before Google). And we had “Coordinator”, a web-based calendar that was never completed. In the end, we may have made a few hundred dollars in exchange for the hundreds of man-hours of effort.

If you believe in where you’re going, then go there. A company like Google can afford to give it’s employees 20% of their time to work on any interesting project; they can afford to take risks. For a small start-up, unrequired risk is death. You’re betting the farm on every project you take on. Remember that!

Without day jobs to pay our rent and no income from the product, we needed some way to live. As such, we went to our friends and family and asked them to invest in this great little idea we had. I will be forever thankful to those that had the confidence in us to put money in to our venture. Unfortunately, I’m sure most of them will never be thankful for making that investment since they all lost most of it in the end.

All told, we raised about $100,000. We rented a small office and set up salary payments.

money.jpgMistake #2: This is simply not enough money to build a product or launch it when complete.

Mistake #3: I was determined to do this like a proper business. Duh! When you’re poor, you do things cheap. For example: All of us founders put cash in as well which was eventually paid out to us as salary, minus what the government took as tax. It would have been much smarter to simply give a “credit” for the amount contributed and then not paid them that much salary, tax-free.

After a few months, we started taking on some contract programming jobs. We earned enough to cover the monthly rent and some small salaries, but it also cut in to the amount of time we had to work on our game. It isn’t what we wanted to do, but we didn’t have many options by that time. Our investor’s money was spent and we had almost nothing to show for it. I still think about our “angels” now and then. If you remember that child on the corner of time, I still remember I still owe some nickels and dimes.

It started with a discussion among friends about a play-by-mail game. Some companies were updating to use email as the communication channel but the style of game play was still turn based. Remember, the world-wide-web was still pretty new at this point; Mosaic Communications Corp had just released Netscape v.1.0 and it was not a viable front-end for interactive game play.

Once a week, the group of us would get together and discuss the project and what we had accomplished during the week. We still had full-time day jobs, so progress was somewhat slow.

Mistake #1: It was too big. We had grand ideas for what a finished product should be able to do and worked towards that goal on whichever piece seemed interesting or important on any given day. Instead, we should have catalogued those features and narrowed it down to a minimum list for v1.0, then ranked those in order of importantance, and then worked on each in turn. Yes, it had to sing & dance, but it didn’t have to do so in twelve different languages and with thirty-eight styles of music right from day one.

images.jpegIn addition to the game plan, we were also working on a business plan. We were naive, but not clueless. As a service, we would give the front-end software away for free and charge a small monthly amount to play a game. With hundreds or thousands of players per game and the ability to run as many games in parallel as we wanted, there was some very real upside potential. All we needed was to get it working and do so before someone else beat us to the market, and so four of us proceeded to quit our day jobs and work on it full time.

Remember when you were a teenager and you knew everything? You didn’t think you knew everything. You knew you knew everything. Your parents were idiots and anybody over 30 was just too old-world to have a clue. (If you’re a teenager right now, I’m sorry to burst your bubble, but you’re hopelessly naive and everybody older than 30 knows it.) Eventually you got older, looked back, and realized how foolish you were.

The problem is that we don’t seem to realize that this attitude isn’t limited to teenagers! Everybody of all ages thinks they know pretty much all they need to know and everybody 10 years older knows how naive those younger people are. So as I look back 10 years on the mistakes made by those know-it-all computer geniuses who formed Verisim, I’ll try to keep in mind that I still have a lot to learn even now.

Wayback Machine

 

We were fresh out of university; a group of shit-hot electrical & computer engineers who could design and build a computer system right from the doping of the silicon making transistors to the database back-end behind a game. There was nothing we couldn’t do! Well… nothing except business. And management. And leadership. And project planning. And finance. And… You get the picture.

Oh, and these minor issues aside, noone had any experience creating a large software system and coordinating a group of five people for over a year. The truth is, we were doomed from the start. I still think the idea was a good one for the time. I think it’s still a good idea today and would love to build it… If I was financially independent and could pay the salaries of five top-notch software designers for a few years. I could handle all those other problems today because now I know everything!

About 10 years ago, some friends and I decided to start our own business. We were all computer geeks and gamers in some sense so we decided we would make money doing two of the things we loved most. Verisim was born! (Please note, the Verisim of 10 years ago has nothing to do with the company that currently owns the verisim.com domain name.) Our goal was to create a very large, continuous time, multi-player network game.

Would You Like To Play A Game?In short, the idea involved creating a world (”game”) in which hundreds or thousands (”very large”, “multi-player”) characters would go about their actions whether your were actually connected to the game or not (”continuous time”). Network connectivity and CPU power 10 years ago were not what they are today and this design solved several problems because it did not rely heavily on either. Like the old play-by-mail games, players would give their characters a series of directions as well as “standing orders” indicating what to do in certain situations. A front-end program would send directions out and display the results whenever the player choose to look. Connectivity could be accomplished via direct socket, HTTP posts, or email attachments.

Verisim never accomplished that goal and eventually closed when the company that bought us started having financial difficulties and informed us that we’d have to go without pay for probably the better part of the next year.

Over the next few months, I’m going to conduct a review of this endeavor based on hindsight and an additional 10 years of accumulated wisdom. I hope you’ll come back and read more.

I decided the other day that the server in my basement was insufficient for the needs of this site and my other site, Background Exposure (my photography gallery and blog). It’s not that it was too much trouble — I do system administration as part of my day job. No, the problem was unreliability. For one, if the machine had a problem, I might not notice until the next day and might not be able to fix it for several more. Also, though my cable modem has sufficient bandwidth, it is only a semi-static IP and so changes every few months. Lastly, I’m going to be moving to Switzerland and certainly won’t have the same sort of bandwidth there as I have here in Canada. So off I went in search of a web hosting company.

  • 1and1: This company was recommended by a friend of mine for their good service. I registered backgroundexposure.com through them and they were generally quite helpful. Unfortunately, there were two problems with their web hosting, one of them a deal-breaker. First of all, their really inexpensive hosting packages don’t include MySQL database access of which both of my sites require. The $10/mo is the cheapest that does. The big problem, though, is that each database can be a maximum of 100MB in size, even though the space I’m allocated is 100GB. I’d like to think my Linux Wiki will eventually grow larger than 100MB.

0024-13.jpg

  • AN Hosting: (also knows as “midphase.com”) For $7/mo, I can get an account here that includes all the same stuff as 1and1 and the databases can be any size up to the maximum account size. Sure, the size is limited to only 50GB, but I think that’s plenty for the next little while. They really strive for good support, and achieve it… mostly. Their response time is amazing; I’ll get a reply to an email question within minutes. MINUTES! If only they read my entire email before replying. I get the feeling they’re used to certain questions and as soon as they see my message with something akin to what they’ve seen hundreds of times before, they send me the standard answer without actually reading my questions carefully. Sometimes it took three emails to get all the answers I was looking for.

0023-21.jpg

  • GlobAt: I originally registered the riverworth.com domain through them because it was the cheapest I could find. Exactly two days after I signed up with AN Hosting, they sent me an offer of pretty much the same package as AN-H but with twice the storage space, the same monthly cost, and a special promotion that would have me paying only 1/2 the total amount for the first year! What a deal! The only thing that really irked me about the package was that I was going to be upgraded to it if I didn’t opt out! The nerve! I pay $3/yr for a domain name registration and then they’re going to up me to $7/mo if I don’t tell them “no”! STRIKE ONE and STRIKE TWO! Still, the offer was really good and, since I don’t make any money off of these sites, very tempting. So I sent some email inquiries. Of the first two, only one got a reply. I asked some more questions. No reply. I asked again. Still no reply. STRIKE THREE! You’re outta here!

So in the end, I went with AN-Hosting/MidPhase. Other than their support staff not really answering all my questions, I’m quite happy with them. Their responses are near instantaneous and they seem happy to help me out. For example, when I asked if I could change my userid to my standard “bcwhite”, they replied they would have to recreate the account which would lose all the data. I said that was fine (I hadn’t put any data on it) and the change was made. The whole thing took less than an hour!

… time passes …

It’s been a little over a month now and my experience with midphase/an-hosting is absolutely terrible!!! Let’s recap:

  • Three days after I move my Background Exposure landscape photography website to this account, their server died. I’m not sure they even noticed until I sent them email. A few hours later I’m told there’s some possibly unrecoverable error and, sorry, there is no backup. Apparently the machine had only been alive three weeks and so they hadn’t bothered to start the backups. It seems they’ve never heard of the Bathtub Curve.
  • About one month after starting and moving the Riverworth Systems pages (including the linux wiki), their server dies again and again I’m not sure they even noticed until I told them via email. I certainly never received any notification.
  • Another five days later, after being off-line on a business trip, I find out that they still haven’t restored the machine. Instead they’ve moved my entire account to a new server and new IP address without telling me. That’s right… not one email. Some things weren’t working because I’d used the IP address in places when DNS was not fully set up. And guess what… They didn’t bother to restore the databases!
  • Another day later and the database is restored. But wait… It’s not up to date. It’s over two weeks old! When I ask them their backup policy, they say it’s weekly. Yeah, sure.
  • Apparently there is a server notification list that announces these problems, etc. Nobody ever told me about it and they didn’t subscribe me to it automatically. I’m told I should sign up for the new server, but guess what… There is no list yet for the new server! Their super-responsive techs don’t even bother to see if the advice they’re dispensing is valid. I think I’m going to cry.

So to recap… They’ve directly caused my websites to be down for 6 days over the course of 1 month and I still had to restore some things by hand. They claim a 99.9% uptime, so I can only assume they’re confident that they won’t have any other problems for at least 20 years! I’m still with them, not because I want to be, but because I’ve already paid for a year and don’t want the trouble of moving. I’m also doing my own daily backups!

If you’re considering MidPhase or AN-Hosting for your sites, run! Don’t walk… Run!

I’d like to hear what other people think of the hosting companies they use.

There are three reasons people do things for you:

  1. It helps them.
  2. It helps you.
  3. It’s their job.

The higher up that list you can move the motivation, the better the results. I think this is pretty obvious once you see it. We’re all like that. We’re generally much more motivated by our own hobbies than helping out friends and more motivated helping out friends than digging ditches just because we’re paid for it.

The question is how to make use of this knowledge. When it comes to hiring people, especially in creative arts like software programming, you’ll always get your best work from someone who loves what they do. I know some of you are saying “Duh! I already know that.” Hey, I said it was obvious.

0020-05-small.jpgWhen I’m interviewing someone for a software position, I always ask why kind of computer set up they have at home. Then I ask what their personal projects are. If they do programming for fun, then they’ll find their job up there under reason #1 and will do their best work. I’m like this. I’ve never had to work for anyone… I just play the way they ask me to. It’s a sweet deal if you can get it.

Once they’re hired, the real challenge is to keep the job interesting and new and, most of all, fun. You want them to look forward to coming in to the office every day. To do this, you have to have a pleasant environment, good equipment, opportunities to learn new things, and challenging tasks. If you let a developer get bogged down in constant maintenence with no chance to create something new (remember, software design is an art, not a science) then eventually they’ll fall down to reason #3 and either be much less productive or leave for greener pastures, and that is costly.

Replacing a top-notch software developer is probably the most costly activity a small company will undertake. It’s not the HR costs of advertising the position, or the costs of an interviewer’s time, or the relocation costs to bring them from out of town. No, by far the biggest cost is the knowledge that the departing person takes with them. There is no way to transfer that so once gone, it has to be learned anew by someone else.

Treat your artists like gold; they’re worth their weight in it.

Here’s a quick little tip I learned…

On my corporate firewall, I have rules that block all outgoing HTTP and SMTP traffic unless it is coming from known servers. These servers run a Squid web proxy and an Exim mail relay. Blocking these ports for all workstations ensures all traffic must go through a server, first. Why?

  • Blocking the HTTP port ensures that everybody is using the web cache. This ensures the best performance for the user and the company as a whole.
  • Blocking the SMTP port protects against the spread of mail worms. No, it doesn’t protect us — it protects others against us in the case somebody in the company becomes infected. Three times over the past few years this has prevented the spread of a worm that somebody inadvertently brought inside the corporate LAN. Since the worms all tried to use their own internal SMTP engines instead of relaying through the server, none could make any outgoing connections to the Internet.

Just some thoughts. Comments welcome! Also, check out this article on spam and responsible behavior.

The Extreme Programming paradigm is a very interesting concept. I don’t agree with all of it and some of the things I do agree with are not always easy to achieve. One of the ideas I’ve absolutely fallen in love with, though, is the idea of integrated self tests, or “unit tests” as they’re sometimes called.

Up, Daddy?I have my own personal library of C++ code. It’s posted as free software under “starlib” on SourceForge, if you want to check it out… just don’t expect any real documentation. This software is an interesting study, I think, because it was originally written way back before the STL was available and the design has evolved as it has been used for different projects and operating systems. But I digress…

Until 2004, STAR had no built-in tests. When the idea was presented to me and I wanted to use that library in a new project, I decided to do yet another design upgrade and add support for self-tests. This was not easy! STAR is primarily an I/O abstraction library and testing I/O is difficult because at some point the operating system gets involved and then you simply can’t interfere. So I went to the base “tIoPath” class (a thin wrapper around open, close, read, write, etc.) and added hooks to all the functions there. Once you attach to the path, all reads and writes instead go to memory buffers from which the test case can eject and inject data. The test case can thus emulate what the operating system needs to do to exercise the code being tested. You can also set a callback function to intercept almost every I/O system call there is (including “read” and “write” if you’d rather interface directly instead of using intermediate memory buffers).

All this took a couple weeks for the initial version with numerous improvements/extensions over the next two years. It was a large piece of work. The benefits from it, though, are ten-fold! Now, any time I want to write a new I/O class, I can quickly and easily add test cases that will exercise all of code paths. I can inject bad data, cause data packets to get broken in odd places, and force write calls to only accept odd amounts of data at one time. These are all things that can happen when talking to the OS, but usually don’t, making it difficult to test any other way.

I say these test cases are easy, but that’s a relative term. They’re easy compared to what it would be like trying to do so without the underlying hooks in the I/O base class. They’re still work. However, all this needs to be tested anyway, so as a programmer I’d still have to find ways to create these situations by hand in order to verify the code I’ve written. That takes time, too. In the beginning, it would have been faster to hand-test things, but now the support is broad enough that I think writing test-case code is actually faster. But that is just the first time you test! The real benefit of built-in tests is that there is almost zero cost to performing it a second, third, fourth, or ninety-ninth time!

The key to self-testing is to make sure that all tests (or, at least, a significant subset) are run every time a build is done. If you change something, there skytrees.jpgis no need to go through the tedious hand testing again; the test cases written during the initial testing are still active and will validate your changes with no additional cost! That’s free work! You simply cannot afford not to have built-in self tests (appologies for the double-negative).

Some people argue that there should be a built-in test for every single method in a class and that all big methods should be broken down in to smaller, individually-testable methods. I don’t agree with that. I believe that a class should be tested completely at the API level, or “public interface”. If you’ve completly tested the public interface, then you’ve tested all the code of a class. If not, what is the purpose of that extra, untested code? Sure, you can test private parts if you wish; I just don’t think it’s critical. Plus, the API is less likely to change than the internal implementation so there are fewer changes required in the test code itself as maintenence is done.

If you’re still not sure exactly what I mean, try it. If you’re running a Unix-like system, try this:

cvs -d :pserver:starlib.cvs.sf.net:/cvsroot/starlib co star
cd star
./configure
make

At the end of the build, you’ll see it run it’s test suite. Better than that, it’s easy to incorporate this in any programs built using this library. You build your application and then just type ./myapp –test and !presto! you see all your tests run and have confidence that your app is ready to go. If you take the