<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator><link href="https://thedadams.com/feed.xml" rel="self" type="application/atom+xml" /><link href="https://thedadams.com/" rel="alternate" type="text/html" /><updated>2026-04-21T00:59:34+00:00</updated><id>https://thedadams.com/feed.xml</id><title type="html">Donnie Adams</title><subtitle>Software engineer, mathematician, and basketball coach. Personal website and blog.</subtitle><author><name>Donnie Adams</name></author><entry><title type="html">Running Gleam in a Codex Environment</title><link href="https://thedadams.com/blog/2026/03/16/Setting-Up-Codex-Envrionment-For-Gleam" rel="alternate" type="text/html" title="Running Gleam in a Codex Environment" /><published>2026-03-16T00:00:00+00:00</published><updated>2026-03-16T00:00:00+00:00</updated><id>https://thedadams.com/blog/2026/03/16/Setting-Up-Codex-Envrionment-For-Gleam</id><content type="html" xml:base="https://thedadams.com/blog/2026/03/16/Setting-Up-Codex-Envrionment-For-Gleam"><![CDATA[<p>I’ve recently been exploring the Gleam programming language. Gleam is a statically typed language that compiles to Erlang, and it’s designed for building scalable and maintainable applications. As is the case with many programmers these days, I wanted to explore using Codex to build a proof-of-concept for an idea I had. It turned out that setting up a Codex Environment was much more involved than I expected. This post walks through the issues I ran into and the exact configuration required to make Gleam work inside a Codex environment.</p>

<p>Codex allows you to create environments for your repositories so that Codex has everything it needs to build, run, and test the code when you ask it to complete a task. In the Codex web interface, click the gear icon in the top right, then click “Environments” in the left sidebar, and then “Create Environment”. Select the repository you want to work with, give the environment a name, and then you have the ability to provide a setup script. By default, Codex will run an “Automatic” setup script that installs common packages. Gleam is not included in the automatic setup, so you need to provide a “Manual” setup script. This is where things start getting tricky.</p>

<p>The first issue is that gleam is not bundled into <code class="language-plaintext highlighter-rouge">apt</code> for Ubuntu, so installing it to give Codex the ability to run tests and build the code was not straightforward. There are three ways of installing Gleam on Ubuntu: <code class="language-plaintext highlighter-rouge">brew</code>, <code class="language-plaintext highlighter-rouge">asdf</code>, and <code class="language-plaintext highlighter-rouge">precompiled binaries</code>. As a macOS user, I am comfortable with <code class="language-plaintext highlighter-rouge">brew</code>, so I started there. The issue is that the container that the Codex environment uses is underpowered, and installing <code class="language-plaintext highlighter-rouge">brew</code> plus all the dependencies would sometimes cause the setup script to timeout. So, I moved onto the precompiled binaries.</p>

<p>The Gleam documentation has steps to install Gleam on Ubuntu using the precompiled binaries: download the binary from GitHub, download the checksum file, verify the checksum, extract the binary, make it executable, move it to <code class="language-plaintext highlighter-rouge">/usr/bin</code>, and, finally, install the Erlang dependencies. Nothing a simple bash script couldn’t handle. Here it is:</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>apt update
apt <span class="nb">install</span> <span class="nt">-y</span> erlang-dev rebar3

wget https://github.com/gleam-lang/gleam/releases/download/v1.15.1/gleam-v1.15.1-x86_64-unknown-linux-musl.tar.gz
wget https://github.com/gleam-lang/gleam/releases/download/v1.15.1/gleam-v1.15.1-x86_64-unknown-linux-musl.tar.gz.sha256

<span class="k">if</span> <span class="o">!</span> <span class="nb">sha256sum</span> <span class="nt">-c</span> gleam-v1.15.1-x86_64-unknown-linux-musl.tar.gz.sha256<span class="p">;</span> <span class="k">then
</span><span class="nb">exit </span>1
<span class="k">fi

</span><span class="nb">tar </span>xf gleam-v1.15.1-x86_64-unknown-linux-musl.tar.gz
<span class="nb">chmod</span> +x gleam
<span class="nb">mv </span>gleam /usr/bin/

gleam deps download
</code></pre></div></div>

<p>The issue is that, the last command in that script would fail with the following error (envoy is one of the dependencies for my project):</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>error: HTTP error

A HTTP request failed.
The error from the HTTP client was:

