Here's an amazing article about Google Earth. Virtual Sightseeing, very cool concept. While compared to the real thing, it may seem pathetic, I think it'll do for now.
Domain propagation sucks. I mean waiting 7-48 hours (which, in my experience, is a total hoax) so that you’re site’s domain becomes active is totally frustrating. Moving a website from our test server to the production server will still means that we have to check several things (configuration files, database, files, etc.), and the most convenient way to check this is to see if your “live” site is running perfectly. Some Administration Panel like Plesk has a “Site Preview” feature that allows you to, well, preview your site. It’s not totally effective since the URL becomes cryptic and you don’t know what’s happening under the hood.
I learned this trick from one of my officemates: the HOST file. Actually, it’s like tricking your browser to look on a specified NameServer (which in this case your deployment server). HOSTS file is located in:
\WINDOWS\system32\drivers\etc\
Open it with any text editor. Here you will find tab-separated, value pairs like the one below:
# This is a comment and btw, this explains why localhost points to 127.0.0.1
127.0.0.1 localhost
Add the domain of your site and the IP of your server. Restart your browser and Voila! A sneak “live” preview of your website! Don’t forget to remove (or at least comment) it when the site goes live!
Installing Windows Vista on my newly-assembled PC was not a walk in the park. I bought a Seagate 250GB SATA Hard and partitioned it into 3: 100GB, 100GB and 32GB (the remaining part) using another PC. During the installation, I was prompted with this error “Windows is unable to find a system volume that meets its criteria for installation”. Not knowing what to do I restarted the entire set-up hoping that it’ll do the trick. Stupid idea, of course it won’t work. So I boot on my old 80 GB IDE drive, attached my new SATA drive and deleted all of the partitions (Ugh!). And it worked! The installation proceeded perfectly.
‘Turns out Windows Vista needs to be compatible with partitions (as I have suspected). I found this. Well, that was a little late. But it’s all good now. I’m feasting on Vista’s Aero. Slick!
Yesterday, the future arrived. Or at least we had a good preview about it. I'm talking about Microsoft's latest computing platform: Surface, previously dubbed as 'Milan'. I'm too lazy too discuss it's definition and stuff so I'm gonna excerpt some from the fact sheet, "Surface is a 30-inch display in a table-like form factor that’s easy for individuals or small groups to interact with in a way that feels familiar, just like in the real world. Surface can simultaneously recognize dozens and dozens of movements such as touch, gestures and actual unique objects that have identification tags similar to bar codes."
Here's more:
-
Direct interaction. Users can actually “grab” digital information with their hands and interact with content through touch and gesture, without the use of a mouse or keyboard.
-
Multi-touch contact. Surface computing recognizes many points of contact simultaneously, not just from one finger as with a typical touch screen, but up to dozens and dozens of items at once.
-
Multi-user experience. The horizontal form factor makes it easy for several people to gather around surface computers together, providing a collaborative, face-to-face computing experience.
-
Object recognition. Users can place physical objects on the surface to trigger different types of digital responses, including the transfer of digital content.
Surface is really mind-blowing! Multi-touch is one thing, but Object Recognition? Man, that is something. Here's another video demo. It will really change the way we interact with computers. I think this will benefit most on productivity and interactivity.
Dealing with cross-browser issues can really be frustrating. Just today, we spent more than five hours fixing this type of problem. For every project (or queued task), we are spending 40% of development time just to test the result in different web browsers. And that's only system test. For unit testing, we allot another 50% of development time. So all in all, for a given task, the total hours spent is almost tripled than the original estimate. This process is an overkill for me but according to my boss, this one of the most effective way to ensure quality. I can't really blame them for trying. As a web development company, they have wrestled with this kind of stuff for so long. And with the ever-changing landscape in IT, this one is really here to stay. Ugh. Right now, we have four major browsers, they are:
- Internet Explorer 7
- Internet Explorer 6 (this one is a toughie)
- Mozilla Firefox
- Opera
Tools. You gotta have tools for this. For Internet Explorer 7 I only have one, the Developer Toolbar. Its extremely useful for digging into details. The View DOM feature is good for scripts that traverse through page. For Firefox, Firebug is really handy for inspecting your page' elements. Also the "refreshable" source view is the most underrated feature of FF for developers. Try it. View your page via FF, then change its code. But instead of going to the browser to refresh and view the source code again, just press F5 on the source' code window. Neat, huh? The LinkChecker plugin is also indespensable. Surprisingly, We don't encounter much trouble in Opera (I'm using v9.2) . Whenever a page is fine with IE7, it also looks good in Opera.
I have also installed MultipleIEs, a program that bundles the several versions of IE (3.0, 4.01, 5.01, 5.5 and 6.0). You can have this versions run side-by-side with IE 7! A really cool pieace of software. Firefox is the second most troublesome browser (Next to IE 6). So we test everything first to FF then IE7 and last is Opera.
A lot of developers nowadays rarely take the time to structure UI. With advent of technologies like CSS, image-editing tools and WYSIWYG HTML Editors, developers favor productivity rather than structure of UI. Also, a lot of hype has been focused on improving the middle tier. Now hear me first, there's nothing wrong with putting most of your of effort there in fact it should be one of the priority. But it wouldn't hurt for you to take some time not to only make your UI look good but also structured. Why bother? Well, two words: Performance and Maintainability. In a web application, the usual elements in UI are styles, images and the page itself. I'll be discussing such scenario.
CSS
The creation of Cascading Style Sheet has opened a lot of areas for developers. One of them is the ability to centralize styles. So manageability and control was taken a step further. However, most developers have taken this another step further. Most developers tends "dump" everything in centralize style sheet. And make it worst by making this "centralized" style sheet linked to every page of the application. Why is this bad? First, your style sheet will now lose its structure since all of the styles from different pages are located in one single file. Second, if this style sheet is linked to a page that does not need all of the styles, it will be a burden. Solution? Organize and Localize. Prepare how to implement your styles. I always look at implementing style in a hierarchical manner. I will start by indentifying which styles are needed be centralize and which are not. Use the style tag and inline attribute to 'localize' the style. If a CSS class will only be use on a particular page, pin it there. Also, splitting your style sheets logically is a good idea. For example, if your application consists of several modules, then creating a separate for each will be a good idea. If a particular class targets only specific tag, then declare it on the style sheet (e.g. TD.myclass). This will make your intention for the class clearer.
Images
Photoshop married Dreamweaver long time ago. They're like page-popping machine! Draw your image in Photoshop, slice it, and toss it to Dreamweaver then voila! You now have an instant page. But what's wrong with this picture? No time to optimize the page and the images. I will take the page later, let's start with the image first. Slice wisely. Take time to determine which of these images can be tiled, which one can be replaced by a background color or can be substituted by styles. Solid colors can be obviously replaced by background colors. Gradients can be tiled. Strokes can be implemented using CSS. Doing this will make your page clean and breathing. Also, take some time to choose between image formats. Compare file size for each image format and you'll save some valuable performance.
Page
I understand why a lot of people are frustrated when using tables. That's because they don't know how to use it properly. I know that there much has been drive to promote DIV tag and I'm not against it. But for complicated design I still run to tables. Table gives me the control that I need to tame page elements. I always see table as the basic unit of a page. Nest tables. That's where its power resides. Nest but not complicate. Avoid too much use of colspan and rowspan by nesting tables. These attributes are the usual cause for page layout to break. It also makes page harder to maintain and troubleshoot.
All in all making a structured UI is relatively easy. Following some steps will benefit your application performance and reward you manageability.
After a few weeks of planning, I finally got the chance to put up my own technical blog. I have a very rough schedule lately since I have just started my new job here in one of the companies in SBMA. I am working as a Project Lead for Revacomm, a Hawaii-based IT company that specializes in web development for SME's and Large Enterprise. Currently, we use several technologies to deliver these products. We have LAMP (Linux, Apache, MySQL, PHP / Perl) as our primary platform for our products. This is a very cost –effective platform for SME’s. We also have Microsoft technologies like ASP / COM and Microsoft .NET. Right now, I am not handling any Microsoft Technology based project. Product customization is one of our areas. Open-source products like Mambo CMS (Content Management System) and, OSCommerce Shopping Cart are customized to fit customer’s needs. This will be fully-integrated to their website. These products are well-modularized so integration can be clean, though not necessarily be easy. These products are highly scalable when it comes to performance. Also, they come under the open-source bandwagon so the tag price is off.
I intend to direct my blog on high-level aspect of web development rather delving into the nuts-and-bolts of it. I have two reasons for this: First, my job calls for it. As a Project Lead I should try to avoid going in details when it comes to development. I believe that Project Lead needs to be concerned on decisions rather then development itself. Though technical knowhow is a must, deciding how to approach things, looking for methodologies and directing developers in coherent methods is much more important to me. This should not be true in all cases though. QC for example, which is also part of my job, requires attention in details. But since technical knowhow is a must, this should not be a big issue. Second, I am a Microsoft developer by heart. If I will go to that level of details, I would love to do it the Microsoft way. They have provided developers with an easy, stable and robust framework that’s why it’s very inviting.
So that would be my first draw. I am targeting a 4-5 technical blogs a month (hey, easy on me. I have a job and another blog). I hope I can keep that up. Thanks and stay safe everyone!