Как стать автором
Обновить
2
0
Aleksandr @formatko

Java software engineer

Отправить сообщение

Уехать в Германию на финишной прямой до пенсии, отыскать там СССР

Время на прочтение19 мин
Количество просмотров57K


Уехать в Германию на финишной прямой до пенсии, отыскать там СССР или как сбежать из тюрьмы, и чтобы тебе за это ничего не было


Март 2022.


События последних недель разделили нашу жизнь на ДО и ПОСЛЕ, а наше общество – на тех, кто ZА и ПРОТИВ. Воздержавшихся, кажется, уже не осталось. Даже тех, кто в "танке". Или в бункере.


Поэтому для некоторых это статья будет занятным чтивом из серии статей советского журнала «Вокруг света», а для других памяткой и возможно инструкцией по применению. Основой для этой публикации послужили материалы для большой статьи о разных аспектах переезда и жизни в Германии (а конкретнее во Франкфурте), идея которой пришла мне года полтора назад. Материал для неё я начал собирать несколько месяцев назад. Однако с той скоростью, с которой развиваются события сейчас и то бедственное положение, в котором оказались некоторые мои коллеги, подтолкнуло меня к мысли опубликовать материалы в том виде, в котором они у меня имелись на данный момент, с минимальными доработками.

Читать дальше →
Всего голосов 102: ↑92 и ↓10+82
Комментарии195

Перейти с Linux на macOS и не сойти с ума

Время на прочтение9 мин
Количество просмотров80K

Ноутбук — главный девайс в моей жизни, я провожу за ним бо́льшую часть суток. Он должен быть лёгким, компактным и мощным. Долгое время лидером по этим параметрам был Dell XPS 13, но всё поменялось с выходом MacBook Air на процессоре M1.

Air всего на 100 граммов тяжелее XPS 13, но примерно в три раза мощнее, автономнее и не нуждается в активном охлаждении. Никогда не думал, что скажу подобное про технику Apple, но MacBook Air — самое крутое устройство в своей весовой категории на рынке, оставившее конкурентов далеко позади.

Я фанат Линукса, эта операционная система для меня больше, чем просто окружение. Это философия, новостная повестка и постоянный предмет обсуждения. Поэтому сама идея отказа от Linux в пользу другой ОС меня всегда отталкивала. Да и тот эпизодический опыт, когда приходилось что-то делать в macOS, был эмоционально неприятным.

Но появление M1 посеяло во мне зерно сомнений: мой ноутбук больше не был самым крутым и навязчивой мыслью было то, что я отказываю себе в чём-то большем. Это зерно прорастало и проросло: я купил MacBook Air с 16GB ОЗУ и 512GB SSD, с удивлением обнаружив, что он ещё и стоит дешевле моего XPS. Впереди меня ожидали настройка окружения, борьба с Docker, грусть от отсутствия привычного автодополнения в консоли и много чего ещё.

Читать далее
Всего голосов 136: ↑131 и ↓5+126
Комментарии379

snap & flatpack — трагедия общин

Время на прочтение10 мин
Количество просмотров45K

Лонгрид варнинг: вас предупредили, много букв.


Уже давно ведётся разработка формата дистрибуции приложений, которые были "свободны" от общесистемных зависимостей. Ubuntu очень, очень активно продвигает свой snap, gnome — flatpack. Оба обещают рай и свободу от rpm/deb. Давайте же подумаем про проблему, которую они хотят решить, и цену, которую они просят за решение этой проблемы.

Читать дальше →
Всего голосов 71: ↑70 и ↓1+69
Комментарии145

Сравнение подходов к реализации распределенных транзакций для микросервисов

Время на прочтение21 мин
Количество просмотров40K

Как архитектор-консультант в Red Hat, я имел возможность поработать над множеством проектов для наших клиентов. У каждого из них есть свои особенности, которые, однако, имеют некоторые общие черты. Большинство клиентов хотят знать, как скоординировать запись в несколько систем одновременно. Ответ на этот вопрос обычно включает подробное объяснение двойной записи, распределенных транзакций, современных альтернатив, а также возможных сценариев сбоев и недостатков каждого подхода. Как правило, именно в этот момент заказчик понимает, что разделение монолитного приложения на микросервисы - долгий и сложный путь, обычно требующий компромиссов.

Читать далее
Всего голосов 36: ↑36 и ↓0+36
Комментарии9

Как мы создаём почтовую систему нового поколения Mailion. Архитектура кластера DOS

Время на прочтение18 мин
Количество просмотров6.4K

МойОфис продолжает серию статей о корпоративной почтовой системе Mailion (1, 2), разрабатываемой при грантовой поддержке РФРИТ, и входящем в его состав объектном хранилище DOS. Мы уже рассказали об основных оптимизациях DOS, которые позволяют увеличить экономическую эффективность хранения данных, а также коснулись общих принципов построения масштабируемых хранилищ. Сегодня мы поговорим о том, как эти принципы применялись на практике в ходе работ над кластером DOS.

