<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;CUAFRH8_eip7ImA9WhVUFEQ.&quot;"><id>tag:blogger.com,1999:blog-2721499664417059501</id><updated>2012-05-19T20:01:55.142-10:00</updated><category term="voting" /><category term="Web Augmentation" /><category term="knowledge" /><category term="beginning programming" /><category term="curriculum" /><category term="Craigslist" /><category term="communication skills" /><category term="DNS" /><category term="Technology" /><category term="web hosting" /><category term="collaboration" /><category term="Amazon" /><category term="Rails" /><category term="success" /><category term="mormon" /><category term="AJAX" /><category term="editors" /><category term="eBay" /><category term="favorite course" /><category term="message boards" /><category term="drag and drop" /><category term="Kynetx" /><category term="wordpress" /><category term="Teaching" /><category term="pagination" /><category term="RESTful" /><category term="blogger" /><category term="oo programming" /><category term="Graphics" /><category term="Shopping" /><category term="belief systems" /><category term="book review" /><category term="wordpress plugins" /><category term="App Store" /><category term="command line" /><category term="Miscellaneous" /><category term="online whiteboard" /><category term="iPad" /><category term="instant messages" /><category term="Facebook" /><category term="Religion" /><category term="comments" /><title>Tecno-pedagogia</title><subtitle type="html">Chris Slade's Random Thoughts on Technology, Education, and Other Topics</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://www.christopherslade.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://www.christopherslade.com/" /><author><name>Chris Slade</name><uri>https://profiles.google.com/112952901297949086888</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-eVWOVzYOCTY/AAAAAAAAAAI/AAAAAAAACc4/2b6a3wdDxvg/s512-c/photo.jpg" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>25</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/Tecno-pedagogia" /><feedburner:info uri="tecno-pedagogia" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;DkcFSHs-fSp7ImA9WhRTFE4.&quot;"><id>tag:blogger.com,1999:blog-2721499664417059501.post-8951350656185964873</id><published>2011-11-04T09:13:00.004-10:00</published><updated>2011-11-04T09:13:39.555-10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-04T09:13:39.555-10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Technology" /><category scheme="http://www.blogger.com/atom/ns#" term="Rails" /><title>Getting delayed_job to Work with Rbenv and Mongoid</title><content type="html">&lt;a href="https://github.com/sstephenson/rbenv"&gt;Rbenv&lt;/a&gt; is another option that we can use besides &lt;a href="http://beginrescueend.com/"&gt;RVM&lt;/a&gt;&amp;nbsp;to be able to manage different Ruby versions. &amp;nbsp;I have always struggled getting RVM to manage everything right, from gemsets to bundles. Since &lt;a href="http://gembundler.com/"&gt;Bundler&lt;/a&gt;&amp;nbsp;manages your gems and dependencies for you, gemsets are just an extra layer that caused me a bunch of problems. &amp;nbsp;So I switched to Rbenv for my production environment. &amp;nbsp;All went well except&amp;nbsp;&lt;a href="http://blog.leetsoft.com/delayed_job/"&gt;delayed_job&lt;/a&gt;. It would work just fine with&amp;nbsp;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;rake jobs:work&lt;/span&gt;, but&amp;nbsp;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;script/delayed_job start&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt;would start just fine, but wouldn't pull anything from the database. I am using &lt;a href="http://mongoid.org/"&gt;Mongoid&lt;/a&gt;, so I assumed that the script was defaulting to the sqlite database.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt;Well, I looked at the script and noticed that their was a shebang at the top mentioning ruby (&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;#!/usr/bin/env ruby&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt;). I just changed it from &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;ruby&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt; to &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;ruby-local-exec&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt;&amp;nbsp;and it started working again! This made the script run in the bundled environment and pick up on that fact that I am using Mongoid instead of sqlite. Hope this helps someone.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2721499664417059501-8951350656185964873?l=www.christopherslade.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/HAIq61qnEf7gGAfGqsmVVhUjUbc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/HAIq61qnEf7gGAfGqsmVVhUjUbc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/HAIq61qnEf7gGAfGqsmVVhUjUbc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/HAIq61qnEf7gGAfGqsmVVhUjUbc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Tecno-pedagogia/~4/DKDajwACnyc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.christopherslade.com/feeds/8951350656185964873/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.christopherslade.com/2011/11/getting-delayedjob-to-work-with-rbenv.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2721499664417059501/posts/default/8951350656185964873?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2721499664417059501/posts/default/8951350656185964873?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Tecno-pedagogia/~3/DKDajwACnyc/getting-delayedjob-to-work-with-rbenv.html" title="Getting delayed_job to Work with Rbenv and Mongoid" /><author><name>Chris Slade</name><uri>https://profiles.google.com/112952901297949086888</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-eVWOVzYOCTY/AAAAAAAAAAI/AAAAAAAACc4/2b6a3wdDxvg/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.christopherslade.com/2011/11/getting-delayedjob-to-work-with-rbenv.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkQHRXkzcCp7ImA9WhdaFUU.&quot;"><id>tag:blogger.com,1999:blog-2721499664417059501.post-6021402155284632976</id><published>2011-10-25T10:17:00.001-10:00</published><updated>2011-10-25T14:18:54.788-10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-25T14:18:54.788-10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="editors" /><category scheme="http://www.blogger.com/atom/ns#" term="Rails" /><title>Another Rails Editor and User Authentication</title><content type="html">Just another update for any of my past students following along. &amp;nbsp;&lt;a href="http://redcareditor.com/"&gt;Redcar&lt;/a&gt; seems to have won over all of the students as their favorite Rails editor. &amp;nbsp;To install it, you just type "gem install redcar". &amp;nbsp;It looks pretty promising. &amp;nbsp;The students found it on their own, and preferred it to &lt;a href="http://www.sublimetext.com/blog/articles/sublime-text-2-beta"&gt;Sublime Text Edit&lt;/a&gt;, mostly because it's free and doesn't ask you to pay for it every 10 minutes.&lt;br /&gt;
&lt;br /&gt;
Also, we have been working on developing authentication systems, and the following &lt;a href="http://railscasts.com/"&gt;Railscasts.com&lt;/a&gt;&amp;nbsp;videos are videos that I have been using for the class.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://railscasts.com/episodes/270-authentication-in-rails-3-1"&gt;http://railscasts.com/episodes/270-authentication-in-rails-3-1&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
and&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://railscasts.com/episodes/274-remember-me-reset-password"&gt;http://railscasts.com/episodes/274-remember-me-reset-password&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2721499664417059501-6021402155284632976?l=www.christopherslade.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/MOYGnhPiWTPDHhMYJNfvAeZTaGo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/MOYGnhPiWTPDHhMYJNfvAeZTaGo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/MOYGnhPiWTPDHhMYJNfvAeZTaGo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/MOYGnhPiWTPDHhMYJNfvAeZTaGo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Tecno-pedagogia/~4/xj2pwRdCQ7E" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.christopherslade.com/feeds/6021402155284632976/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.christopherslade.com/2011/10/another-rails-editor-and-user.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2721499664417059501/posts/default/6021402155284632976?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2721499664417059501/posts/default/6021402155284632976?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Tecno-pedagogia/~3/xj2pwRdCQ7E/another-rails-editor-and-user.html" title="Another Rails Editor and User Authentication" /><author><name>Chris Slade</name><uri>https://profiles.google.com/112952901297949086888</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-eVWOVzYOCTY/AAAAAAAAAAI/AAAAAAAACc4/2b6a3wdDxvg/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.christopherslade.com/2011/10/another-rails-editor-and-user.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUcGQHs_cSp7ImA9WhVXFk0.&quot;"><id>tag:blogger.com,1999:blog-2721499664417059501.post-7919171787478655080</id><published>2011-10-25T00:04:00.001-10:00</published><updated>2012-04-16T10:10:21.549-10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-04-16T10:10:21.549-10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="wordpress" /><category scheme="http://www.blogger.com/atom/ns#" term="Technology" /><category scheme="http://www.blogger.com/atom/ns#" term="blogger" /><category scheme="http://www.blogger.com/atom/ns#" term="web hosting" /><title>Migrating from Wordpress to Blogger</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-i0Qp6z9oCBc/TqKihn5DD6I/AAAAAAAACp4/0zmld8hSQ9M/s1600/download.jpeg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="200" src="http://2.bp.blogspot.com/-i0Qp6z9oCBc/TqKihn5DD6I/AAAAAAAACp4/0zmld8hSQ9M/s200/download.jpeg" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;
Here are some detailed instructions on how I moved my blog from Wordpress to Blogger, including how to get my old Wordpress links to redirect to my new blogger style links. &amp;nbsp;I would like to thank Jesse Stay for his &lt;a href="http://www.staynalive.com/2011/05/why-as-developer-i-switched-to.html"&gt;blog post&lt;/a&gt; that convinced me to switch and gave me a head start in the process. &amp;nbsp;After the switch, I also learned that Google+ will integrate with Blogger, so that is even more of an incentive.&lt;br /&gt;
&lt;br /&gt;
This should work with a self-hosted Wordpress blog and a Wordpress.com blog. &amp;nbsp;If you don't have your own domain, you can transfer your blog to Blogger, but you will not be able to preserve and redirect your old links.&lt;br /&gt;
&lt;br /&gt;
Before you begin, you might want to use &lt;a href="http://opendns.com/"&gt;OpenDNS&lt;/a&gt; for your DNS on your local machine. You can refresh the DNS cache at any time, so you can see your changes immediately instead of waiting up to 2 days for the DNS cache to expire. Plus using OpenDNS &lt;a href="http://www.christopherslade.com/2010/10/internet-running-slow-try-opendns.html"&gt;has many&amp;nbsp;benefits&lt;/a&gt;. Instruction for configuring your local machine to use OpenDNS can be found &lt;a href="http://www.opendns.com/support/videos/"&gt;here&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Also, if you want to redirect your old Wordpress style URL's to your new Blogger style URL's you will need a server somewhere that will handle the redirections. &amp;nbsp;If you don't have one, you can use &lt;a href="http://heroku.com/"&gt;Heroku&lt;/a&gt; for free. &amp;nbsp;I will show you how to set it up, but you will need &lt;a href="http://git-scm.com/"&gt;Git&lt;/a&gt;, and &lt;a href="http://www.ruby-lang.org/en/"&gt;Ruby&lt;/a&gt; installed on your machine. &amp;nbsp;Mac users already have ruby installed (they might need to install x-code from the app-store), and they can get git from &lt;a href="http://code.google.com/p/git-osx-installer/"&gt;here&lt;/a&gt;. &amp;nbsp;I also recommend installing &lt;a href="http://beginrescueend.com/rvm/install/"&gt;RVM&lt;/a&gt; to install Ruby version 1.9.2. Window's users can get Ruby and Git (and a lot of extras) from &lt;a href="http://railsinstaller.org/"&gt;railsinstaller.org&lt;/a&gt;. You only need Ruby, Git, and Bundler, so you don't have to install all of the packages. I don't have a Windows machine to try it out, so this is just my best guess.&lt;br /&gt;
&lt;br /&gt;
We will be doing the following steps to make the transfer from Wordpress to Blogger:&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;Exporting the posts and data out of Wordpress and importing them into Blogger.&lt;/li&gt;
&lt;li&gt;Configure Blogger to meet our needs.&lt;/li&gt;
&lt;li&gt;Set up a redirection server that will redirect Wordpress style links to Blogger style links.&lt;/li&gt;
&lt;li&gt;Transfer the domain from Wordpress to Blogger.&lt;/li&gt;
&lt;li&gt;Install Disqus comments (if you want to use it) on Blogger and migrate all of the discussions.&lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt;
I organized the steps to reduce the amount of downtime your blog will face. You should be able to keep the blog up the full time, but your readers might not be able to comment until the DNS changes have fully&amp;nbsp;propagated. Also, you will lose all of your Facebook likes and +1's, except on your main domain. &amp;nbsp;Facebook/Google will not follow your redirections and combine the old Likes/+1's with your new ones. &amp;nbsp;If this is unacceptable, then you will need to stay with Wordpress.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;Exporting your posts from Wordpress and importing them into Blogger.&lt;/b&gt;&lt;br /&gt;
To export your Wordpress post and import them into Blogger just follow &lt;a href="http://wordpress2blogger.appspot.com/"&gt;these instructions&lt;/a&gt;. My blog was less than 1MB, but if you have a bigger blog, you will have to download the converters and run them manually. More details on that process can be found &lt;a href="http://google-blog-converters-appengine.googlecode.com/svn/trunk/README.txt"&gt;here&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
You should create a new Blogger blog, and don't worry about the blogspot.com URL if you have your own domain. Once it is up you can change the URL to the right domain. After you import your Blogger file, you should see all of your posts and comments. They will all be drafts, and you can select them all and publish them.&lt;br /&gt;
&lt;br /&gt;
There are a few things that might be a lot of work after you complete this step. First of all, all the pictures will work, but only until you move your domain to Blogger. They are pointing to your Wordpress blog, so once your domain is moved over, they will stop working. You will need to get them off of your old blog and upload them to Blogger, or somehow host them on your redirection server. I didn't have many picutres, so I just uploaded them to Blogger, but I will describe how you can host them on the redirection server. Also, on Blogger, your urls will be missing words like "the", "a", and "with". Which will create a little bit more work down the road, but I'm not sure if you can do anything about that.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Configure Blogger&lt;/b&gt;&lt;br /&gt;
You can look at all of the settings. &amp;nbsp;I wouldn't set your domain until after you have the redirections in place. You can also take the time to edit the layout and add widgets to the side. &amp;nbsp;Make sure your happy with how it looks, so you will know if you want to continue or not. Your Wordpress blog should still be up. You can also add your Facebook like buttons I described in the &lt;a href="http://www.christopherslade.com/2011/10/i-moved-to-blogger.html"&gt;previous post&lt;/a&gt;. &amp;nbsp;Don't install Disqus until after you have your redirections in place either.&lt;br /&gt;
&lt;br /&gt;
Now is also a good time to follow&amp;nbsp;&lt;a href="http://www.labnol.org/internet/author-profile-in-google/19775/"&gt;these instructions&lt;/a&gt;&amp;nbsp;to get your author picture in your search results. &amp;nbsp;You can also see&amp;nbsp;&lt;a href="http://www.google.com/support/webmasters/bin/answer.py?answer=1408986"&gt;Google's instructions&lt;/a&gt;&amp;nbsp;as well. &amp;nbsp;What I did was create an&amp;nbsp;&lt;i&gt;About page&lt;/i&gt;&amp;nbsp;and linked to it with a text widget (not the page's widget) that is included on all pages in my blog. I edited the HTML to include the a link with rel="author" in it. On the&amp;nbsp;&lt;a href="http://www.christopherslade.com/p/about_21.html"&gt;About page&lt;/a&gt;, I have a picture, short bio, and a link to my Google+ profile with rel="me". Make sure the Google+ link begins or ends with a +, or is a&amp;nbsp;&lt;a href="http://www.google.com/webmasters/profilebutton/"&gt;profile button&lt;/a&gt;, with rel="me" in the anchor tag (not rel="author").&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Set up your redirections&lt;/b&gt;&lt;br /&gt;
To redirect your Wordpress style URL's to your new Blogger blog, you will need a server to handle the redirections. If you have an Apache server, you can use the rewrite mod to create the redirections. Below is a sample .htaccess file that I used to redirect my links. &amp;nbsp;You will need to customize it for your domain. &amp;nbsp;The redirection server needs to be a sub-domain of your domain. So if you host your blog at www.example.com or blog.example.com, your redirection server needs to be something.example.com (I used old.christopherslade.com).&lt;br /&gt;
&lt;br /&gt;
Here is the &lt;a href="https://gist.github.com/1311803" target="_blank"&gt;.htaccess file&lt;/a&gt; I used before I thought about using Heroku.&lt;br /&gt;
&lt;script src="https://gist.github.com/1311803.js?file=.htaccess"&gt;
&lt;/script&gt;&lt;br /&gt;
The .htaccess file includes redirections for my author page, about page, categories, tags, the feed, and the posts. &amp;nbsp;In Blogger, there are just labels, so both categories and tags redirect to the label pages. I also had to add in some rules to redirect posts where Blogger didn't include words like "the" and "a" in the URL. &amp;nbsp;You will need to search for these and add in those redirections as well.&lt;br /&gt;
&lt;br /&gt;
If you don't have a server to host the redirections&amp;nbsp;(I migrated to ditch the server), you can use Heroku for free. &amp;nbsp;When I was trying out different blog solutions, I ran across &lt;a href="https://github.com/cloudhead/toto"&gt;toto&lt;/a&gt;&amp;nbsp;and learned a little about &lt;a href="http://rack.rubyforge.org/"&gt;Rack&lt;/a&gt;. &amp;nbsp;Since I develop in Rails, I really wanted to make toto work, but I couldn't easily migrate my posts. But I did learn enough to know that I could use Rack to redirect URL's. I created a simple Rack app that would redirect the URL's, and even host some static assets. You can use this app to redirect your URL's and even host your pictures from Wordpress.&lt;br /&gt;
&lt;br /&gt;
I uploaded &lt;a href="https://github.com/crslade/wp2blogger-redirector"&gt;my app&lt;/a&gt; onto Github. &amp;nbsp;If you want to use it, just clone it and change the config.ru file. Again, you will need Git, Ruby, and Bundler installed on your machine. You can then use Heroku to host your redirection server. &amp;nbsp;Here is my config.ru file that you will need to change:&lt;br /&gt;
&lt;script src="https://gist.github.com/1311852.js?file=config.ru"&gt;
&lt;/script&gt;&lt;/div&gt;
&lt;div&gt;
You should change the root to your domain, and then change the author page. You can remove my specific post redirections and add in your own.&lt;br /&gt;
&lt;br /&gt;
To pull the code to your machine, in the terminal or commad prompt type:&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;git clone&amp;nbsp;https://github.com/crslade/wp2blogger-redirector.git&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt;&amp;nbsp;Then you should have a wp2blogger-redirector directory. &amp;nbsp;Change into the directory and edit the config.ru file. &amp;nbsp;You can test it by typing in the terminal or command prompt: &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;rackup&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt;. &amp;nbsp;This will start the server on your local machine. &amp;nbsp;Then in a browser goto http://localhost:9292. You should see "Nothing Here". You can then type the Wordpress URL after the :9292 (like http://localhost:9292/2011/09/blog-post/) and you should be redirected to the right URL (http://www.youdomain.com/2011/09/blog-post.html). &amp;nbsp;As you fix things, remember that your browser will cache the redirections, so you need to clear the browser cache if something goes wrong and you want to retest it. &amp;nbsp;Also, every time you make a change to config.ru, you will have to kill the server and start it up again (Control-C, and then type rackup again), or install the shotgun gem ("gem install shotgun"). &amp;nbsp;Then you can launch the server by typing: &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;shotgun&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt;. &amp;nbsp;It will start the server on 9393 instead of 9292, and you shouldn't need to restart it after changing the config.ru file (but if things aren't working you might want to try restarting it before you pull all your hair out).&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt;You can also add in your old pictures by copying the /wp-content/uploads directory into the public directory. You will also need to add in the /wp-content to be served statically. To do this change line 3 in the config.ru file to be:&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="background-color: white; font-family: 'Bitstream Vera Sans Mono', Courier, monospace; font-size: 12px; line-height: 16px; white-space: pre;"&gt;&lt;span class="n" style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;use&lt;/span&gt; &lt;span class="no" style="color: teal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Rack&lt;/span&gt;&lt;span class="o" style="font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;::&lt;/span&gt;&lt;span class="no" style="color: teal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Static&lt;/span&gt;&lt;span class="p" style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;,&lt;/span&gt; &lt;span class="ss" style="color: #990073; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;:urls&lt;/span&gt; &lt;span class="o" style="font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="o" style="font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;[&lt;/span&gt;&lt;span class="s1" style="color: #dd1144; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;'/index.html'&lt;/span&gt;&lt;span class="p" style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;,&lt;/span&gt; &lt;span class="s1" style="color: #dd1144; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;'/favicon.ico', '/wp-content'&lt;/span&gt;&lt;span class="o" style="font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;]&lt;/span&gt;&lt;span class="p" style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;,&lt;/span&gt; &lt;span class="ss" style="color: #990073; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;:root&lt;/span&gt; &lt;span class="o" style="font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1" style="color: #dd1144; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;'public'&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="background-color: white; font-family: 'Bitstream Vera Sans Mono', Courier, monospace; font-size: 12px; line-height: 16px; white-space: pre;"&gt;&lt;span class="s1" style="color: #dd1144; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt;You can also test to make sure the server serves your old pictures. Heroku will only let you use 100MB in disk space. &amp;nbsp;So you might need to delete some pictures. Wordpress does store several sizes of pictures, and you can remove all of the sizes you don't use on your blog.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt;After you get the redirection server working locally, you can push it to Heroku.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt;To commit the changes locally, type:&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;git add -A&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;git commit -m "some message"&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt;Then create an account on &lt;a href="http://heroku.com/"&gt;Heroku&lt;/a&gt;. You can follow &lt;a href="http://devcenter.heroku.com/articles/quickstart"&gt;these instructions&lt;/a&gt;&amp;nbsp;to launch your server on Heroku. &amp;nbsp;Don't worry about bootstraping your database, you don't have one. In summary type the following:&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;heroku create&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;git push heroku master&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt;If everything worked your redirection server should be live. Test it by typing heroku open, and you should see it in your browser. Remember the URL, because you will need it when changing your DNS.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt;&lt;b&gt;Migrate your domain to blogger&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt;Now you are ready to migrate your domain. &amp;nbsp;First create a CNAME record in your DNS to point old.domainname.com to Heroku, and follow &lt;a href="http://devcenter.heroku.com/articles/custom-domains"&gt;these instructions&lt;/a&gt; for adding the subdomain to your Heroku app (you are probably not on the Cedar stack). &amp;nbsp;You only need to add one subdomain, not your full site. &amp;nbsp; &amp;nbsp;While you are at it, you can now point your main domain (or a subdomain) at your new blog and edit your new blog's settings to add your domain. &amp;nbsp;It's under &lt;b&gt;Settings -&amp;gt; Basic. &lt;/b&gt;You will also want to add a missing files host, and put in "old" (if you used old.domainname.com) for the name of the host. &amp;nbsp;Blogger has a link with instructions on how to set your domain name to point to Blogger that should appear as your change your settings.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt;If you are using OpenDNS, you can go &lt;a href="http://www.opendns.com/support/cache/"&gt;here&lt;/a&gt;, and check their cache. After you check, you can request a cache refresh and it will update the DNS settings from your registrar. (It might take a couple of hours for your registrar to update it's DNS servers.) You will also have to refresh your local DNS cache by rebooting your machine. &amp;nbsp;Your domain should be pointing to your new blog. Remember, it takes a couple of days for the DNS changes to&amp;nbsp;propagate&amp;nbsp;to everyone, but with OpenDNS you can try it a lot faster. &amp;nbsp;You should leave your old blog up for at least a few days, so if your readers haven't gotten the DNS update, they will still see your old blog. &amp;nbsp;You might want to disable comments, because they will not migrate over to your new blog.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt;&lt;b&gt;Migrate Disqus comments&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt;You can now install Disqus on your Blogger blog, by going to disqus.com, logging in, clicking on your blog, and then clicking the install tab. &amp;nbsp;Click on blogger, and it will install it to your blog. You will then need to edit your layout in Blogger, to add the widget (preferably&amp;nbsp;on the bottom). You should see Disqus take over for your comments, but all of your old comments will be gone. &amp;nbsp;Now, back in Disqus, go to tools, migrate threads. &amp;nbsp;You can try the redirect crawler, if your redirects are all set up. You can also upload a URL map. &amp;nbsp;Once done, your comments should re-appear.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt;Unfortunately, your likes and +1's will be reset. You should now be up and ready to to go. Hopefully, Google+ integration, and a free hosting solution will make all the work worth it. If you have any questions, just leave them in the comments.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2721499664417059501-7919171787478655080?l=www.christopherslade.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Fzg2RVyFb83Y3szmOaH2R_b3NnQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Fzg2RVyFb83Y3szmOaH2R_b3NnQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Fzg2RVyFb83Y3szmOaH2R_b3NnQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Fzg2RVyFb83Y3szmOaH2R_b3NnQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Tecno-pedagogia/~4/zQroFA_VUH0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.christopherslade.com/feeds/7919171787478655080/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.christopherslade.com/2011/10/migrating-from-wordpress-to-blogger.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2721499664417059501/posts/default/7919171787478655080?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2721499664417059501/posts/default/7919171787478655080?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Tecno-pedagogia/~3/zQroFA_VUH0/migrating-from-wordpress-to-blogger.html" title="Migrating from Wordpress to Blogger" /><author><name>Chris Slade</name><uri>https://profiles.google.com/112952901297949086888</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-eVWOVzYOCTY/AAAAAAAAAAI/AAAAAAAACc4/2b6a3wdDxvg/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-i0Qp6z9oCBc/TqKihn5DD6I/AAAAAAAACp4/0zmld8hSQ9M/s72-c/download.jpeg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.christopherslade.com/2011/10/migrating-from-wordpress-to-blogger.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkYCRXo7cCp7ImA9WhdaFEk.&quot;"><id>tag:blogger.com,1999:blog-2721499664417059501.post-1052398323566366468</id><published>2011-10-23T01:44:00.000-10:00</published><updated>2011-10-23T21:09:24.408-10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-23T21:09:24.408-10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="wordpress" /><category scheme="http://www.blogger.com/atom/ns#" term="Technology" /><category scheme="http://www.blogger.com/atom/ns#" term="blogger" /><category scheme="http://www.blogger.com/atom/ns#" term="web hosting" /><title>I Moved to Blogger</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-i0Qp6z9oCBc/TqKihn5DD6I/AAAAAAAACp4/0zmld8hSQ9M/s1600/download.jpeg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="200" src="http://2.bp.blogspot.com/-i0Qp6z9oCBc/TqKihn5DD6I/AAAAAAAACp4/0zmld8hSQ9M/s200/download.jpeg" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;
Since it has been another year, it was time for me to&amp;nbsp;reanalyze&amp;nbsp;how I am hosting this blog. A little while ago, I read a &lt;a href="http://www.staynalive.com/2011/05/why-as-developer-i-switched-to.html"&gt;blog post&lt;/a&gt;&amp;nbsp;by &lt;a href="http://staynalive.com/"&gt;Jesse Stay&lt;/a&gt;&amp;nbsp;about switching to Blogger. What I remembered the most was that he has able to host his blog on Blogger for free. Since I don't use this blog much, I don't feel like it is worth it to pay too much for hosting. &amp;nbsp;I have been hosting it with a self-hosted &lt;a href="http://wordpress.org/"&gt;Wordpress&lt;/a&gt;&amp;nbsp;install, and as Jesse points out, it was too time&amp;nbsp;consuming keeping it up to date and running smoothly. &amp;nbsp;Without the super cache plugin set up and configured correctly, I was getting up to 3 seconds per page load which would never survive a high traffic day. Even with the cache setup correctly, I still even doubted that my blog would withstand a heavy traffic day.&lt;br /&gt;
&lt;br /&gt;
I could have moved my blog to &lt;a href="http://wordpress.com/"&gt;Wordpress.com&lt;/a&gt;, but that comes with ads and additional fees that Jesse details in his blog post. Some other options I looked at were using &lt;a href="http://pages.github.com/"&gt;Github pages&lt;/a&gt;&amp;nbsp;and using &lt;a href="https://github.com/cloudhead/toto"&gt;toto&lt;/a&gt;&amp;nbsp;hosted by&amp;nbsp;&lt;a href="http://heroku.com/"&gt;Heroku&lt;/a&gt;. I really like the idea of having a git repository being the source for my blog, but I couldn't format my old posts in the markdown, and none of the scripts translated things over correctly. It ended up being too much effort to transfer my old blog posts over so decided to try blogger. (I was really hoping to edit my posts with a plan old text editor too.)&lt;br /&gt;
&lt;br /&gt;
In less than 5 minutes, I had all of my posts and comments transfered over to Blogger, so I was sold. It did take a little while to configure things the way I wanted, and then I had to redirect my old Wordpress style links to my new blogger links. I plan on doing a post in the near future describing the process of&amp;nbsp;transferring&amp;nbsp;my Wordpress blog to Blogger (including how to redirect your links), so stay turned.&lt;br /&gt;
&lt;br /&gt;
I do want to explain how I set up some features (usually supplied by a plugin) that I had on Wordpress on Blogger. &amp;nbsp;First of all, I have been using &lt;a href="http://disqus.com/"&gt;Disqus&lt;/a&gt; as my comment engine on my Wordpress blog. &amp;nbsp;As you post comments on a lot of different sites, there isn't a way to aggregate all of your comments together. &amp;nbsp;Disqus lets your readers create a single profile they can use to comment on every site that uses Disqus, that way all of your users' comments can be aggregated together. It also allows users to use their Facebook or Twitter accounts to comment. &amp;nbsp;Lots of sites are using it, including newspapers and Foxnews.&lt;br /&gt;
&lt;br /&gt;
Disqus installation is easy. Create an account on Disqus, then add a new site. Fill in your url and look through all the settings to make sure it's setup the way you want. Import your current comments by going to &lt;b&gt;&lt;i&gt;Tools -&amp;gt; Import/Export&lt;/i&gt;&lt;/b&gt;. Then click on the install tab and click on Blogger. It will ask you to select your blog. Once you finished with that, you will have a Disqus widget. Add it to your layout (preferably&amp;nbsp;on the bottom part). &amp;nbsp;You should see Disqus take over for your comments.&lt;br /&gt;
&lt;br /&gt;
The next feature is &lt;a href="http://feedburner.com/"&gt;Feedburner&lt;/a&gt;, which will optimize your feed for each of your subscribers. &amp;nbsp;Your feed is what Google Reader and other news/feed readers use to know when your blog has been updated. Since FeedBurner is owned by Google, installation is easy. Go to &lt;a href="http://feedburner.com/"&gt;Feedburner.com&lt;/a&gt;&amp;nbsp;and create an account. Then burn your feed by putting in your URL (make sure you select your posts' feed and not your comments' feeds). &amp;nbsp;It will also let you assign your feed a url. Then, go to your Blogger settings, under other. &amp;nbsp;You will see a "&lt;b style="font-style: italic;"&gt;Post Feed Redirect URL" &lt;/b&gt;setting. Paste in your Feedburner feed URL. Now your subscribers should be getting their feeds from Feedburner. &amp;nbsp;To test it go to http://yourblog.blogspot.com/feeds/posts/default (or &amp;nbsp;http://yourblogaddress.com/feeds/posts/default if you have your own domain). &amp;nbsp;You should be redirected to Feedburner and see your posts.&lt;br /&gt;
&lt;br /&gt;
Finally, I wanted to add a Facebook like button to my posts. By default, I already had the +1 button (Google+) and a Twitter button but no Facebook button. To get a Facebook like button follow &lt;a href="http://www.bloggerplugins.org/2010/04/facebook-like-button-for-blogger.html"&gt;these instructions&lt;/a&gt;. There are some old instructions that don't work for the current layouts so be careful. &amp;nbsp;If your like count is strangely high (around 16,000 likes), than your readers will be liking some page called post.url instead of your post!&lt;br /&gt;
&lt;br /&gt;
Sorry for the long post, but I hope the information is helpful.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2721499664417059501-1052398323566366468?l=www.christopherslade.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/zjiPV2e4Gfmsyu6oa65fE7ICcL4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/zjiPV2e4Gfmsyu6oa65fE7ICcL4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/zjiPV2e4Gfmsyu6oa65fE7ICcL4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/zjiPV2e4Gfmsyu6oa65fE7ICcL4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Tecno-pedagogia/~4/pfdr_KudORY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.christopherslade.com/feeds/1052398323566366468/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.christopherslade.com/2011/10/i-moved-to-blogger.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2721499664417059501/posts/default/1052398323566366468?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2721499664417059501/posts/default/1052398323566366468?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Tecno-pedagogia/~3/pfdr_KudORY/i-moved-to-blogger.html" title="I Moved to Blogger" /><author><name>Chris Slade</name><uri>https://profiles.google.com/112952901297949086888</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-eVWOVzYOCTY/AAAAAAAAAAI/AAAAAAAACc4/2b6a3wdDxvg/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-i0Qp6z9oCBc/TqKihn5DD6I/AAAAAAAACp4/0zmld8hSQ9M/s72-c/download.jpeg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.christopherslade.com/2011/10/i-moved-to-blogger.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkcAR3wyeyp7ImA9WhdaFUo.&quot;"><id>tag:blogger.com,1999:blog-2721499664417059501.post-1277774929765172761</id><published>2011-09-21T07:13:00.000-10:00</published><updated>2011-10-25T10:20:46.293-10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-25T10:20:46.293-10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Technology" /><category scheme="http://www.blogger.com/atom/ns#" term="editors" /><category scheme="http://www.blogger.com/atom/ns#" term="Teaching" /><category scheme="http://www.blogger.com/atom/ns#" term="command line" /><category scheme="http://www.blogger.com/atom/ns#" term="Rails" /><title>Rails Editors and the Command Line</title><content type="html">One of the first questions you will need to answer when starting with &lt;a href="http://rubyonrails.org/"&gt;Ruby on Rails&lt;/a&gt;, is what editor should you use. &amp;nbsp;For the mac, it has been &lt;a href="http://macromates.com/"&gt;TextMate&lt;/a&gt;. &amp;nbsp;I haven't really liked the IDE's for Ruby on Rails (although I never really used them).&amp;nbsp;&amp;nbsp;So, I needed to find a good text editor for Windows. &amp;nbsp;Turns out &lt;a href="http://www.sublimetext.com/2"&gt;Sublime Text&lt;/a&gt;&amp;nbsp;looks like the best one I was able to find. &amp;nbsp;It works in Windows, Mac, and in Linux. &amp;nbsp;It is a lot like TextMate, and might even surpass it in features. &amp;nbsp;I almost switched from TextMate to Sublime, but I didn't because the snippets and plugins aren't quite up to par with TextMate's. &amp;nbsp;However, if TextMate 2 doesn't come out soon, Sublime will probably surpass it soon. &amp;nbsp;Must have features are snippets, and a sidebar file browser. &amp;nbsp;Both TextMate and Sublime have them. &amp;nbsp;(Of &amp;nbsp;course if&amp;nbsp;you're a &lt;em&gt;vi&lt;/em&gt; or &lt;em&gt;emacs&lt;/em&gt; pro, than stick with it. &amp;nbsp;None of my students are.) &amp;nbsp;My only question is, should my students pay for it? &amp;nbsp;I told them they should when they start making money using it.&lt;br /&gt;
&lt;br /&gt;
I also notice that none of my students had any command line experience. &amp;nbsp;Thinking about it, I had to learn the command line (in Linux) in a Software Engineering class that made us learn Linux and C++ pretty much on our own and then write two&amp;nbsp;substantial&amp;nbsp;programs in C++. &amp;nbsp;Although frustrating at times, it turned out to be a very good class. &amp;nbsp;We never teach the command line in any of our classes. &amp;nbsp;I got a big blank stare when I mentioned &lt;em&gt;make&lt;/em&gt;. The downside to only teaching with IDE's. &amp;nbsp;Luckily, I need to revamp my Operating Systems class. &amp;nbsp;Maybe I will make it a lot like my Software Engineering class.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Update:&lt;/b&gt;&lt;br /&gt;
See this post for more information about editors:&amp;nbsp;&lt;a href="http://www.christopherslade.com/2011/10/another-rails-editor-and-user.html"&gt;http://www.christopherslade.com/2011/10/another-rails-editor-and-user.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2721499664417059501-1277774929765172761?l=www.christopherslade.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/fYAC6CRVPXR_VbqfuMVKP5JTJeQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/fYAC6CRVPXR_VbqfuMVKP5JTJeQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/fYAC6CRVPXR_VbqfuMVKP5JTJeQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/fYAC6CRVPXR_VbqfuMVKP5JTJeQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Tecno-pedagogia/~4/PV1Zg4ZhX0k" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.christopherslade.com/feeds/1277774929765172761/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.christopherslade.com/2011/09/rails-editors-and-command-line.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2721499664417059501/posts/default/1277774929765172761?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2721499664417059501/posts/default/1277774929765172761?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Tecno-pedagogia/~3/PV1Zg4ZhX0k/rails-editors-and-command-line.html" title="Rails Editors and the Command Line" /><author><name>Chris Slade</name><uri>https://profiles.google.com/112952901297949086888</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-eVWOVzYOCTY/AAAAAAAAAAI/AAAAAAAACc4/2b6a3wdDxvg/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.christopherslade.com/2011/09/rails-editors-and-command-line.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkMHQXs4eSp7ImA9WhdaEk4.&quot;"><id>tag:blogger.com,1999:blog-2721499664417059501.post-3831917563840438774</id><published>2011-09-15T15:04:00.000-10:00</published><updated>2011-10-21T10:53:50.531-10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-21T10:53:50.531-10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Technology" /><category scheme="http://www.blogger.com/atom/ns#" term="Teaching" /><category scheme="http://www.blogger.com/atom/ns#" term="Rails" /><title>Getting Rails</title><content type="html">I am teaching a new class this semester called advanced web application development. The main topic: &lt;a title="Ruby on Rails" href="http://rubyonrails.org"&gt;Ruby on Rails&lt;/a&gt;.  A lot of students who have either graduated or couldn't take the course for some other reason wanted to me to make videos for them.  I won't have time for videos, but I will post all the material I use here.&lt;br/&gt;&lt;br/&gt;The first step is getting Rails installed.  Most of my students have Windows machines, so the best place to get Rails for Windows would be &lt;a title="Rails Installer for Windows." href="http://railsinstaller.org"&gt;RailsInstaller.org&lt;/a&gt; (I haven't really searched too long, but this seem sufficient).  I wouldn't worry about installing the SQL Server stuff unless you know you are going to use it.  For now, just stick with SQL lite.  You will want Git.  The only downside to all of this is that there isn't &lt;a title="Ruby Version Manager" href="http://beginrescueend.com/"&gt;RVM&lt;/a&gt;, which allows you to switch between Ruby versions and create gemsets.  During the semester, all my student will be using Ruby version 1.9.2, so it won't be necessary for the class.&lt;br/&gt;&lt;br/&gt;The next step is to create your first application.  The video on RailsInstaller.org walks you through your first application.  I plan on doing a similar demo in class also using the scaffolding.  After, I will walk students through the code, starting at the routes.rb, then going to the controller, and then the model and view.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2721499664417059501-3831917563840438774?l=www.christopherslade.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/-YXThLsoAFKtzJH-BAyb8dA5j7Y/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-YXThLsoAFKtzJH-BAyb8dA5j7Y/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/-YXThLsoAFKtzJH-BAyb8dA5j7Y/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-YXThLsoAFKtzJH-BAyb8dA5j7Y/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Tecno-pedagogia/~4/09hRopIbbak" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.christopherslade.com/feeds/3831917563840438774/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.christopherslade.com/2011/09/getting-rails.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2721499664417059501/posts/default/3831917563840438774?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2721499664417059501/posts/default/3831917563840438774?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Tecno-pedagogia/~3/09hRopIbbak/getting-rails.html" title="Getting Rails" /><author><name>Chris Slade</name><uri>https://profiles.google.com/112952901297949086888</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-eVWOVzYOCTY/AAAAAAAAAAI/AAAAAAAACc4/2b6a3wdDxvg/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.christopherslade.com/2011/09/getting-rails.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkMHQXs-eCp7ImA9WhdaEk4.&quot;"><id>tag:blogger.com,1999:blog-2721499664417059501.post-4675772108772600181</id><published>2011-03-23T13:31:00.000-10:00</published><updated>2011-10-21T10:53:50.550-10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-21T10:53:50.550-10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Technology" /><category scheme="http://www.blogger.com/atom/ns#" term="Facebook" /><category scheme="http://www.blogger.com/atom/ns#" term="Kynetx" /><category scheme="http://www.blogger.com/atom/ns#" term="eBay" /><category scheme="http://www.blogger.com/atom/ns#" term="App Store" /><category scheme="http://www.blogger.com/atom/ns#" term="Amazon" /><category scheme="http://www.blogger.com/atom/ns#" term="Craigslist" /><title>Kynetx App Store</title><content type="html">Kynetx just launched an App Store to be able to find and manage all of your Kynetx apps. Instead of installing a bunch of different browser extension, you can now just install one. It will keep track of all of your Kynetx apps for you.  If you have already install one of my Kynetx apps it should still be working for you.  (If not comment or email me.)  I recommend uninstalling all of the Kynetx App extensions or browser add-ons, and then go to &lt;a href="http://apps.kynetx.com"&gt;http://apps.kynetx.com&lt;/a&gt;.  From there you can browser various extensions.  Once you install your first app, you will be directed to download and install the Kynetx add-on. Once installed, you can install any Kynetx app without the need to install any more extensions.&lt;br/&gt;&lt;br/&gt;Now you can get my apps from here:&lt;br/&gt;&lt;br/&gt;&lt;a title="AmaCraigBay" href="http://apps.kynetx.com/installable_apps/3342-AmaCraigBay"&gt;AmaCraigBay with Google Products&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;a title="My News Feed" href="http://apps.kynetx.com/installable_apps/3343-MyNewsFeed"&gt;MyNewsFeed&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Happy App Hunting!&lt;br/&gt;&lt;br/&gt;PS.  I want to add icons to the listings in the Kynetx app store.  If you want to help out let me know!&lt;br/&gt;&lt;br/&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2721499664417059501-4675772108772600181?l=www.christopherslade.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/RyfdHCksLWcMUmHMug93p0berxI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/RyfdHCksLWcMUmHMug93p0berxI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/RyfdHCksLWcMUmHMug93p0berxI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/RyfdHCksLWcMUmHMug93p0berxI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Tecno-pedagogia/~4/BDxzfVDpX1Y" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.christopherslade.com/feeds/4675772108772600181/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.christopherslade.com/2011/03/kynetx-app-store.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2721499664417059501/posts/default/4675772108772600181?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2721499664417059501/posts/default/4675772108772600181?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Tecno-pedagogia/~3/BDxzfVDpX1Y/kynetx-app-store.html" title="Kynetx App Store" /><author><name>Chris Slade</name><uri>https://profiles.google.com/112952901297949086888</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-eVWOVzYOCTY/AAAAAAAAAAI/AAAAAAAACc4/2b6a3wdDxvg/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.christopherslade.com/2011/03/kynetx-app-store.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkMHQXs9eip7ImA9WhdaEk4.&quot;"><id>tag:blogger.com,1999:blog-2721499664417059501.post-4998297193511403770</id><published>2011-01-28T14:12:00.000-10:00</published><updated>2011-10-21T10:53:50.562-10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-21T10:53:50.562-10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Technology" /><category scheme="http://www.blogger.com/atom/ns#" term="iPad" /><title>Initial thoughts on my iPad</title><content type="html">I know that many reviews have been written about the iPad, so I will keep this short.  I just wanted to record my thoughts after owning the iPad for about a week.&lt;br/&gt;&lt;br/&gt;I never even thought about buying an iPad because I didn't think it would fit into my work flow.  My MacBook pro docks as a desktop, which I enjoy because I can take my work wherever I go.  My Android phone does all things mobile.  I just didn't see where an iPad would fit in.  Now that I won a free iPad and used it for a week, I still don't think I would buy one.  However, I decided that it is useful enough to not be tempted to sell it.&lt;br/&gt;&lt;br/&gt;Here is what I like:&lt;br/&gt;1) Netflix (and other videos).  It is really nice to watch movies on it.&lt;br/&gt;2) It is a lot easier to write emails on my iPad than it is pull out my laptop or type them on my phone. Now I can be more responsive to my students' emails while I am not at my office.&lt;br/&gt;3) I will actually follow links on twitter now.  The Twitter app makes it easy to do.  When I am at work I feel too busy to even check twitter, and it's too slow on my phone to follow a link, unless it really sparks my interest.&lt;br/&gt;&lt;br/&gt;Here is what I don't like (I'm easy to please so there is only one complaint.) I still want it to be a computer, and Apple doesn't. I would like a documents folder. I find it frustrating that I have to open an app and then my document. Can't I just click on my document, like I always do on my computer? A USB port would also be nice.  I just feel like the iPad goes out of it way to limit what I can do.  I think that main reason is so that people will not trade their laptops for iPads.  I know the iPad can do more, but Apple won't let it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2721499664417059501-4998297193511403770?l=www.christopherslade.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/iQ4oHdi9-xf9PJSCFMdNKrXeWxE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/iQ4oHdi9-xf9PJSCFMdNKrXeWxE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/iQ4oHdi9-xf9PJSCFMdNKrXeWxE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/iQ4oHdi9-xf9PJSCFMdNKrXeWxE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Tecno-pedagogia/~4/-li21xrTIPU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.christopherslade.com/feeds/4998297193511403770/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.christopherslade.com/2011/01/initial-thoughts-on-my-ipad.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2721499664417059501/posts/default/4998297193511403770?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2721499664417059501/posts/default/4998297193511403770?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Tecno-pedagogia/~3/-li21xrTIPU/initial-thoughts-on-my-ipad.html" title="Initial thoughts on my iPad" /><author><name>Chris Slade</name><uri>https://profiles.google.com/112952901297949086888</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-eVWOVzYOCTY/AAAAAAAAAAI/AAAAAAAACc4/2b6a3wdDxvg/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.christopherslade.com/2011/01/initial-thoughts-on-my-ipad.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEQFRng9eSp7ImA9WhdaEks.&quot;"><id>tag:blogger.com,1999:blog-2721499664417059501.post-1077735555217262305</id><published>2011-01-22T13:58:00.000-10:00</published><updated>2011-10-21T20:51:57.661-10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-21T20:51:57.661-10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Technology" /><category scheme="http://www.blogger.com/atom/ns#" term="Facebook" /><category scheme="http://www.blogger.com/atom/ns#" term="Kynetx" /><title>My Facebook News Feed</title><content type="html">Take control over your Facebook news feed.  Facebook uses a &lt;a href="http://http//www.businessinsider.com/how-facebook-decides-what-to-put-in-your-news-feed--these-10-secrets-reveal-all-2010-10" target="_blank" title="How Facebook Decides What To Put In Your News Feed – These 10 Secrets Reveal All"&gt;secret formula&lt;/a&gt; to decide who makes it into your news feed.  Unfortunately, this formula prefers very active Facebook users over less active ones.  (Look at the link for some other tips and trick to get you on more of your friends' news feeds.) Anyway, this always bugged me a little bit, so I decided to fix it for the next &lt;a href="http://www.kynetx.com/"&gt;Kynetx&lt;/a&gt; developer &lt;a href="http://code.kynetx.com/2011/01/10/developer-contest-scratch-that-it-ends-jan-24th/"&gt;contest&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-u9A2He3FXsA/TqJn9AqT_UI/AAAAAAAACok/MRRghXLlDnc/s1600/MyFeedSS1.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="276" src="http://3.bp.blogspot.com/-u9A2He3FXsA/TqJn9AqT_UI/AAAAAAAACok/MRRghXLlDnc/s320/MyFeedSS1.png" width="320" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Faces and names blacked out for privacy.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
There are a few friends that I would really like to know about and these friends are not the most avid Facebook users.  Therefore, they don't show up on my news feed very often.  When I look at their profile, I realized I missed some big news. To make sure I don't miss their posts, I wrote a Kynetx app to display the most recent post from everyone in a Friend List.  It will display it above your regular news feed.  You can change the list it displays by selecting a different list at the top.&lt;br /&gt;
&lt;br /&gt;
If you don't know, you can organize you friends into lists.  Just click on friends on the left, then click the edit friends button.  You might want to keep this list private, or your friends might find it and realize that you are not as interested in them as they think you should be.&lt;br /&gt;
&lt;br /&gt;
I suggest that you keep your list to about 5 to 10 people, or else it will take a long time to load. Hopefully I can find a way to speed it up.  If you really want a longer list, just read your "filtered" news feed for a little bit, and it should show up after about a minute or two.  If you have too big of a list than it might time out and never return the results.  If this happens, delete your cookies from kobj.net. It is still a little rough around the edges especially since I have only spent one evening on it. I hope to improve it as I find time.  Here the browser extensions you can download and install to use the app. &amp;nbsp;You need to accept cookies (even 3rd party cookies) from kobj.net or you cannot authorize the app with facebook.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.christopherslade.com/MyNewsFeed.xpi" title="Firefox Extension"&gt;Firefox&lt;/a&gt;, &lt;a href="http://www.christopherslade.com/MyNewsFeed.crx" title="Chrome Extension"&gt;Chrome&lt;/a&gt;, &lt;a href="http://www.christopherslade.com/MyNewsFeed_Setup.exe" title="IE Extension"&gt;Internet Explorer&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
If you don't want to install an extension, you can use this bookmarklet.  Drag the link below to your bookmark toolbar and click on it when you want your personalized news feed to appear. When it says to refresh the page, you will have to click the bookmarklet again after you refresh the page.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="javascript:(function(){var d=document;var s=d.createElement('script');s.text=&amp;quot;KOBJ_config={'rids':['a680x9']};&amp;quot;;d.body.appendChild(s);var l=d.createElement('script');l.src='http://init.kobj.net/js/shared/kobj-static.js';d.body.appendChild(l);})()"&gt;MyNewsFeed&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Here is a list of currently known bugs.  I will try to fix them as I have time.&lt;br /&gt;
&lt;ul&gt;&lt;br /&gt;
&lt;li&gt; Some posts don't display correctly, especially your friends who don't give you permission to see their news feed. (I can't ever show you them, but I need to display a message that you can't see them.)&lt;/li&gt;
&lt;br /&gt;
&lt;li&gt;It won't show up on every news feed.  There are a lot of different URL's that display your news feed, and I haven't found them all.  If it doesn't show up, type in http://www.facebook.com into your url, and it should show up there.&lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2721499664417059501-1077735555217262305?l=www.christopherslade.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/-ksH47L2BCAwo47OOXVQwlOleHA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-ksH47L2BCAwo47OOXVQwlOleHA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/-ksH47L2BCAwo47OOXVQwlOleHA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-ksH47L2BCAwo47OOXVQwlOleHA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Tecno-pedagogia/~4/cG72dppJbTc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.christopherslade.com/feeds/1077735555217262305/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.christopherslade.com/2011/01/my-facebook-news-feed.html#comment-form" title="6 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2721499664417059501/posts/default/1077735555217262305?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2721499664417059501/posts/default/1077735555217262305?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Tecno-pedagogia/~3/cG72dppJbTc/my-facebook-news-feed.html" title="My Facebook News Feed" /><author><name>Chris Slade</name><uri>https://profiles.google.com/112952901297949086888</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-eVWOVzYOCTY/AAAAAAAAAAI/AAAAAAAACc4/2b6a3wdDxvg/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-u9A2He3FXsA/TqJn9AqT_UI/AAAAAAAACok/MRRghXLlDnc/s72-c/MyFeedSS1.png" height="72" width="72" /><thr:total>6</thr:total><feedburner:origLink>http://www.christopherslade.com/2011/01/my-facebook-news-feed.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0YHQ3s9fSp7ImA9WhdaEks.&quot;"><id>tag:blogger.com,1999:blog-2721499664417059501.post-8905223995809368867</id><published>2011-01-05T05:58:00.000-10:00</published><updated>2011-10-21T21:38:52.565-10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-21T21:38:52.565-10:00</app:edited><title>AmaCraigBay now with Google Products</title><content type="html">I have updated AmaCraigBay to include Google Products. &amp;nbsp;If you already installed the browser plugin or bookmarklet, you don't need to do anything to get the update. &amp;nbsp;It should just start showing up. &amp;nbsp;Google products will include a lot more options to compare from, including stores like Walmart, Target, and KMart.&lt;br /&gt;
&lt;br /&gt;
If you don't have it installed yet you can get them from my &lt;a href="http://www.christopherslade.com/2010/12/amacraigbay/"&gt;previous post&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-i3WPvxnYcJI/TqJytuFc6OI/AAAAAAAACos/3elLTKUhlFI/s1600/iPad.png" imageanchor="1"&gt;&lt;img border="0" height="211" src="http://1.bp.blogspot.com/-i3WPvxnYcJI/TqJytuFc6OI/AAAAAAAACos/3elLTKUhlFI/s320/iPad.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
There is a problem when you refine your search. &amp;nbsp;It will currently show the result from your first search after you refine your search. &amp;nbsp;If you want to get the refined results, go back to Amazon's home page, and then search again. &amp;nbsp;You can also click on a product and search from that page. &amp;nbsp;I am working on fixing it, and hopefully that will happen soon.&lt;br /&gt;
&lt;br /&gt;
Thanks to &lt;a href="http://kynetx.com/"&gt;Kynetx&lt;/a&gt; and &lt;a href="http://developer.yahoo.com/"&gt;YDN&lt;/a&gt; for making this so easy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2721499664417059501-8905223995809368867?l=www.christopherslade.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/xU4C0TVvrd30V0IUJTjqRVqxc_A/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/xU4C0TVvrd30V0IUJTjqRVqxc_A/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/xU4C0TVvrd30V0IUJTjqRVqxc_A/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/xU4C0TVvrd30V0IUJTjqRVqxc_A/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Tecno-pedagogia/~4/DC2NEm09G8s" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.christopherslade.com/feeds/8905223995809368867/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.christopherslade.com/2011/01/amacraigbay-now-with-google-products.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2721499664417059501/posts/default/8905223995809368867?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2721499664417059501/posts/default/8905223995809368867?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Tecno-pedagogia/~3/DC2NEm09G8s/amacraigbay-now-with-google-products.html" title="AmaCraigBay now with Google Products" /><author><name>Chris Slade</name><uri>https://profiles.google.com/112952901297949086888</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-eVWOVzYOCTY/AAAAAAAAAAI/AAAAAAAACc4/2b6a3wdDxvg/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-i3WPvxnYcJI/TqJytuFc6OI/AAAAAAAACos/3elLTKUhlFI/s72-c/iPad.png" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://www.christopherslade.com/2011/01/amacraigbay-now-with-google-products.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0UCQng5eSp7ImA9WhdaEks.&quot;"><id>tag:blogger.com,1999:blog-2721499664417059501.post-2690407809031689419</id><published>2010-12-15T15:16:00.000-10:00</published><updated>2011-10-21T21:41:03.621-10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-21T21:41:03.621-10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Technology" /><category scheme="http://www.blogger.com/atom/ns#" term="Shopping" /><category scheme="http://www.blogger.com/atom/ns#" term="Kynetx" /><category scheme="http://www.blogger.com/atom/ns#" term="eBay" /><category scheme="http://www.blogger.com/atom/ns#" term="Amazon" /><category scheme="http://www.blogger.com/atom/ns#" term="Craigslist" /><title>AmaCraigBay</title><content type="html">For the next &lt;a href="http://kynetx.com/"&gt;Kynetx&lt;/a&gt; &lt;a href="http://code.kynetx.com/2010/12/06/conest-yql-kynetx-ends-dec-16th/"&gt;competition&lt;/a&gt; I decided to create AmaCraigBay.  I have always talked to friends about how they got this really cool stuff from Craigslist for really cheap, or free.  I never think to check Craigslist when I need something.  I always pay full price.  So, I figured I would put eBay and Craigslist results on Amazon search pages, that way whenever I am on Amazon looking for something, not only will I remember to check Craigslist and eBay,  I will see the most popular item from each site right above Amazon's results.&lt;br /&gt;
&lt;br /&gt;
I searched on Amazon for an iPad, and guess what, Craigslist beat both Amazon and eBay for the cheapest iPad (non-used) by almost $100 dollars.  It's just an email and a short drive away. So if I don't win the competition, at least I can try my luck with Amazon, eBay, and Craigslist all in one page.&lt;br /&gt;
&lt;br /&gt;
Here is a screenshot:&lt;br /&gt;
&lt;br /&gt;
If you want to try it out, here are the browser extensions for Firefox, Chrome, and Internet Explorer.  I haven't try the IE extension but it should work.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.christopherslade.com/AmaCraigBay.xpi"&gt;Firefox&lt;/a&gt;, &lt;a href="http://www.christopherslade.com/AmaCraigBay.crx"&gt;Chrome&lt;/a&gt;, &lt;a href="http://www.christopherslade.com/AmaCraigBay_Setup.exe"&gt;Internet Explorer&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
If you prefer a Bookmarklet, just drag the link below to your bookmark toolbar, and press it when you are on an Amazon search page.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="javascript:(function(){var d=document;var s=d.createElement('script');s.text=&amp;quot;KOBJ_config={'rids':['a680x8']};&amp;quot;;d.body.appendChild(s);var l=d.createElement('script');l.src='http://init.kobj.net/js/shared/kobj-static.js';d.body.appendChild(l);})()"&gt;AmaCraigBay&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-I4nCkCQNelA/TqJzf0hgxvI/AAAAAAAACo0/fNxusfccog4/s1600/screen-271x300.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-I4nCkCQNelA/TqJzf0hgxvI/AAAAAAAACo0/fNxusfccog4/s1600/screen-271x300.png" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Found a cheaper iPad on Craigslist while searching Amazon&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
When you first visit Amazon, you should see a box asking you to enter your Craigslist city (this won't happen with the bookmarklet until after you press it). &amp;nbsp;Go to Craigslist and find your city. &amp;nbsp;Look at the URL and put the part between &lt;em&gt;http://&lt;/em&gt; and .craigslist.org in for your city. &amp;nbsp;You should see the results when you search (and if your using the bookmarklet, after you press the button on a search results page). &amp;nbsp;You need to accept 3rd Party cookies from kobj.net  for it to remember your city.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2721499664417059501-2690407809031689419?l=www.christopherslade.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/orBdz584gld1vPrnr-AbT8LCxEY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/orBdz584gld1vPrnr-AbT8LCxEY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/orBdz584gld1vPrnr-AbT8LCxEY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/orBdz584gld1vPrnr-AbT8LCxEY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Tecno-pedagogia/~4/pUEHO6DHnMo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.christopherslade.com/feeds/2690407809031689419/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.christopherslade.com/2010/12/amacraigbay.html#comment-form" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2721499664417059501/posts/default/2690407809031689419?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2721499664417059501/posts/default/2690407809031689419?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Tecno-pedagogia/~3/pUEHO6DHnMo/amacraigbay.html" title="AmaCraigBay" /><author><name>Chris Slade</name><uri>https://profiles.google.com/112952901297949086888</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-eVWOVzYOCTY/AAAAAAAAAAI/AAAAAAAACc4/2b6a3wdDxvg/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-I4nCkCQNelA/TqJzf0hgxvI/AAAAAAAACo0/fNxusfccog4/s72-c/screen-271x300.png" height="72" width="72" /><thr:total>4</thr:total><feedburner:origLink>http://www.christopherslade.com/2010/12/amacraigbay.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0MDR3g_fip7ImA9WhdaEks.&quot;"><id>tag:blogger.com,1999:blog-2721499664417059501.post-4871867676715592364</id><published>2010-12-05T12:20:00.000-10:00</published><updated>2011-10-21T21:44:36.646-10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-21T21:44:36.646-10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Technology" /><category scheme="http://www.blogger.com/atom/ns#" term="Facebook" /><category scheme="http://www.blogger.com/atom/ns#" term="Kynetx" /><category scheme="http://www.blogger.com/atom/ns#" term="Amazon" /><category scheme="http://www.blogger.com/atom/ns#" term="Web Augmentation" /><title>Amazon Friend Feedback</title><content type="html">Have you ever searched for a product on &lt;a href="http://www.amazon.com/" title="Amazon"&gt;Amazon&lt;/a&gt;, read the reviews and got mixed feelings about weather you should buy it or not.&amp;nbsp; Did you want to ask your friends opinion?&amp;nbsp; Well, now you can ask your &lt;a href="http://www.facebook.com/" title="Facebook"&gt;Facebook&lt;/a&gt; friends without ever leaving Amazon.&lt;br /&gt;
&lt;br /&gt;
For &lt;a href="http://www.kynetx.com/" title="This changes everything."&gt;Kynetx&lt;/a&gt;'s web augmentation &lt;a href="http://code.kynetx.com/2010/11/24/contest-augmenting-the-web-with-kynetx-ends-dec-5th/" title="Augmenting the Web"&gt;contest&lt;/a&gt;, I decided to add a Get Friend Feedback button on every product on Amazon.com.&amp;nbsp; It shows up right above the customer reviews.&amp;nbsp; To get feedback from your friends, you can press the button, and it will let you type in a message that you can post to your Facebook wall, with a link to the product you are viewing.&amp;nbsp; When you visit the product again, it will display the comments and likes count that your friends have posted.&lt;br /&gt;
&lt;br /&gt;
If I ever find the time, I would like to add an option to Tweet the product to get feed back on Twitter.  I would like to get the friend comments to show up in the shopping cart, and put the button on other shopping sites like &lt;a href="http://www.google.com/products#t:0"&gt;Google Products&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
If you want to try it out, just install the browser plugin for your browser.&amp;nbsp; You will be prompted to go to Facebook and give my application permission to post things to your wall.&amp;nbsp; You can also get the app from Kynetx's &lt;a href="http://marketplace.kynetx.com/app/friend-feedback-on-amazon" title="Amazon Friend Feedback"&gt;marketplace&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.christopherslade.com/ProductFriendFeedback.xpi"&gt;Firefox Extension&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://www.christopherslade.com/ProductFriendFeedback.crx"&gt;Chrome Extension&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://www.christopherslade.com/ProductFriendFeedback_Setup.exe"&gt;Internet Explorer Extension&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
So here are the technical details on how I accomplished it with Kynetx.&amp;nbsp; The &lt;em&gt;place_button &lt;/em&gt;rule grabs the Amazon product id from the url and the product name from the title and places a button on the page above the customer reviews. Under all of my tests, Amazon uses two different url's so this rule responds to both of them.&lt;br /&gt;
&lt;br /&gt;
The &lt;em&gt;place_form&lt;/em&gt; rule gets launched when the user clicks on the button, created in the previous rule.&amp;nbsp; It pops up a notify box with a textbox to enter in your question.&lt;br /&gt;
&lt;br /&gt;
The &lt;em&gt;request_posted&lt;/em&gt; rule gets launched when the user submits the question, and it posts the query to the user's Facebook wall.&lt;br /&gt;
&lt;br /&gt;
The &lt;em&gt;recent_post&lt;/em&gt; rule is fired automatically after the last rule fires.&amp;nbsp; The facebook:post function doesn't return anything, so I needed a way to get the Facebook post id so I can display the post when the users return to see the product.&amp;nbsp; I had to query the User's feed and get the last post.&amp;nbsp; I ran out of time to check to make sure it is the post I posted.&amp;nbsp; So sometimes it might grab the wrong post to display on Amazon.&amp;nbsp; Hopefully Kyntex's will update the facebook:post to provide a post id when it returns.&amp;nbsp; I store the Amazon product id with the Facebook post id by using &lt;a href="http://docs.kynetx.com/docs/Trails"&gt;trails&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Then, when the user visits a product on Amazon, I search through the trail in the &lt;em&gt;need_discussion&lt;/em&gt; rule.&amp;nbsp; This rule uses a foreach loop to loop through the trail.&amp;nbsp; If the page's product id matches a product id in the trail, it launches the place discussion rule.&lt;br /&gt;
&lt;br /&gt;
The &lt;em&gt;place_discussion&lt;/em&gt; rule get's the like count and comment count from Facebook, and places them on the page below the "Get Friend Feedback" button.&amp;nbsp; It then launches the place comments rule.&lt;br /&gt;
&lt;br /&gt;
The &lt;em&gt;place_comments&lt;/em&gt; rule loops through all of the comments and places each one on the Amazon page.&lt;br /&gt;
&lt;br /&gt;
Here is the full Kynetx code:&lt;br /&gt;
&lt;script src="https://gist.github.com/1305748.js?file=Amazon%20FreindFeedback"&gt;
&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2721499664417059501-4871867676715592364?l=www.christopherslade.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/BA2JBh8v_4BgELd0RCMN_TRlAPo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/BA2JBh8v_4BgELd0RCMN_TRlAPo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/BA2JBh8v_4BgELd0RCMN_TRlAPo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/BA2JBh8v_4BgELd0RCMN_TRlAPo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Tecno-pedagogia/~4/nbuIkDQ_YaA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.christopherslade.com/feeds/4871867676715592364/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.christopherslade.com/2010/12/amazon-friend-feedback.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2721499664417059501/posts/default/4871867676715592364?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2721499664417059501/posts/default/4871867676715592364?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Tecno-pedagogia/~3/nbuIkDQ_YaA/amazon-friend-feedback.html" title="Amazon Friend Feedback" /><author><name>Chris Slade</name><uri>https://profiles.google.com/112952901297949086888</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-eVWOVzYOCTY/AAAAAAAAAAI/AAAAAAAACc4/2b6a3wdDxvg/s512-c/photo.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://www.christopherslade.com/2010/12/amazon-friend-feedback.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0IDRn4-cCp7ImA9WhdaEks.&quot;"><id>tag:blogger.com,1999:blog-2721499664417059501.post-4543802491383058493</id><published>2010-10-28T13:40:00.000-10:00</published><updated>2011-10-21T21:46:17.058-10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-21T21:46:17.058-10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Technology" /><category scheme="http://www.blogger.com/atom/ns#" term="DNS" /><title>Internet Running Slow? Try OpenDNS</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-XoL1oHmHoio/TqJ0ubDl5JI/AAAAAAAACo8/drZodkCt5Dg/s1600/opendns_logo1.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-XoL1oHmHoio/TqJ0ubDl5JI/AAAAAAAACo8/drZodkCt5Dg/s1600/opendns_logo1.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;
I know that technically oriented readers will probably already know this, but for any readers that don't know, there is a way that you could possibly speed up your Internet connection.&lt;br /&gt;
&lt;br /&gt;
If you have a page that is loading slow (say like Facebook.com or any other page) one of the problems might be a slow DNS server.  If you look at the status bar in your browser you will see two messages as a page loads.  The first message will say "looking up  &lt;em&gt;...url...&lt;/em&gt;" or it will say "waiting for ...&lt;em&gt;url...&lt;/em&gt;"&amp;nbsp; Of course this message will probably vary based on which browser you are using.&amp;nbsp; But if your waiting for a page and it seems like you are spending a lot of time looking up site names, then switching your DNS server will probably help.&lt;br /&gt;
&lt;br /&gt;
A lot of pages you see on the Internet actually come from multiple servers around the world.&amp;nbsp; CNN.com, FoxNews.com, and even Facebook.com have you load content from a lot of different servers.&amp;nbsp; And for each server you visit you need to look up its address.&amp;nbsp; Every computer on the Internet has a unique address, so that messages can find their way across the Internet to that specific computer.&amp;nbsp; This address is called an IP address and looks something like this:&amp;nbsp; 128.224.123.25.&amp;nbsp; DNS, which is short for domain name system, is the phone book of the Internet.&amp;nbsp; It translates addresses like www.facebook.com into ip address so your page request can reach the web server.&lt;br /&gt;
&lt;br /&gt;
Whenever you connect to the Internet, your computer is usually are told which DNS servers to use by your Internet service provider.&amp;nbsp; However, these servers are often slow, and many times have to ask several other servers to find the sites that you want.&amp;nbsp; This is why it might take a while to find all of the different sites that make up the site you are trying to visit.&amp;nbsp; Well &lt;a href="http://www.opendns.com/" title="OpenDNS"&gt;OpenDNS&lt;/a&gt; will provide you with a fast DNS server to use.&amp;nbsp; It is free, and they even have &lt;a href="http://www.opendns.com/support/videos/" title="Support Videos"&gt;video tutorials&lt;/a&gt; to show you how to setup your computer or wireless router to use their DNS servers.&amp;nbsp; As an added bonus, they can provide web filtering and protect you from &lt;a href="http://en.wikipedia.org/wiki/Phishing" title="Phishing"&gt;phishing scams&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
So if you are seeing a lot of "looking up" messages while you wait for pages to load, it might be worth it to give OpenDNS a try.&amp;nbsp; Google offers a &lt;a href="http://code.google.com/speed/public-dns/" title="Google Public DNS"&gt;similar service&lt;/a&gt; as well.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2721499664417059501-4543802491383058493?l=www.christopherslade.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/-e-B1QzofurxBlhaVtX9YKeVrUk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-e-B1QzofurxBlhaVtX9YKeVrUk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/-e-B1QzofurxBlhaVtX9YKeVrUk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-e-B1QzofurxBlhaVtX9YKeVrUk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Tecno-pedagogia/~4/zABjEfR_sJQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.christopherslade.com/feeds/4543802491383058493/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.christopherslade.com/2010/10/internet-running-slow-try-opendns.html#comment-form" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2721499664417059501/posts/default/4543802491383058493?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2721499664417059501/posts/default/4543802491383058493?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Tecno-pedagogia/~3/zABjEfR_sJQ/internet-running-slow-try-opendns.html" title="Internet Running Slow? Try OpenDNS" /><author><name>Chris Slade</name><uri>https://profiles.google.com/112952901297949086888</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-eVWOVzYOCTY/AAAAAAAAAAI/AAAAAAAACc4/2b6a3wdDxvg/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-XoL1oHmHoio/TqJ0ubDl5JI/AAAAAAAACo8/drZodkCt5Dg/s72-c/opendns_logo1.jpg" height="72" width="72" /><thr:total>3</thr:total><feedburner:origLink>http://www.christopherslade.com/2010/10/internet-running-slow-try-opendns.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkMHQXszfip7ImA9WhdaEk4.&quot;"><id>tag:blogger.com,1999:blog-2721499664417059501.post-6662245312328552130</id><published>2010-10-13T01:24:00.000-10:00</published><updated>2011-10-21T10:53:50.586-10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-21T10:53:50.586-10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Technology" /><category scheme="http://www.blogger.com/atom/ns#" term="web hosting" /><category scheme="http://www.blogger.com/atom/ns#" term="Miscellaneous" /><category scheme="http://www.blogger.com/atom/ns#" term="wordpress plugins" /><title>Migrating to a New Host</title><content type="html">So you probably have already noticed, I am not updating my blog very often.  Trying to teach 3-4 classes a semester, doing a dissertation, and trying to be a good husband and father keeps me really busy.  Although my previous &lt;a title="Bluehost" href="http://bluehost.com"&gt;host&lt;/a&gt; has been great, I decided to go with a cheaper hosting option.  That meant that I had to migrate my blog to a new server.  If you visit my site, you should notice a new, cleaner look.  I hope you like it.  (Although I am probably just writing this to myself since I don't really have any followers.)  What follows are some of the features and choices I made to make this blog look the way it does.  If you are interested in the technical details, then read on.&lt;br/&gt;&lt;br/&gt;First, I decided to transfer my domain name to &lt;a title="GoDaddy" href="http://www.godaddy.com"&gt;godaddy.com&lt;/a&gt;.  They had a better price than my old host.  It was fun learning about the domain name transfer process.  I started by just transfering the domain, and I kept using my old host's nameservers so that it would continue to point to my old site.  Once I got my new blog up and running, I parked the domain at godaddy, and pointed it to my new host.  I use &lt;a title="OpenDNS" href="http://www.opendns.com"&gt;openDNS&lt;/a&gt; (maybe I will write about that in a future post), and I was surprised at how fast they picked up the change.  It only took them 30 minutes to notice the change and update the entries.  The nameservers at BYU-Hawaii took a couple of days to pick up the change.&lt;br/&gt;&lt;br/&gt;Second, I decided to stay with the &lt;a title="Wordpress" href="http://www.wordpress.org"&gt;Wordpress &lt;/a&gt;blog engine.  I was a little hesitant to stick with wordpress because it takes a lot of resources and runs slow.  My new host doesn't have as many resources.  This meant that my blog loaded really slow (3 seconds per page).  I explored other options.  I even installed &lt;a title="Movable Type" href="http://www.movabletype.org"&gt;Movabletype&lt;/a&gt;.  Movabletype definitely loads much faster, because it saves static html pages on your site after you publish.  However, there are not as many extensions and it seemed much more complicated to setup.&lt;br/&gt;&lt;br/&gt;Then I stumbled up the &lt;a title="WP Super Cache" href="http://ocaoimh.ie/wp-super-cache/?r=supercache"&gt;WP Super Cache&lt;/a&gt; plugin.  What it does is create static copies of all of my pages.  Most visitor will get the static copy.  When I create a new post, or when someone comments, the cache is automatically regenerated with the new content.  Now, my pages load in less than a second (except for the Facebook like buttons, but that is Facebook's fault not my server's).  This does mean that my twitter feed will be out of date, but I hope to fix that in the future.&lt;br/&gt;&lt;br/&gt;I also decided to use the &lt;a title="Disqus" href="http://disqus.com"&gt;Disqus&lt;/a&gt; commenting system.  This lets people log in with their Facebook or Twitter accounts, and then they can post comments.  They also can post their comments to their Facebook wall.  I tried &lt;a title="IntenseDebate" href="http://intensedebate.com"&gt;IntenseDebate&lt;/a&gt; which does the same thing.  However, they tied my profile to a Wordpress.com account.  Then to get comment notifications, I had to publish my email address in a Wordpress press profile and in &lt;a title="Gravatar" href="http://gravatar.com"&gt;Gravatar&lt;/a&gt;. IntenseDebate did load faster and that is why I tried it out.  However, after I installed the caching plugin, disqus started to load fast too.  Another good feature of Disqus, is their android app.  Now I can view and moderate my comments on my phone.&lt;br/&gt;&lt;br/&gt;I also added the Facebook like buttons so that people with Facebook accounts can like my posts and comment on them in Facebook.  Using an add-to-any button, I also added many ways people can share my posts.&lt;br/&gt;&lt;br/&gt;Anyway, I hope you like the new look and features.  Now I just need to get some good content here, and some readers.  Maybe posting more than just once or twice a year will help.  If you are reading this, let me know what you think!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2721499664417059501-6662245312328552130?l=www.christopherslade.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Ufv3xOcvqQg4yyfPW9hS98J8DZ8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Ufv3xOcvqQg4yyfPW9hS98J8DZ8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Ufv3xOcvqQg4yyfPW9hS98J8DZ8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Ufv3xOcvqQg4yyfPW9hS98J8DZ8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Tecno-pedagogia/~4/Fv3hiaAKffo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.christopherslade.com/feeds/6662245312328552130/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.christopherslade.com/2010/10/migrating-to-new-host.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2721499664417059501/posts/default/6662245312328552130?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2721499664417059501/posts/default/6662245312328552130?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Tecno-pedagogia/~3/Fv3hiaAKffo/migrating-to-new-host.html" title="Migrating to a New Host" /><author><name>Chris Slade</name><uri>https://profiles.google.com/112952901297949086888</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-eVWOVzYOCTY/AAAAAAAAAAI/AAAAAAAACc4/2b6a3wdDxvg/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.christopherslade.com/2010/10/migrating-to-new-host.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkMHQXszeip7ImA9WhdaEk4.&quot;"><id>tag:blogger.com,1999:blog-2721499664417059501.post-566905738586096598</id><published>2010-02-04T07:31:00.000-10:00</published><updated>2011-10-21T10:53:50.582-10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-21T10:53:50.582-10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="mormon" /><category scheme="http://www.blogger.com/atom/ns#" term="knowledge" /><category scheme="http://www.blogger.com/atom/ns#" term="Religion" /><category scheme="http://www.blogger.com/atom/ns#" term="belief systems" /><title>Belief Systems</title><content type="html">I recently heard a TV personality ridicule religious people by saying they are crazy because their beliefs are not provable, and in his opinion, have been proved wrong.  He attacked all religions but specifically attacked the &lt;a href="http://mormon.org/"&gt;Mormon&lt;/a&gt; religion.  I wasn't too offended because I know that he says stuff to shock people.  However, I have learned that there is more than one way to build beliefs and knowledge.&lt;br/&gt;&lt;br/&gt;One way is through our observations.  We develop beliefs and knowledge based on what we have seen.  Like when the first person circumnavigated the global we all started to believe that the world was round. Before that everyone thought the earth was flat.  Before circling the world, everyone's observations led people to believe incorrect facts because they didn't have a complete picture.  Using this systems as the only system to establish our beliefs means that we establish our beliefs on partial information.  We cannot observe everything, so we can never really base our beliefs on a complete picture.  The scientific method is just an algorithm to increase our ability to observe and make appropriate conclusions.  It has led to great advances in our knowledge, but it still paints an incomplete picture.&lt;br/&gt;&lt;br/&gt;Another belief system is establishing our beliefs through feelings.  If there is a God, and if He loves us, than wouldn't he try to communicate with us? I believe that he communicates with us through feelings.  This can be done through our conscience, guilt, and with other feelings of hope, joy, and peace.  If you hear something and feel peace, than it is God communicating with us.&lt;br/&gt;&lt;br/&gt;I just find it weird that a person who only bases his knowledge on a partial picture would ridicule others who base their beliefs on receiving light and intelligence from God.  Don't get me wrong.  As a scientist, I believe that the scientific method is very useful in exploring our world and developing beliefs.  However, it only paints an incomplete picture.  There will always be more observations to make.  As an example, there is an entire research field studying the performance of computers.  They still don't know the details of everything that is going on inside of a computer system.  And that machine was built by humans.  We don't even have a complete picture our of our personal history on this earth.  How many observations have we forgotten about?  How could we ever expect to know everything about this world through observations?  So someone that bases his entire belief system on only their observation, and tells others that they are crazy for believing what they do, seems to be the one that is short sighted.&lt;br/&gt;&lt;br/&gt;I know that God lives because I have felt him talk to me.  I know the Book of Mormon is true because I asked God and he told me it was true.  I know that many people might try to bring evidence (or observations) to try to contradict my knowledge, however they are only partial observations and only paint incomplete pictures.  I think I would rather trust in what God has told me.  Not only does it give me a more complete picture, but it has brought a lot of peace and happiness in my life.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2721499664417059501-566905738586096598?l=www.christopherslade.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/swAZYTu9_Cg864Ptkb6ffQzEH0w/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/swAZYTu9_Cg864Ptkb6ffQzEH0w/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/swAZYTu9_Cg864Ptkb6ffQzEH0w/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/swAZYTu9_Cg864Ptkb6ffQzEH0w/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Tecno-pedagogia/~4/blEBg18qG9s" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.christopherslade.com/feeds/566905738586096598/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.christopherslade.com/2010/02/belief-systems.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2721499664417059501/posts/default/566905738586096598?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2721499664417059501/posts/default/566905738586096598?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Tecno-pedagogia/~3/blEBg18qG9s/belief-systems.html" title="Belief Systems" /><author><name>Chris Slade</name><uri>https://profiles.google.com/112952901297949086888</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-eVWOVzYOCTY/AAAAAAAAAAI/AAAAAAAACc4/2b6a3wdDxvg/s512-c/photo.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://www.christopherslade.com/2010/02/belief-systems.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkMHQXs8fyp7ImA9WhdaEk4.&quot;"><id>tag:blogger.com,1999:blog-2721499664417059501.post-5658135307756904641</id><published>2009-08-10T14:12:00.000-10:00</published><updated>2011-10-21T10:53:50.577-10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-21T10:53:50.577-10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Teaching" /><category scheme="http://www.blogger.com/atom/ns#" term="Graphics" /><category scheme="http://www.blogger.com/atom/ns#" term="beginning programming" /><title>Enticing Computer Science Majors</title><content type="html">What enticed you to become what you are today?  For me, Computer Science enticed me by giving me the following:&lt;br/&gt;&lt;ul&gt;&lt;br/&gt;	&lt;li&gt;A way to solve problems.  I love trying to figure out new stuff and make things work.  In computer science, we are given a problem and a processor, and then we have to get the processor to solve the problem.&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;A way to build something useful.  One of my most satisfying projects was to build the &lt;a href="http://intramurals.byu.edu" target="_blank"&gt;BYU Intramural Activities&lt;/a&gt; scheduling and online registration system.  I had played&lt;span style="color: #000000;"&gt; Intramurals m&lt;/span&gt;any times and it was exciting to build something that I knew I would use, along with 10,000 other BYU students per semester.  It was also fun to see people explain the new rules (that I helped create) to me, having no idea I created the site they were using.  (They have put a new look on it, but I believe they are still using my system today.)&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;A way to learn about how things work.  I have had a hard time understanding why people don't want to know how something works, because I have to know how everything works.  From cars to the ocean tides, I want to know how it works.  It strikes me odd that most Computer Science graduates have a very limited understanding on how a computer actually works.  They might know a little bit about the CPU, but they really don't know how all of the I/O devices, and the operating system all function together.  For the most part, they are completely content just knowing that it works and writing programs that run on top of it all.  (Of course, I am sure the reason why people don't want to know how everything works is due to a limited amount of time.  No?  Okay, so maybe I am just a weirdo.)&lt;/li&gt;&lt;br/&gt;&lt;/ul&gt;&lt;br/&gt;Anyway, as I have been developing lots of programming projects to torture my students, I have realized the best assignments have some sort of excitement factor.  In order to create the best labs, I really need to know what entices students.&lt;br/&gt;&lt;br/&gt;One way is with graphics.  Many students like creating graphics, or so I have been told.  This is why they created &lt;a title="Educational Software that teaches students how to program in a 3D environment." href="http://www.alice.org"&gt;Alice&lt;/a&gt;.  Unfortunately,  Alice has very little appeal to me.  I can't really solve any new problems with it.  I don't know why, but making a girl skate around on the ice for hours isn't all that motivating to me.  So when some of my colleagues suggested that I make everything in Computer Science graphical, it really bothered me.  Mostly because once they graduate, chances are they are going to be typing text into a text editor or an &lt;a title="Integrated Development Environment" href="http://en.wikipedia.org/wiki/Integrated_development_environment"&gt;IDE&lt;/a&gt; 8 hours a day.  So, (to me) their goal was to trick the students into liking Computer Science by making it fun - ie. graphical.  I used to think, "Computer Science should be fun by itself, it doesn't need skating ballerinas.  If they don't like it, they should probably choose another major."&lt;br/&gt;&lt;br/&gt;Don't get me wrong, I was never against including more graphics in my assignments.  I just wasn't motivated to spend hours trying to create labs that did have graphics in them.&lt;br/&gt;&lt;br/&gt;When one of my colleagues introduced a graphics lab where students draw beach huts that can be posted on a web page, it made me think a lot about my previous opinions about graphics in Computer Science.  It was easy to tell that some of the students spent a lot of time making their hut.  I then thought about what motivates them to spend 3-4 extra hours on their lab when they probably have a lot of other assignments and, here in Hawaii, a lot of surfing to do. Okay, so I had to admit that this lab had some sort of excitement factor to it.  Then, does that mean that everyone who spent extra time to make their hut prettier has the wrong motivation, and will eventually be really upset that we tricked them to think that Computer Science is really just making fun pictures?&lt;br/&gt;&lt;br/&gt;So here are some of the possible factors that motivated these students:&lt;br/&gt;&lt;ul&gt;&lt;br/&gt;	&lt;li&gt;Being an artist.  They liked painting their canvas by typing words like drawCircle.&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;A sense of accomplishment by actually creating something they can show people, just like I liked being the Intramural site creator.&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;Overcoming a challenge.&lt;/li&gt;&lt;br/&gt;&lt;/ul&gt;&lt;br/&gt;Can you think of others?&lt;br/&gt;&lt;br/&gt;So, if the students are motivated only by the first factor that I mentioned, my guess is that they have a major disappointment coming their way.  However, if they are motivated by the other factors, they could be hooked enough to trade their surf board for a new computer.&lt;br/&gt;&lt;br/&gt;So, are graphics the only way to motivate people into Computer Science?  Maybe so, and this is why.  Most beginning CS having only interacted with the graphical aspects of a computer.  Surfing the web is highly graphical, especially with flash ads on every page.  Even writing a report has many graphical elements (how long do you spend formatting?).  So, when a student actually builds something graphical he can feel like he created something that fits into his paradigm of a computer program.&lt;br/&gt;&lt;br/&gt;Not until they catch a vision of  all of the other things computers do behind the GUI will they start to appreciate what programming really is.  For a beginning programming class, graphics will probably do a lot of good, but we have to transition them to the real Computer Science by having them explore behind the GUI.  So, I guess I have to say, "Skate on ballerina."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2721499664417059501-5658135307756904641?l=www.christopherslade.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/huvUaAC_HJipVxmZpNSNV04Y0OQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/huvUaAC_HJipVxmZpNSNV04Y0OQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/huvUaAC_HJipVxmZpNSNV04Y0OQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/huvUaAC_HJipVxmZpNSNV04Y0OQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Tecno-pedagogia/~4/ncgvbzqqUIA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.christopherslade.com/feeds/5658135307756904641/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.christopherslade.com/2009/08/enticing-computer-science-majors.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2721499664417059501/posts/default/5658135307756904641?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2721499664417059501/posts/default/5658135307756904641?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Tecno-pedagogia/~3/ncgvbzqqUIA/enticing-computer-science-majors.html" title="Enticing Computer Science Majors" /><author><name>Chris Slade</name><uri>https://profiles.google.com/112952901297949086888</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-eVWOVzYOCTY/AAAAAAAAAAI/AAAAAAAACc4/2b6a3wdDxvg/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.christopherslade.com/2009/08/enticing-computer-science-majors.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkMHQXs5fip7ImA9WhdaEk4.&quot;"><id>tag:blogger.com,1999:blog-2721499664417059501.post-3313248225068621469</id><published>2009-05-22T16:33:00.000-10:00</published><updated>2011-10-21T10:53:50.526-10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-21T10:53:50.526-10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Technology" /><category scheme="http://www.blogger.com/atom/ns#" term="RESTful" /><category scheme="http://www.blogger.com/atom/ns#" term="drag and drop" /><category scheme="http://www.blogger.com/atom/ns#" term="AJAX" /><category scheme="http://www.blogger.com/atom/ns#" term="Rails" /><title>Ruby on Rails - RESTful Drag and Drop</title><content type="html">Ruby on Rails and the script.acul.ous library make drag and drop really easy.  Just by adding one line of code, and you can make anything in your page draggable.  With another line of code, you can make anything receive a draggable element.&lt;br/&gt;&lt;br/&gt;However, I struggled in making my drag and drop interface &lt;a title="Representational_State_Transfer" href="http://en.wikipedia.org/wiki/Representational_State_Transfer" target="_blank"&gt;RESTful&lt;/a&gt;, and I also struggled in sending the new coordinates to the server to update the model.  I will first address how I made my drag and drop RESTful and then how I managed to get the right coordinates of the drop.&lt;br/&gt;&lt;br/&gt;So here is the setup:  I have list of element on the web page, and then a div tag into which the user can drag one of the listed elements.  Then the user can drag the element around the div as well as drag the element off of the div to remove it.  I want the server to remember what elements have been placed on the div and where they are.  That way the user can re-visit the page and see it like he left it.  These three actions easily fit into RESTful actions:  Dragging an element on will call the create action,  Moving an element will call the update action, and dragging an element off will call the destroy action.&lt;br/&gt;&lt;br/&gt;So the problem comes when droppable (or the receiving element) receives the draggable.  You need to know the url of the RESTful action before anything has been dropped.  This isn't a problem for the create action, it is a POST to /draggable_elements (where draggable_element is the model that stores the elements that have been placed on the map with their X and Y coordinates).  However update and delete's url is a PUT or DELETE to /draggable_elements/&lt;strong&gt;id &lt;/strong&gt;respectively.  However you don't know the id until the element has been dropped, and once an element is dropped, an AJAX request is immediatly sent to the specified action with one parameter: the DOM id of the element that is dropped.  You cannot specify the correct action because you don't know the element's id until after it is dropped, and you probably don't want your DOM id's to be just the numerical id of draggable_element.  Also, the AJAX request doesn't contain any information about where the drop occurred.&lt;br/&gt;&lt;br/&gt;I first tried to solve this problem with the :with option in the drop_receiving_element call.  This allowed me to add additional parameters like the X and Y, but it didn't allow me to change the action of the AJAX request.  Here is my code in the view using the :with option:&lt;br/&gt;&lt;pre lang="ruby" line="1"&gt;&lt;br/&gt; &lt;%= drop_receiving_element :droppable, :accept =&gt; "draggable", :hoverclass  =&gt; "hover", :url =&gt; draggable_elements_path, :method =&gt; :post, :with =&gt; "'element_id='+encodeURIComponent(element.id.split('_').last()) +&lt;br/&gt;'&amp;x='+ encodeURIComponent(Element.getStyle(element,'left')) +  '&amp;y='+ encodeURIComponent(Element.getStyle(element,'top')) "&gt;&lt;br/&gt;&lt;/pre&gt;&lt;br/&gt;I called split('_').last() on the element.id to get the actual id number out of my DOM id of the element that was dragged in.  I set the DOM ids of the draggable elements to item_&lt;em&gt;id&lt;/em&gt; where the id is the database id of that element.  &lt;em&gt;split&lt;/em&gt; and &lt;em&gt;encodeURIComponent&lt;/em&gt; are both javascript methods.&lt;br/&gt;&lt;br/&gt;I almost gave up on being RESTful, but then looked into the onDrop option.  With this option I can get the drop_receiving_element to call a javascript function instead of sending an AJAX request when it receives a draggable.  I then created hidden forms on my page, one for create, and an update and delete form for each element already dragged in. This worked out great because I could use the remote_form_for helper methods and just pass them instances of the draggable_elements (with a blank one for the create form).  Now, each form will have the correct action coded into it.  The javascript method just has to tell the right form to submit after updating the values.&lt;br/&gt;&lt;br/&gt;(If you want the form to send an AJAX request you need to call form.onsubmit() not form.submit().  form.submit() will send an http request.)&lt;br/&gt;&lt;br/&gt;The big payoff to all of this is that it really simplifies the controller code.  In fact, I think the only change from the scaffolding code that you would need to make is to delete the new and edit actions, since you won't be using them. (I didn't use the scaffolding so I am not sure about this.)&lt;br/&gt;&lt;br/&gt;I also wanted to send the new X and Y coordinates of the drop.  In the code above, I am sending the element left and top for X and Y.  The problem with that is that the positions are relative to where the draggable element is on the page.  Therefore if the user scrolls the page down, zooms in, etc. the coordinate positions will change.  After searching for a solution, I found out that in order to find the absolute position, you have to recurse through all the parents object and find the offset of each parent item and add them up.  Put it all together, and you have a RESTful drag and drop that stores the absolute coordinates of the draggable elements.&lt;br/&gt;&lt;br/&gt;Here is my code:&lt;br/&gt;&lt;br/&gt;For enabling the draggable elements:&lt;br/&gt;&lt;pre lang="ruby" line="1"&gt;&lt;br/&gt;&lt;% @items.each do |item| -%&gt;&lt;br/&gt;       &lt;%= draggable_element "item_#{item.id}", :revert =&gt; true, :ghosting =&gt; true%&gt;&lt;br/&gt;&lt;% end -%&gt;&lt;br/&gt;&lt;/pre&gt;&lt;br/&gt;My droppable:&lt;br/&gt;&lt;pre lang="ruby" line="1"&gt;&lt;br/&gt;&lt;%= drop_receiving_element :dropDiv, :accept =&gt; "draggable", :hoverclass =&gt; "hover", :onDrop  =&gt; "itemDropped"%&gt;&lt;br/&gt;&lt;/pre&gt;&lt;br/&gt;My Create form:&lt;br/&gt;&lt;pre lang="ruby" line="1"&gt;&lt;br/&gt;&lt;div id="addItemForm" style="display: none"&gt;&lt;br/&gt;	&lt;% remote_form_for @new_item do |form|	-%&gt;&lt;br/&gt;          &lt;div&gt;&lt;br/&gt;		&lt;%= form.hidden_field :element_id %&gt;&lt;br/&gt;		&lt;%= form.hidden_field :x%&gt;&lt;br/&gt;		&lt;%= form.hidden_field :y%&gt;&lt;br/&gt;           &lt;/div&gt;&lt;br/&gt;        &lt;% end -%&gt;&lt;br/&gt;&lt;/div&gt;&lt;br/&gt;&lt;/pre&gt;&lt;br/&gt;And my javascript:&lt;br/&gt;&lt;pre lang="javascript" line="1"&gt;&lt;br/&gt;function itemDropped (draggableElement, droppableElement, event){&lt;br/&gt;	form = document.getElementById("new_item");&lt;br/&gt;	form.elements["draggable_element[element_id]"].value = draggableElement.id.split('_').last();&lt;br/&gt;	dropDiv = document.getElementById("dropDiv");&lt;br/&gt;	dropPosition = getPosition(dropDiv);&lt;br/&gt;	draggablePosition = getPosition(draggableElement);&lt;br/&gt;	form.elements["draggable_element[x]"].value = draggablePosition[0] - cmapPosition[0];&lt;br/&gt;	form.elements["draggable_element[y]"].value = draggablePosition[1] - cmapPosition[1];&lt;br/&gt;	form.onsubmit();&lt;br/&gt;}&lt;br/&gt;&lt;br/&gt;function getPosition (obj){&lt;br/&gt;	var curLeft = 0;&lt;br/&gt;	var curTop = 0;&lt;br/&gt;	do {&lt;br/&gt;		curLeft += obj.offsetLeft;&lt;br/&gt;		curTop += obj.offsetTop;&lt;br/&gt;	} while (obj = obj.offsetParent);&lt;br/&gt;	return [curLeft,curTop]&lt;br/&gt;}&lt;br/&gt;&lt;/pre&gt;&lt;br/&gt;Notice that the get position adds up all of the parents offsets.  This isn't my complete code, it only sends the create form, but hopefully it is enough to get you started.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2721499664417059501-3313248225068621469?l=www.christopherslade.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/O_GI99ZKRLaHaij-m5-50oLuqWc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/O_GI99ZKRLaHaij-m5-50oLuqWc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/O_GI99ZKRLaHaij-m5-50oLuqWc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/O_GI99ZKRLaHaij-m5-50oLuqWc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Tecno-pedagogia/~4/YYr9TDlAgQw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.christopherslade.com/feeds/3313248225068621469/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.christopherslade.com/2009/05/ruby-on-rails-restful-drag-and-drop.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2721499664417059501/posts/default/3313248225068621469?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2721499664417059501/posts/default/3313248225068621469?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Tecno-pedagogia/~3/YYr9TDlAgQw/ruby-on-rails-restful-drag-and-drop.html" title="Ruby on Rails - RESTful Drag and Drop" /><author><name>Chris Slade</name><uri>https://profiles.google.com/112952901297949086888</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-eVWOVzYOCTY/AAAAAAAAAAI/AAAAAAAACc4/2b6a3wdDxvg/s512-c/photo.jpg" /></author><thr:total>2</thr:total><feedburner:origLink>http://www.christopherslade.com/2009/05/ruby-on-rails-restful-drag-and-drop.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkMHQXs6fyp7ImA9WhdaEk4.&quot;"><id>tag:blogger.com,1999:blog-2721499664417059501.post-2457107915285653078</id><published>2009-04-21T05:04:00.000-10:00</published><updated>2011-10-21T10:53:50.517-10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-21T10:53:50.517-10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Technology" /><category scheme="http://www.blogger.com/atom/ns#" term="AJAX" /><category scheme="http://www.blogger.com/atom/ns#" term="pagination" /><category scheme="http://www.blogger.com/atom/ns#" term="Rails" /><title>Rails Pagination with AJAX</title><content type="html">When I upgraded to Rails 2.0, I quickly found out that pagination was removed from the rails code base.  In order to get it you have to install a plugin.  After searching on the web I found two possible plugins: classic pagination, and &lt;a href="http://wiki.github.com/mislav/will_paginate"&gt;will_paginate&lt;/a&gt;.  I choose will_paginate because it is more efficient and works directly with the model.&lt;br/&gt;&lt;br/&gt;However, the author suggests not to use link_to_remote to implement an "AJAXified" pagination.  Instead he gives some pretty ugly javascript code that does it.  Since I am using a lot of javascript in other areas of my application, I was really hesitant to go down that path and possibly break my javascript functions.  I see his point, in that not everyone uses the prototype library, but I do.  So I came across &lt;a href="http://weblog.redlinesoftware.com/2008/1/30/willpaginate-and-remote-links"&gt;Redline's blog&lt;/a&gt; to change my links to link_to_remote links.  But this violates the other reason the will_paginate's author gives for not using link_to_remote - non-javascript browser support and search engine support.&lt;br/&gt;&lt;br/&gt;After looking at the link_to_remote documentation, I found that you can replace the default anchor link location (href="#") with the same url the ajax call goes to.  This allows non-javascript enabled browsers and search engines to follow the links.  I just modified Redline's render to add one extra option to set the href.  This is my renderer module:&lt;br/&gt;&lt;pre&gt;# app/helpers/remote_link_renderer.rb&lt;br/&gt;&lt;br/&gt;class RemoteLinkRenderer &amp;lt; WillPaginate::LinkRenderer&lt;br/&gt;  def prepare(collection, options, template)&lt;br/&gt;     @remote = options.delete(:remote) || {}&lt;br/&gt;     super&lt;br/&gt;  end&lt;br/&gt;&lt;br/&gt;protected&lt;br/&gt;  def page_link(page, text, attributes = {})&lt;br/&gt;     @template.link_to_remote(text, {:url =&amp;gt; url_for(page),&lt;br/&gt;          :method =&amp;gt; :get}.merge(@remote), :href =&amp;gt; url_for(page))&lt;br/&gt;  end&lt;br/&gt;end&lt;/pre&gt;&lt;br/&gt;With that, javascript-enabled browsers will use make and use the AJAX calls, and non-javascript-enabled browsers and search engines will use the normal links.  This seems like the cleanest and most DRY way to get pagination with AJAX.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2721499664417059501-2457107915285653078?l=www.christopherslade.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/hIr0mQcmQN0_O8yKeR55MDTmtuY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/hIr0mQcmQN0_O8yKeR55MDTmtuY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/hIr0mQcmQN0_O8yKeR55MDTmtuY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/hIr0mQcmQN0_O8yKeR55MDTmtuY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Tecno-pedagogia/~4/a_izivlwMlk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.christopherslade.com/feeds/2457107915285653078/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.christopherslade.com/2009/04/rails-pagination-with-ajax.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2721499664417059501/posts/default/2457107915285653078?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2721499664417059501/posts/default/2457107915285653078?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Tecno-pedagogia/~3/a_izivlwMlk/rails-pagination-with-ajax.html" title="Rails Pagination with AJAX" /><author><name>Chris Slade</name><uri>https://profiles.google.com/112952901297949086888</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-eVWOVzYOCTY/AAAAAAAAAAI/AAAAAAAACc4/2b6a3wdDxvg/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.christopherslade.com/2009/04/rails-pagination-with-ajax.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0cBQ3Y6eCp7ImA9WhdaEko.&quot;"><id>tag:blogger.com,1999:blog-2721499664417059501.post-2299552751817337022</id><published>2009-03-11T07:08:00.000-10:00</published><updated>2011-10-21T23:17:32.810-10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-21T23:17:32.810-10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Teaching" /><category scheme="http://www.blogger.com/atom/ns#" term="book review" /><category scheme="http://www.blogger.com/atom/ns#" term="success" /><category scheme="http://www.blogger.com/atom/ns#" term="Miscellaneous" /><title>Outliers: The Story of Success by Malcolm Gladwell</title><content type="html">&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://ecx.images-amazon.com/images/I/311wpZadB2L._SL500_AA300_.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="200" src="http://ecx.images-amazon.com/images/I/311wpZadB2L._SL500_AA300_.jpg" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;
The dean of my college gave all the faculty this book.&amp;nbsp; I really enjoyed reading it.&amp;nbsp; It was a page turner that made me think a lot about success in my own life.&lt;br /&gt;
&lt;br /&gt;
I really liked the beginning story about the Canadian Junior Hockey League.&amp;nbsp; As Malcolm points out, most of them are born in the first three months of the year.&amp;nbsp; Why? When the boys are 11 years old they get evaluated and the good ones are chosen to be in the better leagues.&amp;nbsp; The problem is that the boys that were born in December are competing with the boys that were born in January, so the boys that are 11 months older (and that much bigger and more mature) are more likely to be selected to play for the better coaches, play against tougher competition, and have more practice time. So the boys born in December have a huge disadvantage.&lt;br /&gt;
&lt;br /&gt;
This happens with public education as well, except the cut off time is August, not January.&amp;nbsp; So, as you would expect, kids born in August, September, and October have an advantage over kids born in July.&amp;nbsp; They perform better on tests and assignment, get assigned to more advanced classes with better teachers, get into better colleges, etc.&lt;br /&gt;
&lt;br /&gt;
This is just one example Malcolm gives in his book.&amp;nbsp; He gives many other examples, including the advantages that&amp;nbsp; Bill Gates, &lt;a href="http://en.wikipedia.org/wiki/Bill_Joy" title="Bill Joy"&gt;Bill Joy&lt;/a&gt;, and the Beatles had in their lives.&lt;br /&gt;
&lt;br /&gt;
I did, however, have a couple of problems with the book.&amp;nbsp; First, all of his stats and stories seem to be cherry-picked.&amp;nbsp; He only tells stories and relates statistics that support his point of view. Of course, I would expect this from anyone, but it just seems that he is overselling their significance and ignoring any contradicting evidence.&lt;br /&gt;
&lt;br /&gt;
Second, he never really discusses what his definition of success is.&amp;nbsp; As far as I can tell, his definition of success is being rich, famous, or both.&amp;nbsp; I have a much different definition of success - happiness.&amp;nbsp; I do believe that his analysis can be applied to my version of success.&amp;nbsp; As I read this book I was constantly thinking about the opportunities and advantages that led me to where I am today.&amp;nbsp; Unlike the book, I feel that my opportunities did not happen by mere chance, but as the blessings and tender mercies of a loving God.&lt;br /&gt;
&lt;br /&gt;
I do agree with Malcolm that we have to provide more people more opportunities for success.&amp;nbsp; However, I was a little disappointed that Malcolm didn't go on to say that as people, we need to look for our advantages and then use them for our success.&amp;nbsp; We need to find out how we are different, identify what advantages we have, and then work really hard to achieve the success that we want using those advantages.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2721499664417059501-2299552751817337022?l=www.christopherslade.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/M30dJ0EIzU0vDYdGhXD3IEBmogU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/M30dJ0EIzU0vDYdGhXD3IEBmogU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/M30dJ0EIzU0vDYdGhXD3IEBmogU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/M30dJ0EIzU0vDYdGhXD3IEBmogU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Tecno-pedagogia/~4/QVpjkjppGck" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.christopherslade.com/feeds/2299552751817337022/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.christopherslade.com/2009/03/outliers-story-of-success-by-malcolm.html#comment-form" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2721499664417059501/posts/default/2299552751817337022?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2721499664417059501/posts/default/2299552751817337022?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Tecno-pedagogia/~3/QVpjkjppGck/outliers-story-of-success-by-malcolm.html" title="Outliers: The Story of Success by Malcolm Gladwell" /><author><name>Chris Slade</name><uri>https://profiles.google.com/112952901297949086888</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-eVWOVzYOCTY/AAAAAAAAAAI/AAAAAAAACc4/2b6a3wdDxvg/s512-c/photo.jpg" /></author><thr:total>3</thr:total><feedburner:origLink>http://www.christopherslade.com/2009/03/outliers-story-of-success-by-malcolm.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0YBQ386fSp7ImA9WhdaEko.&quot;"><id>tag:blogger.com,1999:blog-2721499664417059501.post-5597819232278323452</id><published>2009-01-12T01:29:00.000-10:00</published><updated>2011-10-21T23:19:12.115-10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-21T23:19:12.115-10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Teaching" /><category scheme="http://www.blogger.com/atom/ns#" term="favorite course" /><category scheme="http://www.blogger.com/atom/ns#" term="curriculum" /><title>My Favorite Course</title><content type="html">&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://ecx.images-amazon.com/images/I/417cXJ3uyWL._SL500_AA300_.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="200" src="http://ecx.images-amazon.com/images/I/417cXJ3uyWL._SL500_AA300_.jpg" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;
I find it really strange that my favorite course to teach just happens to be the course that I hated the most when I had to take it - computational theory.&amp;nbsp; I thought that I would love to teach my favorite subject during my undergraduate and graduate studies.&amp;nbsp; I am not sure why I have had such a change of heart.&amp;nbsp; All I can do is be grateful that I have a job that has allowed me to teach such a variety of areas.&amp;nbsp; I have basically taught every course in the undergraduate degree except computer organization and the very beginning programming course in a year and a half.&amp;nbsp; (Which, by the way, is a very good method for studying for a qualification exam.)&amp;nbsp; It also excludes courses that are covered by the Information Systems and Technology degrees like networking and databases, and senior level electives.&lt;br /&gt;
&lt;br /&gt;
Some of them I feel like I did really well, and others did not go well at all.&amp;nbsp; However, through all of it, computational theory became my favorite course.&amp;nbsp; I know it was not because it was the easiest for me to teach.&amp;nbsp; In fact it was the hardest.&amp;nbsp; I had to spend hours reading the book and working out proofs and homework problems for each lecture.&amp;nbsp; What was the reason for the switch?&amp;nbsp; I am not sure, but any of the following could have contributed:&lt;br /&gt;
&lt;ul&gt;&lt;br /&gt;
&lt;li&gt;I did not like the teacher who taught me the subject.&amp;nbsp; He was boring, and it was obvious that he didn't really want to be teaching this course.&amp;nbsp; His approach for help was saying, "Yeah, that is a hard question.&amp;nbsp; It took me a couple hours myself.&amp;nbsp; Good Luck."&lt;/li&gt;
&lt;br /&gt;
&lt;li&gt;I couldn't see the big picture while I was taking the course.&amp;nbsp; I didn't like the fact that there wasn't any programming projects.&amp;nbsp; I couldn't see why this theory fit in with computer programming.&amp;nbsp; After finishing my degree and working on&amp;nbsp; graduate degrees, I can see how theory fits into the full scheme of Computer Science.&lt;/li&gt;
&lt;br /&gt;
&lt;li&gt;I have figured out that I liked Computer Science (or programming as I thought of it back then) because of the problem solving, not the programming.&amp;nbsp; In the theory class, it tends to be pure problem solving, no typing required.&amp;nbsp; Just a lot of thinking and problem solving.&lt;/li&gt;
&lt;br /&gt;
&lt;li&gt;I learned to appreciate the history of my field, and respect the people who pioneered it.&amp;nbsp; This appreciation has led me to study their work.&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
Anyway, from my experience taking this course, I found that I really needed to catch my students interest in this course.&amp;nbsp; The first time I taught it, I started to hear the same complaints I had when I took it.&amp;nbsp; I found myself defending the course.&amp;nbsp; The best explanation I was able to come up with was that companies don't want mindless programmers.&amp;nbsp; They want people who are problems solvers.&amp;nbsp; Anyone can learn how to program.&amp;nbsp; It's the people who can solve difficult problems with efficient and elegant solutions that really have worth to a company.&amp;nbsp; If you do that for the companies you work for, you will see your demand raise, and with it your salary and job security.&amp;nbsp; Computational theory develops problem solving skills.&lt;br /&gt;
&lt;br /&gt;
Does anyone have a better explanation on why take computational theory?&amp;nbsp; How do you motivate your students?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2721499664417059501-5597819232278323452?l=www.christopherslade.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/98ajuLXJO0cma2Fy2nlMZO-Dg-Y/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/98ajuLXJO0cma2Fy2nlMZO-Dg-Y/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/98ajuLXJO0cma2Fy2nlMZO-Dg-Y/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/98ajuLXJO0cma2Fy2nlMZO-Dg-Y/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Tecno-pedagogia/~4/hYcgEp_c15M" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.christopherslade.com/feeds/5597819232278323452/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.christopherslade.com/2009/01/my-favorite-course.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2721499664417059501/posts/default/5597819232278323452?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2721499664417059501/posts/default/5597819232278323452?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Tecno-pedagogia/~3/hYcgEp_c15M/my-favorite-course.html" title="My Favorite Course" /><author><name>Chris Slade</name><uri>https://profiles.google.com/112952901297949086888</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-eVWOVzYOCTY/AAAAAAAAAAI/AAAAAAAACc4/2b6a3wdDxvg/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.christopherslade.com/2009/01/my-favorite-course.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkMHQXs7fSp7ImA9WhdaEk4.&quot;"><id>tag:blogger.com,1999:blog-2721499664417059501.post-1660971304086820085</id><published>2008-11-27T04:00:00.000-10:00</published><updated>2011-10-21T10:53:50.505-10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-21T10:53:50.505-10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Teaching" /><category scheme="http://www.blogger.com/atom/ns#" term="message boards" /><title>Course Message Boards</title><content type="html">When I was a student I never really used the course message boards.  I never found any help or answers there.  Right now I am taking a course/seminar at the University of Hawaii.  As part of the course we are required to participate on the message boards.  It has been difficult for me to get really involved, mostly  because no one else is really posting anything for me to comment on.  I also hate commenting just to earn credit, which I have done a few times.  Forcing people to comment on a message board seems to cheapen the conversation.&lt;br/&gt;&lt;br/&gt;I bring this topic up because I read a &lt;a title="Efail not Email" href="http://www.windley.com/archives/2008/11/efail_not_email.shtml"&gt;post&lt;/a&gt; on Phil Windly's blog talking about receiving a lot of email (not spam) and trying to respond to it all. I do agree that no matter what you do, you probably will never keep up with all your email.  However, as a teacher, I can really use &lt;a href="http://tantek.com/log/2008/02.html#d19t2359"&gt;Tantek's advice&lt;/a&gt;.  Whenever you receive an email question, you could post it on the course message board, along with your response.  Then when you get that question again, just refer the student to the board.&lt;br/&gt;&lt;br/&gt;In theory, students will look at the board and see that their other questions were answered on the board, and then start checking the board before emailing their professor.  Hopefully, the class could transform a previous unused and unnoticed message board into their first source for help.&lt;br/&gt;&lt;br/&gt;To make the process easier, it would be really nice to have a drag-and-drop interface to just drag your email conversation to the message board.  Then, for students with similar questions, you could drag their email to the post, which would automatically reply to their message with a link to that post.  Maybe that will be my next project.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2721499664417059501-1660971304086820085?l=www.christopherslade.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/bVoCWuUk5IIUTM6R_sWlsHEtN28/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/bVoCWuUk5IIUTM6R_sWlsHEtN28/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/bVoCWuUk5IIUTM6R_sWlsHEtN28/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/bVoCWuUk5IIUTM6R_sWlsHEtN28/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Tecno-pedagogia/~4/rwowXuoTlZ4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.christopherslade.com/feeds/1660971304086820085/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.christopherslade.com/2008/11/course-message-boards.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2721499664417059501/posts/default/1660971304086820085?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2721499664417059501/posts/default/1660971304086820085?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Tecno-pedagogia/~3/rwowXuoTlZ4/course-message-boards.html" title="Course Message Boards" /><author><name>Chris Slade</name><uri>https://profiles.google.com/112952901297949086888</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-eVWOVzYOCTY/AAAAAAAAAAI/AAAAAAAACc4/2b6a3wdDxvg/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.christopherslade.com/2008/11/course-message-boards.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkMHQXs7eCp7ImA9WhdaEk4.&quot;"><id>tag:blogger.com,1999:blog-2721499664417059501.post-1562260391735257961</id><published>2008-11-03T00:06:00.000-10:00</published><updated>2011-10-21T10:53:50.500-10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-21T10:53:50.500-10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Technology" /><category scheme="http://www.blogger.com/atom/ns#" term="online whiteboard" /><category scheme="http://www.blogger.com/atom/ns#" term="collaboration" /><category scheme="http://www.blogger.com/atom/ns#" term="instant messages" /><title>Aaron Curtis - From Monologue to Dialog</title><content type="html">&lt;a href="http://aaroncurtis.wordpress.com/"&gt;Aaron Curtis&lt;/a&gt; from Indiana University came to BYU-Hawaii and did a presentation on his dissertation research.  He is studying how much adding a whiteboard (Microsoft One Note) to a typical chatroom (Microsoft Meeting) can improve group understanding.  Although his results are not complete, he says it does look promising.&lt;br/&gt;&lt;br/&gt;I think the main advantage of the whiteboard was having an information store.  With just an instant message, facts that have already been stated will scroll off the screen.  With the whiteboard, the facts stay where they are.  The whiteboard makes perfect sense when all of the information fits on the screen.  It would be interesting to see what happens when it doesn't, and if some of the standard information visualization techniques would be enough to make it advantageous.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2721499664417059501-1562260391735257961?l=www.christopherslade.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/2W0kVB1v_Eg8ZOObD4K0vXaa0kE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/2W0kVB1v_Eg8ZOObD4K0vXaa0kE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/2W0kVB1v_Eg8ZOObD4K0vXaa0kE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/2W0kVB1v_Eg8ZOObD4K0vXaa0kE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Tecno-pedagogia/~4/UOouR6nMvPc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.christopherslade.com/feeds/1562260391735257961/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.christopherslade.com/2008/11/aaron-curtis-from-monologue-to-dialog.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2721499664417059501/posts/default/1562260391735257961?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2721499664417059501/posts/default/1562260391735257961?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Tecno-pedagogia/~3/UOouR6nMvPc/aaron-curtis-from-monologue-to-dialog.html" title="Aaron Curtis - From Monologue to Dialog" /><author><name>Chris Slade</name><uri>https://profiles.google.com/112952901297949086888</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-eVWOVzYOCTY/AAAAAAAAAAI/AAAAAAAACc4/2b6a3wdDxvg/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.christopherslade.com/2008/11/aaron-curtis-from-monologue-to-dialog.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkMHQXs8eip7ImA9WhdaEk4.&quot;"><id>tag:blogger.com,1999:blog-2721499664417059501.post-5637284854656648986</id><published>2008-11-01T01:11:00.000-10:00</published><updated>2011-10-21T10:53:50.572-10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-21T10:53:50.572-10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Miscellaneous" /><category scheme="http://www.blogger.com/atom/ns#" term="voting" /><title>Researching Local Races</title><content type="html">So I really wanted to know more about the local races here in Hawaii.  I have been getting a lot of fliers in the mail and heard a lot on the radio/TV, but I wanted to research the facts for myself.  Luckily, I found a &lt;a href="http://the.honoluluadvertiser.com/cifw/election08/"&gt;web site at the Honolulu Advertiser&lt;/a&gt; that lets you see all of races, and view the candidates' responses to the issues.  It also had links to their website if you wanted to find out more.&lt;br/&gt;&lt;br/&gt;The two best things about the website are: 1)  you can select where you live, and you only get the races on your ballot, and 2) you can select all of the candidates that you want to vote for and then print out your selections to bring with you into the voting booth.  It took me about an hour and a half to research all of my local races, which is about as much time as I wanted to put into it.&lt;br/&gt;&lt;br/&gt;I wish that it also explained the ballot initiatives and had the arguments for and against each one.  Instead, I just had to read a brief description on each initiative to see it it really matters to me, and then do web searches to research the issues that do.&lt;br/&gt;&lt;br/&gt;The &lt;a href="http://www.honoluluelections.us"&gt;official Honolulu County election site&lt;/a&gt; is really bad.  I couldn't even find out which races I would be voting in.  It has a link that says "Find out more about the candidates."  When I clicked on it, it just sent me to a page that tells me how to apply to run for office.  The ballot intiatives links aren't very helpful in explaining what the intiative really does, unless you are a laywer.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2721499664417059501-5637284854656648986?l=www.christopherslade.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ixE3fFrx5xINKsU2lr-A2Br4-TI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ixE3fFrx5xINKsU2lr-A2Br4-TI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/ixE3fFrx5xINKsU2lr-A2Br4-TI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ixE3fFrx5xINKsU2lr-A2Br4-TI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Tecno-pedagogia/~4/XZK5bnoW3qk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.christopherslade.com/feeds/5637284854656648986/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.christopherslade.com/2008/11/researching-local-races.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2721499664417059501/posts/default/5637284854656648986?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2721499664417059501/posts/default/5637284854656648986?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Tecno-pedagogia/~3/XZK5bnoW3qk/researching-local-races.html" title="Researching Local Races" /><author><name>Chris Slade</name><uri>https://profiles.google.com/112952901297949086888</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-eVWOVzYOCTY/AAAAAAAAAAI/AAAAAAAACc4/2b6a3wdDxvg/s512-c/photo.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://www.christopherslade.com/2008/11/researching-local-races.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkMHQXszcSp7ImA9WhdaEk4.&quot;"><id>tag:blogger.com,1999:blog-2721499664417059501.post-6863005831936869442</id><published>2008-10-30T16:00:00.000-10:00</published><updated>2011-10-21T10:53:50.589-10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-21T10:53:50.589-10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="oo programming" /><category scheme="http://www.blogger.com/atom/ns#" term="Teaching" /><category scheme="http://www.blogger.com/atom/ns#" term="beginning programming" /><title>Teaching Object-Oriented Programming</title><content type="html">Since a lot of our students come here with very little computer experience, we had our beginning programming course split into two courses.  The first half focused on variables and control structures, and the second half focused on object-oreinted programming with C++.  Some time last year we decided to teach a scripting language (Perl) in the first course due to it's simplicity -- hello world is only one line.  We then created a two course series in object-oriented programming in Java.  This would allow us to make sure our students had a solid object-oriented background and three classes to develop their programming and problem solving skills, something that takes a lot of practice.&lt;br/&gt;&lt;br/&gt;During the summer, I spent a lot of time creating labs and planning lectures for this new Java course.  After my Java class today, I had a discussion with a few struggling students.  After listening to their comments, I realized I had made a mistake on how I organized the class.  I decided to follow what most textbooks suggest and even brag about, focus on objects right at the beginning.  To me, this sounded like the best way to explain objects and classes.  An object is just like an object in the real world.  It has a nice interface and you just tell it what to do and it does it.&lt;br/&gt;&lt;br/&gt;Today, I realized a major problem with this. They are still trying to grasp the concept of methods, and now they have to put the method in one file and the call in another.  They are still trying to grasp the concept of a variables, and now they put the declaration at the top of a class, and then use them inside the methods.  Plus, when they want to use a variable they are probably writing their main method and the variable is hidden in another file.  On top of all of this, they are trying to solve a problem.  Try working out a math problem on a bunch of different puzzle pieces and then put the pieces together in the right order to form a solution.  Thinking back to my beginning programming class, I remember struggling with the same thing when I first learned about objects and classes.&lt;br/&gt;&lt;br/&gt;So here is my solution.  First, teach them about variables and how to use them.  Next focus on types, and then control structures, methods, and arrays.  Then present the idea of an object and class.  But first, as just a bunch of different variables that are related (like a struct).  What might work best is an example of keeping track of students -  their names, ids, and addresses.  Isn't it a lot of work to declare a string for each student and a int for their id and another string for their address and somehow keep them related?  Wouldn't it be nice to have all of those grouped together in an "array"?  Well we can, it's called an object.  Make the member variables public and use them like any other variable.  Next explain how it would be nice if the address edit method was somehow grouped with the student as well.  Then explain the constructor, and work towards encapsulation.&lt;br/&gt;&lt;br/&gt;This way, the student first learns the basics without the need to memorize where everything goes.  They also learn object-oriented programming the same way it was invented, which shows the value of object-oriented programming.  Show them the structured programming way, and then show them how object-oriented programming improves upon it and simplifies the code.  By thinking that the why of oo-programming is to complex to explain, I actually made oo-programming more confusing.&lt;br/&gt;&lt;br/&gt;Now I have to reorganize my class for next semester.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2721499664417059501-6863005831936869442?l=www.christopherslade.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/sDK2QQxTkh8xjdKf8K0Z6ISUeUc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/sDK2QQxTkh8xjdKf8K0Z6ISUeUc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/sDK2QQxTkh8xjdKf8K0Z6ISUeUc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/sDK2QQxTkh8xjdKf8K0Z6ISUeUc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Tecno-pedagogia/~4/H-hRhBUVjE0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.christopherslade.com/feeds/6863005831936869442/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.christopherslade.com/2008/10/teaching-object-oriented-programming.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2721499664417059501/posts/default/6863005831936869442?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2721499664417059501/posts/default/6863005831936869442?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Tecno-pedagogia/~3/H-hRhBUVjE0/teaching-object-oriented-programming.html" title="Teaching Object-Oriented Programming" /><author><name>Chris Slade</name><uri>https://profiles.google.com/112952901297949086888</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-eVWOVzYOCTY/AAAAAAAAAAI/AAAAAAAACc4/2b6a3wdDxvg/s512-c/photo.jpg" /></author><thr:total>2</thr:total><feedburner:origLink>http://www.christopherslade.com/2008/10/teaching-object-oriented-programming.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkMHQXs_fSp7ImA9WhdaEk4.&quot;"><id>tag:blogger.com,1999:blog-2721499664417059501.post-4584026158115820046</id><published>2008-10-30T13:58:00.000-10:00</published><updated>2011-10-21T10:53:50.545-10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-21T10:53:50.545-10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="comments" /><category scheme="http://www.blogger.com/atom/ns#" term="Miscellaneous" /><category scheme="http://www.blogger.com/atom/ns#" term="communication skills" /><title>My First Post</title><content type="html">I figured I should dedicate my first post to explaining why I decided to start a blog.  As a Computer Science professor, and a PhD student, I realized that I needed to practice my communication skills and get involved.  Although I would prefer to be strictly on the reading side of technology, in order to really be a part of it I need to contribute.  Hopefully this blog will the the perfect starting place.&lt;br/&gt;&lt;br/&gt;Although I don't really consider myself a leading expert in technology or in teaching, I plan on sharing my thoughts and ideas on teaching technology -- thus my blog title &lt;strong&gt;Tecno-pedagogia&lt;/strong&gt;.  I will also include my ideas on my PhD research in online collaboration and teaching, which gladly fits under the same topic.  Of course, I reserve the right to to post about any other topic that may be on my mind.&lt;br/&gt;&lt;br/&gt;I encourage comments and ideas so please feel free to share.  All I ask is that you be respectful.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2721499664417059501-4584026158115820046?l=www.christopherslade.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/lGXSRtCYJ9U9c9gBoo6UxF0aZjg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/lGXSRtCYJ9U9c9gBoo6UxF0aZjg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/lGXSRtCYJ9U9c9gBoo6UxF0aZjg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/lGXSRtCYJ9U9c9gBoo6UxF0aZjg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Tecno-pedagogia/~4/9v8bqchcclo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.christopherslade.com/feeds/4584026158115820046/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.christopherslade.com/2008/10/my-first-post.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2721499664417059501/posts/default/4584026158115820046?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2721499664417059501/posts/default/4584026158115820046?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Tecno-pedagogia/~3/9v8bqchcclo/my-first-post.html" title="My First Post" /><author><name>Chris Slade</name><uri>https://profiles.google.com/112952901297949086888</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-eVWOVzYOCTY/AAAAAAAAAAI/AAAAAAAACc4/2b6a3wdDxvg/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.christopherslade.com/2008/10/my-first-post.html</feedburner:origLink></entry></feed>

