Search
Write a publication
Pull to refresh
0
0
Send message

Шпаргалка Java программиста 1: JPA и Hibernate в вопросах и ответах

Reading time36 min
Views614K
image

Знаете ли вы JPA? А Hibernate? А если проверить?

В чем смысл серии статей 'Шпаргалки Java программиста'
За время работы Java программистом я заметил, что как правило программисты постоянно и планомерно используют от силы 10-20% от возможностей той или иной технологии, при этом остальные возможности быстро забываются и при появлении новых требований, переходе на новую работу или подготовке к техническому интервью приходится перечитывать все документации и спецификации с нуля. Зато наличие краткого конспекта особенностей тех или иных технологий (шпаргалок) позволяет быстро освежить в памяти особенности той или иной технологии.




Данная статья будет полезна и для тех кто только собирается изучать JPA и Hibernate (В этом случае рекомендую сразу открывать ответы), и для тех кто уже хорошо знает JPA и Hibernate (В этом случае статья позволит проверить свои знания и освежить особенности технологий). Особенно статья будет полезна тем кто собирается пройти техническое интервью, где возможно будут задавать вопросы по JPA и Hibernate (или сам собирается провести техническое интервью).

Поехали...

Java собеседование. Коллекции vs null

Reading time3 min
Views131K
Всем привет!

В топике Java собеседование. Коллекции подробно изложен вопрос работы с Set & Map в Java. Но у меня ещё есть парочка любимых вопросов из этой области:

  1. Может ли null использоваться в качестве ключа в Map?
  2. Может ли Set содержать null?

подсказка (HashMap.java)
   public V get(Object key) {  
        if (key == null)  
            return getForNullKey();  
        int hash = hash(key.hashCode());  
        for (Entry<K,V> e = table[indexFor(hash, table.length)];  
             e != null;  
             e = e.next) {  
            Object k;  
            if (e.hash == hash && ((k = e.key) == key || key.equals(k)))  
                return e.value;  
        }  
        return null;  
    }  
    /** 
     * Offloaded version of get() to look up null keys.  Null keys map 
     * to index 0.  This null case is split out into separate methods 
     * for the sake of performance in the two most commonly used 
     * operations (get and put), but incorporated with conditionals in 
     * others. 
     */  
    private V getForNullKey() {  
        for (Entry<K,V> e = table[0]; e != null; e = e.next) {  
            if (e.key == null)  
                return e.value;  
        }  
        return null;  
    }  


Предполагается, что пытливый читатель самостоятельно поразмыслит над ответами и затем сравнит их с моими. Самые нетерпеливые могут сразу проследовать под кат.
Читать дальше →

Конспекты лекций «Haskell как первый язык программирования». Часть1

Reading time3 min
Views47K
image
Привет Habr! Сегодня я достал свои старые конспекты по курсу «Haskell как первый язык программирования» Сергея Михайловича Абрамова и попробую максимально доходчиво и с примерами рассказать об этом замечательном языке тем, кто с ним еще не знаком. Рассказ ориентирован на неподготовленного читателя. Так что, даже если вы впервые услышали слово Haskell…
добро пожаловать под кат.

Через тернии к Haskell (перевод). 2/2

Reading time18 min
Views46K
Только хардкор, только монады

Через тернии к Haskell. 1/2

Reading time25 min
Views234K


Первая часть короткого и жесткого введения в Haskell. Вторую часть можно найти здесь

tl;dr: Очень краткое и сжатое введение в Haskell.


UPD. Если туториал вам понравился, черкните пару строк автору оригинальной статьи. Человеку будет приятно ;)
Классные картинки, много текста и вынос мозга

Функциональные языки в разработке аппаратуры

Reading time8 min
Views15K
Функциональные языки, как правило, не слишком подходят для низкоуровнеого программирования, хотя и применяются для кодогенерации.

Примеры проектов
генерация безопасного кода на C (используется в лаборатории Касперского) Ivory, поддержка реактивного программирования на Arduino, и так далее Atom, Ion

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

Про хаскелль для самых маленьких на примере задачи с codefights

Reading time7 min
Views15K

