Search
Write a publication
Pull to refresh
9
0
Олег Савватеев @Savvateev

User

Send message

Теория информации в задаче проверки гипотезы о независимости значений, принимаемых случайной переменной, на примере индекса DJI

Reading time5 min
Views7K
Попробуем проверить гипотезу о том, являются ли приращения значений индекса DJI статистически независимыми. При этом в качестве референсного источника данных, с которым будем проводить сравнение, возьмем искусственный временной ряд, сгенерированный из собственно приращений исходного ряда, но при этом случайно перемешанных. В качестве меры статистической независимости воспользуемся статистикой взаимной информации.

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

Как сделать собственный видео-плеер на HTML5 Video

Reading time9 min
Views198K
Ранее мы уже рассмотрели общие вопросы использования HTML5 Audio и Video и начали погружаться в детали, начав с задачи определения поддержки браузером нужного кодека. Сегодня мы рассмотрим задачу создания собственного видео-плеера на HTML5 Video.


Напомню, что video-элемент сам по себе уже обеспечивает необходимый набор контролов для управления проигрыванием. Чтобы была видна панель управления воспроизведением, достаточно указать атрибут controls.

<video src="trailer_480p.mp4" width="480" height="270" poster="poster.gif" controls />

Однако, как я отмечал в вводной статье, со стандартными контролами есть проблема, которая заключается как раз в том, что выглядят они нестандартно. Другими словами, в каждом браузере они выглядят по-своему (проверить, как выглядят контролы в разных браузерах, можно на примере Video Format Support на ietestdrive.com — просто откройте его в двух-трех различных браузерах).
Читать дальше →

Бот для Flash-игры / Внедряемся в Flash

Reading time5 min
Views58K

В рамках недели ботов для браузерных игр.

Эта неделя богата на статьи о ботах для бразуерных игр.
Во всех статьях для управления ботом использовался AutoIT. Это простой и хороший способ чтобы начать делать бота «в лоб», он не требует никаких знаний об игре, кроме как знания правил и графического интерфейса. Для серверной части игры такой бот вообще будет выглядеть как обычный пользователь, если не брать во внимание невероятную усидчивость и производительность такого игрока.

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

В первой статье я наткнулся на комментарий со ссылкой на пост Adobe Profiler Fail, что побудило меня исследовать эту возможность в целях автоматизации действий в Flash-играх.
Читать дальше →

Yii 1.1 Application Development Cookbook, финальная версия и процесс

Reading time3 min
Views4.6K
Вот и вышел мой англоязычный сборник рецептов по фреймворку Yii.

image

Сначала я немного расскажу про книгу, а потом попробую описать процесс её создания.
Читать дальше →

Полуавтоматический бот для игры «Веселая ферма»

Reading time3 min
Views11K
Добрый вечер читатели хабра! Недавно один человек показал макрос-бота для браузерной игры Diamond Dash, пост. А делал он все при помощи языка макросов AutoIt. И я вспомнил, что для разработки полуавтоматического бота на C# использовал библиотеку AutoIt.
Как я разрабатывал, смотрите ниже…
Читать дальше →

Создаём приложение на С++ с использованием Tesseract-ocr, MinGW и напильника

Reading time6 min
Views31K
Так случилось, что понадобилось нам внедрить в своё приложение возможность распознавания текста, поэтому начались поиски подходящей библиотеки. В конечном счёте остановились на двух опенсорсных проектах CuneiForm Linux и Tesseract-ocr. Внимательное изучение проекта CuneiForm показало, что это просто порт продукта компании Cognitive Technologies, исходники которого они открыли в 2008 году и благополучно забили получив свою порцию внимания (во всяком случае такое сложилось впечатление). По сути весь проект состоял в портировании, а о новых фичах даже речи не шло. Всё это, вкупе с печальной новостью на страничке проекта, заставило нас отказаться от CuneiForm в пользу Tesseract, который в данный момент принадлежит Google, что даёт некоторую уверенность в будущем проекта. Под катом опыт сборки Tesseract-ocr под Windows с использованием MinGW и последующего создания простейшего приложения на С++.
Читать дальше →

Написание макроса-бота для браузерной игры

Reading time8 min
Views53K

Введение


Не так давно на Google+ появились игры. Прочитав топик об этом, я решил во что нибудь поиграть. Выбор пал на игру Diamond Dash. Через некоторое время игры программист во мне заговорил, что однотипные действия нужно автоматизировать. И вот что из этого вышло…

