Pull to refresh
58
0
Александр Черноокий @paunch

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

Send message

Чеклист: Как загружать страницы быстрее

Reading time2 min
Views30K
Мы постоянно работаем над тем, чтобы IaaS был простым и понятным даже для тех, кто не сталкивался с ИТ-сферой. Для этого мы проводим оптимизацию всех систем и рассказываем о своем опыте в нашем блоге на Хабре.

Пара примеров:


Сегодня мы поговорим о том, как ускорить загрузку страниц, и взглянем на советы эксперта по Ruby Нейта Беркопеца (Nate Berkopec).

Читать дальше →
Total votes 34: ↑33 and ↓1+32
Comments22

Вероятностное программирование

Reading time19 min
Views42K
Вероятностное моделирование является одним из мощнейших инструментов для специалиста по анализу данных. К сожалению, для его использования необходимо не только уверенно владеть аппаратом теории вероятностей и математической статистики, но и знать детали работы алгоритмов приближенного байесовского вывода, что делает порог вхождения очень высоким. Из этой лекции вы узнаете о сравнительно молодой парадигме в машинном обучении — вероятностном программировании. Его задача — сделать всю мощь вероятностного моделирования доступной любому человеку, имеющему опыт программирования и минимальный опыт анализа данных.



Лекция была прочитана Борисом hr0nix Янгелем на факультете компьютерных наук, открытом в Высшей школе экономики при поддержке Яндекса. Сам Борис окончил ВМиК МГУ и Школу анализа данных Яндекса. Работал в Microsoft Research Cambridge в группе Кристофера Бишопа над фреймворком Infer.NET. Сейчас Борис — ведущий разработчик поиска Яндекса.

Под катом — расшифровка рассказа.
Читать дальше →
Total votes 44: ↑41 and ↓3+38
Comments15

Лекция Дмитрия Ветрова о математике больших данных: тензоры, нейросети, байесовский вывод 

Reading time2 min
Views49K
Сегодня лекция одного из самых известных в России специалистов по машинному обучению Дмитрия Ветрова, который руководит департаментом больших данных и информационного поиска на факультете компьютерных наук, работающим во ВШЭ при поддержке Яндекса.

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



Люди и их устройства стали генерировать такое количество данных, что за их ростом не успевают даже вычислительные мощности крупных компаний. И хотя без таких ресурсов работа с данными невозможна, полезными их делают люди. Сейчас мы находимся на этапе, когда информации так много, что традиционные математические методы и модели становятся неприменимы. Из лекции Дмитрия Петровича вы узнаете, почему вам надо хорошо знать математику для работы с машинным обучением и обработкой данных. И какая «новая математика» понадобится вам для этого. Слайды презентации — под катом.
Читать дальше →
Total votes 58: ↑57 and ↓1+56
Comments16

Определяем веса шахматных фигур регрессионным анализом

Reading time15 min
Views85K
Здравствуй, Хабр!

В этой статье речь пойдёт о небольшом программистском этюде на тему машинного обучения. Замысел его возник у меня при прохождении известного здесь многим курса «Machine Learning», читаемого Andrew Ng на Курсере. После знакомства с методами, о которых рассказывалось на лекциях, захотелось применить их к какой-нибудь реальной задаче. Долго искать тему не пришлось — в качестве предметной области просто напрашивалась оптимизация собственного шахматного движка.

Вступление: о шахматных программах



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

Поиск представляет собой перебор вариантов, то есть итеративное углубление по дереву игры. Оценочная функция отображает набор позиционных признаков на числовую шкалу и служит целевой функцией для поиска наилучшего хода. Она применяется к листьям дерева, и постепенно «возвращается» к исходной позиции (корню) с помощью альфа-бета процедуры или её вариаций.

Строго говоря, настоящая оценка может принимать только три значения: выигрыш, проигрыш или ничья — 1, 0 или ½. По теореме Цермело для любой заданной позиции она определяется однозначно. На практике же из-за комбинаторного взрыва ни один компьютер не в состоянии просчитать варианты до листьев полного дерева игры (исчерпывающий анализ в эндшпильных базах данных — это отдельный случай; 32-фигурных таблиц в обозримом будущем не появится… и в необозримом, скорее всего, тоже). Поэтому программы работают в так называемой модели Шеннона — пользуются усечённым деревом игры и приближённой оценкой, основанной на различных эвристиках.
Читать дальше →
Total votes 64: ↑64 and ↓0+64
Comments45

