воскресенье, 13 декабря 2009 г.

Принцип поиска в регулярных выражениях

Данный пост должен помочь осознать принцип поиска совпадений. И ответить на вопрос почему выражение находит именно этот текст а не другой.

Первое о чём стоит сказать - это то что существует 2 больших механизма поиска совпадений:
  1. НКА - недетерминированный конечный автомат, механизм поиска основан на возвратах. Также важной особенностью является то что подвыражения в регулярном выражении проверяются независимо друг от друга. Поскольку НКА управляется регулярным выражением, автор выражения может определять ход дальнейших событий.
  2. ДКА - детерминированный конечный автомат, каждый символ в строке проверяется не более одного раза. Т.е. выражение проверяя следующие символы отбрасывает заведомо ложные совпадения и перестает их проверять.

суббота, 12 декабря 2009 г.

Как научить Delphi дружить с RegExp

Приветствую друзья!
Давненько я не писал. Пора возвращаться в колею!
Если кто то из вас пользуется Delphi, то у него наверняка возникала такая мысль: "почему же создатели этого языка не поставляют в комплект регулярные выражения?". Ну у меня точно возникает.
С тех пор как я впервые услышал о RegExp, я постоянно об этом думаю, поскольку на службе приходиться иметь дело именно с Delphi. А используя другие языки, я всё больше убеждался в мощи и удобстве регулярных выражений. И вот, на днях, меня припекло на столько, что сокрушаясь горючими слезами, я чуть было не начал писать RegExp для Delphi самостоятельно.

суббота, 24 октября 2009 г.

Клиент для твиттера

Попытаюсь описать свой опыт работы с NetBeans, Java и библиотеками eseyMock, Mokito, twitter4j при создании зачатка Twitter-клиента.

Ногами сильно не бить, пишу по памяти - так что, что-то могу и упустить, что то и приукрасить. В любом случае, под катом много букв. Я не буду приводить код в топике, дабы не делать его ещё объемным.

воскресенье, 18 октября 2009 г.

UnitTests прежде чем переходить к практике.

Здравствуйте мои друзья. Извиняюсь что давно не писал, как-то навалилось(Да всё навалилось работа, лентяйство, быт ...).
Но за последние 2 недели произошло кое-что интересное. На работе было принято решение внедрять модульное тестирование.
Что из этого получилось попытаюсь сейчас описать.

пятница, 9 октября 2009 г.

Python 3.1 По горячим следам

И вот последовала реакция на предыдущий пост.
Очень рад. Узнал много нового. Но раз уж появилось так много информации оформлю её отдельным сообщением.

Спасибо yamixxx и agibov за предоставленную информацию.

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

воскресенье, 4 октября 2009 г.

Знакомство с Python 3.1

Последние 3 дня занимался знакомством с Python 3.1. Можно сказать щупал его за разные места.
Поставил перед собой простую задачу: Сделать кредитный калькулятор, ты ему сумму кредита, период и процентную ставку, а он тебе график погашения и сумму переплаты.

Задача была разбита на 3 части
1. Получение входных данных для обработки и принятия решения
2. Вычисление платежей и процентных ставок
3. Вывод данных

---------------------------------------------------------------------
Внимание: В процессе написания скрипта я столкнулся с проблемой объявления глобальных переменных. В 3.1 появились такие директивы как global и nonlocal здесь я понял как использовать эти директивы
---------------------------------------------------------------------

вторник, 22 сентября 2009 г.

Регулярные Выражения. Продолжение

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

понедельник, 21 сентября 2009 г.

Перевод MSDN "Проектирование и работа с компонентами данных"

Наконец то я закончил свой многострадальный перевод статьи из MSDN
Designing Data Tier Components and Passing Data Through Tiers
Так что не бейте ногами, переводил как мог. Внашу на всеобщий суд.

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

P.S. С удовольствием исправлю найденные ошибки.
P.P.S. боюсь их будет огромное множество.

суббота, 12 сентября 2009 г.

Как я востанавливал фотки с носителя

