# Пятница 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)
Even a Geek Can Speak (Joey Asher) — стрёмное название, но хорошо, коротко и доступно написано. Выступать — важно!
16:47@backendsecret Absolutely. twitter.com/pasunderhood/s…16:48
coursera.org/course/optimiz… научит решать прям большое число новых задач. Люблю такие штуки с большим «КПД знания»
16:50@backendsecret мне однажды тестовое задание дали, задача про комбинаторную оптимизацию была. Курс Discrete Optimization помог тогда )16:54
Programming Erlang: Software for a Concurrent World (Joe Armstrong) — потому что необязательно писать на энлорже, чтобы им восхищаться :)
16:55History 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:28@backendsecret ну да, давайте запретим писать программы всем у кого нет 10 лет опыт а19:28
Простите, сценарий в предыдущем твиттере неполон.
— нанимаем студентов за еду
— приходит заказчик с ТЗ
— студенты пишут соответственно
— заказчик принимает, потому что работает же
— прошёл год
— всё тормозит
— заказчик недоволен
— у вас, батенька, ХАЙЛОАД
@backendsecret А ДАВАЙТЕ ПЕРЕПИШЕМ С НУЛЯ, НА НОВЫХ frameworkname19:36
. @si_manana вот это, кстати, тоже интересный момент. Вроде бы и переписывать западло, а вроде и жить зачастую так дальше нельзя
19:37. @si_manana так что Я ДОЧ СПОЛЬСКИ, ТУТ НЕ ВСЁ ТАК ОДНОЗНАЧНО
19:37@backendsecret это о том что обучить человека выжимать 1к rps, и что бы падало раз в год - задача сложная. А программировать кому то надо19:38
. @as_Crazy скорее, это бизнес-стратегия: пусть заказчик платит за время студентов, потому что кластер на амазоне ему продать проще
19:43@backendsecret а тем временем опытные разработчики на улицах бомжуют?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 иногда, если внимательно посмотреть в код/бд, можно увидеть столько лишнего, тормозящего говна, что страшно станет. @backendsecret23:58
. @strangeqargo @xnetua да можно даже в код не смотреть, просто посмотреть на количество запросов в БД на одну страницу,лол. N+1 и всё такое
23:58# Воскресенье 34 твита
@backendsecret студенты пишут на хаскеле. Ничего не тормозит, все легко рефакторить, заказчик доволен, заплатил подрядчику.19:40
. @yelbota скорее
— студенты пишут на хаскеле
— забыли зафорсить thunk
— в продакшне течёт память, всё падает, ад, черти, сатана
Если вы вдруг не используете 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 на coursera.org/course/crypto объясняли :)20:40
@backendsecret а еще у нас есть скобочки, интероп в джаву и джаваскрипт, датомик и ом.некст.20:40
@backendsecret хочу также для андроида! Слышал что вроде jrebel для него вышел20:51
. @ruxeg да, есть ещё ReactNative и CLJS-обёртка для него, но я не пробовал :) youtube.com/watch?v=KVZ-P-…
20:51@backendsecret здесь кстати язык вообще ни при чём. Это те фишки которыми разработчики хотят продать язык подсовывая классные штуки в туллы21:03
@ilnurkhalilov @backendsecret см выше xamarin c# и вообще кросс-компиляторы давно есть, те же самые robovm. c# & java сильно ближе к системе23:05
@ruxeg @backendsecret, на них не напишешь веб-клиент. Реакт Нейтив старается быть ближе и к системе, и к разработчикам.23:05
Видимо, моё время подходит к концу :) Напоследок оставлю вам несколько хороших talk'ов:
infoq.com/presentations/… Рич, конечно, лучший
Ещё два talk'а от него:
youtube.com/watch?v=f84n5o… про то, как вообще программировать
infoq.com/presentations/… что такое вообще переменные?
youtube.com/watch?v=1bNOO3… об очередях, backpressure и всём таком
youtube.com/watch?v=449j7o… не суйте нам ваши монады куда попало!
Можно обратить внимание, что Clojure-девелоперы очень много говорят не о Clojure, в отличие от Haskell-девелоперов ;)
23:11@backendsecret один из крутейших докладов23:26
Спасибо за внимание! Зафолловить можно тут: @lambdadmitry :)
23:27# Ссылки
other
- https://www.coursera.org/course/optimization
- https://www.coursera.org/course/crypto
- https://thethemefoundry.com/blog/why-we-dont-use-a-cdn-spdy-ssl/
- https://computers-are-fast.github.io/
- http://mixpanel.com/
- https://www.nccgroup.trust/us/about-us/newsroom-and-events/blog/2009/july/if-youre-typing-the-letters-a-e-s-into-your-code-youre-doing-it-wrong/
- http://competitions.cr.yp.to/caesar-submissions.html
- https://eprint.iacr.org/2014/792.pdf
- https://www.instagram.com/p/tce_F3FVe6/
- https://www.youtube.com/watch?v=KVZ-P-ZI6W4
- http://www.youtube.com/watch?v=f84n5oFoZBc
- https://www.youtube.com/watch?v=1bNOO3xxMc0
- https://www.youtube.com/watch?v=449j7oKQVkc
- http://www.infoq.com/presentations/Simple-Made-Easy
- http://www.infoq.com/presentations/Value-Values