P2P. Maybe it’s still early, but it there was a lot of momentum in late 2019 / 2020, and a lot seems to be coming together. Just off the top of my head:
There are big issues, some probably unsolvable, but the energy seems to be there in a way that it wasn’t 5 years ago. I’m surprised that it seems like progress seemed to slow down so much after BitTorrent, but as someone who’s dissatisfied with large tech platforms and doesn’t see federation as the solution, I’m excited to see the progress.
Most of the P2P software I’ve used (syncthing, for example) involves relay servers for creating the initial P2P connection, which always struck me as inelegant and limiting, not that I have a better solution. Is that still the case? I took a quick glance at some of those links, and it sounds like hyperbee at least is an alternative, if I’m reading it right.
I’m a developer at Aha!. We’re a fully remote company, self-funded and profitable, have the autonomy to do great work without constantly having to sync, and get to use the software we build to do our jobs every day.
When I left my last job, I had very similar criteria to what you listed here when I was looking for my next job. I was very lucky to find Aha!. If it sounds interesting to you, this is the best place to learn more and find current openings: https://www.aha.io/company/careers/current-openings
Spanning too many timezones is still a challenge for real-time collaboration when it is necessary. Although much of the work is asynchronous, we still find a lot of value in easily working together during the day.
So happy to see this! Ring buffer logging has mostly helped when I’m working in a constrained environment, but it’s such a nice tool to have.
My favorite use was when I ran into a bug with an emulated game that somehow jumped into random data. I set up a ring buffer to store the last N values of the emulated program counter and dumped it when the PC got to a specific known-bad value. From that I could trace backward and see exactly where the things went wrong. Even better than a stacktrace because you got history.
On the 3DS, it’s been useful because you don’t have a console with scrollback and writing log files to disk is so slow as to be useless. Ring buffers + GDB have been a much better way to see what’s going on.
As an example, I used a ring buffer to gather the timing information I needed to investigate this bug: https://github.com/libretro/RetroArch/issues/11302
They’re also trivial to write, so can be used as simple one-offs during a bug investigation. Such a great pattern.
I’m probably going to keep trying to get RetroArch 3DS to build using the latest version of the open-source 3DS SDK. Right now it’s using a much older version, which means that some of the newer libraries (specifically, the newest version of picaGL) can’t be used with it. Plus, the newer APIs are a lot nicer, and “having to find a specific outdated version of the SDK” can be a blocker for people getting started with RetroArch 3DS development.
Usually it wouldn’t be that hard to upgrade, but RetroArch predates a lot of the homebrew niceties, and re-implements itself a lot of things that the SDK now provides. That means it can conflict with the newer implementations. For example, the current problem I’m running into is a crash on launch – as best I can tell, the SDK couldn’t allocate enough memory for some graphics data structures, and I’m guessing it’s because RetroArch implements most of the memory management functions itself. It’ll take some work to untangle it all.
I’ve been messing with RetroArch 3DS for a little less than a year and it’s been tons of fun. I’ve learned so much – everything from ARM assembly to PSX GPU internals to remote on-device debugging with GDB to instruction-level optimization (I never would have thought manual-pipelining would be an entertaining thing to do, but here we are).
Not much, but it most of what I want to do:
On a Pi at home
On a VPS:
I’m planning to set up gitea on the Pi. CloudBeats on iOS has been great for streaming music from Nextcloud, on desktop I use Nextcloud’s web audio player. WebDAV hasn’t been the best, but I love how widespread support for it has been in apps. I used to selfhost email, but I spent much more time managing that then the rest of everything combined, so I don’t anymore.
I’m storing photos on Nextcloud, but I haven’t found a great way to view / organize / manage them. If anyone has suggestions, I’d love to hear them.
This reminded me quite a bit (in a good way!) of The Principles of Product Development Flow, which also uses queuing theory to explore slowdowns and diminishing returns in product development. It’s a great book, and if you liked this article I think you would also like it.
In my experience, the things described here have been the most likely cause for “why are we getting half as much done with twice the people?” And I wish more companies would put the effort into investigating their own bottlenecks at this level, because it would be much more effective and humane than trying to apply Scrum or Kanban or whatever wholesale.
I think a lot of people here are confusing killing rss with killing rss for you. Sure, you can use RSS, just like you can use plain text email, irc, xmpp, etc. The difference is that most people don’t consider RSS/Atom to be a medium they can use to follow sites. Twitter, Facebook and similar sites have taken over that role.
The main reason RSS/Atom really seems to still exist (outside of the technical sphere), is because most blogging engines/CMS’ automatically generate them – I’d bet that if sites like Wordpress would require you to manually enable RSS, that there would be a quite significant drop in sites offering RSS.
Unfortunately, I’m running into more and more blogs (especially technical ones!) that don’t publish RSS feeds. I wonder if some of the newer static site generators don’t generate RSS feeds by default.
Often such blogs do have feeds, they are just missing the autodiscovery meta tags. I see this a lot with Hugo blogs, which universally have a (mildly malformed) feed. I guess writing a custom template from scratch is popular?
Afaik, most “major” static site generators do implement and use RSS/Atom feeds by default (albeit with varying quality). But since there are many people who implement their own generators (me included), they might not have gotten around to implementing a feed generator too?
You’d think it’d be just another template. For my own blog I support RSS, Atom, JSON and gopher (all four are equally popular) and they’re all generated via additional templates.
This is a fair point.
It certainly didn’t kill it for me. It put a bad taste in my mouth but ultimately I found better and more flexible options. Feedbin for syncing and managing feeds, Reeder for iOS, and Readkit for MacOS.
A week or two ago, I set up a Raspberry Pi hooked up to a 2TB HD running:
It’s sitting behind WireGuard, so I can access it from the outside world without opening HTTPS. I’m using CloudBeats on the iPhone to stream music from it, and selective sync + webdav with the Nextcloud app on desktop / laptop machines. I’ll probably move personal git repos to it at some point soon, those are on a linode right now.
I hosted my own email for about 10 years. I stopped the third time an OS upgrade broke it.
A A4 piece of paper folded like a pocketMod to carry anywhere and Evernote to scan and keep. A Xiaomi pen.
It depends on the note. Some are short lived temporary ones. Others are more important. Those I scan as soon as I can. pocketMods are small and I tend to dispose them easily.
I discovered discbound notebooks a few years ago and will never go back. You can remove and replace pages, which is awesome for organizing notes. I used to get frustrated with how awkward it is to write at the bottom of a page when it’s lifted 1/2” off the table, now I can tear out a page, write on it as a flat piece of paper, and put it back in. You can even pick up a hole punch so you can store your own printed pages in it. When Spark Notebook was a thing, they had a PDF version – I printed it out, punched the pages, and now I had my own version, with my own distribution of different types of pages. When I’m ready to archive pages, I’ll usually just staple them or store them loose.
I use a Bullet Space Pen. It’s not my favorite to write with, but it’s so convenient. It always lives in my pocket, and it becomes a full-size pen when I’m writing with it. And as a Space Pen, I’ve never had it not write when I’ve needed it to write.
When I managed teams, I used the notebook for meeting notes and weekly planning. Nowadays I just use it as a notebook for online courses, getting thoughts out of my head, or a sketchbook for technical problems I need to visualize.
My experience with a disc-bound notebook: the pages were very prone to getting half-pulled out in my backpack. Once the part of the paper that grabs the discs’ raised edges gets folded, the page never hangs on to the disc very well again. Does that happen to you, at all?
Thanks, now I understand why mine had problems: its paper was very light. And now I know that you can also have disc-bound notebooks without this problem. Thanks.
What makes a discbound notebook better than a 3 or 5-ring binder? Mostly curious since those also have the ability to add/remove pages.
Generally smaller, don’t have to open and close the rings, don’t have to worry about the rings being smashed or deformed. Small convenience, but it adds up.
Oh, wow, thanks for sharing, that made me very curious, it may be just something I need to help me organize notes at work, and looks funnier and faster to use than a full-blown binder.
I bought a used ThinkPad x230t off eBay a few weeks ago, and I’ve been using it to mess around with non-server Linux for the first time in ~15 years. I just got the tools to coreboot it, so I’ll be doing that this weekend, depending on time.
Go to the coreboot irc because sometimes the wiki is not truly updated and articles about flashing coreboot are not the best source of information. I fried mine 2 years ago, had to make a run for another motherboard, not fun. Do not connect VCC to the clip, have the chip draw current from the internal bios battery and make sure to enable wake on lan so that sticking a LAN cable actuallly powers up things in the board controller. I actually wrote some more about my problem, take care.
Thanks for the advice! I powered it through Wake on LAN, and it seems to have gone smoothly.
The only weird thing I’ve noticed is that grub only takes up the top-left corner of the screen, but that’s totally fine. Flashed it again with the extracted VGA blob, that fixed it.
make sure to enable wake on lan so that sticking a LAN cable actuallly powers up things in the board controller
This is really great advice, and something that took me a while to find a couple of years ago when I put coreboot on mine. The option to enable WOL is in the lenovo bios that you are about to replace, so don’t forget to enable it before you try to flash!
Welcome to the club. I’ve been using Linux as the exclusive OS for my laptops and desktops for around 15 years now. Linux is more than ready and capable for regular daily usage, possibly excepting the most specific of power user applications.
Yeah, I’m impressed. Everything seems to work out of the box, and I’ve been finding good cross-platform replacements for the software I’d been using.
Sweet! Couldn’t have more positive things to say about my X280 - such a wonderful machine. I had used a MacBook Air 11” (running nixos) before making the complete switch.
Nice! I switched to nixpkgs on Mac a year or so ago after being unhappy with the direction Homebrew was going. Wanted to try dual-booting, but it seems like no MacBook made in the past few years can run Linux well anymore. The last time I tried, the keyboard wouldn’t even work on the livecd boot screen.
Finding a decent machine for <$100 was mindblowing and seemed like a good way to get started. So far, it’s been even better than I expected!
This is amazing, I love it, and OP if you’re the author, I love you, and thank you for sharing.
An OS is just a piece of software. It’s possible for someone with time and motivation and perseverance to build one for themselves, even if they’re not going to be running it during $DAYJOB. Maybe especially if they’re not going to run it during $DAYJOB.
You can tell a homebrew networking stack when the features list includes ARP support.
We need more people working on homebrew computers and operating systems. Something important in the world ended when the average computer user stopped understanding how it worked. There’s nothing magic, just applied accumulated knowledge and research and a wiki.
Just Start. It’s not as hard as you think.
You can use C, or C++ or Zig or Nim or D or Pascal or C#!! or Go or whatever.
Get a message into the VGA text buffer.
Get some interrupt handlers going.
Just build a thing for yourself.
God damned fantastic.
Reminded of Rob Pike’s Systems Software Research is Irrelevant.
I always liked how Pike was being very charitable to MS in that article, instead of the Linux crowd that lionized him.
An OS is just a piece of software. It’s possible for someone with time and motivation and perseverance to build one for themselves
It is just a piece of software, but it’s not so easy to just “build one for yourself”. If you are doing it to learn OS fundamentals, to get your hands dirty with driver code, or just to relax and toy with systems design? Sure, go for it! It’s an awesome experience.
But if you are trying to make something viable for use as a daily driver at all, and you need to be able to use hardware that was created after 1996 and not just run in a VM (like, most USB peripherals, network cards, etc.), it’s a job. SkyOS was the only major effort I know of by essentially one person, and that got abandoned for all the reasons you’d guess. Haiku hasn’t been abandoned, but we have about 15-20 regular contributors working on everything from drivers to ports, and it’s only now we’re approaching general viability.
100% agreed that you shouldn’t expect a one-person project to get you to daily-driver. But I think my point is that you shouldn’t let that stop you - in fact it’s probably better you don’t expect to get to daily driver, because that removes the pressure and lets you focus on building a thing. And building a thing is a human impulse we should celebrate!
I have gotten myself lost innumerable times in the depressing space around “nothing I could do by myself matters”, which is both true and totally and completely irrelevant.
Contributing to the mission of Haiku (or Redox or whatever) is awesome, and more people should do it! I really really don’t want to you or anyone to take away from my random rant that you should go do useless projects only and never join a team or a project. Honestly, I assume based on your contributions to Haiku that you’re past the kind of ennui that I’m aiming at, and that’s awesome.
But the fact that Haiku isn’t going to switch to your first-pass bootloader is okay! Don’t not build that bootloader, build it anyway because bootloaders are cool!
Sure, that’s a fine goal. It just seems people are getting overly excited about Serenity in a “woah, I’d love to use this as my primary OS, can’t wait for that” kind of way, not a “this is a neat project to hack on in the evenings” kind of way.
(1) is probably the most relevant here :) I’m trying to answer the question of whether I really need a laptop, or whether I can get away with a phone running Mobian and a docking station. We’ll see :)
Are (or were you, before the partial failure) you daily driving the pinephone? That convergence mode sounds like it could be great. Please post your opinion once you get to try it.
I was trying to, before the motherboard failed. Currently the front camera is producing only very blurry images, and the USB-C docking bar isn’t working.
Once I’ve got those issues (in particular the camera issue) sorted I’ll give it another go.
So those issues aren’t related to the motherboard failure?
I’m really hoping this phone gets good to use as just a phone, because I’d very much like to carry it with that psion style keyboard case that’s in the works, but only if it can fill my voice calling and camera type needs in addition to being a great little computer.
No, those seem to be a) a driver problem, and b) a kernel version problem. It’s fine for use as a phone right now, IMO. If I didn’t have kids (and so want to have a somewhat decent camera with me to capture ‘moments’) I’d probably have already switched.
Good luck! I did the motherboard swap a little while ago, it was pretty quick and easy. The only problem I had was the coaxial cable lifted the connector off the old motherboard, and I couldn’t get the connector out of the cable. I ended up having to order a new cable, but it went on just fine.
I haven’t tried convergence mode yet, but the extra RAM and the battery drain fix have been very nice.
Thanks! The swap was remarkably painless, despite my general dislike of small fiddly ribbon cables. (Inexcusable in a laptop; necessary in a phone). Appreciate the tip about the coax connector; I gently coaxed it off the board and the cable remained usable.
I wrote a brief blog post about the process.