Как стать автором
Обновить
4
0
Truck Fudeau @oxff

Team Lead, Senior Java Developer, DevOps, DBA

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

Прогрессивные технологии, как способ выжать из сервера максимум

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

Вступление


Просто красивый rrdtool =)
Забавно, но когда программист разрабатывает какой-либо продукт, он редко задумывается над вопросом могут ли на одну кнопку в один момент времени нажать одновременно 2000 человек. А зря. Оказывается могут. Как ни странно но большинство движков, написанных такими программистами, очень плохо ведут себя под большими нагрузками. Кто бы подумал, а всего один лишний INSERT, не проставленный index, или кривая рекурсивная функция могут поднять load averages чуть ли не на порядок.

В этой статье я опишу как мы, разработчики проекта, сумели выжать из одного сервера с Pentium 4 HT / 512Mb RAM, максимум, держа одновременно 700+ пользователей на форуме и 120,000 на трекере. Да, проект этот — торрент трекер. Предлагаю сразу оставить в стороне разговоры о копирайтах и правах, мне это не интересно, что действительно интересно — это HighLoad.
читать дальше
Всего голосов 318: ↑314 и ↓4+310
Комментарии184

Кроссбраузерная одноцветная полупрозрачность

Время на прочтение3 мин
Количество просмотров12K
В этой статье я рассмотрю метод создания блоков с одноцветным полупрозрачным фоном.
Например, таких:


Сразу оговорюсь, что я не буду использовать opacity и абсолютное позиционирование, чтобы разместить контент поверх полупрозрачного блока.
Читать дальше →
Всего голосов 192: ↑186 и ↓6+180
Комментарии80

Fugue обновился! 1.2.5 от 19.01.09

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

Fugue Icons 1.2.5



image
Да-да, теперь это не "1000 замечательных иконок для веб страниц" а целых 1,263 иконок. Многие иконки были перерисованы и много добавилось новых. Появились такие востребованные иконки как user или иконки элементов интерфейса: «button, checkbox, slider» и т.д. В общем обновление шикарное, хотя до сих пор нету таких иконок как cut, copy и paste. Иконки по прежнему распространяются по лицензии Creative Commons Attribution 3.0 license а для вопросов: «Зачем кнопка purchase?» читаем это.

Прямая ссылка — 4,9Мб
Набор разработчика 7,6Мб
Пред просмотр — 1980px × 2263px 1,4Мб
Сайт

P.S. Предыдущий пост был написан давно и я решил написать новый чтобы привлечь внимание этому сету, а не использовал UPD.

UPD: Фугия снова обновилась. Теперь версия 1.2.5, вот изменения:
  • Обновлена <application_table>
  • Обновлена <document_excel_table> и <document_table>
  • Добавлена <door_open>
  • Добавлена <feed_document>
  • Обновлена <folder_open_table>
  • Обновлена <inbox_table>
  • Обновлена <mail_open_table>
  • Добавлена <server*>
  • Обновлена <table*> and <tables*>
  • Добавлена <traffic_light*>

Следите за обновлениями топика
Всего голосов 89: ↑83 и ↓6+77
Комментарии49

jQuery Alert Dialogs — замена стандартным функциям Alert(), Confirm() и Prompt()

Время на прочтение2 мин
Количество просмотров38K
image
Плагин jQuery Alert Dialogs призван заменить основную функциональность стандартных предупреждений JavaScript, alert(), confirm(), и prompt() функций. Они полностью настраиваются с помощью CSS (это позволит выглядеть вашему сайту гораздо более привлекательно). И вы также можете настроить пользовательский заголовок для каждого диалогового окна.

Эти методы моделируют обычные модальные диалоговые окна. Они автоматически изменяют свое положение при изменении окна браузера. Если включить jQuery UI Draggable плагин, то окна можно перемещать, перетаскивая их за заголовки. В отличие от стандартных JavaScript функций, вы можете использовать HTML в сообщении. Например, чтобы задать переход на новую строку, вы можете использовать либо \n, либо < br / >.
Читать дальше →
Всего голосов 59: ↑52 и ↓7+45
Комментарии46

