an ordinary blog — andr3.net

rss feed

my lifestream rss feed

pages

Professional CSS: it's here!

Professional C.S.S. (cover)After a long period of indecision, followed by a not-short-enough period of saving up some cents, I finally ordered Professional CSS from my usual bookshop – arrived yesterday in the mail –, kind of as an early Christmas a late birthday gift for myself. I'm not much of a buyer of technical books and most of what I know about webdesign I learned either reading/searching on the web or on my own. The previous book I had bought was Webdesign in a nutshell, from O'Reilly. It helped me getting started but, of course, it's more than dated at the moment.

I've been investigating all available books on webdesign and before going ahead and buy myself one I had to choose carefully because I can't afford all of them and you know how hard it is to leave a good book behind.

What I really wanted was a book that didn't give me a beginners view at CSS but showed me best practices and real-world case scenarios instead. I also wanted to learn more and more about CSS to be able to create visually appealing layouts yet do it in a short period of time, without having to loose too much time dealing with browser inconsistencies. Having a knowledge of those problems beforehand can help me shortening the time I spend laying out a webpage.

read on about: Professional CSS: it's here!

I knew this day would come... again

Spam skit - Monty PythonAfter I was hit by the first wave of spam, I knew sooner or later i had to take active measures to protect my holy spot on the web. The first time there wasn't much of a problem since the comments didn't show up on the website, but now – as some of you might have noticed if you stumbled upon any of them – I've been receiving tips on pharmaceutical products which i don't need. Thank you very much. But this time, they were showing up in the comments feed and on the website itself. That just pissed me off. How dare they?

Anyway, I had to do something, so from this day forth – or at least until further notice – every time someone posts a comment for the first time, it will be left pending until I approve it. Just letting you guys and gals know.

Really dudes-who-write-spam-bots, you don't want to play this game with me. I'm really stubborn. But since I like challenges, and to avoid repeating myself, I'll just say:

Bring it on.
–Duke Nukem

Firefox 1.5 released and it can be portable too

Everyone is posting about this, so i'm just going to join the crowd and maybe give Firefox a push. If it ever needs one, in the first place.

Firefox 1.5It's here. After a few betas and release candidates the final version is out. I've been holding out from testing the previous not-final versions, but now the time has come to put my hands on 1.5 goodness.

Get Firefox 1.5.

What's New?

I'll just pass out what's on mozillaZine:

Firefox 1.5 introduces several new features, including an improved software update system, faster Back / Forward page navigation, a new options to clear private browsing data, drag-and-drop reordering of browser tabs, a redesigned Options/Preferences window and more robust popup blocking. Standards support is also improved, with support for Scalable Vector Graphics (SVG), JavaScript 1.6 and additional CSS properties. Accessibility is much improved (including new DHTML accessibility features), security has been enhanced and Mac OS X support has also been improved.

You can also check the release notes.

read on about: Firefox 1.5 released and it can be portable too

Netfront installed on over 200 million devices

an example of Netfront in actionAccess, a global provider of Internet technologies to the mobile and beyond-PC markets, has announced (press release) that their world-renowned browser NetFront has been deployed on more than 200 million devices worldwide. This is spread over 720 different products on various platforms (Palm®OS, Symbian, BREWTM, Windows Mobile family, REX OS, etc.)

What is it?

Netfront is a browser made for mobile devices that on top of its support for all the platforms mentioned above, includes support for a respectable pack of standards that would make some desktop browsers weep. That pack includes HTML 4.01, XHTML 1.1 (and XHTML-MP) , Javascript 1.5, CSS 1 and 2 (partially), graphic formats (jpeg, png, gif, etc.), HTTP cookies, HTTP 1.1, SSL3, IPv4 and IPv6, etc. Their last version even supports ATOM/RSS feeds! Have a look at their page about Netfront or view the animated gif.

read on about: Netfront installed on over 200 million devices

Bidirectional Feeds for cooperating apps, by Microsoft

Simple Sharing ExtensionsThis is yesterday's news – or the day before yesterday – but i had to mention it. Microsoft is at it again! But this time it's bringing something useful onto the table and even releasing it under a proper license.

If you have been paying attention to the web you already know what RSS feeds are and how they work – if you haven't, drop me a line, i'll be glad to let you into the party. Now Microsoft has developed an extension to the RSS and OPML formats called Simple Sharing Extensions (SSE). Its purpose is to enable the sharing of information in both ways, which will enable the construction of cooperating applications on top of this spec.

read on about: Bidirectional Feeds for cooperating apps, by Microsoft

MySQL meets Ajax + password protected folders

This has been out for a while now, but i haven't had much time in the past few days to sit down and write this through.

I'm sure you all know and most of you have used phpMyAdmin, one of the community favourite Database Managers out there for MySQL. Even though it's very well built and very robust, some simple operations – like simply editing some record that, for reason, went bad – become a many step sequence. Login, Select Database, Select Table, Browse, Go to record, Edit...