Читать далее
Всего голосов 14: ↑14 и ↓0+14
Комментарии3

Поиск замены депозита в облигациях с учетом того, что с 1 января 2021 года все выплаты облагаются налогами

Время на прочтение4 мин
Количество просмотров37K

Полгода назад, летом 2020 года я написал скрипт поиска ликвидных облигаций на Мосбирже (статья в закладках у 194 человек, рейтинг +45). Скрипт нужен для поиска облигаций, которые можно купить прямо сейчас с доходностью гораздо выше банковского вклада.

Сейчас, в начале 2021 года модифицировал прошлогодний скрипт, потому что проценты по вкладам так и остаются на очень низких уровнях, а с началом 2021 года ещё и изменения в налоговом кодексе РФ подоспели. 

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

Облигации как замена вклада в 2021 году
Всего голосов 60: ↑59 и ↓1+58
Комментарии65

@Transactional в Spring под капотом

Время на прочтение16 мин
Количество просмотров189K

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

Читать далее
Всего голосов 5: ↑5 и ↓0+5
Комментарии28

Контейнеризация понятным языком: хранение данных и безопасность в Kubernetes, зачем нужен Ansible

Время на прочтение19 мин
Количество просмотров15K


В чём проблема с базами данных и как позаботиться о безопасности в Kubernetes? Как врубиться в Ansible? Ответы на эти и другие вопросы читайте в продолжении интервью Лекса АйТиБороды со старшим инженером Southbridge Николаем Месропяном и СТО «Слёрма» Марселем Ибраевым.


Прочесть первую часть
Посмотреть интервью целиком

Читать дальше →
Всего голосов 14: ↑11 и ↓3+8
Комментарии3

Как не испортить своего джуна

Время на прочтение9 мин
Количество просмотров41K


Меня зовут Дима Вдовин, я разработчик команды корпоративных рисков. Сегодня я хотел бы поговорить о джунах и их интеграции в команду разработки. С одной стороны, тема банальная и известна всем, а с другой, о ней часто забывают или игнорируют. Почему-то многие команды и руководители считают, что джун вольется в коллектив и работу над проектом как-то «самостоятельно», без активной поддержки, а если не вольется — значит он не справляется и не подходит. Это не так.

Мы крупный банк, к нам приходит работать много молодых ребят и в большинстве случаев для них это первая работа такого рода. Это тянет за собой целый ворох проблем, связанный со страхами неизвестности, неуверенностью, боязнью «уронить прод». Они боятся совершить серьезную ошибку, которая поставит крест на карьере в IT. Это сейчас подавляющее большинство из нас — опытных разработчиков — уверенные в себе профессионалы. Мы можем позволить себе хотя бы на время отказаться от подобной саморефлексии и делать «быстрее, выше, сильнее». Многих же джунов одолевают страхи, которые если и не парализуют, то заставляют их выверять каждый шаг.
Читать дальше →
Всего голосов 54: ↑49 и ↓5+44
Комментарии64

«Cool фото для Контактика» или «Немного о коррекции цифровых фотоснимков»

Время на прочтение7 мин
Количество просмотров3.3K

(«Что-то давно ничего веселого не писал» — решил энтерпрайзный технический писатель)

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

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

Отлично! У нас есть Adobe Photoshop!
Всего голосов 19: ↑11 и ↓8+3
Комментарии17

Что делать если никто не хочет документировать? Организация документирования микросервисов по минимуму — часть 2

Время на прочтение7 мин
Количество просмотров5.8K


Эта статья является продолжением. Первую часть смотри тут


Подход к реализации

Читать дальше →
Всего голосов 5: ↑3 и ↓2+1
Комментарии0

Что делать, если никто не хочет документировать? Организация документирования микросервисов по минимуму

Время на прочтение6 мин
Количество просмотров5.8K


Представьте что у вас команда специалистов, которая по принципу code-first делает систему с множеством бизнес-историй на базе микросервисов. Все люди опытные, всем есть что делать кроме того как писать документации или спецификации на разработанный API. И все изначально знают, что если захотел использовать какой сервис, то надо заглянуть в код и потом спросить в общем чате если что непонятно. Знакомая ситуация не так ли? -))) И в целом все нормально, если бы со временем не росла команда, не росло количество сервисов и функций, не появлялись баги от бизнеса и тестеров, не требовалось предоставлять API для интеграции смежным командам...


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

Читать дальше →
Всего голосов 6: ↑3 и ↓30
Комментарии13

Разворачиваем модель машинного обучения с Docker – Часть 2

