TGViewer
Channel Public Channel
devmark_ru

devmark_ru

@devmark_ru

Данный канал является частью проекта devmark.ru, который посвящён вопросам разработки программного обеспечения. Здесь вы найдёте полезные материалы по server-side разработке. Прежде всего по Java, Kotlin и Spring.
Subscribers
224
Photos
157
Videos
0
Links
121

Showing posts older than #74 · Back to latest

Older Posts 20 shown
Post #73 176
Поздравляю с Новым годом, друзья!

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

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

P.S. Следуя трендам, поздравительный кот также сгенерирован нейросетью)
  • 👍 2
  • 🎉 2
  • 🎄 2
Post #72 171
Написал вторую статью про создание Telegram-бота на Spring Boot и Kotlin, в которой привожу пример работы с inline-кнопками.

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

Таким образом, у нас появляется возможность реализовывать более сложный функционал, улучшая пользовательский опыт взаимодействия с ботом.
  • 👍 3
  • 🤗 2
  • 🌭 1
Post #71 183
Сегодня Линус Торвальдс празднует свой 54-й день рождения! Будущий создатель ОС Linux родился 28 декабря 1969 в Хельсинки в семье финских шведов Нильса и Анны Торвальдс.

В 1981 году дед Линуса познакомил внука с домашним компьютером Commodore VIC-20, использовавшимся им для математических вычислений. Линус заинтересовался программированием.

Значимым событием в жизни Торвальдса стало прочтение им книги Эндрю Таненбаума «Операционные системы: разработка и реализация». В книге на примере написанной Таненбаумом ОС Minix представлена структура систем семейства UNIX.

Обнаружив недостатки в системе, он начал писать собственный эмулятор терминала. Затем Торвальдс добавлял в программу всё новые функции, благодаря чему она вскоре стала обретать черты полноценной ОС.

17 сентября 1991 года Торвальдс выложил исходный код программы (версии 0.01) для общедоступной загрузки. Таненбаум выступил с резкой критикой системы. Однако он ошибся. Популярность системы росла, и позже о ней заговорили во всём мире.
  • 👍 2
  • 🍾 2
Post #70 139
В очередной раз переработал и расширил статью про создание telegram-бота на Kotlin и Spring Boot, а также обновил пример проекта в github.

В текущей версии я демонстрирую более простой способ создания команд бота. Также перевёл проект на Java 21 и Spring Boot 3.2.

Чуть позже планирую обновить видеоролик на YouTube с учётом этих изменений.
  • 🔥 8
Post #69 128
Сегодня исполняется 232 года со дня рождения Чарлза Бэббиджа, английского математика и изобретателя первой вычислительной машины (в те времена ещё механической).

Чарлз родился 26 декабря 1791 года в Лондоне в семье банкира Бенджамина Бэббиджа. В 1810 году Бэббидж поступил в Тринити-колледж в Кембридже. Однако основам математики он обучался самостоятельно по книжкам. Он тщательно изучал труды Ньютона, Лейбница, Лагранжа, Лакруа, Эйлера и других математиков академий Санкт-Петербурга, Берлина и Парижа.

Бэббидж разработал разностную машину, которая не была успешной, но стала основой для дальнейших разработок.

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

Эта машина имела сходную архитектуру с современными компьютерами и включала "склад" (память), "мельницу" (процессор), управляющий элемент и устройства ввода-вывода информации.

В разработке аналитической машины Бэббиджу помогала Ада Лавлейс, первая женщина-программист, о которой я писал ранее.
  • 👍 3
Post #68 165
На моём сайте появилась новая статья про перебор элементов с помощью интерфейса Iterator в Java.

Интерфейс Iterator представляет собой простой способ обхода коллекций благодаря методам next() и hasNext().

Интерфейс Iterable предоставляет более удобный способ работы с коллекциями, позволяя использовать цикл for-each для итерации по элементам коллекции. Использование интерфейса Iterable позволяет сделать код более компактным и читаемым.
  • 🔥 6
Post #67 174
Опубликовал новую статью на тему Value-классы в Kotlin.

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

В Kotlin есть особое подмножество классов, называемых value class. Они сочетают в себе высокую производительность как у примитивов и некоторые преимущества ООП, как у обычных классов.

Механизм value class используется и в стандартной библиотеке Kotlin. Например, беззнаковое целое UInt представлено как обёртка над стандартным целым числом Int.

Поэтому, если Вы согласны с тезисом «чем строже типизация – тем лучше», тогда смело используйте value-классы.
  • 👍 4
Post #66 165
Декабрь богат на памятные даты в области информатики.

208 лет назад, в 1815-ом году, родилась Ада Лавлейс - английский математик и первая женщина-программист. Ада является дочерью поэта Байрона.

Получила математическое образование, изучала механику и технику.

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

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

В 1980 году появился язык программирования "Ада", который назван в её честь.
  • 👍 4
Post #65 138
Ровно 117 лет назад, в 1906 году, родилась Грейс Хоппер - американский ученый, пионер в области компьютерных технологий и коммодор флота США. Грейс получила образование в области математики и физики.

В 1937 году начала работать в Гарвардском университете, где занималась разработкой компилятора для языка программирования Алгол.

В 1943 году присоединилась к исследовательской группе в Массачусетском технологическом институте, где работала над созданием первого компьютера ENIAC.

Во время разработки компьютера Mark II в Университете Гарварда в 1947, её коллеги нашли и удалили мотылька, застрявшего в реле и блокировавшего передачу сигнала. Этот случай Хоппер отметила как «дебаггинг» системы — в американском английском, слово debugging буквально значило «удаление насекомых».

В 1959 году разработала компилятор для языка программирования COBOL, который стал одним из самых популярных языков программирования в мире.

В 1983 году получила премию Ады Лавлейс (о ней чуть позже) от Association for Women in Computing.
  • 👍 3
Post #64 133
Представляю вашему вниманию инструмент для проверки доступности сайтов @up_all_bot, который мы делаем вместе с ребятами из @yabed_news. Он может быть полезен всем, кто делает свои pet-проекты.

Бот позволяет добавить любой ресурс для мониторинга и сообщит, когда ресурс окажется недоступен. Также он ведёт статистику со средним временем ответа вашего ресурса.

Каждый пользователь может мониторить до трёх ресурсов. Проверка происходит каждую минуту.

Более подробно читайте на следующих сайтах:

📙 Статья на vc.ru
📘 Статья на Хабре про проблемы при запуске
Проголосуйте за наш проект в топе проектов недели на Рroductradar
  • 👍 4
Post #63
Channel photo updated
Post #62 138
По работе недавно мне потребовалось сгенерировать несколько сложных паролей и я решил воспользоваться собственным генератором паролей. В требованиях к паролю было указано, что он должен содержать специальные символы, но не все подряд, а с некоторым исключением.

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

Для генерации используется класс SecureRandom, который, в отличие от обычного Random, обеспечивает гораздо бОльшую криптографическую стойкость. Кроме того, мой алгоритм генерации пароля гарантирует наличие хотя бы одного символа из каждого выбранного вами класса символов (буквы строчные, прописные, цифры и т.д.)

А как часто вы используете онлайн-инструменты для генерации случайных паролей? Чего вам не хватает в подобных инструментах?
  • 👍 4
Post #61 150
Новая утилита на сайте! 😎

При покупке нового монитора или телевизора важно узнать его габариты. Почти всегда сразу известна диагональ экрана в дюймах, но далеко не всегда известны ширина и высота в сантиметрах. Зная соотношение сторон экрана (чаще всего это Full HD или 4K Ultra HD - 16:9), вы можете легко вычислить габариты экрана с помощью данной утилиты.

P.S. При создании этого инструмента мне пришлось немного освежить школьные знания в области алгебры и геометрии)
  • 😎 2
Post #60 128
Решил я немного навести порядок на сайте в разделе "Утилиты".

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

Пользуйтесь и пишите комменты!
  • 👍 1
  • 🎅 1
Post #59 134
Предлагаю вашему вниманию очередную статью по нововведениям Java 21 на тему Pattern Matching в конструкции Switch.

Мы начнём с простого примера шаблонов сравнения в switch, который использует иерархию числовых классов (Object - Number - Integer). Затем постепенно увеличим количество проверок (ветка по умолчанию, проверка на null) и узнаем для чего нужно новое ключевое слово when. После этого отдельно рассмотрим пример работы с record-классами в switch.

Если же после прочтения статьи у вас останутся вопросы или будут предложения по её улучшению - пишите в комментах на сайте или здесь.
  • 🤗 2
Post #58 136
Продолжаем серию статей по новым фичам Java 21. Сегодня у нас на очереди интерфейс SequencedMap. Мы узнаем, в чём сходство с SequencedCollection и чем он от него принципиально отличается. Также рассмотрим две его наиболее используемые реализации.
  • 👍 2
  • 👨‍💻 1
Post #57 133
Дополнил предыдущую статью разделом про интерфейс SequencedSet, который является частным случаем SequencedCollection.
  • 👍 1
  • 🐳 1
Post #56 142
В связи с недавним выходом Java 21 я написал новую статью, посвящённую интерфейсу SequencedCollection. Он расширяет стандартный интерфейс Collection и позволяет обращаться к первому и последнему элементу коллекции.

Также дополнил статью Работа с коллекциями в Kotlin и Java.
  • 👍 2
Post #55 127
Буквально на днях количество подписчиков на моём YouTube-канале перевалило за 3000. Судя по вашей активности в комментариях под видеороликами, контент востребован и это мотивирует меня продолжать свою деятельность и дальше. Спасибо вам за поддержку!
  • 🔥 7
Post #54 160
Знаете ли вы, сколько литров содержится в одном барреле нефти? Сколько километров в одной миле? Наконец, сколько "соток" в одном гектаре земли?

Уверен, вы часто задаётесь такими вопросами 🙂 Поэтому я добавил на сайт 3 новых утилиты: конвертеры длины, площади и объёма. Пользуйтесь и пишите в комментах, каких ещё единиц измерения не хватает.
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →