• Советы начинающему предпринимателю от Оливера Эмбертона

    • Translation


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

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

      Что из этого получилось приглашаю начинающих программистов почитать, а опытных обсудить.
      Читать дальше →
    • Звоним на мобильные телефоны из браузера с записью разговоров

      • Tutorial


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

      Или другой сценарий — входящий в компанию звонок. Как здорово, когда ты в качестве клиента звонишь на безликий 8800 и девушка на том конце телефона отвечает тебе приятным голосом — здравствуйте, Алексей (подставить_свое_имя)! Это производит потрясающий эффект. Когда вместо «назовите себя, номер паспорта и имя кота, информация грузится — послушайте шестую симфонию Моцарта» оператор уже поднимая трубку знает, как вас зовут и видит по вам всю информацию. Сервис, что и говорить.

      Но есть ли возможность реализовать такую систему без погружения в дебри настройки АТС — максимально быстро и минимальной кровью? Желательно еще, чтобы все разговоры записывались для целей контроля и обучения сотрудников. Ответ — конечно, погнали под кат.
      Читать дальше →
    • «Хакинтош» – стоит ли игра свеч?

        imageХочу поделиться своим мнением и опытом относительно работы Mac OS X на обычном PC компьютере. Может кому-то этот топик будет интересен или полезен.

        Я разработчик ПО для Mac OS X и iOS. И я обожаю технику и ПО от Apple (но я не являюсь ярым фанатом). За свою жизнь у меня побывало много гаджетов от Apple: PowerBook G4, MacBook, iMac, MacBook Pro, iPhone, iPad и пр.

        Техника для меня лишь инструмент достижения целей. В данный момент времени на работе я использую iMac (Core i5), в личных целях: обычный стационарный PC, ноутбук Lenovo, телефон на Android и iPad.

        Недавно мне для работы дома понадобился очень мощный компьютер с Mac OS X. По характеристикам из техники Apple подходили лишь топовый iMac (с Core i7-2600 3,4 ГГц) и Mac Pro. Оба стоят просто запредельные деньги — более 100 тыс. рублей. Я психологически не был готов потратить такие деньги на компьютер. Ограничил бюджет суммой 55 тыс. рублей и решил собрать «Хакинтош». Я немного слежу за тематикой «Хакинтош» и имею четкое представление, что «там и как».

        Читать дальше →
      • Обновление интерфейса Google

          На правах: «А мужики ведь не знают» — покажу как выглядит сейчас поиск гугла в браузере Chrome:
          image
          Заметьте, той тёмной строки в верху страниц больше нет. Её заменили значком «Сервисы», слева от значка нотификации(колокольчика).
          Более спорный момент — строка поиска осталась только в строке адреса. С одной стороны — незачем плодить одинаковые сущности, с другой — микрофон и кнопка настроек выглядят «одиноко».

          А вот стартовая страница(новая вкладка) Chrome:
          image
          Читать дальше →
        • jQuery.viewport или как я искал элементы на экране


            Равно как у каждой девушки должно быть «маленькое черное платьице», у каждого front-end разработчика должен быть «маленький черный плагинчик»… как-то не очень звучит, пусть будет «маленький функциональный плагинчик», так о чем это я, я это о том, что хочу одним таким поделиться.

            Представленный плагин позволяет определять положение какого-либо элемента/набора элементов, относительно области просмотра. Функционально, он расширяет набор псевдо-селекторов, а так же добавляет трекер элементов.

            Так же, под катом, я расскажу о процессе написания плагина, с какими трудностями столкнулся и т.д., если я Вас заинтересовал — милости прошу под кат.
            Читать дальше →
          • Замыкания в Javascript [Часть 2]

            • Translation
            Предыдущая часть.

            • Замыкания
              • Автоматическая сборка мусора
              • Создание замыканий

            • Что можно сделать с помощью замыканий?
              • Пример 1: setTimeout c ссылкой на функцию
              • Пример 2: Ассоциирование функций с методами экземпляра объекта
              • Пример 3: Инкапсуляция взаимосвязанной функциональности
              • Другие примеры

            • Случайные замыкания
            • Проблема утечки памяти в Internet Explorer

            Читать дальше →
          • Тонкости благополучного git-merge

              Вступительное слово


              Считается, что «киллер фичей» СКВ Git является легковесное ветвление. Я ощутил это преимущество в полной мере, ведь я перешел на Git с SVN, где ветвление было достаточно дорогим процессом: для создания ветки нужно было скопировать весь рабочий каталог. В Git все проще: создание ветки подразумевает лишь создание нового указателя на определенный коммит в папке .git/refs/heads, который является файлом с 40 байтами текста, хешем коммита.

              Основными командами пользовательского уровня для ветвления в Git являются git-branch, git-checkout, git-rebase, git-log и, конечно же, git-merge. Для себя я считаю git-merge зоной наибольшей ответственности, точкой огромной магической энергии и больших возможностей. Но это достаточно сложная команда, и даже достаточно длительный опыт работы с Git порой бывает недостаточным для освоение всех ее тонкостей и умения применить ее наиболее эффективно в какой-либо нестандартной ситуации.

              Попробуем же разобраться в тонкостях git-merge и приручить эту великую магию.

              Здесь я хочу рассмотреть только случай благополучного слияния, под которым я понимаю слияние без конфликтов. Обработка и разрешение конфликтов — отдельная интересная тема, достойная отдельной статьи. Я очень рекомендую так же ознакомиться со статьей Внутреннее устройство Git: хранение данных и merge, содержащей много важной информации, на которую я опираюсь.
              Читать дальше →
            • Моя библиотека для IT-менеджера

                С тех пор, как в институте появился предмет маркетинг, я прочёл несколько десятков книг, полезных для проект-менеджеров, стартаперов и руководителей компаний. Лучшие я собрал в небольшую библиотеку и хочу рассказать о них вам. Все эти книги заслуживают внимания и будут вам полезны. О многих вы уже слышали, часть упоминалась на Хабре, но, надеюсь, вы откроете для себя нечто новое из тех 22-х книг, о которых хочу рассказать.

                Рассказывать буду кратко: о чём книга, кому полезна, насколько важна. Поэтому обложки на каждую ставить не буду, думаю, каждый без труда найдёт ту, что заинтересовала.

                image
                Читать дальше →
              • Через трудности и ошибки к безупречному интерфейсу кассы самообслуживания



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

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

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

                  С удовольствием перечислю такие проблемы, с которыми мы в компании «Кристалл Сервис» столкнулись при разработке пользовательского интерфейса кассы самообслуживания.
                  Читать дальше →
                • Фестиваль 404: первые впечатления



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

                    Фестиваль 404 проходит уже в седьмой раз. Местом проведения был отель Holiday Inn в историческом центре Самары. Программа фестиваля разбита на два дня и 9 тематических секций: Design Weekend, UX, Информационное общество, Маркетинг для роботов, Мобильные приложения, Стартапы, Стартапы: Fail Conference, Технологии, Управление людьми. Для меня наибольший интерес представляли UX секция, Мобильные приложения, Design Weekend, но обо всем по порядку.
                    Читать дальше →
                  • Повышаем личную эффективность: советы от Марка Андреессена

                    • Translation
                    Одно из моих любимых удовольствий – productivity porn, порнография эффективности. Или, для тех, кто в теме – pr0n. Это набор техник, тактик и трюков по максимизации личной эффективности. Что называется, «getting things done».

                    Следующие техники я использую в комплексе, но возможно не все они пригодятся конкретно вам. Даже если вы почерпнёте одну-две идеи – значит, моя цель будет достигнута. Итак, начнём внезапно.

                    Не составляйте себе расписание

                    Читать дальше →
                  • WebMarkupMin: Минимизация представлений KnockoutJS и AngularJS

                      Логотипы WebMarkupMin, KnockoutJS и AngularJS
                      Начиная с версия 0.9.0 в WebMarkupMin поддерживается минимизация представлений KnockoutJS (далее просто Knockout) и AngularJS (далее просто Angular). Многие из вас могут задать вопрос: «Почему Knockout и Angular, а не Mustache или Underscore?». Этот выбор был сделан по следующим причинам:
                      1. Шаблоны на основе DOM. Шаблонизаторы, встроенные в Knockout и Angular, базируются на DOM-шаблонах (DOM-based templates), а не на строковых шаблонах (string-based templates) как Mustache и Underscore. Код таких шаблонов не содержит программных вставок (например, {{…}} или <%…%>) за пределами текстового содержимого элементов (тегов) и значений атрибутов, что позволяет минимизировать его как обычный HTML.
                      2. Популярность среди .NET-разработчиков. Knockout изначально создавался для .NET-разработчиков, чтобы позволить им перенести свой опыт разработки MVVM-приложений из WPF и Silverlight в обычный веб. Что же касается Angular, то он вообще не нуждается в представлении и его популярность среди веб-разработчиков в целом бьет все возможные рекорды. Помимо этого популярности этих библиотек среди .NET-разработчиков способствовало огромное количество статей евангелиста Microsoft Джона Папы.
                      3. Высокая эффективность сжатия выражений привязки. Выражения привязки в Knockout и Angular фактически являются простым JavaScript-кодом или объектами в формате JSON, которые можно сжать JS-минимизатором.

                      Читать дальше →
                    • Основы репликации в MySQL

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

                        • Translation
                        Ежедневно на Ваш сайт заходят сотни, а может, и тысячи посетителей. Это, несомненно, радует и говорит о популярности вашего проекта. Но будут ли эти люди покупать? Являются ли они вашей целевой аудиторией? Или они просто зашли из любопытства?

                        Если вы не можете отделить от всего массива пользователей Интернета именно вашу целевую аудиторию, шанс на успех в бизнесе чрезвычайно мал. Именно поэтому необходимо постоянно изучать свою аудиторию: ее интересы, поведение, предпочтения, уровень дохода. Как это сделать? С помощью опросов. О них и пойдет речь в нашей статье.
                        Читать о том, как создать убедительный опрос
                        • +9
                        • 15.9k
                        • 4
                      • Мобильный HTML5

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



                          Книга доступна в печатном и электронном формате. При покупке виртуальной книги вы получите два формата — PDF и ePub. В течение недели действует скидка 10% на разделы HTML и XHTML. Языки разметки web-страниц и Бестселлеры O'Reilly. Код купона — e46e73d.

                          Немного информации о книге.
                          Читать дальше →
                          • +11
                          • 10.5k
                          • 4
                        • Так ли приватен HTTPS?

                            Недавно в одном из прочитанных блогов увидел интересное утверждение (в моем вольном переводе):
                            Думаете, когда вы работаете с онлайн-банкингом из офиса, у вас сквозное безопасное соединение? Подумайте еще разок.

                            Достаточно, чтобы заинтересовать и немного покопать. «И шо ви таки думаете? (с)» В «насквозь безопасное» HTTPS соединение можно врезать как минимум двух посредников (Man In The Middle). Правда, оба должны быть Trusted (TMITM), так что не надо сильно паниковать. Пока что.
                            Подробности
                          • В чем нарисовать MindMap? Детальный обзор 6 самых популярных программ для рисования mindmap

                            Структура обзора


                            1. Вступление;
                            2. Сравнение основных 5-х программ по популярности, цене, совместимости, наличию на разных платформах;
                            3. Подробное описание функционала и особенностей 5-х основных программ.

                            Введение


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

                            Целью этой статьи не является пропаганда mindmapping. У древовидного представления данных есть свои плюсы и свои ограничения. Обсуждение уже было в комментариях к публикации "+10 к интеллекту".

                            Эта публикация для тех, кто хочет выбрать удобный инструмент и узнать какие-то новые фишки, о которых еще не знал.
                            Читать дальше →