Blog

Day 285: Break Day

Today was to be the break after Susie’s Mohs surgery yesterday. I woke about 5ish and thought I can sleep in a bit. I have a meeting that I have to do at nine that needs me, but I can sleep to 730ish.

Susie was ill. At 6ish she needed help and I had to help her walk and do some caregiving things. It was a difficult start. I also got Susie some Tylenol and ice packs for her face and back. So no sleeping-in today.

Susie rested until late morning. I managed my morning meetings and getting Susie breakfast and me my lunch. It was a bit chaotic, but all was well by 1ish.

I put on the animated movie Snow White, the original, on Disney+ for Susie. I fell asleep in the chair. Susie thought it funny to look over at her caregiver asleep in the chair. I just closed my eyes and before I know it Snow White is saved by Prince Charming!

Once I got going again, I headed out to Wholefoods. I wanted some snacks for Christmas Eve and I forgot milk and eggs last time (I remembered this time). I picked up some beers for the holiday: Duvel and Pilsner Urquell. I brought a case of Duvel back from Belgium years ago; it is a fav. I also was told years ago that the official glass for Urquell was often stolen and so you have to give a shoe to the bartender in some bars in Europe to order it. This prevents you from leaving with the expensive glass. I suspect it is a story told to Americans–but I always think about the story when I have a Urquell.

Wholefoods had 50% off of the price of Oregon Blue Cheese from the Rogue Creamery. In 2019 the world said that these folks made the best cheese in the world. We will celebrate Christmas Eve with a bit of their best. I bought the gouda imported from Holland. This is to remember Amsterdam. We spent last Christmas there. Then some locally made sausages and we are ready for the holiday evening!

I spent the afternoon doing laundry, dishes, making a small dinner (Chicken Cordon Blu from frozen with canned excellent peaches), and then getting out more cookies, chocolates, and all the other stuff. Susie’s mom, Leta, sent a box of cookies that Susie is into. I have Dondrea’s Christmas collection of goodies to consume.

Susie is back to her normal self this evening.

Moving to the next challenge, I also tried a no-knead recipe for bread from King Arthur Flour Company. I put in a tiny bit extra salt by accident, but I think that will not harm it. I have seen a lot of press on the no-knead bread. I thought it would be good to try it tonight. I will be up at 6ish to do the next steps.

I also started reworking my python chess program today. The original version was just more of a demo program than a usable game. Now I want to have it play a not-stupid game. That will require a bit of restructuring. I also want to use a genetic algorithm to help me find the best weighting factors. I need to save all the values for each move to have something to feed to a genetic process.

For this challenge, I need a few more hours of coding to get it cleaned-up and beyond a demo. I truly enjoy coding AI in Python. I always wanted to do genetic programming too. Maybe not your idea of fun, but for me, it is wonderful to play in AI.

Laundry stopped as, as usual, I ran out of laundry products on the same day I went shopping! I need some Bounce Sheets and the detergent is running low. I will try to slip-out between meetings. I checked my schedule and every last meeting has canceled for tomorrow. Hmmm.

3,401 deaths are reported from Covid-19 in the USA today. One of the worst days on record.

I found this really fun version of There’s a Song in the Air. I hope you like it.

 

 

 

 

Day 284: Susie Surgery 2020 Second Round

Today we got up a bit late and drove to Portland without issue to the dermatology folks to perform the second batch of Mohs surgery on Susie’s cancerous and precancerous skin issues on her back and nose. There is no waiting room in the world of Covid-19, so I drop Susie off and wait in the car in the parking lot.

This is a repeat of last week, and after 2021 starts, we have one more treatment on Susie’s legs. The surgery removes a minimum of skin. The margins are then checked there in the office, and if there is no cancer on the margins, then the surgery is finished, and careful stitches are done. Otherwise, another cut is made to widen the excision, and the margins are rechecked. Susie had a good day as the first excision had clear margins.

I drove Susie home, stopping by Burger King for burgers, Whopper Jr with just cheese for Susie with a shake, and a regular Whopper with cheese for me. Susie was exhausted, and so was I. We slept the afternoon away.

