Google Chrome

September 4th, 2008

It’s the hot topic of the month, Google’s new browser Chrome. I’ve used for some time and I kind of liked it. I wasn’t thrilled by it. The interface is nice, it feels faster than Firefox – but I am still hanging on my Seamonkey. There is a lot of information around the web concerning Chrome, I’m sure that all of you have read at least something regarding it.

I’d like to stay in a few points:

  1. Chrome’s V8 Javascript engine is fast [1],[2]
  2. Has really easily applied security features (incognito anyone?)
  3. Has its own task manager [3] and is trying to be as robust as possible [4] – making it hungry for memory and quite heavy.
  4. It has a very simple interface, almost depraved from anything [5] and does not support extensions – that means no widgets a la Opera, no add-ons, plugins, ActiveX etc. Just a plain browser.
  5. It is fully open, with a well organized open-source community that will guarantee the browser’s continuous development.

One could think that OK, Google just wanted a browser so that they don’t need anyone else’s to operate their business [6]. Maybe not quite…

From my point of view, Google Chrome tends to look more like an operating system than a browser. It has thread and process management. It probably has also a really good memory management or will have in the near future. It has a fast Javascript engine that is being optimized and in the Web2.0 era that could easily be a GUI shell. It is minimalistic, as minimalistic as an OS should be.

What if instead or reinventing the Web and the browser, Google is trying to reform the whole world and force us into finally accepting Oracle’s and Sun’s vision, the Network Computer? But in a form that would now benefit Google.

We have cloud computing: Amazon’s S3 for storage, Google Docs for office application, YouTube for video distribution (and maybe movies in the future?) and a lot of others (Google Calendar, Gmail, Gtalk etc.) What we don’t have is a way of having all of these apearing on our screens as REGULAR applications – most people will only be convinced that a web-based application is actually serious if it looks as a regular application.

And here comes Google Chrome, which has a lot of features that a runtime system (or an operating system) has. And probably it will get more. All it needs is a minimal kernel and device drivers for the most trivial tasks. Then we’ll start seeing machines that have only a Google Chrome instance in place of KDE, Gnome, Aero or whatever else is out there in the market.

Google does not need a GoogleOS based on Ubuntu. It needs just a browser.

Google OpenSocial

November 2nd, 2007

OK, I hate it when it happens… A few months ago I was discussing with some friends that one of the next killer-apps would be a social-networking-site portal. That is a site that will let you manage all your info, photos and everything else from one simple interface and post it to facebook.com, myspace.com and whatever else is out there as long as you had an account on it.

Today I’ve heard of Google OpenSocial, which is more or less what I was talking about, but for developers. I hate it when I have an idea that is actually implementable and not time to do it myself. And more when I don’t post it so that I’ll at least be able to say that I said it first. Oh well, next time…

I’m back!!!

October 27th, 2007

Blogging has been difficult for me for quite some time – lots of other stuff to do, time was scarce and moreover I wasn’t that motivated.

Nevertheless, I’m back with more ideas than ever – I have just upgraded to the latest version of Wordpress and have new code to submit (this will happen when I’m happy with its quality).

Stay tuned – whomever is reading this “tech” blog…

Blogging for money

December 28th, 2006

For a couple of months now [1], I am using Google AdSense to see if indeed is a viable “funding” solution. The results: my total earnings are $1.89. Clearly a sum that could buy me a chocolate bar and nothing more. Overall: nope, not a serious funding option.

I have been reading quite some time for PayPerPost that basically pays bloggers for reviews. I am not against it – although I do not follow it – and I fail to see why people get so annoyed by it: bloggers get paid to make reviews for products/sites/whatever that nobody else wants to.

It is not immoral – this is being done for years in magazines – and if you are not preoccupied against or in favor, then it is indeed useful. I am not going to try it, because of limited time.

Today, I have read that MS is giving away Acer Ferrari laptops, preloaded with Vista, to certain bloggers. Oh my God, they have made an agreement with the devil. Get serious: MS wants feedback and reviews and hype, and nobody will be making noise by her/himself. If the bloggers deliver decent reviews on Vista, I do not see anything wrong in even keeping the machines they were given.

And I strongly believe that anyone who objects, is just being jealous – why do you care if a blogger makes a review for Microsoft Vista and is actually getting a Made-For-Vista laptop to do it? If you object to that, you have an option: do not read the blog.

Bill Hill @ Microsoft.com

November 4th, 2006

The other day I was at a small Microsoft Techfest in TAMU – well, basically, it was more of a college student recruiting event. Nevertheless, I always go to those events, since they always have something interesting to hear and who knows, you might also win a XBOX (some would say that their food is also good, but I do not care, as I always have food at home).

Anyways, this last event was far better than I expected, due to Mr. Bill Hill. It is always exciting to meet people that have made quite a research in the Computer Science or Computer Engineering fields, but it is a lot more thrilling to meet people that are not Computer Scientists (Mr Hill was a journalist) and after so many years they have the motivation to make things better. We only had a small talk around why the user is not been given total control on how his document looks in an ebook reader and my being an ignorant fool on this topic made things worse, but I realized how much impact his ideas have – and will have – in future’s “computers” (they might not be as they are now).

Mr Hill is one of the inventors of ClearType technology, which I think it delivers the best readability on screen – and I have to admit that readability in Windows is way better than in Linux or anything else. He is the “reading guy” in Redmond and a very prestigious researcher. I stumbled upon a couple of videos that explain his way of thinking (here and here). He really thinks out-of-the-box and guys like him are what is needed for computer science which makes a loop over the same stuff again and again.

