Pull to refresh

Comments 167

Очень мало таких осталось )

[*] Эха не для переживаний.

Неужели еще столько живых фидошников осталось ) Вам же минимум за 45-50 уже должно быть )

Неужели еще столько живых фидошников осталось

е дождётесь!

Вам же минимум за 45-50 уже должно быть

Почему "должно быть" — есть!

Это в ФИДО с 3го класса чтоли? Респект!

нет, где-то с рубежа нулевых - причем под конец активности уже вовсю over IP сидел.

ну кто хотел - мог продолжать по старинке по паре мегов ехехех выкачивать на диалапе, а я предпочитал удобство.

38)) у нас ноды по диалапу были доступны ещё в начале 2000х

А с 98го у меня был адрес 2:5058/ххх.22

2:5088/13.3 на связи. Тоже сидел с конца 90х и первую половину 00х. Сидел строго на мопеде, когда перешли на IP то даже при наличии у меня ADSL я всё же вышел из системы. Сеть 5088 продержалась примерно до 2016 года и последним узлом перед её удалением из нодлиста был 13й... 45+, фото тех дней:

Роботикс) курьер — это прям мечта на то время, у меня был аккорповский мопед)

А усилок прям слезу ностальгии вышиб! Прям плюсую!

Ну да, бузинес модем. Для простых крестьян был обрубок Шпрот. Но мне повезло. :)

Для крестьян были винмодемы, а шпрот был ничего!

Не правда. Винмодемы были для чисто виндузятников. А для бедной касты крестьян были всякие внешние СОМ портовые гениусы и акорпы. А из виндузятников мало кто вообще даже про BBS даже слышал, им сразу гипертекстовый фидонет подавай!

Под виндой бывало работали по лучьше аппаратных. И автоответчик и определитель номера, все шуршало чуть не из коробки.

Угу, до тех пор пока не было большой нагрузки на CPU, например из-за запуска компиляции или просмотра фильма.

Ну, заикание винампа в моменты дозвона - это же тёплые воспоминания... Правда, ещё вместе с ним и мёртвая мама после грозы. Всякое бывало.

Кое-кто пытался даже вообще унифицировать и протянуть AMR. Мол, раз это всё равно звук, давайте к кодеку AC97 подключим сопрягалово с линией. Слоты видел, карточек - нет. Не взлетело, не фартануло.

Это случайно не Socket-A на картинке? AC97 это же 2003й год где-то?

Конкретно на этой картинке - да, Socket A. Но он был и на Socket 370. Вот Chaintech 6AIA4, у меня была такая в 2002м как раз. AMR тут между ISA и PCI:

Это просто чуть разные исторические периоды. К тому моменту, как появились винмодемы, спортстеры уже допилили до более-менее пристойного состояния.

Да речь то не про это. Шпрот всё равно был подороже того же Акорпа или Гениуса. Ведь он был популярным и на него существовали кастомные прошивки известных авторов под АТС СНГ и прочие заморочки, особенно с ловлей Бузи. А к моменту появления винмодемов практически все виндузятники без затей перешли на них пышто никаких лишних проводов, всё работает "искаропки" и стоит сущие копейки по сути.

Да чё там, у меня на машине с виндой был Гениталиус Люсент, а у знакомого - Гениталиус Коммерсант (Connexant). Они, кстати, на удивление, очень чётко держали линию на 46,6к+ у меня, старый район города, старая АТС и плохие кроссы (особенно в межсезонье). Там только Куря выдерживал, а внешние Акорпы с Гениусами сливались в 33,6к максимум и те не стабильно.

Что то про IDC забыли, а они на декадно-шаговых АТС хорошо бегали. Правда, я свой купил уже после того, как отвалился от ФИДО - туда ходил флоппинетом, домашнего телефона не было.

Это уж когда v.92 появился. Классические модемы больше 33600 не умели, а до того вообще только HST/ZyX.

Ну какой v92 на декадно шаговых... IDC 2814 BXL умел только 33600 на v34 - но умел хорошо.

IDC, конечно, да. У меня был IDC 2814BL. Потом поменял его на доставшийся по случаю ZyXEL U-336E. До сих пор на полке стоит.

да почему? 37
на заре нулевых был поинтом (класса с девятого), а потом нодом 2:5054/74

Вам же минимум за 45-50 уже должно быть )

А разве это много?)

А разве это много?)

Можно даже сказать — в меру упитанный мужчина в полном расцвете сил!

FoxPro ещё. Там русская р была каким-то служебным символом изначально.

ТЕСТ! МЕЯ ВИДО?

Старый фидошник молодому:

- Можешь так: HHHHHH
- ет...

Да помню, у меня был русификатор (назывался vrun, http://old-dos.ru/index.php?page=files&mode=files&do=show&id=3402

)

Автор - программист из нашего города (Йошкар-Ола), уехал в Израиль давно уже.

Там всё автоматон заменялось, ничего настраивать не надо было.

Ну в самом деле, у любой русскоязычной NLP есть функции приведения к норм алфавиту и норм написанию

А еще есть римские цифры, которые к (моему великому удивлению) используются в адресах улиц. Так что "в лоб" не получится.

