hares-recovery

2016

General | Posted by Derek
Mar 08 2016

Well, we’ll see if this shows up this time with a database restore.

So, a lot has been going on. Let’s start where we left off: wrist is much improved. I can tell I’m missing some flexibility and I doubt it will ever be 100% again, but I’d confidently call it 85%. Have a couple of exercise devices - a gyroscope ball, green putty. Bothers me a little at the end of the day but not nearly as much as it used to.

Late fall / early winter, a major IT undertaking at work kicked off. It’s underway until July. Hopefully the part my team is tied up in will be winding down a little starting in April. I’ve been working from home in the evenings, cleaning up and fixing legacy code. There’s all sorts of amazing things that developers once got away with that the new system won’t allow or handles poorly. Things like the absolute gem I found yesterday, which I’ll replicate in a generic fashion:

int *number;
number = malloc(sizeof int);
number = &someOtherNumber;

What.

Okay, for those of you who don’t grok code, here’s what’s happening:

  1. We are declaring a new variable. This will be called ‘number’ and will refer to integers. The asterisk indicates that we will use this particular variable as a pointer, which means it will store a memory address that points at another value. It starts out undefined - whatever it is pointing at isn’t really valid, and it needs to be initialized.
  2. We are allocating memory, the size of an integer. This will return a memory address, which we store in our convenient new pointer made to hold memory addresses. We could store something here. But instead…
  3. We obliterate the address of the memory we just asked for, which we will never be able to find again, and replace it with the memory address (&) of another variable.

 

Since we have lost the address of the memory we just asked the system to reserve for us, we can’t tell the system we are done with it, and thus have created a tiny memory leak the size of one integer in memory. Scale this up to the structures in the real code (20 to 100 times bigger) and wrap it in a loop that runs several hundred thousand times, and there’s more than a small bit of memory lost forever (until the program exits, at least).

A lot of the issues are subversive and non-obvious, such as one I tackled today where a function would randomly corrupt the second entry in a list. It looked random until I watched how it added the new item over hundred of iterations, and discovered another bit of pointer magic badness that I won’t bore you with in extensive detail. What would generally happen is that if the function was called with exactly 100 items in a list, and it caused one more to be added, it would get into a weird state because of a leftover pointer, and fill the new entry in the list with garbage instead of the actual data that was supposed to be in there.

The nights and weekends I’m not working from home, I’ve been trying to go to the gym. This winter I hit my highest weight ever and I was starting to see some of those awesome obesity-related health issues - joint and back pain really are the gifts that keep on giving. I enrolled in a work-sponsored program called Prevent, which is sort of an online guided weight loss thing. I also picked up a local gym membership and have started trying to at the very minimum do some cardio via elliptical several times a week. I’ve changed my diet, I cut out artificial sweeteners, so on, so forth.

Mind you, I don’t feel gigantic. I do fit the medical definition of ‘obese’ but I’ve never considered myself as such when I see a lot of people far worse off than I am. Allegedly, I look slimmer than my weight. More than once, people have been surprised when I’ve told them. I’m never sure if they’re just being nice, but in any case I don’t need to look it because I feel it.

However, I am making progress, and I’m happy enough about it to plaster this infographic from my Prevent profile in public:

Screenshot 2016-03-08 23.36.38

Finally, there’s a distinct lack of something I promised months ago, and I need to correct that soon…

Quick update

General | Posted by Derek
Oct 11 2015

Orthopedic specialist referred me to occupational therapy (which I’ve always called physical therapy, but I’m sure there’s a reason for the difference in terminology). Wrist is doing better. I’m still missing a sizable portion of the former flexibility, and the hand strength is abysmal. Uninjured hand can grip his little measuring device at 135 pounds, but the injured one topped out at 47.

After 8 hours at a keyboard for work plus the OT exercises it’s pretty sore in the evenings, and the weekends have been busy with other personal and/or family things. This is actually the first weekend in a while that I’ve been able to get stuff done around my own place.

A couple things I’ve picked up that can be done one-handed or limited two-handed:

  • A combination of factors (several videos shared via twitter, a coworker talking about it on occasion, and a general curiosity about the game’s story) led me to try out EVE Online. It’s not a fast-twitch style game, which is nice because fast twitches really hurt right now. It’s also a big sci-fi sandbox where the players have made most of the rules on top of the basic game universe rules.
    While all of the terrible things everyone has heard are true to an extent (in-game scams, thefts, and so on), it’s part of the emergent gameplay experiment this thing has turned into. Also, and perhaps in despite of that, there are some genuinely helpful people (P.S. Thanks again for the trial key! you know who you are) if you get lucky enough to stumble across them. The major takeaway for the game content and interactions has been ‘don’t trust anyone that you don’t have a reason to trust, and maybe not even then’. I normally give people the benefit of the doubt, and that seems like a good way to get burned in EVE.

  • I’ve been working large tracts of storyline events and out-of-scene history into a timeline tool called Aeon Timeline. Picked it up on a sale a while back and hadn’t found time to figure it out. Since that’s another thing I can do mostly with a mouse and some copy-pasting for context, I’ve been taking the opportunity to learn it and get the timeline more organized, especially since there are chunks where effect precedes cause.

Decasting

General | Posted by Derek
Aug 31 2015

So, next week presuming all goes well the cast should be coming off. Not sure what the next step is, if there’ll be physical therapy or anything. In any case, I’ll have more info next week.

I’ve found I can type reasonably well with the cast; however after writing code during the day at work, it aches in the evening and I’ve tended to shy away from further keyboard use. Hopefully that can change soon.

P.S. Golf carts are evil

Take Two (And call in the morning)

General | Posted by Derek
Aug 04 2015

Went in for first followup today; got a new cast (by the way, they put me in a cast last week and I couldn’t use the fingers on that hand as a result of it being super long). They now are encouraging me to use the fingers as much as is comfortable, which right now isn’t much but will get better. This of course is/will be a blessing for work since I don’t have to try to code with one hand when it no longer hurts to use the other; it is however extremely awkward because the cast is formed to not let my wrist move or twist, and I have to cock my whole arm at a weird angle to get a comfortable typing position. It looks like I’m trying to take flight. I need to find a different keyboard, something with more of a split form than what I’ve got now. A couple people at work have a logitech Wave and I might give that a try. In any case, five more weeks of cast.

In other more positive news, today is the official anniversary of my hire date at my workplace; I spent half the day out of the office (and in the doctor’s office), but hey, it still counts. As part of the bump for being a nice guy for the last year I’ve been promoted to a full Software Engineer position (dropping ‘Applications’ off of my job title) which is great because now my email signature takes up 13 fewer bytes (more with rich text formatting, I’m sure). I think there was also a small bump in pay, but that pales in comparison with the 13 byte savings!

The thing you all really want to hear… Isn’t here yet. :(

Golfing accident

General | Posted by Derek
Jul 26 2015

So, this happened. 

  

I’m not a pro at reading x-rays but they tell me I fractured my radius. I’m not exactly sure where to see it in the image, but I assume the arrow is a hint. This is not sarcasm; I literally don’t know how to read what I’m looking at here. What I do know is that my left wrist is very sore and swollen, and that I will never try to get on a moving golf cart again.

In any case… I’m no longer certain I’ll make a full chapter for this month, but I’m going to try and at least get something up this week. Not yet entirely sure what. I have an appointment on Tuesday to see an orthopedic specialist/surgeon (not sure which he is) and that I’ll have a better idea after that of what I’m looking at for recovery. Still in a wrist brace and sling for now.