job

NGINX и американские санкции

И знаешь, Геральт, порой бывает так, что Очень Большое Зло схватит тебя за горло и скажет: «Выбирай, братец, либо я, либо то, которое чуточку поменьше...»

А.Сапковский, "Меньшее зло"

Контора, где я работаю, является американской. Соответственно, несмотря на то, что вся разработка нашей системы производится в Эстонии, крутится эта система на американских серверах и продаётся от имени нашего головного офиса, расположенного в Нью-Йорке. Поэтому соблюдение законодательства США является для нас весьма важным требованием.

И в один прекрасный день из юридического отдела "прилетела" очередная задача в рамках соблюдения этого самого законодательства, а именно: заблокировать доступ к нашему сервису из ряда стран, с которыми не дружит США. Куда, естественно, также относится и Крым, который всё никак не могут поделить. И приписка, что, мол, если не получится заблокировать точечно Крым, то можно блокировать всю Украину - клиентов у нас там всё равно нет.

Я поизучал вопрос и ответил следующее. Во-первых, хоть у нас и нет клиентов с Украины, а у наших клиентов, судя по логам, есть, и их это затронет. А во-вторых, если вам нужно стопроцентно и гарантированно заблокировать Крым, то блокировать придётся и Украину, и Россию - в противном случае всегда останется некий процент (до 7%) крымских айпишников, которые фильтр не отловит. Вам как надо: чтобы закон соблюдался или чтоб работало?

Наверху посовещались и решили, что погрешность в 7% их устроит. Тогда я взял страничку с геокодами Украины (по ISO Крым украинский и не волнует) и выписал коды собственно Крыма, а также находящегося на полуострове Севастополя. Вместе с прочими запретными регионами получилась следующая конфигурация в NGINX:

    geoip_country /GeoIP.dat;
    geoip_city /GeoLiteCity.dat;
    geoip_proxy ;
    map "$geoip_country_code:$geoip_region" $embargoed_region {
      default no;
      "UA:43" yes; # Crimea region
      "UA:40" yes; # Sebastopol City, part of Crimea
      "~^CU:.*$" yes; # Cuba
      "~^IR:.*$" yes; # Iran
      "~^SD:.*$" yes; # Sudan
      "~^SY:.*$" yes; # Syria
      "~^KP:.*$" yes; # North Korea
      "~^VE:.*$" yes; # Venezuela
    }

После чего добавил в конфигурацию сервера вставку, которая при запросе из данных регионов возвращает ошибку 451, которая как раз недавно была введена в стандарт RFC по случаю возникшей в последнее время моды на блокировку неугодных ресурсов или стран на государственном уровне:

  if ($embargoed_region = yes) {
    return 451;
  }

Чувствовал себя при этом премерзко. Вероятно, что-то подобное чувствует солдат, которому приказано стрелять в мирное население. И дело тут не только в Крыме.

Новая буква в адресной строке. Перевод сайта на HTTPS

Перевёл вчера сайт на HTTPS. Оказалось не так сложно, как я предполагал — на всё ушла пара часов. Функционально ничего не должно было измениться — ну, если не считать того, что я починил вход через Mail.Ru и Яндекс, который не работал уже давно, но обнаружил я это только в процессе тестирования HTTPS. Всю суть изменений иллюстрирует диалог с Юлей:
— Чем занимаешься? — спросила она, когда я ковырялся в настройках.
— Сайт перенастраиваю, — ответил я, не вдаваясь в подробности.

Через пресловутые пару часов я уже листал страницы своего блога, проверяя, всё ли работает. Юля спрашивает:
— А что ты сделал?
Показываю мышкой на адресную строку (уже сам понимая комичность ситуации):
— Видишь, вот тут буковка "s" появилась...

На деле вся суть изменения заключается в том, что теперь вся коммуникация с сайтом происходит по зашифрованному каналу. Ни мне, ни большинству моих посетителей это ровным счётом ничего не даёт, но тут, как обычно, приходится следовать моде, как и в случае с "дружественностью к мобильникам". Главным двигателем тренда является опять же Гугл, который пару лет назад пообещал начать "поражать в правах" (то есть понижать в поисковой выдаче) сайты, не использующие HTTPS.

На самом деле, меня бы и это не сподвигло почесаться, если бы не появление Letsencrypt — удостоверяющего центра, совершившего революцию в процедуре выдачи SSL-сертификатов (то есть того, без чего невозможно сделать у себя HTTPS). Сертификаты от Letsencrypt, во-первых, бесплатны, а во-вторых, процесс их получения и ротации полностью автоматизирован. Концепция начинает потихоньку завоёвывать Интернет, приводя к тому, что в последнее время держать сайт без HTTPS действительно стало моветоном :)

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

P.S. Кстати, в процессе настройки имел место забавный "побочный эффект": я впервые прочувствовал всю мощь OpenSource. Подробности, впрочем, интересны будет только айтишникам.

