Archive for the ‘Serious’ Category

Back online - and faster now!

Tuesday, February 23rd, 2010

Ok, the house move is complete, the DSL is back online. And faster now too :) I don’t think I’ll bother shifting the site off to one of the public hosting servers now :D 24 / 1 at almost full speed. If Amnet are using Annex M I can probably unbalance that a little in favor of the upload throughput given the signal strength :)

USA Outsourcing

Monday, February 15th, 2010

I recently started using eLance for some work I am doing, and I wanted to see how others use it. I opened a couple of projects from the main page and found this one. A US company outsourcing some IT work, fine. I’ve seen some US freelances on the site ranging in bids from $20ph to $100ph. Sounds reasonable enough to me, a little like Australia. Then the asian / indian market freelances are operating at $12 - $25ph. This was also no surprise. This one job posting that I opened here though, $2 PER HOUR?? Isn’t that a bit low? I agree with a freemarket economy, but I also agree with rewarding good people (it helps with retention of those people / good business, which makes life easier in a freemarket). I was surprised anyone would try to get something done for that amount. Maybe they’re going for quantity not quality…

Spotlight / mds CPU Usage on Mac OS X

Tuesday, January 5th, 2010

I recently upgraded my 10.5.4 OS to 10.5.8. I’d been putting off updating the OS for a while since it’s one of the installations that I know always requires a restart, and I hate restarting. Despite the fact that my mac regularly does stupid things that necessitate restarting (protected memory is really useless against protecting the OS from application crashes if there is no protection from an application consuming all available memory for starters).

Now I consistently have to put up with mds / mdsworker consuming my entire CPU. Even when it’s not, it is often spamming my hard drive, and since that is the slowest component in the computer anyway, my computer slows to a crawl again. mds is the process for spotlight that crawls the hard drive indexing the files. Apparently this situation can happen with a corrupt Spotlight database. This wouldn’t surprise me, because with my 200G hard drive, the Spotlight DB grows to 18G and doesn’t stop. I run out of space then, so I remove the DB for / and it starts all over again.

Now, I’ve noticed that mds is actually run by launchd (a variation of cron). And launchd actually allows limits to be specified:

launchd limit cpu 100

Limits the CPU usage to 100%. This should, in theory, help. In practice, it’s hard to tell. I can’t tell how the limit is achieved. If it’s an average, it would permit a spike of 150% if followed by a 50% usage interval of the same time. Then the question becomes how long the calculation envelope is (the time interval for the average) to determine how long a 150% CPU usage (more than 1 core) spike actually is. I don’t have the information. I can see that sometimes launchd / mds is still using >100% and sometimes it isn’t, but it moves too quick for me to see if the average is hitting 100% or not. Oh well, was worth the try I guess.

I have a feeling that running my CPU at full load and my HDD constantly being railed, and for some reason my GFX is getting worked over as well, resulting in system loads consistently above 2 and permanent temperatures above 70 degrees celsius for the CPU and GFX, is going to result in my HDD dying soon. I have everything important backed up, but I certainly won’t be forking out $3000 for another Mac Book Pro if that happens. I haven’t had any problems with Windows 7, and if I do, it won’t be unexpected so I’m prepared for a reformat in that case. And it will cost be $2k less.

New Server and ISPCP Exporting

Friday, November 13th, 2009

Well, I finally got around to moving this site (and the other test sites) off the old K6-2 300 and into a VM on a Core 2 Duo. There should be less downtime now, as it’s easier to manage!

 

The main delay was getting the import / export procedure for a domain in ISPCP correct. I now have a Perl script that will successfully export the mail and web files, and the SQL data for a domain from an ISPCP setup to a portable format that can be reimported on the other end. Yay!

 

I have posted the files on the ISPCP Forum if anyone wants to take a look. Actually, I’ve already made some minor bug fixes that I noticed after I released those versions, but I’m not going to bother updating them unless someone gives some feedback. If no one gives feedback, I’ll assume no one actually used them, and I’m not going to waste effort messing around with talking to myself on the internet - I do that enough here already ;)

Good Speech / Presentation Principles

Sunday, November 8th, 2009

