Headlines | Linux | Apps | Coding | BSD | Admin | News
Information for Linux System Administration 

Review: DevelopGo: A Linux Live CD for Programmers


DevelopGo is a special Live CD released by the Onebase Linux Project. As the name indicates, it is meant exclusively for programmers.

Although I am a Windows Programmer, I was searching for such a Live CD that would allow me to experiment with different types of toolkits and IDEs available in Linux. DevelopGo matched exactly what I wanted with a suite of developer tools and compilers.

After downloading and trying it, I found it very useful and would like to share my thoughts with other Linux programmers who might be interested.

About the DevelopGo Live CD
The booting speed of the Live CD was fast and it loaded into a full blown KDE desktop. I liked the theme, as it gave a 'Programmers' look and feel.

On the Desktop there were many icons like Editors and Utilities which contained shortcuts for accessing programs. Another Icon, named Getting-Started, was a single page catalog of all the software present in the Live CD.

The list was huge and covered most of the popular tools available for Linux. It was a total development environment that included header files and libraries of all the compiled applications. It included other features of Onebase Linux like Hard-Disk Installer, Docking, USB disk save, etc., which are beyond the scope of this article.

Languages and Toolkits
As mentioned in the Onebase's Website, the user is to ready to program by simply booting a CD in over 11 languages and 5 toolkits. The following programming languages are supported in DevelopGo 1.0:
  • High-level Languages: Java, C, C++, Obj C, Mono C#, Boo, COBOL
  • Scripting Languages: Perl, Python, BASH, TCL, Ruby, LUA
  • Toolkits and Bindings available in this Live CD
  • Toolkits: QT, GTK+, TK, Lesstif, FLTK
  • Bindings: Ruby-Gnome2, KDEBindings, PyKDE, PyQT, PyGTK, Gnome-Python
This gave me the opportunity to learn and program with many languages and toolkits.

Since my programming interest is based on scripting, the different bindings helped to select a suitable toolkit for my software development right away. But there were tradeoffs like an old GCC version 3.4.3. This is understandable as the new GCC 4.0 provides many new changes and features but is not quite stable. A major Perl GTK binding was not included with DevelopGo.

IDE and Editors
DevelopGo comes with a number of Editors and Integrated Development Environments to choose from.
  • Java Programming - The Popular Eclipse IDE version 3.1
  • Mono C# Programming - MonoDevelop .NET development environment with API documentation
  • C, C++, Obj, QT, TK, Perl, Python, Ruby - KDevelop 3.1.2 IDE
  • GTK and GNOME programming - Anjuta 1.2.2 Development studio
  • Web Programming - BlueFish Editor
  • Python and Ruby Programming - Eric IDE
  • GUI Designers - QTDesigner, Glade and Kommander
  • Apart from this list, there were also other console based editors and compilers.
The Loading time of these applications were good. Most of these editors were stable and ran without problems. Except, BlueFish could have been replaced for Nvu, Otherwise the inclusion of editors like MonoDevelop, Eclipse was great.

Many useful developer utilities were present such as CVS, a version control system, Debugger (GDB), and a Project Management Tool called Planner.

There is also DistCC for performing distributed compilation of code and ccache which caches object files and compiles only the changed files making compilation faster.

Another interesting part of DevelopGo is that it includes lots of offline developer documentation on various subjects, despite most of them have been taken from the Internet. These documentation includes guides, API Reference and Code Examples for various compilers and IDEs.

There were firefox bookmarks to Linux based Programming Websites and Pages.

I felt that the main missing factor from this Live CD was the non-availability of DataBase Languages like MySQL. However this can be overcome by installing it to Hard-disk and downloading the available Database servers from the Onebase Software Gallery.

Overall I feel DevelopGo is complete and valuable for a Linux Programmer and a good starting point for building Linux Applications.

Visit the Onebase Website for more information and to download the DevelopGo ISO.
mail this link | permapage | score:8793 | -kumpd, August 25, 2005 (Updated: March 21, 2007)

Comparison: Zend PHP vs. Symfony vs. CakePHP


This article walks through extending the sample application, Blahg, in each of the three frameworks (Zend PHP, symfony, and CakePHP). This is a great way to see each framwork in action by examining their similarities and differences while applying each framework and extending a sample application. read more...
permapage | score:8792 | -solrac, December 19, 2007

Online Ruby Interpreter


