Как стать автором
Обновить
0
0
Андрей Гуренков @Undron

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

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

Национальная платёжная система и ширина лошадиной задницы

Время на прочтение15 мин
Количество просмотров68K
Внезапное отключение российских банков от международных платёжных систем свалилось неожиданнее снега в декабре. Неожиданно выяснилось, что использование платёжных системах вероятного противника может вызывать побочные эффекты вроде валютного запора или дистанционного разрушения банков. Знаете, есть такая фобия — Гимнофобия, что означает “боязнь оказаться голым на публике”. Судя по всему, наше правительство ею не страдает (что могло бы радовать, но — нет). В итоге, все мы оказались именно в таком положении.

Из этого положения есть разумный выход — переключится на Национальную Платёжную Систему вместо вражеских visa/mastercard. Но её не существует даже в виде проекта. Существует лишь законодательная инициатива и смутные желания, этой самой инициативой вызванные. И поэтому огромное количество людей в костюмах сейчас нервничают и требуют начать её немедленную разработку. Собираются заседания, куда вдруг приглашают не только людей в клетчатых рубашках, но даже одного-двух избранных в растянутых свитерах. Приказывают начать разработку прямо сейчас. Ну, или понедельника. Ладно, в этот не успели — начните со следующего. А ещё лучше начать сразу внедрение какой-нибудь системы и одновременно вести её разработку. Как бы не вышло так, что на гос.тендере заказ получит какая-то no-name компания, которая возьмёт, скажем, Кибер-плат, перекрасит, назовёт SUPERVISA, а потом стране с этим жить.

“Кто будет её проектировать и какие задачи каких пользователей она будет решать?” — это на порядок более важный вопрос, чем кажется. Если её будут разрабатывать люди из банковской сферы — то она будет нацелена на создание удобства банкам, а для людей и бизнеса — уж как получится (привет, Сбербанк!). Если её будут делать люди из онлайн-систем, то она в первую очередь будет решать задачи онлайн-бизнеса (банковские задачи им интересны в последнюю очередь). Если её будут делать бухгалтера, то это будет облачная 1С. Если её будут делать Erlang-программисты, то задачей будет показать его преимущества, перед другими унылыми языками. Если её будут делать любители короткошерстных терьеров, то… нет, не хочу даже искать ответ на этот вопрос.

И вот на вопросе об основных принципах новой платёжной системы появляется лошадиная задница..

Что должен знать каждый участник крупного MMO-проекта

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

Рядовые программисты обычно всё это прекрасно знают. А вот менеджерский состав нередко считает, что совершенно не обязательно разбираться в игровой экономике, клиент-серверной архитектуре и психологии игрового комьюнити. Ведь есть же крутая команда спецов, которые обо всём позаботятся.
Итог очевиден: трудно вспомнить хотя бы один крупный MMO-проект, выпущенный за последние два года, который избежал бы стандартного набора граблей. Такое ощущение, что MMO-индустрия не способна учиться на своих ошибках.
Итак, список вопросов, ответы на которые должен знать каждый, от топ-менеджера до работника техподдержки крупного MMO-проекта.
Читать дальше →

Книга «How Google Tests Software» теперь на русском!

Время на прочтение2 мин
Количество просмотров54K
Полтора года назад, когда вышла книга «How Google Tests Software», я загорелась перевести ее на русский язык. Я давно восхищаюсь Уиттакером, я переводила его статьи, слушала мастер-классы и считаю его самым крутым чуваком в тестировании. Тогда я еще работала руководителем отдела тестирования в «Иннове», и компания поддержала мой проект.

С тех пор многое поменялось: я перестала заниматься тестированием, выпускала приложения для iOS, сейчас работаю продакт-менеджером большого веб-проекта. Уиттакер же еще в 2012 году ушел из Google в Microsoft, громко хлопнув дверью.

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

И вот, в январе издательство «Питер» выпустило книгу на русском языке с нашим переводом и дизайном:

Читать дальше →

MySQL шпаргалки

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

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

Читать дальше →

Фантастические сериалы

Время на прочтение5 мин
Количество просмотров122K
Любите ли вы сериалы? Точнее, любите ли вы хорошие сериалы? Конечно, понятие «хорошо/плохо» в искусстве полностью субъективно, поэтому ещё больше уточню свой вопрос: любите ли вы хорошие фантастические сериалы? Полагаю, что подавляющее большинство хабражителей ответят утвердительно. Сегодня я хотел бы рассказать вам о нескольких сериалах, которые стоит посмотреть каждому любителю фантастики.

Светлячок





