Как стать автором
Обновить
38
0.1
Павел Маминов @Xobotun

Жаба-программист

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

Уходим с «Яндекс.Почты» на свой почтовый сервер

Уровень сложности Простой
Время на прочтение 5 мин
Количество просмотров 57K

17 апреля 2023 года «Яндекс» отключает бесплатную почту для бизнеса и предлагает платить от 249 до 1399₽ за юзера в месяц. Если не оплатить услуги, все аккаунты «Яндекс 360» будут принудительно переведены в режим чтения, то есть читать письма будет можно, а отвечать на них — нет.

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

Конечно, легче всего согласиться на условия и оплатить требуемую сумму. На это и рассчитывает провайдер, что 99% клиентов молча заплатят деньги, ведь у них нет другого выхода… Но на самом деле выход есть.

Если в двух словах, можно взять недорогой VPS, поставить туда один из свободных почтовых серверов и сэкономить пару тысяч рублей. Или сотен тысяч, смотря сколько у вас сотрудников. Финансовая раскладка под катом.
Читать дальше →
Всего голосов 73: ↑68 и ↓5 +63
Комментарии 186

Глубокое погружение в Java Memory Model

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


Я провел в изучении JMM много часов и теперь делюсь с вами знаниями в простой и понятной форме.


В этой статье мы подробно разберем Java Memory Model (JMM) и применим полученные знания на практике. Да, в интернете накопилось достаточно много информации про JMM/happens-before, и, кажется, что очередную статью про такую заезженную тему можно пропускать мимо. Однако я постараюсь дать вам намного большее и глубокое понимание JMM, чем большинство информации в интернете. После прочтения этой статьи вы будете уверенно рассуждать о таких вещах как memory ordering, data race и happens-before. JMM — сложная тема и не стоит верить мне на слово, поэтому большинство моих утверждений подтверждается цитатами из спеки, дизассемблером и jcstress тестами.

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

Собеседование Backend-Java-разработчика: вопросы и где искать ответы. Часть 2

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

Публикую продолжение сборника вопросов-ответов с собеседований на Backend-Java-разработчика. В первой части мы прошлись по Java и Spring. А в этой поговрим о Hibernate, базах данных, паттернах и практиках разработки, об одной популярной библиотеке, поддержке и сопровождении наших приложений, а также посмотрим на альтернативные шпаргалки и подведём итоги.

Потопали
Всего голосов 21: ↑18 и ↓3 +15
Комментарии 14

Быстрый поиск касательных и пересечений у выпуклых многоугольников

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

Я недавно сделал маленькую библиотеку для решения задачи поиска кратчайшего пути на 2D карте с выпуклыми препятствиями. В процессе реализации я придумал пару алгоритмов и трюков, описания которых я нигде не встречал. Поэтому делюсь этими "изобретениями" с общественностью.


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

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

Scrum-мем на злобу дня

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

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



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


Читать дальше →
Всего голосов 62: ↑31 и ↓31 0
Комментарии 60

Обрабатываем данные на стороне клиента с помощью WebAssembly

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


WebAssembly (сокр. WASM) — технология запуска предварительно скомпилированного бинарного кода в браузере на стороне клиента. Впервые была представлена в 2015 году и на текущий момент поддерживается большинством современных браузеров.

Один из распространенный сценариев использования — предварительная обработка данных на стороне клиента перед отправкой файлов на сервер. В этой статье разберемся как это делается.
Читать дальше →
Всего голосов 33: ↑33 и ↓0 +33
Комментарии 6

Выбор архитектурного стиля. Часть 3

Время на прочтение 4 мин
Количество просмотров 5.6K
Привет, Хабр. Сегодня я продолжаю серию публикаций, которую написал специально к старту нового потока курса «Software Architect».





Введение


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

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

Сейчас мы наконец определим основные характеристики микросервисной архитектуры.
Читать дальше →
Всего голосов 9: ↑8 и ↓1 +7
Комментарии 4

Контрольный список для ревью кода в распределенных системах

Время на прочтение 6 мин
Количество просмотров 6.8K
points of view by sanja

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

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

Команда Mail.ru Cloud Solutions перевела статью, автор которой несколько лет занимался обнаружением типовых сбоев в коде на продакшене и изучал причины, приведшие к такому результату. В статье — рекомендации по проверке кода, которые автор использует в качестве базового контрольного списка.
Читать дальше →
Всего голосов 30: ↑30 и ↓0 +30
Комментарии 3

Опенсорсные альтернативы Google Analytics на своём хостинге

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

Веб-интерфейс опенсорсного сервиса аналитики Matomo

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

