https://www.youtube.com/watch?v=S5rrt_QeWl4
В качестве практики рекомендую попробовать прочитать файл skills.json по аналогии как это сделано с peopleInfo.json
Дока по Klaxon https://github.com/cbeust/klaxon
В качестве практики рекомендую попробовать прочитать файл skills.json по аналогии как это сделано с peopleInfo.json
Дока по Klaxon https://github.com/cbeust/klaxon
YouTube
Обзор Klaxon или как работать с Json в Kotlin
В этом видео рассказываю о том как можно прочитать файл формата json используя язык Kotlin и библиотеку Klaxon
Dependency injection в Kotlin и Koin
Ух я смог! Даже если не являетесь программистом, просто зацените качество картинки и монтажа.
Это только начало, спасибо подписчикам, которые дают советы на тему: "Как делать лучше", я открыт для обратной связи... в планах и дальше развиваться и работать над качеством контента....
Урок: https://www.youtube.com/watch?v=RJ0aMfyabSM
Дока по Koin https://insert-koin.io/docs/quickstart/kotlin
Проект с Koin: github.com/twoZeros/sosial-network
Ух я смог! Даже если не являетесь программистом, просто зацените качество картинки и монтажа.
Это только начало, спасибо подписчикам, которые дают советы на тему: "Как делать лучше", я открыт для обратной связи... в планах и дальше развиваться и работать над качеством контента....
Урок: https://www.youtube.com/watch?v=RJ0aMfyabSM
Дока по Koin https://insert-koin.io/docs/quickstart/kotlin
Проект с Koin: github.com/twoZeros/sosial-network
YouTube
Dependency injection в Kotlin и Koin
В этом видео рассказываю о том что такое внедрение зависимостей и IoC и демонстрирую практическую реализацию на Kotlin и библиотеки KoinДополнительные матери...
🔥5
Теория графов: основы
Долго думал как подойти к повествованию этой темы, а когда появились мемы мне сразу открылся сценарий 😁
https://youtu.be/7cIMMPyHZCY?si=2eJV9odusfKGuZP-
Долго думал как подойти к повествованию этой темы, а когда появились мемы мне сразу открылся сценарий 😁
https://youtu.be/7cIMMPyHZCY?si=2eJV9odusfKGuZP-
YouTube
Теория графов: основы
В этом видео рассказываю самые основы теории Графов и повествую об способах задания графов, для их хранения и обработки с помощью компьютера. Это первое виде...
😁4🔥3
Доп образование в сфере IT с гос. поддержкой.
Если интересуетесь сферой AI, возможно заинтересует прохождение курса на эту тему за 10-20к при полной стоимости около 80к
https://ai.2035.university/?_ga=2.123019851.1524702865.1715862747-1735646360.1715749089#catalog
Многие курсы требует сильной подготовки, но есть и для новичков...
А как вы считаете нужно ли учиться на онлайн-курсах такого формата или же лучше учиться самому в своём темпе по материалам в открытом доступе, книгам....?
Если интересуетесь сферой AI, возможно заинтересует прохождение курса на эту тему за 10-20к при полной стоимости около 80к
https://ai.2035.university/?_ga=2.123019851.1524702865.1715862747-1735646360.1715749089#catalog
Многие курсы требует сильной подготовки, но есть и для новичков...
А как вы считаете нужно ли учиться на онлайн-курсах такого формата или же лучше учиться самому в своём темпе по материалам в открытом доступе, книгам....?
ai.2035.university
Искусственный интеллект | Университет 2035
Допобразование в области искусственного интеллекта и в смежных областях при финансовой поддержке от государства
👍7
Моя первая статья посвященная алгоритмам на графах
https://telegra.ph/Kak-najti-kogo-ugodno-v-socialnyh-setyah-ispolzuya-grafy-i-poisk-v-shirinu-05-19
Кстати могу ещё порекомендовать и эту https://www.baeldung.com/kotlin/bfs-graphs
Baeldung - Белдунг или как там это читается один из лучших обучающих сайтов для джавистов)))
https://telegra.ph/Kak-najti-kogo-ugodno-v-socialnyh-setyah-ispolzuya-grafy-i-poisk-v-shirinu-05-19
Кстати могу ещё порекомендовать и эту https://www.baeldung.com/kotlin/bfs-graphs
Baeldung - Белдунг или как там это читается один из лучших обучающих сайтов для джавистов)))
Telegraph
Как найти кого угодно в социальных сетях используя графы и поиск в ширину
Немного определений Граф - это топологическая модель, которая состоит из множества вершин и множества соединяющих их рёбер. При этом значение имеет только сам факт, какая вершина с какой соединена. Очень многие задачи могут быть решены используя богатую библиотеку…
👍7
Forwarded from СБЕР IT Сочи
Студенты выпускных курсов бакалавриата и магистратуры, это предложение для вас 🥳
Мы запускаем конкурс на позиции стажеров по сопровождению и тестированию⚡️
Стажировка оплачивается и длится 3-6 месяцев. При успешном прохождении у вас есть возможность устроиться в штат
В карточках рассказываем, что вас ждет на стажировке и как попасть в нашу команду
Ссылки на вакансии:
🟢 Инженер сопровождения
🟢 Стажер QA
До встречи в нашем офисе, будущие коллеги 🫱🏼🫲🏻
Мы запускаем конкурс на позиции стажеров по сопровождению и тестированию
Стажировка оплачивается и длится 3-6 месяцев. При успешном прохождении у вас есть возможность устроиться в штат
В карточках рассказываем, что вас ждет на стажировке и как попасть в нашу команду
Ссылки на вакансии:
До встречи в нашем офисе, будущие коллеги 🫱🏼🫲🏻
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5❤1
Перестань платить за менеджеры задач
Всю эту неделю был погружён в работу с практикантами - студентами из Сириус. Я курирую backend направление и решаю задачи связанные с инфраструктурой.
Как только я узнал о "назначении", я сразу понял, что нам нужен менеджер задач (task tracker).
Поиск менеджера задач
Первая мысль была воспользоваться Яндекс. Трекером , Битрикс24 или другими отечественными решениями, но все они, как под копирку, в бесплатном тарифе имеют ограничение максимум до 5 пользователей, что неподходит, так как надо было минимум 15 учёток...
Есть Trello, там такого орграничения нет, но есть сложности с регистрацией пользователей, которые из РФ.
Решение
Случайно наткнулся на Nextcloud и узнал что он может многое, в том числе и помочь в организации командной работы.
NextCloud (или NC) — это ПО с открытым исходным кодом, которое позволяет организовать собственное облачное хранилище и контролировать хранение данных.
В Nextcloud есть собственный магазин приложений, которые устанавливаются в пару кликов и расширяют возможности Nextcloud: текстовые редакторы, конвертеры видео, видео плееры, ПО для построение интеллектуальных карт, аналог конфлюенса, чего только нет, в том числе есть Task Tracker - Deck.
Установка
Deck на GitHub:
https://github.com/nextcloud/deck
А развернуть Nextcloud можно на виртуальном выделенном сервере, есть официальный Docker image и огромное количество tutorial-ов как это сделать ..
Вот например:
https://zomro.com/rus/blog/faq/302-kak-ustanovit-nextcloud-v-docker
Всю эту неделю был погружён в работу с практикантами - студентами из Сириус. Я курирую backend направление и решаю задачи связанные с инфраструктурой.
Как только я узнал о "назначении", я сразу понял, что нам нужен менеджер задач (task tracker).
Поиск менеджера задач
Первая мысль была воспользоваться Яндекс. Трекером , Битрикс24 или другими отечественными решениями, но все они, как под копирку, в бесплатном тарифе имеют ограничение максимум до 5 пользователей, что неподходит, так как надо было минимум 15 учёток...
Есть Trello, там такого орграничения нет, но есть сложности с регистрацией пользователей, которые из РФ.
Решение
Случайно наткнулся на Nextcloud и узнал что он может многое, в том числе и помочь в организации командной работы.
NextCloud (или NC) — это ПО с открытым исходным кодом, которое позволяет организовать собственное облачное хранилище и контролировать хранение данных.
В Nextcloud есть собственный магазин приложений, которые устанавливаются в пару кликов и расширяют возможности Nextcloud: текстовые редакторы, конвертеры видео, видео плееры, ПО для построение интеллектуальных карт, аналог конфлюенса, чего только нет, в том числе есть Task Tracker - Deck.
Установка
Deck на GitHub:
https://github.com/nextcloud/deck
А развернуть Nextcloud можно на виртуальном выделенном сервере, есть официальный Docker image и огромное количество tutorial-ов как это сделать ..
Вот например:
https://zomro.com/rus/blog/faq/302-kak-ustanovit-nextcloud-v-docker
❤🔥8🔥4👀1
Секретный отдых местных в Сочи
Сегодня побывал в месте, где тусят, как мне показалось, исключительно местные. Вы врядли найдете это место на 2гис, яндексе.. При въезде нет никаких вывесок, плакатов...
Я бы никогда туда не попал, если бы не жил в Сочи долгое время и не обзавёлся новыми связями....
Не уверен, что имею право рассказывать, где я отдыхал...
Цена: 300 руб с человека на целый день!
В стоимость входит: мангал, столик на 6 человек с лавочками, есть возможность бесплатно воспользоваться холодильником и даже кинуть себе удлинитель...
На базе есть туалет, раковина с водой, магазинчик с адекватными ценами (кофе 3 в 1 стоит 100 руб, энергетик адреналин 150)
Меня сразу раскусили, что я приезжий и ничего не понимаю в приготовлении шашлыка...Хозяин комплекса был в шоке кого занесло на его базу, но был любезен и помогал мне.
Он дал мне бесплатно 3 банки жидкости для розжига...
Пожалел бедолагу😂
Я пол дня жарил шашык: 2 мешка углей, 5 кг мяса, а ещё были грибы😱😂
В общем и целом все прошло классно, я бы с удовольствием вернулся сюда, но пока ещё мне не скинули номер телефона, по которому надо бронировать...думаю, на согласование этот момент😂
Сегодня побывал в месте, где тусят, как мне показалось, исключительно местные. Вы врядли найдете это место на 2гис, яндексе.. При въезде нет никаких вывесок, плакатов...
Я бы никогда туда не попал, если бы не жил в Сочи долгое время и не обзавёлся новыми связями....
Не уверен, что имею право рассказывать, где я отдыхал...
Цена: 300 руб с человека на целый день!
В стоимость входит: мангал, столик на 6 человек с лавочками, есть возможность бесплатно воспользоваться холодильником и даже кинуть себе удлинитель...
На базе есть туалет, раковина с водой, магазинчик с адекватными ценами (кофе 3 в 1 стоит 100 руб, энергетик адреналин 150)
Меня сразу раскусили, что я приезжий и ничего не понимаю в приготовлении шашлыка...Хозяин комплекса был в шоке кого занесло на его базу, но был любезен и помогал мне.
Он дал мне бесплатно 3 банки жидкости для розжига...
Пожалел бедолагу😂
Я пол дня жарил шашык: 2 мешка углей, 5 кг мяса, а ещё были грибы😱😂
В общем и целом все прошло классно, я бы с удовольствием вернулся сюда, но пока ещё мне не скинули номер телефона, по которому надо бронировать...думаю, на согласование этот момент😂
❤8❤🔥3👍3🔥2
Hilla позволяет быстрее создавать бизнес-приложения — больше не нужно жонглировать эндпойнтами REST или расшифровывать запросы GraphQL.
Hilla объединяет Spring Boot и React, поэтому разработка приложений становится очень быстрой.
Что меня в нём удивило ?
Это возможность из TypeScript-a дергать функции написанные на java..
Например вот так выглядит взаимодействие фронта с бэком
useEffect(() => {
CRMService.findAllContacts().then(setContacts);
}, []);
async function onContactSaved(contact: ContactRecord) {
const saved = await CRMService.save(contact)
if (contact.id) {
setContacts(contacts => contacts.map(current => current.id === saved.id ? saved : current));
} else {
setContacts(contacts => [...contacts, saved]);
}
setSelected(saved);
}
Тут CRMService - это класс на Java помеченный специальной аннотацией, но Hilla анализирует java код и автоматом генерит прослойку для вызова бэка, благодаря чему с точки зрения кода интеграция вообще безшовная (ну а в реальности вызывается http запрос).. не нужно писать модель данных для ответа, она тоже генерится на основе кода на бэке..
Ещё из классных фич - валидация, её можно описать на бэке а она будет отрабатывать и на фронте при заполнении html-формы.
Меня очень вдохновило это видео, час на одном дыхании пролетел : https://www.youtube.com/watch?v=kykdX-cUv1I&list=PLcRrh9hGNalnnotZb0HstGw_GvZBc9xZp
p.s пока нет идей, где бы я мог его применить, но хочется собрать на нём небольшой проект....
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Why we built Hilla: the modern web framework for Java
Does the world really need yet another frontend framework? We believe it does.
With Hilla, you can build enterprise-grade web apps faster by seamlessly combining server-side Java and client-side TypeScript, instead of developing the frontend and backend…
With Hilla, you can build enterprise-grade web apps faster by seamlessly combining server-side Java and client-side TypeScript, instead of developing the frontend and backend…
👍6🔥4🤔2
Nerdctl - как Docker только лучше
Зачем мне это?
По заявлению самих разработчиков этой утилиты...
Цель nerdctl — облегчить экспериментирование с передовыми функциями управления контейнерами, которых нет в Docker, но которые завезут позже в Docker, и то не факт (может только в enterprise версию).
Кроме того, nerdctl может быть потенциально полезен для отладки кластеров Kubernetes, но это не основная цель.
Подробнее об этом инструменте можете почитать в доке на github
Перейдём к практике
Nerdctl обеспечивает CLI идентичный Docker.
Если вы знакомы с CLI docker вы уже знакомы с nerdctl.
Для примера, покажу команду, как используя nerdctl запустить контейнер с nginx
Посмотрим другие команды?
Установка
Самое сложное в деле перехода с docker на nerdctl - это установка. Ну я любезно поделюсь командами для установки на linux.
Установку выполнять необходимо с правами администратора (sudo)
Шаг 1
Для начала установим сам nerdctl, возьмём на текущий момент самую актуальную версию nerdctl из github.
Вы же хотите быть в тренде?😀
Шаг 2
Далее нам нужно установить CNI плагины (Container Networking Interface)
CNI - обеспечивает всё необходимое для стандартизированного управления сетевыми интерфейсами в Linux-контейнерах и гибкого расширения сетевых возможностей.
Тоже берём самую актуальную версию из github
P.s Тут легко нарваться на ситуацию, когда nerdctl не совместим с CNI, например у вас свежий nerdctl, но старый CNI, поэтому следим за версиями...
Те версии, которые я указал, 100% совместимы между собой ✅
Заключение
И ах да, теперь вы можете отрубить Docker и всегда использовать вместо него nerdctl
Некоторые, самые отбитые, делают алиас docker = nerdctl, ну я так не рекомендую, используйте докер, если так хочется, он тоже прекрасен)
Скорее всего, я не убедил попробовать nerdctl, но я рекомендую ознакомится с докой на эту утилиту и возможно какие-то фичи вызовут восторг и вы всё же попробуете...
Дублирую ссылку на доку
Ещё использование/гугление этой темы добавит вам понимание, что под капотом у docker и как он работает ..
P.S Вдохновило меня написать этот пост обучение на онлайн-курсе, я подтягиваю навык "деплой и запуск приложений в контейнерах", далее напишу ещё парочку статей на эту тему 🫡🤗
Зачем мне это?
По заявлению самих разработчиков этой утилиты...
Цель nerdctl — облегчить экспериментирование с передовыми функциями управления контейнерами, которых нет в Docker, но которые завезут позже в Docker, и то не факт (может только в enterprise версию).
Кроме того, nerdctl может быть потенциально полезен для отладки кластеров Kubernetes, но это не основная цель.
Подробнее об этом инструменте можете почитать в доке на github
Перейдём к практике
Nerdctl обеспечивает CLI идентичный Docker.
Если вы знакомы с CLI docker вы уже знакомы с nerdctl.
Для примера, покажу команду, как используя nerdctl запустить контейнер с nginx
nerdctl run -d -p 8080:80 --name nginx-app nginx
Посмотрим другие команды?
nerdctl pull: This downloads a container image from a container registry.
nerdctl run: This starts a new container and runs a command inside it.
nerdctl ps: This lists all running containers.
nerdctl stop: This stops a running container.
nerdctl compose up: This starts all the containers defined in your Docker Compose file.
Установка
Самое сложное в деле перехода с docker на nerdctl - это установка. Ну я любезно поделюсь командами для установки на linux.
Установку выполнять необходимо с правами администратора (sudo)
Шаг 1
Для начала установим сам nerdctl, возьмём на текущий момент самую актуальную версию nerdctl из github.
Вы же хотите быть в тренде?😀
wget https://github.com/containerd/nerdctl/releases/download/v2.0.0-rc.0/nerdctl-full-2.0.0-rc.0-linux-amd64.tar.gz
mkdir nerdctl
tar -xzf nerdctl-full-2.0.0-rc.0-linux-amd64.tar.gz -C ./nerdctl
cp ./nerdctl/bin/nerdctl /usr/bin/
chmod +x /usr/bin/nerdctl
Шаг 2
Далее нам нужно установить CNI плагины (Container Networking Interface)
CNI - обеспечивает всё необходимое для стандартизированного управления сетевыми интерфейсами в Linux-контейнерах и гибкого расширения сетевых возможностей.
Тоже берём самую актуальную версию из github
wget https://github.com/containernetworking/plugins/releases/download/v1.5.1/cni-plugins-linux-amd64-v1.5.1.tgz
mkdir ./CNI
tar xzf cni-plugins-linux-amd64-v1.5.1.tgz -C ./CNI
mkdir -p /opt/cni/bin/
mv ./CNI/* /opt/cni/bin/
P.s Тут легко нарваться на ситуацию, когда nerdctl не совместим с CNI, например у вас свежий nerdctl, но старый CNI, поэтому следим за версиями...
Те версии, которые я указал, 100% совместимы между собой ✅
Заключение
И ах да, теперь вы можете отрубить Docker и всегда использовать вместо него nerdctl
systemctl mask docker
systemctl stop docker
Некоторые, самые отбитые, делают алиас docker = nerdctl, ну я так не рекомендую, используйте докер, если так хочется, он тоже прекрасен)
Скорее всего, я не убедил попробовать nerdctl, но я рекомендую ознакомится с докой на эту утилиту и возможно какие-то фичи вызовут восторг и вы всё же попробуете...
Дублирую ссылку на доку
Ещё использование/гугление этой темы добавит вам понимание, что под капотом у docker и как он работает ..
P.S Вдохновило меня написать этот пост обучение на онлайн-курсе, я подтягиваю навык "деплой и запуск приложений в контейнерах", далее напишу ещё парочку статей на эту тему 🫡🤗
GitHub
GitHub - containerd/nerdctl: contaiNERD CTL - Docker-compatible CLI for containerd, with support for Compose, Rootless, eStargz…
contaiNERD CTL - Docker-compatible CLI for containerd, with support for Compose, Rootless, eStargz, OCIcrypt, IPFS, ... - containerd/nerdctl
🔥5👍3
Оптимальный Docker Image для Spring Boot
В наше время, когда доминирует микросервисная архитектура, контейнеры являются ключевым инструментом для упаковки приложений перед их отправкой в различные среды. Однако, многие разработчики недостаточно задумываются о том, как наиболее эффективно упаковать сервис, чтобы избежать уязвимостей в безопасности.
Перейдем к практике, у меня есть проект todo list на Spring boot и я хочу его запускать в докер контейнере
Ссылка https://github.com/TwoZeros/simple-todo
Простой Dockerfile
Spring Boot использует "Fat JAR" формат упаковки по умолчанию. Это значит, что все зависимости, необходимые для запуска, добавляются в один Jar файл.
В качестве базового образа используем eclipse-temurin:17-jre-alpine - минимальную JRE без всяких инструментов разработки
Итого наш образ весит 212 Мегабайт
Минусы этого способа - нам приходится руками через IDE или cli сначала собрать jar-ник, а потом уже создавать образ
Вариант получше
Можно это оптимизировать - собирать jar файл благодаря инструкциям в Dockerfile
Тут два варианта:
Итог получаем все те же 212 МБ, но уже не нужно помнить про "А я уже делал пересборку?"
В наше время, когда доминирует микросервисная архитектура, контейнеры являются ключевым инструментом для упаковки приложений перед их отправкой в различные среды. Однако, многие разработчики недостаточно задумываются о том, как наиболее эффективно упаковать сервис, чтобы избежать уязвимостей в безопасности.
Перейдем к практике, у меня есть проект todo list на Spring boot и я хочу его запускать в докер контейнере
Ссылка https://github.com/TwoZeros/simple-todo
Простой Dockerfile
FROM eclipse-temurin:17-jre-alpine AS app-run
WORKDIR /opt/build
COPY ./views/target/*.jar ./application.jar
ENTRYPOINT ["java","-jar","./application.jar"]
Spring Boot использует "Fat JAR" формат упаковки по умолчанию. Это значит, что все зависимости, необходимые для запуска, добавляются в один Jar файл.
В качестве базового образа используем eclipse-temurin:17-jre-alpine - минимальную JRE без всяких инструментов разработки
Итого наш образ весит 212 Мегабайт
Минусы этого способа - нам приходится руками через IDE или cli сначала собрать jar-ник, а потом уже создавать образ
mvn clean package
docker build -t simple-todo:0.0.1 -f Dockerfile.simple .
Вариант получше
Можно это оптимизировать - собирать jar файл благодаря инструкциям в Dockerfile
Тут два варианта:
Oтказаться от eclipse-temurin:17-jre-alpine и использовать в качестве базового образа какую-то JDK c maven, но тогда размер image возрастёт в 2 раза (около 400МБ)
Использовать Multi-stage builds на первом шаге создаём артефакт, а на втором его запускаем
# На этот раз нам требуется образ, содержащий maven, при помощи
# ключевого слова as мы указываем псевдоним для контейнера сборки,
# чтобы при его помощи в дальнейшем обращаться к контейнеру
FROM maven:3.9.4-eclipse-temurin-17 AS maven
# Собирать проект будем в /build
WORKDIR /build
# Теперь необходимо скопировать необходимые для сборки проекта файлы в конейнер
COPY ./repository ./repository
COPY ./service ./service
COPY ./views ./views
COPY pom.xml pom.xml
# И запустить сборку проекта. Загружаемые библиотеки желательно кэшировать между
# сборками,для этого нужно добавить --mount=type=cache,target=/root/.m2 к RUN
RUN --mount=type=cache,target=/root/.m2 mvn clean package
FROM eclipse-temurin:17-jre-alpine AS app-run
ENV RELEASE=17
WORKDIR /opt/build
# из stage maven берём jar и помещаем в текущий образ
COPY --from=maven /build/views/target/*.jar ./application.jar
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "application.jar"]
Итог получаем все те же 212 МБ, но уже не нужно помнить про "А я уже делал пересборку?"
GitHub
GitHub - TwoZeros/simple-todo
Contribute to TwoZeros/simple-todo development by creating an account on GitHub.
❤2👍2