solarbird: (korra-grar)

The old record label system isn’t stupid. It’s surviving only on artificial scarcity at this point, but it isn’t stupid. Never forget that.

They’ve been working with Google/YouTube over their new music streaming service. It’s a big change, and there’s a lot going on – and it was negotiated with the Big Four labels on their terms. That’s never good. Zoë Keating‘s post is going around, and is well worth reading. SJ Tucker – in our release show on Sunday – is looking for ideas. Hell, so am I.

But for now, what you need to know is that Google is telling indie musicians that they have one of two options:

  1. Take their new deal, which includes things like “ads always on every video,” “YouTube is a required point of first release” (not exclusive first release, but no more crowdfunding rewards going out first), “complete catalogue required,” “five year contract,” and so on, or
  2. Have your channel blocked and all your music deleted from the service.

Now, there is a caveat here: this refers to artists who participate in the ContentID programme, which gets them a share of royalties for uses of their music, as is more or less required by law. If you want to forfeit that money, then you can continue to be Some Random Youtuber, but at that point you’re just handing YouTube all that money that’s owed to you, and none of the infrastructure that’s built up around YouTube music will work for you. That’s not really a bonus.

For the record, even with all those downsides, that’s how I’m currently set up. I have been thinking of changing that, however. But to do that, I have to deal with this new ring of hell, and it’s a pretty good strike against crowdfunding and indie/self-funded artists. And against anyone who wants control over their how their work is released and to whom.

One thing I’m seeing is a lot of people commenting with variations on, “Fuck ‘em! They aren’t worth your time!” Except that the last numbers I saw had YouTube at about 70% of online music plays. That data is a few years old now, but Pandora was already huge, and even with that, it was still All About YouTube.

I’m sure that number has moved around a bit. Soundcloud wasn’t as big then, for example. But I don’t imagine it’s an overwhelming shift – and there are all these newer music streaming and DJ systems which use YouTube as their infrastructure, to balance it. It’s why Google are pushing this new system: to make money off of all of that.

So yes, you absolutely can ignore 70% of the online market or whatever it is. But that’s a serious decision, and not even a little bit the “no-brainer” that people seem to think. It’s just not.

Honestly, I don’t have a good answer. There’s a suggested hack floating around in comment sections – starting a little company that is separate to but controlled by the artist, having that company sign up for the service, and only leasing some of your work to that company, and then that company leases all of its music to YouTube. It’s clever. It might be legally viable. It’s certainly an extra layer of expense, trouble, and time, and having to do that kind of hack is certainly yet another barrier to entry to new musicians.

Which is, of course, exactly what the labels want.

This is Part Ten of Music in the Post-Scarcity Environment, a series of essays about, well, what it says on the tin. In the digital era, duplication is essentially free and there are no natural supply constraints which support scarcity, and therefore, prices. What the hell does a recording musician do then?

Mirrored from Crime and the Blog of Evil. Come check out our music at:
Bandcamp (full album streaming) | Videos | iTunes | Amazon | CD Baby

solarbird: (music)

The problem with being a multi-instrumentalist is that you’re always a bit out of practice with everything. It’s pretty annoying, to be honest. But I still like the half-a-bassline I came up with last night, even if it’s all sloppy.

I’ll need to do something different for the two bridges, though. It kind of modulates the key a couple of times. Because hey, why not?

I’d like to say mandolin has joined irish bouzouki at the post, but I’m not sure about a thing, so I can’t. Not quite. I mean, on principle, I assert that overdrive is not only for GEEtars and can totally be used on mandolin. And it sounds kind of cool. But in the mix… I’m not so sure yet.

It may be interacting with the overdrive I’m using on the zouk. That, I’ve done before. (See also: Kaiju Meat. Three sets of overdrive stacked atop each other. It was awesome.) I hope not, that’d be sad. I really want this to work. I think it will, with enough nudging.

If you didn’t play the Run Like Hell preview, why the hell not? Go play it.

Mirrored from Crime and the Blog of Evil. Come check out our music at:
Bandcamp (full album streaming) | Videos | iTunes | Amazon | CD Baby

solarbird: (music)

Some of the problems I outlined in the afternoon post yesterday are cleared up, or at least accounted for – plugin status being saved and loaded is working, the asterisk cycling thing is seen by other people and also can be made to go away, loss of synchronisation when changing playlists during playback has been reproduced by dev and they’re interested – but the plugins are still problems. But I can work with this now.

