Chuvi
ну у тебя же свой бэкэнд, как напишешь, так и будет работать :)
Блин, я пытаюсь снять автоподсказки с инет зависимости, ты мне прдлагаешь аякс. Ну спасибо тебе, чо. ))) Я спрашиваю как лучше нивелировать опечатки, ты мне предлагаешь посмотреть в других фреймворках... Я что, на каком-то другом языке говорю?
Сергей
дам
Chuvi
Ясно, печаль, пойду в другом чате людей попытаю...
AlekVolsk
Я спрашиваю как лучше нивелировать опечатки ты хочешь свой орфословарь забабахать? ))) ну-ну )))
Eugene
уверен есть готовые решения, которые поддерживаются комьюнити, а ты собираешься писать свое с 0
AlekVolsk
вообще потому и используют браузерный автокомплит, потому что он зависит от словарей операционки, это, мать его, та еще технология
Chuvi
Я спрашиваю как лучше нивелировать опечатки ты хочешь свой орфословарь забабахать? ))) ну-ну )))
Я хочу находить слово Чайка по запросу Чвйка, хотя бы. Это в принципе отлично работает, путём вынимания по букве с конца/начала слова на каждом проходе. Но хочется ещё лучше.
Chuvi
Я и другую раскладку в этом случае учитываю даже.
AlekVolsk
еще раз: самое быстрое - это регулярка, иначе то, что ты напишешь - по сути будет той же регуляркой, но сделанной через назад
Chuvi
Ох, ну давай начнём ещё раз этот разговор.
Chuvi
Привет, чат! Есть тут самураи регулярок? Подскажите, пожалуйста, выражение, которое проверит строку на наличие всех символов из заданного набора. Например: при наборе символов "опля", должны пройти проверку строки "поля","заполярный","яблопо" (я не опечатался), но не должны "тополь", "поле", "колбаса", "лоперамидол".
Chuvi
еще раз: самое быстрое - это регулярка, иначе то, что ты напишешь - по сути будет той же регуляркой, но сделанной через назад
Можешь поискать по чату слова "самураи регулярок" и почитать, чтоб не повторяться...
AlekVolsk
да читал, там был нормальный пример
AlekVolsk
и онлайн-генератор тебе давали, давно бы сам тестами выявил бы
Chuvi
Я тут три дня сидел, выявлял. Выяви мне, пожалуйста, если ты так хорош в них.
AlekVolsk
http://baco.su/articles/regulyarnye-vyrajeniya/
Chuvi
http://baco.su/articles/regulyarnye-vyrajeniya/
regex101.com круче, а что ты хотел этой ссылкой сказать? Типа "иди ковыряйся сам дальше"?
AlekVolsk
а ты думал, за тебя все делать будут? на стакоферфлоу поищи тогда, там все халявщики тусуются
Chuvi
Что за меня делать-то я кого-то попросил? Нет регулярки которая мне бы подошла, понимаешь? Я попробовал все варианты из этого чата, которые мне предложили, весь стэк оверфлоу и вагон всякой хрени которая не сработала, или сработала, но не так как хотелось бы. Плюс они медленные. Я переписал всё на for через массив, всё отлично, быстро, опечатки детектирует, раскладку переводит, но хотелось бы чуть более точного вычисления опечаток. И соответственно как результат - чуть более релевантную выдачу.
Chuvi
Поэтому я и пришёл с абстрактным вопросом о детектировании опечаток при вводе.
AlekVolsk
Eugene
https://en.wikipedia.org/wiki/Levenshtein_distance
Chuvi
Что за меня делать-то я кого-то попросил? no comments )))
Ой да ну ладно. Именно, да, попросил, тебя, за меня поработать, ага. Сарказм, чувак.
Anonymous
Регуляркой "примерно подходит" не получится
Eugene
для мисспелов обычно используют алгоритм - "Расстояние Левенштейна" ну так говорит stackoverflow :)
Chuvi
Вот тут уже стало интереснее, спасибо братцы, ща вкурю.
Eugene
https://gist.github.com/andrei-m/982927 вот реализация на js, есть еще на mysql
Eugene
https://github.com/gustf/js-levenshtein
Chuvi
Ну, да, то что надо. ) Щас погоняю.
Eugene
удачи :)
Chuvi
удачи :)
Ну чо. Производительность упала всего в два раза, а точность... Ну я хз во сколько раз выросла. ) Спасибо огромное за идею с расстоянием Левенштейна. Чот как то раньше не встречалс мне этот принцип.
Eugene
просто интересно если будет 500+ городов/объектов, как оно будет отрабатывать можешь на генерировать ?)
Chuvi
не за что) а как само все работает? все на фронте без ajax?
Да, на фронте, без аяйкса. Ну точнее с одним аяксом (по mouseover над полем ввода) за массивом данных (170кб). Он складывается в sessionStorage и в переменную по которой уже и ищется.
Eugene
просто у меня плохая ассоциация с браузерами и их производительностью, мне кажется такой алгоритм должен на бэкэнде обрабатывать и отдавать результат
Eugene
о, а пробовал в localstorage? xd
Chuvi
По слову из десяти букв с двумя опечатками поиск отлично отрабатывает за 55 мсек.
Chuvi
о, а пробовал в localstorage? xd
Это кэш, нафиг он там?
Chuvi
Всё равно сбрасывать.
Chuvi
о, а пробовал в localstorage? xd
Ну и sessionStrage доступен всегда, если поддерживается, а localStorage - нет. В incognito-mode например, он закрыт вообще, ни записать ни прочитать...
Eugene
ах да
Eugene
По слову из десяти букв с двумя опечатками поиск отлично отрабатывает за 55 мсек.
а если таких слов будет 100? у тебя сейчас база из скольки слов?
Chuvi
а если таких слов будет 100? у тебя сейчас база из скольки слов?
А их не будет. Откуда в названии чего-бы то ни было - 100 слов? Даже если их там 100, какой дурной пользователь будет вводить их руками?
Chuvi
15346 записей.
Chuvi
В связи с тем что темпы появления новых географических объектов на территории России невысок (вроде после Крыма ничего отжать не планируют же) да и всяких баз отдыха тоже не плодится как грибов после дождя - я не ожидаю взрывного роста базы в ближайшее время. Если что-то поменяется, возмжно придётся пересмотреть алгоритм. )))
Chuvi
cookies?
Chuvi
А в чём вопрос?
Eugene
ток не путай куки серверные и браузерные ;0
Chuvi
В тех, когда надо что-то хранить у пользователя из того, что надо бы получить на сервере без лишнего мозготрахства. Идентификаторы какие-нить некритичные. Настройки интерфейса, например. Ну или когда ничего более емкого нет. Типа localStorage того же. Но он только для js, на сервер из него передавать придётся аяксом...
Chuvi
Да, но - он очистил куки и поехали заново.
Chuvi
Да. И куки тоже не помешают. С такими целями чем больше загородок тем лучше. )
Chuvi
Обойти всё равно не проблема, но чем больше заборов, тем дольше обходить. )
Chuvi
Ты имеешь ввиду VPN всё же наверное...
Chuvi
Если браузер тот же, то смена IP не сильно поможет. Можно ж по куки, по local/sessionStorage, по user-agent проверять. Есть вон методики сверки пользователя по железу в его компе, но она посложнее конечно. )))
Chuvi
В зависимости от потребностей - её обычно хватает чтобы усложнить жизнь неискушённым пользователям...
Chuvi
Если интересно как вообще можно затрэкать кого угодно - сходи проверься на https://panopticlick.eff.org/, там результаты фингерпринта показывают, по ним понятно как именно отслеживают пользователей в сети. )
Chuvi
Не понял вопроса. Можешь в одном предложении?
Anonymous
Ребят, у кого есть клиенты на лендинг/сайт/интернет-магазин, есть предложение аппселла без трудозатрат вообще. Подробности спрашивайте в лс)
Anonymous
https://t.me/stream_consciousness
Anonymous
ток не путай куки серверные и браузерные ;0
оу, есть ещё и серверные куки? век живи, век учись.... ))
Anonymous
@rejjin
Максим
ну так и что за ошибки? функции существуют?
Anonymous
Кавычки?
Максим
так и он же четко говорит, что setMode не объявлена!
Максим
так и он же четко говорит, что setMode не объявлена!
@steve2ekb функции такой тебя нет. Вот и ругается
Anonymous
Ну дык, SetMode() и setTemp() вначале пропиши перед этой функой...
Максим
Не знаю что у тебя там в учебнике, но в чем проблема я тебе сказал. Ищи листинг указанных функций в учебнике
Anonymous
Пацаны, тут есть кто? Нужна помощь с адаптивкой
Anonymous
Спят верстальщеги, заказов многа у них))
Anonymous
Вдруг кто придёт и предложит решение, буду очень рад.
Anonymous
Anonymous
Пытаюсь неровный край (after / before сделал) адаптивным сделать - при смене ширины блоки эти начинают разъезжаться (точнее, выходить из контейнера родительского, из-за чего появляется полоса прокрутки), сейчас залью на гитпэйджс
Anonymous
У меня основнам проблема в этом просто