trace!("TheBestTvarynka")
204 subscribers
207 photos
2 videos
6 files
304 links
Blog: https://tbt.qkation.com
Author: @TheBestTvarynka

Let's trace my journey
Download Telegram
trace!("TheBestTvarynka")
➡️ https://t.iss.one/xainotes/129 In the linked post above, I learned that we can use 1Password to access SSH keys. It's super convenient: ➡️ You do not need to store the SSH key on the file system. ➡️ You do not need to remember the SSH key password or copy…
I compared Bitwarden and 1Password docs. 1Password is more flexible in configuration and usage.

1Password has even SSH agent config file:
The SSH agent config file is an optional configuration file that allows you to override the default behavior of the 1Password SSH agent ... It doesn't alter your SSH agent settings ... — only which keys the agent can access and in which order to make them available to servers.

Every time I read 1Password docs I feel that it is head and shoulders above the rest.

Another interesting thing about 1Password is that it has a public 1Password Security Design paper: https://agilebits.github.io/security-design/index.html (also available in pdf). This paper describes everything about 1Password's security principles and mechanisms.

If I needed to pick a password manager today, I would choose 1Password (but I have been using Bitwarden for around 3-4 years and am fully satisfied with it).
👍4
😁6🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
🔥21
Look what I did during my Christmas-New Year vacation ➡️ https://github.com/TheBestTvarynka/grafily
(I am going to attach a screenshot of how it currently looks in the next post)

This is an Obsidian plugin for rendering family graph (family tree). The idea is to scan all pages in vault, extract metadata, build a relationships graph, and beautifully render it. Currently, it works well but has many limitations (see below).

It turned out to be a hard task. Rendering can be easily done using the reactflow library. But what about node positioning? There are plenty of libraries for positioning graph nodes, but all of them are bad for family trees. When we are talking about family trees, we have at least the following requirements:
🔴 All people from the same generation are in the same horizontal line.
🔴 Children are aligned below parents.
🔴 No nodes overlap and edges crossing.
🔴 Compact positioning.
🔴 ...and many other ones...

So, I decided to develop an algorithm for node positioning. I spent a few days on it without achieving any results. Then I googled for existing algorithms (yes, I should have done it before spending a few days on nothing).
I did not find the exact algorithm, but I found a similar (and much simpler) one: Reingold-Tilford Algorithm for rendering pretty trees. This algorithm is not suitable for me, because it is for tree node positioning. But all family relationships are a graph. This fact introduces a lot of complexity to the task, but I decided to implement the simpler version for a start and then improve it to meet my requirements.

So, I spent a few more days on its understanding, implementation, and debugging the Reingold-Tilford Algorithm. To make a tree, I cut out parallel family lines: siblings and their spouses for each person in each generation. I left only direct ancestors (parents, grandparents, great-grandparents, ...).

🔘 A Node-Positioning Algorithm for General Trees. September, 1989: https://www.cs.unc.edu/techreports/89-034.pdf. This paper is awful. It was useless for me. I understand a bit more than nothing from it. I mentioned it just for curiosity.
🔘 Reingold Tilford Algorithm Explained With Walkthrough: https://towardsdatascience.com/reingold-tilford-algorithm-explained-with-walkthrough-be5810e8ed93/. But this blog post is excellent 🤩. Good explanations, nice images, and illustrations. I recommend reading it.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6
trace!("TheBestTvarynka")
So, I spent a few more days on its understanding, implementation, and debugging the Reingold-Tilford Algorithm.
During development, I noticed that my algorithmic skills level decreased a bit over the last years. I spent a lot of time thinking about how I should represent the tree in the code, how to implement a walk-through, how to calculate sub-trees shift, ... 😔

Btw, the current Reingold-Tilford positioning algorithm is implemented in one file: https://github.com/TheBestTvarynka/grafily/blob/b9d281d35fe5def9a3b0b260c82375d44f4755b1/src/layout.ts
Rate my TypeScript skills 😤😝 (haven't written so much TS in about 4 years)
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2🤩2
Forwarded from HN Best Comments
Re: Bose is open-sourcing its old smart speakers instead of bricking them

This is how "end of support" should be handled. Instead of turning devices into e-waste, open-source them and let the community extend their life. Kudos to Bose for setting a good example.

More companies should follow this approach - especially as right-to-repair becomes a bigger issue.

ktg0215, 55 minutes ago
👏62
HN Best Comments
Re: Bose is open-sourcing its old smart speakers instead of bricking them This is how "end of support" should be handled. Instead of turning devices into e-waste, open-source them and let the community extend their life. Kudos to Bose for setting a good example.…
When I was a child, I played many games on my Nokia C2-01. Last year, I tried to find the source code of those games, but unsuccessfully 😖.
It's sad. I really wanted (and still want) to read the source code of the wonderful moments of my childhood (my childhood wasn't sad, but it was still exciting to play on a 240x320 screen).

Totally agree that companies should open source their product if it has reached "end of support".

