Where’d My Badge Go?

I had the worst sensation at my daughter’s bus stop this morning. I had my hands in my coat pockets because it was chilly and my left palm realized that my badge holder was not clipped to my front left belt loop. My palm passed this critical message on to my brain and I had a sudden sinking stomach sensation.

Then I realized I don’t have a badge anymore and I got to experience a completely different kind of sinking stomach feeling. The funding for the position that I held for eight-plus years ran out on August 31, 2017. They took back my Orca card and my badge. I carried a banker’s box of the last cruft from my desk down to my car. I had to have a friend badge me out of the garage. We said goodbye and…that was it. Very matter-of-fact, this-happens-every-day, none-of-this-is-out-of-the-ordinary.

I am now safely ensconced in a co-working space that is, mercifully, filled with quiet adults who are serious about getting work done. It is the most positive peer pressure that I’ve ever felt in my life.  There’s a big wall of windows to let in the light. I’ve learned to use the La Marzocco GS3 that’s sitting in the kitchen and I make an awesome Americano.

It all helps me stay focused and keeps the pressure on to be doing productive things (I’m currently taking a break after writing two cover letters, which I find particularly draining). I have a place to be out of the house, away from the undone dishes and the dust puppies and the bed that is calling out, “Just give up and take a nap instead…”

After a couple of weeks of reflection, I’ve come not just to realize, but to actually experience how working with people forty hours a week for eight years has an influence on you. In fact, it changes you forever. You learn from them. If you’re lucky, some of their best positive qualities will rub off on you. I’ve learned to be less intimidated by casual social interactions. I’ve learned to be more independent in my work (where independence means a willingness to just dive into the unknown head first). I’ve learned more about time management, project management, and “cat herding” from the best.

I’ve walked away from this job a better person and maybe, even though it hurts, it doesn’t hurt as much as I expected because I’m still carrying these gifts around with me and these people will, in that sense, always be a part of my life.

This makes getting a new job very intimidating. I know that if I stay too long, I will again start to pick up qualities from my close coworkers. Will they be positive qualities? Will they help me grow as a person somehow? Will I accidentally land myself a step backward in terms of maturity and cooperation? Will I feel isolated, dark, bitter, and lonely among a team in which I don’t really fit? My responsibility to assess the people whom I’ll be working with seems more critical now than it ever has before in my life. The trite “you’re interviewing them as much as they’re interviewing you” now feels much less trite and much more salient and I feel it in a way I never had before.

Overall, while I have ups and plenty of downs, I’m feeling positive about my skills in finding a good fit for me. I’m mature enough to really know who I am and what I need. Sometimes, I read job listings and get excited about who these people are and what they’re doing and how they’re doing it and if this could be THE ONE. Sometimes, I read listings and my instincts say right away “that’s not for you.”

I’m not desperate. I don’t need to act desperate. Some opportunities that I’ve been excited about have passed me by but new possibilities open up almost every day. And maybe, just maybe, you’ve landed on this page because you’re a potential employer wondering if I’m right for you. I would like to think that would happen–that someone would be curious enough to look around for my presence online (which is almost nil for complicated reasons). That kind of curiosity and thoroughness in a potential manager or coworker would certainly appeal to me. As always, I hope I’ve made a good impression.

The End of an Era

On Thursday, June 1, 2017, I received the bad news that my position had been eliminated from the renewal of the SSGCID (Seattle Structural Genomics Center for Infectious Disease) government contract. The grantor of the contract, NIAID (the National Institute of Allergy and Infectious Diseases) had, in anticipation of the cuts in the upcoming national budget, ordered deep budget cuts across the board, a directive they had received from their parent, the NIH (the National Institutes of Health). My position will go unfilled and that money distributed across the scientific staff so that they can be retained as FTEs and do the actual science, which is–after all–the point of the whole thing.

My position will not be filled by someone younger and/or cheaper than I am. It simply does not exist as a line item in the next SSGCID budget. The web application that I’ve labored on for the last eight years will be left without a caretaker for the final five years of its life. I’m confident in my manager’s skills and familiarity with the underlying database to be able to curate the content of the database through manual SQL manipulation. However the front end? The middle tier? She has neither the desire nor the time (she’s a real scientist and works on real, awesome science stuff for the good of the contract) to take over my web app and so it will languish.

Eight years is the longest period I’ve spent in any job. I’ve been held here by golden handcuffs. One of the greatest of these has been the no-drama friendliness and delightfully geeky intelligence of my coworkers. If I geek out about some aspect of programming, I can appreciate a lab researcher geeking out over some new process they tried in their experiment and vice-versa. SO. MANY. NEAT. PEOPLE! This was especially valuable to me because they hired me after I reentered the workforce after taking two isolating years off with my second child.