Back when I was finishing high school, the TEE English subject required the demonstration of oral delivery capabilities of students. This was true oral delivery, not presentations with power point, although there is much overlap in the principles. Our teacher at the time gave us a handout that summarised these good principles. The handout was taken from a book, but the handout doesn’t have any indication as to the book it was taken from (it doesn’t even have page numbers!), and Google doesn’t pickup the text fragments. I tried to find another summary out that included such a good overview, but was surprised when I couldn’t. I’m sure if I altered my keywords and moved off the first couple of pages I could, but I type in excess of 100wpm when I want to, so it’s probably quicker to retype this. Here it is.

Manner of Speech

Our manner of delivery or the way we use speech may also affect how the message we send is received - it can either enhance the effectiveness of our speech or inhibit it. Our manner of speech is affected by the following:

  • Tone, or the emotional message of our speech. This reflects our attitide to and feelings about the subject.
  • Pitch, or the highness or lowness of speech sounds. he pitch of our voice affects its pleasnt appeal and therefore the listener’s willingness and ability to pay attention.
  • Intonation, or pattern or variations of pitch in speech. By varying intonation patterns we give certain aspects of what we say greater importance over others.
  • Pace, or the speed at which a person speaks. Well-paced speech is easy to listen to. By varying the pace we can control the degree of excitement we wish to communicate.
  • Loudness, or volume of seech. By altering the volume of what we say we can manipulate the audience’s attention.
  • Stress, or emphasis is given to syllables or words in a sentence. This helps our listener to sort out what is the most important idea or the most relevant evidence.
  • Rhythm, or pattern of a group of stresses. Creating rhythm gives empasis to what is being said and helps the listener to remember what is said, especially if the rhythm is pleasant.
  • Length, or time speech sounds last. If the length of speech sounds are well modified they are easy to listen to. By varying them we can affect the level of stress certain word and phrases carry and this can alter the over all meaning of what we have to say.
  • Body language, or non-verbal language, such as facial expressions (e.g. smiling to show agreement; frowning to show disagreement), gesture (e.g. use of the hands to mock or question), posture (e.g. way of standing to show confidence; leaning forward to stress a point), eye contact (e.g. winking to convey approval). Non-verbal language helps to provide an emotional context for what we have to say so that the listener can interpret the emotional significance of our message.
  • Word choice affects our manner of speech and often reflects our knowledge of our intended audience. We can alter the level of language or degree of formality by varying our vocabulary and choice of words. Words may be emotive if we wish to persuade, factual if we wish to inform or argue, imaginative and personal if we wish to create, technical if we wish to address an audience in a specialist field. Word choice is closely linked to a speaker’s purpose. Careful word choice will allow the speaker to convey their message as effectively as possible.
  • Structure of sentences: Sentences affect the clarity and coherence of our ideas. The presentation of our ideas can be made more or less effective by our choice of sentence structure. Our depth of meaning, degree of detail and the emotional impact of what we have to say can be altered by changing the way words are arranged in a sentence.
  • Sequencing of ideas: The order in which ideas are presented in our formal speech often reflects their importance to us. They may flow from the most to the least important or build up to a climax, usually with a closing summary at the end. If ideas are ordered logically they will create a succussful line of argument rather than merely state an opinion.

Making A Speech

Most people are afraid of public speaking. However, this fear and nervousness can be overcome by thorough preparation, taking control of the situation and by practice.

Preparation

First you need to be clear about the purpose of your speech. Most speeches aim to inform, persuade or entertain. Often speeches combine purposes.

Second, you need to know your audience. Ask yourself:

  • Who are they?
  • What are their backgrounds, abilities and education level?
  • What do they know?
  • What don’t they know?
  • What do they want to know?
  • What is their mood?
  • What are their biases, prejudices and interests?
  • How do they feel about an issue?

Third, think about the content of the speech. Ask yourself what it is you want to communicate. Collect as much detail as possible and other related material including pictures, anecdotes and examples. Consider the topic carefully and get your facts straight. Sequence your ideas logically, in a step-by-step or date / time order. Write your main points on cue cards with a brief summary of supporting details. It will help if you find a central theme for your speec.

Structure

Speeches usually follow the structure of an introduction, body and conclusion.

Introduction

  • Address the audience appropriately.
  • Give the audience a clear understanding of what you are going to talk about and why.
  • Make your opening concise and arresting. This can be achieved by a question for the audience to think about, visual aids, impressive facts and statistics, a personal anecdote or story, or a joke.

