<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Posts on BRYSGO</title><link>https://www.brysgo.com/post/</link><description>Recent content in Posts on BRYSGO</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Fri, 10 Apr 2026 12:00:00 +0000</lastBuildDate><atom:link href="https://www.brysgo.com/post/index.xml" rel="self" type="application/rss+xml"/><item><title>We Trained the World's Best Advisor to Never Disagree With Us</title><link>https://www.brysgo.com/post/2026-04-10-we-trained-the-world-s-best-advisor-to-never-disagree-with-us/</link><pubDate>Fri, 10 Apr 2026 12:00:00 +0000</pubDate><guid>https://www.brysgo.com/post/2026-04-10-we-trained-the-world-s-best-advisor-to-never-disagree-with-us/</guid><description>&lt;p&gt;Every time you gave an AI a thumbs-up for validating your decision, you were casting a vote to make it less honest with the next person.&lt;/p&gt;
&lt;p&gt;That&amp;rsquo;s not a metaphor. That&amp;rsquo;s roughly how reinforcement learning from human feedback works. You rate the response, the model updates toward responses that get ratings like yours, and the behavior compounds across millions of interactions. We didn&amp;rsquo;t get deceived by our AI advisors. We built the deception in ourselves, one positive rating at a time.&lt;/p&gt;</description></item><item><title>The Hack Is Never About the Hardware</title><link>https://www.brysgo.com/post/2026-04-06-the-hack-is-never-about-the-hardware/</link><pubDate>Mon, 06 Apr 2026 12:00:00 +0000</pubDate><guid>https://www.brysgo.com/post/2026-04-06-the-hack-is-never-about-the-hardware/</guid><description>&lt;p&gt;A guy on the internet turned his MacBook into a touchscreen using a $1 infrared sensor, some tape, and a weekend. The comments, predictably, exploded. People called it genius. People called it cursed. A few people asked why Apple doesn&amp;rsquo;t just do this. That last question is the interesting one — and the answer has nothing to do with hardware.&lt;/p&gt;
&lt;h2 id="the-dollar-part-isnt-the-story"&gt;The Dollar Part Isn&amp;rsquo;t the Story&lt;/h2&gt;
&lt;p&gt;The technical trick here is almost beside the point. An infrared sensor bounces a grid of invisible light across the screen surface; when your finger breaks the beam, software translates that position into a touch event. It&amp;rsquo;s not elegant. It adds latency. It has edge cases Apple&amp;rsquo;s engineers would never ship. But it &lt;em&gt;works&lt;/em&gt;, and it works for roughly the cost of a pack of gum.&lt;/p&gt;</description></item><item><title>We Didn't Lose the Moon. We Chose to Forget It.</title><link>https://www.brysgo.com/post/2026-04-05-we-didn-t-lose-the-moon-we-chose-to-forget-it/</link><pubDate>Sun, 05 Apr 2026 12:00:00 +0000</pubDate><guid>https://www.brysgo.com/post/2026-04-05-we-didn-t-lose-the-moon-we-chose-to-forget-it/</guid><description>&lt;p&gt;The most disturbing thing about Artemis II isn&amp;rsquo;t that it took 50 years to go back to the Moon — it&amp;rsquo;s that we had the technology the whole time. We didn&amp;rsquo;t lose the Saturn V to some catastrophic failure. We didn&amp;rsquo;t have it stolen. We &lt;em&gt;retired&lt;/em&gt; it, dismantled the tooling, let the engineers age out, and then spent decades scratching our heads about how to build something comparable. That&amp;rsquo;s not a tragedy of circumstance. That&amp;rsquo;s a choice.&lt;/p&gt;</description></item><item><title>You Didn't Get Hacked. You Delegated Trust to a Stranger and They Got Hacked.</title><link>https://www.brysgo.com/post/2026-04-02-you-didn-t-get-hacked-you-delegated-trust-to-a-stranger-and-they-got-h/</link><pubDate>Thu, 02 Apr 2026 12:00:00 +0000</pubDate><guid>https://www.brysgo.com/post/2026-04-02-you-didn-t-get-hacked-you-delegated-trust-to-a-stranger-and-they-got-h/</guid><description>&lt;hr&gt;
&lt;p&gt;Axios has 50 million weekly downloads. Most of those developers couldn&amp;rsquo;t tell you who maintains it, where they live, or whether they use 2FA on their npm account. That&amp;rsquo;s not a criticism — I couldn&amp;rsquo;t tell you either. I use it constantly. The point is that we&amp;rsquo;ve made a quiet, collective decision to trust a name in a &lt;code&gt;package.json&lt;/code&gt; the same way we trust a light switch: we flip it, it works, we move on.&lt;/p&gt;</description></item><item><title>Your AI Assistant Passed Every Safety Test and Still Burned Down the House</title><link>https://www.brysgo.com/post/2026-03-31-your-ai-assistant-passed-every-safety-test-and-still-burned-down-the-h/</link><pubDate>Tue, 31 Mar 2026 12:00:00 +0000</pubDate><guid>https://www.brysgo.com/post/2026-03-31-your-ai-assistant-passed-every-safety-test-and-still-burned-down-the-h/</guid><description>&lt;p&gt;We&amp;rsquo;ve spent years teaching AI not to say dangerous things, and almost no time teaching it not to &lt;em&gt;do&lt;/em&gt; dangerous things. That&amp;rsquo;s a problem, and I think it&amp;rsquo;s going to bite us in ways we&amp;rsquo;re not prepared for.&lt;/p&gt;
&lt;h2 id="the-test-we-kept-passing"&gt;The Test We Kept Passing&lt;/h2&gt;
&lt;p&gt;The story of AI safety, as most people understand it, is a story about language. Can the model be coaxed into explaining how to synthesize nerve agents? Will it produce content that sexualizes minors? Does it refuse to help write phishing emails? These are real concerns, and the industry has poured enormous resources into addressing them — red teams, constitutional AI, RLHF pipelines tuned specifically to push back on harmful requests.&lt;/p&gt;</description></item><item><title>The Abstraction Ceiling: Why Better AI Tools Keep Making Senior Engineers More Valuable, Not Less</title><link>https://www.brysgo.com/post/2026-03-29-the-abstraction-ceiling-why-better-ai-tools-keep-making-senior-enginee/</link><pubDate>Sun, 29 Mar 2026 12:00:00 +0000</pubDate><guid>https://www.brysgo.com/post/2026-03-29-the-abstraction-ceiling-why-better-ai-tools-keep-making-senior-enginee/</guid><description>&lt;p&gt;Every time a new AI coding tool ships, I watch the same thing happen — junior devs get faster, and the gap between them and senior engineers quietly widens.&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s counterintuitive. The tools are supposed to democratize software development. And in a narrow sense, they do: someone six months into their career can now produce working code at a pace that would&amp;rsquo;ve seemed impossible a few years ago. But &amp;ldquo;working code&amp;rdquo; and &amp;ldquo;the right code&amp;rdquo; are different things, and I&amp;rsquo;ve been thinking about why AI seems to be sharpening that distinction rather than dissolving it.&lt;/p&gt;</description></item><item><title>Your Brain is a Transformer (Or Maybe It's the Other Way Around)</title><link>https://www.brysgo.com/post/2026-03-27-your-brain-is-a-transformer/</link><pubDate>Fri, 27 Mar 2026 12:00:00 +0000</pubDate><guid>https://www.brysgo.com/post/2026-03-27-your-brain-is-a-transformer/</guid><description>&lt;p&gt;I&amp;rsquo;ve been going down a rabbit hole lately that I can&amp;rsquo;t stop thinking about, so naturally I have to write about it. It started with a simple question: why does the Transformer architecture work so well? Not just &amp;ldquo;it scales nicely&amp;rdquo; or &amp;ldquo;the attention mechanism is clever&amp;rdquo; — but &lt;em&gt;why&lt;/em&gt;, at a deeper level, does this particular arrangement of matrices and multiplications produce something that seems to understand language, reason about problems, and generalize in ways that feel almost&amp;hellip; cognitive?&lt;/p&gt;</description></item><item><title>Bobiverse: Critical Analysis of Drift</title><link>https://www.brysgo.com/post/2020-10-22-Bobiverse-Critical--1fd1db/</link><pubDate>Thu, 22 Oct 2020 12:27:19 +0000</pubDate><guid>https://www.brysgo.com/post/2020-10-22-Bobiverse-Critical--1fd1db/</guid><description>&lt;p&gt;I recently read the book series referred to as the &amp;ldquo;Bobiverse,&amp;rdquo; that tickled my nerd fancy so much that I had to write about it. While I really loved the book, that is not what I&amp;rsquo;m going to write about, instead, like a good dork, I&amp;rsquo;m going to scratch the singular itch that was left lingering throughout the series. I will try not to go too much into detail, but I would recommend giving it a read if you are worried about spoilers.&lt;/p&gt;</description></item><item><title>What is life?</title><link>https://www.brysgo.com/post/2020-10-08-What-is-life-7c954f/</link><pubDate>Thu, 08 Oct 2020 08:05:22 +0000</pubDate><guid>https://www.brysgo.com/post/2020-10-08-What-is-life-7c954f/</guid><description>&lt;p&gt;After googling the definition of Life and I was a bit disappointed to find that the best definitions were anchored in functions we associate with life, but I couldn&amp;rsquo;t quite put my finger on why this made me sad.&lt;/p&gt;
&lt;p&gt;&amp;ldquo;the condition that distinguishes animals and plants from inorganic matter, including the capacity for growth, reproduction, functional activity, and continual change preceding death.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;Setting aside the use of a word to define itself (in this case &amp;ldquo;animals and plants&amp;rdquo; are synonymous with life and &amp;ldquo;inorganic&amp;rdquo; is just another way of saying &amp;ldquo;not living.&amp;rdquo;), all of the things listed here felt like something that could easily be used to describe something that isn&amp;rsquo;t alive.&lt;/p&gt;</description></item><item><title>$trong AI</title><link>https://www.brysgo.com/post/2020-09-10-dollartrong-AI-f769ed/</link><pubDate>Thu, 10 Sep 2020 08:05:20 +0000</pubDate><guid>https://www.brysgo.com/post/2020-09-10-dollartrong-AI-f769ed/</guid><description>&lt;p&gt;When it was announced not too long ago, GPT-3 set a new standard for the size of an AI model at a whopping 175 billion parameters, and an &lt;a href="https://lambdalabs.com/blog/demystifying-gpt-3/"&gt;estimated cost of at least $4.6 million&lt;/a&gt;. Ever since the first closed beta examples started showing up, it has been blowing people&amp;rsquo;s minds and causing everyone to think about what is next.&lt;/p&gt;
&lt;p&gt;One of the best things about programming (and open source in particular) is that everyone can play and have access to everything they need to build cool stuff. If I want to create an AI, I can download Tensorflow and convince myself that I can build the best AI in the world! Sure, I probably can&amp;rsquo;t, but that is besides the point because just the opportunity provides me with inspiration and the hope that there a global community of people working on this really cool problem.&lt;/p&gt;</description></item><item><title>End of Work = Beginning of Creativity</title><link>https://www.brysgo.com/post/2020-08-19-End-of-Work-Beginnin-75f8b0/</link><pubDate>Wed, 19 Aug 2020 08:07:06 +0000</pubDate><guid>https://www.brysgo.com/post/2020-08-19-End-of-Work-Beginnin-75f8b0/</guid><description>&lt;p&gt;When most people hear the end of work, they might picture the world looking glazed over and staring at the television with a bag of cheese puffs in their hand making an occasional nasal laugh. So why am I so excited for the end of work?&lt;/p&gt;
&lt;p&gt;The reason is that while I do believe the future will be that way for some, I think the vast majority will have a much different experience. The end of work doesn&amp;rsquo;t mean the humans are no longer useful. A stochastic gradient is only useful because it is just that, stochastic. This means that the greatest asset a human will have is the ability to gain a different perspective on things and use that to provide value.&lt;/p&gt;</description></item><item><title>GitHub Inbox Zero</title><link>https://www.brysgo.com/post/2020-08-14-GitHub-Inbox-Zero-9892d6/</link><pubDate>Fri, 14 Aug 2020 08:04:58 +0000</pubDate><guid>https://www.brysgo.com/post/2020-08-14-GitHub-Inbox-Zero-9892d6/</guid><description>&lt;p&gt;I recently reached inbox zero on GitHub for the first time in a long time. A while ago I got freaked out by the possibility of people stealing my secret keys through CI and I disabled my CI tokens on my zillion GitHub repos. It was all broken windows from there. Before I knew it my GitHub was a graveyard of packages with out of date dependencies that I had no time to update.&lt;/p&gt;</description></item><item><title>the yin and yang of utility</title><link>https://www.brysgo.com/post/2020-08-08-the-yin-and-yang-of--dc939a/</link><pubDate>Sat, 08 Aug 2020 17:04:06 +0000</pubDate><guid>https://www.brysgo.com/post/2020-08-08-the-yin-and-yang-of--dc939a/</guid><description>&lt;p&gt;I just did some dehydrating exercise in the sun, so this will be what amounts to some pontificating shower thoughts. But you already clicked on the link so you might as well read it.&lt;/p&gt;
&lt;p&gt;While trying to solve the &lt;a href="https://en.wikipedia.org/wiki/Knapsack_problem"&gt;knapsack problem&lt;/a&gt; I got to thinking about the realities of maximizing utility. Since I am a software engineer and engineering is just building tools to maximize &lt;a href="https://en.wiktionary.org/wiki/utility"&gt;utility&lt;/a&gt;, I let my mind frolic down that sweet sweet rabbit hole.&lt;/p&gt;</description></item><item><title>coming soon: peerstate</title><link>https://www.brysgo.com/post/2020-08-06-coming-soon-peersta-415acc/</link><pubDate>Thu, 06 Aug 2020 08:05:02 +0000</pubDate><guid>https://www.brysgo.com/post/2020-08-06-coming-soon-peersta-415acc/</guid><description>&lt;p&gt;All of my open source projects start with trying to build something, getting frustrated, saying in my head &amp;ldquo;I wish I could just do this,&amp;rdquo; then obsessively investigating what it would take to be able to &amp;ldquo;just do this.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;Sometimes this inspiration comes on a work project, but more often, it comes when I am working on a side project, or playing with some new open source thing. My first example of such a project, was when I was working on an investment project called Herd. It was my first react native app, and I was frustrated that I couldn&amp;rsquo;t use environment variables. At the time, react native was very new and I couldn&amp;rsquo;t find a good way to use environment variables, so I learned how to write a babel plugin, made one for my environment variables (rather quickly), pushed it to npm, and forgot about it.&lt;/p&gt;</description></item><item><title>Open Source: Chasing the Dream</title><link>https://www.brysgo.com/post/2020-07-31-Open-Source-Chasing-997a1e/</link><pubDate>Fri, 31 Jul 2020 17:04:07 +0000</pubDate><guid>https://www.brysgo.com/post/2020-07-31-Open-Source-Chasing-997a1e/</guid><description>&lt;p&gt;I love open source. I love to imagine writing code a certain way, trying to find something that does it, failing to find said thing and building it. I love publishing it and watching people use it. I don&amp;rsquo;t love maintaining it, I don&amp;rsquo;t love the thought of having to improve it with the responsibility involved with making sure those improvements don&amp;rsquo;t break anything for anyone using your thing in a way you didn&amp;rsquo;t intend it to be used.&lt;/p&gt;</description></item><item><title>My AI Story (3/3)</title><link>https://www.brysgo.com/post/2020-07-26-My-AI-Story-33-11a67c/</link><pubDate>Sun, 26 Jul 2020 17:04:03 +0000</pubDate><guid>https://www.brysgo.com/post/2020-07-26-My-AI-Story-33-11a67c/</guid><description>&lt;p&gt;After graduating with my BS in Computer Science, AI moved to side project status as I took a job as a Full Stack Software Engineer at Pivotal Labs. The side project years of my AI life made slow progress. I managed to play with some algorithms that one time when I was trying to learn golang. I eventually implemented my logic gate pool genetic algorithm as part of a more ambitions side project I called thoughtnet. Jobs had passed at this point as I went from Pivotal, to SchoolKeep, to freelancing, to BCG. I played with the thoughtnet algorithm from time to time, but always was demotivated by it&amp;rsquo;s fundamental inability to benefit from hardware acceleration. While BCG has an incredible culture where you become very close with your colleagues, it has been the kind of demanding job that doesn&amp;rsquo;t leave much time for side projects.&lt;/p&gt;</description></item><item><title>My AI Story (2/3)</title><link>https://www.brysgo.com/post/2020-07-21-My-AI-Story-23-e5cf6d/</link><pubDate>Tue, 21 Jul 2020 17:03:40 +0000</pubDate><guid>https://www.brysgo.com/post/2020-07-21-My-AI-Story-23-e5cf6d/</guid><description>&lt;p&gt;Learning in school was very difficult for me because I was more of a hands on learner and school was very heavy on lecturing. When I am in situations that frustrate me, I try and solve them with technology. This was what I had planned to do with my ed tech company &amp;ldquo;Socrenchus.&amp;rdquo; Before Socrenchus though, I was interning in Mountain View and I got to meet some of the AI great&amp;rsquo;s. I saw an article about his interest in education technology, and I cold emailed &lt;a href="https://norvig.com/"&gt;Peter Norvig&lt;/a&gt;, who was working in the same building as me, to ask if he wanted to get lunch.&lt;/p&gt;</description></item><item><title>My AI Story (1/3)</title><link>https://www.brysgo.com/post/2020-07-16-My-AI-Story-13-e86392/</link><pubDate>Thu, 16 Jul 2020 17:03:56 +0000</pubDate><guid>https://www.brysgo.com/post/2020-07-16-My-AI-Story-13-e86392/</guid><description>&lt;p&gt;If I&amp;rsquo;m going to start writing about AI, I figure I should give some backstory first on my life in AI.&lt;/p&gt;
&lt;p&gt;My first introduction to AI was probably when I was 9 years old and snuck downstairs to watch the first Matrix movie that I wasn&amp;rsquo;t supposed to be watching. This did a great deal to feed what has become an AI obsession over the years.&lt;/p&gt;
&lt;p&gt;In high school, after I had been programming on my own for a while with only stack overflow to guide me (plus a couple people who volunteered to help me with my shareware), I started pondering about AI from the perspective of how it worked.&lt;/p&gt;</description></item><item><title>High Altitude Mass Volley</title><link>https://www.brysgo.com/post/2019-08-07-high-altitude-mass-volley/</link><pubDate>Wed, 07 Aug 2019 02:00:28 +0000</pubDate><guid>https://www.brysgo.com/post/2019-08-07-high-altitude-mass-volley/</guid><description>&lt;h2 id="preamble"&gt;Preamble&lt;/h2&gt;
&lt;p&gt;I have always been interested in space, but this idea for getting there cheaper has been brewing for a few years, and while I’ve yet to sit down and do the math, it has gotten to a place where it seems intuitive enough to work.&lt;/p&gt;
&lt;p&gt;Before I go into the solution, let’s look at the problem. At present, out best way of getting to space involves stacking explosives as high as we can, sitting on top with a countdown, and hoping that we planned for all the eventualities.&lt;/p&gt;</description></item><item><title>The Dangers of Idiomatic Programming</title><link>https://www.brysgo.com/post/2017-12-07-idiom-shmidiom/</link><pubDate>Thu, 07 Dec 2017 02:00:28 +0000</pubDate><guid>https://www.brysgo.com/post/2017-12-07-idiom-shmidiom/</guid><description>&lt;p&gt;What does it mean to be idiomatic?&lt;/p&gt;
&lt;p&gt;&amp;ldquo;Of, relating to, or conforming to idiom&amp;rdquo; - Merriam-Webster&lt;/p&gt;
&lt;p&gt;So what is an idiom?&lt;/p&gt;
&lt;p&gt;&amp;ldquo;The syntactical, grammatical, or structural form peculiar to a language&amp;rdquo; - Merriam-Webster&lt;/p&gt;
&lt;p&gt;When we talk about idiomatic programming, we are talking about doing things because it is &amp;ldquo;the way&amp;rdquo; to do them, or because so-and-so says this is a rule that can’t be broken.&lt;/p&gt;
&lt;p&gt;Why is it important to see past these idioms and understand &lt;strong&gt;why&lt;/strong&gt; they are &amp;ldquo;the way?&amp;rdquo;&lt;/p&gt;</description></item><item><title>The Job of an OS</title><link>https://www.brysgo.com/post/2017-11-06-job-of-os/</link><pubDate>Mon, 06 Nov 2017 14:10:28 +0000</pubDate><guid>https://www.brysgo.com/post/2017-11-06-job-of-os/</guid><description>&lt;p&gt;It started with a &lt;a href="https://www.brysgo.com/text/termux_gitter_multi_user_linux.txt"&gt;gitter chat&lt;/a&gt; then
&lt;a href="https://twitter.com/brysgo/status/927162173331267584"&gt;a tweet&lt;/a&gt;, followed by a
&lt;a href="https://www.brysgo.com/post/2017-11-05-multi-user-systems%22"&gt;blog post&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&amp;hellip;&lt;/p&gt;
&lt;p&gt;Well, I&amp;rsquo;ve had some time to digest my thoughts, and I think it is time for,
&lt;strong&gt;a second blog post&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Whenever I think something needs redefining, the first thing I like to do is
look for a definition (shocking right?). The Merriam-Webster dictionary defines
and Operating System as:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Software that controls the operation of a computer and directs the processing of programs (as by assigning storage space in memory and controlling input and output functions)&lt;/p&gt;</description></item><item><title>Why are operating systems still multi-user?</title><link>https://www.brysgo.com/post/2017-11-05-multi-user-systems/</link><pubDate>Sun, 05 Nov 2017 14:10:28 +0000</pubDate><guid>https://www.brysgo.com/post/2017-11-05-multi-user-systems/</guid><description>&lt;p&gt;So I&amp;rsquo;m minding my own business, setting up Arch linux in my unrooted Termux
installation on my phone, when all of a sudden, &lt;code&gt;makepkg&lt;/code&gt; wants me to not be
root to run a build. Excuse me? What century are we in?&lt;/p&gt;
&lt;p&gt;Let me clarify, when I am running linux in a container to build applications
the operating system should not be bothering me with arbitrary user systems.&lt;/p&gt;
&lt;p&gt;When was the last time you logged into a multi-user unix system that had other
users on it? Was it in your CS department in college? Me too.&lt;/p&gt;</description></item><item><title>Future of Flight: Spontaneous trip to Paris</title><link>https://www.brysgo.com/post/2017-10-17-future-airplanes/</link><pubDate>Tue, 17 Oct 2017 15:10:28 +0000</pubDate><guid>https://www.brysgo.com/post/2017-10-17-future-airplanes/</guid><description>&lt;p&gt;I want to go to France, I didn&amp;rsquo;t plan to go, I was just waking on the highline and was like, I think I want to go to Paris. I take out my phone, and open my air travel app and put in Paris. It tells me how much it costs, and I click accept. It takes me to a border patrol and security flow where I need to answer some lame questions, but it isn&amp;rsquo;t so bad.&lt;/p&gt;</description></item><item><title>Crystallize your abstractions carefully...</title><link>https://www.brysgo.com/2016/06/21/crystallize-carfully/</link><pubDate>Tue, 21 Jun 2016 01:54:33 +0000</pubDate><guid>https://www.brysgo.com/2016/06/21/crystallize-carfully/</guid><description>&lt;p&gt;For as long as I&amp;rsquo;ve been a developer I have been reminded of the &lt;a href="https://en.wikipedia.org/wiki/Rule_of_three_(computer_programming)"&gt;rule of three
for refactoring&lt;/a&gt; and every time I hear it, I die a little inside.&lt;/p&gt;
&lt;p&gt;If building a new abstraction is so painful, that it is easier to copy and paste
large chunks of code, you need to rethink the way you are building your
abstractions. Building the right abstractions isn&amp;rsquo;t just a time consuming
distraction from building software, it &lt;em&gt;is&lt;/em&gt; software engineering.&lt;/p&gt;</description></item><item><title>Imaginary Lines</title><link>https://www.brysgo.com/2016/04/01/imaginary-lines/</link><pubDate>Fri, 01 Apr 2016 01:13:33 +0000</pubDate><guid>https://www.brysgo.com/2016/04/01/imaginary-lines/</guid><description>&lt;p&gt;If I had to sum up the job of a software engineer in laymen&amp;rsquo;s terms, I would
tell you that we draw imaginary lines around imaginary concepts until those
concepts can map to both a specific set of instructions for a machine and a
common understanding for programmers.&lt;/p&gt;
&lt;p&gt;Why am I stating the obvious? Well, it is quite simply to emphasize just how
important it is where we draw those lines.&lt;/p&gt;</description></item><item><title>GraphiQL Bookmarklet</title><link>https://www.brysgo.com/2015/12/19/graphiql-bookmarklet/</link><pubDate>Sat, 19 Dec 2015 13:41:33 +0000</pubDate><guid>https://www.brysgo.com/2015/12/19/graphiql-bookmarklet/</guid><description>&lt;p&gt;I&amp;rsquo;m sure most of you, if you have done any work with graphql, have heard of
&lt;a href="https://github.com/graphql/graphiql"&gt;graphiql&lt;/a&gt;. It is an indespensible tool for writing and testing graphql queries.&lt;/p&gt;
&lt;p&gt;The problem is that now that I&amp;rsquo;m
&lt;a href="https://github.com/rmosolgo/graphql-relay-ruby"&gt;not using express at the moment&lt;/a&gt;. I don&amp;rsquo;t want to go
through the trouble of trying to fit graphiql into my stack.&lt;/p&gt;
&lt;h1 id="to-solve-it-a-graphiql-bookmarklet"&gt;To solve it, &lt;a href="javascript:(function()%7B'use%20strict'%3Bfunction%20loadScript(url)%20%7Breturn%20new%20Promise(function%20(callback)%20%7Bvar%20head%20%3D%20document.getElementsByTagName('head')%5B0%5D%3Bvar%20script%20%3D%20document.createElement('script')%3Bscript.type%20%3D%20'text%2Fjavascript'%3Bscript.src%20%3D%20url%3Bscript.onreadystatechange%20%3D%20callback%3Bscript.onload%20%3D%20callback%3Bhead.appendChild(script)%3B%7D)%3B%7Dfunction%20loadStyle(url)%20%7Breturn%20new%20Promise(function%20(callback)%20%7Bvar%20head%20%3D%20document.getElementsByTagName('head')%5B0%5D%3Bvar%20link%20%3D%20document.createElement('link')%3Blink.type%20%3D%20'text%2Fcss'%3Blink.rel%20%3D%20'stylesheet'%3Blink.href%20%3D%20url%3Blink.onreadystatechange%20%3D%20callback%3Blink.onload%20%3D%20callback%3Bhead.appendChild(link)%3B%7D)%3B%7DloadScript('https%3A%2F%2Fcdnjs.cloudflare.com%2Fajax%2Flibs%2Freact%2F0.14.3%2Freact.js').then(function%20()%20%7Breturn%20Promise.all(%5BloadStyle('https%3A%2F%2Fcdnjs.cloudflare.com%2Fajax%2Flibs%2Fgraphiql%2F0.4.5%2Fgraphiql.css')%2C%20loadScript('https%3A%2F%2Fcdnjs.cloudflare.com%2Fajax%2Flibs%2Freact%2F0.14.3%2Freact-dom.js')%2C%20loadScript('https%3A%2F%2Fcdnjs.cloudflare.com%2Fajax%2Flibs%2Fgraphiql%2F0.4.5%2Fgraphiql.js')%5D).then(function%20()%20%7Bfunction%20graphQLFetcher(graphQLParams)%20%7Breturn%20fetch(window.location.origin%20%2B%20'%2Fgraphql'%2C%20%7Bmethod%3A%20'post'%2Cheaders%3A%20%7B%20'Content-Type'%3A%20'application%2Fjson'%20%7D%2Cbody%3A%20JSON.stringify(graphQLParams)%7D).then(function%20(response)%20%7Breturn%20response.json()%3B%7D)%3B%7DsetTimeout(function%20()%20%7Breturn%20ReactDOM.render(React.createElement(GraphiQL%2C%20%7B%20fetcher%3A%20graphQLFetcher%20%7D)%2C%20document.body)%3B%7D%2C%200)%3B%7D)%3B%7D)%7D)()"&gt;a graphiql bookmarklet&lt;/a&gt;:&lt;/h1&gt;
&lt;script src="https://gist.github.com/brysgo/c06b5b2e6c7a8d4380e5.js"&gt;&lt;/script&gt;
&lt;h1 id="enjoy"&gt;Enjoy!&lt;/h1&gt;</description></item><item><title>jscodemigrate (deps|dependencies)</title><link>https://www.brysgo.com/2015/12/11/jscodemigrate-deps/</link><pubDate>Fri, 11 Dec 2015 00:09:33 +0000</pubDate><guid>https://www.brysgo.com/2015/12/11/jscodemigrate-deps/</guid><description>&lt;p&gt;If you haven&amp;rsquo;t yet read about jscodemigrate, read about it &lt;a href="https://www.brysgo.com/development/tools/2015/12/05/jscodemigrate.html"&gt;here&lt;/a&gt;.
If you already know about jscodemigrate then stick around because there is a new
feature, and it is ready for you to use, just &lt;code&gt;npm install jscodemigrate@latest --save-dev&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;You already know that you can run all of your jscodeshift scripts at once and
easily maintain your project with a directory full of timestamped codemods, but
now, you can make it easy for those who depend on your npm packages to respond
quickly to your API changes.&lt;/p&gt;</description></item><item><title>jscodeshift + rails migrations = jscodemigrate</title><link>https://www.brysgo.com/2015/12/05/jscodemigrate/</link><pubDate>Sat, 05 Dec 2015 00:09:33 +0000</pubDate><guid>https://www.brysgo.com/2015/12/05/jscodemigrate/</guid><description>&lt;p&gt;I&amp;rsquo;ve worked on lots of projects big and small, but as time went on they all
suffered from the same problem. &lt;a href="https://xkcd.com/927/"&gt;Changing standards and updated api&amp;rsquo;s left
code fragmented as the codebase grew&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.tlnt.com/media/2012/12/lumberg-office-space_320.jpg" alt=""&gt;&lt;/p&gt;
&lt;p&gt;From the time I started working on &lt;a href="https://github.com/clutchski/coffeelint/issues/195"&gt;coffeelint&lt;/a&gt;, the problem has been stewing in
my head. Subconciously on the lookout for a solution, I heard about &lt;a href="https://youtu.be/d0pOgY8__JM"&gt;codemods&lt;/a&gt;.
Let me preface by saying I&amp;rsquo;ve been quite obsessed with everything facebook
engineering &lt;a href="http://www.fastcompany.com/3038842/how-facebooks-massive-open-source-push-delivers-better-code-and-better-engineers"&gt;has been doing&lt;/a&gt; in open source lately. Needless to say I took notice.&lt;/p&gt;</description></item><item><title>Graphql + Bookshelf</title><link>https://www.brysgo.com/2015/08/13/graphql-bookshelf/</link><pubDate>Thu, 13 Aug 2015 00:09:33 +0000</pubDate><guid>https://www.brysgo.com/2015/08/13/graphql-bookshelf/</guid><description>&lt;p&gt;I recently switched over the project I was working on from MongoDB to PostgreSQL.
The reason for the switch is not what I&amp;rsquo;m writing to discuss, but I&amp;rsquo;ll just say
that the unpredictability of mongodb was starting to become an issue in development.
The thought was that if it was already difficult before the data starts pouring in,
it will probably be a nightmare one the product is in use. And that meant switching
from &lt;a href="https://github.com/RisingStack/graffiti-mongoose"&gt;graffiti-mongoose&lt;/a&gt;, to my own graphql database glue.&lt;/p&gt;</description></item><item><title>React Native on Heroku</title><link>https://www.brysgo.com/2015/07/26/react-native-on-heroku/</link><pubDate>Sun, 26 Jul 2015 00:09:33 +0000</pubDate><guid>https://www.brysgo.com/2015/07/26/react-native-on-heroku/</guid><description>&lt;p&gt;As a web developer doing iOS development with react native, I need a staging
environment for the product manager to review changes to the app.&lt;/p&gt;
&lt;img src="https://www.brysgo.com/assets/heroku-logo.png" style="height:200px;width:200px;float:right;margin:15px;"/&gt;
&lt;p&gt;On the web, that means using Heroku, but with a react native app it is a bit
more complicated.&lt;/p&gt;
&lt;p&gt;My react native app has two components, the packager (for serving the client
code) and the server (for interacting with the app).&lt;/p&gt;
&lt;p&gt;Heroku only lets one process bind to an external port, so it wasn&amp;rsquo;t easy to do
without creating two heroku apps.&lt;/p&gt;</description></item><item><title>Will Relay replace Flux?</title><link>https://www.brysgo.com/2015/07/25/relay-vs-flux/</link><pubDate>Sat, 25 Jul 2015 12:59:33 +0000</pubDate><guid>https://www.brysgo.com/2015/07/25/relay-vs-flux/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://facebook.github.io/relay/"&gt;Relay&lt;/a&gt; is out in preview! Have a look.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;When people talk about Relay they think of it as the server-client link in the
Facebook stack, but is that really all it is?&lt;/p&gt;
&lt;p&gt;Flux still has a place on the client because you need to manage temporary app
state, right?&lt;/p&gt;
&lt;p&gt;I think it doesn&amp;rsquo;t. Flux is an architecture for unidirectional data flow that
separates out input from the user and the server so that it can react without
getting tangled up. It does so at the high cost of tremendous verbosity and a
significant drop in top down readability.&lt;/p&gt;</description></item><item><title>Why I'm Excited for Facebook's Relay and GraphQL</title><link>https://www.brysgo.com/2015/07/08/why-relay/</link><pubDate>Wed, 08 Jul 2015 12:59:33 +0000</pubDate><guid>https://www.brysgo.com/2015/07/08/why-relay/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://facebook.github.io/relay/"&gt;Relay&lt;/a&gt; is out in preview! Have a look.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I want to tell you in as few words as possible why I am so excited to get my
hands on &lt;a href="http://facebook.github.io/react/blog/2015/03/19/building-the-facebook-news-feed-with-relay.html"&gt;Relay&lt;/a&gt; and &lt;a href="https://github.com/facebook/graphql"&gt;GraphQL&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;React is widely popular because it is simple and declarative, making it very
deterministic and easy to work with. React is also fully composable, making
it imensly powerful with high potential for writing reusable code.&lt;/p&gt;
&lt;p&gt;Relay is a mirror image of React, except instead of composing beautiful views
for the web and native mobile devices using JSX, you can compose data from your
database for your views using graphql.&lt;/p&gt;</description></item><item><title>Searching for an Isomorphic Reactiflux Stack</title><link>https://www.brysgo.com/2015/06/17/isomorphic-react-flux-stack/</link><pubDate>Wed, 17 Jun 2015 10:07:43 +0000</pubDate><guid>https://www.brysgo.com/2015/06/17/isomorphic-react-flux-stack/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Now that &lt;a href="https://facebook.github.io/relay/"&gt;Relay&lt;/a&gt; is out in preview, it will probably replace Flux entirely.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h1 id="why-react"&gt;Why React?&lt;/h1&gt;
&lt;p&gt;A few months ago, the release of &lt;a href="https://facebook.github.io/react-native/"&gt;React Native&lt;/a&gt; by Facebook convinced me to make
the leap to &lt;a href="http://facebook.github.io/react/"&gt;React&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I spent a while working on a &lt;a href="https://facebook.github.io/react-native/"&gt;React Native&lt;/a&gt; app and quickly learned that I needed
to bring in &lt;a href="https://facebook.github.io/flux/"&gt;Flux&lt;/a&gt;. After watching a few videos and reading a few blogs, I added my own
implementation of flux to my react native app.&lt;/p&gt;</description></item></channel></rss>