видел как в 2008 в одном гос-икубаторе секретаря заставляли шуршать сайт госзакупок а она жаловалась что поиском никак не работает - через год-два оказалось что на тендер намерено выставляли текст из смешаных алфавитов / на хабре чего-то не гуглится про это

Частая практика.

Была как-то давно история одна. Лет 10 назад. 6 часов жизни коту под хвост. Надо было с ФТП забирать файлы с расширением ".1c"... Я тогда перепробовал штук 10 разных библиотек которые с ФТП работать умели. То есть вот через FAR файлы есть, а через фтп-клиента их нет. Я тогда изучил все режимы работы ФТП протокола. Узнал кучу тонких настроек.

Ну кто же знал, что человек-из-1С не скопирует маску имени файла из ТЗ, а набьет ее руками.

И вот с тех пор всегда сначала проверяю буковки прежде чем начинать ломать библиотеки, клавиатуру и голову.

Такое разве в школах-институтах еще не дают в качестве лабораторных работ? 😳

Ещё и опасно https://ya.ru/search/?text=%D0%B2%D0%B5%D1%81+%D0%BD%D0%B0+%D0%BA%D0%B0%D1%80%D0%BC%D0%B0%D0%BD%D0%B5

У меня только один вопрос — какому такому наве́су строит домик соловей?

А у меня вопрос - кто, блин, первый начал ставить запятые между подлежащим и сказуемым?

Это если у нас не предложение с двумя сказуемыми, первое из которых опущено — в разговорной речи такое бывает: "Соловей с лисой {сидят} в лесу, строят домик."

Прежде чем вы начнете ругаться, стоит заметить что этот стих был взят из какой‑то старой советской книжки для детей, еще 30х годов. Правила пунктуации вполне могли поменяться с тех лет.

А где вы добыли такой раритет?

Я этот текст видела в книге 17го года издания. Этого века))

{сидят}

{Живут}{лежат}{поселились}{проснулись}{находятся} ...

И всё-таки больше похоже не на отсутствие глагольной связки, а на обычное двусоставное предложение.

Да я не спорю, но сова вроде как налезла.

Сова такая непредсказуемая)

"Соловей с лисой {сидят} в лесу, строят домик."

Согласен, в такой интерпретации запятая нужна. Но постоянно вижу эту несчастную запятую в простых предложениях вроде "Мама, мыла раму".

"Мама {ругалась на жизнь, плевалась на папу, плакала навзрыд}, мыла раму".

Или

Мама: "Дочь, ты что, не мыла раму?"

Дочь: "Мама, мыла раму! Целых два часа я её мыла"

Дочь: "Мама (сидела), мыла раму! Рабы (сидят), не мы (стоим)!"

:)

Это запятые прилетели с тех мест, где перестали вводные слова выделять ими, видимо.

Как пользователь скринридеров, могу сказать, что на самом деле это архиважно для некоторых категорий людей. Я не знаю, откуда пошла эта фигня, но в последнее время часто встречаю в русскоязычных текстах ë вместо ё (для тех, кто не понял, латинское E с диэрезисом/умлаутом — короче, с двумя точками сверху). Как это читают синтезаторы, — ни в сказке сказать, ни пером описать. Да и на дисплее Брайля выглядит, мягко говоря, странно.

Вообще идея осветить данную тему возникла после разборок с выгрузками государственного реестра адресов (ФИАС), когда обнаружились адреса с перепутанными символами, которые разумеется не находились при полнотекстовом поиске.

Так что проблема шире и массовей чем кажется.

Этот список надо отправлять каждому, кто считает что «нейросеть скоро заменит программистов», для осознания реальности.

Буква ё - это вообще песня.

Учился в СГАУ имени С. П. Королева, и в требованиях к учебным документам (курсовые, дипломы и вот это всё) была норма, что замена ё на е не допускается.

При этом как минимум одна "неправильная" е была в любом документе - на титульном листе, в фамилии Королёва. Так сложилось, что в полном наименовании университета фамилия великого конструктора была когда-то вписана через е.

При этом ясности нет даже внутри вуза - в разделе "Контакты" фамилия написана через ё, а в разделе "Реквизиты" - через е.

Всё правильно. В контактах написано по-русски, а в реквизитах написано по уставу.

Например, нефтяная компания «Лукойл» в уставе называется «ЛУКойл».

Это на самом деле уже другая особенность русского языка: наличие огромного количества как реальных так и воображаемых правил.

Например многие слышали про реформу языка, что хотели отказаться от буквы «ё» в 90х, но вот чем это закончилось помнят единицы. Плюс путают правила произношения и написания.

Так что вариации "ё-е-о" вы будете видеть в документах еще много лет.

чем это закончилось помнят единицы

И так не только с правилами русского языка. Так часто бывает с любыми освещаемыми событиями. Люди хватают то, что услышали, но совершенно не интересуются, чем дело закончилось. Часто встречаю подобное, когда говорят о законопроектах, указах и тд. Особенно если учесть, что за ними надо следить на всех этапах. Бывает,что "законопроект о том-то внесён на рассмотрение" в жизни превращается в "а то-то уже разрешили/запретили, в новостях вон про закон говорили". И понеслась...

