Я плохой разработчик, я не люблю программировать, не читаю про новые фреймворки за завтраком, не разрабатываю пет проекты и не контрибьючу в опенсорс. Уже пять лет я притворяюсь Python разработчиком. Ниже описаны несколько принципов, которым я следовал и которым я бы хотел, чтобы следовали мои коллеги с которыми я работал за это время.
Пользователь
Функциональное программирование — это не то, что нам рассказывают
Функциональное программирование — это очень забавная парадигма. С одной стороны, про неё все знают, и все любят пользоваться всякими паттерн матчингами и лямбдами, с другой на чистом ФП языке обычно мало кто пишет. Поэтому понимание о том, что же это такое восходит больше к мифам и городским легендам, которые весьма далеко ушли от истины, а у людей складывается мнение, что "ФП подходит для всяких оторванных от жизни программок расчетов фракталов, а для настоящих задач есть зарекомендовавший себя в бою проверенный временем ООП".
Хотя люди обычно признают удобства ФП фич, ведь намного приятнее писать:
int Factorial(int n)
{
Log.Info($"Computing factorial of {n}");
return Enumerable.Range(1, n).Aggregate((x, y) => x * y);
}
чем ужасные императивные программы вроде
int Factorial(int n)
{
int result = 1;
for (int i = 2; i <= n; i++)
{
result *= i;
}
return result;
}
Так ведь? С одной стороны да. А с другой именно вторая программа в отличие от первой является функциональной.
Как же так, разве не наоборот? Красивый флюент интерфейс, трансформация данных и лямбды это функционально, а грязные циклы которые мутируют локальные переменные — наследие прошлого? Так вот, оказывается, что нет.
Мой любимый Git-коммит
Картинка из xkcd #1296
Я обожаю описания коммитов в Git. При правильном применении их можно назвать одним из самых мощных инструментов по документированию эволюции кодовой базы за время ее существования. Свою точку зрения хочу проиллюстрировать на примере моего самого любимого описания.
Как политика 19 века повлияла на расположение дата-центров сегодня
Уважаемые хабражители! Так как это мой первый эксперимент по размещению контента на Хабре, прошу не судить слишком строго. Критика и предложения охотно принимается в ЛС.
Недавно, Google объявил о доступности нового дата-центра в Солт-Лейк Сити, в штате Юта. Это — один из наиболее современных ЦОД, в которые инвестировали такие компании, как Microsoft, Facebook, Apple, Yahoo, и другие, расположенных вдоль линии, соответствующей 41-ой параллели на территории США.
Каждая из этих компаний инвестирует миллиарды долларов в эти четыре города:
- Microsoft вложил 3.5 млрд. $ в один из крупнейших ЦОД в Де Мойне, штат Айова, а также 750 млн. $ в ЦОД, расположенный в городе Шайен, штат Вайоминг.
- Apple вложила 1.35 млрд. $ в современный дата-центр в Де Мойне.
- Google вкладывает 1 млрд. $ в дата-центр неподалеку от Омахи, штат Небраска, в дополнение к недавнему вложению в Солт-Лейк Сити.
- Национальный центр исследования атмосферы NCAR построил суперкомпьютер мощностью 1.5 петафлоп в Шайене, и это один из самых быстрых суперкомпьютеров мира.
- Агентство национальной безопасности США эксплуатирует громадное хранилище разведывательных данных в Солт-Лейк Сити, штат Юта.
Так что же делает 41-ую параллель настолько особенной, заставляя различные компании вкладывать миллиарды долларов, строя дата-центры в этих городах?
Подборка: 5 полезных сервисов для написания статей на английском
Всем привет! Меня зовут Марго, я профессиональный маркетолог и редактор, в последние пару лет фокусируюсь на продвижении за рубежом и много пишу на английском. Я решила поделиться ссылками на приложения и сайты, которые помогают мне в ежедневной работе при создании контента. Надеюсь, список поможет изучающим английский и тем, кто публикует англоязычные материалы на Хабре.
Когда новые технологии важнее основ: почему «сгибаемый» Samsung Galaxy Fold оказался провалом
Galaxy Fold – девайс с 7,3-дюймовым экраном, который складывается напополам и становится компактным, многим казался настоящий мечтой. Хороший планшет в форм-факторе смартфона! А за такую высокую цену ($1980 в США) можно было ожидать превосходного качества. Например, Samsung сообщила, что механизм сгибания-разгибания протестирован на 200 000 итераций. Покупатели в США, особенно небедные тех-гики, были вовсю готовы принять новинку.
К сожалению, не сложилось. За пару недель до выпуска товара покупателям несколько десятков изданий и популярных американских блогеров получили девайс для обзора. Сразу три из них – Michael Fisher, Blick и TheVerge – через несколько дней отрапортовали, что их смартфон сломался.
Компании пришлось отозвать все девайсы, и отказаться от их выпуска в Китае, который должен был состояться буквально через пару дней. Некоторые уже сравнивают фиаско с Galaxy Note 7, аккумуляторы которого стали взрываться из-за сдавливания батареи. Миллиарды долларов, потраченные компанией на разработку устройства, могут оказаться спущенными в унитаз.
На днях iFixit опубликовала свой детальный разбор аппарата, и проблемы оказались довольно смешными (и грустными). Вставив в своё устройство самую ожидаемую и хайповую новую технологию за последние несколько лет, компания умудрилась забыть несколько фундаментальных правил смартфоностроения.
Неуловимая проблема тайминга кадров
Технический директор Croteam Ален Ладавач, участвовавший в разработке Serious Sam и Talos Principle, рассказывает, как ему удалось найти причину торможения графики даже на самых мощных машинах.
Наконец-то появилось объяснение того, почему некоторые игры тормозят на вашем PC (и луч надежды на то, что в ближайшем будущем они тормозить перестанут).
Т-т-тормоза
Вы с нетерпением ждали следующей части вашей любимой серии видеоигр для PC и она наконец вышла. На этот раз вы хотите насладиться ею во всей полноте, поэтому потратили деньги и время на тщательную подготовку. Вы заменили процессор, поставили сверхсовременную видеокарту, добавили ещё ОЗУ — чёрт возьми, даже купили RAID на SSD. Игра должна быть плавной с самой заставки.
Предзаказ наконец разблокирован и вы только что завершили установку. В нервном предвкушении вы впервые запускаете игру. Пока всё хорошо — она работает с частотой 60 кадров в секунду. Или, по крайней мере, так сообщает счётчик кадров тюнера GPU. Но что-то не так. Вы делаете мышью резкие, хаотичные движения. Стрейфитесь влево-вправо, и тут игра… начинает тормозить! Блин, да как такое возможно? Как она может тормозить при 60 кадрах в секунду?
Если такое с вами никогда не случалось, то это может показаться смешным. Но если вы их испытали, то, скорее всего, ненавидите тормоза всей душой. Тормоза в играх. Это не старый добрый «лаг». Не низкая частота кадров. Это просто «тормоза», происходящие при высоких частотах кадров на идеальных, супербыстрых машинах. Что это, откуда они взялись и как от них избавиться? Позвольте мне рассказать вам историю…
Мир, в котором IPv6 придуман хорошо
Основы IPv6
Предисловие
Пост является кратким конспектом Wiki, TechNet'а, FreeBSD'шного handbook'a, Serverfault'a, множества RFC и документов IANA, а также курсов от Специалист.Ру для сотрудников Яндекса.
Пост можно рассматривать как копилку ссылок по актуальной на 2012 год спецификации IPv6. Однако он никак не описывает возможные способы установки IPv6 соединения с интернетом и не привязан к какой-либо определённой ОС.
Учтите, что прочтение данной хабрастатьи займёт у вас не более получаса, однако крайне рекомендуется ознакомиться со всеми приведёнными в статье ссылками… Последнее может занять несколько недель.
Сети для самых маленьких. Часть четырнадцатая. Путь пакета
A forwarding entity always forwards packets in per-flow order to
zero, one or more of the forwarding entity’s own transmit interfaces
and never forwards a packet to the packet’s own receive interface.
Brian Petersen. Hardware Designed Network
Одно из удивительнейших достижений современности — это то, как, сидя в Норильске, человек может чатиться со своим другом в Таиланде, параллельно покупать билет на вечерний самолёт к нему, расплачиваясь банковской картой, в то время, как где-то в Штатах на виртуалочке его бот совершает сделки на бирже со скоростью, с которой его сын переключает вкладки, когда отец входит в комнату.
А через 10 минут он закажет такси через приложение на телефоне, и ему не придётся даже брать с собой в дорогу наличку.
В аэропорту он купит кофе, расплатившись часами, сделает видеозвонок дочери в Берлин, а потом запустит кинцо онлайн, чтобы скоротать час до посадки.
За это время тысячи MPLS-меток будут навешаны и сняты, миллионы обращений к различным таблицам произойдут, базовые станции сотовых сетей передадут гигабайты данных, миллиарды пакетов больших и малых в виде электронов и фотонов со скоростью света понесутся в ЦОДы по всему миру.
Это ли не электрическая магия?
В своём вояже к QoS, теме обещанной многократно, мы сделаем ещё один съезд. На этот раз обратимся к жизни пакета в оборудовании связи. Вскроем этот синий ящик и распотрошим его.
Кликабельно и увеличабельно.
Сегодня:
- Коротко о судьбе и пути пакета
- Плоскости (они же плейны): Forwarding/Data, Control, Management
- Кто как и зачем обрабатывает трафик
- Типы чипов: от CPU до ASIC'ов
- Аппаратная архитектура сетевого устройства
- Путешествие длиною в жизнь
Обнаружение аномалий в данных сетевого мониторинга методами статистики
Мастер-класс «Почему Стив Джобс любил шрифты» (Алексей Каптерев)
Привет, Хабр! Давно у нас в блоге не было расшифровок мастер-классов. Исправляемся. В этом посте вас ждет грандиозное путешествие в мир шрифтов от древнейших времен до наших дней. Если вы хотите понять, каким образом шрифты влияют на наши эмоции и наконец научиться отличать гуманистический гротеск от ленточной антиквы — добро пожаловать под кат. И да, там очень много картинок. Передаем слово автору.
Шутка, написанная гарнитурой Times, на 10 % смешнее той, что написана гарнитурой Arial. Почему? Чёрт знает. Лучшее объяснение, которое я видел: юмор ассоциируется с агрессией, с остротой, с остроумием — а Times выглядит более острым, чем Arial.
Ещё один любопытный эксперимент, в котором участвовало 45 тыс. человек. Заходишь на сайт, тебе показывают статью Дэвида Дойча, британского физика. В статье автор пишет, что сегодня очень трудно внезапно умереть. Например, от инфекционного заболевания или в уличной драке. Лет сто назад это случалось намного чаще. Главный вывод статьи — сейчас мир безопасен как никогда. В среднем, конечно, ведь где-то постоянно идут локальные военные конфликты.
Короткое плечо совпадения
«4!+1 = 25, квадрат числа. 5!+1 = 121, тоже квадрат числа. Можете привести ещё один пример? Ещё два примера?»
С помощью ручки и бумаги легко показать, что не подходит. Факториал — это ; прибавив , получим число , которое не является квадратом. (Оно раскладывается на множители как .) С другой стороны, равно , а прибавив , мы получим , что равно . Это даёт нам очень милое уравнение:
10 лучших игр о хакинге, кодинге и вычислениях
Как все знают из новостных лент, мы живём в постоянно эволюционирующей киберпанковской антиутопии. Люди подключают туалеты к Интернету! Если этот гибсоновский мир кажется вам слишком РЕАЛЬНЫМ, то вы можете поиграть в десять лучших видеоигр о взломе, программировании и вычислениях, чтобы сбежать в мета-антиутопию. Которая, я уверен, является намного лучшим местом.
10. TIS-100
[официальный сайт]
Да-а-а, приготовьтесь к тому, что ваш мозг начнёт болеть. TIS-100 — это игра студии Zachtronics, разработчика игр-головоломок, выпустившей Infinifactory и SpaceChem. В маркетинге она позиционируется как «игра о программировании на языке ассемблера, о которой вы не просили», и хотя я обычно игнорирую маркетинговые слоганы, здесь не могу не согласиться.
Игрок получает в своё распоряжение таинственный компьютер из 70-х, найденный в вещах покойного дядюшки. Когда-то он игрался с ним, пытаясь разобраться. Теперь это ваша задача. Если вкратце, то вам нужно получить числа, чтобы провести машину из точки A в точку B, выполнив на каждом уровне «цели» (например, сначала вывести положительное число, а затем отрицательное). Для этого у вас есть список команд, изложенных в смутном руководстве пользователя. Игра советует вам распечатать это руководство в бумажном виде. В нём есть сделанные дядей примечания и пометки маркером, дающие подсказки о сущности этой машины.
Визуализация процесса обучения нейронной сети средствами TensorFlowKit
GitHub: Example
GitHub: Другое
TensorFlowKit API
Посeтив репозиторий, добавьте его в «Stars» это поможет мне написать больше статей на эту тему.
Начиная работать в сфере машинного обучения, мне было тяжело переходить от объектов и их поведений к векторам и пространствам. Сперва все это достаточно тяжело укладывалось в голове и далеко не все процессы казались прозрачными и понятными с первого взгляда. По этой причине все, что происходило внутри моих наработок, я пробовал визуализировать: строил 3D модели, графики, диаграммы, изображения и тд.
Говоря об эффективной разработке систем машинного обучения, всегда поднимается вопрос контроля скорости обучения, анализа процесса обучения, сбора различных метрик обучения и тд. Особая сложность заключается в том, что мы (люди) привыкли оперировать 2х и 3х мерными пространствами, описывая различные процессы вокруг нас. Процессы внутри нейронных сетей происходят в многомерных пространствах, что серьезно усложняет их понимание. Осознавая это, инженеры по всему миру стараются разработать различные подходы к визуализации или трансформации многомерных данных в более простые и понятные формы.
Существуют целые сообщества, решающие такого рода задачи, например Distill, Welch Labs, 3Blue1Brown.
ENOG'14 — влияние блокировок контента на инфраструктуру интернета
Qrator Labs выражает благодарность программному комитету ENOG за разрешение опубликовать на Хабре расшифровку круглого стола, посвященного блокировкам запрещенного к распространению контента. Мероприятие проходило в Минске 9-10 октября. Внимание! Текст длинный, тема чувствительная — просьба отнестись серьёзно к комментарию, который вы захотите оставить под публикацией.
ENOG («Евразийская группа сетевых операторов», в оригинале European Network Operators Group) представляет собой региональный форум интернет-специалистов, занимающихся важнейшими аспектами работы интернета. В рамках форума они имеют возможность обмениваться опытом и знаниями по вопросам, присущим Российской Федерации, странам СНГ и Восточной Европы.
Очередность выступлений и темы докладов:
- Техническая сторона блокировок — Алексей Семеняка, RIPE NCC
- Обзор технической ситуации с блокировками в России — Филипп schors Кулин, DIPHOST
- Проблемы deep packet inspection в транспортных сетях — Артем ximaera Гавриченков, Qrator Labs
- Перспективы блокирования контента в условиях дальнейшего развития технологий интернет — Антон Басков, AB Architecture Bureau
- Административные вопросы блокировок — Юрий Каргаполов, UANIC
Блокировки контента, введение
Решение задачи замощения с помощью SAT солвера на примере пентамино
Коды Рида-Соломона. Часть 1 — теория простым языком
Information
- Rating
- Does not participate
- Location
- Москва, Москва и Московская обл., Россия
- Registered
- Activity