Хотите дальше читать devby? 📝
Support us

Неделя за 10 ссылок: монады, да не те

Оставить комментарий
Неделя за 10 ссылок: монады, да не те

В нашем очередном недельном обзоре послушаем рассказ представителя Google в Беларуси о MBA, поговорим о правильном кешировании и девяти главных антипаттернах, о плохих Ruby и Python, а также ответим на главный вопрос: почему люди становятся программистами?

Читать далее

Рисунок: Андрей Янкович

1. Google Belarus

Свежий рассказ о программе IMBA от Натальи Коробко, которая после окончания учёбы основала стартап в Азербайджане, а теперь развивает сервисы Google в Беларуси.

В Google я ощущаю себя так, будто попала на второй MBA. Параллелей очень много — уникальная среда, особенные люди, огромный поток информации, высокие ожидания и бешеный ритм. У меня была цель снова оказаться в таком мире. Сейчас моё большое преимущество в том, что я успешнее могу управлять собой и лучше понимаю коллег.

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

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

Окей, Беларусь вполне можно сопоставить с Польшей, так вот для сравнения: в Польше у Google три полноценных офиса — Варшава, Краков, Вроцлав. «Менеджер по Беларуси» — это просто рядовой сотрудник варшавского офиса Google, что лишний раз подтверждает сомнительность претензий Беларуси на роль «восточноевропейского лидера ИТ».

2. Белорусы качают права с WMB

Довольно знаковый инцидент в Минске: «Почему я должен платить за идентификацию?». Минчанин вступил в спор с «Технобанком» по поводу платы за аттестат WebMoney. И выиграл его!?

В письмах из «Технобанка» я так и не смог получить ответ на вопрос: кто уполномочил ОАО «Технобанк» взимать плату при проведении идентификации согласно декрету президента от 28.12.2014 № 6, постановлению Правления Нацбанка Республики Беларусь от 26.11.2003 № 201, закону Республики Беларусь от 30.06.2014 № 165-З. Мне кажется, что руководством банка допущено произвольное толкование и применение законодательных актов.

Информация о требовании именно системы WebMoney к владельцам кошельков о прохождении идентификации и получении начального или персонального аттестата, которая также передавалась мне в письме из банка, — неверная. Электронный кошелек, имеющийся у меня в WMZ, до настоящего времени функционирует. Для проведения платежей WebMoney, согласно требованиям системы, достаточно и формального аттестата, а требование увеличить уровень аттестата до начального — это требование ОАО «Технобанк», т. е. банк навязывает дополнительные услуги клиенту.

В итоге ему вроде бы предложили бесплатный аттестат «абы чтоб отстал».

Тем не менее, «Технобанк» обещает скоро официально разъяснить свою позицию — за что у пользователей Webmoney деньги вообще берут при аттестации? (Очевидно, что сходу ответить на этот интересный вопрос пока не получилось).

В Украине, кстати, после итогов разбора прошлогодних тёрок по временной приостановке работы Webmoney начали процедуру смены гаранта WMU на нового.

3. Anti-Patterns Every Programmer Should Be Aware Of

Вернемся к делам программистским.

Хорошая порция критики к уже священным методологиям — 9 анти-паттернов, которые нужно понимать и знать. Очень много умных мыслей. Рекомендую — но всё на языке «потенциального противника».

4. Почему сложно сделать правильное кэширование?

Читать вот здесь:

Вы, наверняка, знаете, как это бывает. Ой, у нас тут такие тяжёлые вычисления / так долго тянутся данные из базы. А давайте просто прикрутим кэшик. Что может пойти не так? Так вот, опыт показывает, что пойти не так может очень и очень многое.

Классический случай, когда комментарий к статье ценнее самого материала (приводится в сокращении):

Я думаю что изначальный план иметь такую концепцию, как кеш в системе, построенной на akka, фундаментально неверное решение.

Идиоматический для akka путь работы с большим набором данных, которые надо шардировать (для size, geographic скалабилити), является Distributed Domain Driven Design. Здесь юнитом становится PersistentActor (Aggregate root в терминологии DDD). Например, пользователь со своим внутренним состоянием. Такой актор получает команды и записывает эвенты в свой журнал БД и только после этого изменяет свое состояние в памяти. Внутреннее состояние каждого актора воссоздается (при старте/рестарте) путём проигрывания последовательности евентов, сохраненных этим актором ранее. Для запросов нужно иметь отдельный View layer.

В итоге у нас strong consistency внутри Aggregate root и eventual между. Нужно моделировать свой домен под эти условия. Сейчас в akka есть механизмы для запуска множества таких PersistentActor в кластере, разбивая их на шарды. В распределенном режиме, конечно, появляется необходимость кое-где иметь at-least-once + idempotant получатель и применять Saga Pattern.

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

5. Загадка от Intel

На прошлой неделе Intel в своём Twitter как бы между прочим запостил снимок экрана монитора, на котором читатели увидели очень необычный психоделический код, понять который можно было бы разве через вывих мозга. Вместо того, чтобы мирно пройти мимо и продолжить заниматься повседневными служебными делами, наш_человек не смог его развидеть, и решил проникнуть в загадочный потусторонний смысл увиденного в виде слегка жутковатых машинных инструкций.

Для всех любителей Python, желающих познать насколько глубока кроличья норка, — читаем вот здесь отчет об эзотерических глубинах познанного:

Имеется страшилка, обладающая невероятным количеством подчёркиваний, лямбд и чрезвычайно редкой функцией __import__. Что за зверь и что он делает?

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

Если кому-то это покажется простой задачкой, переходим на следующий уровень: задачка 1, задачка 2.

6. Не совсем крутые Ruby и Python

Читать вот здесь:

Помню, как два года назад столкнулся с Руби. Язык показался прекрасным, всё в нем понятно и просто, нет ничего лишнего, нет ничего не очевидного. Шло время, навыки росли, времена менялись и вот уже Руби не кажется мне таким привлекательным как раньше: медленно работает, да и большие проекты поддерживать тяжело. Почему?

Да потому что большие проекты и Руби — это вообще вещи несовместимые. Ты видишь скорость выполнения на других языках и хочется плакать — из-за того, что когда-то был сделан выбор именно в сторону этого языка программирования.

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

В добавку из свежего питоньего: Почему я не люблю конфигурацию в django-style.

Также опубликовано введение в функциональное программирование на Питоне:

Рассуждая о функциональном программировании, люди часто начинают выдавать кучу «функциональных» характеристик. Неизменяемые данные, функции первого класса и оптимизация хвостовой рекурсии. Это свойства языка, помогающие писать функциональные программы. Они упоминают мапирование, каррирование и использование функций высшего порядка. Это приёмы программирования, использующиеся для написания функционального кода. Они упоминают распараллеливание, ленивые вычисления и детерменизм. Это преимущества функциональных программ.

Забейте. Функциональный код отличается одним свойством: отсутствием побочных эффектов. Он не полагается на данные вне текущей функции, и не меняет данные, находящиеся вне функции. Все остальные «свойства» можно вывести из этого.

По совету автора перевода «забить» на всё остальное можно по этой ссылке. Также по этой же теме вышла новая статья Монада, да не та:

Нынче, на волне интереса к функциональщине в программировании, термин «монада» в среде программистов трактуется однозначно. Дискурс такой. Но монады бывают разные.

Кстати, всем кому интересен Python — вот пост-список всех самых лучших материалов на «Хабре» по теме этого языка, вручную классифицированных и отобранных.

7. Тестирование ПО в Facebook

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

8. Про злых хакеров и Wi-Fi

Оригинал тута, перевод здеся:

Полная жесть, если подтвердится. Не могу поверить, что развлекательная система и система управления самолётом не разнесены физически по разным сетям.

ФБР: «Крис Робертс во время полёта взломал развлекательную систему самолета и переписал код на компьютере управления тягой. После этого он смог отправить команду на набор высоты и заставить самолет на короткое время изменить курс.

Во время допроса в ФБР он сознался, что ему даже удалось заставить один из самолётов набрать высоту и отклониться от намеченного маршрута. «Он заявил, что смог отдать команду одному из двигателей, что привело к набору скорости, а самолёт начал уходить в стороны, сбиваясь с маршрута», — говорится в ордере, подписанном агентом ФБР Марком Хёрли.

Я вот подумал, насколько у меня жизнь мелкая. А вот слабо так, в летящем с твоим телом самолёте хачить его систему управления и править код управления движком по живому? Просто море ощущений (профита, правда, никакого, кроме тюрьмы)!

Так вот ты какое — экстремальное программирование. И всему виной — публичный Wi-Fi.

Wi-Fi вообще зло, он выжигает нам моск изнутри:

9. Несколько технических ссылок

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

10. Почему люди становятся программистами?

Если отбросить случайных прохожих, которые приходят в ИТ просто «на подзаработать», то остаются самые странные — идейные. Вот о них-то и речь на видео ниже.

Ужасная и тоталитарная правда о true-программистах и их потаенных желаниях, откровение длиною в 1 минуту.

Поэтому можно сказать, что программист — это такой мелкий политик-интроверт, фактически это такой «детский вариант» диктатора (уж раз мы много сегодня говорили про Питона — сразу вспоминается его Великодушный пожизненный диктатор). Но закончить обзор хочу на позитивной ноте: для софтверных мини-политиков у меня хорошие новости:

 

*Мнение колумнистов может не совпадать с позицией редакции.

**В цитировании сохранены авторская орфография и пунктуация.

Помогаете devby = помогаете ИТ-комьюнити.

Засапортить сейчас.

Читайте также
Сверхзвуковая авиация и батарейки из бактерий. Техдайджест
Сверхзвуковая авиация и батарейки из бактерий. Техдайджест
Сверхзвуковая авиация и батарейки из бактерий. Техдайджест
Influit изобрела электробензин, Baidu запустила роботакси. Технодайджест
Influit изобрела электробензин, Baidu запустила роботакси. Технодайджест
Influit изобрела электробензин, Baidu запустила роботакси. Технодайджест
Каждую неделю собираем новости технологий, видео и ссылки на полезные статьи.
1 комментарий
Synchron вживила свой первый нейроинтерфейс, Subaru нашла новую Суперземлю. Технодайджест
Synchron вживила свой первый нейроинтерфейс, Subaru нашла новую Суперземлю. Технодайджест
Synchron вживила свой первый нейроинтерфейс, Subaru нашла новую Суперземлю. Технодайджест
Каждую неделю собираем новости технологий, видео и ссылки на полезные статьи.
Возрождение OneWeb и «эра мяса из пробирки». Техдайджест
Возрождение OneWeb и «эра мяса из пробирки». Техдайджест
Возрождение OneWeb и «эра мяса из пробирки». Техдайджест
Каждую неделю собираем новости технологий, видео и ссылки на полезные статьи.

Хотите сообщить важную новость? Пишите в Telegram-бот

Главные события и полезные ссылки в нашем Telegram-канале

Обсуждение
Комментируйте без ограничений

Релоцировались? Теперь вы можете комментировать без верификации аккаунта.

Комментариев пока нет.