![](https://habrastorage.org/r/w1560/getpro/habr/upload_files/515/600/606/515600606f5bbbd748020180a59d2f01.png)
Добрый день, хабр! Сегодня подготовил подборку занимательных игр для детей, чтобы прокачать мозги и узнать что такое программирование и с чем его едят...
Программист 1с
Добрый день, хабр! Сегодня подготовил подборку занимательных игр для детей, чтобы прокачать мозги и узнать что такое программирование и с чем его едят...
Все знают что плохо оставлять дефолтные пароли. Но что произойдет если поднять PostgreSQL позабыв о безопасности? Нас взломают? Как быстро взломают?
Я развернул PostgreSQL, настроил сборку логов и ниже расскажу что будет (спойлер — вас очень быстро похекают).
Всем привет. Меня зовут Алекс, я уехал из России в 2015, по-серьезному жил в 3 странах (Швеция, Израиль, США), но в итоге выбрал Нидерланды для жизни и работы. Я переехал сюда по стартап-визе в 2022 году, развиваю свой небольшой стартап, работаю в системе нидерландских фасилитаторов и помогаю развивать Movly.
В этой статье мы будем выбирать – куда переехать со своим стартапом: США или Нидерланды? Для меня лично совершенно очевидно, что Нидерланды - лучшая страна в Евросоюзе для стартапов, но вот когда начинаем сравнивать с США, даже я сомневаюсь…
Давайте прожарим их обеих!
Еще одна статья о том, как можно применять Spring Cloud Config Server при выборе Git репозитория как хранилища конфигураций приложений в облаке и не только в облаке.
Приветствую!
Давно не писал статей, все руки не доходили, наконец то, выбралось время и решил поделиться с Вами решением одной задачи.
Немного предыстории
В конце 2018 довелось участвовать в создание инфраструктуры одной поликлиники и одна из задач была организация почтового сервера. По желанию заказчика, предпочтение было отдано внешним службам, а именно pdd.yandex.ru. На тот момент требовалось не более 3-5 пользователей, и это решение посчитали оптимальным и самым быстрым. Но время шло, задачи менялись и в конце 2022 г. число учетных записей выросло до 95 из них активных, в повседневной работе, 25. Когда Яндекс ввел плату за каждого пользователя, было принято решение о переводе всей почты на локальное размещение. К тому же, весь доступ к почте, предполагает только локальное использование, без доступа из внешней сети. Перелопатив кучу вариантов, от коробочных решений до самосборной конфигурации, пал выбор на Kolab Groupware. Выбор был обусловлен желанием работы через WEB интерфейс, с общей адресной книгой, календарем, списком дел и файловым облаком. Плюшек хватало с лихвой, но возник ряд трудностей, о способах решения которых, я напишу ниже.
Всем привет! Меня зовут Владимир Баганов. Я продолжаю серию статей с простым разбором вопросов на собеседованиях на Java разработчика. Под капотом 269 разобранных вопросов из 1606 вопросов.
Здравствуй, дорогой читатель. Каждый разработчик, независимо от его специальности, сталкивался (или столкнётся во время своей профессиональной карьеры) с задачей, в которой необходимо разработать проект, имеющий базу данных, серверную часть и конечный продукт, взаимодействующий с пользователем. Данная статья поможет новичку разобраться с данной задачей.
В статье будут затронуты такие важные темы, как теория баз данных, реляционная база данных PostgreSQL, Spring Framework и Android разработка. Также будет рассмотрен базовый, не очень сложный пример, который поможет разобраться во всех этих темах и "потрогать" их руками.
Статья предназначена для начинающего разработчика, но имеющего базовые знания о разработке программного обеспечения и языках программирования Java и Kotlin.
Все материалы и исходный код можно найти здесь.
Цикл статей с вопросами по Kotlin, которые могут задать на собеседованиях.
Вопросы и ответы для собеседования по Kotlin. Часть 1
Вопросы и ответы для собеседования по Kotlin. Часть 2
Вопросы и ответы для собеседования по Kotlin. Часть 3 — вы находитесь здесь
Вопросы и ответы для собеседования по Kotlin. Часть 4
Туториал по настройке библиотеки Quartz в режиме кластера в Spring Boot приложении с возможностью отслеживания и управления жизненным циклом задания, в том числе переносом задания в случае необходимости.
Доброго времени суток. Я iOS-разработчик (хлопки-хлопки).
Так получилось, что работал я iOS-разработчиком на одном легаси-проекте в компании-вендоре. В октябре прошлого года появилось желание сменить текущий проект, чтобы перестать волноваться о легаси и начать развиваться.
Поговорив с начальством, мне назначили встречу с лидом iOS, чтобы подготовить меня к предстоящим собеседованиям. Однако, после нескольких вопросов от лида вердикт был, что не подхожу на текущие проекты. На вопрос, какие, собственно, критерии оценивания я получил ответ:
"тебе никогда никто не расскажет? в нашем деле все сам ?"
Сам так сам. Я начал читать, смотреть курсы, видеоуроки и активно подаваться в разные компании как в России, так и за рубежом, чтобы выяснить, какие, собственно говоря, критерии прохождения. Постепенно раз за разом сформировался список наиболее часто встречающихся вопросов на собеседованиях iOS-разработчика, который я решил опубликовать здесь.
С проблемой загрузки больших XML столкнулся при переходе с КЛАДР и ФИАС на справочники ГАР - Государственный адресный реестр (Федеральная информационная адресная система).
Справочник ГАР содержит более подробную информацию чем предыдущие классификаторы. В том числе информацию по муниципальным делениям. В связи с чем справочник после распаковки занимет около 250 ГБ, что примерно в 3 раза больше чем тот же ФИАС.
Предыдущая загрузка работала на DOM-модели, т.е. весь XML-файл считывался в память. Соответственно при попытке загрузить ГАР таким же способом стали стабильно получать OutOfMemory. А значит настало время менять подход к загрузке)
Немного теории:
DOM (Document Object Model) - это стандартный интерфейс для работы с документами в формате XML (Extensible Markup Language). DOM-модель представляет XML-документ в виде дерева объектов, где каждый элемент и атрибут документа является узлом дерева.
SAX (Simple API for XML) является событийно-ориентированным API для чтения XML-документа. Он предоставляет возможность читать XML-документ последовательно и обрабатывать события, такие как начало и конец элемента, содержимое элемента и т.д.
StAX (Streaming API for XML) также является API для последовательного чтения и записи XML-документов. Он предоставляет потоковый доступ к XML-документу, позволяя читать его и записывать по частям. StAX предоставляет возможность читать и записывать XML-документы в виде потока событий, аналогично SAX, но также предоставляет возможность читать и записывать XML-документы в виде итерируемых наборов событий. StAX позволяет эффективно обрабатывать большие XML-документы и не требует реализации обработчиков событий.
При кажущейся простоте создания приложения на JavaFX (особенно с помощью JavaFX Scene Builder 2.0 и бесплатных видео-уроков на различных ресурсах), написание функционала программы – это только половина пути. Программа должна работать, жить своей жизнью самостоятельно, без привязки к среде разработки. И, как показывает мой личный опыт, при сборке проекта и выпуске его в «большой мир» приходится преодолевать немало терний.
Надеюсь, что моя статья поможет кому-нибудь избежать ошибок, найти ответы на вопросы или просто сразу пойти правильным путем (например, создавать обычный maven-проект на Java-8, вручную прописывая в pom.xml зависимости и способ сборки, и всегда указывать на латинице имена учетных записей, директорий в своей операционной системе).
Когда речь заходит об авторизации, роли вступают в игру. Если модель плоская, то все просто. Пользователь обладает определенным набором привелегий и при запросе достаточно лишь проверить, что нужное право доступа присутствует в коллекции. Но как быть, если у пользователя могут быть разные наборы ролей для разных сущностей? Например, я обладаю ролью EDITOR
в посте в социальной сети, но имею только VIEWER
в другом. Также могут быть определены правила наследования. Если админ выдает дает мне роль EDITOR
, то я автоматически приобретаю привилегию VIEWER
. При этом, если я EDITOR
, роль ADMIN
у меня не появляется.
Как увязать все эти детали в коде и при этом не превратить продукт в большую кучу грязи? В рамках этой статьи я расскажу вам:
1. Как реализовать наследование ролей в Java?
2. Как протестировать полученную иерархию?
3. Как применить решение в рамках Spring Security?
В этой статье разберем вариант реализации функционала перезапроса сообщений из семейства resilience шаблонов. Мы поговорим о retry. Точнее обсудим:
1. Что такое устойчивость и какое влияние на нее имеет retry?
2. Анализируем, где применять retry;
3. Реализуем retry;
4. Пишем unit-тесты с wiremock;
5.Делаем starter;
Абсурдная идея
Если создать в интернете базу данных всех существующих файлов, то любой архив будет представлять собой список имен каталогов, файлов, дата+время изменения/создания и хеши этих файлов. А при распаковки архива достаточно будет просто скачать из интернета содержимое файла по его хешу, записать на диск и присвоить атрибуты (дата,время). Т.е. даже архив с полным сезоном какого-нибудь сериала из 20 серий будет занимать не больше нескольких килобайт (в независимости от качества видео).
Привет, меня зовут Никита, я backend-разработчик в компании ИНТЕРВОЛГА. Работаю в компании уже 3 года, и за этот срок достаточно часто мне приходилось возиться с установкой и конфигурированием собственного почтового сервера для разных задач (см. далее) клиентов.
Сначала это было болью, каждая такая задача требовала понимания проблем каждого клиента, путей их решения, принципов работы почтового сервера и способов его тестирования, чего в начале карьеры у меня не было. В итоге приходилось по крупицам собирать информацию о составных частях поставленной задачи из различных источников.
В этой статье хотелось бы поделиться накопленным опытом, описать возможные трудности и подводные камни, с которыми можно столкнуться в похожих кейсах, и показать некую roadmap решения.
Путь начинается с того, как с нуля, по вводным условиям определить объем работ, и заканчивается финальной реализацией почтового сервера и его тестированием.
Я не видел в Сети и на Хабре цельной инструкции такого рода — и решил написать свою.
Статья не претендует на то, чтобы рассказать про всё сразу и максимально подробно (сомневаюсь, что это реализуемо). Наоборот, я стремился описать сложные и комплексные вещи простым языком. Слишком обширные темы, уже давно разобранные сообществом, я опускал. Главной целью было дать новичку, который закопается в дебрях “почтовых интриг”, указатель, в какую сторону копать при возникновении типовых вопросов и проблем. Надеюсь, что эта статья окажется полезной и найдет своего читателя. Приступим!
Зачастую, в ответ на вопрос "Как переназначить клавиши на macOS?" советуют использовать сторонний софт, например, Karabiner-Elements, но простое переназначение клавиш возможно и нативными средствами.