tebs_s: (facepalm)
Опишу-ка я историю создания и развития одного анаграммера. Целью этого жизнеописания является желание поделиться опытом и получить отзывы о слабых местах алгоритмов.
Read more... )
tebs_s: (facepalm)
Может кто встречал какую-нибудь табличку ресурсов (времени, тактов, попугаев) затраченных на сравнение различных типов переменных.

Это я вот к чему. Я в курсе, что сравнивать числа быстрее, чем стринги. Но вот насколько быстрее? И насколько дольше (если дольше) сравнивается тип Double по сравнению с типом Byte. Насколько это зависит от языка программирования + компилятора?
Сравнения я имею ввиду и строгие и не строгие.

Сон...

Jan. 22nd, 2013 06:08 pm
tebs_s: (facepalm)
Сегодня днем прилег поспать и снится мне сон. Звонит мне мама одноклассницы и просит подправить исходный код ее дочери. Мол не нравится матери поведение дочери, да и замуж все никак не выйдет. Ну я и полез в исходный код. А код-то чужой, структурированный красиво, но без комментариев. Сижу, разбираюсь потихонечку что-куда. И тут приходит e-mail от одноклассницы на имя меня и ее мамы:
Тема: Внесите правки.
Текст письма: Ниже в письме описаны модули, которые необходимо подправить и собственно сам код, который и надо внести в те модули. И еще, да, мама, я вышла замуж, потому и надо подправить код.


А у меня ступор - какие правки вносить первыми - от матери, или от дочери? И не конфликтуют ли эти правки между собой? И если конфликтуют - чьи правки важнее? И кто потом будет весь этот код тестировать...
tebs_s: (facepalm)
Ну и чтобы совсем зафлудить френд-ленты немного хвастовства. )
tebs_s: (facepalm)
Запишу себе на память. Может кому пригодится.
Может таки пригодится... )
tebs_s: (AVAYA ACE)
В продолжение поста

Вот я вижу несколько путей решения, но вот какой выбрать было бы правильнее?

1) Избавиться от идеи поиска на лету, сделать поиск по нажатию кнопки. Получается шаг назад, но зато ничего сложного в реализации.
2) Сделать задержку с началом поиска. Т.е. при вводе с клавиатуры ожидать условно 500 мсек перед начало поиска. Если не произошло никаких измененений условий поиска - таки начать искать. А вот как определить правильно время задержки, чтобы оно не раздражало пользователя ожиданием? Хотя я думаю оно по любому будет раздражать.
3) Таки да сделать прерываемый поиск. Т.е. прерывать поиск при изменении критериев поиска. Но при прерывании надо будет не забыть обнулить все задействованные переменные. А если прерывать при выводе на экран - еще и интерфейс сбросить. Также прийдется довольно много переписывать кода для вывода результатов.

Но экспертного мнения я еще не слышал :)
tebs_s: (AVAYA ACE)
Что есть:
ПО написано на Delphi7.
Есть некая база данных. На самом деле БД построена на типизированных файлах. Однако при загрузке ПО все это добро читается в память в несколько таблиц и оттуда уже работает. Для поиска используется одна таблица, остальные используются уже при выводе данных на экран.

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

Вопрос.
Как правильно организовать поиск на лету, при условии что поиск в среднем длится дольше, чем пауза между вводом букв с клавиатуры. Как правильно устроить прерывание поиска при условии что оне еще не завершен, а входные параметры уже изменены? Нити? Как их правильно прерывать? Или есть другие варианты?
tebs_s: (Default)
Навеяно постом [livejournal.com profile] yarcheg.

Написал тулзовинку под это дело, и немного даже больше. Думаю она многим может пригодиться. Программа умеет добавлять/удалять языковую раскладку в винде по горячей клавише. Список доступных языков задается файлом 'Lang.dat' в корне программы построчно в формате "код_локали Tab Имя_языка Tab Имя_файла_иконки". Иконки лежат в папке "Flags" в корне программы. Код языка можно взять например по ссылке. Код писать в формате 00000401 (длина 8 цифр, лидирующие нули). При первом запуске программа использует первый язык в списке. Правый клик мышкой по иконке в трее - там можно восстановить окно. В окне настроек можно изменить горячие клавиши и простым кликом по языку использовать его. При добавлении/удалении раскладки появляется соответствующая надпись на экране, которая затрется при первой же прорисовке любого окна в том месте. Можно включить/выключить автозагрузку программы при загрузке системы из меню по правой кнопке мыши в трее.
Ну в общем как-то так. Сильно не тестировал, много исключений не описывал. Если что - жалуйтесь, исправлю.

UkrLang.rar на FileShare.in.ua
tebs_s: (Default)
В догонку к tebs-s.livejournal.com/50208.html. Днем описание работы интерфейса к алгоритмы "из сна" заняло 428 строк. Пришел домой вечером, все нах переделал за 1 час и в итоге около 60 красивых строчек.
tebs_s: (Default)
Сегодня приснился прекрасный алгоритм для программы для квеста... Он такой прекрасный, ИМХО... С утра первым делом записал его на бумагу, а уж потом пошла обычная утренняя процедура туалет-душ-завтрак :)
Кстати, я вот думаю. Это плохо или хорошо что алгоритмы над которыми долго думать и никак не мочь придумать красиво вдруг берут и сняться?
tebs_s: (Default)
Решил вдруг посмотреть в папку с моими программами. Куча проектов и никакой систематизации. Про половину программ ваще не помнил что писал. Пришлось в некоторые лезть в код, чтобы посмотреть что же там такого я написал :) Решил свести все в единую табличку. Заодно и вам похвастаюсь, что же успел понаписать:
Табличка
И это не считая кучи мелких утилиток, часть из которых выполняла роль тестирования функций, часть просто упрощала рабочие процессы.

Profile

tebs_s: (Default)
tebs_s

July 2016

S M T W T F S
     12
3456789
10 111213141516
17181920212223
24252627282930
31      

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 21st, 2017 08:37 pm
Powered by Dreamwidth Studios