lambdadmitry

27 ноября 2015

# Пятница 53 твита

Привет, на связи опоздавший секретный программист, и сегодня мы поговорим о тщетности бытия и новом. Для начала опрос

13:56

Я пишу вечером на хаскеле, потому что

13:58

Надо сменить аватарку, конечно, стандартное яйцо слишком скучное

14:24

Окей, твиттор, тогда у меня есть к тебе следующий вопрос. Я не пишу на хаскеле, потому что

14:27

Прямо сейчас результаты голосования выглядят вот так и у меня есть, что сказать по этому поводу pic.twitter.com/cKQBZ1UVXj

16:23

Самое главное и особенно для тех, кто ответил «а зачем» и «типы не нужны»: напоминаю, что половина читающих это умрёт в течение 40 лет.

16:29

За эти сорок лет нужно постараться успеть сделать людей лучше, второй попытки не будет. Под этим углом споры о языках выглядят ИНТЕРЕСНО

16:32

Как бы memento mori, споря о манатках против JS, епта.

16:33

Это простое рассуждение — отличный фреймворк для разговора о технологиях и не только. Потому что следующий шаг — понять про рычаг

16:36

Каждый рабочий фабрики Форда мог сделать сам примерно ничего. Многие из нас могут сделать свой убер, в принципе, но нужны ШИРОКИЕ СКИЛЛЫ

16:38

Вот эти вот компьютеры, монадки, реакты и кобол — просто усилители того, что мы можем сделать за час. Не религия и не знак отличия

16:39

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

16:40

Но и, скажем, религиозно защищать макросы коммон лиспа (я смотрю на тебя, @lvsn) — не меньший отстой, конечно.

16:42
@backendsecret мне нравится такой план!
16:43

Под этим высокопарным соусом не могу не порекомендовать пару хороших вещей:
Prolog Programming for Artificial Intelligence (Ivan Bratko)

16:45

Even a Geek Can Speak (Joey Asher) — стрёмное название, но хорошо, коротко и доступно написано. Выступать — важно!

16:47

coursera.org/course/optimiz… научит решать прям большое число новых задач. Люблю такие штуки с большим «КПД знания»

16:50
@backendsecret мне однажды тестовое задание дали, задача про комбинаторную оптимизацию была. Курс Discrete Optimization помог тогда )
16:54

Programming Erlang: Software for a Concurrent World (Joe Armstrong) — потому что необязательно писать на энлорже, чтобы им восхищаться :)

16:55
@dcromster @backendsecret ого, автор-гей, давно не было

Лал twitter.com/corpz_/status/…

16:58

History of Western Philosophy (Bertrand Russell) — потому что без знания альтернативных вариантов «научная картина мира» это просто вера :)

17:00

От общего — к частному. AWS Beanstalk, хероку и прочие пропагандируют абсолютно порочную модель разворачивания бекенда с фермами воркеров.

17:06

Потому что аккуратно написанный бекенд способен обрабатывать что-нибудь в духе 1-10к RPS без особого кеширования на одном сервере.

17:07

Это на пару порядков выше, чем у 99% онлайн-магазинов виагры, которые мы тут все пишем. Заодно это дешевле, проще и быстрее работает. Дискас

17:08

Небольшой пруф про «быстрее работает»: thethemefoundry.com/blog/why-we-do… отказ от «быстрого» хранения ассетов на CDN ускорил всё в два раза

17:11
@backendsecret Я пишу днем на PHP, потому что
18:33

. @as_Crazy вот, скажем, мобильный банк от @alfa_bank время от времени лежит по паре часов и ничего, живут. Отказоустойчивость оверрейтед

19:16

. @as_Crazy потому что менеджеры точно так же подвержены хайпу. От каких именно фейлов страхует кластеризация? Смерть инстанса разве что

19:21

. @as_Crazy AWS-инстансы мрут достаточно редко. Пусть даже раз в год; это пара-тройка часов даунтайма в год в худшем случае. Это ничего

