My story really starts with Trackbox, an experiment of a perl script daemon I wrote long ago that worked like a headless jukebox daemon and allowed a client program to connect to it to provide a user interface to allow the user to browse the collection of music, manage playlists, play, pause, change volume, and all the other things you expect from a media player. It was pretty hacky, but it did the job. When Shank got MPD, the Music Player Daemon, working properly in raw C, though, I retired Trackbox. MPD is very similar to Trackbox: a super lightweight daemon that sits in the background, performing the duties of of music player. If I don’t need to interact with it, I don’t even need to have a client running — like when my linux tower boots and the init script starts it up. MPD resumes playing where it left off before I even launch X. I’ve obviously been a long time fan of even the idea of MPD.
I’ve been using a Mac increasingly over recent years. It started with a 15″ MacBook Pro for work, and eventually I got a 13″ one for personal use. My current and second Mac is a 13″ 2011 MacBook Air, and I’ve been frankly thrilled with it. Macs are great, but but I think a lot of folks endure the frustration of hunting for a great music player that simply doesn’t seem to exist.
Currawong started this excellent thread on head-fi which gives a really great overview and discussion on the most visible Mac music player options. I’ve tried most of them, but never really found one to my liking. Each was either buggy, lacking features, stupid expensive, or didn’t maintain a library, making practical use limited. I have gone back to iTunes every once in a while, and I’ve always been disappointed with crashing or general bloaty slowness. I finally went as far as to uninstall it from my system entirely, reclaiming hundreds of megabytes. (After removing the iTunes.app, I simply used the Preferences screen of “Software Update” to disable future update notifications.) I must say, I don’t miss it, not one little bit.
I finally decided to give MPD a go on the Mac. After using it for perhaps about a month now, I can happily say it is absolutely my new favorite. At home, I mount my server’s RAID array, and at work, I mount my off-site backup, a 3Tb external drive at my desk, so I always have my full collection of mostly lossless music readily at my disposal. I’ve even found a nice way to start mpd with different config files so I can aim it at the server or the local collection, depending on what I need. Being a global hotkey junkie, I’ve mapped restarting mpd with each config to a different key.
MPD is only as nice to use as the client you’re using. Theremin is nice native Mac one, but seems fairly unmaintained at this point. It scrobbles and has album art, but its main drawback for me is that it doesn’t allow browsing the collection by directory structure like most clients. I would recommend giving this one a try; it may fit the bill. There are countless others to choose from, though. I managed to get the excellent, GTK-based Sonata client to run under OS X with the help of MacPorts, but it is a bit kludgey. Client175 is a very nice, web-based one.
I’ve actually found myself liking the terminal-based ncmpcpp client best. It is jam-packed with features, remains blazingly quick, and even has the ability to add a random album, artist, or track to the playlist! I can understand why many folks might not like using a console client, but it works really well for me. Bind it to pop up with a global hotkey, and you have a slick, quick-launching client that you don’t even need running most of the time!
The other client I use is mpc, the command-line interface client. I barely ever actually use it on the command line, though, but through global hotkeys to toggle (play/pause) and play next track. I’ve also written a wrapper for mpc that allows me to play (or append to the playlist) random tracks on random albums. The most unique feature of my tool is the ability to specify “top-level” directories by a pre-designated “short code” and add random tracks or albums only from within one top-level dir at a time. The main directories of my collection are genres, so I can throw on some random ambient music or random drum ‘n bass. For example, with my Alfred extension, I do my ⌘+space to open him up, and type, “rt db” — immediately 10 random drum ‘n bass tracks are added, and the first one plays.
Honestly, this has revolutionized how I listen to my music. I often don’t even have the patience to drill down my folder structure or otherwise hunt for something to listen to. Now I can tell alfred “rt ch” and have random chill out beats. If I want to hear the entire album for one of the songs, ⌘⌥5 will play it.
I use and adore Alfred for many things including setting up these global hotkeys, and I feel it is worth plenty more than what Andrew is asking for it. But if you want something that is free, I recommend BetterTouchTool. Here is the key configuration I use on my Air:
- ⌘⌥1: play/pause toggle
- ⌘⌥2: next track
- ⌘⌥3: play 10 random tracks from entire collection (hold shift to append)
- ⌘⌥4: play 1 random album from entire collection (hold shift to append)
- ⌘⌥5: play the album the currently playing song belongs to (hold shift to append)
- or all the above, holding Control as well causes the command to be directed at my server, which drives the living room speakers/headphone system
- Control+⌥+n: launch ncmpcpp under iTerm2
(Note: I use Control+⌥+letter to launch / switch focus to my most often used apps. This makes me very efficient and I love it.)
MPD does the trick for me. It is slim, efficient, and invisible. I can do 90% of everything I need with a simple global hotkey, and Growl gives me feedback. When I actually do want to browse around or manage the playlist, ncmpcpp or other client lets me do that. There are some folks who look for an “audiophile” player, but the fact is that if the program can decode the file and feed it to the audio device in a “bit perfect” manner, every app should sound the same. I think there are apps that are broken and don’t do this quite right, and I also think there are people who get fall victim to the placebo effect. I really see no reason to worry about the sound quality of MPD — I trust it.
I’ve uploaded my mpct.php script to GitHub in case anyone is interested in it. If you use it, I would love to hear about your experience. If you have any questions about any of this, I would really love to hear from you in the comments!
Installing MPD on OS X is really easy according to their instructions. Simply install homebrew with
/usr/bin/ruby -e "$(curl -fsSL https://raw.github.com/gist/323731)"
brew install mpd
I really like this brew software manager! I can even install packages they don’t provide with something like
brew create //unkart.ovh.org/ncmpcpp/ncmpcpp-0.5.8.tar.bz2
Of all the IRC clients I’ve used, I always seem to prefer irssi. Not only is the interface very simple and predictable, but using it with the screen utility is simply baller. Screen allows you to detach from a running terminal session without disturbing what’s running and reconnect later. (You can even connect from multiple locations at once!) The power with irssi should be obvious — the IRC session runs indefinitely and you can come and go as you please, all while keeping that connection to the server (or servers).
The requirement for my approach here is that you have a server that is always connected. The idea is that the screen/irssi combo is running there, and you connect to it from your workstation.
I always set up a global hotkey on my computers to open up a terminal and reconnect to the session on the server. I use Openbox on linux and Alfred on the Mac to accomplish this. In Openbox, I just launch my terminal app with the execute command flag, usually -e, passing in the command to execute the magic script on the server (seen between the quotes on the “do script” line below). On Alfred, I bind a global hotkey to this simple bit of AppleScript:
tell application "Terminal" activate do script "ssh -t user@server /home/user/.bin/irssi_screen.sh" end tell
A “trick” I employ here is a little shell script I found somewhere* that checks for an existing instance of screen/irssi, resumes it if one exists, and fires up a new one if not. This way, you can do the exact same action whether you’ve started the irssi session since boot or not. Here is that script, placed at ~/.bin/irssi_screen.sh on the server. Be sure and set that executable bit!
#!/bin/bash # Start a new screen session with irssi or attach to an already running one.
if screen -list | grep "\.irssi" > /dev/null then # running screen -x irssi else # not running screen -S irssi -t irssi irssi fi
You can also set up desktop notifications for mentions/PM’s! I just actually set it up on my Mac with Growl according to this article. I did it once under linux, too.
If anybody out there finds this post helpful or has questions or comments, I would appreciate a comment! It’s quiet around here. :)
* Sorry I can’t give credit on this one; it was some time ago that I set this up. Edit: Actually, I just googled the comment and found about the only place it could have come from, this article on gregoa’s blog. Some other tips there, too.
I’ve been sort of wanting to do a little brain dump of some of the tweaks I’ve done to my Mac OS X desktop to make it a better experience for me. I’ve been a linux user for about 12 years at this point, and I’m the sort of guy who likes to set things up to maximize comfort and efficiency.
I bought a 13″ MacBook Pro at the end of last year so I could have a solid, well-built laptop on which I could load my favorite distribution, Arch Linux. I knew I wouldn’t mind OS X much, either, since I’d been running it on a 15″ MBP at work for a few years at that point and had already figured out a bunch (plus I could share many sw licenses between the two). I’ve had many problems in my various attempts to get linux up and running on this hardware, mostly relating to the EFI bios and the fact that the hacked up touchpad drivers that you can find *still* don’t come close enough to how OS X handles this button-integrated, multitouch touchpad. Until the touchpad is optimized further, I’m not sure I can be comfortable under linux on this laptop.
Anyway, OS X is just fine with me. Of course, it’s still unix-based, but with a better polished user experience. Let’s face it; under linux, you have a million projects with different goals and quality standards, all trying to coalesce and work together. Some distros make it easier than others, but really — it’s a bit difficult to manage sometimes! There is only one OS X for developers to target, and it’s seen enough adoption to get their attention: this causes commercial software! While I totally disagree with Apple’s direction with iOS and refuse to even consider “owning” such a product, I don’t mind (too much) owning one of their computers.
So with that background, allow me to briefly discuss some of my favorite tweaks and tools.
At the most basic level, Alfred is a quick-launch tool, similar to Quicksilver. It carries all the functionality of Spotlight, serving as an extremely handy application launcher and file finder, but it also can quickly look up words in the dictionary, do math, or look up things on arbitrary websites with custom searches. You hit your global hotkey (I use ⌘+Space) then type a keyword. When one purchases the very modestly-priced “Powerpack”, however, a startling number of options open up: one can access their contacts, email, clipboard history, eject drives, lock your screen, suspend, and even use fancy, quick navigators / remote controls for your filesystem and iTunes.
One of my favorite features and in fact things I wanted to specifically mention in this article, though, is global hotkeys. Not only do I put often used AppleScripts and shell scripts under easy-to-access hotkeys, accessible from anywhere in the OS, but I put often used applications, too. This allows me to launch and switch to my browser, IM, etc even faster that Alfred normally allows. That means no more fumbling with ⌘+Tab; I just go straight to the app I want. (I use Control+Option+<letter> for most of these.)
Andrew recently began working full-time on Alfred which makes me even that much more happy to support him. He seems to add all these amazing features without slowing down the app, and that’s something that he’s called out as being a key point for the tool — it will remain FAST, and apparently extremely stable, too. He has shared screenshots of the upcoming “extensions” preference screens which should allow for insane levels of customization. I’m excited to see and take advantage of what is to come.
I should add that Alfred is probably my favorite app on my Mac and it would be the one app I would want to take back with me to the linux side if I could.
Better Touch Tool is a free app, and an extremely useful and flexible one, too. It has the same hotkey ability as Alfred, with in fact richer options. It also allows you to bind commands involving the mouse and even define custom gestures for a multitouch touchpad. One of my favorite things it does is let me move/resize windows without hunting for the little corner or titlebar! I hope Alfred will eventually obsolete this tool for me, but I do find myself still using it for a couple things.
I actually don’t find myself using this one on my 13″ as much, but at work when I have 3 screens and really like tiling my windows so I don’t waste any space, I find this one very useful. It allows you to very quickly place windows in predefined rectangles that you can draw in a grid that divides your screen into a number of sections that you define. (I use 6×6.) It’s a very handy app when you know you want to put windows in particular positions often.
I’m a web developer by trade, so my text editor very important to me. I’ve been a Vim user for a very long time, but I used TextMate full time for a few years. It was only about a year ago now that I finally got fed up enough waiting for TextMate 2 that I switched back to Vim for my text editing, and now that I’ve learned a bunch more and found the plugins, I haven’t looked back for a second. I’d highly recommend TextMate if you don’t want to put in the effort to learn Vim, but the payoff of being really comfortable in Vim is really huge to me. I’m constantly amazed with just how easy things can be in Vim… if you know how. :) I still use TextMate for a lot of casual things, though… like writing this post, actually!
Edit: I forgot to mention that I would be lost without PCKeyboardHack which remaps my caps lock key to make it another escape key. Swapping out a never-used key with a mega commonly used key (in Vim) is a mega win.
I’ve known about the security considerations of storing my data in Dropbox for some time, but when they broke their authentication for 4 hours recently (any or no password would log someone into any account) I was nudged over the edge. Now I use a git repository on my server and the SparkleShare tool on my machines. SparkleShare adds Dropbox-like functionality to my git repo, keeping all machines in sync by automatically pushing and pulling updates as needed.
- Make the dock icons dim a bit for apps that are hidden with this tip.
- Once you’ve replaced it with Alfred, hide the Spotlight icon in your menubar with the trick in the highest rated response over here.
A Few Others
- iStat Menus is my favorite menulet package. It replaces the clock/cal/battery indicators and adds every cpu/net/ram/hdd/temp/etc monitor you need, with plenty of features along the way. It’s smooth to me. If you want something free, MenuMeters is a good alternative.
- Sparrow is, bar none, the best gmail experience I’ve ever had. I would say it’s well worth the price if you’re a moderate Gmail user.
- Chrome is my favorite web browser by a pretty long shot.
- Adium is an excellent IM client supporting most protocols.
- Audirvana and Vox are both great music player options if you’re like me and want to play FLAC files and/or hate iTunes.
- Cyberduck is an excellent free ftp/sftp client.
- LiquidCD is my favorite CD burning app.
- My beloved Mixxx runs on OS X! (Although I always use it on my tower under linux.)
- The Unarchiver is a free archive compression/decompression tool.
- Onyx is a great tool that does many system tweaks including clearing logs (opening gigs of tied up drive space) and moving the OS X dock over to one side. I am a huge fan of cornering the dock this way so I get a bit more usable screen real estate.
- XLD is a most excellent cd ripping and transcoding tool.
- TeamViewer lets you easily share a desktop for remote support etc. It’s free for my purposes.
Whew! I hope that was useful to someone. :)
I’m very happy to hear that the recent news of the Notion Ink Adam Android tablet being delayed (again) until November was not, in fact true. While we don’t have an actual release date, it’s implied that we may see it come to market within a couple months.
I’m very excited at the idea of having the same Android OS I enjoy on my phone on a tablet device. This is mainly because I think it will replace a laptop for couch computer use. I like having a different ergonomic experience at home, after using a traditional PC for so many hours at work. Actually, I already use the Droid for a lot of things, but the small screen is not best suited for a lot of reading.
I think reading is going to be something this tablet will suit best. Check out this video comparison of the Pixel Qi display (that the Notion Ink Adam will use) vs an iPad.
One of the main reasons I’m so psyched about a tablet like this vs an iPad is the fact that it is a computer by definition. Yes, one can run Android, Ubuntu Linux or Chrome OS on it, but I’m thinking more fundamental. For ages, we have had these machines we call computers. One could write some code and run their own programs on them, or procure said programs from a third party…… The fact that Apple wants to have so many ridiculous restrictions turns me off in a huge way. I prefer the freedom to use my hardware as I see fit.
Anyway, check out CrunchGear’s post for latest on the Notion Ink Adam.
As I was just researching unrelated stuff pertaining to Android, I came across this post from a guy who was having an issue on his Mac that sounded exactly the same as one that’s been bugging me for months now! He never followed up on his post, but it was from about 7 months ago, so I thought it was worth shooting him a line to see if he ever solved it. He had!
For him, it was the Android emulator, but for me, I believe it was caused by VirtualBox. The internal speakers were fine, but when I used a USB DAC or even the in-built headphone output, I would get a subtle fuzz noise in the background when the music was playing. (The noise was missing when all audio was silent.) This forced me to rely on the optical output to get sound from the MacBook Pro to my headphones.
The fix is to open up OSX’s “Audio MIDI Setup” tool in the Utilities folder. Select your output device under the “Properties For” drop-down and make sure that it is selected to be “2ch-16bit” on the right. For some reason, these apps seem to want to switch to “2ch-8bit” and that is what causes the problem. It does appear the fix will need to be performed again after each use of these applications.
Don’t really know who to blame for that one… But thank you, Duncan, for the tip!
I hope this helps someone else. I had no luck searching for a fix, myself.
It was a few days after I saw Ubuntu Dapper Drake Flight 5 featured on Digg that I realized I needed to try it out on my laptop, upgrading it from Breezy. Wow was that ever a good idea.
Now, not only does my laptop properly go into and out of suspend AND hibernate (where this would fail in Breezy), but I get to use the excellent Gnome 2.14 before it even comes out. (The final release is due out today, however.) Linux just keeps getting better.
It’s Friday the 13th and two good things are happening today. First, My new LCD has arrived. I’d been thinking of getting a new lcd for a while, and when I saw deal like this one, I had to splurge. It’s a combo Dimension system & LCD deal, but the price is killer. The bad news is that I’ll have to find a buyer for the tower that comes with it and my old LCD, but after all is said and done, I’ll have saved several hundred bucks on this screen (hopefully).
I’ve got the thing set up at the kitchen table right now… so that’s what’s in the picture. I was nothing but wow’d when I opened the thing up. I’m really not used to seeing screens larger than 19 or 20 inches. The design is really nice; the black & grey scheme matches the rest of my system. The base allows the screen to swivel with ease in all conceivable directions—including raising the entire screen up and down. You’ll need to raise it up in order to make enough room underneith to rotate the entire screen 90” clockwise and go into portrait mode. I haven’t looked into making this feature work in linux yet. Oh, and it has a multi media card reader in the left side of the screen which saved me just now when I couldn’t find the usb cord for my camera. I have no frickin clue where that thing is…
And I found it interesting that this product made #5 on PCWorld.com’s 100 Best Products of 2005.
The second good thing happening today is that I’m going to go DJ at a house party on Durand street (like a block over from me). I’ll be working in some other styles besides dnb to appease the peoples tonight. I may end up posting at least part of it for those of you who couldn’t make it. ;)
I hope everyone had a great Christmas or whatever holiday you’d like to celebrate this time of year. Yesterday, we went to the aunt/uncle’s place for a family get-together of about 17 family members. As for loot, I got mostly just the cash and checks. The clear message this year is that people don’t know what to get me. But I pretty much expected this… which is why I’ve already upgraded the computer like a month ago. :)
In unrelated news, our amateur neighborhood wireless provider has proven that he has no idea how to manage an ISP. 1-2 days ago, he began blocking ALL except a select few outbound ports. This had the net effect of breaking my dnbradio streaming, quake playing, file sharing, and even email checking (imap) capabilities to name a few. He’s been faster to fix some than others. SSH tunneling allows me to use some services over an encrypted tunnel (using a 3rd host) but that doesn’t work for a lot of apps that are unpredictable as to which ports they’re going to use (quake, bittorrent, etc).
But anyway, he wants my dad and I to come over tomorrow and help set up a linux box as per my suggestion to handle the firewall rules and quality of service functions for his ISP. He’s clueless, but at least he’s willing to accept help.
I’ve been meaning to post some pictures of my new gear… you know… to exercise my bragging rights.
Up above, you can see the speakers from Creative Labs. They don’t look like much, but they sound quite good. They’re perfect for what I need down here in my room, and they were less than $60!
Also, the Logitech MX518 gamer’s mouse that I just acquired very recently is friggin amazing. On-the-fly adjustable dpi (essentially sensitivity), nice side buttons, and sweet ergonomics make it very comfortable to use.
Here’s where most of the work went. I’ve already layed out the specs in prior posts, so I won’t bore you with them again. It lives under my bed, but I can move with it pretty easily with the HANDLE you can see on the front. It’s a very nice case from Aspire. And if you think I care about the white face plate on the dvd burner, you’d be wrong. I don’t. So there.
One last thing… a friend casually hanging out in my room suggested that I post a picture of this vine that seems to have grown through the ceiling of my room. It is pretty funny, so I thought I’d share it with you.
It’s been almost 24 hours since I made the switch to the new web server. I’m now running the site from a Linode that we’re hosting some sites on for work. This is where I was linking all the big files from on here.
Typo is a very nice blogging engine written in my favorite new technology, Ruby on Rails. It has all sorts of neato “web 2.0” (as they call it) features. Try posting a comment. I didn’t even turn on moderation because the spam bots apparently don’t know how to post comments via ajax (yet). WordPress was getting pounded pretty hard with something like 50-100 spam comments a day.
Oh, and sorry for dropping all that content… I’ll try and bring it back soon.