Another aspect of the golden handcuffs is the mission behind the SSGCID endeavor. Its purpose is to take genes that are potential drug targets and discover the shape they make when the protein they produce is crystallized. The crystal shapes then suggest pockets and other landing points where medicinal compounds could block the protein from acting, sending a chain reaction through the bug (SSGCID works on bacteria, fungi, and viruses) and kill it or at least render it non-harmful. My web app is a tiny cog in the works, tracking the genes we were studying (over 14k of them have been selected) and helping to push them through the pipeline. However, it is critical in helping to produce the numerical evidence needed every six months to provide to NIAID that we were still worthy of our funds.

I am sad to leave this position behind because I feel this chemistry of people and mission and corporate culture will be hard to find. However, I am also somewhat relieved. I knew I couldn’t stay for the whole thirteen years. That seemed like too long in the same spot, especially if I didn’t get a chance to dig into new technologies as they arose. A part of me is really looking forward to a new opportunity to grow my skills and to work as a programmer among other programmers.

Even though I’m still somewhere in the stages of grief and couldn’t FizzBuzz to save my life, I am starting to apply for jobs. Even though many look quite tempting, I’m finding myself feeling a twinge of terror each time I do it, because each application leaves you vulnerable to rejection. How many interviews will it take before I finally don’t choke at the whiteboard? How many interviews will it take to find a team that feels like I “click” with them and would be a good addition (I’m not exactly a stereotypical coder)? I’ve learned so much about being more at ease, more “me” when around strangers by observing some of my more socially gifted coworkers. Will it be enough?

My funding runs out at the end of August. I’m not bitter–they didn’t really want to cut me from the budget but I don’t actually do the science and without the science happening, I’m useless and I know it. I know others who are still on the contract have made sacrifices, such as cutting back their hours to save money. They will still do the same amount of work, but only be paid for a fraction of it. This makes me sad because they are good people who do good work and they deserve to be compensated appropriately.

So, let’s wish them luck on a successful next five years as well as wish me luck on finding a good new job to call home.

“Stretched Too Thin” Follow Up

I’ve been meaning to follow up on my post about feeling overwhelmed with a mere summary of what I did and how it’s been working for me. The fact is that–when everything’s counted up–I am pretty close to overwhelmed and so it’s taken a while for me to get around to this. Note that this is the weekend between the winter quarter and the spring quarter of my C++ course and finally getting around to this during this break is not a coincidence. The C++ is a huge investment when viewed in light of my available free time.

What I did to address my sense of being “stretched too thin” was simple and–when I looked back at what I’d done–based on the core premise of Cognitive Behavioral Therapy: establishing “balancing thoughts” to the ones that trouble you.

On a simple steno pad, I listed on one side all of the things that were bothering me or weighing on me in any way. I broke up large problems into the smallest pieces possible. Turns out I had a whole two pages’ worth of things on my mind–and I probably could’ve broken some of those down even further.

The first thing I did was to go back through the list and cross out all of the items that stemmed from my outsized sense of anxiety and insecurity. Those are issues I’m already actively dealing with and I could put those items aside.

Then, I recopied the curated list over again. One by one, I addressed each item thoughtfully, writing a brief note on how to counter that worry. I found that either:

  1. I’d done as much as I could about that item and should let it go
  2. I hadn’t done as much as I could and made a brief note on how to address it
  3. I had no control over the item and should just accept it as it is

Interestingly, I found that many more things fell under category 1 than I would have ever guessed: I have a lot of balls in the air, but damn, I’m doing a good job juggling them–keeping a gentle pressure on them to get them to a resolved state. This alone made me feel much better. The items that fell in category 2 turned out to have either simple remedies (hire a gardener for that stupid, knee-deep lawn!) or such long-term remedies that I didn’t realize that I could get an adequate handle on them. Category 3 was the saddest, as there are some things I would rather be able to take a direct hand in that I simply can’t butt in on. These were things I had to accept and let go.

So I learned two things: one, that I’m much more on-the-ball than I give myself credit for and, two, I am stretched pretty thin: I’ve got a full-time job and a full-time family and a full-time self to take care of and even with the tireless efforts of my husband, there’s just not enough hours in the day. I had to come to terms with that, too.

Following this exercise, I immediately felt a wave of relief. And the feeling continues: every time I feel like things are falling apart, I think back to my list and realize that I’ve got everything much more in hand than I think. Once the list loses its power, I’ll probably sit down and repeat the exercise. It’s that effective.

