Обновить
62
0

Разработчик

Отправить сообщение

Как Денис Крючков выкупил Хабр у Mail.ru

Время на прочтение6 мин
Охват и читатели303K
Денис Крючков (deniskin) рассказал Roem.ru о том, что он смог выкупить акции «Тематических медиа» у Mail.Ru Group и теперь сможет управлять компанией единолично. Мы думаем, что это одно из самых эпохальных событий в истории «Хабрахабра» и по такому случаю у Дениса стоит взять интервью



— Привет, позволь тебя поздравить. Как у тебя получилось выкупить долю Mail.ru в «Хабре»? Никто же не будет продавать курицу, несущую золотые яйца
— Спасибо! Да, конечно, для этого пришлось довольно долго искать деньги.
И где же их Денис нашёл?

Умение видеть абстракции

Время на прочтение9 мин
Охват и читатели86K


Моему сыну, как и многим мальчишкам, нравятся автомобили. Причём чем они больше и необычнее — тем больше нравятся. Когда мы идём по улице, а мимо проезжает эвакуатор или снегоуборочная машина, он неизменно дёргает меня за руку, указывает на заинтересовавший его объект и говорит: «Папа, б-р-р!». Говорит он так потому, что ему один год и вышеуказанные два слова составляют 40% его словарного запаса. Тем ни менее, в общем мысль понятна — обратить внимание на автомобиль. Давайте подумаем, каким образом ребёнок в возрасте 8-10 лет сказал бы своему сверстнику то же самое. Что-то вроде «Ух ты, смотри какая крутая тачка!», да? Мысль та же, но обратите внимание — уже шесть слов вместо двух. И, наконец, представьте, каким образом то же самое скажет человек лет в тридцать: «Эй, смотри, да это же Ferrari California 2008-го года выпуска с двигателем V8 мощностью в 454 лошадиных силы и 7-ми скоростной коробкой-автоматом! Она до сотни разгоняется за 3.9 секунды!». Да, здесь уже больше деталей, но, если вы не автомеханик или фанат Ferrari — они вам скорее всего не нужны и не важны. Основная же мысль — всё та же, что и в «Ух ты, смотри какая крутая тачка!» или «Папа, б-р-р!». Но выражена она уже в 30 слов.

Вы заметили, как абстракция «интересный автомобиль» обросла деталями и нюансами, стала занимать существенно больше места в тексте и времени на понимание, анализ и ответ? То же самое происходит и с программным кодом.
Читать дальше →

Создание архитектуры программы или как проектировать табуретку

Время на прочтение25 мин
Охват и читатели730K
Взявшись за написание небольшого, но реального и растущего проекта, мы «на собственной шкуре» убедились, насколько важно то, чтобы программа не только хорошо работала, но и была хорошо организована. Не верьте, что продуманная архитектура нужна только большим проектам (просто для больших проектов «смертельность» отсутствия архитектуры очевидна). Сложность, как правило, растет гораздо быстрее размеров программы. И если не позаботиться об этом заранее, то довольно быстро наступает момент, когда ты перестаешь ее контролировать. Правильная архитектура экономит очень много сил, времени и денег. А нередко вообще определяет то, выживет ваш проект или нет. И даже если речь идет всего лишь о «построении табуретки» все равно вначале очень полезно ее спроектировать.

К моему удивлению оказалось, что на вроде бы актуальный вопрос: «Как построить хорошую/красивую архитектуру ПО?» — не так легко найти ответ. Не смотря на то, что есть много книг и статей, посвященных и шаблонам проектирования и принципам проектирования, например, принципам SOLID (кратко описаны тут, подробно и с примерами можно посмотреть тут, тут и тут) и тому, как правильно оформлять код, все равно оставалось чувство, что чего-то важного не хватает. Это было похоже на то, как если бы вам дали множество замечательных и полезных инструментов, но забыли главное — объяснить, а как же «проектировать табуретку».

Хотелось разобраться, что вообще в себя включает процесс создания архитектуры программы, какие задачи при этом решаются, какие критерии используются (чтобы правила и принципы перестали быть всего лишь догмами, а стали бы понятны их логика и назначение). Тогда будет понятнее и какие инструменты лучше использовать в том или ином случае.

Данная статья является попыткой ответить на эти вопросы хотя бы в первом приближении.
Читать дальше →

Шпаргалка по шаблонам проектирования

Время на прочтение2 мин
Охват и читатели1.6M

Перевод pdf файла с сайта http://www.mcdonaldland.info/ с описанием 23-х шаблонов проектирования GOF. Каждый пункт содержит [очень] короткое описание паттерна и UML-диаграмму. Сама шпаргалка доступна в pdf, в виде двух png файлов (как в оригинале), и в виде 23-х отдельных частей изображений. Для самых нетерпеливых — все файлы в конце статьи.

Под катом — много картинок.

Читать дальше →

Паттерн проектирования «Мост» / «Bridge»

Время на прочтение5 мин
Охват и читатели54K
upd: Изменил диаграмму и код. Расширил пример и описание.

Почитать описание других паттернов.

Предыстория


