Sunday, April 30, 2006

Mini Linux Distro on USB ThumbDrive

It is nice to have a bootable USB key with a self contained OS installed on it. The obvious choice is Linux. There are quite a few Mini USB Linux's such as Puppy, DSL, SLAX, STUX, etc. Each of the communities that supply utilities, support, documentation, etc. for each of the Mini Distributions is quite amazing. At the moment, 1 makes it the clear C.P.O.T.D. choice- SLAX, since it runs the 2.6 Kernel while all other mini distros run 2.4. Granted the 2.4 kernel is small and fast, but back porting utilities such as trucryptfs etc. become a problem. My simple philosophy is "Move forward, don't look back." There is another mini distro that is worth mentioning, STUX- a Linux distro based on Slackware Linux 10.2 and Knoppix 3.7 for kernel and modules with some very nice custom configuration tools. It is currently Kernel 2.4 but there is a 2.6 release due out hopefully soon.

The Cool Pick Of The Day is SLAX.

SLAX is small (185MB), fast and flexible mini Linux distribution based on Slackware which can fit on and run directly from small (3.14") and normal sized CD-ROM disc, usb drives.

SLAX has some very cool features. First it has modularity- you can customize the system to fit your specific needs and wants by loading additional software in the form of compressed modules. Many modules are available at the website. You can even create your own modules. SLAX is based on the 2.6 Linux Kernel which is unusual for mini distributions which are normally 2.4 based. It also features two very nice file systems: SquashFS and UnionFS which allows a single mount point (single logical filesystem) view of many filesystems and allows read-only filesystems to behave as a writable one by overlaying a writeable file system on top of read-only media (e.g. saving all changes to memory or a USB thumb drive, etc.)

There are 2 ways to create a Slax USB bootable key: The manual hard core way and the MySLAX Creator way. The MySLAX Creator method requires using MS Windows but it is a very easy and comprehensive tool that can do the following:
As they say in the industry, it just works! So MySLAX Creator gets a Cool Pick Of The Day as well!

MySLAX Creator is a very easy configuration wizard that creates a SLAX image with just a few clicks of the mouse. It is very self explanatory to use and install.

Saturday, April 29, 2006

Sound Editing

If you want to edit your own podcasts or sound tracks or do some fancy audio processing for your sound projects, you will need a sound editor. I try very hard to always pick a solution that is cross-platform and standards based so that everyone can utilize the solution and so that exchanging and sharing their work can be eaisly done by the major platforms available. I also try to pick a product that is free of charge. The Cool Pick Of The Day is Audacity, a free, easy to use, cross-platform (Windows, MacOS (9 & X) and Linux/UNIX) sound editor.

With Audacity you can either record analog audio from sources such as a microphone, tapes, or records or import sound files such as WAV, AIFF, AU, Ogg Vorbis, MP2 and MP3. Recording and editing can be done in 16-bit, 24-bit, and 32-bit floating point sampling rates at up to 96 KHz.

Using multi-channel hardware you can record up to 16 channels at once or using a dubbing technique you can dub over existing tracks to create multi-track recordings. A great mixing feature of Audacity is that tracks with different sample rates or formats will automatically be converted in real time. Once loaded you can then edit the sound with operations such as copy, cut, paste, splicing, fading, and mixing and can even undo or redo those operations an unlimited number of times.

Audacity also allows changing a sound recording's pitch without altering the tempo, and vice-versa. Also it is possible to remove unwanted qualities in the recording such as hiss, hum, or static. Frequency alteration with equalization, an FFT Filter, and Bass Boost effect are possible. Volume alteration can be accomplished with compressor, amplify, and normalize effects. Additional sound effects such as wahwah, phaser, echo and reverse are easily done as well. You can save the recording in formats such as Ogg Vorbis, MP3, AIFF, and WAV sound files.

You can also expand Audacity's capabilities with Plug-Ins from various sources such as LADSPA plug-ins, VST plug-ins and even create new effects with the built-in Nyguist programming language.

For those hard core Digital Signal Processing people, visualizing frequencies is available by using the Spectrogram mode and detailed frequency analysis can be accomplished by using the “Plot Spectrum” command.


Installing

The installation of Audacity for MacOS and Windows is simple since you get a .dmg, .sit, or .exe file depending on your OS. For Linux, I chose to download the source. But there are a few additional packages that are needed or recommended. wxGTK is required, libvorbis, libogg, lame, libmad, etc. are needed of you want .mp3, ogg vorbis encoding and decoding support support. See yesterday's (C.P.O.T.D.) for installation instructions for the needed extras.

This is how I installed Audacity on my Red Hat AS 4 box. There may be other packages needed for your installation. Remember there are wonderful resources to get these dependancies, such as up2date and yum. For instance, if you need the gtk development package, it is as easy as doing an up2date gtk-devel or yum -y gtk-devel. From the previous packages installed from past projects covered in C.P.O.T.D., you may not have to install any other packages, if you are lucky. Also, I am using paco for the package tracking (CPOTD post) but you need not utilize it. Just do a make install in place of the corresponding paco... "make install" line
.


To utilize more functionality in Audacity, additional Codec libraries must be obtained: flac, libmad, libogg, libvorbis. To simplify the install I downloaded the libraries again since yesterday in the event you haven't gone through yesterday C.P.O.T.D. (go now and read it... its a great post!)


cd /tmp
wget http://superb-east.dl.sourceforge.net/sourceforge/audacity/audacity-src-1.2.4b.tar.gz
wget ftp://ftp.mars.org/pub/mpeg/libmad-0.15.1b.tar.gz

wget http://superb-east.dl.sourceforge.net/sourceforge/flac/flac-1.1.2.tar.gz
wget http://downloads.xiph.org/releases/ogg/libogg-1.1.3.tar.gz
wget http://downloads.xiph.org/releases/vorbis/libvorbis-1.1.2.tar.gz
wget ftp://ftp.mars.org/pub/mpeg/libid3tag-0.15.1b.tar.gz


wget http://easynews.dl.sourceforge.net/sourceforge/wxwindows/wxGTK-2.6.3.tar.gz
tar zxf wxGTK-2.6.3.tar.gz

cd wxGTK-2.6.3
./configure
make
paco -lp wxGTK-2.6.3 "make install"
ldconfig


cd /tmp
for file in audacity-src-1.2.4b.tar.gz flac-1.1.2.tar.gz libmad-0.15.1b.tar.gz libogg-1.1.3.tar.gz libvorbis-1.1.2.tar.gz libid3tag-0.15.1b.tar.gz
do
tar zxf ${file}
done

cd /tmp/audacity-src-1.2.4b/lib-src
mv ../../libid3tag-0.15.1b libid3tag

mv ../../flac-1.1.2 libflac
mv ../../libmad-0.15.1b libmad
mv ../../libvorbis-1.1.2 libvorbis
mv ../../libogg-1.1.3 libogg
cd ..
./configure --with-libmad --with-vorbis --with-libflac --with-libresample --with-portaudio --with-soudtouch --with-libid3tag
make
paco -lp audacity-1.2.4b "make install"


Running Audacity

To run audacity, just type
audacity


Conclusion

Audacity's
interface is very clean and elegant, It is very simple to use and is quite intuitive
but to get the most out of Audacity, you should look at the documentation, read the manual and go though the tutorials. The documentation is very well written and gives some great tips and techniques to maximize your effectiveness with your audio projects. Also a great resource is The Audacity Wiki which also contains tips, tricks, and documentation that even you can contribute to.

Friday, April 28, 2006

Sound Libraries and Codecs

The Cool Pick Of The Day is the following Open Source Sound Libraries. With the below installed sound libraries, many great sound applications and utilities can be harnessed. As time goes on, I will update this entry to include even more libraries, that way, future C.P.O.T.D. posts will just need to point to this blog entry for sound support references. You should be able to install all of them without any issues. Even if you have these libraries installed already in the standard locations, these will be installed in the /usr/local area so that shouldn't negatively affect your existing install base- but keep that in mind. No promises, but I will do my best. I might even include a blog entry to show how to reinstall the C.P.O.T.D. libraries and applications as these libraries are updated by their maintainers.

Each one of these sound packages deserves a
C.P.O.T.D. award and I will continue to add informational details on each one. There are a lot of them, so I will do it gradually over time.

In order to maximize your computer's audio capability, you should install some utilities, codecs and libraries, mpg321, libao, ogg vorbis, libmad, LAME, port audio, flac, speex, theora, jackd, sox, ecasound, and mplayer, to name quite a few.

The Libraries

MAD is an open-source GPL (and commercial license is available as well) MPEG audio decoder. It currently supports MPEG-1, 2 and "2.5". All 3 audio layers (I,II,III) are fully implemented. It supports neither MPEG-2 multichannel audio nor does it currently support AAC yet.


A few interesting aspects of libmad is that it supports 24-bit PCM output (e.g. exceptionally high quality audio), it is written using only 32-bit fixed-point (integer) computation (good for non-floating-point architectures!!!) and based on the ISO/IEC standards.

#libmad http://www.underbit.com/products/mad/
cd /tmp
wget ftp://ftp.mars.org/pub/mpeg/libmad-0.15.1b.tar.gz
tar zxf libmad-0.15.1b.tar.gz
cd libmad-0.15.1b
./configure
make
paco -lp libmad-0.15.1b "make install"


Libao is an opensource cross-platform audio library that provides a simple API to allow programs to output audio. Currently it currently supports: Null output (for testing without a sound device), WAV files, AU files; numerous sound architectures such as OSS (Open Sound System), ALSA (Advanced Linux Sound Architecture), polypaudio (next generation GNOME sound server), esd (EsounD or Enlightened Sound Daemon) and NAS (Network Audio Server)


#libao http://www.xiph.org/ao/
cd /tmp
wget http://downloads.xiph.org/releases/ao/libao-0.8.6.tar.gz
tar zxf libao-0.8.6.tar.gz
cd libao-0.8.6
./configure
make
paco -lp libao-0.8.6 "make install"
ldconfig



#libid3tag http://www.underbit.com/products/mad/
cd /tmp
wget ftp://ftp.mars.org/pub/mpeg/libid3tag-0.15.1b.tar.gz
tar -zxf libid3tag-0.15.1b.tar.gz
cd libid3tag-0.15.1b/
./configure
make
paco -lp libid3tag-0.15.1b
"make install"
ldconfig


#mpg321 http://mpg321.sourceforge.net/
cd /tmp
wget http://superb-east.dl.sourceforge.net/sourceforge/mpg321/mpg321-0.2.10.tar.gz
tar zxf mpg321-0.2.10.tar.gz

cd mpg321-0.2.10
./configure
make
paco -lp mpg321-0.2.10
"make install"


#libsndfile http://www.mega-nerd.com/libsndfile/
cd /tmp
wget http://www.mega-nerd.com/libsndfile/libsndfile-1.0.16.tar.gz
tar zxf libsndfile-1.0.16.tar.gz
cd libsndfile-1.0.16
./configure
make
paco -lp libsndfile-1.0.16 "make install"
ldconfig


#LAME http://lame.sourceforge.net/
cd /tmp
wget http://internap.dl.sourceforge.net/sourceforge/lame/lame-3.97b2.tar.gz
tar zxf lame-3.97b2.tar.gz
cd lame-3.97
./configure
make
paco -lp lame-3.97 "make install"
ldconfig



#id3lib http://id3lib.sourceforge.net/
cd /tmp
wget http://easynews.dl.sourceforge.net/sourceforge/id3lib/id3lib-3.8.3.tar.gz
tar zxf id3lib-3.8.3.tar.gz
cd id3lib-3.8.3
./configure
make
paco -lp id3lib-3.8.3 "make install"
ldconfig


FLAC (Free Lossless Audio Codec) FLAC is a compression audio standard similar to MP3, but differs from MP3 in that it is compressed without any loss in quality. FLAC works like any other lossless compression method (zip, gz, sit,etc) but since it is designed specifically for audio so the compression ratio is superior to other general purpose lossless compression methods. FLAC is the only free lossless audio compression codec that has hardware support.

The encoding FLAC utilizes is very robust. It has 16-bit CRC's per frame to detect transmission errors while streaming and has an additional MD5 signature of the original audio data stored in the file header as an additional integrity check. This error resistant encoding scheme limits the damage to the frame that the error occurred in which allows for a data stream not to be completely corrupted even by a large block of corruption within the data stream. The resilience is also enhanced by the fact that each frame is not dependant on the preceding or succeeding frames since it contains all it needs for decompression within the frame. This is nice because that allows decoders to pick up when the stream is no longer being corrupted and to not quit processing the remainder of the stream (this would be important if you wished to get as much of the valid stream data as possible even when there was corruption dispersed throughout it.)

The FLAC files are seekable which allows for index positioning which is great for end-user playback as well as for audio editing applications. The format allows for metadata types to be embedded within the FLAC file and currently contains metadata types for tags, cue sheets (e.g. storing a CD table of contents, all track and index points), and seek tables. Additionally, new metadata blocks can be defined and implemented in future versions of FLAC without the worry of breaking older streams or decoders.

FLAC is an open source, "freely" available (modified BSD license) codec library that is supported on many operating systems: *nix (Linux, *BSD, OS X, Solaris, and IRIX), BeOS, MS Windows OS/2, and Amiga.


#flac http://flac.sourceforge.net/
cd /tmp
wget http://superb-east.dl.sourceforge.net/sourceforge/flac/flac-1.1.2.tar.gz
tar zxf flac-1.1.2.tar.gz
cd flac-1.1.2
./configure
make
paco -lp flac-1.1.2 "make install"
ldconfig


#libogg http://www.vorbis.com/
cd /tmp
wget http://downloads.xiph.org/releases/ogg/libogg-1.1.3.tar.gz
tar zxf libogg-1.1.3.tar.gz
cd libogg-1.1.3
./configure
make
paco -lp libogg-1.1.3 "make install"
ldconfig


#libvorbis http://www.vorbis.com/
cd /tmp
wget http://downloads.xiph.org/releases/vorbis/libvorbis-1.1.2.tar.gz
tar zxf libvorbis-1.1.2.tar.gz
cd libvorbis-1.1.2
./configure
make
paco -lp libvorbis-1.1.2 "make install"
ldconfig


Speex is a "gratis" and patent free Open Source Software audio compression format designed specifically for speech (speech coder) whose licensing is the Xiph.org variant of the BSD license.

Speex is based on what is called Code Excited Linear Prediction (CELP) and can compress voice at bit rates ranging from 2 to 44 kbps. Speex's features include: Intensity stereo encoding; Variable bit rate operation (VBR); Voice Activity Detection (VAD); Discontinuous Transmission (DTX); 8 kHz, 16 kHz, and 32 kHz compression in the same bit stream; and Packet loss concealment.


#speex http://www.speex.org/
cd /tmp
wget http://downloads.xiph.org/releases/speex/speex-1.0.5.tar.gz
tar zxf speex-1.0.5.tar.gz
cd speex-1.0.5
./configure
make
paco -lp speex-1.0.5 "make install"
ldconfig


#vorbis-tools http://www.vorbis.com/
cd /tmp
wget http://downloads.xiph.org/releases/vorbis/vorbis-tools-1.1.1.tar.gz
tar zxf vorbis-tools-1.1.1.tar.gz
cd vorbis-tools-1.1.1
./configure
make
paco -lp vorbis-tools-1.1.1 "make install"
ldconfig


#libtheora http://www.theora.org/
cd /tmp
wget http://downloads.xiph.org/releases/theora/libtheora-1.0alpha5.tar.gz
tar zxf libtheora-1.0alpha5.tar.gz
cd libtheora-1.0alpha5
./configure
make
paco -lp libtheora-1.0alpha5 "make install"
ldconfig


#portaudio
http://www.portaudio.com/
wget http://www.portaudio.com/archives/portaudio_v18_1.zip
unzip portaudio_v18_1.zip
cd portaudio_v18_1
make -f Makefile.linux
paco -lp portaudio_v18_1 "make -f Makefile.linux libinstall; cp pa_common/portaudio.h /usr/local/include"
ldconfig



#jackd
http://jackit.sourceforge.net/
wget http://superb-west.dl.sourceforge.net/sourceforge/jackit/jack-audio-connection-kit-0.100.0.tar.gz
tar zxf jack-audio-connection-kit-0.100.0.tar.gz
cd jack-audio-connection-kit-0.100.0
./configure
make
paco -lp jack-audio-connection-kit-0.100.0 "make install"

ldconfig


#sox http://sox.sourceforge.net/
wget http://superb-east.dl.sourceforge.net/sourceforge/sox/sox-12.17.7.tar.gz
tar zxf sox-12.17.7.tar.gz
cd sox-12.17.7
./configure
make
paco -lp sox-12.17.7 "make install"


#ecasound http://eca.cx/ecasound/
cd /tmp
wget http://ecasound.seul.org/download/ecasound-2.4.3.tar.gz
tar zxf ecasound-2.4.3.tar.gz
cd ecasound-2.4.3
./configure
make
paco -lp ecasound-2.4.3 "make install"
ldconfig


#mplayer http://www.mplayerhq.hu/design7/news.html
mkdir /tmp/mplayer
cd /tmp/mplayer
wget http://www1.mplayerhq.hu/MPlayer/releases/MPlayer-1.0pre7try2.tar.bz2
wget ftp://ftp1.mplayerhq.hu/MPlayer/releases/codecs/essential-20050412.tar.bz2
tar jxf MPlayer-1.0pre7try2.tar.bz2
cd MPlayer-1.0pre7try2
./configure
make
paco -lp MPlayer-1.0pre7try2 "make install"
mkdir /usr/local/lib/codecs
cd /usr/local/lib/codecs/
tar jxf /tmp/mplayer/essential-20050412.tar.bz2


Thursday, April 27, 2006

A flashback... a moment of nostagia... Bolo!

The sense of nostalgia over took me this morning. For some reason I had a moment of reminicing and thought of a game I used to spend hours playing against a coworker. The Cool Pick Of The Day is about that game- Bolo.


What is Bolo?


The Bolo version which became so popular (the Mac version) was created by Stuart Cheshire. It is a real-time multi-player tank game for up to 16 players in which you get unlimited lives. The official site is http://www.lgm.com/bolo/ The original MacOS version is still available but for MacOS X you will need to use either xbolo or nubolo. The Mac versions don't communicate with the Windows and Linux versions. The Windows and Linux version communicate with each other.

The objectives of Bolo are simple: destroy the other players (or team up with them and blow up the other-other players); capture and create pillboxes (kind of like machine gun nests); take control of all the bases (all your base are belong to us); and have fun!

In Bolo your tank holds 4 types of supplies: bullets, armor, mines, and trees. When you start out (each time you enter the game field) you start out with bullets equal to 2x the amount of unclaimed bases. If there are none, you start with no bullets... this is important to remember so you want to capture as many bases as possible. You can replenish your supplies at your bases. When you run out of bullets, you can't shoot until you dock at a friendly base. If you have no bases and no bullets you better have a friend! You also have a little green man (LGM) that can jump out of your tank and build pillboxes, roads, bridges, walls, boats, etc. but you need trees to do this. So you send your LGM out to harvest the trees and bring them to the tank. He can also lay covert mines that can't be seen by your opponents (unlike the ones you can drop out the back of your tank). The covert mines explode when something runs over them or when there is an explosion next to them... until then, they lay silently awaiting a victim.


Pillboxes are powerful weapons that you want to capture and rebuild as your own to protect your bases. Laying strategically placed invisible mines and well positioning pillboxes are a total nightmare for the opposing players. Another thing the LGM can do for you is repair your pillboxes as long as you have trees in supply.

What also makes Bolo so fun is the ability to have different playing fields or as they are called maps. There are different terrains and obstacles each with a different aspect to them. There are:
trees, grass, rocks, rubble, craters, shallow water, deep water, swamps, walls and roads.


Strategy Guide

http://www.lgm.com/bolo/guides/pbg/


Obtaining Bolo

Bolo for MacOS (7??)

http://www.lgm.com/bolo/archive/

For Windows and Lindows
http://www.winbolo.us/downloads.asp
http://www.winbolo.com/
http://www.winbolo.net/

For the Macintosh (MacOSX)
http://www.nubolo.net/
http://www.xbolo.net/


Installing Bolo

Your installation for Linux may be slightly different since your installation may not have certain things installed. The basic requirements for linbolo are:

1) x86 Linux 2.2+
2) 8Mb of RAM
3) Glib 2.2+
4) SDL 1.2


I have Redhat Enterprise AS 4 so I needed to do the following:

I downloaded LinBolo 1.13 from http://www.winbolo.us/downloads.asp
wget http://www.libsdl.org/projects/SDL_mixer/release/SDL_mixer-1.2.6-1.i386.rpm

wget http://www.libsdl.org/projects/SDL_ttf/release/SDL_ttf-2.0.7-1.i386.rpm
wget http://www.libsdl.org/release/SDL-1.2.9-1.i386.rpm
ln -s /usr/lib/libSDL_ttf-2.0.so.0 /usr/lib/libSDL_ttf-1.2.so.0
up2date fonts-xorg-truetype
cp /usr/X11R6/lib/X11/fonts/TTF/luxirb.ttf cour.ttf

The game requires /usr/lib/libSDL_ttf-1.2.so.0 and since that is very hard to find, SDL_ttf-2.0.7-1 is fine as long as you make the proper soft link. The game also needs a courier TrueType font. I did not want to take if off my Mac or my windows box since I wanted a total Linux solution. So I got the xorg TrueType font package and just renamed the luxirb.ttf font to cour.ttf. Using one of the TTF fonts from OpenOffice also worked but the fonts where not as clear for this specific instance.

If you wish to set up your own bolo server, you can do so by downloading the
(Dedicated Server, LinBoloDS 1.14 available at http://www.winbolo.us/downloads.asp
Using the Dedicated Server you can even have LAN parties!!

The trick to Bolo is to balance repair and capture duties with Hunting/Killing duties. You must learn to multi-task while still keeping a good strategic plan in your head. Keep your armor topped up, lay mines, capture bases, capture and rebuild pillboxes, and blow the sense out of your enemy Without a doubt this game is SUPER ADDICTIVE! It is very fun to play. With Skype or Voice IM clients, your allies and you can talk to one another and coordinate attacks. It is a great multi-player Internet game. Simple, fun, addictive. The perfect blend of all the components characteristic of a successful video game!


Wednesday, April 26, 2006

Free Book Sources

The wonderful thing about the Internet is the sharing of information. The following sites have 1000's of free books and articles. The Cool Pick of the Day is actually all the below links. I thought that since they all are offering a great service, they should all be considered the C.P.O.T.D.

Free Technical Book Links - A growing list of free book references here! Great source!

http://www.techtoolblog.com/archives/195-free-online-programming-books

The Internet Archive - A vast source of Texts, Education Material, Moving Images (movies, films, etc), Audio, Software, Web archives... truly amazing!!!
http://www.archive.org/

Books published by O'Reilly That have been either "Opened" or started as Open Books from the start.
http://www.oreilly.com/openbook/

"The Open Book Project is aimed at the educational community and seeks to encourage and coordinate collaboration among students and teachers for the development of high quality, freely distributable textbooks and educational materials on a wide range of topics." (from their site)
http://www.ibiblio.org/obp/

"This site lists free online computer science and engineering books (+lecture notes), all of which are freely and legally available over the Internet." (from their site)
http://www.freetechbooks.com/

Many Free Books Sources. There are some purchasable books here to but you can just ignore those if you want.
http://homepage.mac.com/kaotech/Free_Books.html

Many Free Books Sources. There are some purchasable books here to but you can just ignore those if you want.
http://www.nap.edu/

There are 18,000 free books in the On-line Book Catalog.
http://www.gutenberg.org/

A Listing over 25,000 free books
http://onlinebooks.library.upenn.edu/

Free Medical Books
http://www.freebooks4doctors.com/fb/english2.htm

Many books that are in the public domain
http://www.e-book.com.au/freebooks.htm

Children's materials in their original languages
http://www.childrenslibrary.org/

A Directory of Free On-line Books
http://www.free-book.co.uk/

Wikipedia Projects
http://wikipedia.org/

A collection of free open-content textbooks
http://en.wikibooks.org/wiki/Wikibooks_portal
A Free Dictionary
http://en.wiktionary.org/wiki/Main_Page
An open, free directory of species. It covers Animalia, Plantae, Fungi, Bacteria, Archaea, Protista and any other forms of life.
http://species.wikipedia.org/wiki/Main_Page
Collection of Quotes
http://www.wikiquote.org/

Tuesday, April 25, 2006

Technology and Mobility

Mobility is important. The need for human beings to move around is key to our species success. Why must we move? There are many obvious reasons but if nothing else, we are designed to move. Undoubtedly we are not the most efficient design when it comes to moving but our versatility and creativity makes us capable of doing things that other species are not capable of doing or not capable of the entire range of mobility we have. Are we the fastest runners? No. Are we the fastest swimmers? No. Are we the best flyer's? No, we can't even fly. Are we the best climbers? No. Are we the best diggers? No. Are we successful? Absolutely. Why are we successful? Well one reason is our ability to make machines that can do the things we wish to better than almost anything in nature.

We can traverse land faster than any other species using motorized vehicles. We can move through water faster than any other species using boats and submarines. We can fly faster and higher than any other species using airplanes. We can dig and move earth around like no other species on Earth using drilling machines, shovels, and trucks. The key here is that we make machines- fantastic machines. Many times we take the ideas that are within nature itself- sonar, airplanes, etc. Other times we create totally different approaches such as rockets and motors. There are even times where there is no better machine for the job, so we use natures best such as using leeches and maggots.

Yes its true, we still use leeches and maggots in medical science. Why do we use leeches and maggots? You might say what most people say... ewww! Well, for one, we use them because they are designed to do certain thing. Leeches suck blood and maggots eat decayed flesh. When reattaching severed limbs and fingers, the leeches are used to painlessly remove blood that swells the damaged area thereby preventing the swelling from doing additional damage or to prevent blood clotting of tiny blood vessels that may cause blood flow to be blocked (Leech Therapy). In Maggot Therapy (MDT) certain types of maggots are used to eat away decayed flesh (because they DON'T eat living flesh) to reduce the chances of gangrene. We even are trying to make microscopic machines that rival viruses and bacteria called nanites, nanobites, or nanomachines. Anyway, back to machines and mobility.

An interesting quality of mankind is its desire overcome obstacles. Modern thought is to not look at a physical or mental disability as a total loss but to instead look at it as a challenge or an obstacle to overcome. Many contributions to science have been made to overcome the disabilities of individuals. A Chinese scientist has outfitted a child with sonar goggles to great success- the child can hit a ball thrown his direction with a baseball bat. Artificial limbs, hearts, and optical technologies have been created to overcome problems... even enhance those without disabilities (such as night vision).

There are quite a few notable physically disabled people that have made great contributions to mankind- Dr. Steven Hawking being one that immediately pops to mind. His disability being caused by amyotrophic lateral sclerosis but does that stop him from being one of the world's leading theoretical physicists? No. For sure, one of the most notable things, other than Dr. Hawking's brilliance, that comes to light when you see the good Dr, is his enabling technology. His computer, his blink switch, his voice synthesizer, and his wheel chair are so essential to his mobility and communication. When seeing him with his technology, I don't even see his disability, rather I am enthralled by his intellect. I can almost believe that his will and intellect actually power all those devices.

Which brings me to the Cool Pick Of The Day- Enabling Technology such as the Wheel Chair but not just any wheel chair- super wheel chairs. I have seen 2 that absolutely are astounding: IBOT by Independence Technology which was invented by Dean Kamen (also inventor of the Segway) and the TankChair created by a small Arizona company called TankChair.com.

The iBOT® Mobility System uses a patented technology called iBALANCE® which is a combination of sensors, software components, and multiple computers that work in conjunction with gyroscopes to continually help maintain the chair's balance. The chair's on-board, triple redundant backup systems and computers, are custom-programmed to the chair's user’s center of gravity, to ensure that it responds properly, even with subtle changes in motion, and even constantly realigns and adjusts its wheel position and seat orientation to keep the user upright and stable all the time. The fascinating aspect about this wheel chair is that it not only climb curbs, stairs, and inclines with little problem, it can even stand up and balance on 2 of the 4 wheels to raise the user up- similar to standing up from a seated position.

The TankChair is not about subtly or gyroscopes or triple redundant computers... its about mobility and power- TANK POWER! While it is true there are many types of outdoor capable wheel chairs (the iBOT® also can go outdoors), the TankChair powers through dirt, sand, snow, and grass with ease. Its tank treads make light work of reasonable terrain and is fully controllable by a hand joystick, not unlike those found on other power wheel chairs. The inventor created this chair for his wife who was injured in an accident and this has given her the freedom she wants to participate in the everyday outdoor activities that she would have difficulty with using traditional motorized wheel chairs.

Technology Rules!


Monday, April 24, 2006

Vector Drawing

I truly love cross-platform developed items. The benefit of cross-platform development is that the end result is usually a very stable and very versatile product. This is simply because the more diverse the install base the stricter the development process has to be. If it is not, then the product will not be a successful cross-platform product.

Whether it be a hardware cross-platform Operating Systems/Kernels such as Linux which runs on a huge amount of processors or hardware devices such as USB devices such as the Logitech QuickCam or in the software realm, offerings such as GNU utilites or various applications such as OpenOffice, Audacity, or The Cool Pick Of The Day Inkscape http://www.inkscape.org/

Inkscape is a cross-platform Open Source vector graphics editor, with capabilities similar to Adobe Illustrator ™, Macro media’s Freehand ™ and Corel’s CorelDraw ™ supporting the Scalable Vector Graphics (SVG) file format. It runs on MacOS X, Linux, and Windows. The main goal of Inkscape is to create a powerful and convenient drawing tool fully compliant with XML, SVG, and CSS standards.

The supported SVG features include shapes, paths, text, markers, clones, alpha blending, transforms, gradients, patterns, and grouping. It also supports Creative Commons meta-data, node editing, layers, complex path operations, bitmap tracing, text-on-path, flowed text, direct XML editing, and more. It can import JPEG, PNG, TIFF format files others and exports PNG as well as multiple vector-based formats. Inkscape does not yet support SVG filters, animation, and SVG fonts.

Inkscape is a vector drawing program which is unlike raster drawing programs like The Gimp, Micro Frontier’s ColorIt™, or MSPaint™. Raster drawing applications are pixel level editors that create pictures by placing pixel on a canvas. Vector drawing applications create objects that are mathematically defined to allow them to be scaled and manipulated without degrading their quality. It also allows the ability to apply mathematical operations such as Boolean operations such as Union, Difference, Intersection, and Exclusion.

The Inkscape interface is very simple and clean and also has a very intuitive keyboard shortcut interface. It includes many tools for selecting, drawing, and modifying objects. The tools are: the selection tool; the path edit tool; the zoom tool; the square and rectangle tool; ellipse, circle, arc tool; the polygon and star tool; the spiral tool; the bezier tool; the calligraphy tool, the text tool; the connectors tool; the gradient tool; and the eyedropper tool. It also has the ability to do layers, grouping objects, and transformation of objects such as flipping, scaling, skewing and free rotating.

It also has interesting additions such as grid and guideline snapping that uses a tunable "gravity" style rather than the typical absolute snapping. Fine tuning objects can be done such as nudging a pixel at a time. There is also an XML editor built in to allow direct access to the drawing's underlying DOM model.

Here is a nice tutorial on Inkscape http://tavmjong.free.fr/INKSCAPE/MANUAL/html/index.php

Installation

First you need inkscape. There are quite a few options for Linux: tar.gz source code, rpm staitic binaries, rpm sources, or an autopackage package. Since there are quite a few components that are necessary, the static binaries RPM package seemed the quickest to install. Installation was simple for my i686 architecture. To get all the download options and a browser download page go to http://www.inkscape.org/download.php.

Since I have Red Hat AS 4, I did a
cd /tmp
wget
http://internap.dl.sourceforge.net/sourceforge/inkscape/inkscape-0.43-0.static.i686.rpm
rpm -i
inkscape-0.43-0.static.i686.rpm


To run inkscape, just type
inkscape

Conclusion
Inkscape is a very nice vector drawing package for artists and non-artists. Its elegant interface allows fast creations with excellent quality output and its XML editor allows some very hardcore tweaking. It also is nice to have an "image" creation application that uses XML output (SVG) files. Each release of the software continues to add significant functionality and the developers have an aggressive stance toward elliminating bugs. The project has multiple ways to get help such as they mailing list, a Wiki, and even Jabber and IRC messaging for developers. The inkscape community seems to really be a close knit group of creative and helpful people who are dedicated to producing and supporting a great product.

Package Management

In order to simplify updates to applications and libraries many package managers have been created. To try and best solve the problem of keeping a system’s programs up to date and secure many approaches have been implemented. Wikipedia defines a package management system as “a collection of tools to automate the process of installing, upgrading, configuring, and removing software package from a computer.”

There are many features that are nice additions to the general functions (install, listing, upgrade, remove) of a package manager such as checksums to detect corruption, dependency tracking, and component tracking.

A brief list of a few common package managers:

1) OpenPkg http://www.openpkg.org/

2) Debian Potato dpkg (.deb)

3) Red Hat Package Manager

4) Gentoo’s Portage

5) FreeBSD Ports

6) MacOS Installer

7) Fink (used in MacOS) http://fink.sourceforge.net/

8) SlackWares tgz package system

9) HP-UX’s Software Distributor

10) TRU-64’s setld

11) Solaris’ SysV format (called pkgmgr)

12) Autopackage http://autopackage.org/


There are a few problems with package managers:

1) You need to create the package- this is time consuming. There are quite a few “services” that provide many packages- rpmfind, up2date, yum, yast, apt-get, etc. This can really be a time saver if you don’t want to create your own… but heed problem 2

2) Dependency Hell. This is when there is either a conflict with existing libraries/packages or you don’t have the dependencies needed for the specific package install. The combination of conflict and lack of specific dependencies can be extremely frustrating.

3) Distribution dependant

But what about those applications which don’t have a package pre-built or if there are conflicts, or if there are missing components? Two solutions come to mind: build the package from package source and that may get you by some of the above issues (e.g. rpmbuild); or my favorite build from source.

The Hard Core Approach

This is the ./configure/make/make install route. It is not as bad as it sounds and it is surely simpler that creating a package from scratch. Usually source packages, sometimes referred to as tar balls (.tar.gz files), are very easy to install especially if you have a modern distribution of Linux. My philosophy is simple- if a source package doesn’t ./configure, make, make install easily (you do need to have the prerequisites of course) then I deem the package total crap and find another solution. If there are no other solutions, I grind away at the problems using my experience, deja.com, forums, and search engines.

But upon completion of the ./configure/make/make install I am still left with having NO idea what I installed and where it all went. Sure ./configure has the –prefix commands etc, but what about log files, and /etc files or any other thing that was installed. By default most source tar balls install in /usr/local but not always. To be accurate, the package could install stuff ALL OVER the place. You have no idea what kind of nut case created this package. So how do you track the install and remove packages when needed?

This question brings me to the Pick Of The Day Paco – PACkage Organizer. It is a GPL Open Source package organizer for source code for Unix/Linux systems. It can be found here http://paco.sourceforge.net/

When installing a package from sources, Paco wraps the installation command (make install, ./install.sh, or whatever), and generates a log containing the list of all installed files. How does it perform this magic? It is accomplished using the “LD_PRELOAD” method which preloads a shared library before installation using the environment variable LD_PRELOAD. During installation, this library catches the system calls that cause filesystem alterations (such as open(), link(), rename), and logs the created files. This method is very simple to use and it does not require a "pre-install" phase because it monitors processes while they run.

Since the preloaded library is used during the specific installation process, the paco logs are not contaminated with any file created by other processes making filesystem alteration calls- You can even use paco to track parallel installations.

Paco has many usage options for looking at package files, file counts, sorting, missing files, etc. The one thing it lacks, and I don’t know why such a simple feature is not included (I will contact the maintainer), is a checksum or MD5 type check. This could easily be added and used to check the integrity of packages tracked by Paco.

