Recent Posts

Portland is calling... (you)

April 11, 2008

We’re not looking for rock stars or ninjas at Planet Argon. ;-)

We’re looking for individuals that share our core values.

  • COLLABORATION - We believe that an open dialogue between all
members of a group helps to produce more reasoned and intelligent
decisions.
```yaml
-   **ENTHUSIASM** - We recognize the unique power of people who are
```text
passionate about their craft. We believe that fun is an essential
ingredient in a collaborative and vibrant company culture. We think
happy people make better software.
```yaml
-   **COMMUNITY** - We are part of many communities. Our neighborhoods,
```text
our cities, our workplace, and our professional communities. We give
back to our communities by implementing socially responsible
business practices and sharing our knowledge and tools with our
peers.
```yaml
-   **VERSATILITY** - We believe that it is important for our team to be
```text
open and flexible, as well as the work that we do. This allows us to
adapt to change and encourage innovation.
```yaml
-   **EXECUTION** - We value action and when people make things happen.
```text
It is important that we follow through on our commitments, plans,
and ideas.

..maybe you’re a .NET/Java/PHP/Python developer (who secretly plays with Ruby on Rails at night/weekends). We’re looking for an intermediate-level Rails developer to join our team. Ideal candidates would be in the Portland, Oregon area or willing to relocate.

PLANET
ARGON{width=”500” height=”333”}

If you’re interested, take a moment and introduce yourself.

git-svn is a gateway drug

April 10, 2008

As we’re migrating away from Subversion to Git, I’m having to learn a lot about git-svn. Andy has posted a few articles on this topic, but I wanted to share a quick tip that I find myself forgetting.

Working with Subversion branches

While you’re hopefully already familiar with how great local branches are with Git, you might not know that you can connect local branches to remote branches in your Subversion repository. This allows those of us who are using Git locally to work against Subversion branches.

I’m going to assume the following:

  • Your team is using Subversion
  • Your team already has a branch that you’re working in
  • Your team is following Subversion directory conventions
(`branches/`, `tags/`, and `trunk/`)
```ruby
-   You have Git installed (*with SVN extensions*)

### Checkout the Subversion project with Git

Please visit Andy's tutorial, [Git SVN
Workflow](http://andy.delcambre.com/2008/3/4/git-svn-workflow), for a
more detailed explanation of the following commands.

First, we'll initialize your new local Git repository with `git-svn`.
```text
```ruby
git svn init -s http://svn.yourdomain.com/repos/project_name
Now, you'll change directories to your new Git repository.
```bash
```bash
cd project_name
Let's fetch all previous revisions into your local
repository[^1^](#fn1){#fnref1 .footnote-ref role="doc-noteref"}.
```text
```text
git svn fetch
Great, once this is done... you're **master** (local) branch is linked
to `trunk/`.

### Mapping a local repository to a remote branch

Assuming that your team is working in a Subversion branch on the current
iteration of work. Our team has a naming convention for branches for
each iteration. For example, if we're in Iteration 18, we'll write this
as ITER-018 everywhere (Basecamp, Lighthouse, Subversion, etc...). At
the start of each iteration, we create a new branch with this naming
convention.

For `ITER-018`, the Subversion branch would be located at:

-   http://svn.yourdomain.com/repos/project_name/branches/ITER-018

If you were to do a `git branch -r`, you should see `ITER-018` show up
in the list. Now, the one thing that wasn't clear when I first read the
`git-svn` documentation was that you can't just checkout that branch
with one command. In fact, this has tripped me up a few times.

First, you'll need to checkout a new *local* branch. I've opted to come
up with my own convention for *local branches* and in this case, I'll
name it `iter_018`.
```text
```text
git co -b iter_018
So, now I'm in the iter_018 branch, which is local. I'm currently still
mapped to `trunk/`, which isn't what we want. However, all we need to do
is reset where Git is currently pointed to. We can run [git
reset](http://andy.delcambre.com/2008/3/12/git-reset-in-depth) to point
this to the ITER-018 branch.
```text
```text
git reset --hard ITER-018
That's it! Now, the local `iter_018` branch will point to
`branches/ITER-018` in your Subversion repository. This will allow you
to work with your existing repository branch and still reap the benefits
of local Git repositories.

### What about master?

Good question. The `git reset` command that you ran will ONLY apply that
that individual local branch. So, master is *still* pointing to
`trunk/`. This will allow you to have several local branches that map to
remote branches.

## Next Steps...

If you're working with Git already.. great!

If you're working in an environment that using Subversion, `git svn`
provides you the ability to start exploring Git without making your
entire team switchover. Perhaps your a consultant and working for a
client that uses Subversion... no problem!

We're still using Subversion for past client projects and are
considering [GitHub](http://github.com), which [just launched (to the
public) today](http://github.com/blog/40-we-launched) for future
projects. A few of us are already using GitHub for open source projects.

Fun.. I just saw the following tweet pass by as I began to wrap up this
post.

::: thumbnail
[![rails on
github](http://img.skitch.com/20080411-rgageidq82ak6ij952ppant4u9.preview.jpg)](http://skitch.com/robbyrussell/jeh1/rails-on-github)\
[Uploaded with [plasq](http://plasq.com/)'s
[Skitch](http://skitch.com)!]{style="font-family: Lucida Grande, Trebuchet, sans-serif, Helvetica, Arial; font-size: 10px; color: #808080"}
:::

[Check out Rails on GitHub!](http://github.com/rails/)

### The Gateway Drug... Git reminds me of Cake

### Questions?

I know that I glossed over a few things, so feel free to post questions
and/or tips for others who are looking to dabble with Git.

------------------------------------------------------------------------

1.  ::: {#fn1}
```yaml
You'll likely have problems if you don't have a Git authors file
specified in your git config.[↩︎](#fnref1){.footnote-back
role="doc-backlink"}
:::

