Random things I wanna figure out eventually, but don't have time for

Priorities roughly indicate how important is the topic to me

TODO [B] distributed cloud sync (Dropbox/Syncthing)   cloud

CREATED: [2018-06-05 17:19]

Basically, continuous (e.g. inotify-backed), open source and always available file sync.

  • Dropbox is continuous, but proprietary. It's not distributed, but central server tends to be very available.
  • Syncthing is continuous and open source, but only syncs among your own devices. If all of them are off, you wouldn't be able to access your files.

    It's also not necessarily very friendly towards average user: it works best when you have a device that is always on like a VPS.

Ideally, it would be something based on Bittorrent, and the chunks of data would be distributed among participants with sufficient redundancy. So most of the time you would rely on your own devices like in Syncthing, but in case of device loss or temporary outage you'd be able to assemble the data from redundant chunks in the peer network. Not sure how much redundant it has to be and if that approach works in practice.

  • [2019-05-03 08:29] apparently Resilio Sync exists, but it's proprietary, nothing else I know of or resulting from quick googling
  • [2019-06-13 19:45] IPFS looks close, but apparently not user friendly yet

TODO [C] instant messengers are too linear   im communication

CREATED: [2018-08-26 19:13]

You chat with someone and discuss something. Because conventional IM software imposes timestamp ordering, it often ends up interleaved with some ongoing things (e.g. "by the way remember about that thing tomorrow"), and you distract or switch. The discussion gets forgotten and/or the context is lost.

It's way worse in bigger Slack or Telegram channels (e.g. 15+ people). Sometimes you (well, at least I do) wait to post a message because you don't feel like interrupting some ongoing discussion and you don't want your message to be buried either. So you have to keep it somewhere and make a reminder or something, which is cognitive overhead. Because of the overall volume of messages people tend to mute group conversations, and then miss actually useful stuff.

Ideally, in a certain group chat/channel you should be able to:

  • fork conversation off an arbitrary message, so you'd have a tree.
  • view all the ongoing conversations/threads. Mute, mark as high priority, etc.
  • perhaps archive the ones that are not relevant anymore.

Currently existing things I know of:

  • Google wave?
  • Telegram got replies which work in very few specific cases and not very sustainable for a proper conversation.
  • Slack got threads, which sort of solve this issue.

    You can't turn old conversations into threads, but if you notice an opportunity early, or make a habit of spinning off early, you can work with it. It's not really used for personal conversations thought.

  • XMPP is dead I guess, so not sure how easy it would be to prototype that.

Interesting enough, meatspace conversations also have this curse of linear order let alone other aspects that make them hard! But that's a whole different problem.

TODO [C] structured VCS   vcs

CREATED: [2018-04-02 16:48]

Something that understands the syntax of programming language and operates on top of that. So for instance, reordering methods in a class would be trivial operation and not show up in diff. There are some caveats though: e.g. in some dynamic languages order of definition might matter, so you still want it to be backed by plaintext, probably. Perhaps it has to be a diff filter rather than full scale VCS.

TODO [C] human anatomy simulation   humanbody simulation exercise

CREATED: [2019-08-24 21:07]

Kinda like a ragdoll with certain presets for muscle/skeletal configurations that allows you to mess with the model with realistic physics. If such a thing existed, it would help with:

  • assessing safety of weight training
  • safely of your seating/sleeping posture?
  • increasing exercise efficiency. There is so much advice on the internet often claiming contradictory or hard to believe claims. If you could simulate the effect on the mode of your own body, it would make way more sense.

There are some reasonably interactive visualizations out there:

Looks pretty cool, but in my understanding it only results in realistic tissue movement (jiggling/bending) and you still have to take care of skeletal and tendon movements yourself (let alone nervous system)?

Is it very hard problem anatomically?

Some links:

TODO [C] programming language in which correct programs are feasible physical states   plt physics

CREATED: [2019-04-30 11:44]

Where physics is described by some sort of Lagrangian, and the evaluation semantics would would be consistent with its dynamics. Wonder if that's possible without involving explicit computations via dependent types. I guess would also correspond to some sort of special logic. Also making sure the set of correct programs is exactly the set of feasible states is presumably way harder.

TODO [C] phone app for keeping sensitive data   privacy

CREATED: [2018-01-17 20:42]

I sometimes find myself making a note or taking a picture or a voice recording which I wouldn't want to go public under any circumstances.