Продвижение вашей инди-игры: самые важные нюансы, о которых никто не знает

Reading time12 min
Views61K
Приветствую!
В этом материале собраны лучшие советы для начинающих разработчиков игр. Мне в работе очень помогли некоторые из этих советов, особенно те, что касаются составления имейлов для игрожуров. Материал будет интересен как тем, кто уже имеет опыт и хочет его проанализировать, так и начинающим инди-разработчикам во избежание самых распространенных клише и ошибок.


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


Читать дальше →
Total votes 26: ↑19 and ↓7+12
Comments6

Лекции Техносферы. 1 семестр. Алгоритмы интеллектуальной обработки больших объемов данных

Reading time3 min
Views48K
Продолжаем публиковать материалы наших образовательных проектов. В этот раз предлагаем ознакомиться с лекциями Техносферы по курсу «Алгоритмы интеллектуальной обработки больших объемов данных». Цель курса — изучение студентами как классических, так и современных подходов к решению задач Data Mining, основанных на алгоритмах машинного обучения. Преподаватели курса: Николай Анохин (@anokhinn), Владимир Гулин (@vgulin) и Павел Нестеров (@mephistopheies).



Объемы данных, ежедневно генерируемые сервисами крупной интернет-компании, поистине огромны. Цель динамично развивающейся в последние годы дисциплины Data Mining состоит в разработке подходов, позволяющих эффективно обрабатывать такие данные для извлечения полезной для бизнеса информации. Эта информация может быть использована при создании рекомендательных и поисковых систем, оптимизации рекламных сервисов или при принятии ключевых бизнес-решений.
Читать дальше →
Total votes 47: ↑46 and ↓1+45
Comments15

Я тебя по сетям вычислю: используем API крупнейших соцсетей в своих корыстных целях

Reading time11 min
Views177K


Ни для кого не секрет, что современные социальные сети представляют собой огромные БД, содержащие много интересной информации о частной жизни своих пользователей. Через веб-морду особо много данных не вытянешь, но ведь у каждой сети есть свой API… Так давай же посмотрим, как этим можно воспользоваться для поиска пользователей и сбора информации о них.

Есть в американской разведке такая дисциплина, как OSINT (Open source intelligence), которая отвечает за поиск, сбор и выбор информации из общедоступных источников. К одному из крупнейших поставщиков общедоступной информации можно отнести социальные сети. Ведь практически у каждого из нас есть учетка (а у кого-то и не одна) в одной или нескольких соцсетях. Тут мы делимся своими новостями, личными фотографиями, вкусами (например, лайкая что-то или вступая в какую-либо группу), кругом своих знакомств. Причем делаем это по своей доброй воле и практически совершенно не задумываемся о возможных последствиях. На страницах журнала уже не раз рассматривали, как можно с помощью различных уловок вытаскивать из соцсетей интересные данные. Обычно для этого нужно было вручную совершить какие-то манипуляции. Но для успешной разведки логичнее воспользоваться специальными утилитами. Существует несколько open source утилит, позволяющих вытаскивать информацию о пользователях из соцсетей.
Читать дальше →
Total votes 89: ↑83 and ↓6+77
Comments22

10 основных ошибок при разработке на Node.js

Reading time9 min
Views72K


C момента появления Node.js его и критикуют, и превозносят. Споры о достоинствах и недостатках этого инструмента не утихают и, вероятно, не утихнут в ближайшее время. Однако часто мы упускаем из виду, что критика любого языка или платформы основывается на возникающих проблемах, зависящих от того, как мы эти платформы используем. Вне зависимости от того, насколько Node.js усложняет написание безопасного кода и облегчает его распараллеливание, платформа существует уже довольно давно, и на ней создано огромное количество надёжных и сложных веб-сервисов. Все они хорошо масштабируются и на практике доказали свою устойчивость.

Но, как и любая платформа, Node.js не застрахован от ошибок самих разработчиков. В одних случаях падает производительность, в других — система становится практически непригодной к использованию. И в этом посте я хотел бы рассмотреть 10 наиболее частых ошибок, которые делают разработчики с недостаточным опытом работы с Node.js.
Читать дальше →
Total votes 85: ↑74 and ↓11+63
Comments45

