Pull to refresh
0
0
Send message

Настройка nginx

Reading time5 min
Views292K
Тема правильной настройки nginx очень велика, и, боюсь, в рамки одной статьи на хабре никак не помещается. В этом тексте я постарался рассказать про общую структуру конфига, более интересные мелочи и частности, возможно, будут позже. :)

Неплохой начальной точкой для настройки nginx является конфиг, который идёт в комплекте с дистрибутивом, но очень многие возможности этого сервера в нём даже не упоминаются. Значительно более подробный пример есть на сайте Игоря Сысоева: sysoev.ru/nginx/docs/example.html. Однако, давайте лучше попробуем собрать с нуля свой конфиг, с бриджем и поэтессами. :)
подробности
Total votes 88: ↑78 and ↓10+68
Comments53

Анимированные меню на jQuery [часть 2]

Reading time3 min
Views4.4K
По мотивам этого перевода.

На одном из текущих проектов мы хотели добавить эффект на иконки меню — приподнимание в момент наведения мышкой. Я поэкспериментировал, используя встроенный в jquery эффект animate, на иконках двух типов: с отражениями и с тенями.

image

Смотрим демо
Читаем далее...
Total votes 85: ↑79 and ↓6+73
Comments39

Стабильное вещание IPTV через VLC

Reading time8 min
Views61K
С IPTV пришлось познакомиться поближе, когда в компании интернет-провайдера где я работал, решили организовать вещание IPTV. Выяснилось, что вещание осуществляется в linux и программой vlc, которая по слухам единственная в своем роде. Была установлена тарелка и DVB-карта SkyStar2, которая предположительно должна была без проблем заработать в linux'e. Так и было со всеми новыми машинами, где была установлена ubuntu server. На Debian заработало только после обновления ядра. Настройка прошла относительно легко, благо на то время уже было несколько статей на эту тему и документация к vlc была тоже очень полезна. После запуска начались некоторые проблемы с пропаданием звука и видео на каналах и другие проблемы, описанные ниже. После их появления были написаны скрипты, устраняющие эти проблемы. Сейчас на них работает 3 сервера с 5 dvb-картами в общей сложности и вещается 23 канала с 3х спутников. Под катом — перечисление проблем, которые могут появиться после запуска вещания IPTV через VLC в Linux и то как с ними бороться. Бороться будем с помощью bash.
Читать дальше →
Total votes 50: ↑48 and ↓2+46
Comments44

Лампа настроения!

Reading time2 min
Views38K
Лампа настроения (mood lamp) является RGB лампой, которая меняет цвет в случайном порядке. Была зеленая, плавно стала голубой, потом фиолетовой… какого цвета она станет в следующий момент времени не знает никто)

image

Купить такую проблематично, сделаем ее сами!)
Читать дальше →
Total votes 170: ↑163 and ↓7+156
Comments134

Принципы разработки ПО для iPhone с использованием акселерометра

Reading time11 min
Views23K
В статье рассмотрено принципы работы iPhone акселерометра, показаны примеры приложений, использующие акселерометр в качестве главного компонента, наведены рекомендации по использованию акселерометра. Также показано, как использовать акселерометр в веб-приложениях. Часть материалов была взята из статьи «Скроллинг при помощи акселерометра».

Что такое акселерометр?


Обратимся к Википедии:
Акселерометр (от лат. accelero — ускоряю и μετρέω — измеряю) — прибор, измеряющий проекцию кажущегося ускорения. Кажущееся ускорение есть равнодействующая сил не гравитационной природы, действующая на массу и отнесённая к величине этой массы. Акселерометр может применяться как для измерения проекций абсолютного линейного ускорения, так и для косвенных измерений проекции гравитационного ускорения. Последнее свойство используется для создания инклинометров. Акселерометры входят в состав инерциальных навигационных систем, где полученные с их помощью измерения интегрируют, получая инерциальную скорость и координаты носителя. Электронные акселерометры часто встраиваются в мобильные устройства (в частности, в телефоны) и применяются в качестве шагомеров, датчиков для определения положения в пространстве, автоматического поворота дисплея и других целей. В игровых приставках акселерометры используются для управления без использования кнопок — путем поворотов в пространстве, встряхиваний и т. д.


