• Руководство по версиям и возможностям Java

    • Перевод

    Здесь есть все, что вам нужно знать о различных версиях и функциях Java.



    Java 8, Java 11, Java 13 — какая разница?


    Вы можете использовать это руководство, чтобы найти и установить последнюю версию Java, понять различия между дистрибутивами Java (AdoptOpenJdk, OpenJDK, OracleJDK и т.д.), А также получить обзор возможностей языка Java, включая версии Java 8-13.


    Примечание переводчика
    09 апреля 2020 г. Марко опубликовал новую версию Руководства, в которую добавлено описание Java 14.
    Перевод новой версии Руководства предлагается Вашему вниманию.
    Читать дальше →
  • API, ради которых наконец-то стоит обновиться с Java 8. Часть 1

      На сегодняшний день Java 8 является самой популярной версией Java и ещё довольно долго будет ей оставаться. Однако с тех пор уже выпущено пять новых версий Java (9, 10, 11, 12, 13), и совсем скоро выйдет ещё одна, Java 14. В этих новых версиях появилось гигантское количество новых возможностей. Например, если считать в JEP'ах, то в сумме их было реализовано 141:



      Однако в этом цикле статей не будет никакого сухого перечисления JEP'ов. Вместо этого я хочу просто рассказать об интересных API, которые появились в новых версиях. Каждая статья будет содержать по 10 API. В выборе и порядке этих API не будет какой-то определённой логики и закономерности. Это будет просто 10 случайных API, не ТОП 10 и без сортировки от наиболее важного API к наименее важному. Давайте начнём.

      Читать дальше →
    • Регистрация и авторизация с помощью Spring Security на примере простого приложения

      Добрый день!

      В этой статье будет рассмотрено создание простого веб приложения с использованием Spring Boot и Spring Security. В приложении будет реализована регистрация новых пользователей и авторизация, ограничение доступа к страницам сайта в зависимости от роли пользователя.
      Главная цель статьи показать как можно ограничить доступ к различным страницам сайта для пользователей с разными ролями.

      Что будет представлять из себя приложение


      Сайт со следующими страницам:

      • страницы доступные всем пользователям: главная, регистрации и логина;
      • страница доступная для зарегистрированных пользователей: новости;
      • страница доступная для администратора.

      Что будем использовать


      • JDK 8+;
      • Intellij Idea;
      • Spring (Spring Boot, Spring MVC, Spring Security);
      • Hibernate;
      • JSP;
      • PostgreSQL.
      Читать дальше →
    • E-Dobavki — веб-сервис поиска пищевых добавок на Java и Spring Boot, написанный моими студентами

        Введение


        Так получилось, что последние почти два года я преподаю программирование в одной из IT школ Киева. Занялся я этим Just For Fun. Когда-то я вел блог по программированию, потом забросил. Но желание рассказывать полезные вещи заинтересованным людям никуда не делось.


        Мой основной язык — Java. Я писал на ней игры для мобильных, софт для радиосвязи, и различные веб-сервисы. И преподаю я именно Java.


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


        Сам сервис вот — E-Dobavki.com.


        Читать дальше →
      • Как проверить паспорт на действительность



          Реквизиты паспорта — не просто набор цифр, в них закодирован вагон информации. Если правильно расшифровывать и сопоставлять реквизиты, подозрительные документы мгновенно всплывут на поверхность. Продукты HFLabs уже 14 лет проверяют клиентские данные в банках, страховых, телекомах и другом крупном бизнесе. Расскажу, как мы распознаем ошибки в российских паспортах.
          Читать дальше →
        • Хроники книжного голода II

            image

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

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

            История этого фильма ничуть не менее фантастична, чем показанные в нем джунгли Венеры. Фильм был снят в 1961 году в СССР режиссером Павлом Клушанцевым и вышел в прокат под названием «Планета бурь». После триумфального проката в СССР, фильм был куплен США, перемонтирован, с добавлением новых эпизодов и выпущен в прокат в США. Два раза — как «Путешествие на доисторическую планету» и как «Путешествие на планету доисторических женщин» — и не сходил с экранов вплоть до начала восьмидесятых, будоража воображение паре поколений подростков.

            А в СССР фильм был положен на дальнюю полку. Дело в том, что к семидесятым годам космос стал для властей СССР не нужен и неудобен. Лунная гонка проиграна, освоение солнечной системы отменено. И звавшие ввысь наивные, оптимистические книги и фильмы 60тых — были положены под сукно.
            Читать дальше →
          • JavaScript в 3D: введение в Three.js

            Привет, Хабр! Представляю Вашему вниманию перевод статьи «JavaScript in 3D: an Introduction to Three.js» автора Брета Кемерона (Bret Cameron).

            Введение


            Three.js это мощный инструмент. Он помогает использовать 3D дизайн в браузере с приемлемой производительностью. По началу Three.js может быть сложным, особенно если вы никогда не погружались в мир 3D программирования ранее.

            У меня есть базовый опыт работы с игровым движком Unity и C#, но все равно многие концепции оказались новыми для меня. Я пришел к выводу, что сейчас совсем мало ресурсов для начинающих разработчиков, поэтому я и решил написать эту статью. В ней мы рассмотрим основные элементы Three.js сцены от полигональных сеток и материалов до геометрии, загрузчиков и много другого.
            Читать дальше →
          • Самостоятельная диагностика жестких дисков и восстановление данных

            • Tutorial
            В данной статье описываются методы самостоятельной диагностики различных неисправностей жестких дисков по симптомам их проявления, а также способы относительно безопасного клонирования жестких дисков с незначительными проблемами.

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

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


            Читать дальше →
          • Как спроектировать корпус для прибора. Полное руководство

            • Tutorial
            От идеи до серийного производства: подробно об этапах разработки и о технологиях производства корпусов — факты, примеры из практики, фото. Если вам нужен корпус для прибора, обязательно прочитайте.

            image
            Изучая рунет, я не смог найти ни одной статьи, которая описывала бы ВСЕ этапы разработки и производства корпуса устройства.

            Ни одной. Всё, что есть в интернете, касается лишь одного или двух аспектов этого процесса. Ну например: давайте набросаем корпус и распечатаем на 3D-принтере. Или купим типовой и насверлим в нём отверстий. Хотя на Хабре и есть пара материалов, но они тоже не так полны информацией, как могли бы быть.

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

            Как спроектировать корпус — схема работы


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

            Разработка корпуса — процесс, разбитый на несколько обязательных этапов. Это даже обсуждать не буду: проверено много раз. Даже если вы не собираетесь связываться с «большим» производством (например, если планируете делать устройство только для себя), всё равно лучше бы вам соблюдать правильную последовательность этапов.

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

            Вот схема, по которой мы пойдем:
            Читать дальше →
          • Что нового в Spring Boot 2.2?

            • Перевод
            Перевод статьи подготовлен специально для студентов курса «Разработчик на Spring Framework».




            16 октября 2019 года был выпущен Spring Boot 2.2 !

            В этом посте вы узнаете о многих новых плюшках, которые предлагает вам версия 2.2.
            Читать дальше →
            • +20
            • 7,6k
            • 4
          • Что мы делаем не так со Спрингом

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


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

              Читать дальше →
            • План подготовки к собеседованию на позицию Java разработчика

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

              И я намеренно не пишу, для кого предназначен этот план подготовки: для senior, middle или junior разработчика — все зависит от конкретной вакансии и от требований работодателя. Поэтому опирайтесь на этот план, но фильтруйте и в то же время не воспринимайте его как исчерпывающее руководство.

              1. Java core. Здесь можно ориентироваться например на книгу «OCP: Oracle Certified Professional Java SE 8 Programmer II Study Guide: Exam 1Z0-809» для подготовки к Java сертификации уровня Professional. Есть подобная книга «OCA: Oracle Certified Associate Java SE 8 Programmer I Study Guide: Exam 1Z0-808» для уровня Associate — на нее тоже можно взглянуть. Пройдитесь по оглавлению и выделите для себя, что можно повторить. Конечно же, не стоит пускаться во все тяжкие и читать книгу от корки до корки — многие темы из этой книги можно обойти стороной, например форматирование дат. Выделите самое основное. Например для меня это были следующие темы: коллекции (стандартные вопросы «Как устроена HashMap?» или «Чем отличается LinkedList от ArrayList?» все также часто задают на собеседованиях), дженерики, функциональные интерфейсы, многопоточность (тут тоже фильтруйте — не нужны вам cyclic barrier и fork join framework).
                Также не забывайте проецировать знания на свой опыт. Например, когда вам приходилось использовать многопоточное программирование? Какие проблемы вы решали? Какие блокировки использовали?
              2. Многопоточность.
              Читать дальше →
            • Шпаргалка по аббревиатурам C++ и не только. Часть 2: «и не только»

              • Tutorial
              Это вторая и последняя часть моей шпаргалки по аббревиатурам, которые стоит знать C++ разработчику. С++ здесь упомянут только потому, что шпаргалку я составил в первую очередь для себя, а я как раз-таки C++ разработчик.

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


              Читать дальше →
              • +14
              • 6,7k
              • 2
            • Шпаргалка по аббревиатурам C++ и не только. Часть 1: C++

              • Tutorial
              Когда-то я собеседовался на должность C++ разработчика в одну приличную и даже известную контору. Опыт у меня тогда уже кое-какой был, я даже назывался ведущим разработчиком у тогдашнего своего работодателя. Но на вопросы о том, знаком ли я такими вещами, как DRY, KISS, YAGNI, NIH, раз за разом мне приходилось отвечать «Нет».

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


              Читать дальше →
            • Практикум RHEL 8 Beta: Собираем работающие веб-приложения

                RHEL 8 Beta предлагает разработчикам много новых возможностей, перечисление которых может занять страницы, однако, изучать новое всегда лучше на практике, поэтому ниже предлагаем пройти практикум реального создания инфраструктуры приложений на базе Red Hat Enterprise Linux 8 Beta.



                За основу возьмем Python, комбинацию Django и PostgreSQL, довольно распространенную связку для создания приложений, и сконфигурируем RHEL 8 Beta для работы с ними. Потом добавим еще пару (несекретных) ингредиентов.
                Читать дальше: Собираем работающие веб-приложения с RHEL 8 Beta
              • Знакомство с OsmocomBB: 0x02 Hardware

                  Привет %username%! Для работы с OsmocomBB необходимо определенное оборудование, на базе которого работает программная часть, а именно: приемо-передающее устройство, Ваш компьютер, выступающий в роли сервера, и кабель, соединяющий их между собой. В роли приемо-передающего устройства (transreceiver) чаще всего выступает обычный сотовый телефон, на котором запущена кастомная прошивка. Для соединения телефона с компьютером может потребоваться преобразователь TTL-USB. Следую инструкциям, опубликованным на сайте проекта, точнее, собирая информацию по кусочкам, можно собрать рабочий аппаратный комплекс, однако на данном этапе начинающему исследователю GSM сетей может встретиться множество подводных камней. Давайте разберемся со всем по порядку.
                  Читать дальше →
                • 5 правил работы с суммами

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


                    Читать дальше →
                  • Как воскресить Ягуара за тысячу часов?

                      imageБывает меня спрашивают — как я пишу эмуляторы? Попробую ответить на примере одной провалившейся консоли.

                      Эмуляция — почти бесконечное занятие, всегда остаются неточности, и если меня спросят сколько я потратил на эмуляцию 3DO, то я лишь пожму плечами, но одно знаю точно — с эмуляцией 3DO все очень хорошо. Поэтому пришло время найти новую жертву и ей оказался Atari Jaguar. 1000 часов — примерно столько я потратил на разработку ядра эмуляции данной консоли в проекте «Феникс», и вероятно еще столько же понадобится, чтобы поднять совместимость с текущих 95% до 99%, а оставшийся 1% потребует еще, возможно не одну тысячу часов, но это уже отдельные скучные истории про отладку едва уловимых глюков.
                      Читать дальше →
                    • Идеальная ОС: переосмысление операционных систем для десктопа

                      • Перевод
                      TL;DR: К концу этого эссе я надеюсь убедить вас в следующих фактах. Во-первых, что современные десктопные операционные системы никуда не годятся. Они раздутые, тормознутые и напичканы легаси-хламом, а кое-как работают только благодаря закону Мура. Во-вторых, что инновации в десктопных ОС прекратились около 15 лет назад, а основные игроки вряд ли собираются много вкладывать в них снова. И наконец, я надеюсь убедить вас, что мы можем и должны начать с нуля, усвоив уроки прошлого.

                      «Современные» десктопные ОС раздуты


                      Возьмём Raspberry Pi. За 35 долларов я могу купить отличный компьютер с четырьмя процессорными ядрами, каждое на частоте более гигагерца. У него также есть 3D-ускоритель, гагабайт оперативки, встроенные WiFi с Bluetooth и Ethernet. За 35 баксов! И всё-таки для многих задач, которые я хочу на нём запустить, Raspberry Pi ничем не лучше компьютера на 66 мегагерц, который был у меня в колледже.


                      Читать дальше →
                    • Избранное: ссылки по reverse engineering


                        Всем привет!


                        Сегодня мы хотели бы поделиться своим списком материалов по тематике reverse engineering (RE). Перечень этот очень обширный, ведь наш исследовательский отдел в первую очередь занимается задачами RE. На наш взгляд, подборка материалов по теме хороша для старта, при этом она может быть актуальной в течение продолжительного времени.


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


                        Забавный факт: нам показывали, как некоторые компании рассылают наш список материалов от себя, но только в очень старой редакции. И вот после этой публикации они, наконец, смогут использовать его обновленную версию с чистой совестью ;)


                        Итак, перейдем к списку материалов!

                        Читать дальше →