Pull to refresh
28
0
Sergey Popyvanov @flyer2001

iOs Developer, drummer

Send message

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

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


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

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

Управление распределенной командой в режиме многопроектности (обзор и видео доклада)

Reading time 12 min
Views 12K


23-24 сентября в Санкт-Петербурге проходила конференция Saint TeamLead Conf 2019. «Флант» принял в ней активное участие: Игорь Цупко (наш директор по неизвестному) провел митап, на котором участники разобрались в способах поиска и выявления тайных знаний внутри организации, а Сергей Гончарук (менеджер проектов) выступил с докладом «Управление распределенной командой в режиме многопроектности». По традиции, мы публикуем обзор доклада и его видео (~37 минут).
Читать дальше →
Total votes 51: ↑48 and ↓3 +45
Comments 17

Arduino! Что дальше? Делаем велокомпьютер

Reading time 8 min
Views 40K

Как это было


Мой отец увлекался электроникой. Дома был паяльник, провода, куча радиодеталей. Он с лёгкостью чинил телевизоры, холодильники — в качестве хобби. Я всегда был рядом.


В 10 лет мне подарили радио конструктор, я думаю у многих такой был.




Я собрал на нем все схемы, мне нравилось как они работали. Изучил все основные радиодетали. Потом купили радиоконструктор — «радиоприемник в корпусе». Надо было уже паять, он тоже скоро был готов и отлично работал. Я продолжал делать небольшие схемки. Платы — лак и стеклянные трубочки. Но потом увлёкся программированием. Освоил Си, потом Си++. По окончанию университета, стал работать программистом, чем и занят по сей день.


Arduino


Когда у меня подрос сын, я решил его тоже научить электронике. Взял свой старый пыльный конструктор и … сын его «выкинул». Что это за хлам, зачем мне пищать разными тонами. Какие- то не интересные схемы. Я задумался, и стал смотреть, чем можно заменить его. Знаток и другие конструкторы, были в общем-то аналогичны. И тут я случайно наткнулся на Arduino. Вот то, что нужно. Электроника и программирование в одном флаконе.




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

Читать дальше →
Total votes 53: ↑52 and ↓1 +51
Comments 87

Что происходит с командами при использовании BaseCamp, Trello, YouTrack, Smartsheet, Slack, YouGile. Обзор часть 1

Reading time 6 min
Views 27K
Привет, Хабровчане! В статье расскажу про опыт использования систем планирования/управления/взаимодействия, каждой из которых пользовались в компании RedHelper не менее 6 месяцев. Упор будет делаться не на функции систем, а на то, что меняется в команде при использовании инструмента автоматизации.

BaseCamp Trello YouTrack Smartsheet Slack YouGile

Обзор BaseCamp Trello YouTrack Smartsheet Slack YouGile

В конце — обзор собственного инструмента YouGile, который для нас сегодня оказался универсальным местом планирования и общения. Сначала сделали “на коленке” для себя, с очень простой идеей — Agile Board, где каждая задача это чат. Сейчас запущен для публичного тестирования.
Читать дальше →
Total votes 34: ↑31 and ↓3 +28
Comments 39

Лучшие головоломки, про которые не знает никто*

Reading time 5 min
Views 94K
*почти

Бодрый день, дамы и господа. Я наконец решил, что негоже мне сидеть в рид-онли, когда у меня в голове зреет столько полезных и нужных комментариев, и пора получить инвайт. А значит, надо писать пост. О чём? Конечно же, о том, что я люблю и знаю — об играх. Конкретно — о головоломках.

Огромный недостаток головоломки по сравнения с какими-нибудь ММОРПГ — очень малая реиграбельность. Я всегда думал, что технология стирания памяти в «Вечном сиянии чистого разума» использовалась не по назначению. Вместо того, чтобы изжить из воспоминаний какую-то женщину, не лучше ли забыть своё прохождение любимой игры, а потом пройти её заново? К сожалению, пока что это фантастика. Поэтому всё, что я могу — изнывая от ностальгии, в письменной форме вспоминать все эти прекрасные вещи, вернуться к которым мне, увы, не суждено.

Учитывая «одноразовость» головоломок, тем более странно и в чём-то даже преступно, что о замечательнейших представителях этого жанра узнаёшь практически случайно. Мой пост имеет целью исправление этой несправедливости, и я как раз заканчиваю затянувшееся предисловие и перехожу к сути.
Total votes 78: ↑74 and ↓4 +70
Comments 117

Компактный монитор домашнего воздуха (CO2, температура, влажность, давление) с Wi-Fi и мобильным интерфейсом

Reading time 10 min
Views 79K

image


Про измерение CO2 и его важность на Geektimes было уже немало публикаций (ссылки в конце статьи). Здесь же хочу описать проект компактного монитора уровня CO2, а также температуры, влажности и давления с Wi-Fi, обновлением прошивки по воздуху и интерфейсом в мобильном приложении. Сердца системы модуль на базе esp8266, сенсор CO2 MH-Z19 и фреймворк esp8266-arduino. И так, включим устройство в USB-розетку:

Читать дальше →
Total votes 78: ↑78 and ↓0 +78
Comments 144

Конец халяве: I Know What You Download

Reading time 6 min
Views 291K
Продолжение (часть 2).
Не понимаю, почему никто не кричит «полундра» (поискал здесь и на Хабре по слову «iknowwhatyoudownload», но ничего).

Итак, некий сайтик iknowwhatyoudownload.com по IP-адресу показывает список торрентов, скаченных и розданных с этого адреса.
Судя по всему, запустились недавно. Домен зарегистрирован 14 сентября 2016. Отображается статистика примерно за месяц. Но как долго она собиралась, неизвестно.
Читать дальше →
Total votes 88: ↑72 and ↓16 +56
Comments 568

Теории заговора. Алкогольное лобби

Reading time 8 min
Views 106K

По данным ВОЗ, россияне мужского пола потребляют 23,9 литра чистого спирта в год (белорусы — 27,5 л) при среднемировом уровне потребления алкоголя 6,2 литра в год. Медики считают, что именно алкоголь является причиной многочисленных смертельных заболеваний. Повсеместная алкоголизация населения — главный фактор низкой продолжительности жизни в России. Говорят, что это единственная страна в мире, где смертность мужчин на свободе в три раза выше, чем в тюрьме (там алкоголь запрещён). Фактически, алкоголь унёс уже больше жизней, чем голод, эпидемии, теракты и все войны в истории, включая Вторую мировую войну. Сейчас от этого вещества умирает 3,3 млн человек в год.

Алкоголь вызывает привыкание, разрушает мозг, печень, пищеварительный тракт и желудок. Он приводит к циррозу печени, раку поджелудочной железы, ожирению, гипертонии, болезням сердца.
Читать дальше →
Total votes 166: ↑123 and ↓43 +80
Comments 996

Расшифровка базы данных KeePass: пошаговое руководство

Reading time 9 min
Views 88K

image


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


На данный момент существует 2 версии KeePass:


  • KeePass 1.x (генерирует файлы .kdb);
  • KeePass 2.x (генерирует файлы .kdbx).

Структура файла с базой данных KeePass (.kdb, .kdbx) состоит из 3 частей:


  • Подпись (не зашифрована);
  • Заголовок (не зашифрован);
  • Данные (зашифрованы).

Далее я подробно расскажу о том, как дешифровать базу данных KeePass 1.x и KeePass 2.x.

Читать дальше →
Total votes 67: ↑67 and ↓0 +67
Comments 39

По ту сторону онлайн-консультанта

Reading time 11 min
Views 48K
image

Все видели окошко онлайн-консультанта в интернет магазинах. Оно в каком-то смысле стало стандартом, к нему все привыкли. Оно может помогать, может раздражать, но мало кто знает, что происходит с обратной стороны фразы “Здравствуйте! Чем я могу Вам помочь?”


А с обратной стороны (во всяком случае, в моем офисе) происходит Лена!


Гость: Добрый день! Чем я могу Вам помочь?
Лена: Добрый день! Чем я могу Вам… Твою мать!

Читать дальше →
Total votes 127: ↑107 and ↓20 +87
Comments 101

Пастильда — открытый аппаратный менеджер паролей

Reading time 5 min
Views 59K
Pastilda — open source аппаратный USB менеджер паролей

Немало заметок и обсуждений посвящены непростому вопросу безопасного хранения паролей, тема интересная и, похоже, актуальной будет ещё долго. Существуют различные программные решения для хранения паролей, о них довольно часто пишут на Хабре (например тут и вот тут), однако многим из них, как нам кажется, в той или иной степени свойственны следующие недостатки:
  • закрытый код снижает доверие и вероятность оперативного устранения уязвимостей
  • для автозаполнения нужно ставить дополнительный софт
  • после ввода мастер-пароля вся база открыта и доступна, в том числе для вредоносного ПО, что особенно актуально на недоверенных устройствах
  • использование мобильных приложений для хранения паролей все равно подразумевает ручной ввод с клавиатуры, например когда требуется залогиниться на стационарном ПК
  • автозаполнение невозможно в некоторых случаях (в bios, консоли)

Мы пришли к выводу, что наиболее удобным решением будет простой и недорогой девайс, позволяющий аппаратно хранить и вводить логины/пароли на любые устройства, без установки какого-либо ПО.
Читать дальше →
Total votes 69: ↑67 and ↓2 +65
Comments 168

Сервис push-уведомлений Pushover для Android и iOS в связке с PHP

Reading time 7 min
Views 103K

Вкратце, push-уведомления — это небольшие по объему важные сообщения от программы или сервиса, отображаемые операционной системой тогда, когда вы непосредственно не работаете с указанным приложением или сервисом. Преимущество таких уведомлений в отсутствии необходимости держать программу вечно в памяти, тратя на нее процессорные мощности и память.
Не буду здесь расписывать всю технологию доставки удаленного уведомления, ибо это уже сделано до меня. Выглядит примерно так: периодически демон опрашивает сервер и в случае появления сообщения, показывает его нам.
Для iOS придумали APNS, для Android-а — C2DM-GCM, я же хочу рассказать про кроссплатформенный (громко) сервис Pushover и связке его с php-сайтом.
Читать дальше →
Total votes 20: ↑16 and ↓4 +12
Comments 26

Обзор электронных платежных систем. Что выбрать?

Reading time 4 min
Views 65K
В процессе разработки довольно интересного проекта для туристической компании возникла необходимость интеграции на сайт одной из платежных систем, дабы пользователи сайта могли без каких-либо проблем и ограничений оплачивать собственные заказы.

Итак, задача довольно тривиальная, и к её решению приступил с изучения предметной области.
Читать дальше →
Total votes 58: ↑52 and ↓6 +46
Comments 116

ФБР массово ставит «жучки» на улицах: автобусных остановках, деревьях, под камнями, в фонарях и др. 

Reading time 3 min
Views 30K

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



Остановка общественного транспорта в Оклахоме, где работал «жучок» ФБР

Массовая прослушка граждан с помощью технических средств — проблема не только для России. Российские спецслужбы считают, что для перехвата трафика через СОРМ не требуется судебное постановление. Наталья Касперская из российской компании InfoWatch недавно популярно объяснила, что перехват, запись и распознавание разговоров — это не прослушка, ведь «у роботов нет ушей, чтобы слушать». Поэтому можно спокойно записывать все телефонные разговоры и осуществлять поиск по ключевым словам в распознанном тексте.

Спецслужбы в США тоже балуются такими методами. Как рассказали журналисты KPIX 5 News, массовая установка скрытых микрофонов в публичных местах — часть секретной программы ФБР. И главное, что для такой прослушки спецслужбам даже не требуется судебный ордер.
Читать дальше →
Total votes 33: ↑28 and ↓5 +23
Comments 118

Как взломать Telegram и WhatsApp: спецслужбы не нужны

Reading time 2 min
Views 711K
На прошлой неделе общественность взбудоражила новость о возможной причастности спецслужб к взлому аккаунтов оппозиционеров в популярном мессенджере Telegram. На протяжении своего существования человечество пыталось объяснить всё необъяснимое с помощью высших сил – Богов. В наше время все непонятные вещи объясняют происками спецслужб.

Мы решили проверить, действительно ли нужно быть спецслужбой, чтобы получить доступ к чужому аккаунту Telegram. Для этого мы зарегистрировали тестовый аккаунт Telegram, обменялись несколькими тестовыми сообщениями:



А затем мы провели атаку через сеть SS7 на один из тестовых номеров (подробнее о самих атаках мы писали ранее). И вот что у нас получилось:
Читать дальше →
Total votes 156: ↑146 and ↓10 +136
Comments 242
По данным социологических исследований, удалённая работа в последние годы находится «на подъёме». Однако на рынке происходит нечто более глубокое, чем простое увеличение численности удалённых сотрудников. Мы становимся свидетелями возникновения принципиально новой распределённой схемы работы, практически – виртуальной компании. Эта схема явно отличается от традиционной удалённой работы, где люди могут работать вне офиса лишь какое-то время. Тренд заметили даже на высшем правительственном уровне - уже в 2013 году порядок и особенности регулирования труда дистанционных сотрудников включили в главу 49.1 Трудового кодекса РФ в раздел XII «Особенности регулирования труда отдельных категорий работников». Теперь вполне законно с дистанционным работником заключается трудовой договор. Согласно закону, сведения о дистанционной работе могут не вноситься в трудовую книжку. В этом случае полноправным доказательством деятельности будет трудовой договор.
Читать дальше
Total votes 14: ↑14 and ↓0 +14
Comments 7

Кому-то многовато или как метод кайдзен на мою работу повлиял

Reading time 6 min
Views 39K
Вы часто себе даете обещания, но не выполняете их. Крупная задача вас страшит и парализует. Вы вкалываете аврально и потом ругаете себя: «Надо было делать помаленьку, но каждый день». Я расскажу вам об эффективном методе, который испытала на себе лично.


Читать дальше →
Total votes 18: ↑17 and ↓1 +16
Comments 5

Ускоряем OpenVPN за $9.99* или встраиваем Orange Pi One в роутер

Reading time 7 min
Views 46K
image

Некоторые из нас не пользуются интернетом без VPN по тем или иным причинам: кому-то нужен выделенный IP, и проще и дешевле купить VPS с двумя IP, чем покупать адрес у провайдера, кто-то хочет получать доступ ко всем веб-сайтам, а не только разрешенным на территории РФ, третьим нужен IPv6, а провайдер его не предоставляет…
Чаще всего VPN-соединение устанавливают на самом устройстве, которое используется в определенный момент, что вполне оправданно, если у вас только один компьютер и один телефон, и вы их редко используете одновременно. Если же в вашей домашней сети множество устройств, или, например, есть такие, на которых VPN настроить нельзя, было бы удобнее поднимать туннель прямо на домашнем роутере, чтобы не задумываться о настройке каждого устройства по отдельности.

Если вы хоть раз устанавливали OpenVPN на свой маршрутизатор, вы, вероятно, были неприятно удивлены скоростью его работы. SoC'и даже дешевых роутеров без особых проблем пропускают через себя окологигабитный трафик, за счет выноса функций маршрутизации и NAT на отдельный чип, предназначенный исключительно для выполнения этой задачи, а основные процессоры таких роутеров довольно слабы, т.к. нагрузки на них практически никакой нет. Такой компромисс позволяет достигнуть высокой скорости работы роутера и заметно снизить цену готового устройства — маршрутизаторы с мощными процессорами стоят в несколько раз дороже, и позиционируются уже не только как коробка для раздачи интернета, но и в качестве NAS, торрентокачалки и домашней мультимедиа-системы.

Мой роутер, TP-Link TL-WDR4300, нельзя назвать новым — модель появилась в середине 2012 года, и обладает 560 МГц-процессором архитектуры MIPS32 74Kc, мощности которого хватает лишь на 20-23 Мб/с шифрованного трафика через OpenVPN, что по меркам скорости современного домашнего интернета совсем немного.
Как бы нам повысить скорость шифрованного туннеля? Мой роутер довольно функциональный, поддерживает 3x3 MIMO, да и вообще, хорошо работает, не хотелось бы его менять.
Так как сейчас принято делать 10-мегабайтные интернет-страницы, писать десктопные приложения на node.js и паковать их в 100-мегабайтный файл, наращивать вычислительные мощности вместо оптимизации, мы совершим нечто ужасное — переложим VPN-подключение на производительный одноплатный «компьютер» Orange Pi One, который установим в корпус роутера, не занимая существующие сетевые и USB-порты, всего за $9.99*!
* + доставка, + налоги, + на пиво, + MicroSD.
Читать дальше →
Total votes 44: ↑44 and ↓0 +44
Comments 72

Использование POS-клавиатуры для решения рутинных задач

Reading time 8 min
Views 48K

Вокруг нас есть множество полезных компьютерных устройств, которые при правильном приложении сил могут существенно помочь нам в решении типовых рутинных задач. И, к сожалению, немногие об этом знают и умеют применить такие вещи на практике. Сегодня я хочу рассказать вам о любопытном применении POS-клавиатуры для существенной помощи в работе QA-инженера. Это всего лишь одно из многих применений такого класса устройств для задач, где необходимо производить заданные последовательности одинаковых действий.
Читать дальше →
Total votes 38: ↑38 and ↓0 +38
Comments 66

Information

Rating
Does not participate
Location
Самара, Самарская обл., Россия
Registered
Activity

Specialization

Mobile Application Developer
Middle
From 2,500,000 ₽
SWIFT
Xcode
UIKit
Development of mobile applications
Coredata
Foundation
SwiftUI
Autolayout
iOS development