Apple — не первая компания, которая внедрила акселерометр в мобильный телефон, но первая, у которой это получилось хорошо.
Читать дальше →
Total votes 85: ↑81 and ↓4+77
Comments26

pv — маленькая, но очень полезная утилита

Reading time2 min
Views82K
Один мой друг сказал по поводу pv следующее «Я админю семь лет, мне нужна была эта тулза десятки раз, а я даже не знал что она существует». В размышлениях над тем как заполучить инвайт на Харбе, я набрал в поиске pv. И ничего не нашел.
Читать дальше →
Total votes 290: ↑280 and ↓10+270
Comments94

Подсчёт общего количества строк выборке в mySQL при использовании LIMIT

Reading time5 min
Views65K
Один хороший человек хочет попасть на хабр. Для подтверждения своих благих намерений он написал статью, которую я привожу вам.

Наверняка многие знают о существовании в mySQL функции FOUND_ROWS(). Её чаще всего используют для подсчета общего числа строк в таблице, удовлетворяющих заданным условиям. Используют её обычно совместно с директивой SQL_CALC_FOUND_ROWS следующим образом:

Mysql> SELECT SQL_CALC_FOUND_ROWS * FROM table WHERE column > 1 LIMIT 0, 50;
Mysql> SELECT FOUND_ROWS();

Результатом второго запроса будет общее количество строк в таблице «table», удовлетворяющих условию «column > 1» (а не только тех, что были возвращены первым запросом).
Следует учитывать некоторые особенности этой функции, когда используете её без директивы SQL_CALC_FOUND_ROWS, о чём добросовестно предупреждает документация mySQL: в этом случае она вернёт общее количество обработанных строк (не возвращённых!). Например:

Mysql> SELECT * FROM table LIMIT 0, 50;
Mysql> SELECT FOUND_ROWS();

Результатом, как и ожидается, будет «50». Но следующие запросы вернут не слишком ожидаемый результат:

Mysql> SELECT * FROM table WHERE column > 1 LIMIT 50, 50;
Mysql> SELECT FOUND_ROWS();

Несмотря на то, что первый запрос вернёт 50 строк, результатом будет «100», т.к. mySQL пришлось просмотреть именно 100 строк.
Читать дальше →
Total votes 67: ↑55 and ↓12+43
Comments79

Полноценные коллекции в PHP

Reading time7 min
Views9.4K
Не так давно при разработке своего проекта возникла идея реализовать полноценные коллекции для хранения объектов одинакового типа, по удобству напоминающие List<Type> в C#.
Идея состоит в том, чтобы коллекции, содержащие объекты различных типов сами по себе различались, а не имели, скажем, один унифицированный тип Collection. Другими словами, коллекция объектов типа User это не то же что коллекция объектов Book. Естественно, первой мыслью было создание различных классов для коллекций (UserCollection, BookCollection, …). Но данных подход не обеспечивает нужной гибкости, плюс ко всему, нужно тратить время на объявление каждого подобного класса.
Немного поразмыслив, реализовал динамическое создание классов коллекций. Выглядит это так: пользователь создаёт коллекцию объектов типа Book, а нужный тип BookCollection создаётся (т.е. объявляется) автоматически.
Читать дальше →
Total votes 73: ↑45 and ↓28+17
Comments74

phpFastCGI: настоящий FastCGI для PHP

Reading time2 min
Views10K
— Добрый день. Вы наверняка уже наслышаны о протоколе FastCGI, он связывает Веб-сервер и сервер приложений, его реализации есть во множестве языков. Однако, в PHP реализация FastCGI до недавних пор была представлена лишь патчем PHP-FPM, который фактически не давал прироста производительности перед mod_php, поскольку он, вопреки идеологии FastCGI, перезапускает скрипт каждый раз заново. Идеология FastCGI подразумевает единовременную инициализацию приложения при запуске (подгрузку нужных классов, соединение с базой данных, и т.д.), и выполнение запросов один за другим.
phpFastCGI — правильная реализация FastCGI, которая позволяет добиться немыслимой производительности.
Разработка идёт очень активно, и новые фичи появляются очень быстро.
Страничка проекта — phpfastcgi.googlecode.com
Пример простого приложения — code.google.com/p/phpfastcgi/source/browse/trunk/example.php
В действии пример можно увидеть здесь — ya-tv.ru/phpfastcgid (может переодически лежать, это нормально, идёт тестирование). Страничка-пример легко выдерживает 5,000 запросов в секунду всего на 20-ти воркерах.
Проект пока в стадии тестирования и живёт только в SVN.
Приглашаю всех заинтересовавшихся принять в нем посильное участие!
$ svn checkout phpfastcgi.googlecode.com/svn/trunk phpfastcgi

