Use to convert YouTube Videos to MP3

One of the best things about YouTube are how works of art — which otherwise would languish on their creator’s computer or never be made at all — become viral on the net. Rx’s “Freedom 101” (previously featured here and by Mountainrunner, Sean, and ZenPundit), for instance, is an amazing mashup of ideology, freedom, and principle. However, the artist himself is busy running for President) and hasn’t provided an mp3 on his web site. So how to listen to it on my iPod Mini 8GB?


Vixy is also an open source project that converts youtube’s flac format to standard ones. Until google implements a “Save As” feature for YouTube, vixy’s website offers a free, fast translator supported by ad-revenue. I recommend it.

I also tried vixy on LOST breakbeat and Reggae Soviet Anthem. Both worked fine. Thanks vixy!


This morning’s saw Lady of tdaxp, Mother of tdaxp, and myself chainsawin’ trees at the tdaxp Compound. The compound’s eastern face slopes, making it perfect for view-obstructing scrub trees. Darkest of hillside thickets, indeed:

Darkest of Hillside Thickets

Work had been done on a constant basis since I got back from China, but never had so much been done in one day as before. Gradually the treeline was cut back…

Finally, about lunchtime (and after needing to get the chain back on the saw two times), the water is reached. (At one point, I nearly fell in which would have been hilarious to everyone but me.)

Then some clean-up by the water’s edge, and even the reverse view is fine:


The Student Note Form

Today’s progress doesn’t finish the user interface, but takes it up until storage in the database: the notes form field is fully displayed and functional, and some ground work is laid for saving the data tomorrow.

As before the HTML Special Character Converter is used, and the main resource I found today web-find was the InVisible – Ruby on Rails Reference.

First, let’s clear up app/views/students/_notes_view.rhtml

Update it like so:

<h1>Note-Taking Matrix</h1>
<%= form_remote_tag(:update => "notetaking_display",
:url => { :action => :save_student_notes },
:position => "top" ) %>
<table border="1">
<td>  </td>
<% for notes_record in @notes_records %>
<td><%= h( %></td>
<% end %>
<% for notes_field in @notes_fields %>
<td><%= %></td>
<% for notes_record in @notes_records %>
<%= text_area h(, h(, :cols => 20, :rows => 8 %>
<% end %>
<% end %>
<%= submit_tag "Save Notes" %>
<%= end_form_tag %>
<div id="notetaking_display" name="notetaking_display"></div>

That works pretty well. But we forgot to have a place for the student to log in, and we don’t have a way to carry over the conditions or experiments to later processing. So let’s generate a student model

ruby script/generate model student

The generated file will be 012_create_students.rb. Make it like so:

class CreateStudents < ActiveRecord::Migration
def self.up
create_table :students do |t|
t.column :name, :string
t.column :condition_id, :integer

def self.down
drop_table :students

Then let’s create a notes model

ruby script/generate model note

And then 013_create_notes.rb is:

class CreateNotes < ActiveRecord::Migration
def self.up
create_table :notes do |t|
t.column :student_id, :integer
t.column :notetext, :string

def self.down
drop_table :notes

Then rake db:migrate

Now we’ll add make the student model a session variable so that information can be rememberd more easily. So using information from Agile Web Development with Rails — 2nd Edition (107), add the following function to the student controller

Update student.rb like so:

class Student < ActiveRecord::Base
attr_reader :condition_id, :name

belongs_to :condition

has_many :notes

And update note.rb like so:

class Note < ActiveRecord::Base
attr_reader :student_id, :note_text

belongs_to :student

Now that that’s done, it’s too hard to figure out how to actually keep an object in memory. So for now we’ll just just edit some functions to store information in the session variable. First, go to select_notes_from_condition in students_controller.rb and add

session[:condition_id] = selected_condition_id

at the very bottom. Then write the following functions

def save_student_notes
render_text session[:student].condition_id

So we completed the form to allow students to input their notes. But how to add that information to the database?

Check in tomorrow!


As I’m on all three, I think I can say this safely:

Facebook: For when you’re too smart for MySpace, but too dumb for LinkedIn.


More seriously, I’ve only ever used (as opposed to played with) only two of the web 2.0 properties: LinkedIn and Of the two, delicious is far more useful. It’s tagging and search capabilities, especially in the for Firefox extension, would be worth it even if there was no “social” aspect at all. I find “popular tags” to be particularly useful, because it saves me those mental clicks in deciding how to categorize a useful page.


Any letter beginning “Congratulations” has to be good.

Today I got the official notice from the University of Nebraska that I passed the comprehensive exams I took on the 8th. This clears the way, except for some work for the Notes on Rails project and another form or to, for a August graduation with a Masters of Arts in Educational Psychology.

Grad school isn’t just about speaking in jargon and citing authorities. It’s also about adding worthless letters to your name (professional certificates are good for this too). So in August, you may officially refer to me as

Dan tdaxp, M.A., Ed. Ps., M.A., C. Sci., B.B.A., M.I.S., C.E.C.I.S., A+, e-Biz+, i-Net+, Network+, IT Project+

Not that I’ll let it go to my head or anything.

That can wait until Dr. tdaxp makes his debut in ’09. :-)