Да да, как раз характерный пример )

Теперь спросите коллег как они это пишут и почему — в 99% случаях будет «как встроенная в браузер проверка орфорграфии скажет».

Спросите коллег

В 90% случаев они скажут "What? Speak English, please."

Соль на рану, конечно

Слышала что-то об этом, когда кофе ещё был, а не было...

Подождите, а что реально есть программисты, которые считают, что похожие буквы из русского и английского - это одно и то же? Это даже не уровень джуниора. Это уровень стажёра, который вчера посмотрел развлекательное видео про программирование, а сегодня собрался писать свою игру, где можно грабить корованы.

Вам пример в статье с ошибочно названным классом JPA Entity ни о чем таком не сказал? А это между прочим из одного очень большого проекта, созданного уважаемыми компаниями. Которые даже тут (на Хабре) присутствуют.

IDE такое уже очень давно подсвечивает (я имею в виду пример из статьи). Конечно, в обычном тексте такое будет немного сложнее найти. Но если в очевидном тексте не находится очевидная подстрока, то это повод проверить коды символов. Я сам с таким несколько раз сталкивался при парсинге.

IDE такое уже очень давно подсвечивает

Год назад вроде в Idea добавили, в других средах не видел.

Это не от незнания так назвали. Это сначала в названии сделали опечатку, а потом исправили, но не переключили раскладку, после эмм, общения в мессенджере, допустим. Видел такое в моем проекте, но с буквой эс. Ошибки сделал человек, закончивший магистратуру в ИТМО, так что вариант с незнанием отпадает.

Полагаю гадать дальше почему такое произошло не будем? Тогда расскажу как описанная проблема обнаружилась, так сказать "в назидание".

Кириллическое «c» попав в имя Java‑класса успешно прошло через компиляцию, загрузку этого класса в рантайме и разбор парсером метаданных Hibernate — никто и нигде даже warning не показал.

Затем отработала генерация схемы данных — в СУБД Postgres успешно создалась таблица с кириллическим «c» в имени, вместе со всеми foreign key и sequence.

Затем началась эксплуатация и все очень даже неплохо работало.

Так вот обнаружилось это только когда схему данных базы попытались развернуть на новом сервере, где не был юникод по-умолчанию. Через пять лет.

Это обратная сторона знаменитого «Unicode everywhere» — да, с технической точки зрения кириллические символы что в именах классов что в именах таблиц в базе теперь полностью легальны и поддерживаются.

Но только о похожести кириллических и латинских букв вам не скажет ни Java ни Hibernate ни база данных.

а название класса на что-то влияет?

Я не в курсе JPA (это Java?), но в C# можно классы на русском называть и это отлично работает.

Зато я теперь знаю, что разбор такого глюка делает из уверенного миддла прожженого синьора.

Без разбитой клавиатуры не считается!

Это не особенность русского языка. Это особенность используемой кодировки (в части "а у немцев/французов/испанцев этого нет").

Везде где есть заполнение каких-либо форм и ввод данных пользователем существует и описанная проблема с похожими символами.

Так это проблема - на самом деле проблема забывчивости / непредусмотрительности / лени программиста, забывшего прописную истину, что "абсолютно любой пользовательский ввод должен быть полностью валидирован". Или, может, это проблема излишне ограниченного бюджета, в который валидация не поместилась.

большинство вводимых текстовых данных происходит в поля форм в браузере или в приложении — вставить туда подобную проверку каким‑то универсальным способом невозможно.

Вот как раз в браузере эта проверка и не нужна никому. Хотя бы потому что у автора браузера нет никаких критериев, они появятся только тогда, когда в браузере начнётся взаимодействие определённой веб-страницы с определённым пользователем. Соответственно никакой проверки там и нет.

А вот если валидация нужна на определённой странице определённого сайта (код которого написан определённым программистом) - то см. выше.

Это не особенность русского языка. Это особенность используемой кодировки (в части "а у немцев/французов/испанцев этого нет").

О как, не знал что существуют кодировки европейских языков с таким же сдвигом кодов как и у кириллицы — пример не дадите?

Насколько знаю, подобное встречается только в Азии, где локализация пошла по другому пути нежели в Европе.

Так это проблема - на самом деле проблема забывчивости / непредусмотрительности / лени программиста

"То что вы назначили ответственного за проблему, еще не значит что проблема решена" (ц) мой декан.

Тем более в столь сложной вещи как разработка ПО.

Нет никакого сдвига кодов.

Просто "с" и "c" - это разные буквы, и не имеет значения, что они выглядят одинаково. И если бы это имело значение, пришлось бы считать одинаковыми или разными одни и те же буквы в зависимости от того, каким шрифтом они написаны, что вообще не имеет смысла в большинстве контекстов.

А "f" и "f" - одна и так же буква, и не имеет значения, что она используется в нескольких языках.

Посмотрите тут.

Просто "с" и "c" - это разные буквы, и не имеет значения, что они выглядят одинаково