Подслушанное в офисе - финальный выпуск

Пожалуй, рубрику office-talks можно закрывать — к сожалению, на новом месте не прижилось. "Урожай" на английском в этом году на удивление скуден, а эстонский я пока не настолько хорошо понимаю — к тому же, выкладывать цитаты на эстонском без перевода было бы бессмысленно, а в переводе такие вещи сильно теряют.

Тем не менее, выкладываю то немногое, что набралось за последний год, а также небольшой прощальный "бонус" :)

О жизни тартуских айтишников

Tags: 
- О вас, товарищ Бендер, сегодня в газетах писали...

И.Ильф и Е.Петров, "Двенадцать стульев"

В местном издании "Estonian World" вышла статья про нашу контору, где рассказывается про то, как хорошо в стране Советской жить живется и работается айтишникам и прочим инженерам в Эстонии вообще и в Тарту в частности. К статье прилагается видеоролик на две с половиной минуты, в котором даже периодически мелькает моя моська:

Office Talks - English Edition

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

* * * Однострочники

- This programming language is a bit ugly... but eventually you get used to ugly things...

- Well, that's what system administration is about: somebody fucks something up, and you go and fix it.

- Attribute is the same thing as property, but with a different name.

- Estonia is so small! You can't talk shit about someone because you'll run into them again!

- I like this error message: "EternalArtist not found" :) Indeed, nothing lasts forever...

- I spend on this project about half an hour a day. I work on it when my brain doesn't work anymore.

- Ok Google, wake me up when September ends!

* * * Рабочие диалоги

- You guys must have too sensitive microphone. We sometimes hear your dog snoring.
- That's not the microphone, the dog really snores very loudly...

Подслушанное в офисе - 2014

Прошел очередной год, в течение которого я записывал на телефон высказывания своих коллег. Формат более-менее устаканился: отдельно блок фраз-однострочников, которые хороши сами по себе, вне контекста, отдельно подборка рабочих диалогов, отдельно бытовые разговоры. И обязательно - раздел "инглиш-рунглиш", как же без него в международной компании. Поехали!

* * * Однострочники и прочие обрывки разговоров

- Что случилось с Андреем? От него осталась куча одежды!

- Задача - спасти сервер от возможного вторжения индусов.

- Он ищет "творчество Достоевского", а в поиске одни бабы с сиськами вылезают...

- Кто в начале года набирает много "флагов в руки", к концу года превращается в павлина!

- Рука лицо колоть устала!

- Посмотри на логи и спи спокойно.

- А ведь еще пять лет назад фраза "полайкать чекин" не имела смысла!

- У меня память в целом неплохая, просто я все забываю...

- Мое удовольствие многограннее твоего!

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

- Она написала, что сегодня опоздает, потому что ей наконец-то привезли кровать...

Офисные инсталляции - часть вторая

Tags: 

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

Коллега привез из отпуска, который провел на острове Ява, местную экзотику: волосатые фрукты под названием "рамбутан". Косточку есть нельзя, шкурка тоже несъедобна, а все, что осталось, по вкусу и по фактуре чем-то напоминает личи. Но отдельного внимания заслуживает то, как угощение было оформлено. Я не удержался и задокументировал это:

Продолжение коллекции по ссылке.

Парадоксы современной демократии

Tags: 

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

С подавляющим большинством победил вторник, и пьянка состоялась в означенный день. А на следующий день, в среду утром, когда страдающие от последствий вчерашних возлияний коллеги стали делиться впечатлениями, обнаружился интересный парадокс. Дело в том, что вопрос "Какая же зараза голосовала за пьянку в середине недели?" звучал подозрительно часто. При более внимательном рассмотрении выяснилось, что практически все голосовали за четверг.

Как такое могло случиться? Да очень просто: многие из тех, кто голосовал за вторник, либо ушли с пьянки очень рано, либо не пришли на нее вообще :)

Подслушанное в офисе - 2013

Вот и еще один год прошел, пора публиковать очередную подборку "подслушанного в офисе". Год был насыщенный, количество цитат соответствующее.

* * * Обрывки разговоров (в том числе телефонных)

- На кону зачет по профориентации. На что ты готов ради такой халявы? Нет, интима не нужно...

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

- А ты смотрел, как у нас переменные сношаются друг с другом? Нет? О, они сношаются самым промискуитетнейшим образом!

- Видела там много новых людей. Кажется, видела Сергея, но он как-то не подавал признаков жизни.

- У меня все делается через pop-up...

- Богородица, авто-тесты прогони!

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

Офисные инсталляции

Tags: 

Поставил модуль Lightbox для удобного просмотра фотогалерей прямо на странице, а ля фейсбук/вконтактик. Работает оно только на ostankin.net, в ЖЖ клик по превьюшке работает просто как переход на полноразмерную картинку.

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

Продолжение - под катом.

Страницы