Rough Book

random musings of just another computer nerd

Month: December, 2008

There is no Windows 7

Here is a first look at the Windows 7 beta. All I could really get from the review was that “it’s done”, and that it “feels snappier” and that it is “more responsive”. In the screenshots it still looks like Vista. The taskbar reminds me of KDE. A bunch of torrent sites have the beta up for download. Microsoft is expected to announce the build’s public availability in January. So you can get a copy of it and try it out, but to do so might be “breaking the law”. But that hasn’t deterred a bunch of people who’re out downloading it. Right now, piratebay‘s torrent for the beta is showing 2,503 seeds and 8,137 peers.

On another note though. People seem to think that this is a new operating system from Microsoft. It isn’t. It’s just Vista Service Pack 3, in my opinion. I mean, how long did it take Microsoft to come up with Vista after XP? I seriously doubt they got a brand new operating system out in about a year and a half. The name is just a PR campaign to bury the name “Vista”. There is so much bad press and publicity surrounding the name that Microsoft has to get away from it, if they want the Vista codebase to be successful.

I had Vista on my laptop. It was alright; I didn’t use it long enough to run into too many issues. The UAC prompts were pretty annoying though. Also, compiling anything on it took forever. I’m running Ubuntu on it now, and it’s way faster. My sister and my dad both run Vista, but I haven’t heard of them having any problems. If Windows 7 really is good, then I might actually consider running it. I currently have only one Windows machine and that’s running XP. Everything else is either running FreeBSD or Linux.

Where has all the good music gone?

I’m writing this partly in response to this well-written post. I couldn’t agree more. There is a serious dearth of good mainstream music today. Granted, my tastes are geared more towards various forms of Rock and Metal and so I’ll be referring to bands that mainly play that kind of music.

I rarely listen to mainstream music anymore. I find it to be completely boring. Of course, there are a few catchy tunes now and then that are good for a listen or two, but there is nothing that captures and captivates the mind – nothing that you can listen to over and over again and hear something new each time. Gone are the complex chord and rhythm changes and meaningful lyrics. Instead, mainstream music has devolved into predictable chord-progressions, simple rhythm structures, and inane, uninspired lyrics. In fact, it’s almost embarrassing when you realize that songs from some bands sound almost exactly the same. Try listening to the choruses from Dirty Little Secret and Swing Swing by The All-American Rejects, or for that matter, any song by Nickelback. I won’t say that these bands lack talent, but the fact remains that their music isn’t exactly stellar.

If you really want to compare, take a look at these lyrics from Comfortably Numb by Pink Floyd. These lyrics come from the second chorus:

When I was a child I caught a fleeting glimpse,
Out of the corner of my eye.
I turned to look but it was gone.
I cannot put my finger on it now.
The child is grown, the dream is gone.
I have become comfortably numb.

Haunting. Nostalgic. Beautiful. You’d be hard-pressed to find anything this profound from music these days. The entire song is a conversation (of sorts) between a doctor and Roger Waters. The non-chorus parts of the song are sung from the point of view of the doctor, and the chorus is from Waters’ point of view. The song and the entire album is built upon a set of themes. It’s a little too long to go into now, but if you’d like, take a look at this analysis of the song, and this analysis of the movie and the album. It’s very hard to find a complex, self-referential, and thematic work like that in mainstream music today.

The bands that I listen to now include Coldplay, Muse, The Shins, The Strokes, Modest Mouse, Pinback, and Sigur Rós (just to name a few). A quick tangent on Coldplay. Many accuse them of sounding too much like U2. I’ll admit, I did that too initially, because Chris Martin did sound like Bono. But this is only true of their early works. Bono’s voice evokes in you a sense of pain, longing, aching, and hope. Chris Martin’s voice is much mellower. Furthermore, their later works may sound superficially like U2’s, and this happens only if you concentrate on Chris Martin’s voice. But the music is very much different. Anyway, you may not have heard of some of the bands above. If you have, kudos to you! If you haven’t, I urge you to listen to them. I try to listen to music from independent labels because I do think that they sound better, are more innovative and have their own sound and character. Major labels mainly support bands that will get more air play, that will top the charts and that can get the most number of 12-14 year-old girl fans (I’m sure an accountant at one of the big labels has come up with a formula that translates this number into a dollar amount). The latter seems the be the major metric these days for the success of a band, and the first two seem to have an inverse relation to the quality of music these days.

Now that this decade is almost over, I’m left wondering what exactly would define this decade in terms of music. The 60’s and 70’s both had amazing rock bands in addition to disco (which defined the 70’s in some sense). The 80’s of course, has 80’s music, replete with synthesizers and synth-drums. The 90’s is definitely grunge and alternative. What about the 2000’s (or 00’s)? I can’t find any particular genre that defines it. If you go by mainstream, the only thing that defines music for me in the 2000’s is terrible, music-as-a-commodity stuff. But if you go by independent music, you’ll find a bunch of rich, innovative (and definitely fringe and avant-garde) music. Their success definitely has to do with the growth of the internet. Bands no longer need labels and radio to promote them, and this only highlights the fact that good music these days doesn’t come from big labels (corporations that just want to make money), but they come from small, independent labels that just want to make good music. But that’s another topic to explore.

Running the JavaFX 1.0 SDK on Linux

