Archive for July 2008

Best, Good, or Emerging Free Software Development Tools - Group No. 1


In “Some Free Software Development Tools” post, I listed a number of free software development tools. In this post, I listed another free software development tools for best, good, or emerging software development tool identification and evaluation. Enjoy the list below.



Python



Command Line Tool:
1. debsync - debsync is a Python command line tool which helps to synchronise the installed packages lists on several existing Debian GNU/Linux machines… read more



Perl



Specific Script:
1. AutoUpdate - AutoUpdate is a Perl script which performs a task similar to RedHat’s up2date or autorpm. It can be used to automatically download and upgrade rpms from different (s)ftp or http(s) sites. Moreover, it can also be used to keep a server with a customized (RedHat) distribution plus all clients up to date. I have tried to write it in such a way that it is not RedHat specific and hence it should work with any other rpm based distribution as well… read more

Specific Code:
1. Config::General - This perl module opens a config file and parses it’s contents for you. It provides variable interpolation, saving of configs (kinda serializer), an OOP-Interface and much more… read more
2. Dupseek - Dupseek is a command-line interactive perl program to find and remove duplicate files… read more



Program Editor



Text Editor:
1. GNU Emacs - GNU Emacs is an extensible, customizable text editor—and more. At its core is an interpreter for Emacs Lisp, a dialect of the Lisp programming language with extensions to support text editing… read more
2. Led - Led is a small, fullscreen text editor for unix, primarily intended for use as a programming editor. Programming modes do syntax highlighting and can do auto indentation. Keybindings, colors, and general options may be changed in each user’s ~/.ledrc file… read more
3. Protoeditor - Protoeditor is a small KDE text editor developed for debugging scripts interactively. The goal is to provide a simple editor supporting a variety of debuggers for different languages… read more

GNOME2 Editor:
1. Easymacs - Easymacs is an easy-to-learn, one-size-fits-all configuration for new users of GNU Emacs. It sets up key bindings that attempt to conform to a common denominator of the Gnome/KDE/OS X/Microsoft Windows human interface guidelines, and provides function-key bindings for other powerful Emacs features. It is fully documented, and the new user can productively edit text right away, without going through the Emacs tutorial. Many commonly-used functions can be accessed without having to learn the “chords”, or multiple serial keystrokes that Emacs uses by default… read more
2. gPHPEdit - gPHPEdit is a GNOME2 editor that is dedicated to editing PHP files and other supporting files, like HTML/CSS. It has support for drop-down function lists, hints showing parameters, and syntax highlighting… read more

Web-based Editor:
1. Artistic Style - Artistic Style is a source code indenter, formatter, and beautifier for the C, C++, C# and Java programming languages… read more
2. ide.php - Ide.php’ is a Web-based editor for quick development of server side code. It has a rapid prototyping environment so you can test and save snippets of code with minimal overhead. You can use it to develop PHP, ASP, JSP, SSI, HTML, or CGI… read more

Hex Editor:
1. Bless - Bless is a high quality, full featured hex editor… read more

Code Editor:
1. indent - indent changes the appearance of a C program by inserting or deleting whitespace. It also has options for controlling the alignment of braces and declarations, program indenting, formatting of both C and C++ comments. and other stylistic parameters… read more
2. PyPE - PyPE (Python Programmers’ Editor) is an editor written in Python with the wxPython GUI toolkit. Releases occur when sufficient (or extraordinary) bugs are fixed, features are added, etc… read more
3. Scintilla - Scintilla is a source code editing component for GTK+. It has the usual features found in text editing components, as well as some that are especially useful for editing and debugging source code; these include support for syntax styling, error indicators, code completion and call tips. Styling choices are more open than with many editors: Scintilla lets you use proportional fonts, bold and italics, multiple foreground and background colours, and multiple fonts… read more



Program Build Automation



Code Generator:
1. AutoCodeGenerator - AutoCodeGenerator is a tool which is able to generate other programs that insert, delete, or update database records for a number of different database programs. Programs can be generated in Python, bash, ksh, Java, C, or other languages; the package also generates code for various database servers via a plain text file… read more

Network Development

Some Free Software Development Tools


In developing a software organization’s policy and strategy, one can manage their programming tools to support and improve their operation and total life cycle performance. This includes identifying and evaluating alternative and emerging programming tools in the light of their impact on business, society, customer, and people; and replacing their out dated tools.