Дистанционная работа: Более 130 полезных источников

Reading time5 min
Views57K


Данная подборка позволит вам разобраться с плюсами и минусами дистанционной работы, оценить затраты и возможную экономию, познакомиться с опытом коллег и взглянуть на целый спектр компаний, команды которых работают дистанционно.
Читать дальше →
Total votes 34: ↑33 and ↓1+32
Comments9

Перевод книги «Выразительный Javascript» в pdf

Reading time1 min
Views193K
Хабр, привет.

Не так давно SLY_G опубликовал цикл переводов книги Eloquent Javascript (за что ему большое спасибо). В комментариях раз за разом поднимались вопросы о сборке переводов книги, что, собственно, я и сделал при помощи сервиса Gitbook — «Выразительный Javascript», pdf, ePub, mobi и онлайн версия.

Репозитарий книги, pull requests принимаются.
Читать дальше →
Total votes 81: ↑81 and ↓0+81
Comments36

300 потрясающих бесплатных сервисов

Reading time11 min
Views1.6M


Автор оригинальной статьи Ali Mese добавил ещё 100 новых бесплатных сервисов. Все 400 потрясающих сервисов доступны здесь. И еще подборку +500 инструментов от 10 марта 2017 г. смотрите здесь.



A. Бесплатные Веб-Сайты + Логотипы + Хостинг + Выставление Счета

  • HTML5 UP: Адаптивные шаблоны HTML5 и CSS3.
  • Bootswatch: Бесплатные темы для Bootstrap.
  • Templated: Коллекция 845 бесплатных шаблонов CSS и HTML5.
  • Wordpress.org | Wordpress.com: Бесплатное создание веб-сайта.
  • Strikingly.com Domain: Конструктор веб-сайтов.
  • Logaster: Онлайн генератор логотипов и элементов фирменного стиля (new).
  • Withoomph: Мгновенное создание логотипов (англ.).
  • Hipster Logo Generator: Генератор хипстерских логотипов.
  • Squarespace Free Logo: Можно скачать бесплатную версию в маленьком разрешении.
  • Invoice to me: Бесплатный генератор счета.
  • Free Invoice Generator: Альтернативный бесплатный генератор счета.
  • Slimvoice: Невероятно простой счет.

Читать дальше →
Total votes 341: ↑325 and ↓16+309
Comments107

Анонимный Дед Мороз 2014 — Пост хвастовства новогодними подарками

Reading time1 min
Views12K
image

Привет, %username%!

В запустившемся несколько позже обычного «Хабра АДМ-2014» уже 33 человека получили свой новогодний подарок!

Давайте хвастаться своими подарками на зависть тем, кто был забанен в этом сезоне ;-)

С НАСТУПИВШИМ НОВЫМ 2015 ГОДОМ!

Традиционная форма для обращения к эльфам тут.
Total votes 40: ↑35 and ↓5+30
Comments62

Лекции Технопарка. 1 семестр. Web-технологии

Reading time4 min
Views173K
Сегодня этим постом мы открываем цикл еженедельных публикаций учебных материалов Технопарка. Если кто-то ещё не знает, Технопарк — это совместный образовательный проект Mail.Ru Group и МГТУ им. Н. Э. Баумана. На данный момент здесь проходит обучение по 20 IT-дисциплинам 91 наиболее талантливый студент. Технопарк существует с 18 ноября 2011 года, а первые счастливчики приступили к занятиям в декабре 2011 года.

Обучение в Технопарке совершенно бесплатное, оно проходит после занятий в университете. Стать участниками проекта могут студенты 3-5 курсов. Хотя для 2 и 6 курсов можем сделать исключение. Обучение длится 2 года, оно разбито на 4 семестра, в каждом из которых проходят по 3-4 предмета. Первый блок первого семестра посвящён всему, что связано с web-технологиями, от истории возникновения до программирования и безопасности web-приложений.

Лекция 1. Введение


На вводном занятии вы познакомитесь с краткой историей развития интернета, основными трендами в развитии web-приложений, облачных сервисов и мобильных приложений. Также на лекции разобрано устройство и работа несложного web-приложения, обсуждены такие фундаментальные понятия, как система адресации в интернете, домены, HTML-страницы и протокол HTTP. Напоследок кратко рассказано о CGI-скриптах, их назначении и особенностях работы.


Читать дальше →
Total votes 55: ↑51 and ↓4+47
Comments11

