Building a Micro Server – Part 2
EDITORS NOTE:
I started writing this quite some time ago. I’m not sure why I didn’t finished it, but I found it here, half written so I will finish what I started and and then maybe move on to other server related blog posts
Let cut straight to the part where I finally have all the parts to make a micro server (don’t get me started on UPS’ leave-it-at-the-door policy)…
For those of you who have built your own computers before this is likely nothing new. In fact, building a server, small or otherwise, is arguably easier since everything generally fits on one plane and finger contortions are not required.
For those of you who haven’t done this sort of thing before, don’t fret. If you can unscrew the battery cover on you kids favorite toy, then you are fully qualified to build a server.
Getting Started
Make yourself a comfortable work area. A kitchen table will do provided you cover it with adequate matting or a table cloth to prevent dings and scratches to the tables finish.
Ground yourself. This is kind of tricky at home but static shocks can do some serious damage to chips and boards. Ideally you want to be wearing a grounding strap that is connected to ground… but at home, occasionally touching the steel chassis of a toaster (cooled down) or microwave will help ensure you don’t hold a static charge. It can also help if you go barefoot as slippers and/or socks can build up excess static charges.

Before opening any of the boxes you want to look them over and then look them over again. Check for damage, check for correct serial numbers, cross reference everything with your order… look over those boxes with a fine tooth comb because once you have broken those seals those products are yours for good. Most electronics dealers are pretty strict on their return policies.
Taking Stock
Once you’ve given the boxes the once-over, you need to open each box and double check its contents are intact and all accounted for. Check for damage on each of the components. Compare what’s in the box with what’s in the manual. Count all your cables and so forth.

You also need to find out what tools you should have handy. You shouldn’t really need anything more then a Phillips screw driver, but you might find a few pairs of pliers useful as well. Even having a small toolbox full of little tools nearby won’t hurt.
The Server Case
It’s the thing that your going to stuff the other things into, so it makes sense that we start there. Unbox your server chassis, and if you haven’t done so already, give it and all it’s parts a once over.
If all looks well then open the chassis and familiarize yourself with the surroundings. Be sure to read the manual first. It’s just a few screws, but still. Once removed, put the cover in a safe place. You won’t be needing it for a while.

On the inside you should see a power supply (or a place for one if it’s not integrated), a control panel, some bundles wires, ribbon, etc… that’s pretty much it. So let’s move on.
Mounting the Mother Board
Locate the mounting stanchions on base of the server chassis:

Lower the motherboard into the case over these stanchions:

Position the motherboard carefully until the I/O lines up as it should:

Locate the mounting holes so that they are directly over the stanchions:

Carefully screw the motherboard into place:

Be sure to use all of the mounting points available to the motherboard.
Installing the CPU
Placing the CPU is likely the most critical part. There are a lot of pins you can mess up on both the chip itself and the socket that you are placing it into. So please do this with care, lining up the CPU in accordance with it’s keyed (nothced) placement:

Next you want to close the cover (1) and lock it into place (2). Don’t force it. If it doesn’t feel right then make sure that it’s positioned properly.

