Как стать автором
Обновить
0
@infinity8read⁠-⁠only

Пользователь

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

Перехват HTTPS-траффика между Android-устройством и внешним сервером

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

Иногда бывает любопытно подсмотреть, что пересылают туда-сюда разные Android-приложения по HTTP и HTTPS протоколам. Иногда даже при разработке собственного ПО удобно видеть весь трафик в реальном времени. Для реализации этих задач давно придумано много хороших программ, таких, к примеру, как Charles или Fiddler2. На самом деле их намного больше, вот только две вышеуказанные дают возможность нормально просматривать не только HTTP, но и HTTPS.

Трудности начинаются тогда, когда речь заходит о перехвате трафика между Андроид-устройством и внешним сервером. В случае незашифрованного (HTTP-протокол) трафика всё весьма тривиально (вот и инструкция есть) — разрешаем Fiddler2 внешние соединения, в Андроиде устанавливаем прокси сервером адрес нашей машины с Fiddler2 — и вуаля, всё работает. А вот на настройку перехвата HTTPS-трафика у меня ушло чуть больше времени.
Читать дальше →
Всего голосов 51: ↑42 и ↓9+33
Комментарии17

Быстрый старт с Google Test

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

Google Test — это фреймворк от Google для юнит-тестирования кода на С++. Общей архитектурой он слегка напоминает общепринятые boost::test и CppUnit, хотя слегка отличается в деталях (как по мне — в лучшую сторону). Большая обзорная статья этого фреймворка уже как-то пробегала на Хабре, но нынче она в каком-то побитом состоянии (код не отображается), да и кажется мне слишком сложной для начала работы. Поэтому я коротко опишу «Hello world» на Google Test, указав на несколько потенциальных проблем, с которыми вы можете столкнуться, используя Google Test при разработке под Visual Studio.
Читать дальше →
Всего голосов 37: ↑32 и ↓5+27
Комментарии10

Лень-driven development

Время на прочтение4 мин
Количество просмотров48K
Человек — ужасно ленивая зараза. Нет, ну я не о вас, конечно! Ну что вы! Я так, о себе. О 99% человечества. Но не о вас, нет. Вы сами за себя решайте. Но вот те 99%, так уж вышло — ужасно ленивы. Кто-то это отрицает, кто-то мирится, кто-то борется. А лично мне кажется, что это такая же неотъемлемая черта нашего вида, как, например, две руки и две ноги. Можно убиваться, что у нас нет крыльев или жабр — а можно научиться хорошо пользоваться тем, что есть. Так же и с ленью. Зачем её отрицать? Надо её использовать по-полной. И вот тут, поскольку мы с вами имеем кое-какое отношение к ИТ, давайте посмотрим, как с этим обстоит дело в нашей профессии.
Читать дальше →
Всего голосов 127: ↑94 и ↓33+61
Комментарии53

Как начать писать тесты за 10 шагов по 10 минут

Время на прочтение7 мин
Количество просмотров78K
Дайте-ка угадаю: вы согласны с тем, что писать тесты — это хорошо. Это повышает надежность системы, ускоряет разработку, проект с хорошим тестовым покрытием поддерживать легко и приятно, а TDD — это вообще почти идеал процесса разработки. Но не у вас в проекте. То есть, оно клёво, но, к сожалению, сейчас столько работы — просто завал. Куча задач, одних только критических багов — два десятка, плюс надо срочно дописать этот модуль и еще написать письмо заказчику… Так что тесты, наверное, будем прикручивать уже в конце, если время останется. Или в следующем проекте. Нет, ну там точно полегче будет. Скорее всего.

Как, узнали ситуацию?

Так вот — чушь всё это. Сфера ИТ — бесконечна, как вселенная, куча работы будет всегда. Можно или начать писать тесты прямо сейчас, или не сделать этого никогда. Я тут набросал короткий план, как начать это делать за 10 шагов, по шагу в день, по 10 минут на шаг. И когда я говорю «10 минут» я имею в виду не «3 с половиной часа» и не «ну сколько-то времени, лучше побольше», а именно 600 секунд. Если у вас нету в день 600 секунд свободного времени — срочно меняйте проект, работу, профессию, страну проживания (нужное подчеркнуть), потому что это не жизнь, а каторга какая-то. Поехали.
Читать дальше →
Всего голосов 84: ↑72 и ↓12+60
Комментарии63

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

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


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

Вы заметили, как абстракция «интересный автомобиль» обросла деталями и нюансами, стала занимать существенно больше места в тексте и времени на понимание, анализ и ответ? То же самое происходит и с программным кодом.
Читать дальше →
Всего голосов 188: ↑170 и ↓18+152
Комментарии95

Шпаргалка по параллелизму в С++

Время на прочтение1 мин
Количество просмотров26K
Всего голосов 85: ↑78 и ↓7+71
Комментарии9

Шпаргалка по С++11 для печати на кружке

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


Вот захотелось мне такое сделать и я сделал.
Картинка под спойлером


Полноразмерная картинка (на случай если Хабр пережмёт картинку под спойлером). Подходит для печати на стандартной кружке, площадь поверхности 20 х 8.8 см, 300 dpi (ребята в магазине сувениров сказали, что это стандарт).
Шпаргалка, послужившая основой

P.S. Да, я в курсе, что у меня не вышло вместить 1300-cтраничный стандарт на одну кружку. В следующий раз точно получится, я уверен.
Всего голосов 133: ↑119 и ↓14+105
Комментарии42

Плагин к Sublime Text для публикации статей на Хабр

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


Для написания статей на Хабр я пользуюсь текстовым редактором Sublime Text. Почему это хороший редактор на Хабре уже много раз писали (например тут). Есть, однако, при написании статьи момент, когда её нужно переносить для публикации на Хабр, ну, знаете: Хабр->Добавить пост->Название, хабы, текст (Ctrl+C/Ctrl+V), метки, предпосмотр. В этот момент оказывается, что как-то текст с картинками сверстался на Хабре некрасиво, начинаются правки. Править в браузере? Неудобно и небезопасно. Править в Sublime и постоянно копипастить? Неудобно и надоедает.

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

Под катом мы научимся писать плагины к Sublime и разберёмся как из питоновского кода взаимодействовать с Хромом, используя его протокол удалённой отладки. Полный код плагина на GitHub прилагается.
Читать дальше →
Всего голосов 69: ↑66 и ↓3+63
Комментарии20

Секреты Metasploit

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

Вступление


В 2003 году, хакеру, известному как «HD Moore», пришла идея разработать инструмент для быстрого написания эксплоитов. Так был рожден хорошо известный во всех кругах проект Metasploit. Первая версия фреймфорка была написана на языке Perl, содержавшая псевдографический интерфейс на базе библиотеки curses.

К 2007 году разработчики консолидировались, основав компанию Metasploit LLC; в это же время проект полностью переписали на Ruby и, частично на Си, Python и Ассемблер.

В октябре 2009 года, проект Metasploit был приобретен компанией Rapid7 с условием, что HD Moore останется техническим директором фреймворка, на что согласилась компания Rapid7.
Читать дальше →
Всего голосов 91: ↑70 и ↓21+49
Комментарии18

Математика для тестировщиков

Время на прочтение17 мин
Количество просмотров40K
Доклад Никиты Налютина на конференции SQA Days – 13, 26-27 апреля 2013 г. Санкт-Петербург, Россия

Анонс. Новые методики тест-дизайна не всегда рождались одномоментно, не все в инженерной практике может появиться в результате только лишь одного озарения и гениальных идей, увиденных во сне. Достаточно большая часть современных практик тестирования появилась в результате кропотливой теоретической и экспериментальной работы по адаптации математических моделей. И, хотя, для того, чтобы быть хорошим тестировщиком, вовсе не обязательно быть математиком, полезно понимать, какая теоретическая база лежит в основе того или иного метода тестирования. В докладе я расскажу о том, какую базу для тестирования дает математическая логика, теория формальных языков, математическая статистика и другие разделы математики; какие направления, связанные с тестированием, существуют в теоретическом computer science; появления каких новых методов можно ожидать в ближайшее время



Читать дальше →
Всего голосов 32: ↑26 и ↓6+20
Комментарии6

Внедряем TDD с django и postgres

