Design With Crackers

Monday, 7 June 2010

A mod_userdir problem on Ubuntu and derived distros

Nobody Likes unpleasant surprises and I'm not different. The latest such surprise for me was a problem with Apache mod_userdir, namely that it doesn't work anymore as of Ubuntu Lucid Lynx.

For patronizing "security" reasons the maintainers of the affected packages thought it was valid to change the default behavior from what it was since the first release of the distribution. The precise nature of the issue is that they disabled PHP parsing for "~/public_html/". The details, along with their reasons and an explanation of how to fix it are here.

What strikes me as the worst part of this whole issue is this extremely offensive to web developers piece of flawed reasoning
"Security note: Running PHP scripts in users' home directories was not disabled for a frivolous reason -- PHP is a full programming language, and as such, can be used by attackers in nefarious ways. Ideally, the PHP engine should only be enabled for users you (the system administrator) trust, and even then sparingly."
Anyone that willfully installs the PHP interpreter on it's system knows not to run scripts written by unverified/untrusted third parties without inspecting them first, period. If you have a multi-user environment, and you want to restrict who can do such and such things, the onus is on you to implement it as you see fit. Because of this whole mess I lost an entire hour of my day:
  1. 15 minutes checking my development enviroment installation procedure, because, as Jeff Atwood says: "It's always your fault".
  2. Another 15 minutes sanity checking all the obvious configuration files, just to discover that they are all ok.
  3. Lastly, I wasted 30 minutes reading dozens of Google search results (mostly forum posts at ubuntuforum.org) until I finally stumbled onto the Ubuntu Wiki link.
NOTE: I'm that odd kind of guy who actually READS the release notes from an update to his OS before moving to the new version. No warning about this change was to be found there.

This is just stupid.

Labels: , , ,

Friday, 23 April 2010

Long time no see!

I haven't been blogging for some time now, almost a year has passed and lots of things have changed.

IE8 is now a known quantity and an IE9 preview is already available. This new version of the browser from Redmond seems to signal a new dawn for web designers everywhere, with that old dream of consistent rendering and behavior across browsers that standards bodies have trumpeted for so long finally within reach.

Google Chrome too, has been a reason to rejoice. It managed to keep itself speedy while getting almost 100% rid of the frequent crashes which cursed it in it's earlier days. The good news don't end here, because now it also fully supports Linux and Mac OS X, even bookmark syncing is already possible on Chrome, through either Xmarks or it's built-in Google syncing functionality.

I've also been through a lot in these ten months, my development setup, tool set and workflow has changed considerably too:

  • I no longer use SVN, I'm a total Git convert now.
  • I no longer edit my code on Kate. I spent some time using Aptana Studio but that was mind-bogglingly slow and not that feature rich too. I've rediscovered Gedit with a coworker and have been making good use of it since then. It's a pretty bare bones editor, but its plugins make up for it.
  • My use of Inkscape has dwindled a lot since I rediscovered Xara Xtreme, which means I now spend much more time on my Windows XP VM than when its only use was to run IE Collection, and the other windows browsers for test purposes.
  • Hardware-wise, I've upgrade my Eee PC with more RAM (2 GB now) and, when in home, I'm running it from a very fast external HDD. My dreary old 17” 1280x1024 CRT has now been replaced by a 21.5” 1920x1080 LCD.
There have been lots of other stuff that changed too (HTML5/CSS3 anyone?), but these are better left for their own posts.

It's good to be back.

Labels: , , , ,

Wednesday, 3 June 2009

For beginners: next steps