*Примечание: «руками» даже опытному игроку сложно набрать больше 400к

Раньше я никогда не сталкивался с задачами работы с экраном и мышкой. После непродолжительного гугления было решено для решения использовать язык макросов AutoIt.
Под катом вы найдете краткое описание игры, мой способ распознавания поля, алгоритм определения точки нажатия, и некоторое количество оптимизаций. А так же ссылку на github-репозиторий скрипта.
UPD Добавлено видео работы скрипта.
Читать дальше →

Создаем html5 мини-бродилку на CraftyJS

Reading time12 min
Views15K
Хочу раcсказать, как без особых сложностей сделать свою первую мини игру на html5 (если точнее: js, html5, css).

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

Выглядит это все будет так:

осторожно, много букв...

Изображения без width/height

Reading time1 min
Views8.7K
Хорошим тоном считается всегда указывать для изображений, которые мы используем на странице, их длину и ширину. Часто такие картинки, если мы не укажем их размеры, могут во время загрузки раскачивать нашу верстку.
Чтобы во время разработки было более наглядно, где мы пропустили картинки без указания размеров, ребята из 37Signals предложили небольшой, но чрезвычайно полезный сниппет:

img:not([width]):not([height]) {
  border: 2px solid red !important;
}

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

Оригинал статьи

Дерево ван Эмде Боаса

Reading time6 min
Views19K
Всем доброго времени суток!

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

Дерево ван Эмде Боаса (van Emde Boas tree) — ассоциативный массив, который позволяет хранить целые числа в диапазоне [0; U), где U = 2k, проще говоря, числа, состоящие не более чем из k бит. Казалось бы, зачем нужно еще какое-то дерево, да еще позволяющее хранить только целые числа, когда существует множество различных сбалансриованных двоичных деревьев поиска, позволяющих выполнять операции вставки, удаления и прочие за O(log n), где n — количество элементов в дереве?

Главная особенность этой структуры — выполнение всех операций за время O(log(log(U))) независимо от количества хранящихся в ней элементов.

Что же там еще есть такого вкусного?

Пишем PHP extension

Reading time8 min
Views34K
А давайте сегодня взглянем на PHP немного с другой точки зрения, и напишем к нему расширение. Так как на эту тему уже были публикации на Хабре (здесь и здесь), то не будем углубляться в причины того, для чего это может оказаться полезным и для чего может быть использовано на практике. Эта статья расскажет, как собирать простые расширения под Windows с использованием Visual C++ и под Debian с использованием GCC. Также я постараюсь немного осветить работу с PHP-массивами внутри расширений и провести сравнение производительности алгоритма, написанного на native PHP и использующего код, написанный на C.

Писать будем расширение под PHP версии 5.3.

Бесплатная централизованная библиотека кода: Microsoft All-In-One Code Framework

Reading time1 min
Views20K


Начиная решение прикладной задачи, удобно было бы посмотреть на простой пример её реализации в коде. Ещё больше хочется иметь возможность попросить кого-нибудь написать тебе пример, чтобы вооружившись им разбираться уже со своей конкретной задачей.
Читать дальше →

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

Reading time9 min
Views2.9K
Как и у всех программистов, недавно у меня возникло желание изобрести собственный “велосипед”. Так как изобретать свою CMS, Framework, и т.д. уже не актуально, то мой взор обратился на каптчу. Казалось бы, что тут можно придумать оригинального, каких только каптч не существует: 2D-картинка, 3D-картинка, звуковая каптча, выбор “правильной” картинки. Но мне пришла в голову мысль, что создатели каптч думают как-то однобоко, то есть все хотят получить однозначно правильный ответ от пользователя (и обычно в тестовом поле), причем в простом виде, серверу лишь остается сравнить ответ с исходными данными! Вот я и решил исправить это дело и создать собственную “умную” каптчу.

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

Интересный прогресс-бар

Reading time5 min
Views39K
В данном обзоре я хочу показать как можно расширить возможности компонента Progressbar плагина jQuery UI. Для начала поставим перед собой задачи, которые мы и будем решать:
  • прогресс-бар должен быть динамическим, т.е. «бежать вперед» (заполняться) с течением времени
  • возможность задавать параметры «бега» бара
  • удобство визуального использования. К примеру отображение текущего процента заполнения прогресс-бара

