Pull to refresh
15
0
Платонов Денис @newpdv

Веб-разработчик

Send message

Code review по-человечески (часть 1)

Reading time 14 min
Views 246K
В последнее время я читал статьи о лучших практиках code review и заметил, что эти статьи фокусируются на поиске багов, практически игнорируя другие компоненты ревью. Конструктивное и профессиональное обсуждение обнаруженных проблем? Неважно! Просто найди все баги, а дальше само сложится.

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

Моя революционная книга обучит вас проверенным техникам по выявлению максимального количества недостатков в своём партнёре. Книга не затрагивает следующие области:

• Обсуждение проблем с сочувствием и пониманием.
• Помощь партнёру в устранении недостатков.

Насколько я могу понять из чтения литературы по code review, эти части отношений настолько очевидны, что вообще не стоят обсуждения.

Как вам нравится такая книжка? Предполагаю, что она вам не очень по душе.
Читать дальше →
Total votes 39: ↑38 and ↓1 +37
Comments 36

Ищем по номеру Instagram профиль

Reading time 5 min
Views 581K

В конце статьи представлен готовый инструмент

Что можно узнать о человеке, с которым ты не знаком, если у тебя есть жалкие 11 цифр его номера телефона?

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

По большому счёту, любая современная соц. сеть — это кладезь знаний для OSINT-исследователя, однако большая часть действительно полезной информации скрыта от глаз простого обывателя, и получить её просто так (без некоторых знаний и должной предварительной подготовки) не получится. Часто нужно заранее хорошо знать устройство механизмов соц. сети и долгими часами искать закономерности в проходящих «за кулисами» процессах. И здесь дело даже не в поиске каких-то ошибок, багов или уязвимостей, которые можно эксплуатировать, а, скорее, о ситуациях, когда фича, которая должна была бороться со злом, а не примкнуть к нему помогать людям и делать их жизнь лучше, позволяет использовать себя совсем с иной, непредсказуемой для самих разработчиков, стороны.

Сегодня мы присмотримся ко взаимодействию социальной сети Instagram с номерами вашей телефонной книги.
Читать дальше →
Total votes 33: ↑23 and ↓10 +13
Comments 9

Уменьшение размера React Native-приложения на 60% за несколько простых шагов

Reading time 10 min
Views 11K
Я тружусь в компании Mutual. Она работает в Бразилии, в сфере равноправного кредитования. Мы помогаем заёмщикам и заимодавцам наладить связь друг с другом. Первые ищут хорошие ставки, а вторые — доходы, превышающие то, что может предложить им рынок. Наш продукт применяется широким кругом пользователей, мы работаем в большой стране. В результате наши приложения для iOS и Android, основанные на React Native, загружают на очень разные устройства.


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

Blockchain на Go. Часть 4: Транзакции, часть 1

Reading time 12 min
Views 17K
Привет, Habr! Представляю вашему вниманию перевод статьи "Building Blockchain in Go. Part 4: Transactions 1".

Содержание

  1. Blockchain на Go. Часть 1: Прототип
  2. Blockchain на Go. Часть 2: Proof-of-Work
  3. Blockchain на Go. Часть 3: Постоянная память и интерфейс командной строки
  4. Blockchain на Go. Часть 4: Транзакции, часть 1
  5. Blockchain на Go. Часть 5: Адреса
  6. Blockchain на Go. Часть 6: Транзакции, часть 2
  7. Blockchain на Go. Часть 7: Сеть

Вступление


Транзакции являются сердцем Биткоина, и единственная цель цепи блоков — это хранить транзакции безопасным и надежным способом, чтобы никто не смог модифицировать их после создания. В этой статье мы начинаем работу над реализацией механизма транзакций. Но поскольку это довольно большая тема, я разбил ее на две части: в этой части мы реализуем общий механизм, а во второй части мы детально разберем весь остальной функционал.
Читать дальше →
Total votes 14: ↑10 and ↓4 +6
Comments 1

Blockchain на Go. Часть 2: Proof-of-Work

Reading time 7 min
Views 16K
Привет, Хабр! Представляю вашему вниманию перевод статьи "Building Blockchain in Go. Part 2: Proof-of-Work".