Если вы ещё не смотрели классику приключенческих фантастических сериалов, «Светлячок», то самое время это сделать. На протяжении 14 (формально — 15) серий мы наслаждались приключениями команды космических наёмников-авантюристов во главе с обаятельным капитаном Рейнольдсом, роль которого исполнил Натан Филлион.
Читать дальше →

Создание игры на ваших глазах — часть 2: Шейдеры для стилизации картинки под ЭЛТ/LCD

Время на прочтение6 мин
Количество просмотров76K
Поговорим на этот раз о технологии. В этой статье я расскажу и покажу, как в Unity создать шейдер для стилизации графики под старые ЭЛТ. Такой шейдер подойдет для пиксель-арта и для стилизации картинки под древнюю технику. Злоупотреблять им не стоит, но иногда использовать к месту — можно. (Специально уточню — я не предлагаю использовать такой эффект постоянно. Но, например, в заставках — он может прийтись к месту).



И сразу оговорюсь — я не владею глубинным пониманием шейдеров, а от читателя жду и того меньшего. Так что буду писать из расчета, что вы про шейдеры не знаете ничего, или почти ничего. И да, я попытаюсь вам пояснить самые базы работы шейдеров, так что если вы ничего о них не знаете — welcome!

Читать дальше →

Постройте из LEGO сооружение своей мечты прямо в Google Chrome

Время на прочтение1 мин
Количество просмотров45K
Что нам стоит дом построить — откройте для себя новый эксперимент Chrome и LEGO «Стройте с Chrome».



Всё началось в Австралии. Пару лет назад Chrome и LEGO затеяли эксперимент — предложили всем желающим застроить виртуальный материк своими безумными сооружениями из виртуальных деталей LEGO. Теперь на карту нанесён весь мир и вы можете построить что угодно и где угодно!
Читать дальше →

Алгоритм построения покрывающих наборов

Время на прочтение7 мин
Количество просмотров18K
Откровенно говоря, ранее я ни разу не занимался в серьезной мере методами тестирования программного обеспечения. Однако, понимаю, что для полной уверенности в том, что программа будет работать, нужно перепробовать всевозможные варианты её использования. Также очевиден для меня и тот факт, что сделать это не всегда возможно. Если имеются конкретные варианты использования, но невозможно проверить их всех в силу их количества, стараются построить набор, который покроет все самые используемые варианты. Но что делать, если использование всех вариантов равновероятно? Как за минимальное число времени обнаружить все ошибки, на которые есть большая вероятность наткнуться? Данная задача действительно известна, и с ней нередко сталкиваются, ну хотя бы, в Яндексе.

Чтобы стало понятно о чем идет речь, представим, что нам необходимо протестировать какую-либо программу или сайт. Очень хорош пример с тестированием веб-формы, скажем, для регистрации или для поиска. Возникает вопрос, с какими ошибками в ней скорее всего встретится пользователь? Пускай у нас в форме имеется 6 вопросов, для каждого из которых возможны 10 вариантов ответа. Допустим, на страницу зашел целый миллион пользователей, и каждый из них ответил уникально. Теперь представим, что в форме для заполнения ответами скрывается ошибка. Если ошибка обнаруживается только при определенной комбинации ответов на все 6 вопросов, то на неё наткнется лишь один человек. Если же ошибка вылетает при наборе определенных ответов на какие-то 3 вопроса, то количество людей, обнаруживших ошибку возрастет до тысячи. Очевидно, что чем меньше элементов в комбинации, требуемой для ошибки, тем больше людей с ней встретится. Соответственно, перед нами теперь стоит задача: если мы не можем обнаружить все ошибки, то давайте хотя бы найдем самые критичные, то есть те, на которые наткнется больше всего пользователей.
Таким образом, мы должны сформировать тест-кейсы (и чем меньше, тем лучше), при переборе которых мы наткнемся на самые легкодоступные ошибки. Допустим, у нас имеется множество вопросов A, которое мы задаем количеством вариантов ответа на каждый из них: А = {2, 3, 5, 2, ...}. Пусть n — количество вопросов, а 1≤m≤n — степень критичности ошибок, она же степень покрытия или глубина покрывающего набора. Чем меньше значение m, тем критичнее ошибка. Задавая степень покрытия мы строим тестовый набор, который позволит обнаружить все ошибки, степень критичности которых меньше данного m. Если m = n, то поиск ошибок сводится к перебору всех вариантов. Чем меньше задаем степень, тем меньше тест-кейсов будет сформировано и тем меньше ошибок мы найдем.
Как составить покрытие?

Packet crafting как он есть

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