1Password and Fluid.app

April 04, 2008

I’ve been really happy with my purchase of 1Password so far. If you’re not familiar with it, I would really recommend their free-trial. I’ve been really impressed with how quickly it became reliant upon it. 1Password works across several browsers, imports existing passwords, and even has integration with your iPhone. However, over the past month, I’ve been wishing that it worked with my Fluid applications.

1Password 2.6.BETA-2 was released a few days ago one of the features added was integration with Fluid applications.

::: thumbnail Fluid and
1password

[Signing into Lighthouse with 1Password]{.small} :::

I’m glad to see that Agile Web Solutions was so quick to respond to the flurry of people requesting this.

  • [Campfire messages in
Growl](http://www.robbyonrails.com/articles/2008/03/05/campfire-messages-in-growl)

iPhone's Missing Feature

April 03, 2008

I love my iPhone. There… I said it.

There is one problem with it (and I don’t blame Apple for it). Multimedia Messaging is pretty much non-existent with non-iPhone friends & family. My family continues to send me pictures/videos via text message… because they can with their other friends and family. I find myself looking at the following message quite often.

::: thumbnail IMG_5279.jpg
[Uploaded with plasq’s Skitch!]{style=”font-family: Lucida Grande, Trebuchet, sans-serif, Helvetica, Arial; font-size: 10px; color: #808080”} :::

Then I go to AT&T’s AMAZING site…

::: thumbnail viewmymessage is
shit
[Uploaded with plasq’s Skitch!]{style=”font-family: Lucida Grande, Trebuchet, sans-serif, Helvetica, Arial; font-size: 10px; color: #808080”} :::

…and I get a broken image.

Great work AT&T! Apple… this is tainting my experience with the iPhone. Make them fix it!

I am forking Rails

April 02, 2008

…well, creating a fork on GitHub. ;-)

::: thumbnail fork
rails
[Uploaded with plasq’s Skitch!]{style=”font-family: Lucida Grande, Trebuchet, sans-serif, Helvetica, Arial; font-size: 10px; color: #808080”} :::

It appears that Rails is moving from Subversion to Git!

Courtenay posted this a little while ago.

Tip: Link to Unimplemented

March 27, 2008

Throughout our design and development process, we’re working around areas of the site that are not yet implemented but we also want to be able to allow our clients to demo their application. In an effort to manage their expectations, we need to be careful about what we link to. If a page/widget isn’t ready to be demo’d yet, we should avoid providing pathways to get interact with or navigate there. However, when we’re implementing HTML/CSS for pages, it’s sometimes makes sense to not hide certain things on the screen.

For example, let’s suppose that you’re working on the primary navigation of an application. You know what the other sections are going to be, but you’ve only implemented a few of them so far. Your HTML/CSS person is working on the design for the navigation and wants to have them be proper links… even to pages that don’t yet exist.

One option, which is quite common, is to provide a link with href="#". This works to some extent, but when people click on things, they naturally expect something to happen in response.

This approach doesn’t mesh well with our team as we don’t really want to field any questions like, “the navigation links are all broken. Nothing happens!”

So, a pattern that we’ve been using for a while is to trigger a javascript alert for every link within an implemented area that is linking to something that isn’t yet implemented.

Let’s take a really basic javascript function like:

Managing SEO-friendly HTML Titles with Rails

March 26, 2008

I’ve seen this come up a few times in the #rubyonrails IRC channel and figured that I’d post a quick entry for future reference.

Problem: HTML titles

You want to have a clean way to manage the titles on your HTML pages.

Managing Required Gems on Rails Projects

March 26, 2008

We’re starting a new project and I’m finding myself adding things to the code base that we’ve done in the past… hence the last few posts. As we’re doing this, I’d like to highlight some of the little things that we do on each project to maintain some consistency and in that process reach out to the community for alternative approaches.

I’m intrigued by the vendor everything concept, but we haven’t yet adopted this on any of our projects (yet).

What we have been doing is to maintain a REQUIRED_GEMS file in the root directory of our Rails application.

For example:

Things (in the Rails world) You Don't Yet Understand

March 25, 2008

This is inspired by a recent post by Seth Godin titled, Things you don’t understand, where he shared a list of things that he probably could understand if he put your mind to it, but doesn’t. I decided to post a list of five (5) things in response within the context of Ruby/Rails.

I’m really interested in various things but am really unable to prioritize them high enough to spend the time to understand them.

  • RSpec User Stories
  • Using Selenium with RSpec
  • JQuery
([Graeme](http://blog.imperialdune.com/) speaks highly of it)
  • JSSpec (BDD for Javascript)
  • Using the Google Charts API with Rails

What about you? What’s your list of things that you’d like to understand more about?

DRY(a): Year After Year

March 24, 2008

I’m guilty of it. Many of you are likely guilty of it… and I know that several customers of our Rails Code Audit and Review service are guilty of it.

How many times have you realized (after a few months has passed) that your Copyright date/year on your web site was no longer current?

How many of you had the same problem last year? The year before?

Let me share some advice with you all… DRY (a)!

Don’t Repeat Yourself (again)!

This is really a simple problem to fix but when we’re busy tackling bigger problems… little things like this slip by. Don’t worry, you’re not the only one who was reminded by a colleague three months into the year that you forgot to update this.

On client projects, we have a handful of helpers that we drop into the application. We’re starting to extract more of these into plugins and will be releasing those as time permits. It just happened that I found myself looking at yet-another Rails code base this afternoon that was showing 2007 in the footer. An easily forgivable offense.. but if you’re going to go in there and change it (again), take a moment to do the right thing. ;-)

Our solution at Planet Argon on client projects is to create a basic view helper that renders the current year. This allows us to do the following.

Learning Git without getting your SVN feet wet

March 11, 2008

Our team has been migrating towards using Git as our primary SCM. We have way too many Subversion-based projects and repositories to just do a clean switch over and not everybody on the team has had time to start playing with it. Baby-steps…

So, for those of us who want to use it day-to-day, we’re using git-svn.

Andy Delcambre has posted the first in a series of blog articles to help you pick up on using Git on Subversion-based projects. Check out his article, Git SVN workflow to get up to speed.

Also, if you’re on OSX and using Git… check out Justin Palmer’s new project, GitNub, which describes itself as, “a Gitk-like application written in RubyCocoa that looks like it belongs on a Mac.” This looks promising. :-)