2014.12.31 – Apparently Hell Has Frozen Over

I was kind of dragging this morning. Sort of feeling like I might be getting a cold but maybe just over tired. Once I was up and showered I felt fine though so maybe it was nothing. I got to work early as usual and as always Helen was there already. She is so nice. I am going to miss everyone when I’m done in just one short week.

I started reading over some of the other suggested things in our bug pack to see what I could work on next and got really involved in reading all about actions and how they work. So far I have learned that they are confusing! I asked Mele a few questions about them and she updated our main ticket so it had more information. She also gave me a few tips and said to ask her about anything that I didn’t understand.

Once I saw that Adam was in I asked if he’d take a peek at my PR from yesterday. I was pretty excited to get to merge it in and already had a +1 from Mele. He looked it over but had comments on a few things. A couple were trivial, a few were fine once we talked about them but one really had me confused. It was of course related to Unicode.

I don’t know if I can explain this because I don’t think I fully understand it but in Python 2.* str could be used for text and binary data. Python 2s unicode type became str in Python 3, str became bytes, and basestring was removed. So in 3 all strings are Unicode and 3 will never implicitly convert from strings to bytes and bytes to strings. If one is unsure what type of data they are dealing with things will probably break. Any string literal that should be treated as bytes should have the b prefix so Python 3 knows it is not dealing with a text string. Any string literal that should be Unicode/text in Python 2 should have the u literal prefix. Got that?

Aaaaaaaanyway, I had changed all basestring references to str since basestring went away. All was happy with my tests but since I don’t understand wtf is going on with all of these bytes and blah, blah, blah I did not get that now Python 2.* would puke if explicitly given some unicode (by prefixing the string with u) because str only accepts strings or bytes. Yeah. So I went searching for a way to deal with this but Adam has been doing this forever so found the solution in 2.5 seconds. I probably wouldn’t have known if I had found a solution or not so this was excellent. Once I looked at what he sent it made so much sense. I needed to check for the Python version first and then set a variable (string_type) to be either str or basestring. I got that all fixed up but really hated the syntax of the line I was working with. It was:

if isinstance(alert, string_type) or isinstance(alert, int):

But that seemed repetitive so I tried:

if isinstance(alert, (string_type, int)):

It was just a tiny change but I figured it out myself and it worked. Adam checked it out and gave me my next +1 so I was able to merge it in! That felt amazing.

While he was looking at stuff he noticed an issue with a docstring that would error while running doctests. We hadn’t been running them and they weren’t part of the SOP so I didn’t even think about it. Since I was done with my other ticket I took on fixing the docstring issue and setting up nose to run doctest automatically.

Doctest is kind of interesting. You can create docstrings in Python and they will be displayed when you type help (function) on the command line. They can also be used by reStructuredText Files which are used to create documentation. I’m sure I’m not explaining this clearly but it’s pretty nifty.

When I first ran doctest I got this ridiculous error – something, something, invalid Blackberry PIN – wha?? Holy crap, that was a live test! What the….I suspected doctest was accessing my test scripts that were in the top level directory but were in NO way named test anything. I had no idea that could happen but I moved all of my scripts and sure enough that was it. Good. To. Know.

That seemed pretty smart of doctest but now my errors were related to the tests it was running against dictionaries. Dictionaries are key:value pairs but are returned in no particular order. Doctest doesn’t like this so sometimes the tests pass but sometimes they don’t. That wouldn’t work. Now doctest didn’t seem very smart at all. I searched around and I guess the fix was really worse than just skipping the tests because it made the documentation difficult to read. The functionality was being tested in nose anyway so I think skipping them will be ok. I’ll find out Friday I guess.

I had my weekly 1-on-1 with Mele and told her how much I have loved being at Urban Airship and how much I am going to miss it. I really like all of the people. everyone has been so helpful and I have learned a TON. I’ve still got another week so I plan on making the most of it.

Partway through the day I could tell I was getting a cold for sure. We were supposed to spend New Year’s Eve playing games with Dale, Miri, Kronda and Jess but Jess messaged to say she had a cold. Well we both figured we shouldn’t go infect everyone so game night got postponed.

We decided to order pizza from Handsome Pizza even though BUDGET! because it is their very last night in that location. I am so sad! I’ll find them wherever they go though. Wayne picked me up and all I wanted to do was change into pajamas and sit by the fire. There was a nice one burning when we got home so I curled up on the couch until pizza was ready, ate and went right back to the couch.