In the meantime, I’m busy juggling balls and making plans and reminding myself that the sense of exhaustion and chaos is part reality but also part illusion.

Stretched Too Thin?

I have to admit that I’m feeling stretched thin as of late, uncomfortably so. Aside from all of my real-world commitments (which are many, some of which I don’t disclose here), I’m holding on to too many worries that either a) I can’t do anything about or b) I’ve done as much as I can on or c) aren’t even my problem. Tonight is the night I intend to list them out and convince myself to let go of as many as possible. Why? Because I’m at the point where I can’t pay attention to any one thing for any decent stretch of time.

Being a worrier can play against you. One thing on my mind right now, with the end of our government contract looming, is interviewing–it’s hard to play worrying up as a strength and it’s nothing short of a curse during the process. However, in some ways, it makes me a better coder: it makes me more alert to potential conflicts, problems, and risks. It even contributes to the team: I make a great devil’s advocate and am a pretty decent rubber duck. Sadly, these are soft skills that I’ve never been asked about in an interview and I think that’s a real shame. It seems like something people should care about in a team member.

In my private life, worrying can work as a real motivator to get things done and to plan, plan, plan. I do things like plan our summer vacation a year in advance. I make spreadsheets to track the kids’ Christmas presents: what are we buying? has it been ordered? has it arrived? been wrapped? My packing list spreadsheet is a multiple worksheet wonder, copied from a prototype spreadsheet and then lovingly customized for each specific trip. And though spreadsheets have their place tracking minutiae, nothing beats the family Trello board for day-to-day life management.

So tonight I will take my awesome planning skills and apply them to analyzing everything that seems to be weighing me down, breaking down worries into categories so that I can put everything into proper perspective and cut the dead weight from my mind. I don’t believe that I’m stretched as thin as I feel and if I’m wrong, some good planning is my best defense. I’ve got a passel of sticky notes and some large sheets of paper to work with to make it a tactile and thus, for me, a more visceral process. I do believe I can turn this around and even have some fun while sorting it out in the cheerful company of my husband and a glass of beer. Lemons to lemonade? Definitely.

C++ Is More Fun Than You Think

A little over a month ago, I wrote about starting a C++ course as a structured way to challenge my brain. The nice part is that C# is a C-based language (the “C” is not merely coincidental), so a lot of the syntax is familiar to me. The bonus part is that it’s forcing me to learn, from the ground up, about all of the keywords and language features that I take for granted, even though they don’t map directly from one language to the other. In short, learning C++ has inspired me to dig in under the hood of C# and learn more about the language itself.

What’s it like? There are ten “modules,” one for each week. Every module has assigned readings, an hour and a half long online session with the instructor, a dedicated forum, and (in most cases) a homework assignment.

How do I work it into my busy life? With a lot of enabling from my husband. He helps me carve out time on the weekends and in the evenings to do my readings and my homework. He even set up a special, out-of-the-way place in the house for me to use while I watch the online sessions.

Homework is due Friday night. I try to start it the weekend prior and have it done by Tuesday or Wednesday so I can review Thursday night and tweak anything I don’t like before turning it in.

Online sessions are Tuesday nights, so I’m missing every other one, as it conflicts with my writing group. Never fear: the session is recorded and I watch the ones I miss on the following Wednesday.

I try to complete the readings before that lesson’s online session by plowing through them on the weekends. I even take down hand-written notes in a little notebook as I grind through the texts to help me remember key points. How quaint!

But you hate reading tech books…how do you manage all this reading? I have to say that I’ve never been able to sit down and read a tech book cover-to-cover. It just dulls my brain and nothing sticks and it makes me feel misanthropic. Why is it working now? The key seems to be that the readings are focused and limited. Not to say that it’s not a lot of pages to cover and not to say that it’s not heavy weather sometimes, but there is benefit (for me) in pacing the book, instead of trying to suck it down all at once as if it were some confection of a novel.

We’re reading Scott Meyer’s Effective C++, which has a format I really enjoy: 55 short “items” on centered on basic best practices in a gently proscriptive approach that still allows for nuance towards exceptions. This format really clicks for me.

We’re also reading the C++ Primer by Stanley Lippman, Josée Lajoie, and Barbara E. Moo. It’s a thick book (I can see why it took a team to write it). It’s very in-depth in the way I typically find very difficult to just sit and read (instead of referencing). However, with the assigned reading skipping around and dovetailing with the other reading and the other pieces of the class, I’m gradually warming to it and to the level of detail and depth of understanding that it provides. Sometimes I lament that I can’t keep ALL of it in my head, as the details are so fascinating.

