# Jessie Frazelle

Recent content on Ramblings from Jessie

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Understanding RF Trace Impedance in a KiCad Sensor Hub PCB

DevFeed: [Understanding RF Trace Impedance in a KiCad Sensor Hub PCB](<https://devfeed.tech/articles/home-hardware-part-2-width-matters-35170.md>)

Original publisher: [Read original article](<https://blog.jessfraz.com/post/home-hardware-part-two/>)

Published: 2026-09-10T03:45:45Z

Content type: article

Language: en

Sources: [Jessie Frazelle](<https://devfeed.tech/sources/jessie-frazelle.md>)

Topics: [Hardware](<https://devfeed.tech/topics/hardware.md>), [kicad](<https://devfeed.tech/topics/kicad.md>), [codex](<https://devfeed.tech/topics/codex.md>)

Tags: [codex](<https://devfeed.tech/tags/codex.md>), [hardware](<https://devfeed.tech/tags/hardware.md>), [kicad](<https://devfeed.tech/tags/kicad.md>), [pcb](<https://devfeed.tech/tags/pcb.md>)

### AI overview

The article explains how the author resolved differing impedance calculations for a Sensor Hub's RF layout. It shows that both inner PCB layers contained ground copper, and that the RF trace's reference plane, dielectric thickness, copper thickness, and adjacent ground gap affect the 50-ohm impedance calculation.

### Source excerpt

We're back! Not with rework. This time we're talking about impedance and review. Apparently I can get into a heated argument about a board before it even gets here. In part one, I wrote about using Codex to design my own hardware because I'm sick of Control4, Savant, and the rest of that shit. The useful part wasn't one-shotting a PCB. It was having the agent work through datasheets, compare parts, and check the design. Then I had to notice that the connectors were facing the wrong fucking way. There was more to review. Which board are we arguing about? I was talking through the Sensor Hub's RF layout with Paul, and we were getting different answers for the impedance. This turned into a pretty heated argument, which might have scared some of the other people in the room. Honestly, we were just trying to figure it out. Paul started with this impedance calculator. I kept annoying him because I still didn't understand why we were getting different numbers. Eventually he switched to JLC's calculator, which was what the model was using. I wanted to understand the model's math and compare it with his. The KiCad view was part of the confusion. The connection looked orange, and the second interior layer, In2.Cu, was orange in the layer list. The first interior layer, In1.Cu, was green. So we thought ground was on the second one, and kept arguing about the thickness between layers. Then I realized both interior layers had ground copper, with ground vias connecting across layers. Seeing orange didn't mean the connection was only on that layer. There was ground on the green layer too, right under the RF trace. The model was right! I was just trying to understand what it was telling me. The confusing view, recreated in KiCad. In2.Cu is selected in orange; the green In1.Cu ground is there too. The RF trace is on F.Cu, the top layer. There is 0.1164 mm of insulating material between it and the first inner ground plane. If we used the second inner layer as the reference, we'd be i

## Home Hardware, Part 1: My Control4 Revenge Arc

DevFeed: [Home Hardware, Part 1: My Control4 Revenge Arc](<https://devfeed.tech/articles/home-hardware-part-1-my-control4-revenge-arc-35169.md>)

Original publisher: [Read original article](<https://blog.jessfraz.com/post/home-hardware-part-one/>)

Published: 2026-09-08T00:34:58Z

Content type: opinion

Language: en

Sources: [Jessie Frazelle](<https://devfeed.tech/sources/jessie-frazelle.md>)

Topics: [Home Assistant](<https://devfeed.tech/topics/home-assistant.md>), [Hardware](<https://devfeed.tech/topics/hardware.md>), [Bluetooth](<https://devfeed.tech/topics/bluetooth.md>), [Homekit](<https://devfeed.tech/topics/homekit.md>), [codex](<https://devfeed.tech/topics/codex.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [bluetooth](<https://devfeed.tech/tags/bluetooth.md>), [codex](<https://devfeed.tech/tags/codex.md>), [connect](<https://devfeed.tech/tags/connect.md>), [hardware](<https://devfeed.tech/tags/hardware.md>), [home-assistant](<https://devfeed.tech/tags/home-assistant.md>), [homekit](<https://devfeed.tech/tags/homekit.md>), [sensor](<https://devfeed.tech/tags/sensor.md>), [sensors](<https://devfeed.tech/tags/sensors.md>)

### AI overview

The author describes designing consumer hardware for a Home Assistant-based smart home, including a Bluetooth sensor hub and a maintenance display. The post discusses Bluetooth proxy range, regulatory constraints, testing considerations, and the use of NFC stickers for maintenance tracking, while reflecting on using Codex during the project.

### Source excerpt

Fuck1 it, we're doing consumer hardware for ourselves now and getting fucked by economies of scale, I guess. This all started with me buying some Olimex Bluetooth proxies for Home Assistant. Then I started looking at the components and wondering if I could get better range. Now I'm designing boards, displays, and enclosures, and emailing manufacturers because their bezels are enormous. I've ordered the first two boards: a Bluetooth sensor hub and a little maintenance display. I've been working on this in Codex, and this post is going to go through what it was good at, where it got stuck or got things wrong, and where I had to step in. Why build this? Honestly, Control4, Savant, and the rest of these fucking systems seem built for rich people who don't know how to turn on their TV and would rather call someone. I want to program the fucking thing. Control4 puts HomeKit integration in its paid Connect tier.2 Why am I paying a recurring fee to connect things I already bought? I don't want to call a Control4 or Savant dealer, either, just because I want to change how something works. Give me API access or give me death. Source works too. I'll pick the hardware and connect it to Home Assistant, HomeKit, or my own code. If I want another sensor or some weird maintenance reminder, I can write that. It's my fucking house.31 Back to the Bluetooth proxies With a Bluetooth proxy, I can put the BLE radio near the sensors and get back to Home Assistant over the network.4 The machine running Home Assistant doesn't have to be within range of every sensor. When I mentioned my plans to Paul (paultag) over Slack, he pointed out that Olimex might be constrained by what the FCC allows, not just the components it picked. A radio supporting more transmit power doesn't mean you can use all of it.5 I hadn't thought about that. These are boards for my house. I'm not selling them. Fuck it, I'll build them and test them. I still have to measure the range; a bigger number on the radio's datash

## A Configuration-Management Approach to Building DUM-E-Inspired Robots

DevFeed: [A Configuration-Management Approach to Building DUM-E-Inspired Robots](<https://devfeed.tech/articles/dum-e-and-u-35163.md>)

Original publisher: [Read original article](<https://blog.jessfraz.com/post/dum-e-and-u/>)

Published: 2021-01-22T19:17:58Z

Content type: tutorial

Language: en

Sources: [Jessie Frazelle](<https://devfeed.tech/sources/jessie-frazelle.md>)

Topics: [Robotics](<https://devfeed.tech/topics/robotics.md>), [configuration-management](<https://devfeed.tech/topics/configuration-management.md>), [Docker](<https://devfeed.tech/topics/docker.md>), [Redis](<https://devfeed.tech/topics/redis.md>), [Machine Learning & Artificial Intelligence](<https://devfeed.tech/topics/machine-learning-artificial-intelligence.md>)

Tags: [configuration-management](<https://devfeed.tech/tags/configuration-management.md>), [docker](<https://devfeed.tech/tags/docker.md>), [machine-learning](<https://devfeed.tech/tags/machine-learning.md>), [redis](<https://devfeed.tech/tags/redis.md>), [robotic-arm](<https://devfeed.tech/tags/robotic-arm.md>), [robotics](<https://devfeed.tech/tags/robotics.md>)

### AI overview

This article explores how to build DUM-E-inspired workshop robots using a manufacturing configuration-management approach. It introduces ROS, Elementary Robotics' atom OS, Redis messaging, Docker-based component packaging, cameras, sensors, and machine learning, then begins outlining a fire-extinguisher robot.

### Source excerpt

DUM-E ("dummy") and U ("you") are the names of the robot arms in the Iron Man movies. After watching this movie for the n-teenth time, I have a strong urge to also have robotic arms in a workshop like Tony Stark. You can see the value of the robots clearly throughout the movie. The robots allow Tony to produce suits more quickly, help test the suits, and provide periodic comedic relief. At one point, DUM-E even saves Tony's life. As a bit of a thought experiment, I considered what it would take to get the same functionality in reality. What this ends up leading to is a configuration management system for manufacturing, much like a build system. This post is going to outline that a bit! The most popular open-source framework for building robots is ROS (Robotics Operating System). You can add different components like cameras or sensors and program all the functionality you need for your specific use case. The underlying infrastructure works by passing messages, through a pub/subsystem. Elementary Robotics created their own OS called atom. It's pretty cool, it uses Redis for the messaging layer and docker for packaging and defining the individual components. Need a camera on your robot? Include the camera container in your atom OS config file. You can then pipe the messages from the camera into machine learning in another container. It's important to know the basics of these frameworks to continue into how we would build DUM-E and U. Let's dive in. The end goal here is to be as productive as Tony Stark at building things. Fire extinguisher robot One of my favorite scenes with DUM-E is when Tony is testing the suits and it's DUM-E's job to blast him with a fire extinguisher when he is on fire. For comic relief in the movie, DUM-E messes this up a bunch and blasts Tony when he's not on fire. Let's break this down, starting with a robot that will shoot a fire extinguisher on any fire. First, what you would need is the robotic arm base, maybe you build your own, maybe it'

## How Oxide Automates Infrastructure Operations with Rust, APIs, and a Database

DevFeed: [How Oxide Automates Infrastructure Operations with Rust, APIs, and a Database](<https://devfeed.tech/articles/the-automated-cio-35201.md>)

Original publisher: [Read original article](<https://blog.jessfraz.com/post/the-automated-cio/>)

Published: 2020-09-08T13:09:26Z

Content type: article

Language: en

Sources: [Jessie Frazelle](<https://devfeed.tech/sources/jessie-frazelle.md>)

Topics: [Automation](<https://devfeed.tech/topics/automation.md>), [Database](<https://devfeed.tech/topics/database.md>), [Rust](<https://devfeed.tech/topics/rust.md>), [API](<https://devfeed.tech/topics/api.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [architecture](<https://devfeed.tech/tags/architecture.md>), [automated](<https://devfeed.tech/tags/automated.md>), [automation](<https://devfeed.tech/tags/automation.md>), [caching](<https://devfeed.tech/tags/caching.md>), [code](<https://devfeed.tech/tags/code.md>), [data](<https://devfeed.tech/tags/data.md>), [database](<https://devfeed.tech/tags/database.md>)

### AI overview

The article describes Oxide's automated infrastructure operations system, which was cleaned up into a more coherent Rust-based architecture. Webhooks and cron jobs collect data from service APIs into an owned database, allowing scripts and bots to access cached information when services are unavailable. Examples include processing job applications and synchronizing RFD content.

### Source excerpt

I previously wrote a bit about our internal infrastructure in my post on The Art of Automation. This post is going to go into details about our automated Chief infrastructure Officer (CIO). I joke so much that I automated our CIO that I even named the repo holding the code... cio. I took the time this weekend to finally clean up some of this code. Previously, our infrastructure was held together with bash, popsicle sticks, glue, and some rust. Now, it is mostly rust and a much more sane architecture to grok. We also get the freedom of caching all our data in a database that we own so we can access it even when services are down. Previously, we called out to each service's API for every script, bot, or whatever, which can get expensive, slow, and potentially be riddled with rate limits, or worse, downtime. Let me give you a diagram of what this looks like now: Sending data to the database At the very bottom of the diagram, you can see where we are using webhooks and cron jobs to pull data out of various services APIs and send it to the database. Let's dive into a few of these because it is not as simple as a pipe from an API to a database in most cases. Applicants Every applicant to Oxide completes our candidate materials. This is a series of questions about things they've worked on. Those get submitted with their resume and other details into a Google Form. A cron job parses the spreadsheet from the Google Form. In doing so, it knows if an application is new and we need to send an email to the applicant that we received it. It will also send an email to the team that we got a new application. The cron job also parses the materials they submitted and their resume into plain text. Materials can be in the form of HTML, PDF, doc, docx, zip, and even PDF with zip headers ;). The resume and each question in the materials is saved in individual database columns, which makes search and indexing easier when we want to find an application based on something we remember from the

## A Tale of Two 3D Printers (and all additive manufacturing processes)

DevFeed: [A Tale of Two 3D Printers (and all additive manufacturing processes)](<https://devfeed.tech/articles/a-tale-of-two-3d-printers-and-all-additive-manufacturing-processes-35146.md>)

Original publisher: [Read original article](<https://blog.jessfraz.com/post/a-tale-of-two-3d-printers/>)

Published: 2020-06-13T15:09:26Z

Content type: article

Language: en

Sources: [Jessie Frazelle](<https://devfeed.tech/sources/jessie-frazelle.md>)

Topics: [3D](<https://devfeed.tech/topics/3d.md>)

Tags: [3d](<https://devfeed.tech/tags/3d.md>), [3d-printer](<https://devfeed.tech/tags/3d-printer.md>), [3d-printing](<https://devfeed.tech/tags/3d-printing.md>), [manufacturing](<https://devfeed.tech/tags/manufacturing.md>)

### AI overview

An overview of additive manufacturing processes, including the seven categories defined by ASTM F42, followed by the author's technical discussion and experience with two 3D printers using fused deposition modeling and stereolithography.

### Source excerpt

I have wanted a 3D printer for a very long time. I hope you can tell from my ACM Queue column that I like to do a lot of research and I tend to want the best thing. I had been keeping my eyes on the 3D printer product space for quite some time. This article is going to go over the technical details behind 3D printing as well as my experience with two different products. When I finally decided to buy a 3D printer, I wanted to try ones that used different additive manufacturing processes: material extrusion via fused deposition modeling (FDM) and vat polymerization via stereolithography (SLA)1. While I would have loved to have gotten a printer for each of the seven different additive manufacturing processes, I did not. However, I did dig into the details of all the various additive manufacturing processes and technologies. Let's dive in! If you would prefer to skip the research you can jump down to the review. Additive Manufacturing Processes Popular culture uses the term "3D printing" as a synonym for additive manufacturing processes. In 2010, the American Society for Testing and Materials (ASTM) group "ASTM F42 - Additive Manufacturing", formulated a set of standards that classify the range of additive manufacturing processes into seven categories2. The processes vary on the material and machine technology used which has effects on the use cases and applications as well as the economics. Material extrusion Material extrusion defines a process where an object is built by melting and extruding a thermoplastic polymer filament in a predetermined path layer by layer. Imagine if you were building an object and the only material you could use is a tube of toothpaste. You'd slowly build the walls of the object by putting layers of toothpaste on top of each other. Material extrusion is similar. Material extrusion devices are the most commonly available and the cheapest types of 3D printing technology in the world. It represents the largest installed base of 3D printers glob

## Low-cost computers can provide a poor user experience when they have limited specifications

DevFeed: [Low-cost computers can provide a poor user experience when they have limited specifications](<https://devfeed.tech/articles/size-matters-35195.md>)

Original publisher: [Read original article](<https://blog.jessfraz.com/post/size-matters/>)

Published: 2020-05-25T15:09:26Z

Content type: opinion

Language: en

Sources: [Jessie Frazelle](<https://devfeed.tech/sources/jessie-frazelle.md>)

Topics: [User Experience](<https://devfeed.tech/topics/user-experience.md>), [Windows](<https://devfeed.tech/topics/windows.md>), [browser](<https://devfeed.tech/topics/browser.md>), [Chrome](<https://devfeed.tech/topics/chrome.md>)

Tags: [computer](<https://devfeed.tech/tags/computer.md>), [cost](<https://devfeed.tech/tags/cost.md>), [experience](<https://devfeed.tech/tags/experience.md>), [mac](<https://devfeed.tech/tags/mac.md>), [windows](<https://devfeed.tech/tags/windows.md>)

### AI overview

This opinion article argues that inexpensive Windows computers with limited specifications, such as 4GB of RAM, can deliver very slow performance and a poor user experience. It contrasts them with higher-specification MacBook Pro hardware and briefly mentions research on moving processes between computers.

### Source excerpt

My mom has a tendency to buy these really terribly spec'd Windows machines. She's been doing it for as long as I've been alive. I was surprised when on one of our latest Zoom calls she said "You know what, I'm beginning to think that size matters." I've only been telling her this for years! Here's the problem. There are a bunch of shitty Windows machines you can buy that cost around $400 dollars and have something like 4GB RAM. For consumers, this is really compelling; the price seems right. The problem is when they start trying to use the machine to do anything, it runs at a snails pace and leaves them with the world's worst user experience. My mom continually complained about how slow her computer was and I continually said it's because it's a shit machine and you have to spend more to actually get good specs. Apple wouldn't be caught dead selling a machine with 4GB of RAM. They know better than that and care about the experience the end user has. My sister has been lucky enough to never have to buy a computer since she continually inherits my old ones. After my mom had finished saying that "size matters," my sister noted that my MacBookPro I gave her in 2012 still runs great and is fast. This is no surprise to me because at the time I bought that computer it was the top of its line and had 16GB of RAM. Today, that model goes up to 64GB of RAM but 16GB is definitely enough for my sister to run a browser and do what she needs for work (although Chrome is really pushing the limits these days). It infuriates me to no end that consumers have an option of even buying a $400 computer that will give them such a terrible experience. The price is great but the experience is terrible. Even if consumers have a daughter continually telling them that "size matters," they might still make the very innocent mistake of buying the machine and realizing later that it is a lemon. It is not their fault. Manufacturers of computers should be embarrassed for even selling such a shit mac

## Where is the high bandwidth internet for the masses?

DevFeed: [Where is the high bandwidth internet for the masses?](<https://devfeed.tech/articles/where-is-the-high-bandwidth-internet-for-the-masses-35218.md>)

Original publisher: [Read original article](<https://blog.jessfraz.com/post/where-is-the-high-bandwidth-internet-for-the-masses/>)

Published: 2020-05-03T15:09:26Z

Content type: article

Language: en

Sources: [Jessie Frazelle](<https://devfeed.tech/sources/jessie-frazelle.md>)

Topics: [screen](<https://devfeed.tech/topics/screen.md>), [pixel](<https://devfeed.tech/topics/pixel.md>), [Graphics](<https://devfeed.tech/topics/graphics.md>), [Ray Tracing](<https://devfeed.tech/topics/ray-tracing.md>), [Xbox](<https://devfeed.tech/topics/xbox.md>)

Tags: [graphics](<https://devfeed.tech/tags/graphics.md>), [ibm](<https://devfeed.tech/tags/ibm.md>), [japan](<https://devfeed.tech/tags/japan.md>), [pixel](<https://devfeed.tech/tags/pixel.md>), [ray-tracing](<https://devfeed.tech/tags/ray-tracing.md>), [screen](<https://devfeed.tech/tags/screen.md>), [xbox](<https://devfeed.tech/tags/xbox.md>)

### AI overview

The article examines the progression from standard-definition television to HDTV, 4K, and 8K, connecting increasing pixel density with newer game consoles and display technology.

### Source excerpt

Being cooped up at home got me looking into the new Xbox and PlayStation 5. I was curious about the innovations in the consoles since their successors. Both claim to have ray tracing and support for 8K graphics. This then got me thinking about how prevalent 8K televisions are today. 8K televisions seem to be in the same state as 4K televisions a few years ago. One thing I know through my life is that pixel density will continue to get bigger and bigger. I almost wonder if there is a Moore's Law equivalent for pixel density... let's take a look at televisions through the years. Pixel density through the years Standard definition television The first electronic television was invented in 19271. Cable television systems originated in the United States in the late 1940s and were designed to improve reception of commercial network broadcasts in remote and hilly areas2. We can consider the televisions of this time to be what we know of as "standard definition." Standard definition television (SDTV) is designed on the assumption that viewers in the typical home setting are located at a distance equal to six or seven times the height of the picture screen -- on average some 10 feet away. High definition television High definition television (HDTV) has its roots in research that was started by Japan's public broadcaster, NHK, in 19703. For comparison, a 1080i HDTV signal offers about six times the resolution of a conventional 480i SDTV signal. HDTV also features a wider 16:9 aspect ratio format that more closely resembles human peripheral vision than the 4:3 aspect ratio used by conventional TVs in the past. Furthermore, HDTV is based on a system of 3 primary image signal components rather than a single composite signal, thus eliminating the need for signal encoding and decoding processes that can degrade image quality. Perhaps the biggest advantage over the old analog SDTV system is that HDTV is an inherently digital system. 4K resolution In 1984, Hitachi released the CMOS (co

## The Art of Automation

DevFeed: [The Art of Automation](<https://devfeed.tech/articles/the-art-of-automation-35199.md>)

Original publisher: [Read original article](<https://blog.jessfraz.com/post/the-art-of-automation/>)

Published: 2020-04-18T13:09:26Z

Content type: opinion

Language: en

Sources: [Jessie Frazelle](<https://devfeed.tech/sources/jessie-frazelle.md>)

Topics: [Automation](<https://devfeed.tech/topics/automation.md>), [Script](<https://devfeed.tech/topics/script.md>), [API](<https://devfeed.tech/topics/api.md>)

Tags: [automate](<https://devfeed.tech/tags/automate.md>), [automation](<https://devfeed.tech/tags/automation.md>), [tasks](<https://devfeed.tech/tags/tasks.md>)

### AI overview

An essay about automating repetitive tasks to save time and improve productivity. It discusses personal automation practices, common patterns in tools such as Apple's Shortcuts, home automation, and IFTTT, and the tradeoff between automation effort and future manual work and maintenance.

### Source excerpt

I am unsure if my love of automation comes from a dislike of doing the same thing twice or an overall desire to be more productive and make everything more efficient. Like a lot of programmers, I often ask myself "can this be scripted" when I find myself doing a manual task. I was inspired recently by reading Wolfram's writing on his personal infrastructure for productivity1. I, too, have written about my personal infrastructure2, but not at the level of depth or with the same focus on productivity as Wolfram. There is no time like the present to take another swing at it! Not only do I want to touch on some of the ways I have automated tasks in my life, I also want to spend some time unpacking how common automation patterns are starting to appear in a lot of things people use day to day. Apple's Shortcuts, home automation, and IFTTT make automation patterns available to the masses in a way that is unprecedented. Before diving into the details, let's first answer the question of why. Why automate? Time is one of the most valuable resources in the world. If there was something you could do to free more time for yourself, why wouldn't you? When I automate myself out of a task I transfer the burden of doing said task to some other script, service, API, or a combination of all of these. I, personally, feel at my best and most productive when I am building something, solving a problem, or learning something new. In none of those situations does that include "doing something manual that could otherwise be scripted/automated away." Or when it does... I automate it away. In any circumstance when I find myself in a position to automate something, I will automate it. Especially if I consider the time spent automating the task to be less than any time spent in the future doing the task manually. This is the ultimate pay off: time. I like to think of automation as the following equation. $$ \begin{equation} time \ gained = (time \ doing \ task \ manually) - (time \ to \ automate \

## The Life of a Data Byte

DevFeed: [The Life of a Data Byte](<https://devfeed.tech/articles/the-life-of-a-data-byte-35206.md>)

Original publisher: [Read original article](<https://blog.jessfraz.com/post/the-life-of-a-data-byte/>)

Published: 2020-03-08T08:09:26Z

Content type: article

Language: en

Sources: [Jessie Frazelle](<https://devfeed.tech/sources/jessie-frazelle.md>)

Topics: [data](<https://devfeed.tech/topics/data.md>), [ASCII](<https://devfeed.tech/topics/ascii.md>), [Code](<https://devfeed.tech/topics/code.md>), [digital](<https://devfeed.tech/topics/digital.md>)

Tags: [ascii](<https://devfeed.tech/tags/ascii.md>), [code](<https://devfeed.tech/tags/code.md>), [data](<https://devfeed.tech/tags/data.md>), [digital](<https://devfeed.tech/tags/digital.md>), [encoding](<https://devfeed.tech/tags/encoding.md>), [storage](<https://devfeed.tech/tags/storage.md>), [unicode](<https://devfeed.tech/tags/unicode.md>)

### AI overview

An overview of how bits and bytes have been stored across historical and modern media, followed by an explanation of character encoding with ASCII, Unicode, UTF-8, UTF-16, and UTF-32.

### Source excerpt

A byte of data has been stored in a number of different ways as newer, better, and faster mediums of storage are introduced. A byte is a unit of digital information that most commonly refers to eight bits. A bit is a unit of information that can be expressed as 0 or 1, representing logical state. In the case of paper cards, a bit was stored as the presence or absence of a hole in the card at a specific place. If we go even further back in time to Babbage's Analytical Engine, a bit was stored as the position of a mechanical gear or lever. For magnetic storage devices, such as tapes and disks, a bit is represented by the polarity of a certain area of the magnetic film. In modern dynamic random-access memory (DRAM), a bit is often represented as two levels of electrical charge stored in a capacitor, a device that stores electrical energy in an electric field. In June 1956, Werner Buchholz1 coined the word byte2 to refer to a group of bits used to encode a single character of text3. Let's go over a bit about character encoding. We will start with American Standard Code for Information Interchange, or ASCII. ASCII was based on the English alphabet, therefore every letter, digit, and symbol (a-z, A-Z, 0-9, +, -, /, ", ! etc) were represented as a 7 bit integer between 32 and 127. This wasn't very friendly to other languages. In order to support other languages, Unicode extended ASCII. With Unicode, each character is represented as a code-point, or character, for example a lower case j is U+006A, where the U stands for Unicode and after that is a hexadecimal number. UTF-8 is the standard for representing characters as eight bits, allowing every code-point between 0-127 to be stored in a single byte. If we think back to ASCII this is fine for English characters, but other language's characters are often expressed as two or more bytes. UTF-16 is the standard for representing characters as 16 bits and UTF-32 is the standard for representing characters as 32 bits. In ASCII eve

## How Data Centers Use Renewable Energy Credits and Carbon Accounting

DevFeed: [How Data Centers Use Renewable Energy Credits and Carbon Accounting](<https://devfeed.tech/articles/power-to-the-people-35185.md>)

Original publisher: [Read original article](<https://blog.jessfraz.com/post/power-to-the-people/>)

Published: 2020-02-26T15:09:26Z

Content type: opinion

Language: en

Sources: [Jessie Frazelle](<https://devfeed.tech/sources/jessie-frazelle.md>)

Topics: [datacenter](<https://devfeed.tech/topics/datacenter.md>), [cloud-infrastructure](<https://devfeed.tech/topics/cloud-infrastructure.md>), [Cloud](<https://devfeed.tech/topics/cloud.md>), [data](<https://devfeed.tech/topics/data.md>), [amazon](<https://devfeed.tech/topics/amazon.md>), [Google](<https://devfeed.tech/topics/google.md>), [Microsoft](<https://devfeed.tech/topics/microsoft.md>), [Netflix](<https://devfeed.tech/topics/netflix.md>)

Tags: [amazon](<https://devfeed.tech/tags/amazon.md>), [cloud](<https://devfeed.tech/tags/cloud.md>), [data-center](<https://devfeed.tech/tags/data-center.md>), [data-centers](<https://devfeed.tech/tags/data-centers.md>), [electricity-grid](<https://devfeed.tech/tags/electricity-grid.md>), [energy](<https://devfeed.tech/tags/energy.md>), [google](<https://devfeed.tech/tags/google.md>), [microsoft](<https://devfeed.tech/tags/microsoft.md>), [netflix](<https://devfeed.tech/tags/netflix.md>), [renewable-energy](<https://devfeed.tech/tags/renewable-energy.md>), [servers](<https://devfeed.tech/tags/servers.md>)

### AI overview

The article explains how cloud services depend on large data centers and distinguishes carbon neutral, net zero, and carbon negative claims. It argues that renewable energy credits and avoidance offsets do not remove the carbon emitted by data centers, while net zero requires removing an equivalent amount of carbon.

### Source excerpt

When you upload photos to Instagram, back up your phone to "the cloud", send an email through GMail, or save a document in a storage application like Dropbox or Google Drive, your data is being saved in a data center. These data centers are airplane hangar-sized warehouses, packed to the brim with racks of servers and cooling mechanisms. Depending on the application you are using you are likely hitting one of Facebook's, Google's, Amazon's, or Microsoft's data centers. Aside from those major players, which we will call the "hyperscalers", many other companies run their own data centers or rent space from a colocation center to house their server racks. Most of the hyperscalers have made massive strides to get a "carbon neutral" footprint for their data centers. Google, Amazon, and Microsoft have all pledged to decarbonize completely, however none has succeeded in completely ditching fossil fuels as of yet. If a company claims to be "carbon neutral" it means they are offsetting their use of fossil fuels with renewable energy credits, also known as RECs1. A REC represents one megawatt-hour (MWh) of electricity that is generated and delivered to the electricity grid from a renewable energy resource such as solar or wind power. Essentially by purchasing RECs, "carbon neutral" companies are giving back clean energy to prevent someone else from emitting carbon. Most companies become "carbon neutral" by investing in offsets that primarily avoid emissions, such as paying folks to not cut down trees or buying RECs. These offsets do not actually remove the carbon that they are emitting. A "net zero" company actually has to remove as much carbon as it emits. This is referred to as "net zero" since a company is still creating carbon emissions, however their emissions are equal to the amount of carbon removed. This differs from "carbon neutral" since a "carbon neutral" company takes a look at their carbon footprint and has to prevent enough other folks from emitting that much ca

## Network booted, home initialized

DevFeed: [Network booted, home initialized](<https://devfeed.tech/articles/network-booted-home-initialized-35181.md>)

Original publisher: [Read original article](<https://blog.jessfraz.com/post/network-booted-home-initialized/>)

Published: 2020-01-17T15:25:24Z

Content type: article

Language: en

Sources: [Jessie Frazelle](<https://devfeed.tech/sources/jessie-frazelle.md>)

Topics: [Homelab](<https://devfeed.tech/topics/homelab.md>), [Network design](<https://devfeed.tech/topics/network-design.md>), [Ethernet](<https://devfeed.tech/topics/ethernet.md>), [gateway](<https://devfeed.tech/topics/gateway.md>)

Tags: [ethernet](<https://devfeed.tech/tags/ethernet.md>), [gateway](<https://devfeed.tech/tags/gateway.md>), [home-lab](<https://devfeed.tech/tags/home-lab.md>), [like](<https://devfeed.tech/tags/like.md>), [network](<https://devfeed.tech/tags/network.md>), [setup](<https://devfeed.tech/tags/setup.md>), [unifi](<https://devfeed.tech/tags/unifi.md>)

### AI overview

The article describes building an office network based on the author's home-lab setup. It covers a 48-port switch, UniFi equipment, Cat7 cabling, a Dream Machine gateway, wireless access points, cameras, and an isolated AmpliFi Alien network for lab equipment or other devices.

### Source excerpt

I had a lot of fun writing blog posts in the past about my home lab and some of my personal infrastructure so I thought I would do the same as we built out our office. Much like moving into a new place, the first thing I always plan to have setup on move-in day is internet. We did the same with our office as well. Before we even had any real furniture, we made sure that we had a network connection. You may recognize that furniture from the garage. For the office I really wanted our network infrastructure to be off-the-charts good. Everyone knows shitty internet is a productivity killer. Since I use UniFi for my network setup at home, we used the same for the office. Here's what we got: 48 Port Switch Dream Machine 2 Wifi APs A couple of cameras Amplifi Alien The Switch We have a hard line coming from the 48 port switch to each section of desks. I cabled all this myself. As we grow we will likely segment this off to each desk having its own little 4- or 8-port network switch but for now this works. The Cables All the cables running to the desks are Cat7s from Monoprice. Every type of cable has a maximum distance. For ethernet cables, the maximum distance is the maximum upload/download speed. Cat7 gets praised for its 100 Gbps speed, but that will only work for distances up to 15 meters (slightly over 49 feet). From 15 meters up to 50 meters, a Cat7 cable downgrades to 40 Gbps. Beyond that, it drops to the same 10 Gbps speed of Cat6 and Cat6a, however it still retains its superior 600 Mhz bandwidth. We use 100ft cables to the desks and 50ft cables wherever we can reach to maximize speed. The Router The Dream Machine is acting as our gateway and controller. Before we got the other 2 APs, it was our only access point and did a great job of that. The Access Points We have a large warehouse with a lot of square feet, while the Dream Machine does have coverage to every corner, it's nice to have a strong signal from anywhere in the office. As we grow we will have more and m

## Oxide Computer Company formed to build integrated hardware and software for on-premises infrastructure

DevFeed: [Oxide Computer Company formed to build integrated hardware and software for on-premises infrastructure](<https://devfeed.tech/articles/born-in-a-garage-35151.md>)

Original publisher: [Read original article](<https://blog.jessfraz.com/post/born-in-a-garage/>)

Published: 2019-12-02T13:09:26Z

Content type: opinion

Language: en

Sources: [Jessie Frazelle](<https://devfeed.tech/sources/jessie-frazelle.md>)

Topics: [Hardware](<https://devfeed.tech/topics/hardware.md>), [Software](<https://devfeed.tech/topics/software.md>), [Architecture & Design](<https://devfeed.tech/topics/architecture-design.md>), [cloud-infrastructure](<https://devfeed.tech/topics/cloud-infrastructure.md>)

Tags: [docker](<https://devfeed.tech/tags/docker.md>), [environment](<https://devfeed.tech/tags/environment.md>), [go](<https://devfeed.tech/tags/go.md>), [hardware](<https://devfeed.tech/tags/hardware.md>), [infrastructure](<https://devfeed.tech/tags/infrastructure.md>), [kubernetes](<https://devfeed.tech/tags/kubernetes.md>), [latency](<https://devfeed.tech/tags/latency.md>), [security](<https://devfeed.tech/tags/security.md>), [software](<https://devfeed.tech/tags/software.md>)

### AI overview

The article announces the formation of Oxide Computer Company by Steve Tuck, Bryan Cantrill, and the author. The company aims to address the challenges of running infrastructure on premises by integrating hardware and software, with stated goals including better power distribution, density, and energy efficiency.

### Source excerpt

WE STARTED A COMPUTER COMPANY!! You have no idea how long I've been waiting to say that! I guess some context would help... Steve Tuck, Bryan Cantrill, and I officially started the Oxide Computer Company. Since then, we've been working on closing up fundraising, getting an awesome office, and hiring! You are probably thinking "a computer company? that's outrageous!".. well it is and it isn't. Over the last year, I had the opportunity to spend a lot of time talking with folks who are currently running workloads on premises. The consensus from all my conversations has been that everyone setting up infrastructure themselves is in a great deal of pain and they have been largely neglected by any existing vendor. All these folks have very good reasons for running on premises that include security, strategic reasons like latency, specialized workloads, or the reality that the unit economics of running at their scale in the cloud are unsustainable. I've had the privilege of working on projects in my career that have had a positive impact on a lot of people - from Docker, to the Go programming language, to Kubernetes. Over the course of talking to folks, I soon realized that working on solving the pain for those running on premises would have a huge amount of impact. Hyperscalers like Facebook, Google, and Microsoft have what I like to call "infrastructure privilege" since they long ago decided they could build their own hardware and software to fulfill their needs better than commodity vendors. We are working to bring that same infrastructure privilege to everyone else! This leads to better integration between the hardware and software stacks, better power distribution, and better density. It's even better for the environment due to the energy consumption wins! I can't think of a better problem space and group of folks to work with to build a company. I've known both Bryan and Steve from the container conference circuit and couldn't pass up an opportunity to work with both of

## Tales from Firmware Camp

DevFeed: [Tales from Firmware Camp](<https://devfeed.tech/articles/tales-from-firmware-camp-35197.md>)

Original publisher: [Read original article](<https://blog.jessfraz.com/post/tales-from-firmware-camp/>)

Published: 2019-09-10T15:09:26Z

Content type: opinion

Language: en

Sources: [Jessie Frazelle](<https://devfeed.tech/sources/jessie-frazelle.md>)

Topics: [coreboot](<https://devfeed.tech/topics/coreboot.md>), [Embedded Software Dev](<https://devfeed.tech/topics/embedded-software-dev.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>), [Raspberry Pi](<https://devfeed.tech/topics/raspberry-pi.md>), [Linux](<https://devfeed.tech/topics/linux.md>), [Linux Kernel](<https://devfeed.tech/topics/linux-kernel.md>)

Tags: [coreboot](<https://devfeed.tech/tags/coreboot.md>), [cpu](<https://devfeed.tech/tags/cpu.md>), [dhcp](<https://devfeed.tech/tags/dhcp.md>), [firmware](<https://devfeed.tech/tags/firmware.md>), [hackathon](<https://devfeed.tech/tags/hackathon.md>), [interface](<https://devfeed.tech/tags/interface.md>), [linux](<https://devfeed.tech/tags/linux.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [spi](<https://devfeed.tech/tags/spi.md>)

### AI overview

A personal account of an Open Source Firmware Conference hackathon, where the author worked on running Coreboot and OpenBMC on a Supermicro X10SLM-F board. The team inspected and flashed BMC firmware using SPI tools, configured network access through IPMI and dnsmasq, and investigated support for the board's ASPEED 2400 BMC.

### Source excerpt

Last week I attended the Open Source Firmware Conference. It was amazing! The talks, people, and overall feel of the conference really left me feeling inspired and lucky to attend. Having been pushed to attend vendor conferences and trade shows through my career for various jobs, it was so refreshing to have the chance to hang out with folks from such a genuine community that really just want to help one another. When the talks hit YouTube you should be sure to check them out (I also tweeted about a few of them). What I will focus on in this post was the last two days of the conference that were devoted to the hackathon. I had bought a X10SLM-F Supermicro board off of eBay a few months ago that I wanted to run CoreBoot on. If you are interested in finding a board that will work with CoreBoot, you should check its status on the status page. I had been talking to Zaolin about wanting a board to hack on and he recommended this one. At the hackathon, we decided to start with the BMC instead of the CPU BIOS. This made for some fun problems and definitely a lot of lessons learned. I had a Dediprog SF100 flash programmer I brought to the hackathon as well. Some people use RaspberryPis as their flash programmer but the Dediprog was recommended to me and definitely came in handy. However, if you want a cheaper alternative there are a bunch of ways you can skin that cat. To get started, we read the original binary off the SPI flash... this worked fairly simply. We used the opensource dpcmd tool from dediprog to do it. But you could also use flashrom. While inspecting the original binary, we found the string linux a few times... as well as a MAC adress, boot commands, IP address, and some other interesting strings. Before flashing on new firmware we also made sure the board actually booted the BMC. We didn't have access to any console so we made due with an IPMI LAN port and dnsmasq to work with DHCP. It worked and we got into the BMC user interface over the web. If you've ever us

## Transactional Memory and Tech Hype Waves

DevFeed: [Transactional Memory and Tech Hype Waves](<https://devfeed.tech/articles/transactional-memory-and-tech-hype-waves-35213.md>)

Original publisher: [Read original article](<https://blog.jessfraz.com/post/transactional-memory-and-tech-hype-waves/>)

Published: 2019-08-14T15:09:26Z

Content type: opinion

Language: en

Sources: [Jessie Frazelle](<https://devfeed.tech/sources/jessie-frazelle.md>)

Topics: [Concurrency](<https://devfeed.tech/topics/concurrency.md>), [Deadlock](<https://devfeed.tech/topics/deadlock.md>), [Database](<https://devfeed.tech/topics/database.md>), [intel](<https://devfeed.tech/topics/intel.md>)

Tags: [attacks](<https://devfeed.tech/tags/attacks.md>), [database](<https://devfeed.tech/tags/database.md>), [deadlock](<https://devfeed.tech/tags/deadlock.md>), [intel](<https://devfeed.tech/tags/intel.md>), [side-channel](<https://devfeed.tech/tags/side-channel.md>), [synchronization](<https://devfeed.tech/tags/synchronization.md>)

### AI overview

The article explains transactional memory, including Intel's Transactional Synchronization Extensions (TSX), as a way to avoid deadlocks while potentially introducing livelocks. It compares transactional memory with database transactions and discusses speculative outcomes, TSX abort handlers, and possible side-channel security concerns.

### Source excerpt

At lunch today I learned about Transactional Synchronization Extensions (TSX) which is an implementation of transactional memory. The conversation started as a rant about why transactional memory is bad but then it evolved into how this concept even came to be and how it even got implemented if it's such a terrible idea. What is transactional memory? First let's start by going over what transactional memory is. You might be familiar with a deadlock. A deadlock occurs when a process or thread is waiting for a specific resource, which is also waiting on a different resource that is being held by another waiting process. You can think of this as P1 needs R1 and has R2, while in turn P2 needs R2 and has R1. That is a deadlock. Transactional memory removes the possibility of getting a deadlock and replaces it with what is known as a livelock. A livelock happens when processes are constantly changing with regard to one another but neither of them move forward or progress in anyway. Imagine you are walking down the street while another person is heading towards you. You move to the right to avoid running into them as they also move in that direction to avoid running into you. You both then move to the other side so as to not run into each other. This repeats over and over again with no progress forward since both people are moving in the same direction. That is a livelock. With transactional memory you no longer have deadlocks but livelocks. Why is this? Well, transactional memory works very similarly to database transactions. A transaction is a group of operations that can execute and commit changes as long as there are no conflicts. If there is a conflict, it will start from state zero and try to run again until there are no conflicts. Therefore, until there is a successful commit of a run, the outcome of any operation is speculative. Intel's implementation of TSX behaves in such a way that when a transaction aborts due to a hardware exception, it does not fire typical e

## The Business Executive's Guide to Kubernetes

DevFeed: [The Business Executive's Guide to Kubernetes](<https://devfeed.tech/articles/the-business-executive-s-guide-to-kubernetes-35203.md>)

Original publisher: [Read original article](<https://blog.jessfraz.com/post/the-business-executives-guide-to-kubernetes/>)

Published: 2019-07-23T15:09:26Z

Content type: opinion

Language: en

Sources: [Jessie Frazelle](<https://devfeed.tech/sources/jessie-frazelle.md>)

Topics: [Kubernetes](<https://devfeed.tech/topics/kubernetes.md>), [Databases](<https://devfeed.tech/topics/databases.md>), [data](<https://devfeed.tech/topics/data.md>), [Replication](<https://devfeed.tech/topics/replication.md>), [dashboards](<https://devfeed.tech/topics/dashboards.md>)

Tags: [challenges](<https://devfeed.tech/tags/challenges.md>), [control-plane](<https://devfeed.tech/tags/control-plane.md>), [data](<https://devfeed.tech/tags/data.md>), [database](<https://devfeed.tech/tags/database.md>), [kubernetes](<https://devfeed.tech/tags/kubernetes.md>)

### AI overview

This opinion article explains Kubernetes considerations for business leaders, focusing on challenges with stateful data and the need for separate data-replication mechanisms. It also warns that organizations may expose or fail to secure the Kubernetes control-plane dashboard.

### Source excerpt

Hello! I thought it would be fun to write a post aimed towards business leaders making technology decisions for their organizations. There is a lot of hype in our field and little truth behind the hype. Like most things I write about, this started from an idea I had on Twitter: has anyone ever done technical breakdowns of these products in Gartner reports that are actually just trash, is this something you'd read..? -- jessie frazelle 👩🏼🚀 (@jessfraz) July 24, 2019 This post will cover some hard truths of Kubernetes and what it means for your organization and business. You might have heard the term "Kubernetes" and you might have been led to believe that this will solve all the infrastructure pain for your organization. There is some truth to that, which will not be the focus of this post. To get to the state of enlightenment with Kubernetes, you need to first go through some hard challenges. Let's dive in to some of these hard truths. Stateful Data is Hard Kubernetes is not to be used for stateful data. There has been a lot of work done in this area but it is still not sufficent. For the more technical members of our audience I direct you to exhibit A. The linked issue goes over problems when a "StatefulSet" gets into an error during deploying or upgrading. This can lead to data loss or corruption since Kubernetes will need manual intervention to fix the state of the deployment. This could even lead to the point where the only recommended fix is you delete the state. What does this mean for your business? Well, if you lose or corrupt your data it could mean a lot of different things depending on what the data was. If the data was your customer database of new account signups, well you might have just lost the data for your new customers. If you are an ecommerce site, it might have been your latest sale. If you are in banking or investments, it might have been data accounting for the movement of capital. Databases holding valuable information like the examples above

## Linux Observability with BPF

DevFeed: [Linux Observability with BPF](<https://devfeed.tech/articles/linux-observability-with-bpf-35178.md>)

Original publisher: [Read original article](<https://blog.jessfraz.com/post/linux-observability-with-bpf/>)

Published: 2019-07-10T15:25:24Z

Content type: opinion

Language: en

Sources: [Jessie Frazelle](<https://devfeed.tech/sources/jessie-frazelle.md>)

Topics: [Linux](<https://devfeed.tech/topics/linux.md>), [observability](<https://devfeed.tech/topics/observability.md>), [Kernel](<https://devfeed.tech/topics/kernel.md>), [Docker](<https://devfeed.tech/topics/docker.md>), [Cilium](<https://devfeed.tech/topics/cilium.md>), [networking](<https://devfeed.tech/topics/networking.md>)

Tags: [bug](<https://devfeed.tech/tags/bug.md>), [centos](<https://devfeed.tech/tags/centos.md>), [cilium](<https://devfeed.tech/tags/cilium.md>), [docker](<https://devfeed.tech/tags/docker.md>), [kernel](<https://devfeed.tech/tags/kernel.md>), [linux](<https://devfeed.tech/tags/linux.md>), [networking](<https://devfeed.tech/tags/networking.md>), [observability](<https://devfeed.tech/tags/observability.md>)

### AI overview

A foreword for the book Linux Observability with BPF explains the author's interest in BPF and XDP, including their use for Linux kernel tracing, container networking, and replacing some iptables-based functionality. It also discusses Docker's iptables-related challenges and mentions Cilium, Cloudflare, and Facebook use cases.

### Source excerpt

Below is the foreward for the new book on Linux Observability with BPF by two of my favorite programmers, David Calavera and Lorenzo Fontana! I was pretty stoked about getting to write the foreward, I asked O'Reilly if I could publish it on my blog as well and they said yes. I hope you all check out this book and share what you've built after! As a programmer (and a self confessed dweeb) I like to stay up to date on the latest additions to various kernels and research in computing. When I first played around with Berkeley Packet Filters (BPF) and Express Data Path (XDP) in Linux I was in love. This is such a NICE THING and I am glad this book is putting BPF and XDP on the center stage so more people can start using it in their projects. Let me go into detail about my background and why I fell in love with these kernel interfaces... I worked as a Docker core maintainer, along with David (one of the brilliant authors of this book). Docker, if you are not familiar, shells out to iptables for a lot of the filtering and routing logic for containers. The first patch I ever made to Docker was fixing a problem where a version of iptables on CentOS didn't have the same command-line flags so writing to iptables was failing. There were a lot of weird issues like this and anyone who has ever shelled out to a tool in their software can likely commiserate. Not only that, having thousands of rules on a host is not what iptables was built for and has performance side effects because of it. Then I heard about BPF and XDP. This was like music to my ears. No longer would my scars from iptables bleed with another bug! The kernel community is even working on replacing iptables with BPF! Halleluyah! Cilium, container networking, is using BPF and XDP for the internals of their project as well. But that's not all! BPF can do so much more than just fulfilling the iptables use case. With BPF, you can trace any syscall or kernel function as well as any user-space program. bpftrace gives users d

## Corollary to the Hard Thing about Hard Things

DevFeed: [Corollary to the Hard Thing about Hard Things](<https://devfeed.tech/articles/corollary-to-the-hard-thing-about-hard-things-35157.md>)

Original publisher: [Read original article](<https://blog.jessfraz.com/post/corollary-to-the-hard-thing-about-hard-things/>)

Published: 2019-05-15T15:09:26Z

Content type: opinion

Language: en

Sources: [Jessie Frazelle](<https://devfeed.tech/sources/jessie-frazelle.md>)

Topics: [communications](<https://devfeed.tech/topics/communications.md>), [Internet](<https://devfeed.tech/topics/internet.md>)

Tags: [blog-post](<https://devfeed.tech/tags/blog-post.md>), [opinion](<https://devfeed.tech/tags/opinion.md>)

### AI overview

An opinion piece reflecting on power dynamics in leadership and workplace communication. Drawing on Ben Horowitz's The Hard Thing about Hard Things, it argues that limited views of people can distort how leaders' actions and feedback are perceived, and encourages openness, apologies, feedback, and room for mistakes and growth.

### Source excerpt

"Can I get an encore, do you want more" - Jay-Z I recently read Ben Horowitz's book, The Hard Thing about Hard Things. It's really eye opening and creates a level of empathy in the reader for leaders that make hard decisions every day. It covers everything from how to know your company is toxic to how to do layoffs. Ben starts each chapter with a rap quote so as did I above ;) obviously I chose Jay-Z but I also love Tupac, as is shown by my first blog post ever. I have a corollary to this: power dynamics. I, personally, have seen and experienced what it is like being a leader when no one really has a full view of who you are as a person. I try to always be authentic and personable, but the fact of the matter is: we are all humans and we all have off days. Most people only get a view of who I am through Twitter, but that is not fully who I am. I think that is the case for most people on that website. For executives of companies or leaders of large teams, the same holds true: you only see a small subset, through very limited communication, of who they really are. At work, I like to move fast and get things done. This may result in abrupt communications which is not typical of how I am on the internet. Even more so, if I was to give feedback or an opinion on something, someone might feel it with the heat of a thousand suns and think it is aggressive, even if that is not how I intended it. The best we can do is apologize and grow when we fuck up. Another example would be if someone in a position of power asks someone to do something. The person without the power might think they have to do it a certain way and can't push back. We can try to solve this by always making an effort to ask for other's opinions and feedback. I really do not enjoy when people hero worship me and I do not think people should hero worship anyone. We are all humans and we are all flawed in our own ways. Anyone who believes someone to be perfect will soon find that they are not. This holds true fo

## Why open source firmware is important for security

DevFeed: [Why open source firmware is important for security](<https://devfeed.tech/articles/why-open-source-firmware-is-important-for-security-35219.md>)

Original publisher: [Read original article](<https://blog.jessfraz.com/post/why-open-source-firmware-is-important-for-security/>)

Published: 2019-05-08T15:09:26Z

Content type: article

Language: en

Sources: [Jessie Frazelle](<https://devfeed.tech/sources/jessie-frazelle.md>)

Topics: [Open Source](<https://devfeed.tech/topics/open-source.md>), [Security](<https://devfeed.tech/topics/security.md>), [UEFI](<https://devfeed.tech/topics/uefi.md>), [Kernel](<https://devfeed.tech/topics/kernel.md>), [Xen](<https://devfeed.tech/topics/xen.md>), [cpu](<https://devfeed.tech/topics/cpu.md>), [intel](<https://devfeed.tech/topics/intel.md>), [x86](<https://devfeed.tech/topics/x86.md>)

Tags: [cpu](<https://devfeed.tech/tags/cpu.md>), [firmware](<https://devfeed.tech/tags/firmware.md>), [intel](<https://devfeed.tech/tags/intel.md>), [kernel](<https://devfeed.tech/tags/kernel.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [operating-systems](<https://devfeed.tech/tags/operating-systems.md>), [security](<https://devfeed.tech/tags/security.md>), [uefi](<https://devfeed.tech/tags/uefi.md>), [x86](<https://devfeed.tech/tags/x86.md>), [xen](<https://devfeed.tech/tags/xen.md>)

### AI overview

The article explains why open-source firmware matters for security. It examines privilege levels below the operating-system kernel, focusing on SMM and UEFI at Ring -2 and Intel Management Engine at Ring -3, where proprietary code has extensive system privileges and limited visibility.

### Source excerpt

I gave a talk recently at GoTo Chicago on Why open source firmware is important and I thought it would be nice to also write a blog post with my findings. This post will focus on why open source firmware is important for security. Privilege Levels In your typical "stack" today you have the various levels of privileges. Ring 3 - Userspace: has the least amount of privileges, short of there being a sandbox in userspace that is restricted further. Ring 0 - Kernel: The operating system kernel, for open source operating systems you get visibility into the code behind this. Ring -1 - Hypervisor: The virtual machine monitor (VMM) that creates and runs virtual machines. For open source hypervisors like Xen, KVM, bhyve, etc you have visibility into the code behind this. Ring -2 - System Management Mode (SMM), UEFI kernel: Proprietary code, more on this below. Ring -3 - Management Engine: Proprietary code, more on this below. The negative rings were made up because there was no other way to express something with more privileges. From the above, it's pretty clear that for Rings -1 to 3, we have the option to use open source software and have a large amount of visibility and control over the software we run. For the privilege levels under Ring -1, we have less control but it is getting better with the open source firmware community and projects. It's counter-intuitive that the code that we have the least visibility into has the most privileges. This is what open source firmware is aiming to fix. Ring -2: SMM, UEFI kernel This ring controls all CPU resources. System management mode (SMM) is invisible to the rest of the stack on top of it. It has half a kernel. It was originally used for power management and system hardware control. It holds a lot of the proprietary designed code and is a place for vendors to add new proprietary features. It handles system events like memory or chipset errors as well as a bunch of other logic. The UEFI Kernel is extremely complex. It has million

## Challenge Accepted: Transposit

DevFeed: [Challenge Accepted: Transposit](<https://devfeed.tech/articles/challenge-accepted-transposit-35154.md>)

Original publisher: [Read original article](<https://blog.jessfraz.com/post/challenge-accepted-transposit/>)

Published: 2019-04-23T07:09:26Z

Content type: tutorial

Language: en

Sources: [Jessie Frazelle](<https://devfeed.tech/sources/jessie-frazelle.md>)

Topics: [API](<https://devfeed.tech/topics/api.md>), [Code](<https://devfeed.tech/topics/code.md>), [GitHub](<https://devfeed.tech/topics/github.md>), [SQL](<https://devfeed.tech/topics/sql.md>), [Bot](<https://devfeed.tech/topics/bot.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [bots](<https://devfeed.tech/tags/bots.md>), [code](<https://devfeed.tech/tags/code.md>), [github](<https://devfeed.tech/tags/github.md>), [graphql](<https://devfeed.tech/tags/graphql.md>), [join](<https://devfeed.tech/tags/join.md>), [pagination](<https://devfeed.tech/tags/pagination.md>), [query](<https://devfeed.tech/tags/query.md>), [sql](<https://devfeed.tech/tags/sql.md>)

### AI overview

The author describes testing Transposit's SQL interface for combining multiple APIs, using a GitHub bot that syncs issues and pull requests to Airtable as a complex example.

### Source excerpt

Last week, I had the pleasure of meeting with the Transposit team in San Francisco. Tech is a super small world and it turns out the two founders and I are separated by one-degree through several different people we know. In meeting them I closed many loops without even realizing it, but I digress... Their product is really cool, it exposes a SQL interface for interacting with numerous APIs at once. For someone like myself who deploys a lot of bots, this is great. Usually when I have a complex bot I end up writing a lot of "glue code" to combine a few different APIs and get the information I want. Most of my bots have some sort of pagination logic and all have the N+1 problem where I don't really optimize my queries or use anything fancy like graphQL. Many APIs don't even have graphQL interfaces but also I am old school and I don't really want to learn something new. This is why I was super intrigued by Transposit's SQL interface, because hey, I know SQL! Adam, the CEO, challenged me to try it out, give them feedback, and see if I could break it with something complex. I am not one to back down from a challenge and I have some super weird ass bots, so I decided to start with the weirdest. Gitable Gitable is a bot I made for sending all my open issues and PRs on GitHub to a table in Airtable. I fucking love Airtable. It's design just feels right and works the way my brain works. I set out to make this bot work in Transposit because I know it has some super weird loops and has the N+1 problem where I loop over all my repos, then make another API call after. To reiterate, the goal of the bot is to iterate through all my repos on GitHub and sync the list of issue and PRs with a table in Airtable. Query all the user's repos First, I need to get all my repos that are not forks. So I need a SQL query for this, in Transposit it looks like this: SELECT name, full_name FROM github.list_repos_for_user WHERE username=@owner AND type='owner' AND fork=false The github.list_repos_fo

## Questions I'd Ask My Cloud Provider

DevFeed: [Questions I'd Ask My Cloud Provider](<https://devfeed.tech/articles/questions-i-d-ask-my-cloud-provider-35186.md>)

Original publisher: [Read original article](<https://blog.jessfraz.com/post/questions-id-ask-my-cloud-provider/>)

Published: 2019-04-15T15:09:26Z

Content type: opinion

Language: en

Sources: [Jessie Frazelle](<https://devfeed.tech/sources/jessie-frazelle.md>)

Topics: [Cloud](<https://devfeed.tech/topics/cloud.md>), [Security](<https://devfeed.tech/topics/security.md>), [vulnerability](<https://devfeed.tech/topics/vulnerability.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>)

Tags: [cloud](<https://devfeed.tech/tags/cloud.md>), [feature](<https://devfeed.tech/tags/feature.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [product](<https://devfeed.tech/tags/product.md>), [security](<https://devfeed.tech/tags/security.md>), [vulnerability](<https://devfeed.tech/tags/vulnerability.md>)

### AI overview

The author proposes questions to ask cloud providers before buying a product, covering the problem being solved, implementation, threat modeling, security standards, breach disclosure, vulnerability response, open-source components, and customer research.

### Source excerpt

I came up with a list of questions I would ask my cloud provider if I was buying a product. They are as follows: 1. What problem is this solving? I would ask this to make sure I even need this product. So many people tend to buy into the hype for "shiny", they miss if they even needed the thing in the first place. 2. How did you implement this? What is your threat model? So much of the cloud is built on popsicle sticks and glue. Does that make you feel safe at night knowing your customer data is being stored in a proof of concept that was shipped before it should have been? Best to get your security team to assess if the product is actually built on the providers side up to standard. This does not mean what you see as a customer, it means the proprietary bits you cannot see. What does the service license agreement say for what happens if the provider themselves is hacked? Do they have to tell you or can they just sweep it under the rug? What if a vulnerability comes out on the open source project they are using, do they have to give you a risk assessment as to if you were hacked? What if they don't know if they were hacked after a vulnerability is public? Red flag... If they themselves do not know their own threat model, that should be a huge warning sign. Bonus points if their implementation is open source; but I will let you in on a secret, most aren't. The exception is Joyent :) 3. What customers did you speak to before building this feature? Ties back to number one, what problem is this solving? So often these features seem to be built for fun or based off a feeling a product manager had. Hope this helps! I will probably update over time. :)

## A CI-Inspired Checklist for Leadership Decisions

DevFeed: [A CI-Inspired Checklist for Leadership Decisions](<https://devfeed.tech/articles/leadership-ci-35177.md>)

Original publisher: [Read original article](<https://blog.jessfraz.com/post/leadership-ci/>)

Published: 2019-04-09T15:09:26Z

Content type: opinion

Language: en

Sources: [Jessie Frazelle](<https://devfeed.tech/sources/jessie-frazelle.md>)

Topics: [decision-making](<https://devfeed.tech/topics/decision-making.md>), [integrity](<https://devfeed.tech/topics/integrity.md>), [ci](<https://devfeed.tech/topics/ci.md>), [test](<https://devfeed.tech/topics/test.md>)

Tags: [ci](<https://devfeed.tech/tags/ci.md>), [decision-making](<https://devfeed.tech/tags/decision-making.md>), [integrity](<https://devfeed.tech/tags/integrity.md>), [leadership](<https://devfeed.tech/tags/leadership.md>)

### AI overview

The article proposes using a continuous-integration-inspired set of questions and checks to help leaders make decisions under pressure with greater integrity, inclusion, transparency, humility, and reflection.

### Source excerpt

This post is co-authored by Kathy Simpson. "understanding the true nature of instinctive decision making requires us to be forgiving of those people trapped in circumstances where good judgment is imperiled." ― Malcolm Gladwell, Blink: The Power of Thinking Without Thinking As leaders, setting up a structure that helps us navigate decisions under pressure is of the utmost importance. When writing and delivering software we rely on our continuous integration (CI) infrastructure and test suites to tell us when a test is failing and code should not be merged. As leaders, before acting or making decisions it would be nice to have a set of tests and checks, established ahead of time, to make sure we are in the right headspace to think, behave and make decisions that are in the best interest of everyone and our company. There are devastating consequences to taking actions based on fear and pride; we hope this set of questions enables taking action based on growth, humility, inclusion, and soulful reflection. The following are the sets of questions we brainstormed, but expect them to change over time as we experience and deal with new problems. These were started in a gist and are copied below. The diff of this post and the gist will serve as the evolution of this thought process. It's important to note that in some instances answering all the questions might take too much time. Perhaps prioritizing the most important ones in the moment would be more effective. Answering all the questions may be a luxury at times, so we suggest breaking them down based on the situation you find yourself in: prioritize the most important ones to your role, have a few 'go to' questions, or categorize them based on the situations you find yourself in more often. The important part of this list is to help us navigate a difficult situation while still maintaining the integrity we intend for ourselves as leaders. Do I want to die on this hill? Pass: This is morally good and if not handled has lo

## The Truth Seekers

DevFeed: [The Truth Seekers](<https://devfeed.tech/articles/the-truth-seekers-35208.md>)

Original publisher: [Read original article](<https://blog.jessfraz.com/post/the-truth-seekers/>)

Published: 2019-04-08T15:09:26Z

Content type: opinion

Language: en

Sources: [Jessie Frazelle](<https://devfeed.tech/sources/jessie-frazelle.md>)

Topics: [Git](<https://devfeed.tech/topics/git.md>), [Natural language processing](<https://devfeed.tech/topics/nlp.md>)

Tags: [comparisons](<https://devfeed.tech/tags/comparisons.md>), [git](<https://devfeed.tech/tags/git.md>), [natural-language-processing](<https://devfeed.tech/tags/natural-language-processing.md>)

### AI overview

A personal reflection on spending a day observing investigative journalist Jeff Kao. The article connects investigative journalism with academic research and explains how text comparisons, diffs, natural language processing, and Git history can help reveal copied, falsified, or motivated changes in public documents.

### Source excerpt

Last week I got to see what it was like to be an investigative journalist for a day. It was thrilling. I will get into what I learned but first I waned to give some background on why I was doing this. I have a general curiosity for people. It's interesting to me to uncover what people are motivated by. Humans are individual snowflakes and no one is exactly like the next. It is our unique experiences that form the way we think and behave, as well as what drives us. It is in my nature to learn and absorb information. I also recently learned, although I should have realized this throughout my life, I am well attuned to absorbing others emotions. I think my deep drive for understanding others and value of the truth is somewhat perfect for the role of "investigative journalism". Researching things for investigative journalism is very similar to that of research for academia. Investigative journalism seems to be driven by intuition, while academia might be more driven by novel research. I got to see what Jeff Kao's job was like for a few hours and I learned a lot. One of the more interesting things we discussed was diffs. I brought up if diffs (as in those used by a source control tool) could work as a line of truth. With a diff, the history of a document is fully transparent, anyone can see any and all changes to it (of course taking into account, tracking force pushes as well). Jeff pointed out that there is past history of journalism using "diffs". One example was from an article that uncovered bills and laws being copied and influenced by corporations. They compared the text of the bills to others and showed the changes, similarities, and motivations behind them. I then realized that Jeff was the author of the amazing article from a couple years ago on how net neutrality comments were likely faked. He used natural language processing to find the similarities in the comments. Both these articles use comparisons of text to uncover falsifications or motivations. This is

## Thoughts on Conway's Law and the software stack

DevFeed: [Thoughts on Conway's Law and the software stack](<https://devfeed.tech/articles/thoughts-on-conway-s-law-and-the-software-stack-35210.md>)

Original publisher: [Read original article](<https://blog.jessfraz.com/post/thoughts-on-conways-law-and-the-software-stack/>)

Published: 2019-03-25T15:09:26Z

Content type: opinion

Language: en

Sources: [Jessie Frazelle](<https://devfeed.tech/sources/jessie-frazelle.md>)

Topics: [Software](<https://devfeed.tech/topics/software.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>), [Hardware](<https://devfeed.tech/topics/hardware.md>), [Cloud](<https://devfeed.tech/topics/cloud.md>), [cpu](<https://devfeed.tech/topics/cpu.md>), [Kernel](<https://devfeed.tech/topics/kernel.md>), [systems](<https://devfeed.tech/topics/systems.md>)

Tags: [bugs](<https://devfeed.tech/tags/bugs.md>), [cloud](<https://devfeed.tech/tags/cloud.md>), [communication](<https://devfeed.tech/tags/communication.md>), [complexity](<https://devfeed.tech/tags/complexity.md>), [conway-s-law](<https://devfeed.tech/tags/conway-s-law.md>), [cpu](<https://devfeed.tech/tags/cpu.md>), [design-systems](<https://devfeed.tech/tags/design-systems.md>), [hardware](<https://devfeed.tech/tags/hardware.md>), [kernel](<https://devfeed.tech/tags/kernel.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [software](<https://devfeed.tech/tags/software.md>)

### AI overview

The article applies Conway's Law to the software stack, arguing that insufficient communication between hardware, firmware, kernel, and user-space layers can contribute to security risks, complexity, overlooked bugs, and difficult debugging. It uses cloud multi-tenancy, Spectre and Meltdown, and firmware as examples.

### Source excerpt

I've been talking to a lot of people in different layers of the stack during my funemployment. I wanted to share one of the problems I've been thinking about and maybe you can think of some clever solutions to solve it. Conway's Law states "organizations which design systems ... are constrained to produce designs which are copies of the communication structures of these organizations." If you were to apply Conway's Law to all the layers of the software stack and open source software you'd see a problem: There is not sufficient communication between the various layers of software. Let's dive in a bit to make the problem super clear. I've met a bunch of hardware engineers and I've made a point about asking each of them how they feel about using a single chip for multiple users. This is, of course, the use case of the cloud. All of the hardware engineers either laugh or are horrified and the resounding reaction is "you'd be crazy to think hardware was ever intended to be used for isolating multiple users safely." Spectre and Meltdown proved this was true as well. Speculative execution was a feature intended to make processors faster but was never thought about in terms of the vector of hacking something running multi-tenant compute, like a cloud provider. Seems like the software and hardware layers should better communicate... That's just one example, let's reverse the interaction. I've talked to a bunch of firmware and kernel engineers and they'd all love if the firmware from chip vendors did less complexity. For instance, it seems like a unanimous vote among firmware and kernel engineers that CPU vendors should not include runtime services or SMM with their firmware. Open source firmware and kernel developers would rather handle those problems at their layer of the stack. All the complexity in the firmware leads to overlooked bugs and odd behavior that can't be controlled or debugged from the kernel developers layer and/or user space. Not to mention, a lot of CPU vendors

## Digging into RISC-V and how I learn new things

DevFeed: [Digging into RISC-V and how I learn new things](<https://devfeed.tech/articles/digging-into-risc-v-and-how-i-learn-new-things-35159.md>)

Original publisher: [Read original article](<https://blog.jessfraz.com/post/digging-into-risc-v-and-how-i-learn-new-things/>)

Published: 2019-03-24T15:09:26Z

Content type: tutorial

Language: en

Sources: [Jessie Frazelle](<https://devfeed.tech/sources/jessie-frazelle.md>)

Topics: [RISC-V](<https://devfeed.tech/topics/riscv.md>), [interface](<https://devfeed.tech/topics/interface.md>), [Hardware](<https://devfeed.tech/topics/hardware.md>), [Software](<https://devfeed.tech/topics/software.md>), [x86](<https://devfeed.tech/topics/x86.md>), [intel](<https://devfeed.tech/topics/intel.md>)

Tags: [architecture](<https://devfeed.tech/tags/architecture.md>), [hardware](<https://devfeed.tech/tags/hardware.md>), [intel](<https://devfeed.tech/tags/intel.md>), [interface](<https://devfeed.tech/tags/interface.md>), [learn](<https://devfeed.tech/tags/learn.md>), [risc-v](<https://devfeed.tech/tags/risc-v.md>), [software](<https://devfeed.tech/tags/software.md>), [x86](<https://devfeed.tech/tags/x86.md>)

### AI overview

This article uses the author's research into RISC-V to illustrate a recursive approach to learning new subjects. It introduces instruction set architectures as the interface between hardware and software, compares processor implementations, and begins discussing reduced instruction set computers.

### Source excerpt

I recently have started researching and playing around with RISC-V for fun. I thought it might be nice to combine some of what I've learned into a blog post. However, I don't just want to highlight what I learned. I want to use this as an example of how to go about learning something new. Recently, Erik St. Martin, Shubheksha Jalan, and I were discussing how we learn new things and we all thought it might be beneficial to have a way to document this process for others. What better way to document this then by example with my recent research into RISC-V? I've said it before and I will say it again, I think anyone is capable of doing or learning anything, they just need the right motivation and to believe in themselves. I also made a point of including the book Super Brain on my list of recommended books, because it confirms with science that if you set your sights high you can accomplish great things, but if you set your expectations low it becomes a self-fulfilling prophecy. To put it more bluntly, believe in yourself! I became fascinated by what is happening in the RISC-V space just by seeing it pop up every now and then in my Twitter feed. Since I am currently unemployed I have a lot of time and autonomy to dig into whatever I wish. RISC-V is a new instruction set architecture. To understand RISC-V, we must first dig into what an instruction set architecture is. This is my learning technique. I bounce from one thing to another, recursively digging deeper as I learn more. What is an instruction set architecture (ISA)? An instruction set architecture is the interface between the hardware and the software. Models of processors can implement the same instruction set but have different internal designs for implementing the interface. This leads to various processors having the same instruction set but differing in performance, physical size, and monetary cost. For example, Intel and AMD have processors that both implement the same x86 instruction set but have very diff

[Next page](<https://devfeed.tech/sources/jessie-frazelle.md?cursor=WyIyMDE5LTAzLTI0VDE1OjA5OjI2KzAwOjAwIiwgIjFjZWI3ZjhiLWZhYjEtNDQ3Mi1hMWIxLWViOGQzODAyZDQ0OCJd>)