An added bonus is gpaco, a GTK+ based GUI for Paco. Unfortunately, it requires GTK+-2.6, which I do not have on Red Hat AS 4.

Drawbacks to Paco:

1) Can’t be used on systems where the binaries are statically linked such as FreeBSD or OpenBSD.

2) Graphical installers may not be able to be captured. If there is a CLI installation method, use that. (I need to check on this… Such as using the Oracle Graphical Java installer).

3) Lacks a checksum or MD5 type check.


Installation of Paco

Since I did not have GTK+2.6 or later I needed to do the following for installation:

cd /tmp
wget http://superb-east.dl.sourceforge.net/sourceforge/paco/paco-1.10.7.tar.gz
tar zxf paco-1.10.7.tar.gz
cd paco-1.10.7
./configure --disable-gpaco
make
make install


Using Paco

paco --help gives all the options

I used paco to install splunk-server. Splunk comes with its own installer and I figured I would see if paco could handle it.


To install splunk-server you need to type

./splunk-Server-1.2.4-linux-installer.bin

then answer a bunch of questions. So I used this to install splunk-server with paco

paco -lp splunk-server-1.2.4 "./splunk-Server-1.2.4-linux-installer.bin"

Paco worked like a champ!!

To log the installation of the package ‘jackBnimble-1.0.0’, which is installed using the command

'make install'

Use

paco -lp jackBnimble-1.0.0 "make install"

paco will create a log file named jackBnimble-1.0.0 in the log directory, with the list of all installed files.


If you wished to log the installation of the package ‘jackBnimble-1.0.0’ and you are in the directory JackBNimble-1.0, you can use the current directory name as name of the package to log by using the –D option:

paco -lD “make install”


To update a Paco log with a file that was not added during a previous installation yu can use the ‘-+’ option:

paco -lp+ JackBNimble-1.0.0 "install Bquick /usr/bin/Bquick"


To remove all versions of the package JackBNimble-1.0.0, keeping the files in /etc and /root, and without asking for confirmation:

paco -rx -e /etc:/root --batch JackBNimble


If you wish to post process a package installation of jackNjill that is installed in /usr/local/jackNjill but paco was not initially used to log the install, you can use the following command to do just that:

find /usr/local/jackNjill-1.2.3 | paco -lp jackNjill-1.2.3

Conclusion

There actually is room for both types of package managers: the pre-built kind (like RPM) and source code logging types (like Paco). I think package managers such as RPM are GREAT for core package handling and kernel updating and the like. It is nice to know there are MANY people and companies out there updating the thousands of packages my system uses. This allows for stable and secure packages with minimal hassle when the big time crunch happens when there is a security alert. In addition to the RPM facility, updater technology such as YAST, yum, and up2date are truly fantastic. The package managers that are like Paco are great for those applications that are source code only distributions or for developers who wish to try the latest software and want to be able to track, update, and remove those added packages, but their complex environment would be problematic with dependancy issues.


Saturday, April 22, 2006

Documentation Tutorials and Presentations

I am a real documentation hound! I love to document. I'm far from being great at it but I do like to do it. I find documentation such an essential part of maintenance and acceptance. If you expect ANYTHING to be purchased, maintained, and accepted, it must contain documentation. When I design an application or a script, I am not satisfied until it is bulletproof... this is a great thing... the problem with having “bulletproof” software is that it breaks so infrequently and when it does... how the internal workings function are a real mystery. I have looked at software of mine from 10 years ago, and other than being shocked at how far I have come since I first wrote it, I am pleased to see the flow, the routines, and even the Bugs have been documented. That fact alone has saved me hours maybe even days of work tracking down any problems.