Which means, I finally got to hear some percussion being done by one of our guest artists properly embedded into a mix, and wow, I am totally excited about this track in ways I wasn’t before. :D I left some space intentionally for this to be brought in, but knowing ‘a thing will go here’ is not the same as ‘an awesome thing is actually here.’ And the awesome thing that’s awesomeing around in this mix now is pretty awesome.

Because it is. :D

Also, lots of Norwescon stuff, including this year’s new stage banner, which still isn’t huge but is the largest we’ve had – and we’ve never actually had a dedicated stage banner before, we just reused the concert directions. I thought I’d fix that.

Now if I can just fix those damned plugins…

Mirrored from Crime and the Blog of Evil. Come check out our music at:
Bandcamp (full album streaming) | Videos | iTunes | Amazon | CD Baby

solarbird: (molly-tired)

A bunch of plug-in upgrades (not particularly wanted) that came in with some security updates (entirely wanted) may have hosed my digital audio workstation. I have earlier – and recent – whole-disk images I could revert to, but… that would be a lot of work to unwind.

Some days make me miss editing magnetic tape with razor blades. Not many days. But some.

I’ll be debugging all day, I suspect. Here, have a flower picture I took on Friday.


Mirrored from Crime and the Blog of Evil. Come check out our music at:
Bandcamp (full album streaming) | Videos | iTunes | Amazon | CD Baby

solarbird: (molly-thats-not-good-green)

So. I have a Windows XP partition on my digital audio workstation. It exists to run two things: imgcopy and lightscribe. The machine spends 98% of its time in Ubuntu – but XP support is ending, and 0% is about to be the right amount of time.

However, received wisdom (and every other time I’ve done this) says you have to install Windows first, in a dual-boot configuration, then install clean Linux. A fresh install of Linux is unacceptable, because of reasons. Good reasons, not bullshit/ph33r reasons. Don’t argue with me about that; if you want to, you are wrong.

Now, if I have to, I can just yank the network drivers, not even turn on the external network card YES YOU READ THAT RIGHT EXTERNAL NETWORK CARD AGAIN REASONS and keep running XP, but wow, do I not want to do that. I’d like to turn this into a gaming machine as well – it has l33t specs in many ways, and with graphics card upgrades, could be a tiny goddess.

So. First: is there a way to keep my Linux partitions and still end up with a dual-boot machine? I know I can’t upgrade WinXP in place, but I have enough room in the current XP partitions for Windows 8.1, if the spec sheet isn’t lying. I don’t mind wiping the XP partitions, If there’s a way to accomplish this, that would be awesome; how, specifically, do I do it, and if you’re proposing a method, have you done it?

Keep in mind that given that the supposed XP-and-Vista binary to check your machine for Windows 8 compatibility failed to run because it doesn’t support XP, my confidence in my former employer is not high right now.

Second: Failing that, and I think we can assume failure there, are there reasons of which I’m unaware which would make it insane to install Windows 8 to a USB drive and just boot off that when I need to run Windows? Preferably a flash drive? Obviously I’m not an Enterprise Customer ™ so I don’t have Windows To Go, so only have Windows 8.1 Pro, but does it really matter since I’d be only using it on one computer ever?

Or, again, is that crazytalk? I don’t have USB 3.0, so this might be crazytalk, and honestly, I’d prefer a regular non-USB-drive install. But as a workaround, this would be fine. I’d have a Windows partition on the drive and use that for swap and My Documents and and and.

If neither of these are options, but you have another option that does not involve reinstalling Linux, I’m all ears. Maybe some sort of VM solution, I could see that. Please, tell me. Because right now I’m looking at lol winxp 4eva, or, more accurately, winxp until it decides it really wants to register again and can’t because it has no network, and tells me to DIAF.

I’d rather avoid that outcome. Because reasons.


Mirrored from Crime and the Blog of Evil. Come check out our music at:
Bandcamp (full album streaming) | Videos | iTunes | Amazon | CD Baby

solarbird: (molly-content)

I know I’ve posted too many pictures of George lately, but apparently, he really missed having us around as couch-warmers.

So there’s some content to this post: the problem with the MIDI interface is the US-800 itself, apparently. No, it works, and it works fine with iOS and OS X, but Linux is all snippy and picky about things and stuff and won’t deal with it. Fortunately, my old M-Audio Fast Track Pro’s MIDI interface is common enough to be tested against, and now I have my chimes. Excellent.

Mirrored from Crime and the Blog of Evil. Come check out our music at:
Bandcamp (full album streaming) | Videos | iTunes | Amazon | CD Baby

solarbird: (shego-rule?-you?)

I swear to you, I am not reorienting the compass in this video. I’m keeping it as much at the same angle relative to the room walls as I can.


there y’are

I guess the mistletoe is gonna explode again, too.

I know about metal effect on compasses, but this looks more like every piece of metal in my studio is magnetic now. Honestly – these mic stands are magnetic enough to use the compass to identify their poles. My shock mounts, too. And I think I can feel the magnetic attraction to my wire-cutters on some of them.

Is that normal? It doesn’t seem like it could be normal, because I don’t see how anyone could use high-gain preamps and cables. I remove the mic stands; no radio on the pre-amp. I bring one back: radio on the pre-amp. Magnetic induction, somehow.

I am officially at a loss.

Mirrored from Crime and the Blog of Evil. Come check out our music at:
Bandcamp (full album streaming) | Videos | iTunes | Amazon | CD Baby

solarbird: (molly-thats-not-good-green)

UPDATED: See below.

Okay, so the latest: we’re pretty sure this is not actually xorg now. We’re back to session saves. Not I/O in general: specifically session saves, which is to say, saving the entire project.

See, the every two-minutes thing turned out to be a new feature in Ardour I hadn’t noticed: scheduled auto-saves, which turned out to be… every two minutes. Saves also happen whenever you enable master record, which is the other time I see it. So we’re pretty damn sure it’s Save Session.

We know it’s not I/O in general. Recording is actually far more I/O intensive, and once record is enabled and the save process is done, you can record all you want to without any problems. Bouncing existing material is also a complete nonissue.

It’s also not a filesystem issue: it happens even with RAMdisk, which is faster than anything else. And the behaviour reproduces itself perfectly on my non-USB on-motherboard Intel HD Audio card, so it’s not USB.

Now, to get into more details, I’ve gone digging deep into Ardour source code. BUT I HAVE AN IDEA, so bear with me.

In the source code, most of save happens in libs/ardour/

Save works fine when plugins are deactivated but triggers XRUNs – which means buffer overflows due to more than 100% digital signal processing capability (DSP) is available – when plugins are active.

That’s any kind of plugin, and it doesn’t seem to matter how few.

Save session calls a lot of things including get_state(), which in turn gets latency data from plugins via (eventually) latency_compute_run(), the code for which is the same! in both lv2 and ladspa plugin interfaces.

latency_compute_run() calculates the latency by actually running the plugin. Not a copy: it runs in place the actual plugin that’s in use.

This is all in here:

latency_compute_run() activates the plugin even if it’s already activated (!) then deactivates it on exit (which I guess is stacked somehow because they don’t deactivate in Ardour itself) and runs a second thread on the same instance of the plugin. (Presumably, because how else I guess?)

This strikes me as a minefield.

And so, an hypothesis: this is causing the hyperthreading predictive Intel cpu I have to retrace because of bad prediction and/or bad hyperthreading.

Penalty for this in Intel land is large, and I have seen commentary to the effect that it is large in the Intel Core series I have. I suspect that the two versions of the active plugin may be continually invalidating each other(!) for the duration of the latency test. It may even be causing the on-chip cache to be thrown out.

This would explain why it stops being an issue when the plugin is not active.


ETA: Brent over on Facebook pointed me at this 5-year-old bug, which led me to try fencing Ardour off to a single CPU. And when I do that… the problem goes away. Now, this sounds terrible, but I’m finding even with my semi-pathological test project (which I built to repro this problem) I can get down to 23-ish ms latency with a good degree of safety. So clearly, no matter what’s happening, it does. not. like. multicore.

That said, with hardware monitoring (which I have) that’s plenty good enough. I could live with 60ms if I knew it was safe. 23ms being safe (and 11.7 being mostly ok but a little iffy)? Awesome. Still: what is this?

ETA2: las, who wrote most of and manages the plugin code, popped on and said what I described would totally happen … except the latency recalculation doesn’t actually get called during save. I appear to have just misread the code, which is easy to do when all you have is grep and vi and an unfamiliar codebase.

