Publishing Code with Git, Github, and Heroku

Here is the process I use to add new code:

Step 1: Create a new branch

git checkout -b extra-pages

Step 2: Write code

Start with Red or failing tests by adding in the tests.

Then go green by making the tests pass

Step 3: Add any new files to git

git add .

Step 4: Commit those changes with a note about what was done

git commit -m "Done with static pages"

Step 5: Then merge the changes back into the master branch by checking out the master and merging in the branch.

git checkout master
git merge extra-pages

Step 6: Test one more time

rspec spec/

Step 7: And push to the remote repository

$ git push

Step 8: Deploy

git push heroku
Posted in Ruby, Web | Tagged , , | Leave a comment

Ruby as an object-oriented language

Here is a blog post from a long time ago I never published…Seemed like a shame to leave it that way!

I’ve been slowly (emphasis on slowly) trying to learn Ruby so I can become proficient at Ruby on Rails rather than just following tutorials based on a blog post giving a roadmap for learning Ruby on Rails.

My goal is to learn it well enough to do some simple web applications in Ruby on Rails, but as I got started with Rails I quickly found I was over my head. So after much discouragement, I found this roadmap and I’m trying to accomplish it!

I had made some progress through the book Programming Ruby 1.9, but I got distracted with life, so I’ve kind of forgotten most of what I’ve learned which is very unfortunate. Use it or lose it for me!

So here’s what I’m reviewing today…

Ruby is an object-oriented language, so that means everything is basically an object!

So here is an example:

x = -238
y = x.abs

In this example, the variable x is being set to a negative number, and then the variable y is being set to absolute value of that number. Now in the book the purpose of this is to compare how this differs from what you might do in Java, such as:

x = -238
y = Math.abs(x)

The key difference is you’re able to treat the actual variable as the object and call the ABS function directly on it, rather than using a different object to affect the variable.

And hopefully as it’s 12:30 at night and my mind is starting to go a bit numb from sleepiness, this is accurate!

Posted in Ruby | Tagged | Leave a comment

A Framework for Managing Your Web Presence

I’m giving a talk tomorrow for at the CCCU conference, and here are the reference materials I’ll be using to show what we’ve implemented at Moody to help manage our web presence.

Resources

  • Content Inventory Matrix (Excel 2007 format)
  • Project Portfolio (Excel 2007 format)
  • Social Media Policy, Guidelines, and Best Practices (PDF)
  • Web Format Standards and Guidelines (PDF)
  • Web Scoring Matrix For Ranking Projects (Excel 2007 format)
  • Presentation and Evaluation of Major Types of Website Analytic (PDF)

Download zip file containing these resources.

Books


And finally here are a few books I’ve found invaluable in the process of managing our website:

Posted in business, Content Inventory Matrix, Content Strategy, Web | Tagged , , , | Leave a comment

Disruptive Improvements vs Iterative Improvements

Do we focus on innovation that’s new and disruptive? Barbwire was disruptive to the ranching and farming industries of the US when invented. Moving from a rotary dial phone to a touch tone phone was iterative.

Clayton Christensen in the article, “Key Concepts – Disruptive Innovation” states: [emphasis his]

Because companies tend to innovate faster than their customers’ lives change, most organizations eventually end up producing products or services that are too good, too expensive, and too inconvenient for many customers.  By only pursuing “sustaining innovations” that perpetuate what has historically helped them succeed, companies unwittingly open the door to “disruptive innovations”.

I’m not an expert on Iterative Improvements as used in Lean and Agile Development, but as I’ve read in the book The Four Steps to the Epiphany, the problem with the sustaining innovations he’s describing is that they aren’t being developed in a customer-centric manner.

If we only develop or add features in response to customer “pain” and real needs and avoid the feature bloat that lean/agile companies aspire too, then we should never experience the effect of “producing products or services that are too good, too expensive, and too inconvenient for many customers”.

In an agile/lean context as I understand it you would implement just what you had to. What would you do with your “extra” time (compared to your competitors who keep improving even when the customers don’t want it? You can start working on another disruptive product, based on the customer development model described by Steven Blank in his book I linked to above.

Don’t worry though, your disruptive innovation will be treated like a toy at first if it’s good.

Posted in Agile, business, Customer Development, Lean | Tagged | Leave a comment

Before adding new features

From 37Signals

For every new feature you need to…

1. Say no.
2. Force the feature to prove its value.
3. If “no” again, end here. If “yes,” continue…
4. Sketch the screen(s)/ui.
5. Design the screen(s)/ui.
6. Code it.
7-15. Test, tweak, test, tweak, test, tweak, test, tweak…
16. Check to see if help text needs to be modified.
17. Update the product tour (if necessary).
18. Update the marketing copy (if necessary).
19. Update the terms of service (if necessary).
20. Check to see if any promises were broken.
21. Check to see if pricing structure is affected.
22. Launch.
23. Hold breath.

http://gettingreal.37signals.com/ch05_Hidden_Costs.php

Posted in business, Freelancing | Leave a comment

Google Website Optimizer

Right now I’m testing Google Website Optimizer on my main site, www.dqsupport.com. I’m testing one of the heading’s impact on conversion rates. I don’t have any indication yet of what the results will be, but I’m looking forward to being able to have some actionable idea of what works best!

Posted in business | Tagged , , , | Leave a comment

SEO work

I’m still working on ciacademy.org. While it went live this summer, I still haven’t gotten everything done on it that I’d like to do.  It is a wordpress blog/site which I’ve slightly modified an existing theme to fit the needs of the school.

What I’ve been working on since the site went live is working on improving the site’s load time as well as improving the site’s ranking in google for a few key search terms. (ex. try searching for “logan square preschool”).
I’ve had good success so far, and I’m working through a few more items to help continuing the improvements. I’d like to add some more content about the individual areas of the school (high school, middle school, elementary school, and preschool) to help with rankings in those areas.

Posted in business, Freelancing | Tagged , , , , , , | Leave a comment

Business Cards

Source: Flickr | Author: kvanhorn

Designing a business card is both a lot of fun and a lot of work. If you’re a young freelancer like myself, it’s the kind of like your identity. Fortunately there are many resources out there for inspiration, and ideas, so here are just a few examples:

  1. 50 Creative Business Cards of 50 Graphics Designers – http://www.thedesigncubicle.com/2009/04/50-creative-business-cards-of-50-graphic-designers/
  2. 400+ Creative Business Card Designs – http://logodesignerblog.com/creative-business-cards-design-inspiration/
  3. 36 Cool Business Cards You Should’ve Seen – http://dzineblog.com/2008/05/36-cool-business-cards-you-should%E2%80%99ve-seen.html
  4. 70 New Amazing Business Cards – http://blogof.francescomugnai.com/2008/05/70-new-amazing-business-sards/

And one of the most highly recommended unique printing companies is Moo.

They offer unique printing and reasonable pricing. Check them out at their site: http://www.moo.com/en/

Good luck with your business card design!

Posted in business, Freelancing | Tagged , , , , , | Leave a comment