Вышла беточка go1.16 с поддержкой виртуальной файловой системы и встраивания произвольных файлов.
Теперь можно на этапе компиляции вшить виртуальную файловую систему прямо в бинарник.
И ещё приехала поддержка метрик рантайма в стандартную библиотеку — цепляемся к райнтайму через любые сторонние сборщики метрик через тонкий адаптер.
Из мелочей — есть множественные ключи в тегах: вместо
https://tip.golang.org/doc/go1.16
Теперь можно на этапе компиляции вшить виртуальную файловую систему прямо в бинарник.
И ещё приехала поддержка метрик рантайма в стандартную библиотеку — цепляемся к райнтайму через любые сторонние сборщики метрик через тонкий адаптер.
Из мелочей — есть множественные ключи в тегах: вместо
json:"field" bson:"field"
можно писать json bson: "field"
Люблю этот релиз, дорохо-бохатоhttps://tip.golang.org/doc/go1.16
tip.golang.org
Go 1.16 Release Notes - The Go Programming Language
Я правильно понимаю, что этот ваш киберпанк надо будет брать через год по скидке, чтобы не разочароваться?
Forwarded from Бiоинформатика и лапки
Когда задвигал такую же тему на семинарах еще в 2018, но никто толком не прислушался((
https://www.pnas.org/content/116/15/7214
https://www.pnas.org/content/116/15/7214
PNAS
A CRISPR/Cas9-based central processing unit to program complex logic computation in human cells
Controlling gene expression with sophisticated logic gates has been and remains one of the central aims of synthetic biology. However, conventional...
В zig завезли завезли race детектор.
Как ни странно, zig последнее время мне нравится больше чем rust. Если ржавчина – замена плюсов, то zig целится в Си – поэтому мне кажется ближе по духу к Go
https://twitter.com/andy_kelley/status/1341611395482173443
Как ни странно, zig последнее время мне нравится больше чем rust. Если ржавчина – замена плюсов, то zig целится в Си – поэтому мне кажется ближе по духу к Go
https://twitter.com/andy_kelley/status/1341611395482173443
Twitter
Andrew Kelley
TSAN coming soon to a Zig compiler near you
Forwarded from Bortlog
Тут ребята реверс-инженирят код BioNTech/Pfizer SARS-CoV-2 вакцины. Оказывается это ~1KB довольно интересного кода напечатаного на ДНК принтере, который проникая в человеческую клетку обманывает ее и заставляет в ускореном режиме производить «иголочки» идентичные таким как у короновируса, потом наша имунная система обнаруживает такое проникновенте и учится эти иголочки детектить чтобы обезвреживать в будущем. Там куча всего интересного разбирается код с хедерами, метаданными, модифицироваными нуклеотидами чтобы обмануть чащитный механизм клетки и прикинутся «местным» кодом и тд.
https://berthub.eu/articles/posts/reverse-engineering-source-code-of-the-biontech-pfizer-vaccine/
https://berthub.eu/articles/posts/reverse-engineering-source-code-of-the-biontech-pfizer-vaccine/
Bert Hubert's writings
Reverse Engineering the source code of the BioNTech/Pfizer SARS-CoV-2 Vaccine - Bert Hubert's writings
Translations: ελληνικά / عربى / 中文 (Weixin video, Youtube video) / 粵文 / bahasa Indonesia / český / Català / český / Deutsch / Español / 2فارسی / فارسی / Français / עִברִית / Hrvatski / Italiano / Magyar / Nederlands / 日本語 / 日本語 2 / नेपाली / Polskie / русский…
Почему-то никто не написал, а тем временем в комьюнити Go не всё спокойно. Генератором драмы выступил автор популярного HTTP роутера
К сожалению, go mod не рассчитан на такой слом семантического версионирования и снизил версии других пакетов.
Например, если у вас были зависимости от
Вокруг этого решения до сих пор бурлят споры, и понятно из-за чего: chi — один из самых приятных в использовании роутеров, к тому же совместимый со стандартной библиотекой. Вокруг него выросла небольшая экосистема пакетов, например, миддлварей, так что большое количество пользователей
Если вам зачем-то нужно написать роуты для сервиса руками, постарайтесь избегать чи, пока ситуация не разрешится. К сожалению, мне не известно достойных альтернатив настолько же быстрых, поддерживаемых и совместимых со стандартной библиотекой.
https://github.com/go-chi/chi/issues/561
chi
. Решив, что настало время для нового релиза, @pkieltyka вместо версиис v5.*.*
выпустил версию v1.5.0
, в то время как последняя версия была v4.1.2+incompatible
.К сожалению, go mod не рассчитан на такой слом семантического версионирования и снизил версии других пакетов.
Например, если у вас были зависимости от
chi
git.example.com/commons/pkg/rest v1.3.2то после апгрейда их версия упадёт до совместимой с
github.com/go-chi/chi v4.1.2+incompatible
v1
:git.example.com/commons/pkg/rest v1.1.0Основным мотивом слома версионирования, по словам автора, стало эстетическое неприятие использование номера версий в путях импорта (как пример,
github.com/go-chi/chi v1.5.1
github.com/go-chi/chi/v5
).Вокруг этого решения до сих пор бурлят споры, и понятно из-за чего: chi — один из самых приятных в использовании роутеров, к тому же совместимый со стандартной библиотекой. Вокруг него выросла небольшая экосистема пакетов, например, миддлварей, так что большое количество пользователей
chi
застряли на версии v4.1.2+incompatible
.Если вам зачем-то нужно написать роуты для сервиса руками, постарайтесь избегать чи, пока ситуация не разрешится. К сожалению, мне не известно достойных альтернатив настолько же быстрых, поддерживаемых и совместимых со стандартной библиотекой.
https://github.com/go-chi/chi/issues/561
GitHub
[email protected] mod issues · Issue #561 · go-chi/chi
I have tried to switch to v1.5.0 from v4.1.2+incompatible but because the version number decreased it caused a downgrade of all other dependencies using chi. For example, I have started with this: ...
Любопытный, но довольно бесполезный пример полиморфизма в Go
В гошечке есть несколько способов писать полиморфные функции:
1. интерфейсы;
2. тайп свитчи и тайп кастинг интерфейсов;
3. рефлексия;
Недавно я понял, что есть чётвёртый подход, который стал возможен с появлением type alias — назовём его апкастингом типов. Работает оно так:
К сожалению, это не слишком полезно — наверное только если вы не хотите делать пачку геттеров и у вас есть пачка одинаковых структур разных типов.
В гошечке есть несколько способов писать полиморфные функции:
1. интерфейсы;
2. тайп свитчи и тайп кастинг интерфейсов;
3. рефлексия;
Недавно я понял, что есть чётвёртый подход, который стал возможен с появлением type alias — назовём его апкастингом типов. Работает оно так:
func main() {
printName(Cat{"Whiskey"})
printName(Dog{"Chappie"})
}
type Cat struct { Name string }
type Dog struct { Name string }
type named = struct { Name string }
func printName(n named) {
fmt.Println(n.Name)
}
В спеке Go указано, что присваивание x типа V к переменной типа T валидно в случае, если V и T основаны на одинаковых типах и T — не именованный тип ("x's type V and T have identical underlying types and at least one of V or T is not a defined type."). Псевдонимы типов не считются именованными типами, так что мы можем принимать в аргумент n любую кастуемую структуру.К сожалению, это не слишком полезно — наверное только если вы не хотите делать пачку геттеров и у вас есть пачка одинаковых структур разных типов.
Forwarded from Anton Trunov
“Волшебные сказки программистов мира”:
- Иван-Царевич и Языки-на-которых-нельзя-писать-плохо
- Красивый код и Чудовищный
- Синяя АйтиБорода
- Всё, что остается от вашего стартапа (Золушка)
- Код в сапогах
- Whitespace и Семь Языков (за Семь Недель)
- Красная Шапочка Enterprise Linux
- Гадкая Утиная Типизация
- Джек и Стебель Дяди Боба
- Чип Полины (Эльбрус-2020)
- Сестрица Алёна-С++ и Рыжий Иванушка
- Принцесса на Горутинах
- Волк и семь БД за семь недель
- Категорошек и попытки писать без него на ФП языках
- Ко-лобок
- Coq — Золотой гребешок
- Курочка Agda
- Гит-репка
- Жил-был PS5
- Иван-Царевич и Языки-на-которых-нельзя-писать-плохо
- Красивый код и Чудовищный
- Синяя АйтиБорода
- Всё, что остается от вашего стартапа (Золушка)
- Код в сапогах
- Whitespace и Семь Языков (за Семь Недель)
- Красная Шапочка Enterprise Linux
- Гадкая Утиная Типизация
- Джек и Стебель Дяди Боба
- Чип Полины (Эльбрус-2020)
- Сестрица Алёна-С++ и Рыжий Иванушка
- Принцесса на Горутинах
- Волк и семь БД за семь недель
- Категорошек и попытки писать без него на ФП языках
- Ко-лобок
- Coq — Золотой гребешок
- Курочка Agda
- Гит-репка
- Жил-был PS5
Большая подборка фотографий советский компьютеров. Нужно больше этой эстетики! Спасибо @oleg_log https://rusue.com/cemetery-of-soviet-computers/
The live-coding cryptography workshop continues, as Adebayo, Thom, Parish, Thiago, Quinn, Andrew, Umang, and Bryan talk password cracking, and the best kind of rules to ensure password security (none at all!). Will they crack the secret code and find the answer to the Great Question of Life, the Universe, and Everything?
The project is here: https://github.com/bitfield/key
John Arundel is a Go mentor and writer, author of a series of books for Go beginners called 'For the Love of Go'. You can buy them here: https://bitfieldconsulting.com/books
The project is here: https://github.com/bitfield/key
John Arundel is a Go mentor and writer, author of a series of books for Go beginners called 'For the Love of Go'. You can buy them here: https://bitfieldconsulting.com/books
☕️ Мерлин заваривает τσάι 🐌
The live-coding cryptography workshop continues, as Adebayo, Thom, Parish, Thiago, Quinn, Andrew, Umang, and Bryan talk password cracking, and the best kind of rules to ensure password security (none at all!). Will they crack the secret code and find the answer…
YouTube
Code Club: Cracking
The live-coding cryptography workshop continues, as Adebayo, Thom, Parish, Thiago, Quinn, Andrew, Umang, and Bryan talk password cracking, and the best kind of rules to ensure password security (none at all!). Will they crack the secret code and find the…
Очень часто слышу вопрос о том, с чего начать изучать Go. Обычно в ответ прилетает совет пройти tour of go и почитать официальный блог
Недавно я удачно натолкнулся на интересную инфографику: https://github.com/Alikhll/golang-developer-roadmap
По сути это дерево знаний молодого бойца с ссылками на конкретные библиотеки — не всегда лучший выбор, на мой взгляд, но сильно поможет набрать опыт при использовании и вообще вкатиться в область
Недавно я удачно натолкнулся на интересную инфографику: https://github.com/Alikhll/golang-developer-roadmap
По сути это дерево знаний молодого бойца с ссылками на конкретные библиотеки — не всегда лучший выбор, на мой взгляд, но сильно поможет набрать опыт при использовании и вообще вкатиться в область