Время на прочтение6 мин
Количество просмотров4.2K

Расширяем возможности для наших студентов. Теперь в OTUS есть целых два курса по Machine Learning: базовый и продвинутый. Оба курса стартуют в августе, в связи с чем мы предлагаем вам посмотреть запись дня открытых дверей в онлайн-формате, а также приглашаем записаться на бесплатные уроки: «Пайплайн работы с задачей ML» и «Поиск аномалий в данных».
В первой части этого руководства мы успешно сохранили вашу классификационную модель в локальном каталоге и завершили все работы по разработке модели, связанные с Jupyter Notebook. С этого момента основное внимание будет уделяться развертыванию нашей модели. Чтобы повторно использовать модель для прогнозирования, вы можете просто загрузить ее и вызвать метод predict(), как вы обычно это делаете в Jupyter Notebook.
Читать дальше →
Всего голосов 6: ↑5 и ↓1+4
Комментарии0

Экзамены TOEFL/IELTS как ориентир для развития. Фундаментальные апгрейды языка и их польза для разработчика

Время на прочтение13 мин
Количество просмотров18K


Экзамены английского языка вызывают у большинства разработчиков негативную реакцию. В сети или в курилке часто можно услышать утверждения о том, что TOEFL/IELTS проверяют не уровень владения языком, а умение соответствовать шаблонам. Разработчики цепляются за свой B1 или даже B2/C1, который им дали на внутреннем ассессменте в компании или при прохождении 10-минутного онлайн-теста. Далее, у нас есть 2 пути. Вы можете принять ваш уровень и не развиваться, думая что вам «не нужно», «не моё» и так далее. Можете найти 100 причин отрицать международные общепринятые тесты и даже обойти их при миграции. А можете согласиться с тем, что ваш уровень не достаточно хорош при объективной оценке по критериям, и подумать над развитием и пользе для карьеры разработчика. Статья будет именно про второй путь, а конкретно:

  1. Развитие скорости чтения и использование правого полушария мозга вместо левого
  2. Накрутка навыка письма через независимые эссе внутри Grammarly
  3. Турбонакрутка разговорной речи через комментирование своих действий в играх (RPG/RTS)
  4. Ускорение с помощью слепой печати
  5. Контроль промежуточных результатов через TOEFL GO
Читать дальше →
Всего голосов 17: ↑16 и ↓1+15
Комментарии50

Как разрушалась личность блестящего молодого программиста

Время на прочтение24 мин
Количество просмотров103K

Своими программами Ли Холлоуэй заложил основы компании Cloudflare, специализирующейся на интернет-безопасности. Но со временем он стал апатичным, непредсказуемым, отдалился от всех – и долгое время никто не мог понять, что с ним произошло.




В пятницу 13 сентября 2019 года Мэтью Принс и Мишель Зэтлин, сооснователи компании Cloudflare из Сан-Франциско, занимающейся интернет-безопасностью, стояли на узком мраморном балконе, с которого открывался вид на Нью-Йоркскую фондовую биржу. Стайка директоров компании сгрудилась рядом с Принсом, готовая вести вслух обратный отсчёт. «Громче! Громче! – призывал их Принс. – Пять! Четыре! Три!..» Ровно в 9:30 основатели потянулись к знаменитому колоколу биржи, знаменующему начало торгового дня, а также – выход их 10-летней компании на биржу. Так они изменили свою жизнь и сорвали куш. В тот момент они обогатились на миллионы долларов.

Более сотни сотрудников и инвесторов, стоявших внизу на первом этаже, разразились радостными криками, а их поднятые телефоны фотографировали происходящее. Кристин Холлоуэй, сотрудник №11, подняла взгляд на балкон, сделала несколько фотографий, а потом отправила их через мессенджер своему мужу, Ли Холлоуэю, третьему сооснователю компании. Он в это время находился дома, в Калифорнии. Периодически чьё-нибудь знакомое лицо выныривало из толпы, чтобы сказать ей: «Ли должен был быть здесь».
Всего голосов 169: ↑162 и ↓7+155
Комментарии222

Микросервисы или модульные системы? Как заказчику выбрать подход к IT-архитектуре продукта

Время на прочтение13 мин
Количество просмотров12K
Микросервисная и модульная системы — это типы архитектуры IT-решений.

При работе с модулями мы дорабатываем коробочную версию существующего IT-продукта.

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

Доработка состоит в создании модулей с недостающим функционалом.

Новые модули получаем путём переиспользования частей монолита (ядра или других модулей).
Бизнес-логика прописывается внутри монолита: для программы (приложения, сайта, портала) есть одна точка входа и одна точка выхода.

