Как стать автором
Обновить
283
0
Денис Потапов @PatapSmile

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

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

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

Время на прочтение10 мин
Количество просмотров8.5K

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

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

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

Введение


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

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

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

Время на прочтение7 мин
Количество просмотров20K
image

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

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

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

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

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

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

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

Время на прочтение7 мин
Количество просмотров16K


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

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

Время на прочтение17 мин
Количество просмотров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 понятна читателю. Мы не будем писать скобки, применяя функторы к объектам или морфизмам.)


Читать дальше →
Всего голосов 33: ↑33 и ↓0+33
Комментарии2

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

Время на прочтение9 мин
Количество просмотров79K

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


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


image
Читать дальше →
Всего голосов 45: ↑34 и ↓11+23
Комментарии80

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

Время на прочтение6 мин
Количество просмотров28K


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

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

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

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

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

image

Читать дальше →
Всего голосов 24: ↑21 и ↓3+18
Комментарии43

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

Время на прочтение2 мин
Количество просмотров53K
Привет, друзья!

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

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

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

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

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

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


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

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

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

Время на прочтение10 мин
Количество просмотров13K

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


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

Читать дальше →
Всего голосов 25: ↑25 и ↓0+25
Комментарии13

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

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

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

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

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

12 Fractured Apps и Docker

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


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

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

Время на прочтение7 мин
Количество просмотров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 фреймворки в других языках.
Читать дальше →
Всего голосов 32: ↑29 и ↓3+26
Комментарии121

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

Время на прочтение8 мин
Количество просмотров49K


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

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

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

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

Время на прочтение4 мин
Количество просмотров47K
UPDATE: Опубликованы итоги конкурса.

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

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

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



Правила


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

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

Читать дальше →
Всего голосов 42: ↑28 и ↓14+14
Комментарии189

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

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

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

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



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

2. Возможные решения
Читать дальше →
Всего голосов 21: ↑17 и ↓4+13
Комментарии51

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

Время на прочтение5 мин
Количество просмотров29K
image

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

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

Время на прочтение4 мин
Количество просмотров5.9K


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

Информация

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