• Топ-10 data mining-алгоритмов простым языком

    • Translation


    Примечание переводчика: Мы довольно часто пишем об алгоритмической торговле (вот, например, список литературы по этой теме и соответствующие аналитические материалы) и API для создания торговых роботов, сегодня же речь пойдет непосредственно об алгоритмах, которые можно использовать для анализа различных данных (в том числе на финансовом рынке). Материал является адаптированным переводом статьи американского раработчика и аналитика Рэя Ли.

    Сегодня я постараюсь объяснить простыми словами принципы работы 10 самых эффективных data mining-алгоритмов, которые описаны в этом докладе.

    Когда вы узнаете, что они собой представляют, как работают, что делают и где применяются, я надеюсь, что вы используете эту статью в качестве отправной точки для дальнейшего изучения принципов data mining.
    Читать дальше →
    • +43
    • 119k
    • 8
  • «Правильное» тестовое задание для соискателя-программиста

      Занимаясь одбором кандидатов на вакансию программиста, столкнулся с проблемой — подобрать хорошее тестовое задание. Цель — увидеть, программист ли передо мной или человек, хорошо знающий фреймворк\язык\технллогию. Поясню — программист, это человек, которые может решить нетривиальную проблему. Сделать сайт-блог, даже e-commerce сейчас является тривиальной проблемой, на это способен любой junior. Natural-born программистдумает по-другому.

      под катом образец тестового задания

      Читать дальше →
    • Конфигурирование конечных точек WCF

        Приветствую Вас, уважаемые любители WCF.

        Конфигурация конечных точек WCF с самого начала внедрения технологии в качестве абстракции от транспортного уровня при взаимодействии подсистем начала вызывать у пользователей – программистов, а затем и пользователей от тестирования, деплоймента и администрирования бурю эмоций. Особенно конфигурация WCF отличилась на фоне конфигураций широко используемых технологий .NET Remoting и ASP.NET WebService'ов.
        Всем нам известно, что, чтобы сконфигурировать как клиентские, так и серверные конечные точки WCF, необходимо добавить в конфигурационный файл приложения группу секций system.ServiceModel. Эта группа секций содержит четыре важных нам секции. Behaviors и Bindings содержат конфигурацию протоколов взаимодействия, а Servers и Client конфигурацию непосредственно конечных точек.
        По опыту, для приложения, выставляющего десяток сервисов по трем протоколам, эта группа секций будет состоять из 300 строк. Само по себе количество строк в конфигурации не является проблемой. Но только лишь до тех пор пока речь не идет о приложении, состоящем из нескольких подсистем (часто масштабируемых) и «живущем» на нескольких серверах, до тех пор пока не настает пора деплоить, а значит и конфигурировать приложение, а так же до тех пор пока настройки протоколов не начинают меняться.
        Читать дальше →
      • MS Chart: пример Perfomance Counters c 3D вращением

          На одной из встреч User Group я рассказывал доклад «Создание диаграмм при помощи MS Chart», для которого сделал пример WinForms приложения performance counter, которое выводит информацию о 3х показателях системы в реальном времени: загруженность процессора, использование физической и виртуальной памяти, и еще имеет возможность 3D вращения. Не знаю, пригодиться ли кому-нибудь данный пример, но все же решил рассказать о нем.

          Сначала пару слов о MS Chart: это дополнение к Microsoft .NET Framework 3.5 SP1, которое позволяет создавать диаграммы в приложениях WinForms(что дает нам и WPF) и WebForms. В будущем это будет частью Microsoft .NET Framework 4. MS Chart был создан не с нуля, а позаимствован из библиотеки Dundas (источник).

          Для того чтобы начать работу с MS Chart – необходимо установить компоненты MS Chart Controls. Скачать их можно по следующим ссылкам:
          Хочется еще сказать, что примеры намного богаче, чем документация по данным контролам, потому лучше сразу смотреть примеры, чем читать саму документацию.

          Читать дальше →
        • Модернизация портала «МегаФона»



            Здравствуйте, меня зовут Юрий Михайлов. В компании «МегаФон» я занимаю должность директора «Центра компетенций Онлайн». Сегодня я хотел бы рассказать о том, как мы переделали портал www.megafon.ru и создали мобильное приложение «МегаФон Личный кабинет».

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

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

            Ниже представлен рассказ о том, какие задачи мы перед собой поставили и что уже сделали.
            Читать дальше →
          • [ libGDX ] Пишем полноценную игру под Android. Часть 1

            Здравствуйте! Я решил попробовать себя на поприще game-dev'а и заодно рассказать и показать как это было. Вторая часть здесь.

            Игра представляет собой экран, на котором расположены созвездия. Каждая звезда этого созвездия имеет свой цвет (нота). Например, ноту «До» обычно представляют красным цветом, а «Ми» — желтым. Вот что получится в итоге:

            image

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

            Писать будем, используя фреймворк libGDX. Мне он больше всех понравился, как новичку в этом деле. Да и информации по нему я нашел больше. Итак, приступим.
            Читать дальше →
          • Справедливые ожидания вашего технического директора

            • Translation
            Я – ваш новый технический директор.

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

            Профессионалы ли мы?

            Это главный вопрос. Я расскажу, чего я от вас жду, и это определит ответ на вопрос, профессионалы ли мы.
            Читать дальше →
          • Бесплатный курс по работе с Sublime Text 2

            • Tutorial
            На Tuts+ опубликован новый курс учебных скринкастов "Perfect workflow in Sublime Text". Он посвящён работе со стремительно набирающим популярность кроссплатформенным текстовым редактором Sublime Text 2. Автор курса — Джеффри Вэй, разработчик и инструктор в компании Envato, автор многих учебных пособий на Tuts+, статей и книг — признаётся, что помешан на текстовых редакторах. Он перепробовал практически всё, от TextMate до Vim, но с тех пор, как освоил Sublime Text, считает его самым лучшим в мире редактором кода.
            Читать дальше →
          • Материалы онлайн конференции .NET разработчиков

              4-я .NETconf прошла 28 апреля 2012 и первый раз была в онлайн формате. Это позволило принять участие разработчикам, которые не могли прилететь на 3 предыдущие встречи. За время трансляции 7-ми выступлений в конференции приняли активное участие 508 человек.

              Ниже выложены 6 докладов и один мастер-класс с видео, слайдами и ссылками на исходный код.

              Читать дальше →
            • Методология Разработки ПО

              Попросили меня на фирме выступить с докладом и рассказать о методологии по которой мы работаем, разрабатываем наше приложение. Я сразу же сказал — «У нас Scrum», и сел составлять презентацию. Но я остановился на первом же слайде, и вот почему.

              Agile содержит в себе множество методологий — XP, Scrum, Lean, Kanban, ScrumBut (СкрамНО). Сев разбирать методики, я понял, что не могу сказать, что моя команда работает по какой-то одной из них. В целом наш рабочий процесс можно изобразить так:

              image
              Читать дальше →
            • Форд, Тойота и морские свинки

                — Какое отношение имеет морская свинка к морю?
                — Примерно такое же, как утконос к проектированию дирижаблей.


                Введение.


                Я имею обыкновение во время прогулок прокручивать информацию из нескольких источников, сопоставляя куски. Одна из любопытных находок – почти полное соответствие статистических наблюдений Демарко и Листера в «Peopleware» и теоретических выкладок Голдратта в «Критической цепи».

                Осенью 2011 я крутил в голове:
                [1] «Стоя на плечах гигантов» Эли М. Голдратт © Eliyahu M. Goldratt, 2008
                [2] «Производственный менеджмент: управление потоком» Одед Коуэн, Елена Федурко
                [3] «История одной доски» (http://cartmendum.livejournal.com/tag/theboard).

                Далее хотелось бы написать: «Как вдруг…», — но это будет неправдой. Это случилось не вдруг. Мне понадобилось пару недель, но, в конце концов, в голове сложилась достаточно цельная картинка.

                За что именно я зацепился:
                • Таичи Оно (Öno Taiichi) не понимал, почему его система работает.
                • Существует несколько разных типов производственных потоков – V, A, T, I. Каждый тип потока ставит особые задачи.
                • Неудачи внедрения доски Максима Дорофеева в некоторых подразделениях
                • Ряд компаний не смог внедрить систему Тойота, несмотря на все приложенные усилия.
                • Система Тойота и система Форда основывается на одинаковых принципах, но прикладные решения ограничены определенными типами производства.
                Читать дальше →
              • Защита и взлом БД на примере программы «Каталог запчастей»

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

                  Итак. Есть программа с папкой DATA, данные из которой очень хочется получить.

                  Есть несколько вариантов.
                  • Превый вариант. Можно пойти сложным путем, снимая скриншоты и экспортируя заявки по одной в excel. Но это долгий способ и неинтересный.
                  • Второй вариант. Подумать и раскодировать данные.

                  Для начала нужно узнать в каком формате хранятся данные в программе. Можно воспользоваться бесплатной программой TrID.
                  Читать дальше →
                • Преимущества безблокировочного алгоритма — не только и не столько в производительности

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

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

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

                  Но преимущества безблокировочной синхронизации не сводятся лишь к улучшенной, по сравнению с привычными примитивами блокировки,  производительности. (Далее в этом посте мы увидим, как можно получить эти неочевидные преимущества, не переходя на полностью безблокировочную синхронизацию.)
                  Читать дальше →
                • GTD на Android

                    На Хабре достаточно много информации и о GTD в целом, и о реальном использовании этой методики в жизни, но практически (почти совсем) отсутствует информация об инструментах, помогающих “to Get Things Done”. Я решил немного исправить ситуацию.
                    За основу я взял GTD по Василию Кислому, как наименее скучное на мой взгляд изложение методики. Это всего лишь описание того, как пользуюсь системой я. Вы можете считать это бредом, можете что-то перенять полезное для себя, а для кого-то это будет просто новьё.
                    Читать дальше →
                  • Обзор C# библиотек для работы с PDF

                      topic image
                      На написание данной статьи меня подтолкнул топик HTML в PDF, правда по причине того, что он посвящен языку php, лично мне он был мало полезен, т.к. весь опыт работы с php у меня сводился в переводе нескольких скриптов на C#, поэтому я решил сделать небольшой обзор того, что доступно для работы с pdf по средствам языка C#.

                      Ко мне в список попало 7 библиотек, о которых я скажу несколько слов, а для самой популярной (судя по ответам на stackoverflow), я напишу, как с помощью неё сделать простейший документ. Сразу скажу, что это iTextSharp и работа с ней будет описана в конце статьи.
                      Читать дальше →
                    • Работа с прогресс диалогами

                      У начинающих работать с андроидом возникают вопросы по поводу создания прогресс диалогов. Моя заметка возможно поможет им.

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

                      вашаАктивити.runOnUiThread(new Runnable() {
                          @Override
                          public void run() {
                              // Изменение видимой части
                          }
                      });


                      или для View:

                      вашеВию.post(new Runnable() {
                          @Override
                          public void run() {
                              // Изменение видимой части
                          }
                      });


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

                      Читать дальше →
                      • +36
                      • 3.8k
                      • 3
                    • Хабраиндекс для статей по программированию под Android

                        С чего начать?


                        Пишем своё первое приложение на Android
                        Пишем первое приложение для Android
                        Создаем файловый менеджер
                        Основы программирования под Android на примере игры Судоку
                        Создание приложения в стиле Android
                        Спокойной ночи!

                        Читать дальше →
                        • +188
                        • 93.4k
                        • 43
                      • PropertyGrid в Visual Studio: отображение полей, связанных с коллекциями объектов

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

                          image

                          2. Отображение поля, связанного с коллекцией объектов, вызывающего редактор коллекции.

                          image

                          В качестве примера я взял задачу для реализации управления информацией о сотруднике, которую реализует класс Employee.Класс содержит два свойства. Первое — свойство типа JobTitle (должность сотрудника для выпадающего списка), второе – свойство типа JobTitleCollection (коллекция должностей сотрудников для редактора коллекции). Задачей является отображение объекта класса Employee в PropertyGrid так, как показано на двух рисунках в начале статьи, а именно:1. Отобразить поле, в котором пользователь сможет выбрать одну из должностей сотрудника с помощью выпадающего списка как в элементе ComboBox.2. Отобразить поле, которое позволит вызвать редактор связанной коллекции должностей, а после завершения изменения коллекции отобразить должности в PropertyGrid в виде списка.
                          Рассмотрим подробнее.
                          Читать дальше →
                          • +4
                          • 14.7k
                          • 7