Convert WMA to MP3

Here is a simple script I’m using to convert wma music files to mp3:

#!/bin/bash

current_directory=$( pwd )

#remove spaces
for i in *.wma; do mv "$i" `echo $i | tr ' ' '_'`; done

#remove uppercase
for i in *.[Ww][Mm][Aa]; do mv "$i" `echo $i | tr '[A-Z]' '[a-z]'`; done

#Rip with Mplayer / encode with LAME
for i in *.wma ; do mplayer -vo null -vc dummy -af resample=44100 -ao pcm:waveheader $i && lame -m s audiodump.wav -o $i; done

#convert file names
for i in *.wma; do mv "$i" "`basename "$i" .wma`.mp3"; done

rm audiodump.wav

On Designing and Deploying Internet-Scale Services

Very interesting paper by James Hamilton. The paper gives a set of best practices for designing and developing operations-friendly services.

ABSTRACT
The system-to-administrator ratio is commonly used as a rough metric to understand adminis-
trative costs in high-scale services. With smaller, less automated services this ratio can be as low as
2:1, whereas on industry leading, highly automated services, we’ve seen ratios as high as 2,500:1.
Within Microsoft services, Autopilot [1] is often cited as the magic behind the success of the Win-
dows Live Search team in achieving high system-to-administrator ratios. While auto-administration
is important, the most important factor is actually the service itself. Is the service efficient to auto-
mate? Is it what we refer to more generally as operations-friendly? Services that are operations-
friendly require little human intervention, and both detect and recover from all but the most obscure
failures without administrative intervention. This paper summarizes the best practices accumulated
over many years in scaling some of the largest services at MSN and Windows Live.

10 Must-Know Topics For Software Architects In 2009

An interesting post regarding the 10 most important topics an architect should know about. Quickly, here is the top ten:

  1. Cloud Computing
  2. Non-relational databases
  3. Next-generation distributed computing
  4. Web-Oriented Architecture (WOA)
  5. Mashups
  6. Open Supply Chains via APIs
  7. Dynamic Languages
  8. Social computing
  9. Crowdsourcing and peer production architectures
  10. New Application Models