Отечественный флэш плеер

Время на прочтение2 мин
Количество просмотров903
imageУже давно использовал плеер производства http://flv-mp3.com/, который отличался простотой и элегантностью, но давеча получил письмо с новостью о выходе новой версии их замечательного плеера. Мое описание возможно покажется слишком эмоциональным, но это только потому, что плеер — Это бомба!

Прежде всего, демо-сайт — http://uppod.info/. После часа разборок с настройками, я могу заверить, что все фишки демосайта реализуются плеером на ура.


Читать дальше →
Всего голосов 108: ↑90 и ↓18+72
Комментарии97

Доработанный файловый менеджер для FCKeditor (визуальный редактор для HTML)

Время на прочтение1 мин
Количество просмотров3.6K
В визуальном редакторе FCKeditor (на сайте есть демо) файловый менеджер имеет ряд недостатков, которые мешают полноценно работать с этим замечательным (по моему мнению) редактором.
Переделан только PHP-коннектор для файлового менеджера.

Вид доработанного файлового менеджера


Доработанный файловый менеджер FCKeditor
Читать дальше →
Всего голосов 63: ↑51 и ↓12+39
Комментарии35

Раскладка клавиатуры с AltGr

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

Мне, как обычному пользователю, надоело каждый раз переключать русскую раскладку для набора символов типа: [ ] { } < >, одного-двух символов латиницы и т. п. Мне кажется, что в этом я не одинок, и решил поделиться достаточно простым способом (для Windows).


На Хабре упоминалась клавиша AltGr и о том, что с ее помощью можно вводить различные спецсимволы. Ничего создавать я не хочу, поэтому качаем готовую раскладку(UPD: 404, см. ниже), устанавливаем, и добавляем раскладку «Русская (AltGr)» (Язык и региональные стандарты > Языки > Подробнее)


Все, теперь вместо Ctrl + Shift (или Alt + Shift) можно удерживать AltGr. Надеюсь, кому-нибудь будет полезно.

Читать дальше →
Всего голосов 38: ↑36 и ↓2+34
Комментарии43

Иерархические структуры данных и Doctrine

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

Введение



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

В первую очередь, это связано с тем, что реляционные базы не приспособлены к хранению иерархических структур (как, например, XML-файлы), структура реляционных таблиц представляет из себя простые списки. Иерархические же данные имеют связь «родитель-наследники», которая не реализована в реляционной структуре.

Тем не менее, задача «хранить деревья в базе данных» рано или поздно возникает перед любым разработчиком.

Ниже мы подробно рассмотрим, какие существуют подходы в организации хранения деревьев в реляционных БД, а также рассмотрим инструментарий, который нам предоставляет ORM Doctrine для работы с такими структурами.
Читать дальше →
Всего голосов 64: ↑63 и ↓1+62
Комментарии41

Разметка. Transitional vs Strict

Время на прочтение4 мин
Количество просмотров7.1K
Речь в статье пойдет о такой, казалось бы изжеваной и изъезженой теме, как валидация веб-документа по одной из DTD-схем, которые в свою очередь определяются с помощью DOCTYPE.

Тема эта нетривиальна; преимущества и недостатки того или иного способа валидации на первый взгляд не всегда являются явными. Поэтому я решил что упомянуть о них еще раз будет не лишним.

В последнее время, многие редакторы и CMS'ки автоматически проставляют DOCTYPE для документа, что само по себе является прорывом, но к сожалению этого недостаточно, так как зачастую это именно Transitional схема. Начинающие разработчики не уделяют этому должного внимания, а зачастую вобще не подозревают что у них есть выбор.
Читать дальше →
Всего голосов 150: ↑142 и ↓8+134
Комментарии119

RESTful PHP — 5 простых советов

Время на прочтение4 мин
Количество просмотров83K
REST (Representational state transfer) — это архитектурный стиль или свод соглашений для web-приложений и сервисов, основанный на манипулировании ресурсами и спецификацией HTTP. Впервые об этом заговорил Рой Филдинг (Roy Fielding) — один из отцов основателей HTTP (Hypertext Transfer Protocol).

