Читать дальше →
Игорь Карпов @lilo_panic
Пользователь
Основы репликации в MySQL
10 мин
330KС репликацией серверов MySQL я познакомился относительно недавно, и по мере проведения разных опытов с настройкой, записывал, что у меня получалось. Когда материала набралось достаточно много, появилась идея написать эту статью. Я постарался собрать советы и решения по некоторым самым основным вопросам, с которыми я столкнулся. По ходу дела я буду давать ссылки на документацию и другие источники. Не могу претендовать на полноту описания, но надеюсь, что статья будет полезной.
+68
DivShot — онлайн-сервис прототипирования Bootstrap
1 мин
75KDivShot — отличный новый инструмент для работы с Twitter Bootstrap. С помощью него создавать прототипы интерфейсов с использованием популярного CSS-фреймворка стало до безобразия просто.
+135
Реальное применение WebRTC в сервисах IP-телефонии
2 мин
21KНа Хабре уже сообщалось о технологии WebRTC (Web Real-Time Communications). Стандарту WebRTC, который в настоящее время находится еще в черновом варианте, пророчат большое будущее, и в дальнейшем развитие Интернета и веб-технологий он вполне готов повторить путь Skype.
WebRTC может быть использован для создание принципиально новой категории веб-приложений, способных работать с голосовым и видео трафиком без задействования сторонних технологий и программ, с использованием только HTML5 и JavaScript, что существенно облегчит разработчикам создание приложений.
WebRTC может быть использован для создание принципиально новой категории веб-приложений, способных работать с голосовым и видео трафиком без задействования сторонних технологий и программ, с использованием только HTML5 и JavaScript, что существенно облегчит разработчикам создание приложений.
+16
Сервер онлайн-вещаний на базе nginx
10 мин
238KВведение
Привет всем! Несколько месяцев назад на Хабре была опубликована статья «Вещание онлайн-видео с помощью nginx» , в которой Aecktann рассказал о своем опыте внедрения разрабатываемого мной модуля к nginx для вещания видео — nginx-rtmp-module. С тех пор продукт активно развивался и в этой статье я более подробно расскажу о нем.
Вещатель нужен для передачи видео-потока клиенту. Речь идет либо о живом потоке, либо о вещании записанного видео (VOD, Video-on-demand). Существует большое количество технологий вещания видео. Среди них можно выделить традиционные протоколы, такие как RTMP или MPEG-TS, а также появившиеся в последнее время технологии адаптивного вещания поверх HTTP. К последним относятся HLS (Apple), HDS (Adobe), Smooth Streaming (Microsoft), MPEG-DASH. При выборе технологии основным фактором является ее поддержка на клиентской стороне. Именно поэтому вещание в формате RTMP на текущий момент является одним из самых распространенных. Протокол HLS поддерживается устройствами компании Apple, а также некоторыми версиями Android.
+82
Прекратите скручивать — 2. О способах крепления кабеля
7 мин
559KТуториал
По заявкам слушателей, так сказать. Правильно соединить кабель — половина дела, но если он будет свободно болтаться, то долго он не проживет — или заденут, или порвут, или откусят(необязательно со злыми намерениями). А может просто под своим весом выскользнуть из соединения. А может не выскользнуть, что еще хуже — поди-ка найди место пропадания контакта. Так что эта статья расскажет о том, какими способами можно закрепить кабель так, чтоб он никуда не делся.
Да и вот такие крепления некрасивы, неудобны, и выдают непрофессионала:
Да и вот такие крепления некрасивы, неудобны, и выдают непрофессионала:
+295
Онлайн-инструменты для кодеров
2 мин
284KОнлайн-сервисы становятся все популярнее, постепенно усложняя функционал и улучшая интерфейсы. В этой подборке представлены онлайн-инструменты для кодеров.
«Это Google Docs, только для кода» — так говорят о проекте. Облачный сервис вырос из Mozilla Bespin. Основные фишки: SSH, drag-and-drop и возможность разработки оффлайн.
Cloud9
«Это Google Docs, только для кода» — так говорят о проекте. Облачный сервис вырос из Mozilla Bespin. Основные фишки: SSH, drag-and-drop и возможность разработки оффлайн.
+178
Декоратор cached_property
3 мин
27KКак часто вы пишете такие конструкции?
Это очень удобно, значение атрибута param при таком подходе не хранится напрямую в объекте, но и не вычисляется каждый раз. Вычисление происходит при первом обращении, и это значение сохраняется в объекте под временным именем _param. Если меняются условия, от которых зависит значение param, его можно удалить, и тогда оно снова вычислится при следующем обращении. Или можно сразу присвоить актуальное значение, если таковое известно.
У этого кода есть и минусы: у объекта появляется лишний атрибут с именем _param; при каждом обращении к атрибуту вызывается метод param(), который делает проверку hasattr; получившийся код достаточно большой, особенно если таких атрибутов в классе несколько.
class SomeClass(object):
@property
def param(self):
if not hasattr(self, '_param'):
self._param = computing()
return self._param
@param.setter
def param(self, value):
self._param = value
@param.deleter
def param(self):
del self._param
Это очень удобно, значение атрибута param при таком подходе не хранится напрямую в объекте, но и не вычисляется каждый раз. Вычисление происходит при первом обращении, и это значение сохраняется в объекте под временным именем _param. Если меняются условия, от которых зависит значение param, его можно удалить, и тогда оно снова вычислится при следующем обращении. Или можно сразу присвоить актуальное значение, если таковое известно.
У этого кода есть и минусы: у объекта появляется лишний атрибут с именем _param; при каждом обращении к атрибуту вызывается метод param(), который делает проверку hasattr; получившийся код достаточно большой, особенно если таких атрибутов в классе несколько.
+39
Django Admin Bootstrap Theme
2 мин
25KБуду краток:
Подробности, что еще не работает, и как это установить — под катом.
Подробности, что еще не работает, и как это установить — под катом.
+41
HowTo: Как подружить Django с WebSocket (socket.io, sockjs)
10 мин
33KVersion: 0.2
Возникла у меня потребность атомарного обновления в реальном времени страницы у некоторого количества пользователей в зависимости от действий других пользователей (негербалайф чат). Понятное дело, можно всё выкинуть в помойку и, по-молодецки, запилить с нуля на tornado/twisted.web, но явно не самый продуктивный путь (да и я не мо́лодец ни разу) когда всё что надо — уже работает на Django и нужно всего-то чуть-чуть… Естественным образом, по сути своей, сюда просится WebSocket. И всё бы ничего но Django WSGI приложение, а этот стандарт не предполагает таких выкрутасов даже близко (пока). Гугления интернетов навели, в очередной раз, на труд известного python-гуру kmike (это без сарказма, т.к. его работы выручали меня лично уже не однократно, за что нижайший ему поклон!).
Итак если вы хотите скрестить ваш Django проект с websocket посредством js библиотеки socket.io или sockjs — вилькоммен!
Возникла у меня потребность атомарного обновления в реальном времени страницы у некоторого количества пользователей в зависимости от действий других пользователей (не
Итак если вы хотите скрестить ваш Django проект с websocket посредством js библиотеки socket.io или sockjs — вилькоммен!
+13
Использование RabbitMQ в django проектах без Celery, и что нового в Celery 3.0
8 мин
32KДумаю что большинство python программистов уже в какой-то степени знакомы с возможностями Celery. В 1-ой части я расскажу, как можно использовать RabbitMQ без celery, а во второй части — краткий обзор новых возможностей celery 3.0.
Об установке связки Django-Celery-RabbitMQ можно почитать тут.
Про использование RabbitMQ хорошо написано тут, и тут, ну и на сайте RabbitMQ.
Об установке связки Django-Celery-RabbitMQ можно почитать тут.
Про использование RabbitMQ хорошо написано тут, и тут, ну и на сайте RabbitMQ.
+18
wireframe.cc — самый простой инструмент прототипирования интерфейсов
1 мин
66KНа сегодняшний день существует множество веб-приложений для удобного и быстрого прототипирования интерфейсов, но wireframe.cc — это лучший из тех, что мне довелось попробовать.
Вот его основные особенности:
Вот его основные особенности:
+49
Python — оптимизация хвостовой рекурсии
1 мин
33KНе секрет, что Python не оптимизирует хвостовую рекурсию. Более того сам Гвидо является противником этого. Но если кому нужно, есть небольшое изящное решение. Под катом…
+43
Прекратите скручивать (восклицательный знак)
6 мин
1.7MТуториал
+652
Производительность в Python. Легкий путь
2 мин
75KТуториал
Перевод
Всегда знал, что одно из достоинств Python — возможность переписать самые тормозные куски кода на Си и увеличить быстродействие программы до недостижимых интерпретируемым языкам высот. Но сам ни разу не пробовал, т.к. считал что это слишком сложно. После прочтения этой статьи больше так не считаю.
Программисты знакомые с ctypes врядли найдут тут что-то интересное, новичков же прошу под кат.
Программисты знакомые с ctypes врядли найдут тут что-то интересное, новичков же прошу под кат.
+48
Cubieboard — достойный соперник Raspberry Pi
1 мин
212KМини-компьютеры стремительно занимают свою нишу на рынке хай-тек устройств. Не успела отгреметь кампания «Raspberry Pi», а на дистанцию стали выходить другие интересные и недорогие решения. Tom Cubie, инженер из Китая, решил сделать свой вариант малобюджетного ARM-компьютера, умещающегося на плате размером 6 на 10 сантиметров.
+70
Потрясающая, но невидимая глубина
5 мин
172KПеревод
Вы только что зашли на страницу Google.
Просто, не так ли?
Что же на самом деле произошло?
Ну, если вы немного понимаете, как работают браузеры, то все не так просто. Вы только что задействовали HTTP, HTML, CSS, ECMAscript и прочее. В действительности, это такие невероятно сложные технологии, что от них у любого инженера голова пойдет кругом, стоит лишь попробовать поглубже вникнуть в них. И нет ни одной компании, которая могла бы справиться с ними в одиночку.
Давайте упростим.
Вы только что установили соединение с www.google.com.
Просто, не так ли?
Что же на самом деле произошло?
+181
Определение доминирующих цветов: Python и метод k-средних
2 мин
38KAssorium
На Хабре публиковалось несколько статей с алгоритмами и скриптами для выбора доминирующих цветов на изображении: 1, 2, 3. В комментариях к тем статьям можно найти ссылки ещё на десяток подобных программ и сервисов. Но нет предела совершенству — и почему бы не рассмотреть способ, который кажется самым оптимальным? Речь идёт об использовании кластеризации методом k-средних (k-means).
+49
Доменные перлы или самые дурацкие домены
5 мин
77KИменно благодаря домену мы составляем свое первое впечатление о сайте, который намерены посетить, но иногда это впечатление бывает обманчиво.
Немного статистики. По данным на 2010 год в сети Интернет насчитывалось около 192 миллионов доменных имен, а их прирост составил примерно 3.7 миллиона в месяц. Среди такого огромного количества обыкновенных, а иногда и весьма банальных имен, встречаются домены, способные вызвать здоровый смех ну или хотя бы удивленную улыбку. Уважаемые дамы и господа, представляю Вашему вниманию подборку одних из самых неординарных доменных имен.
Немного статистики. По данным на 2010 год в сети Интернет насчитывалось около 192 миллионов доменных имен, а их прирост составил примерно 3.7 миллиона в месяц. Среди такого огромного количества обыкновенных, а иногда и весьма банальных имен, встречаются домены, способные вызвать здоровый смех ну или хотя бы удивленную улыбку. Уважаемые дамы и господа, представляю Вашему вниманию подборку одних из самых неординарных доменных имен.
+39
Подборка полезного для любителей Twitter Bootstrap
2 мин
250KВ подборке сервисы, плагины, темы и другие полезности, облегчающие работу с Twitter Bootstrap.
BootSwatchr — быстрая стилизация Twitter Bootstrap.
Стилизация
BootSwatchr — быстрая стилизация Twitter Bootstrap.
+238
Информация
- В рейтинге
- Не участвует
- Откуда
- Москва, Москва и Московская обл., Россия
- Дата рождения
- Зарегистрирован
- Активность