Остановимся подробнее на параметрах «бега». Бар можно параметризовать различными образами: задавая время запуска, шаг и период; время финиша, шаг и период; время старта, время финиша и шаг. Я остановился на последнем, т.е. для инициализации нашего прогресс-бара достаточно указать время старта, время финиша и шаг.
Читать дальше →

Прогноз погоды своими руками

Reading time3 min
Views34K
Каждый из нас ругал синоптиков, когда оказывался под дождем, не имея в руках зонта. В топике я расскажу Вам как сделать прогноз погоды на основе модели WRF (Weather Research & Forecasting Model) на несколько суток вперед.
Читать дальше →

Imperavi: удобный и действительно красивый JS WYSIWYG редактор

Reading time1 min
Views22K
В продолжение темы о красивой и удобной JS визуализации (http://habrahabr.ru/blogs/javascript/124899/) хочу рассказать вам о WYSIWYG редакторе, на который сегодня случайно наткнулся.

Вы наверное часто используете различные WYSIWYG редакторы в ваших проектах. Я их тоже часто использую, так уж получается, что они очень нравятся секретаршам и т.д. нашим пользователям.

Таких редакторов существуют десятки, но все они мне почему-то не нравилисись: то выглядит уж очень топорно, то работает совершенно криво. В конце концов я остановился на TinyMCE. Он хоть и ужасен на вид, но рабоет стабильно.

И вот сегодня я совершенно случано наткнулся на редактор, который мне полностью подходит:
  • работает стабильно
  • выглядит очень стильно
  • написан на jQuery

Имя этому чуду – Imperavi.
Попробуйте сами и думаю, что вам понравится.

Скриншот:
image

UPD
Более новая версия редактора: http://imperavi.ru/redactor/.

Эффект Кембриджского университета

Reading time2 min
Views42K
Перемешивание букв. Эффект Кембриджского университета.


По рзелульаттам илссеовадний одонго анлигйсокго унвиертисета, не иеемт занчнеия, в кокам пряокде рсапожолены бкувы в солве. Галвоне, чотбы преавя и пслоендяя бквуы блыи на мсете. Осатьлыне бкувы мгоут селдовтаь в плоонм бсепордяке, все-рвано ткест чтаитсея без побрелм. Пичрионй эгото ялвятеся то, что мы чиатем не кдаужю бкуву по отдльенотси, а все солво цликеом.
Тема очень старая и гуляет по интернетам давно, но везде приводится как пример один и тот же текст, мне было интересно попробовать данный эффект на собственных текстах, в результате чего и родилась эта программа.
Читать дальше →

Знак рубля на сайте: экспресс-метод

Reading time2 min
Views105K
Знак рубля

Задача


Без лишней головной боли начать использовать знак рубля на сайте.

Идея


В свободно распространяемых (в том числе для использования в вебе) шрифтах PT Sans и PT Serif среди символов есть и знак рубля. Если использовать эти шрифты на сайте, то для решения задачи можно обойтись без лишнего html-кода, css-бубнов, векторной графики и прочих джедайских извращений.

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

Кто разводит рыбок? Или решение загадки Эйнштейна регулярным языком

Reading time5 min
Views36K
Многие сталкивались с головоломкой про пять разноцветных домов, в каждом из которых живет человек со своими любимыми животным, напитком и сигаретами. Эта загадка приписывается Эйнштейну, хотя прямых подтверждений этому нет. Полный текст этой головоломки есть на википедии.



Ее можно решить на бумаге или в уме, последовательно исключая неподходящие варианты. Однако, ее также можно решить более технично. Один из способов — написать программку на прологе. Но здесь я хочу ее решить используя более простые механизмы — регулярные выражения. А именно, перевести условия загадки на язык регекспов и свести задачу к поиску подходящей строки во всем допустимом наборе строк. Кстати, этот набор строк показан на рисунке.

Интересно? Прошу под кат.

Взлом матановой капчи на C# — это просто!

Reading time4 min
Views42K
В этом топике я хочу вам рассказать о взломе т.н. «матан-капчи», пример которой был представлен в недавнем топике Матановая капча на PHP — это просто!.
Прочитав статью автора об этой замечательной капче, мне захотелось написать программу для её распознавания, как говорится just for fun ;)
Читать дальше →

Information

Rating
Does not participate
Location
Тамбов, Тамбовская обл., Россия
Date of birth
Registered
Activity