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

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

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

Физика на Flash. Box2D Engine

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

Быстрый, удобный и мощный физический движок с открытым исходным кодом. Под катом — ссылки, небольшой туториал и пример использования.
Читать дальше →
Всего голосов 81: ↑75 и ↓6+69
Комментарии40

Бинарное обновление FreeBSD 6.2 до 8.0

Время на прочтение8 мин
Количество просмотров14K
Года два назад я поднимал знакокому сервер для трекера местной локалки. Вопрос выбора ОС не стоял в принципе, естественно FreeBSD, а версия была взята актуальная на тот момент — 6.2 i386. Но вот состоялся релиз FreeBSD 8.0, и я решил попробовать обновиться до 8-й версии на этом сервере, все равно трекер уже полмесяца не работал из-за битой базы при очередном внезапном отключении питания, а за сервером никто не следил, поэтому пару часов даунтайма никому не помешают.
Читать дальше →
Всего голосов 77: ↑72 и ↓5+67
Комментарии34

Правильное приготовление и работа с ZFS под FreeBSD

Время на прочтение15 мин
Количество просмотров45K
Некоторое время назад возникла задача построения достаточно вместительного массива для хранения оперативных инкрементальных бекапов. Причём тратить деньги особо не хотелось, а место было нужно. Решение было простым и достаточно удобным. Далее много текста.

Читать дальше →
Всего голосов 39: ↑36 и ↓3+33
Комментарии45

ХабраКарма — пишем приложение на Python for s60

Время на прочтение12 мин
Количество просмотров3.4K
imageПосле того, как мы разогрели аппетит к Python for s60 и начали учиться писать приложения, хочу предложить продолжить постигать программирование для symbain на замечательном языке программирования python.

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

Тем, кому больше важен результат, нежели процесс, милости просим в конец статьи, где вас ожидает готовое приложения HabraKarma 1.0 !!!
Поехали...
Всего голосов 109: ↑80 и ↓29+51
Комментарии48

Архитектура системы приема электронных платежей на сайте

Время на прочтение6 мин
Количество просмотров13K
Для многих проектов наступает момент, когда хочется, чтобы сайт приносил прибыль.
И не только в виде оплаты рекламных баннеров или контекстной рекламы, но и в виде денежек от своих посетителей.

Неважно, что им предложить — крутой спецэффект на аватар, футболку с символикой проекта или доступ к приватным сообщениям первой красавицы сайта. Важно, как получить за это деньги. Причем желательно сразу, пока пользователь не передумал потратить свои кровные.

Такое ограничение сразу приводит к вычеркиванию из списка методов оплаты заполнение квитанции в Сбербанке. Да, это тоже метод, но метод небыстрый. Особенно, если на дворе поздний вечер, пользователь расслабился за бутылкой пива чашкой чая. Какой Сбербанк, тёпленьким его брать, тёпленьким!

Читать дальше →
Всего голосов 86: ↑72 и ↓14+58
Комментарии76

Перевод Django Documentation: Models. Part 1

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

Доброго времени суток!

Данный топик представляет собой первую часть перевода документации Django, а именно раздела о моделях. Сразу хочу сказать, что я не являюсь профессиональным переводчиком и изначально делал перевод для себя. Все замечания и вопросы просьба писать в комментариях или посылать по хабрапочте. Надеюсь, информация окажется полезной для вас.

_Модели
___Небольшой пример
___Использование моделей
___Поля
_____Типы полей
_____Параметры полей
_____Автоматические первичные ключи
_____Подробные имена полей


Перевод Django Documentation: Models. Part 2
Перевод Django Documentation: Models. Part 3
Перевод Django Documentation: Models. Part 4 (Last)

Читать дальше →
Всего голосов 70: ↑64 и ↓6+58
Комментарии29

Перевод Django Documentation: Models. Part 2

Время на прочтение10 мин
Количество просмотров17K
image

Доброго времени суток!

Этот топик является продолжением перевода документации Django, если быть точным — раздела о моделях.

Перевод Django Documentation: Models. Part 1

_____Отношения между моделями
_______Отношение многие-к-одному
_______Отношение многие-к-многим
_______Дополнительные поля в отношении многие-к-многим
_______Отношение один-к-одному
_____Модели и файлы
_____Ограничения на имена полей
_____Собственные типы полей


Перевод Django Documentation: Models. Part 3
Перевод Django Documentation: Models. Part 4 (Last)

Читать дальше →
Всего голосов 53: ↑49 и ↓4+45
Комментарии58

35 свежих и полезных jQuery плагинов

Время на прочтение6 мин
Количество просмотров46K
Быстрый и мощный jQuery может помочь дизайнерам и разработчикам в создании прекрасных интерактивных сайтов, которые будут привлекательными и совместимыми с большинством из браузеров. Ваш сайт будет и интересным и развлекательным. Навигация, галереи и слайдшоу являются теми компонентами, которые могут блистать на вашем сайте.

Данная статья содержит 35 полезных и свежих jQuery плагинов сфокусированных на навигации, галереях, слайдшоу, календарях, табуляции и т.д., которые уменьшат время и требуемые усилия для увеличения количества посетителей вашего сайта.
Читаем дальше...
Всего голосов 101: ↑80 и ↓21+59
Комментарии26

Использование 7zip для бэкапа данных

Время на прочтение2 мин
Количество просмотров197K
Для наступления полного и тотального счастья в плане бэкапов информации на рабочем сервере решил отказаться от Acronis True Image в пользу обычной архивации данных с помощью 7-Zip.

Для выполнения поставленной задачи естественно использовал консольную версию архиватора.
Читать дальше →
Всего голосов 51: ↑36 и ↓15+21
Комментарии65

Сделай бочку!

Время на прочтение5 мин
Количество просмотров14K
Почти никто из начинающих продюсеров не избегает соблазна поставить себе дюжину библиотек сэмплов из текущего хит-парада журнала Computer music, а уж мысли вроде «вот сейчас солью себе 20 гигов рефиллов для Ризона – и сразу нарулю мегахит!» мелькали, наверное, у каждого новичка.
Конечно, нет ничего плохого в том, чтобы использовать для написания своих нетленок готовые пресеты и сэмплы – в конце концов, именно для этого они и продаются (мы же все их честно покупаем, да?;).
Однако не стоит забывать, что можно создавать красивые, интересные, а главное – абсолютно уникальные звуки самостоятельно, используя простейшие средства и немного фантазии.
Саунддизайн – занятие не только крайне увлекательное, но и полезное во всех отношениях: вспомните Бенни Бенасси, который много лет был обычным диджеем средней руки, известным разве что в пределах родного Милана, однако стоило ему нарулить свой знаменитый мегазвучище, как он тут же превратился в суперзвезду мирового масштаба.

Сегодня мы попробуем с вами создать басовый барабан или просто «бочку». При всей своей кажущейся простоте, нередко именно бочка определяет характер звучания (а в конечном итоге — и коммерческий успех) всего трека, поэтому продюсеры уделяют ей особое внимание.
Перед тем, как приступить к кручению ручек синтезатора, давайте вспомним, как, собственно, формируется звук, который наш мозг идентифицирует, как удар бочки.
Колотушка ударяет по мембране, та натягивается и очень быстро возвращается в исходное состояние, в котором колеблется еще некоторое время. Даже ни разу в жизни не слышав этого звука, можно сообразить, что он будет состоять из короткого высокочастотного щелчка и относительно длинной низкочастотной составляющей – «тела» бочки.
Читать дальше →
Всего голосов 50: ↑41 и ↓9+32
Комментарии34

Tornado Web Server

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


Команда friendfeed.com, недавно присоединившаяся к Facebook, выложила в открытый доступ собственный неблокирующий веб-сервер на Python. Из-за своей неблокирующей природы (используется epoll) сервер легко выдерживает тысячи одновременных подключений. У Tornado есть все шансы стать лучшим выбором для реализации технологии Comet средствами языка Python.

Производительность впечатляет:


Документация (на англ.) — www.tornadoweb.org/documentation
Всего голосов 62: ↑59 и ↓3+56
Комментарии38

