Blog

Spring Break 2019 Day 2: Old Friends

As usual, I start Sunday morning missing church. I mean this in many ways. I miss the service as in not actually attending. I also miss the service and the people who are the church to me. It makes me sad. I listened to the hymn that best describes my feelings (I always cry now when I hear this song): Lift Every Voice and Sing.

I did not oversleep, but I could have. I was starting my morning at 8:30. I read past 1 am as I cannot put down a new book: Raven Tower by Ann Leckie. I use my Kindle to read, and I am happy with electronic books. I am trying to give up paper books. But I must admit that two more “dented and returned” books from Subterranean Press arrived today. Subterranean Press is a book publisher in Michigan that produces special editions of SciFi and Horror. I own quite a few special versions signed by the author from Subterranean Press. They had a sale, so just a few more should be OK…

Today Susie is too tired to get going to attend church. I will always take her to the Methodist church in Beaverton if she wants. Instead, I watch an old SciFi show, Babylon 5, with a story about “Earth First” and racism against space-based aliens and how humans need to fight to stop losing their place in the universe–1994 and yet so current. I am slowly re-watching this old show.

I spend some time with my newest hardware. I purchased a 1T drive that resists damage and water (a good thing in Oregon!)–these cost about $140 with shipping. It takes me a few hours to work out how to make it safe. I had to erase it three times! Finally, I read on a post–there is always someone else that had the same problem and recorded the answer nowadays (social media does work for computer folks!)–that I had not displayed “all devices” on my Apple Disk Utility. Once I did this everything was clear. The new drive is now encrypted and thus safe if lost.  I did store the password in my keychain on my Apple just in case I forget.

I need a 1T drive. I am beginning an exploration of using Artifical Intelligence (Machine Learning) to understand images. I did not want to fill-up my Apple computer with all the images, so I got a reasonably fast and likely long-lasting drive to hold all the data. I loaded up a dataset of famous art paintings and images, already 5G of data. I will try to write something to tell a Jackson Pollock from a Rembrandt. That will be after the gaming convention this week. Time to learn new skills!

Lache

I then headed out to lunch. I did not know where I wanted to go, but something new was on my mind. The Orenco Station Grill was a place I had not been to in years. I went to the bar as I had a Call of Cthulhu adventure to edit that I am running at Gamestorm 21. I sat down, and I found Kesli behind the bar. She and I both talked about how we learned about the demise of Chevy’s (see Chevy’s bankruptcy ). Kelsi came into work, and there was no more work. I had gone to Chevy’s, and a sign said they were closed. Kesli now works at Orenco Station Grill and let me take this photo of her for my blog (I also tweeted it so she could snag it if she wants it).

Kesli

It was really nice to see her back to work. I had been going to the same Chevy’s since I moved here in 1996. We were both sorry to see Chevy’s go.

While I was eating and editing, my phone rang. It was one of the members of my former Methodist church, Rev. Orville Nilsen. They had missed us at church. I explained that I had resigned after the vote in the Methodist General Conference to continue to ban gay marriage and gay preachers and to even tighten the ban. I reassured him that Susie was doing well and that I was doing better despite newly diagnosed diabetes.

Aside: I happened to be home and watched the vote. I took a picture of the tally as the final vote was taken. I sent in my resignation by email within an hour of the vote.

methodist vote

That is right 438 Methodist officials voted to take my domination from me and transform it into a force of repression. Tough words–that is what I believe happened.

Well, that is not what I said on the phone, as you can imagine. Instead, I told Orville that yes we missed them and that I am also going to cook pancakes for Easter and help on Good Friday like every year. I am not a Methodist anymore, but I still believe, and I miss my church. He was glad to know we would be back for Easter.

I spent another hour with Kesli editing. I finished the first half of my work. I promised to return to Orenco for brunch again. It was so good to know that she was OK and that many people found a job after the debacle that closed Chevy’s.

I returned home and finished the laundry and cleaned the kitchen. I also cleaned up houseplants I have killed. Yes, quite dead. Seems watering once a year is not a plan for success for houseplants. I have killed cactus before. My mother, who I call most days, told me she has the same issue. I may get more plants. I will have to see if a terrarium might work, they do not need to be watered much.

Almost forgot, I am returning to playing chess. Today I unwrapped my silicone chess set from the US Chess Federation. I got the pieces in flexible silicone–a new standard, a regulation North American clock, folding board, and carrying case. I hope to try out a chess club in the summer. So cool. Does not matter if you drop them.

