<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title type="text">Reed G. Law</title>
  <generator uri="http://effectif.com/nesta">Nesta</generator>
  <id>tag:www.reedglaw.com,2009:/</id>
  <link href="http://www.reedglaw.com/articles.xml" rel="self"/>
  <link href="http://www.reedglaw.com" rel="alternate"/>
  <subtitle type="text">Computers, electronics, travel, music, food, etc.</subtitle>
  <entry>
    <title>Building a Standing Workstation</title>
    <link type="text/html" href="http://www.reedglaw.com/hacks/StandingWorkstation" rel="alternate"/>
    <id>tag:www.reedglaw.com,2010-08-28:/hacks/StandingWorkstation</id>
    <content type="html">&lt;p&gt;My neck, lower back, and wrists often felt uncomfortable after sitting all day so I decided to build a standing workstation. At first, I simply placed the monitor atop a tall bookshelf and then placed the keyboard and mouse on a medium bookshelf. This worked fine for a couple of weeks, but then my legs and lower back started feeling uncomfortable again. Better to walk and keep that circulation going. So I found a used treadmill on Craigslist for $80. It needed a few minor repairs, but other than that it works great. I also picked up some wood pallets for free and harvested the wood using &lt;a href='http://www.britishblades.com/forums/showthread.php?87120-Reclaiming-timber-pallets'&gt;this method&lt;/a&gt;. Three pallet boards formed the frame for my new mouse/keyboard rest:&lt;/p&gt;

&lt;p&gt;&lt;img src='http://www.reedglaw.com/attachments/photos/Treadmill/thumbnails/th_IMG_0688.JPG' alt='Standing Workstation' /&gt;&lt;/p&gt;

&lt;p&gt;After setting it all up, I worked for two hours straight, walking two miles. Now I just wanted a way to sit down and work if I desired a break from walking. So I set up second monitor, keyboard, and mouse, all connected to my main workstation.&lt;/p&gt;

&lt;p&gt;&lt;img src='http://www.reedglaw.com/attachments/photos/Treadmill/thumbnails/th_IMG_0691.JPG' alt='Sitting next to 2nd monitor' /&gt;&lt;/p&gt;

&lt;p&gt;Overall I am extremely satisfied with this setup and only spent $80 plus a few hours labor.&lt;/p&gt;</content>
    <published>2010-08-28T00:00:00+00:00</published>
    <category term="hacks"/>
  </entry>
  <entry>
    <title>Installing Ruby 1.9.2 and Rails 3</title>
    <link type="text/html" href="http://www.reedglaw.com/rails/InstallRails3" rel="alternate"/>
    <id>tag:www.reedglaw.com,2010-08-27:/rails/InstallRails3</id>
    <content type="html">&lt;p&gt;After spending over two hours fiddling with rvm and Rails 3 on Ubuntu, I decided to give it a go on Windows. To my great surprise, it was easy and took only around 15 minutes.&lt;/p&gt;

&lt;h2 id='installing_ruby_192'&gt;Installing Ruby 1.9.2&lt;/h2&gt;

&lt;p&gt;Get it &lt;a href='http://rubyforge.org/frs/download.php/72170/rubyinstaller-1.9.2-p0.exe'&gt;here.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Run the installer and it should add ruby to your PATH. To be sure, open a command prompt and type &lt;code&gt;ruby -v&lt;/code&gt;. You should get:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;ruby 1.9.2p0 (2010-08-18) [i386-mingw32]&lt;/code&gt;&lt;/pre&gt;

&lt;h2 id='installing_rubygems_137'&gt;Installing RubyGems 1.3.7&lt;/h2&gt;

&lt;p&gt;First, decide where you want your gems to be stored. For example:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;set GEM_HOME=/users/yourusername/gems&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;a href='http://rubyforge.org/frs/download.php/70697/rubygems-1.3.7.zip'&gt;Download&lt;/a&gt; and unzip the archive and then run &lt;code&gt;ruby setup.rb&lt;/code&gt;. Be sure to add the directory you chose to your PATH (windows key + r, type &lt;code&gt;control sysdm.cpl&lt;/code&gt;, click advanced tab, then environment variables; add it to the end of the PATH variable after a semicolon, then restart your cmd.exe).&lt;/p&gt;

&lt;h2 id='installing_rails_3'&gt;Installing Rails 3&lt;/h2&gt;

&lt;pre&gt;&lt;code&gt;gem install tzinfo builder memcache-client rack rack-test rack-mount erubis mail text-format thor bundler i18n sqlite3-ruby
gem install rails --pre&lt;/code&gt;&lt;/pre&gt;

&lt;h2 id='installing_sqlite3'&gt;Installing Sqlite3&lt;/h2&gt;

&lt;p&gt;&lt;a href='http://www.sqlite.org/sqlitedll-3_7_2.zip'&gt;Download the .dll&lt;/a&gt; and copy it to &lt;code&gt;\Windows\System32\&lt;/code&gt;&lt;/p&gt;

&lt;h2 id='testing_it_out'&gt;Testing it out&lt;/h2&gt;

