Экстремальное делегирование
Разместил на Хабре провокационную статейку, и сразу же получил минусов в карму. Что поделаешь, сложно найти желающих читать мои графоманские вирши. В школе, за сочинения у меня всегда были не самые высокие оценки, но вдруг, кому понравится?
Upd: а вроде поправилась карма, и даже коментарии по делу. Особенно, порадовало, что получил много правок в частных комментариях на тему грамматики и пунктуации. Все поправил.
Эвакуация сервера из России
Перед самым переездом в Германию я собрал у себя в кладовочке небольшой серверок который верой и правдой мне служит уже более трех лет. На сервере стоит Linux который поддерживает программный RAID5. Его я использую для хранения фотоархива, фильмов, запускаю на нем тестовые проекты и т.д. Не знаю как долго еще он будет доступен - за это время стоимость интернета выросла вдвое, из России ушли уже все основные поставщики сетевого оборудования и все чаще звучит угроза активировать великий русский Чебурнет.
Встала задача - куда перенести данные с сервера, чтобы к ним можно было легко обращаться? Я уже скопировал фотографии на Amazon Glacier но это холодное хранилище и процесс распаковывания занимает несколько часов. Арендовать выделенный сервер сопоставимого объема будет стоить сотни евро в месяц.
Решил скопировать пока данные физически. Купил внешний диск на 5TB. Уже четвертый день перекачиваю данные - не знаю удасться ли перекачать все.
Из чисто технических задач была такая - как обеспечить копирование нескольких терабайт данных по сети. Я использую OpenVPN центральный узел которого размещен во Франкфурте. Однако, месячный лимит у меня всего 4 TB, поэтому прокачивать трафик через него оказалось не вариант.
В настройках своего берлинского модема обнаружил, что ip v6 адреса внутренних устройств можно делать доступными глобально. Проверил - оказывается, действительно можно! Просто добавляешь устройство в список и на удаленном сервере к устройству можно подключиться по ssh используя, не классический ip v4 адрес, состоящий из четырех чисел, а используя ip v6, имеющий формат ssh username@2a02:0000:0000:3360:cd9a:f765:ecde:bbbc
Однако, радость оказалась преждевременной - ip v6 оказался деактивированным у российского интернет провайдера а его активация была связана с риском того, что я останусь без связи с сервером в России. Поэтому, я просто настроил переадресацию портов с внутреннего устройства на внешний IP адрес модема. К счастью, на стороне провайдера, маршрутизация на динамический IP адрес позволяла к нему подключиться, поэтому, просто запустил виртуальную сессию командой screen и просто копирую папки командой rsync.
Команда копирования выглядит вот так:
rsync -avzh remoteuser@111.222.333.4444:/remte/address/path /local/folder/path
За это время модем один раз сменил внешний IP адрес и DHCP сменил внутренний адрес компьютера - похоже оборудование не любит когда через него перекачивают много информации, однако процесс идет и за четыре дня я перекачал уже около двух терабайт, что дает мне надежду что все данные будут успешно спасены.
Kotlin
Чтобы отвлечься от депрессивных мыслей погрузился с головой в новые технологии. Заметил, что когда начинаешь разбираться с какой нибудь сложной задачей вся тревожность по поводу текущих проблем отходит на второй план.
Давно хотел поглядеть что это за зверь такой Kotlin - для андроида мне вполне хватает Java но вижу все больше проектов которые переходят на Kotlin и мне интересно почему.
Покопался немного на выходных делая небольшой проект и мне этот Kotlin даже понравился.
Понравилось то, что Kotlin, оказывается, может компилироваться не только в Java но также в JavaScript и в нативный код. Это делает его отличным языком для кроссплатформенной разработки и даже для фронтенда. Как следствие можно использовать в программе как библиотеки из мира Java так и библиотеки и мира JavaScript.
Kotlin имеет свой собственный подход к конкурентному программированию на базе так называемых Coroutines. Выглядит неплохо, хотя их недостатки или достоинства я пока как следует не прочувствовал.
Синтаксис языка очень лаконичный, из него убрали все лишнее, я бы сказал убрали даже больше чем нужно, например в нем нет статических методов, что затрудняет, например создание синглтонов. С другой стороны, и не нужно использовать синглтоны, это не самый лучший паттерн.
Вобщем, буду изучать дальше, может быть следующий проект сделаю на Kotlin.
Только для своих
Коллега вчера показал - если зайти на сайт издания Нью-Йорк Таймс и открыть консоль разработчика, то в консоли появится секретная ссылка о найме программистов.

По-моему - очень креативное решение.




