oleg_log – Telegram
oleg_log
1.78K subscribers
1.85K photos
129 videos
9 files
2.76K links
Shelter for antisocial programmers "Oleg"

halp: @olegkovalov
web: https://olegk.dev
fov: @oleg_fov
chat: @oleg_log_blabla
podcast: @generictalks

about: https://news.1rj.ru/str/oleg_log/3200
Download Telegram
Мне какие-то недели назад нужен был тупейший туториал "так что там в этих кубах" и вот я его нашел.

Схема выше, наверное, лучшее описание что зачем и как. Вместо тысячи линий в ямле и документации.

https://nikhiljha.com/posts/kubernetes-intro/
Какие интересноси про GPT-2(и скорее 3) запостили.

This paper demonstrates that in such settings, an adversary can perform a training data extraction attack to recover individual training examples by querying the language model.
We demonstrate our attack on GPT-2, a language model trained on scrapes of the public Internet, and are able to extract hundreds of verbatim text sequences from the model's training data. These extracted examples include (public) personally identifiable information (names, phone numbers, and email addresses), IRC conversations, code, and 128-bit UUIDs.

Мне кажется этот вопрос поднимался раньше, мол мы же для МЛ сетов собираем кучу данных, и в эти данные могут приватные вещи, соотв есть ненулевой шанс, что модель из выдаст обратно.

Вроде бы и проблема теоретическая, но уже с практическими примерами. Интересно смотреть за темой security в AI/ML.

пост для потребления https://bair.berkeley.edu/blog/2020/12/20/lmmem/

пейпер https://arxiv.org/abs/2012.07805
Проекту только полгода, а какие планы-то. Все конечно ощущается unsafe костылями, но оно того стоит. Не знаю как вам, а мне идея крайне нравится.

Cosmopolitan makes C a build-once run-anywhere language, similar to Java, except it doesn't require interpreters or virtual machines be installed beforehand.

Cosmo provides the same portability benefits as high-level languages like Go and Rust, but it doesn't invent a new language and you won't need to configure a CI system to build separate binaries for each operating system.

What Cosmopolitan focuses on is fixing C by decoupling it from platforms, so it can be pleasant to use for writing small unix programs that are easily distributed to a much broader audience.

Compared with glibc, you should expect Cosmopolitan to be almost as fast, but with an order of a magnitude tinier code size. Compared with Musl or Newlib, you can expect that Cosmopolitan will generally go much faster, while having roughly the same code size, if not tinier.

https://justine.lol/cosmopolitan/index.html
ахахахахаха
подведу и я "итоги"

@tgstat_bot 2020 <channel name>

и популярный пост https://news.1rj.ru/str/oleg_log/2967
Красивая история о том, как переход на бинарный формат данных, дал приложеню на тел чуть больше воздуха.

Итого:
1. берем жсон на 15мб - декодим 20сек на Galaxy S4 (чтобы там не было внутри)
2. берем FlatBuffers на 4мб с теми же данными - получаем 0.5сек.
3. ...
4. ПРОФИТ

Тут скорее отдельная заслуга FT, что они пряменько лежат в памяти. В любом случае, JSON хоть и везде, но наверное после 100кб файла/запроса/структуры стоит начать думать про что-то более бинарное, как следствие оптимальное.

https://blog.extrawurst.org/gamedev/unity/programming/rust/2020/12/26/unity-flatbuffers.html

Такие посты заставляют задуматься, сколько же в мире неоптимальных решений, сколько потраченных петабайт RAM-а и спаленных деревень cpu-циклов. Так и живём, шо.
ммм, кружечка приехала.
дада, у меня хороший маникюр.
поделитесь какой у вас свэг крутой был?
Любопытный, но довольно бесполезный пример полиморфизма в Go

В гошечке есть несколько способов писать полиморфные функции:

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 любую кастуемую структуру.

К сожалению, это не слишком полезно — наверное только если вы не хотите делать пачку геттеров и у вас есть пачка одинаковых структур разных типов.
☕️ Мерлин заваривает τσάι 🐌
Любопытный, но довольно бесполезный пример полиморфизма в Go В гошечке есть несколько способов писать полиморфные функции: 1. интерфейсы; 2. тайп свитчи и тайп кастинг интерфейсов; 3. рефлексия; Недавно мне понял, что есть чётвёртый подход, который стал…
Чуть поясним. Прикол здесь в самом алиасе, для передачи Cat/Dog в printName их не надо явно приводить к named.

И на этом все. Как можете догадаться, если бы у Cat/Dog было еще 1 поле, то ничего бы не вышло, надо чтобы поля совпадали.

https://play.golang.org/p/xpyO7pE6ASv (уберите = и будем вам счастье)
не работа, а мечта
о да, ода уходящего года...
C + плюшки = Zig. Ну простой же как палка.

https://gist.github.com/ityonemo/769532c2017ed9143f3571e5ac104e50

Воодушевлено длиннопастой про Rust https://fasterthanli.me/articles/a-half-hour-to-learn-rust
(A half-hour to learn Rust, Jan 27, 2020 · 51 minute read. Нуда)
Вы ведь знаете, что в го надо аккуратно с переменными из for-range обращаться, да?

Наверное каждый хоть раз обжигался о
for k, v := range foo {
go func() { run(k,v) }()
}

или что-то похожее, где "захватывается" значение в кложуре. Есть даже пропозал, что давайте от этого уйдём (в го2, когдатотам) https://github.com/golang/go/issues/20733

Там забавный комент добавили, может слышали, Let's Encrypt недавно откатили 3М+ сертификатов. Угадайте из-за чего)))

https://github.com/letsencrypt/boulder/pull/4690/files#diff-d02067a9f9a2bed1110fd4e98641c2effcf5d1d5f18461e35d6ac1535f6e2c21L1411-R1414