Image of Advanced Programming in the UNIX Environment, Second Edition (Addison-Wesley Professional Computing Series)
Image of Android Wireless Application Development
Image of Operating System Concepts
Image of Modern Operating Systems (3rd Edition)

Accessing Cisco Secure ACS 5.X Internals

Cisco does not hide the fact that Cisco Secure Access Control System (Secure ACS) 5.X is based on CentOS but provides no way to get to a Linux shell. Instead, when you log into Secure ACS you are presented with a Cisco IOS-like shell. This post will show you how to access the bash shell as root, and explores the underlying filesystem layout and utilities which make up Secure ACS. For the purposes of this blog, I am using Secure ACS VM 5.2. There may be slight variations in filesystem layout and utilities in later versions of Secure ACS. So

Updating the Fedora 14 JavaScript Shell

For those who are not familiar with a JavaScript shell, it is a command line interface to a JavaScript engine. Similar to Python or Ruby, the JavaScript shell has two modes of operation. You can use it as an interactive shell, in which you type JavaScript code at a prompt and get instant results, or you can invoke a JavaScript program. The easiest way that I know of to build a JavaScript shell on Fedora is to download and build either the SpiderMonkey or TraceMonkey JavaScript engine, both of which come with a JavaScript Shell. TraceMonkey recently replaced SpiderMonkey in

Sort Korn Shell 93 Associative Arrays

Both ksh93 and bash V4 support associative arrays. However neither provide any built-in mechanism to sort associative arrays. Recently I came across the following problem. Given a list of IP addresses such as the following: how can one produce a group by summary report similar to the following: : 3 : 2 : 1 : 1 : 1 The report counts the occurrences of each IP address in the input list, and outputs the count in descending order. Note it does not try to sort the IP

JavaScript Shell Command Line Processing

I like to use a JavaScript shell when developing custom JavaScript functions which contain more than a few lines of code. Logic and coding errors are easier to spot. The development cycle is also faster because you can avoid the cycle of loading code onto a web server, reloading a web page, etc. What is a JavaScript shell you may ask? First some background. JavaScript is a complex full-featured weakly typed object- based functional programming language originally developed by Brendan Eich in 1995 while working on the Netscape Navigator browser. It is most frequently used in client-side web applications but

KSH93 Bit Manipulation

When programmers think about bitwise manipulation, they usually think about using C or C++ to solve their problem since both programming languages provide a rich set of features which make it easy to perform bitwise manipulation. However it is possible to just as easily perform such operations using the ksh93 shell.  This post will explain what bitwise manipulation and number conversion facilities are available in ksh93 and provide some hopefully useful utilities and examples. Many programmers are unaware that ksh93 has builtin support for different numeral radices (AKA arithmetic bases) as shown in the following example. $ print $(( 10