I got up and let Susie rest. I watched the movie Frozen 2 while Susie slept a while until the pain started-up. More Tylenol helped a bit. We did get out some frozen green beans as an ice pack for her. That helped her stop the pain, and she slept some more.

As an aside, while waiting in the car, I got out my Apple computer and worked on my chess program. I changed how the matrix that controls pawns again makes the pawns move more towards the center and the board’s end. I then played a few games against the program.

I had two hours waiting in the car, so I fixed a few issues with the looping control and an uncaught exception. The chess program played long enough without an exception that I got to try a castle. It worked! The program is finally moving some pawns. I did take the computer’s queen. There is a failure in the next move evaluation that undervalues taking a piece for an exchange. I will try to fix that.

The code that actually picks the move is about twenty lines long. I think it plays good chess for so few lines of code. It is using a simple evaluation function.

RISK_FACTOR: Loss of piece value
BOARD_FACTOR: Place on board value
PIECE_FACTOR: Value of pieces for exchange
BOARD_KING: Place on board value for King move
SUPPORT_FACTOR: Value of interlocking support
HOLD_FACTOR: Value of hold attack loss

These values are added together to make a score, and each is multiplied by a weighting factor. The move that has the highest value is selected, ties go to pawns.

To check that the move is not a disaster, a new board is dynamically created, and the move actually played and then checked not to trip the end of the game or other terrible loss, and it is scored. The dynamic board is then thrown away, and the game continues on the original board. The chessboard handling routines are all from the library Python-Chess! So easy!

The factors need to be tuned to make the gameplay better chess. The calculation is so fast that I may build a tree of possible plays and look for a better move over a few moves ahead.

It is relaxing to again be coding Artificial Intelligence. I have missed working on Python and AI.

Returning to the story, I ordered from Nonna Emilia Ristorante Italiano using DoorDash this evening. This is an old school American-Italian style food joint that has been in Beaverton forever. Corwin and I were a year ago with Susie in Amsterdam having dinner. We ordered dinner delivered here at the house and wished each other a happy holiday as we did in Amsterdam in 2019. We would have preferred another trip, but we are happy that all of us made it to tonight.

The food is too much and quite good for American-Italian. Salad, soup, garlic bread, and pasta mains. All good. Susie was not up to it; I will make her something when she is ready.

Susie was up a bit late, and I made her a late snack of some peanut butter toast with banana slices. The pain is gone tonight. She is so much better. I am off from Nike tomorrow and will do all the house chores that always slip. I will try to get some rest. These things are very stressful for the caregiver too.

3,376 people died from Covid-19 today in the USA.

Today’s song is a departure from hymns, The Dutch National Anthem. A thank you for Amsterdam 2019, and I hope to be back soon.

 

 

Day 283: Monday Winter Begins

Winter began today, today is the shortest day of 2020.

I started at 6ish and thought I had a 7 and rushed the morning to be ready. The early meetings, this being the Christmas week all canceled. We still have a go-live this Sunday, but the rest of Nike is ramping down as most sales are already locked in. Saturday will be a busy day for retail, but the rest of Nike will be mostly on Christmas and New Years’ break.

I had plenty of time, I discovered, to read email and make a small breakfast of coffee, banana, and a bagel with cream cheese.

More status meetings that ran over. I suddenly remembered it was Monday and 8:40, and I needed to rally Susie for her 9AM ride to her hair, nails, toes, etc., an appointment with Zerida again. I just focused on what I am doing for work, and suddenly I am rushing Susie.

Susie was not happy to be rushed, but it was her appointment. We just made it, and she was ready, taking her coffee in a paper cup I gave to her driver.

I had a few more status meetings after that. I also was reading some Python code to add a time-stamp and sequence number to files. Yes, I do a little Python for work too.

