Lighthouse Blog
How to stay on top of (new) content
7 months ago
Jonas Hietala
Balls
Here’s my first ever experimental game! The theme was Addictive Gaming. My first thought was oh god...
over a year ago
Here’s my first ever experimental game! The theme was Addictive Gaming. My first thought was oh god I’ll be making another tetris clone but the end result turned out a bit different. I’m not sure it’s very addictive but it’s actually okay! =D
Balls is a game about… balls. Well...
Jonas Hietala
Focusing Attention: Study Hacking
A week of drawing is over, but I didn’t draw that much. It was a little bit of a fail from my...
over a year ago
A week of drawing is over, but I didn’t draw that much. It was a little bit of a fail from my part.
But the past is the past and this week I’m going to be study focused. Not that I need to study, but I really need to rework my study technique. I’ve been going on like a classical...
Posts on Made of...
Reader/reader blocking in reader/writer locks
Abstract In writer-priority reader/writer locks, as soon as a single writer enters the acquisition...
over a year ago
Abstract In writer-priority reader/writer locks, as soon as a single writer enters the acquisition queue, all future accesses block behind any in-flight reads. Thus, if any readers hold the lock for extended periods of time, this can lead to extreme pauses and loss of throughput...
GitButler
GitButler 0.12 - "Stingy Baker"
New GitButler release is out! Undo anything, modify your commits with ease, new AI stuff and more!
7 months ago
New GitButler release is out! Undo anything, modify your commits with ease, new AI stuff and more!
Style over Substance
Guy’s Cool Tools
This is a placeholder post! I’m a huge fan of Kevin Kelly’s Cool Tools site and have loved their...
over a year ago
This is a placeholder post! I’m a huge fan of Kevin Kelly’s Cool Tools site and have loved their recommendations for years. So much, so that I even started a Pinterest board filled with my own recommendations. But after a few years of running into the limitations of the form, I...
detreville
This is "detreville"
It's my name, and the name of my Substack too. That's one less thing for everyone to remember.
a year ago
It's my name, and the name of my Substack too. That's one less thing for everyone to remember.
Arduino Blog
Ride safer with these DIY bicycle lights
Many people around the world live in cities designed for cars, with bicycle use being a distant...
6 months ago
Many people around the world live in cities designed for cars, with bicycle use being a distant afterthought. That makes cycling dangerous and lights can do a lot to make riding safer. That’s why Giovanni Aggiustatutto designed this DIY system that includes headlights, a...
Arduino Blog
A DIY bottle-labeling machine perfect for homebrewers
While it is certainly possible (and common) to put homebrewed beer into kegs, that requires...
7 months ago
While it is certainly possible (and common) to put homebrewed beer into kegs, that requires regulated gas and large refrigeration space. A keg is also more difficult to transport and overkill if you just want to bring a few beers to a friend’s backyard BBQ. For those reasons,...
Jonas Hietala
Grand Thief Arto
Here’s me and Li’s game for our school course. The game isn’t tweaked too much but it’s a game with...
over a year ago
Here’s me and Li’s game for our school course. The game isn’t tweaked too much but it’s a game with some fairly cool ideas.
Grand Thief Arto
Instructions
Your goal is to collect loot until you can escape through the entry point when you’ve collected enough to complete the...
Jonas Hietala
Failed mime type for Krita
I thought Krita worked fine… Until I tried to save. Krita crashed whenever I tried to save (or open)...
over a year ago
I thought Krita worked fine… Until I tried to save. Krita crashed whenever I tried to save (or open) a file and gave the error:
Could not find mime type "application/x-krita"
Turns out if you reinstall the package shared-mime-info which comes natively with Slackware the...
Matt Blewitt
A Love Letter to Giant Robots
Ah, giant robots. I grew up thinking they are the coolest things ever, and I still do. My first...
7 months ago
Ah, giant robots. I grew up thinking they are the coolest things ever, and I still do. My first exposure to them was probably through 1994’s BattleTech animated series, where Adam Steiner piloted an AXM-2N Axman, in its frankly ridiculous neon green and purple paint job. And from...
Arduino Blog
Reduce power consumption in IoT and wearable devices, with Arduino’s new power management library!
Developing energy-efficient IoT and wearable devices is complex and time-consuming, yet it is...
4 months ago
Developing energy-efficient IoT and wearable devices is complex and time-consuming, yet it is essential for creating high-quality products that stand out in today’s market. A key part in this process is optimizing power consumption without sacrificing performance or...
Jonas Hietala
Mining Incorporated (unfinished)
Download
Linux 64bit
Windows
Timelapse
https://www.youtube.com/watch?v=NIbr-mLi4DU
I made a very...
over a year ago
Download
Linux 64bit
Windows
Timelapse
https://www.youtube.com/watch?v=NIbr-mLi4DU
I made a very serious attempt at making a grand game for Ludum Dare 29. Unfortunately it was a far, far, too big of a game for me to be able to finish it in one weekend. But I had a great...
Willem's Blog
Migrating to the Cloud
Helping a customer clear its on-premise data room and migrate to the cloud: an adventure full of...
over a year ago
Helping a customer clear its on-premise data room and migrate to the cloud: an adventure full of cables, cabinets and bandwidth!
Notes on software...
One year as a solo dev building open-source data tools without funding
This is an external post of mine. Click
here
if you are not redirected.
over a year ago
This is an external post of mine. Click
here
if you are not redirected.
Home on Erik...
Calculating cosine similarities using dimensionality reduction
This was posted on the Twitter Engineering blog a few days ago: Dimension Independent Similarity...
over a year ago
This was posted on the Twitter Engineering blog a few days ago: Dimension Independent Similarity Computation (DISCO)
I just glanced at the paper, and there's some cool stuff going on from a theoretical perspective. What I'm curious about is why they didn't decide to use...
computers are bad
2023-10-09 prolific counterfeiting
I'm working on a side project right now, one of several, which involves
telematics devices...
a year ago
I'm working on a side project right now, one of several, which involves
telematics devices (essentially GPS trackers with i/o) from a fairly reputable
Chinese manufacturer. The device is endlessly configurable and so, like you see
with a lot of radios, it has a UART for...
computers are bad
2024-06-08 dmv.org
The majority of US states have something called a "Department of Motor
Vehicles," or DMV. Actually,...
7 months ago
The majority of US states have something called a "Department of Motor
Vehicles," or DMV. Actually, the universality of the term "DMV" seems to be
overstated. A more general term is "motor vehicle administrator," used for
example by the American Association of Motor Vehicle...
Notes on software...
First month on a database team
A little over a month ago, I joined EnterpriseDB on a
distributed Postgres product
(PGD). The...
10 months ago
A little over a month ago, I joined EnterpriseDB on a
distributed Postgres product
(PGD). The process of onboarding
myself has been pretty similar at each company in the last decade,
though I think I've gotten better at it. The process is of course
influenced by the team, and my...
Simply Explained
Retrospective: 4 years on YouTube
Every year I sit down and take a look at how my YouTube channel has been doing. I reflect, evaluate,...
over a year ago
Every year I sit down and take a look at how my YouTube channel has been doing. I reflect, evaluate, and set goals for the coming year. This year is no exception. January 13th, 2020, marks my fourth year on YouTube. Time to do a little retrospective.
On Life and Lisp
AAA gaming on Asahi Linux
Gaming on Linux on M1 is here! We’re thrilled to release our Asahi
game playing toolkit, which...
3 months ago
Gaming on Linux on M1 is here! We’re thrilled to release our Asahi
game playing toolkit, which integrates our Vulkan 1.3 drivers with x86
emulation and Windows compatibility. Plus a bonus: conformant OpenCL
3.0.
Asahi Linux now ships the only conformant OpenGL®,
OpenCL™,
and...
Abort Retry Fail
The History of Commodore, Part 3
Are you keeping up with the Commodore?
a year ago
Are you keeping up with the Commodore?
Louwrentius
Rebooting results in degraded RAID array using Debian Lenny
As described earlier, I setup a RAID 6 array consisting of physical 1 TB disk
and 'virtual' 1 TB...
over a year ago
As described earlier, I setup a RAID 6 array consisting of physical 1 TB disk
and 'virtual' 1 TB disks that are in fact two 0.5 TB disks in RAID 0.
I wanted to upgrade to Lenny because the new kernel that ships with Lenny
supports growing a RAID 6 array. After installing Lenny...
Notes on software...
Confusion is a muse
Some of the most interesting technical blog posts I read come from,
and a common reason for posts I...
7 months ago
Some of the most interesting technical blog posts I read come from,
and a common reason for posts I write is, confusion. You're at work
and you start asking questions that are difficult to answer. You spend
a few hours or a day trying to get to the bottom of things.
If you ask a...
Vitalik Buterin's...
Ethereum has blobs. Where do we go from here?
10 months ago
Old Vintage...
Thou shalt follow these Vintage Computing Commandments
Thou shalt check voltage and polarity on new-to-thee power supplies, or thy machines shall be smote...
11 months ago
Thou shalt check voltage and polarity on new-to-thee power supplies, or thy machines shall be smote and release smoke. This is sometimes very hard to judge without a load, but they should be somewhere in the ballpark, verily, and you should get in the habit of checking any new...
Notes on software...
Interview With Phil of DataStation
This is an external interview. Click
here
if you are not redirected.
over a year ago
This is an external interview. Click
here
if you are not redirected.
Notes on software...
Interpreting TypeScript
In addition to providing a static type system and compiler for a
superset of JavaScript, TypeScript...
over a year ago
In addition to providing a static type system and compiler for a
superset of JavaScript, TypeScript makes much of its functionality
available programmatically. In this post we'll use the TypeScript
compiler API to build an interpreter. We'll build off of a...
Jonas Hietala
Going into Being Busy mode
I’m in the civil service atm and, sadly, we’re going to be extremely busy the coming… two months or...
over a year ago
I’m in the civil service atm and, sadly, we’re going to be extremely busy the coming… two months or something? So I can’t promise a game the next two months. Kinda beats the point of this site doesn’t it? I’m really sorry and that’s all I can say really…
Hopefully I’ll get a week...
Louwrentius
The downside of 120 Mbit broadband internet
My Dutch ISP Ziggo provides internet access through DOCSIS cable modems. They are now capable of...
over a year ago
My Dutch ISP Ziggo provides internet access through DOCSIS cable modems. They are now capable of providging 120 Mbit downstream and 10 Mbit upstream, for an affordable price.
In a way this is mind boggling. Most people have 100 Mbit home networks that are not capable of handling...
Home on Erik...
Microsoft's new marketing strategy: give up
I think it's funny how MS at some point realized they are not the cool kids and there's no reason to...
over a year ago
I think it's funny how MS at some point realized they are not the cool kids and there's no reason to appeal to that target audience. Their new marketing strategy finally admits what's been long known: the correlation between “business casual” and using Microsoft products:
Jonas Hietala
Game Design Analysis: World of Goo
Introduction
This is the second essay for the course Game Design and this thime I will be analysing...
over a year ago
Introduction
This is the second essay for the course Game Design and this thime I will be analysing the game World of Goo a bit.
The first level
The game is very simple. You begin with a structure and a few Goo balls, the charming balls bobbing around there, which you can drag...
computers are bad
2025-01-05 pairs not taken
So we all know about twisted-pair ethernet, huh? I get a little frustrated with
a lot of histories...
2 weeks ago
So we all know about twisted-pair ethernet, huh? I get a little frustrated with
a lot of histories of the topic, like the recent neil breen^w^wserial port
video, because they often fail to
address some obvious questions about the origin of twisted-pair network
cabling. Well, I...
axio.ms
Classical virtualisation rules applied to RISC-style atomics
In 1974, Gerald Popek and Robert Goldberg published a paper, “Formal Requirements for Virtualizable...
over a year ago
In 1974, Gerald Popek and Robert Goldberg published a paper, “Formal Requirements for Virtualizable Third Generation Architectures”, giving a set of characteristics for correct full-machine virtualisation.
Today, these characteristics remain very useful. Computer architects will...
Jonas Hietala
Laying off Pintos
Exam period is here which means all courses should be wrapping up and a week or so ago we finished...
over a year ago
Exam period is here which means all courses should be wrapping up and a week or so ago we finished up our lab series about pintos. The labs were among the best I’ve had yet and I learned a ton. We didn’t follow the official instructions but we had our own assigmnets....
Home on Erik...
Detecting corporate fraud using Benford's law
Note: This is a silly application. Don't take anything seriously.
Benford's law describes a...
over a year ago
Note: This is a silly application. Don't take anything seriously.
Benford's law describes a phenomenon where numbers in any data series will exhibit patterns in their first digit. For instance, if you took a list of the 1,000 longest rivers of Mongolia, or the average daily...
Vitalik Buterin's...
From prediction markets to info finance
2 months ago
Louwrentius
How to resolve extreme memory usage on Windows 2008 R2-based file servers
I'm responsible for a file server with about 5 terrabytes of data. The file server is based on...
over a year ago
I'm responsible for a file server with about 5 terrabytes of data. The file server is based on Windows 2008 R2. I've noticed extreme memory usage on the server. After a reboot, it slowly builds up until almost all RAM memory is consumed.
So I googled around and found this post...
Home on Erik...
Ping the world
I just pinged a few million random IP addresses from my apartment in NYC. Here's the result:
Some...
over a year ago
I just pinged a few million random IP addresses from my apartment in NYC. Here's the result:
Some notes:
What's going on with Sweden? Too much torrenting? Ireland is likewise super slow, but not Northern Ireland Eastern Ukraine is also super slow, maybe not surprising given...
Jonas Hietala
The Little Things in Life
It’s the little things in life that makes it extra special. Sometimes it’s the luxury of coffee...
over a year ago
It’s the little things in life that makes it extra special. Sometimes it’s the luxury of coffee together with the morning paper and other times it’s just a small simple smile from a random stranger, kid or dog. Today when I got this bad headache I got saved by a two hour nap and...
./techtipsy
Lenovo ThinkPad P14s gen 4 (AMD): it doesn't suck under Linux
I’ve had the opportunity to try out another new laptop at work. I’ve used a brand new laptop...
9 months ago
I’ve had the opportunity to try out another new laptop at work. I’ve used a brand new laptop recently, and it was horrible.
But this time I’m pleasantly surprised.
The Lenovo ThinkPad P14s gen 4 has great specs:
CPU: AMD Ryzen 7 PRO 7840U (8 cores, 16 threads, up to 5.1 GHz)
GPU:...
Home on Erik...
Vote for our SXSW panel!
If you have a few minutes, you should check out mine and Chris Johnson‘s panel proposal. Go here and...
over a year ago
If you have a few minutes, you should check out mine and Chris Johnson‘s panel proposal. Go here and vote: http://panelpicker.sxsw.com/vote/24504
Algorithmic Music Discovery at Spotify
****Spotify crunches hundreds of billions of streams to analyze user's music taste and provide...
Avestura's Blog
Using Tor outside of the Tor Browser
This post shows how to run Tor with a simple PowerShell script and use it in other apps like...
over a year ago
This post shows how to run Tor with a simple PowerShell script and use it in other apps like Telegram...
Arduino Blog
Introducing Arduino cores with ZephyrOS (beta): take your embedded development to the next level
Last July, when we announced the beginning of the transition from Mbed to Zephyr, we promised to...
a month ago
Last July, when we announced the beginning of the transition from Mbed to Zephyr, we promised to release the first beta by the end of 2024. Today, we are excited to announce the first release of Arduino cores with ZephyrOS in beta! ZephyrOS is an open-source, real-time operating...
computers are bad
2023-05-07 electrical characteristics of telephone lines
Let's take a break from our boring topic of regional history to focus instead
on an even more boring...
a year ago
Let's take a break from our boring topic of regional history to focus instead
on an even more boring topic: implementation details of telephone lines.
The conventional "copper pair" analog telephone line is fading away. The FCC
has begun to authorize abandonment of copper outside...
./techtipsy
The simplicity of the modulo operator: how I scaled an inefficient solution on a legacy system
Your service cannot process events fast enough during peak hours.
There is no obvious quick and...
a year ago
Your service cannot process events fast enough during peak hours.
There is no obvious quick and dirty fix.
Refactoring would take ages.
People have been unhappy for a while now.
What the hell do you do?
Background
I had the pleasure of working with a legacy backend system...
Louwrentius
LFS - Linux Firewall Script released
I started a small new Google project for a new script I wrote called LFS.
It stands for Linux...
over a year ago
I started a small new Google project for a new script I wrote called LFS.
It stands for Linux Firewall Script.
I run a small Linux box as an internet router that doubles as a firewall. The
firewall is configured using iptables. In my opinion, iptables is not the
easiest tool to...
Willem's Blog
CAPTCHA Alternative
If you're looking for a user-friendly alternative for CAPTCHA's you should check this post out where...
over a year ago
If you're looking for a user-friendly alternative for CAPTCHA's you should check this post out where I outline how I protect web forms against malicious actors and spammers.
Old Vintage...
When the Power Macintosh ran NetWare (featuring Wormhole and Cyberpunk)
This entry and the software we'll demonstrate is in large part thanks to an anonymous Apple...
a year ago
This entry and the software we'll demonstrate is in large part thanks to an anonymous Apple developer who was part of the NetWare team. Thank you!
the network operating system of the 1990s. Nothing was quite like it. Until Windows NT muscled in on its action near the end of the...
Computer Ads from...
Bomb Squad Peripherals' BLOWGUN
It Could Have Been a Lot Worse - His Data is BLOWGUN Protected!
7 months ago
It Could Have Been a Lot Worse - His Data is BLOWGUN Protected!
Louwrentius
Monitor power usage with your UPS
If a system is connected to a UPS (Uninterruptible Power Supply), it is
possible to determine how...
over a year ago
If a system is connected to a UPS (Uninterruptible Power Supply), it is
possible to determine how much power it consumes. For this purpose, I wrote a
small script:
Host:~# ./ups.sh
UPS model: Back-UPS RS 1200 LCD
APC model: Back-UPS RS 1200 LC
Capacity: 720 Watt
Load: 18...
Louwrentius
Why filtering DHCP traffic is not always possible with iptables
When configuring my new firewall using iptables, I noticed something very
peculiar. Even if all...
over a year ago
When configuring my new firewall using iptables, I noticed something very
peculiar. Even if all input, forward and output traffic was dropped, DHCP
traffic to and from my DHCP server was not blocked even if there were no
rules permitting this traffic.
I even flushed all rules,...
Arduino Blog
Control your volume with a wireless rotary encoder, as you deserve
Every decent stereo sold since the invention of sound has included a knob on the front for adjusting...
2 weeks ago
Every decent stereo sold since the invention of sound has included a knob on the front for adjusting volume. There are influencers and entire communities dedicated to evaluating the feel of those wonderful knobs. So why would you settle for the mushy volume buttons on a remote?...
latest projects -...
Badge
[Hardware] A RISC-V LED matrix
a year ago
[Hardware] A RISC-V LED matrix
Computer Ads from...
Vote for the April 2004 Plus Post Topic
If you are a paid subscriber, voting is open for one week
9 months ago
If you are a paid subscriber, voting is open for one week
Arduino Blog
Kick off the Monaco Grand Prix weekend with these Formula 1-inspired Arduino projects
The Monaco Grand Prix is just days away and will likely be one of the most exciting races of the...
8 months ago
The Monaco Grand Prix is just days away and will likely be one of the most exciting races of the season. While most fans can’t participate directly — except as spectators — they can celebrate their passion through DIY projects. That’s why we’ve scoured the community to find the...
Arduino Blog
Magnus is an electromagnetic exoskeleton for your hands
One of the primary goals of wearable technology is to provide the user with capabilities and data...
6 months ago
One of the primary goals of wearable technology is to provide the user with capabilities and data that exceed their current abilities. And for motion, this has traditionally existed in the form of electrical muscle stimulation (EMS), where current is applied via electrodes to...
Jonas Hietala
2020 in review
And so 2020 has come to an end. On a global scale it’s been quite a horrible year, and for me...
over a year ago
And so 2020 has come to an end. On a global scale it’s been quite a horrible year, and for me personally it’s been both good and bad. Luckily we haven’t been directly affected by COVID too much, but it’s still been very disruptive. Either way as I’ve done for years now it always...
Abort Retry Fail
The History of Windows NT 3.1
A Highly Portable Future
a year ago
Electronics etc…
Symbolic Reference and Hardware Models in Python
The Traditional Hardware Design and Verification Flow
An Image Downscaler as Example Design
The...
3 weeks ago
The Traditional Hardware Design and Verification Flow
An Image Downscaler as Example Design
The Reference Model
The Micro-Architecture Model
Comparing the results
Conversion to Hardware
Combining symbolic models with random input generation
Specification changes
Things to...
Vitalik Buterin's...
The promise and challenges of crypto + AI applications
11 months ago
./techtipsy
About the time I used Google Drive as a CMS for a web app
Near the beginning of my software development career, I worked on a pretty
standard web application....
over a year ago
Near the beginning of my software development career, I worked on a pretty
standard web application. The project was not a commercial success, but it did
give me a good technical foundation that turned out to be very useful for my
career so far.
For those interested, the tech...
Home on Erik...
Analyzing 50k fonts using deep neural networks
For some reason I decided one night I wanted to get a bunch of fonts. A lot of them. An hour later I...
over a year ago
For some reason I decided one night I wanted to get a bunch of fonts. A lot of them. An hour later I had a bunch of scrapy scripts pulling down fonts and a few days later I had more than 50k fonts on my computer.
Computer Ads from...
Page 6 Magazine Interviews the Godfather of Adventure Games, Scott Adams
Scott McNealy talks about Sun Microsystems, RISC, UNIX, and NeXT
5 months ago
Scott McNealy talks about Sun Microsystems, RISC, UNIX, and NeXT
Matt Blewitt
On That Okta LDAP Bug
A quick explanation of the Okta AD/LDAP DelAuth bug that was being shared around, and the importance...
2 months ago
A quick explanation of the Okta AD/LDAP DelAuth bug that was being shared around, and the importance of sensible defaults.
Azad's Blog
Apple Vision Pro—A Revolution for Home Video Formats
Apple has always been at the forefront of home video with Apple TV (the device), iTunes Movies,...
4 months ago
Apple has always been at the forefront of home video with Apple TV (the device), iTunes Movies, Spatial Audio, and the vivid displays of iPhones, iPads, and Mac displays. With Apple Vision Pro, Apple is once again pushing the boundaries of the movie watching experience by...
Posts on Made of...
A Brief Introduction to termios: termios(3) and stty
(This is part two of a multi-part introduction to termios and terminal emulation on UNIX. Read part...
over a year ago
(This is part two of a multi-part introduction to termios and terminal emulation on UNIX. Read part 1 if you’re new here)
In this entry, we’ll look at the interfaces that are used to control the behavior of the “termios” box sitting between the master and slave pty. The behaviors...
Notes on software...
Writing a SQL database from scratch in Go: 3. indexes
Previously in database basics:
1. SELECT, INSERT, CREATE and a REPL
2. binary expressions...
over a year ago
Previously in database basics:
1. SELECT, INSERT, CREATE and a REPL
2. binary expressions and WHERE filters
4. a database/sql driver
In this post, we extend gosql
to support indexes. We focus on the addition of PRIMARY
KEY constraints on table creation and some easy...
Willem's Blog
Backup Rotation Scheme
Learn about the rsync-backup-rotator tool that helps you automatically rotate backups using rsync,...
a year ago
Learn about the rsync-backup-rotator tool that helps you automatically rotate backups using rsync, creating and maintaining multiple recovery points from your backups.
./techtipsy
I've reached the self-hosting endgame
Setup
After I had a perfectly functional, quiet and performant server up and running, I fell
victim...
over a year ago
Setup
After I had a perfectly functional, quiet and performant server up and running, I fell
victim to my imagination and completely changed my self-hosting setup. Again.
Here it is, in all its glory:
Well, at least that’s what’s on the table.
This machine is a true all-in-one:...
Jonas Hietala
Dijkstra's Algorithm
For rust, I’m updating the documentation for the standard library and specifically with the...
over a year ago
For rust, I’m updating the documentation for the standard library and specifically with the collections. For the priority queue I had the idea to use Dijkstra’s algorithm as a fun example. That idea was well received and that example is now live.
At first I wanted to use A* to...
computers are bad
2023-07-10 the tragedy of beatrice foods
Occasionally, research into the history of telephony takes you into some
strange places. There are...
a year ago
Occasionally, research into the history of telephony takes you into some
strange places. There are conspiracy theories, of course, and there are people
who insist on their version of events so incessantly that details of dates and
places can become heated arguments. There is also...
Old Vintage...
Teaching Apple Cyberdog 1.0 new tricks (featuring OpenDoc)
this cyberdog (image credit).
that cyberdog, though this is one of my favourite weirdo pinball...
a year ago
this cyberdog (image credit).
that cyberdog, though this is one of my favourite weirdo pinball machines.
that cyberdog.
our PowerBook Duo 2300 rehabilitated, guess what we're gonna look at?
Internet document?
Thus was the nucleus of Cyberdog (named for the famous New...
Arduino Blog
Save money by making your own MKR WiFi 1010-powered smart thermostat
Go browse your favorite store for a smart thermostat and take a look at the prices. They aren’t...
6 months ago
Go browse your favorite store for a smart thermostat and take a look at the prices. They aren’t cheap and the more affordable models tend to lock you into proprietary ecosystems. But a decent smart thermostat can save you money on energy costs, so you might want to consider this...
Neil Madden
Regular JSON
For better or worse, depending on your perspective, JSON has become a dominant data format and shows...
a year ago
For better or worse, depending on your perspective, JSON has become a dominant data format and shows no signs of being replaced any time soon. There are good reasons for that: on the face of it, it provides a very simple format with just enough features to cover a lot of...
Yazin Alirhayim
Serializing and deserializing a Cookie Jar
I was recently working on a way to serialize and deserialize a Faraday connection that uses...
over a year ago
I was recently working on a way to serialize and deserialize a Faraday connection that uses HTTP::CookieJar to manage persistent cookies across requests.
I needed to do this because I wanted a way to “freeze” an HTTP connection instance, and later “thaw” it to resume the...
Louwrentius
Linux Software RAID benchmarking script
Just a small post.
To benchmark your Linux software RAID array as setup with MDADM, please use...
over a year ago
Just a small post.
To benchmark your Linux software RAID array as setup with MDADM, please use my
new benchmark script. I used this script to create these results.
You may need to configure some values within the header of this file to make
it fit your enviroment.
...
OH8HUB’s Substack
Spring ham radio activation of Korkattivuori (Mt. Korkatti)
Korkattivuori (“Mount Korkatti”, 186m above sea level) is a small hill and Natura 2000 nature...
a year ago
Korkattivuori (“Mount Korkatti”, 186m above sea level) is a small hill and Natura 2000 nature reserve area near town Haapavesi (pop. 6588) in Finland. The nature reserve area consist of short family friendly hiking path of approximately 1.5km. One end of the path has parking...
Notes on software...
Learning a new codebase: hacking on nginx
I have never contributed to nginx. My C skills are 1/10. But
downloading the source, hacking it up,...
over a year ago
I have never contributed to nginx. My C skills are 1/10. But
downloading the source, hacking it up, compiling it, and running it
doesn't scare me. This post is to help you overcome your own fears
about doing so. Not necessarily because you should be running
out-of-tree diffs in...
Applied Cartography
Linear
I invited nickd to join our Linear instance yesterday, which reminded me that I had a slew of notes...
a month ago
I invited nickd to join our Linear instance yesterday, which reminded me that I had a slew of notes I wanted to publish on our own experience of migrating from GitHub Issues to Linear, and some reflections on it as a product now that we've been using it for a few months.
One...
Willem's Blog
Search like a pro: Google search operators
Read along for a comprehensive list of advanced Google search operators that allow you to filter...
over a year ago
Read along for a comprehensive list of advanced Google search operators that allow you to filter your search results.
Notes on software...
SMTP protocol basics from scratch in Go: receiving email from Gmail
I've never run my own mail server before. Before today I had no clue
how email worked under the hood...
over a year ago
I've never run my own mail server before. Before today I had no clue
how email worked under the hood other than the very few times I've set
up mail clients.
I've heard no few times how hard it is to send mail from a
self-hosted server (because of spam filters). But how hard can...
GitButler
Stacked Branches with GitButler
GitButler can now manage dependent branches that are stacked, including managing stacked GitHub PRs.
a month ago
GitButler can now manage dependent branches that are stacked, including managing stacked GitHub PRs.
Matt Mullenweg
Falling Snow
The talented Felix Arntz has given an incredible Christmas gift to the WordPress community with his...
a month ago
The talented Felix Arntz has given an incredible Christmas gift to the WordPress community with his fast, light, and accessible Snow Fall plugin, which is live on this site and you can install on yours. I hope everyone is having a happy holidays! Search for “snow fall” in your...
computers are bad
2024-09-08 private lines
I have been meaning, for some time, to write about common carrier switching
arrangements (CCSAs)....
4 months ago
I have been meaning, for some time, to write about common carrier switching
arrangements (CCSAs). These could be considered an early form of products like
"virtual private ethernet:" a private telephone network that was served by the
same switching machines that handled the...
Arduino Blog
CapibaraZero: a student’s journey in reinventing hacking tools with Arduino
Inventive, open-source, and cost-effective – these words perfectly describe CapibaraZero, a...
a month ago
Inventive, open-source, and cost-effective – these words perfectly describe CapibaraZero, a multifunctional security and hacking tool developed by young innovator Andrea Canale. Inspired by the popular Flipper Zero, a portable device used to interact with digital systems, Canale...
Notes on software...
The impact of management teams as a decision-making group, in startups and enterprise
Ambitious companies form management teams at every level above you,
sometimes including you....
over a year ago
Ambitious companies form management teams at every level above you,
sometimes including you. Management teams meet periodically and have
private chat rooms. They discuss customers, product and organizational
direction. Sometimes discussions are well documented and...
Jonas Hietala
The Top Idea
Recently I’ve been having a dozen ideas and projects I’ve been poking around with:
I wrote a simple...
over a year ago
Recently I’ve been having a dozen ideas and projects I’ve been poking around with:
I wrote a simple lua, later perl, which announced when a new day9 episode has come. Later I expanded it to search for new manga episodes, but now it’s broken and unfinished.
In an attempt to learn...
Willem's Blog
Designing a multi dimensional capacity queue
Dealing with a capacity queue is challenging, but if you take the time to model it right it is...
over a year ago
Dealing with a capacity queue is challenging, but if you take the time to model it right it is possible to create a performant and reliable system.
Jonas Hietala
Trying and returning the Eight Sleep Pod 4
I recently bought the Eight Sleep Pod 4—a smart mattress cover that tracks your heart rate, HRV,...
3 months ago
I recently bought the Eight Sleep Pod 4—a smart mattress cover that tracks your heart rate, HRV, snoring, and cools or warms the mattress during the night.
There’s a lot to like about the mattress but in the end I opted to return it.
This post describes my experience with the Pod...
Vitalik Buterin's...
Base Layers And Functionality Escape Velocity
over a year ago
./techtipsy
My cat water fountain comes with a spicy USB power adapter
It turns out that you can’t trust any USB type A power adapter to be within spec.
I have a Catit...
a year ago
It turns out that you can’t trust any USB type A power adapter to be within spec.
I have a Catit Flower Fountain
for my two adorable cats. The idea of a water fountain for cats may sound odd,
but having one really helps with cats staying hydrated and that alone avoids all
sorts...
Notes on software...
Implementing MVCC and major SQL transaction isolation levels
In this post we'll build a database in 400 lines of code with basic
support for five standard SQL...
8 months ago
In this post we'll build a database in 400 lines of code with basic
support for five standard SQL transaction levels: Read Uncommitted,
Read Committed, Repeatable Read, Snapshot Isolation and
Serializable. We'll use multi-version concurrency control (MVCC) and
optimistic...
Jonas Hietala
Hearthstone on Wine
I like Hearthstone and recently the next expansion Goblins vs Gnomes so I wanted to install and play...
over a year ago
I like Hearthstone and recently the next expansion Goblins vs Gnomes so I wanted to install and play it. It didn’t work in vanilla wine, with a “time out error”, but I found a bug report which makes it work. Here’s a short summary:
Get wine source from git. My version was...
Applied Cartography
PSA: mess around with Keystatic
We've been using Keystatic in Buttondown for around six months now: we migrated most of the content...
10 months ago
We've been using Keystatic in Buttondown for around six months now: we migrated most of the content on the marketing site (which is backed by Next) from MDX onto Keystatic, and were so happy with the experience that the upcoming rebuild of the docs site will be featuring...
Arduino Blog
Deploy your smart meeting room management system with Arduino GIGA
Managing shared spaces, especially meeting rooms, can be a headache in busy offices. At Arduino,...
a month ago
Managing shared spaces, especially meeting rooms, can be a headache in busy offices. At Arduino, we’ve experienced it firsthand in our flexible and dynamic offices around the world – where colleagues could often be seen wandering around with their laptops, trying to find a quiet...
Opsbros
Saibah Securitah
It's always okay to buy the domain for the meme!
over a year ago
It's always okay to buy the domain for the meme!
Electronics etc…
Setting Up a Symmetricom SyncServer S200 Network Time Protocol Server
Introduction
What was the SyncServer S200 Supposed to be Used For?
IMPORTANT: Use the Right GPS...
6 months ago
Introduction
What was the SyncServer S200 Supposed to be Used For?
IMPORTANT: Use the Right GPS Antenna!
The SyncServer S200 Outside and Inside
Installing the Missing BNC Connectors
Setting Up a SyncServer S200 from Scratch
Opening up the SyncServer S200
The SyncServer File...
OH8HUB’s Substack
Eliminating Radio Interference from Apple charger
Apple's product design teams should do a better job eliminating unwanted radio frequency emissions...
a year ago
Apple's product design teams should do a better job eliminating unwanted radio frequency emissions from their product!
Opsbros
WiFi Binary Clock
Who doesn't love a classic Binary Clock? I remember getting one of these when I was in my 20's from...
over a year ago
Who doesn't love a classic Binary Clock? I remember getting one of these when I was in my 20's from ThinkGeek, and it was pride of place on my desk. LED's are a thing of beauty.
Ken Shirriff's blog
The first microcomputer: The transfluxor-powered Arma Micro Computer from 1962
What would you say is the first microcomputer?1 The Apple I from 1976? The Altair 8800 from...
11 months ago
What would you say is the first microcomputer?1 The Apple I from 1976? The Altair 8800 from 1974?
Perhaps the lesser-known Micral N (1973) or Q1 (1972)?
How about the Arma Micro Computer from way back in 1962.
The Arma Micro Computer was a compact 20-pound transistorized...
Bryan Braun - Blog
Goodbye Evernote, Hello Obsidian
I use note-taking software every day. I use it for journaling, blogging, capturing ideas,...
7 months ago
I use note-taking software every day. I use it for journaling, blogging, capturing ideas, researching technologies, managing my projects, and many other things. Writing is how I think through problems, and note-taking software makes all that thinking easy to search and...
Home on Erik...
The number of letters in the word for each number
Just for fun, I generated these graphs of the number of letters in the word for each number. I...
over a year ago
Just for fun, I generated these graphs of the number of letters in the word for each number. I really spent about 10 minutes on this (ok…possibly also another 40 minutes tweaking the plots):
More languages!
Arduino Blog
Light up the holiday season, with a new Plug and Make Kit tutorial!
Looking for a fun and creative way to brighten up the holiday season? With the Arduino Plug and Make...
a month ago
Looking for a fun and creative way to brighten up the holiday season? With the Arduino Plug and Make Kit, you can build an interactive LED light installation that reacts when someone walks by – perfect for spreading cheer and adding a high-tech twist to your decorations. This...
seangoedecke.com RSS...
From hours to seconds: AI tools to detect animal calls
If you’re currently spending time listening to long audio recordings of birdcalls or animal noises,...
9 months ago
If you’re currently spending time listening to long audio recordings of birdcalls or animal noises, it’s likely that the last four years of…
Louwrentius
Distributed Parallel Processing Shell Script (PPSS) released
I'd like to announce the release of the distributed version of the Parallel
Processing Shell Script...
over a year ago
I'd like to announce the release of the distributed version of the Parallel
Processing Shell Script (PPSS). PPSS is a bash script that allows you to
run commands in parallel. It is written to make use of current multi-core
CPUs.
The new distributed version of PPSS allows you to...
seangoedecke.com RSS...
Writing good technical explanations
Software engineering is mainly learning. There is a great demand for technical explanations, and...
over a year ago
Software engineering is mainly learning. There is a great demand for technical explanations, and many thousands of books, talks and blog…
lcamtuf’s thing
Getting silly with C, part (void*)2
They won't be able to find bugs in your code if they can't figure out how it works.
a week ago
They won't be able to find bugs in your code if they can't figure out how it works.
Louwrentius
Visual representation of hard drives and their temperature
If you build a NAS with many drives, it may be of interest to you which
drives get hot and where...
over a year ago
If you build a NAS with many drives, it may be of interest to you which
drives get hot and where they are located in the chassis. My Norco 4020 case
has twenty drives in RAID 6, plus two operating system drives in RAID 1. I
wrote a script that shows me the temperature of each...
Arduino Blog
Enhance your IoT dashboards with Arduino Cloud’s new Image widget
At Arduino, we’re constantly working to improve your IoT management experience. Today, we’re excited...
4 months ago
At Arduino, we’re constantly working to improve your IoT management experience. Today, we’re excited to announce a new feature for Arduino Cloud that will allow you to enhance your IoT dashboards: the Image widget. The new Image widget The Image widget is a simple yet powerful...
Nabeel S. Qureshi
Films + Books, Q1 2023
What I watched and read
a year ago
Good Enough
Our ChatGPT Mission Statement
What follows is an edited transcript of my interaction with ChatGPT to help craft a mission...
a year ago
What follows is an edited transcript of my interaction with ChatGPT to help craft a mission statement for Good Enough.
The resulting mission statement was surprisingly good and I had some literal LOLs along the way.
Though I think we'll leave out the haiku.
You are an expert at...
latest projects -...
Hand-cranked Flux Capacitor
[Concept] Control the flow of time
a year ago
[Concept] Control the flow of time
Notes on software...
Generating a REST API from a database
I recently published an alpha version of a code generation tool,
DBCore, that reads a...
over a year ago
I recently published an alpha version of a code generation tool,
DBCore, that reads a database
schema from PostgreSQL or MySQL and generates an entire Go API with
CRUD operations, pagination, filtering, and authentication.
But more than just generating code like
xo/xo or...
Avestura's Blog
How optimistic or pessimistic are the Kurzgesagt videos?
A sentiment analysis on the last 20 videos of Kurzgesagt.
a year ago
A sentiment analysis on the last 20 videos of Kurzgesagt.
Applied Cartography
Things take time
Things take time.
Nintendo fairly famously was born in 1889, and the modern incarnation — Yamamuchi...
8 months ago
Things take time.
Nintendo fairly famously was born in 1889, and the modern incarnation — Yamamuchi Nintendo & Co., LTD — was established nearly fifty years later, in 1933. They spent forty years selling playing cards, then another decade operating merely as a distributor of...
Vitalik Buterin's...
Moving beyond coin voting governance
over a year ago
Jonas Hietala
Death to the Forum
Well it was fun while it lasted, but now it’s gone and it’ll stay gone for a long time I think. It...
over a year ago
Well it was fun while it lasted, but now it’s gone and it’ll stay gone for a long time I think. It was mainly a test to see if I could do it and I’m really proud of my styling of it but it’s deader than in a grave, which isn’t really surprising, and it bothered me that I didn’t...
Style over Substance
How I made HA-meural: a Meural Canvas integration for Home Assistant
One of my 2020 lockdown projects I’m extremely proud of is HA-meural – a custom integration for the...
over a year ago
One of my 2020 lockdown projects I’m extremely proud of is HA-meural – a custom integration for the Home Assistant home automation software that lets you control a NETGEAR Meural Canvas digital frame. It’s the result of a few months of work, lots of trial and error, and many...
Willem's Blog
Designing an interface for a food ordering page
Designing a food ordering page is surprisingly challenging because of the many variables that need...
over a year ago
Designing a food ordering page is surprisingly challenging because of the many variables that need to be accommodated on a very small screen.
Arduino Blog
Introducing Opta Expansions: scalable simplicity!
Last year, we launched the Arduino Pro Opta: it was an instant success with our community, and...
8 months ago
Last year, we launched the Arduino Pro Opta: it was an instant success with our community, and allowed us to reach PLC engineers with a new solution specifically designed for their needs. To further expand Opta’s capabilities, today the Arduino ecosystem welcomes various...
Jonas Hietala
Dbot
So I made a small irc bot in 294 characters in code-golfing language #1: Perl.
Usage
perl...
over a year ago
So I made a small irc bot in 294 characters in code-golfing language #1: Perl.
Usage
perl Dbot
Commands
.name - Echo the bots name
.hello - Output “hello world!”
.src - Dump the source code
Code
use IO::Socket;$s=IO::Socket::INET->new("158.38.8.251:6667");sub o{print$s...
Jonas Hietala
Ludum Dare 29 Entry
After months of procrastination it is time for me to enter Ludum Dare again!
I am totally...
over a year ago
After months of procrastination it is time for me to enter Ludum Dare again!
I am totally unprepared, but I did setup a setup which actually compiles. I never got audio to run but hopefully I can manage something.
Repository: https://github.com/treeman/LD29. Going for C++ this...
Willem's Blog
Wearing WHOOP 4.0
Use WHOOP to see the impact your choices have on your body, think of it as a special kind of mirror...
over a year ago
Use WHOOP to see the impact your choices have on your body, think of it as a special kind of mirror - it's so powerful, that I don't take mine off!
Yazin Alirhayim
Tracking where a WhatsApp user came from
At Amal, we have an AI chat bot that works over WhatsApp — allowing our customers to speak to their...
over a year ago
At Amal, we have an AI chat bot that works over WhatsApp — allowing our customers to speak to their bank account, asking questions like “What’s my balance” and “How much have I spent on Uber’s this month?”.
A problem we faced really early on when connecting to WhatsApp was that...
Notes on software...
Standard ML in 2020
Incredibly, Standard ML implementations are still actively
developed. MLton, Poly/ML,
MLKit,
SML#...
over a year ago
Incredibly, Standard ML implementations are still actively
developed. MLton, Poly/ML,
MLKit,
SML# and
SML/NJ
are the most prominent. Discussion on the future direction of Standard
ML remains healthy as
well.
And somehow OCaml's lesser known cousin still beats out OCaml...
Home on Erik...
Why I went into the mortgage industry
I just realized last Thursday that I have spent two full years at Better, incidentally on the same...
over a year ago
I just realized last Thursday that I have spent two full years at Better, incidentally on the same day as we announced a $15M round led by Kleiner Perkins. So it was a good point to reflect a bit and think back – what the F led me to abandon my role managing the machine learning...
Jonas Hietala
ISOC update
I have now worked a bit more than 3 weeks out of my 4 weeks of IDA Summer of Code and this is an...
over a year ago
I have now worked a bit more than 3 weeks out of my 4 weeks of IDA Summer of Code and this is an update post of what I’ve done so far. I will write a more extensive summary post at the end of the project. I was planning on writing a weekly summary, but that ship sailed a long...
lcamtuf’s thing
Weekend projects: Sketchy Sketch
Making a nicer version of a forgotten, electronic Etch-A-Sketch toy.
2 weeks ago
Making a nicer version of a forgotten, electronic Etch-A-Sketch toy.
Good Enough
TIL: Blocking Password App Autocomplete on Form Fields
I wanted to disable password managers, particularly 1Password, from interacting with a username...
a year ago
I wanted to disable password managers, particularly 1Password, from interacting with a username field in Contact Me. It was pretty simple in the end:
<%= form.text_field :username, "data-lpignore": true, "data-1p-ignore": true %>
Reference: 1Password, Lastpass.
lcamtuf’s thing
Analog filters, part 2: let it ring
A continuation of the gentle intro to analog signal filtering. In today's episode: the Sallen-Key...
3 months ago
A continuation of the gentle intro to analog signal filtering. In today's episode: the Sallen-Key topology.
Neil Madden
Multiple input MACs
When working with Message Authentication Codes (MACs), you often need to authenticate not just a...
over a year ago
When working with Message Authentication Codes (MACs), you often need to authenticate not just a single string, but multiple fields of data. For example, when creating an authenticated encryption mode by composing a cipher and a MAC (like AES-CBC and HMAC), you need to ensure the...
Louwrentius
Finding a good blu-ray player for Mac OS X
I find playing a Blu-ray movie on my Mac cumbersome. I've been using Plex, XBMC and VLC but these...
over a year ago
I find playing a Blu-ray movie on my Mac cumbersome. I've been using Plex, XBMC and VLC but these free open-source products are all a usability nightmare.
To play a Blu-ray movie, you have to perform these steps:
right-click on the BDMV file
choose 'show packet contents'
go to...
Abort Retry Fail
Housekeeping 20241208
Corrections, stats, and an update
a month ago
Corrections, stats, and an update
Home on Erik...
Music recommendations using cover images (part 1)
Scrolling through the Discover page on Spotify the other day it occurred to me that the album is in...
over a year ago
Scrolling through the Discover page on Spotify the other day it occurred to me that the album is in fact a fairly strong visual proxy for what kind of content you can expect from it. I started wondering if the album cover can in fact be used for recommendations.
Jonas Hietala
Being Productive
School’s been going on now for… Is it a month and a half maybe? I don’t know really but it’s all...
over a year ago
School’s been going on now for… Is it a month and a half maybe? I don’t know really but it’s all going so fast, week after week is disappearing and I don’t know where they go but I know that I’m at least not wasting them like I did most of last year!
Last year I managed school...
Jonas Hietala
Writing Home Assistant automations using Genservers in Elixir
I’ve been a fan of Home Assistant a while now;
it’s a great platform for home automation with its...
3 months ago
I’ve been a fan of Home Assistant a while now;
it’s a great platform for home automation with its beginner friendly and feature rich UI,
support for a ton of different devices and integrations,
and there’s a bunch of ways to create automations.
But there’s no engine for writing...
Arduino Blog
Massive tentacle robot draws massive attention at EMF Camp
Most of the robots we feature only require a single Arduino board, because one Arduino can control...
7 months ago
Most of the robots we feature only require a single Arduino board, because one Arduino can control several motors and monitor a bunch of sensors. But what if the robot is enormous and the motors are far apart? James Bruton found himself in that situation when he constructed this...
Lighthouse Blog
Updates November 4: Free newsletter to RSS tool
2 months ago
Good Enough
Season 1, Issue 2: Just the Two of Us
0. Everyone Likes a Giveaway
Stick around to hear how you can win a fabulous prize by hardly doing...
over a year ago
0. Everyone Likes a Giveaway
Stick around to hear how you can win a fabulous prize by hardly doing anything. Take it away, fellas…
1. Still Positive
Did you know that once you acquire COVID-19 your PCR test can be positive for up to 90 days? Did you know that the at-home tests...
Style over Substance
Review of the 2-dial TTArtisan Light Meter
My latest purchase for my analog cameras is the TTArtisan light meter, a hotshoe-mounted meter...
over a year ago
My latest purchase for my analog cameras is the TTArtisan light meter, a hotshoe-mounted meter accessory. The market for these shoe-mounted light meters for vintage cameras has become weirdly competitive. They fit on top of a mechanical camera and provide you with the right...
Jonas Hietala
Let's build a VORON: Build start
The end goal, as rendered by Autodesk’s online viewer
I’m not sure where it came from, but it was...
a year ago
The end goal, as rendered by Autodesk’s online viewer
I’m not sure where it came from, but it was suddenly very important that I got myself a 3D printer.
Maybe it was an important insight, but it maybe it was only a fix idea I got that somehow became this all-import...
Home on Erik...
Pareto efficency
Pareto efficiency is a useful concept I like to think about. It often comes up when you compare...
over a year ago
Pareto efficiency is a useful concept I like to think about. It often comes up when you compare items on multiple dimensions. Say you want to buy a new TV. To simplify it let's assume you only care about two factors: price and quality.
Louwrentius
Debian Lenny and Dell R410 network card not supported
For those who are running Debian Lenny and want to order the new Dell R410
server, beware!
There is...
over a year ago
For those who are running Debian Lenny and want to order the new Dell R410
server, beware!
There is no safe solution to get Debian Lenny working with the on-board
Broadcom network cards. A fairly recent kernel is required. Basically, you
will have to install back-ported kernels,...
watchTowr Labs
Hop-Skip-FortiJump-FortiJump-Higher - Fortinet FortiManager CVE-2024-47575
It’s been a tricky time for Fortinet (and their customers) lately - arguably, even more so than...
2 months ago
It’s been a tricky time for Fortinet (and their customers) lately - arguably, even more so than usual. Adding to the steady flow of vulnerabilities in appliances recently was a nasty CVSS 9.8 vulnerability in FortiManager, their tool for central management of FortiGate...
Good Enough
TIL: Managing Raspberry Pi software with a bit less pain
For the printer project I'm working on, most of the software behind it runs "in the cloud", but...
a year ago
For the printer project I'm working on, most of the software behind it runs "in the cloud", but there's some software that needs to run beside each printer, to check for new things to print and manage the process of downloading and sending those things to the printer component...
./techtipsy
How I treat my urge to hoard data
The tagline for /r/datahoarder reads:
“It’s A Digital Disease!”. I agree.
At some point I realized...
over a year ago
The tagline for /r/datahoarder reads:
“It’s A Digital Disease!”. I agree.
At some point I realized that the pursuit to hoard all the things will just keep
on consuming more and more of my time and money. Storage is cheap up until to a
point, once you find yourself tracking hard...
Louwrentius
Why I do not use ZFS as a file system for my NAS
Many people have asked me why I do not use ZFS for my NAS storage box. This is a good question and I...
over a year ago
Many people have asked me why I do not use ZFS for my NAS storage box. This is a good question and I have multpile reasons why I do not use ZFS and probably never will.
** A lot has changed since this article was first published. I do now recommend using ZFS. I've also based my...
Louwrentius
'Secure programming: how to implement user account management'
Most web applications work like this:
The application uses a single database account to perform all...
over a year ago
Most web applications work like this:
The application uses a single database account to perform all actions. Users
are just some records in a table. Account privileges and roles are part of
this table, or separate tables.
This implies that all security must be designed and build...
Home on Erik...
Books I consumed in 2017
Turns out having a toddler isn't super compatible with reading. I used to read ~100 books/year as a...
over a year ago
Turns out having a toddler isn't super compatible with reading. I used to read ~100 books/year as a teenager, but it has slowly deteriorated to maybe 20-30 books, at most. And I don't even finish all of them because life is too short!
Notes on software...
Finishing up a FreeBSD experiment
I've been using FreeBSD as my daily driver at work since
December. I've successfully done my job and...
over a year ago
I've been using FreeBSD as my daily driver at work since
December. I've successfully done my job and I've learned a hell of a
lot forcing myself on CURRENT... But there's been a number of issues
with it that have made it difficult to keep using, so I replaced it
with Arch Linux...
Louwrentius
'Linux: using disk labels to counter storage device name changes'
My router decided to change the device name for some USB storage devices. So
/dev/sdc was swapped...
over a year ago
My router decided to change the device name for some USB storage devices. So
/dev/sdc was swapped for /dev/sdd and vice versa. The result was some file
system corruption on /dev/sdc, because it was used on a remote system through
iSCSI, using a different file system from...
Home on Erik...
MCMC for marketing data
The other day I was looking at marketing spend broken down by channel and wanted to compute some...
over a year ago
The other day I was looking at marketing spend broken down by channel and wanted to compute some simple uncertainty estimates. I have data like this:
<th> Total spend </th> <th> Transactions </th> Channel A <td> 2292.
Willem's Blog
Traffic shaping using iptables and tc
This month I responded to an automated alert indicating excessive bandwidth usage on a server,...
over a year ago
This month I responded to an automated alert indicating excessive bandwidth usage on a server, requiring me to apply traffic shaping to mitigate the traffic.
Vitalik Buterin's...
Encapsulated vs systemic complexity in protocol design
over a year ago
Birchtree
This remote has me questioning everything
I recently lost my Apple TV remote (the latest model) and despite apparently being somewhere in the...
a week ago
I recently lost my Apple TV remote (the latest model) and despite apparently being somewhere in the couch according to Find My, my wife and I can not find it. We were using our phones as remotes for a couple days, which was annoying, but got the job done. But
Home on Erik...
Bagging as a regularizer
One thing I encountered today was a trick using bagging as a way to go beyond a point estimate and...
over a year ago
One thing I encountered today was a trick using bagging as a way to go beyond a point estimate and get an approximation for the full distribution. This can then be used to penalize predictions with larger uncertainty, which helps reducing false positives.
Jonas Hietala
Black and White
Here it is at last! Boasting a unoriginal name, themed Bare Minimum. My thoughts where to create a...
over a year ago
Here it is at last! Boasting a unoriginal name, themed Bare Minimum. My thoughts where to create a game where graphics where included into the gameplay but sadly it didn’t come out nearly as good as I expected it too.
Yes I know there are a lot of things bad and wrong with this...
Birchtree
Was 2024 a good year? Oh, and all the metrics and earnings info you could ever want.
2024 was a weird year for the Birchler household. Without getting into the details, two things put a...
3 weeks ago
2024 was a weird year for the Birchler household. Without getting into the details, two things put a damper on the year right from the jump: a health issue and a radical increase in monthly spending. I won't go into the details here, but over the course of
Arduino Blog
Get notified of impending floods with this Arduino Nano 33 IoT-based display
As climate change continues to worsen, events such as heavy rains, hurricanes, and atmospheric...
3 months ago
As climate change continues to worsen, events such as heavy rains, hurricanes, and atmospheric rivers have only intensified, and with them, large amounts of flooding that pose serious risks to life and property. Jude Pullen and Pete Milne, therefore, have responded by creating a...
Jonas Hietala
Minecraft Server Hosting
I play the phenomena that is Minecraft on and off. Sometimes the laid back building or the exploring...
over a year ago
I play the phenomena that is Minecraft on and off. Sometimes the laid back building or the exploring is just what I need. Sometimes I can challange myself to build cool complex stuff and I’m even an avid follower of Doc’M and Etho and the other mindcrackers over at the youtube....
lcamtuf’s thing
Lies, damned lies, and photodiodes
Diffusion and drift currents: depending on what you're trying to do, photodiodes can be really fast...
a month ago
Diffusion and drift currents: depending on what you're trying to do, photodiodes can be really fast or infuriatingly slow.
Engineers Need Art
Stereographer
Experimenting in stereo photography and I write an app to create old-fashioned stereoscopic cards.
5 months ago
Experimenting in stereo photography and I write an app to create old-fashioned stereoscopic cards.
Old Vintage...
So thieves broke into your storage unit - again
If you've been wondering why entries have been a little slow lately, let me tell you a story.
All...
3 months ago
If you've been wondering why entries have been a little slow lately, let me tell you a story.
All collectors tend to be a bit obsessive by nature, and us classic computer nerds probably pick up more hardware than we can (or should) store in our residence — especially if the...
Home on Erik...
Developer experience as a competitive advantage
I spent a ton of time looking at different software providers, both as a CTO, and as a nerd...
over a year ago
I spent a ton of time looking at different software providers, both as a CTO, and as a nerd “advanced” consumer who builds stuff in my spare time. In the last 10 years, there has been an order of magnitude more products that cater directly to developers, through APIs, SDKs, and...
Home on Erik...
Installing TensorFlow on AWS
Curious about Google's newly released TensorFlow? I don't have a beefy GPU machine, so I spent some...
over a year ago
Curious about Google's newly released TensorFlow? I don't have a beefy GPU machine, so I spent some time getting it to run on EC2. The steps on how to reproduce it are pretty brutal and I wouldn't recommend going through it unless you want to waste five hours of your live.
Simply Explained
Tuya IR Hub: control Daikin AC (Home Assistant + ESPHome)
The release of ESPHome v1.15 brought better support for infrared climate control. This was enough to...
over a year ago
The release of ESPHome v1.15 brought better support for infrared climate control. This was enough to finally make my YTF IR Hub useable. Here's how I flashed ESPHome onto it and how I configured it for my Daikin AC and Home Assistant.
Style over Substance
M4 Hex Socket Thumbscrew Knob Caps
For the past few weeks I’ve been teaching myself how to use Fusion 360, a free online cloud-based...
over a year ago
For the past few weeks I’ve been teaching myself how to use Fusion 360, a free online cloud-based CAD/CAM program that lets you create your own 3D designs. The best way to learn how to use a new program is to build something you actually need. And my latest design is a work in...
Jonas Hietala
New Computer!
I briefly mentioned my new computer in the last post and I thought I’d make a post about it, as it’s...
over a year ago
I briefly mentioned my new computer in the last post and I thought I’d make a post about it, as it’s awesome (as all new computers are).
The specs:
GPU: Gigabyte GeForce GTX 550Ti OC 1GB
CPU: Intel core i5 2500K
CPU cooler: Zalman CNPS-9900NT
Motherboard: MSI P67A-C45 REV B3
Ram:...
Notes on software...
What's the big deal about Deterministic Simulation Testing?
Bugs in distributed systems are hard to find, largely because systems
interact in chaotic ways. And...
5 months ago
Bugs in distributed systems are hard to find, largely because systems
interact in chaotic ways. And even once you've found a bug, it can be
anywhere from simple to impossible to reproduce it. It's about as far
away as you can get from the ideal test environment: property...
Applied Cartography
Improving Django's default pagination performance
Buttondown's API calls are very fast, and one of the reasons why is that we've removed every single...
5 months ago
Buttondown's API calls are very fast, and one of the reasons why is that we've removed every single possible database query that we can.
The most recent was what looked like a fairly benign COUNT(*) query, coming from the default Django paginator; if you're gonna paginate things,...
Engineers Need Art
SystemSix
SystemSix is a desk calendar project that displays the weather forecast and phase of the moon on an...
over a year ago
SystemSix is a desk calendar project that displays the weather forecast and phase of the moon on an e-ink display.
Posts on Made of...
Testing and feedback loops
Testing and feedback loops This post tries to set out one mental model I have for thinking about...
over a year ago
Testing and feedback loops This post tries to set out one mental model I have for thinking about testing and the purpose testing serves in software engineering, and to explore some of the suggestions of this model.
As mentioned in an earlier post, I think a lot about working in...
Jonas Hietala
Let's build a VORON: More mods
The printer is done, but I feel one of the best part of a VORON printer is the ability to modify and...
11 months ago
The printer is done, but I feel one of the best part of a VORON printer is the ability to modify and personalize it.
There a tons of mods you can do, and while I’ve done a few there are lots more that I’d like to do some day.
It’s a wonderful feeling to augment the printer with...
Jonas Hietala
The 4-Hour Chef: Scrambled Eggs
I’ve been listening to The Tim Ferriss Show a while now and he and his guests often inspire me to...
over a year ago
I’ve been listening to The Tim Ferriss Show a while now and he and his guests often inspire me to make changes and start doing new things. I got introduced to Josh Waitzkin’s excellent The Art of Learning and the meta skill of learning has since then fascinated me. So when I got...
Jonas Hietala
Why Cryptocurrencies? is now available in print
Today is a big milestone for me, as this marks a big milestone in the biggest personal project I’ve...
over a year ago
Today is a big milestone for me, as this marks a big milestone in the biggest personal project I’ve undertaken.
My book ‘Why Cryptocurrencies?’ is released in print today! It’s my attempt to explain what cryptocurrencies are and what problems they solve, in a simple and...
./techtipsy
The hidden media play/pause/stop keys on the Lenovo ThinkPad L390 Yoga
ThinkPad keyboards were once well known for their great layouts, feel and
functionality. This...
8 months ago
ThinkPad keyboards were once well known for their great layouts, feel and
functionality. This included the media playback control keys.
On the ThinkPad T430, the new chiclet keyboard layout moved the media keys to
the function row. Still there, but less convenient to access.
The...
Arduino Blog
Self-leveling workbench can travel without trouble
An actually level workbench is critical for many different jobs, such as pouring resin or...
7 months ago
An actually level workbench is critical for many different jobs, such as pouring resin or calibrating sensors. But it is difficult enough to level a stationary workbench and that becomes a nightmare for a workbench that needs to roll around a shop on casters, as shop floors...
Arduino Blog
It’s silver, it’s green, it’s the Batteryrunner! An Arduino-powered, fully custom electric car
Inventor Charly Bosch and his daughter Leonie have crafted something truly remarkable: a fully...
a month ago
Inventor Charly Bosch and his daughter Leonie have crafted something truly remarkable: a fully electric, Arduino-powered car that’s as innovative as it is sustainable. Called the Batteryrunner, this vehicle is designed with a focus on environmental impact, simplicity, and custom...
Willem's Blog
Using the reMarkable paper tablet
The paper-like display makes you forget about reMarkable's digital innards, working with this tablet...
over a year ago
The paper-like display makes you forget about reMarkable's digital innards, working with this tablet is therefore quite remarkable!
Vitalik Buterin's...
Why we need wide adoption of social recovery wallets
over a year ago
Buck on Software
Category velocity
People make decisions, not businesses.
over a year ago
People make decisions, not businesses.
Vitalik Buterin's...
Review of Optimism retro funding round 1
over a year ago
Ken Shirriff's blog
Reverse engineering the 59-pound printer onboard the Space Shuttle
The Space Shuttle contained a bulky printer so the astronauts could
receive procedures, mission...
5 months ago
The Space Shuttle contained a bulky printer so the astronauts could
receive procedures, mission plans, weather reports, crew activity plans, and other documents.
Needed for the first Shuttle launch in 1981, this printer was designed in just 7 months, built around an Army...
Applied Cartography
Tailwind black magic: swallowing all pointer events
I wrote two days ago about a real and useful application of Tailwind black magic; here's...
9 months ago
I wrote two days ago about a real and useful application of Tailwind black magic; here's another.
Buttondown has a dropzone component lets folks drag-and-drop items or click on it to get a file-picker. It's used for importing images, archives, CSVs, the works: because it's so...
Arduino Blog
Making fire detection more accurate with ML sensor fusion
The mere presence of a flame in a controlled environment, such as a candle, is perfectly acceptable,...
5 months ago
The mere presence of a flame in a controlled environment, such as a candle, is perfectly acceptable, but when tasked with determining if there is cause for alarm solely using vision data, embedded AI models can struggle with false positives. Solomon Githu’s project aims to lower...
Abort Retry Fail
The History of Commodore, Part 2
The VIC-20
a year ago
Posts on Made of...
Confessions of a programmer: I hate code review
Most of the projects I've been working on today have fairly strict code review policies. My work...
over a year ago
Most of the projects I've been working on today have fairly strict code review policies. My work requires code review on most of our code, and as we bring on an army of interns for the summer, I've been responsible for reviewing lots of code. Additionally, about five months ago...
Jonas Hietala
Let's build a VORON: Filters
I can print, but the printer is missing a very important thing that I alluded to in the previous...
a year ago
I can print, but the printer is missing a very important thing that I alluded to in the previous post: filtering dangerous particles and fumes.
This is mostly covered by the kit, but I was missing some parts from the print it forward and the kit didn’t include a HEPA...
Jonas Hietala
Battling burnout
Mamma Mia! Here we go again…
Once again, I’m finding myself trying to recover from burnout, and...
a year ago
Mamma Mia! Here we go again…
Once again, I’m finding myself trying to recover from burnout, and after about a year I’m finally feeling more like myself.
Even though I’ve been here before, it’s a difficult thing to recognize and avoid, so I’m writing this to maybe help you or my...
Louwrentius
I switched my blog from Blogofile to Pelican
This blog is a static website, which makes it fast, simple and secure. It was generated by Blogofile...
over a year ago
This blog is a static website, which makes it fast, simple and secure. It was generated by Blogofile but I switched to Pelican.
Blogofile has seen almost no updates over the years and I consider the project dead. Realising that blogofile is dead, I decided to look around for...
Applied Cartography
Gosling’s Old Rum
Virginia has draconian liquor laws, which means I have to get interesting bottles shipped from...
11 months ago
Virginia has draconian liquor laws, which means I have to get interesting bottles shipped from [REDACTED], a site on which I am very prone to judging a book by its cover; every month I'll end up purchasing a bottle of something purely because it looks interesting and I can...
Arduino Blog
This Flip-Pelt wearable concept enables ultra-fast thermal feedback in VR
Wouldn’t it be great if, while playing a virtual reality game, you could feel the heat of a fire on...
2 months ago
Wouldn’t it be great if, while playing a virtual reality game, you could feel the heat of a fire on your arm? Or the cold of chilly water? Engineers around the world have been trying to make that happen, but there is a big problem: temperature changes are slow. The immersive...
Home on Erik...
Data architecture vs backend architecture
A modern tech stack typically involves at least a frontend and backend but relatively quickly also...
over a year ago
A modern tech stack typically involves at least a frontend and backend but relatively quickly also grows to include a data platform. This typically grows out of the need for ad-hoc analysis and reporting but possibly evolves into a whole oil refinery of cronjobs, dashboards, bulk...
Notes on software...
Writing a lisp compiler from scratch in JavaScript: 3. LLVM
Previously in compiler basics:
1. lisp to assembly
2. user-defined functions and variables
...
over a year ago
Previously in compiler basics:
1. lisp to assembly
2. user-defined functions and variables
4. LLVM conditionals and compiling fibonacci
5. LLVM system calls
6. an x86 upgrade
In this post we'll extend the
compiler to emit LLVM
IR as an option instead of...
Buck on Software
Don't be foie gras
If 2016-2020 was the golden unicorn age of SaaS, 2021 nearly hurtled us into the foie gras* era.
over a year ago
If 2016-2020 was the golden unicorn age of SaaS, 2021 nearly hurtled us into the foie gras* era.
Louwrentius
PPSS version 2.30 now operates asynchronous
If you background a bash or shell process, how do you determine if it has
finished? Since inter...
over a year ago
If you background a bash or shell process, how do you determine if it has
finished? Since inter process communication is not possible using shell
scripts, people often refer to while loops or other polling mechanisms to
determine if some process has stopped.
However, the one...
./techtipsy
Disk is OK
Maybe I am unlucky with computer hardware.
Maybe I have the opposite of the golden touch of...
over a year ago
Maybe I am unlucky with computer hardware.
Maybe I have the opposite of the golden touch of Midas.
Or maybe it’s just the fact that I use my hardware for things they were never meant to be used for.
Anyway, I have acquired two Seagate 4TB external hard drives for doing some...
Willem's Blog
Being a volunteer in Amsterdam-Zuidoost
About my work as volunteer in the local community center in Amsterdam Zuidoost
over a year ago
About my work as volunteer in the local community center in Amsterdam Zuidoost
./techtipsy
The absolute state of Bluetooth audio in 2022
I have the Sony WH-1000XM3 headphones. They’re good for consuming content.
Audio calls with your...
over a year ago
I have the Sony WH-1000XM3 headphones. They’re good for consuming content.
Audio calls with your colleagues? Forget about it.
This is the setup I have to go with, and it has all to do with how Bluetooth
works. Your options with Bluetooth headsets are the following:
high quality...
Home on Erik...
NoDoc
We had an unconference at Spotify last Thursday and I added a semi-trolling semi-serious topic about...
over a year ago
We had an unconference at Spotify last Thursday and I added a semi-trolling semi-serious topic about abolishing documentation. Or NoDoc, as I'm going to call this movement. This was meant to be mostly a thought experiment, but I don't see it as complete madness.
Computer Ads from...
Comics from 1983/08 Today Mag
Time for some levity. The following comics were all found in the August 1983 issue of Today...
10 months ago
Time for some levity. The following comics were all found in the August 1983 issue of Today magazine. Enjoy! What computer ads would you like to see in the future? Please comment below. If you enjoyed it, please share it with your friends and relatives. Thank you.
Arduino Blog
This Strandbeest-style coffee table can deliver drinks
More than 30 years ago, Dutch artist Theo Jansen began astounding the world with his Strandbeesten...
4 months ago
More than 30 years ago, Dutch artist Theo Jansen began astounding the world with his Strandbeesten walking sculptures. Even after decades, they have an almost mythical allure thanks to the incredibly fluid way in which they walk. They’re clearly constructs, but with gaits that...
Willem's Blog
Hospitalised with MCADD
This week our son was hospitalised because a regular illness caused him to keep vomiting, a...
over a year ago
This week our son was hospitalised because a regular illness caused him to keep vomiting, a dangerous situation if you're diagnosed with MCADD.
lcamtuf’s thing
Choosing an op-amp for your project
Just say no to LM741.
2 weeks ago
Willem's Blog
Building the blog... in style!
Find out if it is possible to turn a computer from the 90s into a modern development machine.
over a year ago
Find out if it is possible to turn a computer from the 90s into a modern development machine.
Posts on Made of...
Systems that defy detailed understanding
Last week, I wrote about the mindset that computer systems can be understood, and behaviors can be...
over a year ago
Last week, I wrote about the mindset that computer systems can be understood, and behaviors can be explained, if we’re willing to dig deep enough into the stack of abstractions our software is built atop. Some of the ensuing discussion on Twitter and elsewhere lead me to write...
Louwrentius
A 12.48 inch (1304x984) three-color e-paper display by Waveshare
Introduction
Update September 2023: A small horizontal and large vertical row of pixels died. Demo...
over a year ago
Introduction
Update September 2023: A small horizontal and large vertical row of pixels died. Demo of defective display here.
I'm running a solar-powered blog and I wanted to add a low-power display to show the daily solar 'harvest'1 and maybe some additional information.
So I...
Louwrentius
Making cowpatty recognize a four-way handshake
I was unable to get cowpatty working with a packet capture that actually
contains a four-way...
over a year ago
I was unable to get cowpatty working with a packet capture that actually
contains a four-way handshake of a WPA session.
I got it working like this:
First, download cowpatty 4.6 right here, within the source directory of
cowpatty.
Extract cowpatty and apply this patch using these...
Jonas Hietala
Let's build a VORON: Wrap-up
It’s finally done™.
I’ve built a VORON that prints reliably and I’ve modded it enough to be able to...
10 months ago
It’s finally done™.
I’ve built a VORON that prints reliably and I’ve modded it enough to be able to leave it alone for a while, so I think it’s time to wrap up this build series with a little retrospective.
Building the printer was really fun and rewarding
I’ve always seen...
Louwrentius
Eztables: simple yet powerful firewall configuration for Linux
I've created and released Eztables on Github. Anyone who ever has a need to setup a firewall on...
over a year ago
I've created and released Eztables on Github. Anyone who ever has a need to setup a firewall on Linux may be interested in this project.
It doesn't matter if you need to protect a laptop, server or want to setup a network firewall. Eztables supports it all.
If you're not afraid...
Notes on software...
Checking linearizability in Go
You want to check for strict consistency
(linearizability)
for your project but you don't want to...
2 months ago
You want to check for strict consistency
(linearizability)
for your project but you don't want to have to deal with the
JVM. Porcupine,
used by a number of real-world systems like etcd and TiDB, has you
covered!
Importantly, neither Jepsen projects nor Porcupine can...
Notes on software...
Writing a web server from scratch: 1. HTTP and sockets
Say we have some HTML:
<html>
<body>
<h1>Hello world!</h1>
</body>
</html>
And say we'd...
over a year ago
Say we have some HTML:
<html>
<body>
<h1>Hello world!</h1>
</body>
</html>
And say we'd like to be able to render this page in a web browser. If
the server is hosted locally we may want to enter
localhost:9000/hello-world.html in the address bar, hit
enter, make a...
Odds and Ends of...
WATCH: Were the US election polls right?
My conversation with polling guru Mark Pack
2 months ago
My conversation with polling guru Mark Pack
Louwrentius
Why VMware vSphere replication is changing the game
If you are running a serious VMware environment, chances are you do have a SAN. Often with smaller...
over a year ago
If you are running a serious VMware environment, chances are you do have a SAN. Often with smaller setups, many people do employ multiple VMware hosts, but the SAN is a single point of failure.
SANs are often fully redundant devices, with redundant PSUs, storage controllers,...
Louwrentius
'lm-sensors: hardware monitoring with the w83627ehf module'
I have two systems that use the w83627ehf driver for hardware monitoring.
However, if this driver is...
over a year ago
I have two systems that use the w83627ehf driver for hardware monitoring.
However, if this driver is installed with a regular modprobe like:
modprobe w83627ehf
The result will be:
FATAL: Error inserting w83627ehf
(/lib/modules/2.6.28-1-amd64/kernel/drivers/hwmon/w83627ehf.ko):...
Arduino Blog
Easily add Python-controlled GPIO pins to any computer
Let’s say that, hypothetically, you wanted to use your computer to blink an LED or read the state of...
7 months ago
Let’s say that, hypothetically, you wanted to use your computer to blink an LED or read the state of a button. Could you? Almost certainly not — at least not without additional hardware. Most modern computers don’t provide any interface for direct interaction with low-level...
Home on Erik...
Missing the point about microservices: it's about testing and deploying independently
Ok, so I have to first preface this whole blog post by a few things:
I really struggle with the...
over a year ago
Ok, so I have to first preface this whole blog post by a few things:
I really struggle with the term microservices. I can't put my finger on exactly why. Maybe because the term is hopelessly ill-defined, maybe because it's gotten picked up by the hype train.
Louwrentius
Configuring SCST iSCSI target on Debian Linux (Wheezy)
My goal is to export ZFS zvol volumes through iSCSI to other machines. The platform I'm using is...
over a year ago
My goal is to export ZFS zvol volumes through iSCSI to other machines. The platform I'm using is Debian Wheezy.
There are three iSCSI target solutions available for Linux:
LIO
IET
SCST
I've briefly played with LIO but the targetcli tool is interactive only. If you want to...
Louwrentius
RAID array size and rebuild speed
When a disk fails of a RAID 5 array, you are no longer protected against
(another) disk failure and...
over a year ago
When a disk fails of a RAID 5 array, you are no longer protected against
(another) disk failure and thus data loss. During this rebuild time, you are
vulnerable. The longer it takes to rebuild your array, the longer you are
vulnerable. Especially during a disk-intensive period,...
Vitalik Buterin's...
Layer 1 Should Be Innovative in the Short Term but Less in the Long Term
over a year ago
Posts on Made of...
Configuring dnsmasq with VMware Workstation
I love VMware workstation. I keep VMs around for basically every version of every major Linux...
over a year ago
I love VMware workstation. I keep VMs around for basically every version of every major Linux distribution, and use them heavily for all kinds of kernel testing and development.
This post is a quick writeup of my networking setup with VMware Workstation, using dnsmasq to assign...
Good Enough
Cosmic Maelstrom
As Barry wrote in his recent blogpost, we're busy building prototypes here at Good Enough.
It's...
a year ago
As Barry wrote in his recent blogpost, we're busy building prototypes here at Good Enough.
It's weird to be in this situation. Most of the Good Enough team are used to working on just one software at a time, focusing on steadily improving it. But right now we're doing the...
Jonas Hietala
The T-34 keyboard layout
A couple of months ago I started looking into ergonomical keyboards; mainly split keyboards with...
over a year ago
A couple of months ago I started looking into ergonomical keyboards; mainly split keyboards with much fewer keys, like the 36-key Gergoplex and the 44-key Kyria. I may write another post about the reasons why, but long story short I started getting pain in my thumbs, fingers,...
Vitalik Buterin's...
Possible futures of the Ethereum protocol, part 1: The Merge
3 months ago
Construction Physics
The Long Road to Fiber Optics
Over the past six decades, advances in computers and microprocessors have completely reshaped our...
4 months ago
Over the past six decades, advances in computers and microprocessors have completely reshaped our world.
Louwrentius
Linux Iptables Firewall Script released on Google code
I have released LIFS, the Linux Iptables Firewall Script. This script allows you to setup a firewall...
over a year ago
I have released LIFS, the Linux Iptables Firewall Script. This script allows you to setup a firewall within minutes. It is easy to use, yet very powerful. It uses Iptables and even improves upon some limitations of Iptables.
Every person who has to maintain some kind of...
Birchtree
I’m Knee-Deep in Turkey
Another week, another fantastically fun episode of Comfort Zone! This week Niléane talked about her...
a month ago
Another week, another fantastically fun episode of Comfort Zone! This week Niléane talked about her new Flight Simulator obsession, we go on a tangent about PC gaming, Chris (who says he’s an iPad guy) brings another Mac to talk about, and I had the gang look
Jonas Hietala
Done this, done that. What now?
Finished and uploaded our java game Grand Thief Arto, done an exam (didn’t quite go as intended) and...
over a year ago
Finished and uploaded our java game Grand Thief Arto, done an exam (didn’t quite go as intended) and starting some new courses in school. I’m liking my choice of Computer Science more and more. Data structures and Algorithms was a super fun course, I actually ordered a new book...
Jonas Hietala
Before the Games: The Site
I’ve got some things I want to do before I start with my next game and they’re all about improving...
over a year ago
I’ve got some things I want to do before I start with my next game and they’re all about improving the site. The last week or so has been extremely productive with me throwing out a lot of wasted code, speeding up the site and adding/removing features and I want to continue with...
Arduino Blog
Build Button Clash in minutes: a new fun game with Plug and Make Kit
The Arduino Plug and Make Kit is all about turning creative sparks into reality in mere minutes....
a month ago
The Arduino Plug and Make Kit is all about turning creative sparks into reality in mere minutes. With its intuitive, snap-together design, even the wildest ideas become achievable – fast, fun, and frustration-free. That’s exactly what Julián Caro Linares, Arduino’s Product...
Home on Erik...
We're hiring at Better
Just a quick note that my team is always hiring at Better. A lot of new people have been joining the...
over a year ago
Just a quick note that my team is always hiring at Better. A lot of new people have been joining the team here in NYC lately—the tech team has actually grown from 35 to 60 in just ~3 months.
Louwrentius
ZFS: resilver performance of various RAID schemas
When building your own DIY home NAS, it is important that you simulate and test drive failures...
over a year ago
When building your own DIY home NAS, it is important that you simulate and test drive failures before you put your important data on it. It makes sense to know what to do in case a drive needs to be replaced. I also recommend putting a substantial amount of data on your NAS and...
Good Enough
All About CSS: Alphabetize, Normalize, and Dark-mode-itize
Hello reader, I’m Matthew, the newest member of Good Enough (LLC). The rest of the team are avid...
a year ago
Hello reader, I’m Matthew, the newest member of Good Enough (LLC). The rest of the team are avid writers and sharers… I’m not. But they keep chanting “One of us. One of us.” so I suppose you’ll see me around here sometimes.
For my inaugural post, I thought I’d quickly share what...
./techtipsy
I looked at this site on the Wayback Machine
Yesterday was election day in Estonia and the results are in, which is why
I remembered that one...
a year ago
Yesterday was election day in Estonia and the results are in, which is why
I remembered that one time I looked at my website on the Wayback Machine.
This domain used to point to a Wordpress site that hosted
content for a candidate in the local elections,
at least around...
Jonas Hietala
Bitcoin Cash needs a Specification
I’m not a Bitcoin developer, I’m just some guy looking in from the outside. Lately there’s been a...
over a year ago
I’m not a Bitcoin developer, I’m just some guy looking in from the outside. Lately there’s been a bunch of heated debates between the different Bitcoin Cash developer teams. Something that stood out from all the noise was problems with communications and a lack of specification...
Jonas Hietala
OP_RETURN based tokens are fundamentally flawed
Two new Bitcoin Cash token solutions have recently been suggested:
Simple Ledger Protocol: A token...
over a year ago
Two new Bitcoin Cash token solutions have recently been suggested:
Simple Ledger Protocol: A token system for Bitcoin Cash
Introducing Colored Coins: a Bitcoin Cash token implementation
Both are improvements over Tokeda as they allow permissionless transfers. However all commit...
Matt Blewitt
Riding the Risk Railway
When building and operating a user-facing system, especially one that is open to the public, it is...
over a year ago
When building and operating a user-facing system, especially one that is open to the public, it is important to consider the riskiness of a user, which can also be characterised as trustworthiness. These will typically be negatively correlated, with low trust indicating high risk...
Willem's Blog
Replacing a Shimano shift cable
After some adventure with our cargo bike, the Shimano Nexus 7-speed shifter cable got damaged and...
over a year ago
After some adventure with our cargo bike, the Shimano Nexus 7-speed shifter cable got damaged and needed replacement. Read my blog post to learn how to do this yourself.
Neil Madden
Why the OAuth mTLS spec is more interesting than you might think
I was catching up on the always excellent Security. Cryptography. Whatever. podcast, and enjoyed the...
over a year ago
I was catching up on the always excellent Security. Cryptography. Whatever. podcast, and enjoyed the episode with Colm MacCárthaigh about a bunch of topics around TLS. It’s a great episode that touches a lot of subjects I’m interested in, so go ahead and listen to it if you...
Ken Shirriff's blog
Inside the tiny chip that powers Montreal subway tickets
To use the Montreal subway (the Métro), you tap a paper ticket against the turnstile and it...
7 months ago
To use the Montreal subway (the Métro), you tap a paper ticket against the turnstile and it opens.
The ticket works through a system called NFC, but what's happening internally?
How does the ticket work without a battery? How does it communicate with the turnstile?
And how can it...
Jonas Hietala
Postmortem: Balls
So it’s been what? Two, three years since I discovered the art of programming and I haven’t made one...
over a year ago
So it’s been what? Two, three years since I discovered the art of programming and I haven’t made one single game?! Well now I’m not counting the visual basic nightmare mastermind I made a long time ago but a real game. Whatever that means. I’ve had these monster-projects;
Point...
Willem's Blog
Rolex DateJust 36
Celebrating a major milestone, I treated myself to a Rolex DateJust 36. Want to know what it's like?...
over a year ago
Celebrating a major milestone, I treated myself to a Rolex DateJust 36. Want to know what it's like? Keep reading!
Arduino Blog
This belt grinder uses an Arduino Opta micro PLC
A mainstay in most machine shops, the belt grinder assists in greatly increasing the speed at which...
3 months ago
A mainstay in most machine shops, the belt grinder assists in greatly increasing the speed at which parts can be ground down in a safer, more controlled manner compared to an angle grinder. As an effort to build a tool like this one for the first time, Julien Alexandre chose to...
Jonas Hietala
5 Years at Linköping's University
I recently finished my master’s degree (civilingenjör or civil engineering) at Linköping’s...
over a year ago
I recently finished my master’s degree (civilingenjör or civil engineering) at Linköping’s University. At first it felt like 5 years would be an eternity, but in hindsight it was over in a flash. my gut feeling is that I haven’t learnt or done anything of note, except you know...
Vitalik Buterin's...
Gitcoin Grants Round 6 Retrospective
over a year ago
Jonas Hietala
Netrunner Lindhska Store Championship Örebro
After the awesomeness during the previous store championship, I decided to go to the store...
over a year ago
After the awesomeness during the previous store championship, I decided to go to the store championship at Lindhska Bokhandel in Örebro.
I brought a modified version of the same corp I used the last time, a Blue Sun kill deck and a new runner with Leela Patel. See the links for...
Home on Erik...
More Luigi!
Elias Freider just talked about Luigi at PyData 2013:
The presentation above is much better than one...
over a year ago
Elias Freider just talked about Luigi at PyData 2013:
The presentation above is much better than one I put together a few weeks ago. In case anyone is interested I'll include it too:
Christian Selig
Beware UserDefaults: a tale of hard to find bugs, and lost data
Excuse the alarmist title, but I think it’s justified, as it’s an issue that’s caused me a ton of...
3 months ago
Excuse the alarmist title, but I think it’s justified, as it’s an issue that’s caused me a ton of pain in both support emails and actually tracking it down, so I want to make others aware of it so they don’t similarly burned.
Brief intro
For the uninitiated, UserDefaults (née...
Notes on software...
Eight years of organizing tech meetups
This is a collection of random personal experiences. So if you don't
want to read everything, feel...
a year ago
This is a collection of random personal experiences. So if you don't
want to read everything, feel free to skip to the end for takeaways.
I write because I'd like to see more high-quality meetups. And maybe
my little bit of experience will help someone out.
2015: Philadelphia
I...
Arduino Blog
Reimagining the chicken coop with predator detection, Wi-Fi control, and more
The traditional backyard chicken coop is a very simple structure that typically consists of a...
5 months ago
The traditional backyard chicken coop is a very simple structure that typically consists of a nesting area, an egg-retrieval panel, and a way to provide food and water as needed. Realizing that some aspects of raising chickens are too labor-intensive, the Coders Cafe crew decided...
latest projects -...
POV Candle
[Hardware] Tiny volumetric display
a year ago
[Hardware] Tiny volumetric display
Louwrentius
Shunit2, unit testing for shell scripts
This may be of interest to people who are as stupid as I am and write
elaborate shell scripts...
over a year ago
This may be of interest to people who are as stupid as I am and write
elaborate shell scripts instead of using a proper scripting language such as
Python or Ruby. No I am deliberately not mentioning Perl here.
Anyway, testing is always an issue. With PPSS, I encountered many...
Willem's Blog
For the love of mini
The iPhone Mini has intangible greatness that most folks don't know about: read along for the love...
over a year ago
The iPhone Mini has intangible greatness that most folks don't know about: read along for the love of mini!
Birchtree
Apple’s 2024 report card: Vision Pro 👓
This is the fifth and final post in a series of posts reviewing Apple’s 2024 across their major...
3 weeks ago
This is the fifth and final post in a series of posts reviewing Apple’s 2024 across their major product lines. I did this last year and you can read last year’s Vision Pro report card here.
Year one of Vision Pro
This is a bit of
Arduino Blog
Marble art madness from a marvelous machine
Marbles are underrated. They’re very round, roll well, tend to be pretty shiny, and come in all...
3 months ago
Marbles are underrated. They’re very round, roll well, tend to be pretty shiny, and come in all sorts of neat colors. That last characteristic makes them suitable for artwork, like orbicular pixels. In his most ambitious project to date, Engineezy took advantage of those...
Louwrentius
Difference of behavior in SATA Solid State Drives
Introduction
Update: I've noticed some strange behavior of SSDs when benchmarking them with FIO....
over a year ago
Introduction
Update: I've noticed some strange behavior of SSDs when benchmarking them with FIO. After further investigation and additional testing, I've found the reason for the strange patterns in the graphs.
The 'strange' test results are due to the fact that they were...
Louwrentius
Why you should not use IPsec for VPN connectivity
IPsec is a well-known and widely-used VPN solution. It seems that it's not widely known that Niels...
over a year ago
IPsec is a well-known and widely-used VPN solution. It seems that it's not widely known that Niels Ferguson and Bruce Schneier performed a detailed security analysis of IPsec and that the results were not very positive.
We strongly discourage the use of IPsec in its current form...
heavymeta.org
CrowdStrike's Impact on Aviation
Just after midnight Eastern Time on July 19, 2024, the enterprise cybersecurity
company CrowdStrike...
5 months ago
Just after midnight Eastern Time on July 19, 2024, the enterprise cybersecurity
company CrowdStrike YOLOed a software update to millions of Windows machines. Or
as they put it:
On July 19, 2024 at 04:09 UTC, as part of ongoing operations, CrowdStrike
released a sensor...
Odds and Ends of...
Odds and Ends #53: Now TfL is betting on AI cameras to improve safety
Plus Leicester's neo-imperial ambitions, why governments are too scared to govern, a theory on why...
2 days ago
Plus Leicester's neo-imperial ambitions, why governments are too scared to govern, a theory on why Starship exploded... and more!
Jonas Hietala
Why I still blog after 15 years
Time flies when you’re having fun.
Before you know it, your little babies have started school, you...
3 months ago
Time flies when you’re having fun.
Before you know it, your little babies have started school, you celebrate the 30th anniversary of Jurassic Park, and that little blog you started have now been going for 15 years.
15 years is a long time; longer than I’ve been waiting for Winds...
Arduino Blog
RIoT Secure joins Arduino’s SIPP as Gold Partner
We are excited to announce that RIoT Secure has joined Arduino’s System Integrators Partnership...
7 months ago
We are excited to announce that RIoT Secure has joined Arduino’s System Integrators Partnership Program at the Gold level. Founded in 2017 in Stockholm, Sweden, RIoT Secure is at the forefront of IoT security, especially in regards to resource-constrained microcontrollers,...
Engineers Need Art
VPX Scripting - Part 3 (Cut & Paste)
Sound code is added in this third in a series of posts about scripting Visual Pinball tables.
9 months ago
Sound code is added in this third in a series of posts about scripting Visual Pinball tables.
Home on Erik...
It's hard to write code for computers, but it's even harder to write code for humans
Writing code for a computer is hard enough. You take something big and fuzzy, some large vague...
3 months ago
Writing code for a computer is hard enough. You take something big and fuzzy, some large vague business outcome you want to achive. Then you break it down recursively and think about all the cases until you have clear logical statements a computer can follow.
Louwrentius
Do not buy a hardware RAID controller for home use
Hardware RAID controllers are considered 'the best' solution for high
performance and high...
over a year ago
Hardware RAID controllers are considered 'the best' solution for high
performance and high availability. However, this is not entirely true. Using a
hardware RAID controller might even endanger your precious data.
For enterprise environments, where performance is critical, it is...
Louwrentius
Achieving 220 MB/s network file transfers using Linux Bonding
I wrote an article about the subject of getting beyond the limits of gigabit network file transfers....
over a year ago
I wrote an article about the subject of getting beyond the limits of gigabit network file transfers. My solution is to use multiple gigabit network cards and use Linux interface bonding to create virtual 2 gigabit network interfaces. The solution is to use mode 0 or round robin...
Jonas Hietala
The current T-34 keyboard layout
I’ve been documenting my own keyboard layout in a series for a while now. But as the layout is...
over a year ago
I’ve been documenting my own keyboard layout in a series for a while now. But as the layout is constantly changing it’s been difficult to piece together how the layout currently looks like, so this post tries to show how the layout looks right now in it’s entirety.
If you want to...
Louwrentius
Parallel / distributed password cracking with John the Ripper and MPI
This article has been updated to reflect the changes for John version 1.7.8 as released in june...
over a year ago
This article has been updated to reflect the changes for John version 1.7.8 as released in june 2011.
The most important change is the fact that MPI support is now integrated in the jumbo patch.
The original John the Ripper off-line password cracker only uses a single processor...
Louwrentius
HighPoint RocketRAID and staggered spinup with Samsung F1
I have experienced problems using a HighPoint RocketRaid 2320 and 2340 when
they are using...
over a year ago
I have experienced problems using a HighPoint RocketRaid 2320 and 2340 when
they are using 'staggered spinup' in combination with Samsung Spinpoint F1, 1
(one) terrabyte disks.
The problem is that the F1 disks spinup very slowly and often seem to 'hang'
while making ticking...
anderegg.ca
Using WordPress is risky
It’s been a couple of weeks since I last wrote about WordPress. Stuff’s been happening in the...
2 months ago
It’s been a couple of weeks since I last wrote about WordPress. Stuff’s been happening in the background, but I’ve been trying to ignore it. This morning I read a story that bothered me enough to require another round of therapy-by-blog-post.
First up, a couple of things that...
Louwrentius
'Zabbix Security: client-server communication seems insecure'
Zabbix is a populair tool for monitoring servers, services and network
equipment. For monitoring...
over a year ago
Zabbix is a populair tool for monitoring servers, services and network
equipment. For monitoring hosts, Zabbix provides an agent that can be
installed on the hosts that must be monitored.
Based on the supplied documentation and some remarks on the internets,
the 'security' of...
Simply Explained
ESP-IDF: Storing AWS IoT certificates in the NVS partition (for OTA)
When using AWS IoT Core, most tutorials will tell you to include device certificates in your...
over a year ago
When using AWS IoT Core, most tutorials will tell you to include device certificates in your firmware. While that does work, it means you won't be able to run over-the-air updates.In this post, I'll show how to store AWS certificates in the NVS partition. This will make it...
Home on Erik...
I believe in the 10x engineer, but...
The easiest way to be a 10x engineer is to make 10 other engineers 2x more efficient. Someone can be...
over a year ago
The easiest way to be a 10x engineer is to make 10 other engineers 2x more efficient. Someone can be a 10x engineer if they do nothing for 364 days then convinces the team to change programming language to a 2x more productive language.
Louwrentius
RAID 5 is perfectly fine for home usage
RAID 5 gets a lot of flak these days. You either run RAID 1, RAID 10 or you use RAID 6, but if you...
over a year ago
RAID 5 gets a lot of flak these days. You either run RAID 1, RAID 10 or you use RAID 6, but if you run RAID 5 you're told that you are a crazy person.
Using RAID 5 is portrayed as an unreasonable risk to the availability of your data. It is suggested that it is likely that you...
Jonas Hietala
2017 in Review
In contrast to previous years I haven’t kept up with the blog. For good reason I’d say since we got...
over a year ago
In contrast to previous years I haven’t kept up with the blog. For good reason I’d say since we got a child in October! It really alters your perspectives and other things suddenly feel a little less important and of course there’s less time to do other stuff.
A little late and...
Style over Substance
My new purchase: a Zeiss Ikon Nettar 517/16
Cheaper than a tank of gas, smaller than a Leica, 6x6 medium format negs - tons of fun. This Nettar...
over a year ago
Cheaper than a tank of gas, smaller than a Leica, 6x6 medium format negs - tons of fun. This Nettar folding camera sure is bang for buck!
The post My new purchase: a Zeiss Ikon Nettar 517/16 appeared first on Style over Substance.
Vitalik Buterin's...
What even is an institution?
over a year ago
./techtipsy
DIY cloud gaming: NVIDIA and Moonlight
As you might have read from my previous post on this topic, I
have a pretty neat “cloud” gaming...
over a year ago
As you might have read from my previous post on this topic, I
have a pretty neat “cloud” gaming setup running. I have one powerful desktop PC, one virtual machine with a GPU attached
to it, and client machines that can be used to stream games from. To keep things simple (and...
./techtipsy
Fairphone 5: my heavily biased overview after 58 days of use (and counting)
After months of contemplating I finally pulled the trigger and got myself
a Fairphone 5. The...
10 months ago
After months of contemplating I finally pulled the trigger and got myself
a Fairphone 5. The fact
that iPhone X stopped receiving major iOS updates certainly helped make that decision.
“But why? My Xiaomi/Oneplus/Samsung/other glued-together device is like so much cheaper and...
Jonas Hietala
Writing lessons learned after writing a book
A good writer isn’t born; a good writer is created
It may sound dumb, but one of my reasons for...
a year ago
A good writer isn’t born; a good writer is created
It may sound dumb, but one of my reasons for writing a book was to improve my writing ability.
Maybe I could’ve practiced on the blog instead, but putting things on paper gave it some added weight I don’t think I would’ve gotten...
Arduino Blog
Making a car more secure with the Arduino Nicla Vision
Shortly after attending a recent tinyML workshop in Sao Paolo, Brazil, Joao Vitor Freitas da Costa...
5 months ago
Shortly after attending a recent tinyML workshop in Sao Paolo, Brazil, Joao Vitor Freitas da Costa was looking for a way to incorporate some of the technologies and techniques he learned into a useful project. Given that he lives in an area which experiences elevated levels of...
Arduino Blog
Exercise while you game with this interactive treadmill add-on
Motion-based controls for games have been around for decades, but even with the latest generation of...
4 months ago
Motion-based controls for games have been around for decades, but even with the latest generation of virtual reality headsets, gaming is still done with relatively limited movement unless one has access to an expensive VR walking/running setup. As an effort to get more physical...
Jonas Hietala
The first (worst) post
Well, here it is: The opening post. What will come here? Here’s where I’ll outline what the blog...
over a year ago
Well, here it is: The opening post. What will come here? Here’s where I’ll outline what the blog will be about and maybe, if I’m dedicated, it won’t die before Christmas you think.
And sure, you’re right. I will run away to the corner in about two and a half months crying I never...
Simply Explained
How I Built an NFC Movie Library for my Kids
When I was a kid, my sister and I had a tower of VHS tapes we watched endlessly. Fast-forward to...
a year ago
When I was a kid, my sister and I had a tower of VHS tapes we watched endlessly. Fast-forward to today, and my children's movie collection is vastly different. It's completely digital and dispersed across services. I wanted to recreate the tangible magic of my childhood for them.
./techtipsy
LattePanda V1 - my experience with a Raspberry Pi alternative
As with many homelab experiments around 2022/2023, it all started with Raspberry Pi-s
being either...
a year ago
As with many homelab experiments around 2022/2023, it all started with Raspberry Pi-s
being either out of stock or absurdly overpriced.
I once noticed a listing for a LattePanda V1 on a local auction site.
The price was reasonable at 45 EUR, and after I looked at the...
Jonas Hietala
(Fake) Bittman Chinese Chicken
Lesson 6! I went to Cervera and bought a holder to allow me to steam chicken.
I broke the recipe on...
over a year ago
Lesson 6! I went to Cervera and bought a holder to allow me to steam chicken.
I broke the recipe on multiple fronts: chicken wings instead of chicken breasts, mushroom soy instead of tamarin, roman salad instead of baby bok choi (where the heck do you find that…) and I even...
./techtipsy
Oversimplified guide into snapshots on the btrfs filesystem
Friday afternoon. You’re trying out a script that you wrote to mass-rename and
move some files...
over a year ago
Friday afternoon. You’re trying out a script that you wrote to mass-rename and
move some files around. You finish the script and test it out.
Oops.
All the files now have all the wrong names, and some have been randomly moved
10 folders deep. It’s a mess.
And you didn’t make a...
Simply Explained
HEIC to JPG: Build a Quick Action with Automator
With the release of iOS 11, Apple switched from JPG to HEIC to store your photos. The...
over a year ago
With the release of iOS 11, Apple switched from JPG to HEIC to store your photos. The High-Efficiency Image File Format saves a lot of storage space on your devices while still maintaining your photos' quality. However, it does become problematic if you want to share those files...
Jonas Hietala
An Elixir based payment processor for the Coinparty hackathon
Bitcoin Unlimited is hosting a Bitcoin Cash hackathon this December and it seemed like a good...
over a year ago
Bitcoin Unlimited is hosting a Bitcoin Cash hackathon this December and it seemed like a good opportunity for me to explore how to program against Bitcoin Cash, and it gives me an excuse to build something real with Phoenix and Elixir. (While an event like this might help combat...
Louwrentius
How to run Debian Linux on an Intel based Mac Mini
The Mac Mini is just a gorgeous device. It is beautiful, small, silent,
powerfull yet energy...
over a year ago
The Mac Mini is just a gorgeous device. It is beautiful, small, silent,
powerfull yet energy efficient. When idle, it uses around 20 watts. I'm using
one of the first Intel-based Minis with an Intel Core Duo chip, running at 1.6
Ghz.
I want to use this mini as an expensive router...
Push to Prod
Metrics Are The Map, Not The Territory
We can never obtain a complete and perfect understanding of what our systems are doing. All we have...
5 months ago
We can never obtain a complete and perfect understanding of what our systems are doing. All we have are incomplete signals to inform our theories.
Vitalik Buterin's...
A Philosophy of Blockchain Validation
over a year ago