Unnecessary https://unnecessary.tech/ Recent content on Unnecessary Hugo en-us Sun, 21 Sep 2025 09:55:03 -0400 Why is Time so Complicated? https://unnecessary.tech/posts/tzif/ Sun, 21 Sep 2025 09:55:03 -0400 https://unnecessary.tech/posts/tzif/ <p>I have been building a <a href="https://hexdocs.pm/tzif/index.html">time zone database library</a> which uses the <a href="https://www.iana.org/time-zones">IANA Time Zone Database</a> for the <a href="https://gleam.run">gleam programming language</a>. When you start working with programming and time zones you realize that time is strangely complicated for computers. What seems simple to us—hours, days, years—is built on a foundation of physics, astronomical quirks, and human convention that creates enormous complexity. This post is a little context for a new time zone library I&rsquo;m creating.</p> We Are Not Machines https://unnecessary.tech/posts/we-are-not-machines/ Sun, 14 Sep 2025 19:34:36 -0400 https://unnecessary.tech/posts/we-are-not-machines/ <p>From determining who gets a job interview to who receives critical healthcare, opaque computational algorithms are increasingly making life-altering decisions about us, not with us. The dispassionate logic of code is replacing human judgment, and it is incumbent upon us to ensure that compassion and empathy remain at the heart of our systems, especially when human lives are at stake. Computers should make our lives better, not reduce us to cogs trapped in a machine of our own making.</p> MCP Server Programming: Inspector https://unnecessary.tech/posts/mcp-inspector/ Mon, 11 Aug 2025 13:57:34 -0400 https://unnecessary.tech/posts/mcp-inspector/ <p>In <a href="https://unnecessary.tech/posts/unnecessary-ai/">yesterday&rsquo;s post</a> I wrote about how I thought Model Context Protocol (MCP) was one of the most interesting aspects of the current AI hype. I&rsquo;m going to start writing about an MCP server that I am building, but before I start that I thought I would talk about a tool which is a great help in building and testing MCP servers, and that tool is <a href="https://github.com/modelcontextprotocol/inspector">MCP Inspector</a>.</p> <img class="responsive" src="https://unnecessary.tech/img/mcp-inspector.png" alt="An image of the user interface for the MCP Inspector tool." /> <p>MCP Inspector will act as a client for your MCP server, similar to Postman or the Swagger UI, the MCP Inspector lets you connect to your MCP server, examing and validate it&rsquo;s output, and use the various tools the server exposes. For MCP servers that run as subprocesses listening over stdin, MCP Inspector will even run the subprocess for you.</p> Unnecessary AI? https://unnecessary.tech/posts/unnecessary-ai/ Sun, 10 Aug 2025 11:22:36 -0400 https://unnecessary.tech/posts/unnecessary-ai/ <p>In an <a href="https://unnecessary.tech/posts/no-language-model/">earlier post</a> I wrote a little about Markov chains and large language models. Since that time, large language model chatbots, and generative AI more generally, have seen a <a href="https://www.reuters.com/technology/artificial-intelligencer-cloud-wars-20-2025-08-07/">growth in investment</a> as well as support from the <a href="https://www.federalregister.gov/documents/2025/07/28/2025-14218/promoting-the-export-of-the-american-ai-technology-stack">U.S.</a> <a href="https://www.federalregister.gov/documents/2025/07/28/2025-14212/accelerating-federal-permitting-of-data-center-infrastructure">federal</a> <a href="https://www.federalregister.gov/documents/2025/01/31/2025-02172/removing-barriers-to-american-leadership-in-artificial-intelligence">government</a> (as long as it is not &ldquo;<a href="https://www.federalregister.gov/documents/2025/07/28/2025-14217/preventing-woke-ai-in-the-federal-government">woke</a><sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>&rdquo;). Working as a federal contractor in IT infrastructure monitoring and management has also meant adapting to this new landscape of AI first solutions development.</p> <h2 id="the-good">The Good</h2> <p>I am a huge fan of <a href="https://en.wikipedia.org/wiki/Star_Trek:_The_Next_Generation">Star Trek: The Next Generation</a>, and I have always wanted to be able to talk to the computer in plain english and have it understand what I wanted it to do. I thought we were getting closer with devices like Alexa and Siri, but these have had limited usefulness as they cannot understand anything beyond basic commands like &ldquo;What is the weather today?&rdquo; or &ldquo;Set a timer for 10 minutes.&rdquo; Large language models are changing this and letting computers <em>respond</em> to more complex input, but the devil is in the details, as we shall see. Large language models on their own can provide a probabalistically generated response which simulates human communication. For example asking the question &ldquo;How are you?&rdquo; can elicit a response such as &ldquo;I am fine.&rdquo; which is a highly likely response that a human would provide. The model itself does not feel anything, and is just constructing a response by selecting options from a large volume of input, fine tuning, instructions provided during the model&rsquo;s construction, and in a preamble provided when the model is run. This preamble is part of the <em>context</em> which includes the instructions provided by the model creators, the instructions provided by the user, and the conversation between the user and model.</p> Advent of Code: Summary https://unnecessary.tech/posts/aoc2024-final/ Thu, 02 Jan 2025 16:57:17 -0500 https://unnecessary.tech/posts/aoc2024-final/ <p>As usual the holidays really started to take off and I didn&rsquo;t take time to work on updates. The upshot is I did finish Advent of Code 2024, but I didn&rsquo;t finish Day 24 until the new year. However, before we get to that, let&rsquo;s talk about some of the more interesting problems.</p> <h2 id="day-14-picture-of-a-christmas-tree">Day 14: Picture of a Christmas Tree?</h2> <p>Part 1 of day 14 was pretty straightforward. Essentially we follow the location of a number of robots with initial positions and velocities over a number of time steps, however part 2 threw in a significant wrinkle. Find the timestep when the robots form a picture of a Chritmas tree. Since we have no sample of what this should look like, it is tricky. I figured the image might have fairly sharp vertical and horizontal boundaries, so I decided to look for timesteps where the robots formed vertical and horizontal structures what were not randomly distributed. To do this I used an edge detector which scans 4 rows or columns at a time and then compares the number of robots in the two rows or columns on one side with the two columns on the other. Generally, if the robots are randomly distributed this should be a small number, however if there are vertical or horizontal structures there would be a few regions with very high numbers.</p> Advent of Code 2024 - Day 11 https://unnecessary.tech/posts/aoc-2024-day11/ Thu, 12 Dec 2024 10:35:14 -0500 https://unnecessary.tech/posts/aoc-2024-day11/ <p><a href="https://adventofcode.com/2024/day/6">Advent of Code day 11</a> was an example of a problem which gets exponentially harder as you do more iterations. Essentially there are a series of elements and functions are performed on those elements based on their state, including creating more elements. A similar problem was the <a href="https://adventofcode.com/2021/day/6">Lanternfish problem of 2021</a>. In this case 25 iterations were fairly trivial giving the solution to part 1, but part 2 asked for 75 iterations. By iteration 35 my computer was slowing to a crawl.</p> Advent of Code 2024 - Day 6 https://unnecessary.tech/posts/aoc-2024-day6/ Fri, 06 Dec 2024 10:35:14 -0500 https://unnecessary.tech/posts/aoc-2024-day6/ <p>I thought <a href="https://adventofcode.com/2024/day/6">Day 6 of Advent of Code</a> was a pretty interesting problem. The first part was relatively straightforward. You are given a grid containing empty space an obstructions and the location of a guard who start facing north. The guard moved forward until hitting an obstruction and then will always turn right and continue on his path. Eventually the guard moves off the grid. The <a href="https://github.com/devries/advent_of_code_2024/blob/main/src/day06/solution.gleam">code I wrote is on github</a>. To maintain the guard&rsquo;s current state I used a type with position and direction. I also defined a type to use if the guard&rsquo;s walk was interrupted either by an obstruction, <code>Collision</code>, or going off the grid, <code>OffMap</code>.</p> Advent of Code 2024 - Day 4 https://unnecessary.tech/posts/aoc-2024-day4/ Wed, 04 Dec 2024 13:36:09 -0500 https://unnecessary.tech/posts/aoc-2024-day4/ <p>The last few days of <a href="https://adventofcode.com">Advent of Code</a> have been fairly straightforward and I have not really used any new language features of <a href="https://gleam.run">Gleam</a>. I do feel like I am better at spotting where the <code>list.fold</code> function is useful, but on day 4 there was a great opportunity to make use of the <code>use</code> funcitonality. Before jumping in with my explanation, <a href="https://bsky.app/profile/ihh.dev">Isaac Harris-Holt</a> made a video about <code>use</code> in Gleam which is very good, so I encourage you to watch that first before I describe how I used in on day 4.</p> Advent of Code 2024 - Day1 https://unnecessary.tech/posts/aoc-2024-day1/ Sun, 01 Dec 2024 14:42:39 -0500 https://unnecessary.tech/posts/aoc-2024-day1/ <p>It&rsquo;s time once again for <a href="https://adventofcode.com/">Advent of Code</a>. This time I am trying to use it as an opportunity to get better writing <a href="https://gleam.run">Gleam</a>.</p> <p><a href="https://adventofcode.com/2024/day/1">Today&rsquo;s problem</a> involved taking two lists of integers, presented in an input file with one entry from each list separated by three spaces on each line of input, and manipulating these lists to answer a few questions. The first question required we sort the lists and then find the absolute value of the difference between the elements of each list in sorted order. The second part require that we count up the number of occurances of each element from the first list in the second list and sum up the multiple of the value from the first list with the number of occurances in the second list.</p> Whispers in the Dark: Gleam Edition https://unnecessary.tech/posts/whispers/ Wed, 20 Nov 2024 10:27:54 -0500 https://unnecessary.tech/posts/whispers/ I used Bluesky&rsquo;s Jetstream and gleam to resurrect and old project I made for twitter. Bluesky https://unnecessary.tech/posts/bluesky/ Wed, 13 Nov 2024 10:21:26 -0500 https://unnecessary.tech/posts/bluesky/ <p>It looks like <a href="https://bsky.app/">Bluesky</a> is moving ahead with its promise to allow <a href="https://atproto.com/guides/self-hosting">self-hosting</a>. It&rsquo;s not ActivityPub, but it seems like the place that&rsquo;s easy enough for anyone to use while it is possible to avoid lock-in to some extent. I look forward to seeing what people will do with this.</p> <p>In many ways <a href="https://bsky.app/">Bluesky</a> reminds me of the twitter of 2009. It is relatively easy to set up a bot and I have done so for my <a href="https://bsky.app/profile/auroraalert.bsky.social">aurora alerts</a> system that sends me a text alert when the aurora borealis is imminent. It&rsquo;s fun to work with this, and I may bring back <em>Whispers in the Dark</em> which I ran when twitter was young.</p> NotebookLM https://unnecessary.tech/posts/notebooklm/ Thu, 31 Oct 2024 14:14:28 -0400 https://unnecessary.tech/posts/notebooklm/ <p>I am no fan of the current generative AI frenzy. It has <a href="https://huggingface.co/blog/sasha/ai-environment-primer">serious environmental consequences</a>, and realistically is nowhere near the AGI they hint to be close to. It does however sometimes produce amusing result, for example <a href="https://unnecessary.tech/img/chris-devries.mp3">this AI generated podcast about me</a>.</p> <audio controls> <source src="https://unnecessary.tech/img/chris-devries.mp3"/> </audio> No Language Model https://unnecessary.tech/posts/no-language-model/ Fri, 07 Jul 2023 09:49:52 -0400 https://unnecessary.tech/posts/no-language-model/ <p>The latest tech fad appears to be generative AI and ChatGPT in particular. As with many technologies, this fad has spawned a lot of concern. Some of these <a href="https://mashable.com/article/chatgpt-ai-racism-bias">concerns are justified</a>, while some <a href="https://www.npr.org/2023/03/29/1166896809/tech-leaders-urge-a-pause-in-the-out-of-control-artificial-intelligence-race">are hyperbolic</a>. Unfortunately most people have a very limited understanding of the technology involved, and that leads to fear, panic, and <a href="https://www.bbc.com/news/world-us-canada-65735769">misuse</a>. The press, which should provide unbiased information is instead <a href="https://www.cnn.com/2023/06/14/business/artificial-intelligence-ceos-warning/index.html">amplifying panic</a>, making rational discussion of the technology difficult.</p> <div class="responsive"> <a href="https://xkcd.com/1838/"> <img src="https://imgs.xkcd.com/comics/machine_learning.png" alt="Comic with two people, one is on a pile of data, and the other addresses him: &#39;This is Your machine learning system?&#39; The other replies, &#39;Yup! You pour the data into this big pile of linear algebra, then collect the answers on the other side.&#39; &#39;What if the answers are wrong?&#39; asks the first person. &#39;Just Stir the pule until they start looking right.&#39; Courtesy xkcd.com" width="400px" height="474px" /> </a> </div> <p>When I first used ChatGPT it reminded me of a much simpler algorithm developed over 100 years ago, <a href="https://en.wikipedia.org/wiki/Markov_chain">Markov chains</a>. A Markov chain is a stochastic way of building a sequence of items using existing sequences. The next element in a sequence is chosen by looking at the last N members of that sequence. We then look for that same N sequence pattern in the existing sequences and randomly choose one. We then add the next item from that existing sequence to the sequence we are generating. To generate text we can create a sequence of characters and pick a group of source texts as our existing sequences. The surprising thing about this algorithm is it produces text that looks similar to the input texts, producing actual words, mimicking punctuation, and at first glance looking fairly passable.</p> Deploying on Fly.io https://unnecessary.tech/posts/flyio/ Tue, 17 Jan 2023 13:06:44 -0500 https://unnecessary.tech/posts/flyio/ <p>A while ago I deployed this blog to <a href="https://fly.io/">Fly.io</a> as a small exercise to gain some experience with the platform, but this is just a static blog that can be deployed on any static hosting site. In order to learn more, I decided to deploy a small project, <a href="https://unnecessary.tech/posts/post-news-rss-generator/">PostNewsRSS</a>, to <a href="https://fly.io/">Fly.io</a> to get a better idea of how well it performs and how easy it is to use.</p> <h2 id="what-is-flyio-and-what-does-it-cost">What is Fly.io and what does it cost?</h2> <p><a href="https://fly.io/">Fly.io</a> is a PaaS service with servers in 26 locations around the world. Their service is based in building and deploying a docker container, but rather that deploy it as a container in a host operating system, they deploy each container as a separate <a href="https://firecracker-microvm.github.io/">firecracker microVM</a>. This creates additional isolation between adjacent services as no two deployed apps use the same kernel. <a href="https://fly.io/">Fly</a> also deploys their own hardware to datacenters, which allows them to potentially charge cheaper compute, storage, and bandwidth rates than they could if they also relied on cloud services such as <a href="https://aws.amazon.com/">AWS</a>, <a href="https://cloud.google.com/">GCP</a>, or <a href="https://azure.microsoft.com/">Azure</a>. Compute does seem to be fairly competitively priced with a single shared CPU with 1 Gigabyte of RAM costing $5.70 a month on <a href="https://fly.io/">Fly</a>. Similar VMs at GCP would run around $6.03 for <a href="https://cloud.google.com/">GCP</a> (e2-micro VM), and $6.05 on <a href="https://aws.amazon.com/">AWS</a> (t4g.micro). Dedicated compute at <a href="https://fly.io/">Fly</a> is a much higher price with a 2 CPU with 4 Gigabytes of RAM solution running $62 a month versus $24.12 for <a href="https://cloud.google.com/">GCP</a> (e2-medium) and $24.19 on <a href="https://aws.amazon.com/">AWS</a> (t4g.medium).</p> Post.news Rss Generator https://unnecessary.tech/posts/post-news-rss-generator/ Mon, 09 Jan 2023 11:05:59 -0500 https://unnecessary.tech/posts/post-news-rss-generator/ <p>As <a href="https://twitter.com">twitter</a> continues its tumultuous path under Musk&rsquo;s leadership, many people have been moving to federated social networks such as <a href="https://joinmastodon.org/">mastodon</a> or other ActivityPub federated sites. Like the web itself, this allows users on different servers to interact and is a system which no one person owns. I think this is a great development, and I am hoping this brings about a renaissance in <a href="https://unnecessary.tech/posts/what_happened/">non-corporate</a> internet servers (or the <a href="https://small-tech.org/research-and-development/">small web</a> as <a href="https://ar.al/">Aral Balkan</a> calls it).</p> Fading LED Chain https://unnecessary.tech/posts/fading_led_chain/ Sun, 22 Nov 2020 14:03:59 -0500 https://unnecessary.tech/posts/fading_led_chain/ <p>I am working on an analog electronics project. I&rsquo;m posting my progress on youtube.</p> <div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"> <iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/lM3D13wCcMQ?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"></iframe> </div> COVID Data https://unnecessary.tech/posts/covid-data/ Wed, 05 Aug 2020 08:45:42 -0400 https://unnecessary.tech/posts/covid-data/ <p>I&rsquo;ve been obsessively checking the <a href="https://www.washingtonpost.com/graphics/2020/national/coronavirus-us-cases-deaths/?hpid=hp_no-name_hp-in-the-news%3Apage%2Fin-the-news&amp;itid=hp_no-name_hp-in-the-news%3Apage%2Fin-the-news">Washington Post Coronavirus Map</a> to see how my state is doing, and to try to evaluate when it would be safe for the kids to return to school. I wanted to be able to use the raw data, and then I found <a href="https://covidtracking.com/">The COVID Tracking Project</a>. The COVID Tracking Project offers an API to query COVID data, both nationally and on a state by state basis. They also offer a raw download of the entire dataset.</p> Why I Created an OpenFaaS template for COBOL https://unnecessary.tech/posts/openfaas-cobol/ Mon, 27 Apr 2020 09:01:40 -0400 https://unnecessary.tech/posts/openfaas-cobol/ <p>In early April a <a href="https://www.cnn.com/2020/04/08/business/coronavirus-cobol-programmers-new-jersey-trnd/index.html">couple</a> <a href="https://www.npr.org/2020/04/22/841682627/cobol-cowboys-aim-to-rescue-sluggish-state-unemployment-systems">of</a> <a href="https://arstechnica.com/tech-policy/2020/04/ibm-scrambles-to-find-or-train-more-cobol-programmers-to-help-states/">articles</a> were published stressing the need for COBOL programmers to once again come forward to use their skills to get us through a crisis of aging infrastructure. This wasn&rsquo;t the <a href="https://archive.nytimes.com/www.nytimes.com/library/tech/98/12/biztech/articles/27millennium.html?RefId=PjxYEutt2uFFwKZO">first time</a> their expertise was required. Even back in 1998, COBOL was described as</p> <blockquote> <p>&ldquo;&hellip; a computer language that runs many of the United States&rsquo; mainframe computers but is so old that relatively few American programmers know it.&rdquo;</p> What Happened to Cyberspace? https://unnecessary.tech/posts/what_happened/ Sat, 24 Aug 2019 09:45:12 -0400 https://unnecessary.tech/posts/what_happened/ <p>It used to annoy me when people talked about going online as something separate from the &ldquo;real world.&rdquo; I always thought of the Internet as part of the real world, and as a college student in the early 90s and a graduate student in the late 90s, the Internet was a tool I used on a daily basis.</p> <p>I hadn&rsquo;t thought too much about the Internet of my youth until I saw the documentary <em>Warren Ellis: Captured Ghosts</em> a few nights ago. It reminded me of a time when I used to frequent Ellis&rsquo;s <em>Die Puny Humans</em> website, and <a href="https://slashdot.org/">slashdot</a>. <em>Die Puny Humans</em> is gone, though snapshots are still available on the <a href="http://web.archive.org/web/*/diepunyhumans.com">wayback machine</a>. <a href="https://slashdot.org/">Slashdot</a> is still around, but it seems to be a shadow of its former self. These days, there are several replacements for these cultural aggregation sites. Places like <a href="https://boingboing.net/">BoingBoing</a>, <a href="https://www.fark.com/">Fark</a>, <a href="http://digg.com/">Digg</a>, and <a href="https://www.reddit.com/">reddit</a>. These sites seem to offer similar services, aggregations, often by users, of cultural material for wider dissemination and discussion, but the results seem somewhat muted compared to the posts of 20 or even 10 years ago. The wonder of discovery replaced by a more cynical attempt to be the first to point to the latest dumpster fire. Part of it may be that the destinations are always the same. Links go to <a href="https://www.facebook.com/">Facebook</a>, <a href="https://twitter.com/">Twitter</a>, major news sites, <a href="https://medium.com/">Medium</a> and few other major websites. The personal blogs and small companies so often brought down by <em>slashdotting</em> are now very rare.</p> Projects https://unnecessary.tech/pages/projects/ Tue, 20 Aug 2019 15:50:24 -0400 https://unnecessary.tech/pages/projects/ <ul> <li><a href="https://whispers.unnecessary.tech">Whispers in the Dark 2</a>: A real-time look at the gestalt of the internet as seen through posts on the <a href="https://bsky.app">Bluesky</a> social network.</li> <li><a href="https://shows.unnecessary.tech/">Series Schedules - No Bullshit</a>: The internet sucks, and it&rsquo;s hard for me to check when a series I am interested in is starting, so I made this page which has the dates when shows I am interested in watching are coming to streaming services.</li> <li><a href="https://nlm.unnecessary.tech">No Language Model</a>: A predictive algorithm which writes articles about ChatGPT and AI using Markov chains. <a href="https://github.com/devries/nlm">Code on github</a></li> <li><a href="https://idolstarastronomer.com/pages/total-control-lighting.html">Total Control Lighting Library</a>: An Arduino library for three-color programmable LEDs sold by <a href="http://www.coolneon.com/">Cool Neon</a>. These are durable and easy to use LEDs which include a separate clock input to make them very flexible to operate. I&rsquo;ve also built a <a href="https://idolstarastronomer.com/total-control-lighting-for-embedded-linux-platforms.html">linux library</a> suitable for the Raspberry Pi and Beaglebone platforms.</li> <li><a href="https://faas.unnecessary.tech/">Fucks as a Service</a>: FaaS is a new cloud paradigm. Easily obtain all the Fucks you need in JSON or XML using this RESTful service.</li> <li><a href="https://gleam.unnecessary.tech/">In this shared space</a>: Quotes that update every 30 seconds. That&rsquo;s it.</li> <li><a href="https://hub.docker.com/r/devries/infall">Asymmetric Infall Model</a>: Described in <a href="https://ui.adsabs.harvard.edu/abs/2005ApJ...620..800D/abstract">De Vries &amp; Myers (2005)</a> this model is now available as a <a href="https://docker.com">docker</a> container. This can make it much easier to use without having to worry about downloading appropriate versions of the GSL or CFITSIO libraries.</li> <li><a href="https://github.com/devries/blinky-tetris">Blinky Tetris</a>: A Tetris game played on a wall of 1,250 Total Control Lighting LEDs.</li> </ul> <h2 id="project-graveyard">Project Graveyard</h2> <ul> <li>[Retired] postnewsrss: An RSS generator for <a href="https://post.news">post.news</a> user pages.</li> <li>[Retired] COVID Datasette: Explore U.S. COVID data using SQL.</li> <li>[Retired] Dad Joke Server: A dad needs dad jokes, and this is where I keep mine. Feel free to add to the dadabase.</li> <li>[Retired] Martian on the Loose: Win prizes from <a href="https://twitter.com/Casanvar/">Cas Anvar</a> and <a href="https://www.patreon.com/Adrois">Bora Kutlu</a>.</li> </ul> The Go Language https://unnecessary.tech/posts/golang/ Mon, 01 Jul 2019 11:00:51 -0400 https://unnecessary.tech/posts/golang/ <p>When I was younger I would focus on a program for all day and into the evening. I would go to sleep thinking about a program, and I would wake up and jump right back into that program. During that time I kept a lot of the state of my program in my head, and I could write some very clever code. I moved through from primarily using C and thinking a lot about memory allocation to Java where I thought a lot about how my classes interacted, and eventually programmed primarily in python where I was able to rapidly create terse programs, however recently I have been experiencing a few issues in my programming productivity.</p> Martian on the Loose: A Quick Cloud Run Site https://unnecessary.tech/posts/quick_run_site/ Thu, 25 Apr 2019 00:00:00 +0000 https://unnecessary.tech/posts/quick_run_site/ <p>In my <a href="https://unnecessary.tech/posts/cloud_run/">previous post</a> I discussed <a href="https://cloud.google.com/run/">Google Cloud Run</a> as a docker-based PaaS. An opportunity arose to put together a quick website to help people play the <a href="https://martian.unnecessary.tech">Martian on the Loose</a> scavenger hunt game which is currently running to promote <a href="https://twitter.com/ExpanseOnPrime">The Expanse</a> television series. The game is managed entirely on twitter by the actor <a href="https://twitter.com/Casanvar">Cas Anvar</a> who plays one of the main characters in the series, and was instrumental in rallying fans to save the show when SyFy canceled it, ultimately leading Amazon to produce the show&rsquo;s upcoming 4th season.</p> Cloud Run: The Future of PaaS https://unnecessary.tech/posts/cloud_run/ Sun, 21 Apr 2019 00:00:00 +0000 https://unnecessary.tech/posts/cloud_run/ <p>One of the major announcements at Google Cloud Next this year was <a href="https://cloud.google.com/run/">Cloud Run</a>, which Google describes as &ldquo;containers meet serverless.&rdquo; Although that&rsquo;s a great combination of two current buzzwords, in terms of functionality it may be more accurate to think of Cloud Run as a modern PaaS service. In contrast to classic PaaS, popularized by platforms like <a href="https://www.heroku.com/">Heroku</a>, Cloud Run offers the following advantages:</p> Hello (Again) World! https://unnecessary.tech/posts/hello/ Sat, 06 Apr 2019 12:26:19 -0400 https://unnecessary.tech/posts/hello/ <p>In 2011, as I started programming more and becoming increasingly frustrated with academia, I started a blog called <a href="https://idolstarastronomer.com/">Idol Star Astronomer</a>. It chronicles budget cuts, LED projects, my departure from academia, and a lot of opinions about programming, docker, and the cloud. As time went on, I found myself writing less and less. Eventually I thought about redesigning the site and writing shorter pieces, but I was lazy and working with a very demanding startup, so my website just languished.</p> About https://unnecessary.tech/pages/about/ Sat, 06 Apr 2019 12:01:39 -0400 https://unnecessary.tech/pages/about/ <img style="float:left; margin-right:20px; margin-bottom:20px;" src="https://unnecessary.tech/img/me-edit.jpg" alt="Christopher De Vries"/> <p>I&rsquo;m Christopher De Vries. I once was an astronomer, and <a href="https://unnecessary.tech/pdf/my_thesis.pdf">wrote my doctoral dissertation</a> on star formation at the <a href="http://www.umass.edu/">University of Massachusetts, Amherst</a>. I went on to do postdoctoral work at the <a href="http://www.cfa.harvard.edu/">Harvard-Smithsonian Center for Astrophysics</a> and went on to become a tenured professor at <a href="https://www.csustan.edu/">California State University Stanislaus</a> before giving it all up to become a reclusive hermit&hellip; I mean programmer.</p> <p>I&rsquo;ve also helped characterize the debris in low Earth orbit at <a href="https://www.nasa.gov/centers/glenn/home/index.html">NASA Lewis (now Glenn) Research Center</a>, I&rsquo;ve written iPhone and iPad apps for <a href="https://t2000inc.com/">Tech 2000</a>, pushed back the frontiers of human and machine knowledge for <a href="https://hindsait.com/">Hindsait</a>, and now I keep the internet running with my team at <a href="https://www.secunetics.com/">Secunetics</a>.</p>