Oh right, I nearly forgot about the title of this post. It’s actually, for real, sticking to the ground, snowing in Lake Havasu City, Arizona! I lived there for 25 years and it NEVER ever snowed. Friends were sending me pictures all day.

Today I learned about mojibake. Read it, it’s interesting.

2014.12.29 – Rookie Mistakes

Back to work for me! I’m so thankful and also bummed that this job thing will be ending soon. It’s been nice to have an office to go to each day, to be accepted as part of the team, to learn a ton in a short amount of time, and to have a paycheck!

It’s another short week this week so I’ve been trying to make up for it by working longer days. I don’t mind though because it’s a comfortable place to be. Mele was out sick so we wouldn’t be having our 1-on-1 today. I jumped back in to trying to figure out this stupid Python thing but I was not getting anywhere. I finally caved and messaged Adam. I told him I was frustrated and he said my frustration earned me a hint. Excellent! But when I got his hint it was something I had already tried. Huh. Doh! I had fixed the issue but didn’t know it because before the change I had six failing tests but afterward I had twenty-three failing tests. That just couldn’t be good right? Well it was great because it fixed the main issue hiding the twenty-three (ok not really that many since one change can fix several tests) others. Ugh, I felt as though I had wasted a ton of time.

I was back on track though and was able to work through the other issues until I only had ten failing tests. The error I was getting was:

TypeError: Can't convert 'bytes' object to str implicitly

Soooooo I spent the next several hours trying to figure out why this was happening and what I needed to change. I learned a tiny bit about Unicode, bytes, bytestrings, strings, characters, utf-* encoding and decoding but nothing that lead me to a particular solution for this problem. I changed code many, many times but nothing really helped. Bleh!

After a decent amount of time screwing with it Adam happened to walk into the hangar. I gave him the “I need help” look, whatever that is. Apparently he knew because he came over and sat down with me. Of course he was pretty quickly able to see that I was trying to fix the code in the API but what I needed to be fixing was the data the test was passing to it! Wow, two strikes for me. He explained how Python 3 handled strings and bytes and I tried my hardest to understand but I’m still on shaky ground there for sure.

Anyway, he showed me what I needed to change in my test. I was passing in a string but had to explicitly state that it was a string containing bytes by prefixing it with a ‘b’. Yeah, I read that a bajillion times in my research but what the hell does that mean?? Something about a ‘b’ and a ‘u’ but don’t use the ‘u’ but wait you can use the ‘u’ again. I still don’t completely know wtf is going on. Whatever, it fixed three tests.

I was down to seven failing but couldn’t get it figured out by the time I was getting picked up and I was NOT going to ask Adam for help three times in one day! On a positive note I was able to help Amanda a bit with her code so that was good. All in all it was a good day filled with learning, frustration, and tea but mostly frustration πŸ™‚

Wayne was making burritos for dinner. Yum! His beans are the best. After dinner Andrew sat down with me and tried his best to explain Unicode, strings, byte literals, encoding, decoding and I don’t even know what else but it made enough sense that I was able to fix my remaining tests and they all pass in both versions of Python! Time for something mindless…..

Today I learned that Unicode is hard. This guy isn’t thrilled with Python 3 and Unicode.

2014.12.28 – Budgeting All Day

I woke up to another day of working on the budget with Andrew. It’s soooooo tedious! Wayne, Jordan and Natale got ready and went to retrieve more firewood from the neighbor. Lauren and Sean went along as well.

They made a few trips and we invested hours into parsing and categorizing data. It sucked but finally it was time for lunch so I made some sandwiches while Andrew kept at it. The wood gatherers returned and were really hungry as well so I made sandwiches for everyone.

As we were finishing up lunch yet another person posted free firewood. They were very close and this wood was cut and seasoned! Wayne and Jordan took off to get it in spite of being ridiculously sore. What good guys! Andrew and I went back to the stupid budget. We got it all pretty much figured out except for January – April. Hmmm…we were missing bank statements but that’s when we switched our checking account to a trust account. Well crap! I would just have to call the bank on Monday and hope they have the data somewhere.

Wayne and Jordan came back with another truck full of wood. As they were just finishing up stacking it, Spencer messaged to say they were about five minutes from home. They were back from their trip to Arizona and needed some help unloading their trailer. Off Wayne and Jordan went to help! Those poor guys. Wayne did let me know that we are set for wood for next winter though πŸ™‚

