Forwarded from Українська Rust Спільнота (Kostyantyn Wandalen)
Останній блог-пост Google підкреслює тривалу проблему вразливостей безпеки пам'яті, яка залишається основним вектором атак десятиліттями. 
Google визнає, що немає реалістичного шляху для еволюції C++ у мову з жорсткими гарантіями безпеки пам'яті, включно з тимчасовою безпекою.
Безпека пам'яті з високим ступенем гарантії може бути досягнута лише за допомогою підходу Secure-by-Design, заснованого на всебічному впровадженні мов із суворими гарантіями безпеки пам'яті. А тому планується можливість поступового переходу на безпечні для пам'яті мови, такі як Java, Go та Rust 🦀.
Більше того, уже розпочались активні інвестиції у безпеку пам'яті:
▪️ Android за останні роки реалізував кілька компонентів на Rust
▪️ Chrome почав впроваджувати деякі функції на Rust, зокрема, покращив безпеку та продуктивність, перемістивши свій генератор QR-кодів за допомогою нової бібліотеки на Rust
▪️ Google нещодавно оголосив про надання гранту у розмірі $1,000,000 Rust Foundation для покращення взаємодії з кодом на C++
🔗 Більше у статті Secure by Design: Google’s Perspective on Memory Safety
  
  Google визнає, що немає реалістичного шляху для еволюції C++ у мову з жорсткими гарантіями безпеки пам'яті, включно з тимчасовою безпекою.
Безпека пам'яті з високим ступенем гарантії може бути досягнута лише за допомогою підходу Secure-by-Design, заснованого на всебічному впровадженні мов із суворими гарантіями безпеки пам'яті. А тому планується можливість поступового переходу на безпечні для пам'яті мови, такі як Java, Go та Rust 🦀.
Більше того, уже розпочались активні інвестиції у безпеку пам'яті:
▪️ Android за останні роки реалізував кілька компонентів на Rust
▪️ Chrome почав впроваджувати деякі функції на Rust, зокрема, покращив безпеку та продуктивність, перемістивши свій генератор QR-кодів за допомогою нової бібліотеки на Rust
▪️ Google нещодавно оголосив про надання гранту у розмірі $1,000,000 Rust Foundation для покращення взаємодії з кодом на C++
🔗 Більше у статті Secure by Design: Google’s Perspective on Memory Safety
Google Online Security Blog
  
  Secure by Design: Google’s Perspective on Memory Safety
  Alex Rebert, Software Engineer, Christoph Kern, Principal Engineer, Security Foundations Google’s Project Zero reports  that memory safety v...
  # Копирование, не занимающее памяти
Поскольку обзавёлся NAS`[1]` (домашний небольшой сервер) и периодически его настраиваю, то очевидным образом встал вопрос о запуске локального медиа-сервера (Jellyfin).
Недавно, я задавался вопросом, как мне скачивать контент с торрентов`[2]`, но при этом копировать его в директорию, где медиа-сервер (дальше МС) его ожидает.
Чтобы вся метаинформация (обложки, описания, актёры, etc.) подтягивались, контент должен располагаться в понятном для МС виде, например:
И тут возникает вопрос: а как этого добиться? Чтобы и скопировать, и не занять место, и осталось в оригинальной папке, дабы не только получать, но и раздавать?
Почитал реддиты и понял, что изгаляются хоум-лаберы очень по-разному: от самописных скриптов и символических ссылок (ярлыков), до отдельных сервисов, которые это делают автоматически.
Мне жутко не хотелось усложнять свой сетап новыми сервисами, но и забить уже не получалось — мысль засела в голове. К тому же, когда сервисы в докер (Андрей прости!) контейнерах, то проблем с символическими ссылками не оберёшься + сам МС не очень-то их переваривал :(
В итоге поймал себя на интересной мысли: видел в настройках DSM (ОС для NAS) такую штуку как "быстрое копирование". При этом, оно действительно быстрое — файл 100гб, копирует моментально — вау! Но как это работает?
Всё дело в файловой системе BTRFS. Поскольку она CoW (copy on write), то позволяет иметь одни и те же файлы в разных местах, но занимающие память (!) один раз!
Поизучал
Таким образом, мы можем копировать файлы моментально и (!) без дополнительно занимаемого места. Круто и просто!
PS.
1) Это справедливо для любой CoW файловой системы
2) Нужно, чтобы файлы находились в рамках одной файловой системы
—
[1] Думаю позже напишу обзорный пост, про свои впечатления от NAS, когда больше переварю опыта взаимодействия.
[2] Качаю с торрентов ISO образы Fedora, а вы что подумали?
Поскольку обзавёлся NAS`[1]` (домашний небольшой сервер) и периодически его настраиваю, то очевидным образом встал вопрос о запуске локального медиа-сервера (Jellyfin).
Недавно, я задавался вопросом, как мне скачивать контент с торрентов`[2]`, но при этом копировать его в директорию, где медиа-сервер (дальше МС) его ожидает.
Чтобы вся метаинформация (обложки, описания, актёры, etc.) подтягивались, контент должен располагаться в понятном для МС виде, например:
Shows
└── Series Name A (2010)
├── Season 00
│ ├── Some Special.mkv
│ ├── Series Name A S00E01.mkv
│ └── Series Name A S00E02.mkv
├── Season 01
│ ├── Series Name A S01E01-E02.mkv
│ ├── Series Name A S01E03.mkv
│ └── Series Name A S01E04.mkv
└── Season 02
И тут возникает вопрос: а как этого добиться? Чтобы и скопировать, и не занять место, и осталось в оригинальной папке, дабы не только получать, но и раздавать?
Почитал реддиты и понял, что изгаляются хоум-лаберы очень по-разному: от самописных скриптов и символических ссылок (ярлыков), до отдельных сервисов, которые это делают автоматически.
Мне жутко не хотелось усложнять свой сетап новыми сервисами, но и забить уже не получалось — мысль засела в голове. К тому же, когда сервисы в докер (Андрей прости!) контейнерах, то проблем с символическими ссылками не оберёшься + сам МС не очень-то их переваривал :(
В итоге поймал себя на интересной мысли: видел в настройках DSM (ОС для NAS) такую штуку как "быстрое копирование". При этом, оно действительно быстрое — файл 100гб, копирует моментально — вау! Но как это работает?
Всё дело в файловой системе BTRFS. Поскольку она CoW (copy on write), то позволяет иметь одни и те же файлы в разных местах, но занимающие память (!) один раз!
Поизучал
man для cp и обнаружил, что всё уже есть: cp --reflink=auto.Таким образом, мы можем копировать файлы моментально и (!) без дополнительно занимаемого места. Круто и просто!
PS.
1) Это справедливо для любой CoW файловой системы
2) Нужно, чтобы файлы находились в рамках одной файловой системы
—
[1] Думаю позже напишу обзорный пост, про свои впечатления от NAS, когда больше переварю опыта взаимодействия.
[2] Качаю с торрентов ISO образы Fedora, а вы что подумали?
👍3
  Forwarded from opennet.ru
Брюс Перенс опубликовал черновой вариант лицензии Post-Open https://opennet.ru/60761/
  
  www.opennet.ru
  
  Брюс Перенс опубликовал черновой вариант лицензии Post-Open
  Брюс Перенс (Bruce Perens), один из авторов определения Open Source и соучредитель организации Open Source Initiative, представил первый черновой вариант новой лицензии "Post-Open Zero-Cost", нацеленной на решение накопившихся проблем, связанных со взаимодействием…
  
  opennet.ru
Брюс Перенс опубликовал черновой вариант лицензии Post-Open https://opennet.ru/60761/
Рад, что пошло движение на переосмысление лицензий
  Forwarded from Hacker News
  
  GitHub
  
  gh-116167: Allow disabling the GIL with `PYTHON_GIL=0` or `-X gil=0` by swtaarrs · Pull Request #116338 · python/cpython
  In free-threaded builds, running with PYTHON_GIL=0 or -X gil=0 will now disable the GIL. #116322 and #116329 track follow-up work to re-enable the GIL when loading an incompatible extension, and to...
🔥1
  
  Hacker News
The GIL can now be disabled in Python's main branch Article, Comments
для питонистов прямо новая эпоха постепенно начинается
💯1
  Kobzol/cargo-wizard: Cargo subcommand for configuring Cargo profile for best performance.
https://github.com/kobzol/cargo-wizard
Интересно, случайно узнал, что существует Experimental Parallel Front-end
Build Configuration - The Rust Performance Book
https://nnethercote.github.io/perf-book/build-configuration.html#experimental-parallel-front-end
  
  https://github.com/kobzol/cargo-wizard
Интересно, случайно узнал, что существует Experimental Parallel Front-end
Build Configuration - The Rust Performance Book
https://nnethercote.github.io/perf-book/build-configuration.html#experimental-parallel-front-end
GitHub
  
  GitHub - Kobzol/cargo-wizard: Cargo subcommand for configuring Cargo projects for best performance.
  Cargo subcommand for configuring Cargo projects for best performance. - Kobzol/cargo-wizard
  Forwarded from gavr_sas
Релизнулся Winter JS 1.0
Авторы заявляют бенчмарком Bun почти на 25%
Также как и Bun для выполнения JS юзают SpiderMonkey из Firefox, но юзают Tokio для HTTP и js event лупа
https://wasmer.io/posts/winterjs-v1
В отличии от Bun оно разработано для их же edge компьютинга Wasmer Edge
Авторы заявляют бенчмарком Bun почти на 25%
Также как и Bun для выполнения JS юзают SpiderMonkey из Firefox, но юзают Tokio для HTTP и js event лупа
https://wasmer.io/posts/winterjs-v1
В отличии от Bun оно разработано для их же edge компьютинга Wasmer Edge
Подскажите, сколько у вас памяти на телефонах и (!) сколько вы считаете нужным для 2024+ 
Условно, у меня сейчас 64 гб (Samsung S9) и думаю что 256 гб это норм
—
Контекст: смотрю на телефоны и не могу понять, сколько выбрать
  Условно, у меня сейчас 64 гб (Samsung S9) и думаю что 256 гб это норм
—
Контекст: смотрю на телефоны и не могу понять, сколько выбрать
  ASCII-Nova 🇺🇦
Подскажите, сколько у вас памяти на телефонах и (!) сколько вы считаете нужным для 2024+   Условно, у меня сейчас 64 гб (Samsung S9) и думаю что 256 гб это норм  —  Контекст: смотрю на телефоны и не могу понять, сколько выбрать
очень благодарен всем кто откликнулся, мы мне очень помогли! 
с меня любой ответ на инженерный вопрос в личку или в паблике :)
с меня любой ответ на инженерный вопрос в личку или в паблике :)
😁1🖕1
  жесть, такую очевидную вещь вчера осознал, сейчас в таком глупом осадке сижу
предыстория: у меня лаптоп thinkpad t490s, который, очевидно, без дискретного GPU. моник у меня ультра-широкий
пользовался им так давно, но родное разрешение моника было тяжело для лаптопа и поэтому герцовка была небольшая (логично)
последнее время думал про апгрейд железа, мб даже собрать стационар, как хотел последние лет 5
—
так вот, выставил не родное разрешение моника, чуть меньше, и жесть! всё так стало летать, я в шоке!
получается, я как дурик тратил постоянно CPU (замечу, что именно его, а не встройку) на огромное разрешение. учитывая, что я системный программист, то у меня постоянно компиляции нагружающие в сотку проц + IDE на Java... т.е. CPU мне был и нужен постоянно
в итоге, оказывается, что всё работает так-то очень быстро...
мораль: нужно быть внимательнее к железу и не привыкать к странному сетапу
предыстория: у меня лаптоп thinkpad t490s, который, очевидно, без дискретного GPU. моник у меня ультра-широкий
пользовался им так давно, но родное разрешение моника было тяжело для лаптопа и поэтому герцовка была небольшая (логично)
последнее время думал про апгрейд железа, мб даже собрать стационар, как хотел последние лет 5
—
так вот, выставил не родное разрешение моника, чуть меньше, и жесть! всё так стало летать, я в шоке!
получается, я как дурик тратил постоянно CPU (замечу, что именно его, а не встройку) на огромное разрешение. учитывая, что я системный программист, то у меня постоянно компиляции нагружающие в сотку проц + IDE на Java... т.е. CPU мне был и нужен постоянно
в итоге, оказывается, что всё работает так-то очень быстро...
мораль: нужно быть внимательнее к железу и не привыкать к странному сетапу
👍2😁2
  Forwarded from gavr_sas
  
https://gitlab.freedesktop.org/mesa/mesa/-/issues/10803
"Remember, everyone:
PREFIX YOUR MACROS
PREFIX YOUR MACROS
PREFIX YOUR MACROS
PREFIX YOUR MACROS
PREFIX.
YOUR.
MACROS!!!!!!"
  "Remember, everyone:
PREFIX YOUR MACROS
PREFIX YOUR MACROS
PREFIX YOUR MACROS
PREFIX YOUR MACROS
PREFIX.
YOUR.
MACROS!!!!!!"
  gavr_sas
https://gitlab.freedesktop.org/mesa/mesa/-/issues/10803 "Remember, everyone:  PREFIX YOUR MACROS PREFIX YOUR MACROS PREFIX YOUR MACROS PREFIX YOUR MACROS  PREFIX.  YOUR.  MACROS!!!!!!"
ох, как рад, что препроцессор C/C++ для меня остался в прошлом, вы просто не представляете