&lt;p&gt;Run: &lt;code&gt;rails new test_app&lt;/code&gt;, then inside the new test_app directory run &lt;code&gt;ruby script\rails server&lt;/code&gt;. Now open your browser to &lt;a href='http://localhost:3000'&gt;http://localhost:3000&lt;/a&gt; and you should get a welcome screen.&lt;/p&gt;</content>
    <published>2010-08-27T00:00:00+00:00</published>
    <category term="rails"/>
  </entry>
  <entry>
    <title>Amuzebox</title>
    <link type="text/html" href="http://www.reedglaw.com/electronics/amuzebox" rel="alternate"/>
    <id>tag:www.reedglaw.com,2010-06-03:/electronics/amuzebox</id>
    <content type="html">&lt;p&gt;Amuzebox is an open source game console based on the &lt;a href='http://belogic.com/uzebox/'&gt;Uzebox&lt;/a&gt;, an 8-bit retro-minimalist platform. The Amuzebox closely follows the standard Uzebox implementation except for a few minor changes.&lt;/p&gt;

&lt;h2 id='design_goals'&gt;Design goals&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Suitable for hobbyist builders&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;All parts except the AD725 are through-hole components. The AD725 only comes in an SOIC-16 (surface mount) package, but this can be easily hand-soldered by a moderately experienced hobbyist.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;

&lt;li&gt;
&lt;p&gt;Single-sided PCB design suitable for toner-transfer method PCB etching&lt;/p&gt;
&lt;/li&gt;

&lt;li&gt;
&lt;p&gt;Aims to be a relatively inexpensive Uzebox clone&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id='changes_from_the_reference_design_include'&gt;Changes from the &lt;a href='http://belogic.com/uzebox/downloads.htm'&gt;reference design&lt;/a&gt; include:&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Use of DB9 connectors instead of SNES connectors&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;SNES sockets are hard to come across and the &lt;a href='http://www.uzebox.org/forums/viewtopic.php?f=4&amp;amp;t=325'&gt;current recommendation&lt;/a&gt; seems to be to buy SNES extension cables and harvest the sockets. The Amuzebox aims to be cheap, and since a DB9 socket plus controller is cheaper than just an SNES socket we will go with that. However, the DB9 pads could easily be used as jumpers to connect to case-mounted SNES sockets if you are inclined to go that way.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;

&lt;li&gt;
&lt;p&gt;Midi-input&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The PCB design has the option of midi-input. If you don&amp;#8217;t need it, leave the parts out.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;

&lt;li&gt;
&lt;p&gt;Luma trap&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href='http://www.uzebox.org/wiki/index.php?title=FAQ'&gt;Said&lt;/a&gt; to improve colors and produce less artifacts.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id='development'&gt;Development&lt;/h2&gt;

&lt;p&gt;The first working iteration was a black and white-only breadboarded version.&lt;/p&gt;
&lt;img src='/attachments/breadboard.jpg' alt='Breadboard version' /&gt;&lt;img src='/attachments/reedpacman.jpg' alt='Breadboard version' /&gt;
&lt;p&gt;Satisfied that the code works, I went on to design the PCB in Eagle. My goals for the PCB design were to use as few jumpers as possible and to keep the analog and digital signals separate. Here you can see the analog ground section of the board (bright red):&lt;/p&gt;
&lt;img src='/attachments/agnd.png' alt='Analog ground' /&gt;
&lt;p&gt;There are a few wires that must be added: 4FSC on AD725 to PB3 on the 644, VCC to both controllers, Reset to the reset switch, and all the SNES pads if you choose to use SNES sockets instead of DB9 sockets.&lt;/p&gt;

&lt;p&gt;Here is the first working prototype:&lt;/p&gt;
&lt;img src='/attachments/amuzebox0v1.jpg' alt='Etched PCB' /&gt;
&lt;h2 id='building_details'&gt;Building Details&lt;/h2&gt;

&lt;p&gt;&lt;a href='http://www.reedglaw.com/attachments/amuzebox-bom.pdf'&gt;Bill of Materials&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;PCB Layout for toner-transfer &lt;a href='http://www.reedglaw.com/attachments/amuzebox-pcb.pdf'&gt;(PDF)&lt;/a&gt; &lt;a href='http://www.reedglaw.com/attachments/amuzebox-pcb.png'&gt;(PNG)&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href='http://www.reedglaw.com/attachments/amuzebox.sch'&gt;Eagle Schematic File&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href='http://www.reedglaw.com/attachments/amuzebox.brd'&gt;Eagle Board File&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Parts placement (click to enlarge):&lt;/p&gt;

&lt;p&gt;&lt;a href='http://www.reedglaw.com/attachments/placement.png'&gt;&lt;img src='/attachments/placement_thumb.png' alt='Parts placement' /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href='http://www.reedglaw.com/attachments/placement.pdf'&gt;(PDF)&lt;/a&gt;&lt;/p&gt;
&lt;img src='/attachments/pacman.jpg' alt='Pacman' /&gt;&lt;img src='/attachments/tetris.jpg' alt='Tetris' /&gt;&lt;a href='http://www.gnu.org/licenses/gpl.html'&gt;&lt;img src='/attachments/gplv3-88x31.png' border='0' /&gt;&lt;/a&gt;&lt;a href='http://creativecommons.org/licenses/by-sa/3.0/'&gt;&lt;img src='/attachments/88x31.png' border='0' /&gt;&lt;/a&gt;
&lt;p&gt;The Amuzebox hardware design is released under the &lt;a href='http://www.gnu.org/licenses/gpl.html'&gt;GNU GPL 3.0 Public Licence&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Pictures and content of this project are licensed under a &lt;a href='http://creativecommons.org/licenses/by-sa/3.0/' rel='license'&gt;Creative Commons Attribution-Share Alike 3.0 Unported License&lt;/a&gt;.&lt;/p&gt;</content>
    <published>2010-06-03T00:00:00+00:00</published>
    <category term="electronics"/>
  </entry>
</feed>
