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.

Java 2 Browser Edition

April 12th, 2006

In his blog, Ethan Nicolas suggests to have a smaller, more compact Java2 version, the J2BE (Java 2 Browser Edition).

He thinks that JRE (Java Runtime Edition) is too bloated (~7MB) and Sun must create a smaller edition that will dynamically download any necessary classes from the Internet whenever they are needed.

I totally agree with the above. JRE is indeed too bloated and that new cut-down version could be nice and could easily beat Macromedia Flash (now part of Adobe) and AJAX.

However, he also supports that 1) Java is slow, 2) it is unreliable and 3) it cannot be installed easily. Starting from the latter, I say that he either didn’t install Java or that he is using some exotic hardware. I’m using Java on GNU/Linux and Microsoft Windows XP and have never had any problems installing it - moreover on my Linux (OpenSUSE 10.0) it was installed automatically during installation. And I do not know anyone, either simple user or developer that had problems. Of course I’ve never had any problems with Flash either.

He states that Java is unreliable. Yes it is, if the developer does a crappy job. In the mean time, my browser hung while viewing Flash content, just because the developer made a crappy job. So it is not a Java problem, it is a developer mentality and ability.

And here comes the first argument: Java is slow (while starting). Yes, the JVM is a bit slow to come up, however in today’s machines it is not that bad. And I prefer to have a slow start than a slow experience (TM).

What he forgets though is that:

  1. Flash is only available in a few platforms, while Java, through the open-source implementations, is available in almost all platforms - have you ever seen Flash on Alpha processors? I haven’t…
  2. Java is a lot safer than Flash - yes, Flash has some security flaws and nobody, except Macromedia, knows them. Recently a bug was discovered. What was the last time there was a security flaw in Java?
  3. AJAX does not scale well. Today’s AJAX applications are simple. But what will happen tomorrow when there will be full featured applications? Are there any tools to create such applications? For Java I can think of some (eclipse, NetBeans, JBuilder etc.).