• Chrome App. Создание приложения для chrome (пример)

      Как все прекрасно помнят, на прошедшей IO, Google анонсировал свой Web Store. А для заполнения его представил т.н. web-приложения.
      Сегодня речь пойдёт о том, как создать простенькое приложение и подготовится к открытию Web Store.
      Для примера будем создавать приложение из ряда Hello World, а именно — калькулятор.
      image

      Читать дальше →
    • Картинки делают вашу информацию интереснее

        Интересные картинки
        Приветствую всех! Я представляю вам свой Первый Пост На Хабре, он является объединяющим симбиозом нескольких постов моего личного блога [Батоноблог], и речь сейчас пойдёт о универсальной вещи, которая поможет увеличить продажи вашего товара, задержать на вашем сайте лишний десяток посетителей, и сделать из сложной многобуквенной статьи простой доходчивый рассказ. Также будут даны описания и адреса хранилищ этих вещей.

        А вещь эта называется «Картинка».

        В чём суть?


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

        Читать дальше: почему, как и где искать картинки
      • Фотобанки, фотобанки…

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

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

            Буквально на днях вышла новая (пока нестабильная) версия Spring-Roo одной из основных фич которой является поддержка генерации пользовательского интерфейса на GWT.

            Мне стало интересно, сегодня поэксперементировал, под катом перевод моего блога (для тех кому лень читать на английском) с описанием как сделать GWT приложение менее чем за 30 минут. Надеюсь хабровчанам это покажется интересным и полезным.
            image
            Читать дальше →
          • Вышел релиз Django 1.2

              Свершилось, товарищи! Несмотря на почти двухмесячную задержку и постоянные переносы даты релиза, сегодня, 17 мая 2010 года, финальная версия 1.2 великолепного фреймворка увидела свет.

              Кратко напомню, какие же произошли самые заметные изменения и дам ссылку на более подробную информацию.

              Читать дальше →
            • InType: текстовый редактор мечты!

                InType мощный, интуитивный редактор для программеров под MS Windows с возможностями подсветки, поддержкой дополнительных скриптов и плагинов, позволяющий превратить рутинные операции программирования в увлекательный и главное эффективный, и удобный процесс. Самая главная фишка состоит в поддержке bundles, коих планируется великое множество, а также поддержка bundles из Text Mate.

                К сожалению на данный выпущена только alfa версия, но она вполне работоспособна.

                Все остальное, на мой взгляд, только плюсы.

                Официальный сайт InType: InType

                P.S.
                Ах да, еще — в итоге он будет платным, но я его куплю! :)
              • Способ вертикального выравнивания блока с помощью настоящего vertical-align

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

                  Требования

                  — Должна быть известна начальная высота родительского блока;
                  — Дочерний блок может иметь произвольный размер как по высоте, так и по ширине.

                  Возможности

                  — Работает в IE6+, O9+, FF2+, webkit;
                  — Тру vertical-align выравнивание со всеми допустимыми значениями;
                  — Одинаковое поведение во всех браузерах (незначительные отклонение при некоторых условиях в ие6 будут оговорены ниже);
                  — При вырастании дочернего блока выше «папочки», родительский блок расширяется;
                  — Ни грамма JavaScript.
                  Читать дальше →
                • Sun убрало Swing Application Framework из Java 7

                  • Перевод
                  Я думаю на Хабре существует много разработчиков, которые так или иначе связаны с такой технологией как SWING. Недавно, я прочитал новость, означающую неопределенность его дальнейшего существования, и был удивлен, что здесь про это ничего не написали. Поэтому — читаем.
                  Читать дальше →
                • Загрузка и переименование файлов

                    Статья написана для тех, кто уже хоть немного знаком с архитектурой Zend Framework. Если кому-нибудь будет интересно — опишу работу с формами более подробно в отдельной статье.

                    Для загрузки файлов на сервер с помощью форм в Zend Framework Form есть элемент Zend_Form_Element_File. У него есть фильтр «Rename», который позволяет переименовать закачаный файл. Но есть минус — мы не можем просто указать новое имя для файла, чтобы сохранилось его расширение. Как это сделать? А как быть, если мы используем setMultiFile?

                    Читаем дальше
                  • Code Game Challenge

                      Достаточно часто студенческие олимпиады состоят не только из соревнования в формате ACM ICPC, но и сопровождаются другими соревнованиями, которые ни как не влияют на общий результат, и служат для повышения интереса к соревнованиям.

                      Среди таких соревнований я хочу остановиться на соревнованиях Code Game Challenge.
                      Читать дальше →
                    • Сервер на стероидах: FreeBSD, nginx, MySQL, PostgreSQL, PHP и многое другое

                        Нравится мне эта картинка, у меня, вот никогда такие красивые графики в какти не получались =(

                        Введение


                        С момента написания мной предыдущей статьи по оптимизации этой связки прошло довольно много времени. Тот многострадальный Pentium 4 c 512Мб памяти, обслуживающий одновременно до тысячи человек на форуме и до 150,000 пиров на трекере уже давно покоится на какой-нить немецкой, свалке, а клуб сменил уже не один сервер. Всё сказанное в ней всё ещё остаётся актуальным, однако есть вещи которые стоит добавить.
                        Статья большая, так что будет поделена на логические блоки:

                        0. Зачем вообще что-то оптимизировать?
                          
                        1. Оптимизация ОС (FreeBSD)
                          1.1 Переход на 7.х 
                          1.2 Переход на 7.2
                          1.3 Переход на amd64
                          1.4 Разгрузка сетевой подсистемы
                          1.5 FreeBSD и большое кол-во файлов
                          1.6 Softupdates, gjournal и mount options
                          
                        2. Оптимизация фронтенда (nginx)
                          2.1 Accept Filters
                          2.2 Кеширование
                          2.3 AIO
                          
                        3. Оптимизация бэкенда
                          3.1 APC
                          3.1.1 APC locking
                          3.1.2 APC hints
                          3.1.3 APC fragmentation
                          3.2 PHP 5.3
                          
                        4. Оптимизация базы данных
                          4.1 MySQL 
                          4.1.1 Переход на 5.1
                          4.1.2 Переход на InnoDB
                          4.1.3 Встроеный кеш MySQL - Query Cache
                          4.1.4 Индексы
                          
                        4.2 PostgreSQL
                          4.2.1 Индексы
                          4.2.2 pgBouncer и другие.
                          4.2.3 pgFouine
                          
                        4.3 Разгрузка базы данных
                          4.3.1 SphinxQL
                          4.3.2 Не-RDBMS хранилище
                          4.4 Кодировки
                          4.5 Асинхронность
                          
                        Приложение. Мелочи.
                          1. SSHGuard или альтернатива.
                          2. xtrabackup
                          3. Перенос почты на другой хост
                          4. Интеграция со сторонним ПО
                          5. Мониторинг
                          
                         6. Минусы оптимизации

                        Кому что-нибудь из этого списка интересно, жмём сюда...
                      • Как я учил английский

                          Добрый день!

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

                            Хочу поделиться с вами одной интересной медитацией (медитация как известно — древнейший способ стресс-менеджмента), которой поделился со мной мой учитель в ту светлую пору, когда я увлекался разными духовными практиками.
                            image
                            С моим учителем ей поделился в своё время один лаосский монах. И дошла она до нас в неизменном виде (не считая перевода) через много столетий.

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

                              Жена готовит яичницу на завтрак.
                              Вдруг на кухну вбегает муж:
                              — Осторожно, — он говорит, — ОСТОРОЖНО! Положи больше масла!
                              Боже мой! Ты жаришь очень много яиц сразу! СЛИШКОМ МНОГО!!!
                              Переверни их! ПЕРЕВЕРНИ ИХ ПРЯМО СЕЙЧАС!!! Нужно больше масла! О Боже мой!
                              ГДЕ нам взять БОЛЬШЕ МАСЛА? Сейчас они ПРИЛИПНУТ!!!
                              Осторожно! ОСТОРОЖНО! Я сказал — Осторожно!
                              Ты НИКОГДА меня не слушаешь когда делаешь яичницу!!! НИКОГДА!!!
                              Переверни их! БЫСТРО!!! Да ты что, психованная?!!!
                              Ты совсем спятила?!!! Не забудь посолить!
                              Ты всегда забываешь посолить! Используй СОЛЬ!
                              ИСПОЛЬЗУЙ СОЛЬ! С-О-О-О-О-ЛЬ!!!

                              Жена удивленно смотрит на мужа:
                              — Да что с тобой сегодня?!
                              Ты думаешь я не в состоянии приготовить элементарную яичницу?
                              Муж спокойно объясняет:
                              — Я хотел показать тебе, что Я испытываю, когда вожу машину…


                              Навеяно вот этим постом «95% сделано».
                              За четыре года работы фрилансером (переводчик и программист) у меня только один или два раза были недовольные заказчики.

                              Что для этого нужно делать
                            • Хакерский квест

                                image

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

                                После решения первых 5 уровней предоставляется возможность зарегистрироваться и получить в качестве приятного бонуса shell аккаунт на сервере с Debian Lenny. Дисковая квота до 2 Гб, подробнее про сервер можно узнать тут.

                                Желаю удачи :)
                              • Реализация паттерна декоратор на JS

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

                                  Безусловно, реализовать что-то похожее можно даже за счет только лишь того, что функции в JS являются объектами первого уровня, но мне бы хотелось поделиться реализацией весьма близкой к ГОСТу GoF'у.

                                  UPD: ссылка на рабочий пример, спасибо Barttos.

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

                                  Читать дальше →
                                • Хабра-RSS и Akregator

                                    Где-то около, недели назад решил немного изменить рабочее окружение, и поставил вместо gnome, KDE.
                                    Естественно сделал OPML со списком фидов из Liferea и импортировал его в Akregator.

                                    И каково же было моё разочарование когда я обнаружил что лента Хабра не обновляется.
                                    У меня около 20 фидов в ридере и именно с Хабром случилось непонятное.

                                    Ну да ладно, полез удалил, фид. Собрался его добавить руками. И что вы думаете? Не добавляется.
                                    Пишет: Нету там ленты.

                                    Ну и собственно вопрос: Глюк ли это Акрегатора или Хабра?
                                    Я грешу на хабр, ибо это единственная проблемная лента среди всех моих подписок.

                                    З.Ы: Прошу всех пользователей Akregatora проверить и поделится информацией.
                                    KDE-3.5.9
                                    Лента: /rss/new

                                    UPD: Остальные хабра-рсски работают как надо.
                                  • Разворачиваем nginx + mod_wsgi на сервере

                                      Здрасти. Долго-долго я присматривался к замечательному фреймворку django, читал книгу, изучал статьи, пробовал писать hello world'ы (со встроенным в джангу сервером это было легко и приятно). А вчера я попробовал настроить от начала до конца боевой сервер, и как оказалось, это не так просто, и мне даже показалось, что будь я моложе и неопытнее, я бы плюнул на это дело. Вот я и решил поделиться с читателями полной инструкцией, снабдив её некоторыми рассуждениями и конфигами. Статья расчитана на начинающих, но будет интересно всем, обещаю.
                                      Читать дальше →
                                    • Ежедневный Git

                                        Уже были статьи про основы гита (0, 1, 2), были и статьи про внутреннее устройство репозитория. Сегодня поговорим, как простому смертному работать с гитом на автопилоте и не морочить себе голову.

                                        Во-первых, шорткаты (в порядке убывания популярности):

                                        alias gst='git-status'
                                        alias ga='git-add'
                                        alias gc='git-commit -m'
                                        alias gp='git pull && git push'
                                        alias gull='git pull'
                                        alias gush='git push'
                                        alias gb='git-branch'
                                        alias gco='git-checkout'
                                        alias gd='git-diff'

                                        Во-вторых, отображение текущей ветки в командной строке:
                                        export PS1='`__git_ps1 "%s"` \w \$ '

                                        Выглядит так:
                                        lazy-args-in-futures ~/Work/io/oleganza-io.git $

                                        (Как установить: ericgoodwin.com/2008/4/10/auto-completion-with-git)

                                        Типичный поток работы в одной ветке
                                        Читать дальше →