Не очень понял, вся статья как раз про то что есть буквы из двух разных алфавитов, которые выглядят одинаково.

А в случае немецкого или французского, большая часть букв алфавита — из латыни, поэтому действительно:

  "f" и "f" - одна и так же буква, и не имеет значения, что она используется в нескольких языках.

Не очень понял, вся статья как раз про то что есть буквы из двух разных алфавитов, которые выглядят одинаково.

Так вот и непонятно как раз, в чём именно посыл автора, и есть ли в нём заблуждения, и где именно :)

Что бывают разные буквы, которые выглядят одинаково - думаешь, хм, несколько странная тема для статьи, вроде как сильно неудивительный сам по себе факт. Удивляешься.

А потом вот вы говорите - сдвиг кодов, как в кириллице. И думаешь тогда: а, наверное, автор думает, что буквы-то одинаковые, но по какой-то причине именно в русском языке надо этой букве присваивать сдвинутый код, хоть это и та же самая буква?

Упоминание контраста с европейскими языками, опять же, добавляет непонятности.
Контраста между двумя языками с латинской письменностью, понятно, нет: буквы именно те же, потому что из одного алфавита.
Контраста между двумя языками с кириллической письменностью (например, русский и сербский), опять же, понятно, нет: буквы именно те же, потому что из одного алфавита.
А контраст между латинским и кириллическим языком - непонятно зачем и упоминать: там вообще все буквы разные, ни одного совпадения.

Что бывают разные буквы, которые выглядят одинаково - думаешь, хм, несколько странная тема для статьи, вроде как сильно неудивительный сам по себе факт. Удивляешься.

У большинства высокообразованных людей (из тех с кем я лично был знаком) есть одна неприятная особенность: они думают, что все остальные люди образованы не меньше них.

Выйти за рамки такого мышления и попытаться взглянуть на мир глазами идиота необразованного человека — дорогого стоит.

То что вы пишете, подразумевает наличие у вас как профильного образования так и определенного опыта, иначе понимание факта что «бывают разные буквы, которые выглядят одинаково» возникнуть не могло.

У условной девочки‑студентки, которая вбивает записи в базу на пол‑ставки, (внезапно) нет вашего опыта, зато есть клавиша «C» на клавиатуре и переключатель раскладки, про который она временами забывает.

Такие девочки и мальчики не закончатся вообще никогда, поэтому в данных вводимых пользователем всегда будут подобные ошибки.

Вот чтобы исправление подобных ошибок не приводило к нервным срывам и разбитым предметам мебели — как раз и была написала эта статья. Написана специально максимально доступным языком, чтобы поняли даже самые современные разработчики. Даже на Node.js.

Упоминание контраста с европейскими языками, опять же, добавляет непонятности.

Ре‑использование латинских букв в европейских языках дает еще один интересный эффект для их конечных пользователей: у них не бывает полностью нечитаемого текста — той самой «абракадабры» или символов «???» так знакомой отечественным пользователям.

Что я и хотел показать в статье.

Ре‑использование латинских букв в европейских языках дает еще один интересный эффект для их конечных пользователей: у них не бывает полностью нечитаемого текста — той самой «абракадабры» или символов «???» так знакомой отечественным пользователям.

А вот тут кстати есть интересная история. Была такая кодировка - KOI-8, во времена кодовых страниц. Это значит, что нижние 128 символов (которые помещаются в 7 младших бит) те же, что и в подмножестве ASCII (латиница, знаки препинания и управляющие символы), а старшие 128 символов - в зависимости от текущей кодовой страницы системы будут соответствовать символам какого-то алфавита (или например графическим элементам, были кодовые страницы со всякими стрелочками и прочим).

Заглавная латинская "D" в ней имеет (как и в ASCII) код hex0044 (0100 0100 в двоичном виде), а маленькая кириллическая "д" - hex00C4 (1100 0100). Различие только в самом старшем бите. То есть если какой-то софт не может работать с восьмибитной кодировкой и отбрасывает этот бит, то текст, закодированный КОИ-8, всё равно будет читабельным, например, вместо "Вопрос" будет отображаться "vOPROS" (инвертированный регистр укажет на то, что что-то пошло не так).

Это получилось в результате того, что КОИ-8 является развитием КОИ-7, где русские буквы кодируются теми же кодами, что и похожие латинские, и отдельными управляющими кодами переключается язык.

Это Вы с 866 путаете.

Надо было, конечно, поразвёрнутее пошутить, но 866 - это ВюяЁюё, а бНОПНЯ - это KOI-8R

В статье вообще-то все в Unicode и не про кодировки вообще, но продолжайте ) Молодежь должна знать истоки )

бНОПНЯ - это KOI-8R

Да, Вы правы — это когда оригинал в 1251, а показывается в KOI-8R

Разумеется я читал Джоэла и даже когда-то настраивал KOI8-R в юниксах )

Есть один важный момент, о котором рожденный в США Джоэл не говорит, просто потому что это не может придти ему в голову:

все эти проблемы с кодировками, юникодом и юникодом — проблемы «негров», периферии (с их точки зрения)

