да, это я к тому, что по крайней мере гитара, как физический объект плохо инкапсулируется во «что-то, что умеет воспроизводить ноты», и вряд ли программы когда-нибудь достигнут уровня чтобы можно было делать что-то подобное:
когда с помощью подобных программ можно будет играть Tom Morello, например, будет повод задуматься о «будущем», а пока так, действительно неплохое дворовое развлечение )
Пример с марсианскими локалями несколько неточный. Кто мешает поменять в памяти объект, пусть и описанный константно? И да, если использовать шаблоны (или макросы), то будет предвычислено максимально возможное количество выражений.
а в чем должна была быть проблема? этот фрагмент, конечно, забывает про секунды, но если тип результата позволит их вернуть, то можно просто прибавить их, умножив на 1000000000. разница в том, что здесь нет деления и оно не нужно вообще.
Как-то не очень ясно, зачем было расписывать вещи вроде i << 1, которые любой компилятор сделает сам, если не замечена важнейшая особенность расстояния Левенштейна — достаточно хранить всего две, в данном случае, строки матрицы. Это даст выигрыш и по скорости и по памяти. Плюс код не потокобезопасен.
Да и если вы используете soundex, то какой смысл вообще в редакционном расстоянии?
Даже если есть реальная необходимость его использования, то сначала достаточно поискать точное вхождение soundex кода хеш-поиском, например, а потом если не повезет — уже подбирать варианты.
Это я все к чему. 8 миллисекунд на запрос к базе из 2.5к слов — это пугающий результат. Масштабируемость у вас линейная и всего 312к слов дадут секунду на запрос. К слову, за десятки миллисекунд мы отыскивали нечетким поиском подходящую ДНК секвенцию в базе на десятки гигабайт.
Не очень понятно, причем здесь Explorer. Некоторое время работал с биометрическим оборудованием, так не из злого умысла о эдакой безопасности, а по необходимости оно на такой версии линукса работало, что и находясь за клавиатурой ничего вредоносного не сделать вообще, а тут…
Не хочу начинать холивары о безопасности, но windows — не система реального времени. Как с нее вообще можно серьезным оборудованием управлять? Да и плюс, не так удобно это; те кто писали драйвера знают.
оптимизировать несомненно можно, и по грубым прикидкам раза в 2-3, больше — вряд ли.
я бегло взглянул на исходники, если я верно понял, то оно подбирает один хеш по фиксированному набору символов.
а у меня — множество хешей по фиксированному набору метасимволов (на каждой позиции может стоять слово из словаря из нескольких символов), отсюда существенное замедление (но вовсе не линейно зависящее от количества хешей / длины словарных слов).
www.youtube.com/watch?v=dyPojaJiVA0
LARGE_INTEGER c;
QueryPerformanceCounter(&c);
return c.QuadPart;
а в чем должна была быть проблема? этот фрагмент, конечно, забывает про секунды, но если тип результата позволит их вернуть, то можно просто прибавить их, умножив на 1000000000. разница в том, что здесь нет деления и оно не нужно вообще.
Да и если вы используете soundex, то какой смысл вообще в редакционном расстоянии?
Даже если есть реальная необходимость его использования, то сначала достаточно поискать точное вхождение soundex кода хеш-поиском, например, а потом если не повезет — уже подбирать варианты.
Это я все к чему. 8 миллисекунд на запрос к базе из 2.5к слов — это пугающий результат. Масштабируемость у вас линейная и всего 312к слов дадут секунду на запрос. К слову, за десятки миллисекунд мы отыскивали нечетким поиском подходящую ДНК секвенцию в базе на десятки гигабайт.
Не хочу начинать холивары о безопасности, но windows — не система реального времени. Как с нее вообще можно серьезным оборудованием управлять? Да и плюс, не так удобно это; те кто писали драйвера знают.
dl.dropbox.com/u/243445/md5h/_relevant.txt
но в целом он не очень хорош — слишком много изначально было цифровых комбинаций.
я бегло взглянул на исходники, если я верно понял, то оно подбирает один хеш по фиксированному набору символов.
а у меня — множество хешей по фиксированному набору метасимволов (на каждой позиции может стоять слово из словаря из нескольких символов), отсюда существенное замедление (но вовсе не линейно зависящее от количества хешей / длины словарных слов).
хеш — md5(password + salt) или в другом порядке.