Categories
Uncategorized

HollywoodSEOGuru.com: 0 stars

The doctors office I go to has a website, as you would expect.  I went there today to get a phone number, and when I went to their home page, I saw a rather humorous message.

If I were going to choose a website design/hosting company, it would not be one that tried to bully me, or embarrass me into paying them.  If I owe the company money, I prefer they contact me for payment through normal channels.  If I don’t pay, then simply take my website down.

I truly feel the hollywoodseoguru.com should not be used based solely on this disgusting practice.  Shame on them.  I would rate negative stars if I could, so 0 stars, do not use this company for services.

Don't use this company

Categories
Uncategorized

Moving On – About My New Gig

After 7 years full time at bowlingball.com, I have decided to make a change.  This decision did not come easy, and I want to thank Keith Spear and the team at bowlingball.com for everything I have learned during my time there.  I am a different person today (in a positive way) because of them.

My decision was based around the fact that my wife and I want to move out of state when we sell our house.  I knew that when we moved that I would want to find a job doing remote development.  I started thinking that if I made the change now, there would be many positive things because of it.  One, I would have a job already in place during my move, this itself would lower my stress levels of worrying about that and a move at the same time.  Two, by taking a remote job while waiting to sell my house, it leaves me closer to bowlingball.com to help with the transition.  I in no way want to desert them and make it any harder on them.  I know that they would survive, but I want to make that easier on them.

So, where is my new gig?  I start on Monday, May 7, 2012 (the day after my wedding anniversary) working for Networx Online doing PHP development from my home.  They have a fantastic business model that allows workers the flexibility to work on their terms.  They request that I am available during normal business hours, but it’s not a hard and fast rule.  I am really excited about getting started and have already completed my first task (changing my password on the development server).

I really want to thank Keith Spear for being so completely understanding.  He showed me the upmost respect when he heard the news.  While he may not have been happy about it, he was happy for me.   He seems to support people that make a move to better themselves and lives by the saying:

“To change one’s life; Start immediately. Do it flamboyantly. No exceptions.”
William James

Quitting gracefully is an important trait in my opinion.  Some people decide to take “Start immediately” a little to heart.  You should remember that when you are quitting, you probably had some really good times, were hopefully treated well, and there is a relationship that should be considered.  Make your change, but be respectful and don’t burn bridges.  Treat others as you would want to be treated.
Categories
Uncategorized

Configuring AMTU 2.1 From The Command Line

I received an email about upgrading AMTU today from Amazon.  I tried following their directions for command line installation which were VERY lacking.

The XML file is a pain in butt.  I am still not sure if the account name I chose is correct, or even matters.  The Access Key, Secret Key, Merchant ID are all available in seller central with some digging around.

The Account Configuration took me a couple of minutes to figure out.  Helps to jump to the bottom of their sample.xml file to understand more.

The Marketplace ID is also located at the bottom of the file.  Hint, for the U.S., it is ATVPDKIKX0DER.

The real pain was actually running the configure command.

#sudo ./configure SETUP config.xml
Database instance started successfully with driverorg.apache.derby.jdbc.EmbeddedDriver
Welcome to Amazon Merchant Transport Utility version 2.1.8 Configuration Utility!
Error: file does not exist.
Request completed with errors.

That “Error: file does not exist.” was driving me crazy. Turns out, I just need the entire path to the file, not relative.
#sudo ./configure SETUP /ABSOLUTE/PATH/TO/config.xml

Categories
Uncategorized

13″ Macbook Air vs 17″ Macbook Pro

I have been using a 17″ Macbook Pro since 2007, and a 15″ Macbook Pro before that.

My video card went bad 5 months after the NVIDIA would be willing to replace it for free.  Frustrating, to say the least.  So I had to make a decision to purchase a new machine, or pay to fix that one.

Here were my factors in purchasing the 13″ Macbook Air.

I have been noticing how much I don’t use the Macbook Pro in conferences, airplanes, meetup groups, etc…  I have also noticed the weight as I have carried it through airports and also to and from work.  The size and weight of the machine was a deterent to using it at times.  I also have known many developers in my circle that use a Macbook Air all the time happily.

I have been using the Macbook Air for a few weeks and I am very happy with my decision. The screen size has not caused any issue like most people would think.  The resolution is great and has been very usable.

The Macbook Air does not have a CD/DVD drive, but I have not needed it so far.  I am sure I will cross that bridge one day.

My wife and I did end up fixing the 17″ Macbook Pro for her to use.  She is happy with the machine so far, as she has needed a new laptop, and only uses it at home.  So portability is not much of an issue for her.

Categories
Uncategorized

How to Move From Development to Production in PHP

I remember a couple of years ago I spent many hours searching for how to move from development to production. I was so confused. I am an experienced developer, but I have always done it wrong. I knew I was wrong, but I didn’t care at the time (shame on me).

Let me clarify, I did care. I wanted so desperately to do have a development environment and to stop making stupid mistakes in production, I just didn’t have the know how. Everything I read seemed to talk over my head, and I just didn’t understand. It seemed like I needed to know what I didn’t know to do what I wanted to do that I didn’t know how to do.

So what have I learned? It’s more about workflow and processes than a single answer. More like, find a workflow and stick to it. In the end, the chosen workflow only matters if you use it and stick to it.

Because I am currently the only developer, I use a simple workflow that works for me. I am committing all day and when I have something that works, I want it in production as quickly as possible.