Вернувшись домой, после непродолжительных посиделок у старого друга, я обнаружил, что оставил у него свой мобильный телефон, а вместе с тем и единственный в квартире будильник. Ситуация осложнялась тем, что завтра в 8:00 надо было быть на работе. Вариант вернуться за мобильником в 11 часов вечера я даже не рассматривал. И первое, что пришло мне на ум — написать свой будильник, причем с применением паттерна «Мост», который мне и без того надо было реализовать в рамках спецкурса. Как говорится, двух зайцев… Я думаю, не стоит пояснять что лег спать я под утро, но довольный собой. А утром, ровно в 7:00 меня победоносно разбудил мой bridge-будильник, весело наигрывая мотив из TBBT.

Как я до такого докатился, читайте под хаброкатом.
Читать дальше →

Зачем нам ООП и что это такое

Время на прочтение5 мин
Охват и читатели199K
Всем привет.

Неделя статей на хабре посвященная ООП. Последняя статья вызвала у меня кучу эмоций и, к сожалению, очень плохих эмоций. Мне очень не понравилась статья. Почему? Потому что в ней передаются какие-то отрицательные эмоции об использовании ООП. Эмоции вызваны лишь тем, что человек не до конца понимает всю силу ООП и хочет убедить всех в том что ООП зло. Самое печальное что люди начинают прислушиваться и кидаться ужасными доводами, не имеющими ничего общего с действительностью. Я думаю что студентам такие статьи противопоказаны больше чем GoF, которых я бы давал как можно раньше. :)

Начнем.
Читать дальше →

Ceph. Анатомия катастрофы

Время на прочтение20 мин
Охват и читатели70K
Ceph — это object storage, призванный помочь построить отказоустойчивый кластер. И все-таки отказы случаются. Все, кто работает с Ceph, знают легенду о CloudMouse или Росреестре. К сожалению, делиться отрицательным опытом у нас не принято, причины провалов чаще всего замалчивают, и не дают будущим поколениям научиться на чужих ошибках.

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


Далее вы найдете видео и текстовую версию одного из лучших докладов DevOpsConf Russia 2018.


CephFS vs GlusterFS

Время на прочтение16 мин
Охват и читатели40K

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


Читать дальше →

Python: метапрограммирование в продакшене. Часть вторая

Время на прочтение7 мин
Охват и читатели13K

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



Теперь посмотрим как можно изменять вызовы методов. Больше о возможностях метапрограммирования вы сможете узнать на курсе Advanced Python.

Читать дальше →

О выборе структур данных для начинающих

Время на прочтение18 мин
Охват и читатели189K
image

Часть 1. Линейные структуры


Массив


Когда вам нужен один объект, вы создаёте один объект. Когда нужно несколько объектов, тогда есть несколько вариантов на выбор. Я видел, как многие новички в коде пишут что-то типа такого:

// Таблица рекордов
int score1 = 0;
int score2 = 0;
int score3 = 0;
int score4 = 0;
int score5 = 0;

Это даёт нам значение пяти рекордов. Этот способ неплохо работает, пока вам не потребуется пятьдесят или сто объектов. Вместо создания отдельных объектов можно использовать массив.

// Таблица рекордов
const int NUM_HIGH_SCORES = 5;
int highScore[NUM_HIGH_SCORES] = {0};

Будет создан буфер из 5 элементов, вот такой:



Заметьте, что индекс массива начинается с нуля. Если в массиве пять элементов, то они будут иметь индексы от нуля до четырёх.
Читать дальше →

Криптоалгоритмы. Классификация с точки зрения количества ключей

Время на прочтение52 мин
Охват и читатели132K


На Хабрахабре уже порядка 1000 статей так или иначе связанные с шифрованием, но иногда возникает ситуация, когда быстро нужна информация по тому или иному алгоритму.
Читать дальше →

Чистый код на PHP

Время на прочтение19 мин
Охват и читатели117K


Это принципы разработки ПО, взятые из книги Clean Code Роберта Мартина и адаптированные для PHP. Это руководство не по стилям программирования, а по созданию читабельного, многократно используемого и пригодного для рефакторинга кода на PHP.


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


Статья вдохновлена clean-code-javascript.

Читать дальше →

Bitcoin Cash. А был ли форк?

Время на прочтение11 мин
Охват и читатели27K
image

Сегодня тема Bitcoin и Blockchain привлекает невероятное количество внимания. К сожалению, новости не позволяют понять весь масштаб происходящего, так как авторы путаются в терминологии и в спешке выпускают неподготовленные статьи. Что опять же уводит волну обсуждения от технической стороны вопроса к вопросу спекуляции на тему курса Bitcoin.

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

Краткое содержание


  • Bitcoin — общество любителей математики
  • Что такое форк? Почему не так страшна атака 51%
  • Segwit. С чего все началось
  • Bitcoin Cash — как заработать и как дать другим заработать
  • Перспективы
Читать дальше →

Будущее Web очень напоминает Bitcoin

Время на прочтение13 мин
Охват и читатели38K
image

Для большинства людей Джозеф Любин – ведущий мыслитель в стремительно развивающейся области цифровых валют. Для меня он был человеком, с которым я провёл первую свою сделку по обмену биткоинов, и человеком, привыкший говорить большие вещи ровным и скромным голосом.

Зимой 2014 года он позвал меня с собой на биткоин-конференцию в Майами, чтобы рассказать о новом проекте Ethereum, который он с единомышленниками из Канады запустил за несколько месяцев до этого. Когда он объяснил мне суть проекта, он не скупился на прогнозы: «Мы заменим страховые компании и Уолл Стрит».

Список продолжал расти. Онлайн-сервисы по распространению фильмов вроде Netflix и Hulu. Игровые платформы вроде Xbox и Sega Genesis. Мессенджеры вроде Twitter. Пенсии, обмены валют, системы голосования, управление интеллектуальной собственностью, трастовые фонды. Если верить Любину, то всё – реально всё, что мы делаем через интернет или по другим цифровым каналам, претерпит радикальные изменения.

Рассказанная им идея с тех пор завладела умами энтузиастов цифровых валют. Идея в том, что технология, обеспечивающая безопасные транзакции в сети биткоин, и делающая их прозрачными, очень быстрыми и нецензурируемыми, и не требующими доверия другим сторонам, может использоваться для обработки более сложных сделок и хранить любую цифровую информацию в интернете.
Читать дальше →

Почему я не покупал Bitcoin?

Время на прочтение11 мин
Охват и читатели53K
В 2010 году я узнал о таком феномене как криптовалюты, и, как и любая прочая интересная технология это в определенной степени захватило мой разум. Но так уж получается, что не от любой технологии мозг испытывает восторг, а в этом случае особенно, и мне есть что рассказать.

В этой заметке я не собираюсь очередной раз рассматривать технологические особенности, сравнивать криптовалюты и фиат, давить на сознание конкретными цифрами возможной выгоды, о нет. Всего лишь расскажу о том, какие когнитивные искажения все время мешали мне купить криптовалюту. Быть может, если вы найдете их у себя, то некоторые вопросы удастся прояснить (в любом направлении). А если не найдете — то, скорее всего вы знаете что делать и без этих размышлений. Очередная реклама? Ну да. В маркетинговой форме? Ну нет.
Читать дальше →

Load Average в Linux: разгадка тайны

Время на прочтение18 мин
Охват и читатели267K


Средние значения нагрузки (Load averages) — это критически важная для индустрии метрика. Многие компании тратят миллионы долларов, автоматически масштабируя облачные инстансы на основании этой и ряда других метрик. Но на Linux она окутана некой тайной. Отслеживание средней нагрузки на Linux — это задача, работающая в непрерываемом состоянии сна (uninterruptible sleep state). Почему? Я никогда не встречал объяснений. В этой статье я хочу разгадать эту тайну, и создать референс по средним значениям нагрузки для всех, кто пытается их интерпретировать.

Читать дальше →

Bitcoin Cash: джинн выпущен из бутылки

Время на прочтение5 мин
Охват и читатели49K

Источник: Thomson Reuters

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

До разделения размер блока составлял 1 мегабайт, а скорость обработки транзакций — не более 7 единиц в секунду, при том, что в сети Visa эта скорость гораздо выше — десятки тысяч единиц транзакций в минуту (около 2 тысяч в секунду в обычном режиме). В общем, как и предполагалось, 1 августа разделение состоялось. Появилась новая криптовалюта, которая получила название Bitcoin Cash.
Читать дальше →

Фантастические и реальные технологии «Терминатора»

Время на прочтение9 мин
Охват и читатели44K

image


Сегодня Арнольд Шварценеггер отмечает 70-летие, а меньше чем через месяц вернется на экраны в своем главном фильме. «Терминатор-2: Судный день» снова появится в кинотеатрах в обновленной 3D-версии. В России премьера состоится 24 августа 2017 года.


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


Удивительно, что история, рассказанная на языке фантастики, сегодня воспринимается как должное. Мы живем в мире дронов-беспилотников, огромных массивов информации, активно развивающихся технологий ИИ и вооружения, которое с каждым годом становится умнее. Поэтому для гик-культуры сегодня интересно анализировать жизнь и смерть Терминатора с точки зрения реального технического прогресса.

Что за болезнь: рак. Как снизить риски

Время на прочтение7 мин
Охват и читатели29K
В прошлой заметке мы собрали список факторов, которые повышают риск рака. В этой статье эксперты проекта Solo биомедицинского холдинга Атлас расскажут, какие факторы снижают риск развития злокачественной опухоли.


Иллюстрации: Майкл Ковальски
Читать дальше →

Что за болезнь: рак. Риски и мифы

Время на прочтение14 мин
Охват и читатели58K
В первой статье о раке мы рассказали, что это за болезнь и как она развивается. После прочтения у многих возник вопрос, что влияет на развитие злокачественной опухоли. Сегодня эксперты проекта Solo биомедицинского холдинга Атлас расскажут о реальных и мифических факторах, которые повышают риск онкологических заболеваний.


Иллюстрации: Майкл Ковальски
Читать дальше →

Информация

В рейтинге
Не участвует
Откуда
Ковров, Владимирская обл., Россия
Зарегистрирован
Активность