Lunch was ordered from Gyro House, open today, but not without some effort. I had, for fun, ordered a lunch delivered to Mom Wild in East Lansing, Michigan. As you can guess, I forgot to set back GrubHub to be local. I could not get Gyro House to deliver to East Lansing, Michigan. I finally saw I had the wrong address. When I returned to my Oregon address, I was able to order!

Lunch was a lamb gyro with soup. I usually give the soup to Susie or Corwin. There was a note written on the food box, “Happy Holidays to you too.” I always send a message when I order. Corwin had the soup for a late lunch.

The afternoon was a bit light, and I took a break. I returned for one more meeting in the afternoon. I was again looking at more Python for Nike.

As it was the shortest day of 2020, the sun appeared to vanish at 4:30. I went out to look for the stars. I witnessed Oregon’s side-ways rain and not the stars.

It is Monday night, time for my Dungeons and Dragon (D&D) group to meet online at 6:30PM using the Roll20 website software. I had five players and myself as Dungeon Master (DM). We were playing using Roll20 before Covid-19 on most Mondays. One player is in Minnesota; we stop at 8:30PM. We have completed quite a lot of the available material over the past couple of years.

Today we continued in the pre-made material you can purchase from Roll20, Dungeon of the Mad Mage. This adventure is more than twenty levels of content and is based on the older rules of about 3.0 Dungeons and Dragon. It has been converted to D&D 5.0, the current Dungeons and Dragons version. Because it is so huge, each encounter’s text is a bit limited, and the maps are utilitarian. It does come with some art to share with the players, and the standard creatures have art. I wish the writers and Roll20 had expanded this content and had better maps; many of the purchased adventures have color maps. The adventure is taking about three game sessions to get to the next level. I skipped some of the easier stuff and have sent the players lower and to tougher encounters. There are about ten more levels of which six we will play, I expect.

Today I had the horrid monster, a beholder, dropped on the players as a present from the Mad Mage. The beholder, called “Just Nasty,” had three minions of undead beholders, Gold, Frankincense, and Myrrh. Just Nasty is a type of D&D monster from the original designers and is difficult to beat in combat without taking terrible losses; it has many devasting attacks. By the third round of combat, it had knocked out 1/2 the hit points from two characters with its death and disintegration rays, and the wizard was paralyzed. The players decided to offer an opportunity to negotiate. And eye tyrant, another name for a beholder, offered the treasures of Gold (actually valuable gems as gold is too heavy), Frankincense (magical healing potions), and Myrrh (a scroll of the spell True Resurrection). I hope it was not too corny; it was a tough fight.

We continued playing until 8:30 with a few easier battles. The adventurers have hunted down most of the evil elves, Drow, in the level and exterminated much of the vermin (spiders and undead). We will play next year, skipping the next Monday. I imagine the players in the next session will descend to the next level.

Returning to the story for today, I made grilled cheese and roast beef sandwiches for dinner.

I received a few more Christmas presents from Michigan today, and some more gifts for friends arrived. I ate one cookie.

I think we are just about ready for the holiday!

I learned today (I was trying to speed up Roll20 with a direct connection) that Big Sur OS for my Mac does not have a driver to allow direct connection to Ethernet from a USB converter. It seems that Apple so far has not approved any drivers to make this work again. No more direct connections for my Apple or even a newer Apple–frustrating.

1,841 people in the USA are reported to have passed away today from the infection.

I went with ALL THINGS BRIGHT AND BEAUTIFUL for the longest night of 2020.

 

Day 282: Sunday Chess

Today I slept in until 9:15ish. It was bright, well bright for rainy Oregon.

I had stayed up late last night playing chess against Lasker, my chess computer, Millennium’s Lasker Special The King Edition. I was having an issue with the chess computer seemly changing my chess piece positions. The board was lighted-up with warnings, and the AI seemed a bit lost. I finally grasped that the new code I installed with all the new features had made the board more sensitive, and I need to pick-up and place pieces.

No more sliding pieces. I like to slide the chess pieces when playing against human players who usually think you did not see something they missed and then slide into it. That is not allowed in competitive chess, and I just need to comply with the rules.

