As I am in the middle of a death-march to a software release next week, posting will be light.
As I am in the middle of a death-march to a software release next week, posting will be light.
I note that, according to the compiler-conformance tests run by the Dr. Dobb's staff, Borland's version 5.6.4 compiler is no more or less conformant than their 5.5.1 compiler. So what changed? I was also badly disappointed to find that C++BuilderX is still using the old C++Builder 6 toolchain, and includes a broken version of the BOOST library.
------------
(Later)
I just realized that the movie Predator will probably be the only movie in the history of the world to star two future governors: Jessie Ventura and Arnold Schwarzenegger.
Only in America! (And I say that with pride and love!)
Go ye hither and purchase The Art of UNIX Programming, and Lo!, ye shall receive enlightenment.
Like every other geek in the world, I am now reading Neal Stephenson's Quicksilver. It's about 1000 pages long, and at the rate I'm going, it'll be a month or two before I'm done. And there are two more books in this series to go: The Confusion and System Of The World.
Well, it looks like Valve got pantsed in public. Some shitbird cracker broke their (ridiculously weak) network and downloaded the entire HalfLife 2 source-code base.
1. Whoever Valve's network admin is, he or she ought to be out of a damned job. This is just unconscionable. 2. The original expoit was via a buffer-overflow in Microsoft Outlook. How many times will people get burned by lousy Windows security before the learn? 3. Gabe Newell can take personal credit for fomenting this disaster. Using an internal machine to e-mail to fan groups, not taking appropriate measures to protect said machine, and waiting too long to take corrective action: bad enough for a home machine, almost criminal in a business enterprise. 4. Valve might be facing millions of dollars in lost sales due to this disaster, and it could very well mean the end of them. Among the source code they lost was stuff they had licensed from other companies. This makes them liable for losing not only their own IP, but other IP they didn't even own. I see lots of litigation coming out of this, especially as it seems Valve was negligent in protecting the sources.
Let this be a lesson, kids. Take security seriously.
Well, I got a copy of Borland's new CBuilderX Personal Edition. I'm not all that impressed. Basically, it's a Java-based IDE with support for a variety of backend compiler/debuggers. There's no GUI builder, no resource editor, and very little wizard support. (And what wizards there are generate bad default settings.)
Windows users will hate it, while Linux developers can use Eclipse or KDevelop and get exactly the same functionality with no hit to their wallets.
I got a visit from the hay-fever fairy, so I've been sniffling and fighting a sinus headache all day. Feh.
Most software is still written in Cobol or Visual Basic.
In Bizarro World, maybe. COBOL used to be the language of choice, and there's a lot of it still running, but I'd bet my watch and chain that not much new COBOL code is getting cranked out every year. I used to write COBOL stuff for banks, and almost all of them have transitioned to either client/server stuff (C++ on both ends) or web services (Perl, PHP, or Python).
Yesterday was Hardware Day. Not intentionally mind you, but the Computer gods decided to play some ugly tricks on me.
1. My main working machine, a homebrew Pentium III box, has a huge fan and power supply. Now, normally this fan sounds like the turbine of a Boeing 747 readying for takeoff. I've learned to ignore it. But yesterday morning the fan started warbling, and then buzzing, and then...ominous silence. Then I heard a pop and my screen went dark. Uh oh. (I'll save you the suspense -- the power supply croaked. Hopefully the motherboard is still okay.)
2. My Sun Ultra 10 machine also has something wrong with it -- it just reboots every so often with no warning. So I can't use that.
3. I did have an old Pentium II 233MHz machine moldering deep in my closet. It's an old machine that my wife used before I upgraded her to a homebrew Duron machine. I transplanted my two hard drives and 256MB of RAM into the machine and am at this very moment installing Red Hat 9.
If the motherboard in the Pentium III machine is truly dead, I might investigate getting a dual-cpu Opteron box. I've always wanted an SMP machine to fool with. This (and a new power supply, of course) will have to wait for a few weeks until my coffers are full again. So in the meantime I'll have to make do with the Frankenbox now sitting on my desk.
LOL that COM works badly with C++. Who wants to use that language anyway?
Jeezus, berend, what world do you live in? Name a major piece of software that isn't written in some variant of C (C,C++,Obj-C). I can only think of a couple, and they are mostly Java-based. And there's Zope, which is written in Python. (And an argument can be made that Java is simply another dialect of C.) And pointers may contribute to buffer overflows, but they also make libraries like the STL and BOOST possible. Don't knock these libraries if you haven't used them -- they are huge productivity enhancers if you use them correctly.
Just remember, pointers are like superhuman powers: with great power comes great responsibility!
But if you really dislike C/C++, you can go to Python -- it's a truly OO language, but is far better designed than, say, Java. It also works well as a "glue" layer in scripts, and it's in that role that I use it rather than Perl. You can write libraries in C and import then into Python with wrappers. In fact Python itself is written in C! (And so is Java, for that matter.)
Once you get beyond the edge tools, berend, almost everything on both Unix and Windows is written in either C or C++.
By the way: I wasn't saying that C++ was bad. My argument was that Microsoft crippled COM in it's native environment (C/C++) to make it interoperate with braindead languages like VB (and Delphi!).
I have a birthday coming up, so I decided to take a few days off from work next week. I need the break.
As an extension to the screed I wrote about COM, I considered writing in more detail about software components in general. But this topic really requires a book-length treatment, and is resistant to the usual "bad or good" comparisons. I disagree with most popular implementations of components (like COM), but the concept is sound enough.
Good programmers know when to use a given tool or approach; mediocre ones tend to blindly follow "the rules" regardless of their applicability to a given problem domain. I've met lots of shake-n-bake C++ coders who claim to know how to use the STL, but are then flummoxed when I demonstrate common algorithms like accumulate and reverse. Or they are completely in the dark about basic things like overloading operators.
This is why I always emphasize craft rather than art to my junior programmers. You want to be an artist? If you lack the basic craft, you'll be a crappy artist anyway. Learn the basics. Don't get fancy, and don't rely too much on wizard-generated code. If you don't understand what a given chunk of code does, don't fool with it until you do. Use (but don't abuse!) comments. Make sure you're solving a problem rather than a symptom.
It seems to me that the whole programming world worries too much about abstract methodology when we should be worried about simple, nuts-and-bolts stuff like code quality and readability.
New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.
Keep up with the latest Advogato features by reading the Advogato status blog.
If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!