30
May
2013

A new Team Member! – Now send us another!

First, we want to give our hearty Avenue 80 welcome to Tida Rask, a new employee here at Avenue 80.  Dave and Tida go way back to a little company called AnnuityNet.  We went our separate ways over the years, then were reunited last year when Tida came to work for us as a contractor.  John and I can’t be more thrilled that she’s now a full time part of our team! Second, we need another contractor!  We’ve just posted a new position on our Jobs page for a Web Application Contractor.  This would be an hourly contractor position, but […]

14
Nov
2012

Avenue 80 is hiring: Contract Rails developer

Help-Wanted

Avenue 80 is looking for another contract Rails developer.  Find out more about how we work and the position here.

Tiny Tip: Change Schema on all SQL tables

db

This tip saved my life today.  I have a database at a hosting provider that needed to have the schema changed on all of the tables I imported into it.  I googled and found this line: Simple and clean! Credit: Ruslan Trifonov

06
Jun
2012

Tiny Tip: 32bit ODBC Drivers on a 64bit Windows

db

Blogging this one because I tripped across it today and I really want to log it for posterity. So here goes. We have a client who is setting up a new server architecture and we are moving an existing system to it. The old architecture is 32bit through and through, and our software is compiled for 32bit. The new architecture is 64bit, but will be running the exact same version of our software there. We have to talk to a third party database that has its own ODBC drivers, both in 32bit and 64bit. Being a 64bit system, we installed […]

Daily Ritual – Practical Task Management

Ampad

Last week, I talked about Asana, the tool we use for daily task management here at Avenue80. This week I wanted to talk about how I “Get Things Done.” I’ve read David Allen’s books about GtD but I don’t consider myself a “GtD’er”. I just know that I’m so dang busy between work, house, wife and three kids, that I cannot possibly keep it all in my head. So, years ago I forced myself to get really good at writing down everything.  Every task I was given, every random thought about “I need to go look this up”, sometimes even […]

Tools We Use: Asana

asanalogo

Asana – Cloud based task management www.asana.com Price: Free, though they have paid plans for higher usage and feature levels We’re starting a new feature on our Ave80 blog called “Tools We Use”, which will talk about tools that we use nearly every day in our company. Hopefully this will help others out there trying to manage their “virtual” companies day to day. Because we are a “virtual” company with no shared office space (in fact, all of us are several hundred miles apart) we face unique challenges with managing ourselves and our information. One challenge is managing our To […]

On Agile and Elephants

Blind_monks_examining_an_elephant

I’ve been giving this speech a lot lately, so I decided to try to codify it a bit better in this blog entry. Not that I would ever just point a client to a blog post of course… One point I try to get across to new and prospective clients is that “software is not a building.” I think by using the term “architecture” in our practice we are doing a disservice to lay people trying to understand what we do. When a typical person thinks “architecture” they think blueprints and t-squares, exact measurements and set in stone plans built […]

Below the Fold

newspaper-box-signage

I’ve been struggling with whether to write this for some time. By no means am I the authority on web usability and design, but I certainly have some strong opinions. Also, I keep getting asked about this topic and simply want to have a nice, convenient link as a way of answering. Finally, it’s because I simply cannot stand doing something just because “that’s the way it is done”. Whenever I hear that phrase, my internal alarms start wailing. …the “fold” was a psychological, economic, and ultimately physical barrier that needed to be overcome by a dramatic headline. For those […]

Tiny Tip: Installing Windows Services with SC.EXE

Service-300x300

Developing Windows Services can be a fun and rewarding exercise….bah, who am I kidding? They’re very useful pieces of code, but are sometimes tricky to debug and slightly-less-than enjoyable to install and configure. In this Tiny Tip I’m not going to cover how to create a Windows Service project in Visual Studio; there are plenty of online resources that can help you with that. What I’m going to demonstrate is how to install and configure a service, as well as install a duplicate instance of the same service so you can run side-by-side tests with different configuration files. This is […]

Avenue:80 is now hiring

Help-Wanted

Avenue:80 is now cautiously dipping its toe into hiring one or two sub-contractors to help us out with work we have available.  We are looking for one, or possibly two, Junior Developer types, and a Business Development person who can help us grow.  You can find more about these jobs here. We’re a different sort of company, so we are going to bring on new talent in a different sort of way.  Being a virtual company, we’re not looking to just staff up a bunch of developers to meet the demand of billable work.  We’re looking for those who can […]

Milestones

milestone

My oldest son turned 13 this past weekend, which is a major milestone for him. But it’s also a pretty big milestone for both John and I: we were both finishing up a very large project for the company we worked for at the time when I got the call that my son was on his way. The company was USWeb, the project was the first e-commerce site for Dick’s Sporting Goods, a major retail chain that was making the first steps to move their bricks and mortar store online. The nice thing about milestones is that they provide a […]

