Вы здесьНайдите десять отличий...
Опубликовано ср, 07/01/2009 - 21:40 пользователем pkn
Хе-хе... P.S. Этот топик не модерируется, как и все создаваемые мной топики.
|
Вход на сайтПоиск по блогам и форумамUser menuПоследние комментарии
нэнси RE:Подайте бедному копеечку на книжку с литреса... 7 часов
Larisa_F RE:Серия "Я познаю мир" издательства "АСТ, Астрель, Олимп",... 1 день Larisa_F RE:Серия "Очень прикольная книга", издательство Азбука-классика 2 дня larin RE:Заблокирован 3 дня alexk RE:Прошу переформатировать, распознать, etc... 6 дней konst1 RE:Серия «Интеллектуальный детектив» изд-ва АСТ 2 недели Larisa_F RE:Серия книг «Судьбы книг» издательства «Книга» 2 недели fixel RE:Пропал абонемент 2 недели sem14 RE:Книжная серия "Жизнь в искусстве" издательство "Искусство"... 1 месяц sibkron RE:"100 славянских романов", серия изд.-ва "Центр книги... 1 месяц Larisa_F RE:Серия "Новые сказочные повести" издательство "Самовар" ... 2 месяца sem14 RE:Серия "Символы времени" издательства "Аграф" 2 месяца tvv RE:faq brainstorm =) 2 месяца Larisa_F RE:Серия "Что есть что" издательства "Слово"(чего не хватает) 2 месяца larin RE:абонемент не обновлен 2 месяца sem14 RE:За иллюминатором (серия) - чего не хватает? 2 месяца sem14 RE:Собираем серию: "Мастер серия", издательство "Лимбус". 2 месяца Larisa_F RE:Книжная серия «Сlio» издательства "Евразия" 2 месяца Впечатления о книгах
Irsanta про Данияр Саматович Сугралинов
06 04 Интересно. «Бывает и хуже» Алмазова и «22 несчастья» Сугралинова с одного образца писались?
Irsanta про Игорь Алмазов
06 04 Интересно. «Бывает и хуже» Алмазова и «22 несчастья» Сугралинова с одного образца писались?
mysevra про Вольнов: Ловчий желаний [litres] (Боевая фантастика)
05 04 Слишком витиевато на мой вкус. Много забавного, но лишнего, не по теме. Оценка: неплохо
mysevra про Каляева: Порождения войны (Альтернативная история, Героическая фантастика, Исторические приключения, Самиздат, сетевая литература)
05 04 Для меня самая мякотка в книге – загадка, возможность строить предположения и угадывать, что же за всем этим скрывается. А тут – хороший язык, яркие персонажи, месмеризм, опять же, но той самой загадки нет, всё на поверхности. Вот это для меня минус. Оценка: хорошо
mysevra про Пинтер: Симулятор убийств [litres] (Детективная фантастика, Триллер, Детективы: прочее)
05 04 Не скажу, что я в восторге, но, в принципе, неплохо. Оценка: неплохо
udrees про Каменистый: Убийца легенд (Боевая фантастика, Фэнтези, Попаданцы, ЛитРПГ)
05 04 Отличное продолжение приключений попаданца в теле аристократа. Написано живо, красочно, с оттенками юмора, без всяких пошлостей. В книге хватает сражений с самыми разными противниками, для которых подбирается своя тактика. ……… Оценка: отлично!
udrees про Володин: Газлайтер. Том 13 [СИ] (Альтернативная история, Боевая фантастика, Фэнтези, Попаданцы, Самиздат, сетевая литература)
05 04 Дурацкая книга о слишком сильном телепате-школьнике, вчера закончившем школу, но успевшем стать супербизнесменом, приближенным Царя, еще и в другом мире захватил пару королевств, женился на 4-х девушках, одна из них не-человек, ……… Оценка: плохо
udrees про Хендерсон: Книга о самых невообразимых животных. Бестиарий XXI века [litres] [IThe Book of Barely Imagined Beings: A 21st Century Bestiary ru] (Биология, Научная литература: прочее)
05 04 Я не очень понял по какому принципу автор отбирал животных для своей книги, я думал тут будут интересные факты о необычных животных, ну ладно там аксолотль. Но тут сборная солянка, все идет по алфавиту и видимо для соответствия ……… Оценка: плохо
udrees про Макнилл: Моргенштерн (Боевая фантастика, Эпическая фантастика)
05 04 Просто пьеса, как у Шекспира и других. Никаких почти действий. Коротенький рассказ-пьеса, где примарх и Ариман идут и разговаривают. Не скажу что было интересно читать. Оценка: неплохо
udrees про Френч: И настала полночь [ЛП] (Боевая фантастика)
05 04 Неплохой рассказик о ночи накануне великого сражения за Дворец Императора. Хорошо показано висящее напряжение, прям как 22 июня 1941 года. Ожидание конечно действует сильнее самого сражения. Оценка: неплохо
udrees про Вальтер: Браконьер 3 (Боевая фантастика, Приключения: прочее, Постапокалипсис, Самиздат, сетевая литература)
05 04 «Ещё год назад я и понятия не имел, что такое боли в спине.» - вот это отрадно читать. Чувствуется что писатель явно не школьник и более менее обладает житейским опытом. Сама книга довольно интересная, написана в том ……… Оценка: хорошо
Yuriko про Кусков: В Россию с любовью (Героическая фантастика, Фэнтези, Самиздат, сетевая литература)
04 04 Поверил аннотации автора, что эта книга - "лютый бред". Не буду читать. |
Комментарии
Отв: Найдите десять отличий...
Это, скорее всего, многодельно. Потому что естественный алгоритм предполагает проверку всех возможных вариантов ника. У меня их, скажем - 7, а у кого-то могут быть десятки...
А альтернативный способ нужно выдумывать. Проще предупредить заранее и забанить нарушителя после жалобы "правообладателя" (ой блин, что сейчас будет!).
Отв: Найдите десять отличий...
У Вас так:
RegExp("[оo]ldv[aа]gr[aа]nt","")
Зато правил не нужно и библиотекари ваще ни причем.
Отв: Найдите десять отличий...
Это-то да.Но предствьте себе RegExp для ника "aaa...aa" состоящего из (сколько там можно?) 32 букафф (ну пусть даже из 16-ти). Хороший путь озадачить сервер.
Отв: Найдите десять отличий...
RegExp("[aа][aа][aа]...[aа][aа]","")
Отв: Найдите десять отличий...
Я же не про то, как написать RegExp, а про то что вариантов для 32 буковок будет 4.294.967.296
Отв: Найдите десять отличий...
Поэтому в базу кладем регэксп и 32 буквами сразу накрываем 4 миллиарда с лишним нахалов
Отв: Найдите десять отличий...
"Если у вас есть проблема и Вы пытаетесь решить ее при помощи регулярных выражений, то у Вас уже две проблемы" (С) Кто-то из великих.
Не знаю как в php но в перле это решается tr'ои типа
tr/укехароси/ykexapocu/
Естетственно список надо расширить учитывая, например Il1 O0 и прочие радости сильно зависящие от шрифта :(
Отв: Найдите десять отличий...
Угу. И потом по этой регулярке просматривать всю базу... Вот счастье-то будет серверу БД...
Отв: Найдите десять отличий...
Не надо так.
Ники lebird и lеbird оба породят "l[eе]bird". ;)
Отв: Найдите десять отличий...
Да нисколько это не сложно. Что сложного проверить каждую букву каждого ника попарно на совпадение, считая, что одинаковые по написанию русские и латинские буквы совпадают? Для Вашего, не самого маленького ника, к приммеру, нужно сделать всего 14 побуквенных сравнений. Для современной тезники это нет ничто. Могу привести пример форума, где побобное сравнение таки делается автоматом.
Отв: Найдите десять отличий...
Возьмёшься сделать модуль для этого?
Отв: Найдите десять отличий...
Увы, не знаю, как это сделать на языках, приемлемых для сайта, но на Паскале это выглядело бы примерно так:
var
Syms: string = "A..ZА..Я0..9 -/.."; //предполагается, что ники могут состоять только из русских и
//латинских букв, цифр и некоторых знаков пунктуации
EQs: Array [xx] of String = "AА", "BВ", "CС", "DД", "EЕ", "F", "G",... //здесь для каждого символа прописываются
//все символы, считающиеся "одинаковыми" для данного символа
//xx - число всех допустимых символов
Function ExistNick(theNick:String):Boolean;
var
i, ltn, lcn: Integer,
cNick, theNick: String;
begin
ExistNick := False;
cNick := "";
theNick := upper(trim(theNick);
ltn := length(theNick);
While GetNick(cNick) do // GetNick - функция выборки очередного ника из базы
begin
cNick := upper(trim(cNick);
lcn := length(cNick);
if lcn <> ltn then Exit;
for i := 1 to ltn do
if not EQSym(copy(theNick, i, 1), copy(cNick, i, 1)) then Exit;
end;
ExistNick := True;
end;
Function EqSym(theSym:char, cSym:char):boolean;
var
pt, pc: Integer,
begin
pt := pos(theSym, Syms);
pc := pos(cSym, EQs[pt]);
EqSym := (pc <> 0);
end;
Отв: Найдите десять отличий...
Паскаль не спасает совсем.
Нужен модуль для друпала, который через hook_user подправит процедуру регистрации.
Русские друпалоиды будут счастливы. А их изрядно пасётся на drupal.ru
Отв: Найдите десять отличий...
Илья, взгляни на http://drupal.org/project/custom_username_validation . На базе этого можно сделать, будет работать? (я что в друпале, что в перле - ни в зуб ногой, но попробовать можно).
Отв: Найдите десять отличий...
А какое решение принято ? Eсли разрешить только латиницу, то
-------------------copy/paste----------------
if($nickname == urlencode ($nickname))
{
return true;
}
else
{
return false;
}
-----------------------------
если замена кирилицы на похожую латиницу, то нужна таблица замен а в остальном
http://ru2.php.net/utf8_encode (UTF_to_Unicode)
Отв: Найдите десять отличий...
Imho, не замена не нужна, достаточно лишь выводить предупреждение о допустимости используемых символов.
Отв: Найдите десять отличий...
Если на сервер 3 раза в 5 секунд могут поступать запросы на регистрацию каких-то aeTоaA..MceBО [32 буквы], каждый из которых будет требовать проверки 4 с лишним миллиарда комбинаций, то может быть лучше "пойти другим путем"?
Имхо, лучше сделать второй список ников в БД, с отконвертироваными в один язык "двойными" буквами, и уже с ним сравнивать аналогичным образом переделаный ник новорегящегося.
Отв: Найдите десять отличий...
Никаких миллиардов комбинаций проверять не потребуется. Алгоритм сверки символов элементарен, просто делается сверка ников, записанных в KOI-8, на вхождение русских и латинских символов. Если имеются символы обеих кодовых таблиц, то они переводятся все в латинские, одинаковые по начертанию (например, k и к - можно не учитывать, и так видно) и дальше сравниваются. Мог бы написать такую прогу на ассемлере PDP-11, но вот современными языками, увы, не владею. Но думаю, что для нормального программера это на составит труда. Конечно, над алгоритмом надо немножко подумать ;). А в дальнейшем следует просто запретить при регистрации использовать смешанный код, т.е. сочетание обеих частей кодовой таблицы - латинских и русских символов, в одном нике, при попытке задания такого ника просто будет предложено пользователю исправить ошибку, и использовать только русские или только латинские символы. Большого неудобства это не вызовет.
Отв: Найдите десять отличий...
Этого недостаточно.
Кириллица: АТАМАН. Латиница: ATAMAH.
Отв: Найдите десять отличий...
Верное замечание ;). Тогда можно легко просмотреть весь ник на использование только визуально-совпадающих лат/рус символов, и запретить его. Т.е. предложить пользователю использовать другой ник, указав на ошибку - типа, "вы использовали символы, неотличимые по начертанию от таких же русских (латинских)". Или - даже без такого пояснения. Ведь запрещают же к регистрации ники, уже имеющиеся в базе, и пользователю все и так ясно. Просто: "вы не можете использовать этот ник, выберите другой". А вот вы попробовали бы на форуме в Альде зарегистрироваться! Там ник подобрать - страшная проблема... И сколько жалоб на это в гостевой - а им до лампочки. Так что это не смертельно.
Отв: Найдите десять отличий...
Я не понял. В чем смысл смешивания латиницы и русского алфавита? В использовании букв для подделки нормальных ников. Так?
А теперь, внимание, вопрос - сколько у нас ников, которые можно подделать используя только другой алфавит?
Отв: Найдите десять отличий...
За 5 минут нашёл 4 ника. Примеры - в личку.
Отв: Найдите десять отличий...
Кидайте. Но за 5 минут, и всего 4, это как раз подтверждает, что я прав. Кроме того, защититься от такого очень просто. Всего лишь зарегить второй ник. Т.е. - подделки будут сверхредкими.
+ еще остается r - г, которое тут не заметили.
Отв: Найдите десять отличий...
практически все AbanSpy- латиница ,AlbаnSру - латиница + кириллица
Отв: Найдите десять отличий...
все проще. теэги перед сравнением приводятся к одному набору символов a'la perl tr
tr/укехаросиIl1/ykexapoculll/И уже затем сравниваются
Отв: Найдите десять отличий...
Т.е. каждому нику ставится в соответствие ровно один алиас, приведенный, скажем, к латинскому набору символов. И хранится в базе. А новые ники тоже приводятся к этому же набору и сравниваются сразу с алиасами?
Отв: Найдите десять отличий...
Именно, точнее к некоторому множеству "непохожих" символов. И никаких десятков, а тем более миллионов вариантов рассматривать не требуется. Просто поиск по индексу при регистрации (только не по нику, как сейчас, а по "алиасу"). И одна сортировка и проход по результату при начальном поиске дубликатов.
Отв: Найдите десять отличий...
Гм. Здраствуйте!
От оно ж как бывает. Ну раз уважаемой публике интересно, то рассказываю по порядку.
В результате неожиданной одновременной утери паролей от своей учетки на Либрусеке и почтового ящика, на который высылался новый пароль, пришлось заводить на Либрусеке новый профиль. Дабы он визуально не отличался от старого в нем действительно две первые буквы заменены на латинские.
Сделано это не корысти ради , а токмо из необходимости.
Хотя проблема поднята правильная, т.к. получается, что на Либрусеке нет защиты от флудеров.
Никто не мешает злым людям зарегистрироваться под известными и авторитетными никами и говорить разнообразные гадости и т.п.
Непонятно, почему до сих пор Либрусек на подвергся столь примитивной флуд-атаке.
Выход вижу простой и незатейлевый. При регистрации автоматически регистрировать ВСЕ варианты написания с учетом заменяемости русских букв на латинские.
У кого то будет несколько дополнительных логинов (например у pkn), у кого то несколько сотен (типа КОМАР, АТАМАН, СТРАХ).
Только так, чтоб было технически невозможно зарегестрировать клон ника, а словесно запрещать как п. 2.1.4. на одном из форумов yurbox , это не серьёзно. Увещевания спамера и флудера не остановят.
З.Ы. Уважаемому pkn выношу благодарность за бдительность.
Отв: Найдите десять отличий...
Скорее Ларину за kill-file
;-)
Отв: Найдите десять отличий...
Предлагаю компромиссное решение проблемы. Ну или оптимизацию (если будете регистрацию переделывать).
Обычно регистрируются или полностью с ником на кириллице или полностью на латинице. Тех кто нарушает это неписанное правило - ну, если не банить, то дополнительно проверить (автоматически или еще как).
Отв: Найдите десять отличий...
Да. Похоже это будет самый простой способ.
Отв: Найдите десять отличий...
Вы таки будете смеяться, но есть выход ещё проще.
Требуется регистрировать ники написанные только латинницей (английскими буквами).
И всё. Никаких больше других кодировок, языков.
Посмотрите на правую колонку сайта "Сейчас на сайте". Вы много видете рускоязычных ников? Я ни одного не узрел. Ибо так исторически сложилось.
Во-первых. Это снимает нашу горячо обсуждаемую проблему.
Во-вторых. Не надо ничего кодить для сайта. Только поставить фильтр проверки для написания ников ТОЛЬКО английскими буквами.
В-третьих, это исторически верно, т.к. в ФИДО кирилических ников не было.
Собственно всё.
З.Ы. Правда есть и ложка дёгтя в это миске мёда. Существующие на данный момент русские ники предётся автоматом перевести в транслит.
Отв: Найдите десять отличий...
Спасибо. Ваше предложение будет обязательно рассмотрено.
Отв: Найдите десять отличий...
А между тем, на многих форумах, при разрешенных кириллических никах, они неправильно отображаются при цитировании. Ближайший пример - внешний форум Либрусека. Там русские ники отображаются в цитатах крякозябрами. Поэтому я тоже сторонник латиницы в никах. А уж напоминание о ФИДО и вовсе настраивает в пользу этого предложения ;).
Отв: Найдите десять отличий...
Ники на латинице, ИМХО, действительно лучший выход, как справедливо заметил Тов.Костя ( не уверен правильно ли написал его ник :) ). А то на русском, на английском. Почему тогда не на польском, украинском или иврите? Однообразие всё же иногда приносит пользу. Это вроде как в некоторых языках программирования, можно идентификаторы писать на любом языке, но жутко неудобно.
Отв: Найдите десять отличий...
В последние годы кириллические ники появились.
Правда, в значительной части конференций ники вообще не применялись! Только "реалнейм"
Отв: Найдите десять отличий...
В годы моей молодости любая уважающая себя СУБД имела функцию "фонетического поиска" - например, слова "райт", "paйt", "right" и "write" по-фонетически совпадают. Может, и тут прикрутить что-то такое?
Отв: Найдите десять отличий...
?! Это какая же такая СУБД ? Простите, драгпререч, не верю (с). Максимум, что видел - поиск по кастрированным регуляркам ( WHERE username LIKE 'Lar*'). В общем случае - работает хреново.
Отв: Найдите десять отличий...
Кстати да, что же это за СУБД такая?
Отв: Найдите десять отличий...
Послушайте, а Вы не контрамот, случаем ? ;)
Отв: Найдите десять отличий...
* - Контрамот - это фантастический человек, живущий из будущего в прошлое.
Отв: Найдите десять отличий...
Я не контрамот, я ЕСник. Из прошлого то бишь. MVT, SVS, СВМ (эс-вэ-эм)... ОС ЕС, короче. А СУБД - навскидку АДАБАС (в девичестве ADABAS). См. также http://www.google.ru/search?hl=ru&q=%D1%84%D0%BE%D0%BD%D0%B5%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B9+%D0%BF%D0%BE%D0%B8%D1%81%D0%BA&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA+%D0%B2+Google&lr=&aq=f&oq=
Отв: Найдите десять отличий...
MFT, VM SP., ДУВЗ... Так это в Natural фонетический поиск есть ? ;) Фигушки - Job not run, JCL error....
Страницы