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

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

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

Делаем свой персональный Skype, пошаговая инструкция создания WebRTC приложения

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

WebRTC позволяет реализовать real-time аудио/видео связь через браузер (firefox и chrome).

В этом топике я расскажу как реализовать простейшее WebRTC приложение.
Читать дальше →
Всего голосов 102: ↑98 и ↓4+94
Комментарии28

Не AdMob-ом единым. Обзор интересных рекламных сетей и не только

Время на прочтение9 мин
Количество просмотров67K
При разработке игр или приложений у каждого девелопера возникают вопросы о монетизации. Естественно сразу же приходит на ум AdMob, хотя таких систем намного больше, и возможно, в некоторых случаях имеет смысл даже отказаться от него. Ведь баннерная реклама обычно достаточно навязчива и “бьет наугад”, куда интересней более персонализированная реклама, в таком случае и рекламодатель, паблишер и самое главное конечный пользователь останутся в выигрыше.
Мы составили список необычных рекламных систем, которые могут помочь разработчикам в монетизации их приложений. А также краткий обзор услуг и цен для рекламодателей.

Читать дальше →
Всего голосов 30: ↑25 и ↓5+20
Комментарии25

Listen! — новый облачный плеер для Google Chrome с поддержкой ВКонтакте и LastFM

Время на прочтение2 мин
Количество просмотров16K
Я люблю слушать музыку и узнавать новых исполнителей. Так получилось, что музыку я слушаю целиком альбомами, а про новых исполнителей узнаю через FunkySouls и LastFM. Некоторое время я слушал музыку через Prostopleer и Muzebra, пока ими можно было пользоваться. А еще я уже один раз делал приложение для ВКонтакте и неплохо поработал с их API. В общем я решил сделать небольшой мэшап и кажется получилось круто.

Listen! — это новое приложение для Google Chrome, в котором можно слушать и искать музыку ВКонтакте, сохранять ее в облако Google Drive для прослушивания без интернета и даже скачивать ее на компьютер (sic!). А с помощью базы данных от LastFM можно знакомиться с альбомами целиком, а также похожими исполнителями.

исполнитель
Читать дальше →
Всего голосов 63: ↑54 и ↓9+45
Комментарии125

Получение любимых аудиозаписей с pandora.com

Время на прочтение5 мин
Количество просмотров25K
Для тех, кто не знает, pandora.com — интернет-радио, которое подбирает песни, согласно предпочтениям пользователей. Недавно один мой друг захотел скачать список любимых аудиозаписей. Но на самой пандоре, такой возможности нет. Поэтому пришлось влезть в ее нутро…
Читать дальше →
Всего голосов 37: ↑31 и ↓6+25
Комментарии26

Рекомендательные системы: постановка задачи

Время на прочтение5 мин
Количество просмотров31K
Всем привет! Меня зовут Сергей, я математик, и я определяю развитие рекомендательной системы Surfingbird. Этой статьёй мы открываем цикл, посвящённый машинному обучению и рекомендательным системам в частности – пока не знаю, сколько в цикле будет инсталляций, но постараюсь писать их регулярно. Сегодня я расскажу вам, что такое рекомендательные системы вообще, и поставлю задачу чуть более формально, а в следующих сериях мы начнём говорить о том, как её решать и как учится наша рекомендательная система Tachikoma.

image

Читать дальше →
Всего голосов 32: ↑27 и ↓5+22
Комментарии22

Рекомендательные системы: You can (not) advise

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

Более полугода назад в поисках что посмотреть, я листал топ произведений. Это занятие повторялось уже много раз и успело надоесть — постоянно приходилось пропускать то, что я смотреть не хочу. Имхонетами раньше не пользовался, да и не доверял им из-за специфики искомых произведений. На сайте, где я производил поиски, была возможность создать свой список просмотренных произведений и выставить оценку, также были доступны оценки других пользователей. Тут мне в голову пришла гениальная идея, как оказалось позднее банальная, — используя оценки других пользователей делать рекомендации. Данная деятельность называется коллаборативной фильтрацией, а программа её реализующая — Рекомендательной системой(РС). Оглядываясь назад я понимаю, что совершил множество ошибок из-за недостатка информации и её труднодоступности в данной тематике, а что самое главное — сильно переоценил РС. В данном посте я сделаю обзор основных типов и алгоритмов РС, а также постараюсь передать часть своих знаний и опыта.
Читать дальше →
Всего голосов 43: ↑39 и ↓4+35
Комментарии20

WebKit для разработчиков

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


Для многих из нас, разработчиков, WebKit — черный ящик. Мы бросаем в него HTML, CSS, JS и кучу изображений, и WebKit, как-то… магически, выдает нам веб-страницу, которая выглядит и работает хорошо.
Но на самом деле, как говорит мой коллега Илья Григорик:
Веб-кит не является черным ящиком. Это — белый ящик. И не просто белый, но и открытый ящик.
Так-что, давайте попробуем разобраться в некоторых вещах:
Всего голосов 97: ↑86 и ↓11+75
Комментарии29

Курс лекций «Стартап». Питер Тиль. Стенфорд 2012. Занятие 16

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

Весной 2012 г., Питер Тиль (Peter Thiel), один из основателей PayPal и первый инвестор FaceBook, провел курс в Стенфорде — «Стартап». Перед началом Тиль заявил: «Если я сделаю свою работу правильно, это будет последний предмет, который вам придется изучать».

Один из студентов лекции записывал и выложил транскипт. В данном хабратопике degorov, переводит шестнадцатое занятие, редактор astropilot.

Занятие 1: Вызов будущего
Занятие 2: Снова как в 1999?
Занятие 3: Системы ценностей
Занятие 4: Преимущество последнего хода
Занятие 5: Механика мафии
Занятие 6: Закон Тиля
Занятие 7: Следуйте за деньгами
Занятие 8: Презентация идеи (питч)
Занятие 9: Все готово, а придут ли они?
Занятие 10: После Web 2.0
Занятие 11: Секреты
Занятие 12: Война и мир
Занятие 13: Вы — не лотерейный билет
Занятие 14: Экология как мировоззрение
Занятие 15: Назад в будущее
Занятие 16: Разбираясь в себе
Занятие 17: Глубокие мысли
Занятие 18: Основатель — жертва или бог
Занятие 19: Стагнация или сингулярность?
Читать дальше →
Всего голосов 51: ↑47 и ↓4+43
Комментарии6

Учим язык, смотря сериалы: vlc + lua + stardict + wordnet + anki = l'amour

Время на прочтение3 мин
Количество просмотров128K
Очень уж мне нравится смотреть сериалы, а еще я учу с их помощью языки. И если раньше я прилежно останавливал видео на непонятном месте, перематывал назад, включал субтитры и забивал незнакомые слова в Анки, то сейчас я делаю то же самое. Разве что лень заставила этот процесс автоматизировать, что привело к созданию расширения Say It Again для проигрывателя VLC со следующими особенностями:

  • Навигация по субтитрам (переход к предыдущей, следующей фразе) — клавиши y, u;
  • Сохранение слова, его транскрипции и перевода вместе с контекстом (см. скриншот) — клавиша i;
  • Функция «Еще раз»: переход к предыдущей фразе, показ субтитра и пауза — клавиша backspace;
  • Подключение любых словарей в формате Stardict (в сети лежат словари из Lingvo x3);
  • Экспорт в Anki или другую программу, понимающую файлы в формате csv;


Say It Again screenshot


Зачем все это нужно и как это работает?
Всего голосов 118: ↑113 и ↓5+108
Комментарии55

Алгоритм Диффи — Хеллмана

Время на прочтение1 мин
Количество просмотров165K
Одна из фундаментальных проблем криптографии – безопасное общение по прослушиваемому каналу. Сообщения нужно зашифровывать и расшифровывать, но для этого обеим сторонам нужно иметь общий ключ. Если этот ключ передавать по тому же каналу, то прослушивающая сторона тоже получит его, и смысл шифрования исчезнет.

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

Предлагаю ознакомиться с принципом работы алгоритма Диффи – Хеллмана в замечательном видео от Art of the Problem в моем переводе.

Всего голосов 140: ↑132 и ↓8+124
Комментарии33

Cypher десктопное приложение, написанное на основе платформы node-webkit

Время на прочтение4 мин
Количество просмотров9.1K
В статье пойдет речь о десктопном приложении, написанном на основе платформы node-webkit. На Хабре были статьи которые описывают саму платформу: раз, два, три. Но реальных приложений которые используют эту платформу не так много. В начале я раскажу о приложении, о его задачах и функционале, дальше я перейду к техническим возможностям платформы node-webkit, которые были использованы в приложении. Статья не изобилует вставками кода, весь код выложен на github. В конце статьи будут ссылки на все использованные источники информации.

Моей целью было создание полноценного приложения с использованием платформы node-webkit. Задача приложения — защита онлайн переписки, осуществляемой через мессенджеры (Skype, Google Talk, еtc.) Посылая по открытым каналам уже зашифрованную информацию, вы усложняете процесс получения доступа к данным третьей стороной. Существует множество способов зашифровать сообщение, но проблема в том, что ключ для шифрования нужно сообщить вашему собеседнику. Допустим, ваш канал прослушивают, и имеют доступ ко всему, что вы отправляете и получаете. Для решения этой задачи приложение использует алгоритм Дэффи-Хеллмана. Про этот алгоритм уже расказывали на Хабре, вот ссылка. Но больше всего впечатляет видео, которое наглядно описывает, как работает алгоритм — YouTube. Более подробно об этом алгоритме можно почитать в Википедии.

И так приступим
Всего голосов 17: ↑15 и ↓2+13
Комментарии11

Создание телеканала в интернете при помощи домашнего компьютера

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

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

Итак если вы хотите организовать собственный тв канал в интернете нам понадобится список необходимых для этого программ:

1 вариант (бюджетный и с самой низкой нагрузкой на машину) — VLC media player, acestream (torrentstream). Все будет работать и под Windows и под Linux.

2 вариант (только под Windows) — VLC media player, acestream (torrentstream), XSplit Broadcaster и/или VH Screen Capture driver, а также по желанию Virtual Audio Cable.
Читать дальше →
Всего голосов 45: ↑39 и ↓6+33
Комментарии58

Головная станция IPTV

Время на прочтение4 мин
Количество просмотров92K
Доброго времени суток!

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



Итак, что мы имеем:

  • 7 спутниковых антенн на 11 спутников
  • Мультисвитчи в нужном количестве
  • ~80 спутниковых приемников
  • Видеошлюзы (стриммеры)
  • Серверы Middleware
  • Видео сервера (VOD, NPVR)
  • Сервера потокового шифрования
  • Систему мониторинга




Читать дальше →
Всего голосов 91: ↑85 и ↓6+79
Комментарии112

Multicast вещание видеофайлов с помощью tsplay

Время на прочтение1 мин
Количество просмотров24K
Добрый день.

Возникла необходимость вещать видеофайлы в сеть (трейлеры фильмов). Первая мысль, которая возникла у меня в голове (и у вас тоже, наверное?) — это VLC. Установил VLC, настроил, запустил и результат: все работает. Через полчаса замечаю, что иногда подсыпается изображение. Грешу на дисковую подсистему. Через час понимаю, что некоторые тяжелые файлы очень сильно сыпятся, а некоторые идут идеально. Открываю анализатор TS-потоков и вижу (IAT сильно подскакивает при переключении на другой трейлер):

image

Транспортный поток неидеален, вероятно VLC виноват? Ищу другое ПО для вещания и нахожу tsplay.
Под катом небольшая инструкция по запуску вещания списка файлов через tsplay.
Сразу же показываю результаты анализатора при вещании с помощью tsplay:

image

Читать дальше →
Всего голосов 7: ↑6 и ↓1+5
Комментарии4

Испытания протокола TCP с линейным сетевым кодированием (TCP/NC)

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


Инженеры из Массачусетского технологического института под руководством Муриель Медард (Muriel Médard) уже много лет ведут разработку расширения TCP/NC для протокола TCP, с помощью которого можно сохранить максимальную скорость передачи данных в сетях с потерями пакетов. В первую очередь, TCP/NC планируют применять в беспроводных сетях WiFi, где потери пакетов обычно составляют 2-5%, а временами до 10%. Наконец-то дошло дело до реальных экспериментов.

Во время первых полевых испытаний TCP/NC в локальной WiFi-сети общежития МТИ (потеря пакетов 2%) средняя скорость передачи данных по WiFi выросла с 1 Мбит/с до 16 Мбит/с. Тест в поезде на большой скорости (потеря пакетов 5%) показал увеличение скорости WiFi с 0,5 Мбит/с до 13,5 Мбит/с. Это вполне совпадает с теоретическими расчётами.
Читать дальше →
Всего голосов 57: ↑54 и ↓3+51
Комментарии34

VPN для iPhone

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

Организация VPN сервера для использования с iOS устройствами



