About Us

Bulletpoint StarImulus® is a technology focused design + interactive agency.

In addition to our client services we also have a few products in the works. Our office is always filled with chatter and this blog is an outlet for our creative energy, rants and ideas.

Podium

Stacks!
Imulus built a task management solution that finally works for teams. It's a life saver, learn more at usestacks.com.

Featured Project

Author: Taylor (Web Developer @ Imulus)

Apr8

Easily Track Empty Directories in Mercurial or Git

We’re currently in the process of switching from Subversion to Mercurial, and while the process has gone well so far, we’ve run into one issue that required a bit of investigating. It turns out that Mercurial and Git don’t track empty folders. To a certain extent, this makes sense, but when it comes to working with a CMS that creates empty folders which will eventually be filled, this can be troubling. Furthermore, our static framework provides a starting point for organizing images which is made up of multiple empty folders. We need these to be tracked to make sure everyone uses the same structure.

The Solution

Luckily, it’s relatively easy to get around this limitation by adding dummy files to your empty directories. Once these dummy files are added to the repository, their “empty” parent folders will also be tracked.

Looking around, it seems that a lot of people advocate adding .hgignore files to empty folders since those are commonly used anyway, but personally, I think that may cause some headaches down the road; if we’re not actually ignoring any files, they’re unnecessary, and may cause confusion. In addition, once those folders actually contain some files, it’d be nice to remove the blank files to keep things tidy.

For this reason, I’d suggest having your team standardize on a dummy file naming convention, such as .hidden or maybe something a bit more unique like .imulus or .unicorns. That way, we can later recursively delete these files without fear of deleting something important, like .hgignore files.

Taking it a Step Further

Once we figured out how to track empty directories, it was only natural we figure out a way to automate the process of adding blank files. Luckily, Ernesto Méndez has written a Python script to do it for us, and setting it up to use is very simple.

Getting Started

While his site provides a decent rundown on how to use the script, I’d encourage you to take the extra step of copying it to /usr/local/bin and making it executable. Once you do this, you’ll be able to run the script from inside any folder.

To begin, fire up Terminal and copy the script to /usr/local/bin. If you’d like, you can remove the .py extension as I have. You’ll be asked to enter your password.

sudo cp hg-touch.py /usr/local/bin/hg-touch

Next, we need to ensure that it is executable:

sudo chmod u+rwx /usr/local/bin/hg-touch

And that’s it. Now we can run the script from inside any folder and recursively add .unicorn files to every empty directory. Let’s take a look at some examples:

Creating Dummy Files

The following example will create .unicorn files in any empty directory found in the static-framework directory:

hg-touch -p static-framework .unicorn

Removing Dummy Files

Once we’ve added some real files to those directories, we can run the command to remove all the dummy files.

hg-touch -r -p static-framework .unicorn

Be extra careful when using this command to make sure you are removing files you truly know are no longer needed. You will not be prompted to confirm.

Wrapping Up

Although we’ve decided that Mercurial is best suited for us over Git, this script can just as easily be used for tracking empty directories in a Git repository as well. In fact, I’ve used it this way a few times already. You could even rename the script to git-touch if you’d prefer.

Although I haven’t found any real issues with the script, it would be nice to expand upon it and add some features. One that comes to mind is the ability to define a standard dummy file name, yet maintaining the option of overriding it. Surely this would be a relatively simple fix, and the source code is available should you be up to the challenge.

Jan30

Who is Imulus?: Interview With Kat Logan

raptorkat

Tell us a little about yourself. What do you do at Imulus?
I am one of the graphic designers here at Imulus (although I may be changing my title to “Reflection Master”). My main focus is the design of web sites but now and then I get to do print and logo design.

How did you become interested in working for Imulus?
When I came back to Colorado after graduating from college, I underwent a mass application process trying to find a job straight out of college. I had no real world experience to speak of and Imulus was hiring for a design internship. So I figured what better way to gain experience? After 6 months of being an intern, I was offered a full time job at Imulus that I was happy to accept.

I have to admit I was hesitant to work for a web design company because the focus of the graphic design program at Fort Hays State was primarily packaging. It turned out to be a happy accident because I really feel like I’ve found my niche in web design. I never really had that feeling with packaging design.

When did you first become involved in graphic design?
Junior year of high school. I had a Photoshop class and I fell in love with it.

What designers have been most influential in your own work?
I suppose that depends on what I’m working on. I guess the one that sticks out in my head is Stephan Sagmeister. I have always admired his non-conformist attitude towards design and the use of hand drawn type and illustrations in his work.

What is your favorite part of working on a new project?
The newness of it. I love the limitless possibilities and potential of a new project. I love throwing myself into it.

What is your least favorite part?
The newness of it. Sometimes staring at a new Photoshop document drives me crazy. Once I get going, however, it becomes my favorite part. (Threw you off there, didn’t I?)

If Imulus were a person, what kind of personality would (s)he have?
That person that walks in a room with a great story to tell and everyone is always eager to hear it. Definitely not someone who is politically correct, but knows how to make it funny rather than inappropriate. Someone who is energetic and enthusiastic about life.

What Photoshop tool would best help you survive in the wilderness?
The clone stamp tool. If I ever find food or resources I would never run out.

What do you want to see more of in the design world?
Bacon.

What do you want to see less of?
Bad reflections that have no sense of perspective.

If you were a Photoshop filter, what would you be and why?
I would say the Smart Blur. I try to make things more polished but I like to keep some crisp edges.

Describe one of your favorite projects you’ve worked on at Imulus.
Usually our internal projects. It really nice to have complete creative control over a project and I love to really delve into the conceptual side of design.

Where do you get your inspiration?
Bacon.

What’s the best part about working in Boulder?
The view, the restaurants, and the people.

What’s the best part about working for Imulus?
Definitely the people. Doing what I love is a very close second. Very close. Actually, I would say they’re tied.