Тем кто хоть одну серьезную программу написал посвящается

Если ты в своей жизни хоть раз писали что-то большее «Hallo world», то вероятно уже знаешь, что не всегда просто предусмотреть все.

Например:

Код языка совпадает с кодом страны.
Не всегда. Код страны в Японии — jp. Код языка — ja.

или вот:

У каждого места есть только один официальный адрес.
Однако, в Женеве есть дамба, одна ее часть находится во Франции, другая — в Швейцарии. И у неё два адреса.

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

На гитхабе появился постоянно обновляемый список подобных «мелочей».

Ниже перевод с сайта tproger.ru

Мифы о географии

  1. У одного места может быть только одно официальное название.
    На самом деле, не всегда. «Женева» на разных языках внутри страны пишется так: Genève, Genf, Ginevra.
  2. Топонимы (названия топографических объектов) подчиняются правилам языка.
    И это не так: согласно правилам немецкого языка последовательность «ue»  равна «ü». Это правило существует, потому что «üe» больше не используется в языке. Однако холм за Цюрихом называется «Üetliberg».
  3. У каждого места есть только один официальный адрес.
    Однако, в Женеве есть дамба, одна ее часть находится во Франции, другая — в Швейцарии. И у неё два адреса.
  4. Вы заблуждаетесь, если думаете, что у каждой страны есть столица.
    Например, Швейцария явно решила выделиться — у неё нет столицы. Правительство находится в Берне, но как таковой столицы у них нет.
  5. Здания не двигаются.
    Однако это не так! Ведь в Цюрихе здание весом в 6200 тонн было сдвинуто на 60 метров.
  6. Код языка совпадает с кодом страны.
    Не всегда. Код страны в Японии — jp. Код языка — ja.
  7. Если вы думали, что нумерация зданий не может начинаться с нуля, то вы ошибались.
    Пример: 0 Egmont Road, Middlesbrough, TS4 2HT

Узнать ещё о нескольких мифах можно здесь и здесь.

Мифы об именах

  1. Имена людей записаны в ASCII.
  2. Имя человека не может быть изменено ни при каких обстоятельствах.
  3. Если вы думали, что имена не могут состоять из цифр, то вы, к сожалению, ошибались. Ведь в Москве 14 лет назад родился мальчик, которого назвали БОЧ рВФ 260602.
  4. Приставки и суффиксы в именах можно спокойно игнорировать.
  5. Имена даются людям при рождении.
  6. Люди не могут иметь двойные имена.

Еще несколько мифов можно посмотреть здесь. Читать

Обновления в репах Ubuntu

USN-3141-1: Уязвимость в Thunderbird, позволяет удаленному злоумышленнику выплнить код с привелегиями приложения или уронить его.
USN-3140-1:То же самое касательно firefox. Удаленный атакующий может путем хитрого URL’а уложить огнелиса, или выполнить код на вашей стороне.
USN-3142-1:Уязвимость в ImageMagic. Админам серверов с хостингом PHP и обработкой изображений — внимание! Уязвимость потенциально позволяет с помощью особого файла изображения выполнить удаленный код с правами доступа сервиса.

Все применительно к:

12.04
14.04
16.04

Ошибка GPG NO_PUBKEY после apt-get update

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

Со временем это надоедает.

У меня так было с горячими клавишами в screen, и так есть с командой загрузки GPG ключа для нового репозитория.

Сегодня добавил реп с яндекс диском на сервер, сделал apt-get update и получил вышеозначенную ошибку NO_PUBKEY. А это значит, что в хранилище открытых ключей моего сервера, нет ключа которым подписаны списки пакетов данного репа, и он (apt-get) предупреждает, что возможно пакеты того… в смысле с руткитами и троянами, типа снимает с себя всякую ответственность. Читать

Горбатого могила исправит

