Как стать автором
Обновить
0
0

Пользователь

Отправить сообщение

Обзор наиболее интересных материалов по анализу данных и машинному обучению №2 (16 — 23 июня 2014)

Время на прочтение4 мин
Количество просмотров13K

В очередном обзоре наиболее интересных материалов, посвященных теме анализа данных и машинного обучения, достаточно большое внимание уделено популярному набору алгоритмов машинного обучения Deep Learning и его практическому применению. Несколько статей посвящено тому какие есть пути для собственного развития как специалиста по анализу данных и машинному обучению. Также несколько статей касаются такой темы как Data Engineering и рассматривают такие популярные продукты как Cassandra и Apache Kafka. Но начинается данный выпуск с обзора стартующих в ближайшее онлайн-курсов, связанных с темой анализа данных и машинного обучения.
Читать дальше →
Всего голосов 20: ↑19 и ↓1+18
Комментарии1

Компиляция. 1: лексер

Время на прочтение7 мин
Количество просмотров91K
Меня всегда завораживало таинство рождения программой программы. К сожалению, российские вузы уделяют мало внимания сей интереснейшей теме. Рассчитываю написать серию постов, в которых поэтапно создадим маленький работоспособный компилятор.

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

Далее в посте:

  1. С какой стати писать компиляторы?
  2. Общий план
  3. Анализ текста
  4. Практический пример
  5. Как это работает?
Читать дальше →
Всего голосов 93: ↑89 и ↓4+85
Комментарии45

Патологические матрицы проекта

Время на прочтение1 мин
Количество просмотров21K
Естественным путем завершился опрос «Какая методология используется в вашем проекте». На текущий момент ответили 2,668 человек — огромное всем спасибо!

Удивительным образом снова победили “Через %опу” и “Как получится”: 58% в сумме. На выходных, когда лидеры уже определились, мы сели обсуждать эту ситуацию с нашим экспертом по управлению проектами Иваном Селиховкиным.

По ходу разговора Иван поделился интереснейшим концептом про патологические матрицы проекта, после чего мы а) заствили Ивана зарегистрироваться на Хабре (встречайте: selikhovkin) и б) решили записать отдельное видео про эти самые матрицы:



35 минут о том, что бывает не так в проектах — пять часто встречаемых шаблонов:
  • Гипер-ТОП
  • Нервный ПМ
  • Расстрельный ПМ
  • ПМ-ТОП
  • Ненужный ПМ

А под катом — сводная таблица по методологиям с 2009 года
Сводная таблица по методология в проектах 2009 - 2014
Всего голосов 24: ↑21 и ↓3+18
Комментарии9

Spring изнутри. Этапы инициализации контекста

Время на прочтение11 мин
Количество просмотров349K


Доброго времени суток уважаемые хабравчане. Уже 3 года я работаю на проекте в котором мы используем Spring. Мне всегда было интересно разобраться с тем, как он устроен внутри. Я поискал статьи про внутреннее устройство Spring, но, к сожалению, ничего не нашел.

Всех, кого интересует внутреннее устройство Spring, прошу под кат.
Читать дальше →
Всего голосов 57: ↑53 и ↓4+49
Комментарии16

Перевод учебника по алгоритмам

Время на прочтение1 мин
Количество просмотров166K


Рад сообщить, что вышел перевод отличнейшего учебника Дасгупты, Пападимитриу, Вазирани «Алгоритмы», над которым я работал последние несколько лет. В книге многие алгоритмы объяснены гораздо короче и проще, чем в других учебниках: с одной стороны, без излишнего формализа, с другой — без потери математической строгости. Откройте книгу на каком-нибудь известном вам алгоритме и убедитесь в этом. =)

В общем, угощайтесь: печатный вариант перевода, электронный вариант перевода (PDF), печатный вариант оригинала, электронный вариант оригинала (PDF).
Читать дальше →
Всего голосов 323: ↑321 и ↓2+319
Комментарии109

Состоялся релиз библиотеки libGDX 1.0

Время на прочтение1 мин
Количество просмотров8.1K
Библиотека libGDX известна почти каждому разработчику Android-приложений. С её помощью добавляются текстуры, проигрывается звук, вызывается вибрация и т.д. «Все думали, что этот день никогда не наступит, но он наступил. Официально вышла версия libGDX 1.0!», — сообщается в официальном блоге Badlogic Games, маленькой австрийской компании, которая с 2009 года ведёт разработку проекта.

