General Development Archive

Defense Company Releases L/GPL Critical Component Framework

Thales, an aerospace, defense and security company (68000 employees), releases MyCCM High Integrity, a software component framework targeting mission- and safety-critical distributed real time embedded software. It integrates components written in C, and generates code for handling inter-component communication, threads (priorities, periods), locks, and mode-based reconfiguration. In addition to the software components, MyCCM-HI takes as input a model of the application in a so-called Component-Oriented Architecture Language. Open licensing policy is seen as a mean to improve industry standards.

The Falcon Programming Language: a brief tutorial

The Falcon Programming Language is a typeless language born for rapid development, prototyping, and ready-made integration. We may also describe Falcon as a "scripting" language with features that enable the programmer to create even complex multi-threaded applications. It mixes several different programming paradigms into an unique blend of constructs, overcoming the limitations and partialities of other languages. The objective of this brief article is to be very practical with code examples as well as step by step simple instructions. Read the full tutorial at Freesoftware Magazine.

Video Demo of OpenCL Functionality on Multi-Core CPUs

"The first public demonstration of OpenCL functionality was given by AMD at Siggraph Asia 2008. OpenCL is the new vendor-independent standard designed to extract high performance parallel computing out of GPUs, DSPs and multicore CPUs. Basically the idea is that you can write your core computational code in OpenCL and voila! - your code scales to whatever processors are available. OpenCL will greatly improve speed and responsiveness for a wide spectrum of applications from entertainment to scientific and 3D visualization."

Python 3 Metaclasses and Other Strange Creatures

Python 3 is the latest version of Guido van Rossum's powerful general-purpose programming language. It breaks backwards compatibility with the 2.x line but has cleaned up some syntax issues. This second article builds on the previous article, which focused on changes that affect the language and backwards compatibility issues. In Part 2 of this two-part series, discover more new Python features and details on more advanced topics such as changes in abstract base classes, metaclasses, and decorators.

Zenity: Shell Script Interaction Via the GUI

"Whilst an increasing number of recent converts are avoiding it (and I don't blame them really), the shell is still a key tool for the majority of GNU/Linux users. Shell scripts are knocked-up, shared and deployed in all sorts of circumstances - some simply time-saving, others life-saving. But even if the shell script has been written by somebody else, running it can be a cumbersome and frightening exercise for users of lesser experience or confidence. How do we bring the flexibility of the shell script to the GUI-only user? Recently faced with just such a quandary, http://www.freesoftwaremagazine.com/columns/saving_my_sanity_zenity_shell_script_interaction_gui">I discovered Zenity: a tool which just might have saved my sanity."

Embed Lua for Scriptable Applications

The Lua programming language is a small scripting language specifically designed to be embedded in other programs. Lua's C API allows exceptionally clean and simple code both to call Lua from C, and to call C from Lua. This allows developers who want a convenient runtime scripting language to easily implement the basic API elements needed by the scripting language, then use Lua code from their applications. This article introduces the Lua language as a possible tool for simplifying common development tasks, and discusses some of the reasons to embed a scripting language in the first place.

Dynamically Create Cocoa Classes with F-Script

F-Script 2.0, now in beta, provides a handy syntax for dynamically creating Cocoa classes on the fly. This is useful for quickly experimenting, prototyping and using Cocoa interactively, as well as for developing sophisticated programs. You can type a class definition in the F-script console, hit return and immediately start playing with your new class. This article provides a quick introduction to this feature.

The Benefits of Parceling Root Power with POSIX

POSIX file capabilities split root user powers into smaller privileges, such as the ability to read files or to trace processes owned by another user. By assigning capabilities to a file, you can enable an unprivileged user to execute the file with those specified privileges. In this article, learn how programs can make use of POSIX capabilities, how to investigate which capabilities are needed by a program, and how to assign those capabilities to the program.

Introduction: Parallel Programming

"Parallel computing is the use of multiple processors in order to solve a specific task. For quite a few decades now parallelism has been used in the domain of High Performance Computing (HPC) where large, difficult problems are split up into pieces which are solved and then recombined to form the answer. With the emergence of multiple cores per processor this has become more and more important for the everyday user and programmer. In this article I will explain some of the elementry concepts of parallel computing and point the reader to further points of information."

Scripting with Guile

Guile isn't just another extension language: it's the official extension language of the GNU project. Guile makes Scheme embeddable, which makes the interpreter ideal for embedded scripting and more. The days of building and delivering static software and products are over. Today, users expect their products to be dynamic and easily customizable. Learn how, with Guile, you can interpret Scheme scripts, dynamically bind scheme scripts into compiled C programs, and even integrate compiled C functions into Scheme scripts.

What’s New in PHP v5.3 Namespaces

The concept of Namespaces provides a way to help avoid problems with multiple functions, classes, and constants of the same name being defined multiple times. PHP 5.3 borrows much of the syntax and design of Namespaces from other languages — most notably C++. However, it does deal with Namespaces in a somewhat unique way, which may cause problems for those familiar with Namespaces. This article takes a close look at PHP V5.3 namespaces, which is one of the most anticipated and the most debated feature in this release of PHP.

Nokia N810 Internet Tablet Code Unit Testing

Part 1 of this three-part series laid the foundation for building an application targeted at the Nokia N810 Internet Tablet, including choosing a target language (Python), selecting and configuring a development environment (Eclipse with Pluthon), and building a small sample application to make sure everything worked as advertised. Part 2 looks at different options for helper libraries, coding with unit testing in mind, and user interface choices.

A Look at newLISP

In the age of dynamic languages and closures, most of you have probably heard of a mighty dragon called Lisp (which stands for LISt Processing), whose fans look almost with despise at other languages rediscovering it. Invented half a century ago, Lisp went on to become a de facto standard in the world of AI research, and has stood behind a handful of very neat inventions in the 1980s. Nevertheless, the long AI winter and the drift of technology towards other paradigms have almost lead to forgetting Lisp alltogether; IT has only recently started to rediscover parts of what made Lisp so cool back then.

“F**k Ruby”

Dave Thomas, programming book author and Ruby evangelist presented the keynote at RailsConf2008; "There's a sound that no presenter wants to hear, and that's dead silence. And that's what greeted me when I made a suggestion in my RubyConf keynote . I think by the end of the talk, though, most people were convinced." This is one of the best programming topic presentations I have ever seen. Even if you've never written a line of Ruby, you'll find it perfectly clear-and enjoyable. Watch, and then "read more" for Kroc's personal commentary on the issues raised.

Ruby on Rails, Merb To Merge for Rails 3

"The Ruby web development community got a big surprise Tuesday when the programmers behind the Rails and Merb projects announced plans to join forces. Merb will be folded into Rails 3, the next major version of the open source web framework. This unexpected union will put an end to the rivalry between the two projects." If that doesn't make you feel all warm and fuzzy inside during Christmas, I don't know what will.

The A-Z of Programming Languages: F#

Microsoft researcher Don Syme talks about the development of the functional language F#. He says Haskell (and Python) has been a huge influence on the development of F#. The F# lightweight syntax was also inspired by Haskell and Python. He also says there have been some mistakes along the way. "Some experimental features have been removed as we're bringing F# up to product quality, and we've also made important cleanups to the language and library. These changes have been very welcomed by the F# community."

Perl 5 Completes Move to Git

The Git distributed source code management system has won over another major project, Perl 5. The Perl Foundation has announced that they have completed moving the source code of Perl 5 from Perforce (proprietary SCM in use by other projects including FreeBSD) to Git and are now opening the system up for developer use. Git is the open sourced source code control system created by Linus Torvalds to manage Linux development. The move to Git gives developers equal and easier access to the Perl source code and the distributed nature of git will allow developers to work on experimental changes to the language more easily.