newking

I made baked ziti with meatballs for dinner and baked and frosted a cake. I tried a tiny piece to check it. This was a new organic cake mix with matching organic chocolate frosting and the little bit from the corner was a bit dry. I was hoping the rest was better. Alas, I set it down on the corner of the counter, and the cake got bumped. Instead of landing pan first the cake flipped and fell frosting side down. The cake was still warm. The tiny piece I had was the only piece every consumed. It was quite a mess. I cleaned the floor.

I then applied my editing to my copy of the adventure until midnight. Finally, going to bed–still smelling chocolate. The cake seems to be haunting me. I might have to make cupcakes, yellow cake this time.

 

Spring Break 2019 Day 1: Movie Party

So after finishing the blog I then started my day and got Susie, my wife, up and going. Today we were to see the new movie Captain Marvel, have lunch, and maybe play some game at Scott’s and Jess’ house. We have been doing this for years for these Marvel movies.

I will say that we got there on time and watched the movie. Captain Marvel is a surprisingly entertaining movie. Not wishing to do any spoilers I will stop there.

More information about the movie (no promises about spoilers on these websites–You have been warned!): Rotten Tomatoes Captain Marvel

Late lunch was a chicken salad, Scott frying the chicken in a pan right after the movie as we watched. Rolls were made from scratch and from Cooks’ Illustrated January-February 2019 issue recipe: Cooks (requires a subscription to get the recipe). Susie wants the recipe. I will look around; I think I have that month’s issue. I get the annual cookbook at the end of the year. I have the last four or five years. I like their recipes and reviews, but Milk Street is getting my attention now: Milk Street.

We then played one of the best new games I have acquired in the past year: Vindication. Find it here: Vindication

This game is about your hero trying to rebuild his/herself from a wretch to a true hero. It is quite a positive-themed game as you can imagine. No war. No complex tactics to defeat your opponents. Explore and improve by hiring fellow travelers and acquiring relics and learn valuable traits and fight monsters for glory. Do this by using your influence and releasing your potential and using your conviction to lock-in important resources (all represented by little blocks in your color on a board). I taught the game–only I had played it before. I am playing it in Gamestorm 21 (Gamestorm) and need a bit more practice teaching it. It took folks a bit to understand the mechanics, but once they got it they enjoyed it. It is a beautiful and colorful game.

I did not win. The game was close with a point variance of less than ten from first to the last place.

So a nice day for Day 1.

 

 

Includes (lost update to coding)

I found this update sitting and waiting to be finished for almost a year!

 

We are now moving to the real code. The main just covered the final product and my style decisions.

Starting with the header code:

/**

Copyright 2018 Michael R. Wild

Permission is hereby granted, free of charge, to any person obtaining a copy of
 this software and associated documentation files (the "Software"), to deal in
 the Software without restriction, including without limitation the rights to
 use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
 the Software, and to permit persons to whom the Software is furnished to do so,
 subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
 copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
 FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
 COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
 IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
 CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE

@file mcp.h
 @author Michael R. Wild
 @date 3/6/2018
 @version 0.0.1

@brief Master Control Classes Header

@section DESCRIPTION

The header file for the MCP.

@section CHANGES

20180306 Creation
 20180307 Added example class

*/
 //=================================
 // include guard
 #ifndef __mcp_H_INCLUDED__
 #define __mcp_H_INCLUDED__

//=================================
 // forward declared dependencies

//=================================
 // included dependencies
 #include 
 #include 
 #include 
 #include <string>
 #include <set>
 #include <exception>
 #include <iostream>

//=================================
 // revisions of namespace

namespace pt = boost::property_tree;
 //=================================
 // the actual classes

/*! \class MyClass
 \brief Example class.

Just an example class.
 */

class MyClass // Example standard
 {
 private:
 int a;

public:
 void set(int n) { a = n;}
 int get() { return a;}
 };

class MCPParms
 {
 private:
 pt::ptree tree;
 std::string parmfile;

public:
 MCPParms(const std::string &filename) ;
 void load() ;
 std::string get(const std::string &mykey) ;
 void put(const std::string &mykey, const std::string &myvalue) ;
 void save() ;

};

#endif // __MCP_H_INCLUDED__

