oleg_log
1.77K subscribers
1.86K photos
129 videos
9 files
2.77K links
Shelter for antisocial programmers "Oleg"

halp: @olegkovalov
web: https://olegk.dev
fov: @oleg_fov
chat: @oleg_log_blabla
podcast: @generictalks
Download Telegram
M1 Macs are the new Lisp Machines. If you built your own custom hardware wouldn't you add instructions to optimize expensive operations? That's what Apple did.

Everything old is new again right? IBM, DEC, HP all built their own chips as part of their development. That got eaten alive by people like Sun and Apollo who started building workstations on commodity microprocessors, which got better and better so that even the "toy" computers (which is what the IBM PC started out as) became capable of eating their lunch, so they moved "into chips" with SPARC, PA-RISC, PowerPC which forced Intel to abortively try Itanium except that AMD kicked them in the nuts with AMD64. And that was where we lived until the computer architecture "for the masses" became the phone, with ARM chips and they started trickling down into the masses, and then Samsung and Apple started pushing advantages because they could customize their SoC chips and others couldn't, and all the while Intel kept adding specialized instruction sets to try to hold off ARM and AMD from their slipping hold on the Data center and what was left of the "laptop" business.

https://news.ycombinator.com/item?id=25473737
ОХ И ОХ. Как же меня коробит от

foo(...
s.IsActive(),
s.Id.Sha1())


вместо

foo(...
s.IsActive(),
s.Id.Sha1(),
)


Эта фича с запятой была не зря:
1. упрощаем диффы (если добавилась одна строка, то действительно это одна строка),
2. у нас не будет проблем с тем, что случайно склеились 2 выражения, как во многих языках
(3. ну ладно, и чуть упростить компилятор)

Но как же подбешивает, когда вот экономят 1 строку и долепливают скобку. Кстати гофмт еще и вложенности такому коду может добавить, тоже странная польза.
Успехи языка Fortran за год. Ни разу не встречал Фортран на гитхабе, а оказывается зря.

Язык стал ближе к людям, появился stdlib, package manager, да и сайтик миленький.

https://medium.com/modern-fortran/first-year-of-fortran-lang-d8796bfa0067

https://fortran-lang.org/

Еще порадовало колво компиляторов, скорее это исторически, но я не уверен, есть ли другой язык с таким же набором https://fortran-lang.org/compilers/
Пришла пора хвастаться. Загрузчик конфига для Go aconfig дорос до v0.10.0

- умеем читать дефолты, файлы, енв и флаги
- умеем читать файлы JSON, YAML, TOML
- для этих форматов еще и теги полей структуры генерим
- зависимости на форматы файлов опциональны (дада, в коробке 0 зависимостей в go.mod)
- файлы можно мержить
- аж 100 звездочек, старшая лига ну
- что-то там еще было
- и роскошная документация конечно же

лайк-подписка-колокольчик https://github.com/cristalhq/aconfig #hq
Токио 1.0 анонсировали

https://tokio.rs/blog/2020-12-tokio-1-0
Откопал прикольную штучку: билд и запуск докера одной командой.

docker run -it $(docker build -q .)

1. docker build понятно о чем

2. -q - Suppress the build output and print image ID on success

3. docker run полученного хеша

И мне кажется это отлично) Правда есть минус, что параметры в docker run должны идти перед -it что чууть ломает UX.

Знатоки, что там еще посоветуете из быстрых и полезных команд для Докера?
Ахахахха, там дальше на канале пояснения
Начнем с простого. Рубрика «у всех ведь было такое».
Просто бизнес понял, что крупный бизнес не уйдет с реляционных, а продать им что-то надо /тред

https://twitter.com/copyconstruct/status/1342360717135998978
Сразу скажу - не идите в коменты к предыдущему посту. Потратите время и прочитаете шум.

По поводу 4го. Если в осколках 2020 кто-то еще рассказывает, как крупный бизнес живёт в ДЦ, то заставляйте деда пить таблетки попросите человека успокоиться, мир чуть изменился.

А выводы хорошие, хотя Snowflake смотрится как нахайпленный продукт для IPO, вот только им 8 лет, а почему о них так мало слышали (моё окружение и я в пузыре?) - вопрос https://xn--r1a.website/nosingularity/656
Мне какие-то недели назад нужен был тупейший туториал "так что там в этих кубах" и вот я его нашел.

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

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://xn--r1a.website/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-циклов. Так и живём, шо.