P.S. I know that they were written in Java, and I can easily decompile them, but it's not the same. I want the source code, not the decompiled code.
Please open Telegram to view this post
VIEW IN TELEGRAM
💯62😁1
trace!("TheBestTvarynka")
I cut out parallel family lines: siblings and their spouses for each person in each generation.
Behold! The second version of the nodes positioning algorithm.

(actually, it is not a second version, but rather a complete rewrite with additional features)

Now it supports siblings and their spouses' positioning. Even more, it supports rendering sibling' spouse ancestors (parallel family tree).

Code ➡️ https://github.com/TheBestTvarynka/grafily/pull/1
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥5🫡1
Вчора я дочитав книгу КОЛОНІЯ Макса Кідрука. 9/10 👌💪
Рекомендую.

Це наукова фантастика (написана українцем) про майбутнє де люди уже колонізували Марс. В книзі описані екологічні, політичні, соціальні і ще куча різних проблем, які загрожують людстку вимиранню попри величезний технічний прогес.

Тут не має позитиву. Із кожним розділом усе стає тільки гірше. Дуже чекаю коли мені прийде друга частина (КОЛАПС) 😊.

Більше коротко сказати не можу. Я написав дуже великий лонгрід із моїми емоціями, враженнями, та думками: https://www.notion.so/thebesttvarynka/2e3c3e52142280439ca6f53cae424a0e (цей лінк дозволяє ставити коментарі, тому welcome 🙃).
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥3
image_2026-01-20_23-31-41.png
239.6 KB
I love KDE for its built-in customization capabilities. Where else can you see so many configuration options just for the CapsLock key?

Why I even need that:
My note-taking app (yes, Dataans) supports drop-down mode. I used to show/hide the app window on F2. I thought, what if I change the shortcut to CapsLock?
Wow, one of the best decisions of the day. It's super convenient.
🫡2
What people won't do to avoid writing algorithms right away in Rust 🙄🙄🙄

Fast and Simple Horizontal Coordinate Assignment by Ulrik Brandes and Boris Kopf
https://scispace.com/pdf/fast-and-simple-horizontal-coordinate-assignment-2aawem94ts.pdf
Please open Telegram to view this post
VIEW IN TELEGRAM
😁2😨1🦄1
A bit sad news from the Open-Source communities:
🔴 Tldraw pauses external contributions due to AI slop. Tldraw also has a blog post about it: Stay away from my trash!. (hn discussion)
For the good of the project, we're going to begin automatically closing pull requests from external contributors. We will of course continue to welcome issues, bug reports, and discussions.
🔴 cURL removes bug bounties. (hn discussions: [1], [2])
We will ban you and ridicule you in public if you waste our time on crap reports.

I am sure there are other.

I would say that this problem was very predictable. But closing PRs from non-maintainers IMO is a bit too radical.

I like how Ghostty does: https://github.com/ghostty-org/ghostty/issues/3558. They force you to create a discussion first:
Once a discussion reaches a point where a well-understood, actionable item is identified, it is moved to the issue tracker.

Of course, the solutions is not perfect. Maintainers still spend a lot of time into answering these discussions. But:
🟡 No AI-slop PRs. People, who submit AI-slop PRs, most likely will not want to discuss their contribution and prove that their "wOrK" is useful.
🟡 Discussing the idea/bug on early stages is easier than reviewing PR. Sometimes people tend to defend their code rather then prove that it is useful.
UPD: Hyprland adopted this approach too: https://github.com/hyprwm/Hyprland/issues/9854

Another idea that came to my mind is to charge people for PR 😁 Let's say, $5 per PR. Optionally, make it free if person has delivered more than 10 meaningful PRs.
🔘 Most of trash PRs will disappear. No one will want to pay their own money for something they do not care.
🔘 Even if someone will still submit a trash PR, maintainers would have 5 bucks 😎
Cons? 😌
Please open Telegram to view this post
VIEW IN TELEGRAM
😭3🤔1
Forwarded from HN Best Comments
Re: We will ban you and ridicule you in public if you waste our time on crap reports

Long time ago Sourceforge and then GitHub promoted into the current default the model of open source distribution which is not sustainable and I doubt it is something that the founding fathers of Free Software/Open Source had in mind. Open source licenses are about freedom of using and modifying software. The movement grew out of frustration that commercial software cannot be freely improved and fixed by the user to better fit the user's needs. To create Free software, you ship sources together with your binaries and one of the OSI-approved licenses, that is all. The currently default model of having an open issue tracker, accepting third party pull requests, doing code reviews, providing support by email or chat, timely security patches etc, has nothing to do with open source and is not sustainable. This is OK if it is done for a hobby project as long as the author is having fun doing this work, but as soon as the software is used for commercial, production critical systems, the default expectation that authors will be promptly responding to new GitHub issues, bug reports and provide patches for free is insane. This is software support, it is a job, it should be paid.

mixedbit, 19 hours ago
👍3
🔥2😭2