Добрый день. Многие знают и пользуются известной площадкой для онлайн образования Coursera.org. Я тоже принадлежу к их числу. Пройдя пару курсов, я стал интересоваться внутренней кухней. Я связался с несколькими преподавателями и попросил их дать письменное интервью. О том что получилось читайте далее.
Павел Егоров @xoposhiy
Учу программировать. Программирую. Учусь.
10 игровых механик в HTML Academy
8 min
54KВ тот момент, когда начиналась разработка HTML Academy, мы достаточно серьёзно играли в WOW, да и, вообще, были поклонниками игр Blizzard со стажем. Поэтому с игровыми механиками были знакомы достаточно хорошо, хотя сами этого не подозревали. Многие интересные механизмы появились в академии, как нам казалось, сами по себе. Но позже выяснилось, что на самом деле они называются «игровыми механиками», а мы их неосознанно взяли из игровой практики.
+39
Портрет Хабра-tutorial
13 min
12KВ наш век только бесполезные вещи и необходимы человеку. Оскар Уайльд, Портрет Дориана Грея (источник)
А вы никогда не задумывались, чем обычный пост на хабре (порошок обычныйTM) отличается от tutorial? И как это «отличается» вообще можно измерить? Есть ли здесь какие-то закономерности и можно ли по ним предсказать метку:
В данной статье мы обсудим так называемый exploratory data analysis или кратко EDA (исследовательский анализ данных) применительно к статьям Хабрахабра, а в частности уделим особое внимание tutorial. Прежде всего EDA направлен на детальное изучение данных, и необходим для понимания, с чем мы собственно работаем. Важной частью является сбор и очистка данных и сам выбор какие данные собирать. Особенность метода состоит в визуализации и поиске важных характеристик и тенденций.
Exploratory data analysis — это первый шаг в изучении и понимании данных, без него мы можем загнать себя в многочисленные ловушки, описанные ранее автором в статье: "Как правильно лгать с помощью статистики".
Как выглядит обычный хабра-tutorial
В качестве простой демонстрации рассмотрим простейшую картину из трех параметров: просмотры, избранное (favourites) и рейтинг (количество плюсов), для трех классов: все статьи вместе, обычный пост (не-tutorial) и tutorial.
Даже в столь упрощенной картине, заметна разница между классами. Наша интуиция и здравый смысл подсказывают нам, что tutorial в среднем чаще добавляют в избранное, но интуиция не говорит насколько чаще, и что они набирают меньше плюсов и просмотров. Эти и многие другие интересные вопросы мы рассмотрим далее в статье.
Структура статьи
- Как выглядит обычный хабра-tutorial
- Собираем данные
- Хабра-данные
- Исследуем tutorials
- Разбираем интересные примеры
- Предсказываем метку tutorial
- Как сделать набор данных лучше
- Заключение
- Дальнейшее чтение
+72
+6
Видео-курс по JavaScript на русском языке
1 min
218KЗдравствуй, Хабр!
Представляю вам свой курс по JavaScript, недавно прошедний на Хекслете. Курс состоит из семи лекций общей продолжительностью около четырех часов.
Первая лекция: Введение в JavaScript, немного истории, числа (тут есть ошибка: функция toFixed округляет значения).
Остальное – под катом.
Представляю вам свой курс по JavaScript, недавно прошедний на Хекслете. Курс состоит из семи лекций общей продолжительностью около четырех часов.
- Раздача на Рутрекере (видео+слайды)
- Прямые ссылки на видеофайлы: первая лекция, вторая, третья, четвертая, пятая, шестая и седьмая
- Прямая ссылка на слайды (zip-архив pdf-файлов)
- Подкаст в iTunes
- Плейлист на YouTube
- Форум курса
Первая лекция: Введение в JavaScript, немного истории, числа (тут есть ошибка: функция toFixed округляет значения).
Остальное – под катом.
+119
Поиск кропнутых дубликатов изображений с помощью перцептуальных хешей
6 min
71KВ этой статье пойдет речь о том, как решалась небольшая задачка поиска дубликатов по фрагменту или кропу картинки.
+107
Быстрая, экономная, устойчивая…
10 min
60KЕсли вам понадобится алгоритм сортировки массива, который:
- Работал бы гарантированно за O(N*log(N)) операций (обменов и сравнений);
- Требовал бы O(1) дополнительной памяти;
- Был бы устойчивым (то есть, не менял порядок элементов с одинаковыми ключами)
то вам, скорее всего, предложат ограничиться любыми двумя из этих трёх пунктов. И, в зависимости от вашего выбора, вы получите, например, либо сортировку слиянием (требует O(N) дополнительной памяти), либо пирамидальную сортировку (неустойчив), либо сортировку пузырьком (работает за O(N2)). Если вы ослабите требование на память до O(log(N)) («на рекурсию»), то для вас найдётся алгоритм со сложностью O(N*(log(N)2) — довольно малоизвестный, хотя именно его версия используется в реализации метода std::stable_sort().
На вопрос, можно ли добиться выполнения одновременно всех трёх условий, большинство скажет «вряд ли». Википедия о таких алгоритмах не знает. Среди программистов ходят слухи, что вроде бы, что-то такое существует. Некоторые говорят, что есть «устойчивая быстрая сортировка» — но у той реализации, которую я видел, сложность была всё те же O(N*(log(N)2) (по таймеру). И только в одном обсуждении на StackOverflow дали ссылку на статью B-C. Huang и M. A. Langston, Fast Stable Merging and Sorting in Constant Extra Space (1989-1992), в которой описан алгоритм со всеми тремя свойствами.
+145
Видео лекций всего курса первой Школы разработки интерфейсов Яндекса
2 min
179KTutorial
Разработка интерфейсов — одно из важнейших направлений в Яндексе, сервисами которого пользуются миллионы людей. А ни один российский вуз, к сожалению, не готовит разработчиков интерфейсов. Все знания, которые необходимы современному верстальщику или фронтенд-программисту, приходится черпать из статей в интернете, книг, докладов на конференциях. Но зачастую этого бывает недостаточно. Почти каждого нового разработчика интерфейсов, которого мы принимали на работу, приходилось многому обучать.
За долгое время работы в Яндексе нам удалось систематизировать все наши знания и огромный опыт в создании фронтенда веб-сервисов. Результатом этого осмысления и длительной работы стала первая Школа разработки интерфейсов, занятие которой шли в московском офисе Яндекса. Вся практическая часть обучения проходила в реальных проектах Яндекса. Теоретическая же состояла из лекций, которые читали ведущие разработчики интерфейсов Яндекса: Сергей veged Бережной, Михаил mishanga Трошев, Алексей doochik Андросов, Михаил azproduction Давыдов и другие.
Сегодня мы выкладываем видеозаписи каждой из них. Весь курс систематизирован и поделен на пять блоков: инструменты разработки, технологии в разработке интерфейсов, языки программирования, фреймворки, дизайн.
За долгое время работы в Яндексе нам удалось систематизировать все наши знания и огромный опыт в создании фронтенда веб-сервисов. Результатом этого осмысления и длительной работы стала первая Школа разработки интерфейсов, занятие которой шли в московском офисе Яндекса. Вся практическая часть обучения проходила в реальных проектах Яндекса. Теоретическая же состояла из лекций, которые читали ведущие разработчики интерфейсов Яндекса: Сергей veged Бережной, Михаил mishanga Трошев, Алексей doochik Андросов, Михаил azproduction Давыдов и другие.
Сегодня мы выкладываем видеозаписи каждой из них. Весь курс систематизирован и поделен на пять блоков: инструменты разработки, технологии в разработке интерфейсов, языки программирования, фреймворки, дизайн.
+146
Рейтинг постов хаба
35 min
55KПривет, Хабр!
В связи с тем, что данная возможность появилась, а топик сносить в черновики не хочется — ниже рейтинг самых комментируемых и добавляемых в избранное статей самых популярных хабов. Кроме того пару слов о реализации скрипта.
+130
Нечёткий поиск в тексте и словаре
13 min
265KВведение
Алгоритмы нечеткого поиска (также известного как поиск по сходству или fuzzy string search) являются основой систем проверки орфографии и полноценных поисковых систем вроде Google или Yandex. Например, такие алгоритмы используются для функций наподобие «Возможно вы имели в виду …» в тех же поисковых системах.
В этой обзорной статье я рассмотрю следующие понятия, методы и алгоритмы:
- Расстояние Левенштейна
- Расстояние Дамерау-Левенштейна
- Алгоритм Bitap с модификациями от Wu и Manber
- Алгоритм расширения выборки
- Метод N-грамм
- Хеширование по сигнатуре
- BK-деревья
+169
Простыми словами о преобразовании Фурье
Medium
14 min
1.1MЯ полагаю что все в общих чертах знают о существовании такого замечательного математического инструмента как преобразование Фурье. Однако в ВУЗах его почему-то преподают настолько плохо, что понимают как это преобразование работает и как им правильно следует пользоваться сравнительно немного людей. Между тем математика данного преобразования на удивление красива, проста и изящна. Я предлагаю всем желающим узнать немного больше о преобразовании Фурье и близкой ему теме того как аналоговые сигналы удается эффективно превращать для вычислительной обработки в цифровые.
(с) xkcd
Без использования сложных формул и матлаба я постараюсь ответить на следующие вопросы:
Я буду исходить из предположения что читатель понимает что такое интеграл, комплексное число (а так же его модуль и аргумент), свертка функций, плюс хотя бы “на пальцах” представляет себе что такое дельта-функция Дирака. Не знаете — не беда, прочитайте вышеприведенные ссылки. Под “произведением функций” в данном тексте я везде буду понимать “поточечное умножение”
(с) xkcd
Без использования сложных формул и матлаба я постараюсь ответить на следующие вопросы:
- FT, DTF, DTFT — в чем отличия и как совершенно разные казалось бы формулы дают столь концептуально похожие результаты?
- Как правильно интерпретировать результаты быстрого преобразования Фурье (FFT)
- Что делать если дан сигнал из 179 сэмплов а БПФ требует на вход последовательность по длине равную степени двойки
- Почему при попытке получить с помощью Фурье спектр синусоиды вместо ожидаемой одиночной “палки” на графике вылезает странная загогулина и что с этим можно сделать
- Зачем перед АЦП и после ЦАП ставят аналоговые фильтры
- Можно ли оцифровать АЦП сигнал с частотой выше половины частоты дискретизации (школьный ответ неверен, правильный ответ — можно)
- Как по цифровой последовательности восстанавливают исходный сигнал
Я буду исходить из предположения что читатель понимает что такое интеграл, комплексное число (а так же его модуль и аргумент), свертка функций, плюс хотя бы “на пальцах” представляет себе что такое дельта-функция Дирака. Не знаете — не беда, прочитайте вышеприведенные ссылки. Под “произведением функций” в данном тексте я везде буду понимать “поточечное умножение”
+181
Information
- Rating
- Does not participate
- Location
- Екатеринбург, Свердловская обл., Россия
- Works in
- Registered
- Activity