The following are some free software development tools:



PHP


Class:
1. Access_user Class - Access_user Class is an easy to use system for protecting pages and register users. They main features are: User-login, user registration, user update, remember login information, page protection, forgotten password recovery, mail based account activation and multi language message reporting and since the latest versions: maintain extra user profile information, access levels, a limited (safe) admin panel, manual account activation and an improved password check. The class is powered by MySQL and PHP sessions. Inside the package are examples for all primary methods. Since version 1.92 custom session handler are supported… read more

Debugger and Profiler:
1. DBG-Client - Client for the DBG debugger and profiler… read more

Installer:
1. PHP - PHP is a widely-used general-purpose scripting language that is especially suited for Web development and can be embedded into HTML. If you are new to PHP and want to get some idea of how it works, try the introductory tutorial. After that, check out the online manual, and the example archive sites and some of the other resources available in the links section… read more

Specific Code:
1. phpMyLinks - phpMyLinks is a php script which allows you to manage your http urls. It is very easy to install, and keeps all operations fast and thin. You can quickly add, delete or modify your http links and follow any link in the alphabetical list to reach your destination… read more

Application framework:
1. phpWebApp - phpWebApp is an application framework which makes easy and simple the task of building PHP web applications based on relational databases. It separates the task of designing and changing the layout of the application from the task of implementing the logic of the application, by using XML templates that are an extension of XHTML. It also simplifies the task of implementing the logic of the application by offering an event based programming model. In addition, phpWebApp tries to offer modularity and code reusability to the community of webApp developers… read more



Ruby


Library:
1. FXRuby - FXRuby is a library for developing powerful and sophisticated cross-platform graphical user interfaces (GUIs) for your Ruby applications. It’s based on the FOX Toolkit, a popular open source C++ library developed by Jeroen van der Zijp. What that means for you as an application developer is that you’re able to write code in the Ruby programming language that you already know and love, while at the same time taking advantage of the performance and functionality of a featureful, highly optimized C++ toolkit… read more
2. HighLine - HighLine’ eases and simplifies the tasks of doing console input and output with low-level methods like gets() and puts(). It provides a system for requesting data from a user, without needing to code all the error checking and validation rules and without needing to convert the typed Strings into what your program really needs… read more
3. Ruby/AWS - Ruby/AWS is a Ruby language library that allows programmatic access to the popular Amazon Web sites via the AWS v4 API. It is the successor to the now obsolete Ruby/Amazon… read more
4. Ruby/DICT - Ruby/DICT is a DICT protocol library and client… read more
5. Ruby/Google - Ruby/Google offers a higher-level abstraction of Google’s SOAP-driven Web API. It allows the user to programmatically query the Google search-engine from the comfort of his or her favourite programming language, assuming that’s Ruby… read more
6. rubyzip - rubyzip is a ruby library for reading and writing zip files… read more
7. Ruport - Ruport (Ruby Reports) is a software library that aims to make the task of reporting less tedious and painful. It provides tools for data acquisition, database interaction, formatting, and parsing/munging. Designed to be extensible, it is possible to use Ruport for quick specific tasks as well as to build robust reporting applications… read more

Interpreter:
1. JRuby - JRuby is an 100% pure-Java implementation of the Ruby programming language… read more

Installer:
1. Ruby - Ruby is a dynamic, open source programming language with a focus on simplicity and productivity. It has an elegant syntax that is natural to read and easy to write… read more

Specific Code:
1. acoc - acoc is a program for colouring the output of any program… read more
2. mod_ruby - mod_ruby embeds the Ruby interpreter into the Apache Web server, allowing Ruby CGI scripts to be executed natively. These scripts will start up much faster than without mod_ruby… read more
3. nldict - nldict is a Dutch dictionary program… read more
4. rb.log - rb.log is a full-featured weblogger written in Ruby. It features file uploads, comments, blog-rolling, side-bar editing, bookmarklets, the Blogger API, searching, RSS syndication, and archives. It also performs well on slower machines by regenerating static pages after posts are made… read more
5. ruby update - ruby update is a ruby script which helps people who install their packages from source keep their packages up to date. It does not attempt to install anything on its own, but simply scans your file system and lets you know if there is an updated version of a particular program. rupdate can only check the status of those programs for which it has been hard-coded to check… read more

IMAP tool:
1. rit - rit is the Ruby IMAP tool. It can be used to manipulate mailboxes over IMAP, allowing you to copy and delete mailboxes and their contents… read more

Extension module:
1. Ruby Inline - Ruby Inline is an analog to Perl’s Inline::C. Out of the box, it allows you to embed C/++ external module code in your ruby script directly. By writing simple builder classes, you can teach how to cope with new languages (fortran, perl, whatever)… read more
2. Ruby/LDAP - Ruby/LDAP is an extension module for Ruby. It provides the interface to some common LDAP libraries (for example, OpenLDAP, UMich LDAP, Netscape SDK and Active Directory). The common API for application development is described in RFC1823 and most libraries comply with it. Ruby/LDAP supports those libraries… read more
3. rwdshell - rwdshell uses the RubyWebDialogs GUI to run shell commands in a Web browser. It uses the rwdtinker framework for removal and installation of applets. It includes a Ruby eval screen, a shell command line, and a shell script runner. Users can also edit and run Ruby scripts… read more
4. rwdtinker - rwdtinker is the core application for a Ruby application framework using the RubyWebDialogs GUI. It provides a system for developing programs via a Web-based interface, and lets developers combine and create applets to implement an application. Features include built-in bug report submission, remote control with UDP ports, a test framework, and context-sensitive help… read more
5. SQLite-Ruby - This module allows Ruby programs to interface with the SQLite database engine (www.sqlite.org). You must have the SQLite engine installed in order to build this module. Note that this module is NOT compatible with SQLite 3… read more



Java


Development framework:
1. ACDK - ACDK is a development framework with a similar target of Microsoft’s .NET or Sun’s ONE platform, but instead of using Basic/C# or Java as programming language, it bases C++ as core implementation language… read more

Development platform:
1. Eclipse - Eclipse is an open source community whose projects are focused on building an open development platform comprised of extensible frameworks, tools and runtimes for building, deploying and managing software across the lifecycle. A large and vibrant ecosystem of major technology vendors, innovative start-ups, universities, research institutions and individuals extend, complement and support the Eclipse platform… read more

Specific Code:
1. Condenser - Condenser is a tool for finding and removing duplicated Java code. Unlike tools that only locate duplicated code, the aim of Condenser is to also automatically remove duplicated code where it is safe to do so… read more
2. Kaffe - Kaffe is a clean room implementation of the Java virtual machine, plus the associated class libraries needed to provide a Java runtime environment. The Kaffe virtual machine is free software, licensed under the terms of the GNU General Public License… read more
3. Qexo - Qexo (Query Expressions for XML Objects aka Kawa-XQuery) is an implementation of W3C’s draft XML query language XQuery. XQuery is a high-level expression language whose values are sequences of nodes (as in DOM) and simple values. It includes syntax for embedding XML or HTML results, and a ‘for’ statement comparable to SQL’s ’select’. This implementation uses the Kawa tools to compile XQuery programs to Java bytecodes that can run on any JVM. XQuery programs can run as servlets, as standalone applications, or from the command-line… read more

Extension module:
1. GNU Classpath - The GNU Classpath Extensions project builds free versions of Sun’s Java extension libraries, the packages in the javax namespace. It is a companion project of the GNU Classpath project… read more

Parser generator:
1. SableCC - SableCC is a parser generator which generates fully featured object-oriented frameworks for building compilers, interpreters and other text parsers. In particular, generated frameworks include intuitive strictly-typed abstract syntax trees and tree walkers. SableCC also keeps a clean separation between machine-generated code and user-written code which leads to a shorter development cycle… read more

Virtual machine:
1. SableVM - SableVM is a robust, extremely portable, efficient, and specifications-compliant Java virtual machine that aims to be easy to maintain and to extend. It features a state-of-the-art and efficient interpreter engine. Its source code is very accessible and easy to understand. It also has many robustness features that have been the object of careful design… read more

Scripting language:
1. FScript - FScript is an extremely simple scripting language. Its intended use is as an embedded language in other Java programs. It is very simple to embed - it can be as simple as sub-classing one class to add your own functionality. However is not a complete programming language, as it has no library of standard functions (such as IO and string processing). FScript supplies a base functionality (such as flow control, variable handling and basic math operations) that can extended by the host application… read more