I first had to remember how to control the code to prevent recursive calls for the include. I have to admit that I looked that up as I had no memory about how to control includes in C++. I also left the example in for now. Lastly, I decided that I would not create one set of includes for everything different class. That seemed to me to be a bit over-the-top, but that is the standard for many. Sticking with the minimal standards, I included the minimal to get my work done. I did declare a namespace for the tree as I just did not want to type boost over and over.

I decided to do an example where I would read in an XML file with all of the parameters to run the program. Now there are other ways to do this, but I liked this idea of XML to tree, thus the name MCPParms.

The work is done in the CPP file as you would expect.  Sorry, I am not following my own standards of updating all of the items in the header. It is an example program.

/** 

Copyright 2018 Michael R. Wild

Permission is hereby granted, free of charge, to any person obtaining a copy of 
this software and associated documentation files (the "Software"), to deal in 
the Software without restriction, including without limitation the rights to 
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so, 
subject to the following conditions:

The above copyright notice and this permission notice shall be included in all 
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE


@file mcp.cpp
@author Michael R. Wild
@date 3/6/2018 
@version 0.0.1 

@brief Master Control Classes
 
 @section DESCRIPTION
 
 This is the class definitions for MCP
 
  @section CHANGES
 
 20180306 Creation
 
 */

#include "mcp.h"

MCPParms::MCPParms(const std::string &myfilename)
{
/*
Decided to just save the file name instead of loading it. The process of loading 
could throw so can't do it here without a lot of mystery code to handle an 
exception on declare. So split up load and constructor.
*/

  parmfile = myfilename;
  //std::cout << "File name: " << parmfile << std::endl;
}

void MCPParms::load()
{
/* Must put "load" in a try to handle exceptions. The file and the XML process
can both throw.
*/

  pt::read_xml(parmfile, tree); // exceptions must be handled!
}


std::string MCPParms::get(const std::string &myname)
{ 
  
  return tree.get(myname);

}

void MCPParms::put(const std::string &myname, const std::string &myvalue)
{
  
  //std::cout << "myname: " << myname << std::endl;
  tree.put(myname, myvalue);
  
  return;

}

void MCPParms::save()
{
  //std::cout << "save " << parmfile << std::endl;
  pt::write_xml(parmfile, tree);
}

The code can read an XML file, create a tree of the values, retrieve values from the tree, and write the tree back to a file. This is the start of my blockchain thinking. I plan to create an XML file for each blockchain entry or bitcoin if you like. That the new software will manage files and not use a database. My idea is to have an XML structure that drives the process and that to live in a file. The shared ledger then is just a bunch of XML files.

Hope the code is interesting and the idea is also interesting. That is all the code I have done. So I may take a few days to get another update done. I hope that is OK.

Nearly forgot! Here is the run of the program in Cloud9. So cool to just run this stuff somewhere in the cloud for the cost of one PNW coffee for a whole month of use!

Running /home/ec2-user/environment/mcpmain.cpp
Master Control Program
Local Time: Thu Apr 26 05:51:54 2018

Read in MCP controls
Success: Master Control Program 0.0.1
Success: This is a test
Saved!
 
Process exited with code: 0

Spring Break 2019 Day 0: Working and Games

We will try to use this for my story of my adventures for Spring Break 2019. I hope you don’t mind too much using a blog and not simple emails.

Scythe 22March2019

I am suffering from recently diagnosed diabetes and so have to be careful with carbohydrates. I made an error today. After work, I called Susie my wife, and she wanted Chinese food for dinner. I had been warned by friends at work that diabetics who are ethnic rice-eaters find it quite a challenge. But I did not even think about that, and I was in a rush as I had a game in Portland today, so I ate lots of fried rice and Sweat and Sour Pork (just a bit of sauce) and dived into the car and drove. My face flushed and my heart beat hard in my chest. But I was in a hurry and work had much to raise my blood pressure so I accept that as my normal ending for the week.

Then I made it on-time and even by ten minutes to Richard’s house–having left ten minutes later than I should. While I was driving to Richard’s Richard sent me a text that the game moved to “Dave’s.” I had only one address that I have played at before, so I drove there. I received a text of an address that was just minutes away from Richard’s house. I had driven three and a half miles, taking ten minutes in Portland with all the lights, and so headed back. Finally, twenty minutes late, I got to Dave’s and was given Poland to play in Scythe.

