Screencasting checklist...
I’ve recorded one too many screencasts in an unreadably small font. I thought I’d made a pre-recording checklist, but I seem to have lost it. So here we go again, and this time I’ll share it with the Web at large:
Ensure iShowU is on "Rails Demo" preset:
Record microphone, system audio off
Normal frame rate: 5
Compression: Apple Animation
Capture Size: 800 x 600
Show capture guide whether recording or not
Follow mouse cursor: false
Edit recording area so it's in upper left, touching underside of system menu
Set iShowU keyboard shortcuts:
Start capture: Cmd-Opt-Ctrl-3
Pause capture: Cmd-Opt-Ctrl-4
Size windows to fit within capture area:
Web browser
Shell(80 columns x 30 rows)
Editor
Increase font size to 20-point or larger:
Web browser ("Zoom In" x 2)
Shell
Editor
Plain background as desktop
Close all possible apps
Read more...
Pat Maddox - I Love Ruby
From Pat’s MountainWest RubyConf talk. I’m giving a presentation on Rails at work (a JEE shop), and I figured this would help convince my audience. But it also says what many in the Ruby community already feel, so I figured I’d share it.
Like the original, this is released under the Creative Commons Attribution-ShareAlike license.
Read more...A challenge!
30 minutes ago, I got this comment on my Ruboto on Acid post:
LSD makes letters on a computer screen look as if they’re dancing around and have a mind of their own. It’s also entirely impossible to think logically enough to code while on it. I recommend you buy some acid and see how it’s nothing like this at all. ;)
And here is my answer. :)
#!/usr/bin/env ruby
require 'rubyonacid/factories/example'
require 'tk'
#This factory will be in charge of all drawing coordinates, colors, etc.
f = RubyOnAcid::ExampleFactory.new
#A skip factory, in charge of randomly resetting the meta factory.
resetter = RubyOnAcid::SkipFactory.new(:odds => 0.99)
#The window to draw to.
canvas = TkCanvas.new(:width => 400, :height => 400)
canvas.pack
#The line objects we create will be stored here.
shapes = []
letters = "woah, trippy, dude!".split(//)
#Create a thread to update the window while it's displayed.
Thread.abort_on_exception = true
Thread.new do
loop do
#Get red, green, and blue values for a color from the factory.
#Format is #RRGGBB in hexadecimal (like HTML).
color = sprintf("#%02x%02x%02x",
f.get(:red, :max => 254).to_i,
f.get(:green, :max => 254).to_i,
f.get(:blue, :max => 254).to_i
)
#Create and store a line of the chosen color.
#Get width and locations of the endpoints from the factory.
shapes << TkcText.new(
canvas,
f.get(:x1, :max => 400),
f.get(:y1, :max => 400),
:text => f.choose(:text, letters),
:font => TkFont.new(
:size => f.get(:size, :min => 1, :max => 72).to_i,
),
:fill => color
)
#If the resetter returns true, tell the ExampleFactory to reassign
#its source factories to different keys.
f.reset_assignments if resetter.boolean(:reset)
#Delete the oldest line if we have accumulated too many.
shapes.shift.delete if shapes.length > letters.length
end
end
#Display the window.
canvas.mainloopMP3 conversions of Ruby conference videos...
I’ve got a sizable commute, so I’ve taken to downloading conference videos and converting to MP3 to play in the car. Most work reasonably well as speech-only, I’m finding. In hopes of helping others, I’m posting them here.
Many thanks to Confreaks, the conference organizers, and to the generous speakers, who released their speeches under a Creative Commons license. In accordance with the license of the original videos, these MP3s are also released under a Creative Commons Attribution-ShareAlike license.
Download MP3 conversions of Confreaks conference videos here.
You can automatically download the lot with wget if you have it installed:
wget --recursive --no-parent --accept mp3,ogg,MP3,OGG http://jay.mcgavren.com/files/conference_mp3s
Conversions were done with ffmpeg. Here’s the script I used:
#!/bin/sh
for filename; do
ffmpeg -i "${filename}" -acodec libmp3lame -ab 96k -ac 2 -ar 44100 "${filename}.mp3"
done
My chief complaint was wild variation in volume levels; I haven’t blown a speaker yet but loud noises have made me jump sometimes. I’ve processed all these with “mp3gain” (which I thought was only available as a Windows GUI app but have since learned has a Linux command-line version) in an effort to correct this, but I make no guarantees there won’t be sudden jumps or drops in volume.
Many tweaks are still possible, and I will look into them if there’s demand:
- Remove the periods of silence on each track (where Confreaks originally showed sponsor logos).
- Convert remaining videos (these were hand-picked).
- Lower-bitrate versions for the space-conscious.
- See if The Levelator produces better results than mp3gain.
- ID3 tags with speakers, titles, and other metadata.
- An actual podcast feed.
Enjoy, and leave a comment with the improvements you’d like to see!
Read more...Legal fallout...
Uh, oh, I may have exposed myself to significant legal liability. I haven’t included a section like this in the license for any of my software releases…
Read more...You acknowledge that this software is not designed, licensed or intended for use in the design, construction, operation or maintenance of any nuclear facility.
–License agreement for a java.net library
Ruboto On Acid...
After dissecting the demos that come with Ruboto 0.2 and figuring out how to upload a library and runner script to an Android emulator (hint: “$ adb push . /sdcard/jruby/subdirname”), it only took an hour or so to create a working Ruby On Acid demo. And what worked on the emulator immediately worked when uploaded to the phone.
Read more...This reads like science fiction:
Read more...So to turn on GPS for the first time, go outside and find a direct line of sight to the sky (you only need to do this the very first time). Then on your phone, press > Settings > Location & security.
–Motorola Droid Tips and Tricks manual
Posting this from my new Droid!
Actually it’s my wife’s old Droid! That I inherited after she got a Droid Incredible! But I don’t care! Because the Incredible interface is flaky!
Read more...RubyOnAcid version in progress...
Ditched the idea of “tuples” because they complicated the API, and I realized I could do what I want without ‘em. Behold, a LissajousFactory filtered through a RoundingFactory, and feeding into a ProximityFactory:
Read more...Someone's been there...
you’ve got to be the best
you’ve got to change the world
and use this chance to be heard
your time is now
…
don’t,
let yourself down
don’t let yourself go
your last chance has arrived
–Muse, “Butterflies and Hurricanes”
I don’t really like the song, but they’ve got another one titled “Thoughts of a Dying Atheist”.
Read more...