May 31, 2003

Is software industry a place to be - Greenspun perspective.

Is software industry a place to be - Greenspun perspective. Greenspun
on software industry
tongue in cheek, as always.

Category:  — Permalink

May 30, 2003

i.e. vs. e.g.

i.e. vs. e.g. I learn something
new
every day:


i.e. stands for “id est”, and means “that is”. As used in the article, it would imply that the only possible commercial distribution of AFPL Ghostscript is inside a printer.

e.g. stands for “exempli gratia”, and means “for example” and implies that inside a printer is merely one of the many possibilities for commercial distribution of AFPL Ghostscript.

Category:  — Permalink

May 29, 2003

Best practices for ripping music.

Best practices for ripping music.

As found in a slashdot post:

You should not use —r3mix. It is old and deprecated - its removal from LAME has been considered. You should use LAME 3.90.2 with —alt-preset standard (aka “APS”, ~ 192kbps VBR) or possibly —alt-preset extreme (“APX”, ~ 256kbps VBR) for trickier encodes (classical, jazz, rock, experimental). Those without space concerns still wishing to use mp3 can try —alt-preset insane (“API”, 320kbps CBR). 

 
The —alt-presets are optimisations for quality and have been very thoroughly tested by hydrogenaudio. They represent the current state-of-the-art in mp3 compression. 
 
For a scale, quality (normally transparent up to lossless) and size (50-80MB up to 300-700MB) go roughly (Qx represents Vorbis 1.0 quality number): APS < Q6 < APX < Q7 < Q8 < API < Q9 < Q10 < FLAC 

 
A music sharing network for people who care about quality exists. Because the bad guys read /. too, I’ll leave it to you to find üs, but the rules are: 
 
Rip with Exact Audio Copy 0.9b4 (secure mode, accurate stream, NO C2, no normalisation, no read or sync errors, only complete discs with no missing audio tracks, save a log file) and encode to MP3s (LAME 3.90.2 or 3.92), Oggs (Vorbis 1.0) or FLACs. Tag correctly - for mp3 ONLY use id3 v1.1 and id3 v2.3.0 - with year and ideally genre from allmusic, name scheme ”%A - %C\%A - %C - %N - %T” normal, various artists discs - name tracks “Artist / Title” and use name scheme ”%C\%C - %N - %A - %T”, add ” (OST)” to album name for soundtracks. Move log into directory, rename to directory name + .log, add an .md5 md5sum for the log and audio files to complete the rip.

There is good stuff to be found on Slashdot.

Category:  — Permalink

May 28, 2003

iTrip review.

iTrip review. Now that I have an iPod I might need iTrip, which has just been thoroughly reviewed.

Category:  — Permalink

May 27, 2003

iPod and Windows - problems, solutions.

