# Planet Scala

As you might have noticed, I’m sometimes a very angry person. :-)

One of the things that has gotten me particularly angry recently is the shockingly poor quality of aggregation sites for Scala. There’s Artima Scala Buzz, which I’ve chronicled my irritation with before, and a new Scala driven ad farm which if you read the mailing lists you’ve probably noticed.

The particular reason this makes me so angry is that setting up a good aggregator is really damn easy. Planet planet is very simple to set up (it took me maybe half an hour of tinkering) and produces consistently good results. Planet Haskell is basically a vanilla setup of it and works very well.

So, as usual, I end up porting something from Haskell to Scala. Say hello to Planet Scala

This entry was posted in Admin, programming and tagged , on by .

# Hardware vendor shit list

In keeping with my recent stance on blog content, this has nothing whatsoever to do with programming. It won’t educate you about esoteric languages, you won’t learn good development practices from it, and frankly you probably won’t care about it.

This is a post about hardware companies who suck. This post has two purposes:

a) In the hopes that it will prevent someone else from having to deal with these issues.
b) A small measure of petty revenge against those who have SERIOUSLY PISSED ME OFF. It’s not like they’ll notice the loss of a few sales, but if this persuades even one person not to give them money for their crap it will make me feel better.

There’s a tentative c) that if anyone could give me a suggestion for fixing my laptop I’d be eternally grateful. :-) But I don’t really expect that.

The past six months have not been happy ones for hardware. My work machine has never worked right, and my personal laptop has mysteriously died. Twice. The incompetence of Mesh in dealing with the desktop’s problems has been rivaled only by the astoundingly poor communication skills and unreliable hardware of Asus.

First, Mesh.

The problem with the desktop is a very annoying one: The screen would intermittently go black for a second or two. At first it did this once every few hours and I wasn’t sure if it wasn’t just power saving mode or something. Eventually I verified that no, it really was happening, and it was happening in both vista and ubuntu, so it most likely wasn’t a software problem. As time went on the problem got progressively worse – these days the rate is several times per minute.

I eventually narrowed it down. The problem would only manifest in the exact following circumstances:

a) This exact PC. Any other one worked fine.
b) The exact brand and make of monitor. Brand and make you say? Want to know how I know this? It’s because they sent us three. Sending us the second one was quite reasonable – it looked like a monitor problem. After the second we pointed out that maybe this wasn’t such a productive use (however we didn’t complain too hard, as the monitor had developed several dead pixels. But they wouldn’t replace it for the dead pixels sitting smack in the middle of the screen. You need at least 5 before it’s a replaceable condition. More on this later.).
c) Only on DVI input.

c) was the fortunate point which meant that I’ve actually been able to get work done in the last six months. I dislike VGA, but it’s at least usable.

Speaking of the brand of monitors, here’s another shit list entry: Mirai, the brand of this monitor. Quite possibly the worst monitor I’ve ever used. Despite my best efforts and tinkering the colour has never been anything less than washed out. They’ve developed dead pixels, random image problems (my favourite was the “yellow line down the middle of the screen”. That was a fun one. The flickering effect was another nice touch).

Anyway, back to mesh and this peculiarly specific hardware problem. Very random, isn’t it? What’s the chance that two pieces of hardware picked out of the blue would demonstrate such a specific incompatibility?

Wait, picked out of the blue? That doesn’t sound right. Let’s try again.

What’s the chance that two pieces of hardware picked and provided specifically to work together would show such a specific incompatibility?

Having exhausted monitor options they concluded that maybe we should replace the motherboard (it had onboard video). And so they did.

Eventually.

It took more than a little trying and them sending no less than four people out (it might even have been five. I forget if we had one or two no shows). Between these four, they managed the following problems:

a) A no show
b) someone who came out with a very handy motherboard box. No motherboard mind you, but one out of two isn’t bad, right?
c) Someone who in his truly inspiring competence managed to bring not only a motherboard box but an actual motherboard contained within. Rapture! What service! Oops. Wrong motherboard. What service?
d) Finally someone who managed the simultaneous combination of box, motherboard and correct brand of motherboard. He didn’t arrive until 7:00 in the evening and seemed to think he was going to be visiting a home address, but oh well. Why be picky? He managed to replace the motherboard successfully and everything, we booted up the machine and the display appeared stable. Could it be that after all this time the problem was finally resolved??

For context, I should clarify that I was now working on a different machine. We’d cut our losses and moved me to another desktop (a Dell. I’m not a big fan of Dell, but I have to admit their customer service is great). This meant that I wasn’t directly observing the other machine, but we booted it up with the intent of testing it and once we were sure the problem was resolved putting it to another use.

At some point during the following day I got a question from someone who sits next to where I had the computer set up.

“David, did Mesh come to fix this last night?”

I moved around to talk to them. As I did I said something along the lines of “Yeah, they replaced the motherboard and it seems to have solved the… oh shit”

Which is about where we stand currently. I don’t know what we’re going to do now.

Now, Asus.

I went with Asus because I’d been told their laptops were very reliable. Yeah… not so much. Also their website is awful, their customer support is awful, and their communication skills lie somewhere between “awful” and “nonexistent”.

I placed the order on a weekend. I got a generic “thank you for placing an order” with a note about sending confirmation when they were ready to deliver. On tuesday I still hadn’t heard from them so I made a mental note to call them in the morning to ask when they were likely to deliver.

And arrived to find my laptop sitting on my doorstep. On the one hand, yay laptop. On the other hand, RANDOMLY LEAVING EXPENSIVE HARDWARE ON ONE’S DOORSTEP IS NOT COOL. Granted it was internal to my building, not on the street, so clearly someone had to have let them in and signed for it, but this is still not acceptable behaviour. But even setting that aside, the key point here is that there was no communication, no advance warning, nothing. If they’d just done exactly what they should have done and said they were going to and let me know that they were planning to deliver that day I would have planned accordingly.

Anyway, rather than tear them a new one, I decided to let it pass. After all, I had a laptop (and a reasonably nice one). No harm done.

A week and a half later the laptop turned into a brick. The power light came on when you pressed the power button, and some vague whirring noises, but nothing more than that. I called up asus technical support, reading their support procedures on the card with growing dread (it involved sending you a snail mail form to fill out if they decided that yes really you needed replacement hardware). Fortunately their procedures were 71% less insane than claimed, and the dreaded form was in fact an excel spreadsheet. Hurray.

Upon filling this out and getting confirmation I had to call an entirely different branch in order to arrange a pickup. When I did they asked me to call back later as the details had yet to come through. Apparently their inability to communicate extends to eachother as well as their customers. It’s good to know I’m not being singled out.

Eventually I persuaded them to pick up the laptop. In fairness it didn’t require *that* much persuading. They picked it up promptly once arranged.

And then silence.

Two and a half weeks later I finally found time to call them up and say “Soo… laptop. What’s going on with that?”. “Oh, yeah, we sent it out this morning. You should be getting it today”. Fine, great, I’m glad they sent it back. But again with the total non-communication. And slowness. Two and a half weeks is not a nice length of time to be laptopless. For additional failure to communicate, they gave no indication whatsoever of what the fault was. I should have enquired, but I couldn’t be bothered at the time. This was a mistake.

That was a couple of weeks ago – I forget how many, but definitely not longer than a month – and the absence of this knowledge is now highly relevant, because the laptop has just done it again. This time it appears to have been the result of leaving it on until it went into power saving mode – I fell asleep with it on, woke up four hours later to discover that I no longer possessed a functioning laptop. If anything it’s brickier than last time – I’m not even getting a power light when pressing the switch.

This is especially upsetting as it means I will have no laptop over the christmas period. This means no working on personal projects I’ve been putting off due to work and, more importantly, a very limited amount of communication – in particular I’ll have to borrow my parents’ computer if I want to use Skype or IM (and no video at all. Sigh). It also probably means that you get a respite from my blogging. :-)

For added irritation (and admittedly I can’t blame this on hardware vendors, although if I could I’d try at this point), I seem to be running a moderately high fever. All in all this does not result in a happy David.

# Minor irritations

I just noticed the following issue in Java. It’s never bothered me before, so it’s clearly not that big a deal, but I find it vaguely annoying.

The following code is not legal:

final Foo foo;
try{
foo = stuff();
} catch (Exception e){
foo = otherStuff();
}


The compiler thinks that foo might already have been assigned in the catch block, even though it clearly can’t have been.

The reason is presumably that it doesn’t distinguish it from the following code:

final Foo foo;
try{
foo = stuff();
bar();
} catch (Exception e){  // Might have been thrown from bar.
foo = otherStuff();
}


Which is reasonable. I’m not sure if I’d really want this edge case to be handled specially.

As Ricky Clarkson pointed out in ##java, what would really be much nicer is:

final Foo foo = try { stuff(); } catch(Exception e) { otherStuff(); }


i.e. Compound expressions ala Scala (or GCC extensions, or any number of other languages). It would avoid a lot of annoying edge cases with assigning to final variables.

This isn’t really a “Please add this to Java 7” request. I don’t care enough and the list of desired features is getting annoying. It’s just a minor irritation with the language.

This entry was posted in programming and tagged , , on by .