Newspapers Unite Against IE6!

A Norwegian client just told me to stop testing their product in IE6, words I could hardly believe I was hearing. That’s because a month ago, a handful of Norway’s major newspapers and other websites posted a warning telling their IE6 readers to suck it. And since most web-wired Norwegians read those newspapers online, it seems to have worked. IE6 is hereby and forever banished from Norway.

So how ’bout it, newspapers elsewhere? New York Times, Telegraph, anybody?

Posted in Funny, Technology | Leave a comment

Drop Shadow for Text with CSS

My distinguished colleagues at A List Apart already took care of building box-shaped drop shadows. But what if you want the text to have a shadow under every letter? Here are the results of my experiment, which I loathe for two reasons:

  1. You have to repeat the shadowed text when it’s completely unnecessary from a content perspective, and
  2. The div height and font size are hardcoded
But it kind of works.
But it kind of works.

Without further ado, the markup:

<div id='mydiv'>
<div class='shadowed'>The quick brown fox did something or other</div>
<div class='shadow'>The quick brown fox did something or other</div>
</div>

The CSS:

.shadowed {
position: relative;
overflow: hidden;
z-index: 2; }

.shadow {
position: relative;
overflow: hidden;
z-index: 1;
left: 1px; }

#mydiv {
height: 20px;
overflow: hidden;
font-size: 16px;
}

#mydiv .shadow {
color: grey;
top: -19px; }

Does anyone have a less hackish way of doing this? I’d love to hear about it.

Posted in Technology | Leave a comment

Subdomains & Sharing Now Enabled for cvPow.com

You can now access your CV/tag cloud at YOU.cvpow.com, and share links to your resume with dozens of social networks. Mine is at mariya.cvpow.com.

I’m looking for feedback: how would YOU like to use your CV data? Export it as an RSS feed? Export to Word so you can send it to old-fashioned headhunters? If I get enough requests for a feature I’ll add it.

Posted in Entrepreneurship, Technology | Leave a comment

Your CV as a Tag Cloud

Hi all! Besides a fresh look for Robozen.com, I’ve got a shiny new app for you to play with: cvPow.com. Ever wonder what your CV looks like as a tag cloud? Sign up and see for yourself.

I hammered the app out during this weekend after more than a year(!) of procrastinating on updating my CV. To prevent such further procrastinations, I created this little utility so I can always keep it up to date and shiny.

Subdomain accounts aren’t quite functional yet, but by next week I promise you your very own YOU.cvpow.com. So get the usernames while they’re hot, kids. And check out my own cvPow here: http://www.mariya.biz.

In news of somewhat less importance, I caved in and joined Twitter. I must admit, as dumb as I’ve always thought the idea was, I’m hooked and currently ill with a terrible case of Twitterrhea. Catch me there: http://twitter.com/quodestveritas.

Posted in Entrepreneurship, Technology | Leave a comment

How to Pressure Programmers for Fun and Profit

Last year, I wrote about one secret of successful project managers: strategic lying. If your programmer tells you a task will be done in three days, it will be done in a week, and you should tell your client it will be done in two weeks, to be safe. Conversely, if your customer tells you they need something in a week, tell your programmer it is due tomorrow.

Here’s an addendum: pressure programmers with only one task at a time. For example, if you have a project with three critical tasks and a week to do them, do not assign all three tasks to a single programmer, and give him next week as a deadline. Instead, assign the first task with a one-day deadline, pressure him to get it delivered, and repeat with the other two.

If they are assigned three “critical” tasks at the same time, many programmers will stop being productive. Some are simply so overwhelmed and stressed that productivity drops. Some feel that if “everything is critical”, nothing really is. And if you prod them about task X, they can always say, “but I’m working on Y and Z!” and they’ll probably be right.

But put one item on their plate as “critical” and “due today!”, and they feel motivated to get it done. They’re pressured, yes, but they can actually think about what they’re doing instead of worrying about the two other hovering deadlines. And should they fail to finish that one task, without a good reason, you can reasonably chew them out for missing deadlines.

Of course, it is your job as a project manager to decide on a reasonable implementation timeframe for each task (That’s if you’re familiar with the code; if not, you have to talk to your progammers instead of guessing, and remember to pad the estimates!). It’s also your job to shield the programmers from management, which will otherwise undoubtedly swing by to check in on tasks U, V and W.

Posted in Entrepreneurship, Project Management & Productivity, Technology | 3 Comments