Прочитав статью Теплый и ламповый интернет озаботился проблемой поднятия VPN сервера, которым можно пользоваться с iOS устройств.

Для использования OpenVPN нужен Jailbreak. Этот вариант мной не рассматривался.

iOS поддерживает L2TP, PPTP, Cisco IPSec.

Cisco IPSec работает с соответствующим оборудованием. PPTP иногда режется сотовыми операторами. Исходя из этого был выбран L2TP.

Читать дальше →
Всего голосов 29: ↑25 и ↓4+21
Комментарии43

Миллион одновременных соединений на Node.js

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


TL;DR:


  • Node.js v0.8 позволяет обрабатывать 1 млн одновременных HTTP Comet соединений на Intel Core i7 Quad/16 Gb RAM практически без дополнительных настроек.
  • На 1 соединение тратится чуть больше 10 Kb памяти (4.1 Kb Javascript Heap + 2.2 Kb Node.js Native + 3.8 Kb Kernel)..
  • V8 Garbage Collector не рассчитан на управление > ~500Mb памяти. При превышении нужно переходить на альтернативный режим сборки мусора, иначе «отзывчивость» сервера сильно уменьшается.
  • Подобный опыт можно (и нужно!) без особых затрат повторить самому (см. под катом).

Читать дальше →
Всего голосов 193: ↑187 и ↓6+181
Комментарии125

Перехват видео в браузере или TCP сниффер под Windows на коленке (часть первая)

Время на прочтение19 мин
Количество просмотров39K
Однажды, не очень давно, мне порекомендовали фоновую качалку потокового видео под названием Jaksta, которая позволяет записывать потоковое видео на диск прямо во время просмотра YouTube, Facebook видео, GoogleVideo и так далее. В результате ее установки я получил стойкий BSOD при каждой загрузке Windows. Переключившись в Safe Mode я снес нафиг это творение, но возникли вопросы.
Краткое изучение софтины показало что она устанавливет NDIS Miniport драйвер, который конкретно в моей системе стал умирать при загрузке. «Нафига такие сложности?», подумал я и решил поэкспериментировать с реализацией перехвата потокового видео из браузера без всяких драйверов.
Читать дальше →
Всего голосов 91: ↑85 и ↓6+79
Комментарии38

Обслуживание тысяч запросов в секунду на примере XBT Tracker

Время на прочтение5 мин
Количество просмотров8K
Недавно проводили тест, результаты которого показали, что одно приложение обрабатывает 2000 запросов в секунду на скромном сервере, где это было не единственной нагрузкой. При этом результат каждого запроса записывается в 3-5 таблиц в MySQL. Честно говоря, меня такой результат удивил, поэтому решил поделиться с хабрасообществом описанием архитектуры этого приложения. Подобный подход применим от баннерных показов до чатов и микроблогов, надеюсь кому-нибудь покажется интересным.

Во-первых, это приложение однопоточное. Всё делается одним процессом, работа с сокетами — неблокирующими epoll/select, никаких ожидающих ввода/вывода потоков (threads). С развитием HTTP, сначала появлением Keep-Alive, затем AJAX и набирающим популярность COMET, количество постоянных соединений с веб-сервером растёт, на нагруженных проектах измеряется тысячами и даже десятками тысяч, и если для каждого создавать свой поток (thread) со своим стеком и постоянно переключаться между ними — ресурсов сервера очень быстро не хватит.

Второй ключевой момент — что один SELECT… WHERE pk in (k1, k2, ..., kN) выполняется быстрее, чем несколько SELECT… WHERE pk=… Выполняя работу с базой данных большими пачками можно уменьшить не только число запросов в секунду, но и общую нагрузку.
Читать дальше →
Всего голосов 69: ↑67 и ↓2+65
Комментарии41

Вещание онлайн-видео с помощью nginx

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

Что такое онлайн-видео?


Под термином онлайн-видео я понимаю длительное вещание какого-то живого видеосигнала (к примеру, из телестудии). Традиционные средства отдачи видео (flv- и mp4-стриминг) в данном случае не работают, просто потому что файла, содержащего весь видеопоток, не существует.

В этой статье речь будет идти не об организации видеохостинга, а об организации видеовещания в прямом эфире. Это две принципиально разные задачи, и обычно способы их решения существенно отличаются друг от друга.
Читать дальше →
Всего голосов 89: ↑88 и ↓1+87
Комментарии61
1

Информация

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