Relying on locking your phone is not really enough as it's easy to hack, or fail to lock, or reveal content by accident. What is worse, locking doesn't save you if if you're using some sort of cloud sync.

Of course, you can try and make sure you only keep it locally on phone, but you do need some means of syncing and arguably, waiting till you got a moment to tranfer it via the cable bypassing network is even more insecure. Even if you're willing to do that, it turns out to be notoriously hard not to sync to the cloud by accident. Examples straight out of my head:

  • You want to take an extremely private photo. If you take it with default Google camera app, it will immediately try to sync it to Google Photos. If you're like me and not using Google Photos sync, it's still quite useful to sync your whole photos directory automatically.
  • You want to take an extremely private note. I'm not even sure that these days you can create an empty text file on an average phone (afaik, ipones didn't even have file system until recently), unless you've got a special app installed. All the default ones having note taking capabilities: Google Keep, Google Docs, email drafs, etc, all of them would get leak in the cloud immediately.

It sounds like a fairly general problem. So there are some criteria I want from such an app:

  • allow taking pictures, notes, recordings etc from withing the container app, so intermediate data doesn't end up in insecure locations
  • handle content share intents in case for content that potentially can't be from within the app

    Would be cool to prompt user to delete the original files afterwards, but not sure if it's possible in modern Android though.

  • use asymmetric encryption for keeping data in the secure container

    Asymmetric is fairly important here, that allows to put data in container without actually asking for some sort of password every time, which would make using it way less frictionless.

  • backed by filesystem

    That would allow actually synchronising encrypted container through normal and less secure channels as long as you keep your private key safe. Not sure what to do with metadata though, but perhaps encrypting filenames with same key (with padding etc.) is not too bad.

So far I don't know any applications that match most of these criteria. Closest I know of are:

  • open-keychain: you can share files so it encrypts them via PGP. That's the only thing that it does though, afaiu, it's more meant for integrating with other apps. It's open source though so would be good to use it as a library/intermediate.
  • I'm personally using an Encfs container via EDS Lite and just use separate apps for secure photo taking and audio recording which don't have their containt saved to cloud synced location.

If you know of something better, please let me know!

TODO [C] OS should have better macro/keybindings capabilities   hotkeys setup think

CREATED: [2019-07-06 18:56]

I got this thinking a while ago when I was keen on switching to Firefox, but it wouldn't let the user choose extension hotkeys, it was only added recently. And still, certain keys you just can't rebind (e.g. use Ctrl-Shift combinations), because they are hardcoded somewhere deep in the codebase.

