11
votes
What programming/technical projects have you been working on?
This is a recurring post to discuss programming or other technical projects that we've been working on. Tell us about one of your recent projects, either at work or personal projects. What's interesting about it? Are you having trouble with anything?
"Operation: Paperthin" hits the presses
My last phone died suddenly at the end of last year. Despite knowing better, I had no backups, losing ~15 years of messages, contacts, and other data from my phone. I was somewhat lucky that recovery was possible (but costly).
Given that I might not be as lucky in the future, I need to make the sudden loss of my phone as painless as possible.
Goals
Make my phone a "thin client" (I know I'm bastardizing the term, but it's a useful north star).
Data should not only live on my phone; my phone should never be a singular point of truth for anything I care about. Either:
As a byproduct, I hope this also makes the process of switching phones easier
Requirements
/storage/emulated/0/Challenges
We're almost 20 years into Android, and its backup story is still dogshit.
The best option on stock, non-rooted Android is Google's backup system which I don't think is great:
Google says, duplicitously:
httpsApple was doing full, offline backups of their devices back in the late 2000s!!
Solution
Contact syncing was pretty painless. I set up radicale a couple months ago and its been rock solid.
Initial Plan
For everything else, I initially planned to reduce the problem to a file sync problem:
This transformed the backup problem into "how do I mirror files from my phone to my backup location".
Syncthing seemed like the solution that most people used. But I wasn't filled by confidence seeing how the official Android client was discontinued, or the seemingly fragmented stewardship of the community fork.
What I Actually Did
In comes Seedvault. It's essentially Google's backup system, but backups are incremental, encrypted and stored on your own storage. That means that it shares the same limitations with respect to app backups, but it was good enough for me.
The real catch is that Seedvault needs to be integrated at an OS level, which practically means that you need to install a custom ROM to use it. Luckily, I'd been somewhat interested in doing that since the Cyanogenmod days so I spent an afternoon prepping the swap and installed a new ROM on my phone.
From there, it was just a matter of configuring which folders and apps I want to backup, and it's been running daily ever since.
Epilogue
I do have some concerns about this solution...
I've read that some people have had reliability issues with Seedvault. I'm currently unsure whether its SMS backups are actually doing anything for me right now, since it claims to have backed up 1.0 MB of data for a corpus of messages I know is substantially bigger.
The right thing to do would be to reset my phone again and validate the backup, but I have yet to summon the willpower.
It seems like using web apps instead of native apps might help a lot with this?
Unfortunately, for most of the apps I use, its either:
I came back to tildes after some amount of months specifically for this post.
I'm working on porting the GWBASIC interpreter PuffinBASIC from Java to C# with the eventual goal of including a BASIC interpreter in a Godot game.
I worked through the first half of Crafting Interpreters and tried applying the knowledge gained to existing C# BASIC interpreters, but none of them were as feature complete as I'd like.
It might've been better to write everything from scratch, but I'm lazy enough to rather go with someone else's tried and tested logic and just painstakingly converting that to a different language.
I've just started this project but I want to redesign the remote for my smart TV. I use a Google Chromecast with Google TV and its remote has been fine but I've had some complaints about it after using it for 4 years. The remote is quite small for my big hands, I'm not a fan of its layout (especially with the volume buttons on the side), its too slippery, etc. I bought a Google TV Streamer with some Google Store credit I had so I thought I'd hack apart my existing remote to make one I like.
So far I've just finalized a layout I like, along with dimensions I'd like. The remote uses metal dome switches so I can't easily move things around. There's some testing pads on the back that I believe corresponds to the buttons (and I've seen one post of someone using them for their own mods) so I might be able to just wire up switches to them. I think I can peel back the tape holding the metal domes in, put a blank separator layer (kapton tape maybe?), and mount new buttons in a thin plastic frame on top of that and then carefully route wires to the pads.
My plan at the moment is to try and map out these pads for the buttons. I don't have any electrical equipment so I'm hoping to go to a local hackerspace to try and use their tools.
Every week I see this topic pop up and invariably turn away because I don't have anything not work related to share, however I realized that I do have something this week.
So, I'm a Bahá'í and one of the practices enjoined on a Bahá'í is the reading of something from the Bahá'í Writings in the morning and evening. You would think this would be easy enough for anyone, but I think plenty of people here could identify with the challenge of doing something small every day, even if you know it's a good thing. Anyway, I have a tough time with the willpower-memory-consistency product needed for this task, so I made my first app.
Or rather, Opencode and Minimax did. I grabbed Gleanings from the Writings of Bahá'u'lláh from the bahai.org website, had the Python code for parsing the passages written, and a few dollars in inference later, I had the App. It auto-advances every morning and evening to the next of 166 passages in Gleanings. It has no hooks, external dependencies, or web calls. The hardest part was actually stylizing the drop cap initial letter of the passage, a typographical feature common in the English translations of Bahá'í books.
I have been using it and, though it has not yet made me perfectly observant in this regard, it has helped me be moreso, which I am happy to accept as improvement.
It's kind of wild how low the bar for these things is now. If you want an app that can do a thing, and can type words into a box describing that thing, then you can probably get the app that does the thing that you want.
My next project is going to be one I really don't want to have to do: finding a new domain name, committing to an email provider (probably Zoho), and then figuring out how to change my email address on every website I've made an account with over the last decade. Oh and change some web hosting to a new domain too.
I have a 3LD .name domain I got a long time ago and have been using as my primary email domain since. Unfortunately, I got notified by 007names this week that Verisign has decided they no longer want to offer 3LD .name domains and are destroying all such registrations in February. Never mind that my registration last way longer than that, never mind that it's less than a year's notice, never mind that there's thousands of other domains they're deciding to just throw in the trash. I even have a legacy free GSuite account using that domain that I'll effectively lose since there's no way to switch the domain under those.
It's fucking bonkers this random corporation can just decide they want to steal away these domains people have had for decades, and the really fucked part is that you know they'll offer those 2LD domains for registration and some asshole is now going to be able to steal who knows how many accounts from people like me from all the sites that don't get updated, since the internet has for some reason decided that email is somehow magically secure.
The email I got notifying me of this even ends with saying that Verisign hasn't even figured out how to handle refunding all the paid registrations that expire after the drop-dead date in February (aka most of them).
I'm just flummoxed. How the fuck am I going to find all the places I've used this domain? And how is Verisign just able to decide to just take back registered and reserved domains. I haven't done anything to violate any policies, I haven't failed to renew, I've bought multiple years at a time, I'm not an asshole parker, I've done everything right. DNS is such critical infrastructure and we just let them do crap like this? I know it's nothing like entire cities going without power for months, or lead in the water, or having your home bulldozed, so of course ultimately minor. But still, just frustrated there's nothing I can do besides spend probably at least 100 painful hours working on this.
And why the fuck doesn't email have a way to put in place a proper redirect? I can have USPS forward my mail and notify senders so at least people who pmail me in that period get my new address. With email all I can do is forward, which doesn't nothing for me when I'm going to lose the domain in a few months.
Password managers, browser autofill/saved data, and your email are good places to start. Nearly all places that let you login with your email will have sent you some kind of email as part of login verification, new account flow, promotion spam, order updates, that kind of thing.
That's pretty fucked. Also, how tf do they not know how they'll refund people? It should either be prorated, or in its entirety for the inconvenience.
That's pretty much the approach I'm taking. But I have 200 undeleted entries in my password manager and 1400 unique domains have sent emails to one of my affected emails. About half of each I can (relatively) easily rule out, but it leaves me so many places to deal with. Between the sites that have decided to expire my old password or enforce 2FA, sites that have decided to go passwordless, and the sites that give you no way to change your email without contacting support (wtf petco) it's already eating up hours of my life.
I think the complexity in the refund is because verisign has to go through all the registrars, they can't just refund me directly. And how much verisign charges often isn't the same as how much the registrar charges.
Oof yeah i changed my email to a domain email a while back and had to change my email on hundreds of sites and doing so is a royal PITA.
And i am very frustrated at how many companies/sites don't have any infrastructure for allowing users to change their email address in the system
I go to school to learn accounting. We do most of our homework using Excel. One thing that I'm constantly doing is writing account names. I coded myself an AutoHotkey script that shows a window with my chart of accounts. I can load the accounts from an Excel sheet, or use a default one based on the course's book. It has a lot of features that allow me to complete my homework assignments so fast. I have a fuzzy search, I can save the delta between accounts and their account number cells so that I don't need to click around when inputting in the general journal, or when building a general ledger from scratch. I found some hack so that even though my window has focus, Excel still shows which cell is highlighted.