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

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

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

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

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

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

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

Хобби

Mar. 31st, 2011 09:03 pm
tebs_s: (Default)
Из хобби у меня квест, футбол, путешествия и программирование для себя прикладных программ. Квест и путешествия ради ребенка пришлось пока отложить. Футбол также стал редкостью по той же причине. А вот программирование никогда не занимало много свободного времени, но при этом приносило не мало удовольствия когда получалось написать какой-нибудь красивый алгоритм и/или его реализацию. Но вот поводов писать что-то красивого не было давно. Вот. Мне кажется я нашел новое увлечение.

Напомню что чуть более 2-х лет назад я присоединился к двум друзьям, которые создали интернет-магазин bshop.com.ua. Я решил взять на себя техническую часть вопроса. Было сложно, сначала ничего не понятно, но интересно. Я тогда впервые столкнулся с php, впервые серьезно столкнулся с html. Многие понятия web-технологий слышал впервые. Было интересно, но не захватывало. Было сложно, и каждое решение проблемы/вопроса приносило удовольствие, но не захватывающее. Может потому что был квест, путешествия... Вот, летом мы продали магазин и я про него как-бы забыл, изредка вспоминая по просьбе нового владельца что там я кастомизировал. Но вот в декабре-январе магазин оставили на меня на месяц, так как владелица уезжала на месяц за границу. Я заметил кучу недоработок, которых раньше не видел. Решил накатить патчи. И понеслось. Давно я не получал столько удовольствия от каждой удавшейся операции, от каждого улучшения, добавления функции какой-нибудь и пр. Я по прежнему не все понимаю что происходит в коде до глубины глубин, но я научился разбираться в чужом коде, научился даже немного самому немного писать. Спасибо [livejournal.com profile] vsquash - он много мне подсказывал. Причем так, что мне приходилось думать, а не тупо копипастить код. Я понимаю что до зарабатывания этим денег мне еще очень далеко, но вот иногда прям хочется бросить текущую специальность и удариться в вэб.
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)
Решил вдруг посмотреть в папку с моими программами. Куча проектов и никакой систематизации. Про половину программ ваще не помнил что писал. Пришлось в некоторые лезть в код, чтобы посмотреть что же там такого я написал :) Решил свести все в единую табличку. Заодно и вам похвастаюсь, что же успел понаписать:
Табличка
И это не считая кучи мелких утилиток, часть из которых выполняла роль тестирования функций, часть просто упрощала рабочие процессы.
tebs_s: (Default)
Где-то месяц назад[livejournal.com profile] vsquash закончил написание своего сервера "Моделирования судеб". Сервер был выставлен в интернет, но не имел GUI, только API. [livejournal.com profile] vsquash даже не знал что с этим делать, несмотря на то, что занимался проектом самостоятельно около 3-х лет. Где-то в тоже время[livejournal.com profile] squirl_ua со своим отцом завершили 2-х летнюю работу над утройством чтения мыслей. Однако аппарат читал только мысли из подсознания, но никак не хотел читать мысли которые человек усердно пытался думать.

Оба эти новатора не знали что делать со своими изобретениями, и поделились своими проблемами со мной. Вот тут и родилась мысль создать комплекс "What If", который бы считывал у желающего мысли с подсознания и заганял бы их в моделятор. Задача состояла в выявлении мыслей типа "а что если бы я (не) сделал что-то тогда-то", причем самых потаенных. А моделятор должен был сказать что бы произошло в таком случае. Приложение было быстро написано мною совместно с [livejournal.com profile] squirl_ua. Стал вопрос в выводе ответа в виде доступном пользователю. Ничего более умного чем визуализация в образах нам на ум не пришло. Подключили 5" экран и туда вывели информацию. Однако образы получались такими странными, что понять мог их только испытуемый.

Проверить в живую не получилось-я проснулся :)

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 Oct. 17th, 2017 04:03 am
Powered by Dreamwidth Studios