lambdadmitry

27 ноября 2015

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

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

10:56

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

10:58

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

11:24

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

11:27

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

13:23

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

13:29

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

13:32

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

13:33

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

13:36

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

13:38

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

13:39

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

13:40

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

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

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

13:45

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

13:47

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

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

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

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

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

13:58

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

14:00

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

14:06

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

14:07

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

14:08

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

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

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

16:16

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

16:21

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

16:22

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

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

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

16:26

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

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

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

16:29

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

16:31

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

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

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

16:37

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

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

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

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

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

17:24

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

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

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

20:52

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

20:53

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

20:55

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

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

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

20:58

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

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

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

16:41

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

16:43

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

16:44

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

16:44

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

16:47

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

17:01

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

17:01

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

17:03

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

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

17:03

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

17:10

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

17:15

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

17:24

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

17:28

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

17:30

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

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

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

17:34

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

17:35

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

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

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

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

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

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

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

20:07

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

20:08

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

20:10

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

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

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

20:27

other


@ctrlok