What’s next?
That’s all we’re going to cover for part 2. In part 3 we’ll cover installing the special CPU fan, RAM and the hard drive. In part 4 we’ll cover cable connections, powering the bus, booting and the BIOS.
In future posts I’ll cover installing Ubuntu Server, administration, ssh, web serving and file serving and tying it all in with a Mac.
Get All Active IP Addresses on the Network
I am writing this post for my own sanity and not for anything of great importance to anyone else. Every time I change my networking setup — as would be the case right now, in the midst of me moving into the new office — I always lose my server. I don’t lose it as in can’t physically find it, I just lose it on the network.
Each time this happens I go searching for the bash commands to aid in the finding of my server. I need the IP address for my server because I don’t use it like I would any other machine with a keyboard and monitor — I access the server with secure shell or ssh.
I keep thinking that I wrote this all down (or blogged about it) but that never seems to be the case, so here goes…
To find or discover all the active IP addresses (and their MAC addresses) on the network:
$ arp -a
Once I’ve found the IP I am after (i.e. 10.0.1.5 or 192.168.2.5) I am free to ssh into it with:
$ ssh username@10.0.1.5
Apache mod_rewrite, PHP and OS X 10.6 Snow Leopard
Getting mod_rewrite to work on your mac (i.e. locally) can be a bit of a trick if you’ve never bothered to try before. This was the case with me just last week. I am in the process of rewriting my CMS for seyDesign which will rely heavily on $_GET queries. I still want users to be able to link to their favorite pages with easy-to-read and remember “flat” URL’s so I needed to be able rewrite links like this:
http://seydesign.com/index.php?page=themes&product=123
…so that they appear in the users address bar like this:
http://seydesign.com/themes/Creami3/
The best way to do this is with the Apache module, mod_rewrite. I won’t get into how exactly to use it here, but you should be able to use mod_rewrite both on your remote server and on your local machine. For instance, the above two examples, when viewed from the localhost would look like this:
http://localhost/index.php?page=themes&product=123
…which, for the viewer, converts to:
http://localhost/themes/Creami3/
Using mod_rewrite in MAMP, my preferred AMP stack for local development, was simple enough as MAMP is preconfigured to do so. But since I use MAMP for testing support cases, and since I knew that the new new seydesign build will be an on-going project, I decided to move it onto the built in web stack on Mac OS X 10.6 Snow Leopard, to give it a permanent home I could access at any time.
The trouble for me arose when I tried to use mod_rewrite on the built in OS X web stack. It seems that the permission to use mod_rewrite, or at least to set the rules from .htaccess, are forbidden. In addition, PHP is disabled by default (I can’t very well write $_GET queries without PHP).
Every resource I found online had me editing the /etc/apache2/httpd.conf file, which is all well and good until Apple comes along and updates the Apache install.
A better approach, I feel, is to make any changes to the user config file and leave the default httpd.conf alone. So the first thing I did was open this file (replace username with your user name):
/etc/apache2/users/username.conf
By default, its content should look like this:
<Directory "/Users/username/Sites/">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
To get PHP running and mod_rewrite to work you need to make a few changes. For starters, if you notice in the /etc/apache2/httpd.conf file, this line is commented out:
# LoadModule php5_module libexec/apache2/libphp5.so
So let’s add that to out own config file and uncomment it, so our username.conf file now looks like this:
LoadModule php5_module libexec/apache2/libphp5.so
<Directory "/Users/username/Sites/">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
It will make our life easiest if we point to DocumentRoot our way as opposed to where the httpd.conf file points, /Library/WebServer/Documents. In my case, it’s /Users/username/Sites/build/seyDesign2011 but you can make it where ever you like. We also want to change our directory to match, so our username.conf file now looks like this:
LoadModule php5_module libexec/apache2/libphp5.so
DocumentRoot "/Users/username/where/ever/you/like"
<Directory "/Users/username/where/ever/you/like">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
To get mod_rewrite to work from .htaccess we need to do two more things; we need to add +FollowSymLinks or FollowSymLinks to our options and we need to change the AllowOverride setting to All.
Our username.conf file should now looks like this:
LoadModule php5_module libexec/apache2/libphp5.so
DocumentRoot "/Users/username/where/ever/you/like"
<Directory "/Users/username/where/ever/you/like">
Options Indexes MultiViews +FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
And that’s it. Once you have enabled web sharing in System Preferences > Sharing (or restarted apache from the command line, sudo apachectl restart), you are free to create your mod_rewrite rules to your hearts content from an .htaccess file served up on http://localhost/.
Unstick the Stuck File in Finders Trash
Ever get a file stuck in the trash with no way to empty it? You know that message you get when you try and empty the trash:
Can’t complete the operation because the item “ABC.XYZ” is in use.
If you look for a solution online you are often told to hold the option key while selecting Finder > Empty Trash (⌥⇧⌘⌫), or just reboot. While the first option never works, the second option does but seriously, how practical is that?
So here are two terminal commands to help you a) track down what application is holding the files hostage or b) properly force the trash to empty.
This first command, where filename is the name and extension of the file being held hostage, shows you what app or process has it’s death grip on that file:
lsof | grep filename
The second command, should all else fail, allows you to perform a proper force-empty trash:
rm -rf ~/.Trash
Screws Needed for Wifi and Bluetooth Card
I just installed a bluetooth card and Airport Extreme card in my first generation Mac Pro. It’s actually fairly simple once you know where to look (using this article as a basic guide). What I did have trouble with is finding out what size of mounting screw was required. I ordered both cards from DV Warehouse but I guess I failed to inquire about mounting hardware.
An exhaustive search online revealed nothing about the thread size so I took the smallest machine screw I had (about an M2.5) and wondered down to Huron Fasteners and told them I needed something smaller. They gave me a sample M2 to take home and try and sure enough that was the right size.
So for anyone else looking for this information, a first generation Mac Pro requires “M2-0.4 x 4″ mounting screws to install a wifi and bluetooth card. Hope this helps.
To read more about the actual installation, read this article — How To: Installing an Airport Extreme Card in an Intel Mac Pro « Meandering Passage.
New Level of Geekdom — Executable Business Cards
I am a bit of a business card junkie and a moo card junkie at that, so any excuse to print more is a good enough excuse for me. When Chris showed me this inspired design a few weeks back, I had to get them printed.
The idea is that as web professionals, our websites are our business cards, and those small bits of paper we hand out are just little notes to tell people to go there. So why not play with that idea, bringing a piece of the web to our cards. It’s not a completely original idea, you can find a few examples out there, but I’ve yet to see an executable business card (granted I haven’t really looked all that hard).
Chris’ original concept had the contact info in HTML, but it didn’t really say “me”. So I set out to make something a little more fun — an executable business card with all the code required to run my contact info in a web browser. Fun huh? Glad you thought so.
So if you’re interested in making your own executable business card (as a number of people have expressed already), I’ve made the source code available here, and you can see how it runs here. Use it as a spring board to do something really cool.
Panic Blog » Saving Icons for Snow Leopard
Obsessive designer? You may have noticed: icons made in Mac OS X 10.6 are often washed-out/lighter.
Normally we create .png files of each icon state, then drag them into Icon Composer. But, starting with 10.6, the colors would lighten unexpectedly. It wasn’t dramatic, but with certain icons (like the one below) it was totally noticeable. The source is on the left. See how the red is washed out in the final icon on the right?
W3C Unicorn Bookmarklets
With the just fresh news of the W3C’s new Unicorn validator I thought I would jump right in and make myself a couple of new bookmaklets to utilize the new validation platform. I thought I could share them with you.
- The General Conformance Check (drag to bookmarks bar): Unicorn-GC
- The CSS Profile Validation (drag to bookmarks bar): Unicorn-CSS
- The MobileOK Checker (drag to bookmarks bar): Unicorn-MB
- The Feed Validator (drag to bookmarks bar): Unicorn-FD
How to Get iOS4 to Sync Your Photos
Since I went through the arduous, two hour long process of upgrading my iPhone OS to iOS 4, I’ve been nothing but thrilled with what felt like a brand new iPhone 3G. There was just one exception; I couldn’t sync my photos.
I don’t store music on my iPhone. I have little in the way of apps. I don’t keep voice recordings. I use the bulk of my iPhone’s 8 GB of storage space to carry my photos — lots of them.
As an avid photographer I have tens of thousand of photos digitally stored on my Mac Pro going back as early as 2003 (when I started scanning my film onto disk), so I wouldn’t expect my iPhone 3G to carry all that, but prior to the update to iOS 4 I was at least able to sync the photos from 2009 and 2010 (just over 3000 images). Any attempts — 3 thus far — to get any photos on my iPhone resulted hours of, “Syncing seyDoggy’s iPhone” and a candy striped status bar with no progress to report. I literally left it run overnight and woke to no advance in the process.
Clearly something was amiss with iOS 4 so I sought to solve this mystery myself. It took one quick look into the Pictures library where I was drawing these two folders from (2009 and 2010) and noticed a folder called “iPod Photo Cache”. Trashed it. Quickly looked in any other folder I may have synced with my iPhone in the past and trashed them as well.
Back in iTunes I attempted another sync and without blinking an eye, iTunes and my iPhone ticked happily along syncing my photos to phone once again. A quick search on Google for delete “iPod Photo Cache” iOS4 turns up oodles of results of others with similar syncing problems, so I clearly was not alone.
Hopefully this helps you out.
jQuery Demo for April’s KWDM
This thursday, at Waterloo Region Web Design & Technology Group (#kwdm on Twitter), I had the opportunity to give an introductory look at jQuery and some of it basic notions. Here is what I presented. If you wish to follow along, you can download the source code for this particular demonstration.
Please keep in mind that in no way is this intended to be instructional, nor are these real world examples. This is merely to quickly illustrate a series of features and functions to give a gist of how quickly one might pick up jQuery.
Also note that if you plan on streaming this video, you may find the subtitles a little out of sync. If you want the truest experience you should be able to download the video from Vimeo.
If you are truly interested in learning more about jQuery, please consider the following:
Resources
jQuery.com – http://jquery.com
Documentation – http://docs.jquery.com/Main_Page
Tutorials – http://docs.jquery.com/Tutorials
Forums – http://docs.jquery.com/Discussion
Visual cheat sheet – http://woork.blogspot.com/2009/09/jquery-visual-cheat-sheet.html
Videos – http://blog.themeforest.net/screencasts/jquery-for-absolute-beginners-video-series/
Recommended reading:
jQuery in Action
http://www.manning.com/bibeault/
ISBN:978-1933988351
jQuery, Novice to Ninja
http://www.sitepoint.com/books/jquery1/
ISBN: 978-0-9805768-5-6