25
Jan
2012

Quick Link: Rails or Sinatra The Best of Both Worlds

link

I’m going to start adding more links to our stream, as I read interesting content, and some with very little commentary. I just read this article which is a fascinating collection of quotes / interviews about the positives and negatives of Rails vs. Sinatra, another Ruby based framework.  To be honest, I had only heard passing information about Sinatra, but the article has piqued my interest and I’ve added it onto my “must go check out” pile. But I think the quotes from DHH in the article speak volumes about Rails.  Here was my comment on the article: It strikes […]

Recommitting to BDD

cucumber

John and I were having a good conversation yesterday about my overall thoughts of BDD, TDD, unit testing, and so on.  Overall, I still think they are a “good thing” though there are some days when I seem to spending a lot more time on fixing weird timing issues in Cucumber tests than actually moving forward on functionality.  This is the most annoying thing about BDD to me: the browser interface is not perfect, especially when you have asynchronous AJAX heavy pages. Part of this is being alleviated by me finding the better headless web driver capybara-webkit. It’s not perfect, but it seems […]

Transactional logging outside of transactions

I’ve constructed a central logging system for a solution that involves routing and processing messages on multiple private queues (MSMQ) using WCF. Within a contract method of a WCF service, I do some logging. Here’s some abbreviated code to illustrate: The ReceiveMessage is fired whenever a new message gets placed onto the queue that my service is monitoring. None of this is earth shattering. So, the full chain of events is… Transaction Start Receive Message Log the Message Process the Message Log Completion Transaction End The Problem The Logger itself writes to a transactional queue, so when an exception is […]

13
Jan
2012

Punishment Followup

dunce

I wanted to post a brief follow-up to my “Don’t Punish Your Customer” blog from before Christmas. It’s been 27 days since I reported the hacking of my Xbox Live account and it’s still not resolved. They did contact me but all that accomplished was give me two new tips to add: Don’t give false hope - If you are going to contact your customer and tell them everything’s fine, then be damn sure to keep your commitment.  A representative from Microsoft called me, early last week and, thinking that all was finally fixed, I was elated to hear the guy […]

Sublime Text 2 really is sublime

sublime2

There have been a number of threads on the LinkedIn Ruby On Rails boards lately about “Which IDE is the best for Rails?” These threads go back months, as everyone and their sister chimes in with their current toolset. Its a credit to the group for the lack of IDE wars in the message threads because for many programmers, their toolset and work style is almost a religion. In the past year I’ve gone from TextMate to VIM for my Rails (and other) editing needs. As someone who bounces between operating systems a dozen times a day (OSX and Windows […]

Don’t punish your customer

spanking

My Story After a long night of working hard on a client project, I got up late this morning and decided I wanted to unwind a bit with some gratuitous XBox violence.  I was shocked to see, once again, that I was missing a ton of gamer points.  (The Microsoft currency, used to buy games and content.)  After searching through the XBox to see if my kids had bought anything, I realized that something was wrong. This isn’t the first time this has happened.  Back in May of this year, I woke to find $99 worth of gamer points purchased on […]

13
Dec
2011

Tiny Tip: Ensuring your MSMQ destination queue exists

Return_to_sender1

There’s nothing like sending a message only to realize after-the-fact that the destination doesn’t exist. That’s just as true for the real world as it is for message queues. So, before I put any message on any queue, I make sure to call my static utility method EnsureQueueExists(string name) and I can rest easily. Here’s what it does: This is super handy if you’re deploying a solution to a new server. As long as MSMQ is up and running, your queues will all be created on demand. You could even take this one step further by creating a base class […]

10
Dec
2011

Deserialize WCF MSMQ messages using System.Messaging

People queuing for the cinema

If you’ve ever done any traditional work with message queues, it can be a bit of a chore dealing with the plumbing code. That is to say, spinning up a message pump to transactionally read and process messages through some cobbled polling mechanism is tiresome and well…not very SOA-ish. Don’t get me wrong. It works. But, the same way ADO worked to read RecordSets on a Classic ASP page – ick. Which is why it has been a revelation for me when I started using WCF with MSMQ. This makes the queue plumbing somewhat transparent, letting your code act like […]

02
Dec
2011

Rake db:migrate and Factory Girl weirdness

ruby

Today in my rails project, I needed to blow away my dev database and recreate it from scratch. Usually this isn’t a problem but all of the sudden I was getting this weird error message: …service_codes being one of my tables. What struck me funny was that this was absolutely true – of course the table was missing – I just blew it away! It took running a “rake db:migrate –trace” to find the exact offending line. Buried in the stack trace was a line that pointed to one of my Factory Girl test factories, that looks like so: For […]