• Справочник по Java Collections Framework

    Данная публикация не является полным разбором или анализом (не покрывает пакет java.util.concurrent). Это, скорее, справочник, который поможет начинающим разработчикам понять ключевые отличия одних коллекций от других, а более опытным разработчикам просто освежить материал в памяти.

    Что такое Java Collections Framework?


    Java Collection Framework — иерархия интерфейсов и их реализаций, которая является частью JDK и позволяет разработчику пользоваться большим количесвом структур данных из «коробки».

    Базовые понятия


    На вершине иерархии в Java Collection Framework располагаются 2 интерфейса: Collection и Map. Эти интерфейсы разделяют все коллекции, входящие во фреймворк на две части по типу хранения данных: простые последовательные наборы элементов и наборы пар «ключ — значение» (словари).

    image
    Читать дальше →
  • СУБД — поворот на 90 градусов

      Объемы данных и требования к скорости их обработки за последние десятилетия многократно выросли. Системы управления базами данных (СУБД) пытаются соответствовать новым реалиям и претерпевают значительные эволюционные и революционные изменения. Одним из таких эволюционных факторов является движение в сторону т.н. вертикальных (column-based) систем хранения.
      Примеры на пальцах
    • Ghetto workout

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

        Отжимания




        Читать дальше →
      • Программируем LED на телефоне


          Хотя Android API не позволяет напрямую включать-выключать светодиодный индикатор или вспышку фотокамеры, на некоторых телефонах такая возможность имеется.

          Как программно помигать разноцветными огоньками, как написать свой «Фонарик» или какими еще светодиодами устройства можно управлять — об этом Вы узнаете ниже.
          Читать дальше →
        • Прощай, Zen Coding. Привет, Emmet!

          • Перевод

          Еще в 2009 году, image Сергей Чикуёнок опубликовал статью, в которой представил новый способ написания HTML и CSS кода. Этот революционный плагин, назывался Zen Coding, он помогал многим разработчикам на протяжении многих лет и в настоящее время вышлел на новый уровень.

          Emmet, ранее известный как Zen Coding, является самым производительным и экономным во времени плагином для текстового редактора. Простые сокращения мгновенно расширяются в сложные фрагменты кода, Emmet превратит вас в более продуктивного разработчика.

          Для тех, кто предпочитает смотреть, а не читать, вот видео любимых трюков автора.

          Читать дальше →
        • Банк скриптов для Festival

            После прочтения топика «Учим ПК разговаривать», я сразу-же попробовал festival.
            И был приятно удивлен!
            Голос достаточно ровный, иногда только нужно подредактировать слова с двумя основами — фестиваль ставил в них одно ударение, а нужно два — просто написать слово через дефиз.
            Еще если слова не оказывается в словаре, фестиваль может поставить ударение не там — тогда нужно явно указывать его с помощью знака плюс (+) перед ударной гласной.

            Поигравшись, за несколько недель у меня накопилось несколько разных интересных скриптов. Я настроил через cron разговор с 8 до 10 вечера каждый час в 00 минут — общую информацию:
            1) Дату, время
            2) Температуру на процессоре/винчестере
            3) Заряд батареи (в процентах и даже остаток (не спрашивайте зачем) в миллиамперах)
            4) Проверка почты
            5) Температуру на улице (актуальную)
            Читать дальше →
          • Raspberry Pi в качестве Time Capsule для Mac OS



            Об одноплатном компьютере Raspberry Pi узнал чуть больше полугода назад и сразу появилось желание использовать его в качестве домашнего медиасервера. Но ожидание своего заказа в течении 4 месяцев и блуждание по Интернету навели на мысль использовать Raspberry Pi в качестве хранения резервных копий MacBook Pro, т.е., настроить RPi (Raspberry Pi) таким образом, чтобы система Mac OS X по локальной Wi-Fi сети создавала свои резервные копии автоматически.

            Данная статья является попыткой создать пошаговую инструкцию по настройке RPi для использования в качестве Time Capsule.
            Читать дальше →
          • Сайт для программиста [на Node.js]. Просто. Стильно. Бесплатно

            • Tutorial

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

            Меня аккаунт Вконтакте, и даже в Фейсбуке в качестве своего сайта не устраивает. Слишком много лишнего, навязанный формат и прочие неудобства.

            Если бы я не был веб-разработчиком, мне пришлось бы плакать и грызть кактус. К счастью, я им являюсь, поэтому решил сделать себе сайт сам. Чтобы выкладывать на нём статьи вроде этой, небольшие хобби-проекты, и чтобы было что указать в поле «сайт» профиля на Хабре.

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

            Некоторые знания HTML и JS вам пригодятся. Опыт работы с Node.js не обязателен.

            Читать дальше →
          • Пишем редактор карт изображений (html image map) на javascript / html5 / inline SVG

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

            Раньше создавать такие карты было удобно в Adobe ImageReady, но начиная с версии CS3 эта программа больше не поставляется с Фотошопом. На сегодняшний день подобный функционал есть в Adobe Fireworks, но устанавливать эту программу только из-за редактора карт (для работы мне нужен только Фотошоп) — не очень хорошая идея. Существуют и онлайн-редакторы, которые написаны, в основном, с использованием canvas. В них отсутствует возможность редактировать созданные области на карте. Если ошиблись — придется все переделывать. Да и создавать эти области не слишком удобно. Еще одно неудобство заключается в том, что картинку приходится загружать на сервер. В общем, надо писать что-то свое.

            Итак, задача:
            — написать на javascript редактор, который позволит создавать карты изображений — загружаем картинку, рисуем области, получаем html-код. Если ошиблись — должна быть возможность отредактировать карту. Редактор должен работать в оффлайн-режиме. Обеспечить поддержку только современных браузеров, в том числе Internet Explorer 9.

            Summer html image map creator
            Читать дальше →
            • +48
            • 40,6k
            • 8
          • Внутренности jQuery. Поиск кода, выполняемого по событию

              Чем дальше в лес, тем толще партизаны. Нет, не так. Чем старше веб, тем больше джаваскрипта

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

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

              «Я понял одну нехитрую истину. Она в том, чтобы делать чудеса своими руками.»
              © А. Грин «Алые Паруса»




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

              Читать дальше →
            • Строим гусеничного Bluetooth-робота с камерой. Часть 1

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

                Я всегда мечтал создать робота, которым можно управлять с помощью компьютера и смотреть за его перемещениями от первого лица.
                Весь процесс я условно разделил на три части:
                1. Сборка робота
                2. Программирование боротового микроконтроллера
                3. Программирование управления с ПК
                Читать дальше →
              • Получаем бесплатный SSL сертификат

                • Tutorial
                Привет, хабр!

                О StartSSL я узнал от небезызвестного lissyara, в связи с чем ему очень благодарен.

                Для начала расскажу, что же за зверь это. Как известно, SSL сертификаты выдаются центрами сертификации, чьи корневые сертификаты хранятся в хранилище сертификатов браузера\ОС (либо другого ПО, использующего SSL). Цена на большинство сертификатов зашкаливает, и платить приходится за каждый сертификат. Но у StartSSL весьма интересный подход — сами сертификаты у них бесплатные, вы платите только за проверку вашей личности.

                Так же не может не радовать наличие русскоязычной поддержки.
                Читать дальше →
              • Обзор бесплатных инструментов для аудита web-ресурсов и не только


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

                  Под катом — краткий обзор и типовые примеры использования бесплатных утилит, которые помогут (а точнее уже во всю помогают) хакерам, администраторам, разработчикам, тестировщикам проверить свои ресурсы конкурентов в автоматизированном режиме.

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

                  В злых целях знания использовать не буду!
                • Подводные камни Scrum — разношерстные кадры

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

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

                  Поехали.

                  Гибкие и «жесткие»


                  Есть гибкие методологии разработки (Agile), такие как Scrum, простые и постигаемые за пару дней. А есть «жесткие», увесистые, требующие многомесячного погружения, такие как RUP.

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

                  А чего бояться-то? Сумасшедшие бородатые специалисты говорят о процессах, артефактах, матрицах зависимости (Requirements Traceability Matrix) — а мы в рубахе, босиком, раз и… запрограммируем любой интернет-проект за 3 спринта! Ура, товарищи, к победе.

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

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

                    Дано: ведется деятельность в качестве ИП, есть доступ в интернет, уровень интеллекта выше среднего.
                    Задача: в кратчайшие сроки и с минимальными затратами закрыть ИП и зарегистрировать ООО.

                    Почему ООО?
                  • Перехват системных вызовов в linux под x86-64

                    Введение


                    В интернете опубликовано множество статей по перехвату системных вызовов под x32. В рамках решения одной задачи появилась необходимость в перехвате системных вызовов под архитектурой x86-64 при помощи загружаемого модуля ядра. Приступим:
                    Читать дальше →
                  • Основные UI паттерны разработки Android приложений

                    Поскольку разработка приложений под Android набирает популярность, думаю обзор основных UI паттернов для Android-приложений будет кому-то полезен. Основой для статьи является вот этот вот источник. Рассматриваемые паттерны: Dashboard, Action Bar, Quick Actions, Search Bar и Companion Widget.
                    Читать дальше →
                  • Создание локального репозитория Ubuntu 10.04

                    Постепенный перевод предприятия на GNU/Linux порождает необходимость соответствующих изменений в инфраструктуре. Сегодня мы решаем проблему глобального обновления клиентских машин путем создания локального репозитория. Процесс изначально документировался как памятка на будущее, потому заранее прошу прощенья за возможные несуразности в тексте. Итак.
                    Для начала следует определиться, посредством чего лучше сделать это. Интернеты выделяют двух фаворитов rsync и debmirror. Выбрал последний, ввиду его большей гибкости.

                    1. Получение ключей


                    Для создания зеркала репозитория необходимо получить ключ «Ubuntu Archive Automatic Signing Key <ftpmaster@ubuntu.com>». Для этого в терминале от суперюзера вводим:
                    gpg --no-default-keyring --keyring trustedkeys.gpg --recv-keys 437D05B5
                    Читать дальше →
                  • Псевдографика в консоли Unix/Linux. Немного больше User Friendly чем вы могли себе позволить

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