When I finally worked out that it was me causing the issue, it was late, and I ended up playing a long game against Lasker. I set Lasker to a higher level, but I still managed to exchange out most of the pieces (I admit I was taking hints for Lasker) and then had the long game of rooks and three more pawns than the computer player had left. I used the computer’s hint to avoid a misplaced piece as this was just an exercise of repeating the same moves over and over while reducing the enemy king’s freedom of movement. The computer finally conceded. I just wanted to see that it would still concede at the higher settings. It does.

I played another chess game this morning and lost. Lasker crushed my mangled opening, and I gave in before it got worse. I had peanut butter toast and coffee for breakfast while being crushed.

I started working on my chess program today. Last year I wrote a short computer Python program, 450+ lines, to use the newish Python-Chess library to play chess. The library supplied the chess framework. I just had to write a loop to play and accept moves to have a working chess program. I did not write a pawn promotion handling routine yet, but the chess programming was working well enough that you can play a game.

I spent the morning getting the program working again. First, I had to get PyCharm updated. This is my fav IDE for Python development. I had to get my license accepted again. I pay for an annual license, but the vendor requires a check every month to have a license. I then updated PyCharm to the newest release. Yes, these tools are not free and require constant attention.

Next, the program is running on older Python and a legacy version of the Python-Chess library.

As a break, I served the remains of the quiche I made to Susie and me for lunch. It was better reheated.

Anaconda is the program I use to load Python, and it needs a major update. I read the warnings on the Stack Overflow Website, started the update, and took a shower. It gets all updated for a long time while I get dressed. I load Python 3.8 as a separate environment. I have 3.7 Python as default. I then load the new version of the Python-Chess library for both 3.7 and 3.8.

I have to reset the version of Python that PyCharm needs. This takes an hour to work out. It still does not work. Each project has an environment too. It is the wrong version too. I finally get this all changed to Python 3.8.

Why Python 3.8? It is newish and getting good support.

After another hour of frustration and running the update everywhere, I finally call up a terminal inside of PyCharm and order an update of the Python-Chess library, and that finally works using Python 3.8!

This open code is always fighting version changes of tools and libraries. My Apple also does not love Python 3.6 as it is running Big Sur OS. This version stuff can be difficult to solve. Worse, often there are security issues in earlier versions that force the change to the fixed versions. Staying on an older version will likely let you get hacked.

I then run the checks on the code and fix two classic bugs using the global variable in a subroutine while also passing the same reference–that can cause a really nasty bug. I also fix a few more glitches called out by the standard checking in PyCharm. That is why I like PyCharm. I love standards–the code usually runs better and safer when all cleaned-up. I love it when it points out what is likely a typo on my part.

I take a break from chess and Python and buy groceries from the local Safeway. I get the basics (except I thought we had milk! What only three eggs!) and lots of holiday nuts and chocolate-covered stuff—Susie like that for the holidays. I also put up Susie’s Peanuts Holliday dancing and musical collection. So we are trying to get “Christmas-ee.”

I cook sweet Italian Sauage in a tomato cream sauce over pasta for dinner. It was just OK.

Susie is reading. I am coding more Python. Even when it is so stupid, the chess program noticed that I misplaced a knight and took it. That made me smile. I also revised the pawn setting matrix to like the center and the end of the board more. I set the values higher for just pawns, making the program detect that moving a pawn to the center is more valuable than sending a knight there. The program was bouncing knights all over the board before–it was bizarre looking moves. The pawns are now moving out better.

I am having a problem with exchanges in the chess program. The program runs away from nearly equal exchanges! It was odd to drive the king out with a check that should have been a pawn taking my bishop. Again, the pawn matrix change is now getting back at me, and the piece values are set too low. I have more fun chess coding coming up when I get some free time again.

It has been fun to get back into chess again.

Last year this weekend, we, Susie Corwin and me, flew to Amsterdam. We are missing the traveling and the holidays in Europe we so enjoyed last year. We look forward to returning to Amsterdam in 2021 or 2022. Rome is the penciled-in plan for October 2021.