Try Ruby online with this online tutorial / interpreter. It runs in your browser.
Ruby is a programming language from Japan (available at which is revolutionizing the web. The beauty of Ruby is found in its balance between simplicity and power.

Try out Ruby code at the prompt above. In addition to Ruby's builtin methods, the following commands are available:
permapage | score:8775 | -Ray, November 30, 2005

Tutorial: Write your own operating system


A rather ambitious tutorial.
Writing an operating system is something that can not only be interesting (if you're one of those people that get turned on by Int 13....) but it is also a great learning experience. Through creating your own operating system you will learn exactly what goes on behind the scenes, elevating you above the average programmer...
[In addition to the tutorial linked from [read more] below, you might also be interested in this FAQ on developing your own OS. -Ed] read more...
mail this link | permapage | score:8756 | -Ray, June 18, 2003 (Updated: August 24, 2008)

Tutorial: Install the Aptana AJAX IDE on Ubuntu


This tutorial shows how to install the Aptana IDE on an Ubuntu Edgy Eft system. The Aptana IDE is a free, open-source, cross-platform, JavaScript-focused development environment for building Ajax applications. It features code assist on JavaScript, HTML, and CSS languages, FTP/SFTP support and a JavaScript debugger to troubleshoot your code. read more...
permapage | score:8745 | -falko, March 14, 2007

Programming Language Tradeoffs: 3GL vs 4GL


Level of Abstraction
The level of abstraction that a programming language provides is all about tradeoffs. Lower level languages (I'll inaccurately call them 3GL's) supply a few small operations which can be combined with great flexibility to accomplish almost anything. The cost, of course, is in the time-consuming detail in which each and every bit of code must be cast. Conversely, high level languages (loosely, 4GL's) and application generators include meta-operations which provide much more functionality for a given amount of code. Once again, there is a cost. Here the big penalty is a loss of flexibility -- which is proportional to the size of the functional units. There are a prohibitively large number of ways in which a few small operations can be combined to create large ones. Therefore, only the most common of these large functions can be reasonably implemented in a high level language before the point of diminishing returns is reached. As the language integrates more large functions into its syntax, its complexity eventually reaches a point where a high level of skill is required to use it effectively.

Special-purpose Libraries
The original distinction between 3GL and 4GL languages has long been blurred by the availability of prepackaged libraries. For example, there are a wide variety of special-purpose function and class libraries on the market for C and C++. These tools lets experienced programmers use their general-purpose language skills while adding only the specialized components needed to complete an application. The details of using the library follow the patterns that they already know, leaving them to learn only the minimum necessary to write their specialized program.

Applications Generators
Meanwhile, programming with some application generators no longer resembles traditional coding -- but the same type of decisions are being made and the same kind of work is being done. The units of functionality are larger, of course, and the methods of manipulating the chunks of logic are usually different as well. Only if the generator is a good match for the application, however, will the potential productivity advantage of this approach be fully achieved. In selecting such a tool, the same tradeoffs that apply to the choice of 4GL's versus 3GL's must be considered. Application generators don't represent a fundamental change in the nature of programming but rather just another point in the continuum of low and high-level programming.

Intermediate Code
To blur the distinction further, the ability of some 4GL's to generate 3GL intermediate code would seem to give the developer the best of both worlds. It retains the productivity of high-level programming and provides access to the machine efficiency and low-level flexibility of a 3GL -- just as the libraries for 3GL's seem to do. While this approach should result in an environment that is as flexible as the 3GL alone, it comes with a tradeoff. To exercise the flexibility of the 3GL it becomes necessary to program in two languages, which increases maintenance costs and training requirements.

The Right Tool for the Job Versus Expertise
Further complicating the issue is the matter of expertise. A very specialized language may be the most productive for a particular application. However, experts in a more generalized language might complete the application on schedule more predictably than would neophytes with a special-purpose language. Of course, the practitioners of the general-purpose language get more opportunities to hone their skills.

Because of this effect, choosing the best language for each particular application might not always be the optimum overall strategy.

[The author codes in C and PHP and no longer uses COBOL, Atari BASIC, Visual BASIC, FORTRAN, ALGOL, Natural, RPG, or IBM 370 Assembly.]
mail this link | permapage | score:8731 | -Ray, June 24, 2001 (Updated: November 29, 2002)

The Real Microsoft Monopoly


The courts have ruled that Microsoft holds a monopoly position in Intel PC Operating Systems. Business users have long been aware of Microsoft's lock on office productivity applications that require them to use MS Office in order to remain compatible with their business partners and customers. And web-surfing users are now using Internet Explorer in a ratio of about 8:1 over alternative browsers.

But one aspect of Microsoft's monopoly is more fundamental than any of those; the investment in skill, experience, training, and tools of Windows software developers themselves.

Those programmers, who have logged many long sessions of coding for the Windows environments, and with their deep immersion in its assumptions, tools, and API's, represent millions of person-years of Microsoft assets.

For years it has been a difficult decision for a professional developer to choose an environment other than Windows. The scale of that market dwarfs its competitors and opens to developers many more specialty markets than any alternative platform. Further, the sheer size of the Windows installed base is seen as a hedge against market change. Windows is perceived as a platform that will be with us for a long time to come.

Because it can take years of effort to reach the highest levels of productivity in a complex development environment, Windows-specialized programmers have, through economic necessity, been unable to switch to a different platform. With a large majority of developers writing code for Windows, the continued dominance of Windows applications was also assured. The monopoly was elegantly self-perpetuating.

Many companies, failing to appreciate the depth of Microsoft's monopoly and its determination to defend it, squandered valuable resources probing Microsoft's markets for an opportunity. After several spectacular failures, it seemed nearly impossible for such a locked market to break free of this cycle.

It seemed impossible, that is, until recently. Windows is no longer leading the growth curve among operating systems. The near perfect seal at the margins of the monopoly, it turns out, is only effective against competitors with a requirement to make money.

While Microsoft once made the fending off of mighty IBM look easy, the Linux phenomenon presents a very different kind of challenge. It needs no profits, corporate partnerships, or investors in order to succeed. Linux depends only on hobbyists' passion for programming and their self-imposed standards of quality in their own work. Further, the Linux community seems to draw motivation from its dissatisfaction with the computing landscape that Microsoft has created.

This noncorporate juggernaut has grown so large that it is spilling into commercial markets on many fronts. Now, with the additional support of several large corporations, the expansion rate of Linux could actually accelerate.

Much of the continued growth of Linux will come at the expense of Microsoft. Others will lose business along the way, of course, but the ubiquitous presense of Microsoft astride the market presents many targets that are simply too broad to miss.

Unfortunately for Windows programmers, at some point the rapid growth of Linux will force the saturated Windows market to start shrinking. Soon thereafter, the seller's market for Windows programming services will become a buyer's market -- and pay scales will begin to drop. Although the computer industry has experienced many of these disruptions in the past as new competition entered the market, this will be the largest such contraction by far.

Confidence in the impenetrable market lock of MS Windows is slowly fading. Some years from now when this trend reversal is complete and documented, we will look back to a single turning point to call the end of Windows' dominance. I'm making my pick a little prematurely. I think the critical point was IBM's decision to support and invest heavily in Linux.
mail this link | permapage | score:8710 | -Ray, July 9, 2001 (Updated: April 18, 2007)



While PHP is a runaway winner in cost as well as platform portability, there are several other good reasons to use PHP instead of ASP...
Both ASP and PHP are languages used to build Dynamic Web sites that can interact with Databases and exchange information. ASP (Active Server Pages) is from Microsoft and is used with IIS (Internet Information Server) that runs on Microsoft Servers. PHP (Personal Home Pages) is from Rasmus Lerdorf, who originally designed this parsing language which was later modified by different people. It runs on Unix and Linux servers and it also has an NT server version.

There are a lot of differences between ASP and PHP.
mail this link | permapage | score:8710 | -Ray, December 25, 2005

Tutorial: Write a Qt program with Qt Designer


Write Hello, World! using Qt Designer...
Here are some simple steps to create a 'Hello, World!' application in Qt using Qt Designer. Aim is to create a Window with a push button on it and when clicking on the push button, "Hello, World!" will be shown on the terminal window. All these steps are tested on a Fedora Core 2 machine with Qt 3.3.2 and KDE 3.2
permapage | score:8681 | -Ray, October 29, 2004

A multithreaded web server for Linux (source code)


A nice example if you're building a multithreaded server...
The only one source file has been modified is server.c
Instead of fork new process to handle each incoming client's connection,
as procedure server_run ( ) does in [1], we start pool of 1024 threads
accepting as parameter descriptor of passive socket.

The procedure run by each thread is asynchronous BSD socket’s server utilizing
select() system call (see for example [2],chapter 13(5)) to switch between
handling incoming client's requests by accept() system call and receiving "http"
requests from clients already connected to server utilizing procedures
handle_request() and handle_get() from [1],chapter 11.
mail this link | permapage | score:8679 | -Ray, April 29, 2005

Mac Shell Scripting Tutorial


A tutorial on scripting for the Mac, from Apple.
This document assumes that you already have some basic understanding of at least one procedural programming language such as C. It does not assumes that you have very much knowledge of commands executed from the terminal, though, and thus should be readable even if you have never run the Terminal application before.

The techniques in this document are not specific to Mac OS X, although this document does note various quirks of certain command-line utilities in various operating systems. In particular, it includes information about some cases where the Mac OS X versions of command-line utilities behave differently than other commonly available versions such as the GNU equivalents commonly used in Linux and some BSD systems.
mail this link | permapage | score:8653 | -Ray, October 10, 2006

The life cycle of a programmer


  • binary age(*) 0 > 1 (baby): learns structure of first language

  • 1 > 10 (toddler): walks, learns many keywords of first language and significance of context, develops philosophy of life

  • 10 > 100 (little kid): violates rules of language, is housetrained (usually)

  • 100 > 1000 (brat): violates intent of language, starts school to learn new ways to abuse language

  • 1000 > 10000 (big kid): reaches physical maturity, reverts to subset of language with local variations -- causing parsing errors among programmers of all other ages

  • 10000 > 100000 (trainee): reaches mental maturity (usually), learns new languages, starts to work (usually), marries (maybe)

  • 100000 > 1000000 (programmer): reaches emotional maturity (usually) and begins to decline physically, works, dreams of times of no work both past and future, divorces (usually), remarries (maybe)

  • 1000000 > 10000000 (curmudgeon): forgets languages, declines in usefulness; almost all programmers are retired during this age range, although in the past some remained working well into this range to deactivate millenium(**) bugs in their older code

  • => 10000000 (zombie): this is currently not possible due to the age field having been defined as a signed char; while negative ages are not logically possible, it is believed that the negative range was once used for returning errors from age-related functions and this definition has been retained for historical compatibility (the language committee apologizes for any inconvenience this may cause)
* age expressed in complete cycles around the main energy object

** primitive languages used an obsolete numbering system called 'base ten' which somehow encouraged programmers to create date bugs related to the value 11111010000 (?)
mail this link | permapage | score:8651 | -Ray, June 15, 2000 (Updated: April 18, 2007)

Tutorial: Android development environment on Fedora 14


This tutorial describes how you can set up a development environment for building Android apps on a Fedora 14 desktop using Eclipse, the Android SDK, and PhoneGap. I will describe how to build Android apps from the command line with PhoneGap and from the GUI with Eclipse and PhoneGap and how to test them in an Android emulator and on a real Android device. PhoneGap allows you to develop your Android applications using web technologies such as HTML, CSS, and JavaScript (e.g. with JavaScript libraries such as jQuery/jQTouch), and it will turn these web apps into native Android apps (in fact, PhoneGap supports multiple platforms such as Android, iPhone, Palm, Windows Mobile, Symbian, so you can use the same sources to create apps for multiple platforms). read more...
mail this link | permapage | score:8638 | -falko, February 1, 2011

Java J2EE Tutorial: Secret Santa Web Application


In the spirit of the season, Santa's helper Merlin Hughes, who doubles in real life as a Java developer, presents the design and implementation of a J2EE-based secret Santa Web application, along with a discussion of the tools and technologies that can be used to ease the development of such applications. The articles provide a broad overview of how to build a J2EE application from the ground up, using some modern tools and frameworks, with details of how these different technologies work together to produce the end result. While not intended as detailed treatises on any individual technology, these articles instead serve as guides to developing a Web application with J2EE. This first article focuses on the beans, their design and implementation, and the use of XDoclet to accelerate their development and deployment.

Part 1: The beans
Part 2: The controller
Part 3: The view
mail this link | permapage | score:8634 | -solrac, December 19, 2003

Unix: Shell Script Wrapper Examples


Shell script wrappers can make the *nix command more transparent to the user. The most common shell scripts are simple wrappers around third party or system binaries. A wrapper is nothing but a shell script that includes a system command or utility.

Linux and Unix like operating system can run both 32bit and 64bit specific versions of applications. You can write a wrapper script that can select and execute correct version on a 32bit or 64bit hardware platform. In cluster environment and High-Performance computing environment you may find 100s of wrapper scripts written in Perl, Shell, and Python to get cluster usage, setting up shared storage, submitting and managing jobs, backups, troubleshooting, invokes commands with specified arguments, sending stdout to stdout and stderr to stderr and much more.

In this post, I will explains how to create a shell wrapper to enhance the basic troubleshooting tool such as ping and host. read more...
mail this link | permapage | score:8633 | -nixcraft, June 24, 2012

Tutorial: Creating graphics with PHP


Imagine creating Web-page graphics dynamically using just code. Creating and manipulating images is yours for the doing with the power of PHP. This tutorial steps through using the GD library, showing you how to create and alter images on Web pages. It starts with the GD construct, and then builds on it to showcase graphics techniques. read more...
permapage | score:8632 | -jmalasko, July 8, 2008

Tutorial: Create a video site with PHP


Setting up your own on-demand video site doesn't have to be complicated. This three-part tutorial series will take you through what you need to know to create video optimized for the Web, as well as creating a PHP application that will keep your videos organized and readily accessible. In Part 2, discover the basic application using CakePHP. read more...
permapage | score:8628 | -jmalasko, June 4, 2008

Monitor a Linux service with watchdog scripting


Monitor your web server, or just possibly, that program that mysteriously disappears occasionally...
Old Unix hands already know this, but new Unix (Linux) users may be asking, ‘What is a “watchdog script”?’ Basically it is a bash or other script that is run via cron periodically to check on a persistent service. The watchdog script takes actions based on the state of the service it monitors.
permapage | score:8600 | -Ray, May 19, 2010

Tutorial: Build a C/C++ memory manager


As a developer, one of the most powerful tools that C/C++ arms you with to improve processing time and prevent memory corruption is the control over how memory is allocated or deallocated in your code. This tutorial demystifies memory management concepts by telling you how to create your very own memory manager for specific situations. read more...
permapage | score:8588 | -BlueVoodoo, February 23, 2008

Tutorial: Write plugins for Nagios


Nagios is open source monitoring software that scans hosts, services, and networks for problems. Learn more about Nagios and find out what new system monitoring possibilities exist with this software.
You can use Nagios to monitor all sorts of hardware and software. The opportunity to write your own plug-ins makes it possible to monitor everything that your Nagios server can communicate with. As you can use any computing language that manages command-line arguments and exit status, the possibilities are almost endless!
mail this link | permapage | score:8578 | -BlueVoodoo, July 19, 2007
More coding articles...
Buy Abstract Art Canvas Prints

Selected articles

The Supreme Court is wrong on Copyright Case

Space Tyrant: A multiplayer network game for Linux

The Real Microsoft Monopoly

Mono-culture and the .NETwork effect

Apple to Intel move no threat to Linux

Space Tyrant: A threaded game server project in C

Scripting: A parallel Linux backup script

Apple DIY Repair

Why software sucks

Linux dominates Windows

Librenix T-Shirts and Coffee Mugs!

Space Tyrant: Multithreading lessons learned on SMP hardware

The life cycle of a programmer

Download: Linux 3D Client for Starship Traders

Missing the point of the Mac Mini

How to install Ubuntu Linux on the decTOP SFF computer

Beneficial Computer Viruses

Hacker Haiku

Programming Language Tradeoffs: 3GL vs 4GL

MiniLesson: An introduction to Linux in ten commands

VPS: Xen vs. OpenVZ

The Network Computer: An opportunity for Linux

Currency Traders Telnet Game

Tutorial: Introduction to Linux files A simple directory shadowing script for Linux

Space Tyrant: A threaded C game project: First Code

Graffiti Server Download Page

The short life and hard times of a Linux virus

Closed Source Linux Distribution Launched

Linux vs. Windows: Why Linux will win

No, RMS, Linux is not GNU/Linux

Why Programmers are not Software Engineers

Microsoft to push unlicensed users to Linux


Firefox sidebar

Site map

Site info

News feed


(to post)


Articles are owned by their authors.   © 2000-2012 Ray Yeargin