Среди самых важных изменений в версии 1.0 — новый интерфейс для сборки проекта на основе Gradle. Теперь любой проект можно скомпилировать из командной строки или из Eclipse, Intellij IDEA и т.д. Больше никаких jar’ов в репозитории!
Читать дальше →
Всего голосов 32: ↑27 и ↓5+22
Комментарии5

250 строк кода, распознающих дату на русском языке

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



Пример и код в jsFiddle.
Читать дальше →
Всего голосов 120: ↑115 и ↓5+110
Комментарии77

[видео] Как поставить человека на место: 10 реальных вопросов про давление в переговорах

Время на прочтение2 мин
Количество просмотров229K
Видео про 8 способов противостояния формуле нужды оказалось неожиданно популярным, набрав 8,000 просмотров за два дня. Мы решили продолжить тему.

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

Мы отобрали 10 самых любопытных, на наш взгляд, вопросов в этой теме и снова заперли в студии Дмитрия Коткина, руководителя Санкт-Петербургской школы переговорщиков ШиП и нашего хорошего друга, чтобы он рассказал, что конкретно делать:



10 реальных ситуаций, которые удалось осветить — под катом:

Читать дальше →
Всего голосов 157: ↑138 и ↓19+119
Комментарии62

Сети для самых маленьких. Часть девятая. Мультикаст

Время на прочтение51 мин
Количество просмотров655K

Наш умозрительный провайдер linkmeup взрослеет и обрастает по-тихоньку всеми услугами обычных операторов связи. Теперь мы доросли до IPTV.
Отсюда вытекает необходимость настройки мультикастовой маршрутизации и в первую очередь понимание того, что вообще такое мультикаст.
Это первое отклонение от привычных нам принципов работы IP-сетей. Всё-таки парадигма многоадресной рассылки в корне отличается от тёплого лампового юникаста.
Можно даже сказать, это в некоторой степени бросает вызов гибкости вашего разума в понимании новых подходов.

В этой статье сосредоточимся на следующем:




Читать дальше →
Всего голосов 108: ↑106 и ↓2+104
Комментарии27

Динамические деревья

Время на прочтение8 мин
Количество просмотров36K
Перед прочтением статьи рекомендую посмотреть посты про splay-деревья (1) и деревья по неявному ключу (2, 3, 4)

Динамические деревья (link/cut trees) мало освещены в русскоязычном интернете. Я нашел только краткое описание на алголисте. Тем не менее эта структура данных очень интересна. Она находится на стыке двух областей: потоки и динамические графы.

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

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

Перед тем, как нырнуть под кат, попробуйте решить следующую задачу. Дан взвешенный граф в виде последовательности ребер. По последовательности можно пройти только один раз. Требуется посчитать минимальное покрывающее дерево, используя памяти и времени. По прочтении статьи вы поймете, как легко и просто можно решить эту задачу, используя динамические деревья.
Читать дальше →
Всего голосов 54: ↑52 и ↓2+50
Комментарии5

Таймер для вытяжки

Время на прочтение4 мин
Количество просмотров103K


Во время последнего ремонта квартиры я задумался об улучшении бытового уровня. Одним из осуществленных удобств был таймер для вытяжки в санузле. С одной стороны, это повысило комфорт, поскольку устройство само отключало вентилятор, с другой – положительно сказалось на экономии электричества. Далее изложено описание и реализация таймера. Его легко приспособить для кратковременного включения любой силовой нагрузки мощностью до 1 кВт.
Читать дальше →
Всего голосов 47: ↑46 и ↓1+45
Комментарии61

Введение в анализ сложности алгоритмов (часть 4)

Время на прочтение5 мин
Количество просмотров99K
От переводчика: данный текст даётся с незначительными сокращениями по причине местами излишней «разжёванности» материала. Автор абсолютно справедливо предупреждает, что отдельные темы могут показаться читателю чересчур простыми или общеизвестными. Тем не менее, лично мне этот текст помог упорядочить имеющиеся знания по анализу сложности алгоритмов. Надеюсь, что он окажется полезен и кому-то ещё.
Из-за большого объёма оригинальной статьи я разбила её на части, которых в общей сложности будет четыре.
Я (как всегда) буду крайне признательна за любые замечания в личку по улучшению качества перевода.


Опубликовано ранее:
Часть 1
Часть 2
Часть 3

Оптимальная сортировка


Поздравляю! Теперь вы знаете о том, как анализировать сложность алгоритмов, что такое асимптотическая оценка и нотация «большое-О». Вы также в курсе, как интуитивно выяснить является ли сложностью алгоритма O( 1 ), O( log( n ) ), O( n ), O( n2 ) и так далее. Вы знакомы с символами o, O, ω, Ω, Θ и понятием «наихудшего случая». Если вы добрались до этого места, то моя статья уже выполнила свою задачу.

Этот финальный раздел — опциональный. Он несколько сложнее, так что можете не стесняясь пропустить его, если хотите.От вас потребуется сфокусироваться и потратить некоторое время на решение упражнений. Однако, так же здесь будет продемонстрирован очень полезный и мощный способ анализа сложности алгоритмов, что, безусловно, стоит внимания.
Читать дальше →
Всего голосов 58: ↑54 и ↓4+50
Комментарии6

Введение в анализ сложности алгоритмов (часть 3)

Время на прочтение6 мин
Количество просмотров126K
От переводчика: данный текст даётся с незначительными сокращениями по причине местами излишней «разжёванности» материала. Автор абсолютно справедливо предупреждает, что отдельные темы могут показаться читателю чересчур простыми или общеизвестными. Тем не менее, лично мне этот текст помог упорядочить имеющиеся знания по анализу сложности алгоритмов. Надеюсь, что он окажется полезен и кому-то ещё.
Из-за большого объёма оригинальной статьи я разбила её на части, которых в общей сложности будет четыре.
Я (как всегда) буду крайне признательна за любые замечания в личку по улучшению качества перевода.


Опубликовано ранее:
Часть 1
Часть 2

Логарифмы


image
Если вы знаете, что такое логарифмы, то можете спокойно пропустить этот раздел. Глава предназначается тем, кто незнаком с данным понятием или пользуется им настолько редко, что уже забыл что там к чему. Логарифмы важны, поскольку они очень часто встречаются при анализе сложности. Логарифм — это операция, которая при применении её к числу делает его гораздо меньше (подобно взятию квадратного корня). Итак, первая вещь, которую вы должны запомнить: логарифм возвращает число, меньшее, чем оригинал. На рисунке справа зелёный график — линейная функция f(n) = n, красный — f(n) = sqrt(n), а наименее быстро возрастающий — f(n) = log(n). Далее: подобно тому, как взятие квадратного корня является операцией, обратной возведению в квадрат, логарифм — обратная операция возведению чего-либо в степень.
Читать дальше →
Всего голосов 74: ↑60 и ↓14+46
Комментарии4

Введение в анализ сложности алгоритмов (часть 2)

Время на прочтение11 мин
Количество просмотров171K
От переводчика: данный текст даётся с незначительными сокращениями по причине местами излишней «разжёванности» материала. Автор абсолютно справедливо предупреждает, что отдельные темы могут показаться читателю чересчур простыми или общеизвестными. Тем не менее, лично мне этот текст помог упорядочить имеющиеся знания по анализу сложности алгоритмов. Надеюсь, что он окажется полезен и кому-то ещё.
Из-за большого объёма оригинальной статьи я разбила её на части, которых в общей сложности будет четыре.
Я (как всегда) буду крайне признательна за любые замечания в личку по улучшению качества перевода.


Опубликовано ранее:
Часть 1

Сложность


Из предыдущей части можно сделать вывод, что если мы сможем отбросить все эти декоративные константы, то говорить об асимптотике функции подсчёта инструкций программы будет очень просто. Фактически, любая программа, не содержащая циклы, имеет f( n ) = 1, потому что в этом случае требуется константное число инструкций (конечно, при отсутствии рекурсии — см. далее). Одиночный цикл от 1 до n, даёт асимптотику f( n ) = n, поскольку до и после цикла выполняет неизменное число команд, а постоянное же количество инструкций внутри цикла выполняется n раз.
Читать дальше →
Всего голосов 55: ↑53 и ↓2+51
Комментарии16

Велосипед для генерации Excel документов по шаблону

Время на прочтение3 мин
Количество просмотров9.5K
Обычно для программного формирования сложных отчётов в xls предлагается использовать «вручную» сформированный документ — шаблон, в нужных местах которого вместо реальных данных подставлены некоторые «теги» н.п. ${userName}, ${userAge}, и в процессе заполнения шаблона находить теги в тексте документа и заменять их соответствующими значениями.

Но как быть, если в итоговом документе должны отсутствовать некоторые страницы из шаблона, и наоборот, другие страницы могут быть несколько раз «клонированы» и заполнены разными данными? И как избавиться от нудного заполнения маппинга тег->значение в коде?
Читать дальше →
Всего голосов 5: ↑3 и ↓2+1
Комментарии14

Добавление Google Apps в эмулятор Android (Intel x86 Atom System Image)

Время на прочтение2 мин
Количество просмотров39K


Все разработчики под Android знают, насколько медленно работает эмулятор. В июне прошлого года Intel представила Android, который работает в режиме x86 (без эмуляции ARM). И конечно, скорость эмулятора стала потрясающая. Но в системных образах этих эмуляторов отсутствуют Google Apps (Maps, GMail, Calendar, Google Play, аккаунт Google, ...).

В этой статье мы добавим приложения от Google.
Читать дальше →
Всего голосов 48: ↑41 и ↓7+34
Комментарии20

N+1 полезная книга для бизнеса: часть 3

Время на прочтение6 мин
Количество просмотров97K


Привет!
Прошлые два обзора полезных книг за 2010 и 2011 год собрали просто адовое количество закладок, поэтому я продолжу. Прошел ещё год, ещё около 250 прочитанных книг – и вот самые интересные под катом.

Кто сказал, что слоны не умеют танцевать? Возрождение корпорации IBM: взгляд изнутри (Герстнер Луис)


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

Догнать зайца (Стивен Спир)


Отличная книга про дебаг производственных процессов. Одна из основных вещей – то, что все серьёзные проблемы возникают из-за сочетания некритичных багов. Есть примеры из американской ядерной программы, NASA и т.п. Я предлагаю прямо сейчас пойти и прочитать описание железнодорожного крушения на Каменской: один не отчитался, второй не проверил тормоза, третий зажал тангенту, четвёртый сорвал стоп-кран. Результат — катастрофа.
Читать дальше →
Всего голосов 66: ↑60 и ↓6+54
Комментарии43

Создание нестандартного компонента с нуля. Часть 2

Время на прочтение10 мин
Количество просмотров21K

Вступление



Вновь приветствую, коллеги.

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



В этой статье под катом мы продолжим накручивать свистелки и... дополнительные возможности нашей клавиатуре. На повестке дня:

  1. Сохранение состояния компонента при повороте экрана
  2. добавление подсветки при оверскролле
  3. передача параметров в XML
  4. Мультитач зуммирование
Читать дальше →
Всего голосов 53: ↑51 и ↓2+49
Комментарии9

Как запустить программу без операционной системы

Время на прочтение13 мин
Количество просмотров182K

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

В интернете существует огромное количество описаний и туториалов о для того как написать собственную мини-ОС, даже существуют сотни готовых маленьких хобби-ОС. Один из наиболее достойных ресурсов по этой тематике, который хотелось бы особо выделить, это портал osdev.org. Для дополнения предыдущей статьи про PCI (и возможности писать последующие статьи о различных функциях, которые присутствуют в любой современной ОС), мы опишем пошаговые инструкции по созданию загрузочного диска с привычной программой на языке С. Мы старались писать максимально подробно, чтобы во всем можно было разобраться самостоятельно.

Итак, цель: затратив как можно меньше усилий, создать собственную загрузочную флешку, которая всего-навсего печатает на экране компьютера классический “Hello World”.

Читать дальше →
Всего голосов 196: ↑188 и ↓8+180
Комментарии69

Популярно о генеалогии 3D-принтеров. Кто есть кто?

Время на прочтение5 мин
Количество просмотров62K
Ситуация с 3д-принтерами напоминает ситуацию с Linux-дистрибутивами, особенно для новичка. Огромная куча конструкций под кодовыми именами, половина из которых поставляется в собранном виде, половину надо собирать как конструктор из деталей, а для еще одной половины все детали надо найти самому, да еще и напильником поработать. Кстати, откуда взялась третья половина — тоже непонятно. Попробуем в этом всем разобраться.
image

Читать дальше →
Всего голосов 82: ↑81 и ↓1+80
Комментарии70

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность