Блог Алексея Кутепова

Разработка программного обеспечения

Статьи

Мои статьи о разработке программного обеспечения на Java и Python, а так же обзоры современных решений в сфере IT

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

Часто бывает необходимо, чтобы приложение выполняло какие-то действия регулярно, в определённое время. Например каждое утро выгружать актуальные данные из стороннего сервиса, инвалидировать кэш в конце дня и т.п. Для этих целей в Spring существует встроенный планировщик задач, он же Scheduler. В этой статье я расскажу о том, как работать с планировщиком задач в приложении на Spring Boot, как его настроить в своём проекте и какие возможности у него есть.

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

Тема разработки собственного бота для Telegram хоть и не новая, но всегда актуальная и востребованная. Думаю каждый разработчик рано или поздно сталкивается с такой задачей, поэтому сегодня я расскажу как разработать простой Telegram-бот на Java с использованием Spring Boot.

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

Над покупкой 3d-принтера я начал задумываться очень давно, но по разным обстоятельствам откладывал это мероприятие на потом. И вот совсем недавно, читая очередной раз обзоры и просматривая каталог товаров на AliExpress, я решился на покупку. Так в нашем доме появился простой, но очень популярный 3d-принтер Creality Ender 3. После сборки и настройки началось тестирование данного приобретения и был выполнен небольшой апгрейд, а так же составлено общее впечатление, которым я спешу поделиться в данной статье!

Не так давно я озадачился вопросом распознавания печатного текста в своём приложении. Мне стало интересно, какие на данный момент существуют OCR-библиотеки и насколько они удобны в использовании. А главное - будет ли приемлемый результат распознавания текста и можно ли такой текст потом озвучить? Озвучка текста это тема для отдельной статьи, а сегодня мы напишем приложение на Python, которое сможет распознавать тексты на русском языке благодаря OCR-библиотеке Tesseract.

Как многие из вас наверняка знают, Deadlock – это взаимная блокировка, ситуация, когда два или более потока зависают в вечном ожидании ресурсов, захваченных друг другом.

Принципы разработки программного обеспечения и основные шаблоны проектирования с примерами на Java.

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

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

С рекомендательными системами каждый из нас сталкивается ежедневно: YouTube найдет для вас интересное видео, Google Play предложит установить полезное приложение или игру, а многие интернет-магазины порекомендуют товар, который который подойдет именно вам, и так далее. Как реализован подобный функционал? Об этом и многом другом я расскажу вам в своём вебинаре.

В этой статье я продолжу знакомить вас с DjangoCMS и расскажу о том как можно использовать в своём проекте готовые решения от сторонних разработчиков и для чего это нужно. В качестве примера я покажу как создать свой собственный блог на DjangoCMS и за основу возьму проект из прошлой статьи. Вы можете клонировать данный проект с GitHub (ветка part1) или создать свой собственный сайт и проводить эксперименты уже на нём.

Я уже очень давно слежу за развитием проекта DjangoCMS и честно скажу что он не всегда мне нравился. Но постепенно команда проекта исправила многие косяки и сделала эту CMS по-настоящему удобной, гибкой и функциональной. После этого я стал практически фанатом DjangoCMS и использую его в некоторых своих проектах (например этот блог). Сегодня я подробно расскажу что такое DjangoCMS, в каких случаях его удобно применять и покажу как с помощью него создать простой сайт. Надеюсь вы тоже полюбите этот инструмент :)

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

В этой статье я расскажу от такой крутой вещи, как Jetty сервер! Почему Jetty крутой и чем он может быть полезен сферическому java-программисту в вакууме? Всё дело в том что Jetty является одновременно легковесным и хорошо оптимизированным решением, которое можно использовать как в небольших, так и в крупных проектах. Jetty хорошо масштабируется, экономично использует память, но самый жир это то что его можно встроить в своё приложение. Это дико удобно когда нужно отладить работу веб-приложения, так как отпадает необходимость постоянно его пересобирать и заливать на сервер приложений. Да и вообще встроенный сервер может решать кучу полезных задач, например недавно мне понадобилось сделать легковесное веб-приложение со встроенным сервером, которое можно было бы запускать одной командой на любой машине, и для решения этой задачи я использовал Jetty.

В данной статье я рассмотрю сравню две популярные системы обмена сообщениями и расскажу а нюансах при переходе с IBM WebSphere MQ 7.5 на свободно распространяемый Apache ActiveMQ 5.9. Также проанализирую риски подобной смены технологий.

Hibernate — библиотека предназначенная для решения задач объектно-реляционного отображения. Она представляет собой свободное программное обеспечение с открытым исходным кодом (open source), распространяемое на условиях GNU Lesser General Public License. Данная библиотека предоставляет легкий в использовании каркас (фреймворк) для отображения объектно-ориентированной модели данных в традиционные реляционные базы данных. Другими словами, используя данную библиотеку, можно заметно упростить себе жизнь, так как у нас появляется возможность эффективно и легко взаимодействовать с базами данных, не обладая глубокими знаниями SQL. Как использовать Hibernate я расскажу в этой статье.