They say a picture is worth a thousand words. I think that is true. I am a real fan of diagrams. I love Visio. I wish Linux had something as nice... I know there is Dia and Kivio but they are not even close to the functionality of Visio. Anyway, I digress... If a picture is worth 1000 words then an interactive tutorial must be worth at least 10000 words or 10 diagrams. What format should be used for the interactive tutorial? You want to make it a format that is at the very least crossplatform.

Formats like mpeg, etc. are great movie formats and can really be key in showing a process that is not interactive. Sure it can be used as a HowTo, you see it all the time on DIY shows... but it is not Interactive. It is also not very suited to capturing the computer tutorials. So what is? Flash? ShockWave? Yeah! Thats the ticket! There are quite a few Flash/Shockwave tutorial creation tools available, but one in particular caught my eye... and it FREE! For Personal AND Business usage! AND available for Windows and Linux!

The Cool Pick Of The Day is Wink. You can find it at http://www.debugmode.com/wink/

Wink is a Demonstration creation tool that is oriented towards the creation of Application HowTo Tutorials and Presentations. You can capture screen shots and cursor movement and even add sound. In addition, you can add instructional text inside explanation boxes (called callouts), titles and add navigational widgets such as Forward, Backward and GoTo buttons. To add that interactive touch, Wink gives you some basic and very functional callout styles but also supplies an editor to allow you to custom create your own.

Also Wink allows very nice control of cursor motion. Since Wink separates the cursor events in a separate editor stream, you can hide the cursor, change the cursor, or reposition the cursor in each frame of your tutorial.


Using templates in your design process can give all your tutorials a consistent look and feel. By adding custom background pictures, logos, text, etc to the template, those features will automatically be added to every frame of your presentation which makes for a professional touch.

You can add audio as well (Windows version only). This feature is great. It adds a professional quality to the presentations and can assist the user experience since a user can be listening to the process and following its instructions without having to take up valuable screen real estate.

By utilizing all these features, you can guide a tutorial viewer through complex processes and still give them full control over their learning experience.

One of Wink's strengths is its flexibility. Wink supports a variety of picture formats for input: bmp, jpg, gif, tiff, and png as well as quite a few output options for the presentation such as Macromedia Flash, Standalone EXE, PDF, PostScript, HTML or any of the picture input formats. The Flash and html output options are nice when you want to add your presentations to a web site. The standalone .exe format is nice for distributing to Windows users. While not a direct feature of Wink, with a little of your own effort, you could even create an auto play CD and have a "bootable presentation."

Another feature that can be useful is Frame Scaling. This feature allows you to scale your presentation screen size. I would hardly imagine anyone using it to scale a presentation BIGGER but scaling smaller for quick and small presentations on the web maybe quite useful for giving a "Flavor of" presentation- Not alot of details but giving the general idea of what to do. Because screen captures are bit mapped scaling is not a great thing to do. If it is a concern that your presentation is not going to comfortably fit on a screen for a step-by-step presentation, then do the presentation in native resolution (say 800x600) then there would be no need for scaling down to 800x600 from 1024x768 (or higher).

There is plenty of language support too- English, French, German, Italian, Danish, Spanish, Serbian, Japanese, Brazilian Portuguese and Simplified/Traditional Chinese. This is such a nice feature if you are making multilingual presentations.

Though not a feature of the software, Wink has a good supportive user forum community accessible from the website http://www.debugmode.com/userforums/. This is a nice touch that the developers of Wink have supplied. There are many people on the forum who have created great tutorials and give some great support, as well as, sharing many tips and hints for making better tutorials.

I do highly recommend reading the 36 page manual/tutorial they give you. It explains everything well and has a nice walk-through tutorial. It does an excellent job at explaining the components of Wink and how to use them effectively.

Using Wink

Starting your Demonstration is quite easy. Just choose File>New to create a new project and the New Project Wizard presents you with a few options. At this stage you can: choose to capture Audio; set the screen size to capture, screen region or window; the frame rate; and Input Driven events (mouse and key) to capture. The next step in the Wizard just gives you the Hot Key choices and an option to Cancel or Minimize Wink to the SystemTray.

The hot key choices are:

1) Take a screen snapshot <Pause>

2) To start/stop timed captures <Shift-Pause>

3) To start/stop input-driven captures <Alt-Pause>

After you Minimize to the System Tray, you can press Shift-Pause and go through the motions of the Task you wish to capture. Then press Shift-Pause again. Then double click the Wink Icon in the System Tray and click Finish in the Wink box. Now you are ready for Creation and Editing.

You can take multiple captures and copy and paste them into a project. Then you can add CallOuts and buttons to each frame by using the Properties for Frame box (the Properties Bar).

After the creating and editing phase is complete, the presentation must be rendered to a flash file. After the Flash is rendered you can do a playback. The nice thing about the playback is that it is done within your chosen browser (set in FIle>Preferences (F4-key)) so you know exactly how other people will see it. In my experience, Flash is Flash, no matter what platform it is running on.

Because there is no Undo feature, it would be prudent to Save As using the presentation name with a version number or some designation before making major changes or after each stage of presentation completion. Save often and save many staging copies. Then when you are done, delete all the other unneeded presentations.

Conclusion

At the moment, I can only see 2 small draw backs with the software:

1) I could not get a Windows project to load into the Linux version of the software. I think that is because there is a version difference- 1.5 for Linux and 2.0 for Windows. I was able to get a Linux project to load in the Windows version of Wink with no problems. I am not sure when this issue, if ever, will be resolved, but I imagine when the Linux version catches up with the Windows version, the loading problem may be resolved.

2) No sound for the Linux version yet. I hope that too shall be resolved with release 2 of Wink for Linux. Of course you can work around this problem by making your screen captures under Linux and adding sound under the Windows version. :)

The software package is a VERY nice user friendly package that continues to get better with each release. The full features and customizability are most impressive. It is available for both Windows and Linux and to top it all off, it is free for BOTH personal and business use. How cool is THAT?!


Tiny Computers

“Everything is different, but the same... things are more moderner than before... bigger, and yet smaller... it's computers... San Dimas High School football rules!” – Ox ~ Bill and Ted’s Excellent Adventure.

Everyone who has every seen Bill and Ted’s Excellent Adventure can probably remember Ox’s “presentation” which he says the above profound statements... and then whips the crowd into frenzy like only a football player can in a high school environment by yelling out a plug for the football team. I’m sure he got an “F” but as stupid as Ox may “seem” to be… he is correct.

“Everything is different, but the same...” People still watch TV broadcasts but they “Don’t watch TV they watch TiVO™”. People don’t listen to talk radio they listen to PodCasts or Streaming Audio. People don’t listen to recordings, they listen to MP3s. People don’t “cut a recording” they rip an mp3 or burn a CD. The same… but different.