Если вы купите клавиатуру в самом США, на ней будут буквы только английского алфавита, как и 30 лет назад.

Так что у самого Джоэла никогда не было всех этих заморочек с кодировками, не было и не могло быть проблем с вводом адресов, чтением смс и так далее по списку.

Поэтому несмотря на все его знания о юникоде, изложенные в статье, типичный пользователь из США не испытывал, не испытывает и не будет испытывать всего спектра проблем с мультиязычным вводом.

Если вы купите клавиатуру в самом США, на ней будут буквы только английского алфавита, как и 30 лет назад.

Так что у самого Джоэла никогда не было всех

Это потому что Джоэл из США, но есть куча стран, которые не пользуются кириллицей, и вполне могут сталкиваться с проблемами символов, например:

Ιs thıs reaƖƖy somethіng new for you? Ηow many strange characters do you see here, ƅaƅy?

тут я навскидку штук 10 символов подменил.
У меня больше претензия к автору статьи, что он считает эту проблему уникальной для русского языка. В то время как это не так, и есть много стран, где используется больше одной раскладки, и естественно есть проблема копи-пасты.

Это можно поправить простеньким кодом, проверяющим раскладку большинства используемых букв и автозаменяющим буквы не той раскладки по Таблице Частых Ошибок. Если вариант замены в таблице отсутствует, считать это авторским стилем и оставить как есть.

зато есть клавиша «C» на клавиатуре и переключатель раскладки, про который она временами забывает.

у них не бывает полностью нечитаемого текста — той самой «абракадабры» или символов «???» так знакомой отечественным пользователям.

Ну, текста одними только знаками вопросов я на польском языке не видел, но вот тексты с вырезанными ą ę ł ó ń ś ź ż регулярно попадаются, и их отсутствие читаемости не способствует, мягко говоря...

Есть еще одна особенность европейских языков: из-за того что носителей каждого конкретного языка мало а самих языков много, у них регулярно бывает что народ таскает тексты через Ctrl-C Ctrl-V, видит общие латинские буквы и думает что скопировалось и вставилось правильно.

Визуально отличить какой‑нибудь шведский от датского не так просто, а большая часть букв у обоих — из латыни.

Видел такое регулярно, особенно если вводом занимался какой-нибудь местный индус, которых там очень много.

С польским полагаю все тоже самое.

Иногда бывает просто кривой софт, который не задумывается о символах, не входящих в латинский алфавит.

Помню анекдотический случай, когда один из крупнейших банков потестировал пуш-уведомления с доп. символами прямо на проде 😀

Скрытый текст

Надо отдать их SMM-щику должное. Буквально через пару часов они поменяли своё лого на фейсбуке на ęśąćż и написали пост, в котором обозначили "Польские буквы - работают ✔".

Скрытый текст

есть буквы из двух разных алфавитов, которые выглядят одинаково.

Только не вздумайте сказануть это при профессиональных щрифтовых дизайнерах, а не то они Вам насуют полную панамку о шрифтовых традициях и почему кириллические и латинские буквы рисуются по-разному, хотя для слепого и похожи.

У Испанцев есть такие буквы, что UTF-8 на них ругается.

Про ОКАТО можно двухчасовую программу для стендапа написать. Там прикол на приколе.

Они хоть прикол с Чувашией поправили с тех пор, как я туда заглядывал? Там случайно вбили "Чувашия" в список единиц административного деления, то есть Россия у них состояла из городов федерального значения, областей, автономных округов и чувашии Чувашия. Даже рассылка была, что косяк они заметили но исправить пока не могут потому что у кого-то большого всё падает.

Так что наличие названий с английскими буквами и ноль вместо О, домов и квартир с номером u32:MAX_INT, стоит ожидать.

Я вам даже больше скажу, исправив английскую букву на русскую вы обнаружите, что и такой объект в базе уже есть, причём добавлен позднее. Так и от какого же из двух объектов брать ID? При том, что при нестыковке ID в двух документах из разных источников, кое кто попадёт на оборотные штрафы?

Они хоть прикол с Чувашией поправили с тех пор, как я туда заглядывал? 

Эм.. нет.

что и такой объект в базе уже есть, причём добавлен позднее.

Там вроде как историчность и есть даты действия записи плюс признак активности. С их учетом вроде дублей не было.

А есть ссылки что почитать про Чувашию и ОКАТО? Что-то сходу не получилось нагуглить

Семь, кажется, лет назад это было.

Надумано. В тексте случайно другая буква не может оказаться. Разве что в обозначениях. Ну, как не сэкономить время, вбивая название треугольника АВС?

С русскими буквами теперь не просто. Раньше (в MATLAB'е?) я мог создавать каталоги с русскими буквами в имени каталога, а теперь (в OCTAVE) не могу. Может быть, и в более ранних версиях OCTAVE мог. Сейчас уже не проверить. Что могло измениться во временем?

а я вот хорошо помню как меня где-то в 89-90 годах пугали что можно препутать букву О и цифру Ноль '0', и потом долго искать почему программа не работает, тогда это были не компилируемые языки , и описания ошибок были очень не многословные, если вообще были. С тех пор я перечеркиваю ноль при письме.

По моему проблема сильно устарела, похоже на какое-то дежа-вю, но школьные годы вспомнить всегда приятно.

По моему проблема сильно устарела, похоже на какое-то дежа-вю

Угу как черная кошка в первой "Матрице", означает что где-то рядом агенты )

