Forwarded from Segment@tion fault
При использовании асинхронного кода, необходимо всегда помнить про синхронную нагрузку и запускать такие задачи в отдельных потоках, чтобы не блокировать async runtime. Особенно это важно при разработке real-time приложений, где блокировка рантайма уже на пару миллисекунд может сломать всю вашу low-latency конструкцию.
Кроме традиционных синхронных задач (шифрование, сериализация, компрессия и т.д.) часто забывается, что malloc - тоже очень неприятная штука. Например, 10 мегабайт на вектор может выделяться до пары миллисекунд на приличном процессоре уровня AMD 5950X, ембед же уровня Cortex A-72 может на таком застрять и на 10ms. В случае невозможности использования re-use буфера (например он уже пошел отправляться клиентам, а мы читаем следующий), аллокацию памяти необходимо выносить в синхронные задачи.
В последней BUS/RT мы добавили брокеру опцию direct_alloc_limit, позволяющую вынести аллокации выше лимита (это делается, когда sender прислал большой блок данных) на отдельный вспомогательный аллокатор. Который, в зависимости от структуры проекта, может просто создавать векторы в spawn_blocking, либо общаться с отдельным, отвечающим за это потоком, который находится на отдельной группе CPU. Также, аллокатор может вообще запретить выделение блока, руководствуясь собственной логикой относительно идентификатора клиента, либо общей.
Таким образом, в нашем IPC-брокере появилась крутая возможность безопасно совмещать low-latency (<100us) клиентов с high-load, читающими гигабайты из баз. В одной системе и без ущерба друг для друга.
Кроме традиционных синхронных задач (шифрование, сериализация, компрессия и т.д.) часто забывается, что malloc - тоже очень неприятная штука. Например, 10 мегабайт на вектор может выделяться до пары миллисекунд на приличном процессоре уровня AMD 5950X, ембед же уровня Cortex A-72 может на таком застрять и на 10ms. В случае невозможности использования re-use буфера (например он уже пошел отправляться клиентам, а мы читаем следующий), аллокацию памяти необходимо выносить в синхронные задачи.
В последней BUS/RT мы добавили брокеру опцию direct_alloc_limit, позволяющую вынести аллокации выше лимита (это делается, когда sender прислал большой блок данных) на отдельный вспомогательный аллокатор. Который, в зависимости от структуры проекта, может просто создавать векторы в spawn_blocking, либо общаться с отдельным, отвечающим за это потоком, который находится на отдельной группе CPU. Также, аллокатор может вообще запретить выделение блока, руководствуясь собственной логикой относительно идентификатора клиента, либо общей.
Таким образом, в нашем IPC-брокере появилась крутая возможность безопасно совмещать low-latency (<100us) клиентов с high-load, читающими гигабайты из баз. В одной системе и без ущерба друг для друга.
Forwarded from trace!("TheBestTvarynka") (Pavlo Myroniuk)
Around half a year ago, I started my new side project: Dataans. It already has plenty of good features and I think I'm ready to present it to you.
I'd say that it's not ready and missing a lot of functionality, but I remembered the following quote (Lessons learned in 35 years of making software):
I've been thinking about it for a while and decided to finally publish a first release. Otherwise, it might never happen. I always have something in mind to implement/fix/improve. It is an infinite process 😌
So, let me introduce you: Dataans - a yet another note-taking app. The main idea is to take notes in markdown snippets and group them into spaces. It's like Telegram and Saved messages or personal channels (it is when you have a channel with only one subscriberyou ). I wanted such an app for years and finally wrote some MVP.
➡️ https://tbt.qkation.com/projects/dataans/ This post explains my motivations, wanted and missing features, and why I don't like existing note-taking apps. Alternatively, you can read the project README.md.
#rust #tool #dataans
I'd say that it's not ready and missing a lot of functionality, but I remembered the following quote (Lessons learned in 35 years of making software):
When you deliver work you’re really proud of, you’ve almost certainly done too much and taken too long.
I've been thinking about it for a while and decided to finally publish a first release. Otherwise, it might never happen. I always have something in mind to implement/fix/improve. It is an infinite process 😌
So, let me introduce you: Dataans - a yet another note-taking app. The main idea is to take notes in markdown snippets and group them into spaces. It's like Telegram and Saved messages or personal channels (it is when you have a channel with only one subscriber
#rust #tool #dataans
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - TheBestTvarynka/Dataans: Take notes in the form of markdown snippets grouped into spaces.
Take notes in the form of markdown snippets grouped into spaces. - TheBestTvarynka/Dataans
🔥1
Forwarded from trace!("TheBestTvarynka") (Pavlo Myroniuk)
trace!("TheBestTvarynka")
TL;DR (I tried to make it short, but I still have a lot to say 😭)
➡️ What's wrong with existing note-taking apps?
🔘 Too many options. I don't need so much test editing functionality. I just want to take notes and have simple markup (styling) functionality. Something like markdown or asciidoc.
🟣 Unwanted features. For example, I don't need AI to search for info in my notes. I only need a typical search engine. I don't want AI to write notes for me. I can write down my thoughts by myself.
🟡 Article-oriented mindset. Many note-taking apps look like you are going to write an article instead of just writing down the idea or a thought. When I see a blank screen with the cursor, I feel I need to write a document with a defined structure, style, and line of thought. It throws off the thoughts I wanted to write at the beginning.
I also recommend reading this blog post: Why build a messenger app only for sending to yourself?
➡️ Missing features
🔘 Desktop app. In the era of the web, I want a desktop app. Usually, the browser has dozens of opened tabs across multiple windows. It becomes hard to find the tab with notes.
🔴 Quake (drop-down) mode. I have used the Quake terminal since 2019. I like it a lot and the most pleasant feature is a drop-down mode. I set a keybinding to the
⚫️ Markdown. It is simple, easy to learn, and looks good. It contains a perfect set of styling and markup functionality for me.
🟡 Grouping into channels/spaces/folders/or anything like that.
So, as you can tell, I wrote my own app😅
➡️ Teck stack.
🔘 Main programming language: Rust.
🔴 App framework: Tauri.
🔘 Frontend framework: Leptos (yes, frontend in Rust).
More about used technologies: tech_stack.md.
Enough talking! I bet you are already tired from all these longreads.
➡️ https://github.com/TheBestTvarynka/Dataans
I also recommend reading this blog post: Why build a messenger app only for sending to yourself?
F1
key and always have my terminal with me.So, as you can tell, I wrote my own app
More about used technologies: tech_stack.md.
Enough talking! I bet you are already tired from all these longreads.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4
Forwarded from ExposedCat's blog (Artem)
This media is not supported in your browser
VIEW IN TELEGRAM
After all, JavaScriptBridge with a few abstractions can be used for 2-way communication, so it works without WebSockets 🫥
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Forwarded from GameDev DOU
Один спрайт, один фон, одна тисяча слів. Анонсовано перший Ukrainian Micro Visual Novel Jam
В рамках події учасники будуть створювати маленькі візуальні новели. Серед основних правил та обмежень: один спрайт для персонажа, один музичний трек та українська мова. Більше про конкурс та призи читайте в нашій новині.
В рамках події учасники будуть створювати маленькі візуальні новели. Серед основних правил та обмежень: один спрайт для персонажа, один музичний трек та українська мова. Більше про конкурс та призи читайте в нашій новині.
🔥2
Syncthing клиент для Android больше не будет разрабатываться:
Подсказывают, что есть хорошая альтернатива:
Discontinued
This app is discontinued. The last release on Github and F-Droid will happen with the December 2024 Syncthing version. Interactions (issues, PRs) are limited now, and the entire repo will be archived after the last release.
syncthing/syncthing-android: Wrapper of syncthing for Android.
https://github.com/syncthing/syncthing-android
Подсказывают, что есть хорошая альтернатива:
Catfriend1/syncthing-android: Syncthing-Fork - A Syncthing Wrapper for Android.
https://github.com/Catfriend1/syncthing-android
GitHub
GitHub - syncthing/syncthing-android: Wrapper of syncthing for Android.
Wrapper of syncthing for Android. Contribute to syncthing/syncthing-android development by creating an account on GitHub.
ASCII-Nova 🇺🇦
https://t.iss.one/andrsj/s/114
Это собирает Андрей, мы переписывались и тут в ASCII-Nova, и в других линуксовых сообществах
Закиньте у кого сколько есть, спасибо заранее
Закиньте у кого сколько есть, спасибо заранее
❤2
Недавно мне посоветовали helix
Кто-то уже пробовал? Выглядит интересно
Helix: A post-modern text editor.
https://helix-editor.com/
Кто-то уже пробовал? Выглядит интересно
оффтоп тред: какая ваша любимая форма бороды?
любой фасон, любое время и тд
я начну любимая форма это борода Гильгамеша. максимум стиля уже с БОРОДАТЫХ времён
погнали ваши варианты в комменты
любой фасон, любое время и тд
я начну любимая форма это борода Гильгамеша. максимум стиля уже с БОРОДАТЫХ времён
погнали ваши варианты в комменты
😁3
ASCII-Nova 🇺🇦
у кабанчика не обновлённая вики, т.к. в рфии и "Белоруссии" он уже не работает, насколько понимаю, но... что это вообще такое: Расположение сервера: Украина: Киев, шоссе Харьковское, д. 201-203, корп. 2-А какой умник это написал? и главное зачем?
новый тред: а где ваши сервера располагаются?
я начну: мои в
погнали ваши варианты в комменты
я начну: мои в
eu-central-1
погнали ваши варианты в комменты
ASCII-Nova 🇺🇦
у кабанчика не обновлённая вики, т.к. в рфии и "Белоруссии" он уже не работает, насколько понимаю, но... что это вообще такое: Расположение сервера: Украина: Киев, шоссе Харьковское, д. 201-203, корп. 2-А какой умник это написал? и главное зачем?
ну а если серьёзно, как кто знает, как по фамилии исполнителя, найти его анкету там (в кабанчике)?
UPD: никак
UPD: никак
ASCII-Nova 🇺🇦
новый тред: а где ваши сервера располагаются? я начну: мои в eu-central-1 погнали ваши варианты в комменты
ладно, я вижу, что люди начали серьёзно отвечать, так тоже можно: тогда мой серьёзный ответ это
localhost
😁4
This media is not supported in your browser
VIEW IN TELEGRAM
Devbox: Portable, Isolated Dev Environments
https://www.jetify.com/devbox
Интересный способ погружения в изолированные окружения на базе Nix
Если вам, как и мне, всё не хватает времени (может и мотивации?) для старта использования Nix, то такая обёртка может ускорить погружение
PS. Если кто-то уже использовал, поделитесь опытом
🔥2🤔1
Forwarded from gavr_sas
WebStorm и Rider теперь бесплатны для некоммерческого юзания, шо есть хорошо
Итого:
IDEA(JVM, Kotlin)
PyCharm(Python)
WebStorm(JS, TS)
Rider(C#, C++, gamedev)
RustRover
https://blog.jetbrains.com/blog/2024/10/24/webstorm-and-rider-are-now-free-for-non-commercial-use/
Итого:
IDEA(JVM, Kotlin)
PyCharm(Python)
WebStorm(JS, TS)
Rider(C#, C++, gamedev)
RustRover
https://blog.jetbrains.com/blog/2024/10/24/webstorm-and-rider-are-now-free-for-non-commercial-use/
The JetBrains Blog
WebStorm and Rider Are Now Free for Non-Commercial Use | The JetBrains Blog
WebStorm and Rider, JetBrains IDEs, are now free for non-commercial use! Learn more in the blog post.
❤2🔥1