19:22

. @as_Crazy даунтайм от косяков девелоперов (в том числе из-за возрастающей сложности) явно чаще.

19:24
@backendsecret @alfa_bank не я придумал что магазинам виагры нужна отказоустойчивость, бизнес сам приходит и просит
19:24

Естественно, есть и другой сценарий развития событий:
— написать через коня
— в БД на один хит уходит сотня запросов
— НУЖЕН МЕМКЕШЕД ВАРНИШ

19:26

ПОСТГРЕС ТОРМОЗНОЙ НУЖЕН РИАК НОУСКЛ БИГДАТА ДАВАЙТЕ ВОЗЬМЁМ СПАРК

19:28
@backendsecret ну да, давайте запретим писать программы всем у кого нет 10 лет опыт а
19:28

. @as_Crazy я не понимаю, как можно сделать этот вывод

19:29

Простите, сценарий в предыдущем твиттере неполон.
— нанимаем студентов за еду
— приходит заказчик с ТЗ
— студенты пишут соответственно

19:31

— заказчик принимает, потому что работает же
— прошёл год
— всё тормозит
— заказчик недоволен
— у вас, батенька, ХАЙЛОАД

19:32
@backendsecret А ДАВАЙТЕ ПЕРЕПИШЕМ С НУЛЯ, НА НОВЫХ frameworkname
19:36

. @si_manana вот это, кстати, тоже интересный момент. Вроде бы и переписывать западло, а вроде и жить зачастую так дальше нельзя

19:37

. @si_manana так что Я ДОЧ СПОЛЬСКИ, ТУТ НЕ ВСЁ ТАК ОДНОЗНАЧНО

19:37
@backendsecret это о том что обучить человека выжимать 1к rps, и что бы падало раз в год - задача сложная. А программировать кому то надо
19:38

. @as_Crazy скорее, это бизнес-стратегия: пусть заказчик платит за время студентов, потому что кластер на амазоне ему продать проще

19:43
@backendsecret а тем временем опытные разработчики на улицах бомжуют?
20:24

. @as_Crazy снова не понял, что ты имеешь в виду

20:24

Гм, тут в чятике говорят, что я матерюсь. Мат ли «епта»?

20:33
@backendsecret 10k на среднестатистическом сервере? это backend на С/С++?
23:52

. @xnetua да почти на чём угодно. Рекомендую, например, computers-are-fast.github.io

23:52

. @xnetua что нужно, чтобы показать страницу среднего магазинчика? 1) распарсить HTTP-запрос 2) сделать SQL-запрос 3) собрать страницу

23:53

. @xnetua питон способен разобрать десятки тысяч запросов в секунду в одном процессе; шаблон это, фактически, конкатенация строк;

23:55

. @xnetua несложный SQL-запрос это ~миллисекунда. Воркеров и ядер много, примерно так получается 1k RPS. Язык ортогонален

23:56
@xnetua иногда, если внимательно посмотреть в код/бд, можно увидеть столько лишнего, тормозящего говна, что страшно станет. @backendsecret
23:58

. @strangeqargo @xnetua да можно даже в код не смотреть, просто посмотреть на количество запросов в БД на одну страницу,лол. N+1 и всё такое

23:58

# Воскресенье 34 твита

@backendsecret студенты пишут на хаскеле. Ничего не тормозит, все легко рефакторить, заказчик доволен, заплатил подрядчику.
19:40

. @yelbota скорее
— студенты пишут на хаскеле
— забыли зафорсить thunk
— в продакшне течёт память, всё падает, ад, черти, сатана

19:41

Если вы вдруг не используете mixpanel.com для своего стартапчика, вы делаете это зря. Они очень крутые!

19:43

В отличие от всякого бесплатного вроде яметрики и гугланалитики,посоны просто хранят эвенты и позволяют их по-разному массировать постфактум

19:44

В частности, возможность построить воронки в ретроспективе рулит и педалит

