When I started at Zenbe, I was pretty excited, because I knew it meant that I would be getting my hands dirty with some complex development issues. My history in web development has been mostly creating smaller, marketing-oriented websites, where you don’t really have to worry about frequent code evolution or long-term maintenance. Once you create the site, it’s up, and maybe there will be text changes here or there, but for the most part the code base (especially things like the css) are left alone.
But what do you do when your product is a complex web application? How do you best maintain your stylesheets when your app is constantly growing and evolving? It’s a lot more challenging than you might think, but there are several things you can do to keep your code optimized and maintainable.
In order to organize my thoughts, and perhaps throw some inspiration on the subject, I’m starting a series of posts each featuring a different thing you can do to best optimize and organize your css to face the challenges of a frequently evolving web application.
More >>
Ok this is totally a controversial post, but it’s a very important issue for our nation, so I’m going to take a stab at expressing my views about the problems with gay marriage.
In this issue we have two sides, deeply divided. On the one side, we have gays and their supporters, who want to be able to marry who they choose, as free, right-minded citizens. On the other side you have the ‘religious zealots’ who are prepared to fight to the death to protect what they call the sanctity of marriage, as defined in the bible.
At it’s core, the issue with gay marriage seems to stem from two things: the origins of word marriage itself, and a fundamental flaw which the US government made when it decreed marriage to be a legal process.
More >>
Ahh, Internet Explorer. For many years now, this browser has been the main cause of stress-related injuries among the web community. Supporting this browser has proven to be one of the biggest challenges for any web designer / developer who has ever had to write one line of html/css/javascript. For many years, IE didn’t really care what the web community thought of it’s product, but since version 7 hit the scene, Microsoft has been devoted towards getting IE to be a solid, standards-aware browser deserving of it’s massive market share.
The big news with IE right now is it’s upcoming release, IE8. Slated to come out “4th quater 2008″ (so… any day now, right?), IE8 is supposed to have a lot going for it from a web developer standpoint. In fact, on paper it almost looks dreamy - the IE team has decided to include a full Firebug-esque debugger console, IE7 emulation, and more. When I was at the Ajax experience last week, the IE team showed off these features briefly in their presentation. From that, I was actually pretty excited about it all, and I couldn’t wait to get back to Zenbe to install it on our PC system and try it out. Even if there were bugs, I thought, it would be okay, because of this IE7 compatibility mode.
Right? Not a chance. It’s IE, after all.
More >>
Today marks the first day of the Ajax Experience in Boston, MA. I was lucky enough to be able to join up as a volunteer and get in for free (I had come up to Boston for jQuery camp and they were searching out AJE volunteers).
The conference kicked off this morning, and it’s been an interesting experience so far. I’ve been assigned to the Breakout 1 room, which this morning hosted the Prototype presenters, Christophe Porteneuve and Andrew Dupont. They were part of this morning’s “developer day” events, where the leaders of some of the main JavaScript libraries (Prototype, jQuery, and Dojo) had 5 hour sessions (side by side) where they introduced their library and explained how you can get the most out of them and contribute to the community.
The ‘hotness’ of jQuery was more prominent than ever this morning, as our room was very very sparsely filled, while the jQuery room, which was the same size, was packed to the brim.
The imbalance of the turnout was clearly noticed by the Prototype speakers, and this brought about some discussion on the differences between the libraries, and the cases for using each. Now, these guys are obviously biased towards Prototype, but what they mentioned was pretty accurate. Basically, they proposed that jQuery is better for simpler web applications, while Prototype is still more robust for creating custom classes and prototypes, and creating your own sub-library. I completely agree with this, as we use Prototype at Zenbe for our very complex, intricate js needs, and the library makes it completely easy and fun to write complex classes.
More >>
Last week I finally caved and bought a bigger hard drive for my laptop. I opted for the top of the line, 320 gigabyte Western Digital drive - at $109, I couldn’t refuse (it’s amazing how cheap these things are nowadays). Instead of doing the classic mac os migration, I decided that a fresh start with a clean os install would be the best avenue. It would allow me to really optimize my computer, utilizing all I’ve learned in the last year about optimizing a development environment.
I figured I’d document the apps, libraries, and utilities that I install, partly for self-reference, and hopefully for informing others of some of the essentials for professional web development (on a mac). I aim to be very specific about what I install, and oddly minimalistic considering all the space I’ve gained.
So, lets start with the main apps. There are a few must-haves, including the super powerful text-editor TextMate, s/ftp dream Transmit, hacker must-have Quicksilver, and who could forget the only svn gui worth mentioning, Versions. Last but not least, the essential web browser, Firefox and it’s various plugins (such as Firebug and the web developer toolbar). On the big expensive software side, it’s never a bad idea to have Adobe CS3 at your side.
More >>
Technically, I am writing this post in response to the Golden Ticket competition being run by Carsonified. The theme of the competition is quite simple: create a blog post mentioning your desire to win the contest, link to it, and gather up 25 comments. The prize is a ticket to all Carsonified events in 2009 (these are the guys who run FOWD, FOWA, and such conferences), backstage passes, airline and hotel to 1 event, and an invite to a VIP speaker dinner, which is all very bad-ass.
Just recently have I come to understand the full benefit of professional networking. Although I frequently have desired to go to conferences, in actuality I have only been able to go to one - Refresh 06, and that was only because it was a local event. I nearly made it to FOWD last year, but got horribly sick the morning of and was never able to make it out.
Since then, and quite recently actually, I have started to get back into the professional networking vibe. Thanks to people like Charlie O’Donnell, who runs NextNY, I have started to see the real benefits of professional networking. Just tonight I went to a NextNY ShakeShack event, and it was a lot more productive and fun than I had imagined. I’m sitting here now with a bunch of awesome business cards, all from smart, talented people in the industry. We shot ideas, talked technical, and a grand time was had by all.
More >>
I’ve debated for weeks if I should make a post about the upcoming election season; certain days I felt certain I should, while others I thought maybe I should keep my mouth shut (they say never talk about politics or religion). However, this is my blog, and as an American, I have the right to discuss such things. So here goes:
Vote for Barack Obama. Please, if you care about our country and you want to make it through the next 4 years, vote for Obama.
Don’t get me wrong, I have always loved John McCain - in 2000, I was seriously cheering for him to win the Republican primary against Bush (however, at the age of 15 I was below the voting threshold). There is no doubt in my mind that our country would be in a much better place if McCain had been elected eight years ago; however, now is not the time to make up for such things.
Our country is a mess. Bush’s do-nothing attitude towards much of the goings-on in our country has put us in the worst spot we’ve been in since the great depression. I’m not even going to talk about the war; we all have our opinions about that. I am, however, going to complain about how our government has turned a blind eye to the banking system for the last 8 years. As the child of a career mortgage underwriter (my mom’s been in the business since ‘86) I remember hearing a lot about these ‘BC’ loans back around 2002-03. The mortgage business was booming at the time; all you needed to qualify for a near 100% financed mortgage was proof that you’ve had a successful renting history and a job. Bad credit? No credit? No problem!
More >>
Up until a few days ago, I never thought about the <noscript> tag. It was one of those internet relics, back from the old days when we built websites with tables and had messages like “optimized for Netscape Navigator”.
However, my website is now truckin’ the noscript tag, and quite proudly at that.
It all started the other day when I was talking js effects at Zenbe - how to create seamless unobtrusive js animation without the typical ‘blips’ associated with unobtrusive use of JavaScript (ex: if js is shortening an element height to only show partially, as it does on my portfolio, you see a blip as that js loads). I didn’t have a solid answer - just a long lost thought of calling css through <noscript>.
More >>
An intriguing link popped up on the top of my Facebook page this evening. “The new Facebook is here.”
The ‘new’ Facebook? I wasn’t aware there was anything wrong with the old one. So, I clicked with an anticipated caution, and overall, I’m very pleased with what I’ve found.
Facebook’s always been a special site to me. Ever since my University was ‘allowed’ into the network in early 2005, I’ve been in love with the site - a clean, simple, and effective alternative to MySpace. As it’s grown, I’ve stood by it’s changes as clever and innovative, even when others haven’t (coughminifeedcough). Facebook has never been afraid to take risks, and tonight they are taking a huge one, as the changes to the platform are massive, and a bit genius.
The most obvious change to the site is they took the mini-feed, and they took the wall, and apparently made a baby with them. I call it Wall-eed. I just knew there was something up when they added comments to feed stories, and this explains it. I have to wonder what the main Facebook community is going to think of such a change, seeing as the mini-feed wasn’t very well recepted, and now it’s a main feature of the web application.
More >>
If you find yourself setting heights on elements more often than not in CSS, take a step back, because you’re (most likely) doing something wrong, and down the road you’re going to hate yourself for it.
It’s one of the more common ‘css design faux pas’ that I have encountered as a web developer, and to me just demonstrates a lack of understanding about how box model elements behave. 99% of the time heights should be left inherit - locking yourself into a height can quickly bring limitations to your site layout, provide a maintenance nightmare, and they’re almost never needed.
By default, an element will be as tall as the elements/content that are inside it. A few cases which might cause a container’s height to collapse are if your internal elements are floated, or if they are absolutely positioned. In both of these cases, the easy answer is to set a height on the collapsed element and forget about it. However, this isn’t really good practice, and you’re basically treating the symptoms and not the cause.
More >>