Pull to refresh
282
0
Денис Потапов @PatapSmile

Обо всём и ни о чём

Send message

Гайд по реверсу клиент-серверного apk на примере задания NeoQUEST-2020

Reading time 10 min
Views 8.3K

Сегодня у нас насыщенная программа (еще бы, столько областей кибербезопасности за раз!): рассмотрим декомпиляцию Android-приложения, перехватим трафик для получения URL-адресов, пересоберем apk без исходного кода, поработаем криптоаналитиками и многое другое:)
Читать дальше →
Total votes 8: ↑8 and ↓0 +8
Comments 1

Реверс-инжиниринг клиента Dropbox

Reading time 12 min
Views 10K
TL;DR. В статье рассказывается об обратной разработке клиента Dropbox, взломе механизмов обфускации и декомпиляции клиента на Python, а также изменении программы для активации функций отладки, которые скрыты в обычном режиме. Если вас интересует только соответствующий код и инструкции, пролистайте до конца. На момент написания статьи код совместим с последними версиями Dropbox, основанными на интерпретаторе CPython 3.6.

Введение


Dropbox очаровал меня сразу с момента своего появления. Концепция по-прежнему обманчиво проста. Вот папка. Кладёшь туда файлы. Он синхронизируется. Переходишь к другому устройству. Он опять синхронизируется. Папка и файлы теперь появились и там!

Объём скрытой фоновой работы на самом деле поражает. Во-первых, никуда не исчезают все проблемы, с которыми приходится иметь дело при создании и обслуживании кросс-платформенного приложения для основных десктопных операционных систем (OS X, Linux, Windows). Добавьте к этому поддержку различных веб-браузеров, различных мобильных операционных систем. И мы говорим только о клиентской части. Меня интересует также бэкенд Dropbox, который позволил достичь такой масштабируемости и низкой задержки с безумно тяжёлой рабочей нагрузкой, которую создают полмиллиарда пользователей.
Читать дальше →
Total votes 39: ↑39 and ↓0 +39
Comments 2

3D-фотографии Facebook изнутри: шейдеры параллакса

Reading time 7 min
Views 20K
image

В последние несколько месяцев Facebook заполонили 3D-фотографии. Если вам не довелось их увидеть, то объясню: 3D-фотографии — это изображения внутри поста, которые плавно меняют ракурс при скроллинге страницы или когда перемещаешь по ним мышь.

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

Техника, которую использует Facebook для создания трёхмерности двухмерных изображений, иногда называется смещение карты высот. В нём применяется оптическое явление под названием «параллакс».
Total votes 44: ↑44 and ↓0 +44
Comments 32

Почему люди не используют формальные методы?

Reading time 20 min
Views 14K
На Software Engineering Stack Exchange я увидел такой вопрос: «Что мешает широкому внедрению формальных методов?» Вопрос был закрыт как предвзятый, а большинство ответов представляли собой комментарии типа «Слишком дорого!!!» или «Сайт — это не самолёт!!!» В каком-то смысле это верно, но мало что объясняет. Я написал эту статью, чтобы дать более широкую историческую картину формальных методов (FM), почему они на самом деле не используются и что мы делаем для исправления ситуации.

Прежде чем начать, нужно сформулировать некоторые условия. На самом деле существует не так много формальных методов: всего несколько крошечных групп. Это означает, что разные группы по-разному применяют термины. В широком смысле есть две группы формальных методов: формальная спецификация изучает запись точных, однозначных спецификаций, а формальная проверка — методы доказательства. Сюда входят и код, и абстрактные системы. Мало того, что мы используем разные термины для кода и систем, мы часто используем разные инструменты для их верификации. Чтобы ещё больше всё запутать, если кто-то говорит, что создаёт формальную спецификацию, обычно это означает и верификацию дизайна. А если кто-то говорит, что делает формальную верификацию, обычно это относится к верификации кода.
Читать дальше →
Total votes 35: ↑35 and ↓0 +35
Comments 18

О развитии сферы открытых данных в Украине

Reading time 7 min
Views 16K


За последние два года Украина сделала в сфере открытых данных больше, чем за последнее десятилетие. О том, что происходит в сфере открытых данных в Украине, пойдет речь в этой статье.
Читать дальше →
Total votes 68: ↑55 and ↓13 +42
Comments 38

Функторы (глава книги «Теория категорий для программистов»)

Reading time 17 min
Views 31K

Это седьмая статья из цикла «Теория категорий для программистов». Предыдущие статьи уже публиковались на Хабре:



Функторы


За понятием функтора стоит очень простая, но мощная идея (как бы заезжено это ни прозвучало). Просто теория категорий полна простых и мощных идей. Функтор есть отображение между категориями. Пусть даны две категории C и D, а функтор F отображает объекты из C в объекты из D — это функция над объектами. Если a — это объект из C, то будем обозначать его образ из D как F a (без скобок). Но ведь категория — это не только объекты, но еще и соединяющие их морфизмы. Функтор также отображает и морфизмы — это функция над морфизмами. Но морфизмы отображаются не как попало, а так, чтобы сохранять связи. А именно, если морфизм f из C связывает объект a с объектом b,


f :: a -> b

то образ f в D, F f, связывает образ a с образом b:


F f :: F a -> F b

(Надеемся, что такая смесь математических обозначений и синтаксиса Haskell понятна читателю. Мы не будем писать скобки, применяя функторы к объектам или морфизмам.)


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

Готовим простой блог на микросервисах, пишем свой микрофреймворк на php и запускаем все на Docker с примерами

Reading time 9 min
Views 79K

А что если я скажу вам, что новый продукт можно сразу начинать писать на микросервисной архитектуре, а не заниматься распилом монолита? Это вообще нормально? Удобно? Хотите узнать ответ?


Задача: необходимо написать за выходные (время ограниченно 10-15 часами) сферический блог на микросервисах, на php, не используя никаких фреймворков. Можно пользоваться здравым смыслом. А еще забудем о том что такое фронтенд и вспомним что мы жить не можем без виртуализации. Выберем Docker. Интересно? Вперед под кат.


image
Читать дальше →
Total votes 45: ↑34 and ↓11 +23
Comments 80

1000 и 1 репост: гайд по кнопке «поделиться» в русских соц сетях

Reading time 6 min
Views 28K


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

К сожалению, большая часть информации на эту тему, которую можно найти на хабре или stackoverflow — уже устарела, поэтому я постарался превратить этот в пост в актуальный мега-гайд по шерингу страниц в соц сетях. Я рассмотрел 5 наиболее популярных в России социальных сетей: контакт, facebook, твиттер, одноклассники и мой мир. Для каждой социальной сети приведен актуальный URL для шаринга, небольшие советы и рекомендации по использованию, а также JS код, позволяющий узнать количество шеров конкретного URL в каждой из соц. сетей.

В конце статьи есть сводная таблица со всеми ссылками и кратким описанием возможностей каждой из сетей.
Читать дальше →
Total votes 25: ↑21 and ↓4 +17
Comments 37

woSign продолжение китайской халявы (хоть и не такой большой как раньше)

Reading time 1 min
Views 25K
Некоторое время назад на хабре появилась новость о том, что Китайская компания WoSign изменила политику раздачи бесплатных сертификатов и позволяла выпустить сертификат только на один год и только на один домен. Что ж, теперь условия поменялись в лучшую сторону. Подробности под катом.

image

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

Parse.com закрывается

Reading time 2 min
Views 53K
Привет, друзья!

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

Сервис будет полностью отключен 28 января 2017 — у существующих пользователей есть ровно год на миграцию данных и перенос своих приложений в другое место.
Читать дальше →
Total votes 33: ↑31 and ↓2 +29
Comments 72

Восход разработчикономики

Reading time 10 min
Views 61K
От переводчика
Почитывая несколько лет назад журнал "Форбс", я наткнулся на статью, которую нашёл крайне интересной. Ну, знаете как бывает — читаешь, читаешь, и на каждом абзаце воскликаешь: «О! Це ж про меня!». Не мог поверить, что я один такой, и никто не сподобится уж если не перевести, то хотя бы сослаться на неё в русскоязычной прессе. Однако за четыре года этого так и не произошло. Ну что ж, «хочешь сделать что-то правильно — сделай это сам», посему предоставляю вниманию почтенной публики первую половину статьи. (Стараюсь переводить художественно, поэтому работа двигается небыстро; размер оригинала — больше 30 килобайт, и, «земную жизнь пройдя до половины», я понял, что держаться нету больше сил.)

P.S. Так и не смог разобраться, как поставить в заголовке тег «перевод».

Восход разработчикономики


Статья Венкатеша Рао опубликована в декабре 2011 года в журнале «Форбс».

В эволюционной биологии существует теория, согласно которой взаимный альтруизм и сотрудничество возникли как решение проблемы хранения еды. Если вам, раннему гоминиду, посчастливилось завалить крупного мамонта, у вас не было ни малейшего шанса умять его целиком до того, как он протухнет. Тогда вы делились едой: лучшим вложением для избыточного капитала было вложение в желудок вашего приятеля. В этом случае вы могли потребовать возврата вклада в тот раз, когда мамонта завалит уже этот самый приятель.
Читать дальше →
Total votes 37: ↑31 and ↓6 +25
Comments 76

Эрланг для веб-разработки (2) -> БД и деплой;

Reading time 10 min
Views 13K

В первой статье мы познакомились с Эрлангом и фреймворком n2o. В этой части мы продолжим делать наш блог:
  • добавим авторизацию через фейсбук, для этого будем из клиента вызывать функции на сервере;
  • будем сохранять комментарии и посты в NoSQL базе;
  • развернем наш блог на DigitalOcean и замерим производительность (спойлер — 1300 запросов в секунду).


Код из статей https://github.com/denys-potapov/n2o-blog-example, готовый проект можно посмотреть по адресу http://46.101.118.21:8001/.

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

Почему из женщин получаются хорошие программисты

Reading time 5 min
Views 41K
image
Линда Лиукас самостоятельно научилась программированию, чтобы сделать сайт, посвящённый Альберту Гору

Вряд ли вы догадались бы, что миниатюрная светловолосая 26-летняя девушка окажется одним из самых одарённых программистов. Но Линда Лиукас из Хельсинки (Финляндия) описывает себя, как человека, которому нравится готовить, бегать, человека, у которого «слишком много детских книг» – и при этом она именно такая. Она участвовала в создании глобальной инициативы по привлечению женщин к программированию, работающей в 227 странах, и уже пишет и иллюстрирует серию книг, обучающих детей программированию. «Из женщин получаются хорошие программисты, потому что они творческие натуры и одновременно прекрасно умеют общаться»,- поясняет она мне при встрече на технологической конференции в Лондоне.

Лиукас, общительная и обаятельная, считается талантливым программистом, заново открывшим написание кода как визуальное и творческое искусство. Она была одним из первых сотрудников сайта Codecademy, получившего инвестиций на $10 млн., и предлагающего бесплатные уроки программирования. Затем в 2010 году она стала лицом некоммерческой организации Rails Girls, обучающей женщин созданию веб-приложений.

image
Иллюстрации Лиукас «Hello Ruby» должны стимулировать интерес детей к программированию
Читать дальше →
Total votes 82: ↑31 and ↓51 -20
Comments 71

12 Fractured Apps и Docker

Reading time 11 min
Views 11K
За эти годы я стал свидетелем того, как все больше и больше людей поддерживают манифест 12 Factor App и начинают реализовывать положения, описанные там. Это привело к появлению приложений, которые были значительно упрощены в развертывании и управлении. Однако примеры практического применения этих 12 факторов были довольно редким явлением на просторах сети Интернет.


За время работы с Docker, преимущества 12 Factor App (12FA) стали для меня более ощутимыми. Например, 12FA рекомендует, чтобы логирование было настроено для стандартного вывода и обрабатывалось в качестве общего потока событий. Вы когда-нибудь использовали команду docker logs? Это и есть 12FA в действии!
Читать перевод полностью!
Total votes 19: ↑17 and ↓2 +15
Comments 5

Эрланг для веб-разработки (1) -> Знакомство;

Reading time 7 min
Views 29K

Продолжение о базе данных и деплое во второй статье.

Я начинаю публиковать серию статей о веб-разработке на Эрланге. Многие хотят попробовать Эрланг, но сталкиваются с проблемой, что вводные курсы в основном касаются Эрланга как функционального языка и далеки от реальных проектов (Learn You Some Erlang for great good! — хорошая и подробная книга). С другой стороны все обучающие материалы по веб-разработке подразумевают, что читатель уже хорошо знает Эрланг.

Эта серия статей рассчитана для разработчиков, у которых есть опыт в веб-разработке (PHP, Ruby, Java), но не имеют опыта разработки на Эрланге.

Задачей будет сделать блог. Код из статей https://github.com/denys-potapov/n2o-blog-example, готовый проект можно посмотреть по адресу http://46.101.118.21:8001/. Особенности проекта:
  • обновление комментариев в реальном времени;
  • авторизация через фейсбук;
  • данные храним в mnesia.

В основе проекта феймворк n2o. Выбор довольно субъективен, но из живых Эрланг фреймворков, n2o мне показался наиболее «эрлангоподобным», в тоже время ChicagoBoss больше похож на MVC фреймворки в других языках.
Читать дальше →
Total votes 32: ↑29 and ↓3 +26
Comments 121

Как я написал и издал книгу по мотивам своих постов с Хабра

Reading time 8 min
Views 49K


Привет!
У меня сегодня небольшой праздник. Моя книга «Бизнес как игра» наконец-то доехала до полок. Ещё тёплая.

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

Ниже я расскажу, что узнал, пока издавался. Например, про то, что заработать на книге нельзя, про обычные тиражи, про процесс и вообще.
Читать дальше →
Total votes 108: ↑105 and ↓3 +102
Comments 129

Конкурс по программированию на JS: Почтовые фильтры

Reading time 4 min
Views 47K
UPDATE: Опубликованы итоги конкурса.

Компания Hola снова объявляет конкурс по программированию на JS с солидным призовым фондом:

  1. Первое место: 1500 USD
  2. Второе место: 1000 USD
  3. Третье место: 500 USD
  4. Возможно, мы решим отметить чьё-то чрезвычайно оригинальное решение специальным призом в 350 USD.
  5. Если Вы отправите кому-то ссылку на этот конкурс, поставив наш адрес в CC, и этот человек займёт призовое место, Вы получите такую же сумму, как и он.

Мы ищем талантливых программистов, поэтому авторы интересных решений будут приглашены на собеседования.



Правила


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

Условия конкурса на английском языке размещены на нашем сайте. Ниже — перевод на русский язык.

Читать дальше →
Total votes 42: ↑28 and ↓14 +14
Comments 189

QA в наше время. «Принцип Свитчера» или почему отрасли критически не хватает компетенции

Reading time 6 min
Views 33K
Друзья, сегодня выпала возможность отвечать на вопросы на долгоиграющую тему «Как стать Тестировщиком, каковы перспективы, и что необходимо, чтобы попасть в эту сферу.»

Как водится в начале любых мнениеизложений или презентаций, дам краткую (очень краткую) информацию о себе:
Работаю в QA два с половиной года. За это время сменил три компании, поработал на разных проектах. Много общался с основателями компаний и организаторами тренингов/конференций/семинаров. Проводил собеседования и следил за развитием рынка.

Следовательно, приведённое ниже мнение является лишь результатом личных наблюдений.



Разделю пост следующие части:
1. Наблюдения
  • Почему отрасль Тестирования низкоквалифицирована?
  • Личный опыт
  • «Принцип Свитчера» и его влияние на QA

2. Возможные решения
Читать дальше →
Total votes 21: ↑17 and ↓4 +13
Comments 51

Icinga2 и безагентный мониторинг серверов Windows средствами WMI

Reading time 5 min
Views 29K
image

На сегодняшний день, далеко не каждый доволен используемой системой мониторинга ИТ инфраструктуры, а у некоторых она попросту отсутствует. Многие из них имеют явные проблемы с удобством использования, сложностью конфигурации и невысокой производительностью. Именно поэтому, предлагаю взглянуть на новый форк Nagios — Icinga 2, который готов порадовать нас модульной архитектурой, удобным web-интерфейсом, генерацией отчетов и превосходной скоростью работы!
Читать дальше →
Total votes 6: ↑6 and ↓0 +6
Comments 4

Intel RealSense App Challenge – парад победителей

Reading time 4 min
Views 5.9K


Закончился очередной конкурс приложений, использующих технологию Intel RealSense – Intel RealSense App Challenge 2014, названы его победители. Давайте, не мудрствуя лукаво, по хорошей пятничной хабратрадиции, просто посмотрим на лучшие программы, созданные в рамках конкурса. Право говоря, там есть на что посмотреть и чем впечатлиться. Сделан еще один маленький шажок в завтрашний день. Засвидетельствуем успех и айда двигаться дальше – к новым достижениям и новому конкурсу, который непременно состоится.
Читать дальше →
Total votes 9: ↑9 and ↓0 +9
Comments 0

Information

Rating
Does not participate
Location
Киев, Киевская обл., Украина
Date of birth
Registered
Activity