С точки зрения системного администратора в этих списках отдельно выделяется категория веб-аналитики — замена сервису Google Analytics, который собирает детальную статистику о посетителях сайта. Все знают, как работает такой сервис. Внедряете на страничках JS-код отслеживания, и если человек не установил блокировщик следящих скриптов, то каждый раз при открытии страницы будет срабатывать этот скрипт. Дальше статистика по вашим пользователям отправляется на хранение в корпорацию Google.

К счастью, есть ряд свободных, опенсорсных альтернатив Google Analytics, которые к тому же работают быстрее, поскольку скрипты меньше по размеру и загружаются с вашего собственного хостинга, а не со стороннего сервера. Информация о пользователях никуда не отправляется, а многие сервисы не используют куки и соответствуют законодательству GDPR о защите личных данных.
Читать дальше →
Всего голосов 46: ↑46 и ↓0 +46
Комментарии 18

Подготовка к собеседованию в компании большой пятерки

Время на прочтение 5 мин
Количество просмотров 18K
По моим впечатлениям очень многих людей интересует тема подготовки к собеседованиям в топ технические компании, поэтому решил вместо личных ответов написать одну статью на которую в дальнейшем буду ссылаться. Всем кому интересен процесс самого собеседования, вещи на которые нужно обращать внимание, как готовиться и к чему готовиться — добро пожаловать под кат.
Читать дальше →
Всего голосов 17: ↑11 и ↓6 +5
Комментарии 36

«Обратные интервью» или Как вовремя перевернуть доску

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

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


Что спрашивают маленькие девочки у чеширских котов?

Читать дальше →
Всего голосов 81: ↑75 и ↓6 +69
Комментарии 141

Работаем в IntelliJ IDEA на слабом железе

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

Обнаружил секретный репозиторий на гитхабе JetBrains под названием Projector. Благодаря нему написал кусок кода в IntelliJ IDEA, запущенной на Android-планшете. Рассказываю, как это повторить.


Читать дальше →
Всего голосов 94: ↑93 и ↓1 +92
Комментарии 147

Подготовка к собеседованиям в IT-гиганты: как я преодолела проклятье алгоритмического собеседования

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

Дисклеймер:


Я не программирую с трёх лет, не знаю наизусть Кнута, не являюсь призёром олимпиад по информатике и чемпионатов по спортивному программированию, не училась в MIT. У меня за плечами образование по информатике и 6 лет опыта в коммерческой разработке. И до недавнего времени я не могла пройти дальше первого технического скрининга в IT-гиганты из FAANG (Facebook, Amazon, Apple, Netflix, Google и подобные), хотя предпринимала несколько попыток. 

Но теперь всё изменилось, я получила несколько офферов и хочу поделиться опытом, как можно к этому прийти. Речь пойдёт о позиции Software Engineer в европейских офисах перечисленных компаний.
Читать дальше →
Всего голосов 201: ↑196 и ↓5 +191
Комментарии 342

Рабочая станция в Docker контейнере

Время на прочтение 5 мин
Количество просмотров 35K
Для чего? Мне постоянно приходят всякие идеи и некоторые из них сразу хочется попробовать, но рабочая станция не всегда под рукой, поэтому я настраивал IDE на всем что попадется под руку. В итоге устройства начали захламляться, а поддерживать и обновлять их стало тяжело.

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

image

В итоге, сам того не подозревая, сделал очень удобный инструмент для решения большого количества задач: записная книжка, тестовая площадка, посмотреть то что телефон не показывает, безопасная песочница, запуск скриптов для программ работающие только GUI и мн. др. А в статье хочу поделиться методом создания таких контейнеров.
Читать дальше →
Всего голосов 28: ↑25 и ↓3 +22
Комментарии 62

10 интересных репозиториев на GitHub, полезных любому разработчику

Время на прочтение 4 мин
Количество просмотров 82K
Представляем вам перевод статьи Simon Holdorf, опубликованной на сайте medium.com. В ней вы найдете ссылки на полезные репозитории, с помощью которых можно прокачать навык разработки ПО.


Фото с ресурса Unsplash. Автор: Vishnu R Nair

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

Каждый из них имеет множество звезд на GitHub, что только подтверждает их популярность, актуальность и полезность. Одни репозитории научат вас чему-то новому, благодаря другим вы сможете создать какие-то классные штуки. В целом, используя их, можно основательно прокачать навык разработки программного обеспечения.
Читать дальше →
Всего голосов 88: ↑83 и ↓5 +78
Комментарии 14

Этот восхитительный Юникод

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


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