I had decided to make minestrone soup and bread sticks for dinner so I got the dough rising while the guys were gone. Wayne called and asked me for a list so he could stop at the store and get the other things I needed. They got home pretty quickly and I got dinner going while they showered and relaxed with a well deserved beer.

Dinner was delicious! I am not sure if I’ve ever made minestrone soup before but it was really easy. I used a pizza dough recipe for the bread sticks and they were a little light to me so I’ll try a different recipe next time. We all ate far too much food.

Dinner was done and it was time for me to head to a quiet spot so I could take a phone call. Erica Melzer from Lady Loves Tech wanted to interview me about the Ascend Project and learning to code as a woman and mom. We had a great talk and I hope we can meet up one of these days.

It was getting late but we still needed to sit down together and talk about our spending habits, what we could change, and what each of us needs in order to feel happy. I mentioned the things I knew I could do and the guys thought they were reasonable. We all agreed that we need to stop eating out. That will be a tough one to do here in Portland with so much good food! Wayne doesn’t really ask for much at all so he was just going to try and be more frugal with grocery shopping. Andrew said he would be more particular about gadget purchases and would maybe just go downtown one day per week. Wayne and I said we were happy and didn’t need more time off but Andrew definitely needs more down time so we need to figure out how to schedule some of that for him on a regular basis.

Today I learned that it’s more complicated to record a phone call than I had imagined.

2014.12.27 – Saturday Feels Like Sunday

I had to get up earlyish and get my hair cut and colored. I love getting my stupid grey hair covered up. It looks great on Wayne but I’m not ready for it at all. Maybe because Andrew looks so young. People already think I’m his mom! It’s ridiculous.

After my haircut I went over to Whole Foods to get our neighbor, Glenn, a birthday card. While I was there I grabbed several things I didn’t even know I needed and of course they were all heavy. At least I grabbed a hand basket this time.

I came home and had a quick breakfast before settling in to work a few hours. I spent the entire time reading different opinions and methods of maintaining the same code base in both Python 2 and 3. This feels like the ticket that will never end and I’m pretty sure I’m over thinking its simplicity.

After I was done working, Andrew and I sat down to do a budget. Bleh, our favorite thing ever….I grabbed data from the various sources and all of them are in really shitty formats. Do they not even think about how people might need to use this data? I guess not. We spent HOURS parsing the data and getting things all categorized. We didn’t even get to the part where we come up with a budget for next year. This all should help with upcoming taxes though so that will be nice. I’d like to say I will just update the budget data every month next year but I already know that won’t happen.

Meanwhile someone posted more free firewood on Nextdoor. This time it was just sitting out for anyone to come and grab so time was of the essence. Of course Wayne was horribly sore from his full day of moving firewood but he’s awesome and hopped in the truck to go get more. There were other people there already with a big truck and four men but as is typical of Portland they shared with him.

We decided on an easy dinner of mac n’ cheeze, mixed veggies and bread. It’s just one of those meals I ate a lot as a kid and will probably always love. After dinner it was back to the budget. I’m excited to do better next year and am looking forward to coming up with a plan to save some money. Certain expenses are not negotiable though like food for Dinner Night! I have been thinking about small changes I can make though like:

  • No new tea until I drink what I have.
  • Not buying ANY books. I have a huge pile I haven’t read and libraries exist for a reason.
  • Packing a lunch or going hungry if I forget. I probably won’t forget πŸ™‚
  • No buying things on a whim just to try (like those things they sample at New Seasons.)
  • Figuring out what to cook at home instead of eating out.
  • Only buying things I need and taking 24 hours to consider the purchase of something I would like to have.

It’s a start but we’ll have a firmer plan tomorrow hopefully.

Today I learned that I can upload my DNA profile to GEDMatch and compare it with distant relatives. Neat!

2014.12.26 – Pizza Friday

I slept in really late considering how early I went to be the night before. It felt great though. I got up, showered and dressed so I could get a half day of work in. Andrew was planning to do the same. I was going to have a healthy breakfast but chose some chocolate chip cookies instead. They were delicious!

I logged on to my work laptop and started reading about Python 2 and 3 compatibility. Soon after, someone posted free firewood on Nextdoor. We are always looking to take leftovers of someone’s recent tree removal but free firewood goes really fast. I messaged immediately and I was first. She had a really old walnut tree that was all cut down and sectioned. Perfect! I asked Wayne if he wanted it and he did for sure. I messaged Taylor to see what he was doing and if he would bring his truck and come help. He agreed.

