BetterDev #253 - Fifty Things you can do with a Software Defined Radio
Better Dev #253 Mar 24, 2023
Hi everyone,
I’ve returned this week and hope to make this newsletter a more regular occurrence. I apologize if my absence and lack of updates have disappointed any of you.
Since we last caught up, I’ve made several updates. I’ve polished my side project, ec2.shop, which I believe is the best tool for quickly viewing all on-demand, spot, and reserve prices on a single page. Give it a try and let me know what you think.
One significant change in my perspective since last year is my strong belief in the importance of self-hosting more nowadays, rather than relying on free tiers or cloud providers.
I’ve witnessed cases where individuals have lost years of photos after being locked out of their Google accounts, with no means of contacting a real person to resolve the issue. Moving forward, I’ll be adding a self-hosted section so we can started to move into the direction of owning our own content. It’s also the reason my newsletter platform is home-grown, self-made.
Becuase it’s been a while since I last sent out this newsletter, if you nolonger enjoy the content, you can click unsubscribe at the bottom of this email.
As a software engineer, I like to tinker around hardware projects, physical thing that you can touch, and show to our faimily. Radio is fastinating because there are many valueable information being pass around. You can listen to airplane communication, track aircraft via ADS-B, you will write some code to decode the signal and make sense of them. You can even throw a front-end to render them on a map for example.
Understand better how HTTP works in each version.
It just proves that if you want something done right, you have to do it yourself. Encouraged by this optimistic forecast, today we will implement a large language model in SQL.
Given a color image? How can we convert it to black and white, pixel-art-like images? The cool thing about these pixel-art image is they can be easily embed into a README.md and render great. We will learn the binning algorithm, implement purely just with JavaScript.
JavaScript is quick and easy to write. The language is very forgiable so can easily write code that isn’t optimize. In this post we will learn a few way to optimize JS.
I’m honst everytime I get into Figma, I’m frustrated and think how everyone using them? The UI is so clunky, I always have to make sure I don’t accidently move something. But anyway, they operate at massive scale and today they share the story they migrate and shard their database.
Soft delete is the practice of not deleting the row physically but create a flag that we delete a row. It’s very simple to implement because deleting data isn’t easy. Such as deleting a user lead to remove many relevant data, relevant foreign key. Data can also refer to external data, such as user avatar store on S3. because of that, many use soft delete. it does add complexity for operation though, and what can go wrong, we will learn today.
When you have an outage caused by a performance issue, you don’t want to lose precious time just to install the tools needed to diagnose it. Here is a list of “crisis tools” Bredan recommend installing on your Linux servers by default. I would suggest to add 4 mores: nmap, nc, netstat and strace
The One Billion Row Challenge is to write a Java program for retrieving temperature measurement values from a text file and calculating the min, mean, and max temperature per weather station. There’s just one caveat: the file has 1,000,000,000 rows! It has been expand and adopt by many languages or eco system. This one show an optimization to bring up almost 20x performance. There one another similar challenge of moving a billion postgres rows on 100 budget
Code to read
do you remember years ago you can dial a number on the phone, they play some music. We replicate this setup here with old hardware, open source project like Asterisk to do that. If you have a kid def you would want to look into it. Not an end to end soluition but I show a full setup, how thing tie together, which component you need.
Have you ever wonder what is the process of writing a database library ? This project shows that, implement PostgreSQL wire protocol in Rust
Rusta high performance, arbitrarily scalable, open-source, simple, easily forkable, well-tested, batteries included LLM written in pure Python/Jax and targeting Google Cloud TPUs. MaxText typically achieves 55% to 60% model-flop utilization and scales from single host to very large clusters while staying simple and “optimization-free” thanks to the power of Jax and the XLA compiler.
Pythonfgprof is a sampling Go profiler that allows you to analyze On-CPU as well as Off-CPU (e.g. I/O) time together. I’m always interested in how to implement this CPU profiling tool. The project is less than 1000 LOC so you can grasp the idea behind quickly
GoTools
There are already tool to help write Postgres extension with Rust such as pgrx. Now we can do with Zig. After the last 2 years working with Rust, I feel like it’s such as great language that is truely innovative compare with other, but there is still room for a low level language that isn’t too strict such as Zig. Using zig to write a postgess extension feel great.
A small JS library for beautiful drawing and handwriting on the HTML Canvas. An use case is you can use to take user signature and have it smoothen out. Check the demo as well.
A Ruby gem to transform HTML into PDFs, PNGs or JPEGs using Google Puppeteer/Chromium. Useful when generating invoice
If you want to generate some kind of activity maps this is a good tool. Example in my email forward app I had a world map on homepage which can probably re-impelemnt with this tool
a persistent message queue Go library built on SQLite and inspired by AWS SQS (but much simpler).
A database of vulnerable Ruby Gems. useful to not miss a vulnerable if you are using Ruby
highly configurable, distributed, in-memory data store and cache implemented in Go. Think of it like a Redis alternative but speak the same protocol, therefore we can reuse the same client code, use the same our favorite Redis client in our language. With the recent Redis license change, it’s time to look for alternative.
Tools
There are already tool to help write Postgres extension with Rust such as pgrx. Now we can do with Zig. After the last 2 years working with Rust, I feel like it’s such as great language that is truely innovative compare with other, but there is still room for a low level language that isn’t too strict such as Zig. Using zig to write a postgess extension feel great.
A small JS library for beautiful drawing and handwriting on the HTML Canvas. An use case is you can use to take user signature and have it smoothen out. Check the demo as well.
A Ruby gem to transform HTML into PDFs, PNGs or JPEGs using Google Puppeteer/Chromium. Useful when generating invoice
If you want to generate some kind of activity maps this is a good tool. Example in my email forward app I had a world map on homepage which can probably re-impelemnt with this tool
a persistent message queue Go library built on SQLite and inspired by AWS SQS (but much simpler).
A database of vulnerable Ruby Gems. useful to not miss a vulnerable if you are using Ruby
highly configurable, distributed, in-memory data store and cache implemented in Go. Think of it like a Redis alternative but speak the same protocol, therefore we can reuse the same client code, use the same our favorite Redis client in our language. With the recent Redis license change, it’s time to look for alternative.
You can view this issue in web browser.
If you have any suggestion/feedback, do tell me by replying to this email. I read them all.
No longer want to receive these emails? Unsubscribe
Older messages
BetterDev #251 - Writing a Debugger From Scratch
Monday, October 2, 2023
Better Dev #251 Oct 2, 2023 Last week, the famous Insomnia rugpull us and require an account to use the software. In process, many has lost their project data when the migration happen from local to
BetterDev #250 - What's the toughest bug you ever found and fixed
Monday, September 25, 2023
Better Dev #250 Sep 25, 2023 Hi everyone, This week, many resorts in Las Vegas got hack and have to shutdown their system. That means many operation is handled by paper and pen. The hack appears to be
BetterDev #249 - Running my own LLM
Tuesday, September 19, 2023
Better Dev #249 Sep 19, 2023 Happy tuesday everyone. We're back for other issue. Lot of exiciting article. Hope you like this issue. This issue is a bit short and lack the summary but hope you
BetterDev #248 - Putting the “You” in CPU
Monday, August 14, 2023
Better Dev #248 Aug 14, 2023 Hi all, I'm really sorry for sending out no issue in last few months. Works get in but I'm finally manage to spend time again on this newsletter. I missed it so
BetterDev #247 - Cryptographic Best Practices and A Journey through Color Space with FFmpeg
Wednesday, April 19, 2023
Better Dev #247 Apr 17, 2023 These continue to be big weeks in AI world. I share some LLM tools. Enjoy. Cryptographic Best Practices Putting cryptographic primitives together is a lot like putting a
You Might Also Like
📧 Simple Messaging in .NET With Redis Pub/Sub
Saturday, July 27, 2024
Simple Messaging in .NET With Redis Pub/Sub Read on: my website / Read time: 5 minutes BROUGHT TO YOU BY API Collaboration Has Never Been Easier API Collaboration has never been easier with
📳 Galaxy Z Flip 6 Review — How to Watch the 2024 Summer Olympics for Free
Friday, July 26, 2024
Also: Fixing Spotify's Repeating Ads, and More! How-To Geek Logo July 26, 2024 Did You Know The rectangular area of a flag found in the upper left corner (top hoist corner) of the flag, such as the
Your monthly update has arrived
Friday, July 26, 2024
What's new in Google Play and Android July 2024 The Collections surface engages users with content Introducing Collections, a new on-device surface for your content Collections present users with
iOS Dev Weekly - Issue 671
Friday, July 26, 2024
There are two types of apps on the visionOS App Store. Will you create an app that makes people reach for the headset? 🥽 View on the Web Archives ISSUE 671 July 26th 2024 Comment In the last two weeks
Ranked | The 10 Busiest Ports in the World, by Cargo Traffic 🚢
Friday, July 26, 2024
As critical nodes for trade and commercial activity, we show the top 10 busiest ports in the world by cargo volume. View Online | Subscribe Presented by: Is Your Portfolio Powering the Future? >>
Let the Games Begin
Friday, July 26, 2024
Week of July 22, 2024 Let the Games Begin Week of July 22, 2024 By MG Siegler • 26 Jul 2024 View in browser View in browser Mark Zuckerberg loves two things above all else right now: llamas and
Daily Coding Problem: Problem #1508 [Hard]
Friday, July 26, 2024
Daily Coding Problem Good morning! Here's your coding interview problem for today. This problem was asked by Uber. Given an array of integers, return a new array such that each element at index i
OpenAI announces SearchGPT - Weekly News Roundup - Issue #477
Friday, July 26, 2024
Plus: Will billionaires live forever; a police robot dog jamming wireless networks; Alphabet to invest $5B into Waymo; warnings about “model collapse”; a new partnership for AI security; and more! ͏ ͏
Using Data as a Product Manager
Friday, July 26, 2024
If you had your choice between a little data or a lot of data on which to guide decisions, which would you pick?
Last Mile of Blockchains: RPC and Node-as-a-Service
Friday, July 26, 2024
Top Tech Content sent at Noon! Find the hottest jobs from top tech companies Read this email in your browser How are you, @newsletterest1? 🪐 What's happening in tech today, July 26, 2024? The