Юникод — это потрясающе! До его появления международная коммуникация была изнурительной: каждый определял свой отдельный расширенный набор символов в верхней половине ASCII (так называемые кодовые страницы). Это порождало конфликты. Просто подумайте, что немцам приходилось договариваться с корейцами, где чья кодовая страница. К счастью, появился Юникод и ввёл общий стандарт. Юникод 8.0 охватывает более 120 000 символов из более 129 письменностей. И современные, и древние, и до сих пор не расшифрованные. Юникод поддерживает текст слева направо и справа налево, наложение символов и включает самые разные культурные, политические, религиозные символы и эмодзи. Юникод потрясающе человечен, а его возможности сильно недооцениваются.
Читать дальше →
Всего голосов 64: ↑64 и ↓0 +64
Комментарии 56

Коты в коробочках, или Компактные структуры данных

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

image


Как быть, если дерево поиска разрослось на всю оперативку и вот-вот подопрет корнями соседние стойки в серверной? Что делать с инвертированным индексом, жадным до ресурсов? Завязывать ли с разработкой под Android, если пользователю прилетает «Память телефона заполнена», а приложение едва на половине загрузки важного контейнера?


В целом, можно ли сжать структуру данных, чтобы она занимала заметно меньше места, но не теряла присущих ей достоинств? Чтобы доступ к хэш-таблице оставался быстрым, а сбалансированное дерево сохраняло свои свойства. Да, можно! Для этого и появилось направление информатики «Succinct data structures», исследующее компактное представление структур данных. Оно развивается с конца 80-х годов и прямо сейчас переживает расцвет в лучах славы big data и highload.


А тем временем на Хабре найдется ли герой, способный пересковоговорить три раза подряд
[səkˈsɪŋkt]?

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

Что такое ЭЭГ и зачем она нужна

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

Ученые любят искать первое упоминание своей науки. К примеру, я видел статью, где всерьез утверждалось, что первые опыты по электрической стимуляции мозга были проведены в Древнем Риме, когда кого-то ударил током электрический угорь. Так или иначе, обычно, историю электрофизиологии принято отсчитывать примерно от опытов Луиджи Гальвани (XVIII век). В этом цикле статей мы попробуем рассказать небольшую часть того, что наука узнала за последние 300 лет про электрическую активность мозга человека, про то, какие профиты из всего этого можно извлечь.


Читать дальше →
Всего голосов 50: ↑49 и ↓1 +48
Комментарии 19

Полярные сияния на планетах Солнечной системы

Время на прочтение 12 мин
Количество просмотров 35K
Наверняка те, кто хоть раз в жизни видел своими глазами северное (или южное) полярное сияние, скажут, что это просто фантастическое зрелище. Чудо природы планетарного масштаба, грандиозное явление, которое человек может наблюдать на Земле невооруженным глазом. Свечение атмосферы на высотах в сотни и на удалении в тысячи километров настолько разноцветно и динамично, что производит впечатление чего-то живого, движущегося, дышащего…

Но только ли наша планета может похвастать этим грандиозным зрелищем? Могут ли, если не коренные жители, то будущие колонисты, к примеру Марса или спутников Юпитера, наблюдать что-либо подобное?

Что вообще нужно, чтобы на какой-либо планете возникли полярные сияния?

По определению, полярные сияния — это свечение (люминесценция) верхних слоёв атмосфер планет, обладающих магнитосферой, вследствие их взаимодействия с заряженными частицами солнечного ветра.

Итак, нам требуется:

1. Солнечный ветер, представляющий из себя поток заряженных частиц — протонов, электронов, ядер гелия и др. — Имеется всегда во всей Солнечной системе.
У планет или их спутников:
2. Атмосфера, с атомами которой будет взаимодействовать солнечный ветер.
3. Магнитное поле, направляющее заряженные частицы в определенную область планеты (не обязательно в полярную, — угол между магнитной осью и осью вращения планеты, может быть значительным.)

Посмотрим, как это работает на Земле.


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

Город засыпает, просыпаются хабровчане

Время на прочтение 4 мин
Количество просмотров 24K
Если количество комментариев под статьёй стремительным домкратом приближается к 1000, будьте уверены — независимо от заявленной автором темы внутри бушует срач: очаги возгорания политоты, окружённые диванными экспертами по всем вопросам, психиатрические диагнозы на расстоянии по аватарке и никнейму, переходы на личности, саркастические выпады, едкость которых превышает таковую у крови ксеноморфов, и, конечно же, обязательное в таких случаях блюдо — взаимные обвинения в том, что ваш визави с вами дискутирует исключительно за вознаграждение и\или по долгу службы. Которая, видимо, и опасна и трудна, и на первый взгляд как будто не видна, а тридцать серебренников на дороге не валяются.

Самое забавное в такой ситуации это то,
Читать дальше →
Всего голосов 203: ↑198 и ↓5 +193
Комментарии 173

Информация

В рейтинге
2 812-й
Откуда
Москва, Москва и Московская обл., Россия
Работает в
Дата рождения
Зарегистрирован
Активность