Body

  • Provide the audience with important factual material. Don’t be afraid to remind them of what they already know.
  • State the main points and provide support from either evidence, a well-reasoned argument, or an appeal to authority such as a member of parliament or an expert in a related field (e.g. a leading genetics engineer if your speech is about an hereditary illness).
  • Order your points in a way which will suit your audience’s knowledge and interests.
  • Points must have a logical structure (e.g. organised from the least to the most important).
  • Restate the points to ensure your autdience will remember them.
  • Use brief notes as memory checks for your main points and supporting details. Summary notes are best written on cue cards and should only contain one point per card.

Conclusion

  • Your conclusion must be memorable. Make it so by summarising the main points of your speech and finishing strongly by using a forceful tone of voice, a call for action, a quotation or an anecdote. For example, the conclusion of a successful persuassive speech should leave the audience with the blief that that is indeed the only conclusion which can be drawn.

Delivery

  • Stand quietly before an audience and pause before starting your speech. This helps to create tension by letting them wait and anticipate what is going to happen. (Hint: Make sure you have checked the microphone before you begin to speak).
  • Be aware of your body language. About 90 percent of your confidence in yourself and your task will be conveyed by non-verbal communication. Try to project an image of confidence, competence and enthusiasm. Use your eyes - the windows of your souls - to establish contact with your audience. Try to make each individual feel important and recognised. Use your hands to convey enthusiasm. If your are nervous, grip something.
  • Speak directly and fluently. You should aim to sound energetic, enthusaistic, friendly, and sincere. Vary your voice to keep the audience’s interest: by dropping the volume you can force the audience to listen intently; by raising it you can renew their interest. Slow down to make a point: by varying your tone and pace you will help your audience distinguish between points. Use pauses for emphasis.
  • Vary your standing position. Lean forward to be close to the audience. Assert your authority by standing up straight.
  • Smile - it will help you an your audience feel comfortable.
  • Give your speech emotional appeal by using emotive words which will engage the audience in a personal and positive way. This will enable you to communicate with your audience at both the feeling and thinking level.
  • Use humour to lighten your speech and make it more entertaining.
  • Enliven your speech with human interest details. By relating anecdotes based on personal experience you can make them real to the audience.
  • Keep your speech short to avoid over-taxing the audience’s attention span and letting boredom set in.
  • Rehearse your speech two or three times before you deliver it. Practise in front of friends or family using the video or tape recorder. Keep a close check on your timing. (While walking or jogging you could pactise creative visualisations of yourself successfully performing before your audience).
  • Use your intuition if you want to do something spontaeous like telling a story or joke. If it feels right, do it.
  • Before giving your speech anticipate any questions you may be asked. Always be polite to the person asking the question. If you do not have the detailed information that is requested (such as statistics), agree to provide it at a later date. Feedack is important to help you develop skills and confidence. Choose someone that you can trust to give you an honest appraisal. Don’t listen to feedback that is not constructive. If someone asks you to provide feedback praise the speaker in a few areas and then suggest one area that needs improvement.

Firefox: It Makes Me Angry

Monday, September 21st, 2009

I started using Firefox before it was Firefox. I think it was Firebird. The main reason I started using it was the tabbed browsing. Then they introduced the ability to restore tabs on startup. So now I use tabs as short-term bookmarks. In a given work-session I might open up 30 to 40 tabs. Unfortunately, since Firefox 2, Firefox will evntually gobble up all my unclaimed RAM (usually about 2G) and an entire CPU core. The more tabs I leave open, the faster this happens. It results in a huge slow down in Firefox (5 seconds to open a new tab, 1 second delays in entering text before it avtually appears) and an eventual application crash. When it crashes it doesn’t save the tabs properly and I lose the most recent ones (about the most recent 10 or so).

Additionally, why do I have to have Google as my start page? No, I don’t want to use my current tab. No, I don’t wan to use all of my current tabs. No, I don’t want to use a bookmark. I want to use a blank page, because the whole reason that I open a tab without an address is so that I can type one in! It’s a stupid application. I hate it. I hate it marginally less than Safari (actually, I like Safari, but it is too basic for web development and provides no method for extending the capability with extensions).

SCP With No Encryption: Why Not?