So how do you really feel about this class thing? Making time for it is tough, I’ll admit it: work/life/class/obsession balance is very hard. But I’m really enjoying getting the technical understanding of the language and it’s made me want to learn more about my own language and understand it more deeply and take better advantage of its features. My wish list at Amazon is now filled with tech books that I long to read and my only lament is that the course is so in-depth that it won’t conclude until September, meaning I have to wait several months before I can really start to bury myself in all of the studying I want to do.

Overall, the class has made me more excited about programming than I’ve felt in years. I guess that’s the consequence of staying stable at a job for several years where the work can get repetitive. I needed some serious brain-food to jerk me out of the doldrums and I couldn’t be more delighted in getting this inspirational kickstart.

C++ on a Lark?

It’s not exactly a lark but, given everything else happening in my life, it is a bit of a crazy commitment. I signed up for an eight month, three-part course through the University of Washington’s extension program, aiming to complete a certificate in C++ development. And I do have to admit that, while it’s not exactly a lark, my decision to sign up was a bit impulsive compared to my usual standard of thorough over-thinking.

Why C++? Why not C++? It’s a language that’s not only venerable and well-established, but it’s still in demand. However, my biggest motivation is that it’s a more “low-level” language than anything else I’ve dealt with before as a web developer. This means I have to get my hands dirtier than ever before because fewer things will be wrapped up with nice, pretty bows like I get with C#, MVC, and EF.

I’ll be plunged into working with new types of challenges (like keeping track of my pointers and watching for memory leaks) and wrestling with more complicated algorithms through my homework–things my college education glossed over and my work experience has not touched on often enough. This has left me at a disadvantage at the whiteboard during interviews, where I typically freeze like a deer in headlights. I’m looking forward to earning more confidence at that whiteboard in the future through this adventure.

Another advantage is that I’ll have the chance to practice more complex OO design. Having worked at the same job and working on highly similar modules for several years, I don’t have much opportunity to be challenged by new problems to solve with inventive and solid designs. I know that my current patterns have shortcomings but, with my hair often afire and being alone, sticking to convention has become more important than innovation–which is a sad place to be. While features where I could have the opportunity to do something radically different are discussed (D3 and data visualization? Elasticsearch?), these treats have all gotten delayed in my work queue multiple times.

Why a formal course? As a mostly self-taught developer who has often worked alone or in a very small team, I’m craving the opportunity to not just have a once-a-week hangout with other devs wanting to learn the same language, but also to turn in my homework and have my code reviewed! Having other minds against which to sharpen your own is an incredibly valuable opportunity, one that I don’t have at my current job (no one on my team works in my language). Plus, I’m wretched at sitting down and reading tech books from cover-to-cover. I want deadlines and the motivation of committing a large chunk of money for the experience.

Class starts February 1, with our first online meeting on the 2nd. Yes, the meetings are on Tuesdays, sadly overlapping my writing group, whom I’ll be reduced to visiting with for a stingy half hour to forty-five minutes, depending on how quickly I can zip home from the coffee shop. Hopefully a quick Circle of Shame will be enough to keep me motivated on that front. I’m feeling motivated about my class, though: I’ve done my readings, taken notes, and have been practicing small projects to get accustomed to the differences in organizing and compiling the C++ projects compared to my C# projects.

Fingers crossed that the instructor is good! I’ve looked over the lesson plans for the next ten weeks and they seem promising. The first lesson focuses on unit testing as one of the basic components of ramping up. That really earned my respect and, frankly, I was relieved to know that the instructors thought it that significant.

Now all that remains to be seen is if I can carve enough time out of my life to not just keep up, but to squeeze all I can out of the experience.

Post NaNoWriMo Wrap Up

There’s always a little hangover involved in finishing National Novel Writing Month. Perhaps writing 50,000 words in 30 days doesn’t sound intimidating to you at all, but it does involve concerted effort and perseverance to keep slogging when you’re tired or when the story simply isn’t coming together. 50k works out to a mere 1,667 words per day, which is reasonable, even with a full-time job and family.

And yet it’s not. Sometimes you’re inspired, sometimes you’re tired. Last year, I sailed happily through my novel. I hit both 65k and a satisfyingly wicked cliff-hanger ending. This year was an uphill challenge and I found myself updating my word count every 100 to 200 words, taking solace in the slow upward creep of my statistics for the day, looking eagerly for any discernible height increase in the day’s bar over the previous day’s bar in the cumulative word count bar chart. Some nights, I could only bear putting in 100 words before folding for the night.