My Workflow:

  1. My development and production files are on the same machine.  I do this because I was used to working in production anyway, and I know that the environment is the exact same (Apache, mysql, memcache, all my tools)
  2. I use GIT for version control.  (This was a huge stumbling block for me, I had started/stopped version control SOOO many times over the past years.  It was hard for me to see the value as a sole developer with no “releases” to speak of.)
  3. I have a continuous integration server (phpUnderControl).
  4. I follow the Git-Flow model (very loosely)
    1. For daily work/small changes, I work directly on the develop branch. (THIS IS NOT A BEST PRACTICE)
    2. For extended large changes, I use feature branches (ALL WORK SHOULD PROBABLY BE DONE THIS WAY)
    3. When I am ready for something to go into production I have a “bumpVersion.php” script that automates most of it.

One of the biggest problems I had before this workflow was constantly saving a file and assuming everything worked.  Sometimes I had syntax errors that I didn’t catch right away.  With git hooks, I have it setup where I can not commit a file into the repo unless it passes php linting.  This is run with php -l filename, which just checks the file for syntax errors.   This has saved me many times since having this workflow.

My bumpVersion.php script:

This is a simple script that allows my git tags to be numerical (sequentially) and for my tags to be named in a consistent manner.  It will also handle some other tasks if necessary, such as compiling/minifying javascript and CSS.  This actually does quite a bit, by putting these assets into RackSpace CloudFiles and waiting to make sure they are available before continuing with the build.  This prevents any changes from going into production until all the assets are available.  In the end, it uses git flow release start/finish to create a release tag, this merges everything into the master branch.  The script then pushes the master branch into a bare repo.

phpUnderControl:

phpUnderControl is constantly monitoring the bare repo for changes.  As soon as it detects some, it does a git pull, runs the unit tests, if successful it then publishes the build.  This really entails a simple call to another script that does a git pull from the bare repo into production.  (THIS MAY NOT BE A BEST PRACTICE).

Conclusion:

Don’t be afraid when coming up with a workflow.

Categories
Uncategorized

Trello – Project Collaboration and Management

I must say, I just learned about Trello and I really love it.  While it is great for teams, I have also found it very useful for individual organization as well.

Trello is like having virtual boards with post it notes.  The idea of the “post it” notes allows you to easily move them around to prioritize events.  You have different boards for different states.

As a personal organizational tool, if you know and understand the 80/20/FTF principal, you can have one board for 80’s, one for 20’s, one for FTF’s and one for completed tasks.  This will allow you to easily add a task and then you can move them between your lists as you see fit.  And you can have a list of completed tasks for historical purposes.

As a collaboration tool, you can easily assign different people to tasks.

It’s just a fantastic tool to use.

 

Categories
Uncategorized

Slim PHP Route Does Not Appear To Be Working, Always Chooses / Route

Most people probably run Slim PHP the way it was intended.

By adding a .htaccess file into your directory and letting it do it’s magic thing. However, I have complete access to our server, and choose not to allow .htaccess files. I instead put all of my apache mod_rewrite statements into my apache config files.

However, I just found out that if you are running your Rewrite’s through your <VirtualHost> tags, then one of your server variables may be incorrect. I am not sure if this is Apache’s fault, or PHP’s. However, a simple fix is just set it yourself.

At the top of your PHP file, put the following.

$_SERVER[‘SCRIPT_NAME’] = ‘/RELATIVE_PATH_TO_YOUR_SLIM_APP_FILE.php’;

most people would probably use the following.

$_SERVER[‘SCRIPT_NAME’] = ‘/index.php’;

Categories
Uncategorized

Bowling Tips

Did you know that bowlingball.com offers the most bowling tips of any website out there?  bowlingball.com prides themselves on being bowlers first, and business people second.  The competition has bragged about not being bowlers and only being marketers.

That’s why bowlingball.com has gone out of their way to hire an experienced bowler, Rich Carrubba, to write the best bowling tips available.  Sure others will copy, but we know that we are generating the content for our community first.  Be sure to check out all of the great bowling tips over at bowlingball.com.

We feel that a strong community is what is needed to improve the bowling industry.  Please read the articles and join in the discussion in our intense debate comments that are available on every article. 

Categories
Uncategorized

Automation Sucks

Automation is a double edged sword that often slices the wrong way. 

The negative impact of not thinking everything through can be devastating.  You intend to do one thing, and something else happens.  I often get blamed for doing something automatically, which in the end the blame does fall on me.  I often do these automated tasks to make the lives of my co-workers easier. 

* Note to self: don’t do it.  It’s not worth it.  The risk is too high.

Categories
Uncategorized

My Poker Night Rules

On poker nights at my house, we play Texas Hold-em tournament style. 

Each tournament lasts for 1 1/2 hours, and each round is 15 minutes.  And we usually play 4-5 tournaments, as long as people want to stay and play.

The buy in is $20, and you get 2,500 chips to start. 
You can buy back in for the first 45 minutes.  So if you are eliminated in the first 3 rounds, you can buy back in for $10 and get 1,500 chips. 
At the 45 minute mark, there is a chance to add on chips. 
     If you have less than 1500 chips, you can buy 3,000 chips for $20. 
     If you have less than 3000 chips, you can buy 1,500 chips for $10.

We then continue to play for the final 45 minutes.  No re-buys at this point.  And we play for position.  We will announce the number of positions paid and the payout during the break.

Round/Blind structure (15 minute rounds)

Round 1: 50/100
Round 2: 100/200
Round 3: 200/400
Break (Add-ons done at this time)
Round 4: 300/600
Round 5: 400/800
Round 6: 500/1000
Winners paid out.

There are some side games that are optional.  These will be discussed before starting.