• The Art Of Programming — Выпуск №50 [ VM ] / Особенности работы JVM

      Интервью с Иваном Крыловым инженером-консультантом отдела Java Licensee Engineering компании Sun Microsystems



      + Виртуальная машина JVM
      + Just-in-time компилятор (JIT)
      + Garbage collector
      прослушан 1855 раз
    • В полку «электронной бумаги» серьёзное пополнение

        Ни для кого наверно не секрет что в данный момент на рынке электронной бумаги присутствует всего одна компания e-ink с их монохромными дисплеями.

        Однако на днях пришла радостная новость.
        Читать дальше →
      • Google Goggles — поиск с помощью фотографии

          Компания Google выпустила программу Google Goggles для Android.



          С ее помощью можно искать в Google используя камеру своего телефона — нужно лишь сфотографировать предмет или объект и программа подскажет, что это такое.
          Читать дальше →
        • Half-Life: Raising the Bar

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

            Перевод выполнен участниками сообщества Наша-Life.

            Обложка книги


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


            Читать дальше →
          • Вредные советы: как писать в техподдержку

              Сообщая об ошибке
              Помните, что в техподдержке
              Все сотрудники владеют
              Телепатией на «пять»
              Им подробности ошибки
              Знать не надо совершенно
              Пусть там сами угадают
              Что у вас произошло
              Читать дальше →
            • Верстка e-mail рассылок — «подводные камни». Часть первая. Картинки

                Верстка e-mail рассылок. Часть первая. Картинки.Добрый день, уважаемые хабравчане!
                Не так давно мы вплотную столкнулись с задачей верстки e-mail рассылок. Это не самое приятное занятие, но многие компании активно используют корпоративные рассылки, и верстка становится всё более актуальной задачей.

                Казалось бы, что сложного — сверстать простую страничку? Но есть «подводные камни», которые могут поставить в тупик даже опытного верстальщика. Именно таким «камням» и посвящен пост (оговоримся сразу — все эксперименты, описанные в посте, проводились под Windows с тем ПО, которое есть у многих под рукой).

                Первый камень — Изображения


                Практически каждая рассылка содержит картинки. Логотип, шапка, фотографии, иконки соц.сетей…
                Есть 2 способа использования картинок:
                Читать дальше →
              • Защита Android приложений от реверс-инжиниринга — ProGuard

                  ProGuard — это утилита для сокращения, оптимизации и обфускации кода. На выходе вы получаете *.apk меньшего размера, который намного сложнее реинжинирить. На developer.android.com написано, что ProGuard внедрен в систему сборки Android приложений. Однако, я заметил, что эта утилита появилась в моей папке с SDK только после обновления до r9.
                  Читать дальше →
                • Unity — бесплатный кроссплатформенный 3D движок (и браузерный тоже)

                  Преамбула


                  Итак, сегодня я хотел бы рассказать вам о Unity (тем, кто ещё не знаком с ним, по крайней мере). Безусловно, на Хабре есть люди, которые знают, что это такое, но поиск выдаёт катастрофически малое количество топиков с упоминанием сабжа — два из них просто сообщают о новых версиях, один кратко презентует и ещё один посвящен всё-таки его использованию. «Непростительно, надо это исправить!», — подумал я, и решил написать краткий презентейшн с целью популяризации технологии. Если вы уже в теме — дальше можете не читать.

                  Честно говоря, когда я читал на википедии о бесплатном (по крайней мере, с вполне нормальной по функционалу фришной лицензией) 3d движке с нормальным IDE, встроенной нормальной физикой, аудио-движком и прямой реализацией сетевого мультиплеера на котором можно делать приложения для всего, кроме, пожалуй, nix'ов (поддерживаются и нормально работают Windows, MacOS, Wii, iPhone, iPod, iPad, Android, PS3, XBox 360), я уже чуял подвох.
                  Читать дальше →
                • Загрузка классов в Java. Практика

                    Данная статья является продолжением статьи Загрузка классов в Java. Теория.

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

                    Код приложения не претендует на оригинальность, а лишь объясняет подходы и принципы написания пользовательских загрузчиков классов и методы инвокации динамического кода.
                    Читать дальше →
                  • Сайт для кофеманов и кофевуманов — Coffee Advisor

                      Привет, друзья! С наступающим… бла-бла-бла. В этот снежный день мне страстно хочется отрекламировать свой новый сайт — сообщество любителей кофе Coffee Advisor (Варим.ру). У нас пишут не только о кофе (ещё про какао и вино, например), но центральная тема — конечно именно кофе.

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

                      Регистрация доступна только по приглашениям (во избежание засилья троллей), так что если хотите зарегистрироваться, отправьте адрес своей электропочты мне личным сообщением, и я выдам инвайт*. Да, если у вас ящик на Gmail’е, то придётся вытаскивать письмо из Спама :-(

                      Читать дальше →
                    • Релиз открытого Java-фреймворка Spring 3.0

                        Коллектив SpringSource, недавно вошедший в состав компании VMWare, выпустил первый релиз новой ветки популярного Java-фреймворка Spring 3.0, выступающего в роли свободной альтернативы Enterprise JavaBeans. Исходные тексты Spring доступны в рамках лицензии Apache 2.0. Одновременно доступно обновление инструментария SpringSource Tool Suite, который теперь поддерживает всю новую функциональность Spring 3.0.

                        Основные новшества Spring 3.0:
                        • Полная оптимизация под Java 5: первое поколение Spring, требующее Java 5 или выше, синтаксис Java 5 применяется везде в Spring API и во всём коде реализации;
                        • Новый язык выражений SpEL (Spring expression language): парсер выражений ядра для использования в бин-определениях (bean definitions);
                        • Расширенная поддержка компонентов на базе аннотаций: ключевые возможности проекта Spring JavaConfig теперь доступны и в самом Spring;
                        • Мощная модель стереотипов: создание «коротких» аннотаций через использование мета-аннотаций;
                        • Стандартизованные аннотации с внедрением зависимостей (dependency injection): присутствие начальной поддержки пока не полностью готового стандарта JSR-330 для внедрения зависимостей в Java;
                        • Декларативная модель валидации на основе ограничивающих аннотаций;
                        • Расширенная поддержка связующих средств и средств форматирования;
                        • Глобальная поддержка архитектурного стиля REST;
                        • Прямое отображение объект/XML (OXM);
                        • Полная поддержка Portlet 2.0;
                        • Абсолютно новые возможности планирования: новые механизмы триггеров и TaskScheduler с первоклассной поддержкой cron;
                        • Поддержка Java EE 6.
                        Читать дальше →
                      • Ресайз изображений на лету

                          Практически в любом веб-приложении использующем изображения существует потребность формировать уменьшенные копии этих изображений, причем зачастую, форматов дополнительных изображений несколько.
                          Так же вызывает некоторую головную боль добавление новых размеров на существующем приложении. Отсюда задача:
                          Читать дальше →
                        • Распараллеливание длительных операций

                            Мне часто приходится сталкиваться с задачами, требующими от базы данных очень большой производительности при обработке больших массивов данных. Сегодня я расскажу об очень простом, но действенном приеме, который может вас выручить, если база уже не поспевает за тем количеством данных, которые скапливаются и должны быть обработаны. Метод не зависит от базы данных, но по привычке публикую в блог PostgreSQL, и пример будет именно на ней. Давайте сразу перейдем к примеру.
                            Читать дальше →
                          • nginx, ещё раз про кэширование

                              Иногда скорость роста проекта несколько выше чем скорость оптимизации веб-приложения или приобретение более мощного оборудования под backend.

                              Наиболее простая схема «распараллеливания» нагрузки — вынос основной нагрузки на несколько frontend. Раньше приходилось мучиться (или наслаждаться, кому как) с webdav'ами, кластерными ФС и прочими хитростями чтобы обеспечить актуальную информацию, так было до тех пор, пока не появился nginx, а точнее proxy_store и proxy_cache в нём.

                              Читать дальше →
                            • «примеры эффективного использования GNU утилит в Linux»

                                Привет всему сообществу Хабра.
                                Это мой первый пост и, надеюсь, не последний. Поэтому неизбежны всяческие недочеты, баги и некоторая водянистость текста, так что прошу строго не судить :)
                                К написанию этого поста меня сподвиг топик «Консоль для новичка.» habrahabr.ru/blog/linux/46610.html, где ISVir поднял острую, на мой взгляд, тему — как доступным языком рассказать новичкам о консоли, не отпугнув их мнимой сверх-сложностью.

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

                                Итак, что мы имеем:

                                find — поиск файлов. позволяет искать файлы, каталоги, симлинки и другие файловые объекты. find Позволяет задать множество опций поиска таких как:
                                • поиск по маске (в имени )
                                • контроль глубины вложенности поиска
                                • поиск определенных типов файлов(каталог, симлинки, сокеты)
                                • поиск по времени создания/модификации файла
                                • можно задать размер (от и до в диапазоне) файла
                                • выполнение действий с каждым найденным файлом
                                в мане к find можно прочесть об остальных опциях и параметрах.

                                итак, с места в карьер — поиск всех файлов в каталоге /etc/, измененных за последние сутки:
                                Читать дальше →
                              • эффективное использование vim: «incredibly tips, part I»

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

                                  tips 1...
                                • Rails for PHP Developers

                                    Хотите увидеть конкретные примеры rails кода с альтернативами на php? А может быть вы хотите ближе познакомиться с RoR, но не знаете с чего начать? Тогда проект Rails for PHP Developers просто находка для вас. С помощью этого блога вы можете взглянуть на rails глазами php-разработчика. На сайте приведены примеры задач и варианты решения на php и ruby. Я думаю проект может реально помочь разработчикам в переходе на RoR.
                                  • Описание более 350 команд Линукс

                                      На дигге была найдена интересная ссылка (PDF-версия) — описание более, чем 350 команд Линукс (на английском языке). Фактически представляет собой шпаргалку, где команды разбиты на категории. Отмечу, что это не простой список команд, а именно описание с применением. Чтобы не быть голословным приведу несколько примеров.

                                      Читать дальше →
                                    • Чёрточки: только ли тире, минус и дефис?

                                        Однажды вечером я почувствовал, что пришло время расширить 97‐ й параграф «Ководства» Артемия Лебедева.

                                        На клавиатуре одна чёрточка, она обычно правее нуля и повыше букв «З» и «Х». Неосведомлённые люди называют её попеременно то дефисом, то минусом, то тире. Лебедев объясняет нам, что это четыре (учитывая две разновидности тире) различных символа. На самом деле их как минимум девять, и об этом я и расскажу вам сейчас.

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