Spam

October 17th, 2006

Attention all spammers: may you burn in Hell. I will not succumb to having people register to post comments. So, I am enabling Akismet and maybe a few more plugins to get rid of your annoying and useless messages.

Multicore CPUs and software

October 6th, 2006

Everybody’s talking now about multicore CPUs – it is the new hype. Once it was the race for MHz, some other time was GPUs and SLI, now it is more cores in a single package. The idea of having more than one CPUs in the same box is not new. Both Intel and AMD, as well as IBM and a few others had products for parallel processing and multiprocessor systems. Also, many system manufacturers had their lines of products – just think of DEC (RIP), NEC, Cray, SGI and many others.

However, the Intel Core Duo made multiprocessing mainstream. Now everyone can buy one chip and have two processors – multiprocessor systems tend to be somewhat more expensive that multicore systems, because the former often need separate memory for the processors, require more power (thus more expensive power supplies) and never became mainstream. Now, with the Core Duos and AMD’s Athlon64 X2s, anyone can have two processors in his box.

This step wasn’t sudden at all: HyperThreading was a first rough form of multicore CPUs, and the Core Duo was the next evolutionary step. However, the (r)evolution is incomplete: we don’t have the software to fully exploit multicore CPUs. The majority of mainstream software is written with one processor in mind, even if it uses threads: most software uses threads to handle the slow I/O rather than splitting computations across different threads. Even games are optimized to run on one processor. Additionaly, a lot of existing algorithms have been designed to work in a centralized environment and not on a parallel or a distributed one.

Writing efficient parallel programs is a real pain: there are many portability issues (although POSIX threads are a very good step towards portability), there aren’t any good tools for developing quickly parallel applications and there is just too much software out there that is not written having in mind more than one processors. However this applies for desktop applications and normal users, since laboratories, research institutes and companies across the globe have already parallel applications for calculating whatever they need.
There are a few attempts to standardize parallel programming (for example I am working in parasol labs of the CS dept. in TAMU on STAPL, an STL-like framework that supports parallel and processing) but they are just now being developed and it will take a while before everyone adopts them.
Up until now, we could fully exploit the dual core CPUs. Everyone runs a bunch of daemons (services in Windows) and some applications the same time. However, even a modest 2GHz CPU was enough for all these, the dual core CPUs just gave us some speedup. But what will happen if the new 4-core or 8-core CPUs will come out? Who – and how – will use the additional cores? And for how many cores would you optimize your software – for 1-core tablet PCs, 2-core laptops, 4-core desktops or 8-core dream machines?

Having a lot of threads would be an overkill for 1-core or 2-core CPUs, having too little would waste the other cores. And how is the multicore implemented? How much does the communication cost between threads? All those must lie in the back of software developers’ minds – and there is no tool to take care of it.

The bottom line is that the hardware leads the way and software is the last to follow: since we cannot stop the progress of hardware, we have to develop more efficient software.

What I wanted for the new year

July 13th, 2006

From a previous post, some of my wishes have been partially fulfilled:

  1. There’s a new Skype client for Linux, that reaches the quality of Skype for Windows. Visit Skype and get it.
  2. SuSE 10.1 is a lot faster that 10.0: I wanted a faster KDE, however it suits me.
  3. I didn’t get a MacIntel laptop – I now want a classic x86 (or a dual-core), preferably from Dell.
  4. I still want Linux on my Axim – WindowsCE (or PocketPC) is terrible.
  5. I am now officially a Texas A&M University graduate student in the Computer Science dept.

Updates in C sourcecode

June 25th, 2006

There have been many updates, as well as a new addition: a replacement for fgets(). Check out the My sourcecode page.

p2p HTTP proxy

April 26th, 2006

The other day I read the article in BBC News about Google that is going to censor itself in China (article, same on CNET). I really think that is disgusting to make the most free and open human creation (the Internet) a self-censoring medium. Of course, who can blame Google? China is a highly flourishing economy and the guys in Google want to make business – and money. If they don’t, someone else will, so do not blame them.

For quite some time I was thinking of having the ability to offer proxies to all those, like the Chinese people or the citizen of Saudi Arabia, that have limited or censored access to the Net. The idea has matured in my head and I am proposing a peer-to-peer HTTP proxy service.

I strongly believe that through minor modifications or plugins to existing p2p software – I believe the best candidate are the Gnutella network and Freenet – we can support a p2p service that could be available to all people around the world. I am willing to share a portion of my bandwidth to let anyone to read and write freely. Are you?

Technical proposal: I am proposing a scheme that is to be built around an existing p2p network (Gnutella, Freenet, other) that could look like this:

  • For users that act as proxies
  1. create a virtual shared file over the p2p network (for example bouncy_proxy.nocensor)
  2. start the proxy plugin
  3. you are ready ;)
  • For users that need to bypass censorship
  1. start the p2p software
  2. configure the web browser to use the p2p plugin as a proxy
  3. when you write a URL to the web browser, the plugin searches the p2p network for file bouncy_proxy.nocensor and registers it as a valid proxy
  4. use one or more proxies to retrieve the content for the requested URL
  5. you are free ;)

I do not know how this would work and how to solve some security issues – this is not something that you would use to login to your bank account. And of course forget HTTP pipelining and persistent connections.

However, IMHO, it worths a try. If only I had more time. To make the Net more free.