fuzzy notepad

Atom feed [blog] blog

[blog] Redmine vs GitHub

I’m currently hosting a small pile of projects on a combination of self-hosted gitweb and self-hosted Redmine. I keep glancing meaningfully in the direction of GitHub; it’s code-oriented, it has wiki support, it has an issue tracker, and it can do simple site hosting via some contrived abuse of git. So why am I bothering to host my own stuff? There are actually a few reasons, thus I need the Internet to decide for me.

[blog] How to drive your new project into irrelevance

Here’s a question that should be really easy to answer: what is Diaspora?

Okay, well, I know what Diaspora is. It’s an attempt to make a decentralized social networking service. But my knowledge ends around there. What kinds of things does it share? What useful functionality does it provide for me? How does its concept of identity work? And the million dollar question, how does the decentralized bit actually work? Do I show up as eevee@diaspora.com on other sites, or do I auto-get a local account, or do I manually sign in with OpenID, or is there a central registration server, or do nodes sync their account lists… or what?

[blog] Something is wrong with American culture

Today, the Supreme Court ruled that the California law prohibiting the sale of violent video games to minors is unconstitutional, violating the First and Fourteenth Amendments. The idea here is that the government can’t prevent a group of people from being exposed to media they want to see; freedom of expression goes both ways.

Unless, of course, you are expressing boobs. For some reason, while any arbitrary level of cruelty and gore is Constitutionally protected, any level of human sexuality is not. Justice Breyer pointed this out:

But what sense does it make to forbid selling to a 13-year-old boy a magazine with an image of a nude woman, while protecting a sale to that 13­year-old of an interactive video game in which he actively, but virtually, binds and gags the woman, then tortures and kills her?

Of course, he’s actually arguing that both violence and sexuality should be off-limits to children. But the question is still a good one, underscoring the long-standing American conflict of loving violence while underscoring sexuality with shame. It need not be said, but I remind you that sexuality creates life, whereas violence destroys it. These are some funny priorities we have.

I know this has been said before. I’m not done yet.

[blog] Python needs more software

Consider this a companion article.

I love Python. It’s healthy and thriving and attracts a lot of clever people. It has its warts, but they’re mostly manageable.

Unfortunately, it still strikes me as a bit invisible. I haven’t really been able to articulate why, but after reading a bunch of those Perl blogs that bring up CPAN, I think it might actually be the software.

For example: there’s no good Python forum software. I’m sure there are some bits and pieces here and there, but nothing that’s attractive, feature-rich, and easy to deploy. That last one is a bitch, I know, but it’s important. Right now, if I want to throw up a forum, my viable options are really phpBB, vBulletin, and some other crappy PHP things. I think MyBB might be Perl, but who even uses that?

[blog] Perl 5 is dead, Perl 6 is a disaster

ADDENDUM Jul 3: I don’t know how, but this got a bit of attention. chromatic has compared me to Barbie, szabgab wondered if I’m a troll, and several people suggested that I’m trying to justify leaving Perl for Python.

Remember, I’m a long-time Perl developer. I’m the ideal target audience: someone who already uses your product. In recent years I’ve become disillusioned with Perl, having watched several similar languages eclipse it. I’m surely not unique in feeling this way.

So why is the reaction to downplay what I said, rather than to tell me why I should want to use Perl, or to make Perl something I’d want to use again? chromatic suggests I just haven’t done my research. But if I don’t know why I should use your product, that’s your problem.

I did have an interesting discussion in #perl6 about this, which led to an insight. Perl 6 is unusual, possibly even unique, in having a large spec written before an implementation. I think some of its communication issues stem from this: outsiders see a spec and take it to mean an implementation isn’t “1.0” until it reasonably matches the spec. Implementors, on the other hand, regard the spec as merely a direction to move in. So outsiders are waiting for a blessed 1.0 release, and think the insiders sound slow and stuffy for not giving them one. Insiders are working on an organic thing, and think outsiders are obnoxious and impatient for wanting something absurd.

Explaining the discrepancy to people who want to use Perl 6 is technically correct, but not practically helpful. It may be better to carve up the Perl 6 spec into discrete and useful milestones, with some big ol’ colored chart detailing what’s supported by which implementations. (I actually can’t tell right now what Rakudo supports and doesn’t. rakudo.org is just a blog.)


I feel the need to respond to this series of blog posts about Perl 6, whether it should be renamed, and what the implications are for Perl 5.

I’m a Perl person. I’ve been using Perl since I was eleven. I got paid to write Perl for the past four-and-a-bit years. Let’s pretend I’m qualified to say anything here.

A confession: I wince when I call myself a “Perl person”. I think it makes me sound crusty and obsolete. Because Perl 5 is crusty and obsolete.

Who is using Perl for new software? Besides a couple grumpy nerds I know personally, I haven’t the slightest clue—and I sort of pay attention to Perl. I have zero interest in Java or .NET, but I’m still dimly aware that things are built with them. I can’t tell you what Perl is actually being used for besides all the cool new modules on CPAN designed to make Perl suck less.

What has happened with Perl since 5.8? 5.10 brought us the smart-match operator, the defined-or operator, and given/when. 5.12 brought us… well, nothing. 5.14 allows push $arrayref. And that’s all! There are a lot of bullet points in the changelogs, yes, but almost all of them are arcane things like “the … operator” or “$, flexibility”. These are improvements, technically, but they’re not anything that’s going to make me jump for Perl 5 for my next project; they’re just going to make existing Perl 5 work hurt less. (And even that isn’t automatically true; my previous job is at least a year into an effort to move from Perl 5.8 to Perl 5.10. Note that Perl 5.10 is now so old it’s unsupported.)

The ecosystem is moving, sure, but if you buy into that then you’re still stuck with the language. Worse, if you use any other Perl software, you probably have to work with an object system you don’t use, an exception model you don’t use, some kind of bundling thing you don’t use, and on it goes.

I don’t see anyone talk about Perl except people who are really into Perl already. It doesn’t attract new blood; I certainly wouldn’t point anyone towards it. If it were a human language, we’d certainly call it dead, or at least moribund.

[blog] The deletion problem

floof does not, as of yet, support deleting artwork. It’s not exactly a high priority for getting an art site off the ground; we need to facilitate creating content before removing it is even a thing to be done.

Recently, I keep returning to the question of whether deletion should even be supported at all.

I hear complaints about this all the time on FA: people move accounts, people “clean up” their old art (what?), people just up and decide to leave and remove all traces of themselves in the process. Suddenly, a lot of people have tons of gaps in their favorites, with no trace of what used to be there or why.

Now, obviously part of this is purely technical: it’s easy enough to let favoriters know what’s been removed, and those gaps shouldn’t really exist in the first place.

But then, my whole philosophy so far has been about compromise. There are sites where producers have all the power, and sites where consumers have all the power, but not really anywhere that tries to appeal to both sides, and that’s the niche I’m either inventing or filling.

Consider a wiki: when you write an article, you’re creating something. The article is your prose, created by you, copyright to you. Yet nobody leaving a wiki project would think to delete all the articles they’d written in the process; the very idea is absurd, because we hardly even acknowledge that the individual writing itself is an individual creation. The project is the wiki itself, created by everybody and owned by nobody.

So can an art site do this? Can the site itself function as that kind of singular project, with individual artwork acting as mere contributions to the whole? I’ve always had the inkling that public art sites are for sharing the art, and features like disabling comments or restricting viewing ability run contrary to that goal; this is the same kind of idea taken to a further extreme.

I’m still not sold on this myself; I feel like there’s some obvious use case I’m missing that would drive many artists away. But most of the problems I think of aren’t actually solved by deletion from a single art site, since most art ends up mirrored in untold dozens of archives and imageboards. The only real difference is that the artist doesn’t directly see that it’s going on.

The biggest hurdle won’t be with discouraging artists from deleting art they upload. It’ll be discouraging artists from uploading art they might want to delete in the first place. If you don’t well and truly want to share it, then you probably just shouldn’t. This is a tricky problem; if the site resembles deviantArt-style sites, it’ll be easy to assume that it works the same way. Big scary warnings are helpful, but “no deletion” sounds more like lazy development than a nod to the subtle philosophy I’m gradually figuring out here.

I don’t know. Are you interested? Are you an artist? Am I crazy?

Addenda: Some things that were mentioned to me:

  1. Wikis tend to require that you (often passively) license your contribution under a free documentation license or similar. I doubt that would be amenable to everyone, but at the very least we’d need something granting permission to display the work indefinitely.

  2. One comment implied allowing an artist to remove art from his/her gallery without actually deleting it from the site. This is actually kind of interesting, and hints at another problem I haven’t much thought about: some artists let commissioners upload purchased work, but don’t bother to upload the works themselves. If “your gallery” is just all the art tagged as being created by you, how can we handle that?

[blog] What the hell am I doing

I guess I started a bad habit of writing big long posts About Things, and then blogging became this self-imposed chore, and then I didn’t do a lot of it. Oops. I’ll make a deliberate effort to write shorter things when they come to mind. (I also have half a dozen half-finished posts not committed, which by my count should equal three whole posts.)

Lately I’ve been drowning in an (even worse) inability to do things. Something dislodged all the cool progress I made at the end of last year and I don’t feel like I’m getting much of anything done. Numerous conversations with mel, strangely-relevant blog posts I stumbled upon purely by accident, and brilliant self-reflection are starting to help.

[blog] Unity vs. GNOME Shell