Async Hearts

Время на прочтение7 мин
Количество просмотров10K
Некоторое время назад случилось несколько событий, изменивших привычный вид ландшафта веб-разработки на Питоне: Facebook приобрела сервис Friendfeed и сразу же открыла исходный код технологии проекта — http-сервер и микрофреймворк Tornado. Одновременно разработчик Friendfeed опубликовал в своем блоге заметку, в которой привел причины, по которым было решено с нуля разрабатывать собственный асинхронный веб-сервер.

Статья — экскурсия в самое сердце этого и конкурирующего (Twisted.web) проектов, их циклы асинхронной обработки поступающих данных.

Читать дальше →
Всего голосов 52: ↑51 и ↓1+50
Комментарии29

Список полезных PHP классов и библиотек

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

Email


  • Swift Mailer
    Swift Mailer легко интегрируется в любое PHP-приложение. Это гибкий и элегантный ООП-подход к отправке писем с множеством функций: отправка эл.почты, используя SMTP, SendMail, Postfix, поддержка серверов и др.
  • PHPMailer
    Лучший класс для работы с эл. почтой. Поддерживает сообщения в цифровой форме, S/MIME шифрование, текстовые и HTML-письма, изображения, поддерживает несколько Email’ов, SMTP-аутентификация.

Читать дальше →
Всего голосов 175: ↑145 и ↓30+115
Комментарии75

Индексы в MySQL: многоколоночные индексы против комбинированных индексов

Время на прочтение9 мин
Количество просмотров120K
Я часто вижу ошибки, связанные с созданием индексов в MySQL. Многие разработчики (и не только новички в MySQL) создают много индексов на тех колонках, которые будут использовать в выборках, и считают это оптимальной стратегией. Например, если мне нужно выполнить запрос типа AGE=18 AND STATE='CA', то многие люди просто создадут 2 отдельных индекса на колонках AGE и STATE.

Намного лучшей (здесь и далее прим. переводчика: а обычно и единственной верной) стратегией является создание комбинированного индекса вида (AGE,STATE). Давайте рассмотрим почему это так.

Читать дальше →
Всего голосов 74: ↑58 и ↓16+42
Комментарии57

Умные сессии

Время на прочтение2 мин
Количество просмотров3.8K
Решаем проблемы производительности.

Исходные данные.
Транслируем футбольные матчи через интернет. Посетителей: в обычные дни 5 000 — 10 000, в дни матчей 100 000 — 150 000.

В дата-центре
  • 5 веб-серверов с апачем и ПХП, наружу вывешены через аппаратный балансировщик загрузки
  • 2 пула мемкеша: для сессий и данных из веб-сервисов

Проблема
При большом наплыве посетителей происходит перегрузка локальной сети из-за большого количества обращений к мемкешу. Усугублящие факторы: 100Мбит сеть, оба пула на одних и тех же серверах.
Читать дальше →
Всего голосов 79: ↑54 и ↓25+29
Комментарии70

Собеседование. Сегодня

Время на прочтение5 мин
Количество просмотров24K
Interview
В сферу моих профессиональных обязанностей входит проведение собеседования для соискателей на должность PHP разработчика. И дальше речь пойдет о собеседовании…
Читать дальше →
Всего голосов 177: ↑122 и ↓55+67
Комментарии552

Работа с классом TweenLite

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

Доброго времени суток!



Для создания обыкновенного банера во Flash в основном требуються только навыки анимации и знание AS1, чтобы где необходимо поставить stop(); или перейти по ссылке getURL();, и обычно этого хватает. Но если заказчик просит сделать мини мультфильм внутри банера, да еще и растровые изображение присутствуют, а в тоже время администраторы сайта, где будет размещаться банер, ставят на него ограничение 20 кб. Использование множества слоев с Motion tween и Shape tween, объектов в библиотеке и т.д. За счет всего этого объем банера превышает допустимую квоту.

Ниже будем избавляться от tween'ов на нашей сцене и опишем все движения при помощи класса TweenLite(используется с AS2,AS3).
Читать дальше →
Всего голосов 6: ↑6 и ↓0+6
Комментарии13

Были получены исходники 3300 глобальных интернет-проектов

Время на прочтение5 мин
Количество просмотров275K
Пару месяцев назад нами (2Товарища и Антон Исайкин) была обнаружена уязвимость, присущая в основном большим интернет-проектам (вроде Рамблера, Мейла, Яндекса, Оперы и пр.). Удалось получить доступ к файловым структурам известнейших сайтов (в общей сложности 3320 сайтов) и в ряде случаев их полные исходные коды.
Читать дальше →
Всего голосов 1226: ↑1190 и ↓36+1154
Комментарии909

Три интересные задачи на знание SQL

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

Буквально несколько часов назад, после внимательного изучения комментариев вот к этому топику я был несколько удивлен что многие не очень любят использовать условия HAVING и похоже другие возможности СУБД. Скажу прямо — мне очень понравилась обсуждение простейшего и не работающего запроса, в результате которого многие узнали для себя много нового и познавательного (это мое личное мнение). Поэтому я решил сделать вот что — вывести три моих самых любимых задачи по знанию SQL (MySQL) на суд общественности.

Данные задачи абсолютно реальные, и в отдаленном светлом прошлом действительно имели место, и были благополучно решены жертвой некоторого количества рабочего времени и нервных клеток. Я уверен на 100% что они актуальны и по сей день, и будут актуальны еще долго. Сложными их назвать нельзя, но и очень простыми тоже (в зависимости от уровня подготовки конечно).

Читать дальше →
Всего голосов 62: ↑43 и ↓19+24
Комментарии82

Сервер на стероидах: FreeBSD, nginx, MySQL, PostgreSQL, PHP и многое другое

Время на прочтение16 мин
Количество просмотров40K
Нравится мне эта картинка, у меня, вот никогда такие красивые графики в какти не получались =(

Введение


С момента написания мной предыдущей статьи по оптимизации этой связки прошло довольно много времени. Тот многострадальный Pentium 4 c 512Мб памяти, обслуживающий одновременно до тысячи человек на форуме и до 150,000 пиров на трекере уже давно покоится на какой-нить немецкой, свалке, а клуб сменил уже не один сервер. Всё сказанное в ней всё ещё остаётся актуальным, однако есть вещи которые стоит добавить.
Статья большая, так что будет поделена на логические блоки:

0. Зачем вообще что-то оптимизировать?
  
1. Оптимизация ОС (FreeBSD)
  1.1 Переход на 7.х 
  1.2 Переход на 7.2
  1.3 Переход на amd64
  1.4 Разгрузка сетевой подсистемы
  1.5 FreeBSD и большое кол-во файлов
  1.6 Softupdates, gjournal и mount options
  
2. Оптимизация фронтенда (nginx)
  2.1 Accept Filters
  2.2 Кеширование
  2.3 AIO
  
3. Оптимизация бэкенда
  3.1 APC
  3.1.1 APC locking
  3.1.2 APC hints
  3.1.3 APC fragmentation
  3.2 PHP 5.3
  
4. Оптимизация базы данных
  4.1 MySQL 
  4.1.1 Переход на 5.1
  4.1.2 Переход на InnoDB
  4.1.3 Встроеный кеш MySQL - Query Cache
  4.1.4 Индексы
  
4.2 PostgreSQL
  4.2.1 Индексы
  4.2.2 pgBouncer и другие.
  4.2.3 pgFouine
  
4.3 Разгрузка базы данных
  4.3.1 SphinxQL
  4.3.2 Не-RDBMS хранилище
  4.4 Кодировки
  4.5 Асинхронность
  
Приложение. Мелочи.
  1. SSHGuard или альтернатива.
  2. xtrabackup
  3. Перенос почты на другой хост
  4. Интеграция со сторонним ПО
  5. Мониторинг
  
 6. Минусы оптимизации

Кому что-нибудь из этого списка интересно, жмём сюда...
Всего голосов 375: ↑368 и ↓7+361
Комментарии105

Информация

В рейтинге
Не участвует
Откуда
Киев, Киевская обл., Украина
Зарегистрирован
Активность