Если серьезно, то эта особенность врядли в обозримом будущем перестанет быть актуальной ввиду самого факта ввода на двух разных языках. Пользователи всегда будут ошибаться, даже если им подсвечивать такой ввод как «ошибочный» или «подозрительный».

Весь используемый в статье инструментарий кстати свежий и актуальный.

где-то в 89-90 годах пугали что можно препутать букву О и цифру Ноль '0', и потом долго искать почему программа не работает, тогда это были не компилируемые языки

А что же это были за "некомпилируемые языки" в 89-90х? Не поделитесь?

Так Бейсик с номерами строк. Или язык Рапира с кириллическим синтаксисом. Вполне себе некомпилируемые.

Честь и хвала столь пожилым ветеранам индустрии, но дело в том что я свой первый компьютер увидел только примерно в 1996м — на ~30 лет позже вашей Рапиры. Так что для меня этот период примерно как саги о викингах — что‑то очень и очень далекое.

Ну я например не знал что бейсик (не visual) был интерпретируемым, тем более в столь далеком прошлом. И конечно ничего не знал о "Рапире" до вашего упоминания.

Википедия пишет, что Бейсик на момент создания был компилируемым, но это 60-е. В 89-90х интерпретатор Бейсика часто прошивали в ПЗУ и он ничего никуда уже не компилировал. Для "Агата" интерпретатор на дискете был ещё (на той же, где и "Рапира").

Так-то, наверное, Лисп ещё - не назовёшь прям "некомпилируемым языком", но что-то в литературе обычно упоминаются только интерпретаторы.

У любой вменяемой реализации Лиспа есть и интерпретатор, и компилятор. Но изложение в литературе удобнее вести про интерпретатор.

Другое дело, что зачем вообще писать на Лиспе, если не использовать eval?

Кстати, для чего сейчас интепретатор? REPL уже давно без тормозов работает с компиляцией (скажем, в sbcl).

Тут надо для начала договориться о терминологии. Я бы программу, реализующую REPL, назвал интерпретатором (как бы она ни была устроена внутри), а генерирующую объектный или исполняемый файл - компилятором. Что не отменяет, конечно, возможности jit.

Классическому компилятору сложно, например, реализовать динамическую область видимости.

Я, наоборот, программу, генерирующую бинарный код для процессора, называю компилятором, независимо от того, как используется результат. Согласен, что сгенерировать эффективный код с динамической видимостью проблематично, но при поддержке рантайма работать с ней в компилированном коде вполне можно.

ну да бейсик был с номерами строк, учительница велела нумеровать через 10 чтобы можно было строки добавлять :), еще фортран который вообще не помню (правда там помнить нечего - стандартный набор), PL/1 - помню в нем структуры можно было объявлять, а начинался курс с програмирования калькулятора кажется МК-81, шестнадцатиричными кодами, алгебра Буля, логические схемы реализации арифметических операций которые теперь мне очень напоминают то что пишется на VHDL.

Но то что символы можно перепутать это было какое то общее предостережение, безотносительно к определенному языку вроде.

Тогда даже наши преподаватели - они были женщины и им большая благодарность потому что как-то они могли построить процесс обучения так что мы больше сами разбирались и нам было интересно, хотя не всем конечно, так вот даже преподаватели с удивлением вместе с нами открывали для себя новое и неизведанное в рамках какой то еще не совсем понятной дисциплины.

В старые времена (до IBM PC) на клавиатурах совпадала раскладка для кириллицы и латиницы, поэтому возможностей ошибиться таким образом было больше.

О-0, 1-l-I - классика жанра разнообразия дизайнерских шрифтов, даже и сейчас бывает попадается.

Зато какой простор для всевозможных мошенников в Телеграме!

Я один раз видел намеренно перепутанную кириллицу с латиницей.

Это была страховая РЕСО, 2017 год. Я делал у них страховку два года, хотел оформить в третий раз, но вписать туда жену, которая только что получила права.

Проверяю данные, ввожу номер диагностической карты, второго водителя, расчёт - 12300 рублей против ~6000 в прошлом году. А дальше начинается цирк. Приходит мне SMS-код подтверждения (13 знаков - буквы, цифры, спецсимволы) - ввожу, ошибка. Перепроверяю - ошибка. Перекидываю через Телеграм на комп - оказывается, в коде смешана кириллица и латиница. А вставка через Ctrl+V в форме на сайте РЕСО не работает. Ввожу, проверяю. Копирую оттуда, проверяю CRC32 скопированного из формы (то есть того, что я ввёл вручную). Сравниваю с CRC32 из SMS - совпадает. Но всё равно сайт сообщает, что код неверный. Попробовал раза четыре, плюнул - если они так себя ведут на этапе "Я хочу им заплатить", то что будет в другую сторону?

вставка через Ctrl+V в форме на сайте РЕСО не работает.