Now, assuming you've already read “Designing Web Usability: The Practice of Simplicity” and studied all of HTML Dog tutorials and examples. Assuming that you've read at least 30% of what is available at Web Design From Scratch (by the way, it's been beautifully redesigned since the last time I linked to it), these are the next things you ought to do:

Read “Prioritizing Web Usability” (by Jakob Nielsen and Hoa Loranger) and “Don't Make Me Think - A Common Sense Approach to Web Usability” (by Steve Krug).

Learn to touch-type, it will pay off before you notice! There are plenty of tools around that will help you to learn it in no time, some are even web based!

Study these resources that will help you to master CSS layout techniques and other key web concepts and technologies:

  • Dev.Opera lovely Introduction to The Web Standards Curriculum - It's a comprehensive course on the basics and a definitive can't miss for beginners.
  • CSS TRICKS All about Floats - Read it and you'll "get it".
  • Matthew James Taylor wonderful Website layouts - Those are pure gold, study them with care, take them apart, build them again.
  • BlueRobot's Layout Reservoir - Those are a bit old, but they are great nonetheless, study them and feel free to ignore the references to browsers no-longer used.
  • Alessandro's Layout Gala - Old too, study them, don't forget to test them with care in newer browsers before using one of them.
  • Blueprint.CSS and 960.gs CSS Frameworks - Take your time to study those two very carefully, even if you don't plan to use them at all, since you can learn a lot by figuring out how they work. I'll be posting a list of the best available CSS Frameworks along with some commentary about each one of them, I just don't know yet when I'll do it, so keep an eye out!
  • Dave Shea famous CSS Zen Garden - There's a lot to learn here!

Don't simply copy & paste from the layout galleries and tutorials! Study them thoroughly and then try to redo them without looking at their code! Be careful with the temptation to keep using pre-made CSS Frameworks indefinitely, you'll never be a pro if you don't bite the bullet and go all the way through CSS layout techniques learning curve!

Study these resources about design principles and start learning to use a Vector Imaging tool, I recommend Inkscape and it's on-line tutorials are an excellent place to start! Inkscape is available for Mac OS X, Linux and Windows!

Have fun with what you're doing! If you should become bored then probably this area is not for you, since you'll be competing against lots of people which are very enthusiastic about what they are doing.

And don't forget to come back here (preferably subscribe to my feed) to discover what to do once you have completed these steps!

Labels: , , , , ,

Friday, 17 April 2009

Cheat Sheets!

Back when I was in school, teachers told me that they were bad and I would be in serious trouble if I were to be caught using one of them. Then I went to college and the professors there told me to use them, they even printed and stapled them with some of my exams! But I never thought of them as something I would be using while working with the Web.

Then, on April 2005, while I was visiting IloveJackDaniels.com (now it's called “Added Bytes”), I saw that Dave had made an PHP Cheat Sheet! At first, I didn't knew what to think about it, but I downloaded and printed it and, not knowing where else to put it, I had it glued on the wall behind my monitor. Soon after, I noticed I was typing PHP code much faster than before, my visits to php.net had diminished a lot and, thus, I was remembering much more about it than I've ever did before!

A week or so later, Dave posted another one! This time it was an CSS one! Quickly I became addicted to it, to the point that I would turn on the lights (so that I could see them) whenever I was going to code.

As time went by, I downloaded the new ones he posted and scrapped the old ones. Still, I have a set of them on the wall in front of me even today, though I don't look at them not nearly as much as I did before.

Whether you are still learning HTML, CSS, etc. or if you're already a pro, take my advice: download them and have them glued to the wall behind your monitor, they'll be invaluable.

Labels: , ,

Thursday, 2 April 2009

Web Development on the Eee PC

I never liked notebooks, I think they are too expensive for what they can do and also too big/heavy/fragile to be called mobile. But I needed one, so a choice had to be made.

I choose the Eee PC 900, from ASUS because it isn't expensive, or big, or heavy, or fragile.

So I guess this is why they had to come up with a new name (netbook) for devices like this one.

Before you call me crazy for doing all my work on an Eee, let me tell you that I do have a much bigger monitor at home.

Small as it is, so far the Eee has met and even surpassed my needs as a web developer. Here's why:

The 8.9 inch LCD has a wide-screen resolution of 1024x600 and a dpi of 133.3. This means that most websites will fit quite nicely on it, since most people out there still doing fixed-width layouts optimize either for 800 or 1024 horizontal resolution, and that they are also easily readable.

The keyboard is small enough to be ultra-portable and still is (at least for me) big enough to be quite comfortable while touch typing. In fact, it took me little over an hour to get used to it!

The Celeron M 353 Ultra-Low-Voltage processor (900 MHZ) coupled with 1 GB of DDR2 memory and Intel GMA integrated graphics (915 gm chipset) makes it more than fast enough to handle my LAMP development setup along with a couple browsers open and more (Amarok, Kate, Krita, OpenOffice, Inkscape, Gimp etc.). The integrated graphics actually run KDE4 desktop effects nice and smooth!

The SSD devices (4 GB and 16 GB respectively) have more space than I need to work. I've installed Kubuntu 8.10 along with all the applications I wanted in the faster 4 GB SSD and still have roughly 400 MB left on it to spare. The 16 GB secondary SSD still has more than 10 GB left even after I copied all my work and most of my personal files to it.

The Wi-Fi and Ethernet connections are excellent and I've also used an USB 3G modem (HUAWEI E156) for long periods without problems.

Last but not least, I've got mine with a 5800 mAh battery which gives me, usually, almost three hours unplugged from the mains.

All in all, I'm very pleased with it, and I think I'll be using this one for a long time.

Labels: ,

Friday, 20 March 2009

First impressions on IE8

So, Windows Internet Explorer 8 is out. As is Google Chrome (In the sense that it is not a beta any longer).

I tried both today and here are my impressions on IE8:

It features better standard compliance, especially when dealing with CSS, but it somehow managed to misunderstand the CSS for the title of this blog, so I changed it even though it worked well in every other browser I tested.

The interface has grown bigger and now it takes an awful amount of the screen real-state for resolutions up to 1280x1024.

Fonts look weird. Some kind of font-edge enhancement must be the culprit, I just couldn't find where to disable it (if it is at all possible) in the five minutes I spent trying.

In the end of the day it is, still, the same old IE, the bad boy in the arena.

What about Chrome? It did not crashed a single time while I was testing it(about 45 minutes). It is as fast as it can be and it does not crashes every once in a while! I'm impressed. All it lacks now is a proper Linux port. That and Firefox extensions...

Labels: , ,

Thursday, 19 March 2009

For beginners: self-education

You might be wandering, if you've read my latest post, how and where are you supposed to learn all that?

Here are the answers:

Web Design From Scratch, by Ben Hunt. This should be your start point. You can't have read enough if you didn't read it all.

HTML Dog, by Patrick Griffiths. Read it all, from the beginners tutorials, even if it seems too easy at times, don't jump the basics! You'll regret that later on.

And, of course, my blog, where you'll be getting tips like these and even more links to excellent learning resources!

Labels: