Create icons for free!

Instead of shelling out for an icon editor, you can create icons with a free icon format plugin for Photoshop: Download it here. I have very simple icon needs, since I just need to create favicons for the web sites we build.

The old icon method (not free!)

I was using an older version of Microangelo for years for icon creation (not a free program). To create an icon, I'd format it in Photoshop, and then import it into Microangelo as a GIF, which meant I couldn't get the slick transparency you see on a lot of favicons these days. And it took twice as long. Now, I just create my 16x16 icon, and then save it as a .ico file. It's nice to leverage my Adobe Suite purchase to save a few bucks on un-free icon software. The one thing that doesn't seem to work right is that when you go to save the icon, it doesn't display other files of the same type. So, you can't tell if you've already got a favicon.ico in your directory already. It does, however, warn you if you try to overwrite it.

Drupal, meet Client. Client, meet Drupal. A short introduction to the Drupal CMS


When a client comes to Implied By Design to design them a web site, they are typically not concerned about the machinery running the site. It just needs to look snazzy, attract customers, and in general just do what it's supposed to do. And that's perfectly fine. I'm even glad, because it lets us get down to the business of getting a web site done without too many distractions.

But, Implied By Design recently made a shift in our programming policies that should raise the enthusiasm of up and coming clients. Namely, we are now using Drupal as our core development framework.

Why the change? Because websites are different than cookies

Cookies are better when they're made from scratch, but this is not the case with web sites. For one, there are too many smart, misguided youth out there poking their techo-fingers into security holes exposed by poorly developed web sites for a small development firm to tackle the task and expect to succeed. For two, there's a lot of competition out there. The more successful you are at efficiently using development time on a site, the better features you can get, or you can upgrade your design, or do something else that's less productive but more fun. By 'you', I mean you, the client. You want the best bang for your buck, and we've been working for almost 5 years now to provide it.

Drupal developers share

Drupal is a free, open-source CMS (Content Management System), developed by web developers around the world. That's the boring one-liner description. It's much more exciting than that to developers, and it should be way more exciting to companies who are in the process of upgrading their site or getting their first one rolled out.

The fact that Drupal is 'free' is a bit misleading. Drupal developers around the world develop functionality called 'modules' that can be neatly plugged into Drupal to provide it with a vast range of ability, and many do so not because they're bored or particularly altruistic, but rather because it makes them money. That's right, Drupal developers make money. Sometimes a lot. Not from selling their code to Drupal, but by doing custom work for clients. Because Drupal can save a developer so much time in the process of development, they can work on refining the smaller things, and avoid of re-inventing the wheel. Because many developers give this work back to Drupal, it continues to become more polished and powerful.

Drupal developers care about security

This is the big kicker, that really sets Drupal apart from the competition (and there is competition). Drupal has a security team that runs Drupal through rigorous testing to insure that it's not prone to the likes of cross-site-scripting (XSS) attacks and SQL injection attacks.

Drupal is more than just a funny name. It's a way of life.

Drupal has a cult following in the development world, and it's gaining a lot of momentum. Being a part of Drupal affects more than the efficacy of a developers work system, but also brings them into something that is bigger than themselves. Great minds all over are contributing and updating the Drupal code on a daily basis. Developers like it, clients like it, it's free and everyone is pretty happy about it all.

Drupal puts the FUN in FUNcionality

A sample of the functionality Drupal provides

- Blogging
- Geo-targeting
- Site statistics
- Search (really good search!)
- Caching (meaning your site is faster)
- Integrated AdSense
- Integrated Google Analytics
- On the fly image manipulation
- Create forms without touching code
- WYSIWYG (What You See is What You Get) support

And that's just scratching the surface. Really.

In summary...

In as much as one can summarize Drupal, I have given it my best shot. Upcoming clients, you may not notice that it's a Drupal engine in your sleek, shiny new web site, but it is, and we think you'll enjoy it.

Where is all the space on my hard drive?

That was the fateful search that lead me down a dark road of command line mayhem for an hour or so. That's .0000028% of my waking life! After that hour, I finally came across the tool that I needed and discovered what was taking up space on my hard drive in a couple of minutes. Now I'm installing the latest Adobe Suite and have a few minutes to pass on the good news.

A simple way to tell what's taking up space on your hard drive

Here is is: TreeSize Free. Here's a little screenshot, so you can get a feel for what it does:

TreeSize Free: TreeSize FreeTreeSize Free: TreeSize Free

I've spent years right-clicking on folders and selecting "Properties" to get the file size. You're laughing at me, I'm sure. For big folders like "My Documents", it can take several minutes to get the final total, and then you still have to drill down to find out where the culprits are hiding. I've probably wasted a good 5-10 hours (.000028% of a lifespan) using that method.