Dave messaged me about this time to let me know he was on his way over. I wasn’t sure if we were going to hang out today or Saturday but I guess it was today. I definitely wouldn’t be able to help with the firewood. Wayne and the boys headed over there though and worked all day loading it and bringing truckloads home.

Dave and I went to City Liquidators because he had never been. Everyone needs to experience it at least once though! He thought it was “interesting” πŸ™‚ I told him that Alice says to make sure one knows where all exits and fire extinguishers are located because that place is just a tragedy waiting to happen. I can’t really disagree!

We went to Lemongrass Thai for lunch. Neither of us had ever been but he heard great things about it. It’s in a wonderful old house. We both ordered and I asked for my food with a bit of spice. Dave said he wanted his very spicy and the man said, “We have heat levels from 1-10. 3 is the hottest you can get anywhere else in Portland.” Dave asked for a 3.

Our food came and Dave took a bite of his. He said it was HOT. Not too hot but almost as hot as the food Andrew gets from Chez Dodo. That’s pretty hot. Our food was wonderful. I definitely want to take Andrew and see if he can handle a 4. I’ve never seen him react in a painful way to spicy food so this will be interesting.

After lunch Dave and I went to Eastside Deli near our house to get sandwiches for my hard working guys. They make quite a substantial sandwich but I got them all 12″ subs because I figured they worked up quite an appetite. They thought the same but none of them could eat more than half.

I got back to work while they ate and worked until about 20:00. That was more than a half day for sure but I felt no further along with this Python 2/3 thing at all. Ugh! I’m going to have to ask for help and I don’t want to!

Since our main chef was completely exhausted we decided to get Handsome Pizza for dinner. I love ordering and just being completely surprised at how they decide to make it. I will sure miss them when they move! Wednesday is their last day πŸ™

Our pizzas were yummy! One was red sauce topped with onions, spicy peppers and kale. The other had kale, pumpkin seeds and butternut squash sauce. We ate quickly and Andrew made popcorn to take across the street. Yep another movie. That Alice is a bad influence I tell ya! We watched Saving Mr. Banks. It was really good. I’m not a fan of Walt Disney at all but the story, although mostly fiction, about P.L. Travers was great so I focused on that.

Today I learned that P.L. Travers was originally from Australia and according to her grandchildren “died loving no one and with no one loving her.”

2014.12.25 – Christmas 2014

We all wanted to sleep in but Jayde is 12 and is the last one in the house to still be ridiculously excited about Christmas. Needless to say, we were up at 08:00 so we could start breakfast and be ready when everyone started showing up at 09:00. I planned to make sourdough pancakes (my sourdough starter is over a year old!) and hashed browns. Alice brought some vegan sausage patties to add to the meal.

Jayde said she was too excited to eat and just wanted everyone to show up so we could open presents. Taylor and Delaney were running late, Natale would not get up, Lauren and Sean were MIA so Jayde was freaking out.

Everyone finally got all gathered together but it was close to 10:00. Finally presents! I’m not even going to list what everyone got but it was nice and everyone seemed pleased. We cleaned up the mess and proceeded to do a lot of nothing for the rest of the day. We watched The Interview (stupid), Radio Flyer (sad), Never Ending Story 3 (meh), and Christmas Vacation (same as always). In the middle of all of the movie watching I made some chocolate chip cookies. They were yum!

Wayne made spaghetti and meatballs for dinner and everyone came back to eat. We had a nice table full of people and talked about what a great day we all had together. I went to bed early after such an exhausting day πŸ™‚

Today I learned that rice milk isn’t a great substitute for soy milk in pancakes.

2014.12.24 – Christmas Eve

I don’t often dream but when I do it’s exciting! It’s not really exciting. I dreamed a lot about how to make the UA Python library compatible with Python 2 and 3. I totally solved it in my dream but upon waking I realized it would never work. Oh well.

Andrew was going to work for half of the day and then we were going to go get a last minute gift and hit the grocery store. I did a little bill paying and it felt nice to have that out of the way. I grabbed my tea and headed across the street to Joanne’s house. She’s another wonderful neighbor who is going through a really rough time managing her husband who has dementia. I’ve been a terrible friend and neighbor and haven’t really seen her much. She had just finished baking some pie and cheesecake so we sat in the kitchen and caught up. I stayed until it was lunch time and promised I wouldn’t be such a stranger.

I watched the second episode of season one of Grimm and wow, some of the acting is just awful! Luckily the terrible actor’s characters get killed off. Kronda says it gets better so I’m going to keep watching, besides it’s lots of fun to see Portland in a tv show.

