Software
Firefox 1.5 is the New Standard
Firefox 1.5 came out yesterday, and although I tried a beta some time ago and was impressed with the speed increase, I’ve held out upgrading for day-to-day use until the final release. This isn’t even so much because for the sake of a final release but also so the extensions I want would become available.
So, since I hear it might be some time before we see Firefox 1.5 backported to Ubuntu Breezy (let alone 64-bit packages!), I decided to just build it myself from source. Well, I had a tiny gotcha that I was able to solve, but now I’m lovin’ the Firefox!
It’s really cool:
- It’s 20-30% faster than the old 1.0.x versions in most cases making it rival even Opera’s speed.
- It caches pages so that when you go back/forward, the new page loads instantaneously. This is especially pleasing when I can use my mouse’s side thumby buttons to zip around in my history!
- You can drag/drop tabs around to reorder them—even between windows!
- It has lots of really nice extensions
- There are friendlier error messages.
- UI enhancements, particularly in the preferences.
- Loads of other stuff.
Firefox has been a really great browser for quite some time now. Version 1.5 seems to be very well refined product that is fast, easy to use, and very flexible.
The Simplicity of AJAX in Rails
I thought I would take a moment and show you all just how easy these fancy AJAX interface tricks are with Ruby on Rails and some javascript libraries. With all my years of web development experience, I never really learned learned javascript properly. (I just borrow code from the online examples.) But RoR makes this stuff a breeze!
The real benefit to using this method is that when the user makes their selection, I don’t need to send them an entirely new web page. Instead, the “smart” (read: javascript equipped) web page actually makes an HTTP request to the server in the background. The server then responds with an HTML fragment that is then dropped inside a DIV element (replacing its prior contents, if any). As the programmer, I usually only need to make calls to the Rails “helper” methods which in turn spit out (still) very simple calls to the included javascript libraries. Why is this so cool? Because I can make a snappy-quick interface without sending down the entire catalog, and with an absolute minimum of work!
Breezy the Impressive
I’m not crazy about their names or color schemes, but Ubuntu linux seriously has the whole linux usability thing figured out. I upgraded my Hoary laptop to Breezy last Wednesday, and just yesterday switched my desktop that has been running Gentoo for 5-6 years now over to Breezy. Why did I do that, you ask? Well even if you didn’t, it’s because qt failed to compile, and rather than figure it out like I always have to, I said to hell with it. Gentoo is awesome, but things often take more time and research than they should.
The new Gnome 2.12 is so frickin smooth. Nautilus doesn’t crash like it did in 2.10, and there are new usability features that really make it a comfy environment. Hooray for linux on the desktop! \o/
I’ve ordered a pile of Breezy discs from shipit.ubuntu.com. So I’ll be passing those out to anyone who’s interested.
Why I Love Ruby on Rails
That first post I made about Ruby on Rails was more of a brain fart of excitement than a proper explanation of why it’s so cool. I really wanted to explain in my own words why I’ve decided I’d rather be working with RoR than any other framework, or at least the one I’m used to—PHP.
First of all, RoR is more than just a language; it’s a framework. This means that developers are encouraged to write applications in a roughly standard way, and all rails apps have a very similar flow. For instance, when you first begin a new rails application, you use the “rails” command line tool:
$ rails myapp
And rails generates all your starting directory structure for you—where to hold the application files, test code, external libraries, and so forth. And the fun doesn’t stop there! Say I have to write the same CRUD code I’ve down a thousand times in PHP to let an admin manage, say, users.
$ ruby script/generate scaffold User
Blamo! I get a model class that represents a user in the database, and a controller class complete with generated templates that handle all the flow for a simple CRUD. I need only to extend from this.
Rails uses what they call the Model-View-Controller (MVC) model. An instance of a model represents a single record in the database. It knows all about itself: how to validate its attributes, what its relationships to the other models are (which gives you lots of really sweet functionality for FREE!), and whatever else you want to program in. The view is nothing more than an erb (embedded ruby) template that spits out values calculated in the controller, which in turn is the class that dispatches and handles actions (incoming requests). Find yourself putting too much code into the view? Move the code into the helper (every controller has one) and call your new helper method from the view.
Here’s just a short example of how you might fetch some information about a product and display it to the user:
The controller, app/controllers/store_controller.rb:
class StoreController < ApplicationController
def product
@product = Product.find(params[:id])
end
end
The view, app/views/store/product.rhtml
<% @product.attributes.each do |field, value| %> <%= field %>: <%= value %><br /> <% end %>
No lingering sql or extra code of any kind. Couldn’t you get used to that?
Yeah, you can do all the same stuff in PHP, but your code will probably turn out pretty ugly. I’m just loving how elegantly Ruby on Rails solves these web development issues. Just the other day, I started experimenting with AJAX and script.aculo.us js libraries to achieve some quite impressive effects and interactivity with very little effort.
The Rails people like to call it a “disruptive technology.” I’m not sure to what extent Rails is a disruptive technology, but I’m pretty sure there is a place for it in the future as we continue to see its user base grow like wild!
And there are lots of good tutorials and references at documentation.rubyonrails.com.
Ruby on Rails
I’ve gotten behind! Hooray for rapid-fire postings!
I’ve known about it for a while now, but I only got my copy of Agile Web Development with Rails by Dave Thomas and David Heinemeier Hansson a couple of weeks ago now. I’ve since dived right into RoR, and I must say… the more I learn about it, the more impressed I become. It seems like the most elegant and simple way to write web applications I’ve ever encountered. This all stems from the DRY principle (Don’t Repeat Yourself). DRY says that every bit of application logic should be expressed only once in your code. Models form database objects that are very smart (they know their associations with other objects, they can validate themselves, etc).
I could go on and on about RoR, but instead I’ll just drop you a few links:
Mixxx Tutorial
In this post, I will attempt to give you an idea how I use Mixxx. This isn’t a detailed manual of all usage cases, but a howto or tutorial explaining how I use the program. Please post comments!
Skype as voIP Solution
I’ve tried Ventrilo (only for windows) and TeamSpeak (the advanced interface and actually having to connect to a particular server make it a bit tricky for newbies.) They’re both nice, but Skype seems even nicer.
Skype is a company that provides their client software for free, and without any malware even! This will allow you to connect with other users who have the Skype client software on their computer for free! The added bonus of this system is, if you want to drop some scrilla, you can call out to PSTN lines ($0.017 /min in US and a few other places), get your own phone number and take incoming phone calls (from PSTN), and/or use a voicemail service.
Anyway, the client application is very clean and easy to use. I would recommend it to anyone who needs the voIP services, or just wants to experiment with some cool things to do with your new fast wireless T1 connection you’ve got even though you live out in the middle of nowhere. Oh wait, that’s me. Nevermind…
Skype Me! I’m threadphone.
Roadcasting
Wow.. apparently some crafty individuals from Carnegie Mellon University are already quite a ways into developing Roadcasting, a system where drivers can broadcast their own “radio station” as well as tune into others’ over an ad-hoc wireless network. But it’s also much more than that. It allows a listener to have established “tastes” that influence their own track selection as well as the stations they listen to. In addition, you will be able to vote what plays next on a remote station between 3 songs that are automatically chosen from everybody’s “tastes”. It sounds like they’re incorporating all sorts of nifty usability and otherwise features like that into the system to make the whole experience as seamless and enjoyable as possible. They say they were contracted by a “major auto manufacturer” to develop this for commercialization by 2010. The java source is already even available for download, though. Sounds pretty damn neat to me.
Mixxx R0x0rz my S0x0rz
So I’ve been on the Mixxx mailing list for a little while now, exchanging messages to and fro its developers/users regarding getting my Sound Blaster Live’s two pairs of outputs to work independently with Mixxx so I can actually have a proper dj headphone cue to hear the song before I bring it in.
Well, the list wasn’t able to pinpoint my problem. It was only after some web research that I found that the problem is that the alsa driver in my 2.6.11-gentoo-r6 didn’t have the special output channel listed in /proc/asound/devices as described in this thread. So, by removing all alsa components from my kernel, rebuilding, and then emerging alsa-driver 1.0.9rc2, I was able to attain the additional input line. And by launching jackd like so…
$ jackd -v -d alsa -P hw:0,3 -C hw:0,2 -S
I was able to see not two, not four, but SIXTEEN inputs AND outputs for my sound card in qjackctl. By routing the first pair to master out in mixxx, and the second pair to headphone, I was able to achieve ALMOST what I wanted. Unfortunately, the headphone routing in Mixxx 1.4.2 doesn’t work the way anybody would want. (Toggling on headphone for a channel meant that will never be heard in the “final mix” channels, so you’d have to turn off the headphone cue before you xfade into it—almost worthless.) So… I built the CVS version of Mixxx.
And today, I properly finished installing the realtime kernel module so my user can run jackd in realtime priority. So now, I don’t have any of the nasty skips in the audio like I had before. Word up to DJing in Linux!!
Secure Delete
So I’m selling off my old laptop to someone who found my listing on AllMSU, and so I decided to do a proper secure delete. After some quick research I found Secure Delete from The Hacker’s Choice. They’re some very flexible tools to delete files/partitions/etc so they can never be recovered. What I ended up doing in this case, though, is wiping the entire partiton clean off while booted from a Knoppix CD. This article shows how to use the “shred” tool.
# shred -n 2 -z -v /dev/hda1
Which will overwrite every bit on the drive with random (or otherwise generated) 1’s and 0’s bits for TWO passes before going back over again on a THIRD pass to make everything 0 again. Needless to say, this is taking quite some time…
Paranoia? Perhaps… but any security savvy person would say it is generally good practice (that many still do not follow).
@djthread
Categories
- Audio (18)
- Computers (29)
- DJ Thread (42)
- Drum 'n Bass (49)
- General (106)
- Reviews (26)
- Software (43)
- Stuff (23)
- Technology (7)





