SourceForge.net Marketplace spam

It came with the header:

Subject: Turn your skills into cash at SourceForge.net Marketplace

At the very least it was annoying bacn, but it’s really spam.

In May 2007 there was an invitation to register interest in SourceForge’s new Marketplace product. I declined. Evidently sourceforge (or at least the Marketplace product manager) was disappointed in the uptake among developers, and started an opt-out bacn campaign, consisting of sending the same message to developers every few months telling them to check out the new service.

Well, bacn is one thing, but the most annoying thing was the obfuscated unsubscription procedure. The relevant sentence being:

… if you would prefer not
to receive information about SourceForge.net Marketplace, please update your
communication preferences by visiting the Profile Center.

When these emails were sent, there was no text “Profile Center” on the SourceForge marketplace page. There have been some frustrated bug reports as a result.

So it turns out that the “Profile Center” text in the original email (which was small, light grey on white, and had no decorations differentiating it from the surrounding paragraph) was an indirect link (via click.marketplace.sourceforge.net) to the Profile Center. The Profile Center leads to the Subscription Center, where

If you wish to unsubscribe from ALL publications
from SourceForge.net Team, check the box and click the update button
below.

Except that it’s not “ALL publications from [the] SourceForge.net Team”, it’s just the spam from Marketplace.

Meizu Music Card

I spent a while searching for an MP3 player in the leadup to xmas 2007. I thought my criteria were reasonable:

  • Access as a USB Mass Storage device
  • Decent enough sound quality that I’m not compelled to buy an amp
  • FLAC and ogg support
  • A form factor that I can take running with me in a pocket

I ended up with a shortlist of:

iPod nano
  • the 3rd generation form factor isn’t great
  • it can’t play ogg and flac (well, until rockbox gets ported)
  • isn’t well-regarded for its sound quality.
Sony NWZ-S61x
  • It certainly seems from Sony’s promotion, user reactions, and some RMAA tests that sound quality was a focus, and that Sony were taking advice from their users by switching to UMS.
  • The lack of ogg and flac support was disappointing
  • The form factor tipped the balance. Really it’s not that bad, but it reminded me of my V600i, whose appearance I loathe.
Cowon iAudio 7
Meizu M3
  • A form factor that fit my criteria
  • Comprehensive codec support
  • Some bells and whistles (FM, mic recording)
  • A decent price
  • I couldn’t find much regarding quantitative tests of the sound quality (the others had been subjected to RMAA and similar).

On separate whims I came close to getting the iAudio 7 and an NWZ-S616.

So the belated birthday present from my sister was an M3 SP, 8 GB, stocked with the T 2.003.3 firmware. I christened it “simble”. Here are my first impressions, chronologically ordered rather than logically categorised.

Continue reading “Meizu Music Card”

wordpress it is *sigh*

While my search for good blogware has turned up the empty set, I’ve taken the easy option and gone with wordpress.

What did I want from my blogware? Well:

  • a minimal markup for inline formatting
  • the ability to copy and paste code without having to escape it or encode HTML entities
  • extending the code to be fun…

The only decent markup language I’ve come across is reStructuredText, although I can tolerate mediawiki’s. It does things right:

  • the markup is pretty close to what I’d use if I was posting in plain text
  • you can escape the markup if you need to
  • you don’t need to escape literal blocks (apart from indenting them)
  • it supports higher-level things like metadata, xrefs, citations

The only problem is that it’s very python-centric. Even though it’s semi-standardised, it evolves as the docutils dev team add features to the docutils processor. There aren’t processors for perl, ruby or C, so it’s not the why-aren’t-we-using-this-it’ll-work-ootb solution that, say, YAML is in its domain.

The plugin that sealed the deal with wordpress was reST for wordpress. It is a hack: it calls “rst2html“ and rips the body out, and recommends you turn off the “correct invalidly nested XHTML automatically” feature of wordpress (although this may be to avoid pre-processing, rather than because the rst output is broken).

I really wanted hobix to work. It wasn’t going to happen. Apart from the markup issues, its maintenance future doesn’t look bright. A bunch of stuff is broken, and from my exposure to that code base, adding my own plugins is likely to be anything but fun.

The motivation to post is at the critical lower bound as it is, without procrastinating about mending the posting-platform.

scroball.rb: an audioscrobbler client

After discovering the awesomeness that is last.fm I became annoyed at it indexing the misrepresentative contents of my local iTunes library. This gave the false impression that I spend most of my time listening to Kanye West’s Gold Digger (catchy though it is).

I play most of my music using iTunes Shared Libraries and an mt-daapd server running on a Debian NSLU2. If there’s a way to make last.fm scrobble music iTunes accesses from a DAAP server, I couldn’t find it. Then there’s all the music I listen to with players that lack audioscrobbler plugins. Why wait for last.fm to work out what my tastes are? I needed a way to let audioscrobbler catch up with me: manual scrobbling.

Fortunately audioscrobbler provides documentation of the Audioscrobbler Realtime Submission Protocol. From this, I hacked together a ruby script to scrobble my music directories: scroball.rb. It does do a little bit of subterfuge: it backdates and calculates the start times to avoid collisions that audioscrobbler would pick up in sanity checking. This can legitimately be used to retroactively scrobble a listening session.

ruby ~/scroball.rb p00ya `/bin/date -d 'last wednesday' +%s` .

yay! Hopefully the last.fm folks like it; it’s not intended for abuse.