Время на прочтение6 мин
Количество просмотров12K
В Островке есть два основных продукта: для пользователей (ostrovok.ru) и «админка» для отелей (экстранет), куда подписанные нами отели заносят данные. Это отдельные продукты, со своими командами и различным отношением к разработке через тестирование (TDD). Одинаковая платформа: django и postgres. В экстранете используют TDD и у них куча тестов. Поначалу тесты были и в ostrovok.ru, но ввиду ухода части адептов в экстранет и очень интенсивного развития их перестали поддерживать. В общем передо мной встала задача внедрить тестирование. Первые шаги сделаны и хочу поделиться этим опытом и решениями, которые были применены.
У нас есть отдел QA и Selenium автотесты, но это отдельно.

С django и тестами вообще дела обстоят довольно хорошо и конечно лучше с самого начала все покрывать тестами, наращивая функционал и делая рефакторинги.

В нашем случае уже существовал огромный функционал и очень много всесторонних зависимостей и интеграции с внешними API. И нужно, чтоб это все работало в тестовой среде. Про быстрый SQLite в памяти можно забыть, в проекте есть привязки к особенностям postgres, да и идентичность тестового окружения все-таки важна, поэтому тесты тоже работают на postgres.
Читать дальше →
Всего голосов 33: ↑30 и ↓3+27
Комментарии47

Что общего у бала роботов и всемирной выставки 1889 года?

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


Выражение «Гвоздь программы» возникло после всемирной выставки 1889 года в Париже, на которой открытие Эйфелевой башни, которую быстро окрестили гвоздем, произвело мировую сенсацию. башня оказалась шедевром и следующие 40 лет в мире не могли построить ничего подобного.

Мало кто знает, но конструкция эйфелевой башни это не предел инженерной мысли 19 века, это просто прыжок выше головы — ничего подобного эйфелю инженеры не могли придумать ни до, ни 30 лет позже (до постройки шуховской башни в москве в 1922). А все потому, что Эйфель украл свое избретение у природы.


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

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

Мой личный взгляд на freelansim.ru

Время на прочтение4 мин
Количество просмотров37K
image
У меня в очередной раз кончились деньги и я решил немного пофрилансить. В этот раз я решил попробовать «Фрилансим», как новый и развивающийся ресурс. В итоге получился мини-обзор ресурса моими глазами, который быть может кому-то будет интересен (много картинок)
Читать дальше →
Всего голосов 199: ↑119 и ↓80+39
Комментарии78

Дискретная математика для первокурсников: опыт преподавателя

Время на прочтение12 мин
Количество просмотров123K
Сегодня у меня необычный текст, совершенно не связанный с машинным обучением (для новых читателей: этот текст – часть блога компании Surfingbird, в котором я в течение последнего года рассказывал о разных аппаратах машинного обучения в приложении к рекомендательным системам). В этом посте математической части практически не будет, а будет описание очень простой программки, которую я написал для своих студентов. Вряд ли кто-то узнает для себя из этого поста много содержательно нового, но мне кажется, что некоторую ценность представляет сама идея – многие люди просто не задумываются о том, что «и так можно». Итак…

Читать дальше →
Всего голосов 64: ↑57 и ↓7+50
Комментарии35

Сложная предметная область — у кого искать ответы?

Время на прочтение4 мин
Количество просмотров11K
Веб-проекты, как и женщины, бывают разные — умные, красивые, соблазнительные и… мгновенно сводящие с ума. Довольно часто веб-проекты — это сайтики с несложной логикой и понятными технологиями. Завалить такой проект — нужно очень постараться, да и потом совесть будет мучить всю жизнь за лень и глупость.

Но иногда к вам приходит проект вкусный и интересный, красивый и сложный, с выглядывающим из под… дедлайном в следующем квартале. За вечер можно вникнуть только в треть его предметной области — как со стороны функционала, так и технологий. Адреналин (и тестостерон) конечно зашкаливает — решить такую непростую задачу, красиво, очень хочется, но проснувшись утром вы видите, что поседели — безуспешно пытаясь найти алгоритм в полудреме.

Самое страшное начинается по мере приближения подобных систем к дню запуска. Допущенные при проектировании мельчайшие ошибки и недодумки начинают с визгом пропускать воду в кают-кампанию на глубине 5000 метров.
Читать дальше →
Всего голосов 16: ↑11 и ↓5+6
Комментарии10

