Keep OSNews alive by becoming a Patreon, by donating through Ko-Fi, or by buying merch!

General Development Archive

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.

Run JavaScript Files on the Server Side

With ever increasing amounts of Javascript on the client side, maintenance is increased by duplicating business logic on the client side;"In this series, learn how to run JavaScript files on the server side, call remote JavaScript functions with Ajax, and use the Java Scripting API with the JavaServer Pages (JSP) technology." Part 1 of IBM's "Javascript EE" series- "Combine JavaScript with Java code on the server to get the freedom to use the same JavaScript routines on both servers and clients, and allow you to maintain a single code base for both Ajax and non-Ajax clients."

The A-Z of Programming Languages: Perl

Did you know that Perl creator Larry Wall thinks the community 'paints a little picture in heaven'? In a lengthy interview about the history of Perl, Wall talks about the evolving nature of programming languages, especially Perl, and in the future a lot of people will be getting into programming as a profession, but not calling it programming. Wall's genius is expressed in his desire to not recognise Perl in 20 years, instead to design the ability to create things we will need in 20 or 100 years. And, yes, Wall picked the Camel mascot as it is 'an animal that is self-sufficient in a dry place'.

Parallel Machine Learning Toolbox for Linux

Many sophisticated machine learning algorithms cannot process large amounts of data on a single node, but Parallel Machine Learning Toolbox (PML) can do so by distributing the computations. This distribution speeds up computations and expedites training by weeks, days, or even hours in an easy, reliable way. PML can run on a wide array of architectures including single-node, small clusters, grids, and BlueGene.

OpenCL 1.0 Specification Finalised, Released

The Khronos Group has released the finalised, completed specification for OpenCL 1.0, "the first open, royalty-free standard for cross-platform, parallel programming of modern processors found in personal computers, servers and handheld/embedded devices." The specification was first proposed as a draft by Apple, with its new home being the Khronos Group, a consortium that develops and promotes royalty-free media APIs.

Harness the Power of Ruby for Efficient System Administration

Apart from its use as a powerful Web application development platform, in combination with the Rails framework Ruby is also a powerful scripting language. It has immense capabilities, owing to the availability of many built-in and external libraries, the power of which can be harnessed to solve a great deal of the scripting needs that surface in typical systems administrative work environments.

Perl 6 to Break Compatibility, Support Other Interpreters

Version 6 of the popular Perl programming language will not be compatible with previous versions, but will open up a new world of custom "languages" and interpreters, according to its founder Larry Wall. Wall and his co-developers are doing with Perl 6 -- starting again. "It will break backward compatibility in order to simplify it we have to get rid of old cruft, particularly the regular expression cruft," Wall said. "A lot of the unreadability of Perl is related to the regular expression syntax – and we didn't do that, we got it from Unix. It needs to be end-of-lifed."

Python 3.0 Released

"Python 3.0 (a.k.a. 'Python 3000' or 'Py3k') is a new version of the language that is incompatible with the 2.x line of releases. The language is mostly the same, but many details, especially how built-in objects like dictionaries and strings work, have changed considerably, and a lot of deprecated features have finally been removed. Also, the standard library has been reorganized in a few prominent places." See what's new in Python 3.0 for differences between 2.x and 3.x.