Как стать автором
Обновить
112
0
Роман @itspoma

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

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

Знакомство с OCR библиотекой tessnet2 (язык C#)

Время на прочтение5 мин
Количество просмотров60K
example
Буквально на днях у меня появилась необходимость распознать простой текст на картинке и совсем не было желания реализовывать свой алгоритм, т.к. знаком с теорией и знаю, что это не такое простое дело, поэтому сразу решил изучить сначала рынок готовых библиотек. Буквально несколько запросов в гугл и я понял, что ничего более подходящего мне как библиотека tessnet2 невозможно найти. Постоянно читаю хабр и знаю, что тут есть уйма статей посвященных теории OCR и очень удивился, что нет ничего о библиотеке tessnet2.
Читать дальше →

Сборник советов и фактов по оптимизации PHP-скриптов

Время на прочтение9 мин
Количество просмотров45K
image Эту статью давно стоило переписать (слишком много «экономии на спичках»), но руки не доходят. Пускай весит и напоминает о том, как мы глупы в молодости.
Одним из основных критериев успешности любого интернет-ресурса является скорость его работы и с каждым годом пользователи становятся всё более и более требовательными по этому критерию. Оптимизация работы php-скиптов — это один из методов обеспечения скорости работы системы.
В этой статье я бы хотел представить на суд общественности свой сборник советов и фактов по оптимизации скриптов. Сборник собирался мною достаточно долго, основан на нескольких источниках и личных экспериментах.
Читать дальше →

Обфускация JavaScript

Время на прочтение5 мин
Количество просмотров196K
В статье собраны всем известные методы и предельно извращенные. Эту статью я решил написать после недавнего прочтения поста в блоге Badass JavaScript и решил её дополнить своими находками.

Первый способ


Он всем известен — обфускация минимизаторами такими как JS Packer, JSmin, YUI Compressor, Closure compiler или можно просто пугуглить «JavaScript Obfuscator» и найдется ещё сто штук разных обфускаторов.
Они превращают существующий код
function MyClass(){
    this.foo = function(argument1, argument2){
        var addedArgs = parseInt(argument1)+parseInt(argument2);
        return addedArgs;
    }
    var anonymousInnerFunction = function(){
        // do stuff here!
    }
}

В какой-то такой вид:
function MyClass(){this.foo=function(c,b){var d=parseInt(c)+parseInt(b);return d};var a=function(){}};

Или такой:
var _0xd799=["\x66\x6F\x6F"];function MyClass(){this[_0xd799[0]]=function (_0xefcax2,_0xefcax3){var _0xefcax4=parseInt(_0xefcax2)+parseInt(_0xefcax3);return _0xefcax4;} ;var _0xefcax5=function (){} ;} ;

Или вот такой:
eval(function(p,a,c,k,e,d){e=function(c){return c};if(!''.replace(/^/,String)){while(c--){d[c]=k[c]||c}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('4 0="3 5!";9 2(1){6(1+"\\7"+0)}2("8");',10,10,'a|msg|MsgBox|Hello|var|World|alert|n|OK|function'.split('|'),0,{}))

Но ничего не стоит его восстановить с помощью jsbeautifier.org либо просто убрать eval и получить исходный код, многое потеряем, но смысл кода восстановим. Ну и с первого взгляда мы видим, что перед нами JavaScript.

Все это были цветочки под катом жесткие методы обфускации.
Читать дальше →

Простая реализация RC4 на C#

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

Введение


Одно время я играл в одну довольно известную в рунете MMORPG. Потратил на нее довольно много времени, но вскоре игровой процесс мне наскучил. Однако появилось желание узнать как работает игра и попытаться сделать к ней различные прибамбасы. Первым результатом стал кривой бот, написанный на C# и умеющий бить мобов, но он тоже быстро стал неинтересен. К тому времени я наткнулся на форум, связанный со взломом игр и, в частности, тему одного талантливого программиста, который на досуге решил разобрать трафик игры. Это меня сильно заинтересовало и я решил повторить его достижение.

Вооружившись Wireshark'ом я получил несколько дампов и был, честно говоря, ошарашен содержимым. К шестнадцатеричным значениям было уже не привыкать, но вот структуры никакой вычленить было невозможно. Так как опыт в системном программировании у меня совсем небольшой, я решил воспользоваться советами профессионала (автора темы) и попросить у него наводку: в какую сторону копать. Кроме общих рекомендаций, я узнал, что трафик игры зашифрован при помощи алгоритма RC4, а данные сервера к тому же сжимаются (об этом в другой раз). Направление было задано и я начал изучать алгоритм, чтобы реализовать его на C#.

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

Тестирование PayPal Direct Recurring Payments. Проходилка квеста

Время на прочтение2 мин
Количество просмотров9.2K
Если Вы собираетесь прикручивать на сайте поддержку оплаты через PayPal, а точнее Website Payments Pro (WPP), а точнее Direct Recurring Payments, то скорее всего вы уже ознакомились с документацией от самого сервиса: Integrating Recurring Payments.

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

Рецепт быстрого приготовления расширений под популярные браузеры

Время на прочтение2 мин
Количество просмотров1.2K
0147 (1)

Возникла задача написание простенького расширения под все (по возможности) популярные браузеры. Деятельность расширения заключается во внедрении javascript`а в тело документа.
Читать дальше →

iOS SDK — CoreAnimation, программируем красивые кнопки

Время на прочтение3 мин
Количество просмотров5.2K
Многие наверняка сталкивались с необходимостью быстрого создания контролов в мобильном пользовательском интерфейсе. Рассмотрим стандартные кнопки UIButton. Базовый контрол мало устраивает взыскательного заказчика и зачастую стандартное решение, это натягивание на кнопки битмапов состояния. Растянутая ли это картинка или целиком вырезаная кнопка — решение требует дополнительных временных затрат на дизайн пользовательского интерфейса. Хорошо было бы иметь универсальный контрол, с более широкими визуальными возможностями, чем базовый UIButton.
Читать дальше →

Objective-C с нуля

Время на прочтение23 мин
Количество просмотров440K
У любого желающего писать программы для продукции фирмы Apple в жизни наступает такой момент, когда ему приходиться изучить новый язык программирования — Objective-C. Когда-то этот счастливый момент постиг и меня. А чтобы лучше запомнить основные особенности этого языка, решил законспектировать свои мысли во время осмысления его документации, которыми и делюсь с вами.
Читать дальше →

Чуть больше о загрузке самодельных ОС — пишем bootloader

Время на прочтение9 мин
Количество просмотров14K
Не так давно решил чуть получше изучить архитектуру IA-32. А что лучше всего для запоминания? Конечно же практика. Но программируя в ОС мы врядли получим самый низкий уровень доступ к железу без помех. Поэтому для этих целей будем писать собственное подобие операционной системы. То есть проще говоря будем выполнять свой код, сразу после загрузки BIOS'а.
Первой проблемой с которой столкнется желающий программировать на низком уровне — как же загрузить свой код?
Читать дальше →

Как я делал USB устройство

Время на прочтение2 мин
Количество просмотров8.3K
Где-то когда-то я читал, что создатели первой спецификации USB намеревались сделать этот стандарт простым для реализации в железе за счет усложнения программного обеспечения. Таким образом цель была максимально удешевить производство и сделать USB устройства очень доступными. Сейчас можно сказать, что чипмейкерам это удалось, но так ли уж прост для реализации в железе этот стандарт? Боюсь, что ответ не очевиден.



Предположим мне нужно сделать свое простое USB устройство. Какие у меня есть варианты?
Читать дальше →

Flash-приложение под iPad без проблем с размером экрана и пикселинга

Время на прочтение4 мин
Количество просмотров4.1K
Привет!
Прошло не так много времени с тех пор, как Flash стал доступен на яблочных мобильных устройствах. Судя по мануалу из официального пэкэджера от Adobe, сборка Flash-приложения на iPhone — достаточно тривиальная задача.
Однако, дела с iPad обстоят не так, как хотелось бы.

В статье приведен тайный рецепт, как создать Flash-приложение именно под iPad.
Доставляет!

10 интересных jquery плагинов

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

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

HTML5 Video — от А до Я

Время на прочтение6 мин
Количество просмотров238K
Да, да, это очередная статья про html5 и тэг < video >. Но главным ее отличием будет то, что здесь будут рассмотрены самые базовые понятия и теории. Так что приготовились внимательно читать и записывать, let html5 rocks!
Читать дальше →

Впечатляющие анимационные эффекты

Время на прочтение2 мин
Количество просмотров115K
С появлением jQuery, у веб-программистов появилась возможность создавать впечатляющие визуальные эффекты, не прибегая к использованию технологии flash. В данной статье представлено несколько ярких примеров того, каких потрясающих результатов можно достичь, используя стандартные средства браузера и свое воображение.
Читать дальше →

Делаем iphone приложение на Flash CS5

Время на прочтение4 мин
Количество просмотров6.2K
Итак, в связи с тем, что Apple сняли волшебное ограничение и теперь на Adobe Flash CS5 можно официально делать iPhone/iPad приложения (детали: flash-ripper.com), вашим глазам представляется тутор — как сделать это своими руками.

Что сделаем:
Простенький p2p чат

Что потребуется:
1. Adobe Flash CS 5 (качать с adobe.com)
2. iPhone Certificate (не пугайтесь, расскажу где взять)
3. (по желанию) jailbroken iphone/ipad

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

Несколько смешных «404»–страниц по версии журнала Шпигель

Время на прочтение1 мин
Количество просмотров9.2K
Вообще–то немцы употребили слово «Die schönsten», что значит «прекрасные», но, как по мне, они всё же больше смешные, чем прекрасные. Я уверен, что ценность подобных подборок не только в генерации смехуёчков, но и некая педагогически–профилактическая. Подобные подборки сенсибилизируют веб–разработчиков к необходимости создания вменяемых страниц 404. Ведь приложив мышку к сердцу, каждый может вспомнить минуты слабости и лени. Приятного просмотра за хабракатом!
Читать дальше →

Программирование в Mac OS X: пишем для iPhone

Время на прочтение3 мин
Количество просмотров11K
в этом топике я покажу как написать простенькое приложение для iPhone с использованием официального SDK. Заполучить его просто, нужны:
1. Intel-based Mac(хотя и на PowerPC тоже работает, но после некоторых телодвижений)
2. iPhone SDK. Я буду писать на beta 2. Последнюю версию можно получить, зарегистрировавшись на developer.apple.com. Beta 2 можно найти в торрентах
Читать дальше →

«Новый форумный движок XenForo» или «Каким мог бы стать VBulletin 4.0»

Время на прочтение3 мин
Количество просмотров7.8K
Сегодня через одного из моих друзей до меня докатилась новость об анонсе нового форумного движка XenForo. Его авторами являются два уважаемых разработчика Майк Салливан (Mike Sullivan) и Кир Дарби (Kier Darby), благодаря которым мир увидел VBulletin 3.x таким, какой он есть сейчас.

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

Распознавание цифр с помощью простейшей статистики и анализа топологии

Время на прочтение2 мин
Количество просмотров25K
Дело было на третьем курсе, появился у нас предмет ИИС (интеллектуальные информационные системы). Так как я давно интересовался распознаванием образов, удалось выпросить тему «распознавание рукописных цифр». Я решил не возиться с нейронными сетями и придумать что-то свое, простое, но достаточно эффективное.
Читать дальше →

Дополненный jQuery FormNavigate или «не дай юзеру потерять данные»

Время на прочтение3 мин
Количество просмотров2.6K
Однажды на просторах Хабра встретил плагин FormNavigate (требующий у пользователя подтверждения на закрытие вкладки или переход по ссылке, когда данные в форме заполнены, а-ля gmail), а однажды потребовалось его даже применить.

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

Так, например, мне неудобно было выбирать те ссылки, на которых следует отлавливать подтверждения, а наоборот требовалось указывать ссылки на которые действие плагина не будет распространяться. Тут продвинутые разработчики начнут меня закидывать помидорами, что я не знаю правильную работу селекторов в jQuery. Но это не так, сами можете проверить как работает прошлая версия плагина, например, для: $('a:not([class~="ajax"])') (предложенный автором прошлого топика $('a:[class!="ajax"]') вообще вытворяла чудеса).
Читать дальше →

Информация

В рейтинге
Не участвует
Откуда
Украина
Зарегистрирован
Активность