I survived only by bearing down on the weekends, pounding out 2.5k or so per day. On Sundays, I went to a coffee shop at its 8am opening (by myself, which was a weird experience; coffee is typically a social event for me) and wouldn’t allow myself to leave until I’d hit my 1,667 for the day. Then I would continue to cram in the most I could for the remainder of the day. Weekends were not always easy: as a working mother with 2 kids, there are always plenty of other things to be done (even with the benefit of a super supportive and helpful husband), but the weekends were my saving grace this year.

The other thing that I couldn’t have done without were the Monday night write-ins that I hosted. As host, I did little more than declare a time and place, bring a power strip and extension cable, try to find seating for everyone, and run the sprints. A sprint is a 20-25 minute timespan where everyone in the group stops talking and writes as hard and as fast as they can. Calling sprints was actually more delicate than one would think: I had to search for lulls in conversations, keep track of people ordering at the counter, and wait for people who had disappeared to use the facilities. The write-in nights (again, aided and abetted by a husband who kept the household running perfectly well without me) were as productive as weekends, yielding roughly another 2.5k.

The best thing about the write-ins was that a core group of 6-8 of us really clicked and came to enjoy each others’ company enough that we’re extending the group year round. I have always been secretive and humble about my identity as a “hobby novelist.” I found that the write-in was a turning point for me and a safe place to declare my avocation as a writer among other writers. I’m not ashamed that I have no ambition for publishing beyond writing a $.99 trilogy to post on Amazon for my family & friends to read and the people in my group don’t look down on that like some groups might (I’ve heard rumors and seen posts on the forum from more “ambitious” groups).

When we started bandying around the idea of going year round, I moved things forward by posting a “baseline proposal” to the regional forum. I proposed a loose association with no agenda and no rules and no requirements (no forced beta-reading and critiquing homework) other than caring about writing and being in the company of other writers. I proposed we continue our day and hours and asked for feedback and counter-proposals. No one had anything to say except “that sounds good!”

We did, several days later, have a post from a woman who lamented that her work schedule had kept her from attending the write-in and she regretted that she would now miss the year round group. So we’re adapting (adaptability was part of my baseline proposal) and trying a Tuesday, with the intent of alternating Mondays and Tuesdays. We had her pick a Tuesday date to meet and greet and even with the holidays impinging on everyone’s schedule, it looks like most of us will make it, so she can decide if she “likes” us and wants to keep coming. I read her profile and she seems like a nice, interesting person. Her avatar shows her holding a cat. Seems like a good fit and the more the merrier—I believe that critical mass is the key to a vivacious and sustainable group and was the secret ingredient to our successful write-ins.

Having the promise of a year round group helps ameliorate the post-NaNo blues a bit but not as much as I would like. I don’t like deadlines as a rule, especially when the work is unpredictable. But NaNo is very different: the goal is clear and simple, with no last-minute surprises. It’s a race between your imagination and the clock and it’s highly motivating, especially when you’ve spread the news around about what you’re trying to accomplish. When it’s over and the pressure’s off, I feel adrift for a while, uncertain to do with my new-found free time, even though I’m a year round novelist and have at least three “after hours” projects I need to work on, but I can’t muster the motivation for a while: there’s a little bit of NaNo burnout.

I’m looking forward to when the blues and the burnout are behind me and I can again turn my mind toward mentally-demanding projects (outside of work) once again. For now, I can’t even read or watch simple action movies. Luckily the holidays are rapidly approaching and will occupy my mind and by the time January comes around again, I should be ready to be swept up in New Year’s optimism (which is mostly relief that the holidays are over) and get back to my beloved “life of the mind.”

What’ve I Been Up To Lately?

I always feel like the stretch between the time the kids start school in September to the end of the year goes by like rolling down a flight of stairs: fast and bumpy. So what’ve I been up to lately?

1: Most important, though not necessarily the biggest time-sink has been keeping the kids on track at school. Cron Family Study Hall? Actually a big success! My eldest’s progress report came home with fantastic grades, an order of magnitude better than last year. We are so proud and I’m glad I took charge and laid out a system that works.

2: Probably the biggest time-sink is this beautiful creature:Clover

I love her dearly and she’s been a great addition to the family. However, at six months old she’s still very curious (which encompasses both “destructive” and “wants to eat things that will require stomach surgery”). She takes a lot of time and energy to train and treat properly. Lots of discipline required (on my part), like never, ever getting to sleep in again because she needs to “use the facilities” and be fed at the same time every morning.

3: November gives me a special dispensation from doing just about anything beyond the bare minimum to survive. November is National Novel Writing Month. The goal is to write a 50,000 word novel in 30 days. Why? Because it’s a fun challenge! It requires self-discipline, writing at least 1,667 words of creative narrative every single day for 30 days straight. 1.6k may not sound like a lot, but when you’ve got writer’s block and a ticking clock, it gets tense pretty quickly.NaNoWriMo

This year, I’ve taken on the extra responsibility of hosting a write-in, where fellow WriMos in your neighborhood gather in a local bar or coffeeshop and your behest and write in “word sprints,” writing as hard as you can for about 25 minutes at a time. Then you break, chat, drink, and get ready for the next sprint.

Sprinting in Seattle is hilarious because we are all so “Seattle-polite.” If I ask people if they are ready to start another sprint, they all look shyly at their keyboards and murmur noncommittally. Luckily I have an abettor (a non-native) whom I can shout down the table at and ask if she is ready. She will actually answer me. But most of it is monitoring who went to the bathroom, who’s at the counter waiting for their latte, and the ebb and flow of conversation before ordering the next sprint. For all their chatting and elbow-rubbing, sprinting for three hours can get you well above the required daily word count, so it’s very rewarding to run the write-in and not only soar above the goal myself, but to get other people soaring too.

4: Reading. I binge-read so many books about teenage development and learning disabilities that I had to force myself to alternate one fiction book for each non-fiction book. On one book, I took 15 pages of notes, which I then forced my son and husband to review with me over the course of two weekends.

5: OMG, d3! I finally got the opportunity to start something new at work: data mining, data visualization, and (to make visualizations), d3. It may not be the best tool out there and the learning curve is deliciously hard (which is terrible because we need this data out fast-fast-fast to protect our revenue stream). I’ve got books in my Amazon wishlist about the underlying theory of data visualization and I’m looking forward to my self-taught course and getting enough solid theory under my belt that I can make a coherent presentation to my co-workers as well as actually build cogent and useful visualizations.

6: Beer! So I finally got to go on a date with my husband. The first in probably 6 months to a year. We went to a place called Brouwers where they have the best pommes frites and a beer list that’ll make your jaw drop. I’d been trying to take him there for the last five years, but the stars never aligned. Our waiter was an excellent beer sommelier and I drank probably the best beer of my life (I still love you, Hilliard’s Chrome Satan, but this was really, really good). I was never much of a beer (or alcohol in general) person, but this has ignited a great exploration of new-to-us beers. We usually split a can/bottle between us over dinner and it’s been a great bonding experience to sit and critique the beer, kind of like we would a movie. No, I have not seen any movies lately.

7: Sadly, I’ve been sleeping. Sleeping poorly, sleeping too long, missing out on hours of my life. It’s not every day, but it’s a lot of them. Once my husband had enough lonely evenings, he ordered me to the local Sleep Clinic, where we are in the long process of figuring out why I’m so damn tired. Fingers crossed that we find a problem and solution. I am hopeful.

Excuses, excuses, excuses. Luckily the NaNoWriMo forums introduced to me a software product that overlaps with the vision of my side-project and I was able to get feedback about what they like/don’t like about it and it’s helped to shape my vision of what I want to build. Using the software myself, I can see how it is like and yet unlike what I want to do. So at least I’ve been doing some corporate espionage and hopefully (since I did 60% of my Christmas shopping today) I’ll start laying down some simple user stories and some code to match. I’ve already got a use case for using a network data visualization, making everything come full-circle. Yay!

Family Week 2015 — Disneyland

I remember being flustered when I discovered that our son’s new preschool/daycare closed during the week before Labor Day. And so that week became “Family Week”–the week to which our annual vacation was inevitably pinned. For the last ten years, Family Week has been the same week every year, closing out the summer, even after both kids were out of preschool.

But this year was our last, as next year our son begins high school and we’ll have to be at home that week because of jazz ensemble auditions. I know it’s just a week and any other week will suffice, but I have to confess I’m a little teary over the demise of Family Week because it means my son is growing up and his high school experience outweighs tradition.

Last year we went to southern California. We took Amtrak’s Coast Starlight from Seattle to LA for an entirely new experience. We stayed in and explored downtown LA before renting a car and driving down to San Diego and staying there for a while. We drove right past Disneyland and didn’t blink an eye. However, we booked reservations for Disneyland the week after we got home.

Why Disneyland? For me especially, it’s a family tradition. As a child, my mother lived in a household of modest means in northern California. She was able to watch the media excitement on television, but actually going was far, far out of her reach. Until my Dad swept her off her feet and took her.

