(with an e on the end)

DRM, Control, and Airports

| Comments

Recently I was at the airport waiting for a seven-hour flight and decided to download an eBook (or two) to read during the flight. The airport – Heathrow – would provided internet access that I could use with some spare credit I happened to have on my Skype account. At this point I discover that the iPad Skype app cannot authenticate me for this; I need the separate Skype WiFi app, which I can’t install unless I already have it. The system has a webpage that claims to let me log in, but it doesn’t work. Okay, I’ll grab it on my laptop and transfer it over.

My initial attempt was to buy one of Apple’s iBooks. So I have the file on my computer in iTunes, but it can’t be copied to my iPad without syncing. Syncing would obliterate all content currently on my iPad because I don’t usually use it to sync. This is not an acceptable solution. While contemplating this I notice that it’s possible to dump files into the Kindle app without syncing. Great! Let’s try that.

Buy the same book from Amazon, have it delivered to my laptop. Find the arbitrarily named file, drop it into the Kindle app on the iPad and it’s copied over. Hurrah! Let’s check that it actually worked…

Ah. Apparently the settings were reset, and we can’t get past that screen without an internet connection. Presumably if we could the DRM on the books would become worthless. But wait, I have Stanza installed as well! Let’s see if it can read the file!

Nope. DRM prevents it from doing so. Fine. Let’s strip the damned DRM off. Several minutes of Googling later and I have an un-DRMed version of the same. Trying again, and… nope. Can’t read the format. So after some more Googling I have a file without DRM in the right format. Finally, half an hour later, it works! I repeat the process in a couple of minutes for a second book and board the plane.

But then, four hours later, partway through the second book, I am spontaneously presented with this screen:

Yes, it shut off mid-flight. Brilliant.

New Blog!

| Comments

Well, sort of. This blog no longer runs on WordPress – at least partly because I’m evidently too lazy to track WordPress security updates. The whole site is now static; good luck finding security flaws in my HTML. Perhaps I might now even actually write something on occasion! I wouldn’t count on it, though.

The downside is that purely static files make comments hard, so for now it’s using Disqus. I don’t much like Disqus, for the same reason I dislike all JavaScript-based commenting systems: they’re unsearchable, they load slowly, and they break the “back” button.

For the curious: the site now uses Octopress (and, thus, mostly Jekyll). Each post is stored as a single Markdown file from which a page is generated. I can now blog from a text editor and a command prompt (rake new_post["slug"], rake generate and git push)! How exciting. The posts are more legible than HTML, too: see this post.

Goodbye, WordPress editor!

megaprim.sl (and Others) Down

| Comments

Since I keep getting emails, blog comments and IMs about it: megaprim.sl is currently down due to circumstances beyond my control; I’m working with MIT’s IS&T; to restore service. Some other sites run by myself are also down for the same reason.

In the meantime, you can use the Viewer 3 beta (and probably most TPVs, but I don’t care for them) to create prims of up to 64x64x64 on sims running the mesh beta channel (when this is rolled out across the grid, I will be removing all prims smaller than that anyway, which account for ~80% of use of megaprim.sl).

Sorry for the inconvenience.

Restructuring Emerald Viewer

| Comments

Emerald Viewer has, apparently, undergone some restructuring. They have indeed deposed, and apparently beheaded, Fractured Crystal.

They promise that, henceforth, there will be one fair, level playing field; this will, near as I can tell, be achieved by making Arabella, a nominally neutral party (accurate at least insofar as she’s unlikely to be making coding decisions, I suppose) have control of the servers.

A minor problem here: Emerald was already a level playing field. All developers have always had svn commit access. All developers have always had write access to the website. The servers were technically owned by Fractured, but Chalice, Discrete, Phox and Fractured all had full administrative access – and Phox and Chalice were the ones who actually did all the administrating (which one varied depending on which server you were referring to). Fractured was sufficiently incompetent that he couldn’t set up a cron job I needed, and I had to paste him the line. Ironically, this was the cron job that regenerated their login screen every five minutes. (I wrote the login screen; it didn’t have any ridiculous iframes at the time.)

Fractured, for all the “leader” status that he seems to have acquired, was never really the leader in any non-monetary sense. If people disagreed with him, they would ignore what he said – and he was less revert-war happy than many others, so ignoring him was frequently successful. By saying this, I do not wish to implicate the others in this latest event; I shall assume they simply didn’t notice that he did it. I was not party to that discussion, having already left by the time it happened.

The restructuring effort, effectively, boils down to “We don’t like the ModularSystems name, or the ongoing association with Onyx, or the IP logging, or…” – which was always an ongoing discussion; moreso since Modular Systems LLC was incorporated (or we were told it was; anyone found the registration records yet?).

Oh, and if it’s a level playing field, why are there only three people to contact? They can’t have lost all but two developers and their leader/PR. That’s about as level as before, then, from an external perspective; “All animals are equal, but some animals are more equal than others.”

As an addendum: I do trust Jessica to a reasonable extent, but she seems to be quite happily spinning this “restructuring” effort to be far more significant than it actually is. I’m surprised.

Emerald Shenanigans

| Comments

So, Emerald has been up to things again. This time they’ve been “boasting” about their traffic (but not their spelling ability, clearly). By including 32 iframes to another website in their login screen. That means that every time someone launched Emerald, they made thirty-two requests to this website. This happens several times per second; that’s quite a lot of requests for an unsuspecting site. They hid this from the users inside a 1x1 pixel hidden div. They did this for some weeks until they were caught. This affected every version of Emerald.