ETA3: Well, hey! Turns out that setting Input Device and Output Device separately to the same device directly instead of setting Interface to the device (and leaving input and output devices to default assignment) means that Jack loads the device handler twice, as two instances – once for input, once for output. Thanks to rgareus on Ardour Chat for that pointer.

I can see how they get there, but there really ought to be a warning dialogue if you do that.

That means on a single-processor I can get down to 5.6ms latency and past my pathological repro tests cleanly. This is the kind of performance I’ve been expecting out of this box – at a minimum. Attained. I could in theory not even hardware monitor at these speeds – tho’ you really want to be down around 3ms for that ideally. (I can actually kinda run at 2.8ms – but it’s dodgy.) Since I have hardware monitoring I’m setting it all the way up to 11.6ms just to keep DSP numbers down. But any way you look at it – this is awesome.

I was really hoping to get this system back to usability before heading off, and – success! Thanks to everybody who threw out ideas, even if they didn’t work, because at least there are things we get to rule out when that happens.

Also, I’ve started putting together a dev envrironment (with help from Tom – thanks!) so I can explore this further when I get back into town. Saves shouldn’t be doing this. It’d be one thing were it just to HD and not to ramdisk, that’d be fine. But to ramdisk? No. Just… no. And the processor core thing, and the plugins-active-vs-not things are just odd. Maybe I can find it.

Mirrored from Crime and the Blog of Evil. Come check out our music at:
Bandcamp (full album streaming) | Videos | iTunes | Amazon | CD Baby

solarbird: (molly-thats-not-good-green)

It’s my birthday! At least, my legal one. There’s another date which is candidate for Actual Birthdate, but that’s a whole ‘nother story.

And I’m spending it moving boxes and files and hard drives. YAY. I can’t entirely believe I’m still moving files around from the techsplosion and Ubuntu upgrade farce, but I am. No, no additional hard drives have failed, we seem to be past that for the moment. But new drives mean larger drives mean the old backup drives aren’t big enough anymore means moving things around means playing Towers of Hammurabi with archives.

And y’know, moving a few hundred gigs at a time over USB2? That’s… not the fastest thing ever.

Home stretch, tho’. Home stretch. I should set up a Hall of Remembrance for all the dead drives. The Lord of All Drives could preside over it.

17 Years Good Service

Seriously, that’s the weird little what-is-this-doing-here 2G hard drive from lodestone that was serving as lodestone’s swap. I looked it up. It’s seventeen years old. And in fine working order! I figure that makes it RULER OF ALL HARD DRIVES, because damn.

And on a not-entirely-dissimilar note, what do I do with 160 and 40 gig EIDE hard drives in good working order, anyway? The small one is really slow, to be honest – it’s a total dog – so it kind of sucks and I’m not unwilling to drill it, but the 160g is reasonably fast and low milage and everything! What do you do with stuff like that?

I also have three dead drives, and one 500G EDIE drive that got yanked but which I’m putting into a housing and back into service in a new capacity. (Archives.) That’s six hard drives I’ve had to pull out of machines to get this all back together.

“Digital is forever,” they say. “Once it’s online, it’s eternal.” What a load of crap. Reality? Everything is super fragile and needs constant maintenance.

Even if you’re not a supervillain.

Mirrored from Crime and the Blog of Evil. Come listen to our music!

solarbird: (korra-grar)

I was going to write more about Victoria and the trip – I talked about a open mic appearance on Friday already – but my Macbook drive is more fucked up than I feared.

Anybody know how to make Time Machine skip past files with read errors and not just bail out?

See, I currently have no backup because Time Machine last week decided the backup was damaged and that it needed to start over with a new one. It’s done this before over the years so I said sure, go ahead.

It deleted the old backup and refused to make a new one. It gets about 1.7 gig in, then fails due to what it calls probably-transient network errors.

What it’s actually failing on are read errors on the laptop drive. Read errors disk utility can’t find. Read errors fsck can’t find either. Read errors SMART says aren’t happening.

But there are a whole bunch of files that if you try to copy them generate read fails. dd sees them too, and fails, if I try to image the disk. I went through and generated a massive list of bad files – and there are many – by having the system cp -pr them all indiviually while I was in Victoria.

I’ve currently added all of them to the Time Machine exclusion list and am trying to get a backup that way. I rather suspect this, too, will fail, due to a previously-undetected bad file.