It's pretty annoying that it's left to developer to think about providing hotkeys to the necessary bits of interface when the user can do same actions with mouse. Pretty sure X has got some kind of hierarchical abstract representation, would be nice to instead give users (or other developers, that don't necessarily have to be familiar with the app) ability to define arbitrary bindings or macros.

TODO [C] can we extend type theory derivatives to partial derivateives and manifolds?   typetheory

CREATED: [2018-11-24 13:46]

It's somewhat well known one can extend notion of derivative to abstract data types. Can we squeeze more from that?

TODO [2018-12-15 01:44] what would be an analogue of 3-sphere for data types? what are the different topologies of data types?

Haven't thought about that seriously yet, so not sure how much sense it makes to ask such questions.

STRT [D] share highlights from Kobo to Goodreads   kobo pkm reading

CREATED: [2019-04-01 13:50]

Kobo doesn't have Goodreads integration like Kindle does. However sharing hightlights is a great way to engage other people in the book you really like and want them to read. This can relatively easily be achieved via a script:

  1. run the script in kron or via udev rule configured to trigger on your Kobo device
  2. query the highlights from Kobo (they are in a nice sqlite database)

    I already have a local python script for that (my.books.kobo), e.g. used here.

  3. choose which annotations you want to share. Some options are:
    • based on a special marker word (e.g. if annotation includes 'kobo')
    • interactively via prompting what you wanna share
  4. send to Goodreads via quotes.create method

    You are gonna need some method of comparing highlights you already sent and diff them.

    Boring: just track annotation ids you already shared in some state file. Fun: use some elaborate comparison/hashing to match kobo annotations and goodreads ones.

Actually, this could even be useful for Kindle if you have a DRM free copy from elsewhere. Or for other ebook devices.

DONE [2019-05-19 00:13] reverse engineered 'started reading' and 'finished reading' events, so at least it's possible to mark them manually on goodreads now

See kobuddy.

TODO [D] continuous piano keyboard. When you press a 'key', the harmonics are highlighted as well as octaves   music

CREATED: [2019-01-30 17:40]

[2019-05-07 20:32] ableton push kinda does that

[2019-06-01 15:26] not sure if it would be really beneficial for proper musicians, perhaps as a learning tool only?

TODO [D] coffee brew simulation   coffee simulation

CREATED: [2018-04-27 16:15]

In the simplest approximation take some simple conical/cylindrical filter, water flow/temperature dependency and coarseness. As an output we get expected amount of caffeine, oils, some estimate of bitterness and acidity etc.

Some potentially relevant links:

[2019-04-22 21:28] I ran into this guide and surely coffee brewing doesn't have to be so elaborate!

I mean, seriously:

Pulse pour by adding 65g of water in 15 seconds, followed by a waiting period of 15 seconds and repeat 5 more times (pouring timeline below) . Each pour should begin in the center, work its way outward, and then return back to the center.

Come on. There is absolutely no way coffee taste depends on these intricate patterns of pouring water. A mathematical model would cast away this bro science at least to some extent.

I also can't really understand how is one capable of estimating coffee on the scale from 0 to 10, but perhaps that's just my unsophisticated taste buds, and I accept other people can train themselves to do that.

TODO [D] machine learning tool, showing muscles and bones on athlete in real time (e.g. as an overlay)   humanbody ml ar

CREATED: [2019-07-13 12:57]

Questions and shower thoughts   think

STRT [C] how to spot a p-zombie   solipsism ai

CREATED: [2019-08-22 22:41]

I've been thinking about solipsism lately.

Imagine a human baby. Up to a certain age they think their toys are alive and perhaps no less conscious than their parents.

These days, stuff like voice assistants, automatic email replies, Google Duplex, GPT text generation may seem like magic or machine possessing mind, but if you study these technologies, you won't have that illusion.

Now imagine you ask a stranger on the street for help to get around the city. You might interact for less than ten seconds, and for what it's worth they could easily be a bot.

What if sentient people around you are actually p-zombies, you're just not smart enough yet to understand it? Baby grows up, learns more how the world around them works and understands toys are not alive. What if it's similar with other minds: you (I mean, I, duh) grow up, learn more, and then you understand and unravel them?

TODO [C] wonder if with proper mypy stubs we can make datetime tz aware/unaware   mypy

CREATED: [2019-08-02 21:33]

TODO [C] why most popular music has such regular structure?   music

CREATED: [2019-02-03 15:00]

Most popular music (from traditional to classical to modern pop/eletronic) seems to have regular beats, verse structure etc. What's about it that human brains like? Can someone write a very irregular but yet enjoyable piece?

TODO [C] mind-melding and death   mind death bci

CREATED: [2019-10-01 09:34]

Imagine that we achieved high level of mind-melding technology (e.g. through brain-computer interfaces).

The experiment: mind-meld younger brain (e.g. 30 years) and older brain (e.g. 90 years). Presumably, if they spend enough time like that, the brains end up with common memories and perception of self that would be preserved after brains are separated. Then after a while, the older body dies. In a sense though, both minds are still alive? Could it be used as a life extension tecnhology?

Of course, minds wouldn't be quite the same after such a massive intervention.

On one hand for the older body it feels like a definite win if they are about to die anyway. On the other hand, it's morally dubious to let the part of younger mind to die in the older body. Isn't it kind of a massive sacrifice for the younger/healthier body?

TODO [C] what if I suddenly go blind one day?   prepping

CREATED: [2019-09-01 16:32]

Can I prepare for it in terms of computer interfaces or something? Should I even prepare or my life is going to change so drastically that it isn't even worth it?

TODO [D] why are avocados fatty? They are literally the only fatty fruit I can think of.   food

CREATED: [2019-01-11 15:26]

TODO [D] do different amino acids matter for human body?   nutrition diet

CREATED: [2019-08-27 14:32]

Different proteins contain different amounts of different amino acids. I know some of them are ketogenic and some glucogenic, but not sure if there is much difference nutrition wise.

Wonder if that matters if you follow a vegetarian/vegan diets?

  • I guess this article could be a good start

TODO [D] eating organ meat is more respectful for the slaughtered animals?   food