Pull to refresh
6
0
Евгений Богомазов @error2407

Пользователь

Send message

5 советов, чтобы успешно притворяться разработчиком

Reading time3 min
Views98K

Я плохой разработчик, я не люблю программировать, не читаю про новые фреймворки за завтраком, не разрабатываю пет проекты и не контрибьючу в опенсорс. Уже пять лет я притворяюсь Python разработчиком. Ниже описаны несколько принципов, которым я следовал и которым я бы хотел, чтобы следовали мои коллеги с которыми я работал за это время.

Читать далее
Total votes 141: ↑127 and ↓14+113
Comments110

Функциональное программирование — это не то, что нам рассказывают

Reading time17 min
Views124K

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



Хотя люди обычно признают удобства ФП фич, ведь намного приятнее писать:


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;
}

Так ведь? С одной стороны да. А с другой именно вторая программа в отличие от первой является функциональной.


Как же так, разве не наоборот? Красивый флюент интерфейс, трансформация данных и лямбды это функционально, а грязные циклы которые мутируют локальные переменные — наследие прошлого? Так вот, оказывается, что нет.

Читать дальше →
Total votes 267: ↑259 and ↓8+251
Comments795

Мой любимый Git-коммит

Reading time6 min
Views55K
Прим. перев.: Эта публикация британского программиста, ставшая настоящим хитом в англоязычном интернете, ссылается на Git-коммит 6-летней давности. Он был зафиксирован в одном из открытых репозиториев Government Digital Service — службы, занимающейся развитием цифровых услуг в Великобритании и поддерживающей проект GOV.UK. Сам коммит интересен не столько изменениями в коде, сколько сопровождающим их описанием…


Картинка из xkcd #1296

Я обожаю описания коммитов в Git. При правильном применении их можно назвать одним из самых мощных инструментов по документированию эволюции кодовой базы за время ее существования. Свою точку зрения хочу проиллюстрировать на примере моего самого любимого описания.
Читать дальше →
Total votes 145: ↑138 and ↓7+131
Comments93

Как политика 19 века повлияла на расположение дата-центров сегодня

Reading time4 min
Views66K
От переводчика

Уважаемые хабражители! Так как это мой первый эксперимент по размещению контента на Хабре, прошу не судить слишком строго. Критика и предложения охотно принимается в ЛС.


Недавно, Google объявил о доступности нового дата-центра в Солт-Лейк Сити, в штате Юта. Это — один из наиболее современных ЦОД, в которые инвестировали такие компании, как Microsoft, Facebook, Apple, Yahoo, и другие, расположенных вдоль линии, соответствующей 41-ой параллели на территории США.


карта расположения ЦОД


Каждая из этих компаний инвестирует миллиарды долларов в эти четыре города:



Так что же делает 41-ую параллель настолько особенной, заставляя различные компании вкладывать миллиарды долларов, строя дата-центры в этих городах?

Читать дальше →
Total votes 184: ↑183 and ↓1+182
Comments55

Подборка: 5 полезных сервисов для написания статей на английском

Reading time5 min
Views24K


Всем привет! Меня зовут Марго, я профессиональный маркетолог и редактор, в последние пару лет фокусируюсь на продвижении за рубежом и много пишу на английском. Я решила поделиться ссылками на приложения и сайты, которые помогают мне в ежедневной работе при создании контента. Надеюсь, список поможет изучающим английский и тем, кто публикует англоязычные материалы на Хабре.
Читать дальше →
Total votes 51: ↑48 and ↓3+45
Comments29

Когда новые технологии важнее основ: почему «сгибаемый» Samsung Galaxy Fold оказался провалом

Reading time5 min
Views63K


Galaxy Fold – девайс с 7,3-дюймовым экраном, который складывается напополам и становится компактным, многим казался настоящий мечтой. Хороший планшет в форм-факторе смартфона! А за такую высокую цену ($1980 в США) можно было ожидать превосходного качества. Например, Samsung сообщила, что механизм сгибания-разгибания протестирован на 200 000 итераций. Покупатели в США, особенно небедные тех-гики, были вовсю готовы принять новинку.


К сожалению, не сложилось. За пару недель до выпуска товара покупателям несколько десятков изданий и популярных американских блогеров получили девайс для обзора. Сразу три из них – Michael Fisher, Blick и TheVerge – через несколько дней отрапортовали, что их смартфон сломался.