Andrew finished up so he, Wayne, and I headed downtown to get a gift certificate for one of our children. I had a difficult time shopping for him this year but I think he will like the store we picked and he will be able to choose something unique. We tried to eat at a Mexican place I had passed several times but it was closed. Oh well, guess it’s Los Gorditos again. We drove over there and saw the open sign so quickly found parking, walked up and they were closed πŸ™‚

Most everyone was closed as they should be on Christmas Eve. We needed stuff from the store so I suggested we just head to Whole Foods and get stuff from the hot bar and then grab the groceries we needed. That worked out really well. The store was busy but not ridiculous by any means. As we were heading home, Andrew messaged Alice to see if they were up for watching Die Hard, our traditional Christmas movie, and she said they were so we came home and wrapped all of the presents so that would be out of the way. Natale came home with Delaney. They had been to the pet store so he could pick out another frog. That was his gift from Taylor and her. He was so excited and now Walter will have a friend. I don’t know if frogs really give a shit about that but Walter didn’t seem to mind his new companion so that’s good at least.

Andrew made a huge bag of popcorn while I put on PJs and warmed up my hot bag thing. We wandered across the street and everyone got all situated in their fancy theater. We decided to watch the second Die Hard because we always watch the first one. I didn’t remember some of it but it was pretty typical Die Hard stuff. I was surprised at how much they said ‘fuck’ in the movie. It was a lot!

When we got home I filled the stockings with silly crap and thought about our former Christmas Eve traditions in Arizona. Usually Andrew and I would head down to Walgreens around midnight and buy stocking stuffers. Our Walgreens was open 24/7 so it was not a problem. We’d then go by an former neighbor’s house and sneak an ornament onto their porch. It was something I did when we lived next door to them and we just kept doing it as we moved around. I don’t even know if they still lived there after several years of doing this. Those traditions are gone now but they are being replaced with new, wonderful ones like watching Die Hard with our neighbors.

Today I learned that Justin Timberlake likes to shop at the store where we bought the gift certificate. This isn’t important to me but our son will think it’s great.

2014.12.23 – Friday on a Tuesday

I was up early again to try and get in another ten hours. The office was soooooo quiet since Christmas is right around the corner. I didn’t have a ticket to work on right then because the only one left is to make the library compatible with Python 3 and Amanda wants to do that one together. She’s still working on her ticket though and it looks like it will be a while before she’s done.

I poured some tea and got busy on figuring out how to run multiple virtual environments in the same directory so I could test with clean versions of both Pythons. It was ridiculously easy to set this up so I didn’t have much else to do. I grabbed my tea, laptop and headphones and headed for the Hangar, the nice big room with couches and chairs, and planted myself on a comfy couch. I decided to read all about various ways and methodologies regarding Python 2 and 3 compatibility. Do I port? Should I use a tool like 2to3? I want to keep it all in one package so there is only one thing to maintain but is this possible? So much to figure out. I read a lot, lot, lot but didn’t really figure out the best way to go.

Amanda and I walked down to Tilt to grab lunch. They have a veggie burger that is pretty tasty. Barbara met us there so we caught up on how her Mozilla OP internship is going. She seemed happy with things. I’d be able to talk to her more once I’m back at Mozilla in January.

We headed back to work and talked about work stuff while we ate. Lisa, the data scientist, came in and joined us and told us what she is going to be doing at UA. She’s only been there for two weeks. Her job sounds very interesting though. Lots of data and lots of science πŸ™‚

I started researching the compatibility issue again while Amanda chatted with Adam about her ticket. When they were done he asked me how things were going for me and I mentioned what I was working on. He had some suggestions and said that I definitely wanted to make the code compatible and keep it all in one code base. Alrighty then. He left and I started reading again. Within about 15-20 minutes he messaged me on Slack and said that he messed with it and that he thought it could easily be done with 5-6 lines of code changed and that he had one issue that gave him trouble but it was because it was so simple. He offered to tell me what it was as a hint but I said I’d like to figure it out myself and then ask him if I can’t. But he figured it out so fast! No pressure πŸ™‚

The day was winding up and everyone was leaving for their nice, long break. Wayne picked me up and we headed to the store to get stuff for dinner night. Spencer and John wouldn’t be there because they were on their way to Lake Havasu for the holidays. Kronda and Jess were coming though! They hadn’t been in several weeks and it was really nice that they were returning. Dale, Miri and the baby were coming too so I knew Kronda would get her baby holding fix. I made soyrizo mac and cheeze but with Beyond Meat crumbles instead of the soyrizo. It turned out ok but wasn’t as spicy or salty as I like it.