But now, some very clever dudes over at TurboAjax.com have put together a quicker-to-use manager for MySQL, named TurboDbAdmin. It uses AJAX and even though it doesn't have any kind of fallback version – ie, one that doesn't require Javascript to run –, i'm fine with it. It's an application made for recent browsers. Just like a requirement for some other piece of software, this requires Javascript to be enabled (and XmlHttpRequest Object support). It would be cool to edit my DB from my mobile, but i'll wait for some other clever dudes to write a mobile MySQL Admin. MyMobileAdmin sounds like a cool name, doesn't it? Here's a screenshot of the little ajaxian bugger:


Screenshot
website | live demo

read on about: MySQL meets Ajax + password protected folders

I knew this day would come

Yes, finally, i got my first comment-spam. And they came in groups of three, to boot! Oh, the horror!


Spam

Now i don't mean to sound cocky, but i wasn't expecting this to happen, specially since i didn't write some sort of RPC-XML mechanism for comment posting, nor did i use an out-of-the-box CMS. Now, i'm still using an XHTML form, sending variables through POST method, but still, the names of each field aren't necessarily equal to any CMS out there, so i assume the spam-bots have to be a bit smarter and get a list of fields from the form, populate them, and finally submit them to the URI specified in the form's action attribute.

So you can understand my surprise when i woke up only to find three spam comments on some not so recent posts. They didn't show up on the site, but they were showing up on the Comments RSS Feed. A little tuning (three words added to the SQL query) and they didn't show up on the feed anymore.

Using a home-grown CMS has its advantages, but i'm not as invulnerable to comment spam as i thought i would be. I'm sure there will be more in the future, and they'll be fiercer. All i have to say is...

Let them come, there is one Dwarf in Moria who still draws breath.
- Gimli the Dwarf

CSS Reboot Fall 2005 - highlights

C S S Reboot Fall 2005If you're in any way connected to webdesign – or simply a curious fellow – then you probably heard about CSS Reboot. If you haven't, very quickly, it's an event where thousands of webdesigners around the world coordinate an effort and redesign their websites and present the results during the same day. This time, November 1st was the target.

Browsing the galleries, you can obviously see it was a success. Lots of rebooters and some very high quality layouts. I've been browsing the galleries on and off ever since the reboot and i've chosen to mention a couple of entries i thoroughly enjoyed.

read on about: CSS Reboot Fall 2005 - highlights

The wonderful world of Dual Desktops

Dual Desktops I just recently noticed i had an "old" 17" Dell monitor gathering dust at my parents' house – yeah, i had forgotten all about it –, so i thought about bringing it to Lisbon and setting up my own dual desktop system. Now, i had never really worked in such an environment but i could obviously see the advantages. Increased desktop area is always nice – the virtual, not the real desktop –, but what i was really curious about was how to take advantage of it in real everyday situations. That's exactly what i'm going to explore in this post.

read on about: The wonderful world of Dual Desktops

World Usability Day

(há uma versão portuguesa desta entrada.)


World Usability Day - logo


It has started! The World Usability Day is on the move. As i start typing this, we're currently at the 12th hour of the day (of 36 hours).

There's a bunch of activities going on all around the world, and you can keep track of what's happening every hour on the official site. Portugal is no stranger. Human Easy is the local leader for the event in Portugal and counts with APPU to lend an helping hand. The 2nd Usability Seminar will be part of the day's initiatives.

The Portuguese website of the WUD has a list of all the events. There will be a live video webcast for the events taking place in Lisbon (at the IST). To watch the video streams, head over to the gael page created for the event. I'm not sure if the videos will be kept online for post-mortem consumption or if it will be a one-time stream.

I'm sure there will be podcasts of the events and if you're interested, bookmark this page, because i will edit it later with all the media i found on the web. Stay tuned.

For those of you who will attend any of the events going on world wide, enjoy. Unfortunately, i won't be able to attend any of the sessions but i'd be glad to hear your experiences..


Related Links

Here are a couple of links i found on the web with relevant multimedia files.

Antony at the Coliseum

[Antony live - not in lisbon]As previously mentioned, Antony and the Johnsons played the Coliseum last night. I was there and this is my account of the event. Sorry, I didn't take any pictures. Will use a couple from Google Images to avoid a text-only review.

As i got to the room, the opening act was nearly finished. Currituck Co., who curiously is one of Antony's two guitarists. I was surprised to see a couple of empty chairs – given the demand for his latest album at music stores – , but they weren't that many.

Before it all started, i did what i always do. Scanned the crowd. As some of you might remember, i mentioned this in my review of the Jack Johnson concert, back in May. This time, the very same room welcomed a much more mature crowd, with ages ranging from the late teens to late 60s. Quite impressive. I wasn't exactly expecting that, but crowds can be a total surprise.

read on about: Antony at the Coliseum

Server problems?

(há uma versão portuguesa desta entrada)

Have you, my dear readers, faced any problems when trying to access my website in the past few days? I'm asking this because i've received a couple complaints and i'd like to know whether it's an isolated problem or if it's something that needs my full attention.

Be it long page loads, error pages (404, 500, etc.) or simply failing to load a feed, i'm interested in hearing reading from you.

For the past couple of weeks, my hosts have been having problems related to DDoS attacks, which i mentioned in the post New trends in hacking. On top of that i'm consistently running into problems, which seem to be the aftermath of these attacks. Now i'm trying to learn whether this is a serious issue that is affecting my visitors in general, and if it is, i'll start looking for alternative hosting at once.

If you haven't felt any problems at all (or if you run into problems in the future), let me know through the comments to this post. The more info i get, the better.

Thank you in advance.

Flock - The Browser who went Social

Flock Developer Preview is out. Go grab it. But before you do, you might want to know what's so great about all this "new browser" everyone's talking about.

Just to make things clear, Flock hasn't launched yet... this is a preview of the final release, so i don't think it's correct to say "Flock Launched". Specially when they mention in their release notes:
We do not recommend that you use Flock 0.5 as your main web browser.

With that out of the way, let's move on.


[Flock image]

read on about: Flock - The Browser who went Social

Changing a programming habit?

For the past week i've been busy with two projects – actually, more, but never mind. One of them, for PSD (Programming in Distributed Systems, 4th year), was building a system on top of Apache using a CGI written in C which was making Remote Procedure Calls (RPC) to a server on some other machine. On top of that, we had to make HTML form verifications in Javascript before sending any data to Apache. Sweet.

The other one, is not completed yet but it's moving along nicely. It's for the subject VIS (Visualization, 4th year), and we have to build a 3D representation of a college building (C2 @ FCUL) using Microstation (similar to AutoCAD, but way worse).

Needless to say that the for the PSD one i was in charge of – among other things – writing the javascript part. We ended up with a very robust form, which was being verified as the user filled it in, giving instant feedback to the user. One of the fields, the e-mail address, had to be checked whether it existed on the database or not, so for that i used a little AJAX magic. It was the first time i used it in a school project, and since this verification bit will also be evaluated, i'm waiting to see what the teacher has to say about it. ;)

Anyway, that's not why i'm making this post. During the coding of the RPC client (CGI) i was faced with a personal challenge.

read on about: Changing a programming habit?

Microsoft and Yahoo! - Tearing down the wall

According to Betanews (article), the two giants will join forces and connect the users from both networks. Assuming this story is authentic – and i'm lead to think it is – people will have no more excuses to stay with MSN and will be able move to a far more complete client – YIM – but most of all, it will show that both Microsoft and Yahoo! acknowledge the power within Google Talk's inter-operability.

I don't care which side will win the war – will the dark side have its way? or will the Jedis have something to say about it? – but as far as i'm concerned, this is good news. Of course, the utopian dream of having every major IM networks under ONE roof – and i don't mean roof as in "client" – is still pretty much impossible, but i'd be happy if we ever reached a point with all of them spread under two roofs. No? Even if we have to wait decades? ;)

More articles

There's an article now on slashdot. The comments are always worth reading.



By the way, sorry for the lack of major updates, but i have two major school projects to turn in by monday and i'm heavy at work. I'll try to update the quickposts as often as i can, but i'll be back in no time. I already have a set of semi-completed posts, so don't worry, i'm not MIA, i'm just busy. ;)

Pulling variables out of Arrays in php

(há uma versão portuguesa desta entrada)

Last night I was writing some PHP code – a simple upcoming feature for the blog – when i had to once again query the MySQL server, and use mysql_fetch_array() to grab the returning data. Some of you probably use some fancy PHP Class to interface with the server, and you should. But for some odd reason i prefer to do this way.

So, i end up having an array – which i usually call $raw – with a couple keys and values:

Array
(
[id] => 1
[field1] => test
[field2] => another test
)


Now, if you want to use this in a string, you either echo it like:

echo "this is the value of field1: " . $raw["field1"];

Or you stick it in a var and use it directly:

$field1 = $raw["field1"];
echo "this is the value of field1: $field1";


Ok, but most of the times you're simply creating a local variable with the same name as the key. So I came up with a very short function to pull out the variables from the array. It can also be useful to extract session variables, but it can be used pretty much in every similar situation.

function pull_vars( $target ) {
foreach( $target as $key => $val ) {
global $$key;
$$key = $val;
}
}


Attention This can cause some clash between these and other variables. Be careful with the names of the variables used. If this happens, you can solve it by giving an alias to the fields in the MySQL query: $sql = "select title as ptitle, datetime as dt, (...).

Stick this in a file called pull_vars.php. Now include it on top of every page and call it every time you need to unpack the variables in the array returned by the MySQL server. Just for the sake of completeness, here's how you call the function:

pull_vars( $raw );


Thought i'd share this little tip, might be helpful to some of you. ;)

Serenity (review)

Highly RecommendedLast wednesday, i had the pleasure of being one of the lucky bastards that attended the pre-screening of Serenity in Lisbon – thanks to a hard-working fan. ;) For all you Portuguese-speaking fellows, there's a great post about this movie and its director over at Nuno Markl's blog.

Anyway, here is what i thought of the movie...

Serenity, the movieRight from the beginning i realized they were going to explain everything so the people who hadn't seen the tv series would understand the story and enlightening us – the fans – on several issues while they're at it. So for all of you who are dismissing this movie simply because you haven't seen any episode, think again, because the odds are you'll like it – i haven't heard a negative opinion on this movie. And if you're one of the fans, i don't need to tell you to go watch it, but i will tell you it didn't disappoint me — at all.

So, with that out of the way, let me plunge into the movie itself.

read on about: Serenity (review)

New trends in hacking

Hacking is nothing new, pretty much everyone has heard the term and is familiar with its consequences. Maybe not everyone know the difference between a hacker, a cracker, a phisher, etc., – and i won't get into the subject here – but it's widely known they aren't the best people to have as your enemies.

One of the most basic attacks is the Denial of Service (DoS) and i'm pretty sure most of you already know how it works. A huge ammount of requests are made to one particular server which will cause it to overload, bringing both him and his services down. This is what happens to pretty much every site posted on /., unless you use Coral Content Distribution Network, developed at NYU. tip: To use it, simply append nyud.net:8090 to the domain of an url. For instance, to access my website you would type http://andr3.net.nyud.net:8090.

Anyway, the new trend – actually, it's not that new – is to use farms of zombie pcs – ie, infected Windows XP machines – to unleashed a Distributed-DoS (DDoS). The infected computers have a process running that will join an IRC channel and then respond to their "Masters" orders. This is much more powerful, given the number of vulnerable PCs around the globe. Furthermore, the owners of those computers have no idea their little machines are playing a part in a criminal act. Your computer could be one of them.

There will always be hackers, that's true. The icky part of all this is that now hackers work with commerical and financial goals in mind. They take part in competitions between different firms to generate revenue through the ripple effect caused by those attacks.

For instance, recently, my hosting provider, powweb, has been targeted several times by these attacks. Now, who could possibly be behind these attacks? I have no idea, but it's very possible they're aiming at deteriorating their service so that their clients become unhappy and start considering changing hosts. You don't need to be a rocket scientist to figure out who wins in this scenario.

Although, to all fairness, this could be just a side-effect of someone attacking one particular website which happens to be residing at my host. Perhaps someone made other someone angry? Perhaps. But option a) is still possible.

Firefly and Serenity

I've been putting this off for far too long!

Did the title mean anything to you? If not, then this post is for you.

Pilot Episode Screencap Last year, a friend of mine mentioned a great tv series by Joss Whedon – creator of Buffy – that aired in the states in 2002 and was coming out on DVD at the time and described it as a Futuristic Space Western. My reaction was: o_O Are you kidding? No, she wasn't kidding and i decided to give it a chance. I watched the pilot episode and was immediately hooked.

read on about: Firefly and Serenity

Pay attention to backgrounded text

(há uma versão portuguesa desta entrada.)

I'm sure you've all seen blocks of text which have a color or an image as a background.

Most of the times – not always – that i see this people often make a pretty common mistake slip-up. By not leaving a space between the border of the text block and the text itself, you create a feeling of choking. Check out these examples.

Which of these two examples seem more comfortable to you?
This text block or this text block?

This is an even better example since the outer background color is the same as the inner text color, the boundaries are sort of blended. This is more readable.

The code to create the adequate padding couldn't be simpler. I'll apply the rule to the class .highlight.

.highlight {
padding-left: 3px;
padding-right: 3px;
}


It can still be shorthanded to padding: 0 3px 0;, if the padding-bottom and the padding-top are zero. If they're not, adjust the values.

Webdesigner vs. Coder

When i started building websites, which was around 1998, i didn't realize i was embarking on a long-term journey. More than that, i didn't know people would eventually assume i wasn't a coder/programmer simply because i designed websites. Last year, i took a class in which we had to build a website using HTML and Javascript. To me, it was pretty much the daily work that i'm used to do, but to a lot of colleagues it was a new thing. I heard a lot of people saying HTML isn't for me, this is for designers. I'm a programmer., and that made me think about how i considered myself. For some reason, the issue awoke in me today.

Pretty much all of the websites i've been a part of in the past were done on my own, so i had to do all the work. Designing, image-editing and coding the needed scripts which were in Javascript at first, but later i started working with PHP, MySQL, etc. (check my bio). So now i'm a bit trained in all those areas, although, i don't see myself neither as an accomplished designer, nor a very hardcore coder. I've never went to school to learn about design and image-editing, but i have been taught to program in various languages both in high-school (Pascal, C) and lately in the University (Haskell, Java, Prolog). I've also learned a couple other languages on the side.

I do believe it is possible to be both a webdesigner and a coder at the same time, although, it's a tough job excelling in both areas.

