{"database": "pelican", "table": "content", "is_view": false, "human_description_en": "where category = \"musings\"", "rows": [["ryan", "musings", "The [Tableau Conference](https://tc19.tableau.com) was held at the Mandalay\nBay Convention Center this year (and will be again next year in 2020). I had\nthe opportunity to attend (several weeks ago) and decided to write up my\nthoughts about it.\n\nThis is an introverted newbie\u2019s guide navigating the conference.\n\nThe conference started on Tuesday with pre-conference sessions that you had to\nregister (and pay for). I did not attend those.\n\nTuesday night there was a big welcome reception that I very nearly bailed on\nbecause of how many people there were, but I decided to give it a shot anyway.\nI\u2019m glad I did.\n\nThe welcome reception (as well as all of the meals) were held in the data\nvillage (basically the convention show floor) which was a little weird but it\nworked.\n\nIn the reception they had industry specific areas (healthcare being one of\nthem). I didn\u2019t know this going in ... I just kind of stumbled into it.\n\nThis was the luckiest break I could have had as I sat there there entire night\nand met about 10 people. Three of them (Josh, Kerry, and Molly) I spoke to the\nmost, so much so that we decided that we\u2019d go to the ' Data Night Out\u2019 (the\nclient party) together.\n\nBeing super introverted this was not my jam, but I\u2019m glad I went, and I will\ngo again next year.\n\nEach day is jam packed full of sessions. I didn\u2019t come across any sessions\nthat were not worthwhile, although some were better than others.\n\nYou do have to register for the session in order to gain admittance to the\nroom (they scan your badge to make sure you belong) but there seemed to be\nstand by room in most of the sessions I attended.\n\n## Keynote events\n\nThere are \u2018Key Note\u2019 events to kick off each day. They happen in the Mandalay\nBay events center, but there is also an overflow room you can watch them from.\n\nI would recommend going to at least one event in the events center, but as an\nintrovert the overflow was really more my speed. A room that could sit 500\npeople with only 50 in it ... yes please!\n\n## Iron Viz\n\nA take on Iron Chef, Iron Viz was a chance for 3 Tableau wizards to showcase\ntheir skills with Tableau and a shared data set. It was really interesting to\nsee the different ways that the data could be presented and the different\nstories that each competitor told for their visualizations.\n\n## Data Night Out\n\nI didn\u2019t do this, mostly because by Thursday I was pretty overwhelmed and just\nneeded a quite night in. I don\u2019t regret not going, but I think I will make\nmyself go next year\n\n## Data Culture\n\nI\u2019m going to write more on this once I get my head really wrapped around it,\nbut suffice it to say, this is something that I think is going to be very\nimportant going forward for the organization I work for.\n\n", "2019-12-17", "a-beginners-guide-to-tableau-conference-2019-edition", "The [Tableau Conference](https://tc19.tableau.com) was held at the Mandalay\nBay Convention Center this year (and will be again next year in 2020). I had\nthe opportunity to attend (several weeks ago) and decided to write up my\nthoughts about it.\n\nThis is an introverted newbie\u2019s guide navigating the conference.\n\nThe \u2026\n\n", "A beginners guide to Tableau Conference - 2019 edition", "https://www.ryancheley.com/2019/12/17/a-beginners-guide-to-tableau-conference-2019-edition/"], ["ryan", "musings", "Content Warning: This is a highly personal post about a cancer diagnosis.\n\nOn Feb 16, 2026 I was 'prepping' for a routine colonoscopy that was scheduled\nfor February 17th at about 1pm. For those of you unaware what is involved in\n'prepping' don't google it, but just know that your Gastroenterologist wants\nthe 'end' of your GI tract 'clean'\n\nThis also involves a lot of not eating. So you can get hangry. Or at least\nmost people do. I had felt something wasn't quite right for a while. Nothing I\ncould really put my finger on, I just didn't feel right. So when it came time\nfor the prep it turned out I wasn't really hungry anyway. I couldn't really\neat the weekend before either, and had been having issues sleeping. I was\nstressed about what my colonoscopy would show. At least subconsciously I was\nworried.\n\nOn the day of my colonoscopy the staff at the office were all really nice. I\neven got a \"First Colonoscopy\" sticker!\n\nI was wheeled into the procedure room, introduced to the doctor and told to\nlook at the wall. The next thing I knew I was being wheeled out to the\nrecovery room. I laid there for a few minutes and then I saw my wife Emily. I\nwas still a bit groggy from the anesthesia but I was _so_ happy to see her. It\nwas the best feeling.\n\nShe came next to the bed I was laying on and the doctor came over. He let\nEmily know that she may want to sit down. She said she preferred to stand. The\ndoctor then told me that during the procedure they found a tumor.\n\nYou have cancer\n\nI let the phrase sink in ... \"You have cancer\" ... \"I have cancer\".\n\nThe doctor was not very comfortable delivering this news. You could tell this\nwasn't the type of thing he was used to doing. Emily even heard him saying \"at\nthe other place I don't have to tell patients this\".\n\nI think he tried his best to be positive about the diagnosis, but honestly it\nwas a pretty shitty delivery. He kept saying things like \"you're young\" (at\nthe time I was 47) ... \"you're good looking\" ... \"you're married\"\n\nI didn't really understand why any of that mattered.\n\nI have cancer\n\nHe then proceeded to let me know that the tumor had likely been there for\nyears, maybe five. Had asked me if I had any symptoms, was there anything that\nfelt off. How could I have not known something was wrong. I have cancer and\nit's my fault I didn't know sooner.\n\nHe also let me know that I'd need to have an ostomoy bag. For the rest of my\nlife.\n\nI have cancer ... that's all I could hear.\n\nI cried. I cried in front of several people that I had never met before. I\ncried in front of my wife.\n\nI have cancer. And I don't know anything about it at this point other than it\nseems like everyone I know with colorectal cancer died from it.\n\nI have cancer.\n\nI'm going to die\n\n... those two phrases kept going through my head\n\nI cried.\n\n> As an aside, I told a friend of mine how my cancer diagnosis was delivered\n> to me. This friend has had many cancer battles / scares during their life. I\n> figured when I told them my story they would say it wasn't so bad. Turns out\n> it was. Even they were like, \"Holy Shit. That's awful!\"\n\nAfter a few minutes, and once Emily and I were a bit more able to see the\nworld, I was wheeled out to our car. We drove home. We didn't say much. What\nis there to even say? I have cancer.\n\nWe got home and although I could eat again, I wasn't hungry. I was afraid I'd\nnever be hungry again.\n\nThat night I couldn't sleep. Or the night after. Or the night after.\n\nThe next day I had a follow up with a different GI doctor. He was basically\nlike, \"There's no new information. Why are you here?\"\n\nBut we had questions. What are the next steps. Who should we contact? What do\nwe do? The one question I didn't dare ask, \"Am I going to die?\"\n\nFor the next 16 days I lived in the grayest of gray areas. I could barely\nsleep, or eat. I lost about 8 pounds.\n\nEmily and I spent time working to make sure that all of our affairs were in\norder. Are all of the banking apps installed on your phone? Do you have all of\nthe passwords? Does the car title need to be updated? The title for the house?\nHow do we do our finances?\n\nWe make a good team in that we each have our 'assignments'. We're pretty\nautonomous in those assignments. We'd talked about \"cross training\" on some of\nthem, especially the financial stuff, but there just never seemed to be the\ntime.\n\nAnd now it felt like we didn't have the time but were going to have to make\nit. I felt like I was writing transition docs for leaving a job. But in this\ncase I was afraid of the job I might be leaving.\n\nTo use any other word than `brutal` to describe these days wouldn't do justice\nto the way we felt. And even then it doesn't really begin to cover it.\n\nDuring that time we told a few people. A very few people. Telling people made\nit real. Telling people was like delivering a trauma to them. Telling people\nled to questions. Questions we didn't have the answer for. Brutal.\n\nI had nights where I would cry. Especially if I was alone. I have cancer, but\nthere were things that still needed to happen. Emily had a major work event\nthat she was responsible for. She had coworkers and friends she was able to\nrely on, but that didn't mean she didn't have to do things. Away from home.\nAway from me.\n\nMy Aunt had the same cancer diagnosis I do and she was helpful and caring and\nloving and kind and all of the things you need from a family member. But she\ndidn't know the future. She didn't know if I was going to die. And so when the\nwords, \"You're going to be fine\" came from her, they were nice, but hollow. I\nhave cancer. I might die. I am scared.\n\nOn March 5th I met with a surgeon. Before meeting with the surgeon I needed to\nhave an Abdominal CT scan done. It was completed about a week before I met\nwith the surgeon. I had the results 2 days before meeting with the surgeon. I\ncouldn't look at them. I didn't want to look at them.\n\nThe day of the surgery consult came. He was going to tell me the next steps.\nFrom what I heard surgery was likely to be my next step. My wife and I went to\nthe appointment, she's been going to all of my appointments with me.\n\nThe staff were so nice and friendly and helpful. I started in one exam room\nand was moved to another exam room. My first thought was, \"Oh no, was I in the\n'you're going to be fine room' and got moved to the 'You're going to die'\nroom? But the nurse let me know the reason for the move. A simple reason. No\nbig deal. Except it was. It was the biggest deal. But she took the time to let\nme know the `why` of the move.\n\nI went through the exam. Emily came back so the surgeon could talk to us.\n\nAll of the fear, and horrible anticipation. What ever he said next we were\ngoing to work through it. We were going to figure it out.\n\nAt the end of all of this, \"we\" might end up being just \"she\".\n\nAnd the doctor said ...\n\nIt's actually not bad. We seem to have caught it early. We'll want to do chemo\nand radiation before reevaluating surgery.\n\nI cried. This time I cried because it was the first hope I'd had in almost 3\nweeks. I cried because my birthday was in 2 days and I had friends I was going\nto hang out with and it will be an actual happy party and not a pre wake\nparty.\n\nSince the surgeon I've seen a few more doctors. An oncologist and a radiation\noncologist. Each appointment was mostly what one might expect. A brief\nconversation about potential side effects of the treatment. Which are pretty\nhorrific if you think about them for too long. I try not to.\n\nMy treatment will be 5 days a week for 5 1/2 weeks of radiation and\nchemotherapy. Reevaluation of the tumor for potential surgery 6 - 12 weeks\nafter that.\n\nI'm sleeping better, but still not great. I eating better, but still not a\nton.\n\nAnd then ... for a few weeks ... nothing. Paper work is getting processed and\nI'm waiting for an MRI. The important part about the MRI is that it will tell\nme what stage and grade my tumor is. Once that's completed and the results are\nread then all of the doctors will have what they need to allow me to\nofficially begin my treatment.\n\nThat being said, I have a tentative start date for my treatment. Unless my MRI\nshows something unexpected, I'll start my radiation and chemotherapy\ntreatments on April 13. Officially. Fifty Five days from when I was told I had\ncancer to start of treatment. I'm not sure if this is a long time or not. It\nfelt like a long time. A really long fucking time.\n\nAs part of the treatment you go in for a prep session. During this session\nthey fit you for the device that blasts your tumor with radiation. In my case\nthey also gave me 3 tattoos. One on either side and one right below my belly\nbutton.\n\nI always thought my first tattoo would be of something way cooler \ud83e\udd37\ud83c\udffb\u200d\u2642\ufe0f\n\nBefore my diagnosis I had some plans for this year. I was going to go to\n[PyCon US](https://us.pycon.org/2026/),\n[PyOhio](https://www.pyohio.org/2026/), and [DjangoCon\nUS](https://2026.djangocon.us/). I even toyed with the idea of going to [North\nBay Python](https://pretix.northbaypython.org/nbpy/nbpy-2026/).\n\nI won't be able to do any of these. Although my treatment will be done by late\nMay, I'm not sure I can commit to much travel. I'm not sure how I'll be\nfeeling.\n\nAlso, anywhere from 6 - 12 weeks after the end of my treatment I get re-\nevaluated for surgery. If the tumor is gone and the various docs feel like\nthere's no risk, then surgery might not be required. If there is a risk, then\nsurgery will be required.\n\nThe outcome of the surgery will be a colostomy bag that is either temporary\n(about 6 months) or permanent.\n\nI'm less than 2 months into my cancer journey and there's still so much I\ndon't know. Still so much that just can't be known. And honestly that's the\nhardest part.\n\nMy prognosis is good. My family and I are optimistic. But there's still so\nmuch we can't know. We hope that this will be a 'blip' and that by 2027 or\n2028 we can go back to what ever normal is. But we just can't know.\n\nOne of the things I've really focused on over the last 2 months is trying to\nfind the good things. I saw someone post on Mastodon (sorry, I can't find the\noriginal toot) about finding what they called glimmers. Those small things\nthat make you happy.\n\nI try to do that every day. A song I haven't heard in a long time. A friendly\nface while I'm out and about. A text from a person I haven't heard from in a\nwhile. Going for a swim. These are all things that I was taking for granted. I\nwill likely end up taking them for granted again. But for now, I am really\ntrying to be more appreciative of them. I'm trying to be more present.\n\nAnyway, for those of you out there in that are 45+ and haven't gotten a\ncolonoscopy. You should. We seem to have caught this early in the process. My\nprognosis is good. If someone hadn't told me I had cancer I would mostly have\nno idea.\n\n", "2026-04-06", "a-giant-pain-in-the-ass", "Content Warning: This is a highly personal post about a cancer diagnosis.\n\nOn Feb 16, 2026 I was 'prepping' for a routine colonoscopy that was scheduled\nfor February 17th at about 1pm. For those of you unaware what is involved in\n'prepping' don't google it, but just know that your \u2026\n\n", "A Giant Pain in the Ass", "https://www.ryancheley.com/2026/04/06/a-giant-pain-in-the-ass/"], ["ryan", "musings", "One of the earliest memories of my grandmother is visiting her in 29 Palms 1 2\nin her permanent mobile home. I remember sitting on the davenport watching the\nDodgers on a small 13\" COLOR CRT TV. I remember that the game was broadcast on\nKTLA5. But what I remember the most is the voice of Vin Scully.\n\nI don't know what who the Dodgers were playing, but I remember how much my\ngrandmother LOVED to listen to Vin call the game. And it stuck with me. I was\nprobably about 7 or 8 and I thought baseball was \"boring\". To be fair, I\nthought most sports were boring, but especially baseball. Nothing ever\nhappens! But, I loved my grandmother, and I loved hanging out with her 3 and\nso I watched the game with her.\n\nYears later I discovered that yes, I did like baseball, and no, it was not\nboring. And since my grandmother was a Dodgers fan, then I would be too. It\nwas something that connected us. it didn't matter where I lived, or how old I\nwas, we both loved baseball. We both loved the Dodgers. We both loved to hear\nVin call the game.\n\nMy grandmother died in 2007, but something that helped to connect me to her in\nthe years since was watching the Dodgers. Listening to Vin.\n\nAs Vin got older, he still called the home games, but he handed most of the\nroad games to a new crew. I still loved to Watch Dodgers games, but I loved\nwatching the games he called a _little_ bit more. At the start of each season\nI always kind of wondered, \"is this the last year for Vin?\". And in 2016 the\nanswer was yes.\n\nI still remember the last game [he called in Dodgers\nStadium](https://www.espn.com/mlb/game/_/gameId/360925119). I remember the\nback and forth. I remember the Rockies going up 1 run in the top of the 9th.\nAnd the Dodgers tying it back up in the bottom of the 9th. And I remember when\n[Charlie Culberson hit the game winning home run in the bottom of the\n10th](https://youtu.be/HayOXW09kl8).\n\nI remember the last game [Vin called in San\nFrancisco](https://www.ryancheley.com/2016/10/03/vins-last-game/). I remember\nthe Dodgers lost ... but it was Vin's last game, so I still loved getting the\nchance to watch it. And to listen to him call the game.\n\nVin passed at the age of 94 on Aug 2, 2022. Just as I knew that there would be\na day when Vin retired from calling games, I knew there would be a day when he\nwouldn't be with us anymore.\n\nI've been trying process this and figure out _why_ this is hitting me as hard\nas it is.\n\nIt all comes back to my grandmother. They never met each other (at least I\ndon't think they did), but in my head they were inextricably connected. Vin\nwas a connection to my grandmother that I didn't fully realize I had, and with\nhis passing that connection isn't there anymore. He hasn't called a game in\nmore than 5 years, but still, knowing that he NEVER will again is hitting a\nbit hard for me. And I think it's because it reminds me that my grandma isn't\nhere to watch the games with me anymore, and that bums me out. She was a cool\nlady who always loved the Dodgers ... and Vin.\n\n# WinForVin\n\n  1. Yes that 29 Palms, right next to the [LARGEST Marine Corp Base in the WORLD](https://en.wikipedia.org/wiki/Marine_Corps_Air_Ground_Combat_Center_Twentynine_Palms) \u21a9\ufe0e\n  2. also the 29 Palms that is right next to [Joshua Tree](https://en.wikipedia.org/wiki/Joshua_Tree,_California) home to the [National Park](https://en.wikipedia.org/wiki/Joshua_Tree_National_Park) that is the current catnip of Hipsters \u21a9\ufe0e\n  3. she always had the [butter scotch hard candies](https://www.candynation.com/butterscotch-candy-buttons) that were my favorite \u21a9\ufe0e\n\n", "2022-08-05", "a-goodbye-to-vin", "One of the earliest memories of my grandmother is visiting her in 29 Palms 1 2\nin her permanent mobile home. I remember sitting on the davenport watching the\nDodgers on a small 13\" COLOR CRT TV. I remember that the game was broadcast on\nKTLA5. But what I remember \u2026\n\n", "A Goodbye to Vin", "https://www.ryancheley.com/2022/08/05/a-goodbye-to-vin/"], ["ryan", "musings", "I was added to a work email that was requesting a not-so-small new project\nthat was going to need to be completed. The problem that needed to be solved\nwas a bit squishy, but it had been well thought out, and it had an importance\nto it that was easy to see.\n\nThere was still some workflows and data that needed to be reviewed, but\noverall it was on a good path to having a `real project` feel to it.\n\nOne question still outstanding is, what platform will this project be\nimplemented on? In our EHR, or on a separate web app?\n\nDuring my weekly project review meeting with the Web Development team I let\nthem know about the potential for this new project and that it would likely\nneed to take priority over one of our current projects. The start is still a\ncouple of weeks away so we have time to plan for it (as much as we can\nanyway). We looked at the project board and determined a ranking of the\ncurrent projects. We decided on the project that would likely get bumped if\nthis new one ends up with the web developers. And just like that we had a\ncontingency plan for how to plan for this project given our current\nconstraints.\n\nNow, this project may never make its way to the web development team, but\nhaving that conversation with the manager, and then during our standup today,\nto let the team know that this **might** be something that will need to be\nworked on by them felt right. No surprises in a few weeks. No randomness about\nwhat projects we'll be working on ... just a bit of planning to prepare for\nsomething that might never come.\n\nEisenhower said, \"Plans are nothing, planning is everything.\"\n\nThe team appreciated being in the loop about a potential project and being\nable to align expectations moving forward. I felt grateful that this was\nbrought to my attention well before it was submitted as a request. The\nrequester now has a bit more information on who to speak with internally, and\nit really felt like we were working together to solve a problem in a very\nprofessional way.\n\nI wish all projects started like this. It would make life way easier and not\nso much like [this](https://oldbytes.space/@tschak/114661574560412783)\n\n", "2025-06-15", "a-new-project-at-work", "I was added to a work email that was requesting a not-so-small new project\nthat was going to need to be completed. The problem that needed to be solved\nwas a bit squishy, but it had been well thought out, and it had an importance\nto it that was easy \u2026\n\n", "A New Project at Work", "https://www.ryancheley.com/2025/06/15/a-new-project-at-work/"], ["ryan", "musings", "This is mostly for me to write down my notes and thoughts about the book \u201cHow\nto Win Friends and Influence People.\u201d\n\nI\u2019ve noted below the summary from the end of each section below (so I don\u2019t\nforget what they were).\n\nThe first three sections seemed to speak to my modern sensibilities the most\n(keep in mind this book was published in 1936 ... the version I read was\nrevised in 1981).\n\nI have the summaries below, for reference, but I wanted to have my own take on\neach.\n\n## Fundamental Techniques in Handling People\n\nThis seems to be a long way of saying the \u201cUse the **Golden Rule** \u201d over and\nover again. The three points are:\n\n  1. Don\u2019t criticize, condemn or complain\n  2. Give honest and sincere appreciation\n  3. Arouse in the other person an eager want\n\n## Six ways to make people like you\n\nThe \u2018rules\u2019 presented here are also useful for making small talk at parties\n(or other gatherings). I find that talking about myself with a total stranger\nis about the hardest thing I can do. I try to engage with people at parties\nand have what I hope are interesting questions to ask should I need to. Stuff\nI tend to avoid:\n\n  * What do you do for a living?\n  * Where do you work?\n  * Sports\n  * Politics\n\nStuff I try to focus on:\n\n  * How do you know the host / acquaintance we may have in common\n  * What\u2019s the most interesting problem you\u2019ve solved or are working to solve in the last week\n  * Have you been on a vacation recently? What was your favorite part about it? (With this one I don\u2019t let people off the hook with, \u2018being away from work\u2019 ... I try to find something that they really found enjoyable and interesting\n\nThese talking points are usually a pretty good starting point. Sometimes when\nI\u2019m introduced to a person and the person introduces them as their job, i.e.\nThis is Sally Jones, she\u2019s a Doctor at the local Hospital, I\u2019ll use that to\nparlay away from something work focused (what kind of doctor are you) to\nsomething more person focused, why did you want to become a doctor? Where did\nyou go to Medical School? Did you know you always wanted to be a doctor? I try\nto focus on getting to know them better and have them talk about themselves.\n\nThe tips from the book support my intuition when meeting new people. They are:\n\n  1. Become genuinely interested in other people\n  2. Smile\n  3. Remember that a person\u2019s name is to that person the sweetest and most important sound in any language\n  4. Be a good listener. Encourage to talk about themselves\n  5. Talk in terms of the other person\u2019s interest\n  6. Make the other person feel important - and do it sincerely\n\n## How to Win People to your way of thinking\n\nThis section provided the most useful and helpful information (for me\nanyway!). It really leads to how to have better influence (than winning\nfriends).\n\nOne of the problems I\u2019ve suffered from throughout my life is the **need** to\nbe right about a thing. This section has concrete tips and examples of how to\nnot be the smartest person in the room, but working on being the most\ninfluential person in the room.\n\nMy favorite is the first one, which I\u2019ll paraphrase to be \u201cThe only way to win\nan argument is to avoid it!\u201d I\u2019d never thought about trying to avoid\narguments, only how to win them once I was in them. The idea reminds me a bit\nof [War Games](https://en.m.wikipedia.org/wiki/WarGames \"War Game with Matthew\nBroderick \\(1984\\)\"). At the end, Joshua, the super computer that is trying to\nfigure out how to win a Nuclear War with the USSR, concedes that the only way\nto win is to not play at all. Just like an argument.\n\nThe other piece that really struck me was get the other person to say \u2018Yes\u2019.\nThis is kind of sales-y and could be smarmy if used with a subtext of\ninsincerity, but I think that the examples given in the book, and using it in\nthe context of trying to win friends AND influence people it can go a long\nway.\n\nThe tips from this section of the book are:\n\n  1. The only way to get the best of an argument is to avoid it\n  2. Show respect for the other person\u2019s opinions. Never say \u201cYou\u2019re wrong\u201d\n  3. If you are wrong, admit it quickly and emphatically\n  4. Begin in a friendly way\n  5. Get the other person saying \u201cyes, yes\u201d immediately\n  6. Let the other person do a great deal of the talking\n  7. Let the other person feel that the idea is his or hers\n  8. Try honestly to see things from the other persons perspective\n  9. BE sympathetic with the other persons ideas and desires\n  10. Appeal to the nobler motives\n  11. Dramatize your ideas\n  12. throw down a challenge\n\n## Be a Leader: How to change people without giving offense or arousing\nresentment\n\nThis section has the best points, but the stories were _very_ contrived.\nAgain, this goes to how to win influence more than winning friends. Some of\nthe items are a bit too 1930s for my taste (numbers 2, 3, and 6 in particular\nseem overly outdated). But overall, they are good ideas to work towards.\n\nThe tips are:\n\n  1. Begin with praise and honest appreciation\n  2. Call attention to the person\u2019s mistake indirectly\n  3. Talk about your own mistakes before criticizing the other person\n  4. Ask questions instead of giving direct orders\n  5. Let the other person save face\n  6. Praise the slightest improvement and praise every improvement. Be \u201chearty in your approbation and lavish in your praise\u201d\n  7. Give the other person a fine reputation to live up to\n  8. Use encouragement. make the fault seem easy to correct\n  9. Make the other person gabby about doing the thing you suggest\n\nOverall I\u2019m really glad that I read this book and glad that my\n[CHIME](https://chimecentral.org) mentor [Tim\nGibbs](https://www.linkedin.com/in/srtim/) recommended it to me.\n\nI\u2019ve been actively working to include these ideas into my work and home life\nand have found some surprising benefits. It\u2019s also helping to make me a little\nless stressed out.\n\nIf you\u2019re looking for a bit of help in trying to be a better influencer in\nyour organization, or your personal life, [this\nbook](https://www.amazon.com/How-Win-Friends-Influence-\nPeople/dp/1439167346/ref=tmm_hrd_swatch_0?_encoding=UTF8&qid=1527122851&sr=8-1\n\"How to Win Friends and Influence People\") is well worth the read.\n\n", "2018-05-23", "a-summary-of-dale-carnegies-how-to-win-friends-and-influence-people", "This is mostly for me to write down my notes and thoughts about the book \u201cHow\nto Win Friends and Influence People.\u201d\n\nI\u2019ve noted below the summary from the end of each section below (so I don\u2019t\nforget what they were).\n\nThe first three sections seemed to speak \u2026\n\n", "A Summary of Dale Carnegie\u2019s \u201cHow to Win Friends and Influence People\u201d", "https://www.ryancheley.com/2018/05/23/a-summary-of-dale-carnegies-how-to-win-friends-and-influence-people/"], ["ryan", "musings", "About a month ago I discovered a kitschy band that did covers of current pop\nsongs but re-imagined as Gatsbyesque versions. I was instantly in love with\nthe new arrangements of these songs that I knew and the videos that they\nposted on [YouTube](https://www.youtube.com/user/ScottBradleeLovesYa). I loved\nit so much that I\u2019ve been listening to them in Apple Music for a couple of\nweeks as well (time permitting).\n\nI mentioned to Emily this new band that I found and she told me that they\nwould be playing at the [McCallum Theatre](http://www.mccallumtheatre.com) and\nI was in utter disbelief. We bought tickets that night (DD 113 and 114 ...\nsome of the best in the house!) and we were all set.\n\nTo say that I\u2019ve been looking forward to this concert is an understatement.\nFor all the awesomeness that the YouTube videos have, I **knew** that a live\nperformance would be a major event and I was not disappointed.\n\nI think this is a concert that anyone could enjoy and that everyone should\nsee. This was the first concert where I was both glad to be there AND glad\nthat I had gone (usually I\u2019m just glad that I have gone and have a hard time\nenjoying the moment while I\u2019m there).\n\nI have the set list below, mostly so I don\u2019t forget what songs were played.\nIt\u2019s also really cool because some of the performers at the concert were the\nones in the YouTube videos. Miche (pronounced Mickey) Braden was an amazingly\nsoulful singer, and her part of \u2018All about that Bass\u2019 was on point and breath\ntaking!\n\nIt was such an awesome concert. I can\u2019t wait to see them again!\n\n## First Set\n\n[Thriller](https://youtu.be/td-_pUPVjdo)\n\n[Sweet child o mine](https://youtu.be/kJ3BAF_15yQ)\n\n[Just Like Heaven](https://youtu.be/Fjd1seT1mMQ)\n\n[Are you going to be my girl](https://youtu.be/Cdo0lfWoqws)\n\n[Africa](https://youtu.be/IUlRavyDP6o)\n\n[Lean on](https://youtu.be/nzFJNsij38c)\n\n[All about that bass](https://youtu.be/G-N3alxKyjE)\n\n## Second Set\n\n[Umbrella](https://youtu.be/OBmlCZTF4Xs)\n\n[Story of my life](https://youtu.be/FASi9lrUoYM)\n\n[Since you been gone](https://youtu.be/lhod-UI40C0)\n\n[Crazy - Gnarls Barkley](https://youtu.be/FyFwko9O2UE)\n\n[Heart of glass](https://youtu.be/DTMoipsvGNc)\n\n[Habits - Tove Lo](https://youtu.be/7hHZnvjCbVw)\n\n[Time after time](https://youtu.be/yKcPEtKu7CM)\n\n## Encore\n\n[Stacy's mom](https://youtu.be/T2kOj-GFN8k)\n\n[Creep - Radiohead](https://youtu.be/m3lF2qEA2cw)\n\n[Such Great Heights](https://youtu.be/tti76BnCL98)\n\n## Band\n\nHannah Gill - vocals\n\nDemi Remick - Tap\n\nMiche Braden - vocals\n\nNatalie Angst - vocals\n\nCasey Abrams - MC / vocals\n\nRyan Quinn - Vocals\n\nBen the Sax Guy - Sax and clarinet\n\nDave Tedeschi - drums\n\nSteve Whipple - bass\n\nLogan Evan Thomas - Piano\n\nThe trombone player was amazing, but I wasn\u2019t able to find him on the [PMJ\nPerformers page](http://postmodernjukebox.com/performers/).\n\n", "2018-12-15", "an-evening-with-post-modern-jukebox", "About a month ago I discovered a kitschy band that did covers of current pop\nsongs but re-imagined as Gatsbyesque versions. I was instantly in love with\nthe new arrangements of these songs that I knew and the videos that they\nposted on [YouTube](https://www.youtube.com/user/ScottBradleeLovesYa). I loved\nit so much that \u2026\n\n", "An Evening with Post Modern Jukebox", "https://www.ryancheley.com/2018/12/15/an-evening-with-post-modern-jukebox/"], ["ryan", "musings", "The thing about HIMSS is that there are a lot of people. I mean ... a lot of\npeople. More than 43k people will attend as speakers, exhibitors or attendees.\n\nLet that sink in for a second.\n\nNo. Really. Let. That. Sink. In.\n\nThat\u2019s more than the average [attendance of a MLB game](https://www.baseball-\nreference.com/leagues/MLB/2017-misc.shtml \"Average attendance\") of 29 teams.\nIt\u2019s ridiculous.\n\nAs an introvert you know what will drain you and what will invigorate you. For\nme I need to be cautious of conferencing too hard. That is, I need to be aware\nof myself, my surroundings and my energy levels.\n\nMy tips are:\n\n  1. Have a great playlist on your smart phone. I use an iPhone and get a subscription to Apple Music just for the conference. This allows me to have a killer set of music that helps to drown out the cacophony of people.\n  2. Know when you\u2019ve reached your limit. Even with some sweet tunes it\u2019s easy to get drained. When you\u2019re done you\u2019re done. Don\u2019t be a hero.\n  3. Try to make at least one meaningful connection. I know, it\u2019s hard. But it\u2019s totally worth it. Other introverts are easy to spot because they\u2019re the people on their smart phones pretending to write a blog post while listening to their sweet playlist. But if you can start a conversation, not small talk, it will be worth it. Attend a networking function that\u2019s applicable to you and you\u2019ll be able to find at least one or two people to connect with.\n\nThe other tips for surviving HIMSS are the same for any other conference:\n\n  1. Don\u2019t worry about how you\u2019re dressed ... you will **always** be underdressed when compared to Hospital Administrators ... you\u2019re in \u2018IT\u2019 and you dress like it\n  2. Wear good walking shoes (see number 2 about being under dressed)\n  3. Drink plenty of water\n  4. Wash your hands and/or have hand sanitizer\n  5. Accept free food when it\u2019s offered\n\nOk. One day down. 3+ more to go!\n\n", "2018-03-06", "an-introverts-guide-to-large-conferences-or-how-i-survived-himss-2018-and-2017-and-2016", "The thing about HIMSS is that there are a lot of people. I mean ... a lot of\npeople. More than 43k people will attend as speakers, exhibitors or attendees.\n\nLet that sink in for a second.\n\nNo. Really. Let. That. Sink. In.\n\nThat\u2019s more than the average [attendance of \u2026](https://www.baseball-\nreference.com/leagues/MLB/2017-misc.shtml \"Average attendance\")\n\n", "An Introvert\u2019s guide to large conferences ... or how I survived HIMSS 2018 (and 2017 and 2016)", "https://www.ryancheley.com/2018/03/06/an-introverts-guide-to-large-conferences-or-how-i-survived-himss-2018-and-2017-and-2016/"], ["ryan", "musings", "Last weekend I watched both games 7 of the NBA conference finals. I have no\nparticular affinity for the NBA (I prefer the [Madness in March associated\nwith the\nNCAA](https://en.m.wikipedia.org/wiki/NCAA_Division_I_Men%27s_Basketball_Tournament))\nbut I figured with 2 game 7s it might be interesting to watch. I was not\nwrong.\n\nOn Sunday night Cleveland was hosted by Boston in a rematch of a game 7 from\n2010. One of only 2 game 7s that LeBron James had lost.\n\nThis game had all the makings of what you would want a game 7 to be. A young\nupstart rookie (Tatum) with something to prove. A veteran (James), also with\nsomething to prove.\n\nWhat really stuck our for me, for this game, was what happened at the 6:45\nmark in the fourth quarter. Tatum dunked on LeBron (posterized is the term\n[ESPN](http://www.espn.com/video/clip?id=23627416) used) to put the score at\n71-69 Cleveland. What happened next though, I think, is why the Cavs won the\ngame.\n\nTatum proceeded to bump his chest up against the back of LeBron\u2019s shoulder,\nlike a small child might run up to a big kid when he did something amazing to\nbe like, \u201cLook at me ... I\u2019m a big kid too!\u201d\n\nLeBron just stood there and looked at Tatum with incredulity. The announcers\nseemed to enjoy the specticle more than they should have. But LeBron just\nstood there, the Boston crowd cheering wildly at what their young rookie had\njust done. To dunk over LeBron, arguably one of the greatest, in a game 7?\nThis is the thing that legends are made of.\n\nBut while the crowd and the announcers saw James look like he was a mere\nmortal ... what I saw was the game turning around. The look on James\u2019 face\nwasn\u2019t one of \u2018damn ... that kid just dunked on me. It was, \u201cDamn ... now I\u2019m\ngoing to get mine and I have a punk to show how this game is really played.\u201d\n\nFrom that point on the Cavs outscored the Celtics 16-10 ... not a huge margin,\nbut a margin enough to win. What the score doesn\u2019t show is the look of\ndetermination on LeBron\u2019s face as he carried his team to the NBA Finals. Not\nbecause he scored all 16 points (he _only_ scored 7) but because he checked\nhis ego at the door and worked to make his team better than the other team. In\nshort, he was the better team mate than Tatum in those last minutes and that\u2019s\nwhy the Cavs are in the Finals and the Celtics aren\u2019t.\n\nTatum\u2019s reaction to dunking on LeBron is understandable. Hell, if I had done\nsomething like that when I was his age, I would have pumped my chest up too.\n\nBut it the patience and reservedness (that perhaps come with age) that make\nyou a great player or team member. You don\u2019t really want to rile up a great\nplayer because that\u2019s the only reason they need to whoop your butt.\n\nPerhaps Tatum will learn this lesson. Perhaps he won\u2019t.\n\nBecause you see, acting like a a little kid isn\u2019t just the right of a rookie.\n\nJames Harden pulled some immature shenanigans too in his team\u2019s loss to the\nWarriors. At one point, with the Rockets up 59-53 with 6:13 in the 3rd, Harden\nwhen for a layup and was knocked down ... accidentally in my opinion.\n\nWhen a player from the Warriors tried to help him up he just sat there and\nthen flailed his arms until one of his teammates can to help him up. Big man\nthere Harden.\n\nBy the end of the 3rd quarter the Rockets were down 76-69. By the end of the\ngame they\u2019ve lost 101-92.\n\nYou see, when it comes down to it a great teammate will do what\u2019s best for the\nteam, and not do what\u2019s best for their ego. It doesn\u2019t seem to matter, old or\nyoung, rookie or veteran, not having the ability to control your emotions at\nkey points in a game (or in life) can be more costly than you realize.\n\nSometimes it\u2019s game 7 of the NBA Conference finals, sometimes it\u2019s just a pick\nup game with some friends at the park, but in either case, being a good\nteammate requires checking your ego at the door and working to be the best\nteam mate you can be, not being the best player on the court.\n\nTo put it another way, being the smartest person in the room doesn\u2019t make you\nthe most influential person in the room, and when it comes down to moving\nahead, being influential trumps being smart.\n\n", "2018-06-08", "basketball-conference-finals-or-how-the-actions-of-one-person-can-fire-up-the-other-team-and-lead-them-to-win", "Last weekend I watched both games 7 of the NBA conference finals. I have no\nparticular affinity for the NBA (I prefer the [Madness in March associated\nwith the\nNCAA](https://en.m.wikipedia.org/wiki/NCAA_Division_I_Men%27s_Basketball_Tournament))\nbut I figured with 2 game 7s it might be interesting to watch. I was not\nwrong.\n\nOn Sunday night \u2026\n\n", "Basketball Conference Finals OR How the actions of one person can fire up the other team and lead them to win", "https://www.ryancheley.com/2018/06/08/basketball-conference-finals-or-how-the-actions-of-one-person-can-fire-up-the-other-team-and-lead-them-to-win/"], ["ryan", "musings", "[Healthcare Big Data Success Starts with the Right\nQuestions](http://healthitanalytics.com/news/healthcare-big-data-success-\nstarts-with-the-right-questions)\n\n> > The last major piece of the puzzle is the ability to pick projects that\n> can bear fruit quickly, Ibrahim added, in order to jumpstart enthusiasm and\n> secure widespread support.\n\n* * *\n\n[Healthcare Big Data Success Starts with the Right\nQuestions](http://healthitanalytics.com/news/healthcare-big-data-success-\nstarts-with-the-right-questions)\n\n> > Moving from measurement to management \u2013 and from management to improvement\n> \u2013 was the next challenge, he added.\n\n* * *\n\n[Healthcare Big Data Success Starts with the Right\nQuestions](http://healthitanalytics.com/news/healthcare-big-data-success-\nstarts-with-the-right-questions)\n\n> > Each question builds upon the previous answer to create a comprehensive\n> portrait of how data flows throughout a segment of the organization. Ibrahim\n> paraphrased the survey like so:\n\n\u2022 Do we have the data and analytics to connect to the important organizations\nin each of these three domains?\n\n\u2022 If we have the data, is it integrated in a meaningful way? Can we look at\nthat data and tell meaningful stories about what is happening, where it\u2019s\nhappening, and why it\u2019s happening?\n\n\u2022 Even if we have the data and it\u2019s integrated meaningfully and we can start\nto tell that story, do we apply some statistical methodology to the data where\nwe aggregate and report on it?\n\n\u2022 If we have the data, and it can tell us a story, and we use good analytics\nmethodology, are we able to present it in an understandable way to all our\nstakeholders, from the front-line clinician all the way up to the chief\nexecutive?\n\n\u2022 Are the analytics really meaningful? Does the information help to make\ndecisions? Is it rich enough that we can really figure out why something is\nhappening?\n\n\u2022 Lastly, even if we have accomplished all these other goals, can we deliver\nthe information in a timely fashion to the people who need this data to do\ntheir jobs?\n\n", "2017-01-07", "big-data-and-healthcare-thoughts", "[Healthcare Big Data Success Starts with the Right\nQuestions](http://healthitanalytics.com/news/healthcare-big-data-success-\nstarts-with-the-right-questions)\n\n> > The last major piece of the puzzle is the ability to pick projects that\n> can bear fruit quickly, Ibrahim added, in order to jumpstart enthusiasm and\n> secure widespread support.\n\n* * *\n\n[Healthcare Big Data Success Starts with the Right\nQuestions](http://healthitanalytics.com/news/healthcare-big-data-success-\nstarts-with-the-right-questions)\n\n> > Moving from measurement \u2026\n\n", "Big Data and Healthcare - thoughts", "https://www.ryancheley.com/2017/01/07/big-data-and-healthcare-thoughts/"], ["ryan", "musings", "I've been thinking about communication ... a lot. How well people communicate\n(or don't communicate) is what drives nearly every problem, either at work or\nat home. Communication is essential to a feeling of **team** which can help to\navoid communication problems in the first place. Once you feel like you are on\na team, I think it's easier to engage in communication because you feel more\ncomfortable asking questions, posing challenges when needed, and generally\nbeing happier with your surroundings.\n\nI'm almost finished with [Atul\nGawande's](https://en.wikipedia.org/wiki/Atul_Gawande) book [The Checklist\nManifesto](https://en.m.wikipedia.org/wiki/The_Checklist_Manifesto) and what\nstruck me the most about it was the fact that checklists used by pilots,\nconstruction crews, and surgeons all had one thing in common. They **forced**\ncommunication amongst disparate people helping to start the formation of bonds\nthat lead to a team.\n\nWhether constructing a 32 floor high rise building, flying a 747 or performing\nopen heart surgery, these are all complex problems and they all have\nchecklists.\n\nThe use of these checklists help the practitioners focus on what's important\nby using the checklist to remind them of what needs to be done but is easily\nforgotten.\n\nAll of this is interesting, but you can get to a 'so what' or 'and ...' point.\n\nWhile reading [Data silos holding back healthcare breakthroughs,\noutcomes](http://www.healthdatamanagement.com/news/data-silos-holding-back-\nhealthcare-breakthroughs-outcomes?brief=00000152-14ad-d1cc-a5fa-7cff19540000)\nthis line caught my attention:\n\n> > However, the MIT researchers contend that the health data divide can be\n> narrowed by creating a culture of collaboration between clinicians and data\n> scientists\n\nHere's the 'so what' point of all of this. Using **Big Data** to help patients\nshould be what the healthcare industry is focusing on. But this is difficult\nbecause Clinicians and Data Scientists don't always have the vocabulary nor\nthe incentives to collaborate in a meaningful way that leads to improved\npatient outcomes.\n\nCould check lists for implementing **Big Data** at various types and sizes of\norganizations help? I think so, because at the very least, it could start the\nnecessary conversations needed to engender a sense of **team** between\nClinicians and Data Scientists which can be sorely lacking in many\ninstitutions.\n\n", "2017-01-14", "communication-and-checklists", "I've been thinking about communication ... a lot. How well people communicate\n(or don't communicate) is what drives nearly every problem, either at work or\nat home. Communication is essential to a feeling of **team** which can help to\navoid communication problems in the first place. Once you feel like you \u2026\n\n", "Communication and Checklists", "https://www.ryancheley.com/2017/01/14/communication-and-checklists/"], ["ryan", "musings", "# Converting Writing Examples from doc to markdown: My Process\n\nAll of my writing examples were written while attending the [University of\nArizona](http://www.arizona.edu) when I was studying Economics.\n\nThese writing examples are from 2004 and were written in either [Microsoft\nWord](https://en.wikipedia.org/wiki/Microsoft_Word) OR the [OpenOffice\nWriter](https://en.wikipedia.org/wiki/OpenOffice.org)\n\nBefore getting the files onto [Github](https://github.com/miloardot/) I wanted\nto convert them into [markdown](https://en.wikipedia.org/wiki/Markdown) so\nthat they would be in plain text.\n\nI did this mostly as an exercise to see if I could, but in going through it\nI'm glad I did. Since the files were written in .doc format, and the\n[.doc](https://en.wikipedia.org/wiki/Doc_\\(computing\\)) format has been\nreplaced with the [.docx](https://en.wikipedia.org/wiki/Office_Open_XML)\nformat it could be that at some point my work would be inaccessible. Now, I\ndon't have to worry about that.\n\nSo, how did I get from a .doc file written in 2004 to a converted markdown\nfile created in 2016? Here's how:\n\n## Round 1\n\n  1. Downloaded the Doc files from my Google Drive to my local Desktop and saved them into a folder called `Summaries`\n  2. Each week of work had it's own directory, so I had to go into each directory individually (not sure how to do recursive work _yet_ )\n  3. Each of the files was written in 2004 so I had to change the file types from .doc to .docx. This was accomplished with this command: `textutil -convert docx *.doc`\n  4. Once the files were converted from .doc to .docx I ran the following commands:\n    1. `cd ../yyyymmdd` where yyyy = YEAR, mm = Month in 2 digits; dd = day in 2 digits\n    2. `for f in *\\ *; do mv \"$f\" \"${f// /_}\"; done` [\\^1](http://stackoverflow.com/questions/2709458/bash-script-to-replace-spaces-in-file-names)\\- this would replace the space character with an underscore. this was needed so I could run the next command\n    3. `for file in $(ls *.docx); do pandoc -s -S \"${file}\" -o \"${file%docx}md\"; done` [\\^2](http://stackoverflow.com/questions/11023543/recursive-directory-parsing-with-pandoc-on-mac) \\- this uses pandoc to convert the docx file into valid markdown files\n    4. `mv *.md ../` \\- used to move the .md files into the next directory up\n  5. With that done I just needed to move the files from my `Summaries` directory to my `writing-examples` github repo. I'm using the GUI for this so I have a folder on my desktop called `writing-examples`. To move them I just used `mv Summaries/*.md writing-examples/`\n\nSo that's it. Nothing **too** fancy, but I wanted to write it down so I can\nlook back on it later and know what the heck I did.\n\n## Round 2\n\nThe problem I'm finding is that the bulk conversion using `textutil` isn't\nkeeping the footnotes from the original .doc file. These are important though,\nas they reference the original work. Ugh!\n\nUsed this command [\\^5](http://stackoverflow.com/questions/2709458/bash-\nscript-to-replace-spaces-in-file-names) to recursively replace the spaces in\nthe files names with underscores:\n\n`find . -depth -name '* *' \\ | while IFS= read -r f ; do mv -i \"$f\" \"$(dirname\n\"$f\")/$(basename \"$f\"|tr ' ' _)\" ; done`\n\nUsed this command\n[\\^3](http://hints.macworld.com/article.php?story=20060309220909384) to\nconvert all of the .doc to .docx at the same time\n\n`find . -name *.doc -exec textutil -convert docx '{}' \\;`\n\nUsed this command [\\^4](https://gist.github.com/bzerangue/2504041) to generate\nthe markdown files recursively:\n\n`find . -name \"*.docx\" | while read i; do pandoc -f docx -t markdown \"$i\" -o\n\"${i%.*}.md\"; done;`\n\nUsed this command to move the markdown files:\n\nNever figured out what to do here :(\n\n## Round 3\n\nOK, I just gave up on using `textutil` for the conversion. It wasn't keeping\nthe footnotes on the conversion from .doc to .docx.\n\nInstead I used the [Google Drive](https://drive.google.com/) add in [Converter\nfor Google Drive Document](https://www.driveconverter.com). It converted the\n.doc to .docx **AND** kept the footnotes like I wanted it to.\n\nOf course, it output all of the files to the same directory, so the work I did\nto get the recursion to work previously can't be applied here **sigh**\n\nNow, the only commands to run from the terminal are the following:\n\n    \n    \n    1. `for f in *\\ *; do mv \"$f\" \"${f// /_}\"; done` [^1]- this would replace the space character with an underscore. this was needed so I could run the next command\n    2. `for file in $(ls *.docx); do pandoc -s -S \"${file}\" -o \"${file%docx}md\"; done` [^2] - this uses pandoc to convert the docx file into valid markdown files\n    3. `mv *.md <directory/path>`\n    \n\n## Round 4\n\nLike any ~~good~~ ~~bad~~ lazy programmer I've opted for a brute force method\nof converting the `doc` files to `docx` files. I opened each one in Word on\nmacOS and saved as `docx`. Problem solved \u00af_(\u30c4)_/\u00af\n\nStep 1: used the command I found here\n[\\^7](http://stackoverflow.com/questions/2709458/bash-script-to-replace-\nspaces-in-file-names) to recursively replace the spaces in the files names\nwith underscores `_`\n\n> `find . -depth -name '* *' \\` `| while IFS= read -r f ; do mv -i \"$f\"\n> \"$(dirname \"$f\")/$(basename \"$f\"|tr ' ' _)\" ; done`\n\nStep 2: Use the command found here\n[\\^6](https://gist.github.com/bzerangue/2504041) to generate the markdown\nfiles recursively:\n\n`find . -name \"*.docx\" | while read i; do pandoc -f docx -t markdown \"$i\" -o\n\"${i%.*}.md\"; done;`\n\nStep 3: Add the files to my GitHub repo `graduate-writing-examples`\n\nFor this I used the GitHub macOS Desktop App to create a repo in my Documents\ndirectory, so it lives in `~/Documents/graduate-writing-examples/`\n\nI then used the finder to locate all of the `md` files in the `Summaries`\nfolder and then dragged them into the repo. There were 2 files with the same\nname `Rose_Summary` and `Libecap_and_Johnson_Summary`. While I'm sure that I\ncould have figured out how to accomplish this with the command line, this took\nless than 1 minute, and I had just spent 5 minutes trying to find a terminal\ncommand to do it. Again, the lazy programmer wins.\n\nOnce the files were in the local repo I committed the files and _boom_ they\nwere in my [GitHub Writing Examples](https://github.com/miloardot/graduate-\nwriting-examples) repo.\n\n", "2016-10-07", "converting-writing-examples-from-doc-to-markdown-my-process", "# Converting Writing Examples from doc to markdown: My Process\n\nAll of my writing examples were written while attending the [University of\nArizona](http://www.arizona.edu) when I was studying Economics.\n\nThese writing examples are from 2004 and were written in either [Microsoft\nWord](https://en.wikipedia.org/wiki/Microsoft_Word) OR the [OpenOffice\nWriter](https://en.wikipedia.org/wiki/OpenOffice.org)\n\nBefore getting the files onto [Github \u2026](https://github.com/miloardot/)\n\n", "Converting Writing Examples from doc to markdown: My Process", "https://www.ryancheley.com/2016/10/07/converting-writing-examples-from-doc-to-markdown-my-process/"], ["ryan", "musings", "The number of times an issue is resolved with a simple reboot is amazing. It\u2019s\nwhy when you call tech support (for anything) it\u2019s always the first thing they\nask you.\n\nEven with my experience in tech I can forget this one little trick when\ntroubleshooting my own stuff. I don\u2019t have a tech support line to call so I\nhave to google, and google and google, and since the assumption is that I\u2019ve\nalready rebooted, it\u2019s not a standard answer that\u2019s put out there. (I mean, of\ncourse I rebooted to see if that fixed the problem).\n\nI\u2019ve written before about my [ITFDB and the announcement from Vin Scully \u201cIt\u2019s\nTime for Dodger Baseball!\u201d](/setting-up-itfdb-with-a-voice.html). With the\nstart of the 2019 season the mp3 stopped playing.\n\nI tried all sorts of fixes. I made sure the Pi was up to date with `apt-get\nupdate` and `apt-get upgrade`. I thought maybe the issue was due to the\nversion of Python running on the Pi (3.4.2). I thought maybe the mp3 had\nbecome corrupt and tried to regenerate it.\n\nNone of these things worked. Finally I found this post and the answer was so\nobvious. To quote the answer:\n\n> Have you tried rebooting?\n>\n> It's a total shot in the dark, but I just transitioned from XBMC to\n> omxplayer and lost sound. What I did:\n>\n> # apt-get remove xbmc\n>\n> # apt-get autoremove\n>\n> # apt-get update\n>\n> # apt-get upgrade\n>\n> After that I lost sound. 10 minutes of frustration later I rebooted and\n> everything worked again.\n\nIt wasn\u2019t exactly my problem, but upon seeing it I decided \u201cWhat the hell?\u201d\nAnd you know what, it totally worked.\n\nI wish I would have checked to see when the last time a reboot had occurred,\nbut it didn\u2019t occur to me until I started writing this post. Oh well \u2026 it\ndoesn\u2019t really matter because it works now.\n\n", "2019-04-07", "did-you-try-restarting-it", "The number of times an issue is resolved with a simple reboot is amazing. It\u2019s\nwhy when you call tech support (for anything) it\u2019s always the first thing they\nask you.\n\nEven with my experience in tech I can forget this one little trick when\ntroubleshooting my own \u2026\n\n", "Did you try restarting it?", "https://www.ryancheley.com/2019/04/07/did-you-try-restarting-it/"], ["ryan", "musings", "# DjangoCon US 2024\n\nI was able to attend [DCUS 2024](https://2024.djangocon.us) this year in\nDurham from September 22 - September 27, and just like in 2023, it was an\namazing experience.\n\nI gave another [talk](https://www.youtube.com/watch?v=JLYaAYY4JPc) (hooray!)\nand got to hang out with some truly amazing people, many of whom I call my\nfriends.\n\nI was fortunate in that my talk was on Monday morning, so as soon as my talk\nwas done, I could focus on the conference and less on being nervous about my\ntalk!\n\nOne thing I took advantage of this year, that I didn't in previous years, was\nthe 'Hallway Track'. I really enjoyed that time on Monday afternoon to\ndecompress with some of the other speakers in the lobby.\n\nOne of the talks that I was able to watch since the conference was\n[Troubleshooting is a Lifestyle\n\ud83d\ude0e](https://www.youtube.com/watch?v=a7iUKbug82k) which had this great note:\nAsking for help is not a sign of failure - it's a strategy.\n\nI am bummed that I missed a few talks live ([Product 101 for Techies and Tech\nTeams](https://www.youtube.com/watch?v=75M0MC66H2o), [Passkeys: Your password-\nfree future](https://www.youtube.com/watch?v=ylv_k8TRpPk), and [Django: the\nweb framework that changed my\nlife](https://www.youtube.com/watch?v=X0Urp3RsKLY)) but I will go back and\nwatch them in the next several days and I'm really looking forward to that.\n\nThere is a great\n[playlist](https://www.youtube.com/playlist?list=PL2NFhrDSOxgWqE_5w5CX2iUR7-P1D0ny7)\nof ALL of the talks from this year (and previous years) that I highly\nrecommend you search through and watch!\n\nA few others have written about their experiences ([Mario\nMunoz](https://pythonbynight.com/blog/djangocon-2024) and [Will\nVincent](https://wsvincent.com/djangoconus-recap/)) and you should totally\nread those. Some of the\n\n## The Food\n\nDCUS via the culinary experience!\n\nDurham has some of the best food and I would go back again JUST for the food.\nSome of my highlights were\n\n  * [Cheeni](https://www.cheenidurham.com/)\n  * [Thaiangle of Durham](https://www.thaiangleofdurham.com/)\n  * [Queeny's](https://www.queenysdurham.com/)\n  * [Ponysaurus](https://www.ponysaurusbrewing.com/)\n  * [Cocoa Cinnamon](https://littlewaves.coffee/pages/old-north-durham?srsltid=AfmBOooaYRO5ZB5bS9mZ43O1J_lVMyXSD_4ma0i8GZjaRg7UxcOgPaAm)\n  * [Pizza Torro](https://pizzeriatoro.com/)\n  * The conference venue food - fried chicken and peach cobbler were my favorite\n\n## The Sprints\n\nDuring the sprints I was able to work on a few tickets for DjangoPackages12\nand get some clarification on a Django doc3 ticket that's I've been wanting to\nwork on for a while now.\n\n## The after party in Palm Springs\n\nI left Durham _very_ early on Saturday morning to head back home to Southern\nCalifornia. Leaving a great conference like DjangoCon US can be hard as Kojo\n[has written\nabout](https://kojoidrissa.com/conferences/community/pycon%20africa/noramgt/2019/08/11/post_conference_depression.html).\n\nOne upside for me was knowing that a few people from the conference were road\ntripping out to California and they were going to stop and visit! The\nfollowing week I had a great dinner with Thibaud, Sage, and Storm at\n[Tac/Quila](https://tacquila.com/)\n\nHere's [a toot on\nMastodon](https://mastodon.social/@ryancheley/113237643354514479) with a\npicture of the 4 of us after dinner\n\n## Looking Forward\n\nI just feel so much more clam after the conference, and am super happy.\n\nI'm looking forward to my involvement in the Django Community until the next\nDjangoCon I'm able to attend4. Some things specifically are:\n\n  * Working on Django tickets\n  * Admin work with Django Commons with Tim, Lacey, Daniel, and Storm\n  * Working on Django Packages with Jeff and Maksudul\n  * Djangonaut Space (if and when they need a navigator but just hanging out in the discord is pretty awesome too!)\n\nI'm so grateful for the friends and community that Django has given to me. I'm\nreally hoping to be able to pay it forward with my involvement over the next\nyear until I have a chance to see all of these amazing people in person again\n\n  1. settings consolidaion \u21a9\ufe0e\n  2. docs update \u21a9\ufe0e\n  3. 27106 \u21a9\ufe0e\n  4. I'm working really hard on DCEU but the timing may not work out \u21a9\ufe0e\n\n", "2024-11-17", "djangocon-us-2024", "# DjangoCon US 2024\n\nI was able to attend [DCUS 2024](https://2024.djangocon.us) this year in\nDurham from September 22 - September 27, and just like in 2023, it was an\namazing experience.\n\nI gave another [talk](https://www.youtube.com/watch?v=JLYaAYY4JPc) (hooray!)\nand got to hang out with some truly amazing people, many of whom I call my \u2026\n\n", "DjangoCon US 2024", "https://www.ryancheley.com/2024/11/17/djangocon-us-2024/"], ["ryan", "musings", "My daughter Abby was in the Robotics class at school this year. This gave her\n(and us as a family) the opportunity to go to the [Global Conference on\nEducational and Robotics](https://kipr.org/global-conference-on-educational-\nrobotics) which was held in Norman, Oklahoma.\n\nBeing in Oklahoma we had a golden opportunity to road trip from Oklahoma back\nto home in California, so we did.\n\nThe trip went like this:\n\nFly from San Diego to Oklahoma City via Phoenix. Once we landed we were in the\nOklahoma City / Norman area for a week as Abby competed in GCER.\n\nWhile there, Emily and I were able explore quite a bit visiting Down Town\nNorman very nearly every day we were there. The neatest part of the Oklahoma\nsegment was our drive down to Washington, OK where Emily\u2019s grand father was\nborn (or spent time as a child ... I\u2019m not really sure).\n\nOnce we left Oklahoma we started the road trip in earnest. I\u2019ve tried to\ncreate a Google Maps version of the trip, but the number of places we stopped\nis more than you can enter into a trip in Google maps.\n\nHere are the vital statistics:\n\n  * miles driven: 3730\n  * cities visited: 17\n  * national parks visited: 7\n  * Baseball games seen: 3\n\nAnd here are the details:\n\n  * Norman, OK\n  * Joplin, MO\n  * St. Louis, MO\n  * Hermann, MO\n  * Jefferson City, MO\n  * Kansas City, MO\n  * Omaha, NE\n  * Sioux Falls, SD\n  * De Smet, SD\n  * Pierre, SD\n  * Black Hills, SD\n  * Box Elder, SD\n  * Rapid City, SD\n  * Jewel Cave\n  * Wind Cave\n  * Hot Springs, SD\n  * Cheyenne, WY\n  * Greely, CO\n  * Denver, CO\n  * Grand Junction, CO\n  * Arches National Park, UT\n  * Cedar City, UT\n\nWe got to watch the OKC Dodgers, St. Louis Cardinals, and Kansas City Royals\nall play and in each case the home team won. This was good because none of the\nMLB teams we saw were playing the LA Dodgers, and it\u2019s always fun to see the\nhome team win.\n\nFinally, I also learned some things on the trip:\n\n  * There's a ton of stuff to do in Norman\n  * Missouri is _really_ into World War I and its kind of weird\n  * Omaha is the Silicon Valley of the midwest ... so much so that they call it the Silicon Prairie\n  * Denver isn't actually in the mountains. It's just really high in the Great Plains on the way to the Rockies\n  * Grand Junction In NOT a mountain town\n  * Cedar City is more than just the little Main Street that I've seen before ... we stayed at a farm while we were there\n\nThe family is all glad to be home, and tomorrow it\u2019s back to normal life. I\nhave to say, I\u2019m really looking forward to it.\n\n", "2019-07-28", "epic-family-road-trip-2019-edition", "My daughter Abby was in the Robotics class at school this year. This gave her\n(and us as a family) the opportunity to go to the [Global Conference on\nEducational and Robotics](https://kipr.org/global-conference-on-educational-\nrobotics) which was held in Norman, Oklahoma.\n\nBeing in Oklahoma we had a golden opportunity to road trip from \u2026\n\n", "Epic Family Road trip - 2019 edition", "https://www.ryancheley.com/2019/07/28/epic-family-road-trip-2019-edition/"], ["ryan", "musings", "## What is Error Culture?\n\nIt's inevitable that at some point a service 1 will fail. When that service\nfails you can either choose to be alerted, or not. Because technology is so\nimportant to so many aspects of work, not getting an alert for a failing\nservice isn't really an option. So we enable alerts ... for EVERYTHING.\n\nThis is good in that we know when things have gone bad ... but it's bad in\nthat we can start to ignore these alerts because we get false positives. If\nyou hear comments like,\n\n> Oh yeah, that error always comes up, but we just ignore it because it\n> doesn't mean anything\n\nor\n\n> We don't really know why that error occurs, but it doesn't seem to impact\n> anything, so we just ignore it\n\nThis is what I am calling, \"Error Culture\".\n\n## OK, but why is that bad?\n\nInitially, it might not _feel_ bad.\n\n**EVERYONE** knows that you can ignore that error because it doesn't mean\nanything. Of course, this knowledge tends to **NOT** be documented anywhere,\nso when you onboard new team members they don't know what **EVERYONE** knows\n... because they weren't part of the **EVERYONE** that learned the lesson.\n\nAdditionally, if you're getting error messages and nothing truly bad every\nhappens, then a few things can happen:\n\n  1. People start to question ALL of the alerts. I mean, if this one isn't valid, why is this OTHER one valid? Maybe I can ignore both \ud83e\udd37\u200d\u2642\ufe0f\n  2. You may be getting an alert about a small thing that can be ignored until it's a BIG thing. I think this image does good job of illustrating the point (found [here](https://naksecurity.medium.com/the-detriments-of-hero-culture-3fc455963d6e))\n\n![We have a Problem\nHere!](https://miro.medium.com/v2/resize:fit:854/format:webp/1*QQvTuD-5AH2NKdh1_B_teQ.jpeg)\n\n## Why does it happen?\n\nIn general, I've found that error culture can happen for a few reason\n\n### Error Fatigue\n\nIf you get 1000 alerts every day, you're not going to be able to do anything\nabout anything. This is similar phenomenon to 'Alert Fatgiue' which can happen\nin software applications (my experience is in Electronic Health Record\nsystems) where users can just click `OK` or `Cancel` when an alert shows up\nand users may not actually see that there is a problem\n\n### Lack of understanding of what the error is\n\nIt's surprising to find that people that receive alerts and they just delete\nthem. They do this not out malice, but because they honeslty do not know what\nthe alert is for. They were maybe opted into the alert (with no way to opt\nout) and therefore have no idea why they get it or what they are supposed to\ndo with it. They may also be in an organization where asking questions to\nlearn isn't encouraged and will therefore not ask why they are getting the\nalert.\n\n### Lack of understanding of why the error is important\n\nRelated to the item above, but different, a person can receive an alert, but\nthey don't understand why it's important. This is usually manifested in some\nof the things mentioned before. Ideas like,\n\n> well, I've ignored this alert every day for 6 months, I don't know why I\n> need to do anything about it now!\n\n### Lack of understand of who the error will impact\n\nI'm reminded of the Episode of\n[Friends](https://youtu.be/pMuVm1Y669U?si=--E-MDfTWPlHjBqk&t=180) where there\nis a light switch in Chandler and Joey's apartment and they don't know what\nit's for. At the end of the episide Monica is idly flipping the switch off and\non and the camera pans to a Monica and Rachel's apartment where their TV keeps\nturning off and on.\n\nError culture can have a similar feeling. If I get an error every few days,\nbut it doesn't impact me or my work I am likely to ignore it. It could be that\nthe error is unimporatnt for me, but HUGELY important for you. This is a case\nwhere the error is being directled incorrectly. If we both got the error you\ncould see that I got the email and then ask, hey, are you going to do anything\nabout this?\n\n### Emphasis on Hero Culture\n\nThis is probably the worst of all possibilities. Some cultures tend to\nemphasize Heroes or White Knights. They appreciate when someone comes in and\n'Saves the Day'. Sometimes people get promoted because of this.\n\nThis tends to disincentivize the idea of fixing small problems before they\nbecome BIG problems. I might be getting an alert about an issue, but it's not\na BIG deal and won't be for some time. Once it becomes a big deal I'll know\nhow to fix it quickly, and I will. When I do, I'll be celebrated. Who wouldn't\nwant that?\n\nIn this post I've identified some of the characteristics of Error Culture.\n\nIn the next post I'll talk about how to tell if you're in an Error Culture.\n\nIn the final post I'll write about what you might be able to do to mitigate,\nand maybe even eliminate, Error Culture where you are.\n\n  1. When I say service here I mean very loosely anything from a micro service up to a physical server. \u21a9\ufe0e\n\n", "2023-10-29", "error-culture", "## What is Error Culture?\n\nIt's inevitable that at some point a service 1 will fail. When that service\nfails you can either choose to be alerted, or not. Because technology is so\nimportant to so many aspects of work, not getting an alert for a failing\nservice isn't really an \u2026\n\n", "Error Culture", "https://www.ryancheley.com/2023/10/29/error-culture/"], ["ryan", "musings", "In my last post I spoke about the idea of [Error\nCulture](https://www.ryancheley.com/2023/10/29/error-culture/). In that post I\ndefine what error culture. This time I'll talk about when it starts to happen.\nFor a recap go back and read that before diving in here.\n\n# When does error culture start?\n\nError culture can start because of internal reason, external reason, or both\nand are almost always driven by the best of intentions. Error culture starts\nto happen because we don't finish the alert process. That is, we set up the\nalerts, but we don't indicate why they are important or what to do about them\nwhen we're notified.\n\n## Internal\n\nInternal pressures driving error culture can usually be traced back to someone\n(usually someone important 1) declaring that \u2018we\u2019 need to be notified of when\n\u2018this\u2019 happens again. In and of itself self, this is actually a really good\nidea.\n\nBut if the important person doesn't identify **why** we need to be notified\nall that happens is that an alert is set up and NO ONE knows what to do when\nit fires off.\n\nThe opposite side of the coin here is being proactive in wanting to be\nnotified when a bad thing **might** happen and being notified **might** be\nuseful. Again, if there is no definition for why the alert might be useful,\nyou're simply creating noise and encouraging alerts to be ignored.\n\n## External\n\nExternal pressures that can drive error culture are similar to internal ones.\nThere are some slight differences though.\n\nFor example, a consultant might indicate that it is `best practice TM` to be\nnotified of an alert. However, they don't provide more context for why it's\nbest practice. It could very well be that the recommendation IS best practice,\nbut for a user base that is 100x your user base, or for an organization that\nis 1/10th your size. Context matters and while best practices should scale,\nthey don't always.\n\nAnother example of external drivers are software applications provided by\nthird party vendors with default alerts enabled but no context or steps for\nresolution. Sometimes there will be documentation describing the alert\nprocess, but without the context for why the alert is important it's just as\nlikely to be ignored.\n\nSo far in this series we've seen what error culture is,and when it starts to\nhappen. In the next post I'll talk about how to identify if you're in an error\nculture.\n\n  1. important here just means someone with influence \u21a9\ufe0e\n\n", "2023-11-09", "error-culture-part-ii", "In my last post I spoke about the idea of [Error\nCulture](https://www.ryancheley.com/2023/10/29/error-culture/). In that post I\ndefine what error culture. This time I'll talk about when it starts to happen.\nFor a recap go back and read that before diving in here.\n\n# When does error culture start?\n\nError culture can \u2026\n\n", "Error Culture Part II", "https://www.ryancheley.com/2023/11/09/error-culture-part-ii/"], ["ryan", "musings", "# How can I tell if I'm in an error culture?\n\nIn part 1 I spoke about the idea of [Error\nCulture](https://www.ryancheley.com/2023/10/29/error-culture/). In that post I\ndefine what error culture.\n\nIn part 2 I spoke when [Error\nCulture](https://www.ryancheley.com/2023/11/09/error-culture-part-ii/) starts.\nThis time I'll talk about how you can tell if you're living in an Error\nCulture, and what you can do about it.\n\nBelow are a couple of tell-tale signs I've found to determine if you're living\nin an error culture.\n\n## Email Rules\n\nYou start your day and fire up your email client. As the application opens up\nyou see the number of unread message go from 500 down to 20. You think back to\na time when you would open your email client and have to trod through ALL 500\nof those emails. Now though ... now you've outsmarted the email system by\nimplementing several rules to ignore or hide those pesky emails that don't\nseem to mean anything.\n\n## Instinct to just delete emails\n\nMaybe you don't know about the amazing opportunities that email client rules\noffer, so you start going through your emails. You delete the ones you\n**know** aren't useful or don't mean anything.\n\nOr maybe you do know about rules and of the remaining 20 you notice a few new\nemails that you don't need to act on. Your first instinct is to delete them,\nbut you remember you are a smart email user and create a new rule to get rid\nof those emails as well.\n\n## Why do I get this email anyway?\n\nIf you use rules, you recall a time before you had them. A time when you would\nmethodically read each email and write down a quick note to ask a co-worker,\nor your boss at your next one on one. But when you brought up the alerts you\nhad one of two reactions:\n\n  * Oh those ... yeah, you can just delete them. They don't mean anything\n  * Ugh ... how do you **not** know what that is for? Fine, let me explain it to you ... **again**\n\nThe first item is definitely error culture. The second response could be error\nculture if the person you've asked is just so overwhelmed with all of the\nalerts ... OR it could just be a toxic culture. If it's a toxic culture, I'm\nsorry, but this post might not be helpful in solving that problem.\n\nIf you're not in the second situation you may (rightfully) ask\n\n> why do we get it if we can just delete it?\n\nAnd if the answer is \ud83e\udd37\u200d\u2642\ufe0f then you might be in an error culture.\n\nIn general, if no one knows WHY we're getting an email and there is no\nactionable direction, you might be in an error culture.\n\n## Email Alerts\n\nAsk yourself, your peers, and your boss this question\n\n> Is this alert we are getting actually important?\n\nIf the answer is No, then delete the mechanism that generates the error. Don't\njust create a rule to delete the alert.\n\nIf the answer is Yes, then ask\n\n> Is the alert you are getting actionable?\n\nIf the answer is No then update the alert to be actionable. This can be done\nby\n\n  1. Including steps to resolution or documentation link for resolving the error\n  2. Update the alert to indicate it\u2019s importance\n  3. Update the alert to go to the correct people\n\nIf the answer is Yes then\n\n  1. Make sure the error indicates what the fix needs to be\n  2. Make sure the error indicates why it\u2019s important, or a link to documentation that explains it\n  3. Make sure the right people are being notified\n\nPoint three here is really important. To determine if the correct people are\nbeing notified ask this questions of EVERYONE that receives the alert:\n\n> Are you the correct person to do something to fix the error\n\nIf the answer is No then getting removed from the email is the best course of\naction.\n\nOf course, it could be that no one ever told you why you were getting the\nalert so the decision to remove people from alerts may need to be a management\nlevel decision, but it can at least start the conversation.\n\nIf the answer is Yes then do you (i.e. the person being asked) know what to do\nto fix the error\n\nAgain, with a simple yes or no response, you have two options:\n\nYes: Does the error indicate what the fix needs to be or where to go to find\nout? No: Work to update the error to make it actionable\n\nThis can help to get the right people getting the alerts.\n\nBelow is a flow chart to help make alerts better\n\n![Diagram of how to make alerts better](/images/alert_flow_diagram.png)\n\nNone of this is easy to change. You may have managers that don't answer your\nquestions when asking about if someone should receive an alert.\n\nYou may not get feedback from your peers, or manager about cleaning up the\nalert system. But if you can become a champion for the effort it will be very\nhelpful for everyone involved.\n\nIf you implement something like this you can increase the signal to noise\nratio for you and your team. That seems like a big win for everyone.\n\n", "2023-11-14", "error-culture-part-iii", "# How can I tell if I'm in an error culture?\n\nIn part 1 I spoke about the idea of [Error\nCulture](https://www.ryancheley.com/2023/10/29/error-culture/). In that post I\ndefine what error culture.\n\nIn part 2 I spoke when [Error\nCulture](https://www.ryancheley.com/2023/11/09/error-culture-part-ii/) starts.\nThis time I'll talk about how you can tell if you're living \u2026\n\n", "Error Culture Part III", "https://www.ryancheley.com/2023/11/14/error-culture-part-iii/"], ["ryan", "musings", "The 2024-25 season for the [Coachella Valley\nFirebirds](https://cvfirebirds.com/) ended on [May 9th with a\n2-0](https://theahl.com/stats/game-summary/1027712) loss to the [Abbotsford\nCanucks](https://abbotsford.canucks.com/). Overall, that series saw the\nFirebirds score\n\n  * one goal in [Game 1](https://theahl.com/stats/game-summary/1027709)\n  * one goal in [Game 2](https://theahl.com/stats/game-summary/1027710)\n  * five goals in [Game 3](https://theahl.com/stats/game-summary/1027711)\n  * no goals in [Game 4](https://theahl.com/stats/game-summary/1027712)\n\nThis isn't surprising given exactly how young the Firebirds were this season,\nbut it was disappointing.\n\n[Coach Laxdal](https://en.wikipedia.org/wiki/Derek_Laxdal) talked a lot about\nhow young the team was and how on any given night we would have anywhere from\nseven to nine rookies that were in the starting lineup. And in a team of 24,\nthat's a pretty big portion of guys out there who are very young.\n\nThat being said the disappointment is palpable the this is the earliest that\nthe Firebirds have ever exited the postseason. Granted this is only their\nthird year but we are typically used to seeing hockey for another seven weeks.\nWhen put into that perspective, it is really disappointing.\n\nStill, I think there were some really bright spots from this year, including\n[Leyton Roed](https://theahl.com/stats/player/10083/88/lleyton-roed), [Jani\nNyman](https://theahl.com/stats/player/10127/88/jani-nyman), [Nikke\nKokko](https://theahl.com/stats/player/10186/88/nikke-kokko), [Ryan\nWinterton](https://theahl.com/stats/player/9766/88/ryan-winterton), and [Ty\nNelson](https://theahl.com/stats/player/9764/88/ty-nelson).\n\nAt the start of the season, I did indicate to a friend of mine (who also has\nseason tickets) that I had pretty low expectations for the Firebirds and may\nhave even indicated I wasn't sure that they would make the playoffs. The\nPacific Division has 10 teams and 7 of them make the playoffs. I may have been\na bit too pesimisitic in that analysis.\n\nDuring the first round the Firebirds swept the Wrangerls 2-0. This is great,\nbut they did manage to blow a 3-0 lead in [game\n1](https://theahl.com/stats/game-summary/1027696). The were able to win that\ngame, but it took two plus Overtime periods (it ended a few minutes into the\nthird OT).\n\nGame two of that series did see the Firebirds win 2-0 with Nikke Kokko getting\nhis first professional AHL shutout, which was great . But it's also a bummer\nthat it took until the 74th game of the season for him to get his first\nshutout of the season. 1\n\nIn six games, the Firebirds were 3-3. They scored four goals, two goals, one\ngoal, five goals, one goal, and no goals. They were 0-17 on the power play,\nand they gave up two, count them two, 3 goal leads.\n\nNeedless to say, this was just a hard set of games to watch. The season was\nhard to watch as a fan. The Firebirds would find ways to lose games. In\nprevious seasons these were the games that they would find some way to win!\n\nThere was an article in the Desert Sun that spoke about how proud Coach Laxdal\nwas of the players and how much effort that they gave. And I agree, they did\ngive a lot of effort and he spoke about how young they are.\n\nAnd again, they are young, and missed their captain [Max\nMcCormick](https://theahl.com/stats/player/5611) for basically two thirds of\nthe season. But they did have some veteran players out there [Mitchell\nStephens](https://theahl.com/stats/player/6306/88/mitchell-stephens), [Brandon\nBiro](https://theahl.com/stats/player/8513/88/brandon-biro), [Cale\nFleury](https://theahl.com/stats/player/7382/88/cale-fleury) and [Gustav\nOlofsson](https://theahl.com/stats/player/5471/88/gustav-olofsson).\nUnfortunately it was just too much to try and overcome.\n\nOne of the things that Coach Laxdal also commented on was exactly how much\nyounger next year's team might be. And so while I am again very excited about\nwatching hockey in six months, which is just so long away. I am lowering my\nexpectations for the 25-26 season even lower than they were this year. I'm\nreally hoping we make the playoffs, but won't be surprised if we don't.\n\nAnd that's going to be okay ... because even bad hockey is still hockey. And I\nlove hockey, and even when they lose, I love watching the Firebirds.\n\n  1. During the regular season, there was exactly one shutout by Victor Ostman \u21a9\ufe0e\n\n", "2025-05-21", "firebirds-2024-25-season", "The 2024-25 season for the [Coachella Valley\nFirebirds](https://cvfirebirds.com/) ended on [May 9th with a\n2-0](https://theahl.com/stats/game-summary/1027712) loss to the [Abbotsford\nCanucks](https://abbotsford.canucks.com/). Overall, that series saw the\nFirebirds score\n\n  * one goal in [Game 1](https://theahl.com/stats/game-summary/1027709)\n  * one goal in [Game 2](https://theahl.com/stats/game-summary/1027710)\n  * five goals in [Game 3](https://theahl.com/stats/game-summary/1027711)\n  * no goals in [Game 4](https://theahl.com/stats/game-summary/1027712)\n\nThis isn't surprising \u2026\n\n", "Firebirds 2024-25 Season", "https://www.ryancheley.com/2025/05/21/firebirds-2024-25-season/"], ["ryan", "musings", "On Wednesday June 21, 2023 the local sports puck team (i.e. Hockey), the\n[Coachella Valley Firebirds](https://cvfirebirds.com/) hosted [Game\n7](https://theahl.com/stats/game-center/1025179) of the [Calder\nCup](https://en.wikipedia.org/wiki/Calder_Cup) Finals against the [Hershey\nBears](https://www.hersheybears.com/).\n\nThere are sports writers that can write on how the series went, better than I\ncan so I'll leave that to the pros. What I will talk about is why watching\nthat game and seeing the Firebirds lose in Overtime hit me so hard.\n\nI'm generally an introverted person. Even before the pandemic, I wasn't\nparticularly fond of attending crowded events. The pandemic only intensified\nmy preference for solitude. Suddenly, I found myself being advised to avoid\nsocial interactions altogether. As an introvert, the circumstances\nnecessitating isolation weren't exactly ideal for me, but I did appreciate the\nfact that my family and I had to isolate.\n\nHowever, after 2+ years of isolating from most everyone, being in large groups\nwould bring out anxiety. And when I say large groups I mean like 10, maybe 15\npeople. On December 18th there was work holiday get together, the first one\nsince the pandemic started. There were about 100 people in a mostly enclosed\nspace and I did not do well with it. Super anxious, wore a mask the entire\ntime, and generally ducked into the closet that also serves as my office more\nthan once just to get away from people.\n\nThat same night was the home opener for the Firebirds at Acrisure Arena (due\nto construction delays their home arena opened 2 1/2 months after the start of\nthe season). I didn't know it at the time, but it was a sell out (attendance\nof 10,087). This meant that I was going to a sporting event, in an enclosed\narena with 10,000+ people. To say that I nearly lost my shit would be an\nunderstatement. The only thing that really got me to go was that the tickets I\nhad purchased weren't cheap, and my wife and I were going with another couple\nfriend.\n\nThat [first home game](https://theahl.com/stats/game-center/1024284) was\namazing. The Firebirds won 4-3 over the Tucson Roadrunners. The energy was\namazing and I decided that I _had_ to go to another game. And so I kept going.\nAgain and again and again. I saw 34 games in person with an average attendance\nof 7,500.\n\nI'd like to say that \"just like that\" my anxiety surrounding large indoor\ngatherings was gone, but it wasn't. It took me going to lots of hockey games\nto get through it.\n\nSo coming back to game 7 on Wednesday night. With less than 1 minute into the\nsecond period the Firebirds scored their second goal to go up 2-0. The crowd\nwas the loudest I'd ever heard at Acrisure. Chants of \"we want the cup\" roared\nthrough the arena. It was unreal. And I sat there and realized that if it\nhadn't been for this team my anxiety surrounding large gatherings wouldn't\nhave gone away for probably a very long time. And other than being a HUGE fan,\nI wanted the players, coaches, and team to win because they had helped me deal\nwith something so personal. I won't ever be able to repay them for that, but\nmy cheering them on to try and win the cup could maybe start.\n\nAnd then the unthinkable happened. A penalty was called on the Firebirds and a\nPower Play goal was scored. Then less than 4 minutes later an even strength\ngoal was scored and we were tied at 2 a piece.\n\nThe third period ended without any scorning by either team, and for only the\nsecond time in Calder Cup finals history, the first time since 1953, we were\ngoing to Overtime in a Game 7.\n\nAs we entered Overtime everyone in my section (107) was on their feet. We\nstood for the entire overtime period. Cheering, and screaming (honestly, I was\nstill exhausted from the experience as I wrote this 2 days later).\n\nAbout 2 minutes into the Overtime period Ryker Evan sent a shot on goal. From\nwhere I was sitting I could see the flight of the puck and my heart leapt as I\nthought it would find the back of the net ... but sadly it didn't. Within the\nfirst five minutes of overtime the Firebirds had outshot the Bears 5-0. It\nseemed like we were in control.\n\nThe next 10 minutes was some of the most intense back and forth hockey I'd\never seen.\n\nWith less than 4 minutes on the clock I thought, this might go into double\novertime ... and then the unthinkable happened. The Firebirds defense was\nunable to clear a puck in their end, lots of players in front of the net, and\njust like that I see a puck flying over Joey's shoulder and past the cross\nbar, hitting the back of the net. The Bears player and their fans roared with\njoy, and suddenly a once deafening Acrisure was stunned into silence.\n\nWe lost. They won. The inaugural season was over. I stood in disbelief for a\nminute and then just sat down and stared across the arena at the Bears fans I\ncould see that were losing their minds with joy. I wanted to cry. Some people\naround me did.\n\nI stood up and looked over at our defensive end. The Firebirds players on the\nice had taken a knee as they watched the Bears players celebrate. They don't\nshow that part on TV. The defeated team looking sadly on as the victors\ncelebrate. It was heartbreaking.\n\nAnd then, in the middle of the celebration, the chants of \"Let's go Firebirds\"\nstarted. In short order, the fans were all saying it as loud as they could. An\namazing season that didn't end the way we wanted it to, but we did our best to\nlet the team know what they meant to us.\n\nWhen I started writing this I thought maybe it was just me that needed\nsomething like this to get over some of the anxiety of large indoor\ngatherings, but maybe it was others. And those others at that game let the\nteam know how much we appreciated them and what they did. This team will\nalways hold a special place in the hearts of it's fans.\n\nWe didn't win it all this year, but there's always next year. Always.\n\n## Postlude\n\nA friend of a friend of a friend works at a golf course called the 'Classic\nClub'. There were 3 players that were golfing the next day and they told this\nfriend of a friend of a friend that the chants of \"Let's go Firebirds\" even\nafter the loss meant so much to them.\n\n", "2023-07-01", "firebirds-inaugural-season", "On Wednesday June 21, 2023 the local sports puck team (i.e. Hockey), the\n[Coachella Valley Firebirds](https://cvfirebirds.com/) hosted [Game\n7](https://theahl.com/stats/game-center/1025179) of the [Calder\nCup](https://en.wikipedia.org/wiki/Calder_Cup) Finals against the [Hershey\nBears](https://www.hersheybears.com/).\n\nThere are sports writers that can write on how the series went, better than I\ncan so I'll leave that to \u2026\n\n", "Firebirds Inaugural Season", "https://www.ryancheley.com/2023/07/01/firebirds-inaugural-season/"], ["ryan", "musings", "I got a message on LinkedIn from a former colleague of my from [Arizona\nPriority Care](https://azprioritycare.com) asking me:\n\n> Wanted to pick your brain on something. what do you think the outlook is for\n> a data analyst? Debating a masters program in that and covers a few things\n> but also includes certifications in SAS. Trying to decide if that will \u201cpay\n> off\u201d in the long run or if I should explore different disciplines.\n\nThis was a **really** good question and I thought about it a bit. My response\nwas:\n\n> I think Data Analysis (or Data Science, or Analytics) are all going to play\n> a huge role in business going forward and that it would be a smart move to\n> get a masters degree in one of those. I would avoid any certification\n> programs though, just because they can be less rigorous and don\u2019t seem to\n> have the same weight as a full degree.\n>\n> SAS is an interesting language, but I\u2019d investigate what companies use SAS\n> and make sure that you\u2019d like to work for them (or in the industry). Many\n> companies are turning towards open source Data Analytics tools (like R and\n> Python). But in general, don\u2019t get too hung up on the tool (SAS, Python, R)\n> but really understand what you\u2019re doing with them. Why would I choose this\n> Standard Regression over Two Stage Least Squares. When do I wan to use a\n> Logistics regression model and why. What does the output tell me, and what\n> is it missing.\n>\n> Developing that understanding will allow you to really standout.\n>\n> Good luck with your decision. Let me know which direction you decide to go\n> in,\n>\n> Best,\n>\n> Ryan\n\nI hope that I was able to help my former colleague and was super happy that he\nreached out to me.\n\nI wanted to write this into a more public form just in case in helps someone,\nor just in case I look back on it at some point and it helps me.\n\n", "2020-02-15", "getting-asked-for-advice-on-being-a-data-analyst", "I got a message on LinkedIn from a former colleague of my from [Arizona\nPriority Care](https://azprioritycare.com) asking me:\n\n> Wanted to pick your brain on something. what do you think the outlook is for\n> a data analyst? Debating a masters program in that and covers a few things\n> but also includes \u2026\n\n", "Getting asked for Advice on being a Data Analyst", "https://www.ryancheley.com/2020/02/15/getting-asked-for-advice-on-being-a-data-analyst/"], ["ryan", "musings", "I'm in Orlando for [HIMSS17](http://www.himssconference.org) and and pretty\npumped for my day one session tomorrow which is titled: Business Intelligence\nBest Practices: A Strong Foundation for Organizational Success.\n\nConferences are always a bit overwhelming, but this one is more overwhelming\nthan most. More than 40,000 people all gathered in one convention center to\ndiscuss Healthcare Tech. Kind of awesome and scary!\n\nI'm looking forward to visiting some booths in the exhibition hall, and\nwandering around and stumbling onto some great new things / ideas.\n\nI'm going to write up my impressions of the days events, hopefully including\nnotes, and links to tweets because the tweets will be raw and most uncensored\nimpressions of what I'm seeing / hearing.\n\nHere's the HIMSS 2017!\n\n", "2017-02-19", "himss-2017-day-0", "I'm in Orlando for [HIMSS17](http://www.himssconference.org) and and pretty\npumped for my day one session tomorrow which is titled: Business Intelligence\nBest Practices: A Strong Foundation for Organizational Success.\n\nConferences are always a bit overwhelming, but this one is more overwhelming\nthan most. More than 40,000 people all gathered in \u2026\n\n", "HIMSS 2017 - Day 0", "https://www.ryancheley.com/2017/02/19/himss-2017-day-0/"], ["ryan", "musings", "I was able to make it to 5 educational sessions today. And the good thing is\nthat I learned something at each one. I think the highlight of the day for me\nwas actually my first session titled, _Stacking Predictive Models to Reduce\nReadmissions_.\n\nA couple of key things from that presentation was the idea of focusing on a\npatient that readmits, not just from a clinical perspective, but from a human\nperspective. There were lots of technology that they used to help the care\ncoordinators identify who was going to readmit, but the why of the readmission\nwas always done via human interaction. I think that may be the single most\nimportant thing to remember.\n\nSomething else that was mentioned was that the grou got their tool out quickly\ninstead of trying to be perfect. It went through a couple of iterations in\norder to get a tool that was usable by all their various clinics.\n\nSome other key takeaways from today:\n\n  * We need to focus on Augmented Human Intelligence instead of Artificial Intelligence (from **How Machine Learning and AI Are Disrupting the Current Healthcare System** )\n  * Don\u2019t treat Cloud Service Providers as **Plug and Play** vendors (from _HIPAA and a Cloud Computing Shared Security Model_ )\n  * Creation of a committee of \u2018No\u2019 to help flesh out ideas before they are implemented (from **Intrapreneurship and the Approach to Innovation From Within** )\n  * Think about how to operationalize insights from data, and not just explore the data (from **Beyond BI: Building Rapid-Response Advanced Analytics Unit** )\n\nThat\u2019s a wrap on day 1 at HIMSS. Day 2 looks to be just as exciting (meet with\nsome vendors, attend some more educational sessions, go to a sponsored\nluncheon).\n\n", "2018-03-07", "himss-day-1-impressions", "I was able to make it to 5 educational sessions today. And the good thing is\nthat I learned something at each one. I think the highlight of the day for me\nwas actually my first session titled, _Stacking Predictive Models to Reduce\nReadmissions_.\n\nA couple of key things from \u2026\n\n", "HIMSS Day 1 Impressions", "https://www.ryancheley.com/2018/03/07/himss-day-1-impressions/"], ["ryan", "musings", "Day 2 was a bit more draining than day 1, but that was mostly because I made\nmy way into the exhibition hall for the first time. That many people and that\nmuch cacophony always leave me a bit ... drained.\n\nOn the flip side I went to several good presentations (a couple on Block\nChain).\n\nToday\u2019s sessions were:\n\n  * Empowering Data Driven Health\n  * Blockchain 4 Healthcare: Fit for Purpose\n  * The Use of Blockchain to Improve Quality Outcomes\n\nOne of the more interesting things I heard today was that in Health Care, tech\nspending has gone up (over the last 20 years) but so has overall health\nspending. Usually we see Tech spending go up and other spending levels off (or\ngoes down!).\n\nSomething else to consider (that I never had) was that \u201cwe need to think about\ndoing what\u2019s most cost effective for a person in their **lifetime** not just\nepisodically!\n\nThe Blockchain sessions I went to were enlightening, but I\u2019m still not sure I\nunderstand what it is and how it works (perhaps I\u2019m just trying to make it\nmore complicated than it is).\n\nThat being said, the consensus was that Blockchain is not a panacea for all\nthe ails us. It is a tool that should be used in conjunction with current\nsystems, not a replacement of those systems.\n\nSomething else of note, there isn\u2019t a single implementation of Block Chain,\nthere are almost 20 variations of it (although the IEEE is working on\nstandardizing it). This leads me to believe that it is simply too new and too\n\u2018wild\u2019 to be implemented just yet.\n\nThat being said, I think that if/when Microsoft bundles or includes BlockChain\n(in some way) into SQL Server, then it might be the time to look at\nimplementing it in my organization.\n\nIn my last session (another on eon BlockChain) the idea of using BlockChain to\neffect quality measures was discussed. The main point of the speaker was that\nBlockchain may allow us to give agency to patients over their health data.\n\nAnother interesting point was that Blockchain may be able to allow us to\ndynamically observe quality measurement instead of just at point of care. This\ncould lead to higher quality and lower costs.\n\nOverall, the BlockChain talks were good, and kind of helped point me in the\nright direction on what questions to start asking about it.\n\nWell, day 2 is in the books. One more day of educational sessions and\nexhibits!\n\n", "2018-03-08", "himss-day-2", "Day 2 was a bit more draining than day 1, but that was mostly because I made\nmy way into the exhibition hall for the first time. That many people and that\nmuch cacophony always leave me a bit ... drained.\n\nOn the flip side I went to several good presentations \u2026\n\n", "HIMSS Day 2", "https://www.ryancheley.com/2018/03/08/himss-day-2/"], ["ryan", "musings", "One of the issues that any medium- to large-organization can encounter is how\nto deal with requests that place a requirement of work from one department to\nanother. Specifically, requests for something shiny and new (especially\ntechnology).\n\nIn the first educational session of the day, **Strategic Portfolio Management:\n\u201cGoverning the Ungoverned\u201d** I heard [Effie\nEconompolous](https://www.linkedin.com/in/effie-economopoulos-94a23a6/ \"Effie\nEconomopoulos\") discuss UI Health\u2019s transformation from an organization that\nhad very little control over their IT projects to one that has transformed\ninto a highly regulated Project Management Organization.\n\nMy key takeaways from this talk were:\n\n  * segregation of Projects (with a capital P) from Incidents and Problems\n  * The IT Roadmap was posted on the intranet for all to see\n  * Projects that are \u2018IT\u2019 related don\u2019t just include the time of resources from IT, but also time and resources from impacted departments throughout the organization\n\nThese are some amazing points. My only real question was, If you segregate\nProjects from Incidents and Problems, how do you \u2018train\u2019 users for Project\nsubmission. How are they do know the difference between the two (sometimes\nusers aren\u2019t even sure which system is broken when reporting problems in the\nfirst place). I\u2019m not sure of the answer, but I\u2019m sure it\u2019s just thought more\neducation and tighter controls over submission of requests.\n\nThere was a real time poll during the session which asked, \u2018What is the most\nsignificant challenge in your organization?\u2019. Fifty percent of attendees that\nresponded indicated inconsistent priorities as the (which is what I answered\nas well). Turns out, we\u2019re not alone.\n\nA lot of the talk focused on the process that UI Health uses which had gone\nthrough 3 iterations in 2 years. It seemed like it would work for a large(ish)\nhospital or hospital system, but seemed too bureaucratic for my organization.\n\nOverall, a very good talk and I\u2019m glad I went. I believe I have some real\nactionable ideas that I can take away.\n\nMy second educational session of the day **Improving Patient Health Through\nReal-Time ADT Integration** I heard about a Managed Medical Group from\nMinnesota and their journey to get ADT feeds into the Care Management system.\n\nI was hoping to hear something a little more helpful, but while their\nsituation was similar to the one we have at my organization, it was different\nenough that all I really heard was that, although my organization doesn\u2019t have\nADT feeds (yet) we seem to be a bit ahead of them in many other areas of\nmanaged care.\n\nThe tips that they offered up (getting user buy-in, working through issues\nwith all of the various vendors) were things I had already known would need to\nbe done.\n\nOne thing I did hear, that I hope I don\u2019t have to go through, is a \u2018Live\u2019\ntesting process where we get all of the vendors, hospital IT and group IT on\nthe phone to test the system in a \u2018Live\u2019 environment to identify deficiencies.\n\nI also hope that any user manual we have to create isn\u2019t 70 pages like the one\nthey have (eeek!!!).\n\nI think it will also be important to have metrics regarding efficiencies\nbefore and after any ADT implementations to make sure that we have actually\ndone something helpful for the organization and the member.\n\nMy third talk **Closed Loop Referral Communications** was a bit of a\ndisappointment. A group from North Carolina reviewed how they closed the loop\non referral management.\n\nI was hoping for some key insights, but it ended up being mostly about stuff\nthat we had already done (identifying workflow issues, automating where\npossible) but they still have a fundamental issue with external provider\nreferrals (just like us). I guess I was just hoping that someone would have\nsolved that problem, but if they have, they aren\u2019t sharing the information.\n\nMy forth session **Breaking Down Barriers with Master Data Management and Data\nGovernance** was really interesting and in the same vein as the first talk of\nthe day.\n\nSeveral good points mentioned during the talk:\n\n  * Limited access to data leads to duplication of efforts and numerous sources of the \u2018truth\u2019\n  * If you have Tech and People then you get \u2018automated chaos\u2019 ... this is why we NEED process\n  * Difficult to turn data into actionable information\n  * Significant barriers to accessing information\n  * use reference data regarding report creation ... instead of asking the report requester questions, you need domain experts to define various categories (Diabetes, sepsis).\n  * Best Version of the Truth and Golden Record ... need to review this and see how it applies to DOHC/AZPC\n\nThe most astounding thing I heard was that each report costs between \\$1k and\n\\$5k to create ... 40% are used 5 times or less! What a source of potential\nwaste that could perhaps be \u2018solved\u2019 by self service. We need to have metrics\nthat show not many reports have we created, but instead how many are bing\nused!\n\nThe lessons learned by speaker :\n\n  * Governance: keep information at forefront for all front line areas\n  * Governance: not a one time effort, it\u2019s on-going\n  * KPI Standardization: requires resilience\n  * KPI Standardization: processes that work around the system need to be identified and brought into the fold\n\nThe fifth talk of the day **From Implementation to Optimization: Moving Beyond\nOperations**. Much of what was presented resonated with me and was stuff that\nwe have dealt with. It was nice to know that we\u2019re not alone! The most\ninteresting part of the talk were the 2 polls.\n\nThe first one asked, \u201cDo you use an objective tool for prioritization of\nincoming work?\u201d Most responses were for No, but would be interested (47%);\nnext response was yes but we bypass (32%). Only about 20% have one, use it and\nit\u2019s effective\n\nThe second poll asked, \u201cDo you collaborate with Clinical Stakeholders?\u201d Most\nresponses were yes and split 2-1 between Yes and there\u2019s tension to Yes and\nwe\u2019re equal partners (which is where I think we\u2019re at).\n\nMy Last talk of the day, **How Analytics Can Create a Culture of Continuous\nImprovement**. It was an interesting talk that focused on using Analytics to\ndrive continuous improvement. Some of the things that really caught my\nattention were the ideas of implementing continuous improvement is part of the\njob description. Part of that was something that is stated in the New Employee\nOrientation, \u201cDo the job you were hired for and make it better.\u201d\n\nAnother interesting point was that there is no one Big Bang solution for\nEmergency Department throughput (though the idea can be applied to any problem\nyou\u2019re facing). You need to look at improving each step a little bit along the\nway.\n\nBut, in order to do this effectively, you need data, team and a process. This\nreminded me of the **Breaking Down Barriers with Master Data Management and\nData Governance** talk I was at earlier in the day!\n\nIt was a great final day at HIMSS.\n\nI\u2019ve learned a ton at this conference and writing about it (like this) has\nreally helped to solidify some thoughts, and make me start asking questions.\n\nI\u2019ll need to remember to do this at my next conference.\n\n", "2018-03-08", "himss-day-3", "One of the issues that any medium- to large-organization can encounter is how\nto deal with requests that place a requirement of work from one department to\nanother. Specifically, requests for something shiny and new (especially\ntechnology).\n\nIn the first educational session of the day, **Strategic Portfolio Management:\n\u201cGoverning the \u2026**\n\n", "HIMSS Day 3", "https://www.ryancheley.com/2018/03/08/himss-day-3/"], ["ryan", "musings", "I've gone through all of my notes, reviewed all of the presentations and am\nfeeling really good about my experience at HIMSS.\n\nTakeaways:\n\n  1. We need to get ADT enabled for the local hospitals\n  2. We need to have a governance system set up for a variety of things, including data, reporting, and IT based projects\n\nBelow are the educational sessions (in no particular order) I attended and my\nimpressions. Mostly a collection of _interesting_ facts (I've left the Calls\nto Action for my to do list).\n\n**Choosing the Right IT Projects to Deliver Strategic Value** presented by\n[Tom Selva](https://www.linkedin.com/in/thomas-selva-49207351) and [Seth\nKatz](https://www.linkedin.com/in/sethjeremykatz) they really hit home the\nidea that there is a relationship between culture and governance. The culture\nof the organization has to be ready to accept the accountability that will\ncome with governance. They also indicated that process is the most important\npart of governance. Without process you **CANNOT** have governance.\n\nIn addition to great advice, they had great implementation strategies\nincluding the idea of requiring all IT projects to have an elevator pitch and\na more formal 10 minute presentation on why the project should be done and in\nwhat way it aligned with the strategy of the organization.\n\n**Semantic data analysis for interoperability** presented by [Richard E.\nBiehl, Ph.D.](http://iems.ucf.edu/mshse) showed me that there was an aspect of\ndata that I hadn't ever had to think about. What to do when multiple systems\nare brought together and define the same word or concept in different ways.\nSpecifically,, \"Semantic challenge is the idea of a shared meaning or the data\nthat is shared\". The example on relating the concept of a migraine from ICD to\nSNOMED and how they can result in mutually exclusive definitions of the same\n'idea' was something I hadn't ever really considered before.\n\n**Next Generation IT Governance: Fully-Integrated and Operationally-Led**\npresented by [Ryan Bosch, MD, MBAEHS](https://www.linkedin.com/in/ryan-bosch-\nmd-46b921) and [Fran Turisco, MBA](https://www.linkedin.com/in/fran-\nturisco-015096a) hit home the idea of **Begin with the End in mind**. If you\nknow where you're going it's much easier to know _how_ to get there. This is\nsomething I've always instinctively felt, however, distilling it to this\nshort, easy to remember statement was really powerful for me.\n\n[Link to HIMSS\nPresentation](http://www.himssconference.org/sites/himssconference/files/pdf/206.pdf)\n\n**Developing a \u201cNeed-Based\u201d Population Management System** presented by Rick\nLang and [Tim Hediger](https://www.linkedin.com/in/tim-hediger-a1765) hammered\nhome the idea that \"Collaboration and Partnering are KEY to success\". Again,\nsomething that I _know_ but it's always nice to hear it out loud.\n\n[Link to HIMSS\nPresentation](http://www.himssconference.org/sites/himssconference/files/pdf/124_0.pdf)\n\n**Machine Intelligence for Reducing Clinical Variation** presented by [Todd\nStewart, MD](https://www.linkedin.com/in/rowland-todd-stewart-md-7a85b6b) and\n[F.X. Campion, MD, FACP](https://www.linkedin.com/in/francis-campion-b3a8047)\nwas one of the more technical sessions I attended. They spoke about how\nArtificial Intelligence and Machine Learning don't replace normal analysis,\nbut instead allow us to focus on what hypothesis we should test in the first\nplace. They also introduced the idea (to me anyway) that data has _shape_ and\nthat _shape_ can be analyzed to lead to insight. They also spoke about\n'Topological Data Analysis' which is something I want to learn more about.\n\n[Link to HIMSS\nPresentation](http://www.himssconference.org/sites/himssconference/files/pdf/110.pdf)\n\n**Driving Patient Engagement through mobile care management** presented by\n[Susan Beaton](https://www.linkedin.com/in/susan-beaton-7848071b) spoke about\nusing _Health Coaches_ to help patients learn to implement parts of the care\nplan. They also spoke about how \"Mobile engagement can lead to increased\nfeeling of control for members\" These are aspects that I'd like to see my\norganization look to implement in the coming months / years\n\n[Link to HIMSS\nPresentation](http://www.himssconference.org/sites/himssconference/files/pdf/97_0.pdf)\n\n**Expanding Real time notifications for care transitions** presented by\n[Elaine Fontaine](https://www.linkedin.com/in/elaine-fontaine-3b68144) spoke\nabout using demographic data to determine the best discharge plan for the\npatient. In one of the presentations I saw (Connecticut Hospitals Drive Policy\nwith Geospatial Analysis presented by Pat Charmel) the presenter had indicated\nthat as much as 60% of healthcare costs are determined by demographics. If we\ncan keep this in mind we can help control healthcare costs much more\neffectively, but it lead me to ask:\n\n  * how much do we know\n  * how much can we know\n  * what aspects of privacy do we need to think about before embarking on such a path?\n\n[Link to HIMSS\nPresentation](http://www.himssconference.org/sites/himssconference/files/pdf/82_0.pdf)\n\n**Your Turn: Data Quality and Integrity** which was more of an interactive\nsession when asked the question \"What would a National Patient Identifier be\nuseful for?\" most attendees in audience felt that it would help with\ninformation sharing\n\n**Predictive Analytics: A Foundation for Care Management** presented by\n[Jessica Taylor, RN](https://www.linkedin.com/in/jessica-taylor-56039864) and\nAmber Sloat, RN I saw that while California has been thinking about and\npreparing for value based care for some time, the rest of the country is just\ncoming around to the idea. The hospital that these Nurses work for are doing\nsome very innovative things, but they're things that we've been doing for\nyears. The one thing they did seem to have that we don't is an active HIE that\nhelps to keep track of patients in near real time. I would love to have! One\nof the benefits of a smaller state perhaps (they were from Maine)?\n\n[Link to HIMSS\nPresentation](http://www.himssconference.org/sites/himssconference/files/pdf/44.pdf)\n\n**A model of data maturity to support predictive analytics** presented by\n[Daniel O\u2019Malley, MS](https://www.linkedin.com/in/daniel-o-malley-49995b8) was\nfull of lots of charts and diagrams on what the University of Virginia was\ndoing, but it was short on how they got there. I would have liked to have seen\nmore information on roadblocks that they encountered during each of the stages\nof the maturity. That being said, because the presentation has the charts and\ndiagrams, I feel like I'll be able to get something out of the talk that will\nhelp back at work.\n\n[Link to HIMSS\nPresentation](http://www.himssconference.org/sites/himssconference/files/pdf/19.pdf)\n\n**Emerging Impacts on Artificial Intelligence on Healthcare IT** presented by\n[James Golden, Ph.D.](https://www.linkedin.com/in/jigolden) and Christopher\nRoss, MBA. They had a statistic that 30% of all data in the world is\nhealthcare data! That was simply amazing to me. They also had data showing\nthat medical knowledge doubles every THREE years. This means that between the\ntime you started medical school and the time you were a full fledged doctor\nthe amount of medical knowledge could have increased 4 to 8 fold! How can\nanyone keep up with that kind of knowledge growth? The simple answer is that\nthey can't and that's why AI and ML are so important for medicine. But equally\nimportant is how the AI/ML are trained.\n\n[Link to HIMSS\nPresentation](http://www.himssconference.org/sites/himssconference/files/pdf/300_0.pdf)\n\n", "2017-02-25", "himss-recap, Conferences", "I've gone through all of my notes, reviewed all of the presentations and am\nfeeling really good about my experience at HIMSS.\n\nTakeaways:\n\n  1. We need to get ADT enabled for the local hospitals\n  2. We need to have a governance system set up for a variety of things, including data, reporting \u2026\n\n", "HIMSS Recap", "https://www.ryancheley.com/2017/02/25/himss-recap, Conferences/"], ["ryan", "musings", "I had meant to do a write up of each day of my HIMSS experience, but time got\naway from me, as did the time zone change, and here I am at the end of HIMSS\nexperience with only my day 0 notes down on _paper_.\n\nDay 1 started with a rousing Keynote by Ginni Rometty, the CEO of IBM. The\nthings that struck me most about her keynote were here sense of optimism about\nthe future sprinkled with some caution about AI, Machine Learning and Big\nData. She reminded us that the computers that we are using for our analyst is\nare tools to help, not replace, people and that it is incumbent upon us, the\nleaders of HIT, to keep in the front of our minds how these BIG Data AI/ML\nalgorithms were trained. As the old saying goes, \"Garbage In, Garbage Out\"\n\nI also was able to record a bit of [her keynote\nspeech](https://www.dropbox.com/s/ou0kgdfnwyrxdsa/Ginni%20Rometty.m4a?dl=1)\njust in case I need to find and listen to it later.\n\nI tweeted a couple of times during the keynote (and even got some likes and\nretweets ... not something I'm used to getting)\n\n> `Transparency in the Era of Cognition with the help of @ibmwatson #himss17`\n>\n> `Artificial intelligence is out of its winter ... I sure hope so, but time\n> will tell #himss17`\n>\n> `Integration in workflow is the key to adoption #himss17`\n>\n> `Don't let others define you. Great words from @GinniRometty #himss17`\n>\n> `Growth and comfort never coexist. Another great gem from @GinniRometty\n> #himss17`\n\nI spent almost all of my time on day 1 in educational sessions. One things\nthat I noticed from my first class was just how _FULL_ it was 15 minutes\nbefore the session even started!\n\n> `The Emerging Impacts of AI on HIT was full 15 minutes before the session\n> started! Something tells me lots of ppl interested in AI #HIMSS17`\n\nSometimes the session title were a bit misleading, but eventually most of them\nwould come around. A class with a title of _Connecticut Hospitals Drive Policy\nwith Geospatial Analysis_ was more about the Connecticut Hospitals and less\nabout the Geospatial Analysis, but in the end I was what I was hoping to see\nwhich was people using Geospatial Analysis to help identify, and perhaps risk\nstratify patients to give the best care possible.\n\nMy tweet when the class was over:\n\n> `Great talk on #geospatial analysis. So many ideas floating through my head\n> now on potential actions and analysis #HIMSS17`\n\nI ended my HIMSS 2017 experience on a high note with a great session titled\n_Choosing the Right IT Projects To Deliver Strategic Value_. I'm still\nprocessing everything that came out of that session, but it left me feeling\nvery positive about the future. It was nice to have the same, or at least very\nsimilar, feeling of optimism at the end of HIMSS as I had at the beginning\nafter Mrs. Rometty's Keynote.\n\nI'll be writing up my notes and linking to the presentations later this week\n(maybe whilst I'm flying back home to California tomorrow).\n\nThis is a conference I am overwhelmed by but am glad I am coming to.\n\nWhile it's fresh in my mind, strategies for next year:\n\n  * Pick 1 - 3 strategic challenges you want to solve. Then identify 10 - 20 vendors that can help solve that problem. Talk to them, schedule appointments with them. Get more information than you know what to do with\n  * Work on being a presenter. It will help check off that 'Speak in front of large groups of people' item on your _Bucket List_\n\n", "2017-02-23", "himss-review", "I had meant to do a write up of each day of my HIMSS experience, but time got\naway from me, as did the time zone change, and here I am at the end of HIMSS\nexperience with only my day 0 notes down on _paper_.\n\nDay 1 started with \u2026\n\n", "HIMSS review", "https://www.ryancheley.com/2017/02/23/himss-review/"], ["ryan", "musings", "I have been wanting to put shelves up in my office above my desk for some\ntime. The problem has been that the ones that are sold at Lowe\u2019s or Home Depot\nare not really what I wanted (too short) and I\u2019m not a super handy guy with\nbuilding stuff (that\u2019s more my dad and brother) so I\u2019ve just been putting it\noff. For an embarrassingly long time.\n\nLast a couple of weekends ago my dad had volunteered to help me out in putting\nup some shelves.\n\nOn Saturday at 8:30 we started. All in all the process went really, really\nwell. Only one extra trip to the hardware store (it\u2019s usually about 3) and the\nshelves were nice and level.\n\nSince I wanted the shelves above my desk we needed to move it, and all of the\nelectronics that were on it, and plugged into the outlet behind it. This\nincluded a UPS / Battery backup that all of my electronics were plugged into.\n\nWe moved everything away from the wall, and then I moved it back. No. Big.\nDeal.\n\nNow, the timing may have just been coincidental, but the next morning I needed\nto do some work for my job-y job from home. I took my laptop into my office\n(with the brand new shelves) and plugged it into the UPS.\n\nI noticed the lights flicker and discovered that the WiFi router (my trusty\nAirPort Extreme) seem to have reset itself.\n\nNo big deal. I just rebooted and we were all good.\n\nLater that day I plugged in my iMac and then stuff got real. The lights went\nout. I figured that the breaker tripped, but the sprinklers next to the\nbreaker were on so I waded out through to the box and turned the breaker back\non. Or so I thought. I came back in and the lights were still off.\n\nAt this point I freaked out because, well, that\u2019s kind of what I do. I went\nback out and turned the breaker off and then back on. Lights are back.\n\nOK, lets try this again. I plug the iMac back in and ... crap. Lights are off\nagain.\n\nBack to the breaker (at this point the sprinklers are off) so off and on the\nbreaker went.\n\nOK, one last time and ... mother f!\n\nSomehow I was able to go from being able to have my UPS plugged in and\neverything being fine, to not.\n\nOK. Swap out the UPS and put back the Surge Protectors. Everything powers on\nand we\u2019re good.\n\nExcept we\u2019re not. The light on my AirPort Extreme is suddenly not a solid\ngreen, but instead a flashing amber. I consult the\n[internet](https://support.apple.com/en-us/HT202211#amber \"About the status\nlight on AirPort base stations\") and get a very unhelpful message\n\n> These are some typical reasons for the status light to flash amber:\n>\n> The base station hasn't been set up, or it was reset and needs to be set up\n> again. Use AirPort Utility to set up your base station.\n>\n> A firmware update is available for the base station.\n>\n> The base station is set up to use Back to My Mac, but Back to My Mac isn't\n> working or the password is incorrect. If you've upgraded to macOS Mojave,\n> you should remove the base station from your Back to My Mac network, because\n> Mojave doesn't support Back to My Mac.\n>\n> The base station can't connect to the Internet, such as when Internet\n> service is down at your location, the base station can't acquire an IP\n> address from your primary router, or the WAN Ethernet connection to your\n> router isn't working.\n>\n> The base station is set up to wirelessly extend the range of your network,\n> but is too far away from the primary Wi-Fi base station.\n>\n> If your base station is an AirPort Time Capsule, its internal hard disk is\n> experiencing an issue that requires repair.\n\nAnd suddenly my entire WiFi is down. And I am sad.\n\nI tried a ton of things to get the AirPort Extreme Back, but nothing is\nworking. I finally throw in the towel and decide to to use the WiFi access\npoint from my Fios router.\n\nThis means that I have to update the WiFi on:\n\n  * 3 iPhones\n  * 2 iPads\n  * 1 MacBook\n  * 2 MacBookPros\n  * 1 iMac\n  * 2 Wemo Switches\n  * 2 Raspberry Pi\n  * 3 Apple TVs (2 4th Gen and 1 3rd Gen)\n  * 1 WiFi connected Scale\n  * 1 Ring Doorbell\n  * 1 Ring Chime (connected to Ring Doorbell)\n\nIt also means that I need to plug my Netgear switch into my Fios router\ninstead of the AirPort Extreme. No big deal, right? Except that it was because\nI forget that the port that the Cat5 cable is plugged into on a router is\nimportant.\n\nI spent an embarrassingly long time trying to figure out why my Sonos and Hue\nLights weren\u2019t on my network.\n\nEmily kept telling me to take a break and relax and that was, in that moment,\nthe last thing I wanted to do.\n\nI was able to get all of the iOS and MacOS devices connected back to the\ninternet (via WiFi) and decided that I needed to forget the network and watch\ngame 5 of the World Series.\n\nBy the end of the 7th we had the game off and were catching up on CW Comic\nBook shows.\n\nIt was a rough day. But I learned a couple of things:\n\n  1. LAN Port 1 on the Fios Router is the right port\n  2. Sometimes, you just need to take a step back and think instead of just react\n  3. I have a crap ton of WiFi devices\n\nI'm still working on trying to get the AirPort Extreme back to working so that\nI don't need to get a new WiFi router ( have I mentioned how awful the Fios\none is? ).\n\n", "2018-11-05", "hosing-my-wifi-set-up", "I have been wanting to put shelves up in my office above my desk for some\ntime. The problem has been that the ones that are sold at Lowe\u2019s or Home Depot\nare not really what I wanted (too short) and I\u2019m not a super handy guy with \u2026\n\n", "Hosing my WiFi set up", "https://www.ryancheley.com/2018/11/05/hosing-my-wifi-set-up/"], ["ryan", "musings", "As technical folks working with non-technical folks sometimes the asks that\ncome through are unclear. In order to get clarity on these we want to ask\nquestions to get clarification on the ask, but it can be challenging to not\nsound like a jerk when we ask. This can happen even IF we do our best to come\nacross in a positive way.\n\nWhen trying to ask for more details on a project or request I find it's\nusually best to get to the source of the issue. I like to ask, \"What problem\nare we trying to solve here?\" or something similar.\n\nThis helps to put you and the requester on 'the same team' trying to 'solve\nthe problem' and not in a potentially negative 'why are you asking me this\nstupid question' sort of light.\n\nI can't say that I have 'one weird trick' that will always make this not a\nproblem, but recently at my $dayJob I had an experience that might be helpful\nin seeing how to navigate this particular process.\n\n## The problem\n\nI received an email that went something like this\n\n> Please see below. It seems that delivery of paper reports via courrier could\n> be automated by sending them to a portal. What are your thoughts?\n\nMy initial thought was, \"Yes, if we could automate these reports and send them\nelectronically to a portal that would be more efficient.\"\n\nHowever, there are some deeper questions here that need to be asked ... like:\n\n  1. Why are we sending these reports in the first place?\n\nJust asking this question though puts us into a potential state of conflict,\ni.e. it's similar to sounding like you're asking, \"why would you do this\nstupid thing\". In order to avoid this I reframed the question into 3 deeper\nquestions that tried to frame 'the problem' and put me and the requester 'on\nthe same team' to 'solve the problem'\n\n  1. What are the reports?\n  2. What are the recipients of the reports supposed to do with them?\n  3. Do the recipients of the reports find them helpful, or do they just put them in the shred bin?\n\nMy first response to the sender was\n\n> Ideally any reports that are being delivered on printed paper by courrier\n> would be better served to be delivered via some electronic means. Can you\n> tell me, what are these reports and who are the intended recpients?\n\nI wanted to explicitly ask who the intended recipients were (I work in\nHealthcare and these reports are 'for the doctors' but they might actually be\ngetting delivered to an office manager, a front desk person, or anyone other\nthan the doctor).\n\nThe sender responded back\n\n> They are reports that show a key metric for outstanding work left to do for\n> a specific population of their membership. Each doctor (or their office) are\n> free to do, or not do, anything with the information in these reports.\n\nNext I asked if the recipients had been surveyed on the usefulness of the\nreports and that's when the sender indicated:\n\n> Actually, no. It's something that we need to do so that we can potentially\n> consilidate reports and/or eliminate unhelpful reports.\n\n## The Solution\n\nAt the end we decided that before anywork was done to 'automate' the delivery\nof these reports, that we really needed to address the contents of the reports\nand determine which parts of them were helpful, and what parts weren't. Once\nwe have a single report, or potentially a suite of reports, the automation and\ndelivery work could actually start.\n\nBy working through and trying to determine the actual problem that needed to\nbe solved by asking questions to help both me and the requester better\nunderstand what the real ask was, we saved a ton of development time and have\na better path forward for making the information we have more relevant and\nactionable by the doctors' offices.\n\nWill this work in every situation? Maybe not, but I believe it's a good\nstarting point when trying to solve 'real world' problems in a work setting.\n\nTech folks have a (sometimes deserved) bad wrap, but we can shed this negative\nimpression by showing the people that request solutions from us that we're\nboth working towards the same goal of solving the problem.\n\n", "2024-08-22", "how-to-ask-why-without-sounding-like-a-jerk", "As technical folks working with non-technical folks sometimes the asks that\ncome through are unclear. In order to get clarity on these we want to ask\nquestions to get clarification on the ask, but it can be challenging to not\nsound like a jerk when we ask. This can happen \u2026\n\n", "How to ask why without sounding like a jerk", "https://www.ryancheley.com/2024/08/22/how-to-ask-why-without-sounding-like-a-jerk/"], ["ryan", "musings", "I\u2019ve been thinking a bit about how to decide which team to root for. Mostly I\njust want to stay logically consistent with the way I choose to root for a\nteam (when the Dodgers aren't playing obviously).\n\nAfter much thought (and sketches on my iPad) I\u2019ve come up with this table to\nhelp me determine who to root for:\n\n* * *\n\nOpp1 / Opp 2 NL West NL Central NL East AL West AL Central AL East **NL West**\nRoot for team that helps the Dodgers NL Central Team NL East Team NL West\nTeam,unless it hurts the Dodgers NL West Team,unless it hurts the Dodgers NL\nWest Team,unless it hurts the Dodgers **NL Central** NL Central Team Root for\nunderdog NL Central Team NL Central Team NL Central Team NL Central Team **NL\nEast** NL East Team NL Central Team Root for underdog NL East Team NL East\nTeam NL East Team **AL West** NL West Team,unless it hurts the Dodgers NL\nCentral Team NL East Team The Angels over the A's over the Mariners over the\nRangers over the Astros AL West Team AL West Team **AL Central** NL West\nTeam,unless it hurts the Dodgers NL Central Team NL East Team AL West Team\nRoot for underdog AL Central Team **AL East** NL West Team,unless it hurts the\nDodgers NL Central Team NL East Team AL West Team AL Central Team Root for\nunderdog (unless it's the Yankees)\n\n* * *\n\nThe basic rule is root for the team that helps the Dodgers payoff changes,\nthen National League over American League and finally West over Central over\nEast (from a division perspective).\n\nThere were a couple of cool sketches I made, on real paper and my iPad. Turns\nout, sometimes you really need to think about thing before you write it down\nand commit to it.\n\nOf course, this is all subject to change depending on the impact any game\nwould have on the Dodgers.\n\n", "2018-04-02", "how-to-pick-a-team-to-root-for-when-the-dodgers-arent-playing", "I\u2019ve been thinking a bit about how to decide which team to root for. Mostly I\njust want to stay logically consistent with the way I choose to root for a\nteam (when the Dodgers aren't playing obviously).\n\nAfter much thought (and sketches on my iPad) I\u2019ve come \u2026\n\n", "How to pick a team to root for (when the Dodgers aren\u2019t playing)", "https://www.ryancheley.com/2018/04/02/how-to-pick-a-team-to-root-for-when-the-dodgers-arent-playing/"], ["ryan", "musings", "## Game Structure\n\nHockey has some stuff in common with live theater. No ... really! \ud83d\ude01\n\nThey both have dressing rooms and they both have intermission ... but that is\nprobably where the similarities end.\n\nEach hockey game is split into three 20 minute periods. There is an\nintermission between each period that lasts 18 minutes. During the\nintermission the players go back to the dressing room to regroup and chat\nabout the previous period a strategize for the upcoming period.\n\nOut in the arena there are chances for you to get overpriced refreshments,\nstand in long lines to use the facilities, or just stay in your seat and watch\nthe silly intermission games.\n\nSome examples I've seen of silly intermission games are Fuego Pong (like\nquarters, but with soccer balls and large 5 gallon buckets), ice bowling where\na player is put into a giant slingshot on the ice and hudled towards\ninflatable bowling pins, and the dress up game.\n\nIt's also during this time that the ice is resurfaced by a\n[Zamboni](https://en.m.wikipedia.org/wiki/Ice_resurfacer) to make it nice and\nclean for the next period.\n\nIf at the end of the third period the game is tied then you're in luck because\nyou get free hockey, also known as Overtime. One thing to keep in mind is that\nthe overtime rules during a regular season game are different than a\npostseason game.\n\n### Regular Season Overtime Rules\n\nAt the end of the third period there is a 1 minute 'intermission' and then a 5\nminute overtime period starts. The overtime period will feature 3 skaters from\neach team as well as their goalie.\n\nIf a penalty occurs in Overtime (or is carried over from the third period) the\nperiod starts with four players on the power play team and 3 on the short\nhanded team.1\n\nEach team tries to score a goal first. If they do, then they win in overtime.\nIf, at the end of 5 minutes of play, the score is still tied then a shootout\nhappens.\n\nIn the shootout each team has 3 chances to score a [penalty\nshot](https://en.wikipedia.org/wiki/Penalty_shot_\\(ice_hockey\\)). Essentially\na skater from each team has the opportunity to try and score a goal with only\nthe goalie trying to prevent it. If at the end of the three rounds we're still\ntied, we keep sending out skaters to try and get that penalty shot until one\nteam is victorious. The record for most rounds of a shoot out is [20\nrounds](https://youtu.be/oH79V8zcMKk?si=pZYQ0ANCpsPrt-5z) in the NHL, and 16\nrounds in the AHL.\n\n### Postseason Overtime Rules\n\nPostseason overtime rules are a bit different. Basically you just keep adding\n20 minute periods until someone scores. Once a team scores they have won that\ngame. The longest overtime in NHL Postseason history went into the 6th\novertime and was [played in 1936](https://records.nhl.com/records/playoff-\nteam-records/overtime/longest-overtime-playoff) between the Detroit Red Wings\nand the Montreal Maroons. The longest AHL overtime was between the [Charlotte\nCheckers and the Lehigh Valley\nPhantoms](https://www.phantomshockey.com/timeline-relive-longest-game-ahl-\nhistory/#:~:text=The%20game%2C%20which%20took%20place,series%20lead%20over%20the%20Checkers)\nwhich went into a 5th overtime period. This game started at 7:03 pm local and\ndidn't finish until almost 3:00 am local the next day!\n\nIn general most hockey games don't get past the first OT period. From The 2006\nplayoffs through to the 2024 playoffs there have only been 52 games that have\ngone into a second overtime period (out of [1312](https://ahl-\ndata.ryancheley.com/games?sql=select%0D%0A++g.game_status%0D%0A++%2C+min%28g.game_date%29%0D%0A++%2C+count%28%2A%29%0D%0Afrom%0D%0A++games+g%0D%0Ainner+join+dim_date+as+d+on+g.game_date+%3D+d.date%0D%0Awhere+d.season_phase+%3D+%27post%27%0D%0Agroup+by+g.game_status%0D%0Aorder+by+g.game_status&_hide_sql=1)).\n\nOK, you've got a few basics 'under your belt'. In the next part I'll try and\nanswer the question, 'What should I watch?'.\n\n  1. essentially it would be a short Overtime period and probably pretty boring \u21a9\ufe0e\n\n", "2025-01-29", "how-to-watch-a-hockey-game-game-play", "## Game Structure\n\nHockey has some stuff in common with live theater. No ... really! \ud83d\ude01\n\nThey both have dressing rooms and they both have intermission ... but that is\nprobably where the similarities end.\n\nEach hockey game is split into three 20 minute periods. There is an\nintermission between each period that lasts \u2026\n\n", "How to Watch a Hockey Game - Game Play", "https://www.ryancheley.com/2025/01/29/how-to-watch-a-hockey-game-game-play/"], ["ryan", "musings", "This is the fourth part of my How to Watch a Hockey Game Series. You can catch\nup on previous articles [here](https://www.ryancheley.com/2025/01/27/how-to-\nwatch-a-hockey-game-three-rules/)\n\n## Game Outcomes\n\nIn many North American sports when reading the standings there are typically\njust Wins (W), and Losses (L).1\n\nHockey is a bit different. When you look at the standings for Hockey you'll\nsee 4 headers:\n\n  * W: Wins\n  * L: Losses\n  * OTL: Overtime Losses\n  * SOL: Shootout Losses\n\nAs discussed [earlier in this\nseries](https://www.ryancheley.com/2025/01/29/how-to-watch-a-hockey-game-game-\nplay/), if a game is tied at the end of regulation, a five-minute overtime\nperiod is played. If either team scores during this Overtime period then the\nwinning team gets a Win, while the losing team gets an Overtime Loss (OTL).\n\nIf they're still tied then a Shootout is played. Once a winner is declared in\nthe Shootout they get the Win, while the losing team gets a Shootout Loss.\n\nBecause of this, values are assigned to each type of outcome:\n\nOutcome | Points  \n---|---  \nWin | 2  \nLoss | 0  \nOTL | 1  \nSOL | 1  \n  \nThis might best be shown with a concrete example.\n\n## A Concrete Example\n\nLet's say that the Coachella Valley Firebirds have played 39 games so far.\nThey have won 21 games and lost 13 games. They've also played in 5 games that\nwent into overtime and lost. Their overtime losses are one (1) in the Overtime\nperiod and 4 in Shootouts. Their record would look like this:\n\nCoachella Valley Firebirds: 21-13-1-4\n\nPoints Calculation:\n\n  * Wins: 21 \u00d7 2 = 42 points\n  * OTL: 1 \u00d7 1 = 1 point\n  * SOL: 4 \u00d7 1 = 4 points\n\nTotal: 42 + 1 + 4 = 47 points\n\nThe Firebirds play in the Pacific Division of the Western Conference, and the\nstandings might look like this:\n\nTeam | GP | W | L | OTL | SOL | PTS | PCT  \n---|---|---|---|---|---|---|---  \nCalgary | 41 | 27 | 13 | 1 | 0 | 55 | 0.671  \nCoachella Valley | 39 | 21 | 13 | 1 | 4 | 47 | 0.603  \nColorado | 36 | 21 | 11 | 2 | 2 | 46 | 0.639  \nOntario | 37 | 22 | 13 | 1 | 1 | 46 | 0.622  \nSan Jose | 36 | 20 | 13 | 1 | 2 | 43 | 0.597  \nAbbotsford | 37 | 20 | 15 | 1 | 1 | 42 | 0.568  \nTucson | 37 | 19 | 16 | 2 | 0 | 40 | 0.541  \nBakersfield | 35 | 16 | 14 | 4 | 1 | 37 | 0.529  \nSan Diego | 37 | 11 | 20 | 4 | 2 | 28 | 0.378  \nHenderson | 39 | 12 | 25 | 2 | 0 | 26 | 0.333  \n  \nLegend: \\- GP: Games Played \\- W: Wins \\- L: Losses \\- OTL: Overtime Losses \\-\nSOL: Shootout Losses \\- PTS: Points \\- PCT: Points Percentage\n\n## Winning Percent\n\nThere are 2 things to look at in the standings: (1) Total Points, and (2)\nWinning Percent.\n\nThe Total Points we've already spoken about so let's review winning percent.\n\nThe winning percent is calculated as the Total Points the team has divided by\nthe total possible points that they could have gotten. The total possible\npoints are calculated as the Games Played x 2 (that is, what are the total\nnumber of points that they would have if they won every game they played).\n\nThat is\n\n    \n    \n        Winning Percent = Total Points \u00f7 (Games Played \u00d7 2)\n    \n\nFor example in the table above, we see that the PCT column for the Firebirds\nis 0.603. This is calculated by the Points (47) divided by GP x 2 (39 x 2 =\n78), that is 47 / 78 = 0.603.\n\nThe winning percent allows ranking intra-season when teams haven't played the\nsame number of games. After all games have been played, the rankings are\ndetermined by the total number of points a team has.2\n\n## Conclusion\n\nYou should now be able to parse the standings in a Hockey League and be able\nto tell how well (or poorly) your team is doing.\n\nThis is the end of my series (for now). If there are any other burning\nquestions you have about hockey, reach out to me on\n[Mastodon](https://mastodon.social/@ryancheley).\n\n  1. Football also has Ties (T) but they are exceedingly rare and are only ever displayed when the first Tie of the season occurs \u21a9\ufe0e\n  2. Depending on the league there are tiebreakers, but that's outside the scope of this article \u21a9\ufe0e\n\n", "2025-02-03", "how-to-watch-a-hockey-game-reading-the-standings", "This is the fourth part of my How to Watch a Hockey Game Series. You can catch\nup on previous articles [here](https://www.ryancheley.com/2025/01/27/how-to-\nwatch-a-hockey-game-three-rules/)\n\n## Game Outcomes\n\nIn many North American sports when reading the standings there are typically\njust Wins (W), and Losses (L).1\n\nHockey is a bit different. When you \u2026\n\n", "How to Watch a Hockey Game - Reading the Standings", "https://www.ryancheley.com/2025/02/03/how-to-watch-a-hockey-game-reading-the-standings/"], ["ryan", "musings", "I've written a few times before about hockey. I love watching my local sports\npuck team1 and really wish more people watched it. So, I'm going to write a\nbeginners guide to watching hockey so that you too, dear reader, can become an\navid fan.\n\nHockey is a pretty fast paced game at the professional level. In the 90s Fox\nSports had broadcast rights to hockey in the US and to help its viewers they\nhad a glowing halo on the puck called\n[FoxTrax](https://en.wikipedia.org/wiki/FoxTrax) which allowed fans to more\neasily find it. This practice was discontinued at some point, and I honestly\nthink it was one of the better innovations that Fox Sports did and really wish\nthat it would make a come back.\n\n## The Rules\n\nAs a beginner hockey observer there's only three rules that you really need to\nknow to be able to follow the game.\n\n  1. Offside2\n  2. Icing\n  3. Power Play / Penalty Kill\n\n### The Set up\n\nThe ice rink can be broken into 3 sections from the perspective of 1 team.\nLet's assume we have two teams, A and B. Let's root for team A.\n\n![Ice Hockey Rink](https://www.conceptdraw.com/How-To-Guide/picture/Sport-\nHockey-Simple-hockey-field-Template.png)\n\n  1. The Defending zone - This is where team A's Goal is located. It starts right behind team A's goal and goes to the right toward the blue line\n  2. Neutral Zone - This is the center of the ice between the two blue lines; it also contains a red line that is called 'Center Ice'\n  3. The Attacking Zone - This is where team A are trying to score. It starts at the OTHER blue line and goes back behind Team B's goal\n\n### Offside\n\nOffside is defined as ... actually that's not important. What is important to\nunderstand is that a player on the offense cannot enter their Attacking zone\nbefore the puck does. If they do, then that player is called Offside. When an\nOffside happens a face off takes place outside of the Attacking zone (i.e. in\nthe Neutral Zone) where each team will try and gain control of the puck.\n\n### Icing\n\nIcing, or icing the puck, is when a player in their half of the ice and shots\nthe puck down the ice towards their Attacking zone and it is NOT touched by\nanyone before it passes the face off circles in the Attacking zone. When an\nicing occurs the puck is returned to the defending zone for a face off3. When\nan icing occurs the team that the icing is called on have to keep all of their\nplayers on the ice, that is, they can not send in any substitutions.\n\n### Power Play / Penalty Kill\n\nThe two rules above, when broken, result in a stoppage of play and a new face\noff for each team to try to gain control of the puck. Other rules, when\nbroken, will result in a penalty4 which sees one, or more, players sent to the\nPenalty Box5. Penalties can either be minor, which result in a two minute\npenalty, or major, which typically result in a 5 minute penalty6.\n\nWhen a team is on the Power Play they will have 1 or more extra skaters than\nthe other team. The other team's 'missing' players will be in the Penalty Box.\nThe Power Play team, with the advantage, will remain on that advantage until\neither they score OR the penalty expires. If a team scores while on the Power\nPlay, they are said to have scored a Power Play Goal.\n\nThe team that has penalized players is said to be on the Penalty Kill. They\nare trying to 'kill' the advantage that the Power Play brings to the other\nteam. If the team on the Penalty Kill scores a goal, it is called a Short-\nhanded goal ... because they were short a person, i.e. short handed, when the\ngoal was scored. In the [National Hockey League](https://www.nhl.com/) (NHL),\n[American Hockey League](https://theahl.com/) (AHL), and most other leagues\nwhen a short handed goal is scored the Penalty keeps going until time is over\nOR a goal is scored by the team on the Power Play. The [Professional Women's\nHockey Leagure](https://www.thepwhl.com/en/) (PWHL) has a rule (which I think\nis genius) which states that IF a team scores a short handed goal, the Power\nPlay is over.7\n\nIn the next post I'll talk a bit more about game play.\n\n  1. The [Coachella Valley Firebirds](https://cvfirebirds.com) \u21a9\ufe0e\n  2. in hockey it is not pluralized like in American Football ... even though in American Football it's not pluralized either! \u21a9\ufe0e\n  3. This does NOT apply when your team is on a Penalty Kill \u21a9\ufe0e\n  4. I'll talk more about various penalties in future a post \u21a9\ufe0e\n  5. it's a small room where players are sent to think about what they did \u21a9\ufe0e\n  6. There are a few caveats here about game misconduct, but they're not important for an introductory primer \u21a9\ufe0e\n  7. Now, there are lots of Nuances to the PP/PK write up above, but you don't need to understand them initially to enjoy hockey. \u21a9\ufe0e\n\n", "2025-01-27", "how-to-watch-a-hockey-game-three-rules", "I've written a few times before about hockey. I love watching my local sports\npuck team1 and really wish more people watched it. So, I'm going to write a\nbeginners guide to watching hockey so that you too, dear reader, can become an\navid fan.\n\nHockey is a pretty \u2026\n\n", "How to Watch a Hockey Game - Three Rules", "https://www.ryancheley.com/2025/01/27/how-to-watch-a-hockey-game-three-rules/"], ["ryan", "musings", "In [a previous post of this series](https://www.ryancheley.com/2025/01/27/how-\nto-watch-a-hockey-game-three-rules/) I laid out some basic rules of hockey. In\nthis post I'll hopefully provide some tips on what to watch during your first\nfew hockey games.\n\n## What should I 'watch' though?\n\nThis is a tough question and depends on if you're watching on TV or in person.\n\n### On TV\n\nIf you're watching on TV you're limited by whatever the camera and director\nare showing you. Hopefully they're pretty good at what they do and they'll\nhelp to show you what is interesting. You'll also have the benefit of replays.\n1\n\nWatching the action on TV will be your best bet. The commentators will do a\nreasonable job of explaining the play. For some of the best NHL broadcasts\nyou'll want to watch a Canadian feed. This might not be an option depending on\nwhere you live, but in general, watching a Canadian feed of a Canadian team\nwill be really helpful.\n\nIf, for whatever reason, you're watching an AHL game2 the best broadcasts to\nwatch, in my opinion, are the Lehigh Valley Phantoms called by [Bob\nRotruck](https://www.phantomshockey.com/staff/bob-rotruck/) and Cleveland\nMonsters called by [Tony Brown](https://www.tonybrownpxp.com/). Each of these\nis a single broadcaster doing both the color commentary and the play-by-play\n... and they honestly get **so** excited it's hard to NOT get excited with\nthem.\n\n### In Person\n\nFor your first in person game, just try and follow the puck as best you can.\nIf for whatever reason you can't do that, pick a spot on the ice to\nconcentrate on, preferably near one of the goalies. Which one? The goalie of\nthe team you're not rooting for is a good choice! Then you can just kind of\nwatch the action there.\n\nKeeping in mind [the rules](https://www.ryancheley.com/2025/01/27/how-to-\nwatch-a-hockey-game-three-rules/) start by focusing on just one rule - either\nicing or offside - for an entire period. Once you feel comfortable recognizing\nthat rule during gameplay, switch your attention to watching for the other\nrule in the next period. For example, if you spent the first period watching\nfor icing, spend the next period looking for offside plays.\n\nHopefully after a full game you're able to see them when icing or offside\nhappen. If not, it just means you'll need to come back and try again \ud83d\ude01.\n\n## What not to worry about\n\nHockey is a fast paced game. No, like really fast. Don't worry too much about\nanything other than watching for the puck, if you can, and trying to pick up\nicing and offside. You'll see other stoppages in play when a penalty is\ncalled. The refs will make [hand\ngestures](https://www.chicagowolves.com/gameday/hockey-101/penalties-and-\nsignals/) to indicate the call on the ice and someone will be sent to the box.\n\nDon't worry about whether or not a fight will break out. They don't always,\nand if they do, each player will be assessed a major penalty and will spend 5+\nminutes in the penalty box.\n\nDon't worry too much about learning the positions. The goalie is an obvious\none (that's the person with all of the pads, the bigger stick, and the giant,\nwell painted mask in front of the net), but trying to distinguish between a\ndefender and a center ... like just don't worry about it!\n\n## Conclusion\n\nHockey is an amazing sport to watch, whether in person or on TV. It can take a\nlittle bit of time to get used to the fast pace, but hopefully this series has\ngiven you some tips to enjoy it and understand what's going on.\n\n  1. and refreshments that are much less expensive! \u21a9\ufe0e\n  2. home of my beloved Coachella Valley Firebirds \u21a9\ufe0e\n\n", "2025-01-31", "how-to-watch-a-hockey-game-what-to-watch", "In [a previous post of this series](https://www.ryancheley.com/2025/01/27/how-\nto-watch-a-hockey-game-three-rules/) I laid out some basic rules of hockey. In\nthis post I'll hopefully provide some tips on what to watch during your first\nfew hockey games.\n\n## What should I 'watch' though?\n\nThis is a tough question and depends on if you're watching on \u2026\n\n", "How to Watch a Hockey Game - What to Watch", "https://www.ryancheley.com/2025/01/31/how-to-watch-a-hockey-game-what-to-watch/"], ["ryan", "musings", "I have a 10 year old daughter in the fifth grade. She has participated in the\nScience Fair almost every year, but this year was different. This year was\nrequired participation.\n\ndun \u2026 dun \u2026 dun \u2026\n\nShe and her friend had a really interesting idea on what to do. They wanted to\nask the question, **\u201cIs Soap and Water the Best Cleaning Method?** \u201d\n\nThe two Scientists decided that they would test how well the following\ncleaning agents cleaned a white t-shirt (my white t-shirt actually) after it\ngot dirty:\n\n  * Plain Water\n  * Soap and Water\n  * Milk\n  * Almond Milk\n\nWhile working with them we experimented on how to make the process as\nscientific as possible. Our first attempt was to just take a picture of the\nClean shirt, cut the shirt up and get it dirty. Then we\u2019d try each cleaning\nagent to see how it went.\n\nIt did not go well. It was immediately apparent that there would be no way to\ntest the various cleaning methods efficacy.\n\nNo problem. In our second trial we decided to approach it more scientifically.\n\nWe would draw 12 equally sized squares on the shirt and take a picture:\n\n![Clean Shirt](/images/uploads/2016/12/Clean-Shirt-Grid-small-300x200.png)\n\nWe needed 12 squares because we had 4 cleaning methods and 3 trials that\nneeded to be performed\n\n> > 4 Cleaning Methods X 3 Trials = 12 Samples\n\nNext, the Scientists would get the shirt dirty. We then cut out the squares so\nthat we could test cleaning the samples.\n\nHere\u2019s an outline of what the Scientists did to test their hypothesis:\n\n  1. Take a picture of each piece BEFORE they get dirty\n  2. Get each sample dirty\n  3. Take a picture of each dirty sample\n  4. Clean each sample\n  5. Take a picture of each cleaned sample\n  6. Repeat for each trial\n\nFor the \u2018Clean Each Sample\u2019 step they placed 1/3 of a cup of the cleaning\nsolution into a small Tupperware tub that could be sealed and _vigorously_\nshook for 5 minutes. They had some tired arms at the end.\n\nOnce we had performed the experiment we our **raw** data:\n\n# Trial 1\n\nMethod Start Dirty Cleaned\n\n* * *\n\nWater\n![Trial1_Start_Water](/images/uploads/2016/12/Trial1_Start_Water-300x300.jpg)\n![Trial1_Dirty_Water](/images/uploads/2016/12/Trial1_Dirty_Water-300x300.jpg)\n![Trial1_Clean_Water](/images/uploads/2016/12/Trial1_Clean_Water-300x300.jpg)\nSoap And Water\n![Trial1_Start_SoapAndWater](/images/uploads/2016/12/Trial1_Start_SoapAndWater-300x300.jpg)\n![Trial1_Dirty_SoapAndWater](/images/uploads/2016/12/Trial1_Dirty_SoapAndWater-300x300.jpg)\n![Trial1_Clean_SoapAndWater](/images/uploads/2016/12/Trial1_Clean_SoapAndWater-300x300.jpg)\nMilk\n![Trial1_Start_Milk](/images/uploads/2016/12/Trial1_Start_Milk-300x300.jpg)\n![Trial1_Dirty_Milk](/images/uploads/2016/12/Trial1_Dirty_Milk-300x300.jpg)\n![Trial1_Clean_Milk](/images/uploads/2016/12/Trial1_Clean_Milk-300x300.jpg)\nAlmond Milk\n![Trial1_Start_Milk](/images/uploads/2016/12/Trial1_Start_Milk-300x300.jpg)\n![Trial1_Dirty_Milk](/images/uploads/2016/12/Trial1_Dirty_Milk-300x300.jpg)\n![Trial1_Clean_Milk](/images/uploads/2016/12/Trial1_Clean_Milk-300x300.jpg)\n\n* * *\n\n# Trial 2\n\nMethod Start Dirty Cleaned\n\n* * *\n\nWater\n![Trial2_Start_Water](/images/uploads/2016/12/Trial2_Start_Water-300x300.jpg)\n![Trial2_Dirty_Water](/images/uploads/2016/12/Trial2_Dirty_Water-300x300.jpg)\n![Trial2_Clean_Water](/images/uploads/2016/12/Trial2_Clean_Water-300x300.jpg)\nSoap And Water\n![Trial2_Start_SoapAndWater](/images/uploads/2016/12/Trial2_Start_SoapAndWater-300x300.jpg)\n![Trial2_Dirty_SoapAndWater](/images/uploads/2016/12/Trial2_Dirty_SoapAndWater-300x300.jpg)\n![Trial2_Clean_SoapAndWater](/images/uploads/2016/12/Trial2_Clean_SoapAndWater-300x300.jpg)\nMilk\n![Trial2_Start_Milk](/images/uploads/2016/12/Trial2_Start_Milk-300x300.jpg)\n![Trial2_Dirty_Milk](/images/uploads/2016/12/Trial2_Dirty_Milk-300x300.jpg)\n![Trial2_Clean_Milk](/images/uploads/2016/12/Trial2_Clean_Milk-300x300.jpg)\nAlmond Milk\n![Trial2_Start_AlmondMilk](/images/uploads/2016/12/Trial2_Start_AlmondMilk-300x300.jpg)\n![Trial2_Dirty_AlmondMilk](/images/uploads/2016/12/Trial2_Dirty_AlmondMilk-300x300.jpg)\n![Trial2_Clean_AlmondMilk](/images/uploads/2016/12/Trial2_Clean_AlmondMilk-300x300.jpg)\n\n* * *\n\n# Trial 3\n\nMethod Start Dirty Cleaned\n\n* * *\n\nWater\n![Trial3_Start_Water](/images/uploads/2016/12/Trial3_Start_Water-300x300.jpg)\n![Trial3_Dirty_Water](/images/uploads/2016/12/Trial3_Dirty_Water-300x300.jpg)\n![Trial3_Clean_Water](/images/uploads/2016/12/Trial3_Clean_Water-300x300.jpg)\nSoap And Water\n![Trial3_Start_SoapAndWater](/images/uploads/2016/12/Trial3_Start_SoapAndWater-300x300.jpg)\n![Trial3_Dirty_SoapAndWater](/images/uploads/2016/12/Trial3_Dirty_SoapAndWater-300x300.jpg)\n![Trial3_Clean_SoapAndWater](/images/uploads/2016/12/Trial3_Clean_SoapAndWater-300x300.jpg)\nMilk\n![Trial3_Start_Milk](/images/uploads/2016/12/Trial3_Start_Milk-300x300.jpg)\n![Trial3_Dirty_Milk](/images/uploads/2016/12/Trial3_Dirty_Milk-300x300.jpg)\n![Trial3_Clean_Milk](/images/uploads/2016/12/Trial3_Clean_Milk-300x300.jpg)\nAlmond Milk\n![Trial3_Start_AlmondMilk](/images/uploads/2016/12/Trial3_Start_AlmondMilk-300x300.jpg)\n![Trial3_Dirty_AlmondMilk](/images/uploads/2016/12/Trial3_Dirty_AlmondMilk-300x300.jpg)\n![Trial3_Clean_AlmondMilk](/images/uploads/2016/12/Trial3_Clean_AlmondMilk-300x300.jpg)\n\nThis is great and all, but now what? We can\u2019t really use subjective measures\nto determine cleanliness and call it science!\n\nMy daughter and her friend aren\u2019t coders, but I did explain to them that we\nneeded a more scientific way to determine cleanliness. I suggested that we use\n`python` to examine the image and determine the brightness of the image.\n\nWe could then use some math to compare the brightness. 1\n\nNow, onto the code!\n\nOK, let\u2019s import some libraries:\n\n    \n    \n    from PIL import Image, ImageStat\n    import math\n    import glob\n    import pandas as pd\n    import matplotlib.pyplot as plt\n    \n\nThere are 2 functions to determine `brightness` that I found\n[here](http://stackoverflow.com/questions/3490727/what-are-some-methods-to-\nanalyze-image-brightness-using-python). They were super useful for this\nproject. As an aside, I love StackOverflow!\n\n    \n    \n    #Convert image to greyscale, return average pixel brightness.\n    def brightness01( im_file ):\n       im = Image.open(im_file).convert('L')\n       stat = ImageStat.Stat(im)\n       return stat.mean[0]\n    \n    #Convert image to greyscale, return RMS pixel brightness.\n    def brightness02( im_file ):\n       im = Image.open(im_file).convert('L')\n       stat = ImageStat.Stat(im)\n       return stat.rms[0]\n    \n\nThe next block of code takes the images and processes them to get the return\nthe brightness levels (both of them) and return them to a `DataFrame` to be\nused to write to a `csv` file.\n\nI named the files in such a way so that I could automate this. It was a bit\ntedious (and I did have the scientists help) but they were struggling to\nunderstand why we were doing what we were doing. Turns out teaching CS\nconcepts is harder than it looks.\n\n    \n    \n    f = []\n    img_brightness01 = []\n    img_brightness02 = []\n    trial = []\n    state = []\n    method = []\n    for filename in glob.glob('/Users/Ryan/Dropbox/Abby/Science project 2016/cropped images/**/*', recursive=True):\n        f.append(filename.split('/')[-1])\n        img_brightness01.append(round(brightness01(filename),0))\n        img_brightness02.append(round(brightness02(filename),0))\n    for part in f:\n        trial.append(part.split('_')[0])\n        state.append(part.split('_')[1])\n        method.append(part.split('_')[2].replace('.png', '').replace('.jpg',''))\n    \n    dic = {'TrialNumber': trial, 'SampleState': state, 'CleaningMethod': method, 'BrightnessLevel01': img_brightness01, 'BrightnessLevel02': img_brightness02}\n    \n    results = pd.DataFrame(dic)\n    \n\nI\u2019m writing the output to a `csv` file here so that the scientist will have\ntheir data to make their graphs. This is where my help with them ended.\n\n    \n    \n    #write to a csv file\n    results.to_csv('/Users/Ryan/Dropbox/Abby/Science project 2016/results.csv')\n    \n\nSomething I wanted to do though was to see what our options were in `python`\nfor creating graphs. Part of the reason this wasn\u2019t included with the science\nproject is that we were on a time crunch and it was easier for the Scientists\nto use [Google Docs](https://docs.google.com) to create their charts, and part\nof it was that I didn\u2019t want to cheat them out of creating the charts on their\nown.\n\nThere is a formula below to determine a `score` which is given by a normalized\npercentage that was used by them, but the graphing portion below I did after\nthe project was turned in.\n\nLet\u2019s get the setup out of the way:\n\n    \n    \n    #Create Bar Charts\n    trials = ['Trial1','Trial2','Trial3']\n    \n    n_trials = len(trials)\n    index = np.arange(n_trials)\n    bar_width = 0.25\n    bar_buffer = 0.05\n    opacity = 0.4\n    \n    graph_color = ['b', 'r', 'g', 'k']\n    methods = ['Water', 'SoapAndWater', 'Milk', 'AlmondMilk']\n    \n    graph_data = []\n    \n\nNow, let\u2019s loop through each cleaning method and generate a list of scores\n(where one score is for one trial)\n\n    \n    \n    for singlemethod in methods:\n        score= []\n        for trialnumber in trials:\n            s = results.loc[results['CleaningMethod'] == singlemethod].loc[results['TrialNumber'] == trialnumber].loc[results['SampleState'] == 'Start'][['BrightnessLevel01']]\n            s = list(s.values.flatten())[0]\n            d = results.loc[results['CleaningMethod'] == singlemethod].loc[results['TrialNumber'] == trialnumber].loc[results['SampleState'] == 'Dirty'][['BrightnessLevel01']]\n            d = list(d.values.flatten())[0]\n            c = results.loc[results['CleaningMethod'] == singlemethod].loc[results['TrialNumber'] == trialnumber].loc[results['SampleState'] == 'Clean'][['BrightnessLevel01']]\n            c = list(c.values.flatten())[0]\n            scorepct =  float((c-d) / (s - d))\n            score.append(scorepct)\n        graph_data.append(score)\n    \n\nThis last section was what stumped me for the longest time. I had such a\nmental block converting from iterating over items in a list to item counts of\na list. After much [Googling](https://www.google.com) I was finally able to\nmake the breakthrough I needed and found the idea of looping through a range\nand everything came together:\n\n    \n    \n    for i in range(0, len(graph_data)):\n        plt.bar(index+ (bar_width)*i, graph_data[i], bar_width-.05, alpha=opacity,color=graph_color[i],label=methods[i])\n        plt.xlabel('Trial Number')\n        plt.axvline(x=i-.025, color='k', linestyle='--')\n        plt.xticks(index+bar_width*2, trials)\n        plt.yticks((-1,-.75, -.5, -.25, 0,0.25, 0.5, 0.75, 1))\n        plt.ylabel('Brightness Percent Score')\n        plt.title('Comparative Brightness Scores')\n        plt.legend(loc=3)\n    \n\nThe final output of this code gives:\n\n![Results_Graph](/images/uploads/2016/12/Results_Graph-300x212.png)\n\nFrom the graph you can see the results are \u2026 inconclusive. I\u2019m not sure what\nthe heck happened in Trial 3 but the Scientists were able to make the samples\ndirtier. Ignoring `Trial 3` there is no clear winner in either `Trial 1` or\n`Trial 2`.\n\nI think it would have been interesting to have 30 - 45 trials and tested this\nwith a some statistics, but that\u2019s just me wanting to show something to be\nstatistically valid.\n\nI think the best part of all of this was the time I got to spend with my\ndaughter and the thinking through the experiment. I think she and her friend\nlearned a bit more about the scientific method (and hey, isn\u2019t that what this\ntype of thing is all about?).\n\nI was also really excited when her friend said, \u201cScience is pretty cool\u201d and\nthen had a big smile on her face.\n\nThey didn\u2019t go onto district, or get a blue ribbon, but they won in that they\nlearned how neat science can be.\n\n  1. [The score is the ratio of how clean the cleaning method was able to get the sample compared to where it started, i.e. the ratio of the difference of the `cleaned` sample and the `dirty` sample to the difference of the `starting` sample and the `dirty` sample. \u21a9\ufe0e\n\n", "2016-12-17", "its-science", "I have a 10 year old daughter in the fifth grade. She has participated in the\nScience Fair almost every year, but this year was different. This year was\nrequired participation.\n\ndun \u2026 dun \u2026 dun \u2026\n\nShe and her friend had a really interesting idea on what to do. They wanted to\n\u2026\n\n", "It's Science!", "https://www.ryancheley.com/2016/12/17/its-science/"], ["ryan", "musings", "One thing I like to do with my family is watch movies. But not just any\nmovies, Comic Book movies. We've seen both [Thor](https://itun.es/us/ieifP)\nand [Thor: The Dark World](https://itun.es/us/7tLNR), [Iron\nMan](https://itun.es/us/sLibP) and [Guardians of the\nGalaxy](https://itun.es/us/KoVM1). It's not a lot, but we're working on it.\n\nI've mapped out the [Marvel Cinematic\nUniverse](https://en.m.wikipedia.org/wiki/Marvel_Cinematic_Universe) movies\nfor us to watch, and it's OK, but there wasn't a easy way to link into the\niTunes store from the list.\n\nI decided that I could probably use [Workflow](https://appsto.re/us/2IzJ2.i)\nto do this, but I hadn't really worked with it to do it, but today I had a bit\nof time and figured, \"what they heck ... why not?\"\n\nMy initial attempt was clunky. It required to workflows to accomplish what I\nneeded. This was because I had to split the work of\n[Workflow](https://appsto.re/us/2IzJ2.i) into 2 workflows:\n\n  * Get the Name\n  * Get the Link\n\nTurns out there's a much easier way, so I'll post the link to that workflow,\nand not the workflows that are much harder to use!\n\nThe workflow [Add Movie to\nWatch](https://workflow.is/workflows/66f269ed34cb42469df4de8dcb7739e7) accepts\n`iTunes products`. The workflow then does the following:\n\n  * It saves the `iTunes products` URL as a variable called `iTunes`\n  * It then gets the `iTunes` variable to retrieve the `Name` and sets the value to a variable called `Movie`\n  * Next it asks 'Who is the movie being added by?' This is important for my family as we want a common list, but it's also good to know who added the movie!\n  * This value is saved to a variable called `User`\n  * Finally, I want to know when the movie was added so I get the current date.\n\nWe take all of the items and construct a bit of `text` that looks like this:\n\n`[{Movie}]({iTunes}) - Added on {Input} by {User}`\n\nWhere each of the words above surrounded by the {} are the variable names\npreviously mentioned ({Input} is from the get current date and doesn't need to\nbe saved to a variable).\n\nIn my last step I take this text and append it to a file in Dropbox called\n`Movies to Watch.md`.\n\nIt took **way** longer than I would have liked to finish this up, but at the\nend of the day, I'm glad that I was able to get it done.\n\n", "2016-11-28", "keeping-track-of-which-movies-i-want-to-watch", "One thing I like to do with my family is watch movies. But not just any\nmovies, Comic Book movies. We've seen both [Thor](https://itun.es/us/ieifP)\nand [Thor: The Dark World](https://itun.es/us/7tLNR), [Iron\nMan](https://itun.es/us/sLibP) and [Guardians of the\nGalaxy](https://itun.es/us/KoVM1). It's not a lot, but we're working on it.\n\nI've mapped out the [Marvel\n\u2026](https://en.m.wikipedia.org/wiki/Marvel_Cinematic_Universe)\n\n", "Keeping track of which movies I want to watch", "https://www.ryancheley.com/2016/11/28/keeping-track-of-which-movies-i-want-to-watch/"], ["ryan", "musings", "# Looking Back at the Half Marathon Streak\n\n## How It Started\n\nIn February 2012, a half marathon was being held in Palm Springs, and one of\nmy walking friends asked if I wanted to do it... about 5 days before it was\nset to happen. I said I wasn't interested, and she said \"Where is your sense\nof adventure?\" ... though it was in slightly more colorful language. Six days\nlater, I was participating in my first half marathon.\n\nNow, I hadn't really run too much up to that point. A 5K here and there, and\nfor the most part, I wasn't running much during those \"runs\".\n\nAt the start of the half marathon, I looked at my friend that had persuaded me\nto participate and said something like, \"We're just going to walk, right?\" She\nsaid we had to run at least some of it.\n\nEight miles later, I was still running and enjoying it. She wanted to walk a\nbit. So we did, and then she encouraged me to start running again, so I did.\n\n## The First Taste of Success\n\nI finished that first half marathon in something like 2h30m, but I was\nsuddenly hooked. I thought, \"I bet if I actually _trained_ for a half\nmarathon, I could do better.\" So I set out to train for a half marathon. I\nstarted a training schedule using [this\nplan](https://www.halhigdon.com/training-programs/half-marathon-\ntraining/novice-1-half-marathon/) and was able to complete the San Diego Rock\n'n Roll half in a little more than 2 hours. I continued to run medium\ndistances (up to 12 miles on weekends) and really enjoyed it.\n\nI got to a point where I was in the best shape of my life. I had a resting\nheart rate of something like 50 with blood pressure that was pretty low\n(almost low enough that my doctor was concerned!) but my labs were good, and I\nfelt GREAT!\n\n## The Birth of the Streak\n\nI was looking at half marathons in 2014 and saw the Palm Springs one again,\nbut also saw one in a local city called [Desert Hot\nSprings](https://www.cityofdhs.org/) in December 2013. Then there was the\nCarlsbad half in January 2014. Another one looked interesting in Zion National\nPark (sort of) in March of 2014. And then I saw that there was the La Jolla\nhalf in April.\n\nIt also turns out that if you run the Carlsbad, La Jolla, and America's Finest\nCity (AFC) half marathons, you get a nice triple crown medal. Well, the AFC\nwas in August. I was looking at the calendar and thought, \"Holy shit, I might\nbe able to schedule half marathons each month for an entire year!\"\n\n## The Journey Begins\n\nIn November of 2013, I signed up for a couple of the half marathons that were\nfurther out (essentially the ones for the Triple Crown medal) and the Palm\nSprings half.\n\nI wanted to do the Zion run, but it's a 10-12 hour drive to Zion from where I\nlive. I casually mentioned this to an acquaintance who said, \"I'd run that\nwith you.\"\n\nThe next thing I knew, I had a pretty good string of runs set up: (1)\nCarlsbad, (2) Palm Springs, (3) Zion, (4) La Jolla, (5) America's Finest City\n... but I still hadn't told anyone, other than my wife, about my crazy idea to\nrun a half marathon each month.\n\n## Making the Commitment\n\nOne day while on a walk with a friend, I mentioned that I was thinking about\ndoing it and he said, \"That's an awesome idea... you should totally do it.\" We\nspent most of the walk with me talking about the idea and wavering until I\nfinally just said, \"I'm going to do it.\"\n\nAnd that was it. I had made a commitment, publicly, about this thing I was\ngoing to do.\n\n## The Year of Running\n\nAll that was left was to finalize each of the runs, and then train. And by\ntrain, I mean run. A lot. So much running.\n\nI ended up running 13 half marathons in 364 days, bookending the feat with the\nHalf Marathon in Desert Hot Springs in December of 2013 and 2014.\n\nIn all, I ran in the following cities (some still have my results online!):\n\n  * Desert Hot Springs (twice!) in December (2013, [2014](https://my.racewire.com/result/3182333))\n  * [Carlsbad](https://my.racewire.com/athlete/5131448) in January\n  * Palm Springs in February\n  * Zion in March\n  * [La Jolla](https://my.racewire.com/result/5108370) in April\n  * Menifee in May\n  * Rock n Roll in San Diego in June\n  * Oceanside in July\n  * [San Diego (AFC)](https://my.racewire.com/result/5064858) in August\n  * Ventura in September\n  * San Luis Obispo (SLO) in October\n  * Santa Barbara in November\n\nDuring that year I ran roughly 1000 miles training, and 170.3 miles for the\nactual runs.\n\n## The Reality of the Challenge\n\nI have never been so tired in all of my life as I was that year, but I look\nback on it and it was really fun.\n\nAt the beginning of the year, I had an idea that I would get better and faster\nat running. That didn't happen1 for a variety of reasons, but mostly because\nit wasn't fun. What was fun was going to different places with my family where\nthe races were being held and hanging out with them. I still have fond\nmemories of being in Ventura and going to a thrift store with my wife and\ndaughter and finding a pair of roller skates that fit my daughter perfectly.\n\n## The Memorable Moments\n\nI remember the kitschy B&B in Santa Barbara where my wife and I stayed and\nwalking around Santa Barbara and finding this cool co-op style building with\nlots of vendors for getting food, drinks, or artisanal handcrafted stuff.\n\nI also remember running the La Jolla half with a low-grade fever and realizing\nexactly how bad of an idea that was. Also, that hill at mile five on that\ncourse was absolutely brutal!\n\n## The Why of It All\n\nIn looking back on this, I don't really know why I did it other than the\nhubris of thinking I could, and then telling someone I was going to.\n\nThe hardest stretch was the runs in the second quarter. The first one (La\nJolla) was the last weekend in April, the Menifee one was in the middle of\nMay, and the Rock n Roll in San Diego was the first week of June. I ran three\nhalf marathons in five weeks. I still look back on that and think it was the\npoint that broke me.\n\n## The Challenges\n\nI really did want to give up more times than I can remember, but because I had\nsaid I was going to do a thing, I was going to do it no matter what.\n\nThere was the nerve-wracking part where I was also going to do a run-a-mile\nevery day between Thanksgiving and New Year's, and then on the first run, I\ntwisted my ankle so my adventure almost didn't even start at all!\n\n## The Lessons Learned\n\nI look back on this experience and remember that yes, I can do hard things.\nYes, they are worth it, but not always for the reasons that you think they\nwill be.\n\nTelling someone you're going to do something hard can help push you forward\nand keep you accountable, even just to yourself.\n\n## Looking Forward\n\nWould I ever do something like this again? Maybe if I was 10 years younger! In\nall seriousness, I think I would IF I went into it with a bit of a different\nheadspace. When I started this challenge in 2013, it was with the piss and\nvinegar of a young person who was sure they could conquer the world.\n\nIf I did it this time, I would be more mindful. I would try to enjoy the\npractice of running. I would enjoy the destinations I was going to get to run\nin. I would share these joys more with my family.\n\n## The Support System\n\nDoing things like this are never done alone. I think that was the thing I\nlearned most about this. During that year, there were some sacrifices made\nthat I didn't realize at all. My wife and daughter did a really good job of\nsupporting me and my decision, but it did put some strain on family life.\n\n## Work-Life Balance\n\nSomething else it taught me, ironically, was a bit of work-life balance. I was\nthe manager for a technical team at the time. We had an upgrade that was set\nto happen the weekend before my Menifee run in May. Due to an issue with a\nthird-party vendor for that application, we had to push back the upgrade... I\nhad to decide to push back the upgrade which meant it would happen the weekend\nof my run.\n\nAs I was working towards making the decision, my boss and my team all knew\nwhat I was trying to do, and they supported not only the decision to push back\nthe upgrade but also encouraged me to go do the run. They told me that they\ncould handle the upgrade without me, and they did.\n\n## The Hard Lessons\n\nThat Menifee run was also where I discovered, for the first time, exactly how\nbad dehydration can make you feel. Not an experience I recommend, and not one\nI ever hope to repeat. There are still parts of Old Town Temecula that make me\nfeel a bit queasy when I visit them!\n\n## The Final Reflection\n\nOverall, this was a great experience, and I learned a lot about myself. But I\nalso learned a lot about my friends, family, and coworkers as well.\n\nWould I do it again ... maybe. Would I like to run at least one of those half\nmarathons again? Absolutely. I just need to get back into running shape!\n\n  1. just take a look at my available results above via the links! \u21a9\ufe0e\n\n", "2025-01-17", "looking-back-at-the-half-marathon-streak", "# Looking Back at the Half Marathon Streak\n\n## How It Started\n\nIn February 2012, a half marathon was being held in Palm Springs, and one of\nmy walking friends asked if I wanted to do it... about 5 days before it was\nset to happen. I said I wasn't interested, and \u2026\n\n", "Looking Back at the Half Marathon Streak", "https://www.ryancheley.com/2025/01/17/looking-back-at-the-half-marathon-streak/"], ["ryan", "musings", "To say that I attend a lot of meetings is a bit of an understatement. However,\nas a manager that is part of my job and I accept that it is something I need\nto do.\n\nWhat I have been trying to do at my office is lead more effective meetings,\nbut also to encourage my colleagues to have more effective meetings as well.\n\nIt's been challenging as the organization I work for is large and all I can do\nis lead by example with the meetings that I am in.\n\nUntil now ... maybe\n\nI read an article on [LinkedIn](https://www.linkedin.com) titled [Tired of\nwasting time in meetings? Try this](https://www.linkedin.com/pulse/tired-\nwasting-time-meetings-try-oisin-grogan) and there were several suggestions for\nbetter meetings some of which I already knew:\n\n  1. Define the purpose of the meeting\n  2. Define the outcome of the meeting\n  3. Have a timed agenda and someone in charge\n\nAnd others that I didn't:\n\n  1. Facts - not opinions!\n  2. Keep people on-point. (Only talk about matters relating to their job)\n\nI think that number 4 is a key idea for any meeting (that isn't a\nbrainstorming meeting) but number 5 is a bit too much. Keeping people on point\nis an important aspect to any meeeting, but only allowing people to talk about\nmatters related to their job ... what is the dividing line between 'my job'\nand 'not my job'?\n\nThis seems like it wouldn't actually have the intended outcome. I think people\nwho are already quite will be encouraged to stay quite as the topic isn't\nrelated to their job (even if it might be) and those that talk too much\nalready will assume that everything is related to their job so they will still\ncontribute inappropriately.\n\nI think that point 5 is much better when restated as:\n\n  1. Keep people on-point, only talk about the current agenda item\n\nThe article did include a nice diagram that you can download (need to provide\nan email address first).\n\n", "2017-02-04", "making-better-meetings-maybe", "To say that I attend a lot of meetings is a bit of an understatement. However,\nas a manager that is part of my job and I accept that it is something I need\nto do.\n\nWhat I have been trying to do at my office is lead more effective \u2026\n\n", "Making Better Meetings ... maybe", "https://www.ryancheley.com/2017/02/04/making-better-meetings-maybe/"], ["ryan", "musings", "Having just finished up my second round of Djangonaut.Space (which I wrote\nabout [here](https://www.ryancheley.com/2024/08/29/reflections-on-djangonaut-\nspace-session-2/)) I wanted to write a bit about mentors ... how to find one,\nhow to work with one, and how to be one.\n\n## Finding a Mentor\n\nOne of the best ways to find a mentor is through a program like [Djangonaut\nSpace](https://djangonaut.space/). You're put into a cohort of other Django /\nPython programmers with a Captain and a Navigator. A program like this offers\nup ready made mentors in the form of the Captains and Navigators. Even your\nfellow participants can act as mentors.\n\nThe thing about a mentor, and finding one, is that what you're looking for\nisn't ONE mentor ... you're looking for a mentor in a specific aspect of life,\nwhether personal or professional. In Djangonaut.Space you'll get a couple of\nmentors in Python / Django, but you may also find that you get a mentor who\nhelps with thinking about / dealing with / finding developer jobs.\n\n## Working with a Mentor\n\nWorking with a mentor isn't just showing up and hoping that all of their\nknowledge in the specific aspect of life you're looking to be mentored on will\nsuddenly flow from them to you like a fountain. You need to do a bit of\nhomework too!\n\nMentors can provide lots of guidance, but like any guide, you kind of need to\nknow where you're going ... even if it's just a vague direction. Having a goal\nof\n\n> I want to be a programmer\n\nis a bit vague and difficult to help on. A mentor can provide some guidance\nfor that, like\n\n> Try Python\n\nbut a goal like,\n\n> I want to learn programming to help automate some of these things\n\nwill definitely lead to more focused advice. Now the mentor can say,\n\n> That's great! Check out this book, these blogs, and follow this YouTuber ...\n> also, here are 10 people you might find interesting on Mastodon (or your\n> preferred Social Media platform of choice)\n\nWhen working with a mentor they might provide open ended advice or guidance\nand expect that you'll have done something with it. Going back to the previous\nexample, if a mentor offers the advice of Books, Blogs, YouTubers, etc at your\nnext interaction they might ask, \"So did you have a chance to check out any of\nthose things\".\n\nIf your answer is no, that's not the end of the world, but it might signal to\nthe mentor that you're not ready for the mentor/mentee relationship. If your\nanswer is a bit more defined, like \"No, work and family have really been\ncrazy, but I've set aside 2 hours this weekend to really check them out\" will\nhelp the mentor know that you're going to actively try and work on the\nsuggestions made.\n\nSomething to keep in mind is that this is a relationship with the mentor. They\nwill try and provide helpful tips and guidance to you, and in return they\nexpect that you'll be acting on those tips or guidance. If you're not willing\nor able to do that ... that's OK, but maybe this isn't the best time for your\nmentor relationship to start\n\n## How to be a mentor\n\nGoing back to my comment above, being a mentor isn't about being the ONLY\nmentor for a person, but a mentor for that person for a specific thing (or set\nof things) to help them grow. And that's really the point of mentoring. You\nwant to help someone with their growth so that they can get better at a thing.\nThis will have the strange effect of making you better at that thing as well.\n\nIt's easy enough to wave your hands when you're thinking about why something\nworks the way it does, but if you're mentoring someone and they ask you a\nquestion you don't know, you are going to do yourself a great service by\nhelping to explain and get them to understand the concept as well.\n\nFor example, something that really breaks my brain is mocking. It's just never\nreally stuck with me and every time I need to mock something I'm basically\nlearning it over again. If I had a mentee and they asked about mocking I'd\nprobably get a deer-in-the-headlights sort of look and then say,\n\n> You know, it's something I struggle with, but let me write down some\n> thoughts and my understanding on it and talk about it next time.\n\nAnd, here's the key, next time you meet with them talk through what you\nlearned (again) and show them how you learned it. What docs did you reference?\nWhat applications of mocking did you try? How did you try and figure it out?\n\nI think so much of problem solving is learning how to learn. Honestly, if you\ncan be presented with a problem and are able to come up with a solution\nwithout much thought then you may not understand the problem as well as you\nthink. You might just be applying a previous solution to the current problem\n.. essentially trying to make a square peg try to fit in a round hole.\n\nBut with mentoring you can help people learn how you learned and to guide them\non their journey to discovering things.\n\nSomething **super** important to remember is that it's **their** journey, not\nyours.\n\nOne thing I do, probably too much, is tell stories to try and get people to\nunderstand and remember how things work. I find that stories really work for\nmy brain and help me to retain details that are important, or help to remind\nme of the ways in which problems were solved.\n\nHonestly, every time someone comes to me with a new problem that I've never\nseen before my imposter syndrome kicks in like nobody's business! I beat\nmyself up for how **stupid** I am that I can't solve this problem that I've\nnever seen before.\n\nBut slowly, as I work through the problem, I start to see connections to other\nproblems that I've solved. Not the same problem, but similar problems. This\nhelps to get me to a solution ... but short walks help too ... and a good\nnight's sleep.\n\nAnd this is a prime opportunity for you to take what you've learned, how\nyou've learned it and help a mentee with finding an approach that helps them\nin similar situations.\n\nAs a mentor, you don't need to be a WORLD EXPERT, you just need to be an\nexpert on that one thing in comparison to the mentee. I once heard that an\nexpert is just the person in the room who knows more about a topic than anyone\nelse in that room. You don't need to be a Django Expert at DjangoCon to be a\nDjango Expert at work when trying to introduce Django to developers that\nhaven't seen it before.\n\n## Wrap up\n\nFinding opportunities to be mentored can be hard, but a potential good place\nto start are programs like Djangonaut.Space and similar programs. Other places\ncan be contributing to OSS projects1\n\nBeing a mentor doesn't mean you need to be a world expert, you just need to\nhelp one person find resources to help move them along in their journey. If\nyou can do that, then I'd call you a pretty successful mentor!\n\n  1. There are some caveats here, like an open and welcoming community \u21a9\ufe0e\n\n", "2024-09-16", "mentors", "Having just finished up my second round of Djangonaut.Space (which I wrote\nabout [here](https://www.ryancheley.com/2024/08/29/reflections-on-djangonaut-\nspace-session-2/)) I wanted to write a bit about mentors ... how to find one,\nhow to work with one, and how to be one.\n\n## Finding a Mentor\n\nOne of the best ways to find a mentor is \u2026\n\n", "Mentors", "https://www.ryancheley.com/2024/09/16/mentors/"], ["ryan", "musings", "This weekend I migrated my site from [Square\nSpace](https://www.squarespace.com \"Spare Squace!\") to\n[WordPress](https://www.wordpress.com \"WordPress!\"). I had been planning to do\nthis for a while (ever since a [Hover](https://www.hover.com \"Hover!\") ad read\non [ATP](https://www.atp.fm \"Accidental Tech Podcast\") earlier this summer).\nThis weekend was the last weekend before my [Square\nSpace](https://www.squarespace.com \"Spare Squace!\")subscription was set to\nexpire so I finally made the switch.\n\n## Why I did it\n\n[Square Space](https://www.squarespace.com \"Spare Squace!\") offers a beautiful\ninterface and great templates to get you started. They make everything about\nsetting up a blog, portfolio or online store as easy as it can get. But ...\nthat\u2019s kind of where it ends for me. While the set up is amazingly easy, the\nactually content posting (for me this means my writing) was more difficult\nthan I would have liked.\n\nIn order to get something posted to my [Square\nSpace](https://www.squarespace.com \"Spare Squace!\") site I would write\nsomething in anyone of a number of Plain Text Editors\n([BBEdit](https://www.barebones.com/products/bbedit/),\n[Drafts](https://agiletortoise.com/drafts/), [Editorial](http://omz-\nsoftware.com/editorial/), [Ulysses](https://ulyssesapp.com)). Then I would\npreview the generated `HTML` to verify it looked the way I wanted it to.\nFinally, I would post my `MarkDown` to the [Square\nSpace](https://www.squarespace.com \"Spare Squace!\") Blog App on iOS and do it\nAll. Over. Again.\n\nTo say that it was frustrating is a bit of an understatement. I looked really\nhard to see what `API`s existed and found that there _used to be_ an API but\nthat Square Space removed them for some reason. So no direct posting to my\nblog by my favorite text editors.\n\nSo, with Hover having a discount on domains, and me getting an\n[AWS](https://aws.amazon.com \"Amazon Web Services\")account where I could host\nWordPress and a rich set of WordPress `API`s to post directly from some of my\nfavorite text editors, it seemed like a no brainer to make the switch.\n\n## How I set up my Wordpress Install\n\nThe AWS ecosystem has some amazing documentation on how to do just about\nanything that you want. So, instead of laboriously taking screenshots and\nwriting up what I did, I\u2019ll just link to [Amazon\u2019s Launch a WordPress Website\ntutorial](https://aws.amazon.com/getting-started/tutorials/launch-a-wordpress-\nwebsite/ \"Launch a WordPress Website\")\n\n## Exporting from Square Space to Wordpress\n\nFor all the pain it was to get content into SquareSpace, it was a breeze to\nget it out. Again, no need to get screenshots or write it up if I can just\n[link](https://support.squarespace.com/hc/en-us/articles/206566687-Exporting-\nyour-site \"Getting my stuff from SquareSpace\") to it instead!\n\n## What I hope to gain from it\n\nAs I wrote earlier my main reason for leaving Square Space was the difficulty\nI had getting content in. So, now that I\u2019m on a WordPress site, what am I\nhoping to gain from it?\n\n  1. Easier to post my writing\n  2. See Item 1\n\nWriting is already _really_ hard for me. I struggle with it and making it\ndifficult to get my stuff out into the world makes it that much harder. My\nhope is that not only will I write more, but that my writing will get\n**better** because I\u2019m writing more.\n\n## Ulysses integration\n\nWith all of that, what has my experience been with writing my first post to my\nWordPress site?\n\nThis entire post was written and edited in Ulysses. I was able to preview my\npost in Ulysses. I was able topost my content to the site with Ulysses.\nBasically, Ulysses is a kick ass app and on day one of the conversion, I\u2019m\nabout as happy with a decision that I can be given the short amount of time\nsince I\u2019ve made it.\n\n", "2017-10-01", "migrating-from-square-space-to-word-press", "This weekend I migrated my site from [Square\nSpace](https://www.squarespace.com \"Spare Squace!\") to\n[WordPress](https://www.wordpress.com \"WordPress!\"). I had been planning to do\nthis for a while (ever since a [Hover](https://www.hover.com \"Hover!\") ad read\non [ATP](https://www.atp.fm \"Accidental Tech Podcast\") earlier this summer).\nThis weekend was the last weekend before my [Square\nSpace](https://www.squarespace.com \"Spare Squace!\")subscription was set to\nexpire so I finally \u2026\n\n", "Migrating from Square Space to Word Press", "https://www.ryancheley.com/2017/10/01/migrating-from-square-space-to-word-press/"], ["ryan", "musings", "With the announced [demise of Pocket by\nMozilla](https://support.mozilla.org/en-US/kb/future-of-pocket) I needed to\nmigrate all of my saved articles to 'something else' by the end of the month.\nI've actually tried to migrate from Pocket a few times over the years. I\nlanded on [Instapaper](https://www.instapaper.com/) for a while, but it never\nreally clicked for me. I tried a service called\n[Devmarks](https://devmarks.io/) that [Adam G\nHill](https://indieweb.social/@adamghill) runs, and I really liked it, but for\nwhatever reason I stopped using it. I had also previously tried\n[Raindrop.io](https://Raindrop.io/) ... and I'm not really sure what drove me\naway from it, but it didn't stick for me at the time.\n\nSince I didn't have a choice about Pocket I did a bit of purusing my options,\nand finally landed on Raindrop.io again. The process of migration is pretty\npainless. I just export out the links from Pocket and then import them into\nRaindrop. No fuss ... no muss. Raindrop even checks for duplicates and allows\nyou to not import them!\n\nSo, I imported everything (all 11,500+ articles!) and started to incorporate\nRaindrop into my workflow. This basically just means saving things to Raindrop\ninstead of pocket, and then checking Raindrop instead of Pocket every week to\nmake sure I'm all caught up on my articles to read.\n\nOver the last weekend I was looking at how all of the imported items in\nRaindrop were put into the 'archive' collection and decided that I could\nprobably do something about putting them into proper collections.\n\nWith the help of Claude Code, I was able to put them into better collections.\nThere were some stragglers and I decided that I could categorize them on my\nown (there were less than 100).\n\nI started going through these last ones I kept coming across articles for\niOS7, or an app that I think I liked in 2015 but isn't on the App store\nanymore. I came across [this article](https://www.inc.com/graham-winfrey/what-\nthe-internet-of-things-will-look-like-in-2025.html) (which I also\n[tooted](https://mastodon.social/@ryancheley/114689388596371458) about on\nMastadon) from September 4, 2014 with the title `What the Internet of Things\nWill Look Like in 2025 (Infographic)`. It's wildly naive, but a fun read\nnonetheless.\n\nNeedless to say it was the only gem in the 100 articles that I went through. I\nhad so many saved articles that aren't 'Evergreen'. I then started looking at\nsome of the articles that had been categorized and came across stuff for\nDjango 1.11, Python 3.8, and other older stuff.\n\nThese were great articles when I read them, but I don't know that I **need**\nthem now. In fact, when I looked at my general workflow for using any read-it-\nlater service, I essentially save it to read later. If it's sitting in my\nread-it-later service for more than 4 weeks I'll either delete or just archive\nit.\n\nSo really, unless I'm planning on _doing_ something with these articles, I'm\nnot sure that I need to keep them. And that's when it hit me ... I can just\ndelete them. All of them. I don't need to keep them. If they are truly\nimpactful, I can write up something about them in Obsidian. If I really think\nsomeone else will get something out of my reaction I can write it up and post\nit. But, if I'm being honest with myself, this is just digital clutter that\nisn't \"sparking\" any joy for me.\n\nSo, just like that, I went from having 11,000+ links to having 0. And I have\n[no ragrets](https://inkcredibletattoovb.com/bad-tattoos-no-ragerts/).\n\nI'm sure there's some deeper story here about physical things and just letting\nthem go as well, and maybe I'll be able to apply that to my non-digital life,\nbut for now, I'm just going to revel in the fact that I was able to offload\nthis thing and just not ... care? Be sad? I'm not sure what the correct term\nwould be here.\n\nRegardless, it was a good exercise to have gone through, and I'm glad I did.\n\n", "2025-06-19", "migrating-to-raindrop-io", "With the announced [demise of Pocket by\nMozilla](https://support.mozilla.org/en-US/kb/future-of-pocket) I needed to\nmigrate all of my saved articles to 'something else' by the end of the month.\nI've actually tried to migrate from Pocket a few times over the years. I\nlanded on [Instapaper](https://www.instapaper.com/) for a while, but it never\nreally \u2026\n\n", "Migrating to Raindrop.io", "https://www.ryancheley.com/2025/06/19/migrating-to-raindrop-io/"], ["ryan", "musings", "Because I have a couple of posts that I need/want to work on, and I have the\ntime to work on them, I have of course decided to instead to update the theme\non my blog because that was a way better use of my time \ud83d\ude02\n\nAlso, because the day is just too nice to not be sitting outside watching\nbaseball (even if it's on TV ... and even if it's the **ping** of the bat and\nnot the **crack** of the bat1)\n\n  1. Since the MLB Lockout is **still** going on and there's [no end in sight](https://www.espn.com/mlb/story/_/id/33347425), I've resorted to watching NCAA Baseball. I have to say, it's really entertaining AND it seems like there's 100 games on each day! \u21a9\ufe0e\n\n", "2022-02-27", "new-theme-who-dis", "Because I have a couple of posts that I need/want to work on, and I have the\ntime to work on them, I have of course decided to instead to update the theme\non my blog because that was a way better use of my time \ud83d\ude02\n\nAlso, because the \u2026\n\n", "New Theme, who dis?", "https://www.ryancheley.com/2022/02/27/new-theme-who-dis/"], ["ryan", "musings", "# Podcasts I like:\n\n  * [Accidental Tech Podcast](http://atp.fm)\n  * [Cortex](https://www.relay.fm/cortex/)\n  * [Free Agents](https://www.relay.fm/freeagents)\n  * [Connected](https://www.relay.fm/connected)\n  * [Talk Python to Me](https://talkpython.fm)\n  * [Canvas](https://www.relay.fm/canvas)\n  * [Robosim](https://www.relay.fm/roboism)\n  * [Ben, Ben and Blue](https://www.benbenandblue.com)\n  * [Mac Power Users](https://www.relay.fm/mpu)\n  * [Upgrade](https://www.relay.fm/upgrade)\n  * [Back to Work](http://5by5.tv/b2w)\n\n", "2017-09-24", "podcasts-i-like", "# Podcasts I like:\n\n  * [Accidental Tech Podcast](http://atp.fm)\n  * [Cortex](https://www.relay.fm/cortex/)\n  * [Free Agents](https://www.relay.fm/freeagents)\n  * [Connected](https://www.relay.fm/connected)\n  * [Talk Python to Me](https://talkpython.fm)\n  * [Canvas](https://www.relay.fm/canvas)\n  * [Robosim](https://www.relay.fm/roboism)\n  * [Ben, Ben and Blue](https://www.benbenandblue.com)\n  * [Mac Power Users](https://www.relay.fm/mpu)\n  * [Upgrade](https://www.relay.fm/upgrade)\n  * [Back to Work](http://5by5.tv/b2w)\n\n", "Podcasts I like", "https://www.ryancheley.com/2017/09/24/podcasts-i-like/"], ["ryan", "musings", "# What is the AHL\n\n[The AHL](https://theahl.com/), or American Hockey League, is a hockey minor\nleague based in the US and Canada. It's widely considered to be the step right\nbelow the [NHL](https://www.nhl.com/) which is the top Hockey League in North\nAmerica.\n\nThere are 32 teams in the AHL, and [23 of them make the\nplayoffs](https://theahl.com/qualification-rules). The teams play for the\n[Calder Cup](https://en.wikipedia.org/wiki/Calder_Cup).\n\n# What are the Calder Cup Playoffs?\n\nThe Calder Cup Playoffs are the name given to the AHL team vying for the\nChampionship Calder Cup. The [2023 Calder Cup\nPlayoffs](https://en.wikipedia.org/wiki/2023_Calder_Cup_playoffs) started on\nApril, 18 2023 with 14 teams playing in 7 different series while the other 9\nall had byes, that is, they did NOT play in the first round.\n\nOne thing to note is that the first round is essentially a play in1 round of\nthe playoffs, but it's not an evenly divided play-in.\n\nThe current format has round 1 with a best of Three Games, rounds 2 and 3 with\na best of Five Games, and both the Conference Finals and Calder Cup Finals\nwith a best of Seven Games.\n\n# Why Realign?\n\nThe ultimate goal is to enhance competitive balance and foster new rivalries,\nmaking the playoff race and outcomes more reflective of team performance\nthroughout the season.\n\nThe current structure of the AHL divides the entire league into 2 conferences,\nand each conference has 2 divisions.\n\nIn the Eastern Conference, you have the Atlantic and North divisions. The\nAtlantic has 8 teams, while the North has 7.\n\nOut in the Western Conference, you have the Pacific and Central division. The\nPacific has 10 teams, while the Central has 7 teams.\n\nNow an interesting thing about the playoffs is that the top 7 (of 10) teams\nfrom the Pacific make the playoffs, while the top 5 (of 7) teams from the\nNorth and Central make it. The Atlantic sends its top 6 (of 8) teams to the\nplayoffs.\n\nEach division will have a certain number of teams with a bye-round, that is\nthey don't have the play in the first round.\n\nIn the North and Central three teams get a first-round bye, with only 2 teams\nplaying in round 1. In the Atlantic three teams get a first-round bye with 4\nteams playing in the first round.\n\nAnd in the Pacific division, you have 6 teams playing in the first round with\nonly ONE team getting a first-round bye.\n\nSo of the 23 teams that make the playoffs, 14 of them play in the first round,\nand of that 14, 6 come from the Pacific division.\n\nSeems a bit off to me.\n\nThis also had the slightly embarrassing (for the AHL at least) aspect of\nseeing the second-best team in the entire league in the 2022-23 season (the\nCoachella Valley Firebirds) needing to win a Play-in round to make it into\nwhat might be considered the playoffs.\n\nBy the time the Calder Cup Playoffs had concluded last year, the Firebirds\nlost to the Hershey Bears in 7 games. It was the MOST exciting series that I\nwill ever get to see in person, or on TV.\n\nThat being said, the Firebirds played 26 out of a possible 27 games during the\nplayoffs last year. The Bears played in 20 out of a possible 24.\n\nIf the Firebirds would have had a first-round bye, like the Bears, they would\nhave most likely still played in 23 out of 24 games (3 fewer games than what\nthey actually played) BUT three games can make a huge difference!\n\nI would like to make the case that realignment of the AHL, to a balanced set\nof divisions, and conferences is not only feasible, and easy, but in the best\ninterests of the AHL.\n\nBefore exploring the realignment scenario, I'll outline the proposed changes.\nThe realignment aims to balance the divisions and conferences, ensuring an\nequal number of teams in each division and a fairer playoff qualification\nprocess.\n\nAdditionally, if this realignment had happened last year, I believe that the\noutcomes could have been different (especially given the [Firebird Colored\nGlasses](https://en.wikipedia.org/wiki/Rose-colored_glasses) I might be\nwearing).\n\nThere is a post on the [AHL Site ](https://theahl.com/howson-guiding-ahl-back-\nto-normalcy) about realignment. Quoting the League President Scott Howson:\n\n> There\u2019s no easy solution. I\u2019m not saying it\u2019ll never happen, but it\u2019s not in\n> the cards right now.\n\nOne item stated for a lack of realignment is, \"Realignment would break up the\nPacific cohort and likely force teams into the Central, and Howson does not\nsee that as likely, given the additional travel burden that it could put on\nthe division\u2019s members.\"\n\nI'm going to assume this is NOT the case. What I have below is from a \"Does\nthis seem like it might work?\" perspective. 2\n\n# Realignment\n\nWith my rationale for the need for realignment of the way, let's get into the\nactual implementation of the realignment.\n\nI built a [Streamlit app](https://streamlit.io/) to see what a potential\nrealignment would look like that can be found [here](https://ahl-\nrealignment.streamlit.app/).\n\nThe idea would be:\n\n  1. Move both Tucson and Colorado to the Central Divsiion to get the Pacific Division down to 8 team\n  2. Move Grand Rapids from the Central Division (in Western Conference) to the Atlantic Division (in the Eastern Conference) to get the Central and Atlantic to 8\n\n## Impact of Realignment on the 2023 Calder Cup Finals\n\nIn the NHL there are 2 conferences with 2 divisions of 8 teams each. The\nplayoffs get a total of 16 teams. The three top teams from each division, and\nthen the top two teams from the Conference.\n\nThis means that round 1 has 16 teams playing in 8 different series and NO ONE\ngets a bye.\n\nLet's imagine the 2023 Calder Cup Playoffs with realignment AND a similar\nstyle of playoff admission. One difference between the AHL and NHL I'd keep\nwould be to have 5 games in round 1 and 2, and increase to 7 games in the\nChampionship, versus the NHL which has 7 games in every round.\n\nI list the teams below in their proposed (potentially new) division. The\nnumber next to the team is the total points each team had at the end of the\n2022-23 regular season.\n\nThe Eastern Conference would have had the following seeding:\n\nAtlantic Division\n\n  * Providence (98)\n  * Hershey (97)\n  * Charlotte (86)\n\nNorth Division\n\n  * Toronto (90)\n  * Syracuse (81)\n  * Rochester (81)\n\nWild Card\n\n  * Springfield (84)\n  * Hartford (81)\n\nThe Western Conference would have had the following seeding:\n\nCentral Division\n\n  * Texas (92)\n  * Colorado (90)\n  * Milwaukee (89)\n\nPacific Division\n\n  * Calgary (106)\n  * Coachella Valley (103)\n  * Abbotsford (87)\n\nWild Card\n\n  * Manitoba (84)\n  * Iowa (79)\n\n### Eastern Conference Playoffs\n\n#### Round 1 Best of Five games\n\nIn this section, we'll explore the first-round matchups, highlighting the top\ncontenders and their paths to victory based on past performances and current\nstrengths.\n\nStarting in the Eastern Conference we would have the following round 1\nmatchups:\n\n  * Providence (98) vs Hartford (81)\n  * Toronto (90) vs Springfield (84)\n  * Hershey (97) vs Charlotte (86)\n  * Syracuse (81) vs Rochester (81)\n\nTo determine the winners I'm going to look at the playoffs last year and then\nmake an educated best guess as to the winners of each series\n\n##### Providence vs Hartford\n\nProvidence lost to Hartford in the Atlantic division semi-finals last year,\n1-3 and I see no reason for that to change ... other than maybe Hartford wins\nin 3 instead of 4. But I'm going to keep it at Hartford wins 3-1\n\n##### Toronto vs Springfield\n\nToronto and Springfield didn't play each other in the playoffs last year or in\nthe regular season. Springfield lost to Hartford 2-0 in round 1 while Toronto\nhad a first-round bye and defeated Utica 3-1 in the North division semi-\nfinals. My guess is that Toronto would have won this series 3-1\n\n##### Hershey vs Charlotte\n\nHershey defeated Charlotte in the Atlantic division semi-finals last year 3-1.\nGranted Charlotte had just played 3 games against Lehigh Valley and won that\nseries 2-1, I still think that Hershey defeats Charlotte, only it takes all 5\ngames. Hershey wins 3-2\n\n##### Syracuse vs Rochester\n\nSyracuse lost 3-2 to Rochester. Same result this time around I would think\n\n#### Round 2 Best of Five games\n\nBased on the seedings for the first round, I believe that Hartford would hold\na higher position than Rochester\n\n  * Hershey (97) vs Rochester (81)\n  * Toronto (90) vs Hartford (81)\n\n##### Hershey vs Rochester\n\nHershey defeated Rochester 3-2 last year. I believe the outcome would be the\nsame here (although this was in the Eastern Conference finals)\n\n##### Toronto vs Hartford\n\nToronto and Hartford didn't play each other last year, though each team did\nget swept in the division finals. They played each other in the regular season\nonly 2 times, each with the home team winning in OT. With Toronto getting the\nhome nod, I'll extrapolate to say that Toronto wins in 5 games, 3-2\n\n#### Round 3 (Eastern Conference Finals) Best of Seven\n\n##### Toronto vs Hershey\n\nToronto played Hershey 2 times and lost both times. I think that a series like\nthis would be closer, but Hershey comes out on top 4-2\n\n#### Eastern Conference Champion Review\n\nIn this realigned AHL for the Calder Cup finals, Hershey has played 16 out of\n17 games, going 10-6 to reach the Calder Cup Finals. When they actually\nreached the Calder Cup finals last year, they played only 13 games going 10-3\n(playing an extra 3 games)\n\n    \n    \n    Providence (98)----|\n                       |--Hartford (81)----|\n    Hartford (81)------|                   |\n                                           |--Toronto (90)-----|\n    Toronto (90)-------|                   |                   |\n                       |--Toronto (90)-----|                   |\n    Springfield (84)---|                                       |\n                                                               |--Hershey (87)\n    Hershey (87)-------|                                       |\n                       |--Hershey (87)-----|                   |\n    Charlotte (86)-----|                   |                   |\n                                           |--Hershey (87)-----|\n    Syracuse (81)------|                   |\n                       |--Rochester (81)---|\n    Rochester (81)-----|\n    \n\nLet's take a look out West next\n\n## Western Conference Playoffs\n\n### Round 1 Best of Five games\n\nIn the Western conference we would have had the following round 1 matchups:\n\n  * Calgary (106) vs Iowa (79)\n  * Texas (92) vs Manitoba (84)\n  * Coachella Valley3 (103) vs Abbotsford (87)\n  * Colorado (90) vs Milwaukee (89)\n\nAs with the Eastern Conference bracket to determine the winners I'm going to\nlook at the playoffs last year and then make an educated best guess as to the\nwinners of each series.\n\n##### Calgary vs Iowa\n\nCalgary didn't play Iowa at all in either the regular season or the postseason\nlast year. Based on the final records, I think it's safe to say that Calgary\nwins this series, but I believe it's 3-1\n\n##### Texas vs Manitoba\n\nTexas played Manitoba 8 times in the regular season last year with Manitoba\nwinning 6 of these games. There were several that went into OT which Manitoba\nwon more often than not. I think this goes to 5 games, but Manitoba wins 3-2.\n\n##### Coachella Valley vs Abbotsford\n\nCoachella Valley and Abbotsford played 4 times, each winning two games. Given\nthe disparity in total points at the end of the year, I think that Coachella\nValley wins in five 3-2.\n\n##### Colorado vs Milwaukee\n\nColorado and Milwaukee didn't play each other at all in the regular season. I\nthink that this is an even match-up, but I give the edge to Colorado since\nthey're the home team, winning 3-2.\n\n### Round 2 Best of Five games\n\n  * Calgary (106) vs Manitoba (84)\n  * Coachella Valley (103) vs Colorado (90)\n\n##### Calgary vs Manitoba\n\nCalgary wins this in 5, 3-2. They didn't play each other at all during the\nregular season, but I think that provincial pride forces the series to 5 games\n\n##### Coachella Valley vs Colorado\n\nCoachella Valley wins this in 5, 3-2. This is a repeat of the series last\nyear. I believe that it goes the distance again.\n\n### Round 3 (Western Conference Finals) Best of Seven\n\n##### Calgary vs Coachella Valley\n\nCoachella Valley defeats Calgary 4-3\n\nCoachella Valley and Calgary played each other in the Pacific Division Finals\nlast year. It was a brutal series with Coachella Valley winning in game 5 in\nOvertime. I think that the same result comes out here going the distance.\n\n    \n    \n    Calgary (106)------|\n                       |--Calgary (106)------|\n    Iowa (79)----------|                     |\n                                             |--Calgary (106)----|\n    Texas (92)---------|                     |                   |\n                       |--Manitoba (84) -----|                   |\n    Manitoba (84)------|                                         |\n                                                                 |--CV (103)\n    CV (103)-----------|                                         |\n                       |--CV (103)-----------|                   |\n    Abbotsford (87)----|                     |                   |\n                                             |--CV (103)---------|\n    Colorado (90)------|                     |\n                       |--Colorado (90)------|\n    Milwaukee (89)-----|\n    \n\n### Western Conference Champion Review\n\nAt the Calder Cup finals, Coachella Valley has played 17 out of 17 games,\ngoing 10-7. When they actually reached the Calder Cup finals last year, they\nplayed 19 games going 12-7. Two fewer games to get here.\n\n### Calder Cup Finals\n\nIn this matchup, Coachella Valley will have up to 4 home games, while Hershey\nwill have up to 3.\n\nCoachella Valley played in 2 fewer games in this scenario, while Hershey\nplayed in 3 more games, for a net difference of 5 games.\n\nI think the first two games go as they did last year. Epic drubbings at\nAcrisure Arena by Coachella Valley over Hershey. I think that the 3 games4 in\nHershey go 2-1 in favor of Hershey giving the Firebirds a chance to clinch on\nhome ice in game 6 which they do.\n\n## Evaluating the Impact of Realignment: A Reflection on Competitive Balance\nand Missed Opportunities\n\nGoing through this exercise doesn't change the outcome of the 2023 Calder Cup\nFinals. And I don't want this to seem like a sour grapes sort of thing. The\nHershey Bears won the Final game last year within the confines of the\nstructure that was set up by the AHL. In that sense, they won it fair and\nsquare.\n\nAlso, I'm not sure if this realignment had been in place my predictions would\nhave been correct necessarily.\n\nWhat I think it does point out is an extreme disadvantage that the Pacific\ndivision faces in the playoffs. Last year the Coachella Valley Firebirds were\nthe FIRST team west of Austin to make the Finals. They were also the first\nteam to EVER play a playoff game in EVERY timezone that the AHL operates a\nteam in.\n\n## Coda\n\nI was bummed that the Firebirds lost in Game 7 last year. [I wrote about\nit](https://www.ryancheley.com/2023/07/01/firebirds-inaugural-season/) just a\nfew days after it happened.\n\nIt was the most exciting sporting event I've ever seen, either in person or on\nTV. I'm not sure anything will ever be that intense and exciting.\n\nI really wish they would have won, and this shows that they just might have\nbeen able to if the conference, divisions, and playoff seedings were a bit\nmore balanced.\n\n  1. preliminary round that occurs before the start of the official playoffs. It is typically used to determine who gets the last spots in the playoff \u21a9\ufe0e\n  2. A full analysis is something I'll be looking at for another post in the future. There are lots of other items to look at like (1) Schedules, (2) Travel, and (3) Rivalries \u21a9\ufe0e\n  3. Coachella Valley is abbreviated CV in some cases below to save space \u21a9\ufe0e\n  4. In all honesty the 3 games in Hershey last year were games where the Firebirds seemed a bit tired. There was also some officiating that seemed a bit dubious (an offside that didn't get called that led to a goal that, IMO, shouldn't have counted) \u21a9\ufe0e\n\n", "2024-02-24", "realign-the-ahl", "# What is the AHL\n\n[The AHL](https://theahl.com/), or American Hockey League, is a hockey minor\nleague based in the US and Canada. It's widely considered to be the step right\nbelow the [NHL](https://www.nhl.com/) which is the top Hockey League in North\nAmerica.\n\nThere are 32 teams in the AHL, and [23 \u2026](https://theahl.com/qualification-\nrules)\n\n", "An Argument to Realign the AHL", "https://www.ryancheley.com/2024/02/24/realign-the-ahl/"], ["ryan", "musings", "A few weeks ago I completed my second session as a\n[Djangonaut.Space](https://djangonaut.space/)\n[Navigator](https://github.com/djangonaut-\nspace/program/blob/main/navigators.md). The Djangonaut.Space program is an\nopportunity for people to be introduced to contributing to Django and Django\nadjacent projects.\n\nIn this most recent session I was a Navigator for Team Mars with a fantastic\nCaptain [Tobe](https://www.linkedin.com/in/emmanuel-katchy). Our Djangonauts\nwere [Andy](https://softwarecrafts.uk/),\n[Maryam](https://www.linkedin.com/in/maryam-yusuf/), and\n[Rosana](https://rosanarufer.blogspot.com/).\n\nAmong the 3 of them they took on 7 tickets, pushed 7 PRs and closed 5 tickets.\n\nAs part of the program we would meet weekly to talk about any blockers and try\nand work through them. These meetings also provided a platform to encourage\none another.\n\nOne week we spoke about being a professional software developer working with\nDjango which was a great conversation.\n\nI really like this program for what it offers both the Djangonauts, and the\nmentors. I learned so much as part of this program.\n\nAs we were coordinating our first meeting I realized that the rest of my team\nwere in time zones that were 7 - 8 hours ahead of mine! I was a bit worried\ninitially that we'd have a hard time finding a common time to meet, but we\nsettled on Wednesdays at noon and this turned out to be pretty perfect for all\nof us.\n\nEach of our team meetings was similar to a [standup](https://www.agile-\nacademy.com/en/scrum-master/daily-standup/) where we'd talk about what work\nhad been done the previous week, and any struggles that we were having. The\ndjangonauts on team Mars were absolute Rock Stars. They picked up some pretty\ngnarly 1 issues and worked them to completion each time.\n\nWorking on a project like Django can be daunting and scary and time consuming.\nHowever, the amount that you can learn from working on a large project and\ncode base like this is immeasurable.\n\nWorking to form a consensus on an issue or idea, whether it's code or\ndocumentation, can be challenging! But as Maryam said in [her blog\npost](https://maryam.hashnode.dev/contributing-to-django-with-djangonaut-\nspace) about her experience with picking up a documentation ticket\n\n> To start safely, I picked a documentation change ticket just to get myself\n> familiar with the process. One of my tickets involved updating some wordings\n> in the documentation to make it easier for people to differentiate when a\n> pull request needed a Trac ticket or not. Initially, I thought this would be\n> a simple wording change. However, I soon realised that making changes to\n> Django documentation itself requires a lot of thought and consideration.\n>\n> This experience reminded me of my early days as a Django user. I loved\n> Django for its documentation - detailed, thoughtful, well-organised, and\n> easy to follow. Now, working on documentation changes as a contributor has\n> shown me how Django achieves such clarity. Significant thought and effort go\n> into making it clear and readable, minimising confusion and maximising\n> understanding for readers.\n>\n> If you don't know this going in then you can be disappointed or\n> disillusioned with how long something might take to be accepted, or\n> whatever, but a program like Djangonaut Space does, I think, help to ease\n> newcomers into contributing and setting realistic expectations and, in\n> general, enjoying the process.\n\nOne thing I tried to really emphasize with my team was that it won't be easy,\nand it will take some time, but that the effort will pay off with a ticket\nthat has been closed ... and in the worst case you've helped to move it\nforward.\n\nAnother point I tried to keep front and center was the idea that this is a\nvolunteer role and that if you're not having fun it's OK to take a step back.\nI think we need to hear that more and more, especially given the stress that\nmany developers can be under for their $dayJobs.\n\nI hope that this advice helped them in navigating the tickets that they\nworked. I also hope it helped to put into perspective what they were doing\nfrom a time commitment perspective.\n\nOne thing that I really love about the Django community in general, and the\nDjangonaut.Space community in particular, is how welcoming they are. The\ncommunity strives to welcome you to be part of it.\n\nBUT even with the welcoming nature, it can still be very hard to pick that\nfirst ticket, submit that first PR, and receive that first bit of feedback.\n\nA program like Djangonaut.Space really helps to get people more comfortable\nwith the process of picking and working on a ticket. It also helps to develop\nlong term contributors to the project ... which is amazing.\n\nI'm looking forward to the next time I'll be able to participate and would\nencourage anyone to get involved, either as a participant, or as a mentor.\n\n  1. Tickets [13376](https://code.djangoproject.com/ticket/13376), [35464](https://code.djangoproject.com/ticket/35464) and [12203](https://code.djangoproject.com/ticket/12203) \u21a9\ufe0e\n\n", "2024-08-29", "reflections-on-djangonaut-space-session-2", "A few weeks ago I completed my second session as a\n[Djangonaut.Space](https://djangonaut.space/)\n[Navigator](https://github.com/djangonaut-\nspace/program/blob/main/navigators.md). The Djangonaut.Space program is an\nopportunity for people to be introduced to contributing to Django and Django\nadjacent projects.\n\nIn this most recent session I was a Navigator for Team Mars with a fantastic\nCaptain \u2026\n\n", "Reflections on Djangonaut Space Session 2", "https://www.ryancheley.com/2024/08/29/reflections-on-djangonaut-space-session-2/"], ["ryan", "musings", "## The Roman Colosseum\n\nAfter the fall of the Western Roman Empire in 497 CE the Colosseum fell into\ndisrepair. Rightfully so! Who can worry about keeping up a giant megalith made\nby people centuries ago while you're just trying to figure out where your next\nmeal may come from, or the ranging hordes of barbarians showing up and taking\nthe food you did find!\n\nHowever, during the medieval period, while Rome's population declined\ndramatically and many ancient structures fell into disrepair or were\nrepurposed, the Colosseum remained a prominent landmark. There are stories\nthat as the centuries progressed, the inhabitants of Rome forgot who built it.\nWhile some fantastical legends did develop around it, the basic historical\nfacts of its construction by the Flavian emperors and its original purpose\nremained part of common knowledge among educated Romans. For the non-educated\nRoman's there were lots of misconceptions about the colosseum.\n\nThe non-education Romans would have created stories1 about the large building.\nIt was haunted. It was used for pagan rituals and no good Christian would go\nin. Folklore would rise up around it. As many of us have seen or experienced,\nin the absence of information, people will make it up.2\n\n## The Story of the Legacy System\n\nOK, but why is this important from a technology perspective?\n\nImagine if you will a large system, built 10 years ago, by a group of\ndevelopers, that have all left the organization.\n\nNo one left knows how it works, or how to make changes to it. Most people\ndon't even really know WHY it's there in the first place.\n\nThere isn't any documentation that can be referred to. Either because it\nwasn't ever created OR it was destroyed by Barbarians, I mean well meaning IT\nprocesses that 'clean up' unused files.\n\nSo what happens? The people remaining create stories about the system. Stories\nlike the long timer 'Bob' that once caused the entire system to Crash and then\nan old copy backup copy had to be restored, and months worth of work was lost.\n\nNo one ever saw Bob after that. Now we're all afraid to touch any part of it.\nWe mostly leave it alone, and it leaves us alone.\n\nThere are stories about another gray beard that actually built the system, but\neveryone assumes these are just fairy tales.\n\nThe stories tell of this Gray Beard busting out the entire system in a\nweekend, using nothing but a pin to move the electrons into the proper places\nto get all of the logic to work as expected.\n\nOf course, no one really believes that story, but it encourages people to\nnever want to have to make and changes to it.\n\nThe problem here is that it's running on a server with an OS that hasn't been\nsupported for 7 years and there is security mandate to upgrade 'everything' to\nbe on current software\n\nNo one wants to be in charge of this project, but someone is going to have to\nbe in charge of it.\n\nWhat do you do?\n\nThe story above isn't real, at least not for me. But it could be.\n\nHow many times have you gotten to a system that is old, no one around has any\nidea how it was built and people mostly just avoid it? Probably more than\nonce.\n\nBut how can we avoid this fate? Do we just keep the old timers on until they\n(or the system) die?\n\nThere are options, and they are some of the easiest things to do, but many\npeople don't like to do them.\n\nWhat is the answer?\n\n## Documentation\n\nDocumentation. No really, Documentation. Just write it down. For a new project\nespecially. For an old project? Most definitely.\n\nFor new projects it's best to just get into the habit of writing good docs3 as\nyou go. If that's doc strings in a method, or a full fledged Knowledge\nManagement System using a documentation framework like\n[diataxis](https://diataxis.fr/), then so be it.\n\nBut write it down. Write down the why's whenever you can. Use something like\nan [Architectural Decision\nDsocument](https://www.cognitect.com/blog/2011/11/15/documenting-architecture-\ndecisions) to understand WHY you made a technical decision you made. Maybe\nit's not the best decision, but it's the best decision given a set of\nconstraints.\n\nFor existing projects, it can be more challenging. It's possible that NO ONE\nthat created the system is at the organization. It could be that NO ONE that\nasked for the system to be created is at the organization.\n\nThis leads to a bunch of problems to try to solve, but the journey of 1000\nmiles starts with a single step.\n\n## How do you solve it?\n\nUse the helpful [Awareness-Understanding\nMatrix](https://en.wikipedia.org/wiki/There_are_unknown_unknowns)4\n\n| Aware | Unaware  \n---|---|---  \nUnderstand | Known Knowns | Unknowns Known  \nDon't Understand | Known Unknowns | Unknown Unknowns  \n  \nThat is,\n\n  * Known Knowns: Things we are aware of and understand\n  * Known Unknowns: Things we are aware of but don't understand\n  * Unknown Knowns: Things we are not aware of but do understand or know implicitly\n  * Unknown Unknowns: Things we are neither aware of nor understand\n\nThe Known Knowns may be very small, but it won't be empty.\n\nThe Unknown Unknowns might (will probably) be the largest.\n\nThe lack of knowledge here represents Risk5. Risk to your team, or to your\norganization. This Risk needs to be handled as much as possible.\n\nLooking at a system with the Awareness-Understanding Matrix can help to risk\nit properly. Once you've properly risked the system, then you can start\nwriting documentation.\n\nThe documentation can take the form of Architectural Review of System X\n(DRAFT)\n\nThe system does these things\n\n  1. Thing 1\n  2. Thing 2\n  3. Many other things that are still unknown\n\nSometimes just the act of writing these things out will help you in finding\nout what you know and what you don't know.\n\nIf you're using a documentation framework like\n[diataxis](https://diataxis.fr/) for this, you will want to keep your\ndocumentation parts separated (How To, Tutorials, Reference, Explanation). You\nmay start righting a Reference article on the system and realize that you also\nneed to have some, yet to be discovered, Explanation. The issue is that the\nExplanation still needs to be researched and written.\n\nThat's OK! One strategy I've encouraged, and use, is if I'm writing a\nReference Article and need to link to a yet to be written Explanation article,\nis that I'll simply create the yet to be written Explanation article and tag\nit with `Explanation` and `Stub`. This frees me to come back to it later and\nfill in the details.\n\nThe other thing that will need to be done is to figure out who uses the\nsystem. Sometimes that's super easy, and sometimes, it's not.\n\nOnce you're able to determine who uses the system, you can talk with them\nabout the system and then work to fill in the gaps from above.\n\nOccasionally, you find out who everyone _thinks_ is using the system, and\ndiscover that actually, it hasn't been used for 5 years because **reasons** ,\nand they didn't know who to tell.\n\nNow you can just retire the system using a decommissioning process. You have a\ntechnology decommissioning process, right? If you don't, it may be time to\nlook into one!\n\n## Back to the colosseum\n\nThe inhabitants of Rome never got to a spot where none of them knew why it was\nbuilt, or who built it. Or even why. But what did happen is that the people\nwith the knowledge may have been parts of groups that were marginalized and\ntherefore their knowledge was discounted or ignored. Because the knowledge was\na verbal knowledge and not written down. It was, to use a loaded term, tribal\nknowledge. EVERYONE just knows the obvious thing.\n\nBut the thing is ... obvious things are only obvious in the context they were\ncreated. It's obvious what Python is. I mean, why would someone use a snake to\nwrite code to get a computer to do a thing. EVERYONE knows I'm talking about\nthe programming language Python ... until they don't.\n\nJust write this shit down. Make sure everyone gets into the habit of\ndocumenting. Make the documentation public. And if it's not possible to make\nall of the documentation public, make as much public as possible.\n\nFor the parts that aren't public, make sure they are accessible by the people\nthat will need access to it.\n\nReally, documentation is a means to an end. Sometimes you won't need the\ndocumentation. You'll know how the thing works, and it has an obvious API or\nUI and people just \"get it\". This can lead to people not writing the\ndocumentation because we don't need it.\n\nThis is kind of like saying, I've used a seatbelt every day for 30 years and\nI've never needed it. I don't see why I need to wear it any more.\n\nThis might be fine until you're in an accident.\n\nNot writing documentation is fine, until it's needed. And that's the worst\ntime to discover that you need it.\n\nBetter to have it and not need it, than to need it and not have it.\n\n  1. such as it being a temple to the sun \u21a9\ufe0e\n  2. Bren\u00e9 Brown \u21a9\ufe0e\n  3. any docs in this case are good docs! \u21a9\ufe0e\n  4. This is in no way an endoresement of Donald Rumsfeld. He was a horrible person \u21a9\ufe0e\n  5. Jacob Kaplan-Moss has a great series on [Risk](https://jacobian.org/series/risk/) \u21a9\ufe0e\n\n", "2025-01-21", "remember-the-colosseum", "## The Roman Colosseum\n\nAfter the fall of the Western Roman Empire in 497 CE the Colosseum fell into\ndisrepair. Rightfully so! Who can worry about keeping up a giant megalith made\nby people centuries ago while you're just trying to figure out where your next\nmeal may come from, or \u2026\n\n", "Remember the Colosseum!", "https://www.ryancheley.com/2025/01/21/remember-the-colosseum/"], ["ryan", "musings", "Rogue One - A Star Wars Movie: My Thoughts\n\nToday I watched [Rogue One](https://en.m.wikipedia.org/wiki/Rogue_One) and I\nwanted to jot down my thoughts while they were still fresh.\n\nFirst, what I didn't like:\n\n  1. The Rogue One Font at the beginning on the movie. There was just something about it that wasn't as strong as the Original Franchise\n  2. The jumping around done at the beginning of the movie with the planet names (again, with a weak font).\n  3. There were no [Bonthans](http://starwars.wikia.com/wiki/Bothan) either dying or otherwise.\n\nOK, not that's out of the way. What did I like:\n\nEvery. Thing. Else.\n\nJin's character had the depth needed to be a protagonist you would both\nbelieve and want to follow. I think the most surprising thing (maybe ... I\nstill need to think about this) is that from a writing perspective you know\n**ALL** of your characters are going to be throw away characters. They won't\nappear in Episodes 4-6, although the actions they take drive those movies.\n\nAs I realized this, I realized that each lead character was going to die. It\ncan't really be any other way. And while I was sad to see that premonition\ncome to fruition, I was also glad that the writers did what the story called\nfor. Make the story a one-off whose characters can't influence the canon in\nany way other then how they already had.\n\nMaybe I went into the movie with low expectations, or maybe it was just\n**that** good. Either way, I would see this again and again and again.\n\nThe story was strong, with dynamic characters. A mix of good and bad for the\nrebels (as it should be) and all bad, but with depth for the imperial\ncharacters.\n\nI liked this so much I have already pre-purchased it on\n[iTunes](https://itun.es/us/mn6tgb).\n\n", "2016-12-22", "rogue-one-a-star-wars-story", "Rogue One - A Star Wars Movie: My Thoughts\n\nToday I watched [Rogue One](https://en.m.wikipedia.org/wiki/Rogue_One) and I\nwanted to jot down my thoughts while they were still fresh.\n\nFirst, what I didn't like:\n\n  1. The Rogue One Font at the beginning on the movie. There was just something about it that wasn't as \u2026\n\n", "Rogue One - A Star Wars Story", "https://www.ryancheley.com/2016/12/22/rogue-one-a-star-wars-story/"], ["ryan", "musings", "There\u2019s this new commercial by Apple called [Share Your\nGifts](https://youtu.be/3dJCroCMBPM) all about a young creative woman that\nkeeps all of her creativity to herself.\n\nShe does a really good job through the entire video of creating neat things,\nsome seen, some not, and then making sure that no one else sees them by\nstuffing them into her idea box.\n\nHer ideas are only shared when her dog opens the window to her apartment at\nwhich point her ideas are spread throughout the city.\n\nPeople on the street see the ideas as the horrified young creator watches her\ncreations get shared.\n\nAnd you know what happens? People are genuinely happy about the creations that\nhave been shared with them.\n\nThe creator\u2019s fear that people would not appreciate or understand her\ncreations were unfounded. People laugh and smile and enjoy what she\u2019s shared.\n\nIt\u2019s a hugely impactful video for me because I, like most creative people I\u2019m\nguessing, are terrified of sharing what they\u2019ve created.\n\nWhat if what I made isn\u2019t understood? What if no one likes what I've made?\nWorse, what if no one notices what I\u2019ve made. What if people make fun of what\nI made. What if ... what if ... what if ... ?\n\nI like this commercial because it takes those \u201cwhat if\u2019s\u201d and turns it on it\u2019s\nhead! What if people connect with what I\u2019ve made? What if people enjoy what\nI\u2019ve made? What if people are happy because of what I\u2019ve made?\n\nThe act of creating, for me at least, is less about any external validation,\nand more about trying out something new and learning, but I still am afraid to\nshare.\n\nThese feelings, these \u201cwhat if\u2019s\u201d can hold me back from sharing some truly fun\nthings I\u2019ve done. Who knows, maybe some of them are amazing.\n\nSo what if someone doesn\u2019t like what you\u2019ve made? So what if someone makes fun\nof what you\u2019ve made? If you hold yourself hostage to the naysayers, and the\npotential negativity of the world, you rob the world of something truly\nextraordinary ... you.\n\nAnd so, with this in mind, I am going to worry less about the potential\nnegatives of what I create when I share it, and focus more on the happiness\nthat it brings me, and the happiness it might bring to others.\n\nHere\u2019s to sharing your creativity ... here\u2019s to sharing your gifts with the\nworld!\n\n", "2018-11-27", "share-your-gifts", "There\u2019s this new commercial by Apple called [Share Your\nGifts](https://youtu.be/3dJCroCMBPM) all about a young creative woman that\nkeeps all of her creativity to herself.\n\nShe does a really good job through the entire video of creating neat things,\nsome seen, some not, and then making sure that no one \u2026\n\n", "Share Your Gifts", "https://www.ryancheley.com/2018/11/27/share-your-gifts/"], ["ryan", "musings", "I've written before about the [Theme's that CGP\nGrey](https://youtu.be/NVGuFdX5guE?si=-9zFaB0xjmxOEh26) has discussed and I\nthink they're great! I've just recently completed my 'Spring of Transition'.\n\nSo what is the Spring of Transition? For me it meant focusing on that last bit\nof time that my daughter will be living with me and my wife full time.\n\nShe just graduated from High School and is getting ready to go off to college\nin the Fall. I've taken the last quarter to really try and focus on spending\nquality time with her, and enjoy the last bits of her living here with me and\nmy wife.\n\nOne of the things I am eternally grateful for is that when my daughter was a\nbaby/toddler I started a [WordPress](https://wordpress.org/) blog to keep\ntrack of all of the adventures we got into. This was 2008 - 2010 and while\nFacebook was _kind_ of a thing, Instragram was **NOT** a thing. I used this\nblog to post pictures with a fun caption of the context of the picture. I\nwould also write a monthly letter to her and recap what fun adventures we had,\nor what changes I had noticed.\n\nI did this for a couple of years, but then life got in the way and the changes\nthat she was going through were harder and harder to see, and capture, with a\ncamera. This made it very hard to write about as well.\n\nI ended up taking down my site, but I kept a backup of the WordPress XML just\nin case1 I would want to use it again.\n\nAt one point I stumbled upon a journalling app called [Day\nOne](https://dayoneapp.com/) that I used to journal. I used it for a couple of\nyears and then found a feature that allowed me to import my WordPress blog\ndata.\n\nI played around with this a bit and finally made the plunge to import the\ndata. It may be the best decision I've ever made with respect to tech.\n\nOver the last several years I focused on trying to journal every day. One of\nthe grear features of Day One is 'On This Day'. After I journal I'll click on\nthat tab and look back at what I've written \"On This Day\".\n\nThe best entries are from the blog. Small reminders of the toddler my (now)\nadult daughter was.\n\nThis has been especially great over the last 3 months as she has wrapped up\nHigh School and prepared for College. It's really allowed me to focus on the\ngreat times we had, and work to create some awesome new memories.\n\nWe didn't do anything exotic, or visit any far off places during this 'Spring\nof Transition' ... there's already sooooo much to be done at the end of a High\nSchool career!\n\nBut, I have tried to focus on the things that we do like to do.\n\nWe have watched a bunch of Star Wars:\n\n  * [Bad Batch Season 3](https://en.wikipedia.org/wiki/Star_Wars:_The_Bad_Batch)\n  * [Acolyte](https://en.wikipedia.org/wiki/The_Acolyte_\\(TV_series\\))\n  * [Tales of the Empire](https://en.wikipedia.org/wiki/Star_Wars:_Tales#Tales_of_the_Empire_\\(2024\\))\n\nWe've also tried to watch the [Battle Star Galactica\nTV](https://en.wikipedia.org/wiki/Battlestar_Galactica_\\(2004_TV_series\\))\nshow from the early 2000s. This didn't go well.\n\nAnother thing that we've been doing is trying to cook meals together. My\ndaughter is a vegetarian, and my wife and I are not, so this makes dinner (and\nother meals) challenging.\n\nTo over come this she found several vegetarian dishes that she thought I would\nlike and we've made them together for dinner. It's been a real treat to see\nwhat she thinks of some of these recipes, which are mostly Thai and Vietnamese\nmeals which is not something she would typically eat (she's really big into\nthe various combinations of cheese and starch, i.e. Grilled Cheese Sandwiches,\nQuesadillas, and Cheese Pizza \ud83d\ude0a\n\nWe've also been trying really hard to get take out from a Thai place that has\nmany vegetarian options, but haven't been able to make it work just yet. This\nlooks to be something that we'll **hopefully** be able to do over the summer\nbefore she leaves for school.\n\nI think the hardest part about all of this has been knowing that each of the\nthings that she's done will be the last. She had her last dance recital (I've\nbeen watching her dance for 15 years). She had her last Girl Scout meeting.\nShe had her last High School class.\n\nSoon she'll have her last night sleeping here before she goes to school.\n\nObviously I always knew this day would come, but I didn't really think it\nwould get here so quickly. [The days are long, but the years are\nshort](https://www.goodreads.com/quotes/239043-the-days-are-long-but-the-\nyears-are-\nshort#:~:text=Quote%20by%20Gretchen%20Rubin%3A%20%E2%80%9CThe,but%20the%20years%20are%20short.%E2%80%9D).\nI never **really** understood what that meant until these last few months.\n\nThere is now this full grown adult living in my home ... at least for the next\nfew months. But just yesterday she was a silly toddler walking around the\nhouse claiming that the elves must have left her milk in the pantry!\n\nI know that her leaving for college isn't the last time I'll ever see her. I\nmean, she'll still have a room at our house, so she'll want to come back at\nsome point, right? Right?\n\nAnd it's not like she's going to school on the other side of the country. It's\njust a short 2 hour drive away. But still ... it won't be the same.\n\nIt's just all so different. My wife and I are planning to be empty nesters.\nLike, what does that even mean? For the last 19 years our daughter has been a\npart of, and influenced, the lives that we've lead.\n\nI'm also a little nervous about my 'little girl'2 going away into the big bad\nworld. I know I shouldn't be though. She is the most thoughtful, capable,\nintelligent, caring, hard working person I've ever met in my life.\n\nI know she's going to do great in her next chapter.\n\nI just didn't realize that next chapter would come so soon.\n\n  1. this is one of the ONLY times my digital hoarding has actually paid off \u21a9\ufe0e\n  2. Fun fact: she's 5'7 with the strength of someone that's been dancing for 15 years so she's not _actually_ little \u21a9\ufe0e\n\n", "2024-06-20", "spring-of-transition", "I've written before about the [Theme's that CGP\nGrey](https://youtu.be/NVGuFdX5guE?si=-9zFaB0xjmxOEh26) has discussed and I\nthink they're great! I've just recently completed my 'Spring of Transition'.\n\nSo what is the Spring of Transition? For me it meant focusing on that last bit\nof time that my daughter will be living with me \u2026\n\n", "Spring of Transition", "https://www.ryancheley.com/2024/06/20/spring-of-transition/"], ["ryan", "musings", "On Sundays mornings I wake up pretty early, make myself some coffee and read\nthrough all of the interesting articles I came across during the week (usually\nfrom [Twitter](https://www.twitter.com)).\n\nLast weekend I came across an article, [You probably know to ask yourself,\n\u201cWhat do I want?\u201d Here\u2019s a way better\nquestion](https://getpocket.com/explore/item/you-probably-know-to-ask-\nyourself-what-do-i-want-here-s-a-way-better-question-1149529539)\n\nI was struck by several passages in the article:\n\n> > If you find yourself wanting something month after month, year after year,\n> yet nothing happens and you never come any closer to it, then maybe what you\n> actually want is a fantasy, an idealization, an image and a false promise.\n> Maybe what you want isn\u2019t what you want, you just enjoy wanting. Maybe you\n> don\u2019t actually want it at all.\n>>\n\n>> I wanted the reward and not the struggle. I wanted the result and not the\nprocess. I was in love not with the fight but only the victory. And life\ndoesn\u2019t work that way.\n\n>>\n\n>> This is the most simple and basic component of life: our struggles\ndetermine our successes. So choose your struggles wisely, my friend.\n\nWhen I was younger I wanted to be many things, a Physicist, an Architect, an\nEngineer, a Professor ... but none of those things ever got any closer. I'd be\nreally engaged in the ideas of one of these for weeks or months at a time.\n\nI remember being so enamoured with the idea of Civil Engineering I convinced\nmy parents to get me a drafting board that I had in my room and I used to\n'design' a prototype of a Martian Habitat.\n\nBut, as soon as I got bored I would move onto something else. From Physics to\nArchitecture to Engineering and back to Physics. I would always stop when it\neither got too hard **OR** something else looked more interesting.\n\nI was always awed by my peers that could stay laser focused on a single hobby\nor dream job and was amazed at the amount of sacrifice they would be willing\nto make in order to achieve their goals.\n\nIt wasn't until I got to college when I started to see what I needed to\nsacrifice in order to get ahead.\n\nParties on the weekend. Not for me ... I had a full time job and was a full\ntime student. I would hang with friends when I could, but I was mostly at the\nlibrary studying, or at work studying or maybe getting a little bit of sleep.\n\nI suddenly became laser focused like the people I knew in high school. I had a\nsingle goal and that was to graduate and go onto graduate school so I could\nget a PhD in economics.\n\nThe PhD didn't happen, and in the following years I felt like I did in high\nschool ... becoming very interested in a 'thing' and then moving on from it\nbecause I'd get bored.\n\nThen I stumbled into the Healthcare Industry and it all came back. An ability\nto be laser focused on new and interesting things. Wanting (maybe needing) to\nlearn everything I could about Healthcare.\n\nIt's been more than 8 years since I started on my journey, and I've struggled\nevery time I've started to learn a new aspect of the industry, or just an\naspect of a new job that I had started.\n\nAnd that's when the final passage in the article really hit me like a ton of\nbricks:\n\n> > This is the most simple and basic component of life: our struggles\n> determine our successes. So choose your struggles wisely, my friend.\n\nIt truly is the struggle that determines the success. I've struggled mightily\nwhile working in healthcare, but those struggles have lead to the most\nfulfilling and successful career I could have hoped for.\n\n", "2017-01-27", "struggle-determines-success", "On Sundays mornings I wake up pretty early, make myself some coffee and read\nthrough all of the interesting articles I came across during the week (usually\nfrom [Twitter](https://www.twitter.com)).\n\nLast weekend I came across an article, [You probably know to ask yourself,\n\u201cWhat do I want?\u201d Here\u2019s a way \u2026](https://getpocket.com/explore/item/you-\nprobably-know-to-ask-yourself-what-do-i-want-here-s-a-way-better-\nquestion-1149529539)\n\n", "Struggle determines success", "https://www.ryancheley.com/2017/01/27/struggle-determines-success/"], ["ryan", "musings", "One of my goals for 2017 has been to read more. According to\n[Pocket](https://www.getpocket.com) I have been in the top 1% of 'pockters' in\nboth 2015 and 2016, but even if that's true (and I'm not entirely convinced it\nisn't just marketing **stuff** ) what I'm reading are web articles, some long\nform, but mostly short form articles.\n\nThis isn't the kind of reading I want to focus on in 2017. I've got a list of\n(mostly) science fiction books I'm planning on reading this year.\n\nI'm also listening to audio books through [Audible](https://www.audible.com)\nduring my commute to work. Those books are a little more varied in their\ncontent so far, and exclusively non-fiction.\n\nBut why does this matter? As I\n[do](https://www.ryancheley.com/blog/2017/1/26/struggle-determines-success) I\nwas reading an article on [Isaac\nAsimov](https://en.m.wikipedia.org/wiki/Isaac_Asimovs) entitled [Isaac Asimov:\nHow to Never Run Out of Ideas Again \u2013 Personal Growth \u2013\nMedium](https://medium.com/personal-growth/isaac-asimov-how-to-never-run-out-\nof-ideas-again-b7bf8e09cc91#.tbua3lk49).\n\nFrom the article 4 points really struck me:\n\n  * Read widely. Follow your curiosity. Never stop investing in yourself.\n  * Diversity is insurance of the mind.\n  * We fail. We struggle. And that is why we succeed.\n  * After all, never having ideas means never having to fail.\n\nAlthough I had planned on reading more **before** having read the article,\nafter reading it I'm even more dedicated to making sure I read as much as I\ncan this year.\n\nThe last 2 points are also something I've been trying to work on. One of the\nreasons for this site is so I can showcase the ways in which I _fail_ and what\nI am able to learn from those 'failures'.\n\nThe ideas that failure and struggle lead directly to success is something I'd\nnever really connected, but I can see the connection between them now.\n\nI like the idea that Isaac Asimov failed at things, but that they didn't\nprevent him from accomplishing those (and other) things.\n\nThis article really helped crystallize an idea that I've had a hard time\nputting into words ...\n\n> > Failing only happens when you don't try. Trying to do a thing and not\n> achieving that thing is not failing, it's simply a different result than you\n> expected. The success is in the trying.\n\nI don't know if these are the _best_ words, but as I'm learning, the success\nis in the trying, not in the perfection of the result.\n\n", "2017-01-28", "success-through-failure", "One of my goals for 2017 has been to read more. According to\n[Pocket](https://www.getpocket.com) I have been in the top 1% of 'pockters' in\nboth 2015 and 2016, but even if that's true (and I'm not entirely convinced it\nisn't just marketing **stuff** ) what I'm reading are web articles, some \u2026\n\n", "Success through failure", "https://www.ryancheley.com/2017/01/28/success-through-failure/"], ["ryan", "musings", "In keeping with my themes for 2024 this summer was to be 'The Summer of\nWriting'.\n\nThis theme didn't have a specific post or word count, but I knew I wanted to\nwrite **more**1.\n\nI had a few things I needed to do to get this started. One of them included\nstarting a writing cohort. I wasn't sure how I would do that but it turns out\nin early June [Lacey](https://hachyderm.io/@lacey) was [having similar\nthoughts](https://hachyderm.io/@lacey/112550334978638433).\n[Mario](https://hachyderm.io/@pythonbynight@fosstodon.org) and\n[Trey](https://hachyderm.io/@treyhunner@mastodon.social) had some interest as\nwell and so we formed a writing group!\n\nWe meet every Wednesday (more or less) for about an hour.\n\nI had really hoped that the forming the cohort would give me the encouragement\nand accountability I needed ... and it HAS!\n\nBut I also quickly realized that all I had calendared (really) was the\nWednesday writing session, and so I set out to have a 30 minute daily writing\nsession on my own.\n\nLife has a way of kicking you in the ass though when you least expect it.\n\nRoughly 10 days into my 'Summer of Writing' a work thing came up and kind of\nconsumed all of my thought and energy. I realized quickly that something had\nto give, and so I looked ahead at my Autumn theme and borrowed from it a bit,\nwhile still keeping the spirit of trying to write.\n\nThe next theme was going to be 'The Autumn of Mindfulness' which included\nstarting a meditation practice so I dove into that. I also decided that I\nneeded to try to find something to do from a physical activity perspective. I\nlive in the desert of southern california so the summers are brutal ( daily\nhighs that can average 110F+) and being outside isn't something I really like,\neven in the early morning, before the sunrise, the temps can be mid to high\n80s ... sometimes even the low 90s.\n\nI decided that I would pick up swimming and going to the gym to help alleviate\nsome of the stress from work.\n\nThat, in addition to the writing, seemed to be a good thing to work on.\n\nDuring my Summer of Writing I only wrote 5 posts (including this one)\n\n  * [Summer of Writing](https://www.ryancheley.com/2024/10/03/summer-of-writing/)\n  * [SSH Keys](https://www.ryancheley.com/2024/07/13/ssh-keys/)\n  * [How to ask a question without sounding like a jerk](https://www.ryancheley.com/2024/08/22/how-to-ask-why-without-sounding-like-a-jerk/) (mentioned in the [Django News Newsletter #248](https://django-news.com/issues/248))\n  * [Reflections on Djangonaut Space Session 2](https://www.ryancheley.com/2024/08/29/reflections-on-djangonaut-space-session-2/) ([lots of love](https://mastodon.social/@ryancheley/113044831659253804) on socials)\n  * [Mentors](https://www.ryancheley.com/2024/09/16/mentors/) (mentioned in [Django News Newsletter #251](https://django-news.com/issues/251#start))\n\nThe articles had a total of 5237 words and so, from the perspective of\nwriting, I managed to do _some_ writing, but it wasn't really anymore than\nwhat I had done during the Spring of Transition where I wrote 4 articles with\n3890\n\n  * [Spring of Transition](https://www.ryancheley.com/2024/06/20/spring-of-transition/)\n  * [Using justpath to go on a pyrrhic adventure to clean up my PATH](https://www.ryancheley.com/2024/05/24/using-justpath-to-go-on-a-pyrrhic-adventure-to-clean-up-my-path/)\n  * [Trying out pyenv ... again](https://www.ryancheley.com/2024/03/29/trying-out-pyenv-again/)\n  * [Winter of Learning](https://www.ryancheley.com/2024/03/19/winter-of-learning/)\n\nHowever, the ability to transition from one idea to another is something that\n[CGP Grey talks about in his\nthemes](https://www.youtube.com/watch?v=NVGuFdX5guE) and so I don't feel too\nbadly about it ... especially because the meditation and swimming have really\nbeen something I'm very proud of.\n\nMy meditation practice includes a 20 minute daily session first thing in the\nmorning to help clear my mind for the day.\n\nMy swimming routine consists of swimming 3 days a week. When I started I could\nbarely do a 20 minute swim. Just before DjangoCon US I swam 1800 yards in 54\nminutes and for the most part didn't stop for a break. If you would have told\nme that in early July when I started I would not have believed you.\n\nIn a weird way the meditation and swimming kind of helped with the writing\nbecause it allowed me to stop thinking, which then allowed room for deeper\nthinking about my writing.\n\nThe stress of work has alleviated a bit and so I'm hoping that after DjangoCon\nUS I'll be able to dedicate about 15 minutes a day to writing to start, and\nthen ramp up to 30 minutes (similar to what I did with the swimming) and\ncontinue to swim and meditate.\n\nOne thing that I've found very helpful is to just add a little bit of a good\nhabit and remove a bit of a bad habit. Sooner or later the bad habit is gone\nand replaced with the new good habit.\n\nIn the Autumn of mindfulness, which I will still try to do, I'll focus on\neating right (I kind of eat like a 7 year old whose parents left the pantry\nstocked with a ton of junk food and then left for the weekend) so I'm going to\nwork to get that under control.\n\nAll in all, it's been a successful summer of writing, even if it wasn't what I\ninitially envisioned. But that's OK, and part of life.\n\nAs Mark Twain said, \"Life is what happens when you're busy making other\nplans.\"2\n\n  1. How much more? I don't really know ... just more \u21a9\ufe0e\n  2. No he didn't. It was actually Allen Saunders in Reader's Digest in 1957, I just like to attribute everything to either Mark Twain or Abraham Lincoln \u21a9\ufe0e\n\n", "2024-10-03", "summer-of-writing", "In keeping with my themes for 2024 this summer was to be 'The Summer of\nWriting'.\n\nThis theme didn't have a specific post or word count, but I knew I wanted to\nwrite **more**1.\n\nI had a few things I needed to do to get this started. One of \u2026\n\n", "Summer of Writing", "https://www.ryancheley.com/2024/10/03/summer-of-writing/"], ["ryan", "musings", "> \"If you think technology will solve your problems, you don't understand\n> technology and you don't understand your problems\"\n>\n> ~ attrib. Laurie Anderson\n\nFrom a [Toot](https://mas.to/@natureworks/113917094844091858) by [Jake\nRayson](https://mas.to/@natureworks)\n\nIn a previous post, I wrote about how to [ask why without sounding like a\njerk](https://www.ryancheley.com/2024/08/22/how-to-ask-why-without-sounding-\nlike-a-jerk/). This is a slightly related concept (at least in my head).\n\nSometimes, as technical people, we are asked to solve problems. The more we\ndig into them, the more we discover that the problem that needs to be solved\nisn't a technical one but a people one. In many cases, it's just getting two\ngroups to actually talk to one another.\n\nThis can be hard and awkward, so people may want to avoid it. Creating a\nreport telling someone they're doing something wrong is way easier. No hurt\nfeelings! However, I've found that the approach tends to create more problems\nthan it solves.\n\n## The situation\n\nThe situation is a real one, and I'm obfuscating details to help 'protect the\ninnocent'.\n\nAt the start of each year, large amounts of new data are needed to be added to\na system. The additions are, by their nature, very manual1 and so the team\nresponsible for them spends much of their time trying to get the data added.\n\nAnother team is highly dependent on this new data being added in order to\nprocess their widgets2. The widgets get loaded into the system and checked to\nsee if the data from team A is complete. If it isn't, then the widget gets\nflagged. This flag directs the members of Team B to reach out to Team A to get\nclarification on the state of the data needed to process the widget.\n\nOnly, that's not how Team A understands it. While they are furiously trying to\nupdate data, there is some basic data that covers roughly 80% of the widget\nprocessing data needs that are already available. So, the vast majority of the\ntime, there is no need for Team B to reach out to Team A because the\ninformation they need is available in the system to process the widget.\n\nThis understanding was either lost or never communicated effectively so Team B\nwould just email Team A with questions about the widget data and then get\ntheir answer and move on. This is despite the fact that the information is\navailable in the system for the members of Team B to review!\n\nThe leader of Team A asked me if I could 'update a report' to 'remove some of\nthese widgets so Team A could better focus on the work of adding the data'.\n\nI thought that seemed reasonable, so I asked Team B a few questions and then\nmade a bit more discoveries and found out the actual problem, which was that\nthe information needed by Team B was in the system. Team A just needed Team B\nto do a better job of looking for it and asking questions about the things\nthat were needed instead of everything.\n\n## The Solution\n\nI proposed that the leaders from Team A and Team B get together to talk about\nthe issue.\n\nAt the meeting, the leader of Team B was horrified to hear what was happening.\nThey had no idea that many emails were going to Team A about questions that\nthe members of Team B should be able to answer on their own.\n\nThis is all well and good, but why did it take a tech person to spot this and\nget the team leadership together to figure it out?\n\nI wish I **knew** the answer. I think part of the insight I had was the\ncurrent pipeline of work, how long it was going to create a report, and the\nneed to have the problem solved sooner rather than later didn't line up. At\nall.\n\nI **needed** to look for a potential non-technical solution. The other thing\nthat I think happened here is that I wasn't weighed down by any history of\ninteractions between the Teams. I was just trying to gather information. In\ngathering information I was able to see what the real problem was and that the\nonly solution that made sense was for the two teams to just talk to each\nother.\n\n## The Outcome\n\nDuring the meeting, Team B committed to retraining staff and helping to make\nsure that they only reached out when there was an actual question about the\ndata for the widget production. Team A was thrilled with this solution, and\nnow they can focus on getting the data into the system more efficiently and\nwith fewer interruptions. A win-win, all because a tech guy got some non-tech\npeople to talk to one another.\n\n  1. yes I would like to automate this, but one step at a time! \u21a9\ufe0e\n  2. Not actually widgets \u21a9\ufe0e\n\n", "2025-02-06", "technical-solutions-to-people-problems", "> \"If you think technology will solve your problems, you don't understand\n> technology and you don't understand your problems\"\n>\n> ~ attrib. Laurie Anderson\n\nFrom a [Toot](https://mas.to/@natureworks/113917094844091858) by [Jake\nRayson](https://mas.to/@natureworks)\n\nIn a previous post, I wrote about how to [ask why without sounding like a\njerk](https://www.ryancheley.com/2024/08/22/how-to-ask-why-without-sounding-\nlike-a-jerk/). This is a slightly related concept (at \u2026\n\n", "Technical Solutions to People Problems", "https://www.ryancheley.com/2025/02/06/technical-solutions-to-people-problems/"], ["ryan", "musings", "## The Origin of Systems\n\nWhen thinking about systems it's easy to think that they have always been\nthere, or been that way. This isn't true of course. The systems that are in\nplace were put there, by people. People that made decisions. Decisions are\nwhat I want to focus on here.\n\nIn general when making a decision about the implementation of a system you\nwould want to engage with the stakeholders of that system. This of course\nimplies that you can identify at least some of those stakeholders.\n\nBut sometimes there aren't any key stakeholders other than regulations, or\nbest practice, or some other nebulous thing that needs to be met. These are\nthe decisions I really want to focus on.\n\n## The Illusion of Success\n\nTake a security system for instance. The basic tenets of the security system\nare that it keeps 'something' safe. If the thing to be kept safe is still safe\nafter the implementation of the security system then the people that\nimplemented the system can claim success. They can look at the evidence that\nsince the security system was put into place the thing has been kept safe.\n\nOf course, it's entirely possible that the thing was never in danger, and that\nthe previous system was doing just fine. In fact, it could be that the\nsecurity system is actually making it harder to keep the thing safe. It's just\nharder to see because all you're looking at are potentially meaningless\nmetrics like. Questions like is the thing safe after implementation of the\nsecurity system don't take into account if the thing was 'unsafe' before? This\ncan lead you to think that the new security system must be responsible for the\nsafety of the thing.\n\nSomething else that can be happening is that the security system has caused\nthe people responsible for keeping the thing safe to work more hours, hire\nmore people,who are oftentimes keeping the security system running.\n\n## Questioning Purpose\n\nThe more we look into a system like this, the more we might ask, \"Why is it\nthere?\"\n\nThere can be a couple of reasons, but I'll focus on one in particular. The\nperson ultimately responsible for keeping the thing safe can show with some\nkind of metrics that the thing is safe with the new security system, whereas\nthey couldn't under the previous system. There weren't any reports or metrics\nthat showed what was going on, which is why the system was implemented in the\nfirst place.\n\nOK ... so that's how some systems can be put in place.\n\n## User-Hostile Systems\n\nWhat about systems that are hard to use, or maybe actively hostile to their\nusers? How do those get put into place? I would argue that the reason we see\nmany user hostile systems in place is because they are decided upon not by\ntheir users, but by their ability to meet regulations, AND their ability to\nmaintain by a support system. The consideration of the user is secondary, or\nmaybe not even thought about.\n\nThink about any Enterprise software you've ever encountered. Would you say\nthat it was a joy to use? Would you say that onboarding was simple, and that\nnew employees loved to use it? My guess would be no.\n\n## Why Bad Systems Persist\n\nSo if the users don't like it, why is it in place? Two reasons:\n\n  1. It meets some kind of regulation (this could be a government regulation, but it could also be a regulation of a guild, or union, or something else)\n  2. It's easy to maintain by the support system\n\nFor any software that meets these criteria you are likely to have users that\ndon't like the software, because they are always an afterthought. The primary\nresponsibility of the software developers of these types of systems is always\nthe regulators, and the support infrastructure.\n\nThe first because they have to keep producing software that is compliant in\norder to be sold with a specific rating or seal of approval.\n\nThe second because if the support team can't easily support it, they're going\nto find an alternative solution that they can support.\n\n## Conclusion\n\nIt's a simple decision of maximizing for the people that enforce the rules\n(regulators) and that make the decisions (support). The users of the software\ndon't matter. At all.\n\nThis is why you will see software for widget processing that could benefit\nfrom bulk operations, keyboard shortcuts, or being browser agnostic and they\njust aren't. The only considerations are: Does it meet the regulations? Is it\neasy to support? If the answers are yes then the users tend to lose out. They\ndon't matter. If the answer is no, then find a competitor that does and move\nover to them, even if the current system is loved by your users.\n\n", "2025-03-31", "the-invisible-decision-makers-why-systems-ignore-their-users", "## The Origin of Systems\n\nWhen thinking about systems it's easy to think that they have always been\nthere, or been that way. This isn't true of course. The systems that are in\nplace were put there, by people. People that made decisions. Decisions are\nwhat I want to focus on \u2026\n\n", "The Invisible Decision-Makers: Why Systems Ignore Their Users", "https://www.ryancheley.com/2025/03/31/the-invisible-decision-makers-why-systems-ignore-their-users/"], ["ryan", "musings", "How pretty it was\n\nOn Sunday March 18, 2018 I ran the [LA Marathon](https://www.lamarathon.com).\nIt was my first one and it was an amazing experience.\n\nI never thought I would be able to compete in, let alone finish, a marathon,\nbut on Sunday I did.\n\nI started training, like **really** training, for the marathon last August. I\nwould wake up every morning and walk for 45 minutes. This was to get me back\ninto a shape that would allow me to run a bit.\n\nOn Sunday, September 24 I completed my first run since February 25th\n(basically 7 months between runs!). It was a 45 minute run that covered 3.82\nmiles. Over the next 6 months I slowly increased the distances I would run\nfrom that modest 3.82 run up to an 18 mile run. In total, I completed 89\ntraining runs which covered 441.92 miles and spent 79+ hours running (see\ntable below for details).\n\n* * *\n\nMonth Distance Time Runs September 14.68 3:03:14 4 October 62.96 12:12:05 17\nNovember 87.70 16:52:06 20 December 37.42 7:03:57 7 January 90.80 17:09:12 18\nFebruary 69.49 14:16:52 17 March 43.06 08:29:11 6 **Total** ** 441.92 ****\n79:06:37** ** 89**\n\n* * *\n\nWith all of the training that I did, there was a bit of December where I had\npulled my right calf on a training run that forced me to rest for a couple of\nweeks. The only good news of that was that it coincided with a family trip to\nUtah where I would not have been able to really run while there (the average\nday time highs were in the teens and the ground seemed to be constantly\ncovered in ice).\n\nAlso, with all of the training that I did, there isn\u2019t really any way to train\nfor race day itself. You get up early (in my case 3:50) and you take a shuttle\nto the start line and then wait. For hours. I got to Dodger stadium at about\n5:00am but the race wasn\u2019t set to start until 6:55am.\n\nSo I waited, with my running buddies, for the run to start. It was cold (about\n48 degrees) and crowded. Once the race started it took nearly 20 minutes\nbefore I was able to cross the start line (there were nearly 25,000 people\nthat ran).\n\nNone of the training that you do can really prepare you for this. Even if you\ndo a race during your training, chances are it won\u2019t have that many people, or\nhave that many logistics involved with getting to and starting. That being\nsaid, having good company and a good playlist is essential.\n\nI stayed with my coach, Marirose, for the entire race. We ran for the first 15\nmiles without stopping (except for a potty break at mile 5) and were making\npretty good time. For the most part I felt really good.\n\nBut then something happened. At about 15 miles I hit a running wall. At 20\nmiles I hit a walking wall and didn\u2019t want to finish. I think the only reason\nI finished was because I promised my daughter that I would finish a marathon\nand I wanted to keep my promise.\n\nAt mile 23 all I wanted to do was sit down and take a break, but I kept\nwalking anyway.\n\nFinally, at mile 26 I could see the finish line and Marirose and I ran the\nlast 0.2 miles to the finish line. I had such a wave of emotion.\n\nI kind of wanted to cry. I wanted to cry because I had accomplished an amazing\nphysical feat. I wanted to cry because I hurt EVERYWHERE. I wanted to cry\nbecause it was my daughter\u2019s 12 birthday and I was running a marathon and she\nwas home with family friends.\n\nWith the wave of emotion and the feeling of having completed such an awesome\nexperience I walked towards the people handing out the medals and got my\nfinisher\u2019s medal.\n\n![Finisher's Medal](/images/uploads/2018/03/IMG_9370.jpg)\n\nNow, not only did I have the feeling of completing the LA Marathon, I had a\nphysical manifestation of that feat!\n\nWhen it was all said and done my unofficial time for the [LA Marathon was\n05:56:08](https://www.trackshackresults.com/lamarathon/results/2018/mar_results.php?Link=14&Type=2&Div=F&Ind=4).\nNot too shabby for a first timer. Not too shabby for guy who 7 months earlier\nstruggled to run 45 minutes and wasn\u2019t sure he\u2019d ever be able to get past 10\nmiles.\n\nAfter the race on Sunday I said I\u2019d never do a marathon again. I had checked\nit off my bucket list and that was that.\n\nNow, sitting here, only a couple of days later, I\u2019m thinking that **never** is\na long time and that there is a possibility that yes, I might run another\nmarathon.\n\nBut not for a while. For now, I\u2019ll stick to my next goal of getting to a sub\n25-minute 5k and running a half marathon every year. Those goals seem a little\nmore reasonable, and a little less brutal on my body!\n\n", "2018-03-21", "the-la-marathon", "How pretty it was\n\nOn Sunday March 18, 2018 I ran the [LA Marathon](https://www.lamarathon.com).\nIt was my first one and it was an amazing experience.\n\nI never thought I would be able to compete in, let alone finish, a marathon,\nbut on Sunday I did.\n\nI started training, like **really \u2026**\n\n", "The LA Marathon", "https://www.ryancheley.com/2018/03/21/the-la-marathon/"], ["ryan", "musings", "This last weekend was the divisional round of the NFL playoffs. There were 3\nreally good games and the game that the Patriot played in. This is unfortunate\nbecause I only had the Patriots game on the calendar for the weekend so that\nmeant other things could get scheduled whenever and I would end up missing\nmany, if not all, of the other games.\n\nSunday had 2 amazing games. The Steelers lost to the Jaguars in an upset and I\ngot to see the last drive that put the Steelers down by a Field Goal as time\nexpired. It was simply amazing to see how hard they played even though they\nmust have known that they weren\u2019t going to win.\n\nWhen I got home from being out the New Orleans at Minnesota game was at half\ntime with Minnesota up 17-0. It looked like it was going to be a route and I\nwas glad that I wasn\u2019t really watching it.\n\nI started to do the chores that needed to be done (laundry, straightening up,\ngetting ready for the week) and had the game on in the background.\n\nAnd then the improbable started to happen. Drew Brees played an amazing half\nof football and all of a sudden it\u2019s 21-20 New Orleans. After a couple of\nfield goals are exchanged it\u2019s 24-23 New Orleans with Minnesota in possession\nof the ball.\n\nCase Keenum had made a couple of errors earlier in the game (one interception\nlead to a touch down and really helped the Saints get back in the game). It\nlooked like he was on track to do something similarly ill-advised.\n\nThen, with 10 seconds left the bar is snapped and he passes the ball to Stefon\nDiggs who catches the ball. And just as he catches the ball Marcus Williams, a\ndefensive back for New Orleans is cued up to make an ordinary tackle in an\nextraordinary situation.\n\nI was only on my high school football team for 2 years, but one thing the\ncoaches were always on us about was wrapping up the ball carrier when we were\ngoing to tackle. \u201cWrap him up\u201d they\u2019d scream at us. Over and over again.\n\nIt became something we did just so they\u2019d stop yelling at us (for that\nanyway).\n\nSo Marcus Williams is getting ready to tackle Stefon Diggs and all he has to\ndo is \u201cWrap him up!\u201d But something inside of Willliams\u2019 head is saying,\n\u201cSports Center highlight\u201d and instead of going for the boring, but effective\narm wrapping tackle, he tried to hit Diggs with his shoulder to hopefully get\nthe ball to be knocked loose.\n\nInstead, he whiffs by Diggs who spins, plants his hand on the ground to stay\nup and proceeds to run 60 yards for the game winning, walk-off, touchdown.\n\nI truly believe that Williams was thinking about how cool it would be to get\non Sport Center when he was deciding how to tackle Diggs, and that cost the\nSaints the game.\n\nDear Sports center, stop making our sports be bad and our athletes make dumb\ndecisions. Can you just go away now. Ok, thanks, bye\n\n", "2018-02-04", "the-sports-center-effect", "This last weekend was the divisional round of the NFL playoffs. There were 3\nreally good games and the game that the Patriot played in. This is unfortunate\nbecause I only had the Patriots game on the calendar for the weekend so that\nmeant other things could get scheduled whenever \u2026\n\n", "The Sports Center Effect", "https://www.ryancheley.com/2018/02/04/the-sports-center-effect/"], ["ryan", "musings", "# The Technical Debt of Others\n\nTechnical Debt as defined on [technopendia](https://www.techopedia.com) is:\n\n> a concept in programming that reflects the extra development work that\n> arises when code that is easy to implement in the short run is used instead\n> of applying the best overall solution.\n\nIn the management of software development we have to make these types of easy-\nto-implement-and-we-need-to-ship versus need-to-do-it-right-but-it-will-take-\nlonger decisions all of the time.\n\nThese decisions can lead to the dreaded **working as designed** answer to a\nbug report.\n\nThis is infuriating.\n\nIt\u2019s even more infuriating when you are on the receiving end of this.\n\nA recent feature enhancement in the EHR we use touted an\n\n> Alert to let proscribing providers know that a medication is a duplicate.\n\nFor anyone in the medical field you can know what a nightmare it can be to\nprescribe a duplicate medication from a patient safety perspective, so we\u2019d\nobviously want to have this feature on.\n\nDuring our testing we noticed that if a medication was prescribed in a dose,\nsay 75mg, and stopped and then started again at a new dose, say 50mg, the\nDuplicate Medication Alert would be presented.\n\nWe dutifully submitted a bug report to the vendor and the responded\n\n> The Medication is considered a true duplicate as when a medication is\n> stopped it is stopped for that day it is still considered active till (\n> _sic_ ) the end of the day due to the current application logic, which\n> cannot be altered or changed. What your providers/users may do is enter a\n> DUR Reason and Acknowledge with something along the lines of \"New\n> Prescription\". These DUR reasons can be added via Tools > Preferences >\n> Medications > DUR > Override Reason tab - type in the desired DUR Override\n> Reason > Select Add > OK to save.\n>\n> If functionality and logic outside of this is desired this will need to be\n> submitted as an Idea as well since this is currently **functioning off of\n> development's intended design.** \u201d\n\nThen the design is broken.\n\nFrom a technical perspective I know exactly what is going on. This particular\nvendor stores `date` values as `varchar(8)` but stores `datetime` values as\n`datetime`. There may be some really good reasons for making this design\ndecision.\n\nHowever, when the `medication` tables were designed, the developers asked the\nquestion, \"Will we **EVER** care about the time a medication is started or\nstopped?\"\n\nThey answered no and decided to set up a `start date` (and by extension an\n`end date`) for medications to not respect the time that a prescription\nstarted or stopped and therefore set them as `varchar(8)` and not as\n`DATETIME`.\n\nBut now they\u2019ve rolled out this **awesome** feature. A feature that would\nactually allow providers to recognize duplicate medications potentially saving\nlives. But because they don\u2019t store the time of the stopped medication, their\nlogic can only look at the date. When it sees the same medication (but in\ndifferent doses) active on the same date a warning appears letting the\nprovider know that they have a duplicate medication (even though they don\u2019t).\n\nAdditionally, this warning serves no purpose other than to be **one more\ndamned click** from a provider\u2019s perspective because the vendor is not storing\n(ie ignoring) the time.\n\nWhen clinicians complain about the impact of EHRs on their ability to deliver\neffective care ... when they complain about EHRs not fulfilling their promise\nof increased patient safety, these are the types of things that they are\ncomplaining about.\n\nI think this response from one of the clinicians sums up this issue\n\n> I don't see the logic with the current \"intended design\" in considering a\n> medication that has just been inactivated STILL ACTIVE until the end of the\n> day. A prescriber would stop current and start new meds all in one sitting\n> (which includes changing doses of the same med), not wait until the next day\n> to do the second step. It decreases workflow efficiency to have to enter a\n> reason when no real reason exists (since there IS no active entry on med\n> list). The whole point is to alert a prescriber to an existing entry of a\n> medication and resolve it by inactivating the duplicate, if appropriate\n> (otherwise, enter reason for having a duplicate), before sending out a new\n> Rx.\n>\n> While it's relatively easy to follow and resolve the duplication alert if\n> the inactivation and new prescribing is done by the same prescriber, I can\n> see a scenario where prescriber A stops an old ibuprofen 600mg Rx[\\^2] (say\n> PCP) and patient then goes to see prescriber B (say IC[\\^3]) who then tries\n> to Rx ibuprofen 800mg\u2026. and end up getting this duplication alert. The\n> second prescriber would almost be lost as to why that message is showing up.\n>\n> The application logic should augment the processes the application was\n> designed to facilitate, **but right now it is a hindrance**. (emphasis\n> added)\n\nI know that sometimes we need to build it fast so that we can ship, but\ndevelopers need to remember, _forever_ is a long freaking time.\n\nWhen you make a forever decision, be prepared to have push back from users of\nyour software when those decision are markedly ridiculous. And be prepared to\nbe scoffed at when you answer their bug report with a Working-as\u2013Designed\nresponse.\n\n[\\^2]: Rx = prescription\n\n[\\^3]: IC = Immediate Care\n\n", "2017-07-28", "the-technical-debt-of-others", "# The Technical Debt of Others\n\nTechnical Debt as defined on [technopendia](https://www.techopedia.com) is:\n\n> a concept in programming that reflects the extra development work that\n> arises when code that is easy to implement in the short run is used instead\n> of applying the best overall solution.\n\nIn the management of software development \u2026\n\n", "The Technical Debt of Others", "https://www.ryancheley.com/2017/07/28/the-technical-debt-of-others/"], ["ryan", "musings", "As a a manager no one will ever agree with every decision you make. Not the\npeople you manage, and not the people that manage you. But if you always know\nwhy you made a decision and you can articulate that decision, then you\u2019ll be\non a good footing when someone asks you, \u201cHow did you know to do that?\u201d or\n\u201cHow did you know to make **that** decision?\u201d\n\nOne of the best lessons I learned from my boss LB is that the decision is less\nimportant than the **why** of the decision. Make no mistake, bad decisions are\nbad decisions, but they are much less likely to be made if you know why you\nmade it.\n\nOnce I was able to internalize that lesson, it freed me to actually make\ndecisions.\n\nWhen faced with a decision, I tend to ask these questions:\n\n  1. What do I know?\n  2. How do I know it (i.e. how confident am I in the information I know)?\n  3. What do I gain by waiting for more information?\n  4. What\u2019s the worst that happens if I make the wrong decision?\n  5. What\u2019s the worst that happens if I make no decision now?\n  6. Who can I talk to about this decision?\n\nHaving answers to these questions doesn\u2019t guarantee that my decision will be\nright, but it does help me to understand why I\u2019m making the decision that I\u2019m\nmaking. It will also help me to explain the decision later on if needed.\n\nOne of the things I try to tell the people I work with is this:\n\n> > The decision itself is less important than why you made the decision. If\n> you don\u2019t know why you made a decision, then you shouldn\u2019t be making the\n> decision yet.\u201d\n\nKnow **why** you made a decision and you\u2019ll be better equipped **to make** the\ndecision.\n\n", "2017-08-24", "the-why-of-a-decision", "As a a manager no one will ever agree with every decision you make. Not the\npeople you manage, and not the people that manage you. But if you always know\nwhy you made a decision and you can articulate that decision, then you\u2019ll be\non a good footing \u2026\n\n", "The why of a decision", "https://www.ryancheley.com/2017/08/24/the-why-of-a-decision/"], ["ryan", "musings", "I've been trying to update my [LinkedIn\nProfile](https://www.linkedin.com/in/ryan-cheley/) for a couple of weeks now\n(maybe a couple of months) and I keep hitting a roadblock. Not really sure why\n...\n\nSince being 'promoted' from Director of NextGen Support Services to Director\nof Business Informatics, I've wanted to update the Profile but haven't really\nhad the 'time' to do it.\n\nSo a couple of weeks ago I decided that start in earnest on the update. I've\ndone more research than I can stand but I don't feel like I'm any closer to an\nupdate that I like.\n\nI think part of the problem is that I don't really know* ~~what~~ who the\nsummary is for. Is it for me or for other people. People that are reading my\nsummary (for whatever reason people read LinkedIn summaries)?\n\nIf it's for me then I guess I'd write about the things that I really like to\ndo, like data analysis and bits of programming to get to solutions to hard\nproblems. If it's for other people then I guess I need to be genuine about who\nI am while also 'selling' myself to the prospective others.\n\nMaybe the best thing is to write it for me and then hope for the best. I kind\nof like that. Besides, if someone else reads it and they don't like it then\nthat's a good indication about how well I would get along with that person in\na professional setting anyway and might be best to avoid them.\n\nAnd if they do like it then all the better that they will also like me ... the\nreal me.\n\n", "2017-03-13", "updating-my-linkedin-profile", "I've been trying to update my [LinkedIn\nProfile](https://www.linkedin.com/in/ryan-cheley/) for a couple of weeks now\n(maybe a couple of months) and I keep hitting a roadblock. Not really sure why\n...\n\nSince being 'promoted' from Director of NextGen Support Services to Director\nof Business Informatics, I've wanted to update the Profile but \u2026\n\n", "Updating my LinkedIn Profile", "https://www.ryancheley.com/2017/03/13/updating-my-linkedin-profile/"], ["ryan", "musings", "For my wedding anniversary my wife and I went to the mountains of Southern\nCalifornia to get out of the heat of the desert. The weekend started of really\nnicely. The crisp clear air next to Big Bear Lake and the sounds of nature\nreally helped to relax us.\n\nWe were staying at an AirBNB within walking distance of the village. This was\ngreat because one of the things we really like to do is walk. This is very\nhard in the desert in the summer.\n\nWe arrived on Thursday and spent that first day just enjoying the weather and\nbeing outside. On Friday the cool mountain breeze picked up a bit, but nothing\ntoo bad. My brother-in-law and his wife have a place in Big Bear Lake as well.\nThey receieved a text message from the local power company that the power may\nbe turned off that day due to 'high winds'.\n\nNow, where we were there weren't any high winds, but the power transmission\nlines that bring the power up to Big Bear Lake were in a potential high wind\narea. The estimated time for the power to be turned off was 3pm Friday.\n\nWell, 3pm Friday came and went and the power was still on. We didn't think\nmuch of it as we walked to a restaurant for dinner. After dinner we walked to\na different place for dessert. We even closed the place down!1\n\nWe walked back to the house and at just about 9:30pm the power went off.\n\nThis was disappointing. We figured that the power would be back on the next\nmorning so we went to bed.\n\nThe next day at 6am the power was still out. At 9am the power was still out.\nAs far as I know, the power was out until the end of day Sunday, but we didn't\nstay to find out. By 10am on Saturday we had decided to leave and come back\nhome. Not only was the power out at our place, but it was out everywhere.\nLike, litterally everywhere in town. The restaurants, the shops, but grocery\nstores. No power was to be had.\n\nThe reason that a power company can just turn off the power like this is due\nto a California Law (law needed). It's couched in terms of saving lives, but\nin my opinion it allows power companies to not perform needed maintenance and\nthen just shut off the power. If you know anything about the California Energy\nmarket, you know it's kind of a shit show.\n\nWell, not everywhere. The power company where I live is one of the best ones.\nThey have inexpensive, reliable power. In the 19 years I've lived in my\ncommunity I can count on one hand the number of power outages ... and one of\nthem was due to an airplane that didn't land properly at the local airport and\nthey clipped the power lines. Within 12 hours though, the power was restored.\n\nLike really, Imperial Irrigation District is one of the best utility companies\nin ever. And the thing about them is that they are based in Imperial County.\nBut I live in Riverside County. They provide power to my part of the county\nbecause when they were first laying out power lines what would become Southern\nCalifornia Edison couldn't be bothered to provide power to the eastern side of\nthe Coachella Valley, so IID did. However, it was only for 100 years. And that\n100 years expires in 2030. At that point one of two things will happen:\n\n  1. IID will renew it's right to deliver power to the Eastern Coachella Valley (where I live) and I will still have inexpensive, reliable power\n  2. IID will not be able to renew it's right to deliver power and I'll be switched over to Souther California Edison. \n\nTo give a sense of SCE, this is the power company that consistently turns off\npower to thousands of it's customers in the height of summer to perform\nmaintenance. This endangers the lives of their crews and their customers. But\nbecause the decision makers don't live in the desert, they don't realize what\na bad idea this is.\n\nAnyway, why am I telling this story?\n\nThe experience in Big Bear Lake made me rethink about my dependence on power\nwhere I live. And that if there is a way for me to become energy independent,\nthen I should investigate it. Enter Claude Code\n\nI used Claude Code to help me plan and budget for a project to help me achieve\nthis goal. All I did was start with a simple statement\n\n> Energy Independence is achieved in two ways:\n>\n>   * limit / decrease the energy consumed\n>   * Generate your own electricity\n>\n\nwith that simple prompt Claude Code output a pretty robust plan. There were\nsomethings I needed to help guide it on (like the fact that I replaced my HVAC\nin 2017 and have kept it serviced every 6 months since so I wouldn't likely\nneed a replacement for a while) and that may roof would need to be replaced\nbefore installing Solar Panels (it's the original roof from when the house was\nbuilt 30 years ago)\n\nWould an 'expert' have given me the exact same advice? Maybe not, but it did\nmake me think about some things that I hadn't considered. Things like\n\n  * evaluating the duct sealing\n  * applying window film to windows\n  * having an energy audit done, and that my energy provider might actually do it for free\n\nI have until 2030 when the switch over to SCE will likely occur. My hope is\nthat by 2031 at the latest I'm on Solar and I have a battery backup.\n\nThis will leave me with anywhere from 1 - 24 months of being on SCE and I'm\nmostly OK with that. I'd like to have this all done before the switch over\nhappens, but it's still possible that it won't. And if it doesn't, then the\nworst that happens is I get a new roof ... which I need anyway.\n\nFor some context on the price differences for power from SCE and IID\n\nSCE: $0.316 / kWh\n\nIID: $0.1976 / kWh\n\nI'm very lucky that I am able to enroll in the average pay program and so my\npower bill each month is $136. On SCE this bill will be $217.\n\nThis still isn't a lot, but if I don't have to pay anything to them I'd be\nhappier.\n\n  1. granted closing time was 9pm, but it's been a while since I've closed a place down \u21a9\ufe0e\n\n", "2025-06-26", "using-claude-for-non-tech-stuff", "For my wedding anniversary my wife and I went to the mountains of Southern\nCalifornia to get out of the heat of the desert. The weekend started of really\nnicely. The crisp clear air next to Big Bear Lake and the sounds of nature\nreally helped to relax us.\n\nWe \u2026\n\n", "Using Claude for non-Tech Stuff", "https://www.ryancheley.com/2025/06/26/using-claude-for-non-tech-stuff/"], ["ryan", "musings", "Twelve years ago today Steve Finley hit a Grand Slam in the 9th to clinch the\nNL West title against the Giants. Today, the Dodgers have already won the NL\nWest title so we won't have anything like that again, but it is Vin Scully's\nlast game to be called. EVER.\n\n    \n    \n    </p>\n    \n\nI remember watching Dodgers games on KTLA with my grandmother in the 80's. I\nthought baseball was slow and boring, but the way that Vin would tell stories\nwas able to keep me interested.\n\n    \n    \n    </p>\n    \n\nVin is able to call a game, with no emotion, just tell the story of the game.\nDropping tidbits about this player or that player. Always knowing more about\nthe people in the game while also knowing so much about the game.\n\n    \n    \n    </p>\n    \n\nHe's quite literally seen everything. From perfect games to triple plays. He\ncalled Hank Aaron's historic record breaking home run. He even saw a pitcher\nthrowing a perfect game through 7 get pulled (I'm looking at you DAve\nRoberts).\n\n    \n    \n    </p>\n    \n\nIn the last game he ever called the Dodgers are in playoff form. This ... is\nnot a good thing. The Dodgers are historically an awful performing playoff\nteam, and so far, they have managed to lose 4 of their last 5 and are working\non making it 5 of 6.\n\n    \n    \n    </p>\n    \n\nIt's a dark and dreary day in San Francisco. It's raining in San Francisco.\nKenta Maeda is pitching for the Dodgers.\n\n    \n    \n    </p>\n    \n\nDodgers first out of the game is a Stikeout of Hunter Pence ... but the\nDodgers are down 0-2. Might be a long one today\n\n    \n    \n    </p>\n    \n\n...\n\n    \n    \n    </p>\n    \n\nThe game ended not with a win, but a whimper as the Dodgers lost to the Giants\n7-1.\n\n    \n    \n    </p>\n    \n\nAs Vin gave his last call it wasn't a great call like Charlie Culberson's Home\nRun to win the West (and the game) last weekend. It was a pop fly that sent\nthe Giants back to New York to face the Mets.\n\n    \n    \n    </p>\n    \n\nFive years ago I never wanted him to retire. This season, I'm glad he decided\nto put the microphone up. A little slower in the outfield, not quite as quick\nwith the bat, still the greatest broadcaster that ever lived.\n\n    \n    \n    </p>\n    \n\nVin was teaching lessons all those years, not just calling games. It was only\nin his last season, his last game, that I really was able to hear them.\n\n    \n    \n    </p>\n    \n\n_Realize that you are blessed to do what you do._\n\n    \n    \n    </p>\n    \n\n_Don't be sad that something has ended, but be happy that it had started._\n\n    \n    \n    </p>\n    \n\nThe last one gets me in a way I can't quite describe. Maybe it's where I'm at\nin life right now, maybe it's that it would resonate with me regardless, but\nit is a nice reminder, that life is what you make of it. Don't be sad that a\nthing has ended, but instead be happy that you had a chance to have it happen\nat all.\n\n    \n    \n    </p>\n    \n\nGreat words Vin. Thank you\n\n", "2016-10-03", "vins-last-game", "Twelve years ago today Steve Finley hit a Grand Slam in the 9th to clinch the\nNL West title against the Giants. Today, the Dodgers have already won the NL\nWest title so we won't have anything like that again, but it is Vin Scully's\nlast game to be called \u2026\n\n", "Vin's Last Game", "https://www.ryancheley.com/2016/10/03/vins-last-game/"], ["ryan", "musings", "On a previous post I went through my new found love of Fantasy Football and\nthe rationale behind the 'why' of this particular project. This included\ngetting the team names and their URLs from the [ESPN\nwebsite](https://www.espn.com).\n\nAs before, let's set up some basic infrastructure to be used later:\n\n    \n    \n    from time import strptime\n    \n    year = 2016 # allows us to change the year that we are interested in.\n    nfl_start_date = date(2016, 9, 8)\n    BASE_URL = 'http://espn.go.com/nfl/team/schedule/_/name/{0}/year/{1}/{2}' #URL that we'll use to cycle through to get the gameid's (called match_id)\n    \n    match_id = []\n    week_id = []\n    week_date = []\n    match_result = []\n    ha_ind = []\n    team_list = []\n    \n\nNext, we iterate through the `teams` `dictionary` that I created yesterday:\n\n    \n    \n    for index, row in teams.iterrows():\n        _team, url = row['team'], row['url']\n        r=requests.get(BASE_URL.format(row['prefix_1'], year, row['prefix_2']))\n        table = BeautifulSoup(r.text, 'lxml').table\n        for row in table.find_all('tr')[2:]: # Remove header\n            columns = row.find_all('td')\n            try:\n                for result in columns[3].find('li'):\n                    match_result.append(result.text)\n                    week_id.append(columns[0].text) #get the week_id for the games dictionary so I know what week everything happened\n                    _date = date(\n                        year,\n                        int(strptime(columns[1].text.split(' ')[1], '%b').tm_mon),\n                        int(columns[1].text.split(' ')[2])\n                    )\n                    week_date.append(_date)\n                    team_list.append(_team)\n                    for ha in columns[2].find_all('li', class_=\"game-status\"):\n                        ha_ind.append(ha.text)\n                for link in columns[3].find_all('a'): # I realized here that I didn't need to do the fancy thing from the site I was mimicking http://danielfrg.com/blog/2013/04/01/nba-scraping-data/\n                    match_id.append(link.get('href')[-9:])\n    \n            except Exception as e:\n                pass\n    \n\nAgain, we set up some variables to be used in the `for` loop. But I want to\nreally talk about the `try` portion of my code and the part where the\n`week_date` is being calculated.\n\nAlthough I've been developing and managing developers for a while, I've not\nhad the need to use a construct like `try`. (I know, right, weird!)\n\nThe basic premise of the `try` is that it will execute some code and if it\nsucceeds that code will be executed. If not, it will go to the exception\nportion. For Python (and maybe other languages, I'm not sure) the exception\n**MUST** have something in it. In this case, I use Python's `pass` function,\nwhich basically says, 'hey, just forget about doing anything'. I'm not raising\nany errors here because I don't care if the result is 'bad' I just want to\nignore it because there isn't any data I can use.\n\nThe other interesting (or gigantic pain in the a\\$\\$) thing is that the way\n[ESPN](https://www.espn.com) displays dates on the schedule page is as `Day of\nWeek, Month Day`, i.e. `Sun Sep 11`. There is no year. I think this is because\nfor the most part the regular season for an [NFL](https://www.nfl.com) is\nalways in the same calendar year. However, this year the last game of the\nseason, in week 17, is in January. Since I'm only getting games that have been\nplayed, I'm _safe_ for a couple more weeks, but this will need to be\naddressed, otherwise the date of the last games of the 2016 season will show\nas January 2016, instead of January 2017.\n\nAnyway, I digress. In order to change the displayed date to a date I can\nactually use is I had to get the necessary function. In order to get that I\nhad to add the following line to my code from yesterday\n\n    \n    \n    from time import strptime\n    \n\nThis allows me to make some changes to the date (see where `_date` is being\ncalculated in `for result in columns[3].find('li'):` portion of the `try:`.\n\nOne of the things that confused the heck out of me initially was the way the\ndate is being stored in the list `week_date`. It is in the form\n`datetime.date(2016, 9, 1)`, but I was expecting it to be stored as\n`2016-09-01`. I did a couple of things to try and _fix_ this, especially\nbecause once the list was added to the `gamesdic` `dictionary` and then used\nin the `games` `DataFrame` the `week_date` was then stored as `1472688000000`\nwhich is the milliseconds since Jan 1, 1970 to the date of the game, but it\ntook an embarising amount of [Googling](https://www.google.com) to ~~realize~~\ndiscover this.\n\nWith this new discovery, I forged on. The last two things that I needed to do\nwas to create a `dictionary` to hold my data with all of my columns:\n\n    \n    \n    gamesdic = {'match_id': match_id, 'week_id': week_id, 'result': match_result, 'ha_ind': ha_ind, 'team': team_list, 'match_date': week_date}\n    \n\nWith dictionary in hand I was able to create a `DataFrame`:\n\n    \n    \n    games = pd.DataFrame(gamesdic).set_index('match_id')\n    \n\nThe line above is frighteningly simple. It's basically saying, hey, take all\nof the data from the `gamesdic` `dictionary` and make the `match_id` the\nindex.\n\nTo get the first part, see my post [Web Scrapping - Passer Data (Part\nI)](https://www.ryancheley.com/blog/2016/11/17/web-scrapping).\n\n", "2016-11-18", "web-scrapping-passer-data-part-ii", "On a previous post I went through my new found love of Fantasy Football and\nthe rationale behind the 'why' of this particular project. This included\ngetting the team names and their URLs from the [ESPN\nwebsite](https://www.espn.com).\n\nAs before, let's set up some basic infrastructure to be used later:\n\n    \n    \n    from \u2026\n\n", "Web Scrapping - Passer Data (Part II)", "https://www.ryancheley.com/2016/11/18/web-scrapping-passer-data-part-ii/"], ["ryan", "musings", "In Part III I'm reviewing the code to populate a DataFrame with Passer data\nfrom the current NFL season.\n\nTo start I use the `games` `DataFrame` I created in [Part\nII](https://www.ryancheley.com/blog/2016/11/18/web-scrapping-passer-data-part-\nii) to create 4 new `DataFrames`:\n\n  * reg_season_games - All of the Regular Season Games\n  * pre_season_games - All of the Pre Season Games\n  * gameshome - The Home Games\n  * gamesaway - The Away Games\n\nA cool aspect of the DataFrames is that you can treat them kind of like\ntemporary tables (at least, this is how I'm thinking about them as I am mostly\na `SQL` programmer) and create other temporary tables based on criteria. In\nthe code below I'm taking the `nfl_start_date` that I defined in [Part\nII](https://www.ryancheley.com/blog/2016/11/18/web-scrapping-passer-data-part-\nii) as a way to split the data frame into pre / and regular season\n`DataFrame`. I then take the regular season `DataFrame` and split that into\nhome and away `DataFrames`. I do this so I don't double count the statistics\nfor the passers.\n\n    \n    \n    #Start Section 3\n    \n    reg_season_games = games.loc[games['match_date'] >= nfl_start_date]\n    pre_season_games = games.loc[games['match_date'] < nfl_start_date]\n    \n    gameshome = reg_season_games.loc[reg_season_games['ha_ind'] == 'vs']\n    gamesaway = reg_season_games.loc[reg_season_games['ha_ind'] == '@']\n    \n\nNext, I set up some variables to be used later:\n\n    \n    \n    BASE_URL = 'http://www.espn.com/nfl/boxscore/_/gameId/{0}'\n    \n    #Create the lists to hold the values for the games for the passers\n    player_pass_name = []\n    player_pass_catch = []\n    player_pass_attempt = []\n    player_pass_yds = []\n    player_pass_avg = []\n    player_pass_td = []\n    player_pass_int = []\n    player_pass_sacks = []\n    player_pass_sacks_yds_lost = []\n    player_pass_rtg = []\n    player_pass_week_id = []\n    player_pass_result = []\n    player_pass_team = []\n    player_pass_ha_ind = []\n    player_match_id = []\n    player_id = [] #declare the player_id as a list so it doesn't get set to a str by the loop below\n    \n    headers_pass = ['match_id', 'id', 'Name', 'CATCHES','ATTEMPTS', 'YDS', 'AVG', 'TD', 'INT', 'SACKS', 'YRDLSTSACKS', 'RTG']\n    \n\nNow it's time to start populating some of the `list` variables I created\nabove. I am taking the `week_id`, `result`, `team_x`, and `ha_ind` columns\nfrom the `games` `DataFrame` (I'm sure there is a better way to do this, and I\nwill need to revisit it in the future)\n\n    \n    \n    player_pass_week_id.append(gamesaway.week_id)\n    player_pass_result.append(gamesaway.result)\n    player_pass_team.append(gamesaway.team_x)\n    player_pass_ha_ind.append(gamesaway.ha_ind)\n    \n\nNow for the looping (everybody's favorite part!). Using `BeautifulSoup` I get\nthe `div` of class `col column-one gamepackage-away-wrap`. Once I have that I\nget the table rows and then loop through the data in the row to get what I\nneed from the table holding the passer data. Some interesting things happening\nbelow:\n\n  * The Catches / Attempts and Sacks / Yrds Lost are displayed as a single column each (even though each column holds 2 statistics). In order to _fix_ this I use the `index()` method and get all of the data to the left of a character (`-` and `/` respectively for each column previously mentioned) and append the resulting 2 items per column (so four in total) to 2 different lists (four in total).\n\nThe last line of code gets the [ESPN](https://www.espn.com) `player_id`, just\nin case I need/want to use it later.\n\n    \n    \n    for index, row in gamesaway.iterrows():\n        print(index)\n        try:\n            request = requests.get(BASE_URL.format(index))\n            table_pass = BeautifulSoup(request.text, 'lxml').find_all('div', class_='col column-one gamepackage-away-wrap')\n    \n            pass_ = table_pass[0]\n            player_pass_all = pass_.find_all('tr')\n    \n    \n            for tr in player_pass_all:\n                for td in tr.find_all('td', class_='sacks'):\n                    for t in tr.find_all('td', class_='name'):\n                        if t.text != 'TEAM':\n                            player_pass_sacks.append(int(td.text[0:td.text.index('-')]))\n                            player_pass_sacks_yds_lost.append(int(td.text[td.text.index('-')+1:]))\n                for td in tr.find_all('td', class_='c-att'):\n                    for t in tr.find_all('td', class_='name'):\n                        if t.text != 'TEAM':\n                            player_pass_catch.append(int(td.text[0:td.text.index('/')]))\n                            player_pass_attempt.append(int(td.text[td.text.index('/')+1:]))\n                for td in tr.find_all('td', class_='name'):\n                    for t in tr.find_all('td', class_='name'):\n                        for s in t.find_all('span', class_=''):\n                            if t.text != 'TEAM':\n                                player_pass_name.append(s.text)\n                for td in tr.find_all('td', class_='yds'):\n                    for t in tr.find_all('td', class_='name'):\n                        if t.text != 'TEAM':\n                            player_pass_yds.append(int(td.text))\n                for td in tr.find_all('td', class_='avg'):\n                    for t in tr.find_all('td', class_='name'):\n                        if t.text != 'TEAM':\n                            player_pass_avg.append(float(td.text))\n                for td in tr.find_all('td', class_='td'):\n                    for t in tr.find_all('td', class_='name'):\n                        if t.text != 'TEAM':\n                            player_pass_td.append(int(td.text))\n                for td in tr.find_all('td', class_='int'):\n                    for t in tr.find_all('td', class_='name'):\n                        if t.text != 'TEAM':\n                            player_pass_int.append(int(td.text))\n                for td in tr.find_all('td', class_='rtg'):\n                    for t in tr.find_all('td', class_='name'):\n                        if t.text != 'TEAM':\n                            player_pass_rtg.append(float(td.text))\n                            player_match_id.append(index)\n                #The code below cycles through the passers and gets their ESPN Player ID\n                for a in tr.find_all('a', href=True):\n                    player_id.append(a['href'].replace(\"http://www.espn.com/nfl/player/_/id/\",\"\")[0:a['href'].replace(\"http://www.espn.com/nfl/player/_/id/\",\"\").index('/')])\n    \n        except Exception as e:\n            pass\n    \n\nWith all of the data from above we now populate our `DataFrame` using specific\nheaders (that's why we set the `headers_pass` variable above):\n\n    \n    \n    player_passer_data = pd.DataFrame(np.column_stack((\n    player_match_id,\n    player_id,\n    player_pass_name,\n    player_pass_catch,\n    player_pass_attempt,\n    player_pass_yds,\n    player_pass_avg,\n    player_pass_td,\n    player_pass_int,\n    player_pass_sacks,\n    player_pass_sacks_yds_lost,\n    player_pass_rtg\n    )), columns=headers_pass)\n    \n\nAn issue that I ran into as I was playing with the generated `DataFrame` was\nthat even though I had set the numbers generated in the `for` loop above to be\nof type `int` anytime I would do something like a `sum()` on the `DataFrame`\nthe numbers would be concatenated as though they were `strings` (because they\nwere!).\n\nAfter much [Googling](https://www.google.com) I came across a [useful\nanswer](http://stackoverflow.com/questions/15891038/pandas-change-data-type-\nof-columns) on [StackExchange](https://www.stackexchange.com) (where else\nwould I find it, right?)\n\nWhat it does is to set the data type of the columns from `string` to `int`\n\n    \n    \n    player_passer_data[['TD', 'CATCHES', 'ATTEMPTS', 'YDS', 'INT', 'SACKS', 'YRDLSTSACKS','AVG','RTG']] = player_passer_data[['TD', 'CATCHES', 'ATTEMPTS', 'YDS', 'INT', 'SACKS', 'YRDLSTSACKS','AVG','RTG']].apply(pd.to_numeric)\n    \n\nOK, so I've got a `DataFrame` with passer data, I've got a `DataFrame` with\naway game data, now I need to join them. As expected, `pandas` has a way to\njoin `DataFrame` data ... with the [join](http://pandas.pydata.org/pandas-\ndocs/stable/generated/pandas.DataFrame.join.html) method obviously!\n\nI create a new `DataFrame` called `game_passer_data` which joins\n`player_passer_data` with `games_away` on their common key `match_id`. I then\nhave to use `set_index` to make sure that the index stays set to `match_id`\n... If I don't then the `index` is reset to an auto-incremented integer.\n\n    \n    \n    game_passer_data = player_passer_data.join(gamesaway, on='match_id').set_index('match_id')\n    \n\nThis is great, but now `game_passer_data` has all of these extra columns.\nBelow is the result of running `game_passer_data.head()` from the terminal:\n\n    \n    \n    id          Name  CATCHES  ATTEMPTS  YDS  AVG  TD  INT  SACKS\n    \n\nmatch_id 400874518 2577417 Dak Prescott 22 30 292 9.7 0 0 4 400874674 2577417\nDak Prescott 23 32 245 7.7 2 0 2 400874733 2577417 Dak Prescott 18 27 247 9.1\n3 1 2 400874599 2577417 Dak Prescott 21 27 247 9.1 3 0 0 400874599 12482 Mark\nSanchez 1 1 8 8.0 0 0 0\n\n    \n    \n               YRDLSTSACKS                        ...\n    \n\nmatch_id ... 400874518 14 ... 400874674 11 ... 400874733 14 ... 400874599 0\n... 400874599 0 ...\n\n    \n    \n               ha_ind  match_date                  opp result          team_x\n    \n\nmatch_id 400874518 @ 2016-09-18 washington-redskins W Dallas Cowboys 400874674\n@ 2016-10-02 san-francisco-49ers W Dallas Cowboys 400874733 @ 2016-10-16\ngreen-bay-packers W Dallas Cowboys 400874599 @ 2016-11-06 cleveland-browns W\nDallas Cowboys 400874599 @ 2016-11-06 cleveland-browns W Dallas Cowboys\n\n    \n    \n              week_id prefix_1             prefix_2               team_y\n    \n\nmatch_id 400874518 2 wsh washington-redskins Washington Redskins 400874674 4\nsf san-francisco-49ers San Francisco 49ers 400874733 6 gb green-bay-packers\nGreen Bay Packers 400874599 9 cle cleveland-browns Cleveland Browns 400874599\n9 cle cleveland-browns Cleveland Browns\n\n    \n    \n                                                             url\n    match_id\n    400874518  http://www.espn.com/nfl/team/_/name/wsh/washin...\n    400874674  http://www.espn.com/nfl/team/_/name/sf/san-fra...\n    400874733  http://www.espn.com/nfl/team/_/name/gb/green-b...\n    400874599  http://www.espn.com/nfl/team/_/name/cle/clevel...\n    400874599  http://www.espn.com/nfl/team/_/name/cle/clevel...\n    \n\nThat is nice, but not exactly what I want. In order to remove the _extra_\ncolumns I use the `drop` method which takes 2 arguments:\n\n  * what object to drop\n  * an axis which determine what types of object to drop (0 = rows, 1 = columns):\n\nBelow, the object I define is a list of columns (figured that part all out on\nmy own as the documentation didn't explicitly state I could use a list, but I\nfigured, what's the worst that could happen?)\n\n    \n    \n    game_passer_data = game_passer_data.drop(['opp', 'prefix_1', 'prefix_2', 'url'], 1)\n    \n\nWhich gives me this:\n\n    \n    \n    id          Name  CATCHES  ATTEMPTS  YDS  AVG  TD  INT  SACKS\n    \n\nmatch_id 400874518 2577417 Dak Prescott 22 30 292 9.7 0 0 4 400874674 2577417\nDak Prescott 23 32 245 7.7 2 0 2 400874733 2577417 Dak Prescott 18 27 247 9.1\n3 1 2 400874599 2577417 Dak Prescott 21 27 247 9.1 3 0 0 400874599 12482 Mark\nSanchez 1 1 8 8.0 0 0 0\n\n    \n    \n               YRDLSTSACKS    RTG ha_ind  match_date result          team_x\n    \n\nmatch_id 400874518 14 103.8 @ 2016-09-18 W Dallas Cowboys 400874674 11 114.7 @\n2016-10-02 W Dallas Cowboys 400874733 14 117.4 @ 2016-10-16 W Dallas Cowboys\n400874599 0 141.8 @ 2016-11-06 W Dallas Cowboys 400874599 0 100.0 @ 2016-11-06\nW Dallas Cowboys\n\n    \n    \n              week_id               team_y\n    match_id\n    400874518       2  Washington Redskins\n    400874674       4  San Francisco 49ers\n    400874733       6    Green Bay Packers\n    400874599       9     Cleveland Browns\n    400874599       9     Cleveland Browns\n    \n\nI finally have a `DataFrame` with the data I care about, **BUT** all of the\ncolumn names are wonky!\n\nThis is easy enough to fix (and should have probably been fixed earlier with\nsome of the objects I created only containing the necessary columns, but I can\nfix that later). By simply renaming the columns as below:\n\n    \n    \n    game_passer_data.columns = ['id', 'Name', 'Catches', 'Attempts', 'YDS', 'Avg', 'TD', 'INT', 'Sacks', 'Yards_Lost_Sacks', 'Rating', 'HA_Ind', 'game_date', 'Result', 'Team', 'Week', 'Opponent']\n    \n\nI now get the data I want, with column names to match!\n\n    \n    \n    id          Name  Catches  Attempts  YDS  Avg  TD  INT  Sacks\n    \n\nmatch_id 400874518 2577417 Dak Prescott 22 30 292 9.7 0 0 4 400874674 2577417\nDak Prescott 23 32 245 7.7 2 0 2 400874733 2577417 Dak Prescott 18 27 247 9.1\n3 1 2 400874599 2577417 Dak Prescott 21 27 247 9.1 3 0 0 400874599 12482 Mark\nSanchez 1 1 8 8.0 0 0 0\n\n    \n    \n               Yards_Lost_Sacks  Rating HA_Ind   game_date Result            Team\n    \n\nmatch_id 400874518 14 103.8 @ 2016-09-18 W Dallas Cowboys 400874674 11 114.7 @\n2016-10-02 W Dallas Cowboys 400874733 14 117.4 @ 2016-10-16 W Dallas Cowboys\n400874599 0 141.8 @ 2016-11-06 W Dallas Cowboys 400874599 0 100.0 @ 2016-11-06\nW Dallas Cowboys\n\n    \n    \n              Week             Opponent\n    match_id\n    400874518    2  Washington Redskins\n    400874674    4  San Francisco 49ers\n    400874733    6    Green Bay Packers\n    400874599    9     Cleveland Browns\n    400874599    9     Cleveland Browns\n    \n\nI've posted the code for all three parts to my [GitHub\nRepo](https://www.github.com/miloardot).\n\nWork that I still need to do:\n\n  1. Add code to get the home game data\n  2. Add code to get data for the other position players\n  3. Add code to get data for the defense\n\nWhen I started this project on Wednesday I had only a bit of exposure to very\nbasic aspects of `Python` and my background as a developer. I'm still a long\nway from considering myself proficient in `Python` but I know more now that I\ndid 3 days ago and for that I'm pretty excited! It's also given my an\n~~excuse~~ reason to write some stuff which is a nice side effect.\n\n", "2016-11-19", "web-scrapping-passer-data-part-iii", "In Part III I'm reviewing the code to populate a DataFrame with Passer data\nfrom the current NFL season.\n\nTo start I use the `games` `DataFrame` I created in [Part\nII](https://www.ryancheley.com/blog/2016/11/18/web-scrapping-passer-data-part-\nii) to create 4 new `DataFrames`:\n\n  * reg_season_games - All of the Regular Season Games\n  * pre_season_games - All of the Pre Season Games \u2026\n\n", "Web Scrapping - Passer Data (Part III)", "https://www.ryancheley.com/2016/11/19/web-scrapping-passer-data-part-iii/"], ["ryan", "musings", "I started college in 1996. In 1997 one of the most influential albums of my\nearly adulthood was introduced to me ... [Weezer's\nPinkerton](https://en.wikipedia.org/wiki/Pinkerton_\\(album\\)).\n\nI hated it.\n\nI wanted the [Blue Album](https://en.wikipedia.org/wiki/Weezer_\\(Blue_Album\\))\nagain but different somehow, and Pinkerton was NOT it.\n\nHowever, a weird thing happened. Once I moved into my Sophomore apartment with\na roommate that I can only describe as 'hard to live with' I retreeated into\ntwo things:\n\n  1. [Final Fantasy VII](https://en.wikipedia.org/wiki/Final_Fantasy_VII)\n  2. Music\n\nFinal Fantasy VII is a whole blog post on it's own, so I won't try to cover it\nhere, but music ... and specifically Weezer were instrumental to me surviving\nmy 'hard to live with' roommate.\n\n## Listening to too much Weezer\n\nI probably listened to Pinkerton 1000 times (no exaggeration) over my time in\ncollege (this was not so hard because it's only a 35 minute album!)\n\nI loved that album, and listening to it STILL brings me back to living in a\nsmall, shitty apartment in San Luis Obispo with a 'hard to live with'\nroommate.\n\nI saw Weezer live in March of 2001 at [RIMAC in La Jolla at\nUCSD](https://ucsdtritons.com/facilities/liontree-arena/2)1. I still remember\nthe show. Lots of hipster Weezer fans in their skinny jeans, nerd glasses, and\na lot of earnestly trying really hard trying to not try to be 'cool'. I was\n(still am) a bigger guy that can't fit into Skinny jeans to save my life, so\nthis wasn't really my scene, but I really wanted to see Weezer and I didn't\nwant to care about the hipsters.\n\nI also remember needing to be back in San Luis Obispo the next day for work or\nschool or something. So after the show was done at midnight I got in my car\nand drove the roughly 4 hours back to San Luis Obsipo so I can do whatever I\nneeded to do the 'next' day. It was a long day, but it was awesome. I got to\nsee Weezer.\n\nAnd for me, that's kind of where Weezer stopped making music. A few months\nlater Weezer released the Green Album and I tried **really** hard to like it.\nI did that with Maladroit as well, but meh. Once Matt Sharp left it wasn't\nWeezer to me anymore2.\n\n## Life has a way of happening while you're making other plans\n\nAfter that life got in the way and my musical tastes changed ... but I still\n**really** liked the \"real\" Weezer.\n\nOne of the things I really liked doing with my daughter was driving her to her\nDance class. We'd each pick an album we thought (hoped) the other would like\nand listen to it on the drive out.\n\nOf course, I picked Pinkerton at one point and the Blue Album and she thought\nthey were fine. Ugh, I guess fine is better than I don't like it, but still.\n\nFast forward to October 10th 2024 and Weezer is playing live, in an arena, not\neven 15 minutes from my house. I bought tickets for me and my daughter and it\nwas pretty surreal. If you would have told me in 2001 at the Weezer concert\nthat I'd see them again in 2024 with my adult daughter I wouldn't have\nbelieved you, but I would have thought it was a pretty cool dream to have \ud83d\ude04\n\nThe openers were [Dinosaur Jr.](https://en.wikipedia.org/wiki/Dinosaur_Jr.)\nand [The Flaming Lips](https://en.wikipedia.org/wiki/The_Flaming_Lips). I\ndon't have much to say about Dinosaur Jr, but the Flaming Lips put on a great\nshow. Lots of visual interest and excitement.\n\nThen Weezer came on. And the show was amazing. Again, lots of great visuals\nand set design. One of my favorite was 'Island in the Sun' which had a Giant\nstar in the background of a tropical looking island with a palm tree on it.\n\nAgain, the set design and visual aspects of the show were on point.\n\nThe only thing that wasn't great was the sound. If I listed to Pinkerton 1000\ntimes, I listened to the Blue album at least 500 times. And the concert was\nmeant to be a 30th anniversary of the Blue Album where they played it in\norder. And I have to say, for the first 5 - 10 seconds of each song I wasn't\nsure what song was being played ... it was a bit disappointing.\n\nThat being said, getting to see Weezer, with my daughter, was a pretty epic\nparenting level unlocked style achievement. I'm glad I got to go with her,\neven if the sounds was a bit muffled for my tastes.\n\nLooking forward to the next concert!\n\n  1. now called Liontree Arena \u21a9\ufe0e\n  2. Yes, I've seen [the SNL skit](https://www.youtube.com/watch?v=ab5WvwfLuLM). Yes, I totally identify with Matt Damon's character! \u21a9\ufe0e\n\n", "2024-11-26", "weezer-live", "I started college in 1996. In 1997 one of the most influential albums of my\nearly adulthood was introduced to me ... [Weezer's\nPinkerton](https://en.wikipedia.org/wiki/Pinkerton_\\(album\\)).\n\nI hated it.\n\nI wanted the [Blue Album](https://en.wikipedia.org/wiki/Weezer_\\(Blue_Album\\))\nagain but different somehow, and Pinkerton was NOT it.\n\nHowever, a weird thing happened. Once I moved into my \u2026\n\n", "Weezer Live", "https://www.ryancheley.com/2024/11/26/weezer-live/"], ["ryan", "musings", "I\u2019ve been working on a project to create a\n[Django](https://www.djangoproject.com) based website. Over the weekend\n(Saturday I think) I tried to get it up and running on my\n[Linode](https://www.djangoproject.com) server. However, after a couple of\nfailed attempts I decided to use the free hosting coupon1 I had for\n[DigitalOcean](https://www.digitalocean.com) to see if that allowed me to\nreply more easily deploy \u2026 the short answer \u2026 meh.\n\nWhat I didn\u2019t realize over the weekend is that while I had been trying to\ndeploy my Django site, I had installed [Nginx](http://nginx.org) on my Linode\nserver that was also running [apache2](https://httpd.apache.org). This lead to\nthem both trying to listen on port 80 but because Nginx was the last thing I\nhad kicked off, it was _winning_.\n\nWhile I was working on my Django site I should have realized that something\nwas up when I tried to connect to the blog for the site (still a Wordpress\nsite on my Linode server) and it returned a \u2018Can not connect to the server\nmessage\u2019. I didn\u2019t pay much attention because I figured (incorrectly) that I\nhad done something specific to that subdomain, and not that I had made all of\nthe sites on my Linode server inaccessible.\n\nLast night at about 9 I thought, \u201cWell, it shouldn\u2019t take long for me to\nfigure out the issue with the new blog. \u201d\n\nBy 10:15 I tried everything the internet had told me to try and I was still\nunable to get apache2 to reload.\n\nI googled a bunch of stuff, but nothing was helping.\n\nWhen I tried to get the status on apache2 I would get this:\n\n    \n    \n    \u25cf apache2.service - LSB: Apache2 web server\n       Loaded: loaded (/etc/init.d/apache2; bad; vendor preset: enabled)\n      Drop-In: /lib/systemd/system/apache2.service.d\n               \u2514\u2500apache2-systemd.conf\n       Active: inactive (dead) since Tue 2018-05-01 05:01:03 PDT; 5s ago\n         Docs: man:systemd-sysv-generator(8)\n      Process: 7718 ExecStop=/etc/init.d/apache2 stop (code=exited, status=0/SUCCESS)\n      Process: 7703 ExecStart=/etc/init.d/apache2 start (code=exited, status=0/SUCCESS)\n    \n    May 01 05:01:03 milo apache2[7703]: (98)Address already in use: AH00072: make_sock: could not bind to address [::]:80\n    May 01 05:01:03 milo apache2[7703]: (98)Address already in use: AH00072: make_sock: could not bind to address 0.0.0.0:80\n    May 01 05:01:03 milo apache2[7703]: no listening sockets available, shutting down\n    May 01 05:01:03 milo apache2[7703]: AH00015: Unable to open logs\n    May 01 05:01:03 milo apache2[7703]: Action 'start' failed.\n    May 01 05:01:03 milo apache2[7703]: The Apache error log may have more information.\n    May 01 05:01:03 milo apache2[7703]:  *\n    May 01 05:01:03 milo apache2[7718]:  * Stopping Apache httpd web server apache2\n    May 01 05:01:03 milo apache2[7718]:  *\n    May 01 05:01:03 milo systemd[1]: Started LSB: Apache2 web server.\n    \n\nThis morning I started to google each line of the status message and finally\ngot to this:\n\n    \n    \n    no listening sockets available, shutting down\n    \n\nGoogling for that lead me to trying this:\n\n    \n    \n    sudo netstat -ltnp | grep ':80'\n    \n\nWhich output this:\n\n    \n    \n    tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      3324/nginx -g daemo\n    tcp6       0      0 :::80                   :::*                    LISTEN      3324/nginx -g daemo\n    \n\nAnd finally, I saw the issue. Over the weekend while I was futzing around I\nhad apparently installed Nginx and let it listen on port 80 AND kept it\nrunning.\n\nOnce I killed the Nginx process with this:\n\n    \n    \n    sudo kill -9 3324\n    \n\nI was able to restart apache2 with no problems.\n\nThank goodness.\n\nI find that when I mess something up like this it\u2019s important to ask myself\nwhat I learned from the experience.\n\nIn that vein \u2026\n\nWhat did I learn from this experience?\n\n  1. Can\u2019t run apache2 and Nginx on the same server and have them listen on the same port. Seems obvious, but you know having to **actually** deal with it really seals the deal\n  2. The output messages are super helpful \u2026 google each part of them and don\u2019t give up\n  3. A good night\u2019s sleep can make all the difference\n  4. Rolling your own web server is less expensive than having it be Turnkey (a la SquareSpace, or some other hosted solution) but you end up being your own Sys Admin and that\u2019s actually pretty easy when things are going well, and a freaking nightmare when they\u2019re not\n\n  1. [Thanks to the Talk Python to Me Course for Entrepreneurs \u21a9\ufe0e\n\n", "2018-05-01", "whoops-or-how-i-broke-my-website-by-installing-nginx-with-apache", "I\u2019ve been working on a project to create a\n[Django](https://www.djangoproject.com) based website. Over the weekend\n(Saturday I think) I tried to get it up and running on my\n[Linode](https://www.djangoproject.com) server. However, after a couple of\nfailed attempts I decided to use the free hosting coupon1 I had for \u2026\n\n", "Whoops! Or how I broke my website by installing Nginx with Apache", "https://www.ryancheley.com/2018/05/01/whoops-or-how-i-broke-my-website-by-installing-nginx-with-apache/"], ["ryan", "musings", "I started writing my last [post](http://www.ryancheley.com/) on my iMac but\nbecause Apple Photos is a bit ... finicky with the iCloud syncing a screenshot\nI had taken on my iPad wasn\u2019t there.\n\nNo fear, just keep writing in Ulysses, then move from the iMac to the iPad and\ndrop the image in. It worked, no problems no fuss. It just works.\n\nNow, if only iCloud would just work ...\n\n", "2017-12-15", "why-ulysses-is-awesome", "I started writing my last [post](http://www.ryancheley.com/) on my iMac but\nbecause Apple Photos is a bit ... finicky with the iCloud syncing a screenshot\nI had taken on my iPad wasn\u2019t there.\n\nNo fear, just keep writing in Ulysses, then move from the iMac to the iPad and\ndrop the \u2026\n\n", "Why Ulysses is Awesome", "https://www.ryancheley.com/2017/12/15/why-ulysses-is-awesome/"], ["ryan", "musings", "## Winter of Learning Retrospective\n\nHave you heard the good word about themes? If you haven't, take a look at this\ngreat video by [CGP Grey on\nThemes](https://youtu.be/NVGuFdX5guE?si=auqXL9SMfYeftcup) and how they can\nwork. For the last couple of years I've been doing yearly themes ... with\nlimited success. This lack of success was entirely due to me not actually\nreviewing the status of my themes until the end of the year ... and by then\nit's too late!\n\nThis last December I decided that I'd do the themes, but this time I'd do\nseasonal set of themes instead of one BIG annual theme.\n\nMy current theme ended yesterday (March 18th) and this time I'm going to\nactually take stock of where I am and how 'well' I did.\n\nSince my theme started on December 21, 2023 which is the Northern Hemisphere\nWinter Solstice, I decided to have a seasonal theme of 'Winter of Learning'\nwith the following things I wanted to learn more about:\n\n  * [Tailscale](https://github.com/ryancheley/til/tree/main/tailscale)\n  * [Docker](https://github.com/ryancheley/til/tree/main/Docker)\n  * Postgres\n  * [CSS](https://github.com/ryancheley/til/tree/main/css)\n  * GitHub Actions\n\nTo help me keep track of this I dusted off my [TIL github\nrepo](https://github.com/ryancheley/til) and started to write down some TILs.\nOver the course of the 88 days of my Seasonal theme I added 28 TILs. I also\nhad 16 other, more personal, TILs that didn't make it into the repo for a\ntotal of 44 TILs. With 88 days that's a 50% hit rate on writing down stuff\nthat I learned.\n\nThis is much better than I thought I had done. I'd been pretty down on myself\nbecause I had meant to write a TIL every night, but I didn't. I over estimated\nthe number of times I **didn't** write a TIL and thought I had done much worse\non it than I had.\n\nNow, just because I wrote a TIL doesn't mean that it was one of the topics\nabove that I had indicated I would WANT to write about, but that's OK! The\npoint of a TIL is to document some stuff that you learned and the topics above\nwere only ever meant to be guides, not directives.\n\nI think the one thing I learned that I'm more proud of is spending a pretty\ngood amount of time one weekend trying to learn Docker better. During one of\n[Jeff Triplett](https://mastodon.social/deck/@webology)'s office hours I had\njoked that Docker scared me. And it was me actually saying it out loud that\ndrove me to sit down and figure some shit out. I even had a [public notes\nissue](https://github.com/ryancheley/public-notes/issues/6) about it!\n\nOverall this Winter of Learning isn't what I thought it would be, but I'm glad\nI did it. I am going to work to try and keep on writing TILs and hopefully\nI'll be able to get in at least 2 per week!\n\nThat being said, it's now time to prepare for my next seasonal theme ... the\nSpring of Transition. My daughter is a Senior in High School and is getting\nready to head off to college. Now seems like a good time to start getting\nready for my wife and I to be empty nesters and so we'll be spending the next\n92 days figuring out how we can do that.\n\n", "2024-03-19", "winter-of-learning", "## Winter of Learning Retrospective\n\nHave you heard the good word about themes? If you haven't, take a look at this\ngreat video by [CGP Grey on\nThemes](https://youtu.be/NVGuFdX5guE?si=auqXL9SMfYeftcup) and how they can\nwork. For the last couple of years I've been doing yearly themes ... with\nlimited success. This lack of success \u2026\n\n", "Winter of Learning", "https://www.ryancheley.com/2024/03/19/winter-of-learning/"], ["ryan", "musings", "I've never done a year in review, but this seems like a good a time as any,\nright? I had a rough outline, but after reading the great Year in Review from\n[Tim Schilliing](https://www.better-simple.com/personal/2023/12/30/my-year-in-\nreview/), [Paolo Melichore](https://www.paulox.net/2023/12/31/my-2023-in-\nreview/), and [Velda Kiara](https://dev.to/veldakiara/djangoconus-2023-a-wish-\nfulfilled-2mmc), I was inspired to **actually** finish mine.\n\n# Professional\n\nIn the moment it can feel like I don't really get anything done at work.\nLooking at my [time tracking stats](https://track.toggl.com/shared-\nreport/9091b753451ad2edafbb36f18be33d82/summary/period/last12Months), I do\nspend A LOT of my time in meetings (nearly 40%) and administration (almost\n45%) which is expected for someone in management I suppose, but I really do\nmiss getting to write code more often.\n\nThat being said I was able to complete some pretty significant projects at\nwork with the help of my team that I'm really proud of.\n\n## Migrations\n\nChange is hard, and we underwent a few BIG technology changes that have gone\nreally well.\n\nThe first big change implemented was to migrate from a few Atlassian products\n([JIRA](https://en.wikipedia.org/wiki/Jira_\\(software\\)) and\n[Confluence](https://en.wikipedia.org/wiki/Confluence_\\(software\\))) to\n[YouTrack](https://en.wikipedia.org/wiki/YouTrack). I know there are lots of\npeople out there that HATE JIRA, but I loved it and my team liked it. I think\nthat a big reason for that is when JIRA wasn't doing what we needed it to do,\nI was able to make changes to it. We didn't have to pass it through some\nchange control committee, or get buy in from some high level manager. We just\nmade it work for us ... and it really did work well for us.\n\nThe reason we had to migrate from these products was that Atlassian announced\nin February of 2021 that they would end-of-life the server versions at the end\nof February 2024. I looked to see if we could migrate to one of their data\ncenter versions, but because I'm in Health Care any solution 'in the cloud'\nneeds to be HIPAA compliant. While Atlassian does offer\n[HIPAA](https://en.wikipedia.org/wiki/Health_Insurance_Portability_and_Accountability_Act)\ncompliant versions, you need to have 500+ users for that solution. My\norganization has 50.\n\nI spent two years trying to figure out how we could keep JRIA and/or to find\nsomething that could replace what we had in JIRA and the best solution I could\nfind was JetBrains' YouTrack.\n\nWe've been on YouTrack since the end of May and while there are still some\nfeatures that I miss (support for [Mermaid Diagrams](https://mermaid.js.org/),\nability to embed the content of one Confluence Article into another Article,\nautomatic linking between JIRA issues and Confluence Articles) overall the\nworkflow parts of YouTrack for issue tracking are much better than JIRA.\nEasier to set up, easier to maintain.\n\nAnother change that we made was changing our [Version Control\nSystem](https://en.wikipedia.org/wiki/Version_control) from\n[Subversion](https://en.wikipedia.org/wiki/Apache_Subversion) to\n[git](https://en.wikipedia.org/wiki/Git), hosted on Azure DevOps. This\ninvolved all three of the teams in my department and proceeded in a staged\napproach over the course of about 3 months. I also helped another department\nmigrate from Subversion to git.\n\nThe biggest challenge was the\n[SSIS](https://en.wikipedia.org/wiki/SQL_Server_Integration_Services) packages\nused in our [ETL](https://en.wikipedia.org/wiki/Extract,_transform,_load)\nprocesses, and the database objects.\n\nThe SSIS packages took 3 attempts before it stuck, but the ETL devs were\npositive with each unsuccessful attempt and we finally got over the hump in\nearly December.\n\nThe Database objects are unfortunately still in Subversion. This is a\nlimitation of our current tech stack. Migrating to git requires that each\ndeveloper have their own version of the database but we don't. Honestly the\nway we have it set up now is something I'd really like to change, but that's a\nstory for a different time.\n\nIn all we migrated 25 repositories from Subversion. There is still more work\nto do with the Web Developers to update our CICD process to fully leverage\nAzure DevOps, but small steps can make for big changes over time. No need to\nrush if we have a working CICD system (even if it's kind of Frankensteined\ntogether at this point).1\n\nWith this migration to git we were also able to integrate our issue tracking\nsystem (YouTrack) with our VCS. It's nice to see commits automatically\n'connected' to the issues in YouTrack.\n\nAnother thing that I've been able to work on is getting more and more Python\nenabled for various projects. We have a Django App that we use to manage\n'administrative' tables in our MS SQL database, and we've been able to\nintegrate Python in some of our SSIS packages for ETL.\n\n## Speaking\n\nOne of the goals that I had from my last annual review was to engage in two\npublic speaking activities. While I give lots of presentations at work,\nthey're all via Zoom so the idea of getting up in a room full of strangers and\ntalking was both exciting and terrifying.\n\nThe first conference I spoke at was the KLAS Points of Light conference in May\nin Salt Lake City (only about a week after PyCon US). The talk was limited to\n10 minutes and I had 2 co-speakers so I was limited to about 3 minutes of\ntalking time (and if I said I spoke for 90 seconds that would be pretty\ngenerous). That being said, I did get up on stage and spoke to a room full of\nabout 200 strangers (and nearly threw up!)\n\nThe absolute highlight of my speaking engagements this year was speaking at\nDjango Con (which I wrote about\n[here](https://www.ryancheley.com/2023/10/24/djangocon-us-2023/) and\n[here](https://www.ryancheley.com/2023/12/15/so-you-want-to-give-a-talk-at-a-\nconference/)). I won't write more about it, but I had such a great time giving\nthat talk!\n\n## Certifications\n\nI was able to achieve a couple of certifications this year. The first was the\nGoogle Cloud Platform Cloud Architect Certificate. I wrote about the\nexperience [here](https://www.ryancheley.com/2023/04/01/gcp-cloud-architect-\nexam-experience/).\n\nAnother certification I achieved was the Certified EDI Academy Professional.\nInitially I did this mostly because the cost of the classes to work on the\ncertificate for 2 participants versus 3 participants was only $100 extra and\nthere were 2 people in my department that had asked about working on the\ncertification. Since my department is in charge of EDI 'stuff' and I'm in\ncharge of the department it kind of made sense that I should get it too.\n\nWhile I didn't think it would be super beneficial and did it mostly _just\nbecause_ I have been surprised at how useful it's ended up being. Seeing\nwhat's possible with EDI in Healthcare has allowed me to work with the EDI\nAnalysts in my department more effectively AND has helped us all to better\nidentify opportunities for automation\n\n## Misc\n\nAbove I lamented the lack of time to program above, but one thing I was able\nto work on was a refactor of an Airflow DAG from 2000+ lines down to 150\nlines. This was thanks to the DjangoCon Tutorial [Django \u2764\ufe0f\nAirflow](https://2023.djangocon.us/tutorials/django-3-airflow/) lead by\n[Sheena O'Connell](https://fosstodon.org/@sheena).\n\nThis is also the first year since the start of the pandemic that I've gone\ninto the office on a (mostly) regular basis. While it's mostly like working\nfrom my home office (lots of Zoom meetings) it is nice to have a different bit\nof scenery (the new arena where hockey is played is visible from my desk when\nI look out the window).\n\nIn November I also got my first promotion in 7 years which was nice. I went\nfrom being the Regional Director to Senior Regional Director.\n\nFinally something I was really excited and proud about was the rating my\nmanagement team and I got for Employee Satisfaction. This was the first full\nyear that I had two people other than me in the management team and I think\nthat really helped. The satisfaction rating came back at 95%, the highest my\ndepartment has ever gotten.\n\n# Personal\n\n## Health\n\nAt the end of last year I completed the Running Challenge which lead to me\nparticipating in my first organized run (the Panther 5K) since 20182. I had\nhoped that this would get me back into running and that by the end of 2023 I\nwould have been able to run a half marathon.\n\nThese hopes were dashed in April when I contracted COVID (for the second time\nsince the start of the pandemic) and I wasn't back to feeling like myself\nuntil late May. Now, in most places of the country late May might be a swell\ntime to start running, but in the Coachella Valley it's already push triple\ndigit highs so I had a hard time getting motivated to start running again when\nit was that hot.\n\nI started the Running Challenge again this year, but 24 days into it I got a\nreally bad cold that basically is only now (nearly 2 weeks later) truly\ndisappearing. I haven't run in those 2 weeks, but am looking forward to\nstarting [rucking](https://www.901pt.com/post/rucking-what-it-is-benefits-how-\nto-do-it) and then running again in 2024.\n\n## Django\n\nI mentioned above that I spoke at DjangoCon US this year in Durham, but before\nthe conference started I got to see my youngest step brother and his wife at\ntheir (new to me) house3. It was a great way to start an amazing week in\nDurham which is one of the more walkable cities I've been to.\n\nAnother bonus was a chance encounter with [Ronard\nLuna](https://www.linkedin.com/in/ronardluna/) (whom I met at DCUS 2022 in San\nDiego) and some of his Caktus colleagues after day one of the conference. We\nwent and got (really good) Thai that night, had some great conversations and I\ngot to meet some more amazing Django people.\n\nTowards the end of the conference [Jay\nMiller](https://mastodon.social/@kjaymiller) interviewed me about my talk and\nthat was super awesome. I was nervous at first, but Jay (and\n[Dawn](https://mastodon.online/@BajoranEngineer)) did a great job of making me\nfeel at ease \ud83d\ude01\n\nI also spent time working with [Jeff\nTriplett](https://mastodon.social/@webology) and [Maksudul\nHaque](https://github.com/saadmk11) on\n[DjangoPackages](https://djangopackages.org) which has been fun and a great\nlearning experience. I'm looking forward to continuing that work next year!\n\nFinally, towards the end of the year I interviewed and was accepted to be one\nof the [Djangonaut.Space](https://djangonaut.space/) Navigators. I'm really\nlooking forward to working with the Djangonauts on my team, as well as my\nCaptain Nishant Aggarwal.\n\n## Reading\n\nI had a goal of increasing the diversity (both in style and authors) that I\nwas going to read this year4. To this end my daughter Abby helped me by\nputting together a list of books by Author's to get me out of my reading rut.\n\nI kind of fell off the reading wagon in the last quarter of the year, but I\nwas able to read some really good books that I wouldn't have found otherwise:\n\n  * American Gods: Neil Gaiman\n  * Scythe: Neal Shusterman\n  * Renegads: Marissa Meyer\n  * Don't Read the Comments: Eric Smith\n  * An Absolutely Remarkable Thing: Hank Green\n  * The Thousandth Floor: Katherine McGee\n  * Legendborn: Tracy Deonn\n  * Mistborn: Brandon Sanderson\n  * War Girls: Tochi Onyebuchi\n  * The Poppy War: RF Kuang\n\nI also read a few books in the Rise of Mankind Series by John Walker5\n\n  * Raid\n  * Conflict\n\n## Writing\n\nI only wrote [nine articles this year](https://search-\nryancheley.vercel.app/pelican?sql=select+summary+as+%27Summary%27%2C+url+as+%27URL%27%2C+published_date+as+%27Published+Data%27+%0D%0Afrom+content+%0D%0Awhere+published_date+%3E%3D+%272023-01-01%27+%0D%0Aand+category+%21%3D+%27pages%27%0D%0Aorder+by+published_date)\n(including this one). It sure feels like more, but in looking back I didn't\nwrite my first post until April, and then not again until July. It was really\nin the last 3 months (since DjangoCon) that I really started to write more\nwith 2 in October and November and three in December.\n\nI'm looking forward to writing more in 2024 with the goal of one article per\nmonth. I've started already with trying to write up one\n[TIL](https://github.com/ryancheley/til) a day. This is part of a large theme6\n\n## Hockey\n\nOn December 18, 2022 AHL Hockey made its way to my home town. The best part is\nthat the arena they play in is only 10 minutes from my house so I went to _a\nlot_ of hockey games.\n\nSo far this season isn't going like I had hoped, but a few highlights from\nlast season were:\n\n  * Getting to see a triple overtime game against the Calgary Wranglers that ended with the Firebirds winning\n  * A game 7 of the Calder Cup finals going to over time\n\nWhile the 3OT game ended with the good guys winning, the game 7 OT ended with\nthem losing. It was heart breaking, and I wrote about it\n[here](https://www.ryancheley.com/2023/07/01/firebirds-inaugural-season/), so\nI won't go over it again. That being said, even though they lost, the fact\nthat I got to go to a Game 7 for a championship was already mind blowing. The\nfact that it went into overtime was more so. I did a bit a research and it was\nthe first Game 7 OT championship game in either the AHL or NHL since the early\n50s, so it was kind of neat to be a part of history.\n\nI've gotten so into the AHL that I've written [a silly\nscraper](https://github.com/ryancheley/ahl) that dumps data into a\n[datasette](https://datasette.io) [instance on vercel](https://ahl-\ndata.vercel.app).\n\nAt the time of this writing the Firebirds are [9 points behind the pace they\nhad last year](https://ahl-\ndata.vercel.app/games?sql=with+data+%28TheYear%2C+W%2C+L%2C+OTL%2C+SOL%29%0D%0Aas+%28%0D%0A%0D%0Aselect+strftime%28%27%25Y%27%2C+game_date%29%0D%0A%2C+sum%28case%0D%0A++when+home_team+%3D+%3Ateam_name+and+home_team_score+%3E+away_team_score+then+1%0D%0A++when+away_team+%3D+%3Ateam_name+and+home_team_score+%3C+away_team_score+then+1%0D%0A++else+0%0D%0Aend%29+as+%27W%27%0D%0A%2C+sum%28case%0D%0A++when+home_team+%3D+%3Ateam_name+and+home_team_score+%3C+away_team_score+and+game_status+%3D+%27Final%27+then+1%0D%0A++when+away_team+%3D+%3Ateam_name+and+home_team_score+%3E+away_team_score+and+game_status+%3D+%27Final%27then+1%0D%0A++else+0%0D%0Aend%29+as+%27L%27%0D%0A%2C+sum%28case%0D%0A++when+home_team+%3D+%3Ateam_name+and+home_team_score+%3C+away_team_score+and+game_status+%3D+%27Final+OT%27+then+1%0D%0A++when+away_team+%3D+%3Ateam_name+and+home_team_score+%3E+away_team_score+and+game_status+%3D+%27Final+OT%27then+1%0D%0A++else+0%0D%0Aend%29+as+%27OTL%27%0D%0A%2C+sum%28case%0D%0A++when+home_team+%3D+%3Ateam_name+and+home_team_score+%3C+away_team_score+and+game_status+%3D+%27Final+SO%27+then+1%0D%0A++when+away_team+%3D+%3Ateam_name+and+home_team_score+%3E+away_team_score+and+game_status+%3D+%27Final+SO%27then+1%0D%0A++else+0%0D%0Aend%29+as+%27SOL%27%0D%0Afrom%0D%0A++games%0D%0Awhere+%28home_team+%3D+%3Ateam_name%0D%0A+++++++or+away_team+%3D+%3Ateam_name%29%0D%0Aand+++strftime%28%27%25m-%25d%27%2C+game_date%29+%3E%3D+%2710-01%27%0D%0A++AND+game_date+%3C%3D+strftime%28%27%25Y%27%2C+game_date%29+%7C%7C+%27-%27+%7C%7C+strftime%28%27%25m-%25d%27%2C+%27now%27%29%0D%0A++group+by+strftime%28%27%25Y%27%2C+game_date%29%0D%0A%29%0D%0Aselect+*%0D%0A%2C+2+*+W+%2B+OTL+%2B+SOL+as+%27Points%27%0D%0Afrom+data%0D%0Aorder+by+TheYear&team_name=Coachella+Valley+Firebirds&_hide_sql=1).\n\nWith that, it's still pretty awesome that I get to watch hockey live a couple\nof times a week and don't have to travel hours to do it.\n\n# House\n\nWhen my wife Emily and I bought our house in 2009 we were surprised that it\nwas on septic and not connected to the sewer. But then we learned that the\nunincorporated part of the county we live in that's not unusual. Every few\nyears I call one of the [local plumbing\ncompanies](https://hammerplumbing.com/) that is highly regarded to empty my\nseptic tank.\n\nThis was the year to have the tank emptied and when they came out to empty it,\nwe discovered that the tank was collapsing on itself and would need to be\nreplaced.\n\nNow, this is not an inexpensive expense7 but also not totally unexpected. What\nwas unexpected was to find out that because our house was within 200 feet of\nthe sewer line we were REQUIRED to connect to the sewer.\n\nAfter contacting 12 approved contractors we were able to get one under\ncontract and they got us connected to the sewer. It cost WAAAAAY more than I\nthink anything should8, but it's done now so one less thing to worry about\ngoing forward\n\nBut the silver lining in that is I finally felt comfortable getting a lemon\ntree in my front yard and it brings me lots of joy. 9\n\n# Family\n\nThis fall my daughter Abby started her Senior year in High School. This is a\nmind blowing stage in life. It means that this time next year Emily and I will\nofficially be empty nesters.\n\nIn preparation for the transition to College we have done a lot of College\ntours. These have mostly been short weekend trips, but it's been nice to get\nout there and visit new / different places.\n\nBefore the pandemic my family and I would take a [stereotypical American style\nfamily road trip](https://www.imdb.com/title/tt0085995/). We haven't done it\nsince, but we were hoping to do something big this summer.\n\nThose plans were derailed when the sewer bill came in, but the college tours,\nand a nice long weekend trip to [Julian](https://visitjulian.com/) made up for\nthe lack of a BIG trip.\n\nI mentioned above the Hockey games I've been able to see at Acrisure Arena,\nbut one of the extra benefits of having an arena where they play hockey is\nthat they will also play music. I was only able to go to one concert\n([Paramore](https://en.wikipedia.org/wiki/Paramore) with Abby), but Emily and\nAbby were able to see several shows including [Shania\nTwain](https://www.shaniatwain.com/#/), [Lizzo](https://www.lizzomusic.com/),\nand [Pentatonix](https://www.ptxofficial.com/).\n\nWe also live relatively close to LA so we were able to see a couple of events\nat the Staples Center (I refuse to call it by it's new name) including\n[SZA](https://www.szasos.com/tour/) (all three of us plus a friend of Abby's)\nand a [Kings game](https://www.nhl.com/avalanche/news/colorado-avalanche-los-\nangeles-kings-game-recap-december-3-x2816) (just Emily and me).\n\nAbby was also able to see the last show of [Taylor Swift's Eras\ntour](https://www.taylorswift.com/tour-us/) at [SoFi\nStadium](https://en.wikipedia.org/wiki/SoFi_Stadium) which was a bit stressful\nas she did it with a group of friends and an adult cousin of one of those\nfriends (that we didn't know) but she had a great time and had a smile as big\nas any I've seen on her in a while for a few days after.\n\nEmily and I also went down to the Palm Springs Pride parade and got to see\n[10,000 Maniacs](https://maniacs.com/) with their new lead singer ([Leigh\nNash](https://en.wikipedia.org/wiki/Leigh_Nash) from [Six Pence None the\nRicher](https://en.wikipedia.org/wiki/Sixpence_None_the_Richer))\n\nWe have also really started to take advantage of the space in our back yard as\na family. As a 15 year work anniversary gift I received a projector TV that\nwe've set up outside. We also got a fire pit to keep us warm in the _frigid_\nDesert Winter Nights (I mean, it gets down to a low of like 50 by the time I\ngo back inside \ud83e\udd76) and reminds me of [this meme](https://imgur.com/tczZ7ez).\n\n# Tropical Storm Hillary\n\nI grew up in the Coachella Valley, and except for a 10 year period (mostly in\nmy 20s) I've lived here my entire life. I've seen\n[Haboobs](https://en.wikipedia.org/wiki/Haboob), felt Earthquakes, seen smoke\nfrom nearby Wild Fires, and a couple of pretty bad rain storms (like the\n[Valentine's Day massacre](https://www.desertsun.com/picture-\ngallery/weather/2020/02/13/2019-valentines-day-storm-and-its-aftermath-across-\nregion/4747997002/), and the [Storm Cell that wouldn't\nmove](https://kesq.com/news/2014/09/11/la-quinta-cleanup-from-700-year-\nstorm/)) ... but I NEVER thought I'd experience a Tropical Storm (which was\nvery nearly a Hurricane) but this year we did.\n\nIt was a stressful day but at the end of it we can out unscathed. We were\nfortunate that we didn't have any property damage, but others weren't. There\nare still [areas of the Valley that are trying to rebuild after the\nflooding](https://www.desertsun.com/story/news/2023/09/03/tropical-storm-\nhilary-destroyed-one-palm-springs-area-neighborhood-heres-why/70733017007/)\nthat the storm brought.\n\n# Conclusion\n\nWhen I started writing this I didn't think i I'd have _that_ much to write,\nbut looking back I see that I did!\n\nI'm glad I did this and hope that future me will find some benefit from it.\nHopefully 2024 me won't procrastinate writing this until the very last day ...\nbut he probably will.\n\nThat's just the nature of these things, right?\n\n  1. Our current stack involves commits to Azure DevOps which is picked up by TeamCity and then deployed using Octopus Deploy \u21a9\ufe0e\n  2. That year I ran the LA Marathon in March, and in July I tore a muscle in my left hamstring \u21a9\ufe0e\n  3. They've been in the house for almost 9 years! \u21a9\ufe0e\n  4. I read mostly Sci Fi written by people that mostly look like me \u21a9\ufe0e\n  5. These aren't particular good or well written, but I was in between books and they were on my kindle so \ud83e\udd37\ud83c\udffc\u200d\u2642\ufe0f \u21a9\ufe0e\n  6. more on that in the next article \ud83d\ude01 \u21a9\ufe0e\n  7. Average costs is about $15,000 \u21a9\ufe0e\n  8. Close to $30,000 \u21a9\ufe0e\n  9. When Emily and I were looking to buy a house we only had three requirements: (1) It couldn't be behind a gate; (2) it couldn't have a pool; (3) it had to have a citrus tree, preferably lemon. We were able to get 2 of the three when we bought the house and it only took 13 years to get the citrus tree! \u21a9\ufe0e\n\n", "2023-12-31", "year-in-review-2023", "I've never done a year in review, but this seems like a good a time as any,\nright? I had a rough outline, but after reading the great Year in Review from\n[Tim Schilliing](https://www.better-simple.com/personal/2023/12/30/my-year-in-\nreview/), [Paolo Melichore](https://www.paulox.net/2023/12/31/my-2023-in-\nreview/), and [Velda Kiara](https://dev.to/veldakiara/djangoconus-2023-a-wish-\nfulfilled-2mmc), I was inspired to **actually** finish mine.\n\n# Professional\n\nIn the moment \u2026\n\n", "Year in Review 2023", "https://www.ryancheley.com/2023/12/31/year-in-review-2023/"], ["ryan", "musings", "I did my first [Year in Review](https://www.ryancheley.com/2023/12/31/year-in-\nreview-2023/) last year and have decided to carry on the tradition to make\nsure I know what I did!\n\nI've written about themes before, so I won't go over it again here. Below is a\nhigh level of what my 2024 themes were\n\n  * [Winter of Learning](https://www.ryancheley.com/2024/03/19/winter-of-learning/)\n  * [Spring of Transition](https://www.ryancheley.com/2024/06/20/spring-of-transition/)\n  * [Summer of Writing](https://www.ryancheley.com/2024/10/03/summer-of-writing/)\n  * Fall of Mindfulness\n\nOverall my themes were pretty successful. I do wish I had been a bit more\nmindful, and am now left to wonder if I shouldn't have gone with Autumn of\nMindfulness instead of Fall of Mindfulness, because I seem to have taken a\nstep back on some of my hopes for mindfulness \ud83d\ude04\n\n## Professional\n\nLast year I said\n\n> In the moment it can feel like I don't really get anything done at work\n\nI've felt this way pretty much every year for probably since I first became a\nmanager, but I'm starting to embrace it a bit more as I get older I guess.\n\nFor some context, in 2024 I worked 2235 hours with the following breakdown:\n\nCategory | Hours | Percentage  \n---|---|---  \nAdministration | 1193.5 | 53.4  \nMeetings | 838.1 | 37.5  \nCoding | 93.5 | 4.2  \nConference | 55.5 | 2.39  \nCommuting | 54 | 2.42  \n  \nThere were a couple of highlights from work this year though that I wanted to\ncall out\n\nI celebrated 16 years with my current employer which means that my career is\nnow old enough to drive in the US!\n\nMy team finally was able to migrate our SQL Database version control from\nSubversion to Git. I wrote about the migration to git last year in my year in\nreview and this was the last project that needed to be migrated over.\n\nThere are still some things to do to help with the migration to make it easier\nfor the teams that work with this project, but the first couple of steps have\nbeen completed which is nice.\n\nOne of the big things I wanted to focus on was the validation issues that my\ncompany had with transmissions of claims data.\n\nWorking with a couple of smart and dedicated people we were able to do some\npretty amazing things.\n\nOne thing to keep in mind with the validation errors is that they have to be\ncorrected, by a person, in order to allow the claims to be transmitted to the\nHealth Plans (which is a major goal of my company)\n\nAt the start of the year, the validation error rate for Institutional Claims\nwas 13.7% while the rate for Professional Claims was 8.7%\n\nBy the end of the year those rates were down to 1.1% for Institutional Claims\nand 0.3% for Professional Claims. This represents decreases for 89% and 96.4%\nrespectively.\n\nI'm really proud of what the team was able to accomplish.\n\n## Personal\n\n### Health\n\nI usually like to run or walk to keep my cardio health up, but I seemed to\nkeep running into one injury or another with my knees, feet, ankles ...\nwhatever. In July I decided to give swimming a try.\n\nSince July 15 I've swum 83,650 yards / 76489.56 meters ... which is 47.5\nmiles. This absolutely blows my mind because my first swim was only 200 yards,\nlasted about 10 minutes and I thought I was going to die.\n\nI'm now consistently swimming 3 days a week for about 55 minutes and 2000\nyards / 1828.8 meters.\n\nAt about the same time I really doubled down on starting a meditation\npractice. I tend to do about 20 minutes of meditation each day. In 2024 I had\n54 hours of meditation.\n\nI wish I could split up my walking and running statistics, but Apple doesn't\nthink these are different and so they are combined in all of the health apps!\nMy combined Walking+Running stats came in at 1015 miles which looks like a\nlot, but is down significantly from my high in 2019 of nearly 2000 miles. It's\nalso the lowest annual total by far since 2015 (my first full year of\ntracking)\n\nI think I know what I'll need to focus on in 2025!\n\n### Writing\n\nIn June I started a writing group with [Mario\nMunuz](https://fosstodon.org/@pythonbynight) and [Trey\nHunner](https://mastodon.social/@treyhunner) and that helped to keep me\nmotivated and accountable for writing. I didn't write nearly as much as I\nhoped, but I was able to get out [18\narticles](https://ryancheley.com/archive/2024/). This is the most since\n[2021](https://ryancheley.com/archive/2021/) when I wrote 23, but about 1/3 of\nmy high mark in [2018](https://ryancheley.com/archive/2018/) when I somehow\nwas able to write 44 articles!\n\n### Open Source\n\nThis year I expanded the role I had in the Django community and I'm really\npleased with that.\n\nI started the year off as a Navigator for the amazing\n[Djangonaut.Space](https://djangonaut.space/) program in Session 1, and was\nable to fill that same role in Session 2.\n\nI joined the Django Commons admin group with Daniel, Lacey, Storm, and Tim.\nWe've been able to onboard 6 libraries!\n\nI also gave a talk at Django Con US in Durham titled [Error\nCulture](https://www.youtube.com/watch?v=JLYaAYY4JPc). As always, my time at\nDjangoCon US was a blast and I'm looking forward to seeing everyone in [2025\nin\nChicago](https://www.defna.org/announcements/2024/12/31/djangoconus-2025-announced/)!\n\nI also ran for the [Django Steering\nCouncil](https://www.djangoproject.com/weblog/2024/dec/10/django-6x-steering-\ncouncil-candidates/). I wasn't successful in making it into the Steering\nCouncil, but [the five\nfolks](https://www.djangoproject.com/weblog/2024/nov/21/announcing-\nthe-6x-steering-council-elections/) that did are all amazing humans and I'm\nlooking forward to the work that they'll do over the course of the 6.x series.\n\nI've also really enjoyed [Jeff Triplett](https://mastodon.social/@webology)'s\nOffice Hours. I don't do nearly enough open source work during those office\nhours, but it's nice to see people and listen in on, and participate in, some\ngreat conversations. I'm looking forward to doing this again in 2025\n\nI've also been trying to attend the DSF Office hours hosted by [Jacob Kaplan-\nMoss](https://social.jacobian.org/@jacob) and [Thibaud\nColas](https://fosstodon.org/@thibaudcolas). These calls are really\ninteresting and allow a bit of a peek into the DSF Board and what's being\nworked on. Again, I'm excited about attending these in 2025 as well.\n\n### Sports Fandom\n\nI post on social media a lot about Hockey. Specifically the local team near my\nhome, the [Coachella Valley Firebirds](https://cvfirebirds.com/).\n\nThey made it to the Calder Cup Finals again this year. And again they played\nthe Hershey Bears. I [wrote about the 2022-23 season, and the Calder Cup\nfinals](https://www.ryancheley.com/2023/07/01/firebirds-inaugural-season/) and\nthe heart break associated with losing in Overtime in Game 7 of a\nchampionship. I wish I could say that they were able to redeem themselves, but\nthe outcome was the same ... but losing in 6 games instead of 7. That being\nsaid, it wasn't nearly as painful this time around.\n\nIn all, I went to nearly 50 Firbirds Hockey games (a few on the road, but most\nat home) and can't really believe it. Watching Hockey live is a lot of fun!\n\nOne of the highlights of the off season was running into a few of the players\nat a local sandwich shop and getting to chat with the captain Max McCormick. I\ntried to 'be cool', and I think I might have mostly succeeded, but it was a\npretty surreal experience.\n\nI also had the luck to get tickets to a game at Crypto.com arena to see the LA\nKings play the Seattle Kraken (which is the NHL affiliate of the Firebirds).\nIt was an awesome game to watch due to many of the players for the Kraken\nbeing former Firebirds.\n\nThe Kraken ended up losing the game 3-2 but it was still a great time.\n\nFinally, the BIG sports win this year was the Dodgers winning their first Full\nSeason World Series since 1988. Because of life I didn't get to watch as many\ngames of the World Series as I would have liked, but I did get to watch game 5\nand that made up the missing game 1 ... I think.\n\n### Miscellaneous\n\n#### Music\n\nI got to see a few [Concerts in the\nPark](https://discoverpalmdesert.com/spring-concerts-2024/) which is always\nfun. It's free, and typically a pretty nice evening on some cool grass with a\nstunning view of the sunset over [Mt San\nJacinto](https://en.wikipedia.org/wiki/San_Jacinto_Peak).\n\nI also got to see [Weezer](https://www.ryancheley.com/2024/11/26/weezer-live/)\nand had a good time hanging out with my daughter.\n\nFinally I rediscovered the amazing music of [The Tragically\nHip](https://en.wikipedia.org/wiki/The_Tragically_Hip) from a\n[toot](https://mastodon.social/@gvwilson/112666592482656620) by [Greg\nWilson](https://mastodon.social/@gvwilson) and it's brought me a lot of joy to\nlisten to them again. [Phantom\nPower](https://en.wikipedia.org/wiki/Phantom_Power_\\(The_Tragically_Hip_album\\))\nis my favorite album of theirs with so many good songs.\n[Bobcaygeon](https://en.wikipedia.org/wiki/Bobcaygeon_\\(song\\)) is probably my\nfavorite on the album, but it can change depending on my mood.\n\n#### Empty Nesting\n\nAs I wrote about [here](https://www.ryancheley.com/2024/06/20/spring-of-\ntransition/) my daughter graduated from High School and started College in the\nfall. This has been a big change for my wife, Emily, and I. Our daughter is\npretty close by so we can visit easily, but we've tried to give her the space\nshe needs to adjust to college life. It's been pretty successful, but it's\nstill a weird experience to walk past her room and not see her.\n\n#### Home Garden\n\nI've been [posting pictures of my lemon tree on\nMastodon](https://mastodon.social/@ryancheley/113557183813506655) over the\nlast year. In November I was finally able to harvest about 30 or 35 lemons.\nThe great thing about a lemon tree is obviously all of the lemons. But the\nhard thing about all of the lemons is trying to figure out what to do with\nthem.\n\nEmily found a great recipe for Lemon & Chili infused Olive Oil so we used that\nrecipe to make about 12 bottles of our own custom olive oil and about 15 cups\nof Lemonade. [These](https://mastodon.social/@ryancheley/113580121231076190)\nmade some pretty amazing Christmas gifts.\n\n#### Reading\n\nLooking back at my reading for 2024 and I didn't do nearly as much as I would\nhave liked, or think that I should have.\n\nI was able to make it about 8 Chapters into [Software Design by\nExample](https://third-bit.com/sdxpy/). It's a great book, but it's definitely\nnot something you just breeze through.\n\nI was able to finish up [Practices of the Python\nPro](https://www.manning.com/books/practices-of-the-python-pro). I found it to\nbe a pretty comprehensive book. I'm not much of a book reviewer so I won't\nbother writing one here. I got value out of reading it, and I think others\nwill as well.\n\nWhat I am really missing from my reading list for 2024 is fiction. Like any\nfiction at all. It doesn't look like I read anything that wasn't technical so\nI'll be trying to focus on fixing that in 2025\n\n## Wrap up\n\nOverall 2024 was a pretty good year for me. There were some things that I\nwasn't and am still not excited about, but I have decided to try and make\nthings better where I can, stand up for what I believe is right, and just keep\non trying to be kind and make the world a better place in the ways that I can.\n\n", "2025-01-02", "year-in-review-2024", "I did my first [Year in Review](https://www.ryancheley.com/2023/12/31/year-in-\nreview-2023/) last year and have decided to carry on the tradition to make\nsure I know what I did!\n\nI've written about themes before, so I won't go over it again here. Below is a\nhigh level of what my 2024 themes were\n\n  * [Winter \u2026](https://www.ryancheley.com/2024/03/19/winter-of-learning/)\n\n", "Year in Review 2024", "https://www.ryancheley.com/2025/01/02/year-in-review-2024/"], ["ryan", "musings", "I was hoping to have this written and posted last week, but for Christmas this\nyear Santa brought me a cold which knocked me on my butt for a few days.\n\nI had done a bit of prep, but wow, when I look back at 2025 it was a pretty\nbig year for me personally.\n\n## Professional\n\nI celebrated 17 years at my [current employer](https://www.mydohc.com). While\nthis isn't a nice round number sort of anniversary, about 6 months before the\nactual anniversary date I was promoted to an Associated Vice President and\njoined the Senior Management Team. This has been a goal of mine since about\n2010 and after a lot of hard work (and honestly more than a bit of good luck)\nI \"made it\".\n\nIn addition to the promotion at work, I also helped to lead a multi department\nteam to a successful upgrade for a major application AND helped to lead a\nmajor network migration for our EHR that went really well. Two major projects\naccomplished in the same calendar year was a pretty good feeling.\n\nWe also do annual employee satisfaction surveys and my department had a 96%\nsatisfaction rating. This is a really good feeling as a leader. We get shit\ndone AND people are happy to do it!\n\nSince 2021 my department has consistently scored above 90%. This isn't just me\nthough! I have a great management team that helps to make this happen.\n\nOver this same time period I've had 7 people leave the department1. Five of\nthem because of retirement. I really like that where I work is a place you\nretire at more often than not! That, along with the high satisfaction rates,\nsuggest that my management team and I are doing something right.\n\n## Django and Python\n\nOn the Django and Python side it was also a really big year. In February I\n[spoke](https://youtu.be/FBMg2Bp4I-Q?si=tzHCWboxaEa8vEh3) at\n[PyCascades](https://2025.pycascades.com/) in Portland, Oregon.\n\nIn September I [spoke](https://youtu.be/aZwKCo5kwJU?si=eel7u86Czjzl-CsV) at\n[DjangoCon US](https://2025.djangocon.us/) in Chicago, Illinois. This was my\nTHIRD talk at DjangoCon US2\n\nI was also active with [Django Commons](https://django-commons.org/) on the\nadmin team, was a [Djangonaut.Space](https://djangonaut.space/)\n[Navigator](https://github.com/djangonaut-\nspace/program/blob/main/navigators.md) in [Session\n5](https://djangonaut.space/sessions/2025-session-5/) for 2 amazing\nDjangonauts, and got to hang out at\n[Jeff](https://mastodon.social/@webology)'s Office Hours pretty consistently\n(though not as often as I would have liked!)\n\nThe biggest accomplishment was [getting elected to the DSF\nBoard](https://www.djangoproject.com/weblog/2025/nov/28/2026-dsf-board-\nelection-results/) and then being [elected Treasurer of the\nBoard](https://www.djangoproject.com/weblog/2025/dec/18/introducing-\nthe-2026-dsf-board/). This is still all **very** new and I'm trying to feel my\nway around, but I've got some amazing support and I'm really looking forward\nto working with the board in 2026 and beyond.\n\n## Technology\n\nA few weeks ago I watched Jeff Triplet migrate various infrastructure for\n[DjangoPackages.org](https://djangopackages.org/) from [Digital\nOcean](https://www.digitalocean.com/) to [Hetzner](https://www.hetzner.com/)\nwith [Coolify](https://coolify.io/). This got me to dive into that ... pretty\ndeeply. I spent a lot of my December PTO3 working to migrate my servers from\nDigital Ocean to Hetzner managed with Coolify. I plan to write more about that\nlater, but needless to say, as of December 29, 2025 I had successfully\nmigrated everything off Digital Ocean to Hetzner.\n\n## Personal\n\n### Music\n\nWatching live music is a lot of fun. My wife Emily and I really enjoy doing\nthis. We didn't get to see as many concerts as we would have liked to, but we\nwere still able to see a few. [Kelsea\nBallerini](https://www.kelseaballerini.com/home) (with our daughter Abby) and\n[Benson Boone](https://www.bensonboone.com/) at [Crypto.com\narena](https://en.wikipedia.org/wiki/Crypto.com_Arena) in Downtown Los\nAngeles,\n[Sessanta](https://sessantalive.com/?srsltid=AfmBOoqKeaTi6S9G5bzemiit74Ed6cuRHGyKm4G3gwZ1yU0Y9xVVL49H)\nat [Acrisure Arena](https://en.wikipedia.org/wiki/Acrisure_Arena), [Third Eye\nBlind](https://www.thirdeyeblind.com/)4 at a local casino, a show at the\n[Grand Ole Opry](https://en.wikipedia.org/wiki/Grand_Ole_Opry) in Nashville,\nTennessee as part of a conference I attended. We also saw about 5 or 6\ndifferent bands in 3 days at different venues while we were in Nashville\n(though sadly we didn't get to see a show on the stage at the [Taco Bell\nCantina](https://locations.tacobell.com/tn/nashville/131-2nd-avenue-\nnorth.html) which feels like a real miss!) though we did get to see [The Steel\nDrivers](https://www.thesteeldrivers.com/) at the historic [Ryman\nAuditorium](https://www.ryman.com/)\n\nWe also saw [Post Modern Jukebox](https://postmodernjukebox.com/) at the [Fox\nTheater](https://www.foxriverside.com/) in\n[Riverside](https://www.visitcalifornia.com/places-to-visit/riverside/). We\nstayed a few days to get out of the heat of the Coachella Valley, but were\nshocked to learn that Riverside is only about 15-20 degrees cooler. And when\nit's 115-120 here it can still be above 100 there!\n\nWe still had a great time and it convinced me even more that the wild idea my\nfriend [Mario](https://pythonbynight.com/) and I had to pitch Riverside as a\nlocation for DjangoCon US 2027/2028 was actually a really good idea, not just\na wild idea \ud83d\ude00\n\n### Hockey\n\nI went to a ton of hockey games. To start the year off I went to the [Cactus\nCup](https://acrisurearena.com/event/cactus-cup-2/) and saw 4 NCAA Division 1\ngames in 2 days. The best part was sitting behind the goal right at the glass\nand seeing just how fast (and LOUD) the game can be.\n\n![Teddy Bear Toss 2025](/images/Cactus-Cup-2025.jpeg)\n\nI was pretty exhausted (but happy) by the end of it.\n\nI also got to see 36 [Firebirds](https://cvfirebirds.com/) home games (regular\nseason5 and post season6), 2 Firebirds road games (both in San Diego against\nthe [Gulls](https://www.sandiegogulls.com/)), and was able to attend the [AHL\nAll Star Competition](https://theahl.com/news/coachella-valley-to-\nhost-2025-ahl-all-star-classic) at [Acrisure\nArena](https://en.wikipedia.org/wiki/Acrisure_Arena) in February.\n\nOn the NHL front I went to a game to watch the [LA\nKings](https://www.nhl.com/kings/) host the [Seattle\nKraken](https://www.nhl.com/kraken/) (the Firebirds big kid club) and while I\nwas in Nashville for a conference in November I got to watch the [Nashville\nPredators](https://www.nhl.com/predators/) play the [Calgary\nFlames](https://www.nhl.com/flames/).\n\nMy favorite hockey-related experiences this year though were the [Teddy Bear\nToss](https://en.wikipedia.org/wiki/Teddy_bear_toss)\n[game](https://theahl.com/stats/game-center/1028181) (even though the\nFirebirds lost) and getting to greet the players in the tunnel before the game\n\n![Teddy Bear Toss 2025](/images/Teddy-BearToss-2025.jpeg)\n\n### Baseball\n\nSadly we only made it out to a few baseball games this year. We saw a few\nCalifornia Winter League games one Saturday in February, and one game out in\nRancho Cucamungo to see the Dodgers Low A Affiliate the Quakes play. The\nDodgers won the World Series, and that was nice, but I didn't see any of their\ngames in person this year.\n\n## Family\n\nThis year Abby started her second year of College so Emily and I continue to\nbe empty nesters most of the year7\n\nOne of my favorite highlights from the year include Abby coming home from\ncollege for the weekend for my birthday last March to surprise me. A\ncompletely unexpected visit that literally made it one of the best birthdays\never. I read something earlier this year that once your child leaves your home\nfor college, or whatever, they'll have spent about 95% of the time they're\nEVER going to spend with you. This hit me pretty hard. Like wanting to sob\nuncontrollably hard. So for Abby to come home to spend time with me for my\nbirthday was the best gift ever.\n\n# Conclusion\n\nLooking back it was a pretty great year. Lots of accomplishments, lots of\ngreat memories. The year started off with lots of fear and trepidation. I\nstill have that (in spades) but I also am starting to have a bit more hope.\n\nI don't have any lofty goals, and I didn't do the same kind of\n[Theme](https://youtu.be/NVGuFdX5guE?si=FewkUjQis5kjiQTv) planning that I've\ndone in the past. This year it just didn't really work for me, so I'm pausing\non that exercise.\n\nThat being said, if I was going to have a theme for 2026 it would be 'The year\nof Intentionality'. I've spent more time this year than I would have liked\ndoing things but not thinking about what I wanted to do. I just did them\nbecause they were easy or it's just what I always do. For the last few weeks\nI've been trying (with varying degrees of success) to be more intentional in\nmy actions, and my plan is to continue that into 2026.\n\nHere's hoping to a great 2026!\n\n  1. The department is 13 people \u21a9\ufe0e\n  2. [DCUS 2023](https://youtu.be/LG-3TB8GIZA?si=GbHaFNdb0Y9KyMcT), [DCUS 2024](https://youtu.be/VPldDxuJDsg?si=YH9nCZxNsYX5Baj3) \u21a9\ufe0e\n  3. Paid Time Off / Vacation \u21a9\ufe0e\n  4. yes, they are still a band ... no this was not my idea! \u21a9\ufe0e\n  5. This includes games for the 2024-25 and 2025-26 season \u21a9\ufe0e\n  6. just 2025, obviously \u21a9\ufe0e\n  7. I might just be misremembering, but when I was in college we didn't have this many breaks, and they weren't this long! \u21a9\ufe0e\n\n", "2025-12-31", "year-in-review-2025", "I was hoping to have this written and posted last week, but for Christmas this\nyear Santa brought me a cold which knocked me on my butt for a few days.\n\nI had done a bit of prep, but wow, when I look back at 2025 it was a pretty \u2026\n\n", "Year in Review 2025", "https://www.ryancheley.com/2025/12/31/year-in-review-2025/"]], "truncated": false, "filtered_table_rows_count": 69, "expanded_columns": [], "expandable_columns": [], "columns": ["author", "category", "content", "published_date", "slug", "summary", "title", "url"], "primary_keys": ["slug"], "units": {}, "query": {"sql": "select author, category, content, published_date, slug, summary, title, url from content where \"category\" = :p0 order by slug limit 101", "params": {"p0": "musings"}}, "facet_results": {}, "suggested_facets": [{"name": "published_date", "type": "date", "toggle_url": "http://search.ryancheley.com/pelican/content.json?category=musings&_facet_date=published_date"}], "next": null, "next_url": null, "private": false, "allow_execute_sql": true, "query_ms": 10.154880583286285}