<?xml version="1.0" encoding="iso-8859-1"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>The Blair Robot Project Blog</title>
	<atom:link href="http://robot.mbhs.edu/wordpress/feed/" rel="self" type="application/rss+xml" />
	<link>http://robot.mbhs.edu/wordpress</link>
	<description></description>
	<lastBuildDate>Mon, 19 Oct 2009 18:57:02 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>The Joys of Configuring Postfix</title>
		<link>http://robot.mbhs.edu/wordpress/2009/the-joys-of-configuring-postfix/</link>
		<comments>http://robot.mbhs.edu/wordpress/2009/the-joys-of-configuring-postfix/#comments</comments>
		<pubDate>Mon, 19 Oct 2009 18:57:02 +0000</pubDate>
		<dc:creator>Scott</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[postfix]]></category>
		<category><![CDATA[Teque]]></category>
		<category><![CDATA[TMS]]></category>

		<guid isPermaLink="false">http://robot.mbhs.edu/wordpress/?p=608</guid>
		<description><![CDATA[Configuring postfix is well-known to be the hardest, least intellectually stimulating task any IT person will ever pass off to a hapless subordinate.  I, unfortunately, would seem to be that hapless subordinate.  Eric recommended (and, in fact, convinced me) that I write a perl script to act as a delivery agent for postfix. [...]


Related posts:<ul><li><a href='http://robot.mbhs.edu/wordpress/2009/maintaining-a-separate-draft-copy-of-a-website/' rel='bookmark' title='Permanent Link: Maintaining a Separate Draft Copy of a Website'>Maintaining a Separate Draft Copy of a Website</a></li><li><a href='http://robot.mbhs.edu/wordpress/2009/risky-plans/' rel='bookmark' title='Permanent Link: Risky Plans'>Risky Plans</a></li><li><a href='http://robot.mbhs.edu/wordpress/2009/fading-inout-with-javascript-without-scriptaculous/' rel='bookmark' title='Permanent Link: Fading In/Out with Javascript Without Scriptaculous'>Fading In/Out with Javascript Without Scriptaculous</a></li></ul>]]></description>
			<content:encoded><![CDATA[<p>Configuring postfix is well-known to be the hardest, least intellectually stimulating task any IT person will ever pass off to a hapless subordinate.  I, unfortunately, would seem to be that hapless subordinate.  Eric recommended (and, in fact, convinced me) that I write a perl script to act as a delivery agent for postfix. This would offer grate flexibility, customizability, blah, blah, blah.  Not to drag out the story, I got to a point where I realized I had a 200 line mess that didn&#8217;t work half of the time, wasn&#8217;t properly interacting with postfix, and needed another 1000 or so lines to do what was really required of it.  So I dropped the project, and fell back to using mysql aliases, which looked to me like the easiest option when I need relatively dynamic mailing lists integrating with custom software that uses mysql.</p><span id="more-608"></span>
<p>My task was in two parts &#8211; write a relatively simple system that enabled users of <abbr title="Team Management System">TMS</abbr> to receive mail at <code>username@robot.mbhs.edu</code>, as well as a limited set of aliases (like <code>webmaster@robot.mbhs.edu</code> &#8211; that&#8217;s me!).  The second task was to create an alumni mailing list (at the same domain, on the same host), to which only a certain group of people (the &#8217;senders&#8217;) could send mail.  I thought it might be nice to use some good, old-fashioned third party software the way the school does for all its other mailing lists (or maybe google groups would be a nice idea?), but Eric wouldn&#8217;t hear of it &#8211; he wanted in-house.  Irony: he and the other Teque folks spent at least a month making fun of me for my fondness for in-house software.</p>
<p>The first part was relatively simple, using the tutorial <a href="http://www.postfix.org/MYSQL_README.html">here</a>.  The second part was slightly harder.  For starters, the alumni list was stored on binx, and I was hosting the listserv from ogodei.  So some crontabs were in order.  From binx, I printed the list from mysql to a file (not shown).  From ogodei, I did the opposite:</p>
<pre class="0">
root@ogodei:/var/www/ctda# cat /etc/postfix/alumni-email-manager.pl
#!/usr/bin/perl

use DBI;

$dbh=DBI->connect("dbi:mysql:web;user=web;password=********");
open FH,"/var/local/roboweb/alumni_emails";
$dbh->do("start transaction");
$dbh->do("truncate table alumni_list_temp");
while(<FH>) {
    $email=$_;
    $email=~s/\n//;
    $dbh->do("insert into alumni_list_temp (destination) values ('$email')");
}
$dbh->do("commit");
close FH;
$dbh->disconnect;
</pre>
<p>Then I had to actually set up the mailing list, along with the relevant permissions to ensure that people outside of the senders list could not write to the list. (We have no moderation system, since our in-house ability does not extend to rewriting mailman.)</p>
<pre>
root@ogodei:/var/www/ctda# cat /etc/postfix/main.cf
# See /usr/share/postfix/main.cf.dist for a commented, more complete version


# Debian specific:  Specifying a file name will cause the first
# line of that file to be used as the name.  The Debian default
# is /etc/mailname.
#myorigin = /etc/mailname  

smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no

# appending .domain is the MUA's job.
append_dot_mydomain = no   

# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h

readme_directory = no

smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

smtpd_recipient_restrictions = check_recipient_access mysql:/etc/postfix/protected_users.cf, reject_unauth_destination

smtpd_restriction_classes = whitelist
whitelist = check_sender_access mysql:/etc/postfix/whitelist.cf, reject

myhostname = team.robot.mbhs.edu
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = team.robot.mbhs.edu, localhost.robot.mbhs.edu, localhost, robot.mbhs.edu, www.robot.mbhs.edu, ogodei.mbhs.edu, tms.robot.mbhs.edu
relayhost = 
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_command =
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
inet_protocols = all
home_mailbox = Maildir/

alias_maps = mysql:/etc/postfix/mysql-aliases1.cf, mysql:/etc/postfix/mysql-aliases2.cf, mysql:/etc/postfix/mysql-aliases3.cf
</pre>
<p>Scattered throughout, but not shown here, are various debugging lines from me trying to figure out why postfix was completely ignoring my instructions.</p>
<pre>
root@ogodei:/var/www/ctda# cat /etc/postfix/mysql-aliases1.cf 
hosts=127.0.0.1
user = web
password = #######

dbname = web

query = SELECT destination FROM mail_aliases WHERE source='%u'
result_format = %s@robot.mbhs.edu

root@ogodei:/var/www/ctda# cat /etc/postfix/mysql-aliases2.cf 
hosts=127.0.0.1
user = web
password = ##########
dbname = web
query = SELECT email FROM users WHERE username='%u'

root@ogodei:/var/www/ctda# cat /etc/postfix/mysql-aliases3.cf 
hosts=127.0.0.1
user = web
password = ########
dbname = web
query = SELECT destination FROM alumni_list_temp WHERE '%u'='alumni'
</pre>
<p>The filenames being undescriptive, here&#8217;s what they do: the first handles the aliases, and redirects it to either another alias or a username (for example, <code>webmaster@robot.mbhs.edu</code> might redirect to <code>web.dev@robot.mbhs.edu</code>, which might redirect to <code>scott@robot.mbhs.edu</code>).  Ruleset 2 handles actual usernames.  Ruleset three handles the alumni mailing list.</p>
<p>Footnote: yes, as those of you who have actually been reading this blog have noticed, this is the same project I outlined in <a href="http://robot.mbhs.edu/wordpress/2009/risky-plans/">Risky Plans</a>.  The others have not made much progress either, but I have release <a href="http://firstsearch.robot.mbhs.edu/">FIRSTSearch</a>!</p>

<p>Related posts:<ul><li><a href='http://robot.mbhs.edu/wordpress/2009/maintaining-a-separate-draft-copy-of-a-website/' rel='bookmark' title='Permanent Link: Maintaining a Separate Draft Copy of a Website'>Maintaining a Separate Draft Copy of a Website</a></li><li><a href='http://robot.mbhs.edu/wordpress/2009/risky-plans/' rel='bookmark' title='Permanent Link: Risky Plans'>Risky Plans</a></li><li><a href='http://robot.mbhs.edu/wordpress/2009/fading-inout-with-javascript-without-scriptaculous/' rel='bookmark' title='Permanent Link: Fading In/Out with Javascript Without Scriptaculous'>Fading In/Out with Javascript Without Scriptaculous</a></li></ul></p>]]></content:encoded>
			<wfw:commentRss>http://robot.mbhs.edu/wordpress/2009/the-joys-of-configuring-postfix/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FIRSTSearch Released</title>
		<link>http://robot.mbhs.edu/wordpress/2009/firstsearch-released/</link>
		<comments>http://robot.mbhs.edu/wordpress/2009/firstsearch-released/#comments</comments>
		<pubDate>Fri, 16 Oct 2009 21:35:30 +0000</pubDate>
		<dc:creator>Scott</dc:creator>
				<category><![CDATA[Website Development]]></category>
		<category><![CDATA[FIRSTSearch]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://robot.mbhs.edu/wordpress/?p=604</guid>
		<description><![CDATA[After various delays of the server-is-down sort, I&#8217;ve finally finished fixing the indexing software, and FIRSTSearch is ready for (beta) release. It&#8217;s by no means an incredible piece of software &#8211; it has some bugs, it wants some features, the display of results is less than perfect, and I have my doubts that it&#8217;s really [...]


Related posts:<ul><li><a href='http://robot.mbhs.edu/wordpress/2009/minifying-css-and-js/' rel='bookmark' title='Permanent Link: Minifying CSS and JS'>Minifying CSS and JS</a></li><li><a href='http://robot.mbhs.edu/wordpress/2009/fading-inout-with-javascript-without-scriptaculous/' rel='bookmark' title='Permanent Link: Fading In/Out with Javascript Without Scriptaculous'>Fading In/Out with Javascript Without Scriptaculous</a></li><li><a href='http://robot.mbhs.edu/wordpress/2009/automatically-blocking-bad-bots-htaccess-php/' rel='bookmark' title='Permanent Link: Automatically Blocking Bad Bots &#8211; htaccess, PHP'>Automatically Blocking Bad Bots &#8211; htaccess, PHP</a></li></ul>]]></description>
			<content:encoded><![CDATA[<p>After various delays of the server-is-down sort, I&#8217;ve finally finished fixing the indexing software, and <a href="http://firstsearch.robot.mbhs.edu" title="FIRSTSearch by Team 449">FIRSTSearch</a> is ready for (beta) release. It&#8217;s by no means an incredible piece of software &#8211; it has some bugs, it wants some features, the display of results is less than perfect, and I have my doubts that it&#8217;s really finding the most relevant results.  But it&#8217;s working, and it&#8217;s ready forr other people to start to use.</p>
<p>I expect to have a non-beta release within a few weeks.</p>


<p>Related posts:<ul><li><a href='http://robot.mbhs.edu/wordpress/2009/minifying-css-and-js/' rel='bookmark' title='Permanent Link: Minifying CSS and JS'>Minifying CSS and JS</a></li><li><a href='http://robot.mbhs.edu/wordpress/2009/fading-inout-with-javascript-without-scriptaculous/' rel='bookmark' title='Permanent Link: Fading In/Out with Javascript Without Scriptaculous'>Fading In/Out with Javascript Without Scriptaculous</a></li><li><a href='http://robot.mbhs.edu/wordpress/2009/automatically-blocking-bad-bots-htaccess-php/' rel='bookmark' title='Permanent Link: Automatically Blocking Bad Bots &#8211; htaccess, PHP'>Automatically Blocking Bad Bots &#8211; htaccess, PHP</a></li></ul></p>]]></content:encoded>
			<wfw:commentRss>http://robot.mbhs.edu/wordpress/2009/firstsearch-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Demonstrations Day</title>
		<link>http://robot.mbhs.edu/wordpress/2009/demonstrations-day/</link>
		<comments>http://robot.mbhs.edu/wordpress/2009/demonstrations-day/#comments</comments>
		<pubDate>Fri, 02 Oct 2009 02:26:00 +0000</pubDate>
		<dc:creator>Kevin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://robot.mbhs.edu/wordpress/?p=597</guid>
		<description><![CDATA[From an initial glance, it appears more new members came today than last week. Though that does help the team, the room&#8217;s limited space fits only so many people. Mechanics demonstrations such as tapping and sawing took place in the main room while Eric instructed inventor to veterans in the computer room. Scott and his [...]


Related posts:<ul><li><a href='http://robot.mbhs.edu/wordpress/2007/robot-meeting-october-27/' rel='bookmark' title='Permanent Link: Robot Meeting (October 27)'>Robot Meeting (October 27)</a></li><li><a href='http://robot.mbhs.edu/wordpress/2008/build-season-week-2-112-118/' rel='bookmark' title='Permanent Link: Build Season Week 2 (1/12-1/18)'>Build Season Week 2 (1/12-1/18)</a></li><li><a href='http://robot.mbhs.edu/wordpress/2008/thursday-the-6th/' rel='bookmark' title='Permanent Link: Thursday the 6th'>Thursday the 6th</a></li></ul>]]></description>
			<content:encoded><![CDATA[<p>From an initial glance, it appears more new members came today than last week. Though that does help the team, the room&#8217;s limited space fits only so many people. Mechanics demonstrations such as tapping and sawing took place in the main room while Eric instructed inventor to veterans in the computer room. Scott and his tech crew were in the backroom as usual. But, the Labview introduction transpired in the hallways with Winifred resting on top of a recycle bin (Well, it IS getting old and slow). Since Daniel was out sick, Jacob had to improvise on the tutorial. It seemed the flu got to him though as he was more calm than usual. Maybe he should have gotten a cookie.</p>


<p>Related posts:<ul><li><a href='http://robot.mbhs.edu/wordpress/2007/robot-meeting-october-27/' rel='bookmark' title='Permanent Link: Robot Meeting (October 27)'>Robot Meeting (October 27)</a></li><li><a href='http://robot.mbhs.edu/wordpress/2008/build-season-week-2-112-118/' rel='bookmark' title='Permanent Link: Build Season Week 2 (1/12-1/18)'>Build Season Week 2 (1/12-1/18)</a></li><li><a href='http://robot.mbhs.edu/wordpress/2008/thursday-the-6th/' rel='bookmark' title='Permanent Link: Thursday the 6th'>Thursday the 6th</a></li></ul></p>]]></content:encoded>
			<wfw:commentRss>http://robot.mbhs.edu/wordpress/2009/demonstrations-day/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My First Line of OS Code (Writing an OS Part 1)</title>
		<link>http://robot.mbhs.edu/wordpress/2009/my-first-line-of-os-code-writing-an-os-part-1/</link>
		<comments>http://robot.mbhs.edu/wordpress/2009/my-first-line-of-os-code-writing-an-os-part-1/#comments</comments>
		<pubDate>Thu, 24 Sep 2009 22:43:02 +0000</pubDate>
		<dc:creator>Scott</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[floppy disk]]></category>
		<category><![CDATA[grub]]></category>
		<category><![CDATA[OS]]></category>

		<guid isPermaLink="false">http://robot.mbhs.edu/wordpress/?p=595</guid>
		<description><![CDATA[In the third after-school robotics meeting of the year, I ventured into that frightening and mysterious land of operating system development.  It&#8217;s the hardest thing you&#8217;ll ever fail to do &#8211; and I started it while listening suggestions for the name of this OS.  I think Freddy ultimately decided on &#8220;Sloth&#8221;. Great day. [...]


Related posts:<ul><li><a href='http://robot.mbhs.edu/wordpress/2009/how-to-get-a-directory-listing-in-c-posix/' rel='bookmark' title='Permanent Link: How to Get a Directory Listing in C (POSIX)'>How to Get a Directory Listing in C (POSIX)</a></li><li><a href='http://robot.mbhs.edu/wordpress/2009/writing-a-search-engine-part-1/' rel='bookmark' title='Permanent Link: Writing a Search Engine &#8211; Part 1'>Writing a Search Engine &#8211; Part 1</a></li><li><a href='http://robot.mbhs.edu/wordpress/2009/writing-a-search-engine-part-2/' rel='bookmark' title='Permanent Link: Writing a Search Engine &#8211; Part 2'>Writing a Search Engine &#8211; Part 2</a></li></ul>]]></description>
			<content:encoded><![CDATA[<p>In the third after-school robotics meeting of the year, I ventured into that frightening and mysterious land of operating system development.  It&#8217;s the hardest thing you&#8217;ll ever fail to do &#8211; and I started it while listening suggestions for the name of this OS.  I think Freddy ultimately decided on &#8220;Sloth&#8221;. Great day.  Interestingly enough, the only hard-core programmer who I told about this project who did <em>not</em> inform me that it would be an utter failure was also the only person I know who has ever worked on writing his own OS (although it wasn&#8217;t very successfull).  So I&#8217;m hopeful &#8211; probably more so than I have a right to be.</p>
<p>Briefly, I can now start up the computer and print an &#8216;A&#8217; to the screen.  That means that I can claim to be 3 months ahead of schedule, since I wasn&#8217;t planning on starting this project until early January (I got bored).  Of course, when I tried to print an &#8216;A&#8217; to the second line, I got a blue rectangle instead.  But hey, that&#8217;s pretty cool too!</p>
<p>Now for the long story.  Walking in today, I had made progress: I had acquired several computers to be used for this project and some other (all the meantime fighting back the greed of my bosses, who actually wanted to use them for things that were &#8211; god forbid &#8211; <em>practical</em> *shudder*), I had acquired a floppy disk on which to write the OS, and&#8230; well yeah, that&#8217;s about it.  I also knew nothing about how to write an OS.</p>
<p>First, I set up grub.  It turned out to be pretty simple.  Next, I started figuring out how to write the OS to the disk (no, I didn&#8217;t have an OS yet &#8211; did I mention that I&#8217;ve never done this before?).  At this point, Freddy pointed out that I could just store the file on the hard drive, and have grub read it.  Oh.  Right.  Thanks.  And I spent 45 minutes acquiring that floppy disk why?</p>
<p>Next I went to my <a href="http://wiki.osdev.org/">favorite wiki</a>, and looked up the boilerplate OS code.  Pretty simple, so I copied it onto qweffor and ran it.  Well, actually, I told qweffor to reboot, but I was logged on via SSH, so I had to walk over to the room with qweffor in order to watch what was happening.  Freddy had already started up the right OS.  So, yeah, it had printed out an &#8216;A&#8217;.  Grub had also printed out some stuff.  I specified that grub should be &#8216;quiet&#8217;, and retried, but that didn&#8217;t fix it.  So I got a message like:</p>
<pre>
Aooting from (hd0,0)...
</pre>
<p>I decided to let that message appear, and print out the rest of the stuff to the following lines.  So instead of just setting the first character to be &#8216;A&#8217;, I set it to be a newline, and set the second character to be &#8216;A&#8217;.  Result: a blue square with a white circle in the middle.  Then I had to catch my bus.</p>
<p>Result: its time to actually read the documentation.  And for those of you who were planning to look on, you didn&#8217;t miss much.</p>
<p>Oh, and today was the first day of training for freshmen.  Not that that&#8217;s unimportant, but it was somewhat less than exciting&#8230;</p>


<p>Related posts:<ul><li><a href='http://robot.mbhs.edu/wordpress/2009/how-to-get-a-directory-listing-in-c-posix/' rel='bookmark' title='Permanent Link: How to Get a Directory Listing in C (POSIX)'>How to Get a Directory Listing in C (POSIX)</a></li><li><a href='http://robot.mbhs.edu/wordpress/2009/writing-a-search-engine-part-1/' rel='bookmark' title='Permanent Link: Writing a Search Engine &#8211; Part 1'>Writing a Search Engine &#8211; Part 1</a></li><li><a href='http://robot.mbhs.edu/wordpress/2009/writing-a-search-engine-part-2/' rel='bookmark' title='Permanent Link: Writing a Search Engine &#8211; Part 2'>Writing a Search Engine &#8211; Part 2</a></li></ul></p>]]></content:encoded>
			<wfw:commentRss>http://robot.mbhs.edu/wordpress/2009/my-first-line-of-os-code-writing-an-os-part-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Migrating MySQL to PostgreSQL By Hand</title>
		<link>http://robot.mbhs.edu/wordpress/2009/migrating-mysql-to-postgresql-by-hand/</link>
		<comments>http://robot.mbhs.edu/wordpress/2009/migrating-mysql-to-postgresql-by-hand/#comments</comments>
		<pubDate>Tue, 15 Sep 2009 04:37:03 +0000</pubDate>
		<dc:creator>Scott</dc:creator>
				<category><![CDATA[Website Development]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[postgresql]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[sql]]></category>

		<guid isPermaLink="false">http://robot.mbhs.edu/wordpress/?p=592</guid>
		<description><![CDATA[I recently completed a manual migration of my data for CTDA (an analysis system for team data collected from thebluealliance.net and other sources) to PostgreSQL from MySQL (see my comparison for why).  By &#8216;manual&#8217;, I do not mean that I typed the data in by hand &#8211; I mean that for each table, I [...]


Related posts:<ul><li><a href='http://robot.mbhs.edu/wordpress/2009/writing-a-search-engine-part-2/' rel='bookmark' title='Permanent Link: Writing a Search Engine &#8211; Part 2'>Writing a Search Engine &#8211; Part 2</a></li><li><a href='http://robot.mbhs.edu/wordpress/2009/mysql-vs-postgresql-benchmarking-data/' rel='bookmark' title='Permanent Link: MySQL vs PostgreSQL: Benchmarking Data'>MySQL vs PostgreSQL: Benchmarking Data</a></li><li><a href='http://robot.mbhs.edu/wordpress/2009/week-three-11709-12109/' rel='bookmark' title='Permanent Link: Week Three: 1/17/09-1/21/09'>Week Three: 1/17/09-1/21/09</a></li></ul>]]></description>
			<content:encoded><![CDATA[<p>I recently completed a manual migration of my data for CTDA (an analysis system for team data collected from thebluealliance.net and other sources) to PostgreSQL from MySQL (see <a href="http://robot.mbhs.edu/wordpress/2009/mysql-vs-postgresql-benchmarking-data/" title="MySQL vs PostgreSQL Benchmarks">my comparison</a> for why).  By &#8216;manual&#8217;, I do <em>not</em> mean that I typed the data in by hand &#8211; I mean that for each table, I wrote a separate script to transfer the data, instead of writing (or finding online) a single script to copy a whole database. My advice to you, if you are planning to migrate data to PostgreSQL from MySQL, is this: don&#8217;t do it by hand.</p>
<p>Let&#8217;s assume I would have been unable to find a workable script online to transfer the database for me.  This is unlikely at best, but if I couldn&#8217;t, I could probably have written one that would cover all the cases needed for my database in about 3 or 4 hours (I&#8217;m rather new to postgres).  So I sit down one day, write the script, test it a bit, and set it to run overnight, and I&#8217;m done.</p>
<p>But that&#8217;s not what I did.  I decided that it would be &#8216;easier&#8217; to write a script for each table.  Perhaps it saved me some thinking &#8211; but the process ended up taking me two weeks, and much more than 4 hours.  I would estimate that, because of this delay, CTDA will be released 3 weeks later than it would have been if I had written a good script to do this for me.</p>
<p>Oh, and in case you can&#8217;t guess.  My advice to those who are planning to migrate from PostgreSQL to MySQL: don&#8217;t.</p>

<p>Related posts:<ul><li><a href='http://robot.mbhs.edu/wordpress/2009/writing-a-search-engine-part-2/' rel='bookmark' title='Permanent Link: Writing a Search Engine &#8211; Part 2'>Writing a Search Engine &#8211; Part 2</a></li><li><a href='http://robot.mbhs.edu/wordpress/2009/mysql-vs-postgresql-benchmarking-data/' rel='bookmark' title='Permanent Link: MySQL vs PostgreSQL: Benchmarking Data'>MySQL vs PostgreSQL: Benchmarking Data</a></li><li><a href='http://robot.mbhs.edu/wordpress/2009/week-three-11709-12109/' rel='bookmark' title='Permanent Link: Week Three: 1/17/09-1/21/09'>Week Three: 1/17/09-1/21/09</a></li></ul></p>]]></content:encoded>
			<wfw:commentRss>http://robot.mbhs.edu/wordpress/2009/migrating-mysql-to-postgresql-by-hand/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Success and Failure at the 2009 Battle o&#8217; Baltimore</title>
		<link>http://robot.mbhs.edu/wordpress/2009/bob/</link>
		<comments>http://robot.mbhs.edu/wordpress/2009/bob/#comments</comments>
		<pubDate>Wed, 26 Aug 2009 05:34:55 +0000</pubDate>
		<dc:creator>Eric</dc:creator>
				<category><![CDATA[Competition]]></category>
		<category><![CDATA[Battle o' Baltimore]]></category>
		<category><![CDATA[Lunacy]]></category>
		<category><![CDATA[Offseason]]></category>
		<category><![CDATA[Team 449]]></category>

		<guid isPermaLink="false">http://robot.mbhs.edu/wordpress/?p=585</guid>
		<description><![CDATA[
With the internal controversy surrounding 449&#8217;s attendance at the Battle o&#8217; Baltimore, I&#8217;m glad to say that we did in fact attend. Summer events are always hard, with most people on vacation or simply not motivated enough to make the 45 minute drive from DC to Baltimore.
The goal of this offseason event was to give [...]


Related posts:<ul><li><a href='http://robot.mbhs.edu/wordpress/2009/battle-o-balitmore-vs-robotic-arm/' rel='bookmark' title='Permanent Link: Battle o&#8217; Balitmore vs Robotic Arm'>Battle o&#8217; Balitmore vs Robotic Arm</a></li><li><a href='http://robot.mbhs.edu/wordpress/2009/kickoff-13/' rel='bookmark' title='Permanent Link: Kickoff: 1/3/09'>Kickoff: 1/3/09</a></li><li><a href='http://robot.mbhs.edu/wordpress/2009/week-one-1409-1909/' rel='bookmark' title='Permanent Link: Week One: 1/4/09-1/9/09'>Week One: 1/4/09-1/9/09</a></li></ul>]]></description>
			<content:encoded><![CDATA[
<p>With the internal controversy surrounding 449&#8217;s attendance at the Battle o&#8217; Baltimore, I&#8217;m glad to say that we did in fact attend. Summer events are always hard, with most people on vacation or simply not motivated enough to make the 45 minute drive from DC to Baltimore.</p>
<p>The goal of this offseason event was to give the younger members of our team—the rising juniors and sophomores—a jump start into running the robot without us old farts. The power&#8217;s been in our hands too long, and we&#8217;ve gotten too comfortable being in control.  The drive chain is loose? Not my problem. Here, have a wrench. It might not be the right size. Engineers have got to fend for themselves in the wild world of robotics.</p>
<p><span id="more-585"></span></p>
<p>We faced only a few problems. Through both regionals, the chain on the back wheel had a tendency to eject itself, a problem that was never solved. A few hours of tweaking at the last meeting proved worthless as it hit the regolith on practice day. Using the few supplies we brought, one of our team members was able to fashion a triangular brace to keep the swerve assembly from shaking. It really was a miracle fix. Lacking time, space, and resources, we were able to make use of existing holes and pre-fabricated connectors. After that, the wheel was rock-solid and the chain hasn&#8217;t failed since.</p>
<p>A slightly humorous discourse occurred when I calmly informed two members of the pit crew that the robot would not function next match due to something they forgot to do. I told them it was a stupidly easy fix, sort of like forgetting to plug in the battery (the battery was snugly connected.) They finally figured it out on our way to the queue. It took a little effort to convince them that re-connecting the radio after tethering was not a specialized electronics task that only I knew how to do, but all was well in the end, and the pit crew now knows that plugging in the radio is the responsibility of whoever removes the tether.</p>
<p>Communications issues troubled us in the elimination rounds (that&#8217;s not a spoiler: here, everybody plays in the elims.) The signal light would dim, sometimes going out, as if the robot were drawing power away from it and the radio. I took two stabs in the air at a fix, replacing the radio&#8217;s Ethernet cable and unplugging our famous blue &#8220;we want empty cells&#8221; light. One of them worked, and I don&#8217;t think it was the Ethernet cable. It wasn’t the Ethernet cable that hung down from the robot frame like a spider web, an exposed transistor’s bent legs swaying back and forth as the robot moved.</p>
<p>The competition itself was pretty &#8220;meh.&#8221; With our new dumper, we scored more points, but didn&#8217;t do any better. Our final record was 1-4, and our seed 22. Out of 24.</p>
<p>After the first round of draft picks, we were still on the table. As per the modified Battle o’ Baltimore rules, the second round of drafting was done randomly. As each alliance, starting with the 8<sup>th </sup>seed, drew their final member from a box of numbers, we waited. And waited. Until we were the only team left. We happily joined the #1 seeded alliance.</p>
<p>We lost our first elimination match, and pretty badly too. Rethinking our strategy, we came back to win the next two matches. Focusing on the powerhouse of the opposing alliance, our trailer-less robot was able to keep a tight grip on their scoring and get in a few good dumps of our own. (Another rule change was that only two of the three robots on each alliance would have trailers.) Winning our next two matches, we moved onto the semi-finals.</p>
<p>We won our first match, our trailered partners managing to dodge the opposing team’s super cells. They were a very good team, with one robot dedicated to empty cell transport. We watched closely where they went, and made sure to inform our alliance partners which side to avoid. The final rule change placed a weighted “crab” into one supercell at each station. This cell was worth 25 points if scored, up from the usual 15. Most payload specialist chose not to throw them, as the weight made their flight unpredictable.</p>
<p>We were not so lucky in our next matches, getting scored on heavily and our alliance getting supercelled in our third and final match. We were out of the tournament, though not disappointed, and watched as our victors moved on to the finals, as the blue alliance.</p>
<p>I wouldn’t describe the finals had not something spectacular happened, so please do read on <img src='http://robot.mbhs.edu/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>The first match was a slaughter. Red established itself as the powerhouse of the competition, overflowing both of blue’s trailers. Though empty cells were delivered by blue, all super cells missed their mark.</p>
<p>Fate shifted in the second match. Blue made a comeback, dumping huge numbers of balls into red trailers, and even a super cell to top it off. It appeared one red robot was having some communications problems, which might explain the sudden flip. But wait—there were penalties on blue. Minus twenty points. But that was no problem for blue, who had scored a cool 40 points more than red.</p>
<p>There were timeouts before the third match, and the suspense built. The match started.</p>
<p>Many balls were scored on both alliances, filling up most of the trailers. It was nearing the end of the match. Blue comes from the right to pin a red trailer for massive damage. The pair inadvertently pins a third robot and an empty cell delivery, leaving a tangle in front of the payload station as the clock ticks away. There is no clear winner; things appear pretty tied up.</p>
<p>Ten seconds left. The empty cell manages to squeeze itself past the support bars into the payload area. The payload specialist eagerly retrieves it, exchanging it for a 25 point crab cell.</p>
<p>Five seconds left. He coolly lobs the crab cell over the wall at the red trailer. It’s an easy three-foot shot. He makes it.</p>
<p>He then proceeds to put his hands on his head and stare at the scored super cell with his mouth open. He is on red. He just scored a 25 point super cell against his own alliance. Time runs out.</p>
<p>Final score: 60-43 blue. Blue wins the tournament. A real heartbreaker for the red alliance, who would have won had that super cell missed and landed harmlessly in the crater. Or if it had been a regular super cell without the power of the Maryland crab. But hey, in the end, it’s just a competition. And an offseason one at that. Heck, I’d take “finalist” any day of the week. And our team was rooting for blue to win anyway. No shame in only losing to the champions.</p>
<p>Was BoB worth it? I&#8217;d definitely say so. Could we have done without it? Of course, but that&#8217;s not the point of FIRST. It&#8217;s doing more than what&#8217;s required, to gain experience and expertise. And it&#8217;s actually the only thing the team has done all summer, save administration and our overactive &#8220;teque&#8221; sector. It showed that our student-run team won&#8217;t die when the seniors leave, that the underclassmen are capable of stepping up when duty calls. I think everybody will say it was a positive step for the future of the team.</p>


<p>Related posts:<ul><li><a href='http://robot.mbhs.edu/wordpress/2009/battle-o-balitmore-vs-robotic-arm/' rel='bookmark' title='Permanent Link: Battle o&#8217; Balitmore vs Robotic Arm'>Battle o&#8217; Balitmore vs Robotic Arm</a></li><li><a href='http://robot.mbhs.edu/wordpress/2009/kickoff-13/' rel='bookmark' title='Permanent Link: Kickoff: 1/3/09'>Kickoff: 1/3/09</a></li><li><a href='http://robot.mbhs.edu/wordpress/2009/week-one-1409-1909/' rel='bookmark' title='Permanent Link: Week One: 1/4/09-1/9/09'>Week One: 1/4/09-1/9/09</a></li></ul></p>]]></content:encoded>
			<wfw:commentRss>http://robot.mbhs.edu/wordpress/2009/bob/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MySQL vs PostgreSQL: Benchmarking Data</title>
		<link>http://robot.mbhs.edu/wordpress/2009/mysql-vs-postgresql-benchmarking-data/</link>
		<comments>http://robot.mbhs.edu/wordpress/2009/mysql-vs-postgresql-benchmarking-data/#comments</comments>
		<pubDate>Tue, 18 Aug 2009 17:18:14 +0000</pubDate>
		<dc:creator>Scott</dc:creator>
				<category><![CDATA[Website Development]]></category>
		<category><![CDATA[Coding]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[postgresql]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://robot.mbhs.edu/wordpress/?p=576</guid>
		<description><![CDATA[After looking into migrating to PostgreSQL, which seems to be a popular pastime among database people (migrating, not looking into), I decided to do my own benchmarks.  Here are the results of the simple ones (I have yet to code the complex ones).  I wrote all the code in perl, and ran it [...]


Related posts:<ul><li><a href='http://robot.mbhs.edu/wordpress/2009/writing-a-search-engine-part-2/' rel='bookmark' title='Permanent Link: Writing a Search Engine &#8211; Part 2'>Writing a Search Engine &#8211; Part 2</a></li><li><a href='http://robot.mbhs.edu/wordpress/2009/migrating-mysql-to-postgresql-by-hand/' rel='bookmark' title='Permanent Link: Migrating MySQL to PostgreSQL By Hand'>Migrating MySQL to PostgreSQL By Hand</a></li><li><a href='http://robot.mbhs.edu/wordpress/2009/fading-inout-with-javascript-without-scriptaculous/' rel='bookmark' title='Permanent Link: Fading In/Out with Javascript Without Scriptaculous'>Fading In/Out with Javascript Without Scriptaculous</a></li></ul>]]></description>
			<content:encoded><![CDATA[<p>After looking into migrating to PostgreSQL, which seems to be a popular pastime among database people (migrating, not looking into), I decided to do my own benchmarks.  Here are the results of the simple ones (I have yet to code the complex ones).  I wrote all the code in perl, and ran it on <a href="http://quentin.mbhs.edu/">quentin</a>.  I use InnoDB for mysql, with defaults, and everything default on postgres.</p><span id="more-576"></span>
<pre>
scott@quentin:~/benchmarking$ psql --version
psql (PostgreSQL) 8.3.7
contains support for command-line editing
scott@quentin:~/benchmarking$ mysql --version
mysql  Ver 14.12 Distrib 5.0.51a, for debian-linux-gnu (powerpc) using readline 5.2
scott@quentin:~/benchmarking$ uname -a
Linux quentin 2.6.26-2-powerpc #1 Thu May 28 21:45:49 UTC 2009 ppc GNU/Linux
scott@quentin:~/benchmarking$ mysql -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 279
Server version: 5.0.51a-24+lenny1 (Debian)

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> use benchmarking;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> describe simple;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| K     | varchar(10) | NO   | MUL | NULL    |       |
| Value | varchar(10) | NO   |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)

mysql> exit
Bye
scott@quentin:~/benchmarking$ psql benchmarking
Welcome to psql 8.3.7, the PostgreSQL interactive terminal.

Type:  \copyright for distribution terms
       \h for help with SQL commands
       \? for help with psql commands
       \g or terminate with semicolon to execute query
       \q to quit

benchmarking=# \d simple
           Table "public.simple"
 Column |         Type          | Modifiers
--------+-----------------------+-----------
 k      | character varying(10) | not null
 value  | character varying(10) | not null
Indexes:
    "key" btree (k)

benchmarking=# \q
scott@quentin:~/benchmarking$ all
MySQL Benchmarks:
Connecting...  took 0.128844022750854 seconds
Preparing tables...  took 0.0636351108551025 seconds
Compiling random numbers to insert...  took 0.485441923141479 seconds
Performing 50,000 simple INSERTs...
  took 64.5562191009521 seconds
Performing 200 simple SELECTs from index...
  took 43.9555008411407 seconds
Performing 200 simple SELECTs without index...
  took 42.9843010902405 seconds
Disconnecting...  took 0.000300168991088867 seconds

PostgreSQL Benchmarks:
Connecting...
  took 0.140900135040283 seconds
Preparing tables...
  took 0.100701093673706 seconds
Compiling random numbers to insert...
  took 0.484206199645996 seconds
Performing 50,000 simple INSERTs...
  took 95.7518320083618 seconds
Performing 200 simple SELECTs from index...
  took 0.144593954086304 seconds
Performing 200 simple SELECTs without index...
  took 12.3661141395569 seconds
Disconnecting...
  took 0.000296115875244141 seconds
scott@quentin:~/benchmarking$
</pre>

<p>Related posts:<ul><li><a href='http://robot.mbhs.edu/wordpress/2009/writing-a-search-engine-part-2/' rel='bookmark' title='Permanent Link: Writing a Search Engine &#8211; Part 2'>Writing a Search Engine &#8211; Part 2</a></li><li><a href='http://robot.mbhs.edu/wordpress/2009/migrating-mysql-to-postgresql-by-hand/' rel='bookmark' title='Permanent Link: Migrating MySQL to PostgreSQL By Hand'>Migrating MySQL to PostgreSQL By Hand</a></li><li><a href='http://robot.mbhs.edu/wordpress/2009/fading-inout-with-javascript-without-scriptaculous/' rel='bookmark' title='Permanent Link: Fading In/Out with Javascript Without Scriptaculous'>Fading In/Out with Javascript Without Scriptaculous</a></li></ul></p>]]></content:encoded>
			<wfw:commentRss>http://robot.mbhs.edu/wordpress/2009/mysql-vs-postgresql-benchmarking-data/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>FIRST Notes from a College Road Trip</title>
		<link>http://robot.mbhs.edu/wordpress/2009/first-notes-from-a-college-road-trip/</link>
		<comments>http://robot.mbhs.edu/wordpress/2009/first-notes-from-a-college-road-trip/#comments</comments>
		<pubDate>Fri, 14 Aug 2009 02:03:26 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[college]]></category>
		<category><![CDATA[FIRST]]></category>
		<category><![CDATA[Gyro]]></category>
		<category><![CDATA[kart]]></category>
		<category><![CDATA[scholorships]]></category>

		<guid isPermaLink="false">http://robot.mbhs.edu/wordpress/?p=572</guid>
		<description><![CDATA[I&#8217;ve been touring colleges in the North East for a few days now, and, amazingly, FIRST and related things seem to pop up at the most unexpected times!
At Rochester Institute of Technology, I was looking through the list of merit scholarships when one in particular caught my eye.  The FIRST Robotics scholarship at RIT [...]


Related posts:<ul><li><a href='http://robot.mbhs.edu/wordpress/2009/week-five-13109-2609/' rel='bookmark' title='Permanent Link: Week Five: 1/31/09 &#8211; 2/6/09'>Week Five: 1/31/09 &#8211; 2/6/09</a></li><li><a href='http://robot.mbhs.edu/wordpress/2008/thursday-the-6th/' rel='bookmark' title='Permanent Link: Thursday the 6th'>Thursday the 6th</a></li><li><a href='http://robot.mbhs.edu/wordpress/2008/thursday-april-24/' rel='bookmark' title='Permanent Link: Thursday April 24'>Thursday April 24</a></li></ul>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been touring colleges in the North East for a few days now, and, amazingly, <i>FIRST</i> and related things seem to pop up at the most unexpected times!</p>
<p>At Rochester Institute of Technology, I was looking through the list of merit scholarships when one in particular caught my eye.  The FIRST Robotics scholarship at RIT awards $6,000 a year <b>simply for being on a FIRST team in high school.</b>  I.e., you could come in with a 2.0 GPA (unlikely) to study English (also unlikely), but so long as you were on a FIRST team in high school, you are eligible for this scholarship.</p>
<p>I want to give a shout-out to team 424, whose captain I met today at Cornell.  He guessed I was on a FIRST team by my team T-shirt (I somehow accumulated 3 of them this year, so I&#8217;m wearing them to most of the bigger name colleges I&#8217;m visiting).</p>
<p>In an engineering building at Cornell, there was a display of mechanical devices.  One of which was a model of a gyroscope, which had a caption that puts to rest once and for all whether a reaction wheel is more effective than a gyroscope: &#8220;&#8230;reaction wheels, apply torque simply by changing the rotor spin speed, but CMG (fancy acronym for gyropscope) are far more power efficient.  For a few hundred Watts and about 100 kg of mass, llarge CMGs have produced thousands of Nm of torque, enough to flip over an SUV.  A reaction wheel of similar capability would require <b>megawatts of power</b>.</p>
<p>Finally, in a nearby hall, I spotted more or less our cart design, except actually fabricated!  That&#8217;s right, a group at Cornell built a crab drive cart that carries land mine detection equipment.  Needless to say, I took plenty of pictures for later review.</p>
<p>I&#8217;ll be back sometime after Battle o&#8217; Baltimore.  Who knows how many more times I&#8217;ll see FIRST related things before then!</p>

<p>Related posts:<ul><li><a href='http://robot.mbhs.edu/wordpress/2009/week-five-13109-2609/' rel='bookmark' title='Permanent Link: Week Five: 1/31/09 &#8211; 2/6/09'>Week Five: 1/31/09 &#8211; 2/6/09</a></li><li><a href='http://robot.mbhs.edu/wordpress/2008/thursday-the-6th/' rel='bookmark' title='Permanent Link: Thursday the 6th'>Thursday the 6th</a></li><li><a href='http://robot.mbhs.edu/wordpress/2008/thursday-april-24/' rel='bookmark' title='Permanent Link: Thursday April 24'>Thursday April 24</a></li></ul></p>]]></content:encoded>
			<wfw:commentRss>http://robot.mbhs.edu/wordpress/2009/first-notes-from-a-college-road-trip/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>First &#8220;Build&#8221; Meeting of the 2009 Offseason</title>
		<link>http://robot.mbhs.edu/wordpress/2009/first-build-meeting-of-the-2009-offseason/</link>
		<comments>http://robot.mbhs.edu/wordpress/2009/first-build-meeting-of-the-2009-offseason/#comments</comments>
		<pubDate>Fri, 07 Aug 2009 01:26:22 +0000</pubDate>
		<dc:creator>Eric</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Battle o' Baltimore]]></category>
		<category><![CDATA[Offseason]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Robotic arm]]></category>
		<category><![CDATA[Team 449]]></category>

		<guid isPermaLink="false">http://robot.mbhs.edu/wordpress/2009/first-build-meeting-of-the-2009-offseason/</guid>
		<description><![CDATA[
&#8220;If this explodes, we&#8217;re going to have video of your epic demise.&#8221;
So commented one team member on my attempt to run a CIM motor off an 18v drill battery using 22 guage wire.
Such was the atmosphere at our third summer meeting, hosted at my house, in preparation for the Battle o&#8217; Baltimore. Our main goal [...]


Related posts:<ul><li><a href='http://robot.mbhs.edu/wordpress/2009/meeting-1-at-katherines-house-july-20/' rel='bookmark' title='Permanent Link: Meeting #1 at Katherine&#8217;s House (July 20)'>Meeting #1 at Katherine&#8217;s House (July 20)</a></li><li><a href='http://robot.mbhs.edu/wordpress/2009/bob/' rel='bookmark' title='Permanent Link: Success and Failure at the 2009 Battle o&#8217; Baltimore'>Success and Failure at the 2009 Battle o&#8217; Baltimore</a></li><li><a href='http://robot.mbhs.edu/wordpress/2009/week-one-1409-1909/' rel='bookmark' title='Permanent Link: Week One: 1/4/09-1/9/09'>Week One: 1/4/09-1/9/09</a></li></ul>]]></description>
			<content:encoded><![CDATA[
<p>&#8220;If this explodes, we&#8217;re going to have video of your epic demise.&#8221;</p>
<p>So commented one team member on my attempt to run a CIM motor off an 18v drill battery using 22 guage wire.</p>
<p>Such was the atmosphere at our third summer meeting, hosted at my house, in preparation for the Battle o&#8217; Baltimore. Our main goal was to replace the robot&#8217;s sub-par shooter with a simple hopper and roller with which to &#8220;dump&#8221; orbit balls.</p>
<p>The dumper design was considered during competition season and mostly built (as our witholding allowance) but was scrapped in favor of a catapult. We thought it would be a good idea to give it try at the Battle. After negotiating our way into the backroom at school, we collected the dumper scraps so the dumper could have a second chance at life. Disassembling the shooter was done quickly, and resurrecting the dumper was not difficult. 80% of the work was completed the first day.</p>
<p>The four people who decided they didn&#8217;t want to go home for the night slept with the robot in the basement. We were back at work 10 AM Sunday morning. A few bent pieces of flat stock and more than a few zipties later, the dumper was in working condition. For the rest of the day, the hum of tools and robot work was accompanied by the clatter of pool balls and sharp pings of air hockey pucks. A few mechanical bugs were worked out, which entailed a new gearbox and mounting plate. Some minor adjustments ensured that our rear wheel chain would stop ejecting itself.</p>
<p>Most students floated between game-playing and robot-building, but some chose to work on other projects. The fate of the programming subteam was discussed at length, and design work was done on the rumored &#8220;arm&#8221; that will be the pinnacle of our training program. Some people even found time to cut the pieces for a second modular battery charger.</p>
<p>While the bulk of the work is over, we will be meeting here again this Saturday. This time, the focus will be on the robotic arm and offseason projects, as well as some administrative work for the upcoming school year.</p>
<p>And just so you stop wondering, my ad-hoc wiring job didn&#8217;t explode.</p>


<p>Related posts:<ul><li><a href='http://robot.mbhs.edu/wordpress/2009/meeting-1-at-katherines-house-july-20/' rel='bookmark' title='Permanent Link: Meeting #1 at Katherine&#8217;s House (July 20)'>Meeting #1 at Katherine&#8217;s House (July 20)</a></li><li><a href='http://robot.mbhs.edu/wordpress/2009/bob/' rel='bookmark' title='Permanent Link: Success and Failure at the 2009 Battle o&#8217; Baltimore'>Success and Failure at the 2009 Battle o&#8217; Baltimore</a></li><li><a href='http://robot.mbhs.edu/wordpress/2009/week-one-1409-1909/' rel='bookmark' title='Permanent Link: Week One: 1/4/09-1/9/09'>Week One: 1/4/09-1/9/09</a></li></ul></p>]]></content:encoded>
			<wfw:commentRss>http://robot.mbhs.edu/wordpress/2009/first-build-meeting-of-the-2009-offseason/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ferocious Zip Ties</title>
		<link>http://robot.mbhs.edu/wordpress/2009/ferocious-zip-ties/</link>
		<comments>http://robot.mbhs.edu/wordpress/2009/ferocious-zip-ties/#comments</comments>
		<pubDate>Tue, 04 Aug 2009 19:09:55 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[Mechanics]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[build season]]></category>
		<category><![CDATA[safety]]></category>
		<category><![CDATA[Team 449]]></category>
		<category><![CDATA[zipties]]></category>

		<guid isPermaLink="false">http://robot.mbhs.edu/wordpress/?p=565</guid>
		<description><![CDATA[Never hold a zip tie by its tail (the long end) and use it like a whip to hit someone with the head (the square end that you can feed the head through).  Especially never do this to the president of your robotics team.


Related posts:<ul><li><a href='http://robot.mbhs.edu/wordpress/2009/week-three-11709-12109/' rel='bookmark' title='Permanent Link: Week Three: 1/17/09-1/21/09'>Week Three: 1/17/09-1/21/09</a></li><li><a href='http://robot.mbhs.edu/wordpress/2009/week-four-12209-13009/' rel='bookmark' title='Permanent Link: Week Four: 1/22/09-1/30/09'>Week Four: 1/22/09-1/30/09</a></li><li><a href='http://robot.mbhs.edu/wordpress/2009/week-one-1409-1909/' rel='bookmark' title='Permanent Link: Week One: 1/4/09-1/9/09'>Week One: 1/4/09-1/9/09</a></li></ul>]]></description>
			<content:encoded><![CDATA[<p><b>WARNING: Never hold a zip tie by its tail (the long, flat end) and use it like a whip to hit someone with the head (the square end that you can feed the tail through).</b></p>
<p>This happened to me on Sunday where, upon arriving, I was attacked by a bored <s>freshman</s> sophomore.  It kind of stung, but I didn&#8217;t think anything of it&#8230; until I started trying to work on planning pre-season lessons.  That&#8217;s when I noticed my hand was bleeding in several places (5, to be precise).  I had to go upstairs to have Eric&#8217;s mom put some antiseptic on my hand (I don&#8217;t trust sophomore boys to keep their hands clean.  Heck, I don&#8217;t trust <i>me</i> to keep my hands clean).</p>
<p>Needless to say, I was kind of pissed.</p>
<p>On the plus side, I managed to work with Daniel to get most of the training schedule for next year set.  We have 12 days this year, up from 9 last year (just how school scheduling works out) (hooray!).</p>
<p>Training this year is going to be a LOT more hands on than last year.  Half the sessions are reserved for hands on practice, including wiring and programming a robotic arm and building a set of drive trains.  Hopefully everyone will come out of training ready to head straight into Build Season (or at the very least, know the difference between a bolt and a nut).</p>

<p>Related posts:<ul><li><a href='http://robot.mbhs.edu/wordpress/2009/week-three-11709-12109/' rel='bookmark' title='Permanent Link: Week Three: 1/17/09-1/21/09'>Week Three: 1/17/09-1/21/09</a></li><li><a href='http://robot.mbhs.edu/wordpress/2009/week-four-12209-13009/' rel='bookmark' title='Permanent Link: Week Four: 1/22/09-1/30/09'>Week Four: 1/22/09-1/30/09</a></li><li><a href='http://robot.mbhs.edu/wordpress/2009/week-one-1409-1909/' rel='bookmark' title='Permanent Link: Week One: 1/4/09-1/9/09'>Week One: 1/4/09-1/9/09</a></li></ul></p>]]></content:encoded>
			<wfw:commentRss>http://robot.mbhs.edu/wordpress/2009/ferocious-zip-ties/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