Does anyone out there know whether there’s a way to make Time Machine not bomb out on these read errors? Or failing that, have another, good solution? Because I really need a better backup than the results of a big tree of cp -pr.

But at least I now have that. Before I set up that job, I didn’t even have that. Not after Time Machine’s lies.

eta:: With a bunch of exclusions added, I have a time machine backup of most of the drive. But it could be better with fewer exclusions if you know how to make Time Machine skip files with read errors instead of failing out. Can this even be done?

Mirrored from Crime and the Blog of Evil. Come listen to our music!

solarbird: (gaz)

Trying to work in the studio in August was not my best idea. We lack A/C and we’re having a severe heat warning, and, well, yeah. GENIUS!

It’s more time for me to be putting together autumn shows. I just got back from a Far Away tour (next part of that on Monday, previous instalments here and here) so I’m wanting to tour more around Cascadia this time.

And in general I’m feeling pretty stalled out. I guess that’s part of post-tour letdown and not being able to work much in the studio because of the heat (and the associated resulting noise, and also dayjob crap) but it’s weighing on me.

So if anybody has any ideas or suggestions? I’m feeling adrift. Throw me a sign.

Mirrored from Crime and the Blog of Evil. Come listen to our music!

solarbird: (Default)
[ profile] annathepiper points everybody at [ profile] save_liz, which is helping [ profile] denelian with her medical issues and the resulting school clusterfuck, which you can read about here. Also you can read Anna's post about it here, which would probably be good.
solarbird: (molly-thats-not-good-green)
So the Mac Store called, and as expected, the HD is toasted, unrecoverable. That set it close to the $350 flat rate anyway. So since that hit the flat rate they said it's much better to ship it off to Apple and let them fix everything including the case at that same flat rate.

But then I got nervous because as I made a big point of telling them when I dropped the machine off, it has 1G RAM and 160G hard drive, not the stock 512M/160G. So remembering [ profile] cow experiences, I called them back to see whether they remembered that. And no, of course they didn't. And yes, it'd bump it up a teir in the flat rate, a big jump. And The Mac Store's solution involves putting back in my old 60G drive (that I still have; it was kinda-sorta working but dying hard), letting Apple "repair" that, then charging me to upgrade it to replace the 60G with a 160G drive, or rather, a 250G drive, since they don't stock 160G, for an extra $240.

To wit: fuck you guys. Seriously.

The one remotely good thing that came out of it was that the 160G I have is under warranty, as it turns out. This unfortunately makes some things cheaper but many things worse, as it means a two-extra-week-or-so wait while the old drive goes to California for replacement.

To wit: Well, fuck me.

So I'll go pick up the machine and dead drive tomorrow morning and ship it off to California and generally be without useful computer and non-crappy shell-account email and hello no calendar and hello h8. Then I'll presumably install the fucker myself and reinstall OSX myself and hope the Time Machine restore works, because pay to replace the drive twice = fuck that. I'll deal without a CD burner. And with case cracks.


Oh, I found out why WinXP install disc wouldn't boot repair on kimo. kimo's optical drive decided it didn't like DVDs. No reason; just decided to say fuck 'em.

I hate computers.


Feb. 23rd, 2009 06:06 pm
solarbird: (Default)
No MacBook means no calendar. Clearly I should start posting my calendar somewhere. Anyway, if I'm supposed to do something involving you in any way in the next week, you need to tell me, 'cause until I can get this fixed, it's gone.

Except anime night. That's Thursday. I remember that. And I have an open-mic on Saturday, because that calendar, I do keep online, and it's always right.
solarbird: (molly-thats-not-good-green)
In personal economic news, [ profile] annathepiper just got a layoff notice from the Seattle Times, along with 149 other people, effective the second week of December. Article here. [ profile] annathepiper post here. And the Slog talks about it here.

Well, fuck.
solarbird: (molly-tired)
Well? YOU TELL ME. I dunno!
solarbird: (music)
I need an icon for when a gig sucks.

First set, we kind of stank up the place. Rehearsal in the AM went pretty well, but then we got there and played like we'd never met before. Second set was significantly better, after a break, but still not great.