iPod and Windows - problems, solutions. My 10 GB iPod
arrived today. Hardware is delightful but I’m using Windows so there were problems.
Here are a few things I learned:

  • iPod doesn’t come with USB cable by default (thank god my laptop has FireWire
    interface); you have to buy FireWire-to-USB converter cable yourself if you
    don’t have FireWire interface in your PC
  • when you plug iPod to PC it is also visible as an external hard-drive (and
    if you use Windows XP you don’t even need to install any drivers) but by default
    iPod’s hard-drive was formatted using Mac-compatible HPFS file system. Do
    not re-format it yourself to be FAT32, as I did, since it kills iPod
  • when you kill iPod you can always reset it to factory state which I managed
    to do it after using every
    possible
    iPod updater I could find on the net. I did the reset multiple times but following
    the instructions didn’t work: after update iPod just didn’t want to go back
    to life and was stuck displaying "OK to disconnect" (long after
    I’ve disconnected). Finally I did the reset on iPod and it started working.
  • it’s distressing that I was asked, twice, to enter my personal data (once
    for Apple once for MusicMatch) just to be able to install software that I
    didn’t even want. Not to mention being forced to enter multi-digit numbers
    (iPod’s serial number and MusicMatch’s serial number). It’s distressing given
    that I’ve already gave them my money and they still treat me like a thief,
    show absolute disrespect for my time and my privacy in the hope of squeezing
    some incremental revenue from me by means of bombarding me with spam (how
    else?)
  • in astonishing display of incompetency, software included on CD (iPod manager
    (whatever that is), iPod Updater (the thing that allows to reset iPod to factory
    settings/update firmware and MusicMatch Jukebox) failed to install correctly.
    After forcing me to reset every attempt to launch any of the included apps
    triggered installation dialog that kept asking me to point it to "iPod
    for Windows.msi" but refusing to accept it when I did. So I just uninstalled
    suckers.
  • although you do see iPod as a hard-drive, you can’t just copy music to it
    and have it seen by iPod automatically (another example of removing useful
    functionality based on assumption that we’re all thieves) so you have to have
    a special app that knows the secret handshake. On a Mac it’s iTunes, on Windows
    it’s MusicMatch Jukebox (if you manage to install it). But I use ephHod.
  • ephPod rocks and is free (it’s a tool
    that allows transferring music from a PC to iPod). BTW: transferring using
    FireWire is damn fast
  • iPod Lounge is a place to visit

Did I mention that iPod is really cool? It’s amazingly small, it’s super-stylish,
it works well and 10 GB is more than I’ll ever need.

Category:  — Permalink

May 26, 2003

Creating software, paying for software.

Creating software, paying for software.

Aaron argues that you shouldn’t pay for software. I don’t agree with his post in general and with some points in particular. For example, he says that producing software only costs a bunch of time, once. That, amusingly, ignores the underlying reality of how software is made. Any software that is worth using, open or close-source, any word processor, operating system, spreadsheet, web browser or web server is a multi-year effor of, literally, tens or hundreds of people. You can’t just ship software and go home. Software either evolves or dies a quick death. Good software takes ten years. The point is: if you have to pay market price for programmer’s time, it’s a multi-million investement. If you can get people to write software without paying them, it doesn’t mean it costs less, it means that someone else paid for that. It’s just an accounting trick.

But Aaron’s point isn’t really about that and even with that correction in mind he would still have an issue with the system because he thinks that the reward for writing succesful software is too big than the cost of writing it. It’s a safe bet that Oracle paid only a (small) fraction of their database revenues over the years for programmer’s salaries. If we, as a society, could just reimburse the programmers for their time and give Oracle away for free, we would have it much cheaper. Or would we? The problem is that for one clear winner in the database category, there were tens of companies that failed (Sybase, for example, is marginal at this point, IBM’s hierarchical database are a thing of the past, object-oriented databases that were so hyped just a few years ago, are just a blip in the market etc.). The market isn’t rewarding Oracle for how hard its programmers worked over the years (Sybase programmers worked just as much) but for the fact that Oracle took the risk, bet on the right horse, had the right vision and succeeded in executing their vision much better, on average, than their competition. It might seem like a stupid and inefficient system to some but it’s called capitalism and all known alternatives are much worse.

Also Aaron tries to pitch open-source as a different system than closed-source, commercial developement but that isn’t so. Open-source and closed-source compete within the rules of the same system (capitalism). Currently closed-source has a clear edge (unless you’re in denial). Maybe some time in the future one will be a clear winner or they’ll coexist but we better hope that the decision will be made by the free market. And BTW: “don’t pay” is not in software developers self-interest and one shouldn’t underestimate our power to not write the software.

So the discussion as to “should you pay for software or not” is pointless because it’s impossible to tell how a system with different rules will perform. Will we get more, cheaper and better software if it’s all open-source or if it’s all closed-source? Or maybe banning software and hardware altogether and going back to 19th century technology will make us all much happier? I don’t know and neither do you. All we have are our half-baked ideas that always omit 99% of the complexity of the system that we pretend to know how to improve. In the end, the question will be answered by the market in due time - we just have to wait. In the meantime, don’t forget that you’re part of the system and you have the power to change the answer. Put your time where your mouth is and compete. Write open-source, write closed-source and let the better man win.

Category:  — Permalink

May 25, 2003

Impressions on using WingIDE.

Impressions on using WingIDE. I decided to check out Chandler’s sources.
It’s mostly written in Python so I started looking for a good Python IDE because
it’s so much easier to dive into unknown code if you can step through the code
and see what it’s doing. WingIDE is such a Python IDE and as an additional benefit
it’s used by Chandler team. So far I’m using a 30-days evaluation version (it
has all the functionality of the product). The verdict so far: very good. But
things are never perfect. Here’s a list of few things that I would like to see
different:

  • first I had to change keyboard mappings for debugging to better match VisualStudio.
    Fortunately it’s quite easy (create a new keymap file based on one of the
    two defaults ones (keymap.emacs, keymap.normal) and add gui.keymap = $full_path_to_the_new_keymap_file
    to preferences file)
  • it seems like displaying local variables has a bug: sometimes a variable
    is missing in default debugger window but shows up in the separate locals
    window (that can be triggered by double-clicking on Locals tab in variables
    window)
  • I’m more used to "one-window-with-docked-subwindows" approach
    (i.e. the way Visual Studio.NET works) while WingIDE has "multiple-windows"
    approach
  • expression evaluator window seems to be equivalent of "watches"
    (i.e. variables/expressions whose value you want to track) in other debuggers
    but is less convenient to use (you have to re-type expressions and you can
    have only one); Variables window should have another branch in the tree besides
    "Locals" and "Globals" called "Watches" which
    would be an user-editable list of variables/expressions to show. It could
    also have "Autos" (as in Visual Studio.NET)
  • expression evaluator window should remember the tab used (i.e. "Tree
    Display" vs. "Text Display" vs. "Combo Display")
  • there doesn’t seem to be a way to capture application’s stdout/stderr output
  • it seems to be slow on large projects (and my machine is fast)
  • it should switch to gtk2, gtk1 is ugly

But it’s definitely better than not having it.

Category:  — Permalink

May 24, 2003

Inspiring article.

Inspiring article. This is an inspiring read.

Category:  — Permalink

May 23, 2003

iTrip - cool iPod accessory.

iTrip - cool iPod accessory. iTrip
looks like a very cool iPod accessory and my next shopping target (but first I
need to get my iPod). It adds FM transmitter to iPod so that you can use your
car (or any other) radio to listen to iPod.

Category:  — Permalink

May 22, 2003

rigate - a perfect file manager.

Frigate - a perfect file manager. Today I found a perfect file manager
- Frigate. Ok, it’s not perfect
e.g. it doesn’t support sftp. But it’s close to perfect and certainly the best
out of those that I’ve tried.

Category:  — Permalink