General Development Archive

Some Nice Features of the Objective-C Language

The Mac and iPhone SDK are based on the Objective-C programming language, a surprising alliance of C and Smalltalk. Features such as meta-classes, message sending, dynamism, C compatibility, etc., contribute to define the development experience on Apple's platforms. Here is a little list of things that, in Philippe Mougin's experience, contribute to make Objective-C a powerful and fun programming language.

Developing Rails Applications on Mac OS X Leopard

"Ruby on Rails is a popular and powerful open source web framework for rapidly creating high-quality web applications to help you keep up with the speed of the Web. Rails is thriving on Mac OS X, and Leopard comes pre-installed with Ruby, Rails, Mongrel, Capistrano, Subversion, and other tools that help to streamline the development and deployment of Rails applications. This article gives you a full tour of Ruby on Rails 2.0 on Leopard - starting with building a web application using the latest Rails features with Xcode 3.0, and finishing with deploying the application to a production server running Leopard Server."

LLVM 2.2 Released

LLVM 2.2 has been released. Wikipedia summarises: "The Low Level Virtual Machine, generally known as LLVM, is a compiler infrastructure, written in C++, which is designed for compile-time, link-time, run-time, and 'idle-time' optimization of programs written in arbitrary imperative programming languages. The LLVM project started in 2000 at the University of Illinois at Urbana-Champaign."

How to Recognize a Good Programmer

How do you recognize good programmers if you're a business guy? It's not as easy as it sounds. CV experience is only of limited use here, because great programmers don’t always have the "official" experience to demonstrate that they're great. In fact, a lot of that CV experience can be misleading. Yet there are a number of subtle cues that you can get, even from the CV, to figure out whether someone's a great programmer. More here.

‘PHP 4 Is Dead – Long Live PHP 5’

"PHP 4, deployed on tens of millions of servers globally, is among the most successful languages of all time. But its run is coming to an end. Active development for the scripting language has been discontinued and security updates will conclude in August. And for some developers, PHP 4 will be history before Valentine's Day. On February 5, a group of influential Open Source projects will collectively stop all new development on their respectively platforms using PHP 4. However, there are still some holdouts opposing a complete transition to PHP 5 and it's not entirely clear whether or not PHP 4 will ever truly disappear."

Arc Released

"This site is about Arc, a new dialect of Lisp. It's unfinished, but usable, so we decided to release what we have so far. The current version compiles into MzScheme and structurally is as much a skin on MzScheme as a separate language. For example, Arc's read is MzScheme's, and so are Arc's numbers and math operations. But from the average programmer's point of view, Arc is no more similar to Scheme than any two Lisp dialects are to one another. Arc is designed above all for exploratory programming: the kind where you decide what to write by writing it. A good medium for exploratory programming is one that makes programs brief and malleable, so that's what we've aimed for. This is a medium for sketching software."

Fixing ptrace on Mac OS X 10.5 Leopard

PT_DENY_ATTACH is a non-standard ptrace() request type that prevents a debugger from attaching to the calling process. Adam Leventhal recently discovered that Leopard extends PT_DENY_ATTACH to prevent introspection into processes using dtrace. This article will cover disabling PT_DENY_ATTACH for all processes on Mac OS X 10.5. Over the previous few years, I've provided similar hacks for both Mac OS X 10.4, and 10.3.

LV2 Specification Released

"LV2 is a simple but extensible successor of LADSPA, intended to address the limitations of LADSPA which many applications have outgrown. By creating LV2 'extensions' (which can be done independently), virtually any feature is possible for LV2 plugins and hosts."

RPM 5: a Fork in the Linux Packaging

The newest version of the popular RPM package manager is now out with improved performance and functionality. But there's a bit of a catch with RPM version 5.0. Linux vendor Red Hat officially considers RPM 5.0 a project fork. "RPM5 is a fork of RPM, and is not related to RPM.org," Daniel Riek, Product Manager Red Hat Enterprise Linux told InternetNews.com. "Neither Red Hat or Fedora are involved in RPM5, and have no current plans to use it. Red Hat remains committed to the main RPM.org releases and development."

Keystroke Dynamics From Custom Perl Algorithms

Measure the total time of entry and verify the time between keystrokes to help authenticate a user regardless of the data being entered. Learn how to apply the open source tools xev and Perl in keystroke dynamics to measure the more-subtle characteristics of human-computer interaction. This article uses example code to demonstrate keystroke dynamics for enhancing the security of your applications in authentication and continuous data entry contexts.

Valgrind 3.3.0 Released

Valgrind is a tool that helps you find memory management problems in Linux programs. From the 3.3.0 log: Helgrind works again with improved race detection and better error messages. Massif generates better output. Cachegrind has been extended to do branch-misprediction profiling. Both conditional and indirect branches are profiled. Scalability has been improved for very large programs, particularly those with a million or more malloc'd blocks in use at once. These improvements mostly affect Memcheck, which is also up to 10% faster for all programs, with x86 Linux seeing the largest improvement. The documentation has been reorganized. Experimental tools have been added, and more.

Perl 5.10 Released

"Today the Perl Foundation announces the release of Perl 5.10, the first major upgrade to the wildly popular dynamic programming language in over five years. This latest version builds on the successful 5.8.x series by adding powerful new language features and improving the Perl interpreter itself. The Perl development team, called the the Perl Porters, have taken features and inspiration from the ambitious Perl 6 project, as well as from chiefly academic languages and blended them with Perl's pragmatic view to practicality and usefulness."

Symbian & Protothreads

Symbian's introductory training covers Active Objects. Active Objects are a Symbian specific method of providing co-operative multitasking. During the introduction to Active Objects we are all told about how inefficient and bloated multi threaded applications can be. Each thread requires heap and stack space, it requires kernel resources to provide for the context switching, and time slicing. All of this is an overhead on a device with limited resources. Instead Symbian provide Active Objects. We can have many Active Objects within a single process all waiting on different events. This means that we do not need as many threads, and hence we consume less resources. More here.

Red Hat’s Open Source IDE

Six months ago, Linux vendor Red Hat acquired the closed source Exadel Studio Pro IDE and pledged to turn it into a fully open source Red Hat product. On Monday, Red Hat officially released JBoss Developer Studio, based on the Exadel product as a 100 percent open source IDE. The new Eclipse based IDE offering from Red Hat's JBoss division will provide a development environment that will work on both Windows and Linux for Java middleware solutions from JBoss.

Ruby on Rails 2.0 Released

Ruby on Rails 2.0 has been released. "Rails 2.0 is finally finished after about a year in the making. This is a fantastic release that’s absolutely stuffed with great new features, loads of fixes, and an incredible amount of polish. We’ve even taken a fair bit of cruft out to make the whole package more coherent and lean." On Zenbits, they give tips on how to install 2.0.

NetBeans 6.0 Released

NetBeans 6.0 has been released. The 6.0 release includes significant enhancements and new features, including a completely rewritten editor infrastructure, support for additional languages, new productivity features, and a simplified installation process that allows you to easily install and configure the IDE to meet your exact needs.