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

Если ты в своей жизни хоть раз писали что-то большее «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. Люди не могут иметь двойные имена.

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

Про скорость света

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

Но я никогда не задумывался, что за один такт 3х гигагерцового процессора, свет в вакууме успевает пройти всего 10 сантиметров!

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

Пруф: https://habrahabr.ru/post/310130/

Прямо праздник какой то

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

3 дня назад, товарищ @ParvezGHH сообщил о обнаружении в продуктах Microsoft Office серъезной уязвимости, позволяющей выполнить любой код с правами пользователя открывшего специально созданный документ Office.

В качестве примитивной, но действенной защиты в голову приходит только — не открывать файлы офиса с расшаренных ресурсов, а сперва копировать к себе. Не открывать ничего в формате офиса с чужих флешек. Читать

Про безумие

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

Тема статьи которую я прочел сегодня, вызывает у меня недоумение… хотя это мягко сказано. Я вообще не понимаю как это возможно придумать…. Речь о цепных квайнах. Так называются программы, которые при запуске производят исходники других программ, которые при запуске выдают исходники других программ …. и т.д. N раз, а в конце получаешь исходник самой первой программы!!!! Причем:

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

(отсюда)

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

Системные вызовы Linux и Windows

Последние пару недель изучаю ассемблер, по ходу дела возникают разные мысли и вопросы, на которые успешно отвечает гугль. Нагуглил сейчас пост на stackoverflow о системных вызовах в linux и windows: http://stackoverflow.com/questions/2489889/system-calls-in-windows-native-api

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

Microsoft Visual Studio Code, под Linux, Mac, Windows

2i8a9082

Почти первоапрельская новость обнаружилась 29.04.2015 на большинстве айтишных ресурсов, компания Microsoft на конференции Build 2015, объявила о разработке новой редакции, теперь уже кроссплатформенной среды разработки «Visual Studio Code». С поддержкой Linux, Mac OS и Windows. Читать

Доклад Алексея Шепилева. JAVA Benchmarking

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



Java: распределенные вычисления

Просмотрел сейчас запись выступления Алексея Рагозина на встрече jug.ru от 12.12.13, интересные вещи рассказывает, не вольно поймал себя на мысли, что ищу варианты, чего бы распределенно посчитать. Кроме перебора забытого пароля на rar архив, ничего не придумалось.

В общем рекомендую к просмотру.

 

Кое что о SED

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

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

Так случилось, что сегодня мне нужно было в пяти мегабайтном CSV файле из почти 100 000 строк заменить сперва все запятые на точку с запятой, а затем все точки на запятые. Не буду вдаваться в подробности, но сперва, я попробовал как обычно открыть его в Libre  Office Calc. Точнее открыл то я его без проблем, а вот операция «поиск с заменой» подвесила редактор на долго. Прождав минут 10, я его прибил. Решил, что старый добрый nano сделает это быстрее. Хрен там было!

Любой смыслящий в линукс, скажет — в SED это сделать легко, но так уж вышло, что для меня SED это тот самый инструмент, который изучить все не доводилось. Но решил попробовать. Нашел довольно хороший мануал для новичков, и блин эта ацкая прога перемолола файл примерно за 2 СЕКУНДЫ!!!!

Сказать что я был удивлен — ничего не сказать. Я сперва подумал, что команду не правильно ввел…. Но все было верно. Ниже перепост того мануала. Автору ОГРОМНОЕ СПАСИБО. Ссылка на оригинал в конце.

Читать