• Ключевые метрики для SaaS-сервисов на каждый этап развития

      image

      Перевод статьи Ларса Лофгрена — продукт-менеджера в KISSmetrics. Ему нравится помогать молодым SaaS-сервисам. Он регулярно пишет на блог KISSmetrics и в свой личный блог. В статье куча полезной информации. Команда сервиса по автоматизации современного интернет-маркетинга Carrot Quest с удовольствием перевела ее для вас.
      Читать дальше →
    • Налоги — неизбежны как смерть

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

        О чем следует подумать
      • Reverse tethering (получаем интернет на android с ПК linux)

        Так как 3g интернет в месте использования телефона у меня медленный, то решено было попытаться использовать интернет от компьютера, на телефоне. Я был удивлен тем, что это стандартными средствами невозможно. Решил сделать нестандартными.
        Читать дальше →
      • Эффективный счёт в уме или разминка для мозга

        Эта статья навеяна топиком «Как и насколько быстро вы считаете в уме на элементарном уровне?» и призвана распространить приёмы С.А. Рачинского для устного счёта.
        Рачинский был замечательным педагогом, преподававшим в сельских школах в XIX веке и показавшим на собственном опыте, что развить навык быстрого устного счёта можно. Для его учеников не было особой проблемой посчитать подобный пример в уме:

        image

        Далее рассмотрим несколько трюков для ускорения умственного счёта...
      • Частный космос теперь и в России

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

          На Хабре с интересом следят за деятельностью частных космических компаний: SpaceX, Virgin Galactic и других. Прогресс не стоит на месте, и вот, частная космонавтика добралась и до России. Представляю отечественного первенца, который полон решимости сделать прибыльным освоение космоса: «Даурия Аэроспейс».

          image

          Хабру нравятся публикации о космосе, но традиционно отношение к ним как к «котикам», т.е. к тому, что приятно глазу, радует душу, но не имеет практического применения в жизни. Теперь такое время уходит в прошлое, и у «Даурии» есть предложения, которые могут быть интересны не только желающим сделать карьеру в космической отрасли, но и свободным разработчикам. Близится пора, когда космос сможет стать для Хабра не только интересным, но и прибыльным.
          Читать дальше →
        • Оптимизация сложных запросов MySQL

          Введение


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

          Прежде всего хотелось бы ограничить круг рассматриваемых проблем оптимизации «широкими» и большими таблицами. Скажем до 10m записей и размером до 20Gb, с большим количеством изменяемых запросов к ним. Если в вашей в таблице много миллионов записей, каждая размером по 100 байт, и пять несложных возможных запросов к ней — это статья не для Вас. NB: Рассматривается движок MySQL innodb/percona — в дальнейшем просто MySQL.
          Читать дальше →
        • В пень free-lance.ru!

            В связи с прочтением соседнего поста предлагаю перечислить список бирж, на которых можно найти альтернативу тому унылому говну, в которое превратился free-lance.ru, ибо терпеть планомерный геноцид я больше не намерен.
            Читать дальше →
          • Как работает yield

            • Translation
            На StackOverflow часто задают вопросы, подробно освещённые в документации. Ценность их в том, что на некоторые из них кто-нибудь даёт ответ, обладающий гораздо большей степенью ясности и наглядности, чем может себе позволить документация. Этот — один из них.

            Вот исходный вопрос:
            Как используется ключевое слово yield в Python? Что оно делает?

            Например, я пытаюсь понять этот код (**):
            def _get_child_candidates(self, distance, min_dist, max_dist):
                if self._leftchild and distance - max_dist < self._median:
                    yield self._leftchild
                if self._rightchild and distance + max_dist >= self._median:
                    yield self._rightchild
            

            Вызывается он так:
            result, candidates = list(), [self]
            while candidates:
                node = candidates.pop()
                distance = node._get_dist(obj)
                if distance <= max_dist and distance >= min_dist:
                    result.extend(node._values)
                    candidates.extend(node._get_child_candidates(distance, min_dist, max_dist))
                    return result
            


            Что происходит при вызове метода _get_child_candidates? Возвращается список, какой-то элемент? Вызывается ли он снова? Когда последующие вызовы прекращаются?

            ** Код принадлежит Jochen Schulz (jrschulz), который написал отличную Python-библиотеку для метрических пространств. Вот ссылка на исходники: http://well-adjusted.de/~jrschulz/mspace/

            Подробный и обстоятельный ответ
          • .phar — исполняемые PHP-архивы

              Данную статью я хочу посвятить одному интересному нововведению в PHP 5.2 (с версии 5.3 входит в стандартную поставку PHP) — PHAR.
              image
              PHAR — это утилита для создания исполняемых архивов в PHP, аналог JAR в Java.
              PHAR ползволяет упаковать много файлов в один, в результате чего Ваше приложение может работать с целой библиотекой, как с одним файлом.
              PHAR умеет создавать, читать, записывать и конвертировать такие форматы, как TAR, ZIP и, собственно, PHAR.
              Доступ к файлам в архиве осуществляется напрямую, без необходимости распаковки архива, через PHP Stream Wrapper, тоесть с файлами из архива работают все функции, которые поддерживают PHP Stream Wrapper.
              Читать дальше →
            • Развитие веб-продакшена в регионе. Взгляд на вопрос с точки зрения ТОП-студий рунета (часть 3)

                Это моя третья встреча с представителем ТОП-студии рунета на предмет интереса работы с регионами. Тема становится все более острой, а мнения оппонентов все более интересными и обоснованными. На этот раз я встретился с Михаилом Токовининым, руководителем компании QSOFT. Михаил рассказал о своем опыте работы с регионами и сделал несколько заявлений, которые заставляют задуматься.
                Читать дальше →
              • Основы языка программирования Python за 10 минут

                • Translation
                Python Logo

                На сайте Poromenos' Stuff была
                опубликована статья, в которой, в сжатой форме,
                рассказывают об основах языка Python. Я предлагаю вам перевод этой статьи. Перевод не дословный. Я постарался подробнее объяснить некоторые моменты, которые могут быть непонятны.

                Если вы собрались изучать язык Python, но не можете найти подходящего руководства, то эта
                статья вам очень пригодится! За короткое время, вы сможете познакомиться с
                основами языка Python. Хотя эта статья часто опирается
                на то, что вы уже имеете опыт программирования, но, я надеюсь, даже новичкам
                этот материал будет полезен. Внимательно прочитайте каждый параграф. В связи с
                сжатостью материала, некоторые темы рассмотрены поверхностно, но содержат весь
                необходимый метриал.


                Читать дальше →
              • «Мое дело» — подготовка документов для регистрации ИП

                  Регистрация ИП - бесплатно
                  Привет!

                  Представляем хабрасообществу новый сервис от онлайн-бухгалтерии "Мое дело".

                  Теперь все документы, необходимые для регистрации ИП, можно подготовить за 10 минут на условиях DonationWare. То есть абсолютно бесплатно, но если если все очень понравилось, то можно сказать спасибо.

                  Подробности и скриншоты под катом.
                  Читать дальше →
                • Многопроцессовые демоны на PHP

                    Зачем может понадобиться писать демоны на PHP?
                    • Выполнение трудоемких фоновых задач;
                    • выполнение задач, которые длятся больше, чем время ожидания при HTTP-запросе (30 секунд);
                    • выполнение задач на более высоком уровне доступа, чем серверный процесс (читай — под рутом).

                    Читать дальше →
                  • MongoDB — варим хороший кофе

                      Введение

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

                      Сегодня мы поставим MongoDB, ниже рассмотрим свежеиспеченный ХабраЛоггер и пошпионим за главной страницей Хабра в реальном времени.
                      Читать дальше →
                    • phpDaemon — фреймворк асинхронных приложений

                        Сегодня речь пойдет о phpDaemon — асинхронном модульном демоне-фреймворке, который берёт на себя обработку I/O (libevent) и другие низкоуровневые задачи, присущие демонам. С его помощью легко писать правильные сетевые приложения с блэкджеком и шлюхами.
                        Из коробки идут сервера FastCGI, HTTP, CGI, FlashPolicy, Telnet, WebSocket (!) — да-да тот самый волшебный пендаль новый протокол от Google. И клиенты mysql, memcached, mongodb… И многое другое, полный список под катом. Работать с сетью действительно просто. Программист средней руки может написать, к примеру, IRC-бота за считанные часы.
                        В качестве наглядного примера я реализовал вот этот чат на phpDaemon + WebSocket + MongoDB + jQuery. Он наглядно демонстрирует преимущества этой технологии: доставка сообщений мгновенна, накладные расходы при обмене данными минимальны, высока производительность, приложение масштабируется горизонтально. Исходники этого чата (в данный момент 17 кб). Прошу заметить, чат тестировался и работает в Chrome, FF, IE6+, Iron, Safari.
                        Читать дальше →
                      • WebSockets — полноценный асинхронный веб

                          Пару недель назад разработчики Google Chromium опубликовали новость о поддержке технологии WebSocket. В айтишном буржунете новость произвела эффект разорвавшейся бомбы. В тот же день различные очень известные айтишники опробовали новинку и оставили восторженные отзывы в своих блогах. Моментально разработчики самых разных серверов/библиотек/фреймворков (в их числе Apache, EventMachine, Twisted, MochiWeb и т.д.) объявили о том, что поддержка ВебСокетов будет реализована в их продуктах в ближайшее время.
                          Что же такого интересного сулит нам технология? На мой взгляд, WebSocket — это самое кардинальное расширение протокола HTTP с его появления. Это не финтифлюшки, это сдвиг  парадигмы HTTP. Изначально синхронный протокол, построенный по модели «запрос — ответ», становится полностью асинхронным и симметричным. Теперь уже нет клиента и сервера с фиксированными ролями, а есть два равноправных участника обмена данными. Каждый работает сам по себе, и когда надо отправляет данные другому. Отправил — и пошел дальше, ничего ждать не надо. Вторая сторона ответит, когда захочет — может не сразу, а может и вообще не ответит. Протокол дает полную свободу в обмене данными, вам решать как это использовать.

                          Я считаю, что веб сокеты придутся ко двору, если вы разрабатываете:
                          — веб-приложения с интенсивным обменом данными, требовательные к скорости обмена и каналу;
                          — приложения, следующие стандартам;
                          — «долгоиграющие» веб-приложения;
                          — комплексные приложения со множеством различных асинхронных блоков на странице;
                          — кросс-доменные приложения.

                          Заинтриговал? Давайте посмотрим подробнее
                        • Организуем релевантный поиск по разнородным данным с помощью Sphinx

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

                            Постановка задачи


                            В проекте есть на данный момент 2 зоны:
                            1. географическая зона, реализованная на базе Google Maps, которая отображает нанесенные пользователями на карту географические объекты (маркеры, маршруты и области);
                            2. информационная зона, которая представляет собой большой иерархически организованный каталог, содержащий информационные материалы.
                            Необходимо было решить задачу одновременного текстового поиска по 3-м типам объектов: географическим объектам, категориям информационной зоны и материалам информационной зоны — c возможностью фильтрации по дате публикации объектов и категориям, к которым они относятся.
                            Решаем задачу
                          • Делаем свой webfile

                              Отчего-то всегда хотел сделать свой сервис для загрузки файлов. Всевозможные slil/zalil не устраивали своей скоростью. ifolder — обилием рекламы. Пользовался не очень популярным (от этого он ни чуть хуже не становился) сервисом up.spbland.ru. Но это как-то не правильно. И тут я решил написать свой сервис. Не буду вдаваться в подробности и рутину, только концепция.
                              Читать дальше →