eddorre

Found 15 posts tagged with 'how to'

Standardizing Next and Previous Tab Commands in OS X

January 25, 2009 — 0 Comments

I use a lot of tabbed applications. OS X’s Terminal, Safari and Firefox come to mind. Each of these applications have a keyboard shortcut for moving between tabs; COMMAND+SHIFT+] to move forward and COMMAND+SHIFT+[ to move backwards.

There are some apps that don’t conform to this standard; Adium, Propane, and TextMate and it drives me nuts. Why can’t they all be standard? Well, actually they can using OS X to override the application specific command.

Below are some instructions and a screenshot of how to do this.

  • In order to do this first open up the System Preferences applet and click on Keyboard & Mouse.
  • Scroll down and select Application Keyboard Shortcuts
  • Click the + button
  • Select your application from the Application menu
  • Type in the menu title of the shortcut (for example, to move forward a tab in TextMate it’s Next File Tab
  • Type in the shortcut in the shortcut field and click Add

Mac OS X Keyboard System Preferences

Connecting a Wii using WPA2 and a Complex Password

January 10, 2009 — 6 Comments

I recently upgraded my 802.11n wireless bridge/access point to a D-Link 802.11n so that I could have better download speeds when streaming video content to my Xbox or PS3. The concept of this device is simple, connect all of your devices to it via Ethernet and the bridge connects to the wireless network.

Unfortunately, the D-Link bridge doesn’t like to connect to Access Points/routers that are not broadcasting their SSIDs. This was a problem for me because I had set my Apple Airport Extreme (I still hate that name – Extreme? Really? I thought we got over that in the 90s) not to broadcast my SSID.

I’ve known for a while that not broadcasting your SSID isn’t really a security measure as it only discourages wireless network snooping. Anyone that really wants to hack into your wireless network, will know how to bypass that. In order to have real wireless network security your Access point should be using WPA or WPA2 with AES encryption and a very strong password. I should note that your SSID should never be something real world. Never your physical address, social security number, family last name, etc.

With this in mind, I allowed my Access Point to broadcast the SSID and then changed my wireless password to be 63 characters long.

After the change, the D-Link bridge was up and running but my Nintendo Wii decided to have a fit and not connect anymore. Fortunately, there is a fix.

Apparently the Wii has a problem connecting to Access Points using WPA/WPA2 when using a really large password.

I found this out by attempting to type the 63 character password (TIP: use a USB keyboard do to this as entering it with the Wii remote is likely to drive people insane) and having it fail. Then I tried a simple password of testtest (changed on both my wireless Access Point and my Wii). When I changed it to use a simple password, I was able to connect.

That set me Googling in the right direction. Where I found the information on WiiChat.com and then buried on Nintendo’s own tech support forums.

Basically, the problem is this: Passwords that are 63 characters are supposed to be hashed down to a 64 hex digit key and then sent off the Access Point for authentication. Unfortunately, the Wii fails to do this as it’s a broken implementation of how keys are transmitted to an Access Point.

What Zorach found out was that you can fake out the Wii by entering in the hex key yourself instead of the password. In order to generate the hex key, he used Joris van Rantwijk’s site an entered in his password and SSID to generate the key.

Now if entering a password and SSID into a random page on the Internet is sounding alarm bells in your head, well good, you’re getting as paranoid as I am. However, I’ve looked at the Javascript code and there there is nothing funky going on. If you want to be really paranoid, save the source of the HTML file locally, disconnect from the Internet and then run it in the browser.

Type in the hex key that is generated into your Wii and it should work. I should note, that in my situation, I did have to do one more thing; I set the IP information on the Wii statically as it would not download the information via DHCP.

A shout out goes to the user Zorach for linking the information, Messowires for linking to Zorach’s post and Joris van Rantwijk making it easy for people to generate a hex key from a password.

Displaying Git Branch Name with Bash at Command Line

December 21, 2008 — 1 Comment

When you’re first introduced to Git, you’ll probably just be working in your master branch, but eventually you’ll want to test some experimental feature in your code base without disturbing the master branch. Git makes this a snap to do with the command “git checkout -b branchname”.

If you’re working on a few experimental features at a time, each with their own branch name, it gets a little confusing as to which branch you’re currently working in. Of course, you could just type in the commands “git branch” or “git status” but there is an easier way to keep track of what branch you’re actively working in.

Robby posted an excellent article titled Lighthouse tickets and Git branching that helps him and others at Planet Argon with their workflow during the day. By appending the Git branch name to the end of the command line prompt, he’s able to instantly recognize which branch he’s currently working in.

Unfortunately, he doesn’t tell you how he achieved that feat. After Googling for a bit, I came up with a solution that worked for me. NOTE: Robby is using the z shell (zsh) and I’m using the built in shell with OS X; bash. My solution works with bash and not zsh.

First, I created a .bash_profile file by running the following command from my home directory: “touch .bash_profile”.

Then I modified the contents of the file to include the following:


function parse_git_branch() {
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/'
}
PS1="\h:\w \u\$(parse_git_branch)$ "

When I’m in a directory that isn’t source controlled via Git, the command line will appear normal:

skyrocket:~ carlos$

Otherwise, it will display the following:

skyrocket:~/work/eddorreblog carlos(master)$

Although I’m using the notation “hostname:working_directory username” you can modify it to your liking using the Bash Prompt HOWTO.

Navigating the Command Line in Terminal.app

December 21, 2008 — 0 Comments

I recently switched back to using Apple’s built in Terminal.app (I was using iTerm previously) program for all of my command line needs. There are tons of keyboard shortcuts when you’re using bash but there are a few that are especially handy to have memorized.

  • CTRL-A: Goes to the beginning of the line
  • CTRL-E: Goes to the end of the line

Sometimes you want to get to the middle of the line instead of heading to the beginning or to the end. These will help:

  • OPTION/ALT-B: Jumps cursor back
  • OPTION/ALT-F: Jumps cursor forward

There is one caveat though. The first time I tried the OPTION key trick, the Terminal would just type in strange characters. In order to get Terminal to recognize the OPTION/ALT key as a command key you have to check the option for “Use option as meta key” in the preferences pane of the Terminal app. Once that is done, the Option key shortcuts will work.

Terminal Preferences

Thanks to Alex (aka @demonbane) for showing me this trick.

There are ton of shortcuts for the bash shell but these are among my favorites/most used.

Using SSH Keys for Remote Logins

March 27, 2008 — 0 Comments

When I had Windows servers at home, I would use the Remote Desktop tool to remotely login and manage everything from my Windows workstation.

Now that all of my servers have been converted over to Linux, I use the time honored tradition of using SSH to login and manage everything from my Macs (iMac and MacBook). Although with 5 Linux servers, it gets quite tiring typing in your password to authenticate each and every time I want to connect. Above and beyond that, password-less SSH logins come in handy when you have backup scripts running or when you’re deploying applications using Capistrano.

You can avoid pitfall by using SSH keys that are generated on your workstation and then stored on your servers.

I should note that this method doesn’t make your systems more secure, in fact it makes security weaker. If someone were to get a hold of your private keys, they could automatically login to any servers that use this method! Use at your own risk.

As I’ve said, I’m using my Mac as a client (specifically OS X Leopard) so these instructions are written with that client in mind. With that being said, I’m sure that the instructions can easily be ported to Linux or *BSD with minimal effort.

Open up a terminal window and type in “ssh-keygen -t [rsa|dsa]”. You can choose either RSA encryption or DSA encryption. As to which one is better, that’s open for debate. For my application, either one is equally suitable. One thing seems to be certain in my cursory research; RSA key generation is slower that DSA, but RSA is faster when verifying. For the rest of the example, I’ll be using an RSA key pair.

Once you run the ssh-keygen command, it will start generating a public and private key pair. You’ll be prompted to save the private key, I would choose the default which would normally be something like this: /Users/[username]/.ssh/id_rsa.

After choosing the directory where the private key is stored, you’ll be prompted for a passphrase. This is the passphrase for the private key and as such you’ll want to choose a strong passphrase. Something like, “I wouldn’t vote for Hillary for all of the tea in China!” Again, make this as strong as possible and DO NOT FORGET IT!

Once that has been completed, you should have two files in the directory that you chose earlier; a public key (id_rsa.pub) and a private key (id_rsa).

This public key now has to be copied to the server. You can do this with one command: "cat .ssh/id_rsa.pub | ssh [username]@[servername] “cat >> .ssh/authorized_keys”. Since the public key hasn’t been copied, you’ll have to enter in your password for the remote server. This should be the last time that you’ll need to do that if everything has gone well.

One last thing, if you want a deeper understanding of encryption, decryption and public key cryptography the book, Cryptography Decrypted, is an excellent resource.

Creating a Ringtone from a Song for your iPhone

December 28, 2007 — 0 Comments

With the latest version of the iPhone software, you can once again create ringtones for your iPhone for free. As to how long this will last is unknown, but for the moment it will work.

In order for the following steps to work the following have to be true:

  • The song cannot have DRM on it (meaning you can’t have bought it from the iTunes Music Store)
  • You must be using firmware 1.1.2 on your iPhone
  • You must be using iTunes 7.5
  • Ringtones should be between 30-40 seconds long

Creating the Ringtone

  • Open iTunes
  • Highlight the song that you want to use as a ringtone
  • Right-click on the song and select Get Info
  • Click on the Options section (Options Tab in Windows)
  • Enter in the start time and end time that you want (remember the 30-40 second rule)
  • Right-click on the song and select Convert Selection to AAC or Convert Selection to MP3. By doing this, you’ll have a new 30-40 second clip in iTunes (the song will automatically start playing)
  • Select the new 30-40 song selection, right-click on it and select Show in Finder (Show in Windows Explorer in the Windows version of iTunes)
  • Copy the file to the desktop
  • Go back to iTunes, right-click on the 30-40 song selection and select Delete (click the Remove button in Windows)
  • Opt to move the files to the trash (Recycle Bin in Windows)
  • Go to your desktop, and rename the file changing the extension from mp3/m4a to m4r
  • Double-click the file and it will import into the ringtones section of iTunes

Got Reverse DNS?

November 17, 2007 — 0 Comments

As an email administrator, I’ll sometimes get complaints that my email server is blocking legitimate messages. In about 90% of the cases, the culprit is a misconfiguration of the sender’s DNS servers.

The reason that it’s DNS instead of a mail server configuration? Reverse DNS is the answer. Reverse DNS or RDNS is widely used by email administrators to block spam messages coming from personal computers that are acting as zombies as they will always fail a reverse DNS check. Unfortunately, small and medium sized businesses that don’t have the luxury of having on-site mail administrators sometimes get caught by the RDNS trap as well. For those, fixing the DNS issues is vital to their continued business.

Here is how it all works.

Let’s say that I have cable Internet access through Cable Internet Company X and my poor Windows PC has been unwittingly turned into a zombie by a virus. From this point on it’s starting to send out spam messages to the Internet. For the sake of the example, we’ll say that my IP address is 85.105.64.87 (note: this is an actual IP address that was blocked by my Postfix server).

When a connection attempt is made to a mail server that is doing RDNS checking, the server will attempt to lookup the name that corresponds to that IP address.

If you have a * nix machine, you can do a reverse lookup by using the dig program. dig -x [ip address]. This this case, dig -x 85.105.64.87 returns the following:

87.64.105.85.in-addr.arpa. 85395 IN PTR dsl.static851056487.ttnet.net.tr.

I should note that if there is no PTR record for that address, then the RDNS check fails right here! This is actually where most legitimate servers get blocked since you can’t use GoDaddy or Register.com to create PTR records. You have to go through your ISP to have those created. However, in our example, there is a PTR record so the check continues.

Using the PTR information, the mail server will then do a forward lookup for the address dsl.static851056487.ttnet.net.tr. On a *nix machine a forward lookup is done by typing in dig [hostname].

In order for a RDNS check to be completely successful, the A record would return the IP address for the PTR record. These have to match! In the case of our example, the A record should point to 85.105.64.87. The dig program reveals something else instead:

dsl.static851056487.ttnet.net.tr. IN A

Notice that there is no IP address after the “A” part? This is a failure.

A valid set of DNS records would be similar to the following:

“A” Record:

mail.eddorre.com. IN A 192.168.1.1

PTR” Record:

1.1.168.192.in-addr.arpa. IN PTR mail.eddorre.com.

If legitimate email is being blocked because of a Reverse DNS check failure then make sure that you have done the following:

  • Make sure that your mail server has a static public IP address
  • Make sure that there is an A record pointing to the static public IP address. I usually create one by adding “mail.” to the domain name. For example: mail.eddorre.com. I should note that you can create an A record using your domain registrar’s DNS utilities. You don’t need your ISP to do this for you
  • Call your ISP and have them create a PTR record for your static public IP. The PTR record should point to the name you chose in step 2

Ta-da List Widget Password Fix

October 22, 2007 — 0 Comments

A few months ago, I started looking for a to do list manager for my Mac. My requirements were few: It needed to be mobile (I could access it from anywhere), and it needed to be free.

I could have very well built my own web application to do this, but I didn’t want another project on my plate. With that in mind, I settled on 37Signals’ Ta-da List. It’s easy to use and it’s free. Most importantly, since it’s web based, it’s completely mobile. However, the web based feature is a two-edged sword.

It’s mobile, but I’m tied to a web browser every time I want to run the application. Sometimes, I just want to open a widget and see what tasks I have left to do for what projects.

Enter the Ta-Da List widget for Mac OS X. The software allows you to get and post information to the Ta-Da List web application without launching your browser. Just what I needed. Except it didn’t work.

I would login using the web application and it would work fine but when I tried to login using the widget, I would get an authentication error. Unfortunately, the widget (like most widgets) don’t have any debugging functionality built into it so I couldn’t tell why my authentication information was being rejected.

Last night, I was determined to solve this issue. I fired up tcpdump (tcpdump -i en1 -vvv -n -s 0 -w ~/Desktop/DumpFile.dmp) and then logged into tadalist.com using the browser. Once I logged in successfully, I stopped the packet capture.

I then fired off another tcpdump (same command as before with the exception of the file name: (DumpFile2.dmp)) to analyze what the Ta-da List widget was sending back and forth.

I found that the difference between the two was the way that the widget was sending the password to the server. With the web application, the password was URL Encoded so that it properly translated symbols for web use. With the widget, they weren’t. Since my password has has symbols in it, this was making the authentication check fail (numbers and letters don’t need to be translated).

Luckily, the Ta-da List widget isn’t a compiled application and most of the code is in Javascript files that you can freely access and modify.

The code for the widget is stored in /Users/[your login name]/Library/Widgets/Ta-Da Lists.wdgt/scripts/. If you want to view the files in widget, right click on the Ta-Da Lists icon and select Show Package Contents.

The file that needs to be fixed is tada.js. I URL encoded the password right
before it’s sent to the server with this line:

conn.connect(url, "POST", "username="+getUsername()+"&password="+escape(getPassword()), loggedIn);

But you can encode it directly in the getPassword function like so:

function getPassword() { return escape(widget.preferenceForKey("password")); }

After, I made this change, the widget started working correctly. According to the tcpdumps, the password being sent in it’s URL encoded form to the server (as one would imagine).

Linux to Xbox 360 Audio and Video Streaming

September 04, 2007 — 0 Comments

I’ve been wanting to build a file server that would centralize all of my media files so that I could play them from anywhere on my home network. In the old days, I would have picked a version of Windows Server as the Operating System for the PC, but I’ve been steadily moving forward with plans to go Windows free and that wouldn’t have fit in the plans.

Since I’ve standardized all of my other servers on Debian Linux, I decided that I would do the same for the new file server as well. During the time that I was buying components for the new PC, I bought an Xbox 360 Elite to go with our new HDTV (Sharp Aquos 46").

Shortly after, I found out that you could stream audio and video to the Xbox using XP or Vista. “Well, damn”, I thought to myself. “I might have to go with Windows after all.” However, one look at the price of Windows Vista or Windows Server changed my mind. I started researching alternatives that would work on Linux.

It turns out that all you need is software that provides UPnP media devices (which the Xbox is) with information on available multimedia files and there are plenty to choose from.

Xboxmediacenter.com has a list of both commercial and free offerings on their site under the entry of UPnP Sharing.

After a bit of research and some trial time, I decided on TwonkyVision’s TwonkyMedia software. While the software is not free, at 29.95 € (euros) it’s something that is palatable to my financial tastes.

The DLNA certified software runs on Mac, Windows, Linux. It also supports a large number of media formats and it’s easy to install on Linux. In addition to that, it comes with a web-based administration console making a snap to add your media.

There are some issues that I’ve experienced. First, it doesn’t seem to work in a routed environment. I think that this might be more of an issue with the UPnP protocol than the software itself though.

I have also encountered some buggyness streaming music to the Xbox. Songs appear to keep playing but no sound comes out and eventually (if left to its own devices) the Xbox will start periodically making a horrible buzzing sound. With that being said, I haven’t ascertained if that’s related to the Xbox itself, my wireless network dropping the stream or the actual TwonkyMedia software.

I did make one modification that seems to have alleviated the issue. In the web-based console, I changed the buffer size from 16384 (the default value) to 96000.

Overall, I’m pretty pleased with the software and I’d recommend it to anyone that is looking for a low-cost, Linux based UPnP server.

Ruby on Rails - From Start to Finish

June 14, 2006 — 0 Comments

When I first started with the notion of doing Ruby on Rails, I had it in my head that I wanted to do it the “right” way. The “right” way, in my head, was to use it on the platform that it was written for; Linux.

I’ve always been a Windows guy, but I’ve never shied away from a challenge, so I took the bull by the horns and sat down to write a Ruby on Rails app. I got gored…and trampled…and mauled…and, well you get the idea.

Call me a sissy, but I was used to point and click installers. So, something that I thought would be easy wound up being significantly more difficult that I had expected.

I guess I underestimated it, after all, I had to learn everything from scratch; the operating system (although I’ve had some UNIX training in the past), the database, the web server, the programming language, and finally the web application framework.

I wanted to compile a set of notes for myself for when I have to do it again, so I wrote up some steps to get Ruby on Rails installed on Debian Sarge with a MySQL database, Lighttpd. This includes integration with the version control software, Subversion and walks through how to create a database and a simple lighttpd.conf file.

It should really detail the deployment application Capistrano, but I wanted to do the stuff hands on before learning a system with a level of abstraction. Maybe I’ll write up those notes when I get there.

The notes are just a simple text file and I’m always amenable to updating it in case I’m doing something horribly inefficient. Hopefully, they’ll save a newbie some time and anguish.

Starting X on Debian with a G4MX440-T

March 12, 2006 — 0 Comments

I’m in the middle of the final phase of our Exchange 2003 Server migration at work. Unfortunately, this is very boring. Select some mailboxes to move over and then wait while it completes.

In order to entertain myself, I decided to install Debian on our penetration testing server (I knew I should have brought my PSP). The workstation/server has a GeForce4 MX440-T card in it and it wouldn’t start X. Probably the worst thing that can happen when setting up Linux.

Checking on the Internet, I found this thread with no answer. I would answer the poor soul and anyone else looking for the answer, but I’m not going to register for that garbage. So I’ll just post the answer here instead.

Here is what I did:

  • vi /etc/X11/XF86Config-4
  • Find the section titled Section “Device”
  • Change Identifier to read “G4 MX440-T”
  • Change Driver to read “nv”
  • If missing add section for “VideoRAM” and make that value 6400
After saving the file, I was able to start X.

Buildin' the Blog: Part 2 - Installing Ruby on Rails

January 31, 2006 — 6 Comments

Part 1 of this series is here.

I originally was going to have this part come later in this series, but I wanted to install Ruby on Rails a bit before I started writing my blog application so that I could become more familiar with the programming language and the web framework. Add to that, the fact that I installed it last night makes it fresh in my head.

I picked Kubuntu to be my development platform for a few reasons. I’d really like to use a Mac along with TextMate, but I don’t have the capital for a new Mac. Oh sweet, MacBook, I will have you one day…

But I digress, it’s probably best to use Kubuntu at first anyway. One of the reasons why I chose this distribution of Linux is because, well, I wanted to learn Linux. I chose this specific distribution because I plan on using Debian as my production platform and since Kubuntu is based on Debian it seemed to make sense. I should note that I don’t use Ubuntu because it comes with the terrible GUI, GNOME (although I’m perfectly aware that I can switch to KDE using Ubuntu, I just wanted it all in one package).

Anyway, it’s time to get to the good stuff.

With modern Linux distributions, you can install software using a package manager and Kubuntu (and Debian) is no different. I could have easily downloaded Ruby with the apt program and then installed Rails on top of it but the latest version avaliable to the apt program is Ruby 1.8.3 while the latest version of Ruby is 1.8.4. I should note that Ruby 1.8.3 is not recommended for use with Rails.

So I had two choices, install an old (and incompatible) version with apt or install from source.

I decided on installing from source. First thing is first, I gotta install Firefox in order to browse the web (I don’t really like Konqueror – the web browser that comes with KDE) and download the source.

I run this command to get Firefox:

sudo apt-get install firefox

This installs Firefox 1.0.7 and displays a warning message when loading, but that’s fine for now – it’s not critical. It’s time to get Ruby and then Rails. The Ruby on Rails site has very simplistic instructions on how to install both Ruby and Rails. They are deceptively simple and as I’ve found with all things Linux, it’s actually much harder than adverstised.

I created a directory in /home/carlos called work where I could download packages and compile the programs. I download both Ruby 1.8.4 and Ruby gems into these folders.

You have to install Ruby first, so I run this command in the directory where I’ve download Ruby:

tar xvf ruby-1.8.4.tar.gz

This creates a directory called ruby-1.8.4. Moving into that directory, I attempt to run this command:

./configure

And it gives and error stating that “no acceptable C compile was found in $PATH.”

I guess I have to install a C compiler so I run this command:

sudo apt-get install gcc

It does its thing and I try the ./configure command again. This time it’s another error. C compiler cannot create executables. Hrrm, it’s turning out that it’s not as easy as “download and go” after all.

After doing some Google searches, I found out that I need to install some development packages first, so I run the following commands (the second command is used for later when attempting to get RubyGems working):

sudo apt-get install libc6-dev
sudo apt-get install zlib1g-dev


BAM. That got it working. It does it’s thing and makes a make file. I go to make the…uh…make file and when typing in the command “make”, I get the error: bash: make: command not found. Unbelievable. I then run the following commands (which run without error):

sudo apt-get install make
make
sudo make install

I’m not sure why a base install of Kubuntu doesn’t have gcc, make, libc6-dev, and zlib1g-dev but I’ll leave that to smarter people to figure out.

I first have to unpack Ruby Gems. The command (to be run where I downloaded Ruby Gems) is

tar -xvf rubygems-0.8.11.tgz

That creates a rubygems-0.8.11 directory. The following commands are to be run in that directory:

sudo ruby setup.rb
gem install rails —include-dependencies

Note if you get an error here that reads: The error is no such file to load - zlib (LoadError), it means that you have to install zlib1g-dev first. Unfortunately you also have to go back and run the .configure, make, make install commands in the Ruby directory again.

In theory, Ruby and Rails should now be installed. Let’s test it out by running the commands:

rails /home/carlos/work/test
cd /home/carlos/work/test
ruby script/server

You should see WEBrick 1.3.1 startup and at this time, I’m satisfied that Ruby on Rails has successfully been installed.

All in all, it was way more complicated than it needed to be and if I wasn’t so determined to get it working I would have quit and just double-clicked the installer for Visual Studio.NET 2005.

A Clean House in 20 Minutes

January 10, 2006 — 0 Comments

I hate taking the time to clean my apartment. It’s mind-numbing, boring work and takes time away from working on “important projects.”

To a Type-C procrastinator (read Good and Bad Procrastination by Paul Graham) like myself, cleaning and doing menial tasks is akin to torture. Unfortunately, if you procrastinate too much, you’ll pay for it later.

I’m always on the look out for tips and tricks to make this task quicker and more efficient.

Common knowledge dictates that the trick to keeping your house clean is to mini-cleaning in between deep cleaning, regardless of this, the article, The Keep-It-Clean-Plan, on the Real Simple web site, outlines the steps necessary for you to accomplish this goal.

Although the article says that you can have “a sparkling house in just 19 minutes a day,” your actual cleaning time may vary depending on the size of your home.

Bookmarks

January 09, 2006 — 2 Comments

No, I’m not referring to the electronic kind of bookmarks, I’m referring to the things that you put in…well…books.

For the longest time, I’ve been without a real bookmark. I’ve generally used scraps of whatever paper I had lying around at the time. I wasn’t really happy with this but I could never find bookmarks that weren’t made for girls/kids/over the top ugly.

I managed to buy one at Barnes and Noble, but now that I’ve used it for a while I don’t really like it as much as I though I would. The main problem with the bookmark is that there is only one of them and if you look at my list of stuff that I’m reading, you’ll see that I’m reading lots of books at a time. One bookmark, a dozen books; doesn’t add up. The other problem that I have with the bookmark, is that it’s too thick. While being quite neutral (not too girly – apparently only girls read books) and stylish (it’s black leather with the kanji for wisdom on it in red metallic ink), it’s a bit too thick for my tastes.

Now normally, I’m not really an arts and crafts type of dude, but somehow I made my way to fabiosirna.com and checked out the post DIY – Paper Bookmarks. As soon as I saw them, I dug them. The bookmarks are really simple to make and basically free (all you need is paper and a printer (having a color printer is better but it’s not needed)).

Once you print them out, just cut and fold and you have yourself functional and cool bookmarks.

Now I can have a bookmark for each book without looking like a slob.

It's Hot Outside But I'm Cool Inside

July 29, 2005 — 5 Comments

The summers here in Portland, Oregon are mild compared to other parts
of the country. However, there are times that the temperature outside
skyrockets and that makes the temperature inside most homes and
apartments akin to the inside of an oven.

Last summer when temperatures hovered in the high 90 degree range for
several days, I swore to myself that I would not suffer another summer
without air conditioning. As most dwellings here aren’t equipped with
central air, I had to get the next best thing; a window air
conditioner.

Window air conditioners present a special problem for me because of the
windows in my apartment. They are “slider” windows which means that
they open and close on the horizontal axis instead of the vertical and
most window air conditioning units are made for windows that open
vertically.

There are air conditioners that are sold specifically to solve the
problem with my kind of windows. The first is to get a “mobile” AC unit
that has a hose for the exhaust. Most of these are quite spendy coming
in at the $400.00+ range. I have two rooms that I want to cool, my
bedroom and my office (houses lots of computers). I would have to get
two units and I really didn’t want to spend that much money on AC
units. So I moved to the next option.

They specifically make slider/casement AC units like this unit,
but the price of it ($369.00) immediately turned me off especially when
regular window AC units can cost as low as $100.00 (depending on BTU).

Being determined not to melt this summer, I formulated my plan. I knew
that I wanted two AC units (one for my bedroom and one for my office).
I knew would need something to mount it so that it wouldn’t fall out of
the window, and I knew that I had to plug the space above the unit
(the slider window is quite large to to bottom).

I ended up getting two LG 6000 BTU AC units for approximately $140.00
each at Home Depot. The 5200 BTU units that I wanted (which were on the
website – $119.00) were not available in the store, so I got the next
best thing. At 6000 BTU, they are plenty capable of cooling each room
(and probably a bit of an over kill considering that I measured the
rooms and I came up with needing a 5000 BTU unit).

I also got two AC-Safe Universal 5000 – 10000 BTU support brackets (I
can’t link from Home Depot (idiots) but if you want to look it up the
Internet number is 193005 and the catalog number is 100091666) so that
I could mount the unit in the window without having to drill holes on
the outside of the building. These are listed at $29.89 each.

Finally, to cover up the gaping hole in the window without looking like
a ghetto scrub, I decided to get clear acrylic to cover it. Although
plywood or cardboard would work, I decided not to make my apartment an
eyesore and went with the acrylic. I got mine from Tap Plastics
as they cut the pieces to size. I live on the second floor, so it’s
unrealistic to think that someone is going to break through the acrylic
but if I lived on the first floor I would definitely get polycarbonate
(specifically Lexan) which is harder to break. Each sheet of acrylic
was $25.00 but Lexan is more. Make sure you measure properly so you get the correct size.

So my approximate total for everything was $389.78 for two units and the materials to make it happen.

I should note something that I didn’t have to pay for; a drill. In
order to mount the bracket, you have to drill holes into the inner
window sill. I found out that my Black and Decker 9V cordless drill
wasn’t up to snuff but I was able to use my friend’s Makita which is a
much beefier 14V drill to do the job.

I had my friend Bob (I refer to him as Mister Jimmy Rig) come over and
help me with the first unit to make sure that I got a handle on how it
was gonna go down. After he showed me the first one, I was able to do
the second one on my own.

Basically, here is how it works:


  1. Remove the screen from the window (do not discard)

  2. Drill the holes into the inner window sill

  3. Mount
    the bracket to the inner window sill ((if the screws are being
    obstinate, rub soap on them to make them go into the wood easier)
  4. Fasten the safety arm (this leans against the exterior of the
    building with a rubber foot, so there is no drilling on the outside)
  5. Put in the window AC unit (I had to use wood as shims on each
    side
    to balance the unit. I’m sure you could buy wood, but you can get
    some spare wood to work at a lumber shop or Home Depot)
  6. Put in the acrylic and mark the holes so you can attach the plastic to the AC unit
  7. Remove acrylic and gently drill holes into the marks (Do Not push hard on the acrylic when drilling as it will crack it – I don’t think Lexan suffers from this)
  8. Screw the acrylic to the AC unit
  9. We also screwed it into the top using some clever jimmy rigging
    but you can use tape to affix the top of the acrylic to the window if
    you want
  10. Take a drink of your beer, you’re done

NOTE: There is one thing that I found out after I mounted the units.
Because of the bracket and the shims, there are small gaps in between
the window sill and the AC unit. It’s possible that little critters can
get in through that area, but I’m going to spray mine with DAPtex Plus
so they are barred from entry. DAPtex, unlike polyurethane, can be used
by a novice and is easily cleanable with soap and water.

My office, which hit a rather warm 92 degrees this year, is now at room temperature. I’m living the good life now.