• Уязвимость на Habrahabr или как украсть инвайт

      Все началось с попытки получить инвайт на хабр белыми методами, но, увы получилось иначе и инвайт достался совсем нечестным способом, об этой истории я и хотел бы поведать храброчитателям.
      Читать дальше →
    • Чеклист вопросов к проекту: старт, реализация, финал — и 10 советов «в полёт»


        Проверьте свой проект: вы летите или думаете, что летите?

        Ниже вопросы, которые стоит задавать себе на старте проекта и время от времени на его протяжении.

        Контрольные вопросы на старте проекта:


        1. Что конкретно нужно сделать на текущем этапе? В целом? Есть ли чётко определённые цели каждого этапа? Как вы определите, что цели достигнуты? Соответствует ли текущий статус заявленным планам и целям или их необходимо корректировать?
        2. Реалистичны ли эти цели?
        3. Что случится, если цели не будут достигнуты в срок? Каков план действий?
        4. Насколько этот проект значим? Например, зависит ли от него место вашей компании на рынке?
        5. Какую выгоду вам, обществу и инвесторам принесёт проект?
        6. Достаточно ли хорошо спланирован проект? Все ли в вашей команде понимают пункты плана одинаково?
        7. Нужны ли внешние эксперты, например, юристы?
        8. Есть ли у команды опыт работы вместе? Кто будет координировать команду? Важно ли для проекта работать именно вместе — или возможен труд одиночек? Отвечает ли каждый член команды за работу всех остальных?
        9. Можно ли сократить размер команды? Если нет, то почему? Если да, то почему это не сделано?
        10. Как вы будете компенсировать форс-мажоры с персоналом, например, что случится, если ваш ведущий разработчик сломает руку?
        Читать дальше →
        • +39
        • 19,5k
        • 8
      • Обзор алгоритмов кластеризации данных

          Приветствую!

          В своей дипломной работе я проводил обзор и сравнительный анализ алгоритмов кластеризации данных. Подумал, что уже собранный и проработанный материал может оказаться кому-то интересен и полезен.
          О том, что такое кластеризация, рассказал sashaeve в статье «Кластеризация: алгоритмы k-means и c-means». Я частично повторю слова Александра, частично дополню. Также в конце этой статьи интересующиеся могут почитать материалы по ссылкам в списке литературы.

          Так же я постарался привести сухой «дипломный» стиль изложения к более публицистическому.
          Читать дальше →
        • Кластеризация: алгоритмы k-means и c-means

            Добрый день!

            Как и обещал, продолжаю серию публикаций о технологии Data Mining. Сегодня хочу рассказать о двух алгоритмах кластеризации (k-means и c-means), описать преимущества и недостатки, дать некоторые рекомендации по их использованию. Итак, поехали…

            Кластеризация — это разделение множества входных векторов на группы (кластеры) по степени «схожести» друг на друга.

            Кластеризация в Data Mining приобретает ценность тогда, когда она выступает одним из этапов анализа данных, построения законченного аналитического решения. Аналитику часто легче выделить группы схожих объектов, изучить их особенности и построить для каждой группы отдельную модель, чем создавать одну общую модель для всех данных. Таким приемом постоянно пользуются в маркетинге, выделяя группы клиентов, покупателей, товаров и разрабатывая для каждой из них отдельную стратегию (Википедия).

            Читать дальше →
            • +5
            • 60,9k
            • 9
          • Введение в F#, или полезное о бесполезном

            Вступление



            А зачем оно мне?

            image

            А почему бы и нет? К примеру, для общего развития, или просто для интереса, а впоследствии, может быть, для того, чтобы убедиться, что F# — не просто язык для ознакомления.
            Читать дальше →
          • Пишем LR(0)-анализатор. Простыми словами о сложном

            Введение



            Добрый день.
            Не нашел простого и внятного описания данного алгоритма на русском языке. Решил восполнить сей пробел. Прежде всего что это такое? LR(0)-анализатор в первую очередь это синтаксический анализатор. Цель синтаксического анализатора обработать входной поток лексем(базовые элементы языка, которые производит лексический анализатор на основе входного потока символов, примеры лексем — число, запятая, символ) и сопоставить его с описанием языка заданного в определенном формате. Сопоставление заключается в построении определенной структуры данных, чаще всего — дерева. Дальше эта структура пойдет на следующий этап — семантический анализ, где уже компилятор пытается понять смысл, заключенный в дереве.

            Существует 2 класса синтаксических анализаторов — восходящие анализаторы и нисходящие. Первые строят дерево начиная с листьев, которые являются входными лексемами, вторые соответственно наоборот начинают с корня дерева. Собственно LR и значит то, что анализатор будет читать поток слева направо (L — 'Left') и строить дерево снизу вверх (пусть не смущает буква R, которая значит Right, объяснения даны чуть ниже). Индекс 0 обозначает то что мы не предпросматриваем следующие лексемы, а работаем только с текущей. Какие же плюсы даёт нам выбор этого типа анализаторов?
            • Он быстр.
            • Покрывает множество языков. То есть если вы придумали язык и описали его, то с большой долей вероятности LR-анализатор его сможет обработать.
            • Синтаксические ошибки обнаруживаются так быстро как это возможно. Сразу же как встречается символ, который не соответствует предыдущему входному потоку, мы можем вывести ошибку об этом.

            Есть и недостатки:
            • Относительная сложность построения.
            • Можно вогнать анализатор в ступор неоднозначностью описания языка.


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