Original Idea? Think Again
Wednesday, May 31, 2006
There are many philosophies out there. And from those, we tend to pick a few that we like and stick with them and hope we are not so wrong at the end of the day.
So when it comes to original thought, some say that there is no such thing. It is claimed we are a product of our environments. With this premise, one can question if there is any original thought out there. Well, some say no. Even if you think what you are thinking is original, chances are you studied it, heard it, read it, or saw it somewhere.
So when it comes to Web 2.0 ideas, and you think you have a very good one, check the
list first.
What is Web 2.0? New (hated?) term for web sites that let you do stuff and people start gravitating around them, for example, MySpace.com.
Actually, come to think of it, blogging is a Web 2.0 phenomenon--people can subscribe to RSS feeds.
BTW, the previous thought is probably not mine, however, I have had one original thought in my entire life so far:
The Gabriel Theorem.
Google's GWT and API Example: true AJAXism
Go to the application without reading this entry.I originally wrote my first GWT example without true backend interaction. However, a true AJAX application should, in my view, interact with some kind of server side to do its thang. So I integrated part of an older
example in this newer example (code reuse--the promise of OO).
The RPC implementation of GWT works as promised, however, you should read the documentation really carefully. But once you get it to work, I do not think you would go back to writing AJAX application any other way--it is a pretty neat tool, like I said before, that allows you to create highly interactive web apps.
What does this application do? It
still has a list of all the FIFA 2006 World Cup teams sorted into each respective group. However, this iteration performs an asynchronous live call via google's
API, which return the top 3 search result for each respective country--for each group, there are 4 concurrent backend calls.
If you see an error message, it means that google is throttling the results or I have reached my 1000 searches per day. If everything works, you should see everything
displaying properly.
This application looks like:
Google's GWT Example: Interactive FIFA 2006 World Cup Application
Tuesday, May 30, 2006
Goto the application without reading the entry.
A couple of weeks ago google released the
Google Web Toolkit.
The toolkit lets Java developers create AJAX application, without worrying about all the JavaScript and browser compatibilities.
How does it work? Google's GWT is built along the lines of AWT or JFC, i.e., it defines components that let you build Web UIs, using Java.
The key feature of this API is that developers never code JavaScript to control the UI. Everything is coded in Java, and the provided compiler generates all the functionality in a language (HTML and JavaScript) that is understood by different web browsers.
Getting so close to the World Cup, I found it fitting to write an application that almost anyone can relate to: a list of all the teams ordered into groups with the picture of the current roster.
I have a more complex application in mind: one that connects to a backend to keep track of all the games and standings. However, I wanted to see something working right away. So, this is probably the simplest application possible that I could think of, yet still demonstrate google's GWT.
Is it really using AJAX? Well, the whole point of AJAX is the
XMLHttpRequest object. This particular application does not connect to the server to fetch any dynamic information, but I did build it using google's GWT.
Overall, I can see great value in using this API to build highly interactive applications, with minimal effort--if you know Java, you "know" AJAX.
As a company, are you looking into using google's GWT?
The application looks like:
Update: A couple of people tried the application with FireFox and it did not work. And I tried it with IE 7 and it did not work.
I took a look and these were issues:
- For IE: google released a new API version--they are up to 1.0.21; originally, I had compiled the app with 1.0.20. It now works with IE 7.
- For FireFox: I am using (similar to the KitchenSink example google provides) the tab display name as the tab identifier within the code. Apparently, FireFox's JavaScript engine does not like the "space" character for field identifiers. So, to fix (and if you run with the same issue), just do not use "spaces" for identifiers--in my case, I just replaced it with an underscore "_" and it now works with FireFox (at least my version 1.5.0.3). These quirky little things are hard to find, sometimes--or perhaps it is a bug in the API ;)
Starting and education in IT
Sunday, May 28, 2006
Someone at slashdot.org asked the following
question:
"It's overwhelming to start trying to learn all the different technologies needed to go into programming. It seems that every type of technology assumes knowledge of a different one, which in turn requires knowledge of another, until it's gone full circle. I am interested in everything from Unix to AJAX to Perl. Things like HTML, Javascript, and SQL are like English, but then again, they're basic. Where is the best place to start? What is a good path for someone who learns quickly and easily, but who is simply too overwhelmed, to take?"
Like the typical slashdot discussion, there were some good, and not so good comments.
My response, goes along the lines of:
Like anything else, CS and IT is based on basic principles.
There are two aspect to IT: as a consumer of the technologies and as the creator of different layers of the technology.
For example, to some HTML may be enough to do what is needed to get accomplished and move on with their lives.
To others, just plugging in APIs into highly business oriented applications is enough.
However, there is a that other group of "IT" people who would like to know a bit more about what makes the whole information thing work. And those, I believe are the CS/Math/Engineering guys (when studied formally) or the hackers that play around with kernels and teach themselves how to hack (hack here doesn't mean script kiddies).
So, I think that in order for anyone to endeavour into "IT" one must choose a level to start and then move up or down the chain of knowledge.
For example: lets say someone want to start with HTML.
When creating HTML pages one encounters web servers. A curious person will learn how to set it up a whole web server to publish the created HTML pages. Once at this level, a curious person may want to try make the web server faster, or start playing with scripts (Perl, ASP, whatever). For some, this is enough. For others, finding out how HTTP works will do it (or move down all the layers in OSI model). Etc., etc.
Take the other way around (what I call: going up the chain). When creating HTML pages one encounters images (GIF, JPGs, etc.). Some may be curious and start creating their own images to embed in their HTML pages. Consequently, a more curious person may start playing around with graphics programs. Then such person may see moving images and movies and start playing around with Flash. Etc., etc.
So, in both cases one is always dealing with technology but at different levels. And all levels are OK. And if one has arrived at a full circle, then one is not looking hard enough, or there is not enough interest to keep looking. (Notice though, how HTML is the pivot to everything else).
Having said all this, if you have a formal education in Mathematics or Computer Science, you will notice that everything is based on first principals and everything comes down to the manipulation of data.
If there is no formal education, then pick something and be curious and start going up and down the chain. At some point you'll find out that you know more than what you think you know. And most importantly, anything you would have learnt along the way is of value to someone.
On a final note, you don't need to know everything about anything to be useful to someone or be interested in CS or IT.
Personally, I like coding, but I don't do assembler coding--I know how to do it, well, I learnt how to do it, but I rather not and that's OK with me.
What is your take on the subject?
ThinkPad X60s review
Wednesday, May 24, 2006
In a previous
post I wrote that I bought a new ThinkPad X60s laptop. In fact, I am writing this entry in said computer.
Before buying it, I researched the computer to make sure the machine actually is what most reviewers have said it is, namely, a good laptop.
This informal review is subjective, as I really like my new toy. So if you are in the process of buying a new
machine and are reading this review to aid you, note that I am mostly writing good things about it because I have not found many faults with it, except for one.
The BadMost people are not too sensitive to the heat of laptops' palm rests, and some actually accept it as a compromise for having a small computer.
This machine is not much different from other small-factor laptops (when it comes to heat) and the X60s suffers from a hot (warm?) right hand palm rest, which is where the wireless card is installed. The heat is much more noticeable, for obvious reason, when you are using the wireless network adapter heavily, and when on AC power.
Right now, I have the wireless card turned off and there does not seem to be much heat emanating from it. Though it is a tiny bit warm (from 1 to 10, and 10 being the hottest, I would qualify it as 2), i.e., if you check for it, it is noticeable.
Even though it gets warm, I do not believe the heat of the wireless card will fry anything inside. Nonetheless, the model I bought also comes with a 3 year warranty, so if it breaks, I can probably get it fixed.
Is this a returnable offense? For some it is. I think I will deal with the heat.
The GoodThere are a few good points about this laptop:
- The Display
The display is bright and readable, with good viewing angles.
It is also equipped to impress your peers with cool cheap tricks: the video card lets you flip the image around at will (horizontally, or vertically).
I still have not found a good use to flip the content of my display (perhaps DaVinci would have found it useful), but I think this feature would come in handy while showing something in your display to someone across from you--no, do not turn your computer around; just press "Ctrl-Alt-Down Arrow" and voila.
The max resolution of the 12.1" LCD screen is only 1024x768, but most users are used to it. However, the small resolution may be an issue if you are coming from a 14.1" 1400x1050 display: you will miss all the real state (I know I do).
One of my biggest pet peeves with LCD displays is dead pixels. I am glad to report that my ThinkPad X60s does not have any of those pesky burnt devils. Though, I have read on thinkpads.com's message boards that some people are receiving "defective" LCD displays.
- The Keyboard
Once again, IBM (Lenovo now) delivers a solid keyboard, and this time around designers decided to add a "Windows" and "Applications" key. Hardcore ThinkPaders hate the addition, but I really like them. It adds just a bit more functionality to an almost perfect keyboard.
In terms of the size, most reviewers call it a "full sized keyboard." It's almost the same size as the ThinkPad T4Xs series (I own a T40p). It is quite solid and I consider it one of the best small-laptop keyboards in the market. (I have tried a couple of HPs and Sonys ultra-portables and the X60s is not even in the same league, so any comparison is unfair to the crappy keyboards--no offense to these manufacturers, I just do not like their keyboards.)
- The Biometric Reader
The reader is just cool. You can swipe your finger to login into your computer instead of doing it the last century way (typing is so 90s).
So this feature just seems to be a neat geek trick, but it is useful and probably more secure than typing passwords. You can always type in your passwords, if your reader fails (welcome back to the 90s).
- Intel Core Duo
I have been waiting for a machine like the X60s: a portable and powerful enough computer to run various resource hungry application servers, without compromising on performance.
The Intel 1.66 GHz Core Duo delivers what Intel clever marketers "promised." There are virtually two CPUs running your machine (hence, dual core), so you can see a noticeable boost in performance.
There are some benchmarks around, but I am going with my gut feel (like the great leaders of today). So comparing my T40p 1.6 GHz Pentium M machine to the X60s feels different, i.e., the X60s feels faster than the T40p. Of course, there are differences between the two, for example, the bus speed of newer hardware has been greatly increased along with the speed of the RAM.
Note that the duoalness of the Core is not entirely realized, as there are not that many off-the-shelf application that take advantage of the multi core.
By the way, the 512 MB of RAM is not really enough for the casual user. I am currently running 4 Internet Explorer windows, Outlook 2000, one Explorer window, and one command (DOS prompt) window and I my RAM usage is around 600 MB (read, crazy disk swapping). Moral of the story: get more RAM. (I ordered one 1 GB stick from crucial.com--I am hoping it comes tomorrow.)
- The Battery Life
My model comes standard with an Enhanced 4-Cell battery, which is supposed to give me 5 hours of non-stop work time.
The truth about the specifications is that it depends on what you are doing with the laptop, i.e., if you are running all the wireless devices and doing intensive graphic and hard disk work you will see those 5 hours shrink to maybe 2 or 3. But compared to other brands the X60s has decent battery life. (I have been using it for about 1 hour without AC power and the battery meter says that I have 4 hours left.)
Note that there is a larger capacity battery (the 8-cell), with the claim to last up to 8 hours. I personally do not like the 1" it adds to the back of the chassis, so I am OK with the smaller battery, for I like the flushed look and I surely will not miss the 0.5 lb it adds to the total weight.
- The Form Factor
The strongest selling point of this laptop, like I said, is the small form factor and power it has underneath such a small frame (around 3 lbs in total weight).
The machine is expandable in different ways and it comes equipped with the usual ports you expect to find in most computers: it takes up to 2 GB of RAM (maybe 3, but I am not sure); the hard drive is the standard 2.5" drive, which you can find in any decent computer store (most models come with a 40 or 60 GB drive at 5400 RPMs) so upgrades are a snap; 3 USBs ports; VGA plug; PCMCIA; microphone and headphone plugs; firewire port; and one 1 Gbit ethernet port (the modem is standard in most computers now a days).
One thing to note about the hard drive is that it comes with a shock sensing system, e.g., you move the laptop around and it knows that it is being tilted (it also comes with a 3D rendering applet that lets you see your computer move in real time--now, that is cool). Even though it is fun to just see the system lock, this feature is actually useful in case you drop the computer when it is on--in such cases, the disk will stop from moving (all the mechanical parts), hence saving you the grief of a crash drive (literally).
This little machine has the potential to become a computing giant, given the right amount of money.
Bias aside, I think this is the best laptop around. I was truly waiting for this machine to be engineered. It packs as much power I need inside the smallest frame possible.
The new ThinkPad X line comes in two form factors: X60 and X60s.
They look the same, but there are minor differences between them. The X60 supports the faster 1.88 GHz Core Duo chip. However, I have read that it runs a bit warmer and uses more power due to the higher voltage needed to run at 1.88 GHz.
The X60s 1.66 GHz Core Duo is currently the top of the line in portability and power. But if you get either machine, I don't think you will be disappointed.
And for those interested in what the machine looks like, I took a couple of pictures of the unpacking and set up. Enjoy.
T40p compared to X60s.
Note that I have no professional relationship with any of the vendors I mentioned in this entry. All suggestions and mentions of companies come from a satisfied customer. I am marketing departments' ideal customer.
Holy jumping borders, Batman
Tuesday, May 23, 2006
Last Friday, I ordered a new ThinkPad X60s from euclidcomputers.com.
(FYI, the same model in ibm.ca's site is roughly $1,500 more, i.e., $2,999.00 CAD + 15% TAX compared to $1,700.00 US + 7% GST + exchange rate--who says our strong dollar is bad news?)
Anyway, I like ordering things online, however, I hate waiting for them because I can keep track of where my shipment is at all times.
For example, my laptop is in "Clearance in progress" status--I keep checking FedEx's tracking system every 5 minutes, as they promise (well, I don't know about promise) to deliver my new toy on May 23, 2006 at 12:00 PM, and it is 11:33 AM already and there is no sign of cleared clearance (all I want to know is where is my computer?)
Three things should come out as benefits to you from this post.
First, have you ever noticed that FedEx's logo has an arrow pointing to the right? Weird, how we don't notice things, isn't it? Can you see it between the E and x?
Second, you will now know that any shipment from the US has to make quite a few jumps between borders. Check out my computer's routing so far (it looks like it has jumped the border thrice in one day):
Does anyone know why it is jumping all over the place?
And third, FedEx's "Subscribe to tracking updates" option doesn't work.
The Dream Team
Monday, May 15, 2006
One of the dream teams to watch for in Germany 2006:
Brasil
Arqueros: Dida (Milán-ITA), Julio César (Inter-ITA) y Rogério Ceni (Sao Paulo).
Defensores: Cafú (Milán-ITA), Roberto Carlos (Real Madrid-ESP), Cicinho, (Real Madrid-ESP) y Gilberto (Hertha Berlín-ALE); Lúcio (Barern Múnich-ALE), Juan (Bayer Leverkusen-ALE), Cris (Lyon-FRA) y Luisao (Benfica-POR).
Mediocampistas: Emerson (Juventus-ITA), Zé Roberto (Bayern Múnichs), Gilberto Silva (Arsenal-ING), Juninho Permanbucano (Lyon-FRA), Kaká (Milán-ITA), Ronaldinho Gaúcho (Barcelona-ESP), Edmilson (Lyon-FRA) y Ricardinho (Corinthians).
Delanteros: Ronaldo, (Real Madrid-ESP), Adriano (Inter-ITA), Robinho (Real Madrid-ESP) y Fred (Lyon-FRA).
Truthiness
Tuesday, May 02, 2006
Funny stuff...