GeistHaus
log in · sign up

k3tan.com

Part of k3tan.com

Digital Freedom

stories primary
Pebble Time 2
HardwareSoftware
My Pebble Time 2 has finally arrived!
Show full content
Pebble Time 2

I have received my Pebble Time 2 (PT2) in the mail after pre-ordering it back in March 2025. It's been a long wait, but it is finally here.

First impressions:

  • Packaging is minimalist and slick.
  • Comes with USB-C charging adaptor. Great to see.
  • Putting the straps on was a fairly simple and straightforward process.
  • Connectivity from the watch to my Android phone was flawless.
  • Button navigation menu is nice, but looking forward to when the touch screen functionality is enabled.
  • Great build quality, feels nice on my wrist.

I've never used a Pebble device before. I'm migrating over from a cheap $40 smartwatch I found on eBay. The PT2 is a huge upgrade in terms of features. One of the reasons it stood out for me was its open source development. And wow, it delivers.

Settings

The Pebble mobile app, along with the watch itself has a wide range of customisations and menus to dig into. The watch and the mobile app synchronise very seamlessly. You can download and install watchfaces & apps from the App Store, control your backlight, change your music, set alarms, monitor your heart rate and steps. The watch is incredibly feature rich and useful.

Watch faces

There are so many watchfaces to choose from, and I'm discovering more on the store every day. I'm building a catalog of watchfaces that I like. Many have not been optimised for the PT2 yet, but development is happening rapidly. I gravitate towards faces that are professional and information rich. Below are the ones I'm paying attention to right now.

Pebble Time 2Pebble Time 2Pebble Time 2Pebble Time 2Pebble Time 2Pebble Time 2

A selection of my favourite watchfaces so far.

App Store

The Pebble App Store is loaded with amazing apps. There are plenty of games on the store, but I'm all about tools, utilities and information. Here are my favourites.

Home Assistant WS

Home Assistant WS connects to your home assistant and allows you to toggle devices in your home as well as display information. I've been able to display all sorts of useful information directly to my wrist:

  • My home power consumption and daily energy reading
  • Live bitcoin price & block height
  • Price of petrol at my local service stations
Pebble Time 2
Pertinent information directly to my wrist displayed via a Quick Launch button!
Treble

Treble uses your phone's microphone and Shazam's API to listen out for music and give you what's being played. There's a companion app that goes with it. Incredibly helpful when there's a song on the radio that I don't know the name of. I don't have to use my phone, just start listening out using my watch. Just incredible.

Pebble Time 2
Image when the app finds a song. 10 songs kept in history.
LibreHealth

LibreHealth sends health related data (steps, pulse, sleep) collected by your Pebble watch every hour to its companion mobile phone app called LibreHealth. From there, you can export/import this information to json file. Both the pebble app and phone app are open source and hosted on GitHub. Your health data does not get uploaded to any servers and is always kept with you. Very impressive.

Pebble Time 2
Yes, my heart rate is rather elevated.
Flights

Flights app is rather useful when travelling. Input your flight number and get all the details. Here's a Jetstar flight from Sydney to Melbourne. Gives you the weather at destination. Pretty handy to have all on your wrist.

Pebble Time 2
Flights information
Kagi News

Kagi News keeps you up to date on a range of topics you can choose from. Data is refreshed at 10pm every night, ready for your morning brew. Here are the ones I'm interested in and a sample of news provided.

Pebble Time 2
Kagi News, delivered straight to my wrist.

Update: it appears Kagi News has been pulled off the App Store - hopefully it returns.

Others

Other apps I have installed:

  • Torch - makes the screen white, but only to the brightness you've set. It does not increase brightness.
  • Compass - for getting some direction!
  • Time Traveler - a nice graphical way of showing the time across different cities.
  • Muninn - Battery Wisdom - gives information and estimates on your battery.
  • Timer - self explanatory
  • Stopwatch - self explanatory
  • Find My Phone - use the pebble watch to ping my phone, phone starts beeping. Quite handy.
Battery life

The battery life is still being optimised by the Pebble team, but the latest version of firmware is reducing battery drain significantly. I'm a pretty heavy user so I expect a fair bit of drain. It's too early to tell what the exact experience will be. I do think it will last 20-30 days as advertised by the Pebble team.

Conclusion

I'm very impressed with the Pebble so far. The app store is incredible and developers haven't even scratched the surface of what can be built on this platform, especially with AI vibe coding in the mix. The watch just seamlessly integrates in with my life. There are some rough around the edges hiccups but I suspect this will dissipate and stabilise as more development occurs. It's all very exciting.

.btcpay-form { display: inline-flex; align-items: center; justify-content: center; } .btcpay-form--inline { flex-direction: row; } .btcpay-form--block { flex-direction: column; } .btcpay-form--inline .submit { margin-left: 15px; } .btcpay-form--block select { margin-bottom: 10px; } .btcpay-form .btcpay-custom-container{ text-align: center; }.btcpay-custom { display: flex; align-items: center; justify-content: center; } .btcpay-form .plus-minus { cursor:pointer; font-size:25px; line-height: 25px; background: #DFE0E1; height: 30px; width: 45px; border:none; border-radius: 60px; margin: auto 5px; display: inline-flex; justify-content: center; } .btcpay-form select { -moz-appearance: none; -webkit-appearance: none; appearance: none; color: currentColor; background: transparent; border:1px solid transparent; display: block; padding: 1px; margin-left: auto; margin-right: auto; font-size: 11px; cursor: pointer; } .btcpay-form select:hover { border-color: #ccc; } .btcpay-form option { color: #000; background: rgba(0,0,0,.1); } .btcpay-input-price { -moz-appearance: textfield; border: none; box-shadow: none; text-align: center; font-size: 25px; margin: auto; border-radius: 5px; line-height: 35px; background: #fff; }.btcpay-input-price::-webkit-outer-spin-button, .btcpay-input-price::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; } input[type=range].btcpay-input-range { -webkit-appearance:none; width:100%; background: transparent; } input[type=range].btcpay-input-range:focus { outline:0; } input[type=range].btcpay-input-range::-webkit-slider-runnable-track { width:100%; height:3.1px; cursor:pointer; box-shadow:0 0 1.7px #020,0 0 0 #003c00; background:#f3f3f3; border-radius:1px; border:0; } input[type=range].btcpay-input-range::-webkit-slider-thumb { box-shadow:none; border:2.5px solid #cedc21; height:22px; width:22px; border-radius:50%; background:#0f3723; cursor:pointer; -webkit-appearance:none; margin-top:-9.45px } input[type=range].btcpay-input-range:focus::-webkit-slider-runnable-track { background:#fff; } input[type=range].btcpay-input-range::-moz-range-track { width:100%; height:3.1px; cursor:pointer; box-shadow:0 0 1.7px #020,0 0 0 #003c00; background:#f3f3f3; border-radius:1px; border:0; } input[type=range].btcpay-input-range::-moz-range-thumb { box-shadow:none; border:2.5px solid #cedc21; height:22px; width:22px; border-radius:50%; background:#0f3723; cursor:pointer; } input[type=range].btcpay-input-range::-ms-track { width:100%; height:3.1px; cursor:pointer; background:0 0; border-color:transparent; color:transparent; } input[type=range].btcpay-input-range::-ms-fill-lower { background:#e6e6e6; border:0; border-radius:2px; box-shadow:0 0 1.7px #020,0 0 0 #003c00; } input[type=range].btcpay-input-range::-ms-fill-upper { background:#f3f3f3; border:0; border-radius:2px; box-shadow:0 0 1.7px #020,0 0 0 #003c00; } input[type=range].btcpay-input-range::-ms-thumb { box-shadow:none; border:2.5px solid #cedc21; height:22px; width:22px; border-radius:50%; background:#0f3723; cursor:pointer; height:3.1px; } input[type=range].btcpay-input-range:focus::-ms-fill-lower { background:#f3f3f3; } input[type=range].btcpay-input-range:focus::-ms-fill-upper { background:#fff; } USD GBP EUR BTC function handleSliderChange(event) { event.preventDefault(); const root = event.target.closest('.btcpay-form'); const el = root.querySelector('.btcpay-input-price'); const price = parseInt(el.value); const min = parseInt(event.target.getAttribute('min')) || 1; const max = parseInt(event.target.getAttribute('max')); if (price < min) { el.value = min; } else if (price > max) { el.value = max; } root.querySelector('.btcpay-input-range').value = el.value; } function handleSliderInput(event) { event.target.closest('.btcpay-form').querySelector('.btcpay-input-price').value = event.target.value; } document.querySelectorAll(".btcpay-form .btcpay-input-range").forEach(function(el) { if (!el.dataset.initialized) { el.addEventListener('input', handleSliderInput); el.dataset.initialized = true; } }); document.querySelectorAll(".btcpay-form .btcpay-input-price").forEach(function(el) { if (!el.dataset.initialized) { el.addEventListener('change', handleSliderChange); el.dataset.initialized = true; } }); function handlePriceInput(event) { event.preventDefault(); const root = event.target.closest('.btcpay-form'); const price = parseInt(event.target.dataset.price); if (isNaN(event.target.value)) root.querySelector('.btcpay-input-price').value = price; const min = parseInt(event.target.getAttribute('min')) || 1; const max = parseInt(event.target.getAttribute('max')); if (event.target.value < min) { event.target.value = min; } else if (event.target.value > max) { event.target.value = max; } } document.querySelectorAll(".btcpay-form .btcpay-input-price").forEach(function(el) { if (!el.dataset.initialized) { el.addEventListener('input', handlePriceInput); el.dataset.initialized = true; } });
69e5b1bbdd51f1020dae1b42
Extensions
Brave Origin
Software
Brave Origin is my browser of choice!
Show full content
Brave Origin

I've been using Brave Origin for a couple of days now and I have to say, it's been a great browsing experience so far.

It's Brave Browser, but debloated - no crypto wallet, web3, AI and telemetry.

It's clean, fast, ad-free, responsive and I've enjoyed using it.

It's free for Linux users and costs $60USD for Windows and MacOS users.

If you're looking for a clean browsing experience that just works and doesn't get in your way, Brave Origin might be for you.

I'm also looking forward to seeing Ladybird Browser hopefully come out later this year, a browser written from scratch, independent of chromium.

69e56486dd51f1020dae1b0d
Extensions
Joplin: Secure Notebook
Software
Joplin - the privacy-focused note taking app with sync capabilities for Windows, macOS, Linux, Android and iOS.
Show full content
Joplin: Secure Notebook

I've been using Nextcloud Notes as the server for synchronising all my notes across my devices. For editing notes, I've been using QOwnNotes on the desktop and the Nextcloud Notes app on my phone. It has been working well enough, but sometimes a little janky.

The note-taking market is absolutely saturated. Here's a few contenders:

  • Evernote
  • Notesnook
  • Standard Notes
  • Trilium
  • Microsoft OneNote
  • Obsidian
  • Logseq
  • Bear

I wanted a solution that would:

  • Synchronise seamlessly across all devices and operating systems - laptop, desktop, mobile.
  • Cater for multiple accounts (i.e. notes for each person in the household).
  • Have a large feature set - dark theme, markdown, plugins.
  • Have no lock-in - be able to import/export to markdown.
  • Be open source, self-hosted and private.

Enter Joplin.

I saw a recent video (below) from Tom Lawrence on the topic, which made me revisit it. I've known about Joplin for a while now but I overlooked how versatile and feature rich this application is.

Joplin Server is great for synchronisation across multiple devices. So far, the experience has been flawless. You can share notebooks with other users on your server. This is handy for sharing shopping and to-do lists with family members.

I have deployed the Joplin synchronisation server on Proxmox with the help of community scripts. It doesn't take up too much by way of system resources.

The desktop application is feature rich, highly configurable and comes with all the export formats, profiles, plugins, tags, tools and settings. It's easy to import notes in and export them out.

The mobile (iOS/Android) application works very well, although limited in functionality compared to the desktop.

Overall, I'm happy to have made the switch to Joplin for note taking. It's worked well for everyone in the house with different operating systems and devices. If you're interested, it might be worthwhile having a read of their extensive documentation (linked below).

What is Joplin? | JoplinJoplin is a free, open source note taking and to-do application, which can handle a large number of notes organised into notebooks. The notes are searchable, can be copied, tagged and modified eith…Joplin: Secure NotebookJoplinJoplin: Secure Notebook

Excellent documentation on features and use-cases for Joplin

.btcpay-form { display: inline-flex; align-items: center; justify-content: center; } .btcpay-form--inline { flex-direction: row; } .btcpay-form--block { flex-direction: column; } .btcpay-form--inline .submit { margin-left: 15px; } .btcpay-form--block select { margin-bottom: 10px; } .btcpay-form .btcpay-custom-container{ text-align: center; }.btcpay-custom { display: flex; align-items: center; justify-content: center; } .btcpay-form .plus-minus { cursor:pointer; font-size:25px; line-height: 25px; background: #DFE0E1; height: 30px; width: 45px; border:none; border-radius: 60px; margin: auto 5px; display: inline-flex; justify-content: center; } .btcpay-form select { -moz-appearance: none; -webkit-appearance: none; appearance: none; color: currentColor; background: transparent; border:1px solid transparent; display: block; padding: 1px; margin-left: auto; margin-right: auto; font-size: 11px; cursor: pointer; } .btcpay-form select:hover { border-color: #ccc; } .btcpay-form option { color: #000; background: rgba(0,0,0,.1); } .btcpay-input-price { -moz-appearance: textfield; border: none; box-shadow: none; text-align: center; font-size: 25px; margin: auto; border-radius: 5px; line-height: 35px; background: #fff; }.btcpay-input-price::-webkit-outer-spin-button, .btcpay-input-price::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; } input[type=range].btcpay-input-range { -webkit-appearance:none; width:100%; background: transparent; } input[type=range].btcpay-input-range:focus { outline:0; } input[type=range].btcpay-input-range::-webkit-slider-runnable-track { width:100%; height:3.1px; cursor:pointer; box-shadow:0 0 1.7px #020,0 0 0 #003c00; background:#f3f3f3; border-radius:1px; border:0; } input[type=range].btcpay-input-range::-webkit-slider-thumb { box-shadow:none; border:2.5px solid #cedc21; height:22px; width:22px; border-radius:50%; background:#0f3723; cursor:pointer; -webkit-appearance:none; margin-top:-9.45px } input[type=range].btcpay-input-range:focus::-webkit-slider-runnable-track { background:#fff; } input[type=range].btcpay-input-range::-moz-range-track { width:100%; height:3.1px; cursor:pointer; box-shadow:0 0 1.7px #020,0 0 0 #003c00; background:#f3f3f3; border-radius:1px; border:0; } input[type=range].btcpay-input-range::-moz-range-thumb { box-shadow:none; border:2.5px solid #cedc21; height:22px; width:22px; border-radius:50%; background:#0f3723; cursor:pointer; } input[type=range].btcpay-input-range::-ms-track { width:100%; height:3.1px; cursor:pointer; background:0 0; border-color:transparent; color:transparent; } input[type=range].btcpay-input-range::-ms-fill-lower { background:#e6e6e6; border:0; border-radius:2px; box-shadow:0 0 1.7px #020,0 0 0 #003c00; } input[type=range].btcpay-input-range::-ms-fill-upper { background:#f3f3f3; border:0; border-radius:2px; box-shadow:0 0 1.7px #020,0 0 0 #003c00; } input[type=range].btcpay-input-range::-ms-thumb { box-shadow:none; border:2.5px solid #cedc21; height:22px; width:22px; border-radius:50%; background:#0f3723; cursor:pointer; height:3.1px; } input[type=range].btcpay-input-range:focus::-ms-fill-lower { background:#f3f3f3; } input[type=range].btcpay-input-range:focus::-ms-fill-upper { background:#fff; } USD GBP EUR BTC function handleSliderChange(event) { event.preventDefault(); const root = event.target.closest('.btcpay-form'); const el = root.querySelector('.btcpay-input-price'); const price = parseInt(el.value); const min = parseInt(event.target.getAttribute('min')) || 1; const max = parseInt(event.target.getAttribute('max')); if (price < min) { el.value = min; } else if (price > max) { el.value = max; } root.querySelector('.btcpay-input-range').value = el.value; } function handleSliderInput(event) { event.target.closest('.btcpay-form').querySelector('.btcpay-input-price').value = event.target.value; } document.querySelectorAll(".btcpay-form .btcpay-input-range").forEach(function(el) { if (!el.dataset.initialized) { el.addEventListener('input', handleSliderInput); el.dataset.initialized = true; } }); document.querySelectorAll(".btcpay-form .btcpay-input-price").forEach(function(el) { if (!el.dataset.initialized) { el.addEventListener('change', handleSliderChange); el.dataset.initialized = true; } }); function handlePriceInput(event) { event.preventDefault(); const root = event.target.closest('.btcpay-form'); const price = parseInt(event.target.dataset.price); if (isNaN(event.target.value)) root.querySelector('.btcpay-input-price').value = price; const min = parseInt(event.target.getAttribute('min')) || 1; const max = parseInt(event.target.getAttribute('max')); if (event.target.value < min) { event.target.value = min; } else if (event.target.value > max) { event.target.value = max; } } document.querySelectorAll(".btcpay-form .btcpay-input-price").forEach(function(el) { if (!el.dataset.initialized) { el.addEventListener('input', handlePriceInput); el.dataset.initialized = true; } });
69acaf036565cc01eddf737b
Extensions
Bitcoin Bush Bash 2026
News
Consider attending a Bitcoin Bush Bash!
Show full content
Bitcoin Bush Bash 2026

The Bitcoin Bush Bash is a great way to meet like-minded Bitcoiners in Australia. It's a time away from the hustle and bustle of city life to attend a conference in a rural, laid back location focused on Bitcoin and related topics.

Here are the dates and locations for all the Bush Bash's for 2026.

  • Beechworth, VIC - 14-15 March
  • Byron Bay, NSW - 15-17 May
  • Palm Cove, QLD - 24-26 July
  • Bussetlton , WA - 16-18 October
  • Parkes, NSW - 27-29 November

The Bitcoin Bush Bash has been running in Australia since November 2020.

Take a look at the Bitcoin Bush Bash website for more details.

Hope to see you there.

69b48d52e1528006ab9ee3fa
Extensions
New NAS Build
HardwareSoftware
I built a new NAS.
Show full content
New NAS Build

This probably wasn't one of my brightest ideas given the insane prices of RAM and storage disks right now, but I built a new NAS system.

It’s crazy how it will literally be impossible to build a PC in about 12-18 months, and might never be possible again.

— Cassie Pritchard (@hecubian_devil) January 15, 2026

Sign of the times: personal computing may never be possible again.

I already have an existing TrueNAS build that I wanted to upgrade. It was my old desktop computer repurposed as a NAS.

Here's where I wanted from the new build:

  • Larger, long term, reliable storage
  • ECC RAM for data integrity
  • Move from TrueNAS Core to TrueNAS Scale
  • Reduce power consumption
  • Smaller form factor

This is the video that I used as inspiration for my NAS build.

I don't really want to do any gaming or transcoding on this machine. I want to install TrueNAS Scale and run a few storage pools and shares. All my services remain hosted on my Proxmox machine.

Here are the parts I used and the cost breakdown (inclusive of delivery).

Item Description Cost (AUD) CPU AMD Ryzen 5 PRO 4650G $176.57 Motherboard GIGABYTE B550M DS3H AC R2 AMD AM4 Motherboard $139.00 RAM Timetec Hynix Original 4 x 8GB DDR4 3200MHz Unbuffered ECC $344.43 PSU Cooler Master MWE Gold 750W V3 ATX 3.0 Full Modular $221.46 CPU Cooler Thermalright AXP90-X47 $51.69 Fans 2 x Noctua 120mm Existing Case Sagittarius 8 bay $263.64 HBA 9211-8i 6Gbps HBA LSI FW:P20 IT Mode Host Bus Adapter $69.88 Disks 2 x 12TB WD RED NAS $738.58 Other SATA Male to 4 Pin Molex 2 Female Cable $7.00

Total build cost without storage disks comes to $1,273.67 AUD. The case and the RAM were the big ticket items here. Having the case shipped in from China, and the heavily marked up price of RAM took me over the $1,000 mark. I could have opted for just 16GB RAM but went with 32GB.

I went with this combination of CPU and Motherboard because it supported ECC RAM, which is important to me given this build will be primarily for data storage.

Storage

I used all of the existing drives in my old build and added 2 x 12TB hard drives (new), and 4 x 1TB SSDs that I had lying around.

The motherboard has only 4 SATA ports. I purchased a low power consumption Host Bus Adapter (HBA) flashed in IT mode off eBay, adding a further 8 SATA ports. Here is the full disk layout.

Drive Description Size Pool 0 NVMe Samsung EVO 860 SSD 250GB bootdisk 1 2.5" Samsung EVO 870 SSD 2TB ssdstorage (mirror VDEV1) 2 2.5" Samsung EVO 870 SSD 2TB ssdstorage (mirror VDEV1) 3 2.5" Samsung EVO 870 SSD 2TB ssdstorage (mirror VDEV2) 4 2.5" Samsung EVO 870 SSD 2TB ssdstorage (mirror VDEV2) 5 3.5" Western Digital 4TB hddstorage (mirror VDEV) 6 3.5" Seagate 4TB hddstorage (mirror VDEV) 7 3.5" WD RED NAS (new) 12TB hddtank (mirror VDEV) 8 3.5" WD RED NAS (new) 12TB hddtank (mirror VDEV) 9 2.5" Samsung EVO 870 SSD 1TB scrubpool (RAIDZ1) 10 2.5" Samsung EVO 870 SSD 1TB scrubpool (RAIDZ1) 11 2.5" Samsung EVO 860 SSD 1TB scrubpool (RAIDZ1) 12 2.5" TEAM Group GX2 SSD 1TB scrubpool (RAIDZ1)

The total usable storage for this configuration is 23TB. I've optimised my layout for safety rather than storage space. I have used mirrors in the event of a disk failure. This also makes expansion less costly if necessary, but this should last me a good while.

Storage Pricing

I'm so very glad I purchased these SSDs well before the insane prices.

As of February 2026, the 2TB Samsung EVO 870 go for $400+ each now, and is limited to 2 per customer. The 1TB Samsung EVO 870 go for $260 each.

The 9 SSDs in this build would currently retail for $2,700. Absolutely insane.

Call me crazy, but instead of outright banning ownership of valuable things, there appears to be an effort to price people out of it. Think houses, motor vehicles, having children, computer hardware - the cost of ownership is rising. Ok, I'll take my tin foil hat off now. Back to the topic at hand.

Building the NAS

I ordered the parts from various retailers. I put together the PC and it started up without any glitches. I went into the BIOS and made some configuration changes - select the boot drive, boot on power, enable virtualization, etc.

Working with this case was a bit challenging given the limited space. I could probably do a better job with cable management, but all the parts and cables fit in. Overall, I'm a fan of the case - it's a little flimsy, but the form factor is excellent. It is split into two areas - motherboard area and drive bay area. It has good ventilation, comes with 8 drive bays, easy enough to work with if you plan ahead and is a pleasing form factor. The case has room for 2 x 2.5" drives within the motherboard area. I managed to fit an extra 2 on top of that (4 x 2.5" SSD's total). These 4 SSD's are directly connected to the motherboard, not the HBA adapter.

I used the two Noctua 120mm fans I had on my existing TrueNAS build. I initially put both of them behind the drive bays, but I changed that to leave one fan for the hard drives (bottom drives), and another in the motherboard area to cool down the HBA (as these are notorious for running very hot).

TrueNAS Scale

The installation went smoothly. Configuration took a bit of troubleshooting (especially with the smb/nfs share permissions).

  • The dashboard shows ECC RAM loaded.
  • Virtualisation supported but not yet used.
  • Network Static IP set.
  • HDDs put into standby mode (spin-down) after 30 minutes.
  • Automated off-site backup to parents place scheduled monthly.
  • Samba and NFS shares with permissions all set.
New NAS Build
Hardware recognised in TrueNAS
New NAS Build
Pools and backup tasks all green ticks.
Power consumption

This is an area where I didn't achieve much. Power consumption is roughly 55W for this build. My previous TrueNAS server idled at 60W but I didn't have as many disks connected to it. It's a win, but marginal at best.

At 55W running 24/7, we're looking at 480kWh for the year. At current prices, I'm looking at about $175 a year in electricity to keep this machine running. Call it $15 a month.

Final thoughts

Overall, the NAS turned out great. No major hiccups. The compact form factor is neat and tidy, it has ECC RAM, it runs TrueNAS Scale and all the capabilities that come with it. It's fairly silent given the Noctua fans, but it does get the odd HDD scratch every now and then. No vibration noise. It sits nicely tucked away in the closet and doesn't bother the family. Here are some photos!

New NAS BuildNew NAS BuildNew NAS Build

Final build. The top fan has moved into the motherboard area to cool down the HBA. You can see 4 HDDs at the bottom and 4 SSDs above. These 8 disks are connected to the HBA.

.btcpay-form { display: inline-flex; align-items: center; justify-content: center; } .btcpay-form--inline { flex-direction: row; } .btcpay-form--block { flex-direction: column; } .btcpay-form--inline .submit { margin-left: 15px; } .btcpay-form--block select { margin-bottom: 10px; } .btcpay-form .btcpay-custom-container{ text-align: center; }.btcpay-custom { display: flex; align-items: center; justify-content: center; } .btcpay-form .plus-minus { cursor:pointer; font-size:25px; line-height: 25px; background: #DFE0E1; height: 30px; width: 45px; border:none; border-radius: 60px; margin: auto 5px; display: inline-flex; justify-content: center; } .btcpay-form select { -moz-appearance: none; -webkit-appearance: none; appearance: none; color: currentColor; background: transparent; border:1px solid transparent; display: block; padding: 1px; margin-left: auto; margin-right: auto; font-size: 11px; cursor: pointer; } .btcpay-form select:hover { border-color: #ccc; } .btcpay-form option { color: #000; background: rgba(0,0,0,.1); } .btcpay-input-price { -moz-appearance: textfield; border: none; box-shadow: none; text-align: center; font-size: 25px; margin: auto; border-radius: 5px; line-height: 35px; background: #fff; }.btcpay-input-price::-webkit-outer-spin-button, .btcpay-input-price::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; } input[type=range].btcpay-input-range { -webkit-appearance:none; width:100%; background: transparent; } input[type=range].btcpay-input-range:focus { outline:0; } input[type=range].btcpay-input-range::-webkit-slider-runnable-track { width:100%; height:3.1px; cursor:pointer; box-shadow:0 0 1.7px #020,0 0 0 #003c00; background:#f3f3f3; border-radius:1px; border:0; } input[type=range].btcpay-input-range::-webkit-slider-thumb { box-shadow:none; border:2.5px solid #cedc21; height:22px; width:22px; border-radius:50%; background:#0f3723; cursor:pointer; -webkit-appearance:none; margin-top:-9.45px } input[type=range].btcpay-input-range:focus::-webkit-slider-runnable-track { background:#fff; } input[type=range].btcpay-input-range::-moz-range-track { width:100%; height:3.1px; cursor:pointer; box-shadow:0 0 1.7px #020,0 0 0 #003c00; background:#f3f3f3; border-radius:1px; border:0; } input[type=range].btcpay-input-range::-moz-range-thumb { box-shadow:none; border:2.5px solid #cedc21; height:22px; width:22px; border-radius:50%; background:#0f3723; cursor:pointer; } input[type=range].btcpay-input-range::-ms-track { width:100%; height:3.1px; cursor:pointer; background:0 0; border-color:transparent; color:transparent; } input[type=range].btcpay-input-range::-ms-fill-lower { background:#e6e6e6; border:0; border-radius:2px; box-shadow:0 0 1.7px #020,0 0 0 #003c00; } input[type=range].btcpay-input-range::-ms-fill-upper { background:#f3f3f3; border:0; border-radius:2px; box-shadow:0 0 1.7px #020,0 0 0 #003c00; } input[type=range].btcpay-input-range::-ms-thumb { box-shadow:none; border:2.5px solid #cedc21; height:22px; width:22px; border-radius:50%; background:#0f3723; cursor:pointer; height:3.1px; } input[type=range].btcpay-input-range:focus::-ms-fill-lower { background:#f3f3f3; } input[type=range].btcpay-input-range:focus::-ms-fill-upper { background:#fff; } USD GBP EUR BTC function handleSliderChange(event) { event.preventDefault(); const root = event.target.closest('.btcpay-form'); const el = root.querySelector('.btcpay-input-price'); const price = parseInt(el.value); const min = parseInt(event.target.getAttribute('min')) || 1; const max = parseInt(event.target.getAttribute('max')); if (price < min) { el.value = min; } else if (price > max) { el.value = max; } root.querySelector('.btcpay-input-range').value = el.value; } function handleSliderInput(event) { event.target.closest('.btcpay-form').querySelector('.btcpay-input-price').value = event.target.value; } document.querySelectorAll(".btcpay-form .btcpay-input-range").forEach(function(el) { if (!el.dataset.initialized) { el.addEventListener('input', handleSliderInput); el.dataset.initialized = true; } }); document.querySelectorAll(".btcpay-form .btcpay-input-price").forEach(function(el) { if (!el.dataset.initialized) { el.addEventListener('change', handleSliderChange); el.dataset.initialized = true; } }); function handlePriceInput(event) { event.preventDefault(); const root = event.target.closest('.btcpay-form'); const price = parseInt(event.target.dataset.price); if (isNaN(event.target.value)) root.querySelector('.btcpay-input-price').value = price; const min = parseInt(event.target.getAttribute('min')) || 1; const max = parseInt(event.target.getAttribute('max')); if (event.target.value < min) { event.target.value = min; } else if (event.target.value > max) { event.target.value = max; } } document.querySelectorAll(".btcpay-form .btcpay-input-price").forEach(function(el) { if (!el.dataset.initialized) { el.addEventListener('input', handlePriceInput); el.dataset.initialized = true; } });
695ed00ed9d3f901b5411d30
Extensions
Formatted my Desktop PC
Software
Every now and then I will format my desktop PC and start afresh!
Show full content
Formatted my Desktop PC

Every now and then I will format my Desktop PC and move to the latest version of Pop!_OS. With the latest release of Pop!_OS 24.04 and the new COSMIC desktop, I have decided to part ways with it, in favour of Fedora 43 KDE Edition.

For years, Pop!_OS has been my go-to daily driver on both my desktop and my laptop. I have had a great experience with it. It's been stable, resource efficient and compatible with all my hardware. It did everything I needed it to do. Integrations were good and GNOME shell extensions were aplenty thanks to the open source development community.

With the official release of COSMIC desktop last month, I had a play around with it and decided against it (for now). During its alpha release stage, I made a list of what I wanted from it. It's a good first release, but it's not as feature rich as I'm accustomed to.

It's lacking Nextcloud integration with files and calendar. There's no weather applet, bitcoin price applet, drop-down terminal replacement, home assistant integration, firmware integration with Lenovo. I'm certain this will all be ironed out in the future.

I knew eventually I would need to make a decision on which distro I wanted to use for my desktop. I went distro hopping for my Thinkpad X1 Carbon Gen13 and landed on Fedora 43 KDE Edition. I tried it on my desktop PC and it's been excellent.

I use my desktop for video content creation (obs-studio, kdenlive), gaming (steam) and video calls (zoom). Happy to report all of this works well on Fedora 43 KDE Edition. There is a slight grievance with Wayland using remote desktop share over Zoom - the keyboard characters when you type on the sharing partner's screen will not be the correct characters.

If you're looking for a nice, polished, feature rich, well maintained and supported Linux distribution and desktop environment with good hardware compatibility and community contributions, I would highly recommend Fedora KDE edition. I've been using it for a few months now (both on laptop and desktop) and it's been great.

.btcpay-form { display: inline-flex; align-items: center; justify-content: center; } .btcpay-form--inline { flex-direction: row; } .btcpay-form--block { flex-direction: column; } .btcpay-form--inline .submit { margin-left: 15px; } .btcpay-form--block select { margin-bottom: 10px; } .btcpay-form .btcpay-custom-container{ text-align: center; }.btcpay-custom { display: flex; align-items: center; justify-content: center; } .btcpay-form .plus-minus { cursor:pointer; font-size:25px; line-height: 25px; background: #DFE0E1; height: 30px; width: 45px; border:none; border-radius: 60px; margin: auto 5px; display: inline-flex; justify-content: center; } .btcpay-form select { -moz-appearance: none; -webkit-appearance: none; appearance: none; color: currentColor; background: transparent; border:1px solid transparent; display: block; padding: 1px; margin-left: auto; margin-right: auto; font-size: 11px; cursor: pointer; } .btcpay-form select:hover { border-color: #ccc; } .btcpay-form option { color: #000; background: rgba(0,0,0,.1); } .btcpay-input-price { -moz-appearance: textfield; border: none; box-shadow: none; text-align: center; font-size: 25px; margin: auto; border-radius: 5px; line-height: 35px; background: #fff; }.btcpay-input-price::-webkit-outer-spin-button, .btcpay-input-price::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; } input[type=range].btcpay-input-range { -webkit-appearance:none; width:100%; background: transparent; } input[type=range].btcpay-input-range:focus { outline:0; } input[type=range].btcpay-input-range::-webkit-slider-runnable-track { width:100%; height:3.1px; cursor:pointer; box-shadow:0 0 1.7px #020,0 0 0 #003c00; background:#f3f3f3; border-radius:1px; border:0; } input[type=range].btcpay-input-range::-webkit-slider-thumb { box-shadow:none; border:2.5px solid #cedc21; height:22px; width:22px; border-radius:50%; background:#0f3723; cursor:pointer; -webkit-appearance:none; margin-top:-9.45px } input[type=range].btcpay-input-range:focus::-webkit-slider-runnable-track { background:#fff; } input[type=range].btcpay-input-range::-moz-range-track { width:100%; height:3.1px; cursor:pointer; box-shadow:0 0 1.7px #020,0 0 0 #003c00; background:#f3f3f3; border-radius:1px; border:0; } input[type=range].btcpay-input-range::-moz-range-thumb { box-shadow:none; border:2.5px solid #cedc21; height:22px; width:22px; border-radius:50%; background:#0f3723; cursor:pointer; } input[type=range].btcpay-input-range::-ms-track { width:100%; height:3.1px; cursor:pointer; background:0 0; border-color:transparent; color:transparent; } input[type=range].btcpay-input-range::-ms-fill-lower { background:#e6e6e6; border:0; border-radius:2px; box-shadow:0 0 1.7px #020,0 0 0 #003c00; } input[type=range].btcpay-input-range::-ms-fill-upper { background:#f3f3f3; border:0; border-radius:2px; box-shadow:0 0 1.7px #020,0 0 0 #003c00; } input[type=range].btcpay-input-range::-ms-thumb { box-shadow:none; border:2.5px solid #cedc21; height:22px; width:22px; border-radius:50%; background:#0f3723; cursor:pointer; height:3.1px; } input[type=range].btcpay-input-range:focus::-ms-fill-lower { background:#f3f3f3; } input[type=range].btcpay-input-range:focus::-ms-fill-upper { background:#fff; } USD GBP EUR BTC function handleSliderChange(event) { event.preventDefault(); const root = event.target.closest('.btcpay-form'); const el = root.querySelector('.btcpay-input-price'); const price = parseInt(el.value); const min = parseInt(event.target.getAttribute('min')) || 1; const max = parseInt(event.target.getAttribute('max')); if (price < min) { el.value = min; } else if (price > max) { el.value = max; } root.querySelector('.btcpay-input-range').value = el.value; } function handleSliderInput(event) { event.target.closest('.btcpay-form').querySelector('.btcpay-input-price').value = event.target.value; } document.querySelectorAll(".btcpay-form .btcpay-input-range").forEach(function(el) { if (!el.dataset.initialized) { el.addEventListener('input', handleSliderInput); el.dataset.initialized = true; } }); document.querySelectorAll(".btcpay-form .btcpay-input-price").forEach(function(el) { if (!el.dataset.initialized) { el.addEventListener('change', handleSliderChange); el.dataset.initialized = true; } }); function handlePriceInput(event) { event.preventDefault(); const root = event.target.closest('.btcpay-form'); const price = parseInt(event.target.dataset.price); if (isNaN(event.target.value)) root.querySelector('.btcpay-input-price').value = price; const min = parseInt(event.target.getAttribute('min')) || 1; const max = parseInt(event.target.getAttribute('max')); if (event.target.value < min) { event.target.value = min; } else if (event.target.value > max) { event.target.value = max; } } document.querySelectorAll(".btcpay-form .btcpay-input-price").forEach(function(el) { if (!el.dataset.initialized) { el.addEventListener('input', handlePriceInput); el.dataset.initialized = true; } });
693e6a0a24fef401497d90fd
Extensions
Immich
Software
Immich - a self hosted alternative to Google Photos.
Show full content
Immich

Immich is a fantastic self hosted alternative to Google Photos. Ever since it came out of beta in September 2025, I've been meaning to give it a try and put it through its paces.

Deployment

The way I've deployed this is using a Proxmox container with the assistance of a helper script. This method doesn't use the recommended docker compose deployment.

I made it an unprivileged container (so that I can mount a samba/cifs share in). I gave it 16GB of RAM and SWAP, 20GB of storage and 4 CPUs. The script utilises the Debian 13 container template. During Proxmox configuration, I installed OpenVINO dependencies for machine learning.

Immich
Adjustments to the default configuration

My Immich Proxmox container has been configured slightly differently.

  • I've auto-mounted on boot a samba share containing my existing photos to /mnt/photos of the container.
  • I've created a folder within /mnt/photos called 'immich', with the same directory structure as /opt/immich/upload. This will allow all new uploaded photos to be placed into the samba share.
  • In order to write to this share, I've changed immich-web.service and immich-ml.service to run as user=root, group=root.
  • I've modified /opt/immich/.env to change the upload location to /mnt/photos/immich
  • In the WebUI, I had to create an exclusion pattern: **/immich/** . This ensures that anything in that immich folder doesn't get doubled scanned.
Usage

Once all my configuration changes were complete, I was ready to start scanning the existing library I had mounted from my samba share. That process took a good 8 hours and pegged my CPU at 100% the entire time. I had some 16,000 photos/videos - 180GB of data to process. It went very well, imported everything in and even identified duplicates and suggested which ones to keep and which to trash.

In terms of new photos going forward, the Immich mobile app and web interface are extremely quick and easy to upload to the server with.

The web interface is easy to navigate, has great features to explore and is rock solid and stable.

Immich
Immich web interface
Features

I'm really enjoying the features of this software. Here are my favourites.

  • Facial recognition - does a great job of tagging and merging faces
  • Adding metadata to photos - names, birth dates, descriptions, locations etc
  • Places - takes the GPS metadata and sorts it my place
  • Map - takes the GPS metadata and puts in on a map
  • Importing an external library - imports an existing folder of photos into Immich for viewing.
Conclusion

My wife and I have completely migrated over to Immich as our photo management tool. The uploading is quick and easy from phones, the data and metadata stays on my server and is private and the user interface is very slick.

I'm very keen to become a supporter, but I would prefer to donate in Bitcoin, which I can't see listed as an option. Shame.

.btcpay-form { display: inline-flex; align-items: center; justify-content: center; } .btcpay-form--inline { flex-direction: row; } .btcpay-form--block { flex-direction: column; } .btcpay-form--inline .submit { margin-left: 15px; } .btcpay-form--block select { margin-bottom: 10px; } .btcpay-form .btcpay-custom-container{ text-align: center; }.btcpay-custom { display: flex; align-items: center; justify-content: center; } .btcpay-form .plus-minus { cursor:pointer; font-size:25px; line-height: 25px; background: #DFE0E1; height: 30px; width: 45px; border:none; border-radius: 60px; margin: auto 5px; display: inline-flex; justify-content: center; } .btcpay-form select { -moz-appearance: none; -webkit-appearance: none; appearance: none; color: currentColor; background: transparent; border:1px solid transparent; display: block; padding: 1px; margin-left: auto; margin-right: auto; font-size: 11px; cursor: pointer; } .btcpay-form select:hover { border-color: #ccc; } .btcpay-form option { color: #000; background: rgba(0,0,0,.1); } .btcpay-input-price { -moz-appearance: textfield; border: none; box-shadow: none; text-align: center; font-size: 25px; margin: auto; border-radius: 5px; line-height: 35px; background: #fff; }.btcpay-input-price::-webkit-outer-spin-button, .btcpay-input-price::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; } input[type=range].btcpay-input-range { -webkit-appearance:none; width:100%; background: transparent; } input[type=range].btcpay-input-range:focus { outline:0; } input[type=range].btcpay-input-range::-webkit-slider-runnable-track { width:100%; height:3.1px; cursor:pointer; box-shadow:0 0 1.7px #020,0 0 0 #003c00; background:#f3f3f3; border-radius:1px; border:0; } input[type=range].btcpay-input-range::-webkit-slider-thumb { box-shadow:none; border:2.5px solid #cedc21; height:22px; width:22px; border-radius:50%; background:#0f3723; cursor:pointer; -webkit-appearance:none; margin-top:-9.45px } input[type=range].btcpay-input-range:focus::-webkit-slider-runnable-track { background:#fff; } input[type=range].btcpay-input-range::-moz-range-track { width:100%; height:3.1px; cursor:pointer; box-shadow:0 0 1.7px #020,0 0 0 #003c00; background:#f3f3f3; border-radius:1px; border:0; } input[type=range].btcpay-input-range::-moz-range-thumb { box-shadow:none; border:2.5px solid #cedc21; height:22px; width:22px; border-radius:50%; background:#0f3723; cursor:pointer; } input[type=range].btcpay-input-range::-ms-track { width:100%; height:3.1px; cursor:pointer; background:0 0; border-color:transparent; color:transparent; } input[type=range].btcpay-input-range::-ms-fill-lower { background:#e6e6e6; border:0; border-radius:2px; box-shadow:0 0 1.7px #020,0 0 0 #003c00; } input[type=range].btcpay-input-range::-ms-fill-upper { background:#f3f3f3; border:0; border-radius:2px; box-shadow:0 0 1.7px #020,0 0 0 #003c00; } input[type=range].btcpay-input-range::-ms-thumb { box-shadow:none; border:2.5px solid #cedc21; height:22px; width:22px; border-radius:50%; background:#0f3723; cursor:pointer; height:3.1px; } input[type=range].btcpay-input-range:focus::-ms-fill-lower { background:#f3f3f3; } input[type=range].btcpay-input-range:focus::-ms-fill-upper { background:#fff; } USD GBP EUR BTC function handleSliderChange(event) { event.preventDefault(); const root = event.target.closest('.btcpay-form'); const el = root.querySelector('.btcpay-input-price'); const price = parseInt(el.value); const min = parseInt(event.target.getAttribute('min')) || 1; const max = parseInt(event.target.getAttribute('max')); if (price < min) { el.value = min; } else if (price > max) { el.value = max; } root.querySelector('.btcpay-input-range').value = el.value; } function handleSliderInput(event) { event.target.closest('.btcpay-form').querySelector('.btcpay-input-price').value = event.target.value; } document.querySelectorAll(".btcpay-form .btcpay-input-range").forEach(function(el) { if (!el.dataset.initialized) { el.addEventListener('input', handleSliderInput); el.dataset.initialized = true; } }); document.querySelectorAll(".btcpay-form .btcpay-input-price").forEach(function(el) { if (!el.dataset.initialized) { el.addEventListener('change', handleSliderChange); el.dataset.initialized = true; } }); function handlePriceInput(event) { event.preventDefault(); const root = event.target.closest('.btcpay-form'); const price = parseInt(event.target.dataset.price); if (isNaN(event.target.value)) root.querySelector('.btcpay-input-price').value = price; const min = parseInt(event.target.getAttribute('min')) || 1; const max = parseInt(event.target.getAttribute('max')); if (event.target.value < min) { event.target.value = min; } else if (event.target.value > max) { event.target.value = max; } } document.querySelectorAll(".btcpay-form .btcpay-input-price").forEach(function(el) { if (!el.dataset.initialized) { el.addEventListener('input', handlePriceInput); el.dataset.initialized = true; } });
6923bf3ac6b8a6020d8d7d07
Extensions
Digital Privacy & Security Checklist
SoftwareNews
A digital privacy and security checklist
Show full content
Digital Privacy & Security Checklist

A while ago, I created a checklist that helps to improve your digital security and privacy. Some things you can do in 5 minutes, others can take 5 years.

Digital Privacy & Security Checklist
.btcpay-form { display: inline-flex; align-items: center; justify-content: center; } .btcpay-form--inline { flex-direction: row; } .btcpay-form--block { flex-direction: column; } .btcpay-form--inline .submit { margin-left: 15px; } .btcpay-form--block select { margin-bottom: 10px; } .btcpay-form .btcpay-custom-container{ text-align: center; }.btcpay-custom { display: flex; align-items: center; justify-content: center; } .btcpay-form .plus-minus { cursor:pointer; font-size:25px; line-height: 25px; background: #DFE0E1; height: 30px; width: 45px; border:none; border-radius: 60px; margin: auto 5px; display: inline-flex; justify-content: center; } .btcpay-form select { -moz-appearance: none; -webkit-appearance: none; appearance: none; color: currentColor; background: transparent; border:1px solid transparent; display: block; padding: 1px; margin-left: auto; margin-right: auto; font-size: 11px; cursor: pointer; } .btcpay-form select:hover { border-color: #ccc; } .btcpay-form option { color: #000; background: rgba(0,0,0,.1); } .btcpay-input-price { -moz-appearance: textfield; border: none; box-shadow: none; text-align: center; font-size: 25px; margin: auto; border-radius: 5px; line-height: 35px; background: #fff; }.btcpay-input-price::-webkit-outer-spin-button, .btcpay-input-price::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; } input[type=range].btcpay-input-range { -webkit-appearance:none; width:100%; background: transparent; } input[type=range].btcpay-input-range:focus { outline:0; } input[type=range].btcpay-input-range::-webkit-slider-runnable-track { width:100%; height:3.1px; cursor:pointer; box-shadow:0 0 1.7px #020,0 0 0 #003c00; background:#f3f3f3; border-radius:1px; border:0; } input[type=range].btcpay-input-range::-webkit-slider-thumb { box-shadow:none; border:2.5px solid #cedc21; height:22px; width:22px; border-radius:50%; background:#0f3723; cursor:pointer; -webkit-appearance:none; margin-top:-9.45px } input[type=range].btcpay-input-range:focus::-webkit-slider-runnable-track { background:#fff; } input[type=range].btcpay-input-range::-moz-range-track { width:100%; height:3.1px; cursor:pointer; box-shadow:0 0 1.7px #020,0 0 0 #003c00; background:#f3f3f3; border-radius:1px; border:0; } input[type=range].btcpay-input-range::-moz-range-thumb { box-shadow:none; border:2.5px solid #cedc21; height:22px; width:22px; border-radius:50%; background:#0f3723; cursor:pointer; } input[type=range].btcpay-input-range::-ms-track { width:100%; height:3.1px; cursor:pointer; background:0 0; border-color:transparent; color:transparent; } input[type=range].btcpay-input-range::-ms-fill-lower { background:#e6e6e6; border:0; border-radius:2px; box-shadow:0 0 1.7px #020,0 0 0 #003c00; } input[type=range].btcpay-input-range::-ms-fill-upper { background:#f3f3f3; border:0; border-radius:2px; box-shadow:0 0 1.7px #020,0 0 0 #003c00; } input[type=range].btcpay-input-range::-ms-thumb { box-shadow:none; border:2.5px solid #cedc21; height:22px; width:22px; border-radius:50%; background:#0f3723; cursor:pointer; height:3.1px; } input[type=range].btcpay-input-range:focus::-ms-fill-lower { background:#f3f3f3; } input[type=range].btcpay-input-range:focus::-ms-fill-upper { background:#fff; } USD GBP EUR BTC function handleSliderChange(event) { event.preventDefault(); const root = event.target.closest('.btcpay-form'); const el = root.querySelector('.btcpay-input-price'); const price = parseInt(el.value); const min = parseInt(event.target.getAttribute('min')) || 1; const max = parseInt(event.target.getAttribute('max')); if (price < min) { el.value = min; } else if (price > max) { el.value = max; } root.querySelector('.btcpay-input-range').value = el.value; } function handleSliderInput(event) { event.target.closest('.btcpay-form').querySelector('.btcpay-input-price').value = event.target.value; } document.querySelectorAll(".btcpay-form .btcpay-input-range").forEach(function(el) { if (!el.dataset.initialized) { el.addEventListener('input', handleSliderInput); el.dataset.initialized = true; } }); document.querySelectorAll(".btcpay-form .btcpay-input-price").forEach(function(el) { if (!el.dataset.initialized) { el.addEventListener('change', handleSliderChange); el.dataset.initialized = true; } }); function handlePriceInput(event) { event.preventDefault(); const root = event.target.closest('.btcpay-form'); const price = parseInt(event.target.dataset.price); if (isNaN(event.target.value)) root.querySelector('.btcpay-input-price').value = price; const min = parseInt(event.target.getAttribute('min')) || 1; const max = parseInt(event.target.getAttribute('max')); if (event.target.value < min) { event.target.value = min; } else if (event.target.value > max) { event.target.value = max; } } document.querySelectorAll(".btcpay-form .btcpay-input-price").forEach(function(el) { if (!el.dataset.initialized) { el.addEventListener('input', handlePriceInput); el.dataset.initialized = true; } });
68b136408dd6db01f5d06dec
Extensions
Earning Bitcoin
Bitcoin
Earning is a great way to acquire bitcoin.
Show full content
Earning Bitcoin

Do not forget about earning bitcoin. It is one of the best ways to acquire bitcoin, mostly because you can obtain it without having to hand over identity information to a trusted third party.

A purely peer-to-peer version of electronic cash would allow online payments to be sent directly from one party to another without going through a financial institution.

Who would've thought, eh?

If you have a skill, talent, product or service that you can deliver in return for bitcoin, put it out there. Let the free market reward your time, effort and energy in the best form of money man has ever created, a money that no man can just print out of thin air.

If you've got a product/service, the best place to put yourself out there is on the world wide web (obviously). The next best place is at bitcoin meetups and conferences. You're likely to get more eyes on your business from people who actually own bitcoin. I've seen all sorts of products and pamphlets at the back table of bitcoin meetups and conferences. If you've got a physical location, consider putting yourself on btcmap.org. If you're Australian, consider getting yourself on the Orange Label Directory.

You can use BTCPayServer as your payment processor, or even keep it simple using Wallet of Satoshi, but be sure to self custody your bitcoin after it gets to a meaningful sum.

I have a vested interest in you being able to self custody your coins.

I may one day wish to transact with you using a peer to peer electronic cash system without going through a financial institution.

I'll need all of you as self sovereign as possible.

2023. It's time.

— k3tan (@_k3tan) January 2, 2023

If you have nothing to offer the world, it's time to start thinking about it.

Personal experience selling a product

I've had success stacking bitcoin from selling pre-built Bitcoin Nodes over at the Ministry of Nodes store, which I started doing in May 2023. Over that time, many have customers have paid in bitcoin using both lightning and on-chain. The value of the bitcoin has increased significantly in that period. When I first started, I'd get well over 1m sats for a Nodebox. Now I'm getting under 300k sats.

Ministry of Nodes StoreEarning BitcoinMinistry of Nodes StoreEarning Bitcoin

Ministry of Nodes Bitcoin Nodebox

Bitcoiner Jobs

A job board that you can use to find roles that pay in bitcoin is Bitcoiner Jobs linked below.

Bitcoiner Jobs | The Bitcoin Job BoardBitcoiner Jobs is the leading career site helping to build the emerging Bitcoin industry and the careers of Bitcoiners within it.Earning BitcoinBitcoiner JobsBitcoiner JobsEarning Bitcoin

Find a job that pays you in Bitcoin!

Splitting bills

Another way to acquire bitcoin is through splitting bills. If you can convince people to pay you back in bitcoin for their bill that you've paid in fiat, this is a great way to swap your dirty fiat for bitcoin. This can work for hotels & accommodation, restaurants, group outings etc.

Conclusion

I'd encourage you to participate in the bitcoin peer to peer economy as best as you can. There are many who are at a stage where they'd just pay in bitcoin rather than go through a fiat financial institution.

.btcpay-form { display: inline-flex; align-items: center; justify-content: center; } .btcpay-form--inline { flex-direction: row; } .btcpay-form--block { flex-direction: column; } .btcpay-form--inline .submit { margin-left: 15px; } .btcpay-form--block select { margin-bottom: 10px; } .btcpay-form .btcpay-custom-container{ text-align: center; }.btcpay-custom { display: flex; align-items: center; justify-content: center; } .btcpay-form .plus-minus { cursor:pointer; font-size:25px; line-height: 25px; background: #DFE0E1; height: 30px; width: 45px; border:none; border-radius: 60px; margin: auto 5px; display: inline-flex; justify-content: center; } .btcpay-form select { -moz-appearance: none; -webkit-appearance: none; appearance: none; color: currentColor; background: transparent; border:1px solid transparent; display: block; padding: 1px; margin-left: auto; margin-right: auto; font-size: 11px; cursor: pointer; } .btcpay-form select:hover { border-color: #ccc; } .btcpay-form option { color: #000; background: rgba(0,0,0,.1); } .btcpay-input-price { -moz-appearance: textfield; border: none; box-shadow: none; text-align: center; font-size: 25px; margin: auto; border-radius: 5px; line-height: 35px; background: #fff; }.btcpay-input-price::-webkit-outer-spin-button, .btcpay-input-price::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; } input[type=range].btcpay-input-range { -webkit-appearance:none; width:100%; background: transparent; } input[type=range].btcpay-input-range:focus { outline:0; } input[type=range].btcpay-input-range::-webkit-slider-runnable-track { width:100%; height:3.1px; cursor:pointer; box-shadow:0 0 1.7px #020,0 0 0 #003c00; background:#f3f3f3; border-radius:1px; border:0; } input[type=range].btcpay-input-range::-webkit-slider-thumb { box-shadow:none; border:2.5px solid #cedc21; height:22px; width:22px; border-radius:50%; background:#0f3723; cursor:pointer; -webkit-appearance:none; margin-top:-9.45px } input[type=range].btcpay-input-range:focus::-webkit-slider-runnable-track { background:#fff; } input[type=range].btcpay-input-range::-moz-range-track { width:100%; height:3.1px; cursor:pointer; box-shadow:0 0 1.7px #020,0 0 0 #003c00; background:#f3f3f3; border-radius:1px; border:0; } input[type=range].btcpay-input-range::-moz-range-thumb { box-shadow:none; border:2.5px solid #cedc21; height:22px; width:22px; border-radius:50%; background:#0f3723; cursor:pointer; } input[type=range].btcpay-input-range::-ms-track { width:100%; height:3.1px; cursor:pointer; background:0 0; border-color:transparent; color:transparent; } input[type=range].btcpay-input-range::-ms-fill-lower { background:#e6e6e6; border:0; border-radius:2px; box-shadow:0 0 1.7px #020,0 0 0 #003c00; } input[type=range].btcpay-input-range::-ms-fill-upper { background:#f3f3f3; border:0; border-radius:2px; box-shadow:0 0 1.7px #020,0 0 0 #003c00; } input[type=range].btcpay-input-range::-ms-thumb { box-shadow:none; border:2.5px solid #cedc21; height:22px; width:22px; border-radius:50%; background:#0f3723; cursor:pointer; height:3.1px; } input[type=range].btcpay-input-range:focus::-ms-fill-lower { background:#f3f3f3; } input[type=range].btcpay-input-range:focus::-ms-fill-upper { background:#fff; } USD GBP EUR BTC function handleSliderChange(event) { event.preventDefault(); const root = event.target.closest('.btcpay-form'); const el = root.querySelector('.btcpay-input-price'); const price = parseInt(el.value); const min = parseInt(event.target.getAttribute('min')) || 1; const max = parseInt(event.target.getAttribute('max')); if (price < min) { el.value = min; } else if (price > max) { el.value = max; } root.querySelector('.btcpay-input-range').value = el.value; } function handleSliderInput(event) { event.target.closest('.btcpay-form').querySelector('.btcpay-input-price').value = event.target.value; } document.querySelectorAll(".btcpay-form .btcpay-input-range").forEach(function(el) { if (!el.dataset.initialized) { el.addEventListener('input', handleSliderInput); el.dataset.initialized = true; } }); document.querySelectorAll(".btcpay-form .btcpay-input-price").forEach(function(el) { if (!el.dataset.initialized) { el.addEventListener('change', handleSliderChange); el.dataset.initialized = true; } }); function handlePriceInput(event) { event.preventDefault(); const root = event.target.closest('.btcpay-form'); const price = parseInt(event.target.dataset.price); if (isNaN(event.target.value)) root.querySelector('.btcpay-input-price').value = price; const min = parseInt(event.target.getAttribute('min')) || 1; const max = parseInt(event.target.getAttribute('max')); if (event.target.value < min) { event.target.value = min; } else if (event.target.value > max) { event.target.value = max; } } document.querySelectorAll(".btcpay-form .btcpay-input-price").forEach(function(el) { if (!el.dataset.initialized) { el.addEventListener('input', handlePriceInput); el.dataset.initialized = true; } });
68a3bfea3c74ff0233a545de
Extensions
My message to young Australian men
Bitcoin
Is the juice worth the squeeze?
Show full content
My message to young Australian men

Australia is no longer the place to generate any meaningful sums of wealth for young men. You are taxed egregiously, your money is eroded away through money printing, and I'm no longer certain the juice is worth the squeeze. You're not going to like the advice I'm about to offer, but I believe you're leaving substantial sums off the table if you continue life here in Australia.

The advice is, after you have successfully become qualified in your chosen field, leave. Don't find a job and pay income tax, don't find a home and pay stamp duty, don't pay GST on goods and services, don't start a business, and most certainly don't pay back your HECS debt.

Pack your bags, and leave.

Move to Dubai (or a similar low tax jurisdiction - Singapore, Hong Kong, Malaysia, Indonesia (Bali), Thailand come to mind), work your ass off for 10-15 years with only one goal in mind. Collect as many tax-free US dollar tokens as humanly possible. Live frugally in your chosen jurisdiction, keeping expenses to a minimum. Maximise income as much as possible. With the vast sums of money you have saved (in both taxes and living frugally), buy bitcoin with it. Do this every time you get paid. It goes without saying, but be sure to self custody your bitcoin.

Over a 10-15 year time horizon, you may, may, become quite wealthy (there are no guarantees in life). At that point, you can take a look at Australia and see if it's worth coming back. If you do decide to come back, you should hopefully have enough for a comfortable house, car, living expenses for a family and retirement paid for the rest of your days. If you're feeling generous, you can pay your HECS debt back.

What are the downsides? You lose 10-15 years of your life outside of Australia. It may mean having to put off relationships, seeing your mates, spending time with your parents, enjoying Australia's beautiful natural environment and starting a family. It sucks, but for men, leaving home at age 21-22 and coming back home at 31-35 to have your life set up to do whatever you want with is a better deal than slogging it out in Australia for peanuts, constantly on the hamster wheel until you drop dead. You've saved yourself a lot of heartache, and best of all, you'll have saved yourself decades of your most precious asset - time. You've traded 10-15 of the best years of life, to be comfortable until your death.

What if this strategy doesn't work out? Well, you'd be fucked anyway if you had stayed in Australia. You have very little hope of making something of yourself here. Working for someone keeps you just above the poverty line. Loyalty doesn't pay. Starting a business has so much red tape and bureaucracy attached. Hiring staff is a nightmare. Taxes are some of the highest in the world (they take half). The odds are completely stacked against you every way you turn - no matter what field you're in, no matter how much you earn. It's going to be difficult to beat tax-free USD wages piled into BTC compounding growth over 10-15 years.

Plug some numbers in here and see for yourself.

To throw a bit of a spanner in the works, soon enough the government will keep you as an Australian tax resident for 2-3 years after you have left, where they will tax you on worldwide income during that time. Tax residency rules keep changing. Draft legislation looks to be in place suggesting this. If it gets bad enough, they will strongly discourage or disincentivise you from leaving Australia all together.

I leave you now with an image that always hits hard.

My message to young Australian men
Which way, western man?
.btcpay-form { display: inline-flex; align-items: center; justify-content: center; } .btcpay-form--inline { flex-direction: row; } .btcpay-form--block { flex-direction: column; } .btcpay-form--inline .submit { margin-left: 15px; } .btcpay-form--block select { margin-bottom: 10px; } .btcpay-form .btcpay-custom-container{ text-align: center; }.btcpay-custom { display: flex; align-items: center; justify-content: center; } .btcpay-form .plus-minus { cursor:pointer; font-size:25px; line-height: 25px; background: #DFE0E1; height: 30px; width: 45px; border:none; border-radius: 60px; margin: auto 5px; display: inline-flex; justify-content: center; } .btcpay-form select { -moz-appearance: none; -webkit-appearance: none; appearance: none; color: currentColor; background: transparent; border:1px solid transparent; display: block; padding: 1px; margin-left: auto; margin-right: auto; font-size: 11px; cursor: pointer; } .btcpay-form select:hover { border-color: #ccc; } .btcpay-form option { color: #000; background: rgba(0,0,0,.1); } .btcpay-input-price { -moz-appearance: textfield; border: none; box-shadow: none; text-align: center; font-size: 25px; margin: auto; border-radius: 5px; line-height: 35px; background: #fff; }.btcpay-input-price::-webkit-outer-spin-button, .btcpay-input-price::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; } input[type=range].btcpay-input-range { -webkit-appearance:none; width:100%; background: transparent; } input[type=range].btcpay-input-range:focus { outline:0; } input[type=range].btcpay-input-range::-webkit-slider-runnable-track { width:100%; height:3.1px; cursor:pointer; box-shadow:0 0 1.7px #020,0 0 0 #003c00; background:#f3f3f3; border-radius:1px; border:0; } input[type=range].btcpay-input-range::-webkit-slider-thumb { box-shadow:none; border:2.5px solid #cedc21; height:22px; width:22px; border-radius:50%; background:#0f3723; cursor:pointer; -webkit-appearance:none; margin-top:-9.45px } input[type=range].btcpay-input-range:focus::-webkit-slider-runnable-track { background:#fff; } input[type=range].btcpay-input-range::-moz-range-track { width:100%; height:3.1px; cursor:pointer; box-shadow:0 0 1.7px #020,0 0 0 #003c00; background:#f3f3f3; border-radius:1px; border:0; } input[type=range].btcpay-input-range::-moz-range-thumb { box-shadow:none; border:2.5px solid #cedc21; height:22px; width:22px; border-radius:50%; background:#0f3723; cursor:pointer; } input[type=range].btcpay-input-range::-ms-track { width:100%; height:3.1px; cursor:pointer; background:0 0; border-color:transparent; color:transparent; } input[type=range].btcpay-input-range::-ms-fill-lower { background:#e6e6e6; border:0; border-radius:2px; box-shadow:0 0 1.7px #020,0 0 0 #003c00; } input[type=range].btcpay-input-range::-ms-fill-upper { background:#f3f3f3; border:0; border-radius:2px; box-shadow:0 0 1.7px #020,0 0 0 #003c00; } input[type=range].btcpay-input-range::-ms-thumb { box-shadow:none; border:2.5px solid #cedc21; height:22px; width:22px; border-radius:50%; background:#0f3723; cursor:pointer; height:3.1px; } input[type=range].btcpay-input-range:focus::-ms-fill-lower { background:#f3f3f3; } input[type=range].btcpay-input-range:focus::-ms-fill-upper { background:#fff; } USD GBP EUR BTC function handleSliderChange(event) { event.preventDefault(); const root = event.target.closest('.btcpay-form'); const el = root.querySelector('.btcpay-input-price'); const price = parseInt(el.value); const min = parseInt(event.target.getAttribute('min')) || 1; const max = parseInt(event.target.getAttribute('max')); if (price < min) { el.value = min; } else if (price > max) { el.value = max; } root.querySelector('.btcpay-input-range').value = el.value; } function handleSliderInput(event) { event.target.closest('.btcpay-form').querySelector('.btcpay-input-price').value = event.target.value; } document.querySelectorAll(".btcpay-form .btcpay-input-range").forEach(function(el) { if (!el.dataset.initialized) { el.addEventListener('input', handleSliderInput); el.dataset.initialized = true; } }); document.querySelectorAll(".btcpay-form .btcpay-input-price").forEach(function(el) { if (!el.dataset.initialized) { el.addEventListener('change', handleSliderChange); el.dataset.initialized = true; } }); function handlePriceInput(event) { event.preventDefault(); const root = event.target.closest('.btcpay-form'); const price = parseInt(event.target.dataset.price); if (isNaN(event.target.value)) root.querySelector('.btcpay-input-price').value = price; const min = parseInt(event.target.getAttribute('min')) || 1; const max = parseInt(event.target.getAttribute('max')); if (event.target.value < min) { event.target.value = min; } else if (event.target.value > max) { event.target.value = max; } } document.querySelectorAll(".btcpay-form .btcpay-input-price").forEach(function(el) { if (!el.dataset.initialized) { el.addEventListener('input', handlePriceInput); el.dataset.initialized = true; } });
6832892954f3c701fd7a439b
Extensions
The Importance of Bitcoin Self Custody
Bitcoin
Do not back down or away from the self custody of your Bitcoin.
Show full content
The Importance of Bitcoin Self Custody

The self custody of Bitcoin is a principle that we cannot back down or away from. It's important to not only Bitcoiners, but to all individuals, whether they realise it or not.

Here is where self custody helps to protect you as an individual.

  1. It gives you the ability to resist attempts of seizure, confiscation and theft. It is much more difficult to do than if it were held with a trusted third party custodian.
  2. It gives you the ability to transfer wealth to the next generation without intervention. Bitcoin can be passed down to your next of kin without the involvement of lawyers, wills, trusted third parties and the State. This gives you options and flexibility.
  3. It gives you the ability to protect large sums of money from the decision making of a few. The "rules" around retirement funds are constantly changing. The self custody of your nest egg puts your mind at ease for retirement. Your money, your rules.
  4. It gives you the ability to move wealth across borders without friction. If you memorise 12 words in your head, you'll have access to your Bitcoin no matter where you are in the world. This is extremely powerful because it's hard to attack and easy to defend.

All the above protections are offered to you exclusively if you self custody your bitcoin.

On a broader level, self custody helps expose organisations that have been selling paper bitcoin and aids in its true price discovery.

Self custody definitely has its challenges. It's not easy. But neither is anything worth doing - driving a car, swimming, cooking. There are risks, but we learn to mitigate them. All of these skills require effort and practice. Self custody is no different. You must sink hours into this very important skill.

You really have to question the motives of anyone who doesn't advocate for Bitcoin self custody.

If you want to get started on the journey with small amounts, have a read of this article I wrote over at Ministry of Nodes.

Sparrow Wallet 101: Self Custody Your Bitcoin | Ministry of NodesThis article describes how to self custody your bitcoin using your laptop or desktop PC.The Importance of Bitcoin Self CustodyMinistry of NodesThe Importance of Bitcoin Self Custody

An article for beginners to self custody

If you want to get familiar with Bitcoin wallets, I have created a video to get you up to speed with concepts.

Getting familiar with Bitcoin Wallets

.btcpay-form { display: inline-flex; align-items: center; justify-content: center; } .btcpay-form--inline { flex-direction: row; } .btcpay-form--block { flex-direction: column; } .btcpay-form--inline .submit { margin-left: 15px; } .btcpay-form--block select { margin-bottom: 10px; } .btcpay-form .btcpay-custom-container{ text-align: center; }.btcpay-custom { display: flex; align-items: center; justify-content: center; } .btcpay-form .plus-minus { cursor:pointer; font-size:25px; line-height: 25px; background: #DFE0E1; height: 30px; width: 45px; border:none; border-radius: 60px; margin: auto 5px; display: inline-flex; justify-content: center; } .btcpay-form select { -moz-appearance: none; -webkit-appearance: none; appearance: none; color: currentColor; background: transparent; border:1px solid transparent; display: block; padding: 1px; margin-left: auto; margin-right: auto; font-size: 11px; cursor: pointer; } .btcpay-form select:hover { border-color: #ccc; } .btcpay-form option { color: #000; background: rgba(0,0,0,.1); } .btcpay-input-price { -moz-appearance: textfield; border: none; box-shadow: none; text-align: center; font-size: 25px; margin: auto; border-radius: 5px; line-height: 35px; background: #fff; }.btcpay-input-price::-webkit-outer-spin-button, .btcpay-input-price::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; } input[type=range].btcpay-input-range { -webkit-appearance:none; width:100%; background: transparent; } input[type=range].btcpay-input-range:focus { outline:0; } input[type=range].btcpay-input-range::-webkit-slider-runnable-track { width:100%; height:3.1px; cursor:pointer; box-shadow:0 0 1.7px #020,0 0 0 #003c00; background:#f3f3f3; border-radius:1px; border:0; } input[type=range].btcpay-input-range::-webkit-slider-thumb { box-shadow:none; border:2.5px solid #cedc21; height:22px; width:22px; border-radius:50%; background:#0f3723; cursor:pointer; -webkit-appearance:none; margin-top:-9.45px } input[type=range].btcpay-input-range:focus::-webkit-slider-runnable-track { background:#fff; } input[type=range].btcpay-input-range::-moz-range-track { width:100%; height:3.1px; cursor:pointer; box-shadow:0 0 1.7px #020,0 0 0 #003c00; background:#f3f3f3; border-radius:1px; border:0; } input[type=range].btcpay-input-range::-moz-range-thumb { box-shadow:none; border:2.5px solid #cedc21; height:22px; width:22px; border-radius:50%; background:#0f3723; cursor:pointer; } input[type=range].btcpay-input-range::-ms-track { width:100%; height:3.1px; cursor:pointer; background:0 0; border-color:transparent; color:transparent; } input[type=range].btcpay-input-range::-ms-fill-lower { background:#e6e6e6; border:0; border-radius:2px; box-shadow:0 0 1.7px #020,0 0 0 #003c00; } input[type=range].btcpay-input-range::-ms-fill-upper { background:#f3f3f3; border:0; border-radius:2px; box-shadow:0 0 1.7px #020,0 0 0 #003c00; } input[type=range].btcpay-input-range::-ms-thumb { box-shadow:none; border:2.5px solid #cedc21; height:22px; width:22px; border-radius:50%; background:#0f3723; cursor:pointer; height:3.1px; } input[type=range].btcpay-input-range:focus::-ms-fill-lower { background:#f3f3f3; } input[type=range].btcpay-input-range:focus::-ms-fill-upper { background:#fff; } USD GBP EUR BTC function handleSliderChange(event) { event.preventDefault(); const root = event.target.closest('.btcpay-form'); const el = root.querySelector('.btcpay-input-price'); const price = parseInt(el.value); const min = parseInt(event.target.getAttribute('min')) || 1; const max = parseInt(event.target.getAttribute('max')); if (price < min) { el.value = min; } else if (price > max) { el.value = max; } root.querySelector('.btcpay-input-range').value = el.value; } function handleSliderInput(event) { event.target.closest('.btcpay-form').querySelector('.btcpay-input-price').value = event.target.value; } document.querySelectorAll(".btcpay-form .btcpay-input-range").forEach(function(el) { if (!el.dataset.initialized) { el.addEventListener('input', handleSliderInput); el.dataset.initialized = true; } }); document.querySelectorAll(".btcpay-form .btcpay-input-price").forEach(function(el) { if (!el.dataset.initialized) { el.addEventListener('change', handleSliderChange); el.dataset.initialized = true; } }); function handlePriceInput(event) { event.preventDefault(); const root = event.target.closest('.btcpay-form'); const price = parseInt(event.target.dataset.price); if (isNaN(event.target.value)) root.querySelector('.btcpay-input-price').value = price; const min = parseInt(event.target.getAttribute('min')) || 1; const max = parseInt(event.target.getAttribute('max')); if (event.target.value < min) { event.target.value = min; } else if (event.target.value > max) { event.target.value = max; } } document.querySelectorAll(".btcpay-form .btcpay-input-price").forEach(function(el) { if (!el.dataset.initialized) { el.addEventListener('input', handlePriceInput); el.dataset.initialized = true; } });
688bf4a0dc89ed01b556da4c
Extensions
"Media Management"
Software
Unsubscribe from slop as a service.
Show full content
"Media Management"

I recently watched an episode of Black Mirror called "Common People". It's Season 7, Episode 1. Ironically, this Netflix production has emboldened me to share how it is possible to use free and open source software to manage your media content library in a way that respects you. This obviously isn't the only way to go about it, but it's an automated slick operation. Worth a read. Let's dive in.

Why use alternatives?

There are many reasons to seek alternatives to subscribing to slop as a service.

  • It's cheaper - subscription services lure you in with a small monthly fee, hoping that you won't notice your on-going monthly bill and hit the unsubscribe button. But after a while, they jack up the prices, again hoping you won't notice. When added up over the years (and over multiple streaming services), it starts to costs a great deal.
  • It's better quality - subscription services introduce tiers and reduce the quality at which you can view their catalogue. Alternatives have far better options that go beyond 720p/1080p. So far, we've got higher prices and reduced quality. This can't be described as anything but slop as a service.
  • You keep ownership rights - the worst part is, you don't own what you pay for. If what you want to watch is no longer in the catalogue, you can't watch it anymore. You will own nothing, and you will be happy.
  • You don't get ads - bottom tier plans still end up with ads. Imagine having to pay money, to watch ads. It's a complete joke at this point.
  • Your data stays safe - subscription services sell out your data to third parties, they track your every move on their platform. Login details sometimes get hacked, leaked and shared. Honestly, fuck these people.
The software stack

I'll give a brief rundown of the software used and what it does.

  • Transmission - this is a reputable torrent client. It downloads the content and saves it to your desired location. It can also be configured to upload at 0kb/s, meaning you're not distributing content, just downloading for personal use. There are other torrent clients out there, but transmission has been lightweight, reliable and quick. It's a web interface client that is accessed on the default port of 9091.
  • Radarr - this is the catalogue interface and manager for Movies. You add a movie you want into this and the interface will search all the torrent trackers you've set up and present you all the options available for download. You select what you want and the Radarr will send it to transmission for downloading. It has a calendar for when the movie is expected to come out for download. Radarr runs as a web interface on port 7878.
  • Sonarr - same as Radarr, but for TV Shows. You select the TV Show you want and it'll track it. Every time a new episode comes out, it will automatically send the torrent to transmission for downloading. You can also download entire seasons or specific past episodes. It has a calendar for when you can expect new episodes to come out. Sonarr runs as a web interface on port 8989.
  • Prowlarr - this is the way Radarr and Sonarr is fed trackers to show you all your options for download. Prowlarr is a database of all public and private torrent trackers, otherwise known as Indexers. You select which Indexer you want to use. Some examples of popular ones include 1337x, ThePirateBay, EZTV etc. Sonarr and Radarr will aggregate all the download options for these Indexers. Prowlarr runs as a web interface on port 9696.
  • Jellyfin - think of this as the open source alternative to a Netflix catalogue for content. It's the front end used to select and play content. It is configured to scrape all the Movies and TV Shows that are stored on a drive location. It will update the library automatically as new content is downloaded from transmission and saved into the Movies or TV Show folder. Jellyfin runs as a web interface on port 8096.
  • NZB360 - this is an Android app that is connected to transmission, radarr and sonarr instances. It allows control of these 3 services on a mobile phone. You are able to kick off and download content on the go, ready for viewing on TV when you get home. This is one part of the stack that isn't open source.
Watching content

The best way to watch content is on your TV. You can use a Raspberry Pi with LibreElec installed hooked up to a TV via HDMI cable. Using HDMI-CEC allows your existing TV remote control to navigate the LibreElec interface on the TV.

There's a Jellyfin for Kodi Plugin to install on LibreElec and connect it to the Jellyfin instance. This gives a nice interface with all the content ready to play on the TV. The plugin will update the library automatically as soon as content has finished downloading.

You can find more about running LibreElec on a Raspberry Pi in the below video.

Using LibreElec to watch content. This video is considered "Harmful or dangerous content" by YouTube.

Conclusion

Start respecting yourself by using free and open source software to break free from paying for slop as a service.

.btcpay-form { display: inline-flex; align-items: center; justify-content: center; } .btcpay-form--inline { flex-direction: row; } .btcpay-form--block { flex-direction: column; } .btcpay-form--inline .submit { margin-left: 15px; } .btcpay-form--block select { margin-bottom: 10px; } .btcpay-form .btcpay-custom-container{ text-align: center; }.btcpay-custom { display: flex; align-items: center; justify-content: center; } .btcpay-form .plus-minus { cursor:pointer; font-size:25px; line-height: 25px; background: #DFE0E1; height: 30px; width: 45px; border:none; border-radius: 60px; margin: auto 5px; display: inline-flex; justify-content: center; } .btcpay-form select { -moz-appearance: none; -webkit-appearance: none; appearance: none; color: currentColor; background: transparent; border:1px solid transparent; display: block; padding: 1px; margin-left: auto; margin-right: auto; font-size: 11px; cursor: pointer; } .btcpay-form select:hover { border-color: #ccc; } .btcpay-form option { color: #000; background: rgba(0,0,0,.1); } .btcpay-input-price { -moz-appearance: textfield; border: none; box-shadow: none; text-align: center; font-size: 25px; margin: auto; border-radius: 5px; line-height: 35px; background: #fff; }.btcpay-input-price::-webkit-outer-spin-button, .btcpay-input-price::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; } input[type=range].btcpay-input-range { -webkit-appearance:none; width:100%; background: transparent; } input[type=range].btcpay-input-range:focus { outline:0; } input[type=range].btcpay-input-range::-webkit-slider-runnable-track { width:100%; height:3.1px; cursor:pointer; box-shadow:0 0 1.7px #020,0 0 0 #003c00; background:#f3f3f3; border-radius:1px; border:0; } input[type=range].btcpay-input-range::-webkit-slider-thumb { box-shadow:none; border:2.5px solid #cedc21; height:22px; width:22px; border-radius:50%; background:#0f3723; cursor:pointer; -webkit-appearance:none; margin-top:-9.45px } input[type=range].btcpay-input-range:focus::-webkit-slider-runnable-track { background:#fff; } input[type=range].btcpay-input-range::-moz-range-track { width:100%; height:3.1px; cursor:pointer; box-shadow:0 0 1.7px #020,0 0 0 #003c00; background:#f3f3f3; border-radius:1px; border:0; } input[type=range].btcpay-input-range::-moz-range-thumb { box-shadow:none; border:2.5px solid #cedc21; height:22px; width:22px; border-radius:50%; background:#0f3723; cursor:pointer; } input[type=range].btcpay-input-range::-ms-track { width:100%; height:3.1px; cursor:pointer; background:0 0; border-color:transparent; color:transparent; } input[type=range].btcpay-input-range::-ms-fill-lower { background:#e6e6e6; border:0; border-radius:2px; box-shadow:0 0 1.7px #020,0 0 0 #003c00; } input[type=range].btcpay-input-range::-ms-fill-upper { background:#f3f3f3; border:0; border-radius:2px; box-shadow:0 0 1.7px #020,0 0 0 #003c00; } input[type=range].btcpay-input-range::-ms-thumb { box-shadow:none; border:2.5px solid #cedc21; height:22px; width:22px; border-radius:50%; background:#0f3723; cursor:pointer; height:3.1px; } input[type=range].btcpay-input-range:focus::-ms-fill-lower { background:#f3f3f3; } input[type=range].btcpay-input-range:focus::-ms-fill-upper { background:#fff; } USD GBP EUR BTC function handleSliderChange(event) { event.preventDefault(); const root = event.target.closest('.btcpay-form'); const el = root.querySelector('.btcpay-input-price'); const price = parseInt(el.value); const min = parseInt(event.target.getAttribute('min')) || 1; const max = parseInt(event.target.getAttribute('max')); if (price < min) { el.value = min; } else if (price > max) { el.value = max; } root.querySelector('.btcpay-input-range').value = el.value; } function handleSliderInput(event) { event.target.closest('.btcpay-form').querySelector('.btcpay-input-price').value = event.target.value; } document.querySelectorAll(".btcpay-form .btcpay-input-range").forEach(function(el) { if (!el.dataset.initialized) { el.addEventListener('input', handleSliderInput); el.dataset.initialized = true; } }); document.querySelectorAll(".btcpay-form .btcpay-input-price").forEach(function(el) { if (!el.dataset.initialized) { el.addEventListener('change', handleSliderChange); el.dataset.initialized = true; } }); function handlePriceInput(event) { event.preventDefault(); const root = event.target.closest('.btcpay-form'); const price = parseInt(event.target.dataset.price); if (isNaN(event.target.value)) root.querySelector('.btcpay-input-price').value = price; const min = parseInt(event.target.getAttribute('min')) || 1; const max = parseInt(event.target.getAttribute('max')); if (event.target.value < min) { event.target.value = min; } else if (event.target.value > max) { event.target.value = max; } } document.querySelectorAll(".btcpay-form .btcpay-input-price").forEach(function(el) { if (!el.dataset.initialized) { el.addEventListener('input', handlePriceInput); el.dataset.initialized = true; } });
685499391be6e801f4360c52
Extensions
Ashigaru Whirlpool
NewsBitcoin
Ashigaru Whirlpool now LIVE!
Show full content
WHIRLPOOL IS BACK!Ashigaru Whirlpool

After being down and out for over a year, the Ashigaru team have brought back Samourai Wallet's Whirlpool - a popular Bitcoin privacy preserving tool! This is fantastic news! You can read the official Ashigaru blog post linked below.

Announcement: new Zerolink coinjoin coordinatorOverview We are excited to announce the release of Ashigaru Whirlpool, an implementation of Samourai Wallet’s Whirlpool, which enables users to voluntarily participate in Zerolink coinjoins once again to achieve forward and backwards privacy for their Bitcoin transactions. Clients that connect to a coordinator running this protocol are ableAshigaru WhirlpoolAshigaruAshigaru Open Source ProjectAshigaru Whirlpool
Why whirlpool?

In a nutshell, it gives you on-chain protection from those you pay and to those who pay you. This is a major upgrade to your on-chain privacy footprint - not having to reveal too much about where your money goes and where it comes from on the forever public blockchain.

What's new?

It works slightly differently to what you're accustomed to. Here's what you need to know.

It's a Terminal User Interface (TUI) application named "Ashigharu-terminal" that uses your choice of Electrum Server as the backend (see screenshot below). This is a major departure from the whirlpool-cli/gui model, and removes the dependency of requiring a Dojo - it now requires an Electrum Server, a package that is accessible to the likes of Start9, Umbrel and myNode users. It also means that the Ashigaru team doesn't know your master public keys (xpubs). Major win!

The other great news is the new interface is available on all desktop platforms - Windows, Mac and Linux. You will need your computer connected and online if you want to continue remixing. Review your computer's power settings accordingly to ensure it doesn't go to sleep, disconnect the wifi or shutdown when left idle for extended periods of time.

If you've used Sparrow-Server, you'll be quite familiar with this program, that's because Ashigaru-terminal is a fork of Sparrow-Server.

Ashigaru Whirlpool
A screenshot of whirlpool in action in the Ashigaru Terminal in Testnet4

As per industry expectation and best practice, the code is free and open source. You can find all the information here.

Released: Ashigaru Terminal v1.0.0Overview The first release of the Ashigaru Open Source Project’s Terminal builds directly from Sparrow Wallet v1.8.4. Ashigaru Terminal dispenses with the graphical user interface of Sparrow, and is instead an easy to use terminal application of which Sparrow Server users will find more familiar. Ashigaru Terminal isAshigaru WhirlpoolAshigaruAshigaru Open Source ProjectAshigaru Whirlpool
Fee structure

The fee structure and pool denominations have changed slightly. To start off with, there is a 0.025BTC pool charging a 5% fee (0.00125BTC) with a maximum of 20 UTXOs in each Tx0 (free remixing forever, of course). This maximum of 20 UTXOs prevents whales from diving in with large amounts on the first day, degrading anonymity sets. It also disincentivises sybil attacks. There is also the 0.25BTC pool, again charging 5% fee (0.0125BTC), 20 UTXOs max. I suspect more pool denominations to be announced depending on user demand and feedback. You can probably expect the same fee structure: 5% / max 20 UTXOs in a Tx0.

Centralised coodinator

Now on to the question of whether this has a centralised coordinator. The answer is yes, but the Ashigaru team are working on strategies to decentralise this, explained in their blog post. All connections to the whirlpool coordinator run over Tor with no clearnet connectivity possible. Downloading Ashigaru Terminal itself is over Tor. Most of Ashigaru's infrastructure is over Tor. Since we don't know the developers of this software and its where-abouts, it's going to be difficult to shut down.

Getting started

You can find all the links to the downloads and more information from the official Ashigaru blog post here.

Released: Ashigaru Terminal v1.0.0Overview The first release of the Ashigaru Open Source Project’s Terminal builds directly from Sparrow Wallet v1.8.4. Ashigaru Terminal dispenses with the graphical user interface of Sparrow, and is instead an easy to use terminal application of which Sparrow Server users will find more familiar. Ashigaru Terminal isAshigaru WhirlpoolAshigaruAshigaru Open Source ProjectAshigaru Whirlpool

Download links are available here in this announcement post.

I have created a video tutorial guide using testnet coins for your reference. You can watch it here.

Ashigaru Terminal: Getting started video guide

My advice is to take a measured approach to this. This is new software and there may still be bugs. Start small, get comfortable, then level up progressively. Don't expect mixes straight away. It's important to be patient. Randomness of time intervals between mixes plays a role in obfuscating chainalysis. You should find using the interface overall quite responsive.

Conclusion

It is welcome news that whirlpool is back, up and running again. In my opinion, this is the best on-chain privacy preserving technique we have. I'd encourage you to use it. Hope to see you poolside!

.btcpay-form { display: inline-flex; align-items: center; justify-content: center; } .btcpay-form--inline { flex-direction: row; } .btcpay-form--block { flex-direction: column; } .btcpay-form--inline .submit { margin-left: 15px; } .btcpay-form--block select { margin-bottom: 10px; } .btcpay-form .btcpay-custom-container{ text-align: center; }.btcpay-custom { display: flex; align-items: center; justify-content: center; } .btcpay-form .plus-minus { cursor:pointer; font-size:25px; line-height: 25px; background: #DFE0E1; height: 30px; width: 45px; border:none; border-radius: 60px; margin: auto 5px; display: inline-flex; justify-content: center; } .btcpay-form select { -moz-appearance: none; -webkit-appearance: none; appearance: none; color: currentColor; background: transparent; border:1px solid transparent; display: block; padding: 1px; margin-left: auto; margin-right: auto; font-size: 11px; cursor: pointer; } .btcpay-form select:hover { border-color: #ccc; } .btcpay-form option { color: #000; background: rgba(0,0,0,.1); } .btcpay-input-price { -moz-appearance: textfield; border: none; box-shadow: none; text-align: center; font-size: 25px; margin: auto; border-radius: 5px; line-height: 35px; background: #fff; }.btcpay-input-price::-webkit-outer-spin-button, .btcpay-input-price::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; } input[type=range].btcpay-input-range { -webkit-appearance:none; width:100%; background: transparent; } input[type=range].btcpay-input-range:focus { outline:0; } input[type=range].btcpay-input-range::-webkit-slider-runnable-track { width:100%; height:3.1px; cursor:pointer; box-shadow:0 0 1.7px #020,0 0 0 #003c00; background:#f3f3f3; border-radius:1px; border:0; } input[type=range].btcpay-input-range::-webkit-slider-thumb { box-shadow:none; border:2.5px solid #cedc21; height:22px; width:22px; border-radius:50%; background:#0f3723; cursor:pointer; -webkit-appearance:none; margin-top:-9.45px } input[type=range].btcpay-input-range:focus::-webkit-slider-runnable-track { background:#fff; } input[type=range].btcpay-input-range::-moz-range-track { width:100%; height:3.1px; cursor:pointer; box-shadow:0 0 1.7px #020,0 0 0 #003c00; background:#f3f3f3; border-radius:1px; border:0; } input[type=range].btcpay-input-range::-moz-range-thumb { box-shadow:none; border:2.5px solid #cedc21; height:22px; width:22px; border-radius:50%; background:#0f3723; cursor:pointer; } input[type=range].btcpay-input-range::-ms-track { width:100%; height:3.1px; cursor:pointer; background:0 0; border-color:transparent; color:transparent; } input[type=range].btcpay-input-range::-ms-fill-lower { background:#e6e6e6; border:0; border-radius:2px; box-shadow:0 0 1.7px #020,0 0 0 #003c00; } input[type=range].btcpay-input-range::-ms-fill-upper { background:#f3f3f3; border:0; border-radius:2px; box-shadow:0 0 1.7px #020,0 0 0 #003c00; } input[type=range].btcpay-input-range::-ms-thumb { box-shadow:none; border:2.5px solid #cedc21; height:22px; width:22px; border-radius:50%; background:#0f3723; cursor:pointer; height:3.1px; } input[type=range].btcpay-input-range:focus::-ms-fill-lower { background:#f3f3f3; } input[type=range].btcpay-input-range:focus::-ms-fill-upper { background:#fff; } USD GBP EUR BTC function handleSliderChange(event) { event.preventDefault(); const root = event.target.closest('.btcpay-form'); const el = root.querySelector('.btcpay-input-price'); const price = parseInt(el.value); const min = parseInt(event.target.getAttribute('min')) || 1; const max = parseInt(event.target.getAttribute('max')); if (price < min) { el.value = min; } else if (price > max) { el.value = max; } root.querySelector('.btcpay-input-range').value = el.value; } function handleSliderInput(event) { event.target.closest('.btcpay-form').querySelector('.btcpay-input-price').value = event.target.value; } document.querySelectorAll(".btcpay-form .btcpay-input-range").forEach(function(el) { if (!el.dataset.initialized) { el.addEventListener('input', handleSliderInput); el.dataset.initialized = true; } }); document.querySelectorAll(".btcpay-form .btcpay-input-price").forEach(function(el) { if (!el.dataset.initialized) { el.addEventListener('change', handleSliderChange); el.dataset.initialized = true; } }); function handlePriceInput(event) { event.preventDefault(); const root = event.target.closest('.btcpay-form'); const price = parseInt(event.target.dataset.price); if (isNaN(event.target.value)) root.querySelector('.btcpay-input-price').value = price; const min = parseInt(event.target.getAttribute('min')) || 1; const max = parseInt(event.target.getAttribute('max')); if (event.target.value < min) { event.target.value = min; } else if (event.target.value > max) { event.target.value = max; } } document.querySelectorAll(".btcpay-form .btcpay-input-price").forEach(function(el) { if (!el.dataset.initialized) { el.addEventListener('input', handlePriceInput); el.dataset.initialized = true; } });
6822e59331d8fb2111dc740f
Extensions
Bitcoin & Freedom
Bitcoin
Bitcoin represents freedom money.
Show full content
Bitcoin & Freedom

Bitcoin is an incredible tool for individual freedom and sovereignty. It's one of the best tools we have to fight back against banks and central banks. This is a must-have that I'm deeply passionate about. Let's dive in.

Bitcoin as property

For the first time in the history of humanity, we have created a digital good that cannot be copy and pasted. I can take a photo and distribute infinite copies of that identical photo a million times. With Bitcoin, this is not possible. I'm unable to send some bitcoin to someone and then send that identical bitcoin to someone else. This is a significant breakthrough in computer science.

We now have the ability to create a private key, make it human-readable by way of a series of words, and take it with us anywhere we go. If memorised, it can be taken anywhere and even to the grave. It is borderless, portable, difficult to seize, confiscate and censor.

For the first time, you (and only you) have full ownership rights to your money, with zero counter-party risk. When taken seriously, it represents an enormous upgrade to the legacy financial system, but more importantly an enormous upgrade to your individual financial well-being. If a place becomes tyrannical, you can leave and take your wealth with you.

It is important to note that these properties are only afforded to you if you take self custody of your bitcoin. If they are sitting on an exchange, or with a trusted third party, these are just promises of freedom money.

Bitcoin as peer to peer electronic cash

For the first time, we can transact without requiring the use of a trusted third party such as a bank or central bank. If you hold the private key, you are able to transact on the Bitcoin network without permission. You can move funds anywhere to anyone without having to provide identity information.

From printing infinite amounts of fiat into existence, to blocking or censoring transactions to having identity information stolen and abused, trusted third parties have broken trust countless of times. The only people harmed by this are ordinary, law abiding citizens.

There is no requirement for transactions to require identity information, similar to cash. Bitcoin ideally, ought to be acquired without handing over your identity information. This ensures you do not end up on a database that can be later abused. You get to keep your privacy, autonomy, dignity and self respect when you acquire bitcoin without handing over your identification details.

See my article on Bisq for more details.

Bitcoin as monetary justice

There will only ever be up to 21 million bitcoin in circulation. This is what has been agreed since the inception of Bitcoin on January 3rd, 2009. The supply schedule has been known since Day 1. Bitcoin has stuck firm on this principle. No more printing infinite amounts of money. This brings monetary justice to humanity. People have put their time and energy into acquiring money, however, there are a select few who have the exclusive right to create money into existence, diluting the hard earned savings of everyone else. Bitcoin gives you the self respect you deserve. If I was to do the same (print money), I'd get thrown in jail for counterfeiting money. Central banks do it without batting an eyelid.

Bitcoin serves as a reminder that there are no bailouts. It's now up to you to take on the responsibility of being your own bank.

Bitcoin as the best form of money ever created

There are so many properties of Bitcoin that I like. Here are some of them.

10 things I like about #Bitcoin
- Open source
- Finite supply
- Fair distribution
- Decentralised
- Sticks to the rules
- Seizure resistant
- Censorship resistant
- No downtime
- No leader or central authority
- It's global

— k3tan (@_k3tan) October 7, 2022

10 Things I Like About Bitcoin

Concluding remarks

Bitcoin is a profound upgrade to the legacy financial system. Something that we've never done before. If used properly, it can provide enormous amounts of freedom and significantly reduce mental load and burden for the individual. But, at the same time, it increases that mental load and burden knowing that the buck ultimately stops with you. I leave you now with an image to have a ponder over.

Bitcoin & Freedom
Think long and hard about this one.
.btcpay-form { display: inline-flex; align-items: center; justify-content: center; } .btcpay-form--inline { flex-direction: row; } .btcpay-form--block { flex-direction: column; } .btcpay-form--inline .submit { margin-left: 15px; } .btcpay-form--block select { margin-bottom: 10px; } .btcpay-form .btcpay-custom-container{ text-align: center; }.btcpay-custom { display: flex; align-items: center; justify-content: center; } .btcpay-form .plus-minus { cursor:pointer; font-size:25px; line-height: 25px; background: #DFE0E1; height: 30px; width: 45px; border:none; border-radius: 60px; margin: auto 5px; display: inline-flex; justify-content: center; } .btcpay-form select { -moz-appearance: none; -webkit-appearance: none; appearance: none; color: currentColor; background: transparent; border:1px solid transparent; display: block; padding: 1px; margin-left: auto; margin-right: auto; font-size: 11px; cursor: pointer; } .btcpay-form select:hover { border-color: #ccc; } .btcpay-form option { color: #000; background: rgba(0,0,0,.1); } .btcpay-input-price { -moz-appearance: textfield; border: none; box-shadow: none; text-align: center; font-size: 25px; margin: auto; border-radius: 5px; line-height: 35px; background: #fff; }.btcpay-input-price::-webkit-outer-spin-button, .btcpay-input-price::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; } input[type=range].btcpay-input-range { -webkit-appearance:none; width:100%; background: transparent; } input[type=range].btcpay-input-range:focus { outline:0; } input[type=range].btcpay-input-range::-webkit-slider-runnable-track { width:100%; height:3.1px; cursor:pointer; box-shadow:0 0 1.7px #020,0 0 0 #003c00; background:#f3f3f3; border-radius:1px; border:0; } input[type=range].btcpay-input-range::-webkit-slider-thumb { box-shadow:none; border:2.5px solid #cedc21; height:22px; width:22px; border-radius:50%; background:#0f3723; cursor:pointer; -webkit-appearance:none; margin-top:-9.45px } input[type=range].btcpay-input-range:focus::-webkit-slider-runnable-track { background:#fff; } input[type=range].btcpay-input-range::-moz-range-track { width:100%; height:3.1px; cursor:pointer; box-shadow:0 0 1.7px #020,0 0 0 #003c00; background:#f3f3f3; border-radius:1px; border:0; } input[type=range].btcpay-input-range::-moz-range-thumb { box-shadow:none; border:2.5px solid #cedc21; height:22px; width:22px; border-radius:50%; background:#0f3723; cursor:pointer; } input[type=range].btcpay-input-range::-ms-track { width:100%; height:3.1px; cursor:pointer; background:0 0; border-color:transparent; color:transparent; } input[type=range].btcpay-input-range::-ms-fill-lower { background:#e6e6e6; border:0; border-radius:2px; box-shadow:0 0 1.7px #020,0 0 0 #003c00; } input[type=range].btcpay-input-range::-ms-fill-upper { background:#f3f3f3; border:0; border-radius:2px; box-shadow:0 0 1.7px #020,0 0 0 #003c00; } input[type=range].btcpay-input-range::-ms-thumb { box-shadow:none; border:2.5px solid #cedc21; height:22px; width:22px; border-radius:50%; background:#0f3723; cursor:pointer; height:3.1px; } input[type=range].btcpay-input-range:focus::-ms-fill-lower { background:#f3f3f3; } input[type=range].btcpay-input-range:focus::-ms-fill-upper { background:#fff; } USD GBP EUR BTC function handleSliderChange(event) { event.preventDefault(); const root = event.target.closest('.btcpay-form'); const el = root.querySelector('.btcpay-input-price'); const price = parseInt(el.value); const min = parseInt(event.target.getAttribute('min')) || 1; const max = parseInt(event.target.getAttribute('max')); if (price < min) { el.value = min; } else if (price > max) { el.value = max; } root.querySelector('.btcpay-input-range').value = el.value; } function handleSliderInput(event) { event.target.closest('.btcpay-form').querySelector('.btcpay-input-price').value = event.target.value; } document.querySelectorAll(".btcpay-form .btcpay-input-range").forEach(function(el) { if (!el.dataset.initialized) { el.addEventListener('input', handleSliderInput); el.dataset.initialized = true; } }); document.querySelectorAll(".btcpay-form .btcpay-input-price").forEach(function(el) { if (!el.dataset.initialized) { el.addEventListener('change', handleSliderChange); el.dataset.initialized = true; } }); function handlePriceInput(event) { event.preventDefault(); const root = event.target.closest('.btcpay-form'); const price = parseInt(event.target.dataset.price); if (isNaN(event.target.value)) root.querySelector('.btcpay-input-price').value = price; const min = parseInt(event.target.getAttribute('min')) || 1; const max = parseInt(event.target.getAttribute('max')); if (event.target.value < min) { event.target.value = min; } else if (event.target.value > max) { event.target.value = max; } } document.querySelectorAll(".btcpay-form .btcpay-input-price").forEach(function(el) { if (!el.dataset.initialized) { el.addEventListener('input', handlePriceInput); el.dataset.initialized = true; } });
684f4d7f1be6e801f4360b69
Extensions
Cryptomator
Software
An encrypted vault for storing all your important documents.
Show full content
Cryptomator

I use Cryptomator to store important documents. It gives me peace of mind, and one central location to find all the information I need, encrypted behind a password. Let's dive in.

What is Cryptomator?

Cryptomator is a folder on your computer that is encrypted using a password that you provide when creating the vault. It is free and open source. It is available on all mobile and desktop platforms - Linux, Mac, Windows, iPhone and Android. You can save this encrypted folder on any storage medium such as a USB stick or cloud based provider such as Google Drive, Microsoft OneDrive, Apple iCloud and Dropbox. You can even store it on your self hosted Nextcloud.

Cryptomator
Cryptomator Vault
What's the point?

This is a nifty little tool to preserve your privacy from prying eyes. When you upload something to the "cloud", it's just someone else's computer. They now have access to the data. It can be used for nefarious purposes. It can be sold. It can be used as input into AI. However, if it's encrypted, your third party provider will see gibberish that looks like this.

Cryptomator
Encrypted folder
What doesn't this protect you from?

If you're uploading to your own selfhosted Nextcloud or saving the vault to a USB stick, that's all well and good. You still have access to the folder. However, a third party provider such as Google Drive, Microsoft OneDrive, Apple iCloud or Dropbox can just simply turn your access off to your account, which means you're left up shit creek. Not ideal.

What should you encrypt?

There's an array of information that I would not be comfortable sitting in a folder on my computer or someone else's "cloud" unencrypted. Here is some data that I believe is worth encrypting.

  • Scans of birth certificates, marriage certificates, drivers licences and passports. Essentially copies of any government issued identification.
  • Tax returns and notices of assessment
  • Bitcoin wallet files
  • Resume, employment contracts, academic transcripts
  • Wills, estate planning documents
  • Important contracts you've entered into
  • Retirement account statements
  • Medical information, blood test results
  • Bills - water, gas, electricity, etc.

A quick tip - take a look at your Downloads folder. Ask yourself if there's anything in there, that if your laptop/computer was stolen, you'd be uncomfortable with others having access to. You should probably delete it, or encrypt it.

Try to practice digital hygiene as best you can. It's certainly not convenient, but is definitely worth it in the long run. Your Downloads folder can reveal way too much about your affairs, and in the wrong hands, can devastate you.

Conclusion

Cryptomator is a great tool in the toolkit to preserve your digital privacy. Use it instead of storing documents in the clear. I'll continue to use Cryptomator.

68477eb2cfdd6f0145fd3ccf
Extensions