• О шрифтовых способах выделения (часть 1)

      Всегда надо помнить, что любое выделение в тексте тревожит равномерность набора и тем самым уменьшает комфорт прочтения и как следствие, восприятие информации. Поэтому во всех неоправданных случаях от выделения следует отказаться. Любое выделение, также как и его степень, должно быть логически обоснованым.
      В первой части обзора будут представлены самые популярные способы выделения, а также возможные ошибки их применения и рекомендации, как этого избежать.
      Читать дальше →
    • Основы Linux от основателя Gentoo. Часть 2 (5/5): Модули ядра

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



      Навигация по основам Linux от основателя Gentoo:

      Часть I
      1. BASH: основы навигации (вступление)
      2. Управление файлами и директориями
      3. Ссылки, а также удаление файлов и директорий
      4. Glob-подстановки (итоги и ссылки)
      Часть II
      1. Регулярные выражения (вступление)
      2. Назначения папок, поиск файлов
      3. Управление процессами
      4. Обработка текста и перенаправления
      5. Модули ядра (итоги и ссылки)
      Часть III: 1, 2, 3, 4


      Читать дальше →
    • Web Dogma. 10 правил создания сайтов для пользователей

        image Сегодня мне случилось побывать на лекции Эрика Райса (Eric Reiss), специалиста по вопросам информационной архитектуры, юзабилити и user experience.

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

        Лекция была посвящена набору правил (Эрик называет их догмой), следование которым позволит создавать сайты для пользователей, свободные от диктата технологий и моды.

        Вот эти 10 правил.
        Читать дальше →
      • НАЧИНАЙ с технологиями Google

          Вы когда-нибудь мечтали о создании собственного бизнеса? Если нет, то спокойно пропустите этот пост. Если же подобные мысли нередко вас посещают, советую обратить внимание на ближайшую рабочую сессию Nachinai.com, которая пройдет с 19 по 21 ноября в Москве.

          image

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

          Итак, что нужно сделать?
          Читать дальше →
        • Вытягивание из Директа всей информации о кампаниях конкурентов

          В продолжение статьи Евгения Ческидова «Яндекс. Директ. Анализируем конкурентное окружение» я хочу показать, как при помощи не очень сложных расчетов и API Яндекса вытащить из Директа буквально всю информацию о рекламных кампаниях конкурентов. Сразу скажу, что идея на практике еще не проверялась, сам факт наличия всей информации и, соответственно, возможности этого расчета был показан Ческидовым только вчера, а алгоритм родился буквально сейчас. Но математически вроде бы всё сходится. Осторожно, под катом много формул.
          Читать дальше →
        • Кейс «Проектирование веб-сервиса бронирования билетов». Бизнес-анализ. Описание существующих бизнес-процессов (AS-IS)

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

            III. Описание процесса в графической форме


            В виде диаграмм бизнес-процесс можно описывать с помощью различных нотаций: ARISVAD и EPC, IDEF0, BPMN и др. Нотаций много, у каждой есть свои достоинства и недостатки, в рамках этой статьи эта тема не затрагивается.

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


            Посещение кинотеатра без предварительного бронирования билетов (в нотации VAD)


            Читать дальше →
          • «От хорошего к великому» — книга, которую обязательно стоит прочесть. (в цитатах) — ЧАСТЬ 1

              imageМоя прошлая статья «Обнаженный бизнес» Ричарда Брэнсона (в цитатах), похоже многим была интересна. Что же, не будем останавливаться?

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

              Я прочел эту книгу 2 раза. Второй раз (теперь, как всегда) — с маркером, выделяя цитаты. Рад ими поделиться. Уверен, тем кто знаком с книгой, будет интересно и полезно прочесть эти мысли еще раз. А те, кто книгу еще не читал, скорее всего убедятся в том, что это обязательно стоит сделать.

              ***

              Мы тщательно изучили и просеяли компании, которые входили в список Fortune 500 c 1965 по 1999 год. И определили те компании, которым удалось осуществить переход от хороших результатов к выдающимся и сохранять эти высокие результаты в течение, по крайней мере, 15 лет. Затем мы проанализировали те факторы, которые позволили это сделать.

              Читать дальше →
            • Почему я работаю на почасовой оплате

              • Translation
              Перевод статьи молодого греческого программиста «Why I bill hourly»

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

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

              Клиент: Вот участок, на котором мы будем строиться. Вот наброски того, что мы хотим построить. Можете назвать точную стоимость постройки?

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

              Читать дальше →
            • Книга The art of Unit Testing with Examples in .NET

                osherove_coverПервый раз достаточно близко я познакомился с тестированием лет 5-6 назад, как раз начало моей карьеры. Тогда, я помню, мне рассказывали про покрытие кода тестами. Причем никаких Unit тестов меня не просили писать, просто говорили: “вот видишь if с тремя условиями, который ты написал, ты должен проверить все эти три условия”. Подразумевалось, что я, после того как напишу код, должен его проанализировать, и полностью протестировать обычным проходом по интерфейсу приложения. Как вам? Со временем знания в тестировании у меня немного выросли, я немного научился писать тесты. Я до сих пор не видел и не участвовал ни в одном живом проекте, написанным при помощи Test Driven Development (TDD) подхода. Основа моих знаний была в подглядывании того, как делают это коллеги в предыдущей моей конторе, чтении статей (например, у Алесандра Бындю была отличная статья “TDD для начинающих. Ответы на популярные вопросы”), просмотра пару сринкастов. Я решил покончить с безграмотностью и проникнуться темой, для этого я сел за прочтение книги The art of Unit Testing with Examples in .NET. Притом, что в текущей конторе? можно сказать, что тесты пишу только я для своего кода. Нужно быть образцом.
                Читать дальше →
              • Про бесполезность длительного проектирования

                  image
                  Порядка 95% компаний, а может даже больше, используют классическую схему разработки: обязательное проектирование, разработка, тестирование, внедрение. Оценить, хорошо это или плохо, можно только попробовав что-то другое. Я попробовал, и эта статья будет сугубо про мой практический опыт.

                  Сказка про то, как мы биллинг проектировали


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

                    Хочу поделиться своим опытом приобретения прямого московского номера с VoIP-клиентом.
                    Помню, когда-то сам искал здесь информацию об этом, но ничего подобного не нашёл.

                    Дело происходило этим летом, выбирал между услугами Манго и Роснет.
                    Остальные фирмы показались несерьёзными или просто были с высокими ценами.
                    Читать дальше →
                  • Startup Weekend в Питере

                      29, 30 и 31 октября Startup Weekend пройдет в Санкт-Петербурге.
                      «Главстарт» провел 2 «уикенда» в Москве и решил пойти дальше — к проектам из Северо-Западного региона.
                      image
                      В этот раз результатом Startup Weekend'a будет не только работа над прототипом, возможность найти ментора, но еще и ответ на 5 главных вопросов проекта:
                      • Описание проекта. (часто за время работы на уикенде и после экспертных консультаций что-то меняется, дополняется и изменяется даже в самом описании)
                      • Бизнес-план.
                      • План развития.
                      • Маркетинговый план.
                      • Каналы сбыта.
                      Эти вопросы схожи с пакетом из 5 документов, которые хотят видеть инвесторы. Их подготовка занимает довольно много времени, но на «уикенде» вы будете работать не одни — вам будут активно помогать эксперты «Главстарта» во главе с Аркадием Морейнисом.
                      Если вы хотите принять участие вместе со своей идеей зарегистрируйте ее на нашем сайте.
                      Место проведения: СПбГУТ им.Бонч-Бруевича пр.Большевиков, 22. Встретимся в Питере!
                    • Рабочий день за 3 часа. Инструменты GTD

                        Начало здесь.

                        Накопители



                        Прежде чем описывать инструменты, необходимо показать карту информации.

                        1. Вне человека — хаотичная.
                        2. В накопителе — хаотичная, но собранная в одном месте.
                        3. В человеке, его записях, файлах — отсортированная.


                        Чтобы легче понять, как информация вне человека может быть хаотичной (ведь она поступает по упорядоченным каналам: почта, телефон и т.д.) представьте: Вы сидите за столом, а вокруг толпой стоят люди, которые что-то требуют от Вас, толкаются между собой за право получить от Вас ответ раньше другого… Крик, шум, суета.

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

                        Многие знают, что за такими запросами стоит не действительно срочная потребность, а сумбурность мысли. Человек не всегда может осознать, к какому же сроку ему нужны те или иные данные? Зачастую, они кричат «срочно!» только потому что им хочется , а не потому что они действительно нуждаются.

                        Чтобы справиться с хаосом, Дэвидом Алленом был придуман простой инструмент — накопитель.
                        Читать дальше →
                      • Метод динамического программирования для подсчёта числа циклов на прямоугольной решетке

                          Эта статья адресована тем читателям, кто занимается программированием алгоритмов, и особенно интересуется труднорешаемыми задачами. Тем хабралюдям, которые против размещения алгоритмов на Хабре следует немедленно прекратить читать данную работу.

                          В статье я покажу как использовать метод динамического программирования по профилю для решения задачи о подсчёте количества гамильтоновых циклов на прямоугольной решётке размером m на n. На Хабре есть несколько статей, посвященных теме динамического программирования (например, эта), но нигде не идёт речь о более сложном применении метода. Данный подход также можно называть методом матрицы переноса, кому как нравится.

                          Предупреждаю, что статья содержит около 2000 слов (8 страниц А4), но дорогу осилит идущий.

                          Читать дальше →
                        • Twitter: 1 млрд запросов в сутки и новый поисковик

                            На данный момент нагрузка на серверы Twitter выросла до 1000 TPS (твитов в секунду) и 12000 QPS (запросов в секунду) — более 1 млрд запросов в сутки. Текущая инфраструктура ещё выдерживает, но чтобы создать запас на несколько лет вперёд, компания приняла решение обновить бэкенд для поисковой системы. «Если мы сработали хорошо, то вы не должны были ничего заметить за последние недели», — сообщается в блоге разработчиков Twitter.

                            До недавнего времени поисковый бэкенд Twitter был основан на старой SQL-системе от компании Summize. Её купили в июле 2008 года как раз для этих целей, а также взяли пять из шести разработчиков. Необходимость апгрейда Twitter стала понятна сразу после презентации iPhone 3G, тогда и началось сотрудничество с Summize. Но сейчас пришло время снова обновляться.

                            Примерно шесть месяцев назад было принято решение разработать новую, современную поисковую архитектуру, основанную на эффективном инвертированном индексе вместо реляционной базы данных. Поскольку Twitter любит open source, то в качестве начальной точки решения выбрали поисковую библиотеку Apache Lucene, написанную на Java.
                            Читать дальше →
                          • Penisland, или как написать спеллчекер

                              Есть хорошая статья Питера Норвига, в которой он рассказывает как написать спеллчекер в 20 строк кода. В этой статье он показывает как поисковые системы могут исправлять ошибки в запросах. И делает это довольно элегантно. Однако, у его подхода есть два серьезных недостатка. Во-первых, исправление более трех ошибок требует больших ресурсов. А гугл, кстати, неплохо справляется и с четырьмя ошибками. Во-вторых, нет возможности проверки связного текста.



                              Итак, хочется исправить эти проблемы. А именно, написать корректор коротких фраз или запросов, который:
                              • умел бы выявлять три (и более) ошибки в запросе;
                              • умел бы проверять «разорванные» или «слипшиеся» фразы, например expertsexchange — experts_exchange, ma na ger — manager
                              • не требовал много кода для реализации
                              • мог бы достраиваться до исправления ошибок на других языках и других типов" ошибок

                              Остальное — под катом.
                              Читать дальше →
                            • Алгоритм роя частиц

                                Введение


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


                                Читать дальше →
                              • Почему так сложно сделать хороший пользовательский интерфейс?

                                • Translation
                                Перевод статьи Марка Миллера: Why is Great UI so hard to achieve?

                                Сегодня утром, когда я заправлял свою машину бензином, мне в глаза неожиданно бросилось еще одно доказательство того, что большинство интерфейсов пользователя не удовлетворяют трём основным показателям хорошего интерфейса: ясности (clarity), эффективности (efficiency) и открытости (discoverability).

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

                                Возвращаясь к кнопкам, вот часть того интерфейса, который я наблюдал сегодня на заправке:


                                Читать дальше →
                              • Муравьиные алгоритмы

                                  Предисловие


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

                                  Введение


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

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

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

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

                                    А как сайт выглядит в поиске? Захочет ли пользователь вообще на него перейти? Очевидно, что на решение пользователя может повлиять в том числе внешний вид сниппета.

                                    Читать дальше →