Пишем быстрый и экономный код на JavaScript

Reading time16 min
Views69K
Такой движок JS, как V8 (Chrome, Node) от Google, заточен для быстрого исполнения больших приложений. Если вы во время разработки заботитесь об эффективном использовании памяти и быстродействии, вам необходимо знать кое-что о процессах, проходящих в движке JS браузера.

Что бы там ни было — V8, SpiderMonkey (Firefox), Carakan (Opera), Chakra (IE) или что-то ещё, знание внутренних процессов поможет вам оптимизировать работу ваших приложений. Но не призываю вас оптимизировать движок для одного браузера или движка – не делайте так.

Задайте себе вопрос:
— можно ли что-то в моём коде сделать более эффективным?
— какую оптимизацию проводят популярные движки JS?
— что движок не может компенсировать, и может ли сборка мусора подчистить всё так, как я от неё ожидаю?



Есть много ловушек, связанных с эффективным использованием памяти и быстродействием, и в статье мы изучим некоторые подходы, которые хорошо показали себя в тестах.
Читать дальше →
Total votes 78: ↑72 and ↓6+66
Comments29

Что-то издали похожее на монады

Reading time5 min
Views22K
После прочтения десятков «самых понятных введений в монады» и чтения (тоже) десятков обсуждений на разных форумах я пришёл к выводу, что существует группа абстрактных ОО-программистов, которым моя интерпретация «чего-то похожего на монады» может помочь немного приблизиться к правильному пониманию.

Итак, в этой публикации вы не найдете ответы на следующие вопросы:
1. Что такое монада?
2. Где и как использовать монады?
3. Почему монады лучше, чем их отсутствие?
Читать дальше →
Total votes 34: ↑29 and ↓5+24
Comments23

Как я попал в Топ AppStore с простым приложением курса валют

Reading time10 min
Views126K

Резюме


Я хочу рассказать о том, как создал вполне заурядное и совсем не инновационное приложение, которое объективно стало лучшим в своём роде и даже некоторое время пребывало на самой вершине топа. Это не история успеха и не руководство к действию. Я просто хочу рассказать, как у меня получилось сделать самое популярное приложение в своём сегменте.
Читать дальше →
Total votes 126: ↑118 and ↓8+110
Comments69

58 признаков хорошего интерфейса

Reading time16 min
Views381K
У хорошего интерфейса пользователя высокая конверсия и его просто использовать. То есть, он хорош и для бизнеса, и для использующих его людей. Вот список опробованных нами идей.

1 Один столбец вместо нескольких


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

image
Читать дальше →
Total votes 226: ↑182 and ↓44+138
Comments102

Играем с генетическими алгоритмами

Reading time6 min
Views102K
Одним субботним декабрьским вечером сидел я над книгой The Blind Watchmaker (Слепой Часовщик), как на глаза мне попался невероятно интересный эксперимент: возьмём любое предложение, например Шекспировскую строку: Methinks it is like a weasel и случайную строку такой же длины: wdltmnlt dtjbkwirzrezlmqco p и начнем вносить в неё случайные изменения. Через сколько поколений эта случайная строка превратится в Шекспировскую строку, если выживать будут лишь потомки более похожие на Шекспировскую?

Сегодня мы повторим этот эксперимент, но в уже совершенно другом масштабе.



Структура статьи:
  1. Что такое генетический алгоритм
  2. Почему это работает
  3. Формализуем задачу со случайной строкой
  4. Пример работы алгоритма
  5. Эксперименты с классикой
  6. Код и данные
  7. Выводы

Осторожно трафик!
Читать дальше →
Total votes 59: ↑51 and ↓8+43
Comments22

Это правильно, но неверно

Reading time3 min
Views52K
Специалисты заслуженно не любят задачи и головоломки на собеседованиях. Но мы просто любим порешать такие задачи в свое удовольствие. Вот что мне лично не нравится, так это когда ты получаешь правильный ответ, но при этом твое решение кажется автору неверным. Хочу просто показать решение нескольких популярных подобных задач, которые можно получить в уме и без сложных расчетов и сопоставить их с авторскими верными.
Читать дальше →
Total votes 42: ↑34 and ↓8+26
Comments106

Information

Rating
Does not participate
Location
Киев, Киевская обл., Украина
Works in
Date of birth
Registered
Activity