☕️ Мерлин заваривает τσάι 🐌
1.11K subscribers
3.52K photos
64 videos
94 files
2.42K links
💊
Download Telegram
Реймаршинг движок на чистом Fennel (это такой лисп, транслируется в lua) и Love движке

Офигительная с технической точки зрения реализация, жаль только из-за зверски низкой производительности представляет исключительно академический интерес.

#absoluteMadman
https://andreyorst.gitlab.io/posts/2020-10-15-raymarching-with-fennel-and-love/
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 {
...
}
}
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
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
Прилинкованый 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/pcache

5) https://github.com/cockroachdb/pebble/tree/master/internal/invariants
Как понять что тебя запустили под рейс детектором.
#TIL в русскоязычной википедии есть интерактивная схема московского метро. Вроде ничего особенного, но потыкать на станции и линии приятно

https://ru.wikipedia.org/wiki/Шаблон:Интерактивная_схема_Московского_метрополитена
Выкатили превью нового фронта для индекса гошных модулей

https://beta.pkg.go.dev/
🎙️Скорее всего, через 10 минут (22:30 MSK) будет прямой эфир подкаста. Также можно почитать темы слушателей и пообщаться в gitter-чате
Эволюция СМИ:
Газеты - рассказывают о событиях с задержкой в день.
ТВ - рассказывают о событиях с задержкой в нескольких часов.
Интернет - рассказывает о событиях моментально.
Сатирические издания - рассказывают о событиях до самих событий.

https://twitter.com/chilikto/status/1322840918332944389
Forwarded from oleg_log (Oleg Kovalov)
Сегодня в Generic Talks (https://xn--r1a.website/generictalks/163) обсудили статью об отменах операций (timeout, deadline, cancel), которую я вспомнил из-за одного выпуска Good-Bad reviewer (https://xn--r1a.website/good_bad_reviewer/58).

Так вот, советую почитать. Довольно полезно и интересно описано о том, почему каждый из способов может быть неочень. Еще там рассказывают про либку на питоне Trio от автора, но теория применима ко всему и всем.

Ссыль https://vorpus.org/blog/timeouts-and-cancellation-for-humans/
Прошло несколько месяцев с публикации прошлой версии подборки экзотических применений SQL, поэтому не грех опубликовать ее еще раз, добавив еще один пункт.

Не все знают, но SQL можно использовать не только для работы с данными в БД.
Есть возможность манипулировать данными из командной строки.
Зачем такое может понадобиться?

1) Парсинг JSON-логов
https://github.com/avz/jl-sql
Можно придумать много хороших usecases. Я писал про эту тулзу в статье про тестирование логов - https://xn--r1a.website/nosingularity/198

> cat data.json | jl-sql 'SELECT key, SUM(value) AS sum, COUNT(*) AS count GROUP BY key'

2) Работа с параметрами операционной системы
https://osquery.io/
Совершенно безумная и красивая идея. 257 источников данных!

> osqueryi --json "SELECT * FROM mounts m, disk_encryption d WHERE m.device_alias = d.name AND d.encrypted = 0;"

3) Работа с изображениями
https://github.com/escherize/img_sql/

> ./img_sql.py -i samples/matrix.jpg -o samples/matrix_out.jpg -s 'update pixels set r = g, b = r, g = b where x > 700'
Осталось написать транспайлер в GLSL и будет win :)

4) SQL для MongoDB, DynamoDB, Kafka, S3
Если не хочется работать с монгой, но очень нужно, то можно выкрутиться так
https://rockset.com/solutions/mongodb/

Например, отлично зайдет для использования в тулзах для визуализации, таких как Grafana.
Насколько это имеет смысл для работы с базами из приложения, сказать сложно.

5) SQL для запросов по git репозиториям
https://github.com/augmentable-dev/gitqlite (переименовали в askgit)

> -- how many commits have been authored by user@email.com?
> SELECT count(*) FROM commits WHERE author_email = 'user@email.com'

6) Играем музыку оО
https://relational-pipes.globalcode.info/v_0/examples-jack-midi-generating-1.xhtml
Forwarded from Telegram Info (Antonio Marreti 🚩)
Поддержка собственного сервера для Bot API

Вместе
с обновлением Bot API до версии 5.0 появилась возможность запускать свой собственный сервер Bot API. После поднятия, ваш бот будет отправлять запросы на свой сервер вместо api.telegram.org.

После переключения бот сможет:
— Скачивайте файлы без ограничения размера.
— Загружать файлы размером до 2000 МБ.
— Загружать файлы, с сервера или по прямой ссылке на файл.
— Возможность использовать любой HTTP URL-адрес, локальный IP-адрес и порт для вебхуков.
— Возможность установить max_webhook_connections до 100000.
— Возможность получить локальный путь как значение поля file_path без необходимости загружать файл после запроса getFile.

Исходный код сервера Telegram Bot API распространяется по лицензии Boost Software License.

#BotAPI
Мне вот всегда было интересно, как считают расход энергии на банковские транзакции.

Как оценить энергокредит на криптовалюты — примерно понятно: мы знаем количество вычислений, количество пользователей и эффективность современных компьютеров и ASIC.

А вот как оценить банковскую сферу? Где провести черту в потребителях энергии? Например, здание банка, все его служащие, банкоматы — можно ли считать их частями механизма транзакций в банке? Если да, то я сильно сомневаюсь, что банковская система сильно выгоднее по энергии.

Несмотря скептическое отношение к статье, я всё ещё считаю, что криптовалюты сейчас — это скорее исследовательские проекты, haskell от мира финансовых инструментов. Да, в них можно вкладываться, если есть лишние деньги, но гораздо интереснее отрабатывать на них различные экзотические концепции экономических механизмов.

https://xn--r1a.website/oleg_log/3808