Applets execution:
1. gcjwebplugin - gcjwebplugin is a plugin for Mozilla and other web browsers for the execution of applets… read more

Library:
1. JCIFS - JCIFS is an Open Source client library that implements the CIFS/SMB networking protocol in 100% Java. CIFS is the standard file sharing protocol on the Microsoft Windows platform (e.g. Map Network Drive …). This client is used extensively in production on large Intranets… read more

Hardware Development

Join a Practitioner Group

The owner of Connecting Practice is positive that most people have a natural desire to learn, to share what they know, and to make things better. Yet, this natural desire is thwarted by disorder (hurdles and deterrents - a problem of cultural domination in learning, sharing, and improving our SD practice) that we erect in our organization.

The disorder includes:

1. A culture that values personal technical expertise and knowledge creation over knowledge sharing. This is rampant in engineering and knowledge-based organizations, such as consulting and research firms.

2. An organization who disintegrates into a group of isolated camps With little incentive or lack of need or responsibility to share SD knowledge and/or practice with others. They promote “silo” thinking and hoard SD knowledge and/or practice, in which locations, divisions, and functions focus on maximizing their own accomplishments and rewards. Their question, “why should I share my SD knowledge and/or practice?”

3. An organization who allows or rewards not the people for taking the time to learn and share and help each other to improve knowledge and skills.

4. A leader who demonstrates the “not-invented-here” syndrome - it is the lack of experience learning from outside one’s on group - or refuses to bring in new ideas committed to an obsolete SD practice which once made the group successful, but which now threatens to sink it. S/he is unable to innovate or even reinvent the SD practice.

5. People who lack of contact, relationships, and common perspectives among others who don’t work side-by-side. It creates interaction patterns with little incentive to cooperate, collaborate, share information, or team up to pursue mission-critical outcomes. In most organizations, the left hand not only doesn’t know what the right hand is doing, but it also may not even know there is a right hand.

If you have one or more of this disorder, the owner of Connecting Practice invites you to join the SD Practitioner Group and participate in discussing and sharing your free SD practice materials, procedures, tools, trainings, and/or metrics. By registering, it will involve and give you an opportunity to:

  • provide, solicit, model, recommend new, or question free SD practice materials, procedures, tools, trainings, and/or metrics;
  • feel, reflect, think, and take on the best of “what is” and/or “what could be” of free SD practice materials, procedures, tools, trainings, and/or metrics;
  • understand the unique conditions, interpretations, assumptions, and/or concerns of free SD practice materials, procedures, tools, trainings, and/or metrics;
  • express openly free SD practice material, procedure, tool, training, and/or metric information, experiences, ideas, beliefs, and/or emotions with others;
  • Point out certain free SD practice materials, procedures, tools, trainings, and/or metrics that have proven unworkable or that is unnecessary;
  • cope with free SD practice materials, procedures, tools, trainings, and/or metrics and/or in one progress initiative;
  • find our where present free SD practice materials, procedures, tools, trainings, and/or metrics are working or not;
  • provide general comments on free SD practice materials, procedures, tools, trainings, and/or metrics;
  • learn more about free SD practice materials, procedures, tools, trainings, and/or metrics they seek;
  • improve the usability of a free SD practice materials, procedures, tools, trainings, and/or metrics;
  • learn and understand what is going on in the forum;
  • build networks and solutions together;
  • provide solution to problems;
  • open problems and/or issues;
  • suggest for improvements;
  • tell positive stories;
  • learn collaboratively;
  • keep up with friends;
  • point out errors; and/or
  • so on.

To join, please click the Practitioner Group link in the main menu and register.

Register now and invite your friends too to help Connecting Practice to progress in the hope of arriving at a solution to disorder!

Quality Assurance and Software Testing

Web Form Design Patterns: Sign-Up Forms

This is a great article - a heads-up for Sign-Up Forms design and development.

If you want to maximize the revenue of your service you need to maximize completion rates of your web forms. Unless you have some revolutionary ideas to impress your visitors at first glance, it is not enough to simply enable users to sign up on your site.

What interest me more about the article’s value is how it could help a Developer to utilize the guidelines and build the sign-up forms better.

read more | digg story

Hardware Development