Компании пришлось отозвать все девайсы, и отказаться от их выпуска в Китае, который должен был состояться буквально через пару дней. Некоторые уже сравнивают фиаско с Galaxy Note 7, аккумуляторы которого стали взрываться из-за сдавливания батареи. Миллиарды долларов, потраченные компанией на разработку устройства, могут оказаться спущенными в унитаз.


На днях iFixit опубликовала свой детальный разбор аппарата, и проблемы оказались довольно смешными (и грустными). Вставив в своё устройство самую ожидаемую и хайповую новую технологию за последние несколько лет, компания умудрилась забыть несколько фундаментальных правил смартфоностроения.

Читать дальше →
Total votes 91: ↑80 and ↓11+69
Comments139

Неуловимая проблема тайминга кадров

Reading time13 min
Views155K

Технический директор Croteam Ален Ладавач, участвовавший в разработке Serious Sam и Talos Principle, рассказывает, как ему удалось найти причину торможения графики даже на самых мощных машинах.

Наконец-то появилось объяснение того, почему некоторые игры тормозят на вашем PC (и луч надежды на то, что в ближайшем будущем они тормозить перестанут).

Т-т-тормоза


Вы с нетерпением ждали следующей части вашей любимой серии видеоигр для PC и она наконец вышла. На этот раз вы хотите насладиться ею во всей полноте, поэтому потратили деньги и время на тщательную подготовку. Вы заменили процессор, поставили сверхсовременную видеокарту, добавили ещё ОЗУ — чёрт возьми, даже купили RAID на SSD. Игра должна быть плавной с самой заставки.

Предзаказ наконец разблокирован и вы только что завершили установку. В нервном предвкушении вы впервые запускаете игру. Пока всё хорошо — она работает с частотой 60 кадров в секунду. Или, по крайней мере, так сообщает счётчик кадров тюнера GPU. Но что-то не так. Вы делаете мышью резкие, хаотичные движения. Стрейфитесь влево-вправо, и тут игра… начинает тормозить! Блин, да как такое возможно? Как она может тормозить при 60 кадрах в секунду?

Если такое с вами никогда не случалось, то это может показаться смешным. Но если вы их испытали, то, скорее всего, ненавидите тормоза всей душой. Тормоза в играх. Это не старый добрый «лаг». Не низкая частота кадров. Это просто «тормоза», происходящие при высоких частотах кадров на идеальных, супербыстрых машинах. Что это, откуда они взялись и как от них избавиться? Позвольте мне рассказать вам историю…
Total votes 135: ↑131 and ↓4+127
Comments276

Мир, в котором IPv6 придуман хорошо

Reading time19 min
Views35K
Перевод статьи Avery Pennarun, одного из сотрудников Google, о том, почему современный интернет такой, какой он есть, об истории и предпосылках создания IPv6, а также о том, как был бы устроен идеальный протокол IPv6, почему это не так и как можно к этому идеалу приблизиться.
Читать дальше →
Total votes 61: ↑58 and ↓3+55
Comments59

Основы IPv6

Reading time11 min
Views126K

Предисловие


Пост является кратким конспектом Wiki, TechNet'а, FreeBSD'шного handbook'a, Serverfault'a, множества RFC и документов IANA, а также курсов от Специалист.Ру для сотрудников Яндекса.

Пост можно рассматривать как копилку ссылок по актуальной на 2012 год спецификации IPv6. Однако он никак не описывает возможные способы установки IPv6 соединения с интернетом и не привязан к какой-либо определённой ОС.
Учтите, что прочтение данной хабрастатьи займёт у вас не более получаса, однако крайне рекомендуется ознакомиться со всеми приведёнными в статье ссылками… Последнее может занять несколько недель.
Читать дальше →
Total votes 70: ↑68 and ↓2+66
Comments56

Сети для самых маленьких. Часть четырнадцатая. Путь пакета

Reading time38 min
Views94K
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, теме обещанной многократно, мы сделаем ещё один съезд. На этот раз обратимся к жизни пакета в оборудовании связи. Вскроем этот синий ящик и распотрошим его.


Кликабельно и увеличабельно.

Сегодня:


  1. Коротко о судьбе и пути пакета
  2. Плоскости (они же плейны): Forwarding/Data, Control, Management
  3. Кто как и зачем обрабатывает трафик
  4. Типы чипов: от CPU до ASIC'ов
  5. Аппаратная архитектура сетевого устройства
  6. Путешествие длиною в жизнь

Читать дальше →
Total votes 28: ↑28 and ↓0+28
Comments17

Обнаружение аномалий в данных сетевого мониторинга методами статистики

Reading time9 min
Views31K
Когда наблюдаемых метрик становится слишком много, отслеживание всех графиков самостоятельно становится невозможным. Обычно в этом случае для менее значимых метрик используют проверки на достижение критичных значений. Но даже если значения подобраны хорошо, часть проблем остается незамеченной. Какие это проблемы и как их обнаруживать — под катом.


Читать дальше →
Total votes 38: ↑36 and ↓2+34
Comments11

Мастер-класс «Почему Стив Джобс любил шрифты» (Алексей Каптерев)

Reading time19 min
Views216K


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




Шутка, написанная гарнитурой Times, на 10 % смешнее той, что написана гарнитурой Arial. Почему? Чёрт знает. Лучшее объяснение, которое я видел: юмор ассоциируется с агрессией, с остротой, с остроумием — а Times выглядит более острым, чем Arial.


Ещё один любопытный эксперимент, в котором участвовало 45 тыс. человек. Заходишь на сайт, тебе показывают статью Дэвида Дойча, британского физика. В статье автор пишет, что сегодня очень трудно внезапно умереть. Например, от инфекционного заболевания или в уличной драке. Лет сто назад это случалось намного чаще. Главный вывод статьи — сейчас мир безопасен как никогда. В среднем, конечно, ведь где-то постоянно идут локальные военные конфликты.

Total votes 196: ↑194 and ↓2+192
Comments100

Короткое плечо совпадения

Reading time13 min
Views17K
Джеймс Тэнтон разбрасывается задачками по теории чисел с той же щедростью, с которой Джон Д. Рокфеллер раздавал десятицентовики. Я уже писал об одной из задач Тэнтона. Спустя несколько недель моё внимание привлёк этот твит о факториалах и квадратах и уже не давал мне покоя:

Tweet reads: 4!+1 = 25, a square number. 5!+1 = 121, a square number. Another example? Two more examples?

«4!+1 = 25, квадрат числа. 5!+1 = 121, тоже квадрат числа. Можете привести ещё один пример? Ещё два примера?»

С помощью ручки и бумаги легко показать, что $6!$ не подходит. Факториал $6!$ — это $1 \times 2 \times 3 \times 4 \times 5 \times 6 = 720$; прибавив $1$, получим число $721$, которое не является квадратом. (Оно раскладывается на множители как $7 \times 103$.) С другой стороны, $7!$ равно $5040$, а прибавив $1$, мы получим $5041$, что равно $71^2$. Это даёт нам очень милое уравнение:
Читать дальше →
Total votes 41: ↑39 and ↓2+37
Comments26

10 лучших игр о хакинге, кодинге и вычислениях

Reading time11 min
Views97K

Как все знают из новостных лент, мы живём в постоянно эволюционирующей киберпанковской антиутопии. Люди подключают туалеты к Интернету! Если этот гибсоновский мир кажется вам слишком РЕАЛЬНЫМ, то вы можете поиграть в десять лучших видеоигр о взломе, программировании и вычислениях, чтобы сбежать в мета-антиутопию. Которая, я уверен, является намного лучшим местом.


10. TIS-100


[официальный сайт]

Да-а-а, приготовьтесь к тому, что ваш мозг начнёт болеть. TIS-100 — это игра студии Zachtronics, разработчика игр-головоломок, выпустившей Infinifactory и SpaceChem. В маркетинге она позиционируется как «игра о программировании на языке ассемблера, о которой вы не просили», и хотя я обычно игнорирую маркетинговые слоганы, здесь не могу не согласиться.

Игрок получает в своё распоряжение таинственный компьютер из 70-х, найденный в вещах покойного дядюшки. Когда-то он игрался с ним, пытаясь разобраться. Теперь это ваша задача. Если вкратце, то вам нужно получить числа, чтобы провести машину из точки A в точку B, выполнив на каждом уровне «цели» (например, сначала вывести положительное число, а затем отрицательное). Для этого у вас есть список команд, изложенных в смутном руководстве пользователя. Игра советует вам распечатать это руководство в бумажном виде. В нём есть сделанные дядей примечания и пометки маркером, дающие подсказки о сущности этой машины.
Читать дальше →
Total votes 39: ↑39 and ↓0+39
Comments41

Визуализация процесса обучения нейронной сети средствами TensorFlowKit

Reading time5 min
Views23K
Hint
Перед прочтением этой статьи советую ознакомиться с предыдущей статьей о TensorFlowKit и поставить star репозиторию.

Я не люблю читать статьи, сразу иду на GitHub
GitHub: TensorFlowKit
GitHub: Example
GitHub: Другое
TensorFlowKit API
Посeтив репозиторий, добавьте его в «Stars» это поможет мне написать больше статей на эту тему.

image

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

Говоря об эффективной разработке систем машинного обучения, всегда поднимается вопрос контроля скорости обучения, анализа процесса обучения, сбора различных метрик обучения и тд. Особая сложность заключается в том, что мы (люди) привыкли оперировать 2х и 3х мерными пространствами, описывая различные процессы вокруг нас. Процессы внутри нейронных сетей происходят в многомерных пространствах, что серьезно усложняет их понимание. Осознавая это, инженеры по всему миру стараются разработать различные подходы к визуализации или трансформации многомерных данных в более простые и понятные формы.

Существуют целые сообщества, решающие такого рода задачи, например Distill, Welch Labs, 3Blue1Brown.

Читать дальше →
Total votes 27: ↑24 and ↓3+21
Comments14

ENOG'14 — влияние блокировок контента на инфраструктуру интернета

Reading time32 min
Views11K


Qrator Labs выражает благодарность программному комитету ENOG за разрешение опубликовать на Хабре расшифровку круглого стола, посвященного блокировкам запрещенного к распространению контента. Мероприятие проходило в Минске 9-10 октября. Внимание! Текст длинный, тема чувствительная — просьба отнестись серьёзно к комментарию, который вы захотите оставить под публикацией.

ENOG («Евразийская группа сетевых операторов», в оригинале European Network Operators Group) представляет собой региональный форум интернет-специалистов, занимающихся важнейшими аспектами работы интернета. В рамках форума они имеют возможность обмениваться опытом и знаниями по вопросам, присущим Российской Федерации, странам СНГ и Восточной Европы.

Очередность выступлений и темы докладов:

  1. Техническая сторона блокировок — Алексей Семеняка, RIPE NCC
  2. Обзор технической ситуации с блокировками в России — Филипп schors Кулин, DIPHOST
  3. Проблемы deep packet inspection в транспортных сетях — Артем ximaera Гавриченков, Qrator Labs
  4. Перспективы блокирования контента в условиях дальнейшего развития технологий интернет — Антон Басков, AB Architecture Bureau
  5. Административные вопросы блокировок — Юрий Каргаполов, UANIC

Блокировки контента, введение

Total votes 57: ↑56 and ↓1+55
Comments6

Решение задачи замощения с помощью SAT солвера на примере пентамино

Reading time6 min
Views11K
Однажды попалась мне игра пентамино, где было необходимо уложить 13 фигурок в квадрат 8 на 8. После некоторого периода времени, в течение которого я безуспешно пытался решить эту задачу, я решил, что необходимо написать программу, которая бы делала это за меня. Для этого необходимо было выбрать алгоритм решения. Первое, что приходит на ум — это обычный алгоритм ветвей и границ, когда фигурки укладываются одна за другой примыкая друг к другу (алгоритм с танцующими ссылками здесь не подходит, поскольку фигурки разные). Для ускорения этого алгоритма обычно используются различные эвристики, например, предпочтение отдается ветвлению с наименьшим количеством вариантов. Можно придумать и реализовать и другие эвристики в этом алгоритме, но тут я подумал, что множество различных ухищрений для ускорения решения подобных задач уже реализовано в SAT солверах. Поэтому, необходимо перевести задачу на соответствующий математический язык и воспользоваться каким-либа SAT солвером. О том, как это было реализовано и какие получились результаты можно почитать под катом.
Читать дальше →
Total votes 16: ↑16 and ↓0+16
Comments22

Коды Рида-Соломона. Часть 1 — теория простым языком

Reading time8 min
Views52K
Добрый день! Меня зовут Максим, в YADRO, кроме всего прочего, я занимаюсь разработкой подсистемы, отвечающей за надежное хранение данных. Готовлю небольшой цикл статей про коды Рида-Соломона — теоретическую основу, практическую реализацию, применяемые на практике программные и аппаратные оптимизации. На Хабре и в остальной сети есть хорошие статьи по вопросам этой области — но по ним сложно разобраться, если ты новичок в теме. В этой статье я попытаюсь дать понятное введение в коды Рида-Соломона, а в следующих выпусках напишу, как все это запрограммировать.



Читать дальше →
Total votes 50: ↑50 and ↓0+50
Comments31

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Registered
Activity