Несколько лет назад я имел несчастье убедиться в качестве продукции издательства williams publishing. В русском переводе руководства по java нашлись задвоенные страницы… или абзацы, уже точно не вспомню. Но факт остается фактом. Кстати говоря, я им даже письмо тогда написал, правда сейчас не совсем помню, с какой целью.

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

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

К слову вот ссылка на первую часть http://www.williamspublishing.com/PDF/5-8459-0276-2/part0.pdf

 

Углубленное руководство по настройке сетевого стека Linux

Давно искал что-то подобное, и вот оно случилось!

Статья на хабре: https://habrahabr.ru/company/mailru/blog/314168/

Статья на англицком, но с картинками! http://blog.packagecloud.io/eng/2016/10/11/monitoring-tuning-linux-networking-stack-receiving-data-illustrated/

 

16.04 пропал звук после входа в систему

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

В 14.04 такого не было. До 16.04 я только позавчера систему обновил. Сперва нагуглил вот это: https://help.ubuntu.com/community/SoundTroubleshootingProcedure. Делать то, что там написано не стал, начал разбираться что за манипуляции (оказалось они там права доступа меняют, добавляют текущего пользователя в группы audio,video,pulse,pulse-access) и нашел там пакет pavucontrol.

Собственно это прога, запущенная с моими правами (не под рутом!) решила проблему. На вкладке «конфигурация», выбрал из списка нужный аналоговый выход и все заработало.

Оказывается в 16.04 в «параметрах звука» теперь не отображаются звуковые выходы, которые по мнению системы в данный момент не подключены.

Новые дыры в окнах

Гугл снова нашел дыры в популярном софте, в этот раз в Adobe flash и Windows. Adobe оперативненько подготовила обновления и все кто использует автоматическое обновление плагина уже его получили.  https://habrahabr.ru/post/314142/

А в виллабаджо … что они там делали? Посуду драили? В общем microsoft обновление пока не выпустил.

Еще в посте есть забавная статистика уязвимостей в разных браузерах. Общий смысл такой: в хроме, за последние пару лет, уязвимостей было найдено не меньше чем в IE и мозилле, но выполнить код на машине жертвы позволяли только 1-2% из них. В мозилле таких уязвимостей было 43%, в IE и Safari по 63%.

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

Про грязную корову

Наверное все уже слышали про баг в ядре, позволяющий делать эскалацию прав локальному злоумышленнику (https://tproger.ru/news/android-rooting-by-linux-bug/).  Народ быстренько нарисовал эксплоит под андроид, который позволяет получить рутованый девайс без танцев с бубном и замены загрузчика (https://habrahabr.ru/company/defconru/blog/313276/).

Лично мне интересно было сообщение Л.Торвальдса на эту тему (https://lkml.org/lkml/2016/10/19/860). Хреново конечно, что данную проблему фиксят не первый раз за 11 лет, но уверен, что последний, т.к. нашли правильное решение.

Кстати, как видно из сообщение Линуса, причина почему все так затянулось — в совместимости с платформой IBM S390. Т.е. чем больше устройств поддерживает операционная система, тем она потенциально более дырявая, и тем сложнее разработчикам ее довести до идеала, т.к. приходится принимать очень много компромиссных решений в архитектуре. Я это к тому, что Microsoft сейчас активно продвигает тему «одна операционка на всех устройствах». Так вот они и раньше то нормальный софт не очень писать умели, а теперь и вовсе на неподъемную задачу замахнулись. Я уверен на 146%, что это еще не раз им вылезет боком, и вполне допускаю, что в течение 5 лет, они нехило испортят себе и без того хреновую репутацию.

Критические уязвимости в ядре

Ошибка обработки Ethernet кадров может эксплуатироваться удаленно с целью получения отказа в обслуживании. Уязвимые версии 14.04 и 16.04.

Подробности:

http://www.ubuntu.com/usn/usn-3099-1/

http://www.ubuntu.com/usn/usn-3098-1/