As a family of four, we went when I was three–a visit I dreamed about for the next several years. Then, as a young family, it was out of our reach until I was nine and my Mom was pregnant with my younger sister. Then again it was out of reach until my sister was three or four and my mother started working part-time, which gave us enough spare cash to go for epic vacations, so we went for a few years in a row as a family of five: my brother, the eldest by four years, me, and my sister, the youngest by ten years. We had great fun and it was a great equalizer between us siblings.

And so now I inflict the blazing heat, aggressive strollers, and long lines on my family at regular intervals. This time we made an effort to do things a little differently than usual: to take a more mellow pace and to deliberately do things we typically don’t see.

Things We Splurged On:

  • A “Club Level” room at the Disneyland Hotel.
    • You don’t stand in the regular line to check in. You go to the Guest Services desk and a host/hostess will whisk you up to the “E-Ticket Lounge” where the cast member behind the desk will check you in quickly while you have the luxury of sitting in a chair.
    • You get access to the “E-Ticket Lounge”
      •  There is a continental breakfast every morning starting at 6:30 am. Don’t get too excited: there’s no eggs or breakfast meat or waffler. It’s a minimalistic repast. But it’s enough to get you started in the morning so you don’t enter the park with a growling stomach. The coffee is decent, there’s a fridge full of soda, and free water bottles on request.
      • There is a lovely view of the fireworks. They dim the lights and pipe the music in (this can be a plus or minus, depending).
      • In the evening, they’ll serve you a glass of wine, if you’re into that.
    • You get the possibility of a room with 2 queen beds and a sofa that folds into a daybed.
      • With a 13-year-old boy and a 7-year-old girl, I’m not going to make them sleep in the same bed. That’s kind of weird. This means that one of the kids usually ends up sleeping on the floor in a sleeping bag. Pure luxury this trip: my 7-year-old enjoyed curling up on the daybed in her sleeping bag.
  • Preferred viewing for both Fantasmic and World of Color
    • Okay, you still have to arrive an hour early, but you get a lot more for that hour.
    • We splurged not only on the preferred viewing, but the *best* preferred viewing. Spending on the most expensive package really did result in the best front-line viewing.
  • Buffet meals
    • The Disney buffets are also (without exception, I believe) “Character Dining,” where costumed characters will interrupt you for small talk and photo ops roughly every ten to fifteen minutes. This may be a plus or minus. I didn’t mind it, but it wasn’t a real plus for me.
    • The food is actually good not just for a buffet, but constantly refreshed and better than any of the middling options in the parks, not just the fast-food.
    • Great for picky eaters.
    • Can be quite fast if you’re a quick eater and you make reservations.
  • A half-day cabana rental at the pool
    • The kids swam over the course of four hours while my husband and I had front row seating, so we could keep an eye on them. (Which was only marginally necessarily, given the hotel’s generous life guard staffing).
    • We had reserved poolside seating in a place where it was extremely hard to come by any seating at all. On other days, we were relegated to piling our gear on the ground at the edge of the landscaping.
    • We had a nice, deep dark tent so our pale, Pacific Northwest skin could be protected from the sun at intervals.
    • We took a half-day off, had drinks delivered poolside, and had a late lunch/early dinner as we relaxed. We did this refresher at the exact mid-point of our trip, giving us a boost for the last half.
  • We boarded the cats as well as the dog. Last year, we left the cats at home with extra food and water, but I still couldn’t stop worrying about them.
  • Booking a car to drive us to and from the airport. It’s so nice not to have to drive that it outweighs the inconvenience of toting our daughter’s booster seat around. (The booster can be checked for free.)

Things I Regret

