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

    • Tutorial
    image

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

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




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

    Поехали...
  • Игра на чистой Java от новичка, для новичков

    Я начинающий программист на Java, и путь мой пройден тысячами.



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

    В моем случае Самой Правильной Книгой стал двухтомник «Java. Библиотека профессионала.» за авторством Кея Хорстманна и Гари Корнелла, а самой первой книгой, которая открыла дверь в мир Java – Яков Файн «Программирование на Java для детей, родителей, дедушек и бабушек».

    Чтобы закрепить пытающиеся разбежаться знания, которые упорно пытались остаться на страницах Умных Книжек, а не в голове, я решил написать простую игру. Основная задача была в том, чтобы писать без применения сторонних библиотек.
    Читать дальше →
  • Как не угробить архитектуру сразу же? Видео с лекции Евгения Кривошеева

      Всем привет!

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



      В рамках этой встречи Евгений предложил обсудить последовательность решений, критичных для архитектуры любой системы. Выстраданная последовательность действий такова:
      • Точки зрения на систему, или Почему мы слепнем при проектировании
      • Адресация ключевых рисков, или Гордыня убивает
      • Учитываем контекст, или Как не долбиться в закрытую дверь

      Краткое содержание и видеозапись
    • Где смерть Кащеева?

        Привет ребят, давайте для начала проверим вашу память. Итак:
        «На море на океане есть остров, на том острове дуб стоит, под дубом сундук зарыт, в сундуке — заяц, в зайце — утка, в утке — яйцо» в яйце игла — смерть Кощея!

        А теперь, внимание, вопрос — как это формализовать?
        Как приатачить к яйцу иголку и какова временная сложность детача смертии моей. Как перенести сказку в быль, как это выглядит на B-деревьях и почему на самом деле нет разницы между 2D и 1D.
        А было все так: давным давно, в неком царстве, некотором государстве, на одном сервисе с шейрингом геолокации очень захотелось Иванушке Дурачку на уровне ЧПУ разделить Москву(/RU/MOW/) и Область(/RU/MOS/). И вообще навести порядок, чтобы все лежало по полочкам красиво и по алфавиту. Но не получалось ему сокровища свои посчитать, и аккуратно разложить. А Василису, хоть и дурак, к сбережениям не пускал.
        Но решение было найдено.
        Совсем недалеко над каким-то златом успешно чах Чахлик, еще и смерть он свою прятал по науке.
        И если задача определения региональной (точнее полигональной) принадлежности некой иголки к некому сундуку выходит за рамки данной статьи, то нам ничто не мешает погрузиться в глубины зайца и посмотреть как он устроен на табличном уровне.
        PS: и не спрашивайте почему зайца.
        Читать дальше →
        • +14
        • 11.2k
        • 8
      • Федеральный закон № 243, или Тихая пенсионная реформа

          счастливая старость

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

          Однако факт остается фактом: «… с 1 января 2014 г. будет осуществлен т. н. страховой маневр — сокращены с 6 до 2% отчисления на формирование накопительной части пенсии. Высвободившиеся 4% пойдут на финансирование страховой части.»

          UPDATE! Весьма вероятно, что скоро сокращение будет не до двух процентов, а до нуля — смотрите обновление №3 в конце поста.

          Ну, кто там спрашивал, от чего отвлекают наше внимание?! Здесь был горький смайлик с кривой ухмылкой.

          Кому интересно / небезразлично, добро пожаловать под кат!
          Читать дальше →
        • Объектив для iPhone 4/4S, 3 в одном



            Что это и зачем?


            Очень неплохая китайская подделка olloclip, по цене в 7 раз ниже чем оригинал, приехала сегодня из Китая. Это объектив на одной стороне которого стоит линза «рыбий глаз» (180°), на второй широкоугольный объектив 0.67х, который откручивается и брюки превращаются под ним третья макро линза.

            Осторожно, много фото
            Читать дальше →
          • Мой опыт: Российские интернет банки и карты

              Привет всем! Если вы фрилансер, то наверняка имели дело с банковскими картами. Сейчас на Российском рынке огромное предложение карт, начиная от банковских премиальных, заканчивая скидочными и бонусными от кафе до авиакомпаний.
              Сразу хочу сказать, что пост никаким образом не является рекламным. Тут только мое мнение и мой опыт по отношению к Российским банкам и их картам. В обзоре я использовал только те банки, с которыми работал лично.


              Читать дальше →
            • Работаем с EMS по нарушению сроков доставки посылок — инструкция

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

                Сходу расстрою — посылкой управлять никак нельзя. Если она долго не «прилетает» в Россию (т.е. статус Экспорт стоит, а Импорт — нет) — тут вряд ли что-то поможет. Однако страхуемся, делаем по шагам, описанным ниже.
                Порадовать тоже могу: процентов 95 посылок все-таки доходят. Объем для сравнений — порядка 10 посылок в месяц из США и Европы.
                Обращаю внимание, что многие посылки (процентов 60 всех отправлений) я получаю «от себя», используя сервисе вроде Шипито. В некоторых случаях это означает, что почта не может отказать в претензиях по причине того, что они представляются «не отправителем». Однако во многих случаях рекомендую идти и биться за свою посылку при помощи процессов и документов, представленных ниже.
                Читать дальше →
              • Оформление резюме для зарубежных компаний

                Disclaimer


                Текст не претендует на истину в последней инстанции, описанное ниже основано на собственном опыте и рекомендациях людей с больше чем двадцати годами опыта в IT в США и Канаде.

                Анализ резюме рекрутером


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

                У вас есть 3-5 минут чтобы заинтересовать своим резюме. Это то, сколько будет уделено времени на него в начале, в лучшем случае. Часто резюме могут отсеяться спустя 10 секунд. Вас никто не знает, вы это лист бумаги с текстом, и это единственное, что вас может отличить от других. Представьте, что вы хотите купить новый телевизор, вас вряд ли будут интересовать длинные мануалы или 5 страничные описания. Выбирая из десятков и сотен аналогов, нужно за 5-10 секунд сделать предварительный отсев по определенным параметрам. Оставшимся 5-10 устройствам вы выделите чуть больше времени, а потом еще помешкаете выбираю между двух. Как то так и происходит отбор кандидатов.
                Читать дальше →
              • Как я искал работу в славном городе Нью-Йорк

                Несколько месяцев назад я сменил работу. Весь процесс от принятия решения о поиске и первого интервью в первой подвернувшейся компании до принятого предложения занял 8 месяцев. Перед началом марафона я имел за душой опыт смены работы 8-летней давности, но в России. Этот рассказ о том, как мои ожидания встретились с американской действительностью.

                Прежде чем уйти в детали – краткий обзор меня. Я – разработчик с примерно 10-летним стажем, пишу для .NET платформы. Первые семь лет я базировался в Санкт-Петербурге и 3 года назад переехал в штаты.

                Итак, поехали!
                Читать дальше →
              • Поиск работы за рубежом

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

                  Итак, вы задумались о поиске новой работы.
                  Читать дальше →
                • Выравниваем блок по центру страницы

                  • Tutorial
                  Очень часто стоит задача выровнять блок по центру страницы / экрана, да ещё и так, чтобы без ява-скрипта, без задания жёстких размеров или отрицательных отступов, ещё чтобы и скроллбары работали у родителя, если блок превышает его размеры. В сети ходят достаточно много однообразных примеров как выровнять блок по центру экрана. Как правило большинство из них основаны на одних принципах.
                  Читать далее
                • Как распознать кракозябры?

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

                    Итак, вуаля!


                    За источник информации была взята статья из вики. В блок-схеме «UTF-16 → CP 866» означает, что исходная кодировка была «UTF-16», а распозналась она как «CP 866».

                    Как всегда — кликабельно. Исходник в .docx: здесь.
                  • oDesk (Upwork). Мой опыт за полтора года

                      Вот уже полтора года я зарабатываю фрилансом на бирже oDesk. За это время у меня накопилось много материалов по данной теме. В данном топике я собрал все в одну статью и адаптировал для аудитории хабра.
                      image
                      Читать дальше →
                    • Битовые операции в PHP на примерах

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

                        Например, встречались такие варианты:
                        if ($error['type'] == E_ERROR || $error['type'] == E_PARSE || $error['type'] == E_COMPILE_ERROR){…}
                        или
                        if(in_array($error['type'], array(E_ERROR, E_PARSE,  E_COMPILE_ERROR)) {…}

                        В связи с этим решил написать небольшую статью о битовых операциях с примерами их использования.
                        Читать дальше →
                      • Отзыв о книге “Интроверты – как использовать особенности своего характера” или почему не стоит смотреть порно на рабочем месте

                          Автор книги – Сьюзан Кейн, в течении многих лет изучавшая феномен интроверсии. Впервые про неё я узнал из блога моей коллеги, Ольги Романовой. Книга та оказалась столь полезной, что я теперь просто не могу ею не поделиться. А уж читать её или нет, решайте сами.
                          Читать дальше →
                        • Keypress 2.0.0

                            Семнадцать дней назад (19 января 2014 года) вышла новая версия (2.0.0) джаваскриптовой библиотеки Keypress, предназначенной для удобного программирования реакций браузера на события, поступающие от нажатий (и от отпусканий) клавиш на клавиатуре.

                            Опубликованный на Гитхабе список изменений позволяет уверенно огласить вот что: важнейшим из достоинств новой версии стала возможность ловить события не только во всём окне в целом, но и для одного или нескольких отдельных элементов DOM. Теперь и при программировании различающихся реакций у различных элементов на веб-страницах мы можем с удобством прибегнуть к библиотеке Keypress вместо тех её более ранних и более популярных аналогов (например, jQuery.Hotkeys), которые уступают Keypress по богатству возможностей.

                            [Keypress]

                            Возможности же эти вот каковы:

                            • Реакция на нажатие и отпускание одной или нескольких клавиш. Поддерживаются синонимы кросс-платформенные (например, "meta" означает "cmd" или "ctrl" в зависимости от системы) и шифтовые (например, "@" означает сочетание Shift и двойки).
                               
                            • Программируемые сочетания клавиш могут включать в себя не только классические модификаторы ("meta", "alt", "option", "ctrl", "shift", "cmd"), но и какие угодно другие клавиши. Например, программируя WASD-управление пошаговою бродилкою, нетрудно достигнуть того, чтобы нажатие и отпускание клавиши «W» означало шаг вперёд, но «W» и «D» совместно — шаг по диагонали вперёд+направо.
                               
                            • Возможно указание сочетаний клавиш, состоящих не из одновременных, а из последовательных нажатий клавиш. Это такие сочетания, как код Конами, например.
                               
                            • Специальные «считающие» комбинации позволяют программировать такие ситуации, в которых нажатие основной клавиши обнуляет некоторый счётчик, а каждое нажатие дополнительной клавиши (при удержании основной) увеличивает этот счётчик на единицу. David Mauro (автор Keypress) приводит в пример такое сочетание Tab+Space, при котором нажатие Tab тотчас же открывает первую вкладку в некотором наборе вкладок, а каждое нажатие на пробел (при удержании Tab) перебрасывает на следующую вкладку — на вторую, на третью, на четвёртую…

                            Для каждой одиночной клавиши (или для комбинации) возможны дополнительные настройки. Эти настройки позволяют при необходимости сделать вот что:

                            Читать дальше →
                          • Как я начал работать на Odesk и Elance

                            Как-то полтора года назад я сидел в кафе на Арбате и думал о своем будущем. На тот момент работал программистом на полставки и учился в одном техническом ВУЗе. Все было стабильно, но хотелось чего-то большего – и я решил посмотреть, сколько зарабатывают хорошие программисты на фрилансе. Опыт «фрилансерства» у меня к тому моменту уже был, но впечатление осталось не самое лучшее — деньги маленькие, заказчики не всегда адекватные, один раз даже меня «кинули» с оплатой.

                            Я зашел на сайт всем известной российской фриланс-биржи и увидел, что за год моего отсутствия там ничего не изменилось: платят — мало, просят — много и так далее. Так у меня родилась идея посмотреть, что происходит на западе. Я нашел на Хабре статьи про иностранные биржи Odesk и Elance, почитал, подумал, как все сложно, и благополучно забыл про эту затею.
                            Что было дальше?