Some people are capable of creating great designs and writing stunning server-side coding, such as Mr. Inman and Mr. Orchard (just to name a couple). But i'm not like those guys, i'm a mere wannabe-designer and an average programmer, so i'll stay in my little corner, reading, learning, absorbing as much as i can, both design and code-wise. Later, depending on the roads i choose in the future, some of this might prove to be helpful in some way. At least, i hope so.

Now, if possible, i'd like to know a bit more about my "audience" – I know you're there, i see the statistics. ;) How do you see yourself? A designer, a coder, both or none of that?

Cinderella Man

It's been a while since i wrote about any movie, but i promise i'll try to keep it short. If you think these reviews are too long, let me know, I don't want to bore you to death, now do I?

Russell Crowe as James BraddockRon Howard and Russell Crowe meet again and produce another good movie together. This one tells the story of James Braddock, a legend in boxing who lived through the big Depression of the 30s under great difficulties and ended up restoring the hope of many fellow Americans. Russel plays James and shares the screen with Renée Zellweger, who plays the wife. Paul Giamatti concludes the holy trinity of the cast as James' agent.

read on about: Cinderella Man

Keeping your CSS fresh and cached

I don't know if you have this problem or not, but at least around here i've had to update my CSS file quite a couple of times, specially in the beginning since i was using new elements in my posts that weren't already styled. For example, when i wrote my first post about a movie, i had never styled the rating box before because i hadn't thought of it, so I had to add that to my posts.css.

Yeah, so?

Well, for the first times that a user saw that post he was likely to see the box incorrectly since the div was unstyled, because his browser was using the copy in cache. Not until that copy was refreshed did he see the correct style.

read on about: Keeping your CSS fresh and cached

Archiving my QuickPosts

Perhaps you've noticed how incomplete my quickposts page is, specially for not having any pagination system or archive – not to mention the lack of listing by tags.

Well, today i updated it with an implementation of an archive where you may list the quickposts by month. Soon, you'll also be able to comment on each post, although that isn't a top priority on my list, given the ammount of comments – or lack thereof – in my main blog. But i still believe the problem is in my posts and not in the users. ;)

If you find any problem whatsoever, let me know.

meebo - the real Ajax IM

MeeboSome of you might remember one of my quickposts about an AJAX Instant Messenger. At the time, some people were unimpressed and wanted to have it connect to real IM networks.
Well, for those guys there's now meebo.

Meebo connects to AIM, MSN, ICQ and YIM networks from within the browser. This could be a great solution for those times when you're behind a firewall that doesn't let you through or when at a computer with no installing permissions.

Here's meebo in action:

[meebo in action]


As you can see, i'm connected both to AIM and YIM. There's the Buddy List on the right. I'm talking to myself on the center and there's a news box from the fellows working on meebo on the left.

It's still a bit buggy, but hey, it's in Alpha phase. Just keep this bookmarked for future visits, but for now, it does what it says it does. Connects you to all these networks and lets you IM your contacts.

Impressive Slideshow of Katrina

The link is down. If i find a backup copy around the web i'll edit the post to include the link. If you find it, leave the link in the comments, please. Thanks.


This the most impressive slideshow of pictures taken before, during and after the Hurricane Katrina hit New Orleans. They were taken by Alvaro R. Morales Villa who endured the strength of the storm and lived to tell the story.

Here's his story.

It's worth taking your time to read every caption and pay attention to the detail in every picture. They tell the story in such a real way that nothing else i have seen on TV comes close to this.

Here's the intro:

KatrinaPROLOGUE: On Sunday August 28 I woke up at 5 in the morning to go to my morning job at the Chateu Sonesta Hotel. The night before, we had been warned that Hurricane Katrina was preying her eyes upon us. In the history of New Orleans, there has NEVER been a direct hit by a hurricane. In everyone's mind, this hurricane would follow the same path that hundreds of past storms had done before. However, because of the size of the storm and ferocity which it tore through South Florida, the citizens of the The Big Easy prepared themselves as best they could... this is my tale of the events...



via: a whole lotta nothing

Full live shows up for grabs

Fabchannel
fabchannel.com


There i was, looking at a recently discovered artist's website when i followed a link which led me to one of the most amazing websites i've seen lately, even if only due to it's content. I'm not a big fan of the use of Flash in certain types of websites, but that's a matter for another day. Moving on...

watching a streamAt first i was surprised that they had a full live show of Andrew Bird available as a 500kbits wmv stream – amazing quality, if you have broadband. there's also a 56kbps stream for dial-up users – , which i devoured happily. It was after that when i realized how BIG their list of available shows was! They're featuring 380 full live shows – and counting! – recorded mostly at the Paradiso, in Netherlands. If you're expecting to see a bunch of unknown band names, you're in for a surprise.

Here's a little sample of who they have there.

  • Andrew Bird
  • Damien Rice
  • Danko Jones
  • Flogging Molly
  • Death From Above 1979
  • Morcheeba
  • Trivium
  • The Arcade Fire
  • Sarah Bettens
  • Stereophonics
  • Nightwish
  • and lots more...


So even if you're not into any of these bands make sure you check the whole list because the odds are you're going to find something you like.

Plus, there's an RSS feed, so you can keep track of new shows available on the site. There's also a mailing list, if that rocks your boat.

Trying to add old flavors to Mint

Last night I was reading a post by Bryan Veloso in which he expressed his desire to import the data in his ShortStat to Mint and something happened. Well, almost. Read on.

MintThe php coder inside of me felt impatient, mainly because I hadn't seen any mysql tables from Mint, but i had from ShortStat. I knew Shaun had said Mint was built completely from scratch, but i wouldn't expect him to trash his earlier work, so i thought Mint ought to have relatively similar tables.
And it – kind of – has.

read on about: Trying to add old flavors to Mint

New Skool DOM Scripting

New Skool Dom ScriptingI found a very good presentation about Unobtrusive Javascript by Steven Chipman which he made for his colleagues over at aol (via domscripting.com/blog) and after watching it i definitely must recommend it vividly to anyone interested in javascript and specially to those who have joined the AJAX bandwagon. It won't take more than 20 minutes of your time and it's worth it.

It covers topics such as keeping markup, presentation and behaviour layers separated, graceful degrading in case of Javascript/CSS/Images not being supported, semantic documents, mentions the newly formed WaSP Dom Scripting Task Force and more. It's followed by an interesting but short Q/A.

Some of these are the reasons for me being unhappy with certain parts of my website, which i hope to fix in the future. As someone once told me: Don't apologize for «old» code, it's there to remind you of the progress you've made since then. Still, that doesn't keep me from improving it. :)

To watch the video you'll need Quicktime 7, which is only available for Mac. For windows, there's a public preview you can download. If not, just listening to the audio will give you a pretty good feel of the presentation.

Watch the video.[slayeroffice.com]

Old Standards and the Mobile Web

I've been working on a personal project lately, and even though i can't reveal much for now, i can say it'll target almost exclusively mobile devices with the ability of browsing the web – mobile phones, PDAs, portable game consoles, etc – and just the other day i bumped into an existential question. Is it still relevant to develop pages in WML?

You might think this is a stupid question and that the answer is an obvious no but once you take into consideration this 2001 press release in which Nokia announces the first XHTML Microbrowser you'll see these browsers were made available just 4 years ago – a bit less than that to be exact, end of 2001. So when you think about the average time people take before switching to a new mobile phone model and how many of them can't afford/aren't interested in high-end phones you'll see there's still thousands – probably even millions – of active mobile phones that only support WML around the globe. So it's not really a stupid question as it might appear at first sight.

read on about: Old Standards and the Mobile Web

IE7 drops root node selector hack

Justin Rogers announced on the IEBlog that IE7 will not support the known * html hack while running on strict mode. All the IE-only Rules you include in your CSSes using this hack won't work on IE7.

Don't panic!

If this was an isolated decision, this could break many many pages around the web, but with all the fixes they're doing on the rendering engine, all the rules you were adding just for IE, will probably be pointless in IE7.

This makes sense, as Justin pointed out, because if you have IE7 recognizing CSS2.1 selectors and also recognizing this hack, the result would be elements being affected by both rules and this could lead to incorrect styling of those elements. So, dropping the hack ensures IE7 will apply the rules according to the CSS 2.1 standard, and not the IE-only rules.

They've already announced they're fixing lots of know bugs, and now, they also announce the improved support of:


  • multi-class selectors
    (p.red.yellow)
  • better Pseudo-element parsing
    (p:first-letter{ color: blue; } should be valid).


So, as you can see, the Microsoft + WaSP joint task force is producing some – pleasant – results. Another good result is that ASP.net 2.0 will generate valid XHTML 1.0 code.

If you still feel the need to use this hack, you can make it work on IE7 by making IE enter quirks mode, because it was only removed in strict rendering mode. You will loose all the fixes they're doing to the strict mode, though.

These could be catastrophic news, but seeing their effort in fixing the CSS bugs in their rendering engine and bringing as much support of CSS 2.1 as possible, i don't expect it to be catastrophic. This could be yet another step towards a world in which you don't have to include browser-specific hacks to display your website correctly in every browser. :)

The Hitchhiker's Guide to the Chocolate Factory