В общем случилось самое ужасное. Были в отпуске сделали миллион фотографий, ну не миллион а около 1000 но суть не в этом. Была 1 флешка на 2 Гига. Вот её мы заполнили и скинули все фотки на DVD. Флешка подверглась быстрому форматированию и дальнейшему заполнению.
И вот отпуск заканчивается я и моя ненаглядная супруга приезжаем домой, распаковали чемодан, и решили посмотреть фотки на диске. Вставляем его в привод, а он только крякает. Смотрю я на этот диск и вижу бяку, трещина 3см., но это пол беды диск ещё расслоился, т.е. если надавить в месте трещины диск играет всеми цветами радуги. Ну думаю пришёл холокост фоткам.

суббота, 29 августа 2009 г.

Отчёт по Cofe'n'Cod: Введение в Регулярные Выражения

Сегодня прошла встреча в формате Cofe'n'Cod
Думаю будет неплохо если я опубликую затрагиваемую мной тему.

Тема: Введение в RegExp

Введение.

Регулярные выражения поддерживаются во многих языках программирования и являются по настоящему мощным инструментом работы с текстом. Я постараюсь рассказать про базовый "Словарь RegExp".
Понимание происходящего в RegExp открывает много новых возможностей для программиста и значительно ускоряет его работу.
Пока я не могу отвечать на такие вопросы как "Как?" и "Почему?" я попробую ответить на вопрос "Что?" возможно это и не интересно, но крепкий фундамент и ответ на вопрос "Что есть регулярные выражения" помогут в дальнейшем понимать суть происходящего.

воскресенье, 23 августа 2009 г.

Вот для чего нужен этот AutoIt

Вчера вечером пытался обновить прошивку телефона.
У Nokia есть софтинка "Nokia Software Updater"
Она, проверяет подключен ли телефон, затем ищет обновление для телефона, следующий шаг проверяет состояние батареи, а уж потом только меняет прошивку.
Так вот воткнул я зарядку, подключил телефон через кабель, опознал его в компе. Запустил программулину. Опознала она мой телефон, нашла обновления, проверила заряд и говорит "подожди те пару минут и повторите снова". Подождал немного, снова тоже самое. И так наверно раз 5 прошло. И вот тут то меня и осенило "Вот для чего нужен этот AutoIt"

вторник, 18 августа 2009 г.

Скрипт на AutoIt 3 Копирование текста диалогового окна в блокнот

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

суббота, 15 августа 2009 г.

Первое знакомство с AutoIt

Прошла очередная неделя.
Познакомился с такой интересной штукой как AutoIt. Хочется рассказать, о ней немного и поделиться первым впечатлением.
AutoIt — свободно распространяемый язык для автоматизации выполнения задач в Microsoft Windows. http://ru.wikipedia.org/wiki/AutoIt. И так поскольку к этой теме я уже подхожу третий раз, за последние 3 дня, сейчас опишу впечатления, а в следующем посте приведу простой пример.

Об особенностях языка, и нюансах поговорим позже, по мере его изучения.
Установка заняла считанные минуты. ИДЕ основано на редакторе SciTE, так что имеется предопределённый словарь, который очень легко позволяет работать со стандартными методами.
Я начал работать практически сразу, чтение справки заняло ~ 10-15 минут.
Собрать проект можно в исполняемый модуль exe или скрипт Au3
Исполняемый модуль имеет персональный значок в трее, откуда им можно управлять.
В случае ошибки во время исполнения, выводится сообщение о том, какой в каком месте кода и в каком объекте произошла ошибка.

Скачать AutoIt можно отсюда http://www.autoitscript.com/autoit3/downloads.shtml


С точки зрения использования и понимания очень простой язык. К тому же имеется достаточно подробная справка.


P.S похоже я погорячился с "каждой пятницей", постараюсь постить не реже одного раза в неделю.

P.P.S. Завтра будет пример с описанием.

пятница, 7 августа 2009 г.

Реализация класса, вызова справки из WiKi.

Вступление
И так прошла неделя, а мыслей как не было, так и нет.
Но раз уж я обещал писать каждую пятницу, то буду держать слово.
Попробую определиться с тем, что было проделано за эту неделю.
1. Разбор скриптов на Python
2. Реализация класса онлайн помощи
3. Отлов утечек памяти
4. Поиск ошибок в коде

понедельник, 3 августа 2009 г.

Первая фраза

Постараюсь писать блог каждую пятницу. Может что то и выйдет.