Open Hardware and Programming Leftovers
-
Open Hardware/Modding
-
Forbes ☛ Raspberry Pi Ready For IPO On London Stock Exchange
Raspberry Pi, the British company renowned for making cheap microcomputers, is preparing to go public on the London Stock Exchange.
The company, which has sold more than 60 million units since it first began trading in 2012, could be valued at up to £500m ($630m), according to The Sunday Times, which first reported the planned IPO.
“When we released our first product in 2012, our goal was to provide a computer that was affordable enough for young people to own and explore with confidence, giving them the chance to discover computing and get excited about it,” said Eben Upton, CEO of Raspberry Pi, in a statement announcing the intention to take the company public.
-
The Verge ☛ Bambu P1P vs. Creality K1C: an ‘easy’ 3D printer showdown
Don’t get me wrong: the K1C is the better choice for some tinkerers since its full enclosure, bed, and extra fan let you print higher temperature plastics like ABS as well as ones reinforced with glass or carbon fibers. (Bambu sells the $699 P1S for that.) And I did successfully use both the P1P and a pair of Creality K1 printers to produce dozens of objects over the past year, including pegboard mounts, figurines for my kids, and these badass unofficial Nerf blasters: [...]
-
-
Programming/Development
-
Andrew Healey ☛ Lisp to JavaScript Compiler
I wrote a compiler that takes Lisp code and turns it into JavaScript. The compiler is a ~280 line Rust program that I wrote over a few nights. When I started this project, I thought I understood how Lisp worked (I didn't) but I do now.
The first step of this project involved choosing a Lisp to implement. There are many Lisps. I'm a big fan of Mary Rose Cook's Little Lisp blog post so I decided to implement Little Lisp, plus or minus a few forms.
-
Rlang ☛ Convert characters to time in R
Convert characters to time in R, we will explore how to convert characters to time objects and vice versa using the strptime and strftime functions in R.
These functions are part of the base package and provide a convenient way to work with dates and times.
-
Abin Simon ☛ How does sync.WaitGroup work
One of my colleagues asked this question to a candidate during an interview. Although I've heard it asked many times, this time it felt different. I sat there thinking, "Do I really know how sync.WaitGroup works?" The question was about using it, but I realized I didn't fully understand how it worked internally. This weekend, I took some time to look into it (and decided to write about it).
-
Rlang ☛ Convert characters to time in R
-
TechTarget ☛ Waterfall vs. Agile methodology: Differences and examples
Teams have a choice in the way they approach a new dev project. Learn about two main schools of thought -- Agile and Waterfall -- and why Agile is the prevailing methodology today.
-
Databases
-
Geshan ☛ How to rename a column in Postgres, from a simple to a real-life example
Renaming a column in Postgres might seem straightforward, but as your database grows and your application scales, it's crucial to consider the impact of these changes. A simple rename can cause downtime or even break your application if not executed correctly. This post delves into the intricacies of renaming a Postgres column, providing a clear path from a basic example to a real-world scenario with zero downtime.
-
-
Python
-
Oskar Wickström ☛ Statically Typed Functional Programming with Python 3.12
Lately I’ve been messing around with Python 3.12, discovering new features around typing and pattern matching. Combined with dataclasses, they provide support for a style of programming that I’ve employed in Kotlin and Typescript at work. That style in turn is based on what I’d do in OCaml or Haskell, like modelling data with algebraic data types. However, the more advanced concepts from Haskell — and OCaml too, I guess — don’t transfer that well to mainstream languages.
What I’m describing in this post is a trade-off that I find comfortable to use in Python, especially with the new features that I’ll describe. Much of this works nicely in Kotlin and Typescript, too, with minor adaptions.
-
-
Shell/Bash/Zsh/Ksh
-
Andrew Quinn ☛ tmux is worse is better
Therein lies the rub. At home, I run UNIX on my metal. At work, I use Windows. And so, the multiple times a day I find myself SSHing into one of our many, many quasi-embedded Linux boxes, I find myself typing out “tmux” as the first command I run. Because it’s always going to be there, and it does the one thing I actually need it to no matter what: Let me run multiple shells at once, without SSHing in multiple times, regardless of whatever funky terminal emulator I’m actually using to get the job done. Alacritty, Windows Terminal, whatever.
-
-
BSD
-
Undeadly ☛ clang -fret-clean: cleaning return addresses off stack (by deraadt@)
Future versions of OpenBSD may include core system libraries and binaries built with logic to remove return addresses off the stack. With this in place, whole classes of bugs would be harder to exploit.
-
-