КДПВ (в представлении художника)
Если вы интересуетесь функциональным программированием или даже пытаетесь его потихоньку освоить то вам, наверняка, не раз приходилось слышать, что главным отличием от привычного вам императивного подхода является тот факт, что программы строятся от общего к частностям, а не наоборот. Т.е. сначала вы определяетесь с тем, что вы хотите получить, а потом уже — как этого достичь. Такая простая, казалось бы, мысль обычно не дает мозгу покоя и вызывает множественные фрустрации в попытках написать что-нибудь полезное. Если эта история про вас, или вам просто интересно немного научится хаскеллю и ФП продолжайте чтение и я покажу вам как все просто. Статья в стиле «некогда объяснять, пиши».

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

Программы для моделирования STL-модели подходящие для 3d-печати

Reading time1 min
Views7.3K

Если вы хотите что то распечатать, то вам для этого нужна цифровая модель — для 3d печатников это больной вопрос, те модели что присылают на распечатку, часто не соответсвуют требованиям, либо люди просто хотят распечатать объект с картинки в формате JPG найденной в интернете.
если у вас нет 3d модели, то вам придется либо создать ее, либо обратиться за помощью к специалисту. В этом видео мы осветим основные CAD программы для моделирования STL объекта.

Как работать с JIT

Reading time6 min
Views24K

enter image description here


В некоторых внутренних системах для быстрого поиска по большому битовому массиву мы в Badoo используем JIT. Это очень интересная и не самая известная тема. И, чтобы исправить такую досадную ситуацию, я перевел полезную статью Элая Бендерски о том, что такое JIT и как его использовать.

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

Новый GC Epsilon. У джавы может не быть сборки мусора. Шок. Сенсация

Reading time6 min
Views38K
Добрый день, господа! Спешу сообщить, что настают последние дни. Кажется, мир Java развился до такой степени, что то ли мы теперь можем спокойно использовать Rust вместо Java, то ли Java вместо Rust. Кровавые подробности ждут вас под катом.
Читать дальше →

Черновик книги Эндрю Ына «Жажда машинного обучения», главы 1-7

Reading time10 min
Views33K
В декабре прошлого года в переписке американских коллег по data science прокатилась волна обсуждения долгожданного черновика новой книги гуру машинного обучения Эндрю Ына (Andrew Ng) «Жажда машинного обучения: стратегии для инженеров в эпоху глубинного обучения». Долгожданного, потому что книга была анонсирована ещё летом 2016 года, и вот, наконец, появилось несколько глав.

image

Представляю вниманию Хабра-сообщества перевод первых семи глав из доступных в настоящий момент четырнадцати. Замечу, что это не финальный вариант книги, а черновик. В нем есть ряд неточностей. Эндрю Ын предлагает писать свои комментарии и замечания сюда. Начинает автор с вещей, которые кажутся очевидными. Дальше ожидаются более сложные концепции.
Читать дальше →

О книге Саймона Монка «Программируем Arduino. Профессиональная работа со скетчами»

Reading time6 min
Views15K
По сути это комментарий к презентации книги, но получилось довольно многа букв, потому пришлось выделить в отдельную статью.

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

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

Домашняя метеостанция на esp8266

Reading time4 min
Views60K
Привет ГТ!

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

Изначальные требования к системе:

  • Удаленный просмотр измеряемых данных
  • Возможность удаленного управления устройством
  • Наличие дисплея для просмотра данных «прямо сейчас»
  • Простота подключения и питания (питание от обычной USB-зарядки)
  • Передача данных на домашний сервер для сбора статистики, просмотра графиков и т.п.
  • Возможность увеличения количества подключенных сенсоров
  • Возможность использования множества метеодатчиков одновременно


КДПВ:



Читать далее...

Еще один проект на ESP8266 и счетчик воды

Reading time3 min
Views66K
Все началось с того, что в квартире наконец поставили счетчики воды (4 импульсных счетчика, так как 2 стояка) и встал вопрос как проще всего снимать показания. А если учесть что одна пара счетчиков оказалась внутри шкафа кухни, то было принято решения попробовать это автоматизировать.

На просторах интернета можно найти устройство с 1-wire шиной на пару счетчиков по не очень гуманной цене порядка 2500 рублей. Так же это решение требовало вести провода к устройству обработки, что тоже не радовало.

Изыскания на тему, как сделать самом данное устройство, привели сначала к arduino + esp8266 в качестве wifi передатчика, а после погружения в тему оказалось, что сам esp8266 может прекрасно справиться с данной задачей.
Читать дальше →

Снятие показаний счетчиков воды: ESP8266 + Android

Reading time4 min
Views90K
У многих сейчас стоят счетчики воды. И большинство сталкиваются с проблемой снятия показаний с этих счетчиков и их своевременной сдачей. Я не стал исключением. Показания у меня было снимать удобно, но вот сдавать я их постоянно забывал и вспоминал в самый неподходящий момент. Было решено автоматизировать процесс снятие показаний, чтобы можно было их просмотреть в любой момент времени. Кому интересно как получить картинку слева у себя на телефоне прошу под кат.
Читать дальше →

Работа с ESP8266: Пишем прошивку для управления системой nooLite

Reading time20 min
Views60K
В прошлых статьях мы рассмотрели работу с SoC Espressif ESP8266 на примере работы с базовой AT-прошивкой, сборкой компилятора и написания собственной прошивки с реализацией TCP-сервера (клиента). В этой статье мы рассмотрим пример написания прошивки для работы с модулем передатчика nooLite MT1132 и попробуем управлять освещением в реальной квартире. Всем кому это интересно, прошу под хабракат.
Подробности

Simple Solder MK936. Паяльная станция для тех, кто хочет сам

Reading time6 min
Views61K
Всем привет!

В этой статье мы хотим поделиться с общественностью проектом простой паяльной станции со стабилизацией температуры, которую любой сможет собрать своими руками без Arduino и изоленты!


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

Управляем освещением в квартире (NooLite, Raspberry Pi и WebIOPi)

Reading time35 min
Views30K
Хочу поделиться опытом использования системы для умного дома NooLite совместно с Raspberry Pi Model B (далее RPI) в двухкомнатной квартире.
О системе NooLite неоднократно писали на хабре:

В данной статье я расскажу:
  • об установке и настройке WebIOPi на предустановленную Raspbian в контексте использования UART для передачи команд на модуль MT1132 NooLite
  • о макросах в фреймворке WebIOPi для связывания запросов в стиле HTTP REST с GPIO UART
  • о написании простого клиента на платформе Android для управления светом через REST дырки

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

Адаптируем nooLite для работы с Apple HomeKit

Reading time11 min
Views20K

Я давно увлекаюсь темой технологий в общем и домашней автоматизации в частности. Пару лет назад это увлечение переросло в профессиональную деятельность, которой я занимаюсь по сей день. Моя компания специализируется на установке и настройке систем "Удобный дом" (ну не позволяет мне совесть назвать умным домом то, что можно сделать за адекватные деньги).


Работу с объектом можно условно разделить на 3 этапа:


  1. Общение с заказчиком, получение информации об ожидаемых функциях системы и их приоритетах
  2. Установка и настройка
  3. Общение с заказчиком, получении отзыва о системе, недостающих функциях, функциях, оставшихся невостребованными.

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



Я понимал, что этот процесс можно как-то упростить, однако всерьез этим не занимался. Но недавно на рынок вышли два интересных обновления, которые подтолкнули нас с @RagimovRV попробовать добавить моему и клиентским "Удобным домам" немного сообразительности.


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

[Перевод] Карманный кейс на 3D принтере для мини-квадрокоптера Cheerson CX-10

Reading time2 min
Views7.2K
В своём недавнем посте («Выбираем нано-квадрокоптер за 20$») я рассказывал про мини-квадрокоптер Cheerson CX-10. Напомню, что это самый маленький квадрокоптер в мире. Его размеры сравнимы со спичечным коробком. За счёт своих размеров, характеристик и доступной цены (~ 20$) он быстро стал очень популярным во всём мире. Но, не смотря на то, что квадрокоптер не плохо переносит удары судьбы при полётах молодых пилотов, хранить его без упаковки не очень удобно, так что один зарубежный умелец напечатал на 3D-принтере для него очень удобный карманный кейс с функцией блокировки и быстрой распаковки.


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

Information

Rating
Does not participate
Location
Минская обл., Беларусь
Date of birth
Registered
Activity

Specialization

Backend Developer, Application Developer
Senior
Git
SQL
OOP
Java
Docker
Spring Boot
Java EE
Intellij IDEA
Hibernate
Java Spring Framework