Posts

Installing a serial port connector on the Chumby/Infocast

Image
Overview Both the Infocast 8" NS-DP8CH and the Infocast 3.5" NS-DP3CH have 3.3v TTL level serial ports available on connector ports on the motherboards. The serial ports come with transmit (TX), receive (rx) and ground connections and are enabled by default by the Chumby operating system as the boot log on startup and as a serial based terminal after boot.  Traditional computer serial ports operate at different voltages and modern computers often have no serial ports at all.  Developers and users can connect to the Chumby through the use of a USB to 3.3v serial device adapter cables.  Pre-made ftdi brand cables are available on the internet but a lot of folks hack up cheap or surplus USB-cell phone cables like the Nokia. The Chumby is a 3.3v system so don't use a 5v cable. Search on the internet for appropriate cables. USB to serial cables appear to operating systems as (virtual) COM ports.  Mine shows up as COM4 on my Windows 7 machine.  Many terminal emulator...

Hints on installing a qt webkit browser on the Chumby/Infocast

This Chumby Forum posting describes how to install a webkit browser on a Silvermoon/Infocast 8" device and on the Falconwing/ChumbyOne device.  Silvermoom Infocast 8" Setup   Download the pre-built browser usb image that is designed to run on a usb thumb drive (/mnt/usb).  Unpack the image to the root directory of the thumb drive.  Stick the thumb drive into the device and restart the device.  It should come up with the web browser on the www.chumby.com page.  This relies on the fact that the Chumby system will run  the debugchumby in the root of any thumb drive that is inserted into a usb port.  The debugchumby script can be customized with an editor to drive the web browser to any url that you wish. The system also supports a USB keyboard for URL entry if you are running the browser version with the URL bar. Webkit browser components can be built to operate in various ways.  The one from the package above runs as a window. The actu...

Using Phidgets on a Chumby/Infocast 8

Image
I had been kicking around the idea of a system that retrieves the status of various devices and displays that state on on a set of lamps.  I wanted some type of embedded system that already had network support and a standard tool chain. I also needed some simple way to interface with my indicator lights. Chumby and it's Infocast derivatives are really slick customizable internet aware devices with built in touch screens, a linux kernel, USB ports and available GPIO pins.  Chumby also provides a development toolchain, documentation and a nice user forum. Best Buy had these on sale during the 2010 Christmas rush for less than almost any DIY system could be built. Phidgets are USB connected peripherals that let you interface to sensors, I/O, servos and other real world devices without having to write micro-controller code.  This is a picture of my 8" Infocast and Phidget 0/16/16 board. The Chumby comes with Linux Phidget kernel divers. The Phidget folks recom...

Simple cgi on the Chumby/Infocast with lighthttpd

There is a great blog posting , featured on Hack a Day, that describes how to run lighthttpd on the Chumby.  The blog also provides a pre-built version of the web server that is configured to run in /mnt/storage instead of /mnt/usb.  This is nice because it lets you run the httpd server from the writable partition of the internal microsd card instead of having to use a thumb drive.  A lot of the Chumby derived  devices have enough space in /mnt/storage to do all kinds of interesting things. I recently purchased an BestBuy Insignia Infocast 8" device. It is essentially an 800Mhz big screen Chumby running linux 2.6 with some BestBuy customizations.  The Insignia team did not include a web server and the simplest way to fix that is to use the lighthttp server from the blog mentioned above. Installing and Configuring The basic steps for installation are: Turn on SSH in the Info cast. Touch the Insignia logo in the upper right corner.  This should make ...

Memory Tuning - How OS Page Sizes Can Impact Oracle Performance

Image
Theory Modern operating systems provide each process it's own virtual address space that is potentially larger than physical memory. It does this by mapping the virtual addresses onto actual physical memory pages. The following diagram shows how large virtual address spaces are mapped onto small physical memory.  The virtual to physical relationship is maintained in mapping tables. Linux maintains a separate map for each process. The map contains one entry for each page where the size of the page is set by the operating system.  The CPU attempts to speed up the mapping of virtual memory to physical addresses by caching a subset of the mapping entries in its internal cache.  Modern large memory systems and the resulting large processes have increased the size of memory mapping tables faster than the cpu cache sizes have increased. The processor cache is usually very small with only maybe 100 entries in may processors. This mismatch causes faults that can have ...

Improving Software Quality with Continuous Instrumentation

Image
Better Software is No Accident   The most reliable way to build better software is to integrate quality into process with as much automation as possible.  Automated measurements and metrics provide continuous public visibility to the current state and trends. It is easiest to apply these techniques to new projects but they can also be applied to existing processes in an incremental fashion: Balance the value with the ease of automation. You may sometimes pick less than ideal metrics if they are easier to add Success breeds success.  Do simple stuff first and get points on the board Incrementally improve and change.  Add changes at the rate the team can absorb, often at a slightly faster rate than they would like to go. This presentation covers what we were able to implement in about 15 months.  We didn't take on design concepts like cohesion, fan-in, fan-out and file tangles until the second year. It focuses more on actual software production than on the...

Eclipse in the Enterprise

Image
Eclipse in a Large Company's IT Shop Many say that the optimal development team is 5-7 people but that isn't how larger Enterprise software projects work. Those projects have dozens or even hundreds of developers using multiple technologies and Languages. Eclipse's plug-in architecture makes Eclipse more than an IDE. It is a developer desktop environment that many enterprises cannot take full advantage of because of they don't standardize their configurations and toolsets and because they require human intervention for setup. Supersize Me Complex problem that often seems simple to the outsider or new team member No one person knows the whole business problem No one person knows the whole technical implementation No one understands how each technical layer works A lot more effort is put into staffing the initial build than the ongoing maintenance Some work will be defensive in nature protecting from future mistakes All applications ar...

Enhancing Scalability with Distributed Object Caching

Teams take various approaches when scaling applications usually doing things like increasing the number of tiers in the application(s) and adding more hardware to each tier. Both of these approaches tend to create operational issues as the system size increases. Some systems have large amounts of user data that can create their own problems when trying to provide fault tolerance and when the number of users combined with the user data is to large to fit in server memory. Persisting data to a relational store often has two much overhead in these situations. Teams can scale up their applications and provide additional stability through the use of commercially available distributed object caches. (Originally 7/2010)

Lightweight Monitors for Metrics and Troubleshooting

Lightweight Monitoring tools can be integrated into applications to provide quantitative information about how an application is being used and how it is performing. Development teams can integrate lightweight monitoring that augments , or in some cases replaces, the server level monitoring provided by system or operations tools. Internal monitoring can provide stick counts and performance information at the method level or on a business transaction basis. Monitors can easily be enhanced to that lets teams track traffic or performance across time, release and program instance. (7/2010)

Coding Standards are Part of Continuous Improvement

Coding standards extend to something beyond just code formatters. Coding Standards give team members the same understanding of what's expected of them.  Developers spend less time trying to understand code when it's style and operating model look similar across modules and applications. Standards must take into account the range of developer skill set allowing for ongoing improvement from training. It may be that you allow or disallow some feature/approach to reduce the number of defects even if some developers are capable of doing "more". Developers like to be free to develop "in their own fashion" but management wants code to have the same shape and look from developer to developer because they care about developer portability across development efforts. Standards can be created that still let developers be creative on the interesting problems. Automated Standards Support Tooling can help enforce coding standards by providing constant reminders that the...