Web-приложения зачастую игнорируют спецификацию HTTP и двигаются вперёд используя полюбившиеся возможности: GET и POST, 200 OK и 404 NOT FOUND. Так как используются программируемые web-приложения, со своими собственными API, то решение игнорировать спецификацию HTTP, может создать проблемы в дальнейшем. Как следствие — имеем множество приложений с интерфейсами GET и POST. Например интерфейс удаления пользователя: GET /user/1/delete против POST /user/delete {id=1}; в случае REST можно указать /user/1 это ресурс, а удаление HTTP метод DELETE.
Читать дальше →
Всего голосов 72: ↑62 и ↓10+52
Комментарии122

PHP, PREG и UTF-8

Время на прочтение6 мин
Количество просмотров16K
В этом посте речь пойдет о работе РНР5 с multibyte строками посредством preg_*() функций.

Заметил интересное положение дел, вобщем-то давным давно описанное в интернете, но актуальное и по сей день (вопрос всплыл всвязи с недавним постом про trim()).
Читать дальше →
Всего голосов 43: ↑39 и ↓4+35
Комментарии17

SimpleModal — простые модальные окна

Время на прочтение3 мин
Количество просмотров41K
Обзор плагина SimpleModal, его глюков, избавление от глючности, позиционирование по центру экрана и прочие удобства. Вообще я публиковал статью в своем блоге:«SimpleModal — простые модальные окна», но подумал что и хабраюзерам может быть интересно про это узнать. А так же советую взглянуть на более новую статью «Модальные окна на jQuery blockUI». Не все же с лайтбоксами играться.
Читать дальше →
Всего голосов 45: ↑40 и ↓5+35
Комментарии22

разбираем файлы MS-office

Время на прочтение2 мин
Количество просмотров4.6K
Недавно передо мной была поставлена задача: вытащить некую информацию из файлов MS-office (.xls, .doc) для ее последующей обработки. По факту, нужно было вытащить текст, содержащийся в документе.

Как без особого труда вытащить текст, содержащийся в файлах XLS или DOC
Всего голосов 40: ↑36 и ↓4+32
Комментарии28

Функция echo в PHP может выполняться более 1 секунды

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

Или об особенностях управления отдаваемым контентом в PHP.


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

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

Читать дальше →
Всего голосов 167: ↑153 и ↓14+139
Комментарии161

Кеширование обычными средствами

Время на прочтение2 мин
Количество просмотров6.6K
Сегодня решил сделать то, что собирался уже давно — поставить таки кеширование скриптов у себя на сайте. Все скрипты перед отдачей пользователю собираются в один файл и сжимаются GZIP'ом — все вроде по-уму, но есть проблемка… Браузер отчаянно не хотел кешировать этот выходной скрипт.

Опытным путем было установлено, что PHP устанавливает хидеры запрета кеширования при использовании функции session_start();
Читать дальше →
Всего голосов 41: ↑29 и ↓12+17
Комментарии41

Установка memcached под Windows за 5 минут (php5)

Время на прочтение1 мин
Количество просмотров39K
Многие разработчики используют Memcached, систему кэширования различных объектов в оперативной памяти. Устанавливается она очень просто
Читать дальше →
Всего голосов 53: ↑42 и ↓11+31
Комментарии44

jQuery Timers

Время на прочтение3 мин
Количество просмотров64K
При проектировании интерфейсов пользователя когда-нибудь обязательно встанет задача использования таймеров, и в этой статье я хочу рассказать о замечательном плагине jQuery Timers, который значительно облегчит работу по созданию и применению таймеров в Ваших приложениях.
jQuery Timers — это высокоуровневая абстракция методов setTimeout и setInterval. Используя jQuery Timers, Вы сможете «прикреплять» таймеры к элементам непосредственно в Вашем коде и использовать еще некоторые возможности.
Как обычно, сначала посмотрим пример, а потом разберем исходный код.

Пример и исходный код скачать можно здесь

image
Привет Isis, давно тебя не было, почитаем дальше
Всего голосов 73: ↑63 и ↓10+53
Комментарии35

Делаем страницу 404-й ошибки разумной с помощью Google

Время на прочтение2 мин
Количество просмотров6.4K
Вот я прошёлся по блогам и сайтам, которые висят у меня в подписках, и понял, что всё печально. Если намеренно вызвать страницу 404-й ошибки, то можно напороться на все возможные отмазки, пустую страницу, либо на страницу, которую генерит сервер. Ну или на крайний случай — sitemap. Часто любят выкладывать туда смешную картинку.
Читать дальше →
Всего голосов 116: ↑108 и ↓8+100
Комментарии45

Борьба с червём GetCodec

Время на прочтение1 мин
Количество просмотров713
Сегодня ко мне в слезах прибежала жена — говорит, все MP3 испортились.

Пошёл смотреть. В Windows Media Player файлы проигрываются нормально, а в Winamp, iTunes и на айподе квакают, хрюкают и ведут себя крайне неподобающе.

Натравил на файлы NOD32. Антивирус опознал червя GetCodec, о котором несколько месяцев назад уже писали на Хабре. NOD32 пошуршал, сказал, что всё получилось, но файлы не вылечил.

Я открыл Гугл и стал разбираться. Выяснилось, что червь не пережимает файлы в WMA, а засовывает MP3-поток в контейнер ASF, а потом переименовывает обратно.

В интернете советовали похимичить с тегами, но это, само собой, не помогло. Пережимать файл в MP3 — тоже не вариант. Только через полчаса понял, что поток-то никуда не делся.

Выручил FFmpeg. Лёгким движением руки достаём звук и сохраняем в новый файл:
ffmpeg -i ill.mp3 -vn -acodec copy healthy.mp3
Всего голосов 68: ↑65 и ↓3+62
Комментарии31

Вышла новая сборка бесплатного сниффера 0x4553-Intercepter

Время на прочтение1 мин
Количество просмотров18K
Список изменений можно посмотреть на официальном сайте — intercepter.nerf.ru

[0x4553-Intercepter] позволяет:

# Перехватывать пароли следующих типов: ICQ\IRC\AIM\ftp\IMAP\POP3\SMTP\LDAP\BNC\SOCKS\HTTP\WWW\NNTP\CVS\TELNET\MRA\DC++\VNC\MySql\Oracle
# Перехватывать сообщения таких IM систем как: ICQ\AIM\JABBER\YAHOO\MSN\GADU-GADU\IRC\MRA
# Менять MAC адреса сетевых карт.
# Просматривать трафик в сыром виде, с возможностью фильтрации.
# Специальный eXtreme режим для перехвата данных на не определенных портах.
# Сохранять пакеты в файл pcap формата и проводить оффлайн анализ дампов.
# Удаленный анализ трафика через RPCAP демона.
# Встроенный ARP poison.
# Перехват и сохранение в eml формате POP3SMTP сообщений.

Работает на Windows 9xNT(2KXP2k3Vista).

Детали работы программы описаны в файле-помощи внутри архива программы. Демонстрация основных функций представлена в двух видео-туториалах:

intercepter.nerf.ru/intercepter_tutor1.zip
1. ARP Poison
2. Remote Capture
3. ARP Defender

intercepter.nerf.ru/intercepter_tutor2.zip
1. eXtreme mode
2. MAC Changing
3. PCAP Offline Analyzing

Скачать 0x4553-Intercepter — intercepter.nerf.ru/0x4553-Intercepter.v076.zip

UPD: Технические вопросы и баг-репорты просьба задавать на форуме программы intercepter.mybb3.org
или по почте intercepter.mail@gmail.com
Всего голосов 98: ↑75 и ↓23+52
Комментарии54

Информация

В рейтинге
4 058-й
Откуда
Montreal, Quebec, Канада
Зарегистрирован
Активность

Специализация

Бэкенд разработчик, Архитектор баз данных
Ведущий
От 250 000 $