All streams
Search
Write a publication
Pull to refresh
157
159.2
Alex Chernyshev @alex0x08

Немного понимаю в компьютерах

Send message

, в оригинале под Винду она была 64к. Это при портировании под FreeBSD так бинарь раздуло? :)

Вот ссылка на вендовую сборку, архив 26мб. Exe-файл действительно меньше мегабайта, но ресурсы не упакованы, как и внешние библиотеки.

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

Набор координат треугольников, загружаемый из файла. Типа такого.

На ЛОРе это тоже заметили, но автор оригинальной статьи честно писал что получил ассемблерный код декомпиляцией из Си и затем уже чистил. Я так тоже делал, когда пробовал портировать под FreeBSD, могу сказать что ассемблерных листингов получается чудовищное количество даже для пустого окна.

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

Программисты C++ начинают отсчет сразу с мегабайтов, все что меньше — погрешность (ц)

Чем писать в видеопамять напрямую плохо-то?

Конечно же ничем, но враги зачем‑то придумали какие‑то дурацкие права пользователя и протоколы — ересь сплошная да порнография. Милонова на них нет!

Да что вы говорите! Быть такого не может!

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Information

Rating
38-th
Location
Москва, Москва и Московская обл., Россия
Registered
Activity

Specialization

Fullstack Developer, Chief Technology Officer (CTO)
Lead
Java
Java Spring Framework
Java EE
Scala
C++
C
Software development