Not much, actually. But there are a few things that could have been better.

  • This was out of our control, but my son’s braces developed some kind of loose bracket or poking wire (he was not articulate about the problem) and he spent most of the time looking morose because smiling hurt. I could never tell if he was having a good time or not.
  • The kids were acting extremely camera shy at a time when I was trying to gather photos of them for their grandparents.
  • Not switching from sandals to running shoes earlier in the trip.
  • Booking Goofy’s Kitchen once for dinner at the beginning of the trip and again for breakfast on the last day. They serve almost the same food at each meal and the characters and character entertainment are exactly the same. I should have booked Storyteller’s for our last breakfast. Their buffet is perfectly good and we would have had different characters and different character entertainment. Plus, Storyteller’s is a little easier on the eyes, which I needed after a week.
  • Not having earplugs for shows and parades. Seriously, I think my hearing will never be the same. Along with good seats comes LOUD NOISE.
  • I missed going on Small World, Winnie the Pooh, Peter Pan, and only did Splash Mountain once and didn’t get wet at all. :( My seven-year-old was mostly interested in the Matterhorn and Big Thunder Mountain for the most part and my thirteen-year-old, while generally easy going and willing to humor me, would not humor me that far.

Hyper-Optimizations I Enjoy

I confess, I like planning. Considering we booked a year in advance, I had a lot of time to “hyper-optimize.” Here are a few of my favorite things:

  • My spreadsheet. I have a spreadsheet that I duplicate from the last trip to the next. I then run through it and tweak it for the next trip. It has tabs for a wide variety of things, from the toiletries checklist to the list of tasks to do the weekend before we leave.
  • Making reservations as soon as possible. At the time we made this trip, one could make dining reservations sixty days in advance and cabana rentals ten days in advance. I didn’t call on the very first day possible and paid the price: I had a very limited selection of times, especially for the Fantasmic and World of Color packages.
  • Duplicating and packing toiletries roughly a month ahead of time. Duplicating toiletries allows you to pack them early and not at the last minute. No forgotten deodorant at 4 o’clock in the morning. When we come back, the toiletries just become the next in line to be used when the originals run out.
  • Disposable toothbrushes. I buy the cheapest pack of toothbrushes I can find and then, the morning we leave, have everyone brush their teeth and then dump them in the garbage. I don’t take them home. I started this habit after finding out that after you put wet toothbrushes together in a ziploc bag, you don’t really want to use them again.

Unlike last year, we’re now adrift, uncertain of what we will do for next year or even when we’ll do it. The kids are at such different stages that it’s hard to come up with something everyone will get something out of. We’d thought about doing the Smithsonian museums, but our daughter would never stand still long enough for us to enjoy anything. Our sister-in-law assures us New York is fabulous, but it intimidates me. I want to do a “small cruise,” but again that seems like an “empty nester” sort of thing, as does anything out-of-country. And so we meet soon to discuss what everyone wants and to balance everyone’s needs–because I’ve totally got to make reservations soon.

Wash, Rinse, Repeat, Stopwatch: the Jenkins edition

It took me two evenings to bend Jenkins to my will. If you count them all, it took three evenings, but I’m not going to count that middle day where I went to bed right after dinner and had nightmares until I got up at 6AM.

The first day was fairly straightforward. I tried to blow away Jenkins on my machine to “Wash, Rinse, Repeat” and clear away the minimum that I had done in setting up the project. You know, the easy things: create the project, hook it to the source repo…not much, really. Jenkins uninstalled but it left a shadow of itself behind, which made setting it up all over again not at all instructive except to verify that my notes were correct. Yay?

So on that first day, I re-established the project, checked my notes, and then decided that, in the time left to me before bed, I wanted to get the pretty test coverage that I’d gotten with JaCoCo when I’d been playing with Java and Spring several months back.

My notes go something like this: “Add NUnit as Build Step -> “Execute Win Batch Cmd” “Blah\bin\nunit-console.exe” Okay, this was me telling Jenkins to roll in and execute NUnit on my code. Which took a weirdly long amount of time, mostly because I was tired and transcribing paths letter by letter between windows and most of the trouble was finding the right paths to things.

Turn the page and my notes are simply: “Aaargh.”

The next day, I came home, went to bed immediately after dinner and slept like the dead. If the dead had nightmares.

Today, I was determined to get the “pretty” test coverage–that gorgeous line-by-line report pointing to the exact spot you missed. My husband tried to encourage me to give up Jenkins for Team City (and yes, when I feel confident with Jenkins, I will abandon it and move on to Team City), because he said that what I was trying to do was too hard: there aren’t a lot of good free options in the .NET realm for code coverage.

The only real player that I found in the code coverage space that had a decent maintenance record was OpenCover. Don’t get me wrong. OpenCover works (once you get the right arguments–looking at you, “-register:user”) but it took a while staring at examples to realize exactly how to wrap OpenCover’s .exe around NUnit’s .exe and plug input A into output B and basically roll it up like a katamari. And, lo-and-behold, it worked (thank you, console output, for proving that I was making progress).

OpenCover generates an XML file and not anything a human would want to read, let alone look at or study. It’s data, not information. So, on to finding an additional tool that would allow me to get the line-by-line coverage. Welcome ReportGeneratorto the mix. We use the output from OpenCover as the input to ReportGenerator. And after rebuilding and refreshing, there it was: SUCCESS, line-by-line coverage in glorious pale green.

Now, I’m looking at my notes and thinking: these notes from today aren’t very good. I didn’t actually copy down the final batch commands. I just alluded to them, as I have here. But then I think that’s all for the best if my next nightly goal is to figure out how to both uninstall Jenkins and banish its ghost so I can truly work from scratch as I intend.

So, next goal: learn how to thoroughly murder Jenkins so it can be resurrected cleanly.