For those not aware, the GNOME world is getting shaken up lately. GNOME 3.0 was released last month, with a completely redesigned interface called GNOME Shell. Meanwhile Ubuntu, the biggest GNOME-based distribution by a gigantic margin, decided that they are super special snowflakes and do not want to use GNOME Shell, so they repurposed their netbook interface, Unity, and scrambled to make it tolerable on desktops for the 11.04 Ubuntu release next week.

Our media center is running some ass-old release of Ubuntu and its main partition is too tiny to even upgrade any more, so a few days ago I bought a new drive, slapped it in, cleaned out an inch-thick layer of dust, and installed the 11.04 beta for the hell of it. After using Unity for “long enough”, I installed GNOME Shell and gave that a spin too. Here is my impression.

Quick version: They are both terrible and I am sad.

[blog] Gotcha: Python, scoping, and closures

I’ve touched on this kind of thing before, but I just saw it come up again, and I think it’s worth its own post not buried in an avalanche of armchair psychology. Plus, I remembered that Blogofile does syntax highlighting.

Closures in a loop

If you’ve been linked here, you’ve probably complained that this doesn’t work as you expect:

1
2
3
4
5
6
7
8
funcs = []
for i in range(4):
    def f():
        print i
    funcs.append(f)

for f in funcs:
    f()

The output will be 3, repeated four times. Gasp! Python is totally broken! It doesn’t support closures!

Well, no. Python supports closures all too well, and that’s causing the problem here. The issue is with scoping.

[blog] Architectural Fallacies

I spend a lot of time in #python and #perl. Far more than is healthy, probably. And I’ve noticed some patterns in the kinds of questions people ask.

There are plenty of people who have trouble expressing themselves well enough to get answers in the first place, but those are just communication problems. (That’s a good read if you ever ask nerds for help, by the way.) More subtle, more insidious, and more common are people who just ask questions that shouldn’t be asked in the first place.

These are architectural fallacies: logical flaws in the very process of building or designing something. They lead programmers towards solutions that are hard to understand, are inefficient, or just don’t work. And they confuse the heck out of the people trying to help.

[blog] Perl Worst Practices

I hate to rank my own skill at anything, but if you forced me to, I’d say I’m pretty good at Perl. I get paid for it, at the very least. I’ve been around it a long time, and I know it well enough to tell you in intricate detail why I now use Python, instead.

But this is not that post. This post is about a particular wart of Perl: that it has a lot of warts. Large chunks of Perl are antequated, bug-prone, or outright obsolete. The trouble is that there are no warnings in the interpreter or documentation for many of these things, so a newcomer—or even an old-timer—won’t know to avoid such pitfalls until told by someone else.

Such secret knowledge has been documented in bits and pieces in many places, but none of them are complete, and some of them are similarly antequated. So, here’s my list.

[blog] Status, 2011 March… and April… ahem

Just as I sit down to actually blog something, I see the first gigantic spider of the summer on my wall, and have to run away screaming like a little girl. The universe doesn’t want me to write! (Let’s pretend every other week for the past six was stalled by way more spiders.)

[blog] P.A.D.D.

Screenshot of a P.A.D.D. from Star Trek

Hey, remember these things?

This was the future, man. A gadget that displays anything in the universe you want to know, at your fingertips. One of the coolest things in Star Trek. “Hey, Bob, you have those simulation results?” “Yeah, right here—on my magical tiny touch computer.” And nerds everywhere cheered; paper was for norms, man.

Now we actually have these devices: smartphones, tablets with their own custom-tailored OSes, ebook readers. But what are we using them for?

Ebook readers actually get a pass here; I expect them to do exactly one thing, and anything else is just noise. I know Sony and Barnes & Noble are embroiled in an arms race over this, but the results on both sides are worse at the one thing I want an ebook reader to do. (The Nook Color has an LCD screen. Why would you do this?) I do welcome the merger of tablets and readers, should the screens somehow become as easy on the eyes as e-ink.

But a significant chunk of smartphone applications are just “Our Website: The App”, built by developers who forget that every phone platform has a fully-featured Web browser on it. Many of the rest are desktop applications jammed into the alien form factor and made worse—either in UI or functionality—by the transition. Tablets aren’t much better off; last I heard, many tablet applications were those same shrunken-down smartphone applications, scaled back up again.

Look at the top Android apps and this Time list of alleged top iPhone apps. YouTube, a website. Gmail, a website-slash-email-app. Twitter, a website. Best Buy? Cut the Rope?

Smartphones are incredible pieces of hardware, and by all appearances, we’re barely using them for anything. Crappy versions of desktop software, crappy versions of websites, and perhaps an MP3 player so we have one more free pocket each. This is a sad state of affairs.

[blog] YATTA

I am now, officially, as literate as a native Japanese two-year-old. Almost. Maybe.

an image of my JLPT N5 certificate

