Working on my side project/maybe startup https://diva.so. Specifically gonna try out some different backend models and improve url scraping. Other than that hopefully am gonna buy a kayak today
I don’t have much to contribute, but this reminds me of the last time I saw someone ask what a new OS should have (https://groups.google.com/g/comp.os.minix/c/dlNtH7RRrGA/m/SwRavCzVE7gJ)
I think there was a great opportunity in the mid-nineties, when desktop computers were first becoming popular, for everyone to have a home server, and if that had happened we would live in a better world. It would be like having your own boiler or washing machine.
I have a dream of making an all-in-one easy-install package for home server setup, complete with personal website, self-hosted email, and everything, but I’m not sure it’s doable.
Microsoft published a real children’s book titled “Mommy, Why is There a Server in the House?” to promote a version of Windows 7 (“Windows Home Server”) which was intended to be something like this.
https://www.betaarchive.com/wiki/images/6/67/Mommy%2C_Why_is_There_a_Server_in_the_House.pdf [1.5mb PDF]
Wow this was hilarious, thank you for sharing!
This feels like it came out of a bizarre alternate reality where Microsoft was actually cool.
Dedicate those efforts to the FreedomBox project, they have built exactly that including hardware. And it’s backed by Debian.
I have a dream of making an all-in-one easy-install package for home server setup, complete with personal website, self-hosted email, and everything, but I’m not sure it’s doable.
That sounds really cool. But how do you make it visible on the wider internet? I’ve heard it’s hard to host things from home (because NAT? maybe also you don’t have a fixed IP?). Is that something the box could come pre-configured to overcome?
I host some things from my home. You’d have to set up a fixed IP. I haven’t interacted with many routers other than the one at my home, so I don’t know how easy (or more specifically “automizable”) it is to set up things there. Another concern is making sure your server and network is secured, since your loved one’s devices and information can get affected because of your mistakes. So far I’ve been (hopefully) making it harder by only exposing things to the public on obscure ports as well as restricting permissions for users on my server.
IP is definitely an issue, but there are solutions. One is dynamic DNS, another is paying for a fixed IP. If there had been wider IPv6 adoption back when it came out, it wouldn’t be an issue now.
A lot of people just can’t really afford their own home server. Not everyone is a software dev with a cushy salary).
It also sound like a security and management nightmare. Folk struggle with setting up WiFi, never mind the whole update/maintenance issue of a home server. Even with the best of efforts, this will be hard, and we all know that in reality people will buy cheap stuff from vendors who put less-than best effort in.
People certainly don’t want to put any time in to this kind of stuff, which is reasonable as there are more important things in life than managing a home server.
I don’t really see any way how “everyone having a home server” could work, both economically and operationally.
What I have in mind is cheaper than I think you’re imagining - you could run one on a Pi. Or people would take it out of their phone budget.
Making it dead simple for people to use is certainly very important, that’s why I specified plug-and-play, but there’s no reason we can’t have an android equivalent for home servers. We just don’t.
It’s complicated to set up a home server now because we’ve collectively not bothered to make it easy, because anyone who does is already tech-inclined and either knows all the knobs or is willing to put in the time to learn them, but it doesn’t have to be that way.
There’s loads of projects are try to make it easy, but it’s not that simple as the technology and concepts aren’t easy.
You’d need a Pi, some reasonably sized disk, enclosure, software, support department, etc. It’ll easily be a €100 retail price, which is a lot of money for some people especially when the alternative is free.
And now everyone has everything those on their PiServer, so how do you back this up? You don’t really want all data to be lost when a fire breaks out, someone burgles your house, or the disk breaks, so you’d need some form of backup – preferably remote. This will cost money as well, and in practice a lot of people will simply not back up.
Issue: User Interface Dictatorship
Reddit is one of the few platforms where third-party interfaces in form of mobile apps are still enjoying a lot of use. This does not seem like a great example to pick.
Secondly, there is no way to have features that you can use that do not affect other people’s interface.
Any of those mobile apps could choose to implement this reminder feature for themselves, either storing reminders locally or communicating with a third-party service (like the bot), but with dedicated UI. But somebody decided it has to be a bot. Why? Because that way you build something useful for all users, despite UI fragmentation. Reddit’s wide choice of mobile apps also hinders Reddit-the-company from implementing features properly, i.e. post reminders that look like Slack’s and not like a random IRC bot.
That doesn’t mean they’ll do it, of course, or even use that power over UX for good in general, but you’re only talking about technical limitations in that example.
Issue: User Account Hurdle
I feel like this is an argument for more centralization? Clearly the solution is to Sign in with Facebook everywhere!
Issue: No Backup, No Distribution
Yeah. I feel like that’s always the strongest argument, and the one that actually connects to user’s realities.
I do have to say that one notable exception here is StackOverflow, which in my experience has been both more reliable and permanent than somebody writing advice on their own blog.
Even with YouTube-dl and similar examples, GitHub also has been more reliable for me as a user looking for sourcecode than somebody’s random GitLab instance which has been down since 2 years because they decided it was not worth the administrative effort or even the domain renewal anymore (and didn’t bother migrating their code to anywhere else). Not to mention that the few projects that do successfully host their own sourcecode sometimes have UI that one really has to get used to (mostly because it is old or bad).
Hacker News is even more open than Reddit. They offer access to the full api (https://github.com/HackerNews/API) so third-party readers are definitely available.
Both Reddit and HN have backups. There is a HN archive on Google’s BigQuery (updated daily iirc) and Reddit has https://files.pushshift.io/reddit/ as well as a BigQuery dump. This does lag behind by a few months though.
I love BigQuery as an archive. It just sits there, and when I want to look at the data, I can just write SQL and start getting answers. The delay is frustrating though. It’d be cool if these archives were maintained by sites themselves rather than third-party researchers.
Reddit is one of the few platforms where third-party interfaces in form of mobile apps are still enjoying a lot of use. This does not seem like a great example to pick.
Except they’re intentionally using dark patterns to “encourage” you to use their mobile app. At least, that’s why when I use reddit on my phone, I have to use desktop mode.
That particular section in the blogpost was about individualized UIs and was using Reddit as an example of centralized UI, which I find not to be a good example. It doesn’t matter what future aspirations of Reddit Inc are, right now people are using Reddit like that.
I used to store notes in Markdown, but that ended up becoming a hassle to sync with my phone (as well as visualizing). I’ve since switched to Google Keep, primarily because I can’t find anything to match their tiling card view. It’s also mobile friendly, and I use a keep tui to add notes from my laptop.
I’ve found that Joplin + Syncthing is an excellent combo on Android these days. Not that Keep isn’t a bad choice, but if you find yourself wanting to move off of Google’s stuff, that’d be where I’d go.
Now, if you have an iPhone, that would change things.
Enjoying one week before the semester starts and time begins to by again. I’ll try to read some interesting meta-learning papers and language modelling papers I’ve been meaning to get to, as well as Life, The Universe and Everything.
You should be able to match pytorch on cpu pretty easily and my library is already within ~3x slower than pytorch on cpu for most ops (I don’t think there is much of a difference in speed for pytorch and libtorch since they should use the same cpp backend).
I added BLAS accelerated matmul to l2 at the last minute and hacked together some really messy code with a whole bunch of transposes (since I store my tensors in row-major format and the Fortran BLAS lib wants it in column-major) and it made my matmul 100x faster than a normal for loop based implementation and within about 30us of pytorch IIRC
As for gpus if you use CUDA and cudnn kernels properly (that’s a little out of my depth rn) it should be pretty close to pytorch’s speed as well.
The really interesting part (imo) where rust can shine would be to fix what all the major ml libraries are working on rn: making fast, efficient code run on the GPU without the need for carefully handwritten cudnn kernels.
Pytorch has its JIT that makes an IR of the scripted function and optimizes it. The tf team is working on xla which is another IR that’s supposed to optimize ops by fusing together ops and preventing a whole bunch of expensive read/writes to the gpu’s memory. JAX is doing something similar and builds on top of xla and gives you a kinda functional approach to ml. Swift4TF was (is?) a really ambitious project that wanted to make autodiff and xla optimizations a core part of swift. I think Julia is also working on approaches that are quite a bit like Swift4TF but I haven’t looked into it too much
Now to rust: Rust has a big emphasis on safety and i think it has a lot of potential in ml where you could take it the xla/swift4tf route and try to make a “compiler” for tensor ops.
Another thing that I wanted to work on but really didn’t have the time for in this version of l2 was to use rusts const generics (still in nightly but hopefully being finalized soon) to run compile-time shape checks on tensors and the outputs of tensor ops.
Python is a really nice language since either lets you focus more on making your code do what you want it to do and less on how to write that code. but I’ve found a lot of bugs in my python code where I end up getting a runtime exception about two tensors not being compatible/broadcastable and imo this would be a really neat thing to try and make as a proof of concept to encourage more people to work on building the future of ml libraries and infra.
This is just a brain dump of a whole lot of things that I’ve been thinking about lately and I’m not 100% sure that everything I’ve said is 100% correct so I’d really appreciate it if anyone could correct me on the things that I’ve got wrong :)