error sending request for url (https://repo.hex.pm/tarballs/envoy-1.1.0.tar)
</code></pre></div></div>

<p>This was confusing because the Codex interface states that network access is always enabled during the setup step.</p>

<p>After debugging with the Codex interactive terminal, I figured out that the container Codex was using has a proxy configured, and the certificate for said proxy is not trusted by the <code class="language-plaintext highlighter-rouge">gleam</code> CLI. Thankfully, the Gleam CLI reads the <code class="language-plaintext highlighter-rouge">GLEAM_CACERTS_PATH</code> environment variable to read additional certificates. So, in the Codex environment configuration, adding the <code class="language-plaintext highlighter-rouge">GLEAM_CACERTS_PATH</code> environment variable with value <code class="language-plaintext highlighter-rouge">/usr/local/share/ca-certificates/envoy-mitmproxy-ca-cert.crt</code> does the trick! After doing that, the <code class="language-plaintext highlighter-rouge">gleam deps download</code> command worked without any issues.</p>

<p>Now, we actually want the <code class="language-plaintext highlighter-rouge">gleam deps download</code> command to run for resumed containers as well. To do that, we can add the command to the “Maintenance script” section of the Codex environment configuration. This way, every time the container is created or resumed, it will ensure that all dependencies are downloaded and up to date.</p>]]></content><author><name>Donnie</name></author><category term="programming" /><category term="gleam" /><category term="codex" /><summary type="html"><![CDATA[I’ve recently been exploring the Gleam programming language. Gleam is a statically typed language that compiles to Erlang, and it’s designed for building scalable and maintainable applications. As is the case with many programmers these days, I wanted to explore using Codex to build a proof-of-concept for an idea I had. It turned out that setting up a Codex Environment was much more involved than I expected. This post walks through the issues I ran into and the exact configuration required to make Gleam work inside a Codex environment.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://thedadams.com/assets/images/social-card.svg" /><media:content medium="image" url="https://thedadams.com/assets/images/social-card.svg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Basketball Season</title><link href="https://thedadams.com/blog/2020/06/24/Basketball-Season" rel="alternate" type="text/html" title="Basketball Season" /><published>2020-06-24T00:00:00+00:00</published><updated>2020-06-24T00:00:00+00:00</updated><id>https://thedadams.com/blog/2020/06/24/Basketball-Season</id><content type="html" xml:base="https://thedadams.com/blog/2020/06/24/Basketball-Season"><![CDATA[<p>I have had the pleasure of coaching basketball at St. Mary’s High School in Phoenix, AZ for the past three years. Being a part of a successful program has been a tremendously rewarding experience. My first year, I was a volunteer coach and helped with the varsity team. In my second year, I was the head coach of the freshman team. Last year, my third, I was the head junior varsity coach. That progression has allowed me to grow as a coach, and, having mostly the same team two years in a row, allowed us to improve as a team. In fact, the team improved so much from freshman to JV that I am inspired to write this post.</p>

<p>My first year as a head coach was a bumpy one for everyone. I am the first to admit that I was not a good role model. As a player, I had the reputation of being passionate and aggressive. I believe that this gave me an edge as a player, but as a coach I came across as hot-headed and abusive to the refs. The young men on the team were understanding of my passion and I believe they saw most of my yelling as “having their back.” However, I know that it was unprofessional and I am sure that it was part of the reason why we didn’t have as many wins as we wanted.</p>

<p>Speaking of wins, we didn’t have many. The freshman team as whole — including me — had a lot to learn. Many of the young men on the team had never played organized basketball before that season. It was a struggle, but we were able to scrape out a 3-13 record. Two of those wins were in overtime where our best player hit game winning shots. I am proud to say that, except for one player in one game, every one of the 17 players played in every game. The players did an excellent job learning the game and the fundamentals and I am very proud of the season that we had.</p>

<p>As I said, the following season I was “promoted” to head JV coach. This was positive because it was technically a promotion, but also because I would be coaching the same players from the previous year. I knew that we had a rough season the year before, but I was encouraged by the progress we made and the three new players that were added to the team. The team worked hard in practice and it was soon obvious that they were able to do things on the court that they couldn’t begin to demonstrate the previous year. I should also add that one of the players that played games with us did not practice with us. In the AIA, players are allowed to play 6 total quarters at various levels per game night. There was one player on the varsity team that would not be getting much playing time at that level, so he played with the JV team to get more experience. It is a common practice, but it is difficult for teams because plays are not always the same at all three levels. We did the best we could to have as much overlap as possible, however, the JV team very rarely ran set plays on offense because of the differences.</p>

<p>I could not be prouder of the team for the progress they made and the things they were able to do on the court. We spent a lot of time practicing defense and defensive rotations. The young men were able to do things that I have never seen any other JV team do. For example when a defensive player gets beat off the dribble, it is the responsibility of the defenders on the opposite side of the court (called the help-side defenders) to get in front of the offensive player to slow down the player or to become the new defender. This is called rotating on defensive. It does happen that because of a quick offensive player or a pass, the defense must rotate several times in one possession. There were several instances where the JV team was able to rotate three times in succession and stop the offense from scoring. In fact, in one such game where the team was able to do this several times, they overcame a 9-point deficit in the fourth quarter to win the game. In another game, even the referees were impressed and made several comments to our bench during the game.</p>

<p>Wins and losses are not always a good measure of the progress of a team. For example, even though the freshman team the year before won just 3 games, they made great progress that obviously carried over to the next season. However, when comparing wins and losses across seasons with the same team and playing the same opponents (and even the same coach) can tell you a lot about how a team was able to improve. It is remarkable that after going 3-13 the JV team had a record of 15-3.</p>

<p>And I am proud to say that all 15 players played in all 18 games.</p>]]></content><author><name>Donnie</name></author><category term="basketball" /><category term="coaching" /><summary type="html"><![CDATA[I have had the pleasure of coaching basketball at St. Mary’s High School in Phoenix, AZ for the past three years. Being a part of a successful program has been a tremendously rewarding experience. My first year, I was a volunteer coach and helped with the varsity team. In my second year, I was the head coach of the freshman team. Last year, my third, I was the head junior varsity coach. That progression has allowed me to grow as a coach, and, having mostly the same team two years in a row, allowed us to improve as a team. In fact, the team improved so much from freshman to JV that I am inspired to write this post.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://thedadams.com/assets/images/social-card.svg" /><media:content medium="image" url="https://thedadams.com/assets/images/social-card.svg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">The Worst Week</title><link href="https://thedadams.com/blog/2020/06/21/The-Worst-Week" rel="alternate" type="text/html" title="The Worst Week" /><published>2020-06-21T00:00:00+00:00</published><updated>2020-06-21T00:00:00+00:00</updated><id>https://thedadams.com/blog/2020/06/21/The-Worst-Week</id><content type="html" xml:base="https://thedadams.com/blog/2020/06/21/The-Worst-Week"><![CDATA[<p>This year has not been good for a lot of people. We are going through a global coronavirus pandemic, the turbulent (but hopeful) breakdown of systemic racism, and record unemployment. However, before all of this hit the United States, I had a week that I would not wish on anyone. I feel very comfortable calling it the worst week of my life. I shared a tweet-storm of some of the details on Twitter, but I wanted to include more of the details here.</p>

<p>It started on Saturday, February 15th. My father needed some help at his place in Kingman, AZ so I drove up that morning to help him out. My grandmother called me during the three-and-a-half-hour drive to let me know that her companion, Gary, who had been battling colon cancer, was not doing well and would be going to hospice. She strongly suggested that I travel home to visit him before it was too late. Since Monday was a paid holiday for me (President’s Day), I decided to make the drive from Kingman to Northern California, visit Gary on Monday morning, and return to Tempe in time to make it to work on Tuesday. In total it was going to be about 22 hours of driving, but it was important to me and my grandmother that I see Gary before he passed. I arrived at a friend’s place around 9pm on Sunday night and made plans to meet my grandmother at the hospice facility on Monday at 9am.</p>

<p>It was great to see Gary. Although he was very sick, we were able to have a long conversation. I told him how much he meant to me and I felt that my decision to drive to see him was the correct one. At about noon, my grandmother and I decided to get lunch and afterward I would start my drive back to Tempe. We had sandwiches and an admittedly morbid conversation. The following day (Tuesday, February 18th) was her 77th birthday and I encouraged her to celebrate in some way. I told her I loved her, gave her a hug, and left for home around 1:30pm.</p>

<p>Here is where things get crazy. About one-third of my way home, just before Highway 99 and Interstate 5 merge before going over the Grapevine in Southern California, I received a phone call and my grandmother’s name popped up on my caller ID. When I answered the phone, I heard a woman crying and saying something I couldn’t really understand. I was a little confused because I wasn’t expecting Gary to pass so quickly. I responded with something like “I’m so sorry.” Immediately, the woman on the phone (who turned out to be my mother) yelled, “No!! It’s grandma!!” I realized that my mom was calling from my grandmother’s phone to tell me that my grandmother, with whom I had just had lunch, was dead.</p>

<p>My mom and grandmother made plans to go to the hospice facility to see Gary at around 5pm. My mom showed up to my grandmother’s house at about 4:15pm. When she arrived, she had a problem finding her mother. She called through the house for her, went to the backyard, and then eventually to her bedroom where she found her mother on the floor with her legs in the bathroom and head and torso in the bedroom. She called 911 from her cellphone and, very soon after, me from my grandmother’s cellphone.</p>

<p>I pulled off the highway and immediately started making the phone calls I needed to make in order for me to turn around and head back to my hometown. One of those phone calls was to Gary’s daughters who were with him. After I explained what had happened to them, they decided that they had to tell their father what was going on. He was a little out of it because of the medication, but he remembered that my grandmother was supposed to return to see him that evening. Since she hadn’t arrive, he was asking about her. I can’t imagine what it must have felt like to tell their dying father that the woman he had grown to love was not coming back to see him. I wish I could have been there to make it easier for them.</p>

<p>I made it back safely to my grandmother’s house at about 9:30pm where my mom, brother, aunt and uncle were waiting for me. We all knew that my grandmother had made arrangements for her passing, but there were some details that we didn’t have. We made plans to visit Gary the next day to get information about different aspects of my grandmother’s estate.</p>

<p>That next day, Tuesday, visiting Gary was the hardest day of the whole week. Not only was everyone on edge from the untimely passing of my grandmother, but we were going to talk to a man that was suffering through the end of his life to ask questions about his dead companion. He even delayed taking his morning pain medication so he was more alert and would have less trouble answering questions. I will never forget how his face changed when he saw us walk into his room: the hurt and anguish of someone who now felt that he had no reason to keep fighting the cancer that was killing him.</p>

<p>Skip ahead to Thursday: my mom and I were going to run some errands which included taking some items to the funeral home to be buried with my grandmother. On our way, in my car which I had to drive 600+ miles back to Tempe, we were rear-ended by someone eating their lunch in their work vehicle. Thankfully, my mom and I were OK and my car, although dented and smashed, was drivable. The young man was very apologetic and we exchanged information. I tried to explain that we weren’t mad at him for his mistake, but there was a compounding of circumstances that upset us. He understood and we were on our way.</p>

<p>Finally, on Sunday, just 6 days after my grandmother’s sudden passing, Gary died. He was surrounded by his daughters and their families and his final moments were peaceful.</p>

<p>The week started out very innocently: I was going to help my dad with some work at his place during a three-day weekend. I never would have guessed that it would have ended up as it did. Crazy things happen. I did questioned whether it was really necessary for me to make the 10 hour drive to Northern California to see Gary. Seeing him and talking to him made it worth it for me, but now I know that there were bigger reasons for me to make that trip. It turned out that I was the last person to see my grandmother alive, the last person to hug her, and the last person to tell her that I loved her. In addition, I got be with my family during the worst week imaginable.</p>]]></content><author><name>Donnie</name></author><category term="life" /><category term="death" /><summary type="html"><![CDATA[This year has not been good for a lot of people. We are going through a global coronavirus pandemic, the turbulent (but hopeful) breakdown of systemic racism, and record unemployment. However, before all of this hit the United States, I had a week that I would not wish on anyone. I feel very comfortable calling it the worst week of my life. I shared a tweet-storm of some of the details on Twitter, but I wanted to include more of the details here.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://thedadams.com/assets/images/social-card.svg" /><media:content medium="image" url="https://thedadams.com/assets/images/social-card.svg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Leaving St. Mary’s</title><link href="https://thedadams.com/blog/2020/03/23/Leaving-St.-Marys" rel="alternate" type="text/html" title="Leaving St. Mary’s" /><published>2020-03-23T00:00:00+00:00</published><updated>2020-03-23T00:00:00+00:00</updated><id>https://thedadams.com/blog/2020/03/23/Leaving-St.-Marys</id><content type="html" xml:base="https://thedadams.com/blog/2020/03/23/Leaving-St.-Marys"><![CDATA[<p>I previously wrote about a <a href="/blog/2017/03/30/Full-Time-Job/">full-time position</a> I accepted to teach math, physics, and computer programming at St. Mary’s High School in Phoenix. The decision process to accept the position was a very long and difficult one, but, in the end, it turned out to be the right one. I learned more from the kids at St. Mary’s than they learned from me. However, I ended up leaving my job at St. Mary’s to pursue a new career in software development.</p>

<p>When I first started telling people that I was leaving St. Mary’s, they’re first response was to ask me about the school where I was going to teach next. I don’t think I could teach at any other high school. I loved my time at St. Mary’s and, while there were issues I had with the school, I wouldn’t have left to teach somewhere else. The move I made was about pursuing a career in a field that I have wanted to work in for some time as well as doing what was in the best interest of my family. It was very difficult to leave St. Mary’s. Some of the students and faculty members in my House (SM has a <a href="https://en.wikipedia.org/wiki/House_system">House System</a>) threw me a surprise going-away party during which I was a mess. I’ve never cried in front of that many people before, but I was truly sad to be leaving the faculty and students that impacted me greatly. In the end, however, I knew that I was making the right decision.</p>

<p>I had a few different interviews after I decided to leave, but one stood out. There were the typical coding questions, but, at the end of the interview, the interviewer sat down with me and just had a conversation. We talked about all sorts of things including what the job would be like if it worked out, but there was much more to it than that. I left feeling confident about my performance and the position. The recruiter contacted me a few days later to say the interviewer felt the same way. I was called back to interview with the VP of Engineering and was later offered the position. They made the decision very easy for me and I accepted without countering. They took a chance on hiring a high school math teacher who liked to write software during his free time. I couldn’t be more grateful for the opportunity they gave me.</p>

<p>I’ve been a professional software developer for about 10 months now, building applications that people use all around the world (I know this because I get bugs from them all the time). I was introduced to a product that had given the company some issues in the recent past and was asked to make it better. I’m proud to say that I have done that, mostly independently. I’ve fixed bugs, implemented new features, transitioned the cloud component of the product to Docker and Kubernetes, and incorporated Prometheus metrics and Grafana visualization. It has been a tremendous learning experience and I am looking forward to the future of my new career.</p>]]></content><author><name>Donnie</name></author><category term="life" /><category term="work" /><category term="programming" /><category term="career" /><summary type="html"><![CDATA[I previously wrote about a full-time position I accepted to teach math, physics, and computer programming at St. Mary’s High School in Phoenix. The decision process to accept the position was a very long and difficult one, but, in the end, it turned out to be the right one. I learned more from the kids at St. Mary’s than they learned from me. However, I ended up leaving my job at St. Mary’s to pursue a new career in software development.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://thedadams.com/assets/images/social-card.svg" /><media:content medium="image" url="https://thedadams.com/assets/images/social-card.svg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">It’s Been Awhile</title><link href="https://thedadams.com/blog/2020/03/22/Its-Been-Awhile" rel="alternate" type="text/html" title="It’s Been Awhile" /><published>2020-03-22T00:00:00+00:00</published><updated>2020-03-22T00:00:00+00:00</updated><id>https://thedadams.com/blog/2020/03/22/Its-Been-Awhile</id><content type="html" xml:base="https://thedadams.com/blog/2020/03/22/Its-Been-Awhile"><![CDATA[<p>Wow, I can’t believe I haven’t written anything for this blog in nearly three years. A lot has happened in those three years – a lot I want to write about – but first I would like to just write a quick catch up.</p>

<p>The last post was just after my <a href="/blog/2017/05/13/Bobby-Lee-Roy-Frazier/">step-father died</a>. Before that, I wrote about <a href="/blog/2017/03/30/Full-Time-Job/">my new full-time job</a>. Life has certainly changed since then. We were still getting used to the fact that my step-father was gone when we had more unexpected death in the family (more on that in a later post), and I know longer teach high school math (again, another post later). I’ve also interviewed at Google again, but nothing came of that.</p>

<p>One thing I can update here without another post is our new living situation. My wife and I bought a house in 2016. Since then, interest rates continued to fall and we decided to take advantage of this and the equity we built up in our house. We found a bigger house in a nicer neighborhood. Selling a house while trying to buy another one is not a fun process, but it was well worth it. Although our commutes are harder, I like nearly everything else about the new house. We even had a house-warming where all of our neighbors came.</p>

<p>Now that I am working from home for the foreseeable future because of the coronavirus pandemic, I plan to make writing and creative activities a priority in hopes that it sticks when life gets back to (the new) normal. I look forward to writing about the things that matter most to me.</p>]]></content><author><name>Donnie</name></author><category term="life" /><summary type="html"><![CDATA[Wow, I can’t believe I haven’t written anything for this blog in nearly three years. A lot has happened in those three years – a lot I want to write about – but first I would like to just write a quick catch up.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://thedadams.com/assets/images/social-card.svg" /><media:content medium="image" url="https://thedadams.com/assets/images/social-card.svg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Password Managers</title><link href="https://thedadams.com/blog/2017/05/21/Password-Managers" rel="alternate" type="text/html" title="Password Managers" /><published>2017-05-21T00:00:00+00:00</published><updated>2017-05-21T00:00:00+00:00</updated><id>https://thedadams.com/blog/2017/05/21/Password-Managers</id><content type="html" xml:base="https://thedadams.com/blog/2017/05/21/Password-Managers"><![CDATA[<p>Password managers are a great tool for remembering your passwords and making sure they are random, long, and secure. Some password managers remind you to change your passwords every so often or when there has been a reported breach of a service. However, there is another extremely important reason to use one: leave your important information for your loved ones if the unexpected happens.</p>

<p>As I wrote <a href="/blog/2017/05/13/Bobby-Lee-Roy-Frazier/">previously</a>, my step-father passed away unexpectedly. He wasn’t the most tech-savvy person, but he did have a couple email accounts and a Twitter account. Most importantly, he had an iPhone with the “Find my iPhone” functionality enabled. In order to turn this functionality off, you need the AppleID and password for the owner of the phone. This is a great security feature that disallows a thief from erasing your phone and using it as their own. However, if you are the rightful owner (or someone has bequeathed a phone to you), you cannot disable “Find My iPhone” without the AppleID password or access to the person’s email address to reset the password.</p>

<p>This is where a password manager comes in. You can have all your passwords in one place, and you don’t have to remember any of them. They can be long and very random, but you only need to remember one password to access your entire password database. I currently use <a href="https://1password.com">1Password</a>, and it’s great. Every month, I ask my wife to tell me what my 1 password is, and I deliberately make it something that she can remember any time I change it. That way, if something unexpected happens to me, she can access all my accounts and information. Additionally, I keep an encrypted USB drive in my desk drawer with other files and information I think she made need if something were to ever happen to me. I include a readme file that explains what everything is and why she might need it. It’s just one less thing for her to worry about.</p>

<p>For the record, Apple and AT&amp;T deserve lots of credit for the way they handled things for my mom. After we explain the situation, Apple told us exactly what information we needed in order to prove that she owned the phone, AT&amp;T gave us that information quickly, and Apple removed the Activation Lock. It is comforting to know that companies will take care of their customers in times of hardship, but I would rather make it as easy as possible for them. Please use a password manager to make your life easier and safer, and help your loved ones in case of something tragic.</p>]]></content><author><name>Donnie</name></author><category term="tech" /><category term="death" /><category term="1password" /><summary type="html"><![CDATA[Password managers are a great tool for remembering your passwords and making sure they are random, long, and secure. Some password managers remind you to change your passwords every so often or when there has been a reported breach of a service. However, there is another extremely important reason to use one: leave your important information for your loved ones if the unexpected happens.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://thedadams.com/assets/images/social-card.svg" /><media:content medium="image" url="https://thedadams.com/assets/images/social-card.svg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Bobby Lee Roy Frazier</title><link href="https://thedadams.com/blog/2017/05/13/Bobby-Lee-Roy-Frazier" rel="alternate" type="text/html" title="Bobby Lee Roy Frazier" /><published>2017-05-13T00:00:00+00:00</published><updated>2017-05-13T00:00:00+00:00</updated><id>https://thedadams.com/blog/2017/05/13/Bobby-Lee-Roy-Frazier</id><content type="html" xml:base="https://thedadams.com/blog/2017/05/13/Bobby-Lee-Roy-Frazier"><![CDATA[<p>On April 24th, my step-father died unexpectedly from a heart attack. He had been dealing with a stomach bug and had gotten up in the middle of the night to use the bathroom (presumably to vomit). He collapsed on his way back to bed. My mother, who had been sleeping in a different room because she needed to sleep well before going to work, found him on the floor in the morning. This event was obviously very emotional, and I realized that we did not write a proper obituary or eulogy. Here is my attempt.</p>

<p>Bobby Lee Roy Frazier was born on July 7, 1962 and died on April 24, 2017. He is survived by his wife Joanie, sister Velda, brother David, daughter Tiffany, step-sons Josh, Donnie, and Christopher, and (step-)grandchildren Makyla, Justice, Reality, Blake, Lucas, and Elizabeth.</p>

<p>Bobby was very literally a simple man. He spent most of his life in an 18-wheeler, driving goods around the country. I believe he had been to all 48 continental states, most of his journeys behind the wheel of a semi-truck. He even drove some loads to Canada <del>and Mexico</del>. He loved being a truck driver and loved talking about all the places he’d been and things he’d seen. Even his final visit to me in Tempe was filled with stories about how he had delivered such-and-such item to such-and-such place back in such-and-such year. Whenever anyone would call him while he was working and asked what he was doing, his response was, “Drivin’ this truck.” The smile on his face was obvious from the tone of his voice.</p>

<p>When I first met Bobby he was skinny and had a huge afro. We met at church while he was trying to get his life on track. He struggled with substance abuse and wanted to be a better person and father. He turned to God. A few years later, after he had a new haircut and added a few more pounds, he asked my mom on a date. They were married on July 4, 2001 in a small ceremony with about ten people in attendance. This was not either of their first marriage, but everyone kind of new they would be together for the rest of their lives. We were all correct.</p>

<p>Bobby was a very generous and loving person. I think his personality could be summed up in the following two quotes, the first from my uncle and the second from my mom: “He always had a smile for everyone” and “He always had a hug for you, whether you wanted it or not.” He truly wanted everyone to be nice to each other and get along. I often hear stories about fathers and step-fathers having tense relationships. This was certainly not the case for Bobby and my dad. They were close friends and had a great relationship. In fact, many people told me that they were uncomfortable with how well they got along. I could only be thankful.</p>

<p>I cannot reflect on Bobby’s life without remembering that it had many ups and downs. I recall speaking with him during one of his lowest moments where he said, “There is a reason I’m here and I’m going to figure out what it is.” That is, even when things weren’t going right for him, he always looked for the good that was going to come out of it. He found the good in that low moment, and I couldn’t be prouder of him.</p>

<p>It is in this light that I reflect on Bobby’s life, rather the end of Bobby’s life. It came to such an abrupt and shocking end that I cannot help but to search for the good that will come from it. So far I have seen estranged family members speaking again and people getting their health issues in check. I’m sure it will be some time before we know exactly what good will come of this sudden tragedy, but I know Bobby would want us to find it.</p>]]></content><author><name>Donnie</name></author><category term="life" /><category term="death" /><category term="family" /><summary type="html"><![CDATA[On April 24th, my step-father died unexpectedly from a heart attack. He had been dealing with a stomach bug and had gotten up in the middle of the night to use the bathroom (presumably to vomit). He collapsed on his way back to bed. My mother, who had been sleeping in a different room because she needed to sleep well before going to work, found him on the floor in the morning. This event was obviously very emotional, and I realized that we did not write a proper obituary or eulogy. Here is my attempt.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://thedadams.com/assets/images/social-card.svg" /><media:content medium="image" url="https://thedadams.com/assets/images/social-card.svg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">ESPN Pre-Draft Rankings</title><link href="https://thedadams.com/blog/2017/03/31/ESPN-Pre-Draft-Rankings" rel="alternate" type="text/html" title="ESPN Pre-Draft Rankings" /><published>2017-03-31T00:00:00+00:00</published><updated>2017-03-31T00:00:00+00:00</updated><id>https://thedadams.com/blog/2017/03/31/ESPN-Pre-Draft-Rankings</id><content type="html" xml:base="https://thedadams.com/blog/2017/03/31/ESPN-Pre-Draft-Rankings"><![CDATA[<p>Fantasy sports are a great way to be involved in the sports we love. They give us an excuse to root for players that aren’t on our favorite team. They also give us the opportunity for competition and bragging rights.</p>

<p>I have been involved in an ESPN Fantasy Baseball league for about 13 years now. Unfortunately I won’t be available for the draft this year and will need to auto-draft my players. I didn’t want to manually rank every player on ESPN’s list, but I couldn’t find anyway to do it automatically. I think it would be nice if ESPN allowed a user to upload a .csv file to update the rankings all at once. Alas, they don’t allow one to do that so I had to come up with something else.</p>

<p>I keep rankings of all the players for the fantasy leagues in which I participate. Therefore, it was easy for me to output a list of names I could use in a script. After poking around ESPN’s page a little bit, I was able to hack the list and update the pre-draft rankings automatically. Since I spent some time with it, I would like to provide that for others to use, too. All you would have to do is replace “myList” with the order you would like to use in your rankings. I would also suggest updating your “Draft Strategy” to limit the number of players drafted for each position. Enjoy!</p>

<p><a href="https://gist.github.com/thedadams/f59ed6661178d18b24037a371b352ed2">Embedded gist</a></p>]]></content><author><name>Donnie</name></author><category term="sports" /><category term="fantasy" /><category term="programming" /><summary type="html"><![CDATA[Fantasy sports are a great way to be involved in the sports we love. They give us an excuse to root for players that aren’t on our favorite team. They also give us the opportunity for competition and bragging rights.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://thedadams.com/assets/images/social-card.svg" /><media:content medium="image" url="https://thedadams.com/assets/images/social-card.svg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Full-Time Job</title><link href="https://thedadams.com/blog/2017/03/30/Full-Time-Job" rel="alternate" type="text/html" title="Full-Time Job" /><published>2017-03-30T00:00:00+00:00</published><updated>2017-03-30T00:00:00+00:00</updated><id>https://thedadams.com/blog/2017/03/30/Full-Time-Job</id><content type="html" xml:base="https://thedadams.com/blog/2017/03/30/Full-Time-Job"><![CDATA[<p>I have been in school for 26 years continuously without more than a summer break. That has been my full-time job to this point. I have been interviewing at <a href="/blog/2017/03/03/My-First-Interview/">places like Google</a>, but I recently accepted a job offer that I never thought I would entertain.</p>

<p>It is very common that one teaches while they are in graduate school. In math, everyone teaches while they are in graduate school. When I started teaching, I didn’t enjoy it. I found it difficult to motivate myself when I felt that the students were not motivated. I complained about my students and put in minimal effort. When I told people I was studying math, they would often ask me if I wanted to be a teacher. My response was always, “Absolutely not!” However, I have had a mind-shift in the last couple years. I began to think that I might be teaching past my time in graduate school. If that was going to happen, then I needed to be more dedicated to teaching, to my students, and to understanding how people learn. Ultimately I found that a deep desire for student success and understanding goes a long way.</p>

<p>Beginning next school year I will be teaching math, physical sciences, computer programming, and possibly coaching basketball at a high school in Phoenix, Arizona. I will also be helping the school redesign its math and science curriculum to promote active and integrated learning. I never thought that my future would be in education, and I have never been more excited for something considered to be work.</p>

<p>It’s interesting how life comes together. I do believe in God, and I do believe that there is something bigger at work here. Can it really just be a coincidence that this opportunity came to me one week after Google told me they weren’t going to offer me a position? It might sound crazy, but I may have stumbled upon my calling.</p>]]></content><author><name>Donnie</name></author><category term="life" /><category term="work" /><category term="education" /><category term="teaching" /><summary type="html"><![CDATA[I have been in school for 26 years continuously without more than a summer break. That has been my full-time job to this point. I have been interviewing at places like Google, but I recently accepted a job offer that I never thought I would entertain.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://thedadams.com/assets/images/social-card.svg" /><media:content medium="image" url="https://thedadams.com/assets/images/social-card.svg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Being a Night Owl</title><link href="https://thedadams.com/blog/2017/03/05/Being-a-Night-Owl" rel="alternate" type="text/html" title="Being a Night Owl" /><published>2017-03-05T00:00:00+00:00</published><updated>2017-03-05T00:00:00+00:00</updated><id>https://thedadams.com/blog/2017/03/05/Being-a-Night-Owl</id><content type="html" xml:base="https://thedadams.com/blog/2017/03/05/Being-a-Night-Owl"><![CDATA[<p>I’ve heard that people who wake up early are happier, healthier, and more productive. I wanted to be more productive so I decided that I would get up early. I thought I would have more time to get things done, but I could never make it stick. I would get up at 6am for a while, but one morning I would silence my alarm, fall back asleep, and wake up two or three hours later. I was also spending 8-10 hours sleeping each night. I knew that I didn’t need that much sleep, but I couldn’t figure out why my body felt it needed it. Finally, after failing for years, I flipped it on its head. And it worked.</p>

<p>Some people just aren’t morning people. It didn’t matter how much I wanted to be one. I always found myself sleeping too much and feeling bad that I wasn’t being as productive as I wanted. A few weeks ago, after returning from a trip to California, I had some catching up to do. I knew it would be a late night, but that was fine because I didn’t have anything to do the next morning. I stayed up until 5am and got everything done. I woke up at 10:30am feeling rested and ready to go. It was incredible that I felt better after 5.5 hours of sleep than I did when I would get 9.5 hours. Not only that, but I got a lot done in the seven hours between when my wife went to bed and when I went to bed. It dawned on me: I am a night owl and I should embrace that.</p>

<p>For the past several weeks I have fully committed to the night owl lifestyle. I go to bed between 2am and 4am, get between 6.5 and 8 hours of sleep (waking up on my own), and I have several hours of uninterrupted work time at night. I also feel happier and healthier than I have in a long time. I have even lost 4 pounds without changing any other part of my lifestyle. It did take some time to get used to not having a lot done before lunchtime, but I would remind myself that my intense working time had shifted to the late-night hours.</p>

<p>Working late at night is not for everyone, but neither is waking up early in the morning. I think employees and employers can benefit from being flexible about working hours. Forcing someone to work outside of their natural rhythms now seems counterproductive. I believe that a person can be an early-riser or a night-owl just as much as they can be analytical or creative (I’m definitely analytical). Figuring out which category you fall in can literally be the difference between happy and miserable or success and failure. I wouldn’t replace Jony Ive with a mathematician and expect great results.</p>]]></content><author><name>Donnie</name></author><category term="sleep" /><category term="productivity" /><category term="life" /><summary type="html"><![CDATA[I’ve heard that people who wake up early are happier, healthier, and more productive. I wanted to be more productive so I decided that I would get up early. I thought I would have more time to get things done, but I could never make it stick. I would get up at 6am for a while, but one morning I would silence my alarm, fall back asleep, and wake up two or three hours later. I was also spending 8-10 hours sleeping each night. I knew that I didn’t need that much sleep, but I couldn’t figure out why my body felt it needed it. Finally, after failing for years, I flipped it on its head. And it worked.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://thedadams.com/assets/images/social-card.svg" /><media:content medium="image" url="https://thedadams.com/assets/images/social-card.svg" xmlns:media="http://search.yahoo.com/mrss/" /></entry></feed>