CSS Magic: Align Form Fields Without Tables

I’ve seen many a source code that is neat and XHTML-compliant everywhere except—for some mysterious reason—forms. There is some unspoken rule that tables are the only way to align form fields into two even columns. That rule is wrong. Without further ado, here is how to rid your pages of the final vestiges of layout tables (tested in Firefox 3 and IE6, the best and worst of all possible worlds):

HTML:
<div class=”field_container”><label>First Name</label><input type=”text”></div>
<div class=”field_container”><label>Last Name</label><input type=”text”></div>

CSS:
label {
width:150px;   
/*Or however much space you need for the form’s labels*/
    float:left;
}

I’m serious, that’s it. So if I see another table, YOU’RE FIRED. :)

Posted in Angry Development Tips, Design, Technology | 7 Comments

Work for Free

Apparently, not all developers participate in pro bono or opensource projects. You should, even if, like myself, you are an empty shell of a human being who gets no fuzzy feelings from helping others.

My last post explained that boring projects pay more. By this principle, which shall hereby be dubbed The Law of Life Sucking, the most exciting projects are those that pay nothing. You see, it is unlikely that you will be badgered to hurry up on a pro bono project. In the absence of tight deadlines, you can learn how to perfectly plan and execute a project. You can play with new technologies, utilities or libraries. You can scrap it and start from scratch. And then, you’ll know how to use those things for your paid projects, and you’ll earn more money, which will reassure you that you are, after all, a calculating, heartless soul.

Posted in Project Management & Productivity, Technology | 1 Comment

Projects You Hate Will Pay the Bills

Unsurprisingly, my feelings towards projects vary. The ones I hate involve labyrinths of legacy code, infrastructure nightmares, and new requirements to turn the Tower of Pisa into the Empire State. The ones I love give me a blank canvas on which I can paint an MVC masterpiece after lovingly drafting a throng of specs. Also, they pay shit.

You see, the amount of love you feel for a codebase tends to be inversely proportional to the compensation. The reason, when you think about it, is simple. Legacy code has  by definition been around for a while, and if someone is willing to invest into maintaining it, instead of re-writing it from scratch, the software likely a) is rich in features and b) has users. Those are signs that the company has cash.

A good strategy, if you’re a freelance coder, is to have one or two long-term contracts maintaining code for someone who can pay, and take on fun, creative startup projects once in a while. And cheer up! Eventually, the clients with the legacy code will cave in and give the go-ahead to rebuild it all from scratch.

Posted in Entrepreneurship, Project Management & Productivity, Technology | 1 Comment

Writing an Application is Like Writing a Short Story

I’m a notoriously compulsive hobbyist. I seem to have new pastimes every week, and today they happen to be gardening and writing short stories.

I bought a handbook that lays out the basics of short story writing (plot, character, dialogue, yadda yadda) but some pages into it, I decided, “Fuck it. This feels like work. Writers are supposed to chug wine in brasseries and let the drunk angst write itself, right? Nabokov and Kundera and Maupassant never wrote outlines and character sketches, silly!”

So I throw the book in the corner and get to it. I write five pages of rambling prose, hit save, and call it a night. This morning, I re-read it. I find that it’s lacking…plot, character, and dialogue. So I think and think and finally sigh and write an outline. A character sketch. Some dialogue. Then I go back to my original piece, ready to carve it up and make it play nice with all my new notes. I start laboring through it sentence by sentence, and then I realize: “Dear God… I’m refactoring!” I quickly close the thing and get back to work, which is the same goddamned thing except I get paid for it.

Anyway, the point is this. We’re used to seeing movies where writers are easy-going, substance-abusing geniuses who just get smacked in the head by a muse who writes their novels for them. Likewise, movies tell us that “hackers” plop down in front of a scrolling jumble of green ASCII and “crack” NSA servers in five minutes. You don’t see ‘em motionless before a screen, thinking… that’s lame!

But the reality, for both writers and programmers, is that a project should be 80% planning and 20% implementation. (Arbitrary statistics, but it’s something like that.) You should have a database schema, wireframes for your UI, and lists of models, controllers and functions before you write a line of code. Because if you just go with the flow and create a bunch of crap, trust me, it will be broken beyond belief and you’ll be better off re-writing it from scratch.

P.S. Maybe next week, if my plants are still alive, I’ll write something deep comparing coding and gardening.

Posted in Technology | 3 Comments