Size: a a a

2021 April 12
Блог*
#prog #rust #abnormalprogramming

Умные указатели с семантикой std::unique_ptr, который хранит объекты в виде NFT-токенов.

Why?

* Biggest issue facing $125 billion security industry: Memory safety.
   * "~70% of the vulnerabilities addressed through a security update each year continue to be memory safety issues." - Microsoft Security Response Center
* The world's largest codebases are written in C++
   * Browsers, operating systems, databases, financial systems
* C++ memory management is hard to understand, opaque, and not secure
* As we all know, adding blockchain to a problem automatically makes it simple, transparent, and cryptographically secure.
* Thus, we extend std::unique_ptr, the most popular C++ smart pointer used for memory management, with blockchain support
* Non-Fungible Tokens and std::unique_ptr have the exact same semantics:
   * each token/object is unique, not fungible with other tokens/objects
   * each token/object is owned by one owner/unique_ptr
   * others may view the NFT/use the object, but only the owner can transfer/destroy the NFT/object.
   * absolutely no protection against just pirating the image represented by the NFT/copying the pointer out of the unique_ptr
* Written in Rust for the hipster cred.
* Made with 💖 by a Blockchain Expert who wrote like 100 lines of Solidity in 2017 (which didn't work)

github.com/zhuowei/nft_ptr
источник
2021 April 13
Блог*
источник
Блог*
#prog #rust

Библиотека pretty_sure — макрос sure, являющийся обобщением unwrap{, _or} для произвольных паттернов.
источник
Блог*
#art

Не люблю просто картинки репостить, но вы пасмарите как клёво водичка нарисована
источник
Блог*
источник
Блог*
На меня навесили спам-лимит. На этот раз — на три дня.

Кто пожаловался — разумеется, не ясно. За что? А фиг его знает.

Паша, какого хрена.
источник
2021 April 14
Блог*
#prog #rust #amazingopensource

У Deno вышла новая версия, 1.9. Сам Deno мне мало интересен, но в заметках о релизе упомянули serde_v8 — библиотеку для (де)сериализации между значениями в коде на Rust и V8
источник
Блог*
#prog #python #suckassstory

Как свалить интерпретатор Python с SyntaxError? Один из способов — это просто написать достаточно длинную строку юникодных символов. Если строка не влезает в буфер фиксированного размера, используемый в парсере, она может быть обрезана внутри мультибайтового символа, что позднее вызовет ошибку из-за невалидной Unicode-строки.

Баг заведён в ноябре 2019 и до сих пор не разрешён.
источник
Блог*
Обзор конференции SIGBOVIK-2021 от Жалких низкочастотников
Telegram
Жалкие низкочастотники
Не так давно прошёл SIGBOVIK-2021 (пародийная научная конференция в Carnegie Mellon University, о которой я уже писал и даже как-то публиковался на ней). Труды можно почитать тут, а вот здесь есть twitch-стрим с докладов. В этом году году, как обычно, среди кучи стёба и треша есть несколько вполне интересных штук.

Из содержательных моё внимание привлекли:
* Soliterrible: Deterministically Unplayable Solitaire — в пасьянсе Косынка изредка бывают раздачи, в которых игрок не может сделать ни одного хода. Авторы предлагают алгоритм нахождения таких комбинаций, а также реализовали приложение, в котором все раздачи именно такие.
* Lowestcase and Uppestcase letters: Advances in Derp Learning — автор использует большую базу бесплатных шрифтов для обучения нейросети на реализацию двух функций: lowercase (сделать из большой буквы маленькую) и uppercase (наоборот). Попутно используется приём, очень напоминающий back-translation в машинном переводе с невыровненными корпусами, это позволяет пытаться научиться делать uppercase…
источник
Блог*
– У нас на работе Кафка
– Apache?
– Франц
источник
Блог*
#prog #haskell

Товарищ Мёртвопищ написал небольшую библиотеку для облегчения кастомизации (де)сериализации, реализованных при помощи тайпклассов Binary (того, который базируется на Generic).

github.com/0xd34df00d/binary-generic-combinators
источник
2021 April 15
Блог*
#prog #python

Про недостатки питона в проде

t.me/partially_unsupervised/95
Telegram
partially unsupervised
Прикручиваю к продакшену новый пайплайн на замену старому. Значит, в т.ч. нужно обновить API в нескольких компонентах на разных стеках - Python, Scala, TypeScript. И в таком не ML-специфичном коде недостатки питона ощущаются сильнее, чем при написании ML-пайплайнов.

Например, без вывода типов нужно быть гораздо внимательнее в обработке ошибок: там где Scala ругнется на этапе компиляции про match is not exhaustive, в Python коде легко пропустить какую-нибудь валидацию (особенно, если сигнатура функции в духе def fn(Optional[CoolStuff])).

Или, например, всегда можно немного пострадать с передачей аргументов из-за отсутствия возможности явно передавать ссылку. В написании тестов часто нужно что-то запатчить. Напишем для этого такой код и неприятно удивимся:

In [1]: from unittest.mock import patch
  ...:
  ...: config = {'foo': 'bar'}
  ...: other_config = {'foo': 42}
  ...:
  ...: class Thing:
  ...:     def __init__(self, config):
  ...:         self.config = config
  ...:
  ...:     def __call__(self):…
источник
2021 April 16
Блог*
#politota

Не люблю алармизм, но это — действительно уже ни в какие ворота. Особенно смешны (точнее, были бы смешны, если б не было страшно) обвинения в организации революции.
источник
Блог*
Вектор, куда мы движемся, был понятен давно. Но принципиальной границей, когда мы на многие годы погружаемся во мрак, вполне можно считать эту новость.

https://zona.media/news/2021/04/16/fbk
источник
Блог*
В прошедший вторник (13 апреля) мои коллеги устроили совещание на свежем воздухе. Задумали писать новую СУБД с нуля на расте, и совещание было посвящено высокоуровневым вопросам её дизайна. Помимо всего прочего, речь зашла и о выборе названия. Присутствующие предлагали разные варианты, но ни один их них не был настолько хорош, чтобы понравиться всем участникам. В какой-то момент я прервал поток творческого изобилия и заявил: так и так, если вы не выберете название прямо сейчас, то, вне зависимости от того, как вы назовёте это потом, я буду называть БД "Форель".

...Короче, теперь у нас в корпоративном гитлабе есть подгруппа проектов "ФОРЕЛЬ". Именно так, капсом. #трудовыебудни

P. S.: на логотипе, разумеется, турборыба.
источник
2021 April 17
Блог*
В честь того, что нашёл прекрасную библиотеку PEmbroider под язык Processing для создания картинок, хорошо имитирующих вышивку (см картинку), сделаю ещё и подборку прочих ссылок на нёрдовую графику:

* ASCII-графика из 1969 года и статья про неё в журнале Leonardo;
* Интересная статья про методы dithering — разные способы передать полутона, используя только два цвета пикселей;
* Генерация паттернов Тьюринга на WebGL-шейдерах;
* Безумный интерактивный ASCII-арт редактор с кучей примеров;
* Проект по генерации ambigrammatic faces — лиц, которые распознаются в прямом и в перевёрнутом виде;
* Консольная утилита для генерации ASCII-бонсай деревьев.

UPD: Бдительные читатели пишут, что PEmbroider на самом деле используется для того, чтобы генерировать выкройки под автоматизированные швейные машины.
источник
2021 April 18
Блог*
#prog #rust #meme

Source
источник
Блог*
#prog #idris #article

Phantom types are a well-known compile-time tool to ensure that illegal actions (such as attempting to write in a read-only file) are unrepresentable. In this blog post we introduce poltergeist types: phantom types whose parameters may still knock around at runtime.

gallais.github.io/blog/poltergeist-types

(thanks @randomstuffilike)
источник
2021 April 19
Блог*
#prog #rust

k2-tree — коллекция для эффективного хранения разреженных битовых матриц.

github.com/ggabi/k2_tree
источник
Блог*
источник