Tuesday, August 4th, 2009

I’ve read lots of forum posts recently where someone asks how to turn encryption off for an SSH session; specifically for an SCP transfer. Every one I’ve seen has been flamed for asking this. One common response I see is:

“the encryption doesn’t take up enough of the CPU to warrant the kind of exposure on a modern CPU, you’re probably I/O limited anyway”

GARBAGE. On my Via C3 Nehmiah @ 900Mhz (it’s a 1.2Ghz chip in a 100Mhz FSB capable motherboard hence the slowed clock), my CPU taps out at 3.7MB/s on a 100Mb/s network. An it taps out on the SSH daemon, not the I/O time. Using NFS I can pull 9 to 10MB/s at CPU tap-out. Encrypting at wire speed DOES take up significant CPU time. Normal SSH terminal connections, sure, negligible. Bulk SCP connections, it’s real. Just take a look at the performance measurements taken on a Via C3 on this Linux / Via Padlock OpenSSH enabling tutorial.

Modern distributions of linux (i.e. kernel 2.6.27+ based), seem to have patched the OpenSSH (and hence the SSHD) to use the hardware encryption on the Via chip (Padlock), and I can pull 9-10MB/s at CPU tap-out on that with SCP. A P3 733Mhz also taps out at 3.5MB/s with the same Linux (Ubuntu) though, so it’s definitely the software being optimized for the Via chip.

At the end of the day though, on my local LAN (wired), I don’t really care about the encryption of the file transfer. What I care about is the ubiquity of the SSH protocol. I’m also the only one using it to access files, so I’m not using it to replace NFS, I’m just using it to access my private files (which are sometimes quite large) using the already-configured ACL (PAM). Why can’t I disable the encryption for the SSH data transfer in V2? Sigh.

IBM Netfinity 3500 M20 Dual Core Hardware

Monday, July 27th, 2009

When I got a hold of one of these beasties, it only had 1 processor installed. The other socket had a terminator in it. I thought, “Cool, a REAL dual processor machine, I’ll just buy a matching P3 733 off eBay and have some fun!”. Wrong. The board only comes with 1 Voltage Regulator Module - for the primary proc. It’s the VRM that supplies power to the proc. Attempting to start without the secondary VRM but with 2 procs: no POST. No hardware was blown, it just didn’t POST. I had a lot of trouble finding this out, because I couldn’t get the correct technical manual for the M20 (all I could find on Google was the M10), and nothing about needing a secondary VRM was listed in the tech manual that I had.


So, off to eBay again, and no luck on getting one of these. At least, not under the guide of a part for an IBM M20. I Googled a bit and found a post on a technical help website indicating a similar problem. He said he’d used a VRM from a Compaq, and that it had worked. He gave the part number (Compaq spares code 329267-001) and whacked it into eBay. Hey prestor, there is one in the UK. I’m in Australia, so that’s a little annoying, but oh well, it’s only $30. I could spend more at a restaraunt, does it really matter if it doesn’t work. So I forked out the dough, the VRM arrived a week (fast airmail yay!), and I gave it a go. Result? It worked! I thought it was such a longshot, I certainly was (pleasantly) surprised when it worked :)

So anyway, I played with the server for a couple of days as a dual processor machine, and then packed it back away into my archive of computers. I’m such a hardware junkie ;)

Embedded CCTV With Linux

Monday, July 20th, 2009

Well, sort of. Apparently Zone Minder will do it. I downloaded the Live CD and tried it, and it wouldn’t boot properly (might be media problems). I couldn’t get it to finish booting. I found another Xubuntu based LiveCD but the system I was running it in only had 256MB of RAM and it didn’t like me installing SSH to get remove access. I’m not really sure why X11 is enabled on a LiveCD for a web application server. Oh well.

I finally discovered that Zoneminder is available in Debian sid (unstable). So I set about installing this. I got it all set up, it seems to work well (128M+ memory minimum, otherwise there are OOM issues). Unfortunately, it doesn’t seem to like my web cams. I have 2 USB web cams. One is a Creative WebCam NX Pro, and the other is a Logitech notebook web cam. Both are detected by the module auto-loader and have appropriate modules inserted. The Logitech camera completely fails in Zone Minder: The Zmu application fails to obtain the setting information from it. The Creative worked a little better, I was able to get all the settings except the Palette information. Unfortunately, neither V4Lv1 or V4Lv2 would give me a properl image. V4Lv1 gave me no image or just completely black (with no timestamp tag, so that means it was failing to obtain an image from the device). V4Lv2 gave me a “dirty” image; the image was half covered with moving horizontal lines and the rest of the screen was just black. Oh well. Guess I’ll give up on the Embedded CCTV with Linux project. It’s all fun though, I’m always looking for ways to use that old hardware! :)

