пятница, 26 июля 2013 г.

Cinimex и Agile наш подход.

Прошло 2 месяца как мы играем в Scrum.
История.
Шел девятый месяц разработки релиза, который должен был быть выпущен шесть месяцев назад.

среда, 1 декабря 2010 г.

Django, заметки после использования

Давненько я не писал. Набирался практических умений. Думаю пришла пора поделиться некоторыми заметками по использованию Django

понедельник, 14 июня 2010 г.

Java проблемы новичка. Часть 2

Итак, вот ещё набор заметок о том, как использовать Java

воскресенье, 6 июня 2010 г.

Освоение BulkInsert

Хочу поделиться своими впечатлениями о технологии BulkInsert для FireBird.

Возникла задача еженедельного обновления справочника в БД из внешнего присылаемого файла. Справочник оказался не маленьким, примерно 1150000 записей, размер csv файла составляет 26МБ.

На первых шагах, для исполнения задания, было принято самое простое решение, а именно, чтение строки из файла, её преобразование и загрузка в БД.

Проблема возникла в том, что после первой загрузки, удалять данные нельзя поскольку на них могут ссылаться из других таблиц, а значит, что при повторной загрузке, старые данные должны быть обновлены, а новые добавлены.
Для решения данной проблемы была разработана логика по определению того, что необходимо сделать, обновить запись или вставить новую. Как результат всех стараний время работы процедуры составило около 6 часов работы, это примерно по 3500 записей в минуту. Данный результат абсолютно не устраивал и пришлось искать решение.

Пшеничный Николай Юрьевич посоветовал использовать BulkInsert, было обещано многократное ускорение.

пятница, 21 мая 2010 г.

Java проблемы новичка. Часть 1

Маленькая предыстория.
Давно хотел написать программу? которая поможет отвлечься от компьютера на пару минут. Основная её задача - сообщить пользователю о том, что необходимо отвлечься от компьютера и отдохнуть.

Требования к проекту:
  • Программу можно закрывать только в рабочий период;
  • Программа не должна сворачиваться в период отдыха.

Далее я опишу проблемы возникшие при работе над проектом. Проект разрабатывается на Java, место его расположения здесь, используемое IDE - Eclipse.

Поехали.

среда, 21 апреля 2010 г.

python. Как отсортировать массив, как воспользоваться Random, ...

Сегодня на habr habr проскочила очень забавная статья:
Только 10% программистов способны написать двоичный поиск


Я бы сказал что меня зацепило. И стало интересно, а смогу ли я написать его с первого раза.

понедельник, 8 марта 2010 г.

Знакомство с django, Работа с БД.

Сразу скажу спасибо www.djbook.ru, русский перевод онлайн книги http://djangobook.com/en/2.0/, именно отсюда я черпал данные для написания поста. Здесь я попытаюсь кратко описать общие сведения.
Современные приложения не мыслимы без использования баз данных, в связи с этим требуется уделять особое внимание взаимодействию приложений с базой данных. Django обладает мощным api для работы с БД.
Здесь я создам проект, сформирую модель БД, построю таблицы и выполню простейшие 3 действия вставка (insert), обновление (update), удаление (delete).

суббота, 30 января 2010 г.

AutoIt3 и Регулярные выражения

Просматривая статистику входа в блог.
Довольно часто ко мне попадают по запросу "AutoIt3 Регулярные выражения".
Но, к сожалению, у меня нет информации на данный запрос.
Так что, думаю, пришла пора исправить эту ошибку, да и к тому же, оправдать ожидания :).

среда, 6 января 2010 г.

Delphi переделываем цикл For на While

С новым годом!
Так получилось, что руководству захотелось попробовать перейти во всём проекте с Integer на Int64. Причём перейти хотелось малой кровью, простой заменой. Вроде ничего сложного, но есть в этом деле не приятные моменты.
Я не говорю о функциях которые описаны в системных модулях, которым не нравится, что в них подставляют Int64, а не ожидаемый Integer.
Я говорю, о проблеме с циклом For, хороший цикл, и очень часто используется в нашем проекте. Но вот проблема, у цикла итератор может быть только Integer, и что делать? Как быть? Как победить эту напасть?

воскресенье, 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"