Содержание
  1. Blockchain на Go. Часть 1: Прототип
  2. Blockchain на Go. Часть 2: Proof-of-Work
  3. Blockchain на Go. Часть 3: Постоянная память и интерфейс командной строки
  4. Blockchain на Go. Часть 4: Транзакции, часть 1
  5. Blockchain на Go. Часть 5: Адреса
  6. Blockchain на Go. Часть 6: Транзакции, часть 2
  7. Blockchain на Go. Часть 7: Сеть


Вступление


В предыдущей статье мы построили очень простую структуру данных, которая является основой для базы данных блокчейна. Также мы сделали добавление в нее блоков с цепной связью между ними: каждый блок связан с предыдущим. Увы, наша реализация блокчейна имеет один существенный недостаток: добавление блоков в цепочку слишком простое и дешевое.

Одним из краеугольных камней Биткоина и блокчейна является то, что добавление новых блоков должно быть достаточно сложной работой. И сейчас мы собираемся исправить этот недостаток.
Читать дальше →
Total votes 17: ↑15 and ↓2 +13
Comments 2

Blockchain на Go. Часть 1: Прототип

Reading time 4 min
Views 34K

Содержание


  1. Blockchain на Go. Часть 1: Прототип
  2. Blockchain на Go. Часть 2: Proof-of-Work
  3. Blockchain на Go. Часть 3: Постоянная память и интерфейс командной строки
  4. Blockchain на Go. Часть 4: Транзакции, часть 1
  5. Blockchain на Go. Часть 5: Адреса
  6. Blockchain на Go. Часть 6: Транзакции, часть 2
  7. Blockchain на Go. Часть 7: Сеть

Блокчейн одна из самых революционных технологий 21 века, до сих пор не реализовавшая весь свой потенциал. По сути, блокчейн это просто распределенная база данных. Что же делает ее уникальной? Это база данных полностью открыта и хранится у каждого участника полной или частичной копией. Новая запись создается только с согласия всех кто хранит базу. Благодаря этому существуют такие вещи как криптовалюта и умные контракты.


В этой серии уроков мы создадим, основанную на блокчейне, упрощенную криптовалюту. В качестве языка используем Go.

Читать дальше →
Total votes 35: ↑24 and ↓11 +13
Comments 5

Как именно работает Meltdown

Reading time 4 min
Views 97K

Уже третий день у всех на слуху слова Meltdown и Spectre, свеженькие уязвимости в процессорах. К сожалению, сходу найти что либо про то, как именно работают данные уязвимости (для начала я сосредоточился на Meldown, она попроще), у меня не удалось, пришлось изучать оригинальные публикации и статьи: оригинальная статья, блок Google Project Zero, статья аж из лета 2017. Несмотря на то, что на хабре уже есть перевод введения из оригинальной публикации, хочется поделиться тем, что мне удалось прочитать и понять.

Читать дальше →
Total votes 186: ↑184 and ↓2 +182
Comments 334

Сервисы на Go: как мы их пишем и поддерживаем

Reading time 12 min
Views 26K


Написать сетевой сервис на Go очень просто: в стандартной библиотеке есть куча инструментов, а если чего-то и не хватает, то на Github есть много модных библиотек для удовлетворения большинства нужд.


Но что, если необходимо написать с десяток разных сервисов, работающих в одной инфраструктуре?


Если каждый демон будет использовать все свежие разнообразные «смузи»-технологии, получится «зоопарк», который сложно и дорого поддерживать, не говоря уже о добавлении в них новой функциональности.


У нас в Badoo крутятся >30 самописных демонов, написанных на разных языках, и ~10 из них – на Go. Все эти демоны работают на порядка 300 серверах. Как мы к этому пришли, не получив в итоге «зоопарк», как админы с мониторингом умудряются спать спокойно, не ограничивая при этом никого в смузи, а девелоперы, QA и релизеры живут дружно и до сих пор не переругались – читайте под катом.

Читать дальше →
Total votes 90: ↑87 and ↓3 +84
Comments 23

Что надо знать, чтобы брать туры дешевле: как всё это устроено (и как взять отель в Сочи за 1116 рублей на 5 ночей)

Reading time 5 min
Views 80K

Двухместный номер за 112 рублей в сутки на человека будет примерно вот такой, это 750 метров от центра Красной Поляны.

Прошлый раз было много вопросов про ценообразование, постараюсь ответить. Начну с азов. Самостоятельный путешественник обычно ищет билеты на «Скайсканнере» или AWAD’е. Потом, взяв билеты, выбирает квартиру на AirB&B или отель на «Букинге». Потом идёт и страхуется. Экскурсии набирает на месте по ситуации. Туры нормальный ИТ-специалист, например, заказывает только для родителей, которые не знают языка.

Стратегия самостоятельной брони разумна в 70–80% случаев. Самые опытные путешественники знают, что есть ещё две волшебных фишки:

— Взять готовый тур (он может получиться раза в полтора дешевле, чем самостоятельная покупка билетов и отеля).
— Или же взять только отель из готового тура (это чаще всего вообще дичайший профит).

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

При поездке в Исландию так не выйдет. А вот по популярным направлениям есть варианты. Например, на сегодняшнее утро можно пожить 5 ночей в Сочи в хорошем двухместном номере, получить перелёт, завтраки и трансфер за 12 тысяч 35 рублей. Это на двоих, то есть 6018 рублей на человека. Именно столько стоят билеты в оба конца, если их брать за три недели, а тут ещё отель, завтраки и трансфер (такси от аэропорта до Сочи стоит 850 рублей в одну сторону, поезд — 150 рублей за взрослого). Ниже покажу ещё варианты для Турции и Греции.

Но начну с ответа на вопрос, где подвох.
Читать дальше →
Total votes 57: ↑48 and ↓9 +39
Comments 56

Архитектура растущего проекта на примере ВКонтакте

Reading time 14 min
Views 41K


Алексей Акулович объясняет жизненный путь высоконагруженного проекта на PHP. Это — расшифровка Highload ++ 2016.

Меня зовут Лёша, я пишу на PHP.

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

Начнём.
Total votes 65: ↑61 and ↓4 +57
Comments 46

Делаем очередную .io-игру

Reading time 10 min
Views 39K


Так называемые .io-игры — это браузерные massively multiplayer action-игры, в которых множество людей борются с излишками свободного времени. Massively multiplayer — это значит, что игра представляет собой многопользовательскую массовку из большого количества (сотен+) игроков, играющих в общей локации. Существует мнение, что все началось с игры Agar.io (клетки в чашке Петри). Другими успешными примерами можно назвать Slither.io (змейки) и Diep.io (танчики). Если верить статистике, то каждый день в эти игры играют миллионы игроков. Сегодня существуют десятки различных .io-игр, большинство из которых можно найти, загуглив по запросу «io games list».


Я расскажу о том, как мы делали нашу .io-игру Oceanar.io — игру про рыбок и прочих морских жителей, постараюсь при этом сосредоточиться на вопросах общего технического устройства всей системы, и дам несколько скромных советов.


Читать дальше →
Total votes 35: ↑30 and ↓5 +25
Comments 46

Извините, мы обновляем протокол

Reading time 5 min
Views 14K
Еще в 2011 году нас спрашивали, зачем вводить номер телефона для выставления счета на стороне партнера, подключенного к QIWI? Мы давно хотели облегчить интеграцию API, но раньше сделать это было достаточно сложно. Что же изменилось в 2016? Сейчас расскажем, а также поэкспериментируем с хабровским R&D голосованием.


Читать дальше →
Total votes 26: ↑23 and ↓3 +20
Comments 44

Видео про выращивание цыплёнка без скорлупы: реальность или подделка?

Reading time 2 min
Views 43K

Да, я особенный, а что?

Пару дней назад на странице «Spoon & Tamago» в Facebook было выложено очень интересное видео, где показана группа японских школьников, которая пытается реализовать интересную идею. А именно — вырастить цыпленка в искусственных условиях, в инкубаторе, в яйце без скорлупы. Группа описала этот опыт как «первый в мире». Все это оформлено в виде шоу, которые так любят японцы, но менее интересным видео от этого не становится — не каждый день приходится видеть, как обычный желток с белком постепенно превращается в живое существо.

На самом деле, ранее подобные опыты уже проводились в лабораторных условиях. Техника выращивания цыплят в яйце без скорлупы разработана учеными — профессорами Ютака Тахара (Yutaka Tahara) и Кацуя Обара (Katsuya Obara). Эти же ученые приняли участие в этом школьном эксперименте, контролируя действия учащихся.
Читать дальше →
Total votes 23: ↑22 and ↓1 +21
Comments 28

Эффект Доплера помог физику из Казани успешно оспорить штраф ГИБДД

Reading time 3 min
Views 64K

Тот самый комплекс, который и фиксирует скорость проезжающих мимо автомобилей

В России, в частности, в Казани, ГИБДД стала использовать передвижные комплексы видеофиксации «КРИС-П» для определения скорости проезжающих мимо автомобилей. Многие автомобилисты считают, что точность таких комплексов невысока, и некоторым удается успешно оспорить штрафы ГИБДД, доказав тем либо иным образом свою правоту.

Смог сделать это и кандидат физико-математических наук Юрий Горюнов, который получил штраф в размере 500 рублей за превышение скорости на 22 километра в час. Его «Лада-Гранта» попала в объектив передвижного фоторадарного комплекса «КРИС-П» в августе прошлого года в Высокогорском районе Татарстана.
Читать дальше →
Total votes 68: ↑61 and ↓7 +54
Comments 449

Традиционное 1 апреля в Интернете

Reading time 2 min
Views 184K
У тебя спина белая
С праздником, поехали? Мне уже накидали в ЛС несколько смешных ресурсов:

Читать дальше →
Total votes 48: ↑43 and ↓5 +38
Comments 155

От черного прямоугольника в Яндекс.Браузере к ускорению всего Chromium

Reading time 6 min
Views 59K
Сегодня мы расскажем вам историю об одном интересном баге в Яндекс.Браузере, исправление которого привело к значительному ускорению отрисовки во всем проекте Chromium. И помогут мне в этом Кирилл drBasic Плешивцев и Вадим Lof Петров, специалисты из нашей команды, которым и посчастливилось разбираться с проблемой. Передаю им слово.



Один не совсем обычный баг

Меня зовут Кирилл, я работаю в группе внутренних компонентов Яндекс.Браузера в Новосибирске. В один не совсем прекрасный день коллеги из тестирования Яндекс.Браузера воспроизвели проблему с проигрыванием видео через Flash Player. И поскольку именно наша группа отвечает за эту часть браузера (медиа, кодеки, вот это все), задача досталась мне. Баг, скажем так, не претендовал на оригинальность. Клик по кнопке Play приводил к черному прямоугольнику вместо корректного воспроизведения видео. Этот симптом я встречал и раньше, поэтому рассчитывал на достаточно быструю локализацию проблемы. Но я ошибался.
Читать дальше →
Total votes 125: ↑121 and ↓4 +117
Comments 49

PHPCI: Система непрерывной интеграции для PHP-проектов

Reading time 3 min
Views 24K
image

Совсем недавно вышла из бета-версии новая система непрерывной интеграции для PHP-проектов с открытым исходным кодом — PHPCI (текущая версия — 1.1.0), она вскользь упоминалась в дайджесте PHP №21.

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

Читать дальше →
Total votes 36: ↑32 and ↓4 +28
Comments 22

Native Script. Один код для всех платформ

Reading time 4 min
Views 60K
image

Native script (NS) – это библиотека, позволяющая делать кросс-платформенные приложения, используя XML, CSS, JavaScript. Native script решает ту же задачу, что и уже всем известный phonegap (создание кросс-платформенных приложений), но подходы у них разные. Phonegap использует движок браузера, чтобы отобразить ваш UI (фактически вы получаете веб-страницу), Native script использует нативный рендеринг, использует элементы нативного UI. Следующее важное отличие: чтобы получить доступ к камере, gps и так далее в phonegap необходимо устанавливать плагины, в то время как NS дает доступ из коробки.
Читать дальше →
Total votes 29: ↑27 and ↓2 +25
Comments 23

OTRS на прокачку в стиле REG.RU

Reading time 19 min
Views 31K
image

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

Об этом инструменте, который активно используется в нашей компании с 2008 года, и пойдёт речь. А точнее, о том, что с ним стало в руках нетерпеливых Perl-программистов компании REG.RU.
Так что же вы там накодили?
Total votes 21: ↑15 and ↓6 +9
Comments 28

Создание IT-бизнеса с нуля

Reading time 7 min
Views 187K
Меня всегда занимал вопрос, как создаются компании и организации, как образуются те центры самоорганизации, на которые осаждаются сотрудники и ресурсы из совсем даже не насыщенного «раствора» внешней среды.

Пять лет экономического образования не дали мне ответа на эти вопросы, зато я теперь знаю, как построить классический гуманитарный курс обучения чему угодно, хоть лидерству, хоть левитации силой мысли:
Читать дальше →
Total votes 82: ↑73 and ↓9 +64
Comments 40

Information

Rating
Does not participate
Location
Воронеж, Воронежская обл., Россия
Date of birth
Registered
Activity