I actually meant to condense all the grammar I know down to bullet points that make sense to me, and post it before I took the test. I kinda never did that. Oops! Maybe some other time.

I haven’t really studied in the past two months, either; time to get back into that. I picked up a surprising number of phrases from watching FMA, so that’s a good sign.

[blog] Hagane no Renkinjutsushi

Long, long ago, in the ancient forgotten year of 2005, I watched an anime series called Fullmetal Alchemist, and it was good. Well… it was okay. I won’t speak to whether the plot was really as confusing and contrived as my foggy memory tells me, but I know I was disappointed with the ending, and the subsequent movie didn’t add much closure.

I didn’t know at the time, but the source manga was still running—and continued to do so for another six years. Almost half of the anime series (most of episodes 29–51, I believe?) was fabricated to explain and conclude the first half of the manga’s story. It’s the rough equivalent (in quality, as well) of a fanfiction author finishing up the Harry Potter series right after Goblet of Fire.

And then, redemption! A new series was made from scratch, following the manga more closely now that it’s over. We spent the last two weeks watching this masterpiece: myself, Marl, and Mel (who hasn’t seen the old series). While the correct story is still fresh in my head, I want to collect some impressions. Beware, spoilers, obviously.

[blog] Status, 2011 February wk 3

Mel lives here now, and I want to spend time with her whenever I can, naturally. This is something I’ve never had in my life before, and it presents something of a complication.

Weeknights consist of an eight-hour solid block of free time. I’d usually spend half of that doing absolutely nothing, another hour or two trying to pick up my last-known-state for whatever I wanted to work on, and then finally get a couple hours of actual “work” done. It was hardly efficient, but it kinda worked. And this was all a single workflow, to me; the hours of time-passing made for some irrational mental preparation for sitting down and doing something.

Now, though, I don’t have solid eight-hour blocks; I’m instead affected by a regular human being’s schedule, which includes going out or talking or eating or what-have-you in the middle of the evening. That free time is now carved into multiple smaller chunks of a few hours each. For most people, that wouldn’t make any difference, but for me those chunks are almost entirely consumed by the time-wasting that would lead up to a context switch.

So, I’m having to learn very quickly to knock this crap off, or I just won’t get any work done on anything. Frustrating in the short term, but certainly beats the… system I had going before.

[blog] Status recap

It’s been a while since I’ve really sat down and thought about where my pet projects are and where they’re going, either publicly or privately. Part of this is just because I haven’t really done a lot in the past month and a half or so; between Christmas interruptions, having Mel move in, a brief and disasterous switch of medications, and restless nights due to cats wandering around on my bed, I’ve been varyingly exhausted or distracted or some other excuse.

Lately magical has ever-so-subtly hinted that roadmaps are a good thing, so in the interest of project management, here’s a rough outline of what I’m up to. With any luck, this will make it into a bug tracker and actually get done!

I’d still like to do these weekly, and I think being able to dump a splat-delimited list into a text file will help considerably. Here’s hoping.

[blog] Something new

Do you remember LiveJournal in its heyday? It was glorious. Built like a hacker’s hobby project, with all manner of little hidden treasures. Multiple avatars that use keywords so you can swap them out retroactively. A threaded comment system that still defies most competition. Site-wide banning, originally available only via a text-only admin console. A DSL for styling your blog thing however you want! It introduced OpenID; it was probably one of the first sites to really embrace RSS.

Now, though, none of this is particularly impressive. LiveJournal is far from being the only kid in town, and since it was sold to an already increasingly-irrelevant Six Apart and then some obscure Russian media company, it’s fairly well stagnated. More effort is spent on micro-promotions than actual functionality. LiveJournal is now optionally a client for Twitter and Facebook, rather than standing on equal footing as with OpenID or (gasp!) being the server. LJ’s own OpenID server support is some of the weakest I can name. LJ ran out of good ideas long ago, and now it’s just running on inertia.

A sad tale, sure. But on a more personal note, LJ is just not fun for me to use any more. I’m a hacker, and I like fiddling with things, and LJ just feels like a huge wall between my content and the world. I really just want to write some text and broadcast it to all who wish to read it.

And so, I depart LJ to do exactly that. This blog is stored in git, formatted as Markdown, and built into mere static pages by a few small Python scripts.

The comments, alas, are powered by Disqus. I apologize profusely for this, to those of you who would actually care. I thought long and hard about this, but ultimately I came to the realization that my blog is about things I want to say, not so much what others say in response, and so it shouldn’t really matter what the commenting mechanism looks like. If you don’t want to allow the necessary JavaScript but you really have something to say, you can always be old-school and email me.

Now, then. I’ve spent far too long just nitpicking the design of this thing (which I intend to finish up and apply to veekun proper, eventually). Let’s see if this legitimately makes me more interested in blogging.