• Почему компании отказываются от лучших сотрудников?

    Весной 2006 года Кевин Систром стоял за кофемашиной в кафе Caffé del Doge в Пало-Альто, когда к стойке подошел основатель Facebook Марк Цукерберг. Годом ранее Цукерберг уже ужинал с Систромом — он предложил ему уйти с последнего курса Стэнфорда, чтобы разработать фотосервис для Facebook. Кевин тогда отказался. Оставшись в Стэнфорде, Систром разработал приложение Instagram, которое Цукерберг недавно приобрел за $1 млрд. (Сумма поражает, особенно если знать, что у стартапа нет не только выручки, но и модели ее получения. В компании Instagram, возраст которой еще не достиг двух лет, по-прежнему лишь 14 сотрудников.) В итоге Цукерберг все же захватил Кевина в ряды армии Facebook, с чем его и поздравляем.

    Если в истории с Систромом Цукерберг сделал ставки и не прогадал, то с сооснователем WhatsApp Брайаном Актоном все сложилось иначе. В 2009 году его не взяли на работу в Facebook, а в 2014 компания покупает WhatsApp за $16 млрд. Как же так получается, что большие и инновационные компании отказываются от перспективных сотрудников (будем называть их гуру или «звездами»), за которых в будущем будут гоняться с утроенной скоростью, предлагая просто сумасшедшие деньги? Ориентация на метрики, а не на результат.
    Читать дальше →
  • Лёгкий способ писать iOS приложения на вебе

      Всем привет. Не так давно Габриель подарил нам игру 2048. Это тот самый удивительный случай, когда клон игры становится более популярный, чем оригинал. Не малая часть успеха Габриеля — открытый код и, вуаля, MIT лицензия. Набрав чуть больше 20к очков, захотелось поделиться результатом с друзьями, кроме как сделать скриншот не получилось. Глянул аппстор на наличие клона с геймцентром или чем-то подобным — пусто. И тут подумал, почему бы нет?
      Забегая вперёд, на создание приложения и всех «ништяков» к нему ушло 4 дня. На выходе универсальный код, который от части работает и в вебе и легко портируется на иос/андроид. Однако, давайте по порядку.


      Читать дальше →
    • Хороший дизайн интерфейсов. Часть 3

      • Translation
      • Tutorial
      Это третья часть переведённых заметок «Good User Interface». Первые 16 частей уже ранее перевели наши коллеги из ADV на Хабре, а вторые 11 перевели мы.

      Идея 28


      Используйте варианты по-умолчанию, не заставляя людей выбирать


      Выбор по-умолчанию или самозаполняющиеся поля с обучением сокращают объем работы, которую должен проделать пользователь. Это стандартная техника, помогающая людям продвигаться по формам быстрее, учитывая, что их время ограничено. Одна из наиболее отвратительных вещей с точки зрения дизайна интерфейсов и конверсии посетителей в клиентов — это снова и снова просить пользователей предоставить данные, которые они уже указали ранее. Старайтесь делать поля, которые будут сами заполняться самыми популярными или уже известными значениями, а не просите людей их каждый раз заполнять. Чем меньше работы — тем лучше.

      Остальные 10 заметок далее
    • Несколько интересностей и полезностей для веб-разработчика #14

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

        FastClick.js


        Nota Bene. Практически всегда страница в браузере на вашем тач устройстве реагирует недостаточно быстро. Все из-за задержки в 300ms, чтобы убедиться, что это не double tap. FastClick.js — это полифил, который избавляет пользователей вашего сайта от этой задержки.

        Кстати, это репозиторий от разработчиков известнейшего Financial Times и у них же есть еще один полезный проект на GitHub — ftscroller, с помощью которого легко создать адаптивный скроллинг и мульти-скроллинг для любого эленмента.

        Читать дальше →
        • +52
        • 31.8k
        • 9
      • Полезное для Android разработчика #2

          Полезное для Android разработчика #2



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

          Сегодня в выпуске

          Читать дальше →
          • +18
          • 11.7k
          • 9
        • Аннотации в Java, часть I

            Это первая часть статьи, посвященной такому языковому механизму Java 5+ как аннотации. Она имеет вводный характер и рассчитана на Junior разработчиков или тех, кто только приступает к изучению языка.

            Я занимаюсь онлайн обучением Java и опубликую часть учебных материалов в рамках переработки курса Java Core.

            Также я веду курс «Scala for Java Developers» на платформе для онлайн-образования udemy.com (аналог Coursera/EdX).

            Мой метод обучения состоит в том, что я
            1. строю усложняющуюся последовательность примеров
            2. объясняю возможные варианты применения
            3. объясняю логику двигавшую авторами (по мере возможности)
            4. даю большое количество тестов (50-100) всесторонне проверяющее понимание и демонстрирующих различные комбинации
            5. даю лабораторные для самостоятельной работы

            Данная статье следует пунктам #1 (последовательность примеров) и #2(варианты применения).
            Читать дальше →
          • Информационно-технологические средства практического выживания социальных сообществ в условиях отключения Интернета в 2014 году

              В декабре прошлого (2013) года было обнародовано сделанное на специальной пресс-конференции заявление Александра Гостева (эксперта «Лаборатории Касперского»), согласно которому нынешний (2014) год станет последним годом для Интернета в России. Власти России, как сообщил Гостев, нацелены создать национальную сеть с ограниченным доступом к иностранным ресурсам.

              Месяцем позже (в январе нынешнего года) появление законопроекта, предусматривающего уведомительный порядок создания серверов в Интернете, показало наинагляднейше, что Гостев скорее преуменьшил масштабы намерений отечественных законодателей. Сперва (26 февраля) стало известно, что этот законопроект одобрен комитетом Госдумы по информационной политике, что он готовится ко прохождению первого чтения в Госдуме; затем, буквально через два дня (28 февраля) стало известно также, что законопроект был принят Госдумою в первом чтении. Каким же окажется дальнейшее развитие событий? Можно подозревать, и небезосновательно, что в итоге всё сложится примерно так же, как получилось с митингами и иными массовыми сборищами граждан: прописанный в законе уведомительный порядок закономерно со временем превратится de facto в разрешительный, а количество таких серверов, разрешённых к массовому посещению через Интернет в России, окажется более близким к той прозорливой и мрачной оценке ≈1943 года, которую иногда приписывают Томасу Дж. Уотсону, тогдашнему президенту IBM (см. фото) — не более пяти штук в год.

              Сразу скажу: стремясь с максимальною пользою употребить пару-тройку сотен последних дней существования Хабрахабра, я, уж конечно, не стану обсуждать политические меры противодействия вышеозначенной законодательной инициативе, ведь правилами Хабрахабра это запрещается. Также я ни словом не коснусь её влияния на бизнес, чтобы не попасть за это в хаб-оффтопик. Как раз наоборот — предметом моей заботы станет практическое выживание вполне некоммерческих социальных сообществ, притом достигаемое не политическими, а сугубо айтишными средствами. Вот почему изложенные ниже мысли хочется донести не только до Хабрахабра (что частично получилось бы и с оффтопиком), но также и до внешних (по отношению к Хабрахабру) сообществ его незарегистрированных читателей. За такое нынче, правда, также с недавних пор попадают — да не в хаб-оффтопик, а прямо в чёрный список Федеральной службы охраны (коллекционирующей имена, адреса и другие данные о негативно настроенных интернетчиках) — но это, по-видимому, неизбежное зло. Не всем дано, единожды постигнув пользу Интернета, позитивно относиться к намерениям тех лиц, которые сейчас его деятельно ненавидят и стремятся уничтожить. Скорее дано противоположное. Подозреваю поэтому, что недалёк уж и тот час, когда недовольство сделается поголовным — и ФСО неизбежно придётся закупить базу абонентов Ростелекома (и других провайдеров) да воспользоваться именно ею вместо собственных чёрных списков.

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

              Предлагаю простое мысленное упражнение ума. Вообразите себя участником обширного социального сообщества, сформировавшегося в Интернете и объединяющего жителей различных отдалённых городов — объединяющего граждан, вполне далёких от личного знакомства и общения в так называемом реальном мире. Один или два сервера, важных для этого сообщества, ужé показывают «ошибку 451°» вместо своей заглавной страницы; а совсем скоро (возможно, ужé къ столѣтію Міровой войны?…) всѣ, всѣ его серверы въ Интернетѣ раздѣлятъ ту же судьбу въ Россіи: сѣть «Интернетъ» станетъ для нихъ «Интернѣтомъ» (отъ слова «нѣтъ»).

              Кроме того, вы айтишник.

              Читать дальше →
            • Обучение детей программированию по типу vimtutor

                Как обучать детей программированию? Этот вопрос сидит у меня в голове после прочтения поста о выборе подходящей литературы для этого. Поразмыслив некоторое время над книгами, которые я когда либо читал, я ни к чему хорошему не пришел, и решил пойти другим путем. Насколько мне удалось вспомнить, наиболее эффективным учебным материалом для меня было руководство vimtutor и книги по элементарной математике с упражнениями. Сделав вывод о том, что для эффективного освоения материала нужно смешивать теорию с практикой, я решил написать пилотный учебный курс по программированию для детей в возрасте от 8 лет.
                Читать дальше →
              • Вопросы и задания для русскоязычной книги Thinking in Java (Философия Java) Брюса Эккеля



                  На вопрос «С какой книги начать изучение Java?» очень часто отвечают: Thinking in Java Брюса Эккеля.
                  Но вот беда — эта книга (4-е издание) не содержит в конце каждой из глав вопросы и практикум…

                  Именно того, что способствует наиболее эффективному изучению языка!

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

                  Почему бы не поделиться этими заметками-вопросами с Вами?

                  Приведен список составленных на данный момент вопросов.
                  Вопросы типа «Что такое внутренний класс?» отсутствуют. Такие определения, на мой взгляд, четко формируются по мере чтения главы и не требуют скучного и банального вопроса для подкрепления.

                  А также отсутствуют вопросы, наподобие «что такое stack? каковы особенности его работы?». Они являются базовыми для многих языков и для всего программирования в целом. Поэтому старался их избегать.

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

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

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

                  Читать дальше →
                • Создание простого Chrome приложения

                  • Tutorial
                  В прошлом топике я постарался рассказать, что такое Chrome app, и зачем их писать. В этом, как обещал, я опишу процесс создания простого Chrome-приложения. В качестве примера будет использован текстовый редактор. Во-первых, его можно написать очень коротко, так чтобы практически весь код поместился в статью. Во-вторых, в текстовом редакторе будут использоваться несколько характерных для Chrome (и других основанных на Chromium браузеров) программных интерфейсов. В-третьих, да, я уже писал текстовый редактор для Chrome.



                  Полный код редактора доступен на гитхабе. Готовый редактор можно установить из магазина приложений Chrome.

                  Читать дальше →
                  • +43
                  • 56.4k
                  • 9
                • Разработчик — дизайнерам. Фром харт ту харт

                    Всем хэй-хо!
                    Намедни, играл сам с собой в игру «Прием у психотерапевта». Осознал, что если добрый доктор в уютной обстановке тихим вкрадчивым голосом предложит прилечь на диван, расслабиться и рассказать ему о том, что меня волнует, я начну полный эмоций рассказ о…
                    Фраза крайней степени эмоциональности, но без обсценной лексики
                    <огромные_красные_буквы>рассказ о том, как же мне, как разработчику приложений для iOS, иногда хочется взять автора того дизайна, который приходится использовать, да ударить со всего размаху фаллическим веслом ему по лицу, повалить, и прыгать по его спине в тяжелых ботинках, прыгать, прыгать...</огромные_красные_буквы>

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

                    • Translation
                    imageОт переводчика
                    Выгорание в жизни программиста может случиться по самым разнообразным причинам; если задаться целью перечислить все пути, которыми оно подкрадывается к нам, то одно лишь это перечисление займет немало времени. Это еще один повод, по которому не стоит недооценивать процесс выгорания — иначе однажды вам придется искать дорогу обратно, и стоить это может очень дорого. Последняя строка вовсе не голословна — мне самому однажды смогла помочь лишь любовь к коду — когда уже, казалось бы, все осточертело и ничего не хотелось, чтение подвернувшегося Макконнелла навеяло воспоминания о том, как же когда-то мне нравилось программировать. И сегодня мне нравится делать это снова.
                    А теперь — слово автору.

                    Я отошел от своего выгорания только недавно — несмотря на то, что случилось оно несколько лет назад. Да, мне было непросто… очень непросто. Когда я думаю о произошедшем, на ум приходит немало причин тому, что случилось со мной — но самое интересное заключается в том, что каждой из них я никогда раньше не придавал значения. Хотите повторить мой путь и выгореть? Пожалуйста, у меня готов целый список, как следует поступать в таком случае:

                    1. Думать о проекте и только о нем


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

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

                    Этот парень не имел в виду ничего плохого, но всё же вывел меня из себя. Во-первых, если программист старше по возрасту, это еще не значит, что он пользуется устаревшими программами (и если кто-то молодой, это не значит, что он пользуется новейшими продуктами в области программирования). Вот что я вынес из этого комментария: заниматься своим образованием и изучать новейшие подходы является вашей ответственностью, и никак не вашего работодателя.
                    Читать дальше →
                  • Видео о том, как работает коллайдер и как он устроен

                      image

                      В прошлый раз я разместил небольшой фотоотчет о посещении ЦЕРНа в качестве туриста. И там мне показали простой и в то же время весьма наглядный анимационный ролик про устройство и принцип работы Большого Адронного Коллайдера. И когда, по возвращению, мы перевели его на русский язык и выложили в youtube, то получили в ответ много позитивных отзывов типа такого: «Спасибо, а то на работе заколебался все это ручкой рисовать и пытаться на пальцах объяснить!».

                      Хотя коллайдер запущен уже давно, о принципе его действия имеют представление лишь немногие. И это моя попытка немного поправить положение дел. Приятного просмотра.
                      Читать дальше →
                      • +42
                      • 27.2k
                      • 8
                    • Полезные и интересные модули для Drupal 6.xx + Советы и трюки (Часть III)

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

                        Для тех, кто пропустил начало, вот ссылки на предыдущие обзоры: часть I и часть II
                        Читать дальше →
                      • Что же не так с QR-кодами?


                          Прекрасная картинка неизвестного автора

                          Я долго не писал эту статью. На протяжении полугода я регулярно практиковал попытки пройти в поликлинике к докторам без очереди и хамское вождение с московскими номерами в глубинке, чтобы стать толстокожим и невосприимчивым к ненависти (даже НЕНАВИСТИ!!!1), которая прольётся на меня после этой статьи. Это неизбежно, так как Хабр — гик-ориентированный ресурс, а QR-коды — гик-технология. Они уже получили широкое распространение и теплую поддержку от гиков Хабра, так что будущее у меня в мрачных оттенках. Не удивлюсь бритвенным лезвиям в почтовом ящике и молчаливому дыханию в телефонную трубку от полуночных незнакомцев.

                          Видимо, для апологетов QR-кодов эта технология — возможностью приблизить будущее, шагнуть в прекрасный мир завтрашнего дня с дополненной реальностью из всех этих многочисленных видеороликов и фильмов про будущее с прозрачными дисплеями, что-то разобрать на которых можно только при отсутствии просвечивающегося пёстрого бабушкина ковра на стене. Гики радуются любому новому примеру использованию QR-кода, даже если это помогающая рассказывать сказки детская пижама с QR-кодами, надгробия, коровы. И с мечтательным видом прогнозируют, что в будущем QR-коды будут повсеместно. По моему мнению, такой вариант событий можно описывать в антиутопиях, что-нибудь вроде «Мы» Замятина.

                          Для создания видимости аргументов в защиту своего мнения я мог бы устроить тут филиал wtfqrcodes.com и со злыми комментариями публиковать самые неудачные и даже опасные случаи использования QR-кодов, завершив всё это ссылкой на понятную инструкцию. Но эта демагогия не поможет прийти к цели — понять суть проблемы QR-кодов, так что passive-aggressive mod off, и давайте разберемся.

                          Так что же с ними не так?
                        • Что нужно знать про арифметику с плавающей запятой



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

                          Арифметика с плавающей запятой почему-то считается экзотической областью компьютерных наук, учитывая, что соответствующие типы данных присутствуют в каждом языке программирования. Я сам, если честно, никогда не придавал особого значения компьютерной арифметике, пока решая одну и ту же задачу на CPU и GPU получил разный результат. Оказалось, что в потайных углах этой области скрываются очень любопытные и странные явления: некоммутативность и неассоциативность арифметических операций, ноль со знаком, разность неравных чисел дает ноль, и прочее. Корни этого айсберга уходят глубоко в математику, а я под катом постараюсь обрисовать лишь то, что лежит на поверхности.
                          Читать дальше →
                        • Можно ли стать программистом после 30-ти?



                          Тема, вынесенная в заголовок, недавно обсуждалась в одном белорусском IT-онлайн-издании. Правда, там стоял вопрос, можно ли стать программистом после 40-ка. Автор статьи, состоящей из нескольких частей, начал было описывать свой путь из журналистов в программисты, затем свел все к урокам PHP «для самых маленьких» и далеко отступил от темы. Но в материалах прослеживалась мысль, что бросить журналистику и заняться программированием ему так и не удалось. Из этого следует, что после 40 лет стать программистом если и возможно, то весьма непросто. Попробуем снизить возрастную планку на 5 – 10 лет.

                          Мне близка эта тема, поскольку я сам зарабатываю на хлеб журналистским трудом и тоже мечтаю стать профессиональным программистом. Невзирая на возраст. А в свете последних тенденций в IT (дефицита кадров) все громче звучат идеи о переучивании в программистов специалистов из других отраслей. Так что, не побоюсь сказать, что тема эта имеет государственную важность. Желающих вместе со мной разобраться с этим вопросом прошу под кат.
                          Читать дальше →
                        • Что следует знать о плоском дизайне

                          • Translation
                          Дорогой дизайнер и недизайнер!

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

                          Плоский и минималистичный дизайн — это то, чем я зарабатываю свой хлеб. С тех пор, как я стал работать с дизайном, я всё время упрощаю объем, минимизирую отдельные элементы и увеличиваю пустое пространство. В данный момент эти два стиля слились воедино и вышли на передовую мобильного дизайна. И я хотел бы поделиться тем, чему научился.

                          Читать дальше →
                        • Домашний сервер «всё-в-одном» — success story

                          Жил да был у меня роутер одной хорошей фирмы на букву «Dead». Ну, это с ним, собственно, и случилось.
                          Посмотрел я на цены новых, на кучу компьютерного хлама в углу, на список подключений на домашнем компе… И понял, что не нужен мне роутер. Соберу свой, с нормальной маршрутизацией, DNS, WINS, i2p, блекджеком и так далее.
                          Как это было?