Создание пакетов или packet crafting — это техника, которая позволяет сетевым инженерам или пентестерам исследовать сети, проверять правила фаерволлов и находить уязвимые места.
Делается это обычно вручную, отправляя пакеты на различные устройства в сети.
В качестве цели может быть брандмауэр, системы обнаружения вторжений (IDS), маршрутизаторы и любые другие участники сети.
Создание пакетов вручную не означает, что нужно писать код на каком-либо высокоуровневом языке программирования, можно воспользоваться готовым инструментом, например, Scapy.

Scapy — это один из лучших, если не самый лучший, инструмент для создания пакетов вручную.
Утилита написана с использованием языка Python, автором является Philippe Biondi.
Возможности утилиты практически безграничны — это и сборка пакетов с последующей отправкой их в сеть, и захват пакетов, и чтение их из сохраненного ранее дампа, и исследование сети, и многое другое.
Всё это можно делать как в интерактивном режиме, так и создавая скрипты.
С помощью Scapy можно проводить сканирование, трассировку, исследования, атаки и обнаружение хостов в сети.
Scapy предоставляет среду или даже фреймворк, чем-то похожий на Wireshark, только без красивой графической оболочки.
Утилита разрабатывается под UNIX-подобные операционные системы, но тем не менее, некоторым удается запустить ее и в среде Windows.
Эта утилита так же может взаимодействовать и с другими программами: для наглядного декодирования пакетов можно подключать тот же Wireshark, для рисования графиков — GnuPlot и Vpython.
Для работы потребуется права суперпользователя (root, UID 0), так как это достаточно низкоуровневая утилита и работает напрямую с сетевой картой.
И что важно, для работы с этой утилитой не потребуются глубокие знания программирования на Python.
Читать дальше →

Python на Хабре

Время на прочтение7 мин
Количество просмотров453K
Некоторое время назад, в силу определенных причин, мне пришла в голову мысль о том, чтобы начать изучать какой-нибудь новый язык программирования. В качестве альтернатив для этого начинания я определил два языка: Java и Python. После продолжительного метания между ними и сопутствующих нытья и долбежки головой о стену (у меня с новыми языками всегда так — сомнения, раздумья, проблема выбора и т.д.), я все-таки остановился на Python. Окей, выбор сделан. Что дальше? А дальше я стал искать материал для изучения…
Читать дальше →

Изобретаем JPEG

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

Вы правильно поняли из названия, что это не совсем обычное описание алгоритма JPEG (формат файла я подробно описывал в статье «Декодирование JPEG для чайников»). В первую очередь, выбранный способ подачи материала предполагает, что мы ничего не знаем не только о JPEG, но и о преобразовании Фурье, и кодировании Хаффмана. И вообще, мало что помним из лекций. Просто взяли картинку и стали думать как же ее можно сжать. Поэтому я попытался доступно выразить только суть, но при которой у читателя будет выработано достаточно глубокое и, главное, интуитивное понимание алгоритма. Формулы и математические выкладки — по самому минимуму, только те, которые важны для понимания происходящего.

Знание алгоритма JPEG очень полезно не только для сжатия изображений. В нем используется теория из цифровой обработки сигналов, математического анализа, линейной алгебры, теории информации, в частности, преобразование Фурье, кодирование без потерь и др. Поэтому полученные знания могут пригодиться где угодно.

Если есть желание, то предлагаю пройти те же этапы самостоятельно параллельно со статьей. Проверить, насколько приведенные рассуждения подходят для разных изображений, попытаться внести свои модификации в алгоритм. Это очень интересно. В качестве инструмента могу порекомендовать замечательную связку Python + NumPy + Matplotlib + PIL(Pillow). Почти вся моя работа (в т. ч. графики и анимация), была произведена с помощью них.

Внимание, трафик! Много иллюстраций, графиков и анимаций (~ 10Мб). По иронии судьбы, в статье про JPEG всего 2 изображения с этим форматом из полусотни.
Читать дальше →

Использование сканера уязвимостей OpenVAS

Время на прочтение4 мин
Количество просмотров154K
Сканеры уязвимостей — это программные или аппаратные средства, служащие для осуществления диагностики и мониторинга сетевых компьютеров, позволяющее сканировать сети, компьютеры и приложения на предмет обнаружения возможных проблем в системе безопасности, оценивать и устранять уязвимости. (Википедия).
Известными коммерческими сканерами являются Nessus, GFI LANguard, XSpider.

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

Читать дальше →

Задачи с красивыми решениями