“things are more moderner than before...” well said Ox! Mankind has advanced more in the last 50 years than all of humankind’s existence before 1955.

“bigger, and yet smaller... it's computers...” Again 100% true. All of modern architecture can be contributed to computers (and cement, steel, and the gas powered engine) Society is bigger, information exchange is greater, economies and communication is BASED on computer technology. Computers are getting faster and smaller all the time.

Which brings me to The Cool Pick of the Day- smaller computers. There are 3 that are amazingly small. In fact they are about the size of a 100Base T connector.

1) Lantronix offers XPort and XPort AR (Contact Lantronix for pricing)

2) Digi International offers DigiConnect ME and Wi-ME (Integration Kit $249; Dev Kit $1495)

3) Picotux offers Picotux 100 and Picotux 112 (Contact Picotux for pricing)

Each one is an amazing feat of engineering and each one has its unique offerings. All offer Ethernet 10Base-T or 100Base-TX (Auto-Sensing) in an RJ45 form factor. Each vendor has a development board that could be used expand the functionality of the core module as well. Both the DigiConnect and Picotux run uClinux and the Lantronix runs Evolution OS.

Building intelligent devices

This small form factor packaging offers a complete networked solution to embed networked intelligence into any electronic device. Just think of the limitless options (and problems?) if all electronic devices could interconnect with a common protocol. Each company has created a package that allows product vendors to integrate Ethernet connectivity into their existing products with reduced design risk and reduced time to market.

Products can be remotely controlled or queried for status or information. Lights, appliances, your car, your entertainment system, etc can all be controlled from a single location. You would not need a Home Entertainment Computer that does everything; you could have a Coordinating Computer take care of all the devices within your Smart Home. Entertainment, Heath Monitoring, Lights, HVAC, Security, Telephone routing, are just a few of the possible applications. Onboard computer diagnostics can easily be displayed on a laptop, in car LCD screen, or wirelessly sent to your Home’s Coordinating Computer. Your GPS route information, speed, fuel economy statistics, maintenance information and performance statistics all available for your perusal.

There are hundreds of applications for manufacturing and warehouses that involve: asset or inventory tracking and assessment; remote diagnostics; environmental monitoring; power management; and automation coordination and control.

The Technology

Lantronix http://www.lantronix.com

The Lantronix XPort and XPort AP version offers strong encryption (see below). This is amazing for such a tiny computer.

Lantronix XPort

http://www.lantronix.com/images/IMG_xport.jpg

Dimensions: 33.9 x 16.25 x 13.5mm (1.33 x 0.64 x 0.53 in) Weight 9.6 g (0.34 oz)

The XPort version has:

1) a serial port which supports speeds of 300 bps to 921,600 bps

2) DSTni-EX enhanced 16-bit, 48MHz or 88MHz, x86 architecture processor

3) built-in web server

4) 3 PIO pins

5) 256KB SRAM and 512KB flash

6) Upgradeable firmware via TFTP and serially

Lantronix XPort AP

http://www.lantronix.com/images/IMG_xport-ar.jpg

Dimensions: 45.7 x 16.51 x 17.8 mm (1.80 x .65 x .70 in) Weight 20 g (0.7 oz)

The XPort AP version has:

1) DSTni-EX enhanced 16-bit, 120MHz x86 architecture processor

2) Up to three serial ports 230 Kbps serial data rate

3) 13 configurable GPIO pins

4) Flash file system with 4 MB of available memory

5) 1.25 MB of SRAM

6) Upgradeable firmware via FTP,TFTP, Serial Ports, Internal Web Server

7) true IEEE 802.3af compliant pass-through Power over Ethernet (PoE)

8) Strong encryption

a. SSH Client & Server, SSL, 128/256/512/1024-bit AES (Rijndael), 3DES and RC4 Encryption, Public/Private-keys, and password protection

b. SHA-1, MD5 Hashing Algorithms

c. Base-64 & Digest Authentication

d. User Access Lists

e. Hardened OS and Protocol Stacks


Digi International http://www.digi.com

Digi Connect ME

http://www.digi.com/images/dimensions/dimen_digiconnectme.jpg

Dimensions: Length: 1.445 in (36.7 mm) Width: 0.75 in (19.05 mm) Height: 0.735 in (18.67 mm)

The Digi ME series offers a:

1) 55Mhz NS7520 NET+ARM 32 bit RISC processor

2) 2 MB Flash and 8 MB RAM on-board memory

3) Five shared General Purpose Input/Output (GPIO) ports

4) High-speed TTL serial interface

5) Throughput up to 230 Kbps

6) Full signal support for TXD, RXD, RTS, CTS, DTR, DSR and DCD

7) Hardware/software flow control

8) 802.3af mid-span power pass-through

Digi Connect Wi-ME

http://www.digi.com/images/dimensions/dimen_digiconnectwime.jpg

Dimensions: Length: 1.945 in (49.4 mm) Width: 0.75 in (19.05 mm) Height: 0.735 in (18.67 mm)

The Digi Wi-ME series offers a:

1) 55Mhz NS7520 NET+ARM 32 bit RISC processor

2) 4 MB Flash and 8 MB RAM on-board memory

3) Five shared General Purpose Input/Output (GPIO) ports

4) High-speed TTL serial interface

5) Throughput up to 230 Kbps

6) Full signal support for TXD, RXD, RTS, CTS, DTR, DSR and DCD

7) Hardware/software flow control

8) IEEE 802.11b wireless Ethernet


Picotux http://www.picotux.com/

The Picotux 100/112

http://www.picotux.com/pt100a.jpg

http://www.picotux.com/pt112a.jpg

Dimensions: Height: 19 mm Width: 19 mm Deep: 36 mm Weight: 18 g

The Picotux 100 series offers a:

1) 55Mhz 32-bit ARM 7 Netsilicon NS7520 processor

2) 2 MB Flash and 8 MB RAM on-board memory

3) Five shared General Purpose Input/Output (GPIO) ports

4) High-speed TTL serial interface (Throughput up to 230 Kbps)

5) IEEE 802.11 (PoE with adapter cable)

The Picotux 112 is the same as the Picotux 100 but is mounted on a 53mm x 48 mm PCB that has connectors for easier access.

Conclusion

These embedded systems are truly amazing! But they are not the only small computers that are around... cell phones and PDA are unbelievable computer engineering marvels as well. Just use your imagination to come up with uses for small computers with connectivity... the ideas are limitless!

Ox, Mr. Ryan may have given you an "F" on your report but I give you an C- because your statements were truly profound but your conclusion SUCKED!


This page is powered by Blogger. Isn't yours?