Поскольку в большинстве случаев код для сайтов пишется в лучшем случае недо-миддлами, то заблокировать RMB -> Paste они не догадываются — а против особо догадливых есть RMB -> Inspect и прямое редактирование HTML.

P.S. Кстати, это было PECO или РЕСО?

Есть, но зачем?

Если они не хотят брать мои деньги - не надо, оформлю страховку в другом месте.

но зачем?

Затем, чтобы, например, написать Вам сейчас этот ответ, потому что в недавнем апдейте хабропроггеры что-то поломали, и вставка (всеми методами, кроме последнего) вызывает в консоли ошибку и, соответственно, не работает — приходится вставлять через прямое редактирование HTML. Буруму доложено, но уже неделю как не чинят.

Мы небольшая команда ветеранов ИТ‑индустрии

Ну и ветераны пошли...

"Кто за терминалом PDP не сидел то жизни не видел" ? Ну увы, мы еще не настолько старые )

Уровень интриги напомнил один пост компании PVS Studio вида "что не так с этим кодом на C++?" Хорошо хоть я думать долго не стал, потому что не считаю себя знатоком заморочек C++, ибо "не так" оказалось в каком-то "#define true false", который они для краткости опустили.

Так и здесь: "Ну нифигассебе, это чо это, это как это?!... (минуту спустя) А, это аффтар кириллицу с латиницей намешал." Выглядит надуманно, какую-то информационную ценность представляет разве что скриншот про "JPA сущности", в смысле, интересно узнать, что так всё-таки реально бывает. Пример с адресами из комментов тоже нормальный. Лучше бы больше примеров из реальной практики, где подобное действительно может встречаться, чем детсадовские объяснения про кодировку кириллицы - их-то кто ж и так не знает?

Уровень интриги напомнил один пост компании PVS Studio 

Спасибо я старался ) Компания и продукты кстати замечательные, например их анализатор кода я успешно запускал на FreeBSD в прошлом году.

какую-то информационную ценность представляет разве что скриншот про "JPA сущности", в смысле, интересно узнать, что так всё-таки реально бывает.

В Питере есть один интересный мост, на котором висит большими буквами объявление «Газель не проедет», тем не менее каждый год там стабильно застревают несколько Газелей.

Дело не в «информационной ценности» — она у обьявления на мосту сильно выше, она в тотальном пофигизме: «если кажется что это правильно — это правильно». Так и живем.

Эх, вместо того, чтобы подвесить копеечный ограничитель высоты - они надписи пишут и газели из-под мостов выковыривают...

Скрытый текст

Если водитель крышей о металл стукнется, то вряд ли под мост поедет.

Надпись "Газель не проедет" - пример ужасной организации дорожного движения.

донам газельеро какой-то ограничитель не указ, точно так же продолжат застревать - но еще и накладные расходы на ремонт ограничителя добавятся.

(и по итогу там, помнится, проезд вообще закрыли нафиг целиком)

Ну почему же. Стукаешься, останавливаешься, спускаешь подушки, и едешь. Правда, не на Газели.

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

Скрытый текст

С газелями это не работает. Вы путаете их с водителями магистральных фур. Газелисту надо "вот прямо здесь и сейчас, я ж не дурак, это дурак не проедет, а я проеду... упс....", а не эти глупые ваши предупреждения.

Как-то давно читал на каком-то форуме (и картинки смотрел). Далее пересказ. "Есть такой проезд под мостом. Знак ограничение высоты установлен, надпись на мосту "Газель не проедет!" написана. Но все равно периодически доставали оттуда застрявших газелистов. Оказывается народ то смекалистый, подъезжает такой газелист к проезду видит ограничение высоты, думает на спущенных колесах "проскачу". А там какая-то неровность на дороге и просвет видимо меньше. Так вот эти "умные" и застревали. Надпись добавили "Газель не проедет! Даже на спущенных!" Не знаю насколько поможет."

Удивительно, но в других европейских языках подобной проблемы нет

А как же греческий?

А вот не знаю, никогда не сталкивался. Если есть опыт — поделитесь.

И к слову, в отличие от русского, большинство таких букв на тех же клавишах где и латинские.

Более того, часто в греческом тексте в смсках буквы которые совпадают с латиницей берут из латиницы (видимо чтобы по одному байту использовать), потому любой переводчик впадает от подобных текстов в ступор и перевести такое можно только распознавая текст со скриншота.

Ну т. е. вам спокойно можно писать вторую часть этой статьи, благо озвученный уровень скотства поразит даже «бывалых сидельцев экспертов» )

Для "лиги ленивых" - ссылка на блок греческих букв в юникоде

видимо чтобы по одному байту использовать

По 7 бит, в кодировку GSM-7 входят греческие буквы, но только заглавные и при этом отличающиеся по написанию от латинских.

А если хоть один символ не из этого набора использовать, то это уже другая кодировка будет с сильно меньшим лимитом по символам.

А ещё бывают пробелы и отсутствия видимых пробелов, которые не видны, но приводят к ошибкам.