A Little Bit Of Computing Hardware History

Tuesday, July 14th, 2009

A friend of mine needed a little story write-up, with pictures, of computer hardware history in the last 20 years. I Google’d to find something like this, and couldn’t. Most hardware history articles are something along the lines of “Computing began in World War 2 with supercomputers and has progressed steadily to personal computers and now to laptops”. Not really the granularity that he was looking for. I decided to take the photos myself - I have nearly 20 years of equipment in my house. That’s kind of a side effect of discovering Linux in the mid 1990’s - it ran on that hardware then, and still does :) I’ve decided to post the article, with pictures, here, so that it might be useful to someone else on Google. Take what I’ve written with a grain of salt though, it wasn’t written to be a scientific journal article, only as a quick overview!

CPU’s

Top to bottom, left to right
Intel 486 Overdrive, Intel Pentium 1, IBM Cyrix
Pentium 2
Intel Celeron, AMD Duron, Intel Pentium 3
Pentium 4 (1st generation – 400Mhz FSB), Pentium 4 (3rd generation – 800Mhz FSB)

Note the increase in physical packaging size as technical CPU advances exceeded the fabrication technology advancements and economically feasible. The initial Pentium 2 was not able to be manufactured in a single chip that was small enough and had enough pins to draw power with, and it was uneconomical to construct it out of a single chip that it was feasible to do at the time. Within 24 months, fabrication technology had caught up, and CPU’s were moved back to a single chip form and made smaller. Current (2009 Q2) Core 2 Duo’s are smaller than Pentium 4 chips. The size of the chip is directly proportional to the transistor size and number of transistor used. The number of transistors has been growing in accordance with Moore’s law, and the fabrication technology has been shrinking accordingly. The smallest transistor size of a current (2009 Q2) CPU is 45nm (mass production debuted late 2007 by Intel). The shift to 32nm is road-mapped for 2009 by Intel.

The transistor size has a direct impact on the thermal output of the CPU which peaked with the Pentium 4 at approximately 150 watts (Pentium 4 3.4Ghz). Early x86 generation CPU’s did not require heatsinks (286, 386). The 486 and Pentium required passive cooling. Higher model Pentium’s required active air cooling, which has been the norm ever since. Thermal dissipation was one of the key inhibitors in maintaining the increasing performance of single core computers.

HDD’s

From left to right: 3.5”, 2.5”, Solid state
Not shown: 5.25”, 1.8”

HDD’s have been a very slow moving technology from the physical packaging outset. Manufacturers of consumer are notorious at maintaining upwards interface compatibility. Almost all 3.5” drives are IDE, and the original IDE drives manufactured circa 1990 will still work in the most recent IDE computers of 2006 (but not vice versa). The consumer market changed the physical interface to SATA circa 2003.

The SCSI technology used in server computing (not shown) uses the same packaging, but has undergone several physical interface changes similar to CPU socket changes.

The fast moving trend is to make platter size smaller. 5.25”, 3.5”, 2.5” - now common in server computers – and 1.8” (now common in laptops). The platter size shrinkage has been done without platter storage capacity shrinkage, resulting in an increase in aureal density of the platter and corresponding throughput increase as reading the same physical size off the disk results in more bytes being read than before.

The long moving trend is away from mechanical devices to solid state devices, as fabrication technology for high-density storage microchips has become economically and technologically feasible in sizes large enough to be useful to end users (64G solid state devices are currently available as options in mainstream computers – 2009 Q2).

Motherboards

Bottom: Intel 468; CPU embedded on mainboard
Top, left to right: Pentium, Pentium 2, Pentium 3

