General Development Archive

Compiler Security Checks In Depth

"Software security is a major concern for the high-tech industry, and the most feared and misunderstood software vulnerability is the buffer overrun. Today, the mention of a buffer overrun is enough to make people stop and listen. All too often, the technical details get lost in the transcription, and the general public comes away with a rather alarming view of a rather fundamental problem. To address this problem, Visual (unmanaged) C++ .NET introduces security checks to assist developers in identifying buffer overruns." Read the rest of the article at MSDN.

MacOSX Cocoa & Project Builder Tutorial

"One of the great advantages of Cocoa is getting a lot of functionality with little code. There are classes in the Cocoa Framework that handle much of the necessary work in creating applications that have multiple documents. NSDocumentController, NSDocument and its closely related cohort NSWindowController combine to give you a powerful starting point when building your own multiple document applications. The best way to illustrate the power that these classes offer is with an example; that's how HTMLEditor.app was born. HTMLEditor is a basic text editor that has file associations for HTML. No big deal right? Well, over the next month or so, HTMLEditor will be extended to include a number of additional features, forming the basis of a series of articles." Read the rest of the MacOSX Cocoa/Project Builder step-by-step tutorial at StepWise.

Inheritance and Interfaces with Visual Basic .NET

"In this document, you learn about the differences between class inheritance and interface implementation. Inheritance supports the creation of hierarchical frameworks of increasingly specialized classes that share some code and also add their own customizations. Interfaces allow multiple unrelated classes to share predictable sets of methods and properties. Both interfaces and inheritance provide polymorphism, allowing generic procedures to work with many different kinds of objects. You also saw how object composition allows you to reuse and extend implementation code without inheritance, and how it can be combined with interfaces to support polymorphism. All these techniques enable you to create and revise complex software systems by helping you add new functionality, with minimal need to dig back into old working code." Read the rest of the article at MSDN.

Managing Processes and Threads

"In Ed's previous column, he focused on socket programming and performance within a single system. In a future column he will pick up where he left off, but his topic this month is management of threads and processes in Linux and Windows systems. He walks through the differences between processes and threads, shows how to create and destroy them, and writes a program you can use to study thread management on your systems." Read the intersting aricle at IBM DeveloperWorks.

“Modern Operating Systems”: Page Replacement Algorithms

Yet another excerpt (previous articles here and here) from the well known "Modern Operating Systems" book at InformIT (free registration required): "When a page fault occurs, the operating system has to choose a page to remove from memory to make room for the page that has to be brought in. This sample chapter from Modern Operating Systems looks at a variety of page replacement algorithms designed to tackle this problem." InformIT also features two more excerpts this week: "Multithreading and the C++ Type System" from the "Modern C++ Design" book and "Solaris: Cluster and Complex Design Issues" from the "Designing Solutions with Sun Cluster 3.0" book.

Borland to Ship C++ Builder 6

Borland on Friday will ship a new software development tool for C++ programmers. The new version, Borland C++ Builder 6, features support for Web services, allowing developers to build software that is accessible over the Internet via PCs, cell phones and other handheld devices. The cost is $2,999 for the enterprise edition, $999 for the professional edition and $69 for the personal edition. In other development news, Rational Software on Tuesday introduced a new software development tool that is compatible with software from Microsoft, IBM and Sun Microsystems. The software company, which has worked mostly with Microsoft in the past, announced Tuesday that its new XDE Professional v2002 product will work with Microsoft's Visual Studio.Net development tools and IBM's rival WebSphere Studio development tools. The XDE, or extended development environment product, has also been designed to support IBM's Eclipse IDE, software based on Sun's Java technology.

Journal File Systems in Linux

"First of all, there is no a clear winner, XFS is better in some aspects or cases, ReiserFS in others, and both are better than Ext2 in the sense that they are comparable in performance (again, sometimes faster, sometimes slightly slower) but they a journaling file systems, and you already know what are their advantages... And perhaps the most important moral, is that Linux buffer/cache is really impressive and affected, positively, all the figures of my compilations, copies and random reads and writes. So, I would say, buy memory and go journaled ASAP..." Read the rest of the 8-pages long article.

Why You Might Want to Try Ruby

"Ruby. Perhaps you've heard of it? "Oh, yeah, I think it's one of those new object oriented scripting languages", you say. I know a lot of you might be thinking "Not another new language! I'm perfectly happy with (COBOL/C/cshell/awk/Perl/...); why does the world need another programming language?!", while a few others are thinking 'Cool, a new language to explore'." Read the rest of the article, an introduction to the Ruby programming language, at FreshMeat.

Krusader & Gnumeric 1.0 Released

Good news for the Krusader fans, as version 1.0 was released today after 1.5 years of development. Krusader is a KDE/QT-based file manager and being similar to Norton or Midnight Commander it should already have lots of friends among the Linux users. Krusader seems to be today the only real & viable alternative to Konqueror or Nautilus today under a Linux desktop. In a related note, Gnumeric 1.0, the Gnome Office spreadsheet was released recently.

Eclipse’s First Plugin a Reality

Eclipse, IBMs open sourced development tool donation (which is now supported by an organization of a number of companies), just got a little stronger as the released their first plugin sub-project. The C and C++ IDE for the Eclipse platform, with focus on Linux development and deployment. On a similar note, developerWorks is offering a trial download for WebSphere Studio Application Developer for Linux which is a pluggable tool-development and integration platform that incorporates the technology found on Eclipse.

Bochs Project Releases New Version of their Free x86 Emulator

The Bochs IA-32 Emulator Project unveiled a new version of the popular Bochs emulator to the public today, improving on the stability and ground breaking improvements of Bochs 1.2. Bochs 1.3 includes many major enhancements including a powerful menu-based configuration system and networking support for Linux and Windows NT/2000. Other additions in this release include support for ISO-format disk images, improved mouse performance, physical CD-ROM support for all versions of Windows, parallel port emulation, enhanced debugger, and many cpu and device model improvements. Bochs 1.3 also adds native support for Mac OS X and Amiga MorphOS, along with improved support for BeOS.

PHP 4.1.0 Released

The new version of the PHP programming language, PHP 4.1.0, includes several other key improvements: A new input interface for improved security (read below), Highly improved performance in general, Revolutionary performance and stability improvements under Windows. The multithreaded server modules under Windows (ISAPI, Apache, etc.) perform as much as 30 times faster under load! We want to thank Brett Brewer and his team in Microsoft for working with us to improve PHP for Windows. Versioning support for extensions. Right now it's barely being used, but the infrastructure was put in place to support separate version numbers for different extensions. The negative side effect is that loading extensions that were built against old versions of PHP will now result in a crash, instead of in a nice clear message. Make sure you only use extensions built with PHP 4.1.0. Turn-key output compression support. Lots of fixes and new functions.

Advanced Filesystem Implementor’s Guide, Part 8

"I'm going to be honest. For this article, I was planning to show you how to get ext3 up and running on your system. Although that's what I said I'd do, I'm not going to do it. Andrew Morton's excellent "Using the ext3 filesystem in 2.4 kernels" page already does a great job of explaining how to ext3-enable your system, so there's no need for me to repeat all the basics here. Instead, I'm going to delve into some meatier ext3 topics, ones that I think you'll find very useful." Part 8 for this great series of articles. Get links for the previous articles here.