Dale and Miri brought their Chanukah menorah so we could celebrate the last night of Chanukah together. They also brought doughnuts because we were supposed to eat something fried in oil. Ok! I love doughnuts. We all got our baby holding time and had a really nice dinner. Tonight we had Kronda, Jess, Taylor, Delaney, Miri, Dale, baby Michael, Alice, her mom, Jason, Glenn, and the six of us.

Today I learned that it is really easy to run multiple versions of Python in their own environments.

2014.12.22 – Getting the Hang of Things

I went to work early this morning and would be staying late. I only have a four day work week and two of those days are weekends but I am trying to take advantage of this opportunity. Nobody was in the CE area when I got there but Helen showed up shortly after me. She’s always there nice and early. I worked on a different ticket until Mele came in so I could ask her about a few things before I PRd my current ticket.

She got in around 09:00 but had the morning stand-up meeting and then we had our 1-on-1. She said I was doing fine and that she might have to find more work for us to do since we were moving through stuff so quickly. Sounds good to me! She told me how she wanted me to proceed with writing tests for device feedback so I got busy figuring out how to make a date parser package optional while running the test. It wasn’t too difficult so I got everything saved, closed and pushed it up to Github. Mele and Brett both looked it over and had some things they wanted changed or reworded. I seem to have the most trouble with formatting of code and wording in the documentation. Mele keeps suggesting I try PyCharm as a Python IDE but I really love Vim. I’ll just have to read up on Pep8 styling and get better.

While they were reviewing my PR I worked on the other ticket which was to move a BlackBerry PIN lookup function to a different module. I moved it over, put it in its own class, wrote a script to test it but I needed a valid BlackBerry PIN. Not very many people use BlackBerry devices so my channel lookup requests didn’t help. Mele went in and registered a couple of fake device PINs for me though so I could send some curl requests and see what metadata the server sends back and in what format. I then wrote a script so I could actually test the code I wrote and then wrote a test. Once that was all done and happy, I wrote the documentation.

In the middle of all of that, Brett and Mele had some changes they wanted me to make to my PR so I submitted those and got my two +1s. Merged! I quickly submitted my other PR and miraculously didn’t have any formatting or wording issues. Mele did want me to change the class name but that was a quick fix and I had more +1s. Merged as well! That pretty much took care of all the tickets in our bug pack. Amanda was still working on one that was quite involved so my future would be reading about making the library Python 3 compatible.

I think I’m finally getting in the groove at Urban Airship. I understand the library we are working in and things are getting easier to figure out most of the time. Once we are done with the Python 3 ticket all of our new changes to the library will be merged in to the Urban Airship public repository.

It was a long but very productive day. Wayne picked me up and we headed to the store. I was starving and sooooooo tired. I just wanted dinner and then bed so we had yummy ravioli, sourdough bread and brussels sprouts. I made a hot cup of chamomile tea and tried to read my book but my legs did that stupid restless thing they do when I’m tired. So annoying!

Today I learnedΒ  that Mele will soon not be the only female engineering manager at UA.

2014.12.21 – Work and More Work

It’s Sunday but I’m trying to get my whole 40 hours this week even though we have three mandatory days off without pay. This internship is short term and it’s been nice having a paycheck so I’m trying to make the very most out of it. That being said, I was up, dressed and on my work laptop at 08:30.

This next ticket has me moving a feedback function from one file to another where it makes more sense. The function currently provides feedback for device tokens but I needed to also add support for APIDs so it seemed like the best thing to do was to put it in its own class and make a couple of methods for device token and APID feedback.

Knowing what should be done was easy. Knowing how to do it, not so much. I hope this is normal but it feels like each new ticket requires massive mental gymnastics. Some stuff is definitely easier but I still seem to progress fairly far with my code and then get stuck on something I can’t get beyond without help.

I did manage to get all of the code and tests written and made progress on the documentation although that is still quite the challenge for me. I have no idea the best way to word stuff. Oh well, I’ll get help with that tomorrow. I finished up at about 19:30 and went to help with dinner.

Lauren wanted tofu scramble, fried potatoes and vegan sausage breakfast burritos. I always make the scramble so I got that going while Wayne handled everything else. We ate dinner and then it was time to stop thinking. I read Red Mars until bedtime. I really need to finish that book!

Today I learned about Mock’s assert_called_with that I needed for a test.