• JavaScript F.A.Q: Часть 1

      image

      Несколько дней назад мы с TheShock создали топик в котором собирали ваши вопросы, касательно JavaScript (архитектура, фрэймворки, проблемы). Настало время ответить на них. Мы получили очень много вопросов, как в комментариях так и по email. Эта первая часть ответов — те вопросы, которые достались мне.
      Читать дальше →
      • +222
      • 68.4k
      • 50
    • Использование методологии ITIL в малом бизнесе

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

        Именно поэтому, хотел бы вам предложить изменить эту схему. А именно — несколько рекомендаций из библиотеки ITIL. Они-то и станут тем фильтром, на который осядет весь неизбежный негатив нашей профессии. Если вам еще интересно – добро пожаловать под кат.
        Читать дальше →
      • VoIP звонки из браузера

          Столкнулся с необходимостью внедрить sip телефон в браузер. На просторах Интернета информация в основном о решении на базе red5 + red5phone, но оно мне показался слегка громоздким и недостаточно надежным. Скажем так, меня не устроило соотношение времени развертывания плюс требуемых аппаратных ресурсов к уровню качества плюс беспроблемности поддержки и масштабирования, к тому же проблематичное для интеграции в веб-проект.
          Читать дальше →
        • NetPing: конструктор для администратора и досуг для программиста



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

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

            Речь пойдет про устройства NetPing. Эта российская разработка периодически упоминается на хабре, но детального рассказа я не встречал. Пусть эта статья будет продолжением серии «Оборудование российского производства». Мне достался самый универсальный прибор линейки – UniPing RS-232. Основная сфера его применения – удаленный мониторинг и управление множеством устройств в квартире, доме, офисе. Конечно, давно существует понятие «умный дом», но, как правило, это преподносится как вариант для состоятельных людей, хотя получают они черный ящик с жестко заданным, пусть и большим, набором функций. Однако, можно ведь все собрать и запрограммировать самому!

            Интересно?
          • Разработка мультитач веб-приложений

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

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

            Apple ввел свое touch events API в iOS 2.0, вскоре устройства на Android тоже получили такую возможность и touch events API стал стандартом де-факто. Недавно была собрана рабочая группа W3C для работы над touch events specification.
            В этой статье я рассмотрю touch events API, которое нам предоставляют устройства на iOS и Android, мы изучим какие приложения можно создавать, используя touch events API. В статье куча полезных примеров и техник, которые позволяют упростить написание приложений с touch events API.
            Читать дальше →
          • Jabber и Twitter через IRC

              В данной статье будет описана настройка IRC-клиента для работы c Bitlbee на примере Jabber и Twitter.

              Bitlbee — это тунелль из IRC в другие сети быстрого обмена сообщениями (аналогия транспортов в сети Jabber). Вы можете подключить следующие IM-сети: ICQ, Jabber, AIM, MSN, Yahoo и Twitter.
              Читать дальше →
              • +18
              • 2.1k
              • 8
            • О том, как я заставлял Ubuntu работать 10 часов от батареи

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

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

                Устанавливал я Ubuntu 10.10 на ноутбук Acer Aspire Timeline 5810TG. Эта машина обладает экраном в почти 16 дюймов и относительно производительным железом, зато батарея достаточно емкая, чтобы ставить с ней личные рекорды.
                Читать дальше →
              • Perl::Critic + Subversion = внедрение единых практик кодирования в команде

                Язык Perl хорошо известен той степенью свободы (a.k.a. TIMTOWTDI), которую он даёт программисту в выборе способа решения той или иной задачи. У этой медали, к сожалению, есть и оборотная сторона, которая может проявиться при командной разработке крупных проектов. Если в команде нет единых практик кодирования и каждый из разработчиков придерживается принципа TIMTOWTDI, то новичку в таком коллективе не позавидуешь.

                В 2005 году активный участник Perl-сообщества Дамиан Конвей (Damian Conway) опубликовал книгу Perl Best Practices, в которой собрал и структурировал 256 рекомендаций по написанию понятного, надёжного и поддерживаемого Perl-кода. Краткую шпаргалку с выжимкой из книги можно скачать отсюда.

                Годом позже, Jeffrey Thalhammer и группа товарищей выпустила Perl::Critic — гибкий и расширяемый фреймворк, позволяющий автоматизировать проверку Perl-кода на предмет его соответствия большей части рекомендаций из книги Конвея, а также многих других полезных практик.

                Perl::Critic подаётся под разными соусами: во-первых, в комплекте с модулем поставляется одноимённая утилита — perlcritic, во-вторых, проверку кода можно оформить в виде тестов с помощью Test::Perl::Critic либо Test::Perl::Critic::Progressive, в-третьих, критик легко интегрируется в VIM и Emacs.

                В этом рецепте я расскажу о том как проверять Perl-код на лету при коммите в Subversion-репозиторий. Bon Appétit!

                Читать дальше →
                • +19
                • 2.5k
                • 9
              • Самый короткий аплоадер картинок!

                • Translation


                В этой статье раскрыто, как можно сделать очень простой аплоадер, с кодом только на клиенте, используя API хостинга картинок. Если вас интересует более продвинутый аплоадер с такими штуками, как ресайз, кроп, рисование и т.п. — читайте статью How to develop a HTML5 Image Uploader. Содержимое статьи примечательно использованием FormData() и Cross-Domain XHR.
                Читать дальше →
              • Про фрилансера Ивана и как он не вставал с дивана

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

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

                    Страшная правда


                    Вы не платите налоги, потому что это сложно, непонятно и вообще неприятно? Это правда. У каждого стартапа есть своя, часто довольно безумная миссия. У нас, стартапа «Эльба», она при этом еще и очень простая — сделать так, чтобы вы не боялись налогов и бухгалтерии и при этом продолжили оставаться самим собой — человеком, который хочет заниматься своим делом и зарабатывать.

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

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

                      Думаю многие видели демки сделанные парнями из google, когда при тряске ноутбука видео внутри html страницы разваливалось на куски. Мне захотелось сделать так же, но к сожалению на тот момент не смог найти как. А совсем недавно я прочитал о двух типах событий: DeviceOrientationEvent и DeviceMotionEvent, которые теперь поддерживаются в iOS 4.2. Подробности под катом.
                      Читать дальше →
                    • Ревью кода в mercurial

                        hg review — полезная плюшка для mercurial'а


                        У git'а есть GitHub, а у Mercurial'а есть hg review. На самом деле я сравнил козу с бояном.
                        image
                        Ревью кода.

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

                        И вот появился проект, который дает нам инструмент, а как его использовать — решать нам.
                        Читать дальше →
                      • Альтернативный вид страницы для opera speed dial

                          Давно искал способ детекта Speed Dial от Opera, чтобы для Speed Dial отдавался специальный вид страниц.
                          Путем экспериментов было установлено, что в режиме «скриншотера Speed Dial» Opera устанавливает жесткие значения для document.documentElement.clientHeight и document.documentElement.clientWidth в 768 и 1024 соответственно, естественно при наличии body тега внутри документа.

                          Вот, собственно, код, который детектит «opera speed dial mode»:
                          var sd = document.documentElement.clientHeight == 768 && document.documentElement.clientWidth == 1024 && window.opera;

                          Страница для теста dl.dropbox.com/u/2899751/opera-speed-dial/test.html
                          Исходинк pastebin.com/msfc9aYj

                          Просто добавляем dl.dropbox.com/u/2899751/opera-speed-dial/test.html в одну из ячеек Opera Speed Dial.
                          В нормально режиме будет выдаваться «Common page» в режиме Speed Dial будет валлпапер с андроидом droidfreeapps.com/wp-content/uploads/2010/01/android_logo.gif
                        • Иконки типов файлов

                            По просьбе гражданина dio нарисованы 25 иконок типов файлов в размерах 64х64, 48х48, 32х32 и 16х16. Иконки распространяются на условиях лицензии CC BY-ND.
                            Этот сет является дополнением к первому и второму бесплатным наборам.
                            Скачать иконки можно здесь

                            image
                          • Подсказки в поисковой строке в Opera для Google и других

                              Как вы уже возможно знаете, Opera в версии 10.60 начала поддерживать поисковые подсказки. Правда, пока сходу они показываются только для Bing и Wikipedia. Однако довольно легко можно подружить Оперу с Гуглом (и некоторыми другими).



                              решение
                            • «LibCanvas» — фреймворк для работы с Javascript Canvas, часть вторая


                                Привет, Хабр! Я хочу рассказать тебе о новой библиотеке, которая помогает очень легко и изящно рисовать всякие штучки-дрючки на html5 canvas. Возможно, ты уже слышал о ней, но сейчас она пережила новое рождение. Что-ж, под катом я покажу тебе много интересненьких примеры, расскажу про нюансы работы и дам ссылку на грозу всех секретарш — почти работающий пасьянс «Косынка», созданную с помощью этой LibCanvas.

                                Читать дальше →
                              • TalkPad.ru — наш ответ Скайпу!

                                  Всем доброго дня,

                                  Сегодня мы хотим презентовать вам наш стартап TalkPad, который позволяет осуществлять звонки на городские и мобильные телефоны по всему миру прямо из браузера.

                                  image

                                  Предыстория
                                  Активная тенденция переноса программных продуктов в web, которая наблюдается в последние годы, задала нам один вопрос: А есть хоть один нормальный сервис, позволяющий звонить из браузера?
                                  Все полученные на этот вопрос ответы разделились на две группы:
                                  Читать дальше →
                                • QUnit. Тестирование javascript кода

                                    Наткнулся вчера на этот инструмент и не смог пройти мимо, провел ночь за написанием тестов, а теперь хочу поделиться находкой. QUnit — это библиотека от разработчиков jQuery, позволяющая писать unit-тесты для кода на javascript. Удобна в использовании, ничего лишнего, осваивается за 20 минут, выгода от применения — колоссальная.

                                    Самым нетерпеливым сразу ссылки:
                                    Официальная документация на сайте jquery: docs.jquery.com/QUnit
                                    Реальные примеры тестов (для модулей jquery): view.jquery.com/trunk/jquery/test/unit
                                    Руководство для начинающих (англ): www.swift-lizard.com/2009/11/24/test-driven-development-with-jquery-qunit
                                    Система распределенного тестирования (гениально и просто): testswarm.com

                                    Под катом информация о преимуществах юнит-тестирования применительно к js и разбор возможностей библиотеки на примерах.
                                    Читать дальше →
                                  • Необычный оператор диапазона

                                      Должен предупредить, что это ещё одна статья, не содержащая никаких откровений. Для тех супер-гиков, которые назубок знают весь perldoc, она будет абсолютно бесполезной, так что, уважаемые супер-гики, можете проходить мимо и не информировать, что всё это есть в доках. Я и так это знаю. :-) Моя статья для всех остальных, для тех, кто весь perldoc целиком либо не осилил, либо осилил, но не понял, либо понял, но не запомнил.

                                      Я думаю, многие знают о так называемом операторе диапазона, записывающемся как .. (две точки), с помощью которого можно быстро создавать массивы из набора последовательных элементов. Например, следующий код создаёт массив из 35 чисел: 3, 4, 5, …, 37:
                                      my @arr = 3 .. 37;
                                      Помимо чисел можно использовать строки: в этом случае для генерации элементов массива будет выполняться так называемый магический инкремент (например, можно задать диапазон букв: 'a' .. 'z').

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