• Как я выиграл суд у Макхоста

                Надо бить суку! Обязательно надо бить суку © А.Н.Стругацкий
                Настоящих буйных мало – вот и нету вожаков © В.С.Высоцкий

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

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

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

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

        Знаете, люблю я книжки про всякие интересные алгоритмы, и вот недавно попалась еще одна такая книжка.

        Книга «Программируем коллективный разум» в основном посвящена алгоритмам классификации и кластеризации, хотя есть главы, посвященные другим темам вроде создания собственного поисковика, генетическим алгоритмам и генетическому программированию. Почти все описанные алгоритмы применяются в духе Web 2.0, используя анализ поведения пользователей на разных сайтах, которые предоставляют свой API. Но что особенно приятно удивило, так это то, что все примеры написаны на языке Python.


        Вот какие алгоритмы описываются в книге:


        • Коллаборативная фильтрация. Или, говоря человечески языком, алгоритмы, которые могут рекомендовать вам какие-то покупки, сайты или музыку в зависимости от оценок, которые вы поставили другим подобным вещам. По таким алгоритмам работает навязывание покупок в интернет-магазинах или подбор музыки на last.fm. В конце главы приводится пример, который будет рекомендовать вам ссылки из сервиса del.icio.us.
        • Алгоритмы группировки (кластеризации). Создаваемый пример анализирует RSS-каналы блогов и пытается их автоматически разделить на группы в виде дерева в зависимости от частоты слов, которые попадаются в блоге. Заодно Сегаран рассказывает как можно сделать так, чтобы названия блогов расположились на плоскости кучками в зависимости от их близости в плане рассматриваемых тем.
        • Отдельная глава посвящена построению поисковиков – созданию паука и, самое главное, рассматриваются алгоритмы ранжирования ссылок, в том числе и с учетом ссылок страниц друг на друга, создавая, таким образом, аналог Google PageRank. Еще интересно, что в этой же главе есть пример, где для выдачи наиболее релевантных ссылок используется нейронная сеть, которая обучается по мере того как пользователь щелкает на понравившиеся ему ссылки.

        Читать дальше →
      • Python: советы, уловки, хаки (часть 1)

        • Перевод
        Предлагаю читателям «Хабрахабра» перевод статьи «Python Tips, Tricks, and Hacks». Статья будет полезна на начальном и среднем этапах изучения Python.

        Хотите писать более лаконичный и читаемый код? Вы хотите уместить как можно больше смысла в одно выражение? Считаете, что прочитать о нескольких уловках лучше, чем провести остаток жизни за чтением документации? Вы обратились по адресу. Мы начнем с маленьких уловок, которые вы уже могли встретить, если немного работали с Python. Но я обещаю, что ближе к концу статьи вас ожидает больше безумных вещей.

        Содержание

        1. Маленькие уловки. Четыре типа кавычек. Правдивость различных объектов. Проверка на вхождение подстроки. Красивый вывод списка. Целочисленное деление и деление с плавающей точкой. Лямбда-функции.
        2. Списки. Генераторы списков и выражения-генераторы.
        Читать дальше →
      • WebSockets — полноценный асинхронный веб

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

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

          Заинтриговал? Давайте посмотрим подробнее
        • Сдача сессии по-английски

            Так получилось, что мне выдалась возможность поучиться в магистратуре в университете City University London. За полгода, которые уже прошли, я увидел много нового, в том числе то, как устроена местная система образования, и успел её оценить.

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

            Так как сейчас у многих читателей Хабра сессия, я решил, что пост на эту тему мог бы быть кстати и хотел бы рассказать о том, каким образом в одном из ВУЗов Лондона проводятся экзамены, и как выставляются оценки за пройденные предметы.
            Читать дальше →