Note the change in peripheral interfaces: ISA only in the 486, ISA / PCI combination in the Pentium and Pentium 2, and PCI only in the Pentium 3. Pentium 4 introduced PCI express, and current (2009 Q2) dual processor boards are moving to PCIe only. Mainboard manufacturers are evidently good at maintaining clear upgrade paths, maintaining backward compatibility with the previous generation of peripheral connectivity so that the user does not have to upgrade the whole system.

The other two user-replaceable componentry that has changed over the course of mainboard history is the CPU socket and RAM socket. This has been necessitated by the change in physical CPU and RAM interface presentation. The RAM interface changes are generally driven by changes in technology, while the change in CPU circuitry is often pre-emptive by the manufacturer. This was evident in the Pentium 2, when socket and slot versions were available: the physical interface was different, but the logical interface was not. Converters were made for mainboards so that newer socket processors could be fitted to older slot mainboards.

As of the Pentium 2, the power interface also changed. 386, 486 and Pentium mainboards operated using AT connections. The Pentium 2 introduced the ATX power specification that changed the physical interface. The Pentium 4 introduced an additional 12V power connector to allow the processor to draw extra power: The Pentium 2 power draw was in the area of 25 watts; the Pentium 4 reached 150 watts. Dual processor mainboards used an updated ATX specification that combined this 12V connector into the main power connection, and this is the currently (2009 Q2) used power specification.

Each physical change in RAM and CPU that has required changes to a mainbaord have also impacted the bus layout. Chip integration technology has also resulted in only 2 main chips on mainboards, starting with the Pentium line up. Note how the 486 mainboard has several prominent chips on it, while the other mainboards only have 2 (plus the CPU). These two chips are designated the south and north bridge chips after the logical location proximity to the CPU. The Northbridge interfaces between the CPU and the Southbridge, as well as providing the memory management chip and AGP interface control (and thus including a GPU on motherboards that include it). The Southbridge is responsible for peripheral I/O (USB, Serial, Parallel (ports), DMA, PCI, RTC). These chips are also usually located in the same physical proximity order as the logical proximity by mainboard designers in order to minimise physical bus tracks. The Southbridge is often near the peripheral ports, while the Northbridge is between the CPU and RAM: On the Pentium 2 mainboard shown, the Northbridge is just under the heatsink of the CPU, the Southbridge is right next to the PCI ports.

RAM

Top to bottom: EDO RAM SIMM, SDRAM DIMM, DDR SDRAM DIMM, DDR SDRAM SO-DIMM (chips in chronological order)

Physical chip size of RAM has increased since the 486 era. The chip density has increased faster, however, and thus the larger physical size is representative of an increase in size of an order of several magnitudes. Typical sizes per memory module were:
72pin EDO SIMM: 1 to 4MB
SD DIMM: 16 to 128MB
DDR DIMM: 64 to 512M (1st generation), 256 to 1G (2nd generation), 512M to 8G (current - 2009 Q2 – generation)

Small form factor DDR RAM is logically the same as normal DDR RAM, but uses smaller physical interface. Note the chip size is the same on the normal DDR RAM as it is on the full size DDR module. Small form factor modules only include 2 chips per side of the module, and thus have a smaller capacity than their full factor counterparts: The current (2009 Q2) maximum small form factor DDR RAM capacity is 4G, compared to 8G in the full size form.

The interface technology of RAM has changed with each generation, but the general construction has not. Memory is still accessed by row / column blocks of bits. Initial Single Inline Memory Modules had a single set of electrical contacts and required installation in pairs in order to present a logical memory banks. Dual Inline Memory Modules had two sets of electrical contacts; one per module side. This is the physical interface.

The Extended Data Output interface on SIMM’s brought burst mode technology. Synchronous Dynamic technology was introduced in the mainstream in the mid 1990’s coinciding with the Pentium 2. This interface allowed interleaving between modules to enable faster throughput. Double Data Rate SDRAM simply involves changing the way the electrical signal is delivered / interpreted; it transfers data on the rising and falling edge of a clock cycle. Other than that, it is the same as the SDRAM that was developed in the mid 1990’s.

Decreasing transistor size and more efficient chip layout software has enabled RAM chips to benefit from decreased latency (access time). Typical access time on a SIMM was 70ns+, current (2009 Q2) latency is in the order of 5ns. Latency has been under 10ns since DDR RAM was introduced circa 2001 however, and this reveals that improvements in RAM technology are stagnating compared to processor improvements.