The offending code has since been removed, but Google has it cached (update: Modular Systems got this cache removed); if you don’t feel like visiting this page (which will, incidentally, cause you to also load these pages), look at this screenshot instead.

Even if you accept Emerald’s “boasting” claim, in this claim they refer to the targeted site as malicious. Why in their right mind would they force all their users to load a malicious site without telling them? Thirty-two times, for that matter.

Emerald has a tendency to attract drama. Much of it is unwarranted. I feel that this, however, crosses the line.


| Comments

Hello there! This appears to be an actual post, for the first time since 2008. Amazing, no? Anyway…

I have spent the last day and a half or so working on a new website, http://megaprim.sl. It is a megaprim search engine - essentially, enter the required size and it’ll show you the best matches and send you one of your choice. It also does a couple of neat things like allowing greater/less than searches, skipping axes, and searching various permutations that might match better than those you actually entered. Additionally, for more for show than anything else, it renders previews of all the prims. Because it can.

Example search: Any prim with one side of 100m (when would that be useful? No idea!)

Hopefully someone will find this vaguely useful. Comments would be appreciated! :D

Twitterbot for Plurk

| Comments

Twitterbot is the result of a night-and-half-a-day of hacking. It’s a Plurk bot that integrates your Twitter stream into your Plurk timeline, creating plurks for each tweet, and (attempting to) merge Twitter conversations into a single Plurk thread. It’ll also forward any response you make in these threads back to Twitter.

You can use Twitterbot by visiting its Plurk profile and adding it as a friend (not by being its fan). Within a couple of minutes it will request your Twitter name and password. Once these are provided, it will poll your Twitter account periodically for tweets to plurk.

You can shut it off by de-friending it, which will cause it to destroy all data it holds on you within a couple of minutes.

If you wish to use this, however, a few words of advice:

  • You will, for all intents and purposes, be following everyone you follow on Twitter on Plurk. If you have thousands (or even a few hundred) of people you follow, you may find it difficult/impossible to keep your Plurk timeline reasonable. Twitterbot is not very helpful in this case.
  • Capacity is limited. No idea how limited, but it’s limited, and further access will be forbidden once the limit is reached until it can be raised.
  • There is a delay of up to two minutes before it notices you sending a plurk or friend request, and up to five minutes between receiving new tweets from Twitter.

If you want to use this, have fun! If not, eh. :p

Two More Plurk Userscripts

| Comments

I have written two new Plurk userscripts: Be Productive and Force Qualifier Language.

Be productive adds a new entry to the top toolbar, which when clicked can block you from Plurk for any number of minutes. Any attempt to use it will result in a block screen until the time elapses. It also disables my Plurk notification script. The script’s a little ugly, by the way.

Force Qualifier Language forces all qualifiers to be in the same language as the rest of your profile, including those set to be something different for whatever reason (e.g. from someone who uses the Thai interface they’ll be in Thai, even if the message is not). Note that it has no effect on the pages for individual plurks, only on the timeline.

Both of these call on or alter various internal Plurk JavaScript functions (as do my other scripts). These scripts work with both GreaseKit and Greasemonkey

Plurk Userscripts for Greasemonkey and GreaseKit

| Comments

EDIT: Updated to actually link to these scripts.

Hello, potentially non-existent readers! This blog shall briefly show signs of life!

On the topic, I have created three userscripts for use with Plurk. Two will work with Greasemonkey and GreaseKit, whilst one will only work in a Fluid SSB.

Collapsible Dashboard

This script will collapse Plurk’s dashboard to save space, and will additionally remove the footer links. The dashboard can be expanded by clicking “? Expand dashboard”, and collapsed again by clicking “? Collapse dashboard”. It’s useful on screens that aren’t very tall. The collapsed dashboard will still respect the CSS style of the dashboard in question.

You may find this script here.

Reply blocker

This script adds another entry to the menu you get when you click the arrow by someone’s name, labelled “Block from replies.” Clicking this button will result in replies from the plurker in question being hidden. This functionality is, for some reason, not provided by Plurk.

To unblock a user, click the “Block from replies” button again (it currently reads “Block” and not “Unblock” even if they’re already blocked). Note you’ll have to use a plurk from them to do so - e.g. on their timeline, or on your timeline if you follow them.

The list of people to block is kept in a cookie, and thus is not shared across computers. Also note that, although any replies by these people will not be visible to you, they will still count as unread (there’s no good way to determine who made a reply until it’s loaded, so this is unfixable).

As a final warning, this script alters the Plurks.renderPlurk function. This shouldn’t be a problem, but if your timeline suddenly starts coming up blank, try removing this script.

You can find this script here.

Plurk Notifier (Fluid only)

This script, which is for Fluid only, will add a badge to your dock showing the number of unread and new plurks. Additionally, a growl notification will be given whenever there is a new plurk indicating the content of the plurk. Screenshots:

Growl notifications:

This one alters the Poll.showUpdates function, so in the unlikely event that the notifications in the bottom left stop showing, this may well be to blame.

You may find this script here.

All of the above are used at your own risk and so on. The latter two have some comments at the end noting what the Plurk functions used are for.

Oh yes, and I’m Katharine on Plurk, but I tend to reject friend requests from people I’ve never heard of.