Видеозвонки через браузер — как заставить технологию работать на свою компанию

Время на прочтение7 мин
Количество просмотров33K
Ну очень интересно было разобраться, как совершать видеозвонки через браузер внутри компании и насколько это полезно. Тем более, что skype — «прослушивается» и пересылаемые пароли парсятся роботами…

Вроде есть Google+ Hangouts и им нередко пользуются — но это все таки не WebRTC и проприетарная облачная технология. Кто знает — не просматривают ли наше совещание по бизнес-планированию коллеги из другой компании-конкурента с блокнотами и неподдельными улыбками на сияющих лицах?

В общем, согласитесь, тема своих, приватных надежных видеопереговоров внутри компании — актуальна как никогда. Многим это нужно, но как организовать-то? У нас — получилось. Это можно сделать достаточно просто, если знать как :-) (изучив десяток RFC, стандартов w3c и их реализаций и докопавшись до причин).

Ниже я постараюсь провести по основным технологическим рискам реализации, на которые пришлось наступить нам и придется наступить скорее всего и вам — а на закуску: краткая технологическая выжимка и бизнесовый TODO, без взрывающих мозг ненужных деталей.
Читать дальше →
Всего голосов 52: ↑43 и ↓9+34
Комментарии18

Лекции от Яндекса для тех, кто хочет провести каникулы с пользой. Дискретный анализ и теория вероятностей

Время на прочтение3 мин
Количество просмотров143K
Для тех, кому одного курса на праздники мало и кто хочет больше, продолжаем нашу серию курсов от Школы анализа данных Яндекса. Сегодня подошла очередь курса «Дискретный анализ и теория вероятностей» – даже более фундаментального, чем предыдущий. Но без него нельзя представить ещё большую часть современной обработки данных.

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



Читает курс Андрей Райгородский. Доктор физико-математических наук. Профессор кафедры математической статистики и случайных процессов механико-математического факультета МГУ им. М. В. Ломоносова. Заведующий кафедрой Дискретной математики ФИВТ МФТИ. Профессор и научный руководитель бакалавриата кафедры «Анализ данных» факультета инноваций и высоких технологий МФТИ. Руководитель отдела теоретических и прикладных исследований компании «Яндекс». (Ещё больше можно узнать в статье о нём на Википедии).

Содержание курса и тезисы лекций
Всего голосов 121: ↑115 и ↓6+109
Комментарии21

Распознавание образов. Метод потенциальных функций

Время на прочтение3 мин
Количество просмотров31K
Здравствуйте, я давно читаю Хабрахабр и часто мне попадались статьи про нейронные сети, в частности про однослойный перцептрон. Но пока еще мне не встретилась статья про другие виды распознающих функций перцептронного вида. Как следует из названия статьи данный вид распознающих функций называется методом потенциальных функций.

Сразу оговорюсь, целью данной статьи является не предоставить работающую программу на основе данного метода, а рассказать собственно про сам алгоритм, на чем он основан и в чем его преимущества.

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

Основные понятия
Изображение — отображение объекта на воспринимающие органы. То есть, описание объекта, как множество признаков. Часто объект представляется в виде вектора. Если множество признаков постоянное, то объект отождествляется с его изображением.
Образ (класс) — подмножество множества объектов или изображений.
Решающая функция — функция, на вход которой подается изображение, определяющая принадлежность объекта некоторому классу.

Краткое описание
Суть данного метода, а впрочем, любого алгоритма, применяемого для распознавания образов состоит в том, чтобы составить такую решающую функцию, которая будет для каждого объекта определять принадлежность его к нужному классу.
В данном случае, решающая функция составляется итеративно, по маркированной обучающей выборке (для каждого объекта из ОВ известен его класс).
Читать дальше →
Всего голосов 32: ↑25 и ↓7+18
Комментарии14

Дискретная математика в «бытовом» применении

Время на прочтение1 мин
Количество просмотров7.9K
Во вчерашней серии футурамы поставили довольно интересную задачку — не мог не удержаться и не разобрать ее тут.
image
Осторожно, спойлер
Всего голосов 125: ↑102 и ↓23+79
Комментарии65
2

Информация

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