19:44

Кстати, интересно. Вопрос: знаете ли вы, чем отличается AES-GCM от AES-CBC?

19:47

Да, точно, забыл сказать: опять же, в отличие от стандартной статистики, микспанель заточена под нас, то есть под погромистов

20:01

У них есть удобное апи, чтобы пушить туда эвенты с клиента и сервера, и хорошая панель, чтобы из них делать графики. Это всё, никакой магии

20:01

Ага, опрос показывает, что это будет актуально. Почему никогда не нужно писать буквы AES в своём коде: nccgroup.trust/us/about-us/ne…

20:03

Если всё-таки очень хочется: coursera.org/course/crypto

Там нет никакой магии, но понять, что происходит, таки нужно.

20:03

О, кто-то ответил «да»! Тогда поделюсь недавней радостью: CAESAR движется вперёд competitions.cr.yp.to/caesar-submiss… , скоро у нас будет хороший AEAD

20:10

Овервью кандидатов в первом раунде можно найти тут eprint.iacr.org/2014/792.pdf правда, тут не отмечены прошедшие во второй

20:15

Что-то я мало вас развлекал на этой неделе, да. Простите :)

20:24

Продолжая тему «если не писать, то хотя бы поинтересоваться»: у ClojureScript на сегодня чуть ли не более адекватная экосистема, чем у JS.

20:28

Мы тут, конечно, backend-разработчики, но тем и ценен CLJS, что можно на нём писать, не сходя с ума от _интересных особенностей_ JS.

20:30

Ну и то, что «в комплекте» с CLJS идёт знание просто Clojure, добавляет няшности платформе. Рекомандасики!

20:31
@backendsecret а для дилетанта, из за немутабельности скорость сильно падает?
20:34

. @ruxeg скажем так, обычно незаметно на фоне того, что умудряются нафигачить в библиотеках люди.

20:34

. @ruxeg компьютеры и JS-движки вообще контринтуитивно быстрые сегодня. Ну и всегда можно использовать примитивы, если очень надо.

20:35

Насчёт тулчейна: вот примерно такая магия работает прям очень легко (с Boot) instagram.com/p/tce_F3FVe6/

20:40
@backendsecret а еще у нас есть скобочки, интероп в джаву и джаваскрипт, датомик и ом.некст.
20:40
@backendsecret хочу также для андроида! Слышал что вроде jrebel для него вышел
20:51

. @ruxeg да, есть ещё ReactNative и CLJS-обёртка для него, но я не пробовал :) youtube.com/watch?v=KVZ-P-…

20:51
@backendsecret здесь кстати язык вообще ни при чём. Это те фишки которыми разработчики хотят продать язык подсовывая классные штуки в туллы
21:03

. @ruxeg я поэтому и сказал про экосистему :)

21:03
@ilnurkhalilov @backendsecret см выше xamarin c# и вообще кросс-компиляторы давно есть, те же самые robovm. c# & java сильно ближе к системе
23:05
@ruxeg @backendsecret, на них не напишешь веб-клиент. Реакт Нейтив старается быть ближе и к системе, и к разработчикам.
23:05

Видимо, моё время подходит к концу :) Напоследок оставлю вам несколько хороших talk'ов:
infoq.com/presentations/… Рич, конечно, лучший

23:07

Ещё два talk'а от него:
youtube.com/watch?v=f84n5o… про то, как вообще программировать
infoq.com/presentations/… что такое вообще переменные?

23:08

youtube.com/watch?v=1bNOO3… об очередях, backpressure и всём таком
youtube.com/watch?v=449j7o… не суйте нам ваши монады куда попало!

23:10

Можно обратить внимание, что Clojure-девелоперы очень много говорят не о Clojure, в отличие от Haskell-девелоперов ;)

23:11
@backendsecret один из крутейших докладов
23:26

Спасибо за внимание! Зафолловить можно тут: @lambdadmitry :)

23:27

other


@ctrlok