Archive for the ‘Coding’ Category

Just When I Think I’m Out — They Pull me Back in!

Wednesday, May 11th, 2011

Ringmaster

I thought I had this particular problem with The Broker solved - saving and loading lists to and from mongoDB using the emongo client - but I was wrong. Turns out, I can do it with lists of strings, but not with lists of integers. Something to do with the pattern matching in the erlang code.

What I did was to put in the more overt conversions and then both types of saves and loads worked. I'm just hoping that as my test cases get more complete, it really starts to equate to fewer bugs... but I have my doubts. This is just so frustrating. But it has to be done.

Finally! We have a Test!

Wednesday, May 11th, 2011

trophy.jpg

I finally have a successful test of the system - including the JSON interface over websockets. It's a long time in coming, but it's here. I can hardly believe it. There are still a lot of things to work out, but we have something that the GUI guys can play with, and that's very important to move forward. I can push the guys to get the rest of the pieces done - or take them back and finish them myself.

Either way... I feel I can rest for 15 min and catch my breath. It's certainly put a smile on my face!

The Reworking When Pieces Just Don’t Quite Fit

Tuesday, May 10th, 2011

Today has been a real kick in the pants, and not necessarily in a good way. I was getting ever closer to have something to test with the GUI team, and it seems that at every turn I was finding things that didn't quite fit. I know some of this is expected, but it's really a little more than I expected. A few of the components were really just "done enough" for the testing at hand. There's a world of difference between "good enough for limited testing" and "ready for applications", and I'm paying for it today.

Still, the end is in sight, I just have to slug through a ton of erlang code and JSON conversions. It's all there, I can see it, but getting the bloody matches to work is brutal.

Another long day... Man, I'm tired.

Getting Closer, Still Very Heads Down

Monday, May 9th, 2011

For the last several days I've been working harder than I can remember in a very long time. It's thankfully just starting to pay off. We are getting close - very close, and still we're plenty far from where we need to be on Friday. But it's getting closer. It's paying off.

I have a feeling we'll make it, but it'll be close. Long days... short nights... but I'm really hoping it'll pay off.

Google Chrome dev 12.0.742.30 is Out

Monday, May 9th, 2011

This morning I saw that Google Chrome dev 12.0.742.30 was out and the release notes say the only difference in this release is that they updated to the latest version of Flash. I'd forgotten that Chrome was using an embedded Flash, and dropping the embedded H.264 decoder. Two sad points, but it's their choice to include it or not. I wonder if there's a plugin that does the H.264? Anyway, still polishing up the product.

Heads Down Coding… Trying to Close This Up (cont.)

Friday, May 6th, 2011

For the second day in a row I'm leaving on the last express out of the city. Man... these are long hours. I can't remember working this hard, but it's the weekend, and I can't work at home because I can't take it with me, and I have no remote access (yet). So it works out that I have a little 2-day vacation.

I need to get some sleep...

Google Chrome dev 12.0.742.21 is Out

Friday, May 6th, 2011

Google Chrome

This morning I saw that Google Chrome dev 12.0.742.12 is out and it's still basically a polish release, but there's one rendering bug in the Mac version that's fixed as well. That's nice to see, but I hadn't hit that issue - yet. I'm guessing they are only a week or so away from releasing 13.0, and calling 12.0 the 'beta' release.

Progress.

Heads Down Coding… Trying to Close This Up

Thursday, May 5th, 2011

We're making progress, but it's still a long way to go. This "Developer Day" project is turning out to be a lot more than a day. No question. But hey... with this part done we'll be ready to really deliver something really great. I just have to make it happen. Gotta hold out.

It's been a lot of work, and we have a little more than a week to go, but I think we can make it. I'll be close.

OK, mongoDB isn’t So Bad…

Thursday, May 5th, 2011

MongoDB

This morning I was working on some code and it was getting a little frustrating working with the mongoDB replica sets - after all, they are meant to be able to switch the PRIMARY as will. Fair enough, but that makes it hard if you have to target the primary in your mongo command-line shell:

  $ mongo --host xchi43mongo:32018

where we might have a replica set of xchi43mongo and xchi44mongo. Seems they should make the third box in the set be the one to talk to - but I don't write it, so I have to try one and then another if I'm wrong. Kinda frustrating.

So this morning I decided to figure this out, and sure enough, mongoDB allows for referencing it's replica sets:

  $ mongo --host dapool/xchi43mongo:32018,xchi44mongo:32018

and it picks up the name of the replica set from your command as well as the machines in the set. Nice. I can see this - it's an alias now, and I can pretty easily deal with this.

Not bad, mongoDB.

I’m Getting a Little Tired of MongoDB

Wednesday, May 4th, 2011

MongoDB

This morning, once again, I'm getting timeouts hitting the mongoDB replica set in staging at The Shop. I know mongoDB is supposed to be this amazing piece of software, but I'm seeing it right now as a major pain in the rear. I'm looking at a database whose size right now is less than 10GB, and it's a major source of grief. We are having replication issues, and the erlang drivers had to be changed, and then retrofitted. The Java drivers had to be updated to get document sizes greater than 16MB.

But those are the known issues. It's these gotchas that are really annoying. I'm trying to get a single document from it and it's timing out. I get no idea why. One box it's fine, another box it times out. Same mongoDB, but different boxes. This worked yesterday, so what's changed overnight?

Arrggghh... I'm really beginning to hate this software.

UPDATE: it turned out to be the socket buffer size on the default socket for erlang. It was at something like 1kB and I was moving MB through. Very inefficient. When we got the socket options set right, the speed wasn't too bad. Not fantastic, but not bad.