Today, it hit me that someone else, who is smarter than me, had found a better solution to the problem. After doing the "Where is all the space on my hard drive" search, I was lured into a command-line administrative tool offered by Microsoft called DIRUSE. I've been resistant, but geekily attracted to using the command line, and have successfully executed a few database transfers using that technique. For some reason, though, I kept running into problems with DIRUSE, and it seemed to take an awful long time to execute.

I love free software that works, and now that I've reclaimed half of my hard drive back, I'm ready to start rat-packing again.

Productivity tip: How to avoid overextending your resources

As a small business owner who has discussed the issues of small business at length with lots of other small business owners, it seems as though there comes a time when you either let yourself be driven to the edges of insanity by overbooking your human resources (often a single person), or you start turning business away. Either way, it gives one pause to reflect seriously on the future of a business, and to articulate personal goals in a whole different way. I mean, when you're turning away business, you turn away good money that could go to better salaries, equipment or dance dance revolution machines in the office. You better have a dang good reason for saying no.

While I consider most self-help books to generally be exaggerated, overly-simplified and painfully drawn out, I'm still kind of a sucker for one now and then. One which comes to mind when considering this problem of bottlenecking is "The E-Myth." The big underlying lesson of the book is that most businesses fail not for a lack of skill or perseverance. Rather, it's a lack in the establishing long-term goals based on foolproof systems that are meant to work properly without your constant intervention. One of the many examples was a client of the author's whose life had been swallowed up by a pie-making business. After integrating the author's principles, the client set out to develop a system so that she could hire and train people to make the pies, instead of doing everything herself. If you have a good system, it can be extended by others so that you can develop streams of income from franchising your business. That's the idea, anyway.

When the cookie cutters don't cut it

There are some kinds of businesses which don't fit as obviously into the assembly line structure. My job, for example, slides neatly into a niche that defies extensive systemization. I can't just hire anyone to do the work clients hire IBD to do, it has to be people with experience in the field and a knack for design. Growth in human resources is of necessity slow because there isn't a huge pool of talent to draw from.

Some people also prefer to work for a living, rather than manage other workers. Work is (or can be) satisfying, you get some finite tasks to complete, instead of being forever overwhelmed by the vista of potential many entrepreneurs thrive in. Thus, some folks find solice in work as freelancers.

So for these people, who have limited human resources, what do you do when you get too popular? How do you keep from running yourself into the ground, or going postal and losing all your clients?

Use a calendar to track commitments

I have a number of projects that are assigned exclusively to my care, so this system should work well for any freelancer who spends a significant amount of time with their nose to the grindstone.

The conventions are simple, but it's done me a world of good:

I use Thunderbird as my e-mail client, and have Lightning installed, which works a lot like Outlook's calendar. Both Outlook and Lightning allow you to have multiple calendars, and you can color them differently, so you can, say, look at your personal and professional calendars side by side to see if they're overlapping at all.

1. Set up a calendar just for your projects

Easy enough.

2. Establish a system for estimating work and delivery times for your products / services

This one is hard if you're just starting out and don't have a lot of experience to draw from. But, if you're in a business where you have clients, it won't be long before you have to give estimates on how long it takes to do stuff. Clients are, of necesity, time-centric, and if you don't work with that you're begging for trouble.

Be generous in your time estimates. If something comes up that you didn't expect, it's important to have some buffer zone. As a freelancer, it's better to underbook than overbook. Hotels and huge hosting companies can overbook because they can work with odds. The freelancer is gambling with high risk when they overbook, so my advice would be don't.

Once you've established a way to estimate work hours for projects, figure on dedicating a specific amount of time each day to each project. In my case, I slot 2 work hours for each project every day until they are complete. If a project will take 20 hours, I slot them for 2 weeks (taking the weekend off).

One easy way to input projects is to use a repeating event, and repeat it for every work day you have for a specific number of days. In the previous example, I set up a 2 hour event for one day, and set it to repeat every M, Tu, W, Th, and F for 10 times. Easy peasy, beans-n-cheezy.

Figure out when, and how much you want to work

As a freelancer, it can be nice to play it by ear when it comes to setting your work schedule. But for most folks, eventually a lack of a work schedule will begin to eat up your life. If you're good at what you do, you're going to get busier and busier until a lack of boundaries prove more enslaving than empowering.

So, establish how much you actually want to work and when. 4 hours a day? 4 hours a week? Set something you can stick with and that makes you happy to be a freelancer and not a peon.

3. Look at your calendar in week view

Week view in Thunderbird's Lightning: Week view in Thunderbird's LightningWeek view in Thunderbird's Lightning: Week view in Thunderbird's Lightning

The full month view isn't terribly useful to see how booked you are. So take a look at your calendar in week view. If you have overlapping projects for your current week, drag them to another time in the same day until you have them all in a row. The idea here is that you can't be working on more than one project at a time. Fit your project blocks within your established work schedule. Can you? If not, you're overbooked. If you can, and there's room to spare, you have some free time on your hands to work on your business (not in it), and you know, with certainty, that you have room for a new client. It feels good, believe me!

Now you can move forward weeks to see when another slot is available. You can also book future clients and know beforehand where there might be a conflict with an upcoming vacation.

4. The fringe benefits

This is the system I've been using for a couple of months now, which I established after running into a serious bandwidth bottleneck. When you've become an established business, it's important to be able to guarantee responsiveness to your clients, and you can't do that if you're getting in over your head.

Since using this system, I feel much more confident taking on new projects, and enjoy knowing that if I plug away consistently every day, I will meet all my commitments to clients.

As another, unexpected bonus, I've had a number of potential clients be impressed that I'm booked a month or two out. "That must mean you're good" they say. It doesn't guarantee me the job, because sometimes they need it done in the next month and I'm just not an option, but it might leave an impression. I know there's a name for using this kind of technique more strategically to induce a sense of urgency on the part of a potential customer, but I wouldn't say I was busy if I wasn't. There's still bills to pay!

There you go, one secret of psychological success in this small business owner's life.

Halloween Highlights

  • A child wielding a wand turned me into a jacket (apparently)
  • At a doctor's visit where the office was having a "Wizard of Oz" theme, I was stumped by the Wizard's costume, because why would a wizard have a stethoscope?
  • Had the idea with a friend of mine to, while answering the door for trick-or-treaters, engage in some kind of argument and continue arguing until the kids realized they weren't going to get candy, after which we would call them back and actually give them candy. We didn't actually do it, but it sounded like it would be fun if we were jerks.
  • My niece snuck up on me dressed as a Dementor from the Harry Potter series and actually gave me a bit of a scare. And she just walked right up to me. I felt a bit foolish.

Halloween package from mom

My mother is a nurse practitioner, and often when I get birthday and Christmas packages, they are shipped in boxes that previously contained medical supplies. This has an initial effect of disappointment, because unlike pretty much anything from Amazon or Tiger Direct, I don't get particularly excited about 10 pounds of highly absorbent gauze.

This year, for the annual Halloween package that inevitably guarantees 3 days of relentless sugar hangovers, the words on the recycled cardboard box startled me at first. When I saw the return address indeed matched that of my mother's, I relaxed, knowing a serious candy binge was imminent.

A couple days later, I looked at the box again, and I became aware of a peculiar irony. Check it out:

Say please to Google

Would there be any possible usability / interface benefit to Google handling interjections, like 'please' and 'thank you'? I might find it more personable to feel like by taking the time to add these parts of speech in, I could get different results, possibly more pleasing to my particular mood. Perhaps Google could add in some emoticons for the quality of the results, like a smiley face for a good result set, a confused face for misspellings, a frowny face for no results.

And maybe take it a little further, and add negative interjections, as in 'Get me my SERP, jerk!'. Sometimes I'm feeling a little more edgy than others, and appreciate a bit of banter.

Google seems to adhere to a pretty sparse interface, which makes it quick and unkludgy, and I kind of like that. And I can't see myself using Google any more just because it's more reactive to my mood . But it could add a nice little touch of randomness to my sometimes relentless searching, some variation, a bit of color.

And, I guess, technically it would be difficult to identify when someone was adding in mood in their search, and when the mood-indicating words were actually part of the topic being searched for.

Eh, those guys are smart, I'm sure they'd figure it out.

Where are all my PHP variables hiding?


Sometimes it's difficult to remember what variables you have available to you at any given time, especially if your script is split into functions, or in my case you're working with Drupal, where there's a whole slew of variables available at your disposal, if only you know what they were called. Lucky for curious folks like us, there's a couple native PHP functions that will clear things up:

//Returns an array of all variables and their values. Sweet!

//Prints out the contents of whatever variable you pass to it.

The killer combo

This will print out all the variables currently available to you, and then kill the script so you can just look at the output. Var_dump() prints out the variables in text format, so you'll find it a bit easier to check out your browser's "view source" to see the spacing. Sometimes, when I'm tracking a deep variable I'll copy the code and paste it into Dreamweaver, where I can measure the indents.

I'm also hoping this entry will help me keep track of those function names, because it's mentally strenuous to articulate to Google exactly what the function I'm looking for does. "Output all PHP variables .... in some format I can read ... please?"

Syndicate content
Implied By Design Logo