Saturday, December 31, 2011
Home-made Telephone Amplifier For Conference Calls
Years ago, one used to see all sorts of schematics for telephone amplifiers in hobbyist electronics magazines. Radio Shack used to sell them for about $19. Today, such things are not commonly written about, and factory made ones (if you can find them) are expensive. I have a recurring need for an amplifier that will allow several people in a room to monitor a conference call. Two way functionality is NOT needed - although we can still use the handset if needed. To follow is my modern-day solution.
The above schematic shows a circuit I designed for handling this problem. It uses a 600 Ohm, 1:1 line transformer which was salvaged from a discarded computer modem card. The 0.047 mf capacitor and some of the electrolytic capacitors were also gleaned from the modem. The OP-amp is a NE 5532 low noise amplifier. The circuit uses a single-ended 12 volt DC supply. A 7809 regulator regulates the circuit to 9 volts. A power LED alerts the user that the unit is 'on'. A 'hold switch' is also provided so the phone can be hung up after the call is established (more on this later). The circuit (for now) provides a line level output to feed a pair of amplified computer speakers. Later, I plan on adding an IC such as an LM381 and a small internal speaker. I allowed room for this upgrade when purchasing the enclosure.
I built the circuit on a piece of perf board bought from Radio Shack. Each of the holes has a copper ring around it on the bottom side of the board; the top side is completely unclad.
How It Works
The Op Amp is wired as a differential amplifier to minimize AC hum or other noise carried in on the phone line. The transformer coupling is efficient and provides isolation from the phone line. The potentiometer between the two amplifier stages is simply a volume control. The circuit provides line-level signal for use by amplified speakers. It could also be fed to the LINE-level input of a computer sound card or a tape recorder.
The OP-amp receives its 'split power supply' of + and - 4.5 volts via the voltage divider formed by the two 10K-Ohm resistors seen in the upper left-hand side of the schematic. The two capacitors keep the supply rails at AC ground.
The 'hold switch', seen in the lower left-hand side of the schematic, does two things:
1) Provides a 'dummy load' on the phone line to simulate a telephone being 'off the hook'. This allows one to hang up the phone after the call is established - allowing the listeners to talk privately in the room during the conference. The load consists of a pair of 2 W resistors from my junk box. Any resistor or combination equal to 100 - 200 ohms at 5 watts should be fine. The resistor WILL get warm, so keep it away from the OP amp and voltage regulator.
2) An LED indicator lets users know the phone is effectively 'off the hook' and can't receive calls. The bridge rectifier protects the LED from damage due to high reverse voltages; the 'ring' voltage can reach 90 volts AC. The bridge also allows the LED to work regardless of the line's DC polarity - phone jacks are often wired 'backwards'.
The voltage regulator does not need a heat sink due to the very low power consumption of this circuit. All told, it draws about 5 mA.
Lead dress is not critical, but try to keep them short to minimize stray hum pickup or oscillations.
To Use:
1) Pick up the phone and dial the number; do whatever you normally do to start the conference.
2) Flip the 'hold switch' - the 'hold' LED should light.
3) Hang up the phone - you should hear the teleconference but the other callers won't hear what's going on in the room.
4) Adjust the volume to whatever's comfortable.
5) When you're done, simply turn the hold switch off. The call will disconnect.
6) Turn off the power switch.
That's all there is to it!!
This circuit works quite well for me, with very little AC hum or other noise. I'm in the process of building it in to a plastic project box. When this is done I'll try to post a picture of it here.
I drew the schematic using gschem, from the gEDA toolkit in LINUX. The resulting product is saved as a PNG file. You can read about gEDA in my previous post.
Labels:
conference,
conference call,
gEDA,
telephone,
telephone amplifier
Drawing Electronic Schematics With gschem In LINUX
For some time I have needed software for generating electronic schematics for posting here as well as for my work pursuits. In a nutshell, I wanted something that was free and that preferably would run in a LINUX environment. After a bit of looking online, I found the gEDA toolkit. gEDA stands for GPL'd Electronic Design Automation tools. gEDA is a suite of tools for schematic capture and PCB layout. It takes a bit of getting used to, and I personally find it a bit cumbersome to use, but it IS free and works.
On my Ubuntu 11 system, I tried to use apt-get install form the command line, but ended up having problems when the End User License Agreement box came up. Apparently there are some fonts that need to be installed which don't fall under the normal GNU license. The box to click "OK", as in "I Accept", didn't render properly on the command line; I had to abort the installation and use the graphical "Synaptic Package Manager" tool. When I used the Synaptic Package Manager all went Ok and I had gEDA installed in about 5 minutes.
In order to draw a schematic, you need to use the "gschem" tool. Readers who install gEDA may have a menu icon to start "gschem". I used the command line to invoke "gschem" due to continuing issues with the "Unity desktop" on my Ubuntu 11 system.
Some pointers to get you started:
When gschem starts, you are confronted by a black background. If you are like me, you will want to switch to a white "paper" with colored symbols, lines, ...
Do this by going to the "view" menu and selecting "Light color scheme". NOTE: Any time you close gschem, the background will default to the dark color scheme the next time you start gschem - even if you saved your file with a light background. So when you re-open your file, don't freak out if the 'paper' is dark, just go to 'view' menu and reset it.
Under the 'Options' menu, you can change the grid spacing, text size, and other environment behaviors. See the photo above.
You will definitely want to make sure that the 'Toggle Snap on/off' control is set to "off" - otherwise you will go insane trying to place components accurately as they jump around.
If your mouse has a wheel, zooming in or out will be much easier. As you edit your drawing, you will be zooming in or out regularly.
The best way I found to learn gschem is to try out the various menu selections and functions.
When selecting a component from the component menu, make sure you select the "Include component as indivdual objects" option. This allows you to change labels, change the default pin numbering on op amps, ... See the second photo.
The third photo shows the wiring tool in use. To run a wire, left-hand click on whatever point you want to start. If you are maneuvering around other components, left-click whenever you are changing directions. As you approach another wire or connector, a little red ball will appear. Simply left-click on that to complete the connection. When you complete a connection, left click, then right click with your mouse to 'detach' - otherwise you will have lines zig-zagging from that point all over your drawing.
To SAVE your drawing, go to the file menu and select the 'save' option.
When you are finished and want to publish the drawing, select 'Write Image' under the 'file' menu. You will have a few choices as to file format and resolution. Set those parameters to what you want and save. You should now have a schematic that can be read in any image viewer or browser.
Labels:
electronic schematics,
gEDA,
gschem,
LINUX,
schematic capture,
schematic editor
Thursday, December 29, 2011
Container Gardening: What Plastics To Avoid
Once again, I'm working on starting some plants indoors during the Winter. I have been surfing the Internet for ideas on how to grow larger quantities of small vegetables indoors. There are several folks on youtube.com who are using PVC pipe, as well as recycled drinking water bottles, as growing containers. Plastic water bottles are very cheap or even free, and 4" PVC pipe makes a really slick growing trough. Both can be used in high density configurations for growing lots of plants in a small space. Here's the catch: PVC pipe, as well as certain plastics used in food containers, actually leach toxins into the food or liquids they contain. Bisphenol A, or BPA, which is used in certain food and drink containers, has come under scrutiny as far as potentially causing birth defects, sexual abnormalities in small children, reproductive harm in male adults, neurological damage, and possibly even obesity. Chronic exposure to the pthalates found in PVC plastics can cause liver damage and other serious human health problems.
So, What to use?
I checked with a friend and colleague who is quite knowledgeable in chemistry. He recommends polyethylene or polybutylene plastics for gardening or potable water. He added that the plastic bins I bought at Wal-Mart for growing plants in a couple years ago should be safe, since they are made from polyethylene. I checked online regarding the 5-gallon buckets that are commonly used for bulk restaurant foods. These, too, are made from polyethylene - and SHOULD therefore be safe. About Home Depot, Lowes, or Wal-Mart 5 gallon buckets? They APPEAR to be made of the same polyethylene, but one should probably check before using these!!
The links below offer more information regarding which plastics are considered safe and which to avoid. Note that there is some conflicting information on polypropylene - I would avoid it due to some sites talking of it being an endocrine disruptor.
http://www.greenamerica.org/livinggreen/plastics.cfm
http://toxicswatch.blogspot.com/2008/11/toxic-leaching-from-polypropylene.html
http://archive.greenpeace.org/toxics/pvcdatabase/bad.html
A growing container should also be of a light or medium color. I learned the hard way a few years ago that the dark colored pots the nurseries use once and throw away can overheat in the sun and cause the plants' roots to burn. It would look crummy, but perhaps these can be used in a pinch if wrapped with reflective mylar or foil. I'd be wary of painting them due to chemicals in the paint possibly leaching through the bucket into the soil.
Shelves or supports used in a window garden should be sturdy - containers filled with soil are surprisingly heavy and will only get heavier as the plants grow. I use a frame made of 2" x 4" lumber for mine.
So, What to use?
I checked with a friend and colleague who is quite knowledgeable in chemistry. He recommends polyethylene or polybutylene plastics for gardening or potable water. He added that the plastic bins I bought at Wal-Mart for growing plants in a couple years ago should be safe, since they are made from polyethylene. I checked online regarding the 5-gallon buckets that are commonly used for bulk restaurant foods. These, too, are made from polyethylene - and SHOULD therefore be safe. About Home Depot, Lowes, or Wal-Mart 5 gallon buckets? They APPEAR to be made of the same polyethylene, but one should probably check before using these!!
The links below offer more information regarding which plastics are considered safe and which to avoid. Note that there is some conflicting information on polypropylene - I would avoid it due to some sites talking of it being an endocrine disruptor.
http://www.greenamerica.org/livinggreen/plastics.cfm
http://toxicswatch.blogspot.com/2008/11/toxic-leaching-from-polypropylene.html
http://archive.greenpeace.org/toxics/pvcdatabase/bad.html
A growing container should also be of a light or medium color. I learned the hard way a few years ago that the dark colored pots the nurseries use once and throw away can overheat in the sun and cause the plants' roots to burn. It would look crummy, but perhaps these can be used in a pinch if wrapped with reflective mylar or foil. I'd be wary of painting them due to chemicals in the paint possibly leaching through the bucket into the soil.
Shelves or supports used in a window garden should be sturdy - containers filled with soil are surprisingly heavy and will only get heavier as the plants grow. I use a frame made of 2" x 4" lumber for mine.
Labels:
BPA,
container gardening,
polyethylene,
PVC,
PVC pipe
Sunday, December 25, 2011
Cyber-Clouds In My Coffee*
We have all heard all the hoopla about cloud computing, and how it is the greatest thing for mankind since sliced bread. It's been harder than I would expect to get a coherent explanation of what cloud computing really is. Boiled down, it refers to a paradigm in which computing is basically a "service" or a "utility" that you pay a monthly fee to use, rather than as something you buy in a box, take home, setup, and plug in. [I think of it as akin to regularly sending one's laundry to a laundry service as opposed to buying a washer and doing it at home.] Taken to its ultimate end, it could involve having your applications software hosted on a remote server, and also your data stored elsewhere. You would access your applications and data from anywhere there is Internet access via small, relatively cheap commodity devices such as tablet computers and "smart phones".
While it probably does have its place, its widespread implementation has some important and potentially negative ramifications for Joe Average User. Especially in this day of terrorism, government crackdowns, and a general lack of accountability on the part of Big Business. The huge new legal and ethical issues surrounding the use of this technology are unprecedented and could take years to resolve.
Before you swallow all the marketing hype "hook, line, and sinker", check out this article quoting Richard Stallman, activist, privacy advocate, and computer programmer:
http://www.guardian.co.uk/technology/2008/sep/29/cloud.computing.richard.stallman
The article, and the ones linked to at the bottom of this post, do quite a bit to de-mystify the general concept of cloud computing by striping away the marketing mumbo-jumbo to get to its essence.
Here are a few quotes highlighted from the article:
Stallman said "But there has been growing concern that mainstream adoption of cloud computing could present a mixture of privacy and ownership issues, with users potentially being locked out of their own files."
"One reason you should not use web applications to do your computing is that you lose control," he said. "It's just as bad as using a proprietary program. Do your own computing on your own computer with your copy of a freedom-respecting program. If you use a proprietary program or somebody else's web server, you're defenceless. You're putty in the hands of whoever developed that software."
He goes on to tell people "to stay local and stick with their own computers."
He said it more eloquently than I could have. Using my laundry analogy above, one must trust that the laundry service won't lose the wash, spill bleach or dye on it, overcook it in the dryer and shrink it, return it to the wrong person, ...
Here's where it "hits home":
Typically, my ISP is 'down' an average of two days per month. I have few viable options for Internet services in my semi-rural location. It's not that the infrastructure isn't here for more service providers; it's the fact we have one 300# gorilla that has cornered the market and for all practical purposes locked out the competition. I'd be crazy to want my access to my music, school homework, business files, ... contingent upon having access to the Internet. That's just a couple of the 'local issues'. But there are much larger implications.
Having observed the government crackdowns on Internet and phone service in places like Egypt and parts of the Arab World, and the continuing government control of the Internet in places such as China, I have a very cautious and skeptical attitude toward anything in which we as individuals and small businesses are asked to (or told we must) give up any more control over our own data and infrastructure.
* In keeping with giving proper attribution of ideas to their owners, the title of this post makes reference to the song "You're So Vain", by Carly Simon. "Clouds in my coffee" refers to illusions, or having "cloudy" vision so you can't see things clearly.
The following sites will help "part the clouds" surrounding this potentially game-changing technology:
http://www.techtangerine.com/2009/06/02/ten-reasons-why-cloud-computing-is-a-bad-idea/
http://www.guardian.co.uk/technology/blog/2008/aug/06/whengoogleownsyouyourdata
http://www.zdnet.com/blog/london/defense-giant-ditches-microsofts-cloud-citing-patriot-act-fears/1349?tag=nl.e539
A short side bar - but related issue:
The Obama administration and our illustrious congress critters are working to pass a bill that would give the U.S. Government the power to shut down and/or censor Internet and presumably telephone access for US citizens at the slightest whim. Another bill - the so-called "Protect IP Act" - in the works essentially gives large companies such as Microsoft and Hollywood studios carte blanche to censor our access to many websites we use everyday. See the short video at http://vimeo.com/31100268 to understand the far-reaching implications of this legislation.
I've talked about this and related topics in my posts regarding Internet censorship, service interruption, and the need for "grass roots" neighborhood "mesh networks". Judging from my blog stats on those posts, my attempts to reach and warn people of the chilling effect this can have on our basic rights of free speech in the digital age have failed. But please bear in mind that until 911, legislation such as the "USA Patriot Act" would have seemed unthinkable to most Americans. For those interested in more information about Internet Censorship and how to beat it, check out the following:
http://inkarlslab.blogspot.com/2011/10/more-internet-censorship-on-way-in-good.html
http://inkarlslab.blogspot.com/2011/06/wanna-beat-internet-censorship-build.html
While it probably does have its place, its widespread implementation has some important and potentially negative ramifications for Joe Average User. Especially in this day of terrorism, government crackdowns, and a general lack of accountability on the part of Big Business. The huge new legal and ethical issues surrounding the use of this technology are unprecedented and could take years to resolve.
Before you swallow all the marketing hype "hook, line, and sinker", check out this article quoting Richard Stallman, activist, privacy advocate, and computer programmer:
http://www.guardian.co.uk/technology/2008/sep/29/cloud.computing.richard.stallman
The article, and the ones linked to at the bottom of this post, do quite a bit to de-mystify the general concept of cloud computing by striping away the marketing mumbo-jumbo to get to its essence.
Here are a few quotes highlighted from the article:
Stallman said "But there has been growing concern that mainstream adoption of cloud computing could present a mixture of privacy and ownership issues, with users potentially being locked out of their own files."
"One reason you should not use web applications to do your computing is that you lose control," he said. "It's just as bad as using a proprietary program. Do your own computing on your own computer with your copy of a freedom-respecting program. If you use a proprietary program or somebody else's web server, you're defenceless. You're putty in the hands of whoever developed that software."
He goes on to tell people "to stay local and stick with their own computers."
He said it more eloquently than I could have. Using my laundry analogy above, one must trust that the laundry service won't lose the wash, spill bleach or dye on it, overcook it in the dryer and shrink it, return it to the wrong person, ...
Here's where it "hits home":
Typically, my ISP is 'down' an average of two days per month. I have few viable options for Internet services in my semi-rural location. It's not that the infrastructure isn't here for more service providers; it's the fact we have one 300# gorilla that has cornered the market and for all practical purposes locked out the competition. I'd be crazy to want my access to my music, school homework, business files, ... contingent upon having access to the Internet. That's just a couple of the 'local issues'. But there are much larger implications.
Having observed the government crackdowns on Internet and phone service in places like Egypt and parts of the Arab World, and the continuing government control of the Internet in places such as China, I have a very cautious and skeptical attitude toward anything in which we as individuals and small businesses are asked to (or told we must) give up any more control over our own data and infrastructure.
* In keeping with giving proper attribution of ideas to their owners, the title of this post makes reference to the song "You're So Vain", by Carly Simon. "Clouds in my coffee" refers to illusions, or having "cloudy" vision so you can't see things clearly.
The following sites will help "part the clouds" surrounding this potentially game-changing technology:
http://www.techtangerine.com/2009/06/02/ten-reasons-why-cloud-computing-is-a-bad-idea/
http://www.guardian.co.uk/technology/blog/2008/aug/06/whengoogleownsyouyourdata
http://www.zdnet.com/blog/london/defense-giant-ditches-microsofts-cloud-citing-patriot-act-fears/1349?tag=nl.e539
A short side bar - but related issue:
The Obama administration and our illustrious congress critters are working to pass a bill that would give the U.S. Government the power to shut down and/or censor Internet and presumably telephone access for US citizens at the slightest whim. Another bill - the so-called "Protect IP Act" - in the works essentially gives large companies such as Microsoft and Hollywood studios carte blanche to censor our access to many websites we use everyday. See the short video at http://vimeo.com/31100268 to understand the far-reaching implications of this legislation.
I've talked about this and related topics in my posts regarding Internet censorship, service interruption, and the need for "grass roots" neighborhood "mesh networks". Judging from my blog stats on those posts, my attempts to reach and warn people of the chilling effect this can have on our basic rights of free speech in the digital age have failed. But please bear in mind that until 911, legislation such as the "USA Patriot Act" would have seemed unthinkable to most Americans. For those interested in more information about Internet Censorship and how to beat it, check out the following:
http://inkarlslab.blogspot.com/2011/10/more-internet-censorship-on-way-in-good.html
http://inkarlslab.blogspot.com/2011/06/wanna-beat-internet-censorship-build.html
Wednesday, December 14, 2011
MIPS 32 Register Swap Example Using QtSPIM
I've been away from my blog the past several weeks due to term papers, final exams and other mini-emergencies.
During that time I have seen a huge number of hits on my MIPS Example code page. You can find it here:
http://inkarlslab.blogspot.com/2011/09/mips-32-example-program-using-qtspim.html
In case folks would like some more code examples, I've published this piece of code - based loosely on one of my lab assignments this semester.
This code prompts the user to enter two integers through the console, places them into registers, then swaps the contents of those registers. It does so without the use of the MIPS "move" command. As with my previous material, it was run using the SPIM emulator version 9.1.4 - dated September 4, 2011.
CAVEATS: This is not the most elegant way of doing it. It was my first attempt at doing a register swap. This can actually be done using three or four lines of code, rather than my five, but my professors might get a bit angry if I gave away all the answers here. But this code does work and should help folks to get a head start on writing simple MIPS programs.
The complete code is as shown below. Simply copy and save this as "integer_swap.asm", or whatever .asm filename you like, using any convenient text editor such as Windows Notepad or LINUX Gedit.
NOTE: Sorry about the crummy formatting - I'm having trouble with tabs in the blogger interface.
===========================================================
## Program reads variables from console into registers
## then swaps the contents of those registers.
## Prints out contents before and after swap.
##
##
##
## Registers used:
## $v0 - syscall parameter and return value
## $a0 - syscall parameter
## $s1 - holds x
## $s2 - holds y
## $t0 - holds temp value
.text
main: # SPIM starts execution here
## Let's get x
la $a0, enter_x # Print msg for x
li $v0, 4
syscall
## read x into $s1.
li $v0, 5 # syscall 5 = read integer
syscall
move $s1, $v0 # x = Integer just read
## Message for x
la $a0, print_s1 # Prints "$s1 = "
li $v0, 4
syscall
## Let's display initial value of $s1 - so read x into $a0.
move $a0, $s1 # Move contents of $s1 into $a0
li $v0, 1 # Syscall for 'print integer'
syscall # Print value in $a0
## Print carriage return
la $a0, print_ret
li $v0,4
syscall
## Now, let's get y
la $a0, enter_y # Print msg for y
li $v0, 4
syscall
## read y into $s2.
li $v0, 5 # syscall 5 = read integer
syscall
move $s2, $v0 # y = Integer just read
## Message for y
la $a0, print_s2 # Prints "$s1 = "
li $v0, 4
syscall
## Let's display initial value of $s2 - so read y into $a0.
move $a0, $s2 # Move contents of $s2 into $a0
li $v0, 1 # Syscall for 'print integer'
syscall # Print value in $a0
## Print carriage return
la $a0, print_ret
li $v0,4
syscall
## Now, let's try and swap them - WITHOUT using 'move' command!!
addi $t0, $s2, 0 # Add the contents of $s2 into $t0
sub $s2, $s2, $s2 # Subtract the contents of $s2 from itself, thus zeroing it out
addi $s2, $s1, 0 # Add contents of $s1 into $s2
sub $s1, $s1, $s1 # Subtract the contents of $s1 from itself, thus zeroing it out
addi $s1, $t0, 0 # Add contents of $t0, same as former $s2, into $s1
## Now, lets print out the results:
la $a0, print_s1 # Prints "$s1 = "
li $v0, 4
syscall
move $a0, $s1 # Prints contents of $s1
li $v0, 1 # Syscall for printing of variable type integer
syscall
## Print single carriage return
la $a0, print_1ret
li $v0,4
syscall
la $a0, print_s2 # Prints "$s2 = "
li $v0, 4
syscall
move $a0, $s2 # Prints contents of $s2
li $v0, 1 # Syscall for printing of variable type integer
syscall
## Print carriage return
la $a0, print_ret
li $v0,4
syscall
exit:
li $v0, 10 # These two lines here for smooth exit from program
syscall
.data
enter_x: .asciiz "Enter a number for x, and press 'ENTER': " # Console prompt to enter the value for x
enter_y: .asciiz "Enter a number for y, and press 'ENTER': " # Console prompt to enter the value for y
print_s1: .asciiz "$s1 = " # Screen output to console
print_s2: .asciiz "$s2 = " # Screen output to console
print_1ret: .asciiz "\n"
print_ret: .asciiz " \n \n \n"
=======================================================
The picture above shows what should happen when you run the program using SPIM.
A slight variation of the problem asks you to do this without using a third register for temporary storage of one value (as was done here).
This basic algorithm can be modified slightly to permit the integers to be swapped WITHOUT using a third register.
HINTS: You will only need three or four lines of code to do the actual swap. There are basically two ways I know of to do it: 1) Use "add" and "sub" operations or 2) use XOR operations.
Hope this information is of help to someone.
Thursday, November 3, 2011
QtSPIM And MIPS Instructions Using Float And Double Variables
This week, we had a lab assignment in my computer engineering class that required us to perform arithmetic operations on float variables. I quickly learned that the standard add, addi, sub, mov, ... instructions do NOT work properly on float variables. This was not explained in ANY of the literature I had prior to 15 minutes ago. Also, you apparently cannot use the standard $s0 - $s8, $t0 - $t3, ... registers for storing float or double type variables. There are special floating point registers that are used for this but are also not often discussed in the usual MIPs tutorials. So I went to Google and searched terms such as SPIM+"float variables", and SPIM+"float registers". Only then did this other information suddenly appear.
The following link should prove quite useful for anyone trying to do this:
A much more complete listing of MIPS Instructions - Including those using Float Registers
http://www.dsi.unive.it/~arcb/LAB/spim.htm
Look at pages 21 - 23 and note the instructions such as add.s, sub.s, mov.s for manipulating single precision float variables. If you are working with double precision variables, use add.d, sub.d, mov.d, ... MIPS uses a floating point coprocessor - it has special registers numbered $f0 - $f31. So, what I get from this is instead of using the $s0, $s2, and $t0 registers my professor told me to use on integers, I will have to use registers $f2, $f3, $f4, for example. Registers $f0 and $f12 are reserved in QtSPIM for reading and printing floats, respectively - so don't use them for storing/manipulating your arithmetic variables. After you perform an arithmetic operation, you will have to move that result to $f12 before you can print the answer to the console. Likewise, if your program reads a float variable from the console, you will have to fetch that number from f.p. register $f0 and place it into another - such as $f3, or wherever, before manipulating it.
If you are doing this you should get thoroughly acquainted with this document, save a copy to your hard drive, and perhaps print out your own hard copy as I have just done.
The links below show a couple short snippets of code detailing how to use these instructions.
http://stackoverflow.com/questions/2589233/mips-or-spim-loading-floating-point-numbers
http://stackoverflow.com/questions/6515799/use-the-floating-point-instructions-to-get-results-in-decimal
I'll post more information on this site as it becomes available. I sincerely hope my posts on SPIM and MIPS are helping some folks. THESE posts especially have gotten a ton of hits lately - from all over the world at that!
See them at:
http://inkarlslab.blogspot.com/2011/09/mips-32-example-program-using-qtspim.html
http://inkarlslab.blogspot.com/2011/09/spim-in-linux-environment.html
http://inkarlslab.blogspot.com/2011/09/spim-mips-32-bit-simulator.html
The following link should prove quite useful for anyone trying to do this:
A much more complete listing of MIPS Instructions - Including those using Float Registers
http://www.dsi.unive.it/~arcb/LAB/spim.htm
Look at pages 21 - 23 and note the instructions such as add.s, sub.s, mov.s for manipulating single precision float variables. If you are working with double precision variables, use add.d, sub.d, mov.d, ... MIPS uses a floating point coprocessor - it has special registers numbered $f0 - $f31. So, what I get from this is instead of using the $s0, $s2, and $t0 registers my professor told me to use on integers, I will have to use registers $f2, $f3, $f4, for example. Registers $f0 and $f12 are reserved in QtSPIM for reading and printing floats, respectively - so don't use them for storing/manipulating your arithmetic variables. After you perform an arithmetic operation, you will have to move that result to $f12 before you can print the answer to the console. Likewise, if your program reads a float variable from the console, you will have to fetch that number from f.p. register $f0 and place it into another - such as $f3, or wherever, before manipulating it.
If you are doing this you should get thoroughly acquainted with this document, save a copy to your hard drive, and perhaps print out your own hard copy as I have just done.
The links below show a couple short snippets of code detailing how to use these instructions.
http://stackoverflow.com/questions/2589233/mips-or-spim-loading-floating-point-numbers
http://stackoverflow.com/questions/6515799/use-the-floating-point-instructions-to-get-results-in-decimal
I'll post more information on this site as it becomes available. I sincerely hope my posts on SPIM and MIPS are helping some folks. THESE posts especially have gotten a ton of hits lately - from all over the world at that!
See them at:
http://inkarlslab.blogspot.com/2011/09/mips-32-example-program-using-qtspim.html
http://inkarlslab.blogspot.com/2011/09/spim-in-linux-environment.html
http://inkarlslab.blogspot.com/2011/09/spim-mips-32-bit-simulator.html
Tuesday, November 1, 2011
A "real-world" Indicator Of The American Economy - My Observations
We have heard quite a bit lately about how college kids are graduating with mountains of student loan debt and can't find jobs. Case in point: Three days ago I was at a local retail store picking up a "lay-away" purchase. The lady at the lay-away counter was well spoken, middle aged, well-mannered, intelligent, and well educated as it turned out. She explained that she had earned her Bachelor's degree in Geology about a year and a half ago - and hadn't yet found a job in her field. "Welcome to the recession", she said with a grim laugh.
IT Work:
We have all heard about how great a source of employment the IT industry is, and what a huge and growing demand there is for IT workers. In fact, there is supposedly such a high demand for IT workers that, according to industry sources, we must outsource our IT work to India. If so, then how is it that a friend of a friend with a Master's degree in Computer Science can only wrangle a $10/hour (yes, you read correctly) job in his field? He is an intelligent, hard-working, educated, experienced guy with a good work ethic. This does NOT bode well for guys like me who are working on their graduate degrees in related fields.
Granted, these are only two data points. However, they DO conflate with what I have personally observed in my daily interactions and read about online.
Looking around I find MANY examples of industry outsourcing jobs (and 'justifying' it with half-truths and questionable statistics) while millions of qualified Americans who WANT the work go without.
Why, as a society, as we putting up with this? Where is the outrage?
Declining Quality On All Levels:
Generally, during a recession, employees are fearful for their jobs and therefore tend to be on their best behavior. Under such conditions they will tolerate all sorts of things at work they never would in normal times. But this time there is yet another unprecedented change I and others close to me have noticed: MANY people in businesses of all types with whom I come in contact are rude, surly, and don't want to even minimally do the work they are paid to do. And/or they are often just plain incompetent. I've noticed a general coarsening of the business culture in America during the last three years in particular.
We always hear, especially from the 'conservative' side of the political aisle, that recessions "weed out the dead wood", allow the best to rise to the top, provide businesses with the opportunity to make improvements in efficiency, ... If anything, I think the opposite has happened during this latest downturn. Even the IT guy I mentioned earlier has noticed the same thing. We ask ourselves "with all the GOOD employees out there who WANT to work and cannot get jobs, WHY does business continue to keep ones that mistreat paying customers or who don't really want to work?" We hear about how businesses which cater to the middle and lower classes are being hurt by the recession, yet these same businesses keep employees that could be driving away valuable clientele.
I don't get it. It flies in the face of what we are taught in business degree programs and in normal, real-world commerce.
Readers - have you noticed the same thing?? If so, why do you think it is? What is behind it?
I'd love to hear from anyone who can shed light on this!
IT Work:
We have all heard about how great a source of employment the IT industry is, and what a huge and growing demand there is for IT workers. In fact, there is supposedly such a high demand for IT workers that, according to industry sources, we must outsource our IT work to India. If so, then how is it that a friend of a friend with a Master's degree in Computer Science can only wrangle a $10/hour (yes, you read correctly) job in his field? He is an intelligent, hard-working, educated, experienced guy with a good work ethic. This does NOT bode well for guys like me who are working on their graduate degrees in related fields.
Granted, these are only two data points. However, they DO conflate with what I have personally observed in my daily interactions and read about online.
Looking around I find MANY examples of industry outsourcing jobs (and 'justifying' it with half-truths and questionable statistics) while millions of qualified Americans who WANT the work go without.
Why, as a society, as we putting up with this? Where is the outrage?
Declining Quality On All Levels:
Generally, during a recession, employees are fearful for their jobs and therefore tend to be on their best behavior. Under such conditions they will tolerate all sorts of things at work they never would in normal times. But this time there is yet another unprecedented change I and others close to me have noticed: MANY people in businesses of all types with whom I come in contact are rude, surly, and don't want to even minimally do the work they are paid to do. And/or they are often just plain incompetent. I've noticed a general coarsening of the business culture in America during the last three years in particular.
We always hear, especially from the 'conservative' side of the political aisle, that recessions "weed out the dead wood", allow the best to rise to the top, provide businesses with the opportunity to make improvements in efficiency, ... If anything, I think the opposite has happened during this latest downturn. Even the IT guy I mentioned earlier has noticed the same thing. We ask ourselves "with all the GOOD employees out there who WANT to work and cannot get jobs, WHY does business continue to keep ones that mistreat paying customers or who don't really want to work?" We hear about how businesses which cater to the middle and lower classes are being hurt by the recession, yet these same businesses keep employees that could be driving away valuable clientele.
I don't get it. It flies in the face of what we are taught in business degree programs and in normal, real-world commerce.
Readers - have you noticed the same thing?? If so, why do you think it is? What is behind it?
I'd love to hear from anyone who can shed light on this!
Labels:
college,
decline of America,
Great Recession,
IT,
outsourcing,
recession,
student loan debt
Friday, October 28, 2011
Want The Tried And True Firefox 3.6 back?
Here's a link I found for downloading Firefox 3.6.23:
http://www.mozilla.org/en-US/firefox/all-older.html
In Mozilla's very next release, Firefox 4.0.0, some new and potentially serious security issues were introduced. You can read about them at the links below:
http://www.net-security.org/secworld.php?id=10962
http://www.contextis.com/research/blog/webgl2/
One issue, the WebGL (Web-based Graphics Library) feature, was NOT a part of the 3.6.x versions, so the above mentioned 3.6.23 would be safe against this vulnerability. Note, too, that the WebGL problem in Firefox affects ALL operating systems - Windows, LINUX, ... [FYI, WebGL is used to create 3D graphics in a web browser without extra plugins.]
Several sites have quoted that "Firefox 5 was the security fix for 4.0.1." How very nice :s)
Until Mozilla gets its issues worked out, I'd either recommend sticking with 3.6.23 or going with 6.0 or later. I've downloaded the 3.6.23 files for both Windows and LINUX and am storing them, just in case Mozilla decides to pull them off the site. I may yet want them again.
Something to Consider:
Representatives from Red Hat and Novel/SuSE told me during recent telephone conversations that they are sticking with Firefox 3.6.x in their enterprise products - at least for now. The U.S. Air Force's LPS LINUX also comes with 3.6.23.
To me, this speaks VOLUMES about what people needing reliability think of the current Mozilla mess!
http://www.mozilla.org/en-US/firefox/all-older.html
In Mozilla's very next release, Firefox 4.0.0, some new and potentially serious security issues were introduced. You can read about them at the links below:
http://www.net-security.org/secworld.php?id=10962
http://www.contextis.com/research/blog/webgl2/
One issue, the WebGL (Web-based Graphics Library) feature, was NOT a part of the 3.6.x versions, so the above mentioned 3.6.23 would be safe against this vulnerability. Note, too, that the WebGL problem in Firefox affects ALL operating systems - Windows, LINUX, ... [FYI, WebGL is used to create 3D graphics in a web browser without extra plugins.]
Several sites have quoted that "Firefox 5 was the security fix for 4.0.1." How very nice :s)
Until Mozilla gets its issues worked out, I'd either recommend sticking with 3.6.23 or going with 6.0 or later. I've downloaded the 3.6.23 files for both Windows and LINUX and am storing them, just in case Mozilla decides to pull them off the site. I may yet want them again.
Something to Consider:
Representatives from Red Hat and Novel/SuSE told me during recent telephone conversations that they are sticking with Firefox 3.6.x in their enterprise products - at least for now. The U.S. Air Force's LPS LINUX also comes with 3.6.23.
To me, this speaks VOLUMES about what people needing reliability think of the current Mozilla mess!
Have Fedora and Ubuntu Left You Stranded? Here's Some Guidance
I use a removable "drawer" system on my home lab computer - one drawer contains Fedora 14 and the other contains Ubuntu 11. Both are behaving badly, though in different ways. Ubuntu 11 will not allow me to install ANY software - whether it be through the graphical software manager or via the command line "apt-get" utility. This happened after another partially failed automatic update. Fedora WAS working OK, except my Kdenlive video editor got irrevocably corrupted with the recent Firefox update debacle I wrote about a while back. See my posts during July-September 2011 for more details on recent LINUX and GNOME 3 issues. Yesterday, when attempting to burn a data DVD, the Brasero DVD burning utility crashed. No amount of re-booting or cajoling will make it work. I believe this also happened due to a software update, as it DID work shortly before Fedora issued a bunch of updates a couple days ago.
Thoroughly fed up, I am shopping for a new LINUX distro. I had planned to buy a Red Hat Enterprise LINUX (RHEL) or a Novel SuSE subscription to get away from the instability of what I have been using. I figure that what is geared for the corporate user would meet higher quality standards; at least I would have a phone number to call rather than spending hours online trying to find answers. As a grad student on a very tight budget, I find the $180+ price tag for a one year subscription a bit steep right now. And so I started looking anew for a suitable free replacement.
The following two sites were very helpful for doing a quick comparison of different distributions:
tuxradar.com
http://tuxradar.com/content/best-distro-2011
distrowatch.com
http://distrowatch.com/
After reading these sites and visiting a number of online forums, I have picked out the following three for closer evaluation and testing:
CentOS 6.0, Debian 6.0.1, LINUX Mint 11
My criteria were stability, security, availability of the applications I regularly use, AND last but not least a conservative approach to development and updates. Here's a quick rundown of the choices I narrowed the field to:
CentOS 6.0: CentOS is a clone of Red Hat Enterprise LINUX (RHEL). It is supposedly intended for "business users who don't want to pay a business price." From what the guy at Red Hat told me on the telephone a couple weeks ago, if I bought RHEL and needed software that wasn't in the RHEL repository I still could get it from the Fedora repositories. The Fedora repositories are a riskier bet, but at least they are available if needed. RHEL 6.0 still uses GNOME 2.0.x desktop - I would ASSUME CentOS does also, but I don't really know one way or the other. I'll deal with that in a future post about CentOS.
Debian 6.0.1: Debian is well known for being "tested 'till destruction", to quote a couple sources I've read. It IS more difficult for the average person to install, but from everything I read it is robust, secure, and reliable. Many different distributions are derived from it and there is a huge software library for it. Debian still uses GNOME 2.0.x desktop, according to what I've read.
LINUX Mint 11 LINUX Mint is in many ways like Ubuntu, but it is also a competitor. Like Ubuntu, it is a Debian-derived distro. Mint 11 uses GNOME 2.x, though this might change next year when Mint 12 or 13 arrives. There is discussion on their site about either using GNOME 3 or maybe forking GNOME 2.x to something called "Mate" desktop that would (hopefully) retain compatibility with GNOME 2. We shall have to wait and see. Mint 11 comes "out of the box" with Java and Flash plugins installed so you can watch you-tube videos and access Java applications online. VERY COOL. I have already started initial tests on this one - more to come in my upcoming MINT post.
All I can say about the eventual use of GNOME 3 is I hope the above-mentioned distros clean it up before foisting it upon us as did Fedora and others.
Even the US Air Force has developed its very own LINUX distribution! Called "LPS" for "Lightweight Portable Security", it is intended to be kept on a bootable USB thumb drive and uses an encrypted file system. It can also be installed to a hard drive as with any other distro. It is also designed to prevent corruption of the essential operating system and software files, even if an online session does get hacked. It comes with Open Office and some other goodies pre-installed. I'll likely check this one out, too - I rather like the rationale on which it was based. Below is the link for more info and downloads:
Air Force's Secure LINUX Distro:
http://www.zdnet.com/blog/open-source/the-air-forces-secure-linux-distribution/9618
Stay tuned for results of my testing of the above-mentioned distributions.
Meanwhile, here are some links to articles I thought were useful for securing your LINUX system:
Some inside scoop on security
http://www.linuxinsider.com/story/73061.html
How to secure your LINUX system:
http://www.techradar.com/news/software/operating-systems/how-to-secure-your-linux-system-915651
Thoroughly fed up, I am shopping for a new LINUX distro. I had planned to buy a Red Hat Enterprise LINUX (RHEL) or a Novel SuSE subscription to get away from the instability of what I have been using. I figure that what is geared for the corporate user would meet higher quality standards; at least I would have a phone number to call rather than spending hours online trying to find answers. As a grad student on a very tight budget, I find the $180+ price tag for a one year subscription a bit steep right now. And so I started looking anew for a suitable free replacement.
The following two sites were very helpful for doing a quick comparison of different distributions:
tuxradar.com
http://tuxradar.com/content/best-distro-2011
distrowatch.com
http://distrowatch.com/
After reading these sites and visiting a number of online forums, I have picked out the following three for closer evaluation and testing:
CentOS 6.0, Debian 6.0.1, LINUX Mint 11
My criteria were stability, security, availability of the applications I regularly use, AND last but not least a conservative approach to development and updates. Here's a quick rundown of the choices I narrowed the field to:
CentOS 6.0: CentOS is a clone of Red Hat Enterprise LINUX (RHEL). It is supposedly intended for "business users who don't want to pay a business price." From what the guy at Red Hat told me on the telephone a couple weeks ago, if I bought RHEL and needed software that wasn't in the RHEL repository I still could get it from the Fedora repositories. The Fedora repositories are a riskier bet, but at least they are available if needed. RHEL 6.0 still uses GNOME 2.0.x desktop - I would ASSUME CentOS does also, but I don't really know one way or the other. I'll deal with that in a future post about CentOS.
Debian 6.0.1: Debian is well known for being "tested 'till destruction", to quote a couple sources I've read. It IS more difficult for the average person to install, but from everything I read it is robust, secure, and reliable. Many different distributions are derived from it and there is a huge software library for it. Debian still uses GNOME 2.0.x desktop, according to what I've read.
LINUX Mint 11 LINUX Mint is in many ways like Ubuntu, but it is also a competitor. Like Ubuntu, it is a Debian-derived distro. Mint 11 uses GNOME 2.x, though this might change next year when Mint 12 or 13 arrives. There is discussion on their site about either using GNOME 3 or maybe forking GNOME 2.x to something called "Mate" desktop that would (hopefully) retain compatibility with GNOME 2. We shall have to wait and see. Mint 11 comes "out of the box" with Java and Flash plugins installed so you can watch you-tube videos and access Java applications online. VERY COOL. I have already started initial tests on this one - more to come in my upcoming MINT post.
All I can say about the eventual use of GNOME 3 is I hope the above-mentioned distros clean it up before foisting it upon us as did Fedora and others.
Even the US Air Force has developed its very own LINUX distribution! Called "LPS" for "Lightweight Portable Security", it is intended to be kept on a bootable USB thumb drive and uses an encrypted file system. It can also be installed to a hard drive as with any other distro. It is also designed to prevent corruption of the essential operating system and software files, even if an online session does get hacked. It comes with Open Office and some other goodies pre-installed. I'll likely check this one out, too - I rather like the rationale on which it was based. Below is the link for more info and downloads:
Air Force's Secure LINUX Distro:
http://www.zdnet.com/blog/open-source/the-air-forces-secure-linux-distribution/9618
Stay tuned for results of my testing of the above-mentioned distributions.
Meanwhile, here are some links to articles I thought were useful for securing your LINUX system:
Some inside scoop on security
http://www.linuxinsider.com/story/73061.html
How to secure your LINUX system:
http://www.techradar.com/news/software/operating-systems/how-to-secure-your-linux-system-915651
Labels:
CentOS,
CentOS LINUX,
Debian,
Fedora LINUX,
Mint 11,
Mint LINUX,
Red Hat,
Ubuntu,
Ubuntu Software Update
More Internet Censorship On The Way In Good Ol' USA?
As with most news that we really NEED to be paying attention to, the "Protect IP Act" is something the mainstream media is NOT covering much in its "news" programs. While billed as another attempt at stopping music and movie piracy, it definitely has the earmarks of something far more sinister.
Having worked in the electronics and IT-related industries, I have read much about the "Protect IP Act" recently - but for those of you who are uninitiated, here's a quickie 3-4 minute video that explains what could happen quite soon:
http://mgelei.eu/2011/10/the-great-firewall-of-china-might-move-to-the-usa/?utm_source=rss&utm_medium=rss&utm_campaign=the-great-firewall-of-china-might-move-to-the-usa
Kudos to Mate Gelei for putting this up on his blog!!
I am completely against piracy of other people's intellectual property and hard work. However, this looks like a tool more useful for social control, curtailing free discourse, and manufacturing consensus, rather than for protecting copyrighted work. As pointed out in the video, media companies already have a powerful arsenal of laws and regulations to use against piracy. This is akin to burning down the house because you found two or three roaches in the kitchen.
So, what can we do?
Besides boycotting companies who are spearheading this, there IS technology available to help.
A while back I wrote about "mesh networks" - which are a stealthy way of creating Internet access which bypasses the regular government or corporate controlled network infrastructure.
http://inkarlslab.blogspot.com/2011/06/wanna-beat-internet-censorship-build.html
Just as truckers use CB radios to warn each other of adverse road conditions ahead, such a stealth "internet" could well be about the only way the common man (or woman) will be able to get REAL news and information at some point. Just look at the conditions in China, the recent commotion in Egypt, ... for examples. In these situations even cellular and land line phone networks were mostly shut down. Another possible scenario where a mesh network could really help is a natural or man-made disaster that could take down normal communications services. During such emergencies, mesh networks and amateur radio could really make a huge difference in helping ordinary folks.
Such "mesh" or ad-hoc networks could span anywhere from a city block to a large metropolitan area - perhaps farther using some creativity. These would be relatively hard to control or shut down, and would be fairly robust even in situations that would knock out standard DSL, cellular and land line phone, or cable access.
Along with shortwave radios and amateur "ham" radio, this is something every freedom-loving person might want to look into.
Having worked in the electronics and IT-related industries, I have read much about the "Protect IP Act" recently - but for those of you who are uninitiated, here's a quickie 3-4 minute video that explains what could happen quite soon:
http://mgelei.eu/2011/10/the-great-firewall-of-china-might-move-to-the-usa/?utm_source=rss&utm_medium=rss&utm_campaign=the-great-firewall-of-china-might-move-to-the-usa
Kudos to Mate Gelei for putting this up on his blog!!
I am completely against piracy of other people's intellectual property and hard work. However, this looks like a tool more useful for social control, curtailing free discourse, and manufacturing consensus, rather than for protecting copyrighted work. As pointed out in the video, media companies already have a powerful arsenal of laws and regulations to use against piracy. This is akin to burning down the house because you found two or three roaches in the kitchen.
So, what can we do?
Besides boycotting companies who are spearheading this, there IS technology available to help.
A while back I wrote about "mesh networks" - which are a stealthy way of creating Internet access which bypasses the regular government or corporate controlled network infrastructure.
http://inkarlslab.blogspot.com/2011/06/wanna-beat-internet-censorship-build.html
Just as truckers use CB radios to warn each other of adverse road conditions ahead, such a stealth "internet" could well be about the only way the common man (or woman) will be able to get REAL news and information at some point. Just look at the conditions in China, the recent commotion in Egypt, ... for examples. In these situations even cellular and land line phone networks were mostly shut down. Another possible scenario where a mesh network could really help is a natural or man-made disaster that could take down normal communications services. During such emergencies, mesh networks and amateur radio could really make a huge difference in helping ordinary folks.
Such "mesh" or ad-hoc networks could span anywhere from a city block to a large metropolitan area - perhaps farther using some creativity. These would be relatively hard to control or shut down, and would be fairly robust even in situations that would knock out standard DSL, cellular and land line phone, or cable access.
Along with shortwave radios and amateur "ham" radio, this is something every freedom-loving person might want to look into.
Saturday, October 8, 2011
PVC Blowgun
Regular visitors to this blog know already that, besides high-tech pursuits, I have a few of what some folks would consider rather anachronistic interests. Topics covered here have ranged from the latest Free Open Source Software, computers and networking, electronics, shortwave and amateur (ham) radio, to pre-1982 telephones and archery. Off and on during the past few weeks I have enjoyed shooting an unusual and primitive weapon: the blowgun.
A (very) Brief History:
Blowguns have been used by indigenous peoples all over the world, including those in the Americas. They originally were made from 7-10 foot lengths of cane or wood which had been bored out into a hollow tube. The darts ranged in length from six inches to over a foot in length and consisted of narrow splints made from bamboo, cane or other stiff material. The person shooting it would wind cotton or some other fibrous material on one end to serve as an air seal in the tube. These darts in some cases were tipped with plant or animal-derived poison; in other cases they were used "as is" to shoot small game. Some people took birds with a short, relatively heavy "blunt" cylindrical or marble shaped dart designed to stun, rather than penetrate the prey.
As an aside, one book I read a few years ago indicated that the native blowguns and darts brought back by European explorers may have inspired the invention of the reciprocating steam engine. Indeed, the operating principles of both ARE strikingly similar - both involve a compressed gas acting upon a movable piston.
Modern-day blowgun use:
Even today, some peoples inhabiting the Amazon River Basin and other remote areas of the world still use blowguns for hunting. Some native American tribes hold contests and give shooting demonstrations as part of keeping their cultural traditions alive. During the past couple decades in America, many people have enjoyed them as an outdoor sport. There are even organizations that promote blowgun shooting as a sport:
In the US, The United States Blowgun Association
http://usblowgun.com/
and internationally, The International Fukiyado Association (IFA)
http://www.echigo.ne.jp/~dhiguchi/index_e.html
Parts of this site are written in Japanese.
Now, for the details of my blowgun:
The blowgun is 50 calibre, consisting of a 5 foot piece of 1/2" ID schedule 40 PVC water pipe. A 1/2" to 1.25" pipe bushing serves as the mouthpiece. The larger end was heated with a heat gun until pliable and flared slightly - this gives a more comfortable surface to seal against one's mouth.
The darts are made from bamboo kabob skewers purchased at the grocery store. The air seal cones were made from 1.5" square pieces of printer paper folded to the cone shape, then glued to the skewers. When dry, the whole dart assembly was coated with spray paint for moisture resistance.
I haven't gone into any more detail because nothing here is unique - there are many sites on the Internet where one can find details on constructing just about any kind of blowdart imaginable.
In the picture of the darts, a shorter dart made from a roofing nail is shown next to the bamboo skewer dart. The paper cone air seal is identical to that on the skewer dart. Though the roofing nail is shorter and heavier, it flies more reliably and carries a much greater impact with the target. The foam archery target cannot be used with these because, even at a 50 foot range, the nail darts bury themselves beyond retrieval into the target's surface. A thin sheet of plywood would be most appropriate for stopping these projectiles.
The "range" shown in the top picture is a parking spot in a municipal park. From the 'near' end of the white line to the wood fence where the target is positioned measures approximately 25 feet using a measuring tape. All of the targets shown in the pictures were shot by me standing as this distance, unless otherwise noted.
In one of the close-up shots, one can see that a dart pierced the air seal (cone) of another one already in the target. Almost the blowgun equivalent of "splitting the arrow" in archery.
The green circle in the photo shows where two of the roofing nail darts buried themselves into the target face. One was shot at 25 feet; the other was at approximately 45 feet. The skewers penetrate between 2 and 2.5 inches into the target.
Monday, September 19, 2011
MIPS 32 Example Program using QtSPIM
A few nights ago, I got my first MIPS 32 program running in QtSPIM. Readers of this blog will recall my recent posts about MIPS-32 assembly language and the MIPS-32 SPIM emulator. I promised you a sample program and operational details - so here they are. Below is the code listing:
# http://inkarlslab.blogspot.com
# 09/16/2011
#
# A Demonstration of some simple MIPS instructions
# used to test QtSPIM.
#
#
#
# ori rt, rs, imm - Puts the bitwise OR of register rs and the
# zero-extended immediate into register rt => This is a
# trick for placing a constant into register rt.
#
# add rd, rs, rt - Puts the sum of registers rs and rt into register rd.
#
# sub rd, rs, rt - Puts difference of registers rs and rt into register rd.
#
# syscall - Register $v0 contains the number of the system
# call provided by QtSPIM - when $v0 is loaded with the value '10',
# this causes program to exit.
#
# It calculates 25 + 12, and 25 - 12.
#
.globl main # Make main global so you can refer to
# it by name in QtSPIM.
.text # This line tells the computer this is the
# text section of the program
# (No data contained here).
main: # Program actually starts here.
ori $t2, $0, 25 # Register $t2 gets 25
ori $t3, $0, 12 # Register $t3 gets 12
add $t4, $t2, $t3 # Register $t3 gets 25 + 12
sub $t5, $t2, $t3 # Register $t5 gets 25 - 12
ori $v0, $0, 10 # Sets $v0 to "10" so when syscall is executed, program will exit.
syscall # Exit.
This program loads constant values into two temporary registers $t2 and $t3, using the ori command.
Here is a handy list of MIPS-32 commands:
http://www.mrc.uidaho.edu/mrc/people/jff/digital/MIPSir.html
The MIPS-32 Register file contains 32 registers - each is 32 bits long. Here is a list of them and how they're used:
http://msdn.microsoft.com/en-us/library/ms253512%28v=vs.80%29.aspx
Now, back to the code:
The contents in $t2 and $t3 are added and that value gets stored in another register, $t4. Then the contents of $t3 are subtracted from the contents of $t2, then stored in $t5. After all the work is done, register $v0 is set to "10", which is the code for "EXIT". Then the program exits.
Here, in a nutshell, is how to quickly write a MIPS-32 program and run it in QtSPIM:
1) Write your program in a similar style as I have above. You can do this in any text editor. Save the file as YOUR_FILENAME.asm .
2) Start QtSPIM. Under the "simulator" menu, select "clear registers". You should see some values "zero out" in the "register window" along the left-hand side of the QtSPIM panel.
3) Under the "File" menu, select "load file". A file browser window will pop up - locate your .asm file and select it. The program should load into QtSPIM.
4) Under the "Simulator" menu, select "Run Parameters". Enter "0x00400024" - without the quotation marks, into the box entitled "address or label to start running program". This simply tells QtSPIM which line your code starts on, since there is other initialization code that appears whenever you start QtSPIM. That code ends with a syscall at address 0x00400020.
5) Under the "Registers" menu, select "decimal". This will display the values in your register as normal base 10 (decimal) numbers, which helps us to easily verify that the math is being done according to design.
6) Using the single-step button seen in the second picture below, step through the program. You can also use "F10" on your keyboard - you may find this more convenient. Each time you click the button, note what happens to the values in each of the registers in the left hand window, as well as the program counter.
Note, too, that both the program counter and the register address increments by 4; this makes sense because a MIPS-32 register is 32 bits, or 4 bytes, long. Gotta love it when real-world experience actually matches what's in the book :)
The sequence of pictures below show the program as I stepped through it.
Ready, get set ...
Now, we start stepping through the program:
As we step, the "ori" instructions load constants into the registers in preparation for some simple math.
Addition completed:
Now, the subtraction just completed:
Program finished running:
I would like to add that the creator of SPIM, Jim Larus, was of great help in answering my questions and emails during the installation of QtSPIM on my Fedora box. Mr. Larus is a true gentleman and has created a really cool and useful application - and I wanted to voice my appreciation for his efforts here.
# http://inkarlslab.blogspot.com
# 09/16/2011
#
# A Demonstration of some simple MIPS instructions
# used to test QtSPIM.
#
#
#
# ori rt, rs, imm - Puts the bitwise OR of register rs and the
# zero-extended immediate into register rt => This is a
# trick for placing a constant into register rt.
#
# add rd, rs, rt - Puts the sum of registers rs and rt into register rd.
#
# sub rd, rs, rt - Puts difference of registers rs and rt into register rd.
#
# syscall - Register $v0 contains the number of the system
# call provided by QtSPIM - when $v0 is loaded with the value '10',
# this causes program to exit.
#
# It calculates 25 + 12, and 25 - 12.
#
.globl main # Make main global so you can refer to
# it by name in QtSPIM.
.text # This line tells the computer this is the
# text section of the program
# (No data contained here).
main: # Program actually starts here.
ori $t2, $0, 25 # Register $t2 gets 25
ori $t3, $0, 12 # Register $t3 gets 12
add $t4, $t2, $t3 # Register $t3 gets 25 + 12
sub $t5, $t2, $t3 # Register $t5 gets 25 - 12
ori $v0, $0, 10 # Sets $v0 to "10" so when syscall is executed, program will exit.
syscall # Exit.
This program loads constant values into two temporary registers $t2 and $t3, using the ori command.
Here is a handy list of MIPS-32 commands:
http://www.mrc.uidaho.edu/mrc/people/jff/digital/MIPSir.html
The MIPS-32 Register file contains 32 registers - each is 32 bits long. Here is a list of them and how they're used:
http://msdn.microsoft.com/en-us/library/ms253512%28v=vs.80%29.aspx
Now, back to the code:
The contents in $t2 and $t3 are added and that value gets stored in another register, $t4. Then the contents of $t3 are subtracted from the contents of $t2, then stored in $t5. After all the work is done, register $v0 is set to "10", which is the code for "EXIT". Then the program exits.
Here, in a nutshell, is how to quickly write a MIPS-32 program and run it in QtSPIM:
1) Write your program in a similar style as I have above. You can do this in any text editor. Save the file as YOUR_FILENAME.asm .
2) Start QtSPIM. Under the "simulator" menu, select "clear registers". You should see some values "zero out" in the "register window" along the left-hand side of the QtSPIM panel.
3) Under the "File" menu, select "load file". A file browser window will pop up - locate your .asm file and select it. The program should load into QtSPIM.
4) Under the "Simulator" menu, select "Run Parameters". Enter "0x00400024" - without the quotation marks, into the box entitled "address or label to start running program". This simply tells QtSPIM which line your code starts on, since there is other initialization code that appears whenever you start QtSPIM. That code ends with a syscall at address 0x00400020.
5) Under the "Registers" menu, select "decimal". This will display the values in your register as normal base 10 (decimal) numbers, which helps us to easily verify that the math is being done according to design.
6) Using the single-step button seen in the second picture below, step through the program. You can also use "F10" on your keyboard - you may find this more convenient. Each time you click the button, note what happens to the values in each of the registers in the left hand window, as well as the program counter.
Note, too, that both the program counter and the register address increments by 4; this makes sense because a MIPS-32 register is 32 bits, or 4 bytes, long. Gotta love it when real-world experience actually matches what's in the book :)
The sequence of pictures below show the program as I stepped through it.
Ready, get set ...
Now, we start stepping through the program:
As we step, the "ori" instructions load constants into the registers in preparation for some simple math.
Addition completed:
Now, the subtraction just completed:
Program finished running:
I would like to add that the creator of SPIM, Jim Larus, was of great help in answering my questions and emails during the installation of QtSPIM on my Fedora box. Mr. Larus is a true gentleman and has created a really cool and useful application - and I wanted to voice my appreciation for his efforts here.
Friday, September 9, 2011
SPIM In a LINUX Environment
In my last post I discussed MIPS 32 and the SPIM emulator for running MIPS 32 assembly code on your PC. Today I will briefly talk about how I got SPIM running in a LINUX environment. My earlier post is located at http://inkarlslab.blogspot.com/2011/09/spim-mips-32-bit-simulator.html
The problem I was having yesterday was in compiling SPIM on a Fedora system. I was getting this error message when running the makefile:
make: *** No rule to make target `../CPU/spim.h', needed by `spim.o'. Stop.
All the files were there and apparently in their proper folders, ...
I am still in communication with someone in attempt to get that figured out. The person helping me suggested I try installing the pre-compiled Debian binary. So I downloaded the 32-bit Debian file for QtSPIM from the following link:
SPIM MIPS Simulator Homepage - You can find more information and LINUX versions by going here.
http://spimsimulator.sourceforge.net/
I next unpacked it with the GNOME "File Roller" tool and extracted everything to the "SPIM" directory I had created earlier. Basically that's it. There are two ways to run QtSPIM from this installation.
Suppose you installed your "SPIM" directory in your home directory:
1) On the command line, simply navigate to the "SPIM" directory, then to "/usr", then to "/bin". NOTE that these /usr and /bin directories are NOT the same ones as are in your UNIX file system! Once you are in /bin, type qtspim to start the application, or
2) locate the SPIM/usr/bin folder via the GNOME desktop and click on the QtSPIM executable.
As you can see, QtSPIM is now running on a Fedora system. Having never tried to install a Debian executable on Fedora, I thought this was pretty cool.
The problem I was having yesterday was in compiling SPIM on a Fedora system. I was getting this error message when running the makefile:
make: *** No rule to make target `../CPU/spim.h', needed by `spim.o'. Stop.
All the files were there and apparently in their proper folders, ...
I am still in communication with someone in attempt to get that figured out. The person helping me suggested I try installing the pre-compiled Debian binary. So I downloaded the 32-bit Debian file for QtSPIM from the following link:
SPIM MIPS Simulator Homepage - You can find more information and LINUX versions by going here.
http://spimsimulator.sourceforge.net/
I next unpacked it with the GNOME "File Roller" tool and extracted everything to the "SPIM" directory I had created earlier. Basically that's it. There are two ways to run QtSPIM from this installation.
Suppose you installed your "SPIM" directory in your home directory:
1) On the command line, simply navigate to the "SPIM" directory, then to "/usr", then to "/bin". NOTE that these /usr and /bin directories are NOT the same ones as are in your UNIX file system! Once you are in /bin, type qtspim to start the application, or
2) locate the SPIM/usr/bin folder via the GNOME desktop and click on the QtSPIM executable.
As you can see, QtSPIM is now running on a Fedora system. Having never tried to install a Debian executable on Fedora, I thought this was pretty cool.
Thursday, September 8, 2011
Obtaining Parts and Supplies During The Great Recession
Most normal people are feeling some effects of the current economic mess, even if they are still employed. Given the war being actively waged upon the American middle class, many folks are having more and more trouble finding money to just pay for day to day needs - much less the parts to build or create new projects.
Plato (427 BC - 347 BC) said that "necessity is the mother of invention". During the 1930's - the Great Depression - folks built their own radios and other projects from whatever they could find around. Grandpa's "oatmeal box radio" is but one example. During WW2, prisoners of war actually built functioning crystal radios using razor blades, scrap wire and other bits and pieces they found. Here in my lab, I too have embraced some of the ways of my grandparents' generation. During the past year I have learned of a couple ways to quickly and efficiently recover components intact from used PC boards. This has already saved me considerable funds - some of which I have been able to invest in those few specialty parts that I could not find in my gleanings.
From two dead CDROM drives removed from computers I have salvaged the lasers, motor drives, and a few other semiconductor devices. I have set the laser diodes aside for future use in an experimental "free space" optical communications system. From a 56K modem card I salvaged all the parts I needed to make a telephone line interface for conference calls. Ham operators take note - the 600 ohm line transformer out of a modem works great in a phone patch circuit. Why pay $10 - $20 plus shipping for this component? Also on the modem card were the MOV surge suppressor devices, high voltage capacitors, ... needed to interface with telephone lines.
Computer power supplies yield transformers, bridge rectifiers, resistors, low and high voltage electrolytic caps, and assorted semiconductor devices. Even the metal case can be reused for certain projects - especially if looks aren't critical.
A dead computer can yield fans, heat sinks, connectors, and some surface-mount components. The case can be salvaged for the metal.
TV sets, VCRs, stereo components, home appliances and personal electronic devices yield all sorts of good, useful electronic and mechanical parts. High voltage experimenters and builders of small Tesla coils will likely want the flyback transformers and high voltage capacitors from TVs and CRT-type computer monitors. Get 'em now - these parts will become scarce in the next few years as flat screen monitors and TVs take over.
So, before you hand your old computer, TV, or any other appliances to be scrapped or recycled, check and see if there's something you could salvage off it and use before throwing it away. Those parts will either end up in a landfill or melted down anyway - so why not reuse them yourself?
Plato (427 BC - 347 BC) said that "necessity is the mother of invention". During the 1930's - the Great Depression - folks built their own radios and other projects from whatever they could find around. Grandpa's "oatmeal box radio" is but one example. During WW2, prisoners of war actually built functioning crystal radios using razor blades, scrap wire and other bits and pieces they found. Here in my lab, I too have embraced some of the ways of my grandparents' generation. During the past year I have learned of a couple ways to quickly and efficiently recover components intact from used PC boards. This has already saved me considerable funds - some of which I have been able to invest in those few specialty parts that I could not find in my gleanings.
From two dead CDROM drives removed from computers I have salvaged the lasers, motor drives, and a few other semiconductor devices. I have set the laser diodes aside for future use in an experimental "free space" optical communications system. From a 56K modem card I salvaged all the parts I needed to make a telephone line interface for conference calls. Ham operators take note - the 600 ohm line transformer out of a modem works great in a phone patch circuit. Why pay $10 - $20 plus shipping for this component? Also on the modem card were the MOV surge suppressor devices, high voltage capacitors, ... needed to interface with telephone lines.
Computer power supplies yield transformers, bridge rectifiers, resistors, low and high voltage electrolytic caps, and assorted semiconductor devices. Even the metal case can be reused for certain projects - especially if looks aren't critical.
A dead computer can yield fans, heat sinks, connectors, and some surface-mount components. The case can be salvaged for the metal.
TV sets, VCRs, stereo components, home appliances and personal electronic devices yield all sorts of good, useful electronic and mechanical parts. High voltage experimenters and builders of small Tesla coils will likely want the flyback transformers and high voltage capacitors from TVs and CRT-type computer monitors. Get 'em now - these parts will become scarce in the next few years as flat screen monitors and TVs take over.
So, before you hand your old computer, TV, or any other appliances to be scrapped or recycled, check and see if there's something you could salvage off it and use before throwing it away. Those parts will either end up in a landfill or melted down anyway - so why not reuse them yourself?
SPIM: MIPS 32-Bit Simulator
SPIM is a simulator that allows one to run programs in MIPS assembly language on one's own PC. Many college courses in computer architecture and engineering teach MIPS assembly language as part of the curriculum. MIPS stands for Microprocessor without Interlocked Pipeline Stages, and is an example of a RISC (Reduced Instruction Set Computer) architecture. MIPS is used in lots of embedded microprocessors, video game systems, some desktop workstations such as DEC (Digital Equipment Corporation) and SGI (Silicon Graphics, Inc.), and many other applications. MIPS based chips can be found in hand held computers and cell phones. There are both 32 bit and 64 bit versions of MIPS.
This semester, I am taking a computer hardware and architecture course and am getting prepared for our first MIPS 32 programming assignment. We will be using SPIM. SPIM is written by James Larus. You can find more information and downloads at the links below:
SPIM Sourceforge Project Page - You can download the Windows version conveniently here.
http://sourceforge.net/projects/spimsimulator/
SPIM MIPS Simulator Homepage - You can find more information and LINUX versions by going here.
http://spimsimulator.sourceforge.net/
From my understanding of the documentation, the more recent versions of SPIM are apparently called "QtSPIM".
The LINUX downloads there appear to cater to Debian and Ubuntu users. I am currently in the process of finding out what is available for those of us who use Fedora and other distros. Last night I attempted to compile SPIM directly from the source code onto my Fedora system, but to no avail. There is a problem with the makefile that I am currently trying to resolve. I have contacted some people about it, so as soon as I find out what is going on with that I'll post it here. Meanwhile, in the interest of quickly getting something going for the class, I loaded QtSPIM to my Windows VISTA partition from the first of the two links shown above. Here is a screenshot:
Note there are two windows open. One is the "console" window that shows any results or dialogs when the program runs. The "Qt" window shows you your source code, registers, and other relevant information.
This promises to be quite an interesting semester. Will write more as things progress.
This semester, I am taking a computer hardware and architecture course and am getting prepared for our first MIPS 32 programming assignment. We will be using SPIM. SPIM is written by James Larus. You can find more information and downloads at the links below:
SPIM Sourceforge Project Page - You can download the Windows version conveniently here.
http://sourceforge.net/projects/spimsimulator/
SPIM MIPS Simulator Homepage - You can find more information and LINUX versions by going here.
http://spimsimulator.sourceforge.net/
From my understanding of the documentation, the more recent versions of SPIM are apparently called "QtSPIM".
The LINUX downloads there appear to cater to Debian and Ubuntu users. I am currently in the process of finding out what is available for those of us who use Fedora and other distros. Last night I attempted to compile SPIM directly from the source code onto my Fedora system, but to no avail. There is a problem with the makefile that I am currently trying to resolve. I have contacted some people about it, so as soon as I find out what is going on with that I'll post it here. Meanwhile, in the interest of quickly getting something going for the class, I loaded QtSPIM to my Windows VISTA partition from the first of the two links shown above. Here is a screenshot:
Note there are two windows open. One is the "console" window that shows any results or dialogs when the program runs. The "Qt" window shows you your source code, registers, and other relevant information.
This promises to be quite an interesting semester. Will write more as things progress.
Monday, September 5, 2011
More on Making a PVC Pipe Archery Bow
Regular readers of this blog will recall the piece I wrote about my experimental PVC archery bow. I wanted to see if one could actually produce a longbow type archery bow easily and cheaply using PVC. Between family, school, and other demands I have not gotten out to shoot it yet. See my previous post here:
http://inkarlslab.blogspot.com/2011/06/homemade-pvc-pipe-archery-bow.html
While doing some research a couple weeks ago I stumbled upon this interesting you-tube video. It details how to make a PVC bow that is considerably more elaborate than the one I made and wrote about. It's owner claims 60 pounds draw weight - quite respectable, in my opinion.
http://themanscave.com/hunting-outdoors/pvc-bow/
There are plenty of sites online that deal with PVC as a cheap and readily available material for making archery bows. Here is a quick distillation of what I have learned:
USE EYE PROTECTION when shooting ANY archery bow!! Any bow made of any material could potentially break. This could cause eye injury, depending on where the pieces fly. I've also heard of strings breaking and swatting people in the face, too.
1) While PVC will work, it does NOT have the speed or the "snap" of wood or fiberglass. In other words, when the string is released, a PVC bow of a given design and draw weight will take slightly longer to return to the relaxed position. Thus it will not produce as much arrow velocity as other materials.
2) PVC will develop a "memory", or "take a set", if it is left strung all the time. Thus, one should always unstring the bow when not in use.
3) On ANY "traditional" style bow, you want a brace height of 6" - 7". The brace height is the measurement between the string and the handle - in this case as measured at the middle of the bow. I should adjust mine by shortening the string slightly; the brace height is about 4.5".
4) The "composite" design of "Themancave's" bow offers the advantage of better speed due to the fiberglass rod core. Doing as he said by using a 1/2" pipe slipped inside a 3/4" pipe might also help protect against breakage - though I'd use soap or lanolin instead of petroleum based oil as the assembly lubricant.
5) If you paint PVC as "Themanscave" did, beware that the solvents in the paint will eat into the PVC and weaken it somewhat. Krylon and Rust-Oleum both make a spray primer for PVC. This primer is supposed to help the paint bind to the PVC. I'm currently using that on my own PVC projects to hopefully avoid the paint flaking I've experienced in the past.
6) As I mentioned in my previous post on this topic, PVC gets quite brittle at temperatures below the mid 40's Fahrenheit. So don't try to shoot it in cold weather. PVC also degrades due to UV exposure - so don't leave your PVC bow exposed to sunlight when not in use. Painting your bow will protect it from UV exposure, but as I mentioned above the paint itself will weaken the material slightly.
While PVC does have certain disadvantages as pointed out above, it can be a viable way to obtain a bow quite cheaply and easily, and also might prove to be a useful emergency technology in a survival situation.
If any readers have made and used a PVC bow, I'd love to hear from you. In a future post I plan to cover simple "home and hardware store" materials to use for making bowstrings.
http://inkarlslab.blogspot.com/2011/06/homemade-pvc-pipe-archery-bow.html
While doing some research a couple weeks ago I stumbled upon this interesting you-tube video. It details how to make a PVC bow that is considerably more elaborate than the one I made and wrote about. It's owner claims 60 pounds draw weight - quite respectable, in my opinion.
http://themanscave.com/hunting-outdoors/pvc-bow/
There are plenty of sites online that deal with PVC as a cheap and readily available material for making archery bows. Here is a quick distillation of what I have learned:
USE EYE PROTECTION when shooting ANY archery bow!! Any bow made of any material could potentially break. This could cause eye injury, depending on where the pieces fly. I've also heard of strings breaking and swatting people in the face, too.
1) While PVC will work, it does NOT have the speed or the "snap" of wood or fiberglass. In other words, when the string is released, a PVC bow of a given design and draw weight will take slightly longer to return to the relaxed position. Thus it will not produce as much arrow velocity as other materials.
2) PVC will develop a "memory", or "take a set", if it is left strung all the time. Thus, one should always unstring the bow when not in use.
3) On ANY "traditional" style bow, you want a brace height of 6" - 7". The brace height is the measurement between the string and the handle - in this case as measured at the middle of the bow. I should adjust mine by shortening the string slightly; the brace height is about 4.5".
4) The "composite" design of "Themancave's" bow offers the advantage of better speed due to the fiberglass rod core. Doing as he said by using a 1/2" pipe slipped inside a 3/4" pipe might also help protect against breakage - though I'd use soap or lanolin instead of petroleum based oil as the assembly lubricant.
5) If you paint PVC as "Themanscave" did, beware that the solvents in the paint will eat into the PVC and weaken it somewhat. Krylon and Rust-Oleum both make a spray primer for PVC. This primer is supposed to help the paint bind to the PVC. I'm currently using that on my own PVC projects to hopefully avoid the paint flaking I've experienced in the past.
6) As I mentioned in my previous post on this topic, PVC gets quite brittle at temperatures below the mid 40's Fahrenheit. So don't try to shoot it in cold weather. PVC also degrades due to UV exposure - so don't leave your PVC bow exposed to sunlight when not in use. Painting your bow will protect it from UV exposure, but as I mentioned above the paint itself will weaken the material slightly.
While PVC does have certain disadvantages as pointed out above, it can be a viable way to obtain a bow quite cheaply and easily, and also might prove to be a useful emergency technology in a survival situation.
If any readers have made and used a PVC bow, I'd love to hear from you. In a future post I plan to cover simple "home and hardware store" materials to use for making bowstrings.
Sunday, September 4, 2011
Some Insight Into The Mindset of GNOME3 Developers
I have written about the GNOME3 desktop environment in a couple recent posts. Richard Jones, a computer programmer, wrote a short blog piece about GNOME3 today. He posted a link to an actual conversation between Owen Taylor (from Red Hat) and two GNOME developers. Definitely an interesting and eye-opening 10 minutes of reading for any GNOME user.
http://rwmj.wordpress.com/2011/09/04/more-gnome-3-inanity/
My $ 0.02:
What I come away with from Mr. Jones's and Mr. Taylor's posts is the GNOME developers are basically focused on how THEY use GNOME; they are not necessarily mindful of how the rest of us work within the environment.
College business and marketing professors have taught that businesses who ignored indicators of what the market wanted and was buying did so to their own peril. Personal experience and observations in the real world bear this out - one does NOT need a degree in business to figure this out.
Having taken computer programming classes in college, I can attest to the level of thinking acuity required to produce a piece of software. Building something as complex as an entire GUI environment - like GNOME - is no small feat. My hat's off to anyone who can do it.
These guys aren't stupid - I just hope they get the wax out of their ears, and soon.
http://rwmj.wordpress.com/2011/09/04/more-gnome-3-inanity/
My $ 0.02:
What I come away with from Mr. Jones's and Mr. Taylor's posts is the GNOME developers are basically focused on how THEY use GNOME; they are not necessarily mindful of how the rest of us work within the environment.
College business and marketing professors have taught that businesses who ignored indicators of what the market wanted and was buying did so to their own peril. Personal experience and observations in the real world bear this out - one does NOT need a degree in business to figure this out.
Having taken computer programming classes in college, I can attest to the level of thinking acuity required to produce a piece of software. Building something as complex as an entire GUI environment - like GNOME - is no small feat. My hat's off to anyone who can do it.
These guys aren't stupid - I just hope they get the wax out of their ears, and soon.
Labels:
GNOME 3.0,
GNOME3,
LINUX,
Red Hat,
Ubuntu Software Update
Friday, August 26, 2011
Does Mozilla have a Death Wish?
Yesterday afternoon, when I started my lab PC and logged onto the Internet, I discovered that Firefox had automatically updated itself to the next version. I had stayed with the 3.6.xx versions of Firefox out of concern that some of my add-ons wouldn't work under FF 4 or 5. Indeed, there has been a BUNCH of complaining online about such compatibility issues with the newer Firefox releases. Since I had been running 3.6.18, it updated to 3.6.20. As a result, java runtime didn't work any more. Oddly, flash ran great, but no java. I checked the mozilla plugins directory; the symlinks to the flash and java plugins were there. All looked well, but no java. So I tried removing the symlink to java and re-creating that. Still no success.
I have spent all afternoon today looking through online forums, uninstalling, and reinstalling Firefox - all to no avail. I downloaded, unzipped, and attempted to install Firefox 6, but the install scripts wouldn't work. No info available on this from Mozilla or any other forum I checked online.
Tonight I performed a clean install of Firefox 5.0. Oddly, there was NO mozilla plugins directory created in the process. I used the mkdir command and created my own mozilla plugins directory. Therein I created the symlinks to the flash player and java plugins. Flash works great on you-tube but java is still broken, so I can't access my online college courses using Firefox. And classes start next Monday.
Mozilla's troubleshooting guides, forums, ... are silent on this. And of course, there's nobody to yell at.
THANKS, Mozilla!!
I'll be testing Opera 11 and Google Chrome this weekend - though I've heard terrible things about the security of both these products.
As things sit right now I have the choice of a buggy, insecure operating system (Windows) with a fully functioning web browser(IE 9), or a good, relatively secure operating system (LINUX) and a lousy, broken web browser. Great way to start a new semester.
Sorry, but I HAVE to ask:
Does Mozilla have a death wish? Are they being paid by Micro$oft to torpedo the competition?? Is their management really as clueless as they appear??? Have they become "pod people" - occupied by alien body snatchers????
I don't have the answers to these burning questions. If any of my readers have any insight into this madness, I'd love to hear about it in the comments section. I'm absolutely stumped!
What I do know is that folks who work for a living and/or have other "mission critical" activities they are doing (Graduate school, in my case) do NOT HAVE TIME TO WASTE ON THIS NONSENSE!!!!
I seriously think Mozilla may have to lose most of its user base before they wise up. Many folks will simply take the easy way out and put up with M$ IE, rather than fight this kind of hassle. That would be a crying shame, as Firefox and LINUX were indeed a pretty unbeatable combination until recently.
I have spent all afternoon today looking through online forums, uninstalling, and reinstalling Firefox - all to no avail. I downloaded, unzipped, and attempted to install Firefox 6, but the install scripts wouldn't work. No info available on this from Mozilla or any other forum I checked online.
Tonight I performed a clean install of Firefox 5.0. Oddly, there was NO mozilla plugins directory created in the process. I used the mkdir command and created my own mozilla plugins directory. Therein I created the symlinks to the flash player and java plugins. Flash works great on you-tube but java is still broken, so I can't access my online college courses using Firefox. And classes start next Monday.
Mozilla's troubleshooting guides, forums, ... are silent on this. And of course, there's nobody to yell at.
THANKS, Mozilla!!
I'll be testing Opera 11 and Google Chrome this weekend - though I've heard terrible things about the security of both these products.
As things sit right now I have the choice of a buggy, insecure operating system (Windows) with a fully functioning web browser(IE 9), or a good, relatively secure operating system (LINUX) and a lousy, broken web browser. Great way to start a new semester.
Sorry, but I HAVE to ask:
Does Mozilla have a death wish? Are they being paid by Micro$oft to torpedo the competition?? Is their management really as clueless as they appear??? Have they become "pod people" - occupied by alien body snatchers????
I don't have the answers to these burning questions. If any of my readers have any insight into this madness, I'd love to hear about it in the comments section. I'm absolutely stumped!
What I do know is that folks who work for a living and/or have other "mission critical" activities they are doing (Graduate school, in my case) do NOT HAVE TIME TO WASTE ON THIS NONSENSE!!!!
I seriously think Mozilla may have to lose most of its user base before they wise up. Many folks will simply take the easy way out and put up with M$ IE, rather than fight this kind of hassle. That would be a crying shame, as Firefox and LINUX were indeed a pretty unbeatable combination until recently.
Saturday, July 23, 2011
Using Screen Capture Utility in GNOME 3
If you have used the screen capture utility in GNOME 3, you are probably aware that you cannot simply have the "Windows" or "Applications" screen active and call up the screen capture applet at the same time. When you call up the screen capture applet, the menu window you are trying to photograph will close and return you to the main desktop. Here's the workaround I used to take the screen capture photos shown in my last blog post.
When you have the GNOME screen capture applet open, there is an item called "Grab after a delay of ___ seconds". What I did was to set the delay for about 10 seconds, then click "Take Screenshot". The screen capture applet recedes to the background and the computer now acts as though nothing is happening. This allows plenty of time to navigate to the menu to be photographed and get everything poised for the picture. The capture applet dialogue window pops back up as soon as the capture occurs and you can then save your capture to a file.
This also works with GNOME 2.
When you have the GNOME screen capture applet open, there is an item called "Grab after a delay of ___ seconds". What I did was to set the delay for about 10 seconds, then click "Take Screenshot". The screen capture applet recedes to the background and the computer now acts as though nothing is happening. This allows plenty of time to navigate to the menu to be photographed and get everything poised for the picture. The capture applet dialogue window pops back up as soon as the capture occurs and you can then save your capture to a file.
This also works with GNOME 2.
GNOME 3 and Fedora 15 On The Laptop
Ubuntu Made Me Do It:
A couple weeks ago, right before a homework assignment was due in my fiber optics technology class, Ubuntu 10.10 prompted me that software updates were available. Since several of those were rated as important security patches, I decided to run the updater and apply the updates. That was a major error in judgment on my part, as it turned out.
After running the updater and rebooting the machine as prompted, all my network settings were obliterated. Even the wi-fi driver I occasionally use to connect to the school network was gone!! No amount of fiddling with it would even restore the wired Ethernet so I could download and re-install the wi-fi driver. I then got online with the desktop PC here in my lab and checked for anybody else reporting these sorts of problems. Indeed, several folks have reported Ubuntu as having "bricked" their computers while running the update applet. I gave up on it, completed the homework on my lab PC, and got it submitted just in time.
THANKS, Canonical! Next time, can you work on reliable functionality before worrying about re-doing the desktop graphics? Please??
I have to say this is the first time since switching to LINUX full time that I have suffered a "catastrophic", irrecoverable failure of key software components.
Fedora 15 and GNOME 3
After the school crisis was over, I was still faced with repairing the laptop. I quickly decided a complete wipe and re-install of the OS was my best option.
Regular readers of my blog have seen my last post regarding GNOME 3 and Firefox 4. I still stand behind those comments. However, in view of my recent Ubuntu experience and those of many folks online, I decided to take the plunge and install the Fedora 15 'live' distro that I had recently downloaded and tested. The installation went smoothly. In fact, Fedora already had the wi-fi chip set driver for my machine, so I didn't have to download it separately. Very cool!! I plugged the machine into my home network using an Ethernet cable. Within a couple hours, I had installed nearly all my favorite applications from Fedora's repositories. I've been using this machine for a couple weeks and so far it seems solid. Nice work, Fedora - if I may say so.
GNOME 3 - while it took some getting used to, I learned to navigate it quickly enough. If certain issues are resolved, I could live with it and probably even learn to like it. For right now GNOME 2 is by far and away more usable. A very useful utility for improving the functionality of GNOME 3 is the GNOME Tweak Tool. See the link below for a blog that probably explains better than I can, and in fewer words, how to install and use the GNOME Tweak tool.
http://www.java-javafx.com/2011/07/ask-your-gnome-3-more.html
Having used GNOME 3 a bit, I mention the following items that still need work for this environment to really function well:
1) GNOME 3 apparently does not allow me to change my desktop resolution setting to anything other than my screen's "native" resolution. This caused several of the dialog boxes in Libre Office to be virtually unusable because some of the click buttons fell below the bottom of the screen. I was forced to run GNOME 3 in "fallback" mode (more on this later) just to fully use my office software!!! Take a look at this mess in the picture below:
2) GNOME 3 does not appear to allow one to keep folders on the desktop. I like to keep a few often-used folders on the desktop so I don't have to paw through my home directory looking for them.
3) In GNOME 3, certain items such as "firewall", "software updates", and "network connections" that should go into the "system" menu are instead placed into the "other" menu. This counter-intuitive arrangement is a time waster until one gets oriented to it. Even if you remember where all your apps are now, there's really no predicting where GNOME "Add/Remove Software" will install any new ones you may download later. Ideally you should be allowed to either tell it which menu you want your apps filed under, or else be able to move them yourself later.
A Couple Quick Pointers
Favorites Toolbar:
From the GNOME 3 desktop, mouse click on "Activities" in the upper left hand corner of the screen. This opens a screen where a "Windows" menu (NOT to be confused with any Microsoft products) and a "Applications" menu appear in the upper left hand corner of the screen. Selecting "Windows" will show a toolbar - called the "Favorites" toolbar - running up the left-hand side of the screen. By default, there is Firefox web browser and a small handful of other apps. To add to this toolbar, simply go to the "Applications" menu, find what you want from one of the sub-menus on the right-hand side of the screen, right-click on it and choose "Add to Favorites". You can see in one of the pictures below how I have customized mine. To remove something from the "favorites" toolbar, simply right-click on it and select "remove from favorites".
Fallback Mode:
If, like me, you have one or more applications that don't get along well with the new GNOME 3 regime, there IS a way to revert to something approximating GNOME 2. From "Activities", go to "Applications", then look for the "System Tools" sub-menu. Find "System Settings" and click on it. Find the "System Info" icon - it looks like a star washer - and click on it. Select the "Graphics" drop-down menu. You should see a button called "Forced Fallback Mode". Click on that and it will turn blue and say "ON". Now, simply log out (you do NOT have to reboot), then log back in. GNOME should now be in "fallback" mode which will look and feel sort of like a GNOME 2 desktop. Unfortunately, "fallback" mode still doesn't appear to allow one to keep folders on the desktop.
You can see "fallback" mode in the screen capture below:
Fallback mode, from what I have read, apparently will be deprecated in the relatively near future. I just hope they get the problems worked out before this happens.
Labels:
fallback mode,
Fedora 15,
GNOME 3.0,
Ubuntu Software Update
Tuesday, July 5, 2011
Form Should Follow Function: Designers of Anything, Please Read and Heed
Once in a great while, someone comes up with something not merely innovative, but truly revolutionary. A good example is the extended cab, a.k.a. "supercab", or "quad cab" pickup truck. Prior to this innovation, pickup trucks had zero room in the cab for storage of personal items and were decidedly uncomfortable to ride in. Yes, there were "crew cabs", but those are huge and ungainly beasts to park or maneuver - especially if it has the 8' bed. For those of us who don't need to haul 6 roughnecks out to work in an oil field, the "extended" cab is a great alternative: It offers the extra lockable and dry storage space, seating options, and breathing room that make for a much more comfortable and functional vehicle than a standard cab pickup. In short, the person who came up with this was a true thinker, a true innovator, who made a genuine improvement to a product that had not appreciably changed in decades.
Regarding computers, true innovation came with the GUI interface, the mouse, desktop and laptop form factors, ... All of these have made computing available and usable to most people - including non-techies. Laptops and wi-fi have brought a degree of mobility and functionality to computing not envisioned prior to 20 years ago.
Form should follow function - things don't work as well when we place form ABOVE function.
More recently, computer users have been barraged with many not-so-useful changes - ones I argue are mere changes to form that really don't amount to any improved functionality. Two glaring examples that come to mind are the new Firefox 4 and now 5 web browser and LINUX's GNOME 3 desktop.
Firefox 4+: Change for Change's Sake?
Over the past several years I have greatly enjoyed using Firefox for my web browsing in both Windows and LINUX environments. I loved have the same great web browser with the same settings and the same bookmarks both on my Windows PC at work and my LINUX machine here at home. As new software revisions of Firefox came and went, the basic layout and drop-down menus stayed pretty much the same. Starting with Firefox 4, however, they took away the toolbars and drop-down menus we have all known and used for years. Rather than being able to perform the upgrade to the next version and resume work, we now have to relearn where everything is. Furthermore I am reading online of many people complaining that their browser plugins no longer work in Firefox 4, and that Firefox 4 has memory leaks that weren't there in the 3.6.X releases.
Mozilla, I have just three simple questions for you:
1) How has the functionality of your product been improved in the latest 4.0 and 5.0 releases?
2) What do you intend to do as far as restoring the functionality of broken plugins that folks have used and come to depend on prior to this?
3) What (if anything) has been improved in FF5, and what is to be gained through the short revision/release cycles you mentioned in a recent press release? I'd love to hear the rationale behind this.
It's too bad that even Opera has fallen for this foolishness and changed their interface to match that of Firefox. Sticking with the tried-and-true "classic" format might have given them a boost in market share. Just because one entity does something does NOT mean the whole herd must follow!
When I was a kid and said "why can't I do _________? So-and-so gets to do it.", my mom would reply "Karl, if your friend jumped off a bridge or ran out in front of a car, would you do it too, just because he did?" There's a lesson in there; it's a shame more companies, institutions, and even individuals, haven't learned it.
GNOME 3 or iPhone?
Last week, I tested Fedora Core 15 LINUX 'live' CD release. Given the large number of bug fixes I have seen on FC 14, I'm sure there have been plenty of issues fixed in FC 15. GNOME 3 is the desktop environment that ships with FC 15. Again, as with Firefox 4.0+, they have removed the familiar drop down menus and replaced them with an interface that reminds me of an iPad/iPhone or an "Android" device. While this is cool on a hand held device, I really don't care for it on my desktop or laptop PC. It is also interesting to note that some folks have taken to "hacking" GNOME 3 in attempt to recreate the setup they had on GNOME 2. I'd have screenshots of GNOME 3's menus on this page, but they cleverly fixed the screenshot applet so that it won't work within the various menu screens when running from the 'live' CD.
Thank you - GNOME developers - That was truly "innovative".
GNOME Developers - I beg you to answer the following:
1) HOW will this change made my computing experience more productive v.s. GNOME 2?
2) Will these changes affect any of the applications I now run and depend upon to do my work?
Akin to Fake Plastic Pop Rivets
The changes to Firefox and GNOME I have described herein remind me of the fake plastic pop-rivets I'm seeing lately on new models of certain brands of pickup trucks. No doubt some misguided automotive designer thought these would give the truck a "tough" appearance that would appeal to a certain demographic. What I see is a bunch of phony trim that will collect all manner of dirt and crud, and be more difficult to wax - since one will need a Q-tip swab to dig these deposits out of all these unneeded crevices. I suspect that in northern climates where road salts are used the trim may even exacerbate body rust-through. Thus, it can be argued that even the function of the vehicle has been slightly impaired by the junk trim. At trade-in time these vehicles may even have a lower resale value due to their dated appearance that likely will NOT be in style by then.
As a graphic artist I know says "Form should follow function - therein lies good design."
The world would run much better if more people heeded that.
Regarding computers, true innovation came with the GUI interface, the mouse, desktop and laptop form factors, ... All of these have made computing available and usable to most people - including non-techies. Laptops and wi-fi have brought a degree of mobility and functionality to computing not envisioned prior to 20 years ago.
Form should follow function - things don't work as well when we place form ABOVE function.
More recently, computer users have been barraged with many not-so-useful changes - ones I argue are mere changes to form that really don't amount to any improved functionality. Two glaring examples that come to mind are the new Firefox 4 and now 5 web browser and LINUX's GNOME 3 desktop.
Firefox 4+: Change for Change's Sake?
Over the past several years I have greatly enjoyed using Firefox for my web browsing in both Windows and LINUX environments. I loved have the same great web browser with the same settings and the same bookmarks both on my Windows PC at work and my LINUX machine here at home. As new software revisions of Firefox came and went, the basic layout and drop-down menus stayed pretty much the same. Starting with Firefox 4, however, they took away the toolbars and drop-down menus we have all known and used for years. Rather than being able to perform the upgrade to the next version and resume work, we now have to relearn where everything is. Furthermore I am reading online of many people complaining that their browser plugins no longer work in Firefox 4, and that Firefox 4 has memory leaks that weren't there in the 3.6.X releases.
Mozilla, I have just three simple questions for you:
1) How has the functionality of your product been improved in the latest 4.0 and 5.0 releases?
2) What do you intend to do as far as restoring the functionality of broken plugins that folks have used and come to depend on prior to this?
3) What (if anything) has been improved in FF5, and what is to be gained through the short revision/release cycles you mentioned in a recent press release? I'd love to hear the rationale behind this.
It's too bad that even Opera has fallen for this foolishness and changed their interface to match that of Firefox. Sticking with the tried-and-true "classic" format might have given them a boost in market share. Just because one entity does something does NOT mean the whole herd must follow!
When I was a kid and said "why can't I do _________? So-and-so gets to do it.", my mom would reply "Karl, if your friend jumped off a bridge or ran out in front of a car, would you do it too, just because he did?" There's a lesson in there; it's a shame more companies, institutions, and even individuals, haven't learned it.
GNOME 3 or iPhone?
Last week, I tested Fedora Core 15 LINUX 'live' CD release. Given the large number of bug fixes I have seen on FC 14, I'm sure there have been plenty of issues fixed in FC 15. GNOME 3 is the desktop environment that ships with FC 15. Again, as with Firefox 4.0+, they have removed the familiar drop down menus and replaced them with an interface that reminds me of an iPad/iPhone or an "Android" device. While this is cool on a hand held device, I really don't care for it on my desktop or laptop PC. It is also interesting to note that some folks have taken to "hacking" GNOME 3 in attempt to recreate the setup they had on GNOME 2. I'd have screenshots of GNOME 3's menus on this page, but they cleverly fixed the screenshot applet so that it won't work within the various menu screens when running from the 'live' CD.
GNOME Developers - I beg you to answer the following:
1) HOW will this change made my computing experience more productive v.s. GNOME 2?
2) Will these changes affect any of the applications I now run and depend upon to do my work?
Akin to Fake Plastic Pop Rivets
The changes to Firefox and GNOME I have described herein remind me of the fake plastic pop-rivets I'm seeing lately on new models of certain brands of pickup trucks. No doubt some misguided automotive designer thought these would give the truck a "tough" appearance that would appeal to a certain demographic. What I see is a bunch of phony trim that will collect all manner of dirt and crud, and be more difficult to wax - since one will need a Q-tip swab to dig these deposits out of all these unneeded crevices. I suspect that in northern climates where road salts are used the trim may even exacerbate body rust-through. Thus, it can be argued that even the function of the vehicle has been slightly impaired by the junk trim. At trade-in time these vehicles may even have a lower resale value due to their dated appearance that likely will NOT be in style by then.
As a graphic artist I know says "Form should follow function - therein lies good design."
The world would run much better if more people heeded that.
Labels:
Fedora LINUX,
Firefox 4.0,
Firefox web browser,
GNOME 3.0
Friday, June 24, 2011
My First Test Video With Digital Still Camera
I have owned a 5 mega-pixel point and shoot digital camera for several years. Recently, for the first time, I tried it out in the "movie mode" to see how well it works for taking short videos.
While the resolution is underwhelming, it did work. As a cheap way of shooting demonstration videos for posting here or on you-tube, it will be adequate. In view of the memory used, I'll definitely want a larger memory card for the camera.
Friday, June 17, 2011
A Homemade PVC Pipe Archery Bow
For thousands of years, the bow and arrow have been used for both sport and survival hunting. Even today it is still used throughout the world. In America, it is primarily a sporting weapon, though occasionally it is still used for more serious purposes. For example, during the Vietnam conflict, American Marines were said to have used bows and arrows for relatively close situations where a quiet, discrete weapon was needed.
Ever since I was a boy, archery has fascinated me. I had never owned a bow nor did I have the opportunity to get instruction from anyone who could properly teach me. As an adult I fortunately was able to take archery at a local college. I did quite well in it and bought my first bow shortly before the end of the course. Since then, life intervened and I haven't shot a bow in years. While I still have my factory-made bow, I wanted to try something a bit different.
My Hardware Store Specials:
One goal of mine was to, as much as possible, stick with materials I could readily buy at any local hardware or home improvement store. When doing a project I try to avoid any hard-to-find or exotic stuff whenever I can.
I am currently doing two archery bow-building projects. Both of these are classified as "long bows", as opposed to a recurve or compound bow.
One is a "board bow" - so named as it is carved from a solid 6' piece of red oak 1" x 2" board. I have the rough shape cut out and am in the process of whittling it to its final shape. This is a painstaking process involving a draw-knife and/or a carpenter's plane. More on this project in a future post. I got the board for under $10 USD from the local Lowes Home Improvement Center.
In the picture above is another experiment I am doing - the PVC pipe bow. While handling some PVC pipe a while back, it occurred to me that given its springiness it should make a crude but effective bow. Some searches of Google and you-tube revealed numerous examples of folks who have made PVC bows. Many of them were of low draw weight and made by kids, but a few are of decent (40# or more) draw weight and made by adults. And so I made the one in the picture above. It consists of a 72" piece of 1.25" schedule 40 PVC pipe. The string is my own crude attempt at a "Flemish bowstring", made from 6 pieces of mason's line. I bought my mason's line from the local Home Depot for about $5 USD.
I haven't fired this bow yet, but I do have some arrows that are suitable for the approximate draw weight involved. In a future post I will give test results, draw weight measurements, ...
Meanwhile I have built a wooden stand for measuring the draw weight accurately and for "tillering" the board bow. "Tillering" is the process of shaping the limbs of the bow and adjusting their tension so that the bow is properly balanced.
A Word (or Two) of Warning:
If you decide to try this, BEWARE that PVC gets extremely brittle in cold temperatures! DO NOT try to use such a weapon at temperatures below 45 degrees F - it could shatter and injure you!!
Secondly, when messing around with unproven materials such as these, use some good, stout eye protection. If the string or the bow fails, you do not want the shrapnel going into your eye.
By the way: PVC pipe is great stuff; I've found all sorts of novel uses for it. PVC performs reasonably well up through VHF frequencies for winding loading coils for amateur radio antennas.
Granted, this has NOTHING to do with archery, but it is another valid re-purpose of a common commodity.
Subscribe to:
Posts (Atom)