I dunno why; it was stinking hot, which does make me stupid so couldn't have been helping, and they had us play right in the sun, so we couldn't keep instruments in tune for more than about one song. (Literally. First set, we kinda put up with it until we had to stop, second sent we were retuning every song.) Plus, there was this weird gusting wind that wasn't really enough to cool us off - much less keep the instruments from inventing new keys - but was more than enough to knock things over - repeatedly - and screw with my ability to keep tone control over my flutes. Still, the show went on.

A friend of mine (who does this for reals) told me there'd be gigs like this, and he was right, and I was prepared, but god damn, it's the kind of thing where you just want to slink away and never appear in a venue again. We did get some applause second set (no, not sarcastic, we also got more money), so I guess they sympathised. But damn that sucked.
solarbird: (not_in_the_mood)
*#&$*(@$ archaic LPX-format power supplies *#@&$*(!$&(^!*@ old equipment *#$&(*@#$&(#$%(!! no money for virtualising server box with RAID array *@#&$*(@$&*(!!!!

lodestone gets a brain transplant tomorrow. (the only thing that gets saved are the drives and the net card.) i thought that since i could still get a boot out of it that we wouldn't have to do this right away, but that was apparently a fluke as now that i've replaced the power supply's fan, i can only get about 1 boot out of 10, and most of the time it hangs in post - if it posts, which, generally, it does not.

nang nang nang nang
solarbird: (Default)
I hate Zoology very, very much. The best part is when your first lab practical (which counts as much as a midterm) is worse than your first midterm, which was previously the lowest grade you could remember getting on a science exam. No, wait; the best part is when your professor tells you on Friday that she was really surprised at how well you did and that you only lost 5-10 points (out of 50), so you're thinking you got a B until you get the paper back with a score of HA HA FUXX0R J00, by which I mean me, by which I mean my chances for graduate school.

And there's nothing else in this stupid class so far. It really is just "what's this?" We're starting to see some processes and some systems. She's all "now I know this is complex" and "A lot of people have problems with this figure" and I'm going CHRIST I'M BORED and answering all of her in-class challenge questions (which count for zero) and going THERE IS NOTHING TO LEARN IN THIS CLASS WHY AM I HERE?!

Oh right, it's a requirement. Crap.

And to cap it off, my left ear is really acting up today. Loud and screechy and full of hate. Joy.

Monday's miles: 8.3
Miles out of Hobbiton: 1686.3
Miles out of Rivendell: 1229.3
Miles out of Lothlórien: 774.3
Miles past Rauros Falls: 357.4
Miles to Isengard: 110.3

In other news, biking back from Shoreline turns out to be pretty easy, and only mildly terrifying, and that mostly at 15th Avenue NE. Biking to Shoreline would be not happening, at least via this route. Here's the way; on the left side of the screen find "Elevation: off small large" and click on "large" and you'll see why I won't be reversing that. It's particularly worth noting that the huge elevation change over time is on a road (NE Perkins Way, mostly) with somewhere between tiny, tiny shoulders, and no shoulders at all. At least there isn't much traffic - at least, not at this time of day.

A pleasant surprise was finding a deeply, deeply early-1950s sign-and-planter into a pocket development at 10th Ave NE and NE 195th. My guess - and it is a complete ex recto guess - is that this was developed around that time, and was kind of upscale, and that then 10 years later the freeway came through, wrecking the place - possibly cutting some of it off, I don't know - which is why there's a pedestrian bridge over I-5 there. The original owners might have been the sort to say, "You're screwing us with this freeway, the least you can do is not cut us off from town!" and get that bridge. Given that there just aren't any other pedestrian-friendly crossings that I can think of until you get to, oh, Ravenna Boulevard, it's the best theory I've got.

(Well, okay, 185th is doable. But it still sucks. Four lane + turn lanes + on/off ramps? Not so much fun for pedestrians. Christ, I-5 is a scar on this town.)

Oh, speaking briefly of pedestrian overpasses, I biked down to and over the new one Shoreline has built over Aurora at 160th, as part of the Interurban Trail project. It's very nice. The noise control works really well. +5 to Shoreline's trail development team.

Scattergories meme )
solarbird: (molly-wistful-rain)
I went on a bit of a Wikipedia editing bender last night. Oof. Then this morning I spent three hours going through stuff and cleaning up to put off working on taxes.

Oh, and the Music: entry on this? Get a copy. You want it.

September 2017

3456 789
1011 12 13141516
17 1819 2021 2223

Most Popular Tags


RSS Atom