На самом деле это куда более редкая проблема, поскольку такие символы обычному пользователю ввести с клавиатуры сложно.

Ну и ключевая-то проблема в похожих символах это требование контекста:

"Cтойка рулевая для а\м Mercedes AMG СLK"

В такой фразе уже нельзя «в лоб» заменить все латинские С на кириллические — затрется латиница в словах Mercedes и CLK и (например) сломается полнотекстовый поиск.

Тут нужна сложная логика определения принадлежности соседних букв — если рядом стоящие символы — из кириллицы, тогда заменяем.

Представляете теперь каково Яндексу c его поисковиком? )

А ведь есть еще сленг и просто опечатки — та же история с «c» это чаще всего просто опечатка когда забыли раскладку переключить.

А уж с началом известно чего и появлением всевозможных ZаVOротов...

На самом деле это куда более редкая проблема, поскольку такие символы обычному пользователю ввести с клавиатуры сложно.

Ввести сложно, скопировать и вставить - легко. Иногда даже ненамеренно, копируешь таблицу, вставляешь в текстовое поле, и появляются табы.

Совершенно надуманная проблема.

В любом языке я могу сделать также. Поставить себе кириллицу или еще какой-нибудь язык и написать английскую фразу с некоторыми иными буквами.

Это не проблема, а заморочка.
Да, если пользуешься несколькими кодировками, нужно про это не забывать. Но это не особенность "русского языка, это просто кодировки.

Ιs thıs reaƖƖy somethіng new for you? Ηow many strange characters do you see here, ƅaƅy?

Все компьютеры используемые в РФ имеют минимум два языка ввод — русский и английский

Не говорите за всех. Огромное количество машин живет с одной раскладкой и в ус не дует.

А почему никто не пишет про сам код автора, который он так великодушно отдаёт (пишется минут за... две?). А этот код:

1) меняет все "латинские" слова и аббревиатуры, которые легко могут быть в тексте, на смешанные.

2) работает неоптимально, так как дважды обращается к словарю и излишне вызывает lower/uppercase.

Вывод: код к реальной жизни не пригоден.

P.S. Кстати, неплохая задачка для себеседования.

1) меняет все "латинские" слова и аббревиатуры, которые легко могут быть в тексте, на смешанные.

Выше по переписке я уже отмечал что надо делать в случае контекста и смешивания языков в одном предложении. Код все же дан в качестве примера а не руководства к действию.

2) работает неоптимально, так как дважды обращается к словарю и излишне вызывает lower/uppercase.

Покажите свою?

P.S. Кстати, неплохая задачка для себеседования.

Если ваша компания называется Google - возможно, если нет то такой задачей вы скорее отпугнете.

В качестве примера? Типа, без него народ не догадался бы? Мда.

Свою не покажу, это же очевидно (особенно для такооо профи, как автор)

Задача в целом, если только именно для иностранных языков и кирилицы, вполне для собеседования. Чего тут страшного?

Свою не покажу, это же очевидно

Значит своей реализации у вас нет, но мою покритиковать вы не постеснялись, я правильно понял?

Задача в целом, если только именно для иностранных языков и кирилицы, вполне для собеседования.

Ну попробуйте как-нибудь задать такой вопрос, расскажете потом о результатах.

Неправильно поняли. Я же написал - эффективная реализация очевидна.

Ожидалось кровопролития, страшного бага в реализации std:: string.. кровь, кишки.. А тут чижика съели буква с и c отличается..

Можно посоветовать автору поиграться в нормализацию входных данных. Преобразовать все похожие по начертанию символы в правильные, и там искать. А подсвечивать оригинальный текст.

Метод, описанный в статье, лежал в основе добавления пары седых волос учителя по информатике, когда на его заявление "на диске нельзя создать два файла с одним и тем же именем" мы создавали файлы, подменяя буквы с одинаковым глифом в шрифте. Золотое было время...

Я незрячий пользуюсь специальными программами, которые синтезаторами речи озвучивают экран и сразу, с первой секунды чтения, понял, в чем проблема. Вот это кстати для нас проблема большая. Визуально символы похожа, а чтение такими программами затрудняется

Ничего не понял. Как можно перепутать раскладки, печатая текст про лису в лесу навесу?

Могу показаться неотёсанным быдло, но суть путаницы русских букв и английских кажется настолько глупым.

Отсутствие нахождения результатов по нахождению слов может быть из-за кодировки.

Данные темы мне кажется глупо разжёвывать людям, кто погружается в it-сферу, кому надо, тот в 9 классе про кодировку все слышал.

Удивительно, но в других европейских языках подобной проблемы нет

А болгарский в этом плане чем принципиально от русского отличается?

Да не только в русском языке такая беда.
Лет 20 назад решал подобную задачу когда емаилы не отправлялись.
Потом видел гос систему где справочники адресов были по нескольку раз задублированы, потому-что пользователи могли в любое место буковку латиницы добавить и корпус А это уже не корпус A .
Да и сейчас периодически попадается, но я уже на чеку.

Т.е., погромист поленился сделать фильтрацию или быстрый поиск с подставлением, а виноват пользователь?

Sign up to leave a comment.

Articles