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
Overcoming Perfectionism: How to Break Free from the Enemy of Progress
Wednesday, November 27, 2024
Discover how perfectionism hinders progress and learn practical strategies to overcome the fear of imperfection, boost productivity, and achieve your goals without getting stuck in the pursuit of
🖤 Laravel Black Friday Deals!
Wednesday, November 27, 2024
The biggest deals of the year Laravel Black Friday Deals View in browser Laravel News Editor Note: We are sending this outside the regular Sunday newsletter schedule because some of these specials end
BetterDev #271 - Memory: The Forgotten History and Why did Windows 95 setup use three operating systems?
Wednesday, November 27, 2024
Better Dev #271 Nov 26, 2024 Hi all, Welcome to thanksgiving issue of BetterDev. Hope everyone had a safe and warm thanksgiving. It's getting so cold these days. If you are in warzone such as
Mapped | Unemployment Rate By U.S. State in 2024 💼
Tuesday, November 26, 2024
As of October 2024, DC and Nevada tied for the highest unemployment rate in the US at 5.7%. Which states saw the lowest rates? View Online | Subscribe | Download Our App FINAL CHANCE - ENDS TONIGHT!
🔊 7 DIY Tips for Soundproofing a Room — Why I Switched to Xfce for Linux Mint
Tuesday, November 26, 2024
Also: Home Theater Sound Terms Explained, and More! How-To Geek Logo November 26, 2024 Did You Know The shiny layer of a CD doesn't contain the data; the plastic polycarbonate layer does. The shiny
JSK Daily for Nov 26, 2024
Tuesday, November 26, 2024
JSK Daily for Nov 26, 2024 View this email in your browser A community curated daily e-mail of JavaScript news JavaScript Certification Black Friday Offer – Up to 54% Off! Certificates.dev, the trusted
NumPy, Loop Targets, Vector Animation, and More
Tuesday, November 26, 2024
NumPy Practical Examples: Useful Techniques #657 – NOVEMBER 26, 2024 VIEW IN BROWSER The PyCoder's Weekly Logo NumPy Practical Examples: Useful Techniques In this tutorial, you'll learn how to
Your Games Quarterly newsletter has arrived
Tuesday, November 26, 2024
What's new for games in Google Play and Android Email not displaying correctly? View it online November 2024 The First Developer Preview of Android 16 The First Developer Preview of Android 16
Daily Coding Problem: Problem #1620 [Hard]
Tuesday, November 26, 2024
Daily Coding Problem Good morning! Here's your coding interview problem for today. This problem was asked by Dropbox. Sudoku is a puzzle where you're given a partially-filled 9 by 9 grid with
Final Hours: Help Save "The Art of Data" From Falling Short 🙏
Tuesday, November 26, 2024
Will Visual Capitalist end up revealing the secrets behind data storytelling? There are 12 hours left to change the fate of "The Art of Data". View Online | Subscribe | Download Our App Help