Click here to check if anything new just came in.
February 08 2010
Thing-A-Day Feb. 7
Making a Replacement Tripod Part
This was posted as my thing-a-day project for February 7.
In January our Make:KC group focused on mold making and casting parts. This is a project I wanted to create but was left over from last month.
Sometime last year I bought a nice tripod at a garage sale. The tripod was missing the piece that attaches a camera and the tripod together. For my Thing-A-Day project I wanted to make a pattern for a replacement part. My project today is making this pattern.
The missing part was designed to be wedged between an angled portion of the front bracket and a rotating latch which also has a specific angle to pinch the part into place. To make this part I’m going to use some Sculpey polymer modeling clay. This clay can be formed into the shape required then baked in an oven to retain its shape.
After kneading the clay it’s time to begin rolling out the clay to the precise thickness of about four popsicle sticks.
Instead of filling the tripod solid with the clay, I need to leave a void so an attachment bolt has room plus enough width to tighten the bolt with my fingers. The wall widths seem to work if they are one popsicle stick wide.
The next step is to begin pushing the wall pieces into place. Squeezing them into place forming the angled latching pieces.. After placing the wall parts around the perimeter another wider piece is formed to cap off the top.
The trick is being able to pull the part back out without deforming the clay. Before placing the clay into the tripod I places a thin sheet of cardboard into the hole. The part pulled back out without much trouble.
After the clay is formed it’s time to bake the part. The oven was set at 275 degrees F. and left for about 20 minutes. After removing the part it is solid and can be handled without fear of deforming it.
The cured part is test fitted back in the tripod. It is a little tight fit but does pop into place.
The new Sculpey clay part could be drilled and fitted with a bolt to attach my camera. The cured clay part is durable and could work to save the day if I didn’t have any other options and needed the part to get the job done. I don’t want just a quick fix, I want a workable replacement part. By using this piece as a pattern I can create a molded part with more durable materials. Next project is to create a mold that can be used to cast a new part.
– About SomeoneKnows –
(c) 2010 Vince Thompson
February 07 2010
Thing-A-Day Feb 6
Memories of Grandpa’s Truck.
This image was scanned from an old snapshot of my grandfather’s 1946 Chevy pickup truck. I have editied the photo using the Gimp program. Instead of using Photoshop this time which requires rebooting my computer into Windows Vista, I decided to try learning some new techniques in Gimp after some friend’s encouragement.
The picture was separated into different layers. It used a white background image. The original photograph on a separate layer. The area outside of the truck’s fender was selected and removed. Another layer was created using a copy of the truck image and converted to a grey scale. Each layer above the background was layer was assigned an opacity value around 50%. The colored layer was adjusted using the edge detect sobel filter.
I was hoping to get an image with an artistic sketch type appearance. I was looking for something with a faded and fuzzy look to represent a faded memory from the past.
– About SomeoneKnows –
(c) 2010 Vince Thompson
February 02 2010
Thing-A-Day1+
My Thing-A-Day projects got off to a rocky start by missing the midnight deadline for my first project. I’ve been wanting to learn more about Photoshop, plus I’m wanting to get some promotional materials put together for our Make:KC group. So, for my first project I chose to create a logo using some advanced Photoshop type effects.
It didn’t quite turn out the way I imagined but I did learn new Photoshop features while working on this project. I was working from the Photoshop Type Effects Visual Encyclopedia book using their Soft Plastic technique. There are a number of great looking typography styles to choose from in the book.
Photoshop is capable of much more than my normal usage, mostly croping photos, adjusting the image slightly, creating a few montage images, and using a few filters. For this project I ended up learning about using the Alpha Channel.
Alpha Channel
I don’t know why I haven’t used the alpha channel before. I kind of remember reading something a few years ago about how difficult it was to use these channels. That may still be true but I found that using the alpha channel as a way of saving a particular selection set within your image was easy and is great.
– About SomeoneKnows –
(c) 2010 Vince Thompson