1,414 people are reported to have died today in the USA from the virus.

Maybe it is early for this one, but I thought it was time for this: Joy to the World.

 

Day 280: Saturday Easy Going

I am starting today with a short reflection on 279 blogs.

This is the 280th day of writing this, and, except for the night that Susie had the stroke, I have written a blog every day. That is 279 blogs. I try to write about what I want to remember about the day. Often it is the food we ate and some of the things we did to make it through another day of lockdown. Unlike some of the USA, we here in Oregon locked down early and with harsh restrictions. We did an unlock, and for a short time, I change the count to restart. I went back to the original counting after we all discovered that we were going back to lockdown.

Also, I remember when the death count was low, when the measures we were taking seemed to work. I published an image of the low numbers chart within that day’s blog, thinking we could keep the pandemic under control with masks and people’s goodwill. I am deeply troubled that the second wave and an intensification happened.

From the first day of writing back in early 2020, I finish the daily blog with the death counts, and a hymn or other music that I think can fit the day and lockdown mood. I wanted the counts to witness the losses people are taking. The music selection seemed a good way to end that day’s story.

Sometimes I write the story of the day from the morning or start at the end and retell the story backward—anything to keep it interesting to the reader, and quite frankly, interesting to the writer.

I am using Grammarly to remove the more damaging mistakes. I usually miss a word or switch a word for another. One of the worst mistakes was using the word reefs for wreaths. Grammarly will find those kinds of mistakes now. It is much improved over this year.

WordPress is the tool I use to write the blog. It moved to a Java-based editor and save process that has failed multiple times for me. The production support team at WordPress has me instead using the classic editor.

Often I find it is 9PM and I must write now. It seems like a challenge to write a single sentence some nights. I keep going as I want a record of what happened and how we lived through this together. On weekends I can start when I want as there is no 6ish start in the morning. It ain’t easy to do this every day.

Turning to today…

Today is the weekend before Christmas. I am already exchanging some gifts. I have had some homemade boozy fruitcake from Dondrea, picked up a board game for a family, and sent it off with them. In a pandemic, board games cannot be played together. Someday!

Susie was on a movie kick today and watched three Christmas movies back to back. I made quiche for lunch, we had a tranquil day. I played chess against the chess computer, and it won. It is The Millennium Lasker 150th Birthday Edition, and I call it “Lasker,” it drove my King into the center of the board and swarmed it with pawns and checkmate hit before I saw it. Crushed.

It is even stranger when I remembered that I wrote a chess-playing python program, and one of the main designs of my code is to keep the King out of the center. A German guy wrote the chess handling routines; I just included them in my code–cool! I wrote my own Artificial Intelligence part, a very weak one, to play. It is terribly stupid, but it does play proper chess and often avoids some basic pitfalls. I plan to get back to and improve it. But, it would have not have moved the King to the center even now!

Evan stopped by, and we played a few games while Susie watched movies. Evan and I started with the board game Vindication and played a basic game. I am always surprised by how much I like the game and how it can still be challenged. I managed to win just by one card value in points. I started with a strength focus and so went for the monster-slaying scoring. One monster score gave me the win.

Evan and I decided to play a new game. Wingspan board game is one of the best new games. We played a few rounds, Evan had never played Wingspan before, and we restarted again after Evan understood the game better.  The game theme is setting up a bird sanctuary, attracting birds, and managing the sanctuary. You play mostly against yourself, and whoever is the most efficient and maybe a bit lucky on the birds they get to attract wins. I have played it a lot before the lockdown and have a handle on the rules and some of the winning efficiencies. Evan managed a good score for a first-time player. You also learn a lot about birds!

We made tacos for dinner.

We ended with Evan and I watching the definitely not Christmas movie, The Ninth Gate. A slow-moving adventure and occult movie. It a fav of mine. Evan headed-out after the movie.

It was reported that today 2,559 people in the USA died from the virus.

I picked a sing-along version as here is your chance, dear reader, to join in: Angels We Have Heard on High.