При работе с микросервисами мы создаём IT-продукт с нуля, составляя его из «кирпичиков» — атомарных микросервисов, отвечающих за отдельный небольшой процесс (отправить письмо, получить данные по заказу, сменить статус заказа, создать клиента и т. п.).
Набор таких блоков объединяется бизнес-логикой в общую систему (например с помощью BPMS). Несмотря на наличие связей, каждый блок автономен и имеет свои точки входа и выхода.

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

image
Читать дальше →
Всего голосов 10: ↑8 и ↓2+6
Комментарии18

Разбор доклада Баруха Садогурского «DevOps для разработчиков (или против них?!)»

Время на прочтение1 мин
Количество просмотров5.6K


Впервые в своей истории JUG.ru выходит обеими ногами в онлайн и представляет новый формат: смесь доклада и подкаста. Вашему вниманию мы представим живой разбор доклада Баруха Садогурского «DevOps для разработчиков (или против них?!)». В разборе будут участвовать:


  • Барух Садогурский, Developer Advocate в компании JFrog, автор доклада, евангелист DevOps и любимец публики;
  • Антон Кекс, основатель компании Codeborne, гуру методологии XP и настоящий Software Craftsman;
  • Олег Анастасьев, ведущий разработчик в Одноклассниках и гуру распределенных систем;
  • Алексей Федоров, лидер питерского JUG и организатор Java-конференций Joker и JPoint.


Участие бесплатное!


РЕГИСТРАЦИЯ ТУТ
Всего голосов 28: ↑22 и ↓6+16
Комментарии1

Проектирование в Confluence

Время на прочтение8 мин
Количество просмотров92K
Всем привет!

Меня зовут Маша, я работаю инженером по обеспечению качества в группе компаний Тинькофф. Работа QA предполагает множество коммуникаций с разными людьми из разных команд, а я к тому же была менеджером и лектором образовательных программ, поэтому моя карта коммуникаций была максимально широкой. И в какой-то момент я взорвалась: я поняла, что больше не могу, не могу, не могу заполнять адовые тонны нечитаемых таблиц и документов.



Читать дальше →
Всего голосов 36: ↑35 и ↓1+34
Комментарии8

От монолита к распределенной системе

Время на прочтение5 мин
Количество просмотров2.6K
Постоянный рост конкуренции среди Банков заставляет подстраиваться под разные категории Клиентов. Так, одним проще зайти на сайт и оформить заявку на банковский продукт онлайн, другие же привыкли выбирать новые продукты и услуги непосредственно при живом общении с банковским представителем. В сентябре 2019г. в Хоум Кредит Банке решили запустить новый процесс для Клиента, основная цель которого была в сохранении контакта «Клиент – Оператор Банка» и отказе от физической привязки оператора к офису или стойке Банка в торговом центре.

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

На пути к новой платформе


Стали смотреть в сторону планшетного решения. Реализация нового процесса на планшете на базе архитектуры текущей фронт-офисной системы Банка для работы Операторов с Клиентом выглядела нерациональной по причине устаревшего технологического стека, т.к. текущий фронт-офис представляет собой монолитное web- приложение, написанное 8 лет назад на Silverlight. Попытки работы с текущим фронтом на планшете были не успешными из-за перегруженной ui-части приложения и отсутствия адаптивной вёрстки. Кроме того, отсутствие поддержки Silverlight со стороны Microsoft тонко намекало на то, что жизненный цикл нашего текущего приложения подходит к концу и что наступил момент радикальной переработки и переход на новые технологии. Пришли к решению реализации микросервисной архитектуры. Почему было необходимо отказаться от монолита? Во-первых, из-за масштабируемости решения, улучшения общей отказоустойчивости и независимого обновления компонентов. Во-вторых, в Банке тенденция распределения функционала между продуктовыми командами и микросервисный подход дает в этом случае большую гибкость и независимость команд.
Читать дальше →
Всего голосов 8: ↑8 и ↓0+8
Комментарии2

Heroku + Docker + Spring Boot

Время на прочтение5 мин
Количество просмотров20K
Далее речь пойдет о моем опыте запуска докеризованного Spring Boot приложения на бесплатных виртуальных машинах облачного сервиса Heroku. Одно из главных преимуществ этого провайдера в том, что он дает возможность создавать бесплатные виртуалки с ограничением по часам работы, причем для этого достаточно только регистрации. Даже платежные реквизиты подтверждать не требуется, хотя если их подтвердить можно получить дополнительные бонусы. Подробнее про их прайс можно прочитать здесь. С моей точки зрения их политика по части бесплатных ресурсов почти не имеет аналогов.

И так, после того, как вы создали на Heroku приложение есть несколько способов развернуть в нем ваш код
Читать дальше →
Всего голосов 11: ↑11 и ↓0+11
Комментарии7
1
23 ...

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность

Специализация

Специалист
От 1 000 000 000 000 ₽