January 28 2010
Scientific Programming Study Group
Notes from Jan 21 and 27, 2010 Scientific Programming Study Group
Jim Emery is a member of Kansas City’s STEM2 society. He has started a Scientific Programming Study Group recently at the CCCKC hackerspace. STEM2 is a group that promotes Science, Technology, Engineering and Mathematics. The topic is based on his document titled “Scientific Calculating, Programming and Writing” which can be found at the Stem2 web site.
Using Python
Jim chose the Python language for these sessions. It is a powerful language with many features that make scientific computing easier.
Finding documentation on Python:
- Python Documentation – Get the official documentation from Python.org.
- Dive into Python – You can download a free copy of this book or purchase a printed copy.
- Thinking in Python – You can get this and other books from Bruce Eckel’s web site.
- A Byte of Python – This is a good introductory text for Python.
Getting Started in Linux
Since I’m using Ubuntu Linux, Python is already installed. To work through Jim’s examples I need to create the following new directories in my home folder “/vthompson“.
- /bin
- /tmp
- /src
The next step is to open a command window and adjust the $PATH variable so any programs placed in the /bin folder can be found. First, keyin the command echo $PATH to see how this environment variable is already defined.
From the picture above, we see the /bin directory shows up in in several places. Surprisingly, the directory I just created in my home directory already shows up. How did this happen? The answer can be found in the hidden shell script also found in my home directory, vthompson/.profile. It contains the following code segment that automatically places a home directory’s /bin path as the first one in the PATH list.
# set PATH so it includes user’s private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH=”$HOME/bin:$PATH”
fi
A good place to find more information is the Ubuntu Documentation page on Environment Variables. Also, for more information about shell scripts check out the Beginners Bash Scripting page. Another helpful document if you’re just starting to work with the command line is this CategoryCommandLine document.
Purpose of the /bin Directory
Linux is designed as a multi user operating system. While your desktop or laptop computer may not be used by other people logging into different accounts, using the home directory’s /bin folder prevents our special programs from interfering with someone else’s computer usage habits.
Now, its time to populate the /bin directory with files from the STEM2 software listing. The files we need are linux.zip and py.zip. Download and unzip the contents into /bin.
Trying a Sample Program
From Jim’s book, Chapter 6 on Graphing and Programmable Calculators, I’m trying the square root sample. I’ve created a /src directory to place my program source code into. Here is the sample program written using the gedit editor:
And the resulting screen shot of the program:
Other Python Notes:
- Python Numeric and Scientific Programs – More programs using Python
– About SomeoneKnows –
(c) 2010 Vince Thompson

January 27 2010
January 22 2010
January 21 2010
January 17 2010
January 16 2010
January 13 2010
January 10 2010
Adventures in Linux Documentation
In the Linux world, there are multiple paths toward providing a solution. There are various “brands” of Linux distributions (“distros”) that seem to have a little different way of doing things. Likewise, when you download programs written for Linux there are often multiple programs providing similar capabilities (some better than others). Documentation with configuration details can lead in different directions based on who wrote them. Sometimes the Linux world gives you enough rope to hang yourself.
I’ve been setting up a test environment to get web server functionality that I’ll use to create web sites offline as I described in X-AMPP Based Web Sites. Since then I’ve downloaded Drupal 6 from the Drupal download site and prepared to install in my test server environment.
A couple of weeks earlier I set up my first Drupal environment with the online Internet service provider that will be hosting my live web sites. This ISP provides a button to launch the Drupal setup process and everything went smoothly.
The X-AMP configuration created a web hosting area under /opt/lampp/htdocs directory. Since I’m wanting to set up multiple virtual domains I added a “www” folder named htdocs/www under that directory as a placeholder for each virtual domain. For example I have set up htdocs/www/mystudysource.dom for that particular web site. My first instinct was to download and extract Dripal into this domain’s directory. I realized this was wrong and placed the extracted files onto my desktop area instead. Then I created a “drupal6″ folder and proceeded to copy the extracted contents into my mystudysource.dom/drupal6 directory using an ftp program.
I started the XAMPP control panel, pushing the Start XAMPP button and was up and running as far as having a web server but I still needed to copy the files into my domain’s area. Since one of the components started is ProFTPD (an ftp server program) I’m able to use a program like Mozilla’s FileZilla to transfer these files. With the drupal files in the mystudygroup.dom/drupal6 directory I’m ready to start configuration.
Setting up Drupal on my development environment didn’t go as smoothly. I got a list of warnings and errors but not the configuration screen I expected. Doing the same thing over and over produced similar results with some slight variations. I suspect I have some kind of mis-configuration causing access errors so, its back to reading the documentation to see what I missed.
Over the last few days I’ve been reading a lot more documentation, both online and from books I already have. It’s interesting how a variety of sources can take you off in different directions. Reading the documentation is similar to looking at an old weathered stone that has many cracks running in different directions. I’ve seen a wide range of documentation from topics that are well formated and easy to follow to the extreme opposite with a pathetic mashup of email comments appearing as a solid block of text characters with no formatting at all. I’m sure one of these documentation fissures will lead me in the right direction.
– About SomeoneKnows –
(c) 2010 Vince Thompson

January 09 2010
X-AMP Based Web Sites
I’ve been developing web sites since 1996 and was the architect of Paul Mueller’s plate heat exchanger design program brought online in 2000. So far the web sites I’ve built have used Microsoft’s Internet Information Server (IIS).
I’m working on some new web sites running on Linux and using the Apache web server. In particular they are using Apache, MySql database and PHP which refer to using the “AMP” designation. There’s WAMP for a Windows version, LAMP versions for Linux applications, and XAMPP. I ended up using the XAMPP project from ApacheFriends as described in this Ubuntu Forums thread. I went to the XAMPP area on SourceForge to download the latest version. This placed the LAMP applications in my /opt/lampp directory.
Virtual Domains
I am creating multiple web sites and want a separate development environment on my laptop for each web domain. Next I edit the /etc/hosts file to define local ip addresses for each of my web sites. Localhost is already defined at 127.0.0.1, then I’m adding the name of my computer, gtdev1, so it points to 127.0.0.1 also. I will be working on the following web sites: GeometricTechnology.com, MyStudySource.com, DIYRoboticsLab.com, UnBiasedSewing.com, LabyWiinth.com, and MakeKC.com.
I’m hard coding IP locations mapped to my computer. If I were to use the “.com” designation it would hijack any attempts to go to the live Internet web sites from my computer. To prevent confusion I’m changing the names slightly using a “.dom” designation instead. I use .dom to represent domain. I edit the /etc/hosts file adding the lines mapped to IP addresses 127.0.0.1.
127.0.0.1 localhost
127.0.1.1 gtdev1
127.0.1.1 GeometricTechnology.dom
127.0.1.1 MyStudySource.dom
127.0.1.1 DIYRoboticsLab.dom
127.0.1.1 UnBiasedSewing.dom
127.0.1.1 labywiinth.dom
127.0.1.1 MakeKC.dom# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
Now, for instance, when I type http://MyStudySource.dom into the web browser it serves up the default page from my laptop. This lets me work with each unique local web domain. The next thing I need to do is provide a separate folder for each domain instead of the default localhost location.
I created a folder called under /opt/lampp/htdocs/ called www with folders inside for each of the domains, for instance /opt/lampp/htdocs/www/geometrictechnology.dom.
Next I edit the /opt/lampp/etc/extra/httpd-vhosts.conf file to identify folders for each of the local domains.
#
# Virtual Hosts
#
# If you want to maintain multiple domains/hostnames on your
# machine you can setup VirtualHost containers for them. Most configurations
# use only name-based virtual hosts so the server doesn’t need to worry about
# IP addresses. This is indicated by the asterisks in the directives below.
#
# Please see the documentation at
# <URL:http://httpd.apache.org/docs/2.2/vhosts/>
# for further details before you try to setup virtual hosts.
#
# You may use the command line option ‘-S’ to verify your virtual host
# configuration.#
# Use name-based virtual hosting.
#
NameVirtualHost *:80#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for all requests that do not
# match a ServerName or ServerAlias in any <VirtualHost> block.
#<VirtualHost *:80>
DocumentRoot htdocs/xampp
ServerName localhost
ErrorLog logs/localhost-error_log
CustomLog logs/localhost-access_log common
</VirtualHost><VirtualHost *:80>
ServerAdmin webmaster@geometrictechnology.dom
DocumentRoot htdocs/www/geometrictechnology.dom
ServerName geometrictechnology.dom
ErrorLog logs/geometrictechnology.dom-error_log
CustomLog logs/geometrictechnology.dom-access_log common
</VirtualHost><VirtualHost *:80>
ServerAdmin webmaster@mystudysource.dom
DocumentRoot htdocs/www/mystudysource.dom
ServerName mystudysource.dom
ErrorLog logs/mystudysource.dom-error_log
CustomLog logs/mystudysource.dom-access_log common
</VirtualHost><VirtualHost *:80>
ServerAdmin webmaster@diyroboticslab.dom
DocumentRoot htdocs/www/diyroboticslab.dom
ServerName diyroboticslab.dom
ErrorLog logs/diyroboticslab.dom-error_log
CustomLog logs/diyroboticslab.dom-access_log common
</VirtualHost><VirtualHost *:80>
ServerAdmin webmaster@labywiinth.dom
DocumentRoot htdocs/www/labywiinth.dom
ServerName labywiinth.dom
ErrorLog logs/labywiinth.dom-error_log
CustomLog logs/labywiinth.dom-access_log common
</VirtualHost><VirtualHost *:80>
ServerAdmin webmaster@unbiasedsewing.dom
DocumentRoot htdocs/www/unbiasedsewing.dom
ServerName unbiasedsewing.dom
ErrorLog logs/unbiasedsewing.dom-error_log
CustomLog logs/unbiasedsewing.dom-access_log common
</VirtualHost><VirtualHost *:80>
ServerAdmin webmaster@makekc.dom
DocumentRoot htdocs/www/makekc.dom
ServerName makekc.dom
ErrorLog logs/makekc.dom-error_log
CustomLog logs/makekc.dom-access_log common
</VirtualHost>
To enable the http-vhosts.config settings check the httpd.config again to verify the following Include statements are un commented.
# Virtual hosts
Include etc/extra/httpd-vhosts.conf# XAMPP
Include etc/extra/httpd-xampp.conf# Various default settings
Include etc/extra/httpd-default.conf
After making these changes stop and restart Apache so it will find the changes.
Under the /opt/lampp/htdocs/www/ folder I have a folder for each of the domains I want to use. Inside each of the domain folders I have a file named index.html. This file simply has the paragraph tag
<p> Hello World </p>
Actually, I customized the message in each to know which folder the web page was served from. Now when I type my local domain name into a browser is serves up my Hello World or equivalent example from each domain’s directory.
(c) 2010 Vince Thompson

January 08 2010
Laptop Rebuild
I got a new 500 GB hard drive over the Christmas season and have installed it in my laptop computer. I considered going with Linux only but finally gave in and set aside a portion for Windows. I’m hoping some of the mythical stimulus money finally lands on a project I’m in line to work on that requires using a Windows only program.
Before installing the new drive I spent a few days archiving files to DVD. I’m getting ready to rebuild a server too so getting files from both computers took extra time.
This is how I partitioned my disk drive:
When I installed Windows Vista from the restore CD, this put two partitions on the disk.
- /dev/sda1 – Toshiba System Volume with 1.6 GB NTFS
- /dev/sda2 – SQ0046… Reduced to 60 GB NTFS Area for Windows OS and other programs
After getting Window installed I placed the Ubuntu 9.10 in the CD drive and rebooted. The installation procedure needs to know about how the disk drive will be used. I added the following partitions:
/dev/sda3 Remaining 439 GB partitioned as follows
- /dev/sda5 – 32 GB Filesystem formatted as FAT32 mounted as /shared (I’m using this when my project files are supported by both Win and Linux OS)
- /dev/sda6 – 4GB set up as Linux swap space
- /dev/sda7 – Remaining 403 GB as Linux Ext4 file system mounted as /
(c) 2009 Vince Thompson

Maybe Soup is currently being updated? I'll try again automatically in a few seconds...















