• Методы борьбы с DDoS-атаками

      Хотелось бы поговорить с вами на актуальную нынче тему, а именно — про DDoS и методы борьбы с ним. Рядовые администраторы знают, что это такое, а вот для большинства вебмастеров это аббревиатура остается загадкой до того момента пока они на личном опыте не столкнуться с этой неприятностью. Итак, DDoS — это сокращение от Distributed Denial of Service (распределенный отказ в обслуживании), когда тысячи зараженных компьютеров отправляют на сервер множество запросов, с которыми он, в последствии, не может справиться. Целью DDoS атаки является нарушение нормальной работы сервера, а в дальнейшем — «падение» сайта или сервера целиком.

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


        В дороге


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

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

        Читать дальше →
      • Pinba — мониторим php в реальном времени

          Как сказано на официальном сайте
          Pinba is a realtime monitoring/statistics server for PHP using MySQL as a read-only interface.
          

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

          Прочитать еще
        • Интерфейс глазами программиста

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

          Для меня дизайн — это устройство, внешнее устройство. Никто же не додумался доверить Пикассо разработку руля для гоночного автомобиля. Почему же сайты рисуют все, кому не лень? Слово дизайн, прежде всего, должно ассоциироваться с удобством. Функциональность — это первая задача дизайна.
          Читать дальше →
        • Скины в Java

            Для Swing существует несколько коммерческих и бесплатных библиотек LookAndFeel. Использование LAF позволяет менять внешний вид приложений и добавлять поддержку тем оформления практически без кодирования.

            Одной из наиболее качественных LAF-библиотек является Substance. Она включает в себя хорошо прорисованные стандартные компоненты и более десятка скинов:

            image

            Рассмотрим как можно с помощью Substance добавить в приложение возможность выбора скинов пользователем.
            Читать дальше →
          • Быстрая реализация инкрементального бэкапа на Amazon S3

            После переезда моего сайта с shared-хостинга на виртуальный сервер в облаке вплотную встал вопрос об архивации данных: если раньше о ежедневном бэкапе беспокоился хостер, то теперь эти заботы целиком легли на плечи администратора. Так как хранить большие архивы на своем сервере не только небезопасно, но и (иногда) накладно, было решено копировать основную массу файлов на сервис S3 от Amazon. Под катом описывается мой способ реализации инкрементального бэкапа. Способ достаточно нубовский, но желающие повторить его без труда найдут пути тонкой настройки под свои нужды.
            Читать дальше →
          • Подборка с видео-разборами iPhone 2G, 3G и 4

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

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

              Смотрите 3 видео-разбора:
              Читать дальше →
            • Создание Doodle jump на HTML5

              Doodle Jump
              Здравствуйте, Хабражители!
              В этом топике я хочу рассказать о том, как я создал браузерную игру «DoodleJump» на HTML5 без использования каких либо то фреймворков. Для тех кто не знает, DoodleJump — это популярная мобильная игра где главный герой «doodler» бесконечно прыгает вверх по платформам, преодолевая различные препятствия, и собирая бонусы. Эта игра широко распространена почти на всех мобильных платформах, но приличной браузерной версии этой игры нет, поэтому я и решили написать браузерную версию этой игры, пусть даже управляемую клавишами а не гироскопом.
              Читать дальше →
            • Создание полноразмерных скриншотов web-ресурсов

              Довольно полезным сервисом является создание полноразмерных скриншотов web-ресурсов.
              Реализуем этот сервис буквально за 5 минут.

              Задачи:


              1) Создание полноразмерных скриншотов сайтов (полный скриншот по длине и ширине, а не захват окна браузера)
              2) веб-интерфейс

              Технологии:


              — ОС — Ubuntu 10.04
              — xvfb — Виртуальный фреймбуффер (Fake Xserver)
              — CutyCapt — кроссплатформенная утилита для рендеринга web-страниц
              — php — для веб-интерфейса
              Читать дальше →
            • Видеокурс по Kohana 3. Часть 2

                видеокурс по Kohana 3

                Приветствую уважаемое хабросообщество!

                В предыдущей публикации я рассказывал о своем бесплатном видеокурсе по Kohana 3 для начинающих, где опубликовал первые 15 видеоуроков.

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

                Основываясь на знаниях, полученных из видеокурса, слушатель сможет самостоятельно запрограммировать функционал довольно сложного интернет-проекта.
                Читать дальше →
              • Мгновенный поиск в 75 гигабайтах

                Речь пойдет о том, как был реализован быстрый поиск по большим объемам данных на этой страничке. Там можно искать пароль по хешу, для игрового сервера PvPGN, и генерировать эти же хеши.
                Поиск написан на чистом PHP, без использования модулей и сторонней БД. В принципе, таким образом можно наращивать объемы до многих терабайт, было бы место — скорость от этого не сильно пострадает.

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


                Читать дальше →
              • Вы еще не авторизуетесь по ключам? Тогда мы идем к вам

                Этой заметкой я хочу показать, что использовать ключи для авторизации это просто.

                Начнем с того, что нам понадобится PuTTY.
                Идем на http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html и качаем следующее:
                PuTTY — ssh-клиент
                Pageant — агент для хранения ключей (зачем объясню позже)
                PuTTYgen — генератор ключей
                Читать дальше →
              • Каталог Arduino-проектов

                  Всем хабраумам привет!

                  Как одного из людей, стоящего за Амперкой у меня часто спрашивают: «А что, что можно сделать из этого твоего Arduino?». И я начинаю ковыряться у себя в голове, вспоминая клёвые гэджеты, на которые натыкался в сети. Интересных поделок же действительно много, но они разбросаны по сети, а хотелось бы зайти куда-то и увидеть всё сразу. Так родилась идея сайта-каталога, и в итоге, после месяца эпизодической фоновой работы родился каталог… та-да… Arduino проекты.
                  Читать дальше →
                • Масштабируемые JavaScript приложения

                    Более месяца назад в статье FAQ по JavaScript: задавайте вопросы был задан вопрос «Подскажите примеры хорошего подхода организации JS кода к сайту на достаточно высоком уровне. Как можно узнать подробнее практики реализации например gmail?».

                    Пришло время ответить на данный вопрос. Я немного затянул т.к. хотел рассказать доклад на одноименную тему на Я.Субботнике. Доклад был очень коротким многие важные моменты пришлось выкинуть. Статья — более-менее полная версия.

                    Эта статья о том, как сделать крупное веб-приложение расширяемым и поддерживаемым: архитектура, подходы, правила.
                    Читать дальше →
                  • Что нужно знать Android-разработчику

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

                    Прошлым летом совершенно неожиданно для себя я приобрел смартфон Nexus One. Своей покупкой был страшно доволен и подолгу ковырялся в его софтовой начинке, восхищаясь продуманностью системы. Поскольку я уже давно являюсь разработчиком игр, захотелось смастерить что-то свое и для этого устройства. После достаточно плотного изучения платформы, чтения специальной литературы, появились и первые ласточки в виде различных украшательств экрана. Надо заметить, что несмотря на то, что я с java никогда серьезно не работал, язык показался легко осваиваемым и интуитивно понятным. Очень сильно помогла и документация от Гугла. Все это в совокупности вселяло надежды на успешную разработку первого серьезного проекта, дизайн которого уже начал складываться с первых шагов изучения Android. Энтузиазма добавил и тот факт, что после пробного выкладывания приложения с живыми обоями на маркет за первые сутки его скачало почти тысяча пользователей. В голове завертелись мысли о коммерческих проектах и «легкой наживе».

                    Это была лирично-оптимистичная преамбула, а теперь перейдем к реальной действительности.
                    Читать дальше →
                  • elFinder 2.0 beta. Don't panic!

                      «Для многих цивилизаций Восточного Завитка Галактики, не столь церемонных, elFinder уже с успехом заменил прочие web файловые менеджеры и стал общепринятым, поскольку, хотя в нем и встречаются редкие баги, но зато у него есть два больших преимущества.
                      Во-первых, он дешевле;
                      а во-вторых, у него есть большая красная кнопка, на которой большими веселыми
                      буквами написан дружеский совет: Don't panic!»


                      Сегодня у меня по настоящему счастливый день!
                      Несколько месяцев крайне напряженной, но невероятно приятной работы позади.
                      И я с удовольствием представляю — файловый менеджер для web elFinder 2.0 beta!

                      Хочу выразить огромную благодарность всему сообществу за помощь, патчи и переводы.
                      Коллегам по студии — спасибо, что взяли на себя всю текучку, чтобы освободить меня для этого проекта.
                      И хочу представить нового разработчика elFinder — 667bdrm. Он же автор модуля для drupal.
                      И еще, нам всем очень приятно, что сейчас нет практически ни одного фреймворка, в который бы не был интегрирован elFinder. Кстати, одними из первых это сделали РБК Софт.

                      Читать дальше →
                    • Symfony на русском

                        Совсем скоро выйдет релиз Symfony 2. И хотелось бы читать документацию,
                        да и обсуждать вопросы, связанные с фреймворком, на родном языке.
                        Именно с этой целью был создан новый русскоязычный сайт о Symfony 2.
                        Но так как объем документации достаточно велик, в одиночку переводить становится трудно.
                        Это призыв к помощи, к коллективному переводу и обсуждению документации.
                        Для этого вы можете воспользоваться формой на сайте или же редактировать страницы
                        напрямую, через GitHub.
                        И да — это реклама, немного преждевременная, т.к. пока сделано совсем мало.
                        Проект не несет какой-либо прибыли, единственная цель —
                        сплотить русскоговорящих разработчиков, использующих Symfony 2.
                        Надеюсь, вам понравится!
                        PS на топик-ссылку не хватает кармы.
                      • Исследуем производительность JOIN в MySQL

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

                          Давайте исследуем этот вопрос более подробно и посмотрим, действительно ли JOIN — это плохо, и когда вообще стоит задумываться об этом.
                          Читать дальше →