• Книги для тимлидов и руководителей проектов

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

      В отечественном IT я часто наблюдаю следующую картину: тимлидом часто становился лучший (?) разработчик из команды (aka 23-летний сеньор). А чтобы стать руководителем проекта (project manager) иногда достаточно просто знать английский и «павэрпойнт» на уровне пользователя. Это реалии отечественного аутсорсинга и с этим нужно как-то жить.

      В итоге часто получается как-то так:
      Потому что на десять сеньоров по статистике девять тупят.
      Читать дальше →
    • Мобильные браузеры и position:fixed

      CSS-свойство position:fixed в Mobile Safari сносно работает начиная c iOS 5. В Android родной браузер частично понимает это свойство начиная с версии системы 2.1, адекватно — с 2.2, полная поддержка — с 3.0. Подробнее: таблица поддержки position:fixed.

      HTML:
      <div id="topbar">Fixed Title</div>
      <div id="content">
      	<h2>Start</h2>
      	<p>Main content text </p>
      	...
      	<p>Main content text </p>
      	<h2>End</h2>
      </div>
      <div id="bottombar">Fixed footer</div>
      

      CSS:
      #content{
      	padding: 50px 0; /* отбиваем высоту баров, чтобы не перекрывать контент вверху и внизу страницы */
      }
      #topbar,
      #bottombar {
      	position: fixed;
      	left: 0;
      	width:100%;
      	height: 50px; /* фиксируем высоту для простоты */
      	line-height:50px;
      	background:#eee;
      	text-align: center;
      }
      #topbar {top: 0;}
      #bottombar {bottom: 0;}
      
      

      Теперь в современных смартах у нас topbar и bottombar «прибиты» соответственно к верху и к низу окна. Проблема позицонирования при первом скролле в iOS решается мини-Javacript'ом (исправлено):
      window.scrollBy(0, 1);
      

      А как быть со старичками?
    • Дайджест интересных новостей и материалов из мира айти за последнюю неделю №33 (24 — 30 ноября 2012)

        Предлагаем вашему вниманию очередную подборку с ссылками на новости, интересные материалы и полезные ресурсы.


        Читать дальше →
        • +18
        • 19k
        • 7
      • IE позволяет отслеживать координаты мыши (даже в другом окне)

          В Internet Explorer обнаружена уязвимость, который позволяет отслеживать движения мыши и нажатия Shift, Ctrl и Alt, даже если окно браузера свёрнуто. Баг присутствует во всех версиях IE c 6 по 10.

          Код эксплойта
          Демонстрационная страница



          Запускаем fireEvent() через определённые интервалы. Метод позволяет отслеживать altKey, altLeft, clientX, clientY, ctrlKey, ctrlLeft, offsetX, offsetY, screenX, screenY, shiftKey, shiftLeft, x и y.
        • Онлайн-инструменты для кодеров

            Онлайн-сервисы становятся все популярнее, постепенно усложняя функционал и улучшая интерфейсы. В этой подборке представлены онлайн-инструменты для кодеров.

            Cloud9


            «Это Google Docs, только для кода» — так говорят о проекте. Облачный сервис вырос из Mozilla Bespin. Основные фишки: SSH, drag-and-drop и возможность разработки оффлайн.

            Читать дальше →
          • Сайт для программиста [на Node.js]. Просто. Стильно. Бесплатно

            • Tutorial

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

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

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

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

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

            Читать дальше →
          • Почему вы до сих пор не используете git-flow?

            • Translation
            В январе этого года (прим. год — 2010), @nvie опубликовал статью — "A successful Git branching model" (прим. перев. — на хабре есть перевод: "Удачная модель ветвления для Git"), в которой он поделился опытом как поддерживать порядок и чистоту Git-репозитария. В дополнение к этому, он выпустил git-flow, набор расширений для Git для поддержки описаной модели.
            Читать дальше →
          • Приемы написания скриптов в Bash

            Администраторам Linux писать скрипты на Bash приходится регулярно. Ниже я привожу советы, как можно ускорить эту работу, а также повысить надежность скриптов.

            Совет 1

            Не пишите скриптов, которые выполняют действия ничего не спрашивая. Такие скрипты нужны довольно редко. А вот всевозможного «добра» для копирования, синхронизации, запуска чего-либо, хоть отбавляй. И если в любимом Midnight Commander Вы вдруг нажали не на тот скрипт, то с системой может произойти все что угодно. Это как правила дорожного движения — «написано кровью».

            Совет 2

            Отталкиваясь от предыдущего, в начало каждого скрипта неплохо помещать что-то вроде:
            read -n 1 -p "Ты уверен, что хочешь запустить это (y/[a]): " AMSURE 
            [ "$AMSURE" = "y" ] || exit
            echo "" 1>&2
            Команда echo, кстати, здесь нужна потому, что после нажатия кнопки <y> у вас не будет перевода строки, следовательно, следующий любой вывод пойдет в эту же строку.

            Совет 3

            Это ключевой совет из всех. Для того, чтобы не писать каждый раз одно и то же — пользуйтесь библиотеками функций. Прочитав много статей по Bash, я вынужден констатировать, что этой теме уделяется мало внимания. Возможно в силу очевидности. Однако я считаю необходимым напомнить об этом. Итак.
            Заведите свою библиотеку функций, например myfunc.sh и положите ее, например в /usr/bin. При написании скриптов она не только поможет сократить ваш труд, но и позволит одним махом доработать множество скриптов, если Вы улучшите какую-либо функцию.
            Например, в свете совета 2 можно написать такую функцию:
            Читать дальше →
          • CSS анимации на реальном проекте



              Всё чаще среди веб-разработчиков поднимается тема возможностей CSS анимаций (transition/animation), практически на каждой конференции по клиентской разработке можно услышать о потрясающих преимуществах новой технологии.

              Производительность и гибкость CSS анимаций позволяет творить удивительные вещи, но можно ли уже использовать эти новые возможности в силу их нестабильности и незрелости на реальных больших проектах?

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

                image


                Собрал небольшой список пунктов эволюции фрилансера, каждый +1 сделает вас продуктивнее или дороже на рынке.
                Список взят из моей жизни, я уже как год практикующий фрилансер, до этого никогда не покидал России, за последний год посетил 9 стран, в следующем году надеюсь посетить ещё 20.

                1) Никогда ничего не забывайте. Для этого каждую мелкую задачу я всегда добавляю в miniplan.ru и я всегда получу в нужный момент письмо или смску, все совершенно бесплатно.
                2) Самоосознание. Когда работаешь без прямого начальника, когда зарплата не два/раз в месяц, нужно максимально осознать свою жизнь, понимать как вы работаете, как вы получаете деньги, забиваете ли вы на работу, к чему стремитесь. Если в обычной жизни можно плыть по течению то фриланс вам приоткрывает двери осознанной жизни.
                3) Отдыхайте. Работодателя нет и вы сами должны заботиться о своем отпуске, сделайте так чтобы его было больше, чем если бы вы работали по прямому найму. Не забывайте о перерывах в работе. Отдых сделает вас продуктивнее или абсолютно расслабит и тут вам поможет самоосознание.
                Читать дальше →
              • Как у себя на сайте иметь запрещенный контент и не попасть в реестр блокировок

                • Tutorial


                Внутри данной статьи представлено размышления как совершенно легально обойти новый закон о запрете информации и не попасть всем сайтом в список заблокированных ресурсов.
                Читать дальше →
              • Используем backbone.js под node.js

                Приветствую, уважаемые читатели Хабрахабра. Хочу поделиться с вами своим опытом использования backbone.js под node.js. Ранее я активно поработал с backbone.js на клиенте, и эта библиотека оказалась крайне удобной для структурирования кода.

                Сервис без работы с какой либо базой данных — не сервис. В моем случае, в качестве СУБД была выбрана mongodb. Я посмотрел существующие решения ORM для mongodb, и мне показалось более удобным пользоваться знакомыми инструментами, тем более они же будут использоваться и на клиенте, поэтому решено было попробовать применить для моделей класс Backbone.Model и заодно проверить, как все это можно кастомизировать под mongodb.

                Читать дальше →
                • +9
                • 15.4k
                • 3
              • Проксируем и спасаем

                • Tutorial
                1 ноября мир изменился и больше никогда не будет таким же как прежде. В российском интернете появилась цензура — общеизвестный уже список запрещенных сайтов. Для одних это важнейшая политическая тема, для других повод изучить технологии шифрования и защиты анонимности, для третьих просто очередной странный закон, который приходится исполнять на бегу. Мы же поговорим о технологическом аспекте.

                В данном пособии мы узнаем как быстро и просто сделать рабочее зеркало любого сайта, что позволяет сменить IP и назначить любое доменное имя. Мы даже попробуем спрятать домен в url, после чего можно сохранить локально полную копию сайта. Все упражнения можно сделать на любом виртуальном сервере — лично я использую хостинг Хетцнер и OS Debian. И конечно мы будем использовать лучший веб-сервер всех времен и народов — NGINX!

                К этому абзацу пытливый читатель уже приобрел и настроил какой нибудь выделенный сервер или просто запустил Linux на старом компьютере под столом, а так же запустил Nginx последней версии со страничкой «Save me now».
                Cкорее кого-нибудь спасем
              • Верстка рассылок — что мы имеем?

                • Tutorial
                Доброго дня.

                Изображение честно позаимствовано с Dribbble.com

                Прошло немногим менее два года с момента публикации моего первого топика по теме. Что за это время произошло? Mail.ru, Rambler, Yahoo и Яндекс дружно перелопатили свои почтовые интерфейсы, и как следствие — парсеры писем, что доставило приятных эмоций, т.к. было исправлено много противных багов. Gmail стал поддерживать фоновые изображения. Ну а благодаря развитию рынка мобильных платформ к нам на помощь приходят media queries.

                Смысл поста — подытожить методику верстки писем под сегодняшние реалии, при этом не забывая про ископаемые клиенты.

                И да, в посте картинок почти нет. За картинками прошу в обзоры css3 фич.

                На данный момент занимаюсь версткой писем, скорей как хобби, поэтому времени на тестирование opera mail, sparrow и прочих «вроде как популярных» клиентов не было. Речь пойдет о следующих:

                — Все версии MS Outlook
                — Mail.ru
                — Rambler почта (в новом интерфейсе не исключены баги)
                — Яндекс почта
                — Gmail
                — Yahoo!
                — Thunderbird начиная с версии 2.0
                — Hotmail
                — Windows Live Mail
                — Apple Mail начиная с третьей версии
                — AOL Mail
                — Lotus Notes 8-8.5.
                — theBat! дотошно не тестировал, но и нареканий особенно не было
                Читать дальше →
              • Адаптивные фоновые изображения

                • Tutorial
                Одна из основных задач при адаптивной верстке — это масштабирование изображений (в том числе фоновых) таким образом, чтобы они корректно отображались на устройствах с разными разрешениями экранов.

                С картинками в теге img все просто: при установке ширины в процентах высота будет масштабироваться автоматически. К фоновым же изображением такой способ применить нельзя.

                Фиксированное соотношение сторон


                Читать дальше →
              • Lo-Dash

                • Translation
                Прим. переводчика: underscore.js — одна из самых известных и любимых javascript-библиотек. Но мало кто знает, что есть её более удачный клон. В одном из своих проектов мы без каких-либо проблем перешли на него и теперь решили познакомить с ним других читателей Хабрахабра.

                Lo-Dash — это полноценная замена* для Underscore.js. Lo-dash имеет более высокую производительность, избавлен от некоторых багов underscore и даёт некоторые новые возможности.


                Читать дальше →
              • Грабли, или 5 типичных ошибок настройки Asterisk



                  Статья ориентирована на начинающих пользователей Asterisk, которые, тем не менее,
                  имеют знания о работе компьютерных сетей на уровне CCNA и которые изучали основы IP-телефонии без специализированных курсов.

                  Читать дальше →
                • Отрезаем голову в nginx

                    Не так давно я рассказывал, как у нас в Topface устроено хранение и раздача пользовательских картинок на Topface Developer Day (презентация на speakerdeck). Картинки мы нарезаем на лету в nginx с помощью image_filter.

                    Люди в основном продолговатые в вертикальном направлении и фотографии себя для сервиса знакомств делают соответствующие, дизайнеры хотят квадратики, а nginx вырезает людям не совсем то, что интересует людей (лицо я имею в виду). На примере longcat получается примерно следующее:

                    longcat
                    Как с этим жить