Читать дальше →
Total votes 80: ↑74 and ↓6+68
Comments197

Краткий обзор движков таблиц MySQL

Reading time3 min
Views78K
Цель этой статьи — дать краткий, очень сжатый обзор движков, для того, чтобы статьей можно было пользоваться при выборе движка на этапе проектирования \ создания \ оптимизации таблицы. Предполагается, что читатель знает суть вопроса по крайней мере поверхностно и способен сам отыскать всю дополнительную информацию (вопросы в комментах можно задавать всегда :) )
Читать дальше →
Total votes 123: ↑108 and ↓15+93
Comments73

Использование составных ключей для манипуляции данными в memcached

Reading time7 min
Views3.2K
Часто, при работе с memcached, возникает ситуация, когда необходимо удалить данные в самых различных местах. Например, при добавлении нового комментария, необходимо обновить не только кеш самих комментариев этой страницы, но и ленты комментариев на главной странице, списока комментариев пользователя, счетчика комментариев пользователя, общего счетчика комментариев сайта, счетчика комментариев статьи и т.д. Можно запомнить все ключи этих данных и множество раз вызвать delete() с этими ключами.

<?php
$cache->delete('comments_art123');
$cache->delete('comments_tape');
$cache->delete('comments_user123');
$cache->delete('comments_counters_art123');
$cache->delete('comments_counters_user123');
......
?>


* This source code was highlighted with Source Code Highlighter.


Как известно, memсached хранит данные плоско, то есть одному ключу соответствует всегда одно значение. Вложенных ключей не существует. Так же нет возможности удалить группу ключей, скажем по маске. Хорошо бы было, если бы можно было сделать, например, так: $cache->delete('comments*'); Но так нельзя.

Но если нельзя, но очень хочется, то можно ;)
Читать дальше →
Total votes 36: ↑26 and ↓10+16
Comments52

Организация среды веб-разработки

Reading time4 min
Views5.9K
Продуктивность коллектива веб-студии напрямую зависит от удобства среды разработки. У нас сложилась стройная система организации работы с проектами, включающая в себя набор таких неотъемлемых компонентов, как IDE, SCM, PM-система, багтрекер и development-сервер. Этим постом я бы хотел начать цикл статей, посвященных настройке и использованию этих компонентов в нашей студии.

В первой части я расскажу о самом основном — среде разработки (о том, как мы организовали совместный доступ к проектам).

Идеи

  1. Среда разработки должна быть единой для всех сайтов.
  2. Девелоперы не должны тратить время на настройку каждый своей серверной части.
  3. Работает ли над проектом один человек или несколько — контроль версий необходим.
  4. Если рабочий каталог (IDE workspace) находится на сервере, то можно поработать и дома, не тратя время на повторную настройку окружения на домашнем десктопе или ноуте.

Концепция и реализация
Total votes 53: ↑47 and ↓6+41
Comments61

Учебник по языку программирования Python (хабраиндекс)

Reading time1 min
Views313K

Серия статей «Основы Python»


I, Начало
II, Строки
III, Списки, кортежи, файлы
IV, Генераторы списков
V, Определение функций, основы
VI, Расширенное определение функций

Об основах языка Python в сжатой форме

Продвинутый уровень


Сила и красота декораторов Короткий экскурс в метапрограммирование.
Итерируем все и вся Специфика циклов в Питоне.
Как я учился работать с XML
Консервация объектов в Python Использование модуля Pickle.
Memoization в Python Оптимизация работы программ.
Простейшее рисование с помощью PIL
Regexp и Python: извлечение токенов из текста
Как писать маленькие приложения на python с графическим интерфейсом (библиотека Qt).

http://netsago.org/ru/docs/1/12/
Одеваем скрипты Python с помощью EasyGui (добавляем простой диалоговый интерфейс)

http://djbook.ru/
Учебник по Django (Python-фреймворк для веб-приложений)

Читать дальше →
Total votes 164: ↑161 and ↓3+158
Comments61

jQuery Tools v1.0.1

Reading time1 min
Views3.9K
jQuery Tools Logo
jQuery Tools v1.0.1 — это инструмент/библиотека представляет собой файл весом в 5,8 кб включающий в себя наиболее важные компоненты для вебдванольных сайтов, а именно: табы, всплывающие подсказки, плавные переходы, прокрутки, всплывающие окна и т.д.

Не буду тянуть резину, лучше, как говориться, один раз увидеть, чем сто раз услышать!
Переходим по ссылке и смотрим более 50 (!) демок:

Несколько понравившихся мне демонстраций. Очень рекомендую!
Маскируем фоновое изображение;
AJAX-табы с поддержкой истории переходов;
Неколько всплывающих окошек на одной странице.
Total votes 158: ↑152 and ↓6+146
Comments85

Memcached — стратегия кеширования

Reading time6 min
Views17K
Хочу поприветствовать хабросообщество. Из приятных впечатлении при регистрации на Хабре — так это атмосфера сказочности, которая бывает только в старых добрых сказках из советского Кинофильма.
Итак, слезы умиления прошли, приступаем. Ниже топик, который привел к инвайту на Хабр.

Memcached применяется для кеширования данных. Это делается для того, чтобы избежать лишних обращений к базе данных, т.е. в Memcached сохраняют результаты запросов. Это ускоряет работу сайта и уменьшают время выдачи страниц.
Кеш кроме преимуществ имеет свои недостатки. Одна из проблем кеша — это его актуальность. В режиме работы «только чтение» трудностей не возникает. Если же мы имеем дело с данными, которые изменяются, или изменяются часто, то эффективность кеширования резко падает.
Читать дальше →
Total votes 59: ↑38 and ↓21+17
Comments88

Ресурсы, которые помогут выучить английский язык

Reading time1 min
Views54K
В статье «Как учить английские слова» возникло очень оживленное обсуждение, в котором читатели привели ряд ссылок на интересные ресурсы. Теперь все они собранны в одном месте.
Читать дальше →
Total votes 82: ↑78 and ↓4+74
Comments53

phpThread: нити в PHP? Запросто

Reading time2 min
Views2.2K
Если вы хотите научиться писать многопоточные приложения на PHP или здорово упростить себе жизнь — статья для вас.

Раньше для этих целей я пользовался либо запуском несколько копий скрипта, либо же использовал pcntl на более низком уровне, чем хотелось бы. Это, а от части и Java-идеология работы с потоками, побудили меня к написанию пакета phpThread.
Читать дальше →
Total votes 75: ↑61 and ↓14+47
Comments78

Юнит-тестирование в PHP

Reading time13 min
Views187K
Язык PHP очень легок для изучения. Это, а так же обилие литературы «Освой _что_угодно_ за 24 часа» породило большое количество, мягко говоря, некачественного кода. Как следствие, рано или поздно любой программист, который выходит за рамки создания гостевой книги или сайта-визитки сталкивается с вопросом: «а если я здесь немножко добавлю, все остальное не ляжет?» Дать ответ на этот вопрос и на многие другие может юнит-тестирование.

В самом начале хочется оговориться — здесь речь не будет идти о TDD и методологиях разработки ПО. В данной статье я попробую показать начинающему PHP-разработчику основы использования модульного тестирования на базе фреймворка PHPUnit
Начнем?..
Total votes 97: ↑90 and ↓7+83
Comments90

8 отличных хитростей jQuery

Reading time4 min
Views28K
imageКому не нравится jQuery? Это быстрая и простая javascript-библиотека стала очень популярной в 2008 году. В этой статье я собрал список восьми очень полезных jQuery-техник, советов и хитростей.
Читать дальше →
Total votes 122: ↑95 and ↓27+68
Comments85

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Registered
Activity