Scythe is recently created boardgame (via Kickstarter) that I have learned to love. It simulates a time in Europe that is after the War and includes a story that Tesla invented a new super power-supply that allows for a steam-punk like a universe in Europe. It is a multi-player game and includes many familiar elements of Risk, Monopoly, Axis and Allies, and Euro gaming. It is also visually stunning and allows me to paint a few cool figures. We are beginning a special Fenris campaign version of Scythe in a few weeks. So the game Friday night is a warm-up game.

Scythe figures

Well after all the adventures of getting there, I played Poland (White) well enough. Most of the time I was trying to remember how my opponent Kalib plays–He totally crushed us many times as Poland. Before I left, I told Corwin, who lives with us at home, that I was hoping to lose better and score better than my last game of 37! Corwin said to me that the Vikings (Blue) would win. I told him they are one of the worst and he argues this with me from time to time.

For you Scythe experts, we are playing an alternative ending version–again, part of our practicing for the campaign game. Visiting the Factory (found in the center of the board) allows for extra capability (Tesla pumps you up for visiting his factory). In this version visiting the Factory grants a star and enables you to play an extra turn once the usual ending condition is tripped. I saw the crush for the Factory and so ignored it and collected other ways to win and ended the game only to discover my opponents got an extra play–I was not quite following the additional conditions. Well, the Vikings used their extra turn to cover all the lakes (each area controlled at the end of the game grants more points) and got enough to win. I had scored 62, and well the Vikings said something about seventy…

Here is more information on the game: Scythe on Board Game Geek

I left after the first game, turning down the second game, as I was dizzy and my face was flushed, and I was feeling like it was too warm–signs that my sugar levels were running wrong. I do not test my blood yet, but I have not had this for months (hoping to get diabetes under control with simple meds, diet, and exercise). Then I remembered the rice! Might of well had a bucket of sugar for dinner! So I will watch the rice! Later I recalled I had Indian for lunch, more rice! Oh my, how stupid of me. I think I had an exciting carbohydrate crash. Again, rice is now a treat and will be in small sane amounts.

At least I got in a game.

I drove home and took my meds and had a bit of cheese (NOT RICE) and no crackers with it. Lots of water. Better.

Played one more new game after finishing up the laundry for Susie.

Oh, that reminds me. I am using laundry balls. I know that I got a smile. Little wool balls that bounce in the dryer. It really helps. Dryer sheets are not needed (I used one every other load). My mother loves the set I sent her. You can get them here: Laundry balls from Amazon  Mine are different and actually shipped from England ( Imported Sheep styled balls ). This was before I thought that I should just get them from Amazon.

One of my balls is missing (bet that got a grin). They get stuck in a towel or a sheet, hum. Corwin heard me singing “My poor laundry ball rolled off…”. This one is black with a sheep face, so yes the black sheep of the laundry has wandered off.

After midnight we got to one of my newest games: Call for Adventure.

Call to Adventure

This is a straightforward game where you build a story of a great adventurer using cards. I was not that pleased with it, but I had only played it solo. I was in the initial Kickstarter (Kickstarter Call of Adventure) for the game and so have an early copy. I saw it for sale at Guardian Games, so it is now available to the public. Corwin agreed to try it before I decided to shelve it or give it away.

Corwin liked it. He also beat me by more than 2-to-1. We both agreed that the game lets you build an adventurer and the process of throwing runes (cool plastic runes that feel like bone) is interesting. We had to check some rules and make a couple of corrections that made the gameplay better. This rules flub might have been part of the reason for my poor experience playing solo. We wanted to do something with our newly minted adventurer, but the game just ends. Then you count the score–where is the adventure? This was a bit of a letdown after playing the game to build the adventurer. Also, the cards slide too much from the tucking process. Corwin said it was playable and enjoyable. We think the co-op version, where you must alone face a powerful adversary, might make that better as you have something to adventure too–we will try that.

I get most of my new games through Kickstarter, or I purchase one created on Kickstarter once it is released to the public and I have played it.

After that, it was past one in-the-morning, and despite not finding my lost black sheep ball, I went to bed and quickly fell to sleep. I rose about eight this morning beginning ten days of vacation. Except I have to do some work for Nike on Monday through Wednesday, but it is usually only a couple of hours here and there, and I have done this before. So Day 1 starts…more on that later.