oleg_log
1.75K subscribers
1.87K photos
131 videos
9 files
2.81K links
Shelter for antisocial programmers "Oleg"

halp: @olegkovalov
web: https://olegk.dev
fov: @oleg_fov
chat: @oleg_log_blabla
podcast: @generictalks
Download Telegram
Fifty Years of RFCs

This RFC marks the fiftieth anniversary for the RFC Series. It includes both retrospective material from individuals involved at key inflection points as well as a review of the current state of affairs. It concludes with thoughts on possibilities for the next fifty years for the Series. This document updates the perspectives offered in RFCs 2555 and 5540.

https://tools.ietf.org/html/rfc8700
Хочется отдельно упомянуть SEDA (staged event-driven architecture http://sosp.org/2001/papers/welsh.pdf) и то, как не много требуется, чтобы начать использовать свои ресурсы оптимально.

Когда Богдан в одном чате упомянул эту статью, мне сразу вспомнились задачи оптимизации (целочисленное/линейное прогр, которое мало кому заходило в универе).

Собственно найти баланс для своей задачи, точнее для каждого этапа и бац - вы попали в золотую середину. Рандомно пихать тредпуллы не самый лучший подход (кстати, у нас частая оптимизация это фикс размера тредпулла для жава сервера, что намекает).
Forwarded from Generic Talks (Oleg Kovalov)
Generic talks 0006 с Богданом и Олегом.

https://soundcloud.com/generictalks/0006-podozhdyom-v-ocheredi

00:00 - Начнём с очереди
10:00 - Capacity planing, metrics
23:25 - Когда работать асинхронно, как правильно? Архитектура SEDA
42:28 -Твит Кармака о Python, C++, C# и Java и что уже железо
47:40 - Не С++ единым, Rust no_std
56:28 - И снова вернёмся к очередям
1:02:05 - Классический race condition, о котором не все знают.
О! еще о наболевшем. Когда приходят в лс/чат/коменты к подкасту и говорят, что слишком затянут эпизод на ютюбе, слишком короткий подкаст, мало мяса, много мяса, а я мимокрокодил.

Это немного понятно, но все еще странно, как некоторые не понимают разницу между "ок, ты мне платишь и я тебе что-то должен" и "мне интересно это сделать в свободное время и поделиться этим".

Разница между "потрачу 6ч выходного дня/вечера ради 1ч контента с 0 отдачей" vs "потрачу час(обычно 2 :) ради 1ч контента с такой же отдачей" еще существенна.

Фидбек это приятно и полезно, даже если он неприятный, указывающий на косяки. Но для этого он должен быть аргументирован 👌
А вы знали, что в #go неправильно вызывать t.Fatal в горутине?

Начиная с 1.15 это будет в vet включено. Возможно это хорошая вещь, которую можно затащить в go-critic 🤔

Баг аж с 2013 https://github.com/golang/go/issues/5746
Во вторник мне не посчастливилось зайти в Декатлон и купить шмот для гор по бонусу. Кроме упавшей кассы на винде с вечным рестартом приложения и циклическим падением, пришлось увидеть их CRM.

Эта штуковина постоянно кидала 401ю ошибку 4 раза подряд для сотрудника, после чего пропускала дальше (не шучу, из-за последующих проблем в сабмите формы, приходилось перелогиниваться).

И тут меня накрыло: этож сколько софта написано в мире для автоматизации рутины, сколько человеко-часов убито над этим, сколько денег потрачено на все вместе (без поддержки) и в итоге ничего не работает!

Вроде Дейкстра говорил: программисты должны были уменьшить колво работы для людей, а в итоге создали больше рабочих мест себе.
AbstractResourceBasedMessageSource

Но я ведь просто хотел поменять дефолтный язык в Spring....
Самое забавное, что это еще не начало и не конец.

Есть 1 стд класс для этого абстрактного ресурса ReloadableResourceBundleMessageSource

А сам он основан на другом
public abstract class AbstractMessageSource extends MessageSourceSupport implements HierarchicalMessageSource
такс-такс, резервируйте даты, будем покорять
ХАКАТОН ПРОФУНКТОРА 17-19 ЯНВАРЯ

Словарь определений:
Команда — от 1 до 5 человек пилящих один проект, из них один капитан
Капитан — автор идеи, презентует проект на демо
Чекпоинт — команда сабмитит текущий прогресс судьям
Судьи — админы профунктора
Проект — что угодно что можно задеплоить или по тегам: telegram, memes, profunctor api, ML, dev tools, whatever

Формат:
17-ого (ПТ) в 21-00 МСК дедлайн заявок команд, LIVE где пересчитываем тимы и стартуем
18-ого (СБ) в 15-00 МСК первый чекпоинт
19-ого (ВС) в 12-00 МСК второй чекпоинт
19-ого в 20-00 Финиш, публикуем ссылки на проекты, LIVE где капитаны презентуют проекты
22-ого судьи совещаются и объявляют победителей

Как подать заявку (идею) ?
Через бота @libmustdie_hackaton_bot

Где?
Все онлайн и ремоут. Команды сами координируют действия и пользуются удобными тулами.

Как найти тиму?
Зайти в чат и выбрать идеи из запиненного поста: https://xn--r1a.website/joinchat/DWka6hBjhmayFl3g0_wv9A

Какие призы?
Уникальные.

Сode of Conduct:
В случае неадеквата: БАН БАН БАН

Еще вопросы:
https://xn--r1a.website/joinchat/DWka6hBjhmayFl3g0_wv9A
Опубликовали интересный язык Beef (мясцо).

С целью быть очень близкими к железу, безопасным, и все вот это популярное. Как минимум стоит присмотреться, минимум автоматизации из того, что заметил, все прописывается ручками.

https://www.beeflang.org/

Кстати автор один из разрабов Plants vs Zombies (co-founder of PopCap Games)
В VSCode-python возможно нашли троян. Все началось с того, что мне написал наш отдел безопасности (хоть я и на маке). Посмотрим что это, мы хоть не одни.

https://github.com/microsoft/vscode-python/issues/9474

UPD Умные люди подкинули ссыль на код, false positive, но все же https://github.com/fabioz/PyDev.Debugger/blob/master/pydevd_attach_to_process/windows/inject_dll.cpp
Я до вторника отпаду из сети, поэтому докину еще одну либу на #go В этот раз OAuth2. Если вы сталкивались с авторизацией в Go, то кроме офиц пакета ничего толком нет.

Ну правда, оно работает, все круто, да, нет модулей, код запутан, ну и что? Но вот я с этим просто не согласен. Поэтому опять 🚴‍♂️

Апи просто как палка, все легко читается без магии интернал папки. Есть вопрос многопоточного обновления токена (просто мютекс на хттп-запрос не хочется, а что именно мне понравится - хз). И еще 1 полезная фича, которую доделаю позже.

В небольшом тестовом проекте работает (как логин гитхаба/гитлаба/битбакета), либа с бОльшим количеством клиентов (аля goth, которые тоже плохо читаем) будет где-то в феврале. ВНЕЗАПНО сервисы не могут едино реализовать/трактовать протокол и приходится чуть поплясать, поэтому я еще играюсь с апи для пользователя либы.

Опять попрощу звездочек на погоны репу https://github.com/cristalhq/oauth2 #hq
До хакатона неделя! Уже есть с десяток проектов в которые можно вписаться, причем часть из них очень даже zaebis! Что не менее важно есть и те, кто пока не в тиме и, возможно, именно ваша идея придется им по душе.

Милости просим в чат: https://xn--r1a.website/joinchat/DWka6hBjhmayFl3g0_wv9A

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

И еще… снимаем шляпу перед всеми, кто выступил инфопартнёрами затеи, пошерив анонс. Лучи респекта в направлении таких каналов как:

@lukanat
@archivechan
@neuronach
@kiriharu
@count0_digest
@about_your_mom
@young_devops_notes
@tech_b0lt_Genona
@punitive_cooking
@gophernews
@nosingularity
@pnegodyay
@nrjwolf_live
@sv9t_channel
@cyberhermitage
@kuska_channel

И особенно big boyz:
@shitty_android
@RussianHackers_Channel
@catops
@devopslibrary
@we_use_js
@it_virologist
oleg_log
разметка поехала, класс, там так должно было быть: Diff(want, have) Diff(have, want)
Подкинули ссылку по теме
diff(want, got) vs diff(got, want) в контексте #go

https://github.com/golang/go/wiki/CodeReviewComments#useful-test-failures

Тлдр: "Note that the order here is actual != expected, and the message uses that order too. Some test frameworks encourage writing these backwards: 0 != x, "expected 0, got x", and so on. Go does not."

Спасибо Денису
∏ρ؃uñçτØρ Øπτµç∑ | 👁‍🗨››››
Photo
Если что, Дэн это автор фреймворка React для фронта, он что-то там написал про код ревью. Не читал еще, но вроде там то, что приходит прост с опытом и спокойствием в голове.

Upd: не автор, а контриб, но автор Redux. Спасибо метким одминам @defront @libmustdie <3
Be very careful when writing example code. This is the code everyone will copy. — Reilly Grant

Вот поэтому пример из ридми должен быть оформлен как тест (example test) и гоняться на CI.

Да, я о #go по большей части, из-за явного определения example tests.