Tips and Tricks About Computers, Web Development, Linux, the Internet and the Like
Tyler Mulligan
This user hasn't shared any biographical information
Homepage: http://www.doknowevil.net
Posts by Tyler Mulligan
The "easy" way to listen to internet radio in Ubuntu
Jul 15th
I started with rhythmbox like most new Ubuntu users. It seemed nice enough but not in the area I was concerned with, internet radio. I tried out many players but was disappointed with different areas of different players. From Ubuntu 8.04 to 8.10 I was using the “good” Amarok (for KDE 3.5). Disappointed by the exclusion of that version in Ubuntu Jaunty 9.04 and unimpressed with workarounds like the PPA’s, I decided to play the field. I came across Exaile, which I’ve blogged about in the past. It’s a good enough player… most of the time. It crashed too often for my likings and I’m getting sick of pkilling it.
It struck me today that I needed a simplier more streamlined solution for my simple needs. I needed a console application. Through a little research, I found moc, which happens to play shoutcast streams as I’ve become accustom to.
I then proceeded to set myself the following way:
sudo apt-get install moc mkdir -p ~/Music/internet_radio && cd ~/Music/internet_radio wget -r -l2 -nd -Nc -A.pls http://www.di.fm/index.php for file in *.pls; do mocp -a $file; done mocp
1) Installed moc
2) created a directory to download all the playlists from di.fm (since this is the station I listen to most often)
3) wget all the playlists
4) add them all to moc
5) start moc and [tab] to the play list side, enter to play
enter -- starts playing
s -- stops playing
n -- plays next item from the playlist
b -- plays previous item from the playlist
space -- pause
p -- pause
S -- plays at random
R -- repeats the same song in a loop,
Next (X button below) must be OFF
X -- switches to play sequentially
o -- plays a file from the Internet
u -- moves playlist item up
j -- moves playlist item down
Ctrl+u -- adds the URL to the playlist
g -- searches marked string in file names
/ -- searches marked string in file names
r -- rereads the directory
T -- switches to the theme selection menu
f -- toggles display mode of song titles
TAB -- switches marker bar between the playlist
and the file manager panels
l -- switches between displaying the playlist
or the file manager panel
P -- switches full path in the playlist
H -- toggles hidden files view
Ctrl-t -- toggles song duration time
Ctrl-f -- toggles format file view
m -- moves to directory entered in config file
G -- moves to directory with currently played file
i -- moves to marked directory
U -- moves to upper directory
a -- adds a file to the playlist
A -- adds a directory recursively to the playlist
C -- clears the playlist
V -- saves the playlist
d -- removes marked item from the playlist
Y -- removes all empty items from the playlist
< -- decreases volume by 1%
, -- decreases volume by 5%
> -- increases volume by 1%
. -- increases volume by 5%
x -- toggles the mixer channel
? -- shows help
! -- goes to a fast dir 1 (set in config file)
@ -- goes to a fast dir 2
# -- goes to a fast dir 3
$ -- goes to a fast dir 4
% -- goes to a fast dir 5
^ -- goes to a fast dir 6
& -- goes to a fast dir 7
* -- goes to a fast dir 8
( -- goes to a fast dir 9
) -- goes to a fast dir 10
F1 -- executes ExecCommand1 (set in config file)
F2 -- executes ExecCommand2
F3 -- executes ExecCommand3
F4 -- executes ExecCommand4
F5 -- executes ExecCommand5
F6 -- executes ExecCommand6
F7 -- executes ExecCommand7
F8 -- executes ExecCommand8
F9 -- executes ExecCommand9
F10 -- executes ExecCommand10Above commands from polish linux’s article on moc audo player, great resource.
Optimizing CSS selectors for load time; #home is faster than #menu li a#home
Jun 27th
I was trying to figure out how to cut rendering time with smarter CSS. In my quest, I came across a plugin by google for Firebug called Page Speed which not only answered my question in the ‘Use efficient CSS selectors’ section (* #header #menu a:hover — Tag key with 2 descendant selectors and hover pseudo selector) but provided more details on the subject on the Page Speed Documentation.
“Descendant selectors are inefficient because, for each element that matches the key, the browser must also traverse up the DOM tree, evaluating every ancestor element until it finds a match or reaches the root element. The less specific the key, the greater the number of nodes that need to be evaluated.”
So, #home is faster than #menu li a#home; at least in Mozilla’s case. More on this here
Make Screencasts in Ubuntu with gtk-recordmydesktop
May 30th
Yeah, the name sounds cliche but man oh man is this app slick. Compared to some of the others I tried, this one _just_worked_ and had the options I needed, plus more.
sudo apt-get install gtk-recordmydesktop
You can select a specific window or an arbitrary area and it compresses to ogv automatically.
Here’s a quick video I recorded in seconds — http://z.nexuizninjaz.com/videos/nst.ogv
codepad.org – an online compiler/interpreter, and a simple collaboration tool.
May 27th
codepad.org is an online compiler/interpreter, and a simple collaboration tool.
Redmine for software project management
May 25th
Back in 2008, I posted about the project management system, Project Pier, which was a fork of Active Collab. The system served my groups and I well for a while… but it was limited in different areas. Overall I thought it too slow and not so much tailored for software development as the new system I’m been using Redmine.
Redmine is a Ruby “clone” of the python based Trac system, which is also pretty good. I say clone because it’s really just influenced by I Trac, there goals were different than the Trac project. I decided on Redmine because it seemed to fit the bill for my group’s needs.
- It supported SVN and git browser integration.
- Per project wiki
- Per project user levels
- Issue tracking
- lightweight
- extendible (already some nice modules for download)
I haven’t had much hands on experience with Ruby but my buddy Dan Kinsley is a big advocate of RoR and after installing this, I can see why. The install was smooth and professional, largely done through the terminal. It went through without a hitch and immediately after logging into the newly setup system, I noticed how fast it was. This application makes good use of javascript and AJAX.
I was able to get SVN and git repos hooked in pretty quickly with specific projects and so far it’s been helping me manage tasks and layout projects better and faster than Project Pier.
A (darker) brown theme for ubuntuforums.org
May 22nd
Because I use a dark theme for GTK, I’ve been working on a darker theme for the ubuntu forums using Stylish. It’s not complete but certainly usable. If you’d like to try it out, you can install the theme (after you install stylish) by going to the userstyle page.
Inspecting GTK dialogs with Parasite
May 20th
Parasite is a program much like Firebug, except this is for GTK based applications.
By opening a program with parasite enabled, you can literally click elements of the GUI to reveal their properties.
The installation is pretty simple, open a terminal, clone the git repo, compile install and run. I like to make a folder for software I checkout from SVN or Git in my home dir so I don’t get things all messy. You need git to clone, so if you don’t have it installed already:
$ sudo apt-get install git-core
Clone it:
$ mkdir ~/git_software && cd ~/git_software && git clone git://github.com/chipx86/gtkparasite
Compile and install it:
$ ./autogen.sh && make && sudo make install
I run 64bit, so I had to do the following command to get things working:
$ sudo cp /usr/local/lib/gtk-2.0 /usr/lib64/ -r
Try it out (prefix an application name with GTK_MODULES=gtkparasite):
$ GTK_MODULES=gtkparasite gedit
whygitisbetterthanx.com – Explaining git
May 17th
Trying to avoid looking like a fanboy but whygitisbetterthanx.com is a really well done website explaining the pros of Git version control.