The JavaFX 1.0 SDK was released today. I’ve played with the preview SDK, so I was pretty excited to try out the 1.0 SDK. Inexplicably, and this was the case with the preview SDK as well, Sun hasn’t released a version of the SDK for Linux. However, this wasn’t a problem because it was possible to run the Mac version of the Preview SDK on Linux. The preview SDK came in the form of a zip, but the 1.0 SDK comes in the form of a dmg, so I was initially stumped. But I’ve figured out how to get the Mac version of the SDK to work on Linux. It’s a little more complicated than getting the preview SDK to work, but it works!

The thing about dmg files is that you can easily mount them on Linux since they are essentially stored in the HFS Plus filesystem format. So I immediately set about trying to mount it:

[email protected] ~
$ mkdir javafx

[email protected] ~
$ sudo mount -o loop -t hfsplus javafx_sdk-1_0-macosx-universal.dmg javafx
[sudo] password for vivin: 
mount: wrong fs type, bad option, bad superblock on /dev/loop0,
       missing codepage or helper program, or other error
       In some cases useful info is found in syslog - try
       dmesg | tail  or so

Hmm… ok, that wasn’t what I expected, so I tried to see what type of file it was:

[email protected] ~
$; file javafx_sdk-1_0-macosx-universal.dmg
javafx_sdk-1_0-macosx-universal.dmg: bzip2 compressed data, block size = 100k

Ok, so it look’s like it’s a bzipped file. All we need to do then, is bunzip it and mount it:

[email protected] ~
$ bunzip2 javafx_sdk-1_0-macosx-universal.dmg
bunzip2: Can't guess original name for javafx_sdk-1_0-macosx-universal.dmg -- using javafx_sdk-1_0-macosx-universal.dmg.out

bunzip2: javafx_sdk-1_0-macosx-universal.dmg: trailing garbage after EOF ignored

[email protected] ~
$ sudo mount -o loop -t hfsplus javafx_sdk-1_0-macosx-universal.dmg.out javafx

[email protected] ~
$ ls javafx
javafx_sdk-1_0.mpkg

Awesome! So we were able to get the dmg mounted. Now all we need to do is find were the SDK lives. After going through the dmg, I found out that the SDK is stored in a compressed (gzipped) file. You can find it at <mountpoint>/javafx_sdk-1_0.mpkg/Contents/Packages/javafxsdk.pkg/Contents/Archive.pax.gz. Copy this file into another working directory (or wherever you want your SDK to reside. I put mine in /usr/local):

v[email protected] ~/working
$ cp ~/javafx/javafx_sdk-1_0.mpkg/Contents/Packages/javafxsdk.pkg/Contents/Archive.pax.gz .

[email protected] ~/working
$ gunzip Archive.pax.gz

[email protected] ~/working
$ file Archive.pax
Archive.pax: ASCII cpio archive (pre-SVR4 or odc)

When I gunzipped the file, I got Archive.pax, and I wasn’t sure what to do with it. So I ran file on it and discovered that it was a cpio file. Some quick Googling and man-page perusal later:

[email protected] ~/working
$ cpio -i <Archive.pax
65687 blocks

[email protected] ~/working
$ ls
Archive.pax  COPYRIGHT.html  lib          profiles     samples     src.zip                      timestamp
bin          docs            LICENSE.txt  README.html  servicetag  THIRDPARTYLICENSEREADME.txt

[email protected] ~/working
$ bin/javafx

Usage: java [-options] class [args...]
           (to execute a class)
   or  java [-options] -jar jarfile [args...]
           (to execute a jar file)

where options include:
    -d32          use a 32-bit data model if available

    -d64          use a 64-bit data model if available
    -client	  to select the "client" VM
    -server	  to select the "server" VM
    -hotspot	  is a synonym for the "client" VM  [deprecated]
                  The default VM is server, 
                  because you are running on a server-class machine.

    -cp <class search path of directories and zip/jar files>
    -classpath <class search path of directories and zip/jar files>
                  A : separated list of directories, JAR archives,
                  and ZIP archives to search for class files.
    -D<name>=<value>
                  set a system property
    -verbose[:class|gc|jni]
                  enable verbose output
    -version      print product version and exit
    -version:<value>
                  require the specified version to run
    -showversion  print product version and continue
    -jre-restrict-search | -jre-no-restrict-search
                  include/exclude user private JREs in the version search
    -? -help      print this help message
    -X            print help on non-standard options
    -ea[:<packagename>...|:<classname>]
    -enableassertions[:<packagename>...|:<classname>]
                  enable assertions
    -da[:<packagename>...|:<classname>]
    -disableassertions[:<packagename>...|:<classname>]
                  disable assertions
    -esa | -enablesystemassertions
                  enable system assertions
    -dsa | -disablesystemassertions
                  disable system assertions
    -agentlib:<libname>[=<options>]
                  load native agent library <libname>, e.g. -agentlib:hprof
                    see also, -agentlib:jdwp=help and -agentlib:hprof=help
    -agentpath:<pathname>[=<options>]
                  load native agent library by full pathname
    -javaagent:<jarpath>[=<options>]
                  load Java programming language agent, see java.lang.instrument

As you can see, you now have a working JavaFX 1.0 SDK on your Linux box!

All original content on these pages is fingerprinted and certified by Digiprove
%d bloggers like this: