Forwarded from Generic Talks (Oleg Kovalov)
Мы опять с вами, подключайтесь. Поговорим о языках, локах и поиску по коду. https://www.youtube.com/watch?v=Oq0JiOz65Fo
YouTube
Generic Talks S02E03 "Языковая блокировка с рекурсивным обходом на диске"
Generic Talks S02E03 "Языковая блокировка с рекурсивным обходом на диске"
Оригинальный состав Олег, Искандер и Богдан.
Темы:
1. Github Codespaces
- https://github.com/features/codespaces
2. О причинах появления языков:
- https://nim-lang.org…
Оригинальный состав Олег, Искандер и Богдан.
Темы:
1. Github Codespaces
- https://github.com/features/codespaces
2. О причинах появления языков:
- https://nim-lang.org…
Forwarded from Generic Talks (Bogdan Storozhuk)
Generic Talks S02E03 "Языковая блокировка с рекурсивным обходом на диске"
Оригинальный состав Олег, Искандер и Богдан.
Темы:
1. Github Codespaces
- https://github.com/features/codespaces
2. О причинах появления языков:
- https://nim-lang.org
- https://ziglang.org
- https://www.beeflang.org
- https://www.red-lang.org
3. Locking in WebKit:
- https://webkit.org/blog/6161/locking-in-webkit/
- https://aspenuwu.me/posts/rust-optimization.html
- https://github.com/Amanieu/parking_lot
4. Type filters & Ruleguard
- https://twitter.com/dgryski/status/1317245210041012224
- Что такое фильтры типов в ruleguard
- Фильтры структурных типов в ruleguard (type matching)
- Underlying types
- Что означает “contains?”
- Как выразить фильтр для подвыражения фильтра https://bit.ly/2FEfEjq
5. "Книжный клуб" читаем и обсуждаем Martin Kleppmann / Designing Data-Intensive Applications (2017) CHAPTER 3 - Storage and Retrieval
На следующий раз в "Книжный клуб" читаем и обсуждаем Martin Kleppmann / Designing Data-Intensive Applications (2017) CHAPTER 4 - Encoding and Evolution
Свои вопросы и заметки по главе пишите сюда: @generictalks_bot
Если Вы хотели бы послушать наше интервью с какем-то интересным или хотите сами прийти - присылайте предложения сюда: @generictalks_bot
🎙Наш канал в YouTube - https://bit.ly/3cwXsmI
📹 Шоу с код ревью и кучей интересных советов - https://bit.ly/2zc2w1j (и Телеграм @good_bad_reviewer)
💵 Patreon - www.patreon.com/generictalks
https://soundcloud.com/generictalks/generictalks-s02e03-yazykovaya-blokirovka-s-rekursivnym-obkhodom-na-diske
Оригинальный состав Олег, Искандер и Богдан.
Темы:
1. Github Codespaces
- https://github.com/features/codespaces
2. О причинах появления языков:
- https://nim-lang.org
- https://ziglang.org
- https://www.beeflang.org
- https://www.red-lang.org
3. Locking in WebKit:
- https://webkit.org/blog/6161/locking-in-webkit/
- https://aspenuwu.me/posts/rust-optimization.html
- https://github.com/Amanieu/parking_lot
4. Type filters & Ruleguard
- https://twitter.com/dgryski/status/1317245210041012224
- Что такое фильтры типов в ruleguard
- Фильтры структурных типов в ruleguard (type matching)
- Underlying types
- Что означает “contains?”
- Как выразить фильтр для подвыражения фильтра https://bit.ly/2FEfEjq
5. "Книжный клуб" читаем и обсуждаем Martin Kleppmann / Designing Data-Intensive Applications (2017) CHAPTER 3 - Storage and Retrieval
На следующий раз в "Книжный клуб" читаем и обсуждаем Martin Kleppmann / Designing Data-Intensive Applications (2017) CHAPTER 4 - Encoding and Evolution
Свои вопросы и заметки по главе пишите сюда: @generictalks_bot
Если Вы хотели бы послушать наше интервью с какем-то интересным или хотите сами прийти - присылайте предложения сюда: @generictalks_bot
🎙Наш канал в YouTube - https://bit.ly/3cwXsmI
📹 Шоу с код ревью и кучей интересных советов - https://bit.ly/2zc2w1j (и Телеграм @good_bad_reviewer)
💵 Patreon - www.patreon.com/generictalks
https://soundcloud.com/generictalks/generictalks-s02e03-yazykovaya-blokirovka-s-rekursivnym-obkhodom-na-diske
Go1.15 неправильно инициализирует массивы больших размеров (больше чем 2⁹ элементов)
При создании массива
https://github.com/golang/go/issues/42054
При создании массива
var xx [1<<32]byte элементы примут случайные значения {0, 1}. Судя по всему проблема связана с новым линкеромhttps://github.com/golang/go/issues/42054
GitHub
cmd/compile: large variable not initialized to 0 · Issue #42054 · golang/go
What version of Go are you using (go version)? Initially spotted on playground (1.14.9), but also reproduces with 1.15.2 and: $ go version go version devel +3036b76df0 Sat Oct 10 16:06:07 2020 +000...
Forwarded from Медуза — LIVE
В Перу археологи обнаружили 37-метровый геоглиф кошки (то есть нанесенные на землю узоры).
Животное разлеглось прямо на склоне холма на плато Наска. Эксперты предполагают, что рисунок сделали примерно в 500-100 годах до нашей эры, что делает эту кошку одним из древнейших обнаруженных геоглифов.
Животное разлеглось прямо на склоне холма на плато Наска. Эксперты предполагают, что рисунок сделали примерно в 500-100 годах до нашей эры, что делает эту кошку одним из древнейших обнаруженных геоглифов.
☕️ Мерлин заваривает τσάι 🐌
Работающий исходник игры Жизнь, отформатированный в виде глайдера https://twitter.com/david3141593/status/1312509195158056962
YouTube
Donut-shaped C code that generates a 3D spinning donut
"Donut math: how donut.c works" blog post by Andy Sloane:
https://www.a1k0n.net/2011/07/20/donut-math.html
Deobfuscated code: https://bit.ly/2BITbQm
https://www.a1k0n.net/2011/07/20/donut-math.html
Deobfuscated code: https://bit.ly/2BITbQm
Реймаршинг движок на чистом Fennel (это такой лисп, транслируется в lua) и Love движке
Офигительная с технической точки зрения реализация, жаль только из-за зверски низкой производительности представляет исключительно академический интерес.
#absoluteMadman
https://andreyorst.gitlab.io/posts/2020-10-15-raymarching-with-fennel-and-love/
Офигительная с технической точки зрения реализация, жаль только из-за зверски низкой производительности представляет исключительно академический интерес.
#absoluteMadman
https://andreyorst.gitlab.io/posts/2020-10-15-raymarching-with-fennel-and-love/
andreyorst.gitlab.io
Raymarching with Fennel and LÖVE
Previously I decided to implement a rather basic raycasting engine in ClojureScript. It was a lot of fun, an interesting experience, and ClojureScript was awesome. I’ve implemented a small labyrinth game and thought about adding more features to the engine…
Zig конечно суров
Это выглядит как динамик диспатч, но на самом деле он компайл тайм
Это выглядит как динамик диспатч, но на самом деле он компайл тайм
// in stdlib
pub fn serialize(self: *Serializer, value: var) !void {
const T = comptime @TypeOf(value);
if (comptime std.meta.trait.hasFn("serialize")(T)) {
return T.serialize(value, self);
} else {
self.defaultSerialize(value);
}
}
// in my code
struct Foo {
foo: usize,
fn serialize(self: Foo, serialize: *Serializer) !void {
...
}
}
Forwarded from Random three body problem
This media is not supported in your browser
VIEW IN TELEGRAM
Initial states:
m: 1.637 x: -7.586 y: -8.681 vx: -0.039 vy: -0.028
m: 7.617 x: 0.310 y: 5.609 vx: 0.806 vy: 0.173
m: 2.975 x: -4.561 y: -4.319 vx: 0.031 vy: -0.443
Interest-ness score: 69
m: 1.637 x: -7.586 y: -8.681 vx: -0.039 vy: -0.028
m: 7.617 x: 0.310 y: 5.609 vx: 0.806 vy: 0.173
m: 2.975 x: -4.561 y: -4.319 vx: 0.031 vy: -0.443
Interest-ness score: 69
Forwarded from Bortlog
Вот вам подборочка хаков из кишочек Pebble:
1) https://github.com/cockroachdb/pebble/blob/master/internal/rawalloc/rawalloc.go
Аллоцируем неинициализированый (незануленый) слайс байт. Иногда надо если Вы знаете что всеравно сейчас перезапишите все эти байты своими, так что на инициализацию платить не хочется. Еще бывают случаи что вы предаллоцируете такой слайс, но может на полную его использовать не будете, поэтому вручную делаете инициализацию ленивой. Остальные варианты использования можете придумать сами и написать в коментарии.
2) https://github.com/cockroachdb/pebble/blob/master/internal/fastrand/fastrand.go
Прилинкованый
3) https://github.com/cockroachdb/pebble/blob/master/internal/bytealloc/bytealloc.go
Если Вы знаете что сейчас будете аллоцировать много маленьких байтслайсов можно предалоцировать их в одном слайсе побольше.
4) https://github.com/cockroachdb/pebble/blob/master/internal/intern/intern.go
Смотрите кто использует
5) https://github.com/cockroachdb/pebble/tree/master/internal/invariants
Как понять что тебя запустили под рейс детектором.
1) https://github.com/cockroachdb/pebble/blob/master/internal/rawalloc/rawalloc.go
Аллоцируем неинициализированый (незануленый) слайс байт. Иногда надо если Вы знаете что всеравно сейчас перезапишите все эти байты своими, так что на инициализацию платить не хочется. Еще бывают случаи что вы предаллоцируете такой слайс, но может на полную его использовать не будете, поэтому вручную делаете инициализацию ленивой. Остальные варианты использования можете придумать сами и написать в коментарии.
2) https://github.com/cockroachdb/pebble/blob/master/internal/fastrand/fastrand.go
Прилинкованый
lock free uint32 рандом из рантайма Go.3) https://github.com/cockroachdb/pebble/blob/master/internal/bytealloc/bytealloc.go
Если Вы знаете что сейчас будете аллоцировать много маленьких байтслайсов можно предалоцировать их в одном слайсе побольше.
4) https://github.com/cockroachdb/pebble/blob/master/internal/intern/intern.go
Смотрите кто использует
sync.Pool для построения кеша интернированых строк. А я то думал что первым додумался так ипользовать Pool 😐 в https://github.com/storozhukBM/pcache5) https://github.com/cockroachdb/pebble/tree/master/internal/invariants
Как понять что тебя запустили под рейс детектором.
GitHub
pebble/internal/rawalloc/rawalloc.go at master · cockroachdb/pebble
RocksDB/LevelDB inspired key-value database in Go. Contribute to cockroachdb/pebble development by creating an account on GitHub.