Время на прочтение5 мин
Количество просмотров91K
Существует класс задачек, которые в основном передаются из уст в уста, можно сказать входят в математический фольклор. Иногда встречаются задачи с очень красивыми решениями. Ты смотришь на решение, вроде понимаешь каждый шаг в рассуждениях, но чувствуешь себя как будто обманутым. Ты все понимаешь и одновременно ничего не понимаешь. Аналогию, наверное, можно провести, например, с этой оптической иллюзией:

Тут видишь то большой куб с выпиленным куском, то маленький кубик, стоящий в углу.

В этом посте я собрал некоторые мои любимые задачи, решения которых, как мне кажется, вызывают этот неуловимый дуализм чувств: «понимаю — не понимаю».

Читать дальше →

Try jQuery — новый интерактивный самоучитель по jQuery

Время на прочтение2 мин
Количество просмотров72K
Раньше я как-то не стремился глубоко изучать jQuery, поскольку работаю в основном с back-end. Однако самоучитель TRYjQuery, ссылка на который пришла в недавнем письме от CodeSchool, вызвал интерес с первых кадров.

Читать дальше →

Теория относительности в картинках

Время на прочтение6 мин
Количество просмотров370K
В своей статье я хотел бы рассказать о теории относительности. Эта теория не требуется в представлении. С самого своего создания она была окутана ореолом тайны, поскольку полностью подрывает наши привычные представления о пространстве и времени. Все мы в школе учили формулы теории относительности, но мало кто действительно понимал их. И это не удивительно, ведь человеку, чтобы по-настоящему понять какую-то теорию во всей её красоте, полноте и непротиворечивости, не достаточно знать формулы. Нужно иметь какой-то визуальный ориентир, нужна динамика, чтобы было что-то, что можно повертеть в руках. Я решил восполнить этот пробел и написал небольшую программку, в которой можно «повертеть в руках» пространство-время. Мы, как настоящие исследователи, с помощью небольших экспериментов попытаемся выяснить основные свойства этой загадочной материи.
Под катом много картинок (и ни одной формулы).
Читать дальше →

Применяем на практике знания, полученные на курсе An Introduction to Interactive Programming in Python (coursera.org)

Время на прочтение5 мин
Количество просмотров11K
По мотивам этого поста.
В прошедшем 2012 году я, как и миллионы других пользователей открыл для себя бесплатное онлайн обучение. Всё началось с прекрасного стартапа Codecademy. Замечательные курсы про JavaScript, jQuery, Python, Ruby и другие занимали всё свободное время. Побочным эффектом стала практика чтения на английском. К середине года доступные уроки закончились и я стал интересоваться другими площадками, где можно продолжить самообучение. Как раз в то время на Хабре участились статьи про Coursera и я решил попробовать.
Первым курсом который привлек внимание был An Introduction to Interactive Programming in Python от Rice University. Недолго думая, я вступил в стройные ряды онлайн студентов.
Читать дальше →

Обучение программированию через игру или как быстро собрать весь мёд

Время на прочтение5 мин
Количество просмотров44K
Несколько лет назад я начал преподавать свой любимый язык python школьникам. И возникла такая задача: рассказать про объектную модель, но что бы это было не скучно и как можно нагляднее. И тут меня не сразу, но осенило — пчёлы!

Отчего пчёлы и как самому ими порулить

Телевизоры. Часть 1. Типы телевизоров, подсветок и технологий, практические различия

Время на прочтение7 мин
Количество просмотров565K
Здравствуйте, уважаемое хабрасообщество.

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

Новый сервис Dropbox: диалог выбора файлов Dropbox Chooser с поиском и галереей для встраивания в веб-приложения

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

Веб-сервисы постепенно начинают использовать новый сервис Dropbox Chooser, упрощающий интеграцию с Dropbox, и дополняющий уже существующий Dropbox API. В рамках нового сервиса разработчикам предлагается небольшой JavaScript-компонент, который можно встраивать в приложения, и который автоматически публикует или прикрепляет документы.
Читать дальше →

Расширение Lingualeo для Opera и Internet Explorer: переводите слова в один клик и улучшайте ваш английский

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


На прошлой неделе расширение Lingualeo для Google Chrome 23 и 24 получило 100-тысячного пользователя при средней оценке 4.8! Людям нравится, что им легко и удобно пользоваться: два клика по незнакомому английскому слову — перевод.

Теперь насладиться удобством расширения Lingualeo для браузеров могут пользователи Opera и Internet Explorer:
LinguaLeo для Opera 12
LinguaLeo для Internet Explorer 9 и 10 32-bit

Подробности и скриншоты с описанием возможностей расширений — далее…
Читать дальше →

Информация

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

Специализация

Test Automation Engineer
Lead
C#
Nunit
.NET