Being Proactive Instead of Reactive
Recently my buddies Ryan
and Keith started up a new blog called Business is in the Details.
It's all about how you can make your business better by providing
better customer service, targeting your ads, and general nuggets of
goodness that people simply forget to do over time. It didn't take me
long to spot a problem with a business that was worthy of a blog
post.
At a location I work at, there is cable
internet. The cable was physically pulled away from the pole by an
oversized truck. In the same parking lot about 50 yards away is a
company that contracts service work for our cable provider. Having
that line working is mission critical, so instead of calling the
cable company, I simply walk down to the cable contractor's office.
I was met at the front by your typical
middle aged manager type personality. I told him our internet was
down because our cable is physically down. He said, “Yeah, I saw
that coming in to work. Are you the one who did it?”. I told him of
course not, but I need that line up as we're losing customers and
money without it. “Sure, we'll fix it as soon as you call the cable
company and make a service ticket.”
My blood pressure instantly jumped. In
my younger years my knee jerk reaction would have gotten the better
of me and I would have no doubt insulted the man by explaining to him
the amount of idiocy involved to come up with just a statement.
Instead age and wisdom won out and I just laughed a little and walked
out.
Let's examine what's wrong here:
- A
company that exists to fix another companies infrastructure knows
about a problem before the customer and does nothing to fix it.
- Company management wanted to find
someone to blame.
- Will not take action without a work
order from cable company.
So after spending 45 minutes on the
phone, getting transferred to multiple states (and most likely
countries), I managed to convince someone that I did not need to
reboot my router as I was holding the downed cable line in my hand.
I was assured the problem would be fixed within 3 days. Actual repair
time was completed around 1pm, but that's over half the work day. The
work was of course done by the same people I visited that morning –
the same company that shares my parking lot.
Here's what should have happened:
- The contract company sees the line down
and repairs it.
- Contract company then places the
service call or asks me to place the service call.
- Ticket get generated and instantly
closed. Paperwork handled, everyone gets paid.
- I don't lose a day of work and my blood
pressure remains stable.
Is it so odd to expect people will
proactively do something without being told first it needs to be
done? Apparently yes. Sounds odd, but if you stop and think about it
– happens all the time.
Entrepreneurs in general are proactive
people. So proactive in fact that most CEOs do not come with an off
button, but that's for another post. You need reactive people to
carry out your vision, they're called employees. Most people on the
planet only do something as a response to someone else. The problem
is management. The job description is to balance being proactive with
being reactive. An owner of a company hires management to proactively
take care of certain things so the work load gets distributed.
Management reacts to the people he manages and the customers that are
not happy with those people.
The conclusion – my poor customer
service experience is a direct result of poor management of a company
that represents a bigger company. Disclaimer: I didn't like the big
cable company before but my dislike has grown because of the actions
of a company they employee.
Taking a step back: Reasons they didn't
just “fix” the problem on sight
- Against company policy. Too much of a
liability to climb a pole without a work order.
- We might not get paid. The big cable
could have in their infinite wisdom passed the work order to another
company 3 counties over.
- Generally too much effort or just a no
care attitude.
Whatever the reason, the damage is done
and while my patronage will not make or break them, I'm often in a
position of decision making when it comes to which internet carrier
gets installed. They will certainly lose a few future customers I
could have sent their way.
48 Hours with Joel and Jeff..
Joel Spolsky of FogCreek Software
and Jeff Atwood of nothing
have joined forces to push out StackOverflow. To generate hype and the all
important critical mass, they record a weekly podcast. There are now 48
one hour long podcasts in the wild and I've listened to all of them
while driving to Sweet Peppers so
I can work on RoR-izing FollowMeIP.
At some point a conversation was had
about how cool it would be to have a website that would cater to the
asking and answering of programming questions - Stackoverflow was
born. Atwood is project manager over a couple of .net programmers and
Joel simply tells his readers about how cool it is. It's a great
situation really, Atwood does all the work, spends the money, takes
the risks and Joel sits back and waits for success or failure. Either
way, Joel will have tons of new material to write about.
Atwood seems to be in control of the
technology stack and server infrastructure. It's rather amusing at
times to listen to his rationale on why he did certain things.
Stackoverflow is using ASP.NET MVC, microsoft's answer to ruby on
rails. He opted to use this stack which was in beta over the actual
RoR stack. He's definitely a microsoft centric developer and every
time he denies it, take a drink. It's also amusing listening to hardware issues he's having trying to
run his own server. In podcast 48, Atwood said software raid is better
than hardware raid. Having dealt with both - extensively - software
raid is one big slow steaming pile of crap. With drive sizes in the
2tb now, a nice hardware pci-e raid 1 solution is what you want. It's
clear Atwood hasn't had much experience with hardware and really
should move his project to some sort of cloud before he runs out of
money playing with different raid settings.
After listening to 48 hours of rambling
a few things become clear:
The only reason to listen is to hear
what Joel says.
Atwood mostly just says "right"
or "I agree" randomly.
Joel is not a Linux fan.
Atwood doesn't understand FOSS.
Atwood hasn't "been around"
as much as he'd like to think he has.
Atwood should stick to writing.
The stackoverflow podcast is no longer
about stackoverflow.
So how is stackoverflow doing? Fine I
suppose. People seem to be using it, but it doesn't matter because
Atwood made one fatal mistake - not open sourcing it. After the
initial release, people started asking the same question: can I spawn
a stackoverflow for xzy? Why not a stackoverflow for automotive
questions? Atwood has repeatedly said the site just can't be switched
from programming questions to some other type of question. That means
poor design or lack of vision - most likely a little of both. If
you've been in computers your entire life it's rather hard to see
value in anything else. They missed the boat and the flood gates are
about to be opened.
CNProg.com has
replicated stackoverflow and released it under the apache license. The
motivation was to enable Chinese programmers the ability to use a
site like stackoverflow which doesn't support anything but English. Once again
the podcast provided a smile on my face when Joel started talking
about copyright violation. Sure, it's copyright infringement if China
followed U.S. copyright laws - and they don't. When the Chinese government owns
and operates a Disney Land clone, I seriously doubt they're going to
mind a stackoverflow clone.
I'm reasonably sure CNProg didn't take
nearly as long to write and I'm guessing a decent ruby on rails
developer could rewrite stackoverflow within a week. Considering
Atwood's poor choice in technology stacks, my prediction is someone
will clone stackoverflow using ruby on rails and release it under an
open source license. This will enable people to create their own
niche sites without debating with Atwood about what's possible.
Git server setup using gitosis for Centos 5.2
This is a step by step HOWTO to host
git repositories using gitosis on a Centos 5.2 box. I'm currently
working on a ruby on rails project with
Ryan. The need for a source management solution
was apparent and I've been using subversion for while. Of course I could make a
new subversion repo in no time, my server is already setup, backups
being done, and it just works - but according to Linus I was ugly and stupid. Ryan wants me to use
git and I really didn't want to be ugly and
stupid.
I go about searching the web for a git
server howto and found that git wasn't really meant to used in a server/client
situation, but more of a peer to peer environment. Gitosis was
written to emulate that server/client environment I'm after. I also
didn't see anything useful on google that was CentOS specific with
setting up gitosis.
Here's how I did it..
Step 1 - (On your server)
Install python-setuptools on your
server, you'll need it to install gitosis.
As root:
yum -y install python-setuptools
Step 2 - (On your server)
Install git. You'll need the DAG RPM
repository for this one.
As root:
- Red Hat Enterprise Linux 5 / i386:
rpm -Uhv
http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
- Red Hat Enterprise Linux 5 / x86_64:
rpm -Uhv
http://apt.sw.be/redhat/el5/en/x86_64/rpmforge/RPMS//rpmforge-release-0.3.6-1.el5.rf.x86_64.rpm
yum -y install git
Step 3 - (On your server)
Install
gitosis.
As
root:
git
clone git://eagain.net/gitosis.git
(it should download stuff and create a
gitosis directory)
cd gitosis
python setup.py install
Step 4 - (On your server)
Make a user called git.
adduser git
Give your new user git a password.
passwd git
Step 5 - (On your client)
The whole point of gitosis is to
transfer files via ssh using a shared key process (ie: no password
required to login to user git on your server). Now before you go and
start doing it the manual way - don't. Gitosis must create and maintain the authorized_keys file.
As your normal user on your
client/development box:
ssh-keygen -t rsa (take the defaults)
There is now a new file called id_rsa.pub in ~/.ssh/
Copy the id_rsa.pub file to the server:
scp ~/.ssh/id_rsa.pub git@someServer.com:/home/git/
Step 6 - (On your server)
I'm assuming you're still root on the
server.
Change to the git user.
su git
cd /home/git
gitosis-init < id_rsa.pub
It should reply with Initialized empty
Git repository in ./ - twice..
We can now remove id_rsa.pub as we
don't need it anymore.
rm id_rsa.pub
Now we must set some directory and file
permissions to let sshd see the new authorized_keys file.
chmod 755 /home/git
chmod 700 /home/git/.ssh
chmod 644 /home/git/.ssh/authorized_keys
Step 7 - (On your client)
We're pretty much done server side. Now we're going to configure
the server via the client.
Although I assume this is obvious, you need to install git on your
client machine.
git clone git@someServer.com:gitosis-admin.git
cd gitosis-admin
You should see a gitosis.conf file and
keydir directory. Here's the thing, anything you need to configure
on the server, you actually configure here and commit the changes to
the server. Open up gitosis.conf in your favorite text editor
Make a new group name for your project. It really doesn't matter what you name this group. Add users to the member section who will need push access.
[group myTeam]
members = (copy and paste the user from
the members = line in the [group gitosis-admin] section)
writable = myNewProject
Save the file. Why did we use that
members=user@someServer.com? If you look in the keydir directory,
you'll see your public key with the filename
user@someServer.com.pub. These are your users (minus the .pub).
Step 8 - (On your client)
You've just made a configuration
change. You want the server to allow user@someServer.com to have
write access to a project called myNewProject. You must commit this
change to the server.
git commit -a -m "Allow the
machine I am on right now write access to myNewProject"
git push
Now it's time to make the directory
that will contain your project files. Move up out of the
gitosis-admin directory.
cd ..
mkdir myNewProject
cd myNewProject
git init
git remote add origin
git@someServer.com:myNewProject.git
Add your files, move some files, create
some files. Put some files in the myNewProject directory.
Now we can commit the initial push to
the server.
git add .
git commit -a -m "This is my
initial commit for myNewProject"
git push origin
master:refs/heads/master
Git will do some neat things and push
things to the server. Now to delete the directory you just created..
Yeah, I said it.
cd ..
rm -fr myNewProject
And now to pull myNewProject from the
server using clone..
git clone
git@someServer.com:myNewProject
Now you have a version of your code you
can actually use, make changes and commit to the server using normal
git commands.
As of now, you have a fully functioning
git server with a project and a client that can make changes. But
what about other people?
Step 9 - (On your client)
So your friend Bob wants to help you
out with myNewProject. Have Bob generate his own id_rsa.pub and send
it you. When you have it:
cd gitosis-admin
Assuming Bob's
id_rsa.pub is in your home directory, move it to the key directory renaming it at the same time:
mv ~/id_rsa.pub keydir/bob.pub
Tell git about the new file:
git add keydir/bob.pub
Edit your gitosis.conf file again. Look
for the members line in myNewProject and add Bob to it:
members = user@someServer.com bob
Now you could add bob to be in the
gitosis-admin group if you wanted him to be able to do what you're
doing now. How much do you trust Bob?
Save the file and quit. It's time to
tell your server about Bob and send Bob's public key.
git commit -a -m "Added commit
rights to Bob on myNewProject"
git push
The server will automatically add Bob's
public key to authorized_keys. Do not attempt to add him manually.
Step 10 -
Do a little dance, you're done.
SSH without password HOWTO for CentOS 5.2
This one is short and sweet and is for CentOS 5.2 installs.
On the client machine generate a public key. Do this command as the user you normally run under:
ssh-keygen -t rsa (take the defaults)
There is now a new file called id_rsa.pub in ~/.ssh/
Copy the id_rsa.pub file to the server:
scp ~/.ssh/id_rsa.pub someUser@someServer.com:/home/someUser/
Log into the server:
ssh someUser@someServer.com
Append your client public key to authorized_keys:
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
Remove the client public key on the server, you don't need it anymore:
rm ~/id_rsa.pub
Set permissions on the server so sshd can see authorized_keys:
chmod 755 /home/someUser
chmod 700 /home/someUser/.ssh
chmod 644 /home/someUser/.ssh/authorized_keys
That's it, the next time you login to the server via the client it shouldn't ask for a password.
Come fly away with me..
For Christmas, my wife bought me a
discovery flight package from
Premiere Aviation.
My first thought was - we're in a
recession, I'm thinking of ways to keep my business going and here is
this teaser that will cost me thousands of dollars in the long run. I
really didn't want to look at a gift that way, my wife was only
trying to come up with something unique and special and she knew I
always wanted to learn to fly. The gift certificate sat on my desk
looking at me for 2 months before I did something about it. I made
the call and setup an appointment.
I was paired up with flight instructor
Brandon Reed
and
it didn't take long to realize this was one of those rare people who
really enjoyed what they did for a living. Whenever I meet one of
these rare people, their enthusiasm is infectious and it makes me
more productive - at least for a short period of time. How many
people do you know who actually likes going to work? On a side note,
just to show how small the planet really is, notice Ed Murray on
the same page. Ed was vice president at a company called Trillion Digital Communications where he hired me
to do some Linux programming for them. Long story short, the company
was eaten by it's "sister" company located out in Austin,
Texas. It shouldn't have happened and a bunch of people, some of
which I consider friends, lost their jobs.
Back to the original story. The
discovery flight basically takes you up in a plane and lets you fly
around for a bit. You can talk all day about flying, read all the
articles, see all the pictures, but you don't know if you're going to
like it until you actually do it. Very similar to swimming, how do
you know you like to swim without getting in the water? Reading about
swimming in a brochure is not going to give you the sensation of
buoyancy. The aircraft assigned to me was a 2006 model Diamond DA-40
G-1000 with the glass cockpit.
We climb in, buckle up, start the
preflight checklist, and Brandon talked about how you absolutely
cannot stall this aircraft and how great it is to fly. However, when
it came time to actually crank it up, it absolutely would not fire
up. Apparently this particular model is subject to contact corrosion
that will interfere with grounding system. So my first contact with a
personal airplane was very much like my first contact with my car - I
had to put it in the shop.
Nearby was our backup plane, a 2006
Cessna 172S G-1000 with the glass cockpit.
This plane is for the advanced students
who want to be instrument rated licensed. I always considered myself
an overachiever so switching to the more difficult plane was fine
with me. However, my friend Ryan, had a good
laugh as while my plane was new with a digital dash - his was old and
half the indicators didn't work.
This plane did start and we proceeded
to taxi on to the runway. The sensation of leaving the ground is very
much like a commercial flight but much more amplified. You feel the
air pressure change around the plane much like you feel the texture
of the road via your tires. We performed a straight climb until we
reached 1500 feet and then climbed once again to 3500 feet before
doing any turns. Doing anything only requires the slightest of moves
on the stick. Just like a slight move on a steering wheel while
traveling at interstate speeds will perform a lane change, the
slightest move on the stick will start a turn. Everything else is
micro-moves to keep the plane in a straight line just like you must
make constant corrections to keep your car in your lane on the
interstate. My wife was in the back seat with the camera taking
pictures the whole time. This is what Bessemer looks like at 3500
feet:
Some of my students should recognize
the parking lot in the bottom center of this picture. Also displayed
in the picture is one of my customer's real estate development park.
I had a blast.. More than a blast
actually. Flying that plane around triggered one of those life
altering moments. I had a silly grin on my face for hours after the
fact and I really can't wait to go back up and do it all again. It
really was one of the best days of my life and to top it off I was
able to share it with my wife. Now my priorities are: How can I keep
my business going? Oh yeah, how can I sneak in paying for a pilot
license while doing that?
The death of a company..
Not my business, at least not yet.
Maybe I should say the death of a good idea because the business in
question is more likely more funded than ever now. The spirit is
gone, the original mission scrapped, the original members moved on to
bigger and better things. What is left is a shell of a company
motivated by shareholder approval and the requirement to generate
large profits. The company in question is GarageGames.com and the
situation is big corporate buyout lovin'.
It's really amazing any company survives at all. According to the U.S. Small Business Administration, over 50% of small businesses fail in the first year and 95% fail within the first five years.
I'm torn. I've been on the wrong side of two buyouts and I've seen
first hand how great it can be. The formula is the same:
The owners start acting weird, you know
weird when you see it.
They start asking for inventory
numbers, how many servers do we have, etc etc.
A group of people you've never seen
before hang around and start calculating how much the company is
actually worth.
Management tells you there's nothing to
worry about.
People start resigning left and right,
you start hearing jokes about how the rats are the first to jump off
a sinking ship.
You interview for your own job.
People panic and start choosing sides.
The new regime starts identifying those
who still hold loyalty to old management and eliminates you.
The new regime starts identifying those
who had problems with old management and promotes them.
There's a reason I watch Office Space
at least twice a year. It reminds me to work harder to avoid this
cycle again. I'm the loyal guy, I don't really chose to be - it's
just my personality. Here's what it looks like from an owner's point
of view:
At the start of every week, you know
that by Friday you need X amount of money to meet payroll.
You're worried about billing and your
credit line at the bank eating any and all profits you may have had.
You're bothered by employees wanting
raises and new equipment you can't afford.
Management is busy making power point
presentations that depicts everything is fine and the company is
strong.
Employees are busily reading
Slashdot.org and planning their afternoon StarCraft session wondering
why management doesn't have a clue.
It's a non-stop stress fest on both
sides and all the sudden here comes mega-corp with an offer you can't
refuse. Here's the dirty little secret - businesses want to be eaten
within 7 years. The idea is to build up your business to attract the
attention of a larger entity. The larger entity will take the best of
what you have, get rid of the rest, and try to make as much money as
they can before liquidating whats left at the end.
There are very few small businesses who
intentionally wants to stay small. You have your auto mechanics,
dentists, dry cleaning, barber shops, service oriented in general who
will never get past the one location mark. If they're lucky and in
the right area, they can make a decent life out of it, but they would
have made more money working for someone else in the long run.
The owners, now presented with a buyout
offer now usually jump on it. It's a chance for them to cash out,
take a break, and do neat things they always wanted to do before
trying it all over again. The funny thing is, the stress is
addictive, the attempt attractive, the gamble exhilarating. Being a
business owner is nothing more than legalized gambling and the ups
and downs feel the same. So now the owners go on a shopping spree
buying up all the expensive toys they've always wanted. It may be a
bookstore, it may be a farm, but it's not long before they're right
at it again trying for the buyout again.
So let's take a look at the history of
GarageGames:
Ex-Dynamix employees see the writing on
the wall, negotiate to buy the engine they've been working on away
from the company and bail.
Take the engine, sell copies + source
for $100, call it indie and sell it anyone who wants it.
From the start it's cross-platform and
works pretty well.
Form community around said engine,
accept patches, repackage them and sell them back to new customers as
new versions.
Just looking at the publicly available
Torque Owner tags and crawling the site, it appears engine sales
generated over a million dollars alone.
They gain enough status to get console
developer licenses and port the engine over. Of course selling that
version of the engine for a much higher cost.
Microsoft gains interest, GarageGames
now a xbox ,xbox360 ,xna partner. Die hard c++ programmers are
talking about how cool c# is. Linux support all the sudden becomes
purely community driven.
TorqueX is the first GarageGames
product to hit the market on time, no doubt some sort of bonus money
from Microsoft. Jeff now questions Mac development and Linux
development drops off the planet.
Things are quiet, promises of
documentation and transparent development are made. Opengl continues
to take a back seat to directx.
IAC offers big corporate buyout lovin'.
GarageGames assures its community that
everything is cool and this just means more money to do more cool
things.
GarageGames founders and superstars
jump ship, the B team takes over.
Website takes on a web 2.0 look, engine
price triples, and community functions are crippled.
Founders and superstars make new
company, new engine, and back on the market to do it all over again.
Yes, it's sad to see something gutted
like this. Yes, I was attached to the idea of GarageGames. Yes, I'll
more than likely do business with PushButtonGames (even though I'm a
complete Flash virgin). Yes, I hope to be bought out by big corp
buyout lovin'. No, I don't like change nor how the process needs to
happen this way to turn a real profit. This is just how the world
works and it beats the alternative - your company fails, you go
bankrupt, you feel like a failure and you just can't wait to do it
all over again.
Rest in Peace GarageGames.com
2001-2008
Crazy Customers and How to Spot them..
They're out there lurking in the dark waiting to ruin your day. All businesses encounter at least one but they really hurt smaller businesses as they eat up time and resources. There is one basic rule a small business needs to follow - work on whoever is paying you the most right now. The crazy customer will monopolize your time, make unreasonable request, complain about complaining and then not pay you. I made a fundamental mistake - I started working before writing up a scope of work contract. It was a referral of a friend, so I didn't think much of it. He needed work done yesterday, I told him my rate and I went to work. So while I got screwed out of money, here's a list of how to spot the crazies and stop them before they do real damage:
Sending more than 15 emails a day.
Thinks 3 days is 2 weeks.
Calls you "bro".
Thinks a mysql backend is a magical thing only special people can understand.
Wants no scroll bars on IE maximized in a 1024x768 screen while in xp theme mode. (cause that is what *everyone* uses)
Thinks you can use a webcrawler to recover PHP code.
Wants you to work on 3 things at once and wonders why nothing is being accomplished.
Tells you he wants to start a social network for God called hisspace.com
Informs you what is easy and should cost money.
Tells you CEOs don't even make the kind of money you're charging.
And my favorite - Tells you that you are padding hours.
As soon as the customer starts telling you how to do your job - stop. When I take my car to get a tune up (and yes, all Linux people use car metaphors), I don't email my mechanic and inform him how to set the spark plug gap. People are good at different things, that's why I don't cut my own hair. Just because I own a pair of scissors doesn't mean I'm good at or even remotely qualified to instruct someone else at cutting hair. Some people spend a bunch of time behind a keyboard, but that doesn't mean you're a programmer or even a "computer guy". Owning a computer doesn't make you qualified to tell me how to do my job.
How can you avoid problems? It really depends on the scope of the project. If you write a little throw away application that takes you a couple of hours then it's not worth the trouble of writing up a contract. If they don't pay up, you're only out a couple hours and you move on. Anything more than that, take the time and do it right.
Contracts - do them. Write up a scope of work contract and make them sign it before you do anything.
Educate the customer - maybe they don't know all this computer stuff costs money. Software is expensive, custom software even more so. The bill can easily run into the tens of thousands of dollars.
Delays happen - this happens mostly when the customer starts asking for more than the original scope of work ie: the sugar buzz effect. Amend the contract.
Good luck with your crazy customer, I sure had a blast with mine.
Linux holding kids back?!
Let's talk physics. Most people have
heard of the law of conservation of energy. It says that
energy cannot be created nor destroyed, but simply changed to
something else. Economics dumbs this idea down to there's no such
thing as a free lunch.
Nothing is really free. Even that pen you borrowed and the owner told
you to keep it costs someone something. It took energy to come up
with the idea, make the pen, ship it, sell it, use it and the act of
giving it away.
So let's apply this to FOSS.
Here is a guy who reconditions old
hardware, loads Linux on it and deploys it to kids who need it. One
of the kids made copies of a Linux Live CD
(http://en.wikipedia.org/wiki/List_of_LiveDistros) and gave it to his
classmates. The teacher confiscated the CDs and wrote a nasty graham.
--- quote
"...observed one of my students
with a group of other children gathered around his laptop. Upon
looking at his computer, I saw he was giving a demonstration of some
sort. The student was showing the ability of the laptop and handing
out Linux disks. After confiscating the disks I called a confrence
with the student and that is how I came to discover you and your
organization. Mr. Starks, I am sure you strongly believe in what you
are doing but I cannot either support your efforts or allow them to
happen in my classroom. At this point, I am not sure what you are
doing is legal. No software is free and spreading that misconception
is harmful. These children look up to adults for guidance and
discipline. I will research this as time allows and I want to assure
you, if you are doing anything illegal, I will pursue charges as the
law allows. Mr. Starks, I along with many others tried Linux during
college and I assure you, the claims you make are grossly over-stated
and hinge on falsehoods. I admire your attempts in getting computers
in the hands of disadvantaged people but putting linux on these
machines is holding our kids back.
This is a world where Windows runs on
virtually every computer and putting on a carnival show for an
operating system is not helping these children at all. I am sure if
you contacted Microsoft, they would be more than happy to supply you
with copies of an older verison of Windows and that way, your
computers would actually be of service to those receiving them..."
Karen xxxxxxxxx
xxxxxxxxx Middle School
AISD
--- end quote
This both amused and angered me at the
same time. So much in fact that it became the main topic of my Linux
classes for that week. Yes, I'm one of those college instructor types
that teaches Linux, part time of course, but a teacher none the less.
So let's get this out of the way - no software is free as it took
energy to make it. It can be free as in the freedom to do with it
what you want. I can, as the creator of the software, give permission
- the freedom - to the user so they can use my software as needed.
They can even change my software to suit their needs.
Real world example, FollowMeIP. I wrote
this little server for a project I had at the time and it turned in
to something useful for some people. I've been hosting the site for
years now - for free. No catch, if you want to use it, use it. Does
it cost me money to run? Yes. Do I sit up at night worrying about how
I'm going to recover that lost money? No.
One could say the quality of software
isn't as good as commercial and I'd agree in FollowMeIP's case as it
took me all of a weekend to write and I haven't put much effort into
it since. It will be my test site for that magical day where I decide
it's time for Ruby on Rails goodness. Point is, I'm going down the
non-traditional road of - here, I wrote this, it was useful to me at
some point, maybe you'll like it too.
On the other hand, take a look at
OpenOffice. Here you have a fantastic open source project funded by
Sun. The quality of this package is the same if not better than
similar commercial packages. In fact, I'm using OpenOffice to write
this blog post. So what is Sun's angle? Why dump all the time and
money into a product that they could easily sell? Instead of worrying
about the answers to those questions, I focus on the fact that I have
the source code to OpenOffice and the freedom to do neat things with
it. If Sun fell off the planet tomorrow, I can still change or patch
OpenOffice myself or even form a company that does nothing but
OpenOffice support. In my day to day life, I really could care less
about Sun's long term strategy regarding its open source initiative.
As for Linux's ease of use. This is
completely relative. If you grew up on windows, all you know is
windows and you didn't even know there was an alternative - sure
anything else is not going to be "easy" for you. I've asked
my students many times - why haven't you even tried a mac? The
answers are mostly - well, it just never occurred to me that I
should. One even said he would feel like a traitor, which means on
some level he was emotionally attached to windows. Anything you don't
use or do on a daily bases is going to be hard on some level.
My buddy Gary got me a Professor's Cube for Christmas. While
I find it fun, it's not easy nor intuitive to me at all. I suppose
the natural response for the majority of people is to simply give up
as soon as they encounter the slightest difficulty. My reaction was
to watch many videos, read many articles and to go as far as setting
up a video chat with Gary so he could help me remotely. While I still
don't fully understand some of the algorithms I used nor feel like
it's "easy", I still enjoyed the challenge.
I remember the first time I saw Linux,
Ryan had it running reading his email in a text
based console. My curiosity got the best of me, at 20 I was already
sick of windows. Here I was pulling down major bucks for rebooting NT
servers everyday and it bored me to tears. Then I saw this new and
different operating system and I had access to the source code.
Computers became fun for me again, I was energized, I couldn't get
enough of this new and continuously changing frontier called Linux.
It was computing the way it was suppose to be and it didn't take long
at all for me to nuke windows and become a Linux only shop.
Since those days, Linux has gotten a
thousand fold easier to use and is very accessible to any level of
computer user. There's guis for everything, yum installers, even wifi
drivers for windows only cards. I can install it on one computer or a
million and the cost to me? Time.
No need to call India and beg for a new
activation key if I decided to upgrade my mainboard. Freedom is good.
In closing - Karen from xxxxxxxxx
Middle School - shut the fuck up.
Lunch with Jay
I broke from my normal routine of
running to Dairy Queen
and had lunch with Jay Brandrup who owns Kinetic
Communications. We walked down to John's and I had the two-handed cheese burger. I
highly recommend clicking on the tour link on Kinetic's site and see
how completely awesome their building is. I've never placed much
importance on the "look" of your workspace. I just want
something that functional ie: a desk that will not break when I
overload it and the most comfortable chair you can afford. However
after visiting Kinetic's building I started to question my minimalist
workspace attitude. How far can a home business go? What sort of
business have I lost by not having a traditional office space with a
server room that customers could tour?
It may sound funny, but some companies
build nice looking "network operation centers" just so they
can walk clients around. On just about every job interview I've been
on they take me on a tour of the server room. Have I become so jaded
over the years that the site of a rack of dells flashing, 67 degree
temperatures, and the constant hum of fans just doesn't impress me at
all? Does it still impress normal people? There's nothing "magical"
about it - they're servers.. But in the back of my mind I'm thinking
just maybe I'd have more customers if I setup such a room and walked
people around it. Ah, but what customers am I after?
ChickenWare was meant to be a game
studio. A virtual game studio at that. Why have all the overhead of
an office space when there are plenty of tools and high speed lines
available? The question has always been - how can I pay the bills
while I'm making games? Well, the byproduct of building server/client
games is having an infrastructure that's great for hosting. I have
the hardware, the network line, the backup generator, and the UPSes.
So I decided to attempt to pay for game making by selling hosting.
One hosting customer wanted to know if I could handle basic tech
support for their company. Sure, why not? They're good customers,
they pay their bills on time, why not expand my services? Next thing
I know I'm going to owner's house and doing basic tech support for
his family. In reality, I'm doing everything but making games. I
have no time nor the energy to code.
Enter Jay - I explained my situation
and here's what he had to say about it:
Learn to say no.
According to Jay, you only have 100,000
hours of work in your lifetime. 40 hours per week * 50 weeks a year *
50 years. Do not spend a single hour doing something you don't want
to be doing. You should also not do anything that is not your core
business. In other words, I need to stop doing everything and just
focus on game making even if it means losing money. I've always been
leery of putting all my eggs in one basket. My friend Ryan has always told me to find ways to generate streams
of income from multiple places. So I have the hosting thing, some
veterinarian patient education software, consulting, and I teach
college level Linux and programming part time. All of these keeping
me from actually writing games. I'm tired and my time management
isn't what it should be. Something has to give.
Kinetics is profitable because Jay does
nothing but web design. You don't go to a neurologist for a rash,
that doctor will refer you to a dermatologist. His company doesn't do
hosting, consulting, brochures, etc. - it does web design. Anything
else is outsourced to a company that specializes in that particular
area. Obviously I need to change my approach as my current one just
isn't working. As for the lunch itself - $30 bucks and an hour of
your time is the cheapest education you can buy.
The stackoverflow drinking game
Caution: You will die if you play this
game..
Minor background information:
Joel Spolsy and Jeff Atwood are great writers. They talk about
things programmers would be interested in - for instance screw the
desk, get a great chair.
But then they decided to do a podcast
about their new social networking site that will be this haven of
information on a .net stack. I'll quote my friend Ryan: "After hearing them talk, Joel needs to go back to writing and I
wouldn't hire Atwood to mow my lawn." After listening to 18
hours of them talk, I agree - take a drink.
The rules are simple:
When Jeff agrees with Joel - take a
drink..
well, you're already drunk by now.
When Jeff mentions having a "out
of band conversation" - take 2 drinks.
When Jeff says "Absolutely" -
take a drink.
When they both deny they're .net
programmers - just start chugging..
When Jeff talks about earning badges -
think about special mounts on Warcraft and take a drink.
When they say LAMP stacks are dog slow
- 3 drinks
When Joel claims macs are only luxury
items - 2 drinks
When Joel bashes open source - 3 drinks
When Jeff claims he's open source
friendly - fire off a nasty email, then drink
Every time they don't take a user call
- take a drink
By now, you should be dead. Either from
the alcohol poisoning and/or the aneurysm that ruptured from
listening to these guys. While I have no idea if their new site is
going to flop or become the greatest thing since sliced bread, I
would suggest they concentrate on coding and kill the podcast.
Trade Show
I'm at my first trade show.. Well, my first trade show geared for veterinarians and their technicians - TheSVCOnline.com . And well my first trade show where I'm a vendor. Usually I'm the guy walking around looking at all the neat-o things people are apparently making money on and thinking, hrm, I could do that. It's a bit different for doctors and such, they need to attend conferences to accumulate learning hours to maintain their license. Along the way to the speaker rooms, booths litter the walkway displaying the latest greatest crap they can buy. This year, my crap is among the wares available.
What is my crap you may ask, well it's not a new concept by far but it's one that isn't widely used in vet offices. Patient education - plain and simple. Doctors say the same things day in and day out all day every day. They also sketch out procedures on a whiteboard or paper. To me, everything is already handled by a computer or should be, if not - what rock have you been hiding under?
I live in the south east, things move slower around here, doctors of any kind move even slower than that. There are exceptions and they would be the young doctors coming right out of college wanting to use the newest things out there. When they get hired by a practice they are quickly promoted to the guy who now does nothing but express anal glands. They're so busy doing all the grunt work, they have no time to talk the older docs into buying new neat-o things. When they do, the old vets are very resistant to any change. Why should they? Their practice has been doing well for 300 years, why change anything?
My product is simple, you bring your dog in with a bum leg, doc says - oh his ACL is torn. Ummkay, what does that mean. Doc will then go into the same spill he's said hundreds of time. This spill adds up to hundreds of hours saying the same thing over and over. Hours translates to money and money wasted gets their attention. So instead of doing the spill, he just hits a button and the computer plays a video that tells the customer the same thing. Doc leaves the room to do something else. Sure, we're only talking 5 minutes, but 5 minutes every time adds up. Simple, easy to use, one or two clicks.
The current competition is DIA (dog interactive atlas or something like that). They take a different approach to patient education - overload them with useless information. It's interesting to see all the joints move in 3d and stuff, but really, how much information is Bob and Alice going to retain? Not much. Their system requires the docs to drive the presentation, or so it seemed, which keeps them in the room even longer.
What surprised me was how friendly most of the other vendors were - even to their competition. Across from me was Sal Longo who is part owner of Crosby Longo Architecture Studio (CrosbyLongo.com). What they do is create floor plans for vet offices and hospitals. That's it. Very nice guy, has been designing stuff for vets for 11 years and he told me all sorts of useful things about the trade show circuit. What I find interesting - a big enough market exists to support something that niche. His company does just fine if they only pick up one customer every other trade show they attend.
Beside me was some guy selling some sort of pills. You'd be amazed at all the things you can feed your animals. It's really no different than the vitamin supplement section in your local drug store. I don't know his name, but he didn't want to talk much. However on the other side was Casey Bishop, a salesman for Scil (scilvet.com). They sell all sorts of things like vital sign monitors and video cameras that go up your nose. Also a very nice guy, he shared with me the scared trade show list known only to those who keep up with such things. He said there is no one place on the web you can get all the information needed about all the trade show location, times, etc. He was also a fountain of information about vet trade shows in general.
The end result was very educational. I managed to give away 200 stress balls with PetsEd.com on it. I talked with a bunch of people and I think the result will be a better product in the future. Will it turn into something big and wonderful? Odds are no, I'm realistic about things, but at least I'm out there trying.
Insane Web Site Bids..
For Sale:
Car
I'm not sure how many doors you will need yet, I can show you
models that look sorta, kinda like what you would get, but you can't
sit inside. Also, the engine will be installed after you buy it based
on your needs.
$100,000 + $22,000 maintenance fee per year.
I've recently been tasked with the job of being a independent,
non-biased consultant to help decide which company gets to redo a
university's website. The range of bids I've reviewed range from
completely reasonable to completely insane. Let's back up a bit. How
does it all work?
This time they decided to hire me out to review what each company
had to offer. The list was thinned out to 3 bids.
One company bid $100,000 with a $22,000 never ending maintenance
fee. Just to talk to someone who could answer my questions took a
week. This particular company makes their money by taking over
university server rooms (ie: computer services). It's really amazing
what a company will outsource. So why not try to invade the web
design arena of universities also?
Yet another bid $120,000 but didn't handle any sort of back end
integration. They were offering what I call a brochure site - meaning
static pretty html that could easily be translated into a nice pretty
brochure. No back end scripting, just basic html. They also had no
idea how to integrate with google search nor had a demo site of, well
anything. The funny part is, this company specializes in doing
website for universities - that's it. Included in the bid is a page
of existing customers with example links - which are broke in firefox
under linux. They also informed me they do not test the site with
lynx, but are completely ADA compliant.
The third company offered everything, worked with google search,
used PHP, and it was a local company. They tested pages in Firefox
under linux and lynx. The best part, $36,00 bid. The problem is, this
was the company that originally created the site they are now unhappy
with. In my opinion there is nothing wrong with the current site
other than the fact it's reached the magical 3 year old mark. This
seems to be the time people become unhappy with any site and want a
change of any sort. These are the same people that need to paint
their rooms different colors now and then.
My recommendation was easily the third company - no question. Now
it's up to the university to pick.