That's what you get when you mix two movies in one post. ;)
(skip to The Hitchhiker's Guide to the Galaxy)


Charlie and the Chocolate Factory

Willy WonkaAt last! The long awaited Tim Burton's adaptation of Roald Dahl's wonderful book that has inspired children throughout the years has arrived. It's been out for a while, but i only just got around to see it. The expectations were very high, mainly because the dream team got together again; Tim Burton, Johnny Depp and the musical genious Danny Elfman.

The movie starts with a – typical – dark tone, showing Charlie's family and how poor they are. What goes better with cabbage... then cabbage? his mother asks rhetorically. The house in which they live seemed to be taken out of Nightmare Before Christmas – the acclaimed Tim Burton's first animation film. With a skewed architecture, which only helped to set itself apart from the rest of the landscape, the house was situated just down the road from the chocolate factory. No wonder Charlie loved Wonka's candy. ;)

read on about: The Hitchhiker's Guide to the Chocolate Factory

Google Talks, but who's listening?

Google TalkEveryone's talking about Google Talk, so i'll just join the bandwagon.

Last night, downloadsquad published a review with screenshots which sparkled a desperate search for the leaked binary over at digg (read it here, quite a long page. it's freezing up my computer) , so everyone knew it was only a matter of hours until Google finally released their IM/VoIP client.

Plus, some people Рincluding myself, thanks to Jọo for the heads up Рwere able to login into talk.google.com using the Jabber Protocol. Nothing new there, since we weren't seeing the app. But we were in, for just a while, then, all we got was a "405 Method Not Allowed".

Today, when i arrived to the Internet Land, lots of people were already speaking their minds about this. Here's a couple link I found interesting.


  • Google Gets to Talking
    Google Blog – kind of an official announcement.
  • Update on Google Talk
    Celso Martinho – A look under the hood.
  • Google Talk?
    The Tao of Mac – Rui Carmo's take on this. I share his fear. Skype and Gizmo are far superior VoIP solutions, but with all the GHype... you never know.


And i'm sure there are more –but my thunderbird died, so no RSS for me. more on that later – but for now that's what people are saying.

I know Kottke must be surprised, because the only web integration i've seen is integration with GMail. Message notifier and Contact List support.

Opinions

My first reaction was... *shrug* ...it's just another IM client. Sure, it supports VoIP, but so does Skype and i don't use it. Sure, it has integration with Gmail, but i already have Gmail Notifier. Adding contacts straight off my Contacts List on Gmail? Cool, but not absolutely necessary. Webcam support? Not that I use it, but still, there isn't any. Extras, such as smileys and avatars? Nope.

Hmmmm... so as you can see it's a pretty lightweight IM client, with two powerful features built in, VoIP and openness that the XMPP protocol provides. People with other clients can contact GTalk's users. That's a good thing, but that doesn't solve the problem of Linux and Mac users not having a full fledged application.

Yahoo! Instant MessengerIf all you want is a very light messenger, then Google Talk is the Instant Messenger for you. If not, there is always the overlooked Yahoo! Messenger which pretty much kicks every IM client's ass. Also has voice and furthermore has webcam support, integration with personalized Radio Stations, games, etc. Pretty much everything you'll ever need, but people just don't adhere. I don't know why... My contact list on MSN is huge, while i have more fingers on my left hand than contacts on my Yahoo! contact list.

In my humble opinion, it's a good attempt, but not good enough. Is this the beginning of the end for Google's Earth Universe Domination plans?

Hey, I still love my GMail, GMaps, GNews, GAlerts, etc. (^^,)

While talking to João, he was trying to send me a file when we realized it doesn't even have File Transfers! Now, that's disappointing. I hope they're not expecting us to send files through GMail... :rolleyes:

The interface is pretty slick, though. Cool notifying system. Either through balloons on the systray or by flashing the window and showing the user's last message under the name.

The portuguese ISP/Portal Sapo wants to talk the Google Talk. [in portuguese]
Let's see if they'll walk the walk. :P
(via)

Will more messengers follow? Will GTalk unify the Instant Messaging World? Stay tuned...

The Merchant of Venice

I'm not a big fan of adaptations to the big screen of Shakespearean plays, but this one caught my eye, despite not having the slightest idea of what the story was about – well, i knew it was in Venice. :)


Bassanio: Do all men kill the things they do not love?

Shylock: Hates any man the thing he would not kill?

What can I say about this movie? It has one of the most impressive scenic performances, by an actor, that i've ever seen. Al Pacino has distinguished himself ages ago among the myriads of other actors who strive for recognition. It's amazing that after all this time he can still surprise us with intelligently chosen roles and matching performances. Recently, he took by breath away in Mike Nichol's Angels in America as a dying man.

read on about: The Merchant of Venice

My first steps in AJAX

First Steps in AjaxI had to start sometime, given my past experiences with Javascript, but i had to get some stuff out of the way first – namely, this website – so that i could dedicate an evening messing around with this new technique – not technology – without other stuff in my head.

It wasn't hard to pick up and i was a bit surprised by the simplicity of it all. I had some issues putting it to work, but that was mostly due to the fact i was working on a computer without access to the internet, thus no google for me. I figured it out in the end, and put together a very simple page which basically asks for an XML file through AJAX, handles it and displays it on the page – i still need to check if XSLT works in this environment.

read on about: My first steps in AJAX

Free comments for everyone

(há uma versão portuguesa desta entrada.)

I've noticed there are some people that come on the website, read the posts, but don't comment.

So i was left wondering whether the fact of forcing the users to register (which only takes, 30seconds, at the most). The only way of knowing that is enabling comments from unregistered visitors. I've written a couple more lines, and now it's done.

Free commentsYou can now comment without being registered, but i still strongly suggest you to register. Why? Well, you will loose your navigation preferences every time you close your browser. If you have an account created, you can choose to auto-login which will load your preferences from your profile, including the site language, language filter, number of quickcomments, number of posts per page and your timezone.

Also, your comments will receive a label, saying unregistered user, which is very uncool. ;) Cool people register. hehe

I will leave this up for a while, and if the number of comments rise, i'll leave it. If not, i'll remove it, because I prefer the other way. It's better for identification purposes as well as safety – namely comment spam.

On the other hand, the low number of comments might have something to do with the lack of interesting posts... hmmmm... that could be it...

If you detect any bugs, i would appreciate if you reported them on the feedback page.

Postcrossing.com

Postcrossing.com
Postcrossing.com


This is a fairly recent website / project based on a very interesting idea which was born out of a love for receiving Postcards. This was how Paulo Magalhães came up with the idea, he just liked to receive postcards.

Basically, it's a website for Postcard Crossing. People register on the site and then receive addresses to which they can send actual paper Postcards – don't want you to think it's just another e-card website – via snail mail.

Even though they've only started a bit over a month ago, they already have 1598 users from 53 countries, 993 postcards have been received and 2817 are on their way!! Seems like great statistics, if you ask me.

There is one aspect that – kind of – concerns me and it's that some people will have access to my address, but since it's based on a random system, the odds of getting a stalker are quite slim. And not every stalkers are bad, mind you. ;)

It's pretty easy. You register on the website and you can request an address right away, which will be e-mailed to you. You then mail the postcard and when the person receives it, they go on the website and register that postcard. That way they'll keep track of how many postcards are sent, are received and how many are still traveling.

Some people have said it works, but i need to see for myself. :)

Take it for a spin, if you'd like. Let me know if you get any postcards. ;)

RSS Feeds don't have to be ugly

Why is it that 95% of the feeds i come across are unstyled? Is there a logical reason for this? Unstyled feeds are ugly and unappealing, but on top of that are repelling to the common user, who will dismiss the page thinking an error just occured.

If a user clicked on the feed, it's because there is an interest in that particular feed. Now, what do you prefer? That he/she will go away frustrated due to their ignorance, or guide them as well as you can to how they can use the feed? I'm pretty sure you prefer the later.


Comparison between Unstyled Feed and Styled Feed

read on about: RSS Feeds don't have to be ugly

A Love Song for Bobby Long

Movie Cover - detailI had some expectations about this movie, since i saw it on Leno a couple weeks ago and the clip left me mouth-watering. It didn't seem to have that much of a story at first, but the performances of the actors were pretty outstanding in the clip – as well as in the trailer – so i was left a bit curious about the whole deal.

It could turn out to be an utter and complete flop...

read on about: A Love Song for Bobby Long

Microformats used around here

Building the website I had the concern of figuring out which – if any – microformats would apply, and with the fantastic help of microformats.org I came up with only a few. Obviously, since i have tags i would need to have rel-tag implemented. Also, I was going to have links to other blogs, so XFN seemed like a must.

But before i went ahead and implemented these, I had a question.

read on about: Microformats used around here

The thank you speech

I'd like to thank the Academy, my family... errr... ops! Wrong speech... i'll save this for another occasion. ;) *gently folds paper back into the pocket*

I do want to thank a couple of people who helped me out putting this project together. From the smallest tip based on user experience to the more educated suggestion about something in the code, everything was very important to make some critical decisions.

My brother, Bruno (morph), was always very helpful giving me feedback from the user POV, and I do apologize for being so demanding, but i needed that and you were always at hand. :) Ines (Isilwen) also helped me a lot with the language aspects, and so did Rita. What point is there in designing a website if you're going to fill it with errors after that? None. So thank you both.

João Craveiro was another one who helped me in lots of technical aspects which certainly helped me out throughout the project. Oh, my good friend Marco was actually the very first person to have access to the testing versions and he gave me very important feedback - as did my dad - which allowed me to correct many errors, bugs, misbehaviors, etc. Henrique and Billy were also important tippers. ;)

I have to mention the folks over at the livejournal communities php, webdesign and webdev. They were all very helpful every time I posted a question, so thank you guys.

As you can see, I bugged a lot of people in the process, but since i can't afford to have anonymous users testing the site, i had to resort to friends, family and colleagues.

Last but not least, i have to thank my girlfriend for all the input she gave throughout these last months and for the patience of putting up with me all this time. :)

And just like any thank you speech, i'm sure i forgot some of you, but i'm sure you know I valued your help as well.

Thank you all.

Hello World!

First of all, I'd like to welcome all of you to my brand new personal website.

In this first post, i'm going to explain what it's all about and also why did I make the choice of building a blog from scratch instead of using one of the many well known CMSes out there.

read on about: Hello World!

↑ top