May 30th, 2003 § Comments Off § permalink
TCC, the Tiny C Compiler, is a quite interesting and small C compiler and optimizer for Linux. Besides doing everything a normal C compiler does, it can also generate safe code with memory and bounds checking that can be freely mixed with normal code.
Its creators claim its faster than GCC. I have not tested it yet, but I believe the claim is true as GCC is intended to be a very generic and cross-platform compiler. What makes TCC useful is the fact that it can directly compile and execute C code, allowing it to be used as a scripting environment from the command line.
In my opinion, however, its biggest advantage is that it generates real code, which makes possible to use it as a backend for code generation in another program or language.
For those interested in compilers — as I am — TCC is certainly worth a look. Of course, it’s licensed under the LGPL.
May 29th, 2003 § Comments Off § permalink
Once I read a book in which one of the characters said that trouble sires three children. After the past two weeks, I’d say troubles sires how many children it needs to complicate a life.
As if the events in the last week were not enough, Windows decided to die on my home computer. Not a good thing to happen now, but I thought I could handle it. I made a complete backup on CD, reinstalled Windows, and started restoring the backup. I say started because the CD driver is dying as well. It simply stopped reading CDs properly. Worse, the CD with the backup seems to be damaged too. It is not scratched, but some files are simply unreadable. Life isn’t wonderful? My Linux system is working, but I can’t access the Internet with it because the modem doesn’t work under it. And, of course, all my old e-mail files are in the CD backup.
So until I manage to restore my system to an acceptable level, activity here will be light. Meanwhile, wish me luck.
May 26th, 2003 § § permalink
I won’t forget the last week so soon. Friday, I thought nothing could get worse: the weekend, of course, proved that I was completely wrong.
After some days trying to install a database server I had never used before (which, recalcitrantly, refuses to work correctly) and enduring many problems in the implementation of a system I’m working at presently (which are normal — and expected — development issues, but that stress me anyway), I believed that the weekend would be the only good thing in the week. After all, I would be able to stay at home, read some books, sleep, and maybe get to see the long expected The Matrix Reloaded.
Well, I did get to see the movie. It’s just that I didn’t expect to be robbed afterwards — especially with two thiefs threating to hurt my wife and me. I have been robbed before, but I never was threatened that way and I never lost more than a couple bucks. This time the thugs took our wedding rings, my wristwatch, my cell phone, and my wallet. Fortunately, God helped us, and a police car appeared a few minutes later. After a tense car pursuit one of the bandits was arrested, although he didn’t have any of our things with him. We went back to the crime scene and found our wedding rings and my watch a few blocks ahead where the thug had dropped them while running away from the policemen. My wallet and my cell phone were nowhere to be found. As if the robbery was not enough, my wife and I had to wait three hours before being heard in the police station. Afterwards, to add insult to injury, we had to wait for a bus since I don’t own a car and I had no money for a cab with me and no means to get some anyway, as I lost the wallet.
Well, that is how life is. Now I have to cancel a thousand things, go to my bank to sort things out, get a new ID, and suffer a lot of minor inconveniences. Worse, if my ID is not found, I will always expect that someday somebody will use it for something he shouldn’t and I will have put up with more problems because of it. God willing, that won’t happen.
I just expect this week will be better.
May 17th, 2003 § § permalink
There are a lot of bad database engines out there, but Informix is surely one of the worst I have ever used in my whole programming career. I’m using a 7.x release in one project here at work, and I think I’ll go crazy if I don’t finish it soon. To tell the truth, it’s the second time I had to use Informix in a project, but the first was long ago and I had already forgotten how abominable it is.
Just to begin with the list of problems, support to SQL-92 ranges from minimal to non-existent. There are severe inconsistencies in the SQL support all over its parser. For example, I had one view that didn’t work as expected until I changed the select statement to use the default Informix syntax instead of the SQL-92 syntax I was using. The view kept bringing null values where none was should appear, but when I run the standalone select statement against the database it returned the correct result set.
Another big problems is the limit in the length of the identifiers, which are restricted to 18 characters. This is simply laughable, and makes naming keys and fields a nightmare — especially when working with a internal standard that requires fields to be prefixed with mnemonic type indicators and uses underscores to separate words wasting further space.
Also, blob fields are not directly support in inserts and updates. Granted, many other database engines do not support this feature, but it doesn’t matter. If one database engine supports it, all others should support it as well.
Informix also allows auto-incremented fields but doesn’t provide any direct way to retrieve the last inserted value atomically. (I couldn’t find any reference to such function, but I’d be glad to be proved wrong.)
To add insult to injury, the OLE-DB driver doesn’t work at all, and the ODBC driver is terribly inefficient and hard to configure. Also, as I couldn’t manage to install the ODBC driver in my machine, I have to access the server (a SCO Unix) via a telnet connection using a very archaic interface.
After the past days, I give myself the right of self-pity.
May 16th, 2003 § Comments Off § permalink
Reading Simon Willison‘s weblog I came across a reference of the book Structure and Interpretation of Computer Programs, by Hal Abelson, Jerry Sussman e Julie Sussman. Following the reference, I found that the full text of the book is available on the Internet.
This is the Wizard Book, one of the classic Computer Science texts and one the Lisp/Scheme bibles. Definitely worth a look.
May 14th, 2003 § § permalink
Almost two months ago, I wrote a post about the evolution of programming languages. In the post, I noted that many of today’s mainstream languages are just syntactical variations of older languages, and consequently are not contributing with anything new to the evolution of the field. I also asked what evolutionary path new languages would follow, considering that programming needs obviously will not remain constant. The post was more of a big question as I was just trying to think about how languages would be in the future, looking at current trends such as dynamic typing, just-in-time virtual machines, generic programming, and other concepts that are not necessarily new but have gained wider acceptance of late. I also argued that many of the most powerful languages are based on a core of simplicity that can be easily extended to represent new concepts.
Interestingly enough, in the weeks that followed that post, I found that many people were interested in the same topic and had independently written about the issue in their weblogs or sites. I also found pointers to interesting material that, coupled with the aforementioned posts, allowed me to find answers to some of my questions and get an interesting vision of the future of programming languages, which validated some of my own thoughts.
» Read the rest of this entry «
May 12th, 2003 § Comments Off § permalink
Mozilla 1.4b was released a few days ago, but I didn’t notice until the weekend. As this release is still beta, I didn’t downloaded it, but reading the release notes I found an interesting bit of news: Mozilla now supports NTLM authentication.
This is very good news since NTLM is a Microsoft protocol that no browser other than Internet Explorer supported until now. NTLM support in Mozilla means people using it will be able to connect to proxies and servers based on Microsoft products. Cool news, indeed.
May 11th, 2003 § Comments Off § permalink
Childhood’s End, by Arthur Clarke, is another of the science fiction classics, and many consider it Clarke’s masterpiece because of its vision of humankind. The books belongs to an older era of the genre, and even if it contains some dated elements, it remains sufficiently current to arise the curiosity of a modern reader. Although the book wasn’t awarded any of the great science fiction prizes, this fact can be justified by its publication date, which predates some of those prizes. Even so, the book frequently makes its way in lists of the greatest science fiction works of all times.
Written in 1953, the story begins with the arrival of great silver ships belonging to an unknown alien race just in time to end the space race and save humankind from its path to self-destruction. The aliens immediately take control of the government of an astonished human race, demonstrating their power in the process and so achieving the title of Overlords. As it’s quickly found, the Overlords’ domination is benign and they lead humankind to a never-seen time of prosperity and peace that the human race would never be able to achieve by itself. Nevertheless, some great questions present themselves to humankind. Firstly, who are the Overlords? They refuse to show themselves saying that they hide for humankind’s well-being. Secondly, what is their purpose? Clarke weaves the narrative leading the reader to the solution of those two big mysteries in one of the most elaborate plots of the classic period of science fiction, ending with an interesting and satisfactory twist.
Clarke writes in his characteristic direct and precise style, telling a good story. He shows humankind in a context rarely used at the time, in which it’s just small part of a big universe. Even so, the book didn’t appeal so much to me. The ending is quite interesting, partially open to the reader imagination, but I guess I have read many books from Clarke with a similar idea, and the theme is not as interesting to me as it used to be.
Anyway, the book is good, and can be easily read in a couple hours. For science fiction fans, it’s certainly a good choice because of its place in the genre’s history.
May 9th, 2003 § Comments Off § permalink
In the last few days I have heard and probed a lot about the stance of the big companies here in Belo Horizonte (my city) about the decisions concerning what enterprise computing platform they will likely choose, whether .NET, from Microsoft; or Java, from Sun. Oddly enough, most companies seem to be still undecided about the direction they will follow, and many seem to be thinking about adopting both platforms in hope of achieving maximum integration in future products.
One of the biggest buyers of outsourced applications in Belo Horizonte, which shall remain unnamed, is going through a big internal struggle over this very decision. From what I’ve heard, the company is one those leaning towards a mixed approach, supporting both platforms, but with an emphasis over Microsoft’s .NET to leverage existing investment. This company is one of the opinion formers here, and any decision they take will certainly influence many others.
Considering that our government is favoring Java, and has so far decided to use it, the panorama gets even more complex. Linux is gaining some market share, mainly due to providers offering cheaper hosting packages based on the platform, and many companies are starting to realize its potential. The existence of reliable — and free — Web, application, and database servers for it, coupled with the general availability of programming languages and libraries makes Linux an attractive choice to companies interesting in cutting costs in the production of new applications both for internal or external use, whether those applications are outsourced or not.
Those facts mean development companies are living a delicate moment. Many of them are putting off the choice of a platform until the market speaks. Unfortunately, given the way the market looks, it may be that some companies will take the decision too late, and will suffer for it. Moreover, regardless of the platform that becomes being the more widely used, it looks like the other will have sufficient market share to mean it will be impossible to ignore it. This time, putting all eggs in just one basket may effectively be the end of some companies.
Interestingly enough, this is a situation most development companies didn’t expect to see. Belo Horizonte has always been an ASP stronghold and many companies still look forward to leveraging their knowledge of Microsoft’s tools under .NET. However, the adoption of the new platform seems to have been slower than Microsoft itself anticipated. It’s rumored that Microsoft’s representatives are firmly pressuring their clients to start migrating applications to new platform. Considering Microsoft’s abilities in the market, it’s certainly a force to be reckoned with.
I don’t worry about what the market will decide. For the first time Microsoft has a tolerable development platform. After being forced to work with Visual Basic so many times, I think I could endure anything thrown at me; however, compared to Visual Basic, C# is a marvelous language. If Java becomes a market demand, even better — everything that can help my career is nice. Anyway, I think I should start improving my skills in both platforms. The market seems to be about to become very, very interesting
May 8th, 2003 § Comments Off § permalink
A friend of mine pointed me to an incredibly interesting article about a flexible computer screen. This is certainly one of the coolest technology news I have seen in a long time. The screen is ultra-thin and can be rolled into a cylinder or folded without losing the image quality. The process through which the image is shown, which is described on the article, is also quite interesting. The possibilities of such technology are enormous, and are not limited to just electronic books.
One of my dreams is that a day will come when I can take my whole library — or at least a big part of it — with me wherever I go. Today, one of problems with such devices is that resolution is too low and makes reading tiresome. I’ve looked at some of the available devices in the market, and, besides being too expensive, most of them use proprietary formats and have few available titles.
Anyway, I hope that in a few years this kind of technology becomes widespread. It will be a great time for book lovers like me.