#prog #abnormalprogramming #article
Building a url-shortener with Lambda — JUST Lambda
(и немного Python)
Работает без базы данных, если что
Building a url-shortener with Lambda — JUST Lambda
(и немного Python)
Работает без базы данных, если что
Блог*
#prog #abnormalprogramming #article Building a url-shortener with Lambda — JUST Lambda (и немного Python) Работает без базы данных, если что
И ещё пачка #prog #abnormalprogramming от этого же человека:
Чат, работающий на одном CSS на клиенте
Спеллчекер на тайпчекере Typescript (так что, видимо, #typescript?)
База данных на вкладках браузера
Чат, работающий на одном CSS на клиенте
Спеллчекер на тайпчекере Typescript (так что, видимо, #typescript?)
База данных на вкладках браузера
🤩2🔥1🤯1
#prog #rust #article
Breakage! in the Cargo.toml — How Rust Package Features Work (And Break)
Самое важное:
In some cases, you may not want to expose a feature that has the same name as the optional dependency. For example, perhaps the optional dependency is an internal detail, or you want to group multiple optional dependencies together, or you just want to use a better name. If you specify the optional dependency with the
Поэтому добавление фичи с указанием опциональной зависимости через
Добавление обнаружения этой ситуации в cargo-semver-checks потребовало довольно много работы, поскольку до этого вся кодовая база опиралась на предположение, что вся информация для проверок идёт из JSON, который выдаёт rustdoc. Эта же проверка требует смотреть в Cargo.toml и в набор фич, поскольку rustdoc генерирует документацию только для конкретного набора фич и потому не может дать информации о всех фичах в манифесте.
Breakage! in the Cargo.toml — How Rust Package Features Work (And Break)
Самое важное:
In some cases, you may not want to expose a feature that has the same name as the optional dependency. For example, perhaps the optional dependency is an internal detail, or you want to group multiple optional dependencies together, or you just want to use a better name. If you specify the optional dependency with the
dep:
prefix anywhere in the [features]
table, that disables the implicit feature.Поэтому добавление фичи с указанием опциональной зависимости через
dep:
удаляет неявную одноимённую фичу, связанную с зависимостью, и из-за этого является потенциально ломающим изменением.Добавление обнаружения этой ситуации в cargo-semver-checks потребовало довольно много работы, поскольку до этого вся кодовая база опиралась на предположение, что вся информация для проверок идёт из JSON, который выдаёт rustdoc. Эта же проверка требует смотреть в Cargo.toml и в набор фич, поскольку rustdoc генерирует документацию только для конкретного набора фич и потому не может дать информации о всех фичах в манифесте.
👍6😭2
Forwarded from commit -m "better"
История одного дебага.
https://marcan.st/2017/12/debugging-an-evil-go-runtime-bug/
TL;DR - как определенное сочетание опций сборки ядра и версий GCC ломало go runtime.
https://marcan.st/2017/12/debugging-an-evil-go-runtime-bug/
TL;DR - как определенное сочетание опций сборки ядра и версий GCC ломало go runtime.
marcan.st
Debugging an evil Go runtime bug
From heat guns to kernel compiler flags
👍6😱2
#prog #article
The hunt for error -22
Детективная история про гейзенбаг и его фикс. Железо, на котором был баг — модем с двумя ядрами. Одно может использовать пользовательское firmware (в данном случае написанное на Rust), а второе может использовать только пропиетарную прошивку от производителя. Прошивка поставляется исключительно в виде набора интерфейсных заголовочных файлов и блоба скомпилированного сишного кода.
TL;DR:"No way to prevent this, says only language where this regularly happens"
The hunt for error -22
Детективная история про гейзенбаг и его фикс. Железо, на котором был баг — модем с двумя ядрами. Одно может использовать пользовательское firmware (в данном случае написанное на Rust), а второе может использовать только пропиетарную прошивку от производителя. Прошивка поставляется исключительно в виде набора интерфейсных заголовочных файлов и блоба скомпилированного сишного кода.
TL;DR:
tweedegolf.nl
The hunt for error -22 - Blog - Tweede golf
This article is a linear retrospective of how we searched for and eventually fixed a hard-to-find bug in our embedded software. If you're only interested in the outcome, then make sure to read the ...
🤡7💯4🫡2
#prog #amazingopensource
DWARF Explorer (dwex)
A cross-platform GUI utility for visualizing the DWARF debugging information in executable files, built on top of pyelftools and filebytes. Runs on Windows, MacOS X, and Linux.
Ввиду того, что написано на Python, пользоваться этим может быть не очень удобно, особенно на Windows.
DWARF Explorer (dwex)
A cross-platform GUI utility for visualizing the DWARF debugging information in executable files, built on top of pyelftools and filebytes. Runs on Windows, MacOS X, and Linux.
Ввиду того, что написано на Python, пользоваться этим может быть не очень удобно, особенно на Windows.
👍3🔥1
Блог*
Хот #prog тейк: набор примитивов, предоставляемый файловыми системами, абсолютно неадекватен для написания надёжных программ
#prog #article
Files are hard (от Dan Luu)
<...>that's equivalent to saying that as an application developer, writing to files safely is hard enough that it should be done via some kind of library and/or database, not by directly making syscalls.
Настоятельно рекомендую к прочтению целиком.
Статья ссылается на исследовательские статьи, которые, к сожалению, как правило, сильно устарели в плане того, софт каких версий они проверяют, и при этом почти всегда не имеют современных воспроизведений.
Files are hard (от Dan Luu)
<...>that's equivalent to saying that as an application developer, writing to files safely is hard enough that it should be done via some kind of library and/or database, not by directly making syscalls.
Настоятельно рекомендую к прочтению целиком.
Статья ссылается на исследовательские статьи, которые, к сожалению, как правило, сильно устарели в плане того, софт каких версий они проверяют, и при этом почти всегда не имеют современных воспроизведений.
👍6