Как стать автором
Обновить
0
Юрий Масленников @twiread⁠-⁠only

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

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

Расковыривание прошивки Vogue

Время на прочтение5 мин
Количество просмотров4.8K
После успешного выдирания прошивки tronix286 и Odinokij_Kot наконец появился материал для расковыривания. Минимум что было интересно — определить что же это за девайс, можно ли разблокировать какие-то полезные фичи, ну и как минимум поменять назойливую заставку.

(Для нетерпеливых и практиков: новый софт для смены заставки, перепрошивки и ковыряния прошивки внизу)

Самое первое и простое что можно сделать — просмотреть файлы визуально в текстовом и HEX редакторах. Сразу бросается в глаза:
img_boot.bin и res.bin содержат что-то сильно похожее на битмапы
minios.bin — имеет в начале что-то вроде заголовка с именами файлов
собственно про них я и расскажу дальше.

Читать дальше →

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

Время на прочтение2 мин
Количество просмотров36K
Добрый день. Недавно меня заинтересовал модуль ngx_http_gzip_static_module, и я решил погонять мой домашний сервер немного с разными настройками сжатия nginx, чтобы убедится, действительно ли современные процессоры настолько быстрые, что можно ставить сжатие в 9-тку и не париться. В качестве подопытного файла выступала слитая главная страница lenta.ru – 170кб. Во время тестирования обнаружилась интересная особенность, которая изменила мои взгляды на выбор количества процессов nginx.
Читать дальше →

Сервер на стероидах: 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. Минусы оптимизации

Кому что-нибудь из этого списка интересно, жмём сюда...

Сохранение и восстановление прошивки медиаплеера из журнала Vogue

Время на прочтение7 мин
Количество просмотров13K
Эксперименты с плеером из журнала Vogue это очень хорошо, но старая добрая админская привычка делать бекапы всего и вся не даёт мне покоя. Ибо испортить игрушку при экспериментах с чужими прошивками очень легко, а как вернуть её в первозданное состояние не ясно. Обидно будет испортить такую халяву.

Так вот после 3-х дневной мозговой атаки на этот девайс мною был разобран до мелочей процесс сохранения родной прошивки и заливание её обратно. Отдельное спасибо tronix286 за то, что он модифицировал оригинальную программу usb_boot, добавил в неё возможность чтения прошивки в файл и за то что подкинул пару дельных даташитов.
Читать дальше →

SVN → Подключение внешних библиотек

Время на прочтение3 мин
Количество просмотров6.3K
Итак, сегодня речь пойдет о подключении внешних библиотек (суб-проектов) в основные проекты с использованием Subversion.
По старой доброй традиции, в качестве клиента для работы с SVN будет использоваться давно полюбившийся нам TortoiseSVN.

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

Ошибки конфигурирования nginx (или как правильно писать рерайты)

Время на прочтение4 мин
Количество просмотров100K
Привет, хабралюди!

По долгу службы приходится работать с веб-разработчиками, которые иногда пишут свои скрипты с рерайтами, которые им приходится адаптировать для nginx. Мне же приходится разгребать то, что там написано.

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

Ошибка номер 1, самая фатальная.

Подключаем к плееру из Vogue наушники и регулятор громкости

Время на прочтение2 мин
Количество просмотров16K
Всеобщая истерия прокатилась по поводу того, что в журнале «Vogue» содержится халявный видеоплеер. Журналы в Москве сметают стопками. И я поддался общей истерии и прикупил данное чудо. Поигравшись, понял что если использовать его в качестве видеоплеера, то необходимы наушники, и было бы не плохо сделать регулятор громкости.

image
Источник мужского вдохновения

Подключаем наушники


Многие в посте пробовали припаять второй динамик, для которого казалось бы существуют контактные площадки, но были разочарованы отсутствием звука. А при беглом осмотре видно, что для второго канала тоже есть контактные площадки для усилителя. Изначально была мысль взять с другой платы микросхему усилителя и остальную рассыпуху и припаять. Но внимательно рассмотрев плату, я понял что другие площадки предназначены для запайки разъёма для наушников. При чём к этому разъёму идут дорожки от процессора минуя усилитель. Решил проверить и припаял к нему разъём для подключения наушников, выкорчёванный из старого плеера. И я угадал — работают оба канала в режиме стерео!
Читать дальше →

Touchscreen от Nintendo DS и Arduino

Время на прочтение2 мин
Количество просмотров10K
Внезапно заказал себе маленький тачскринчик от Nintendo DS и захотелось его подключить к Arduino, о том что же получилось…
touchscreen nds

Читать дальше →

Открытый стандарт OSSIRIUS SCS 702

Время на прочтение6 мин
Количество просмотров7.3K
Стандарт OSSIRIUS SCS 702 задаёт порядок применения компактных настенных шкафчиков при построении структурированных кабельных систем коммерческих зданий, оптимизирован под задачи обслуживания объектов до 130 000 кв.м. (при охвате в 368 метров) и до 1000 пользователей, что определяет набор правил, решений и технологий, вошедших в него. При этом максимальное число пользователей ограничивается 50 000.

2005-й год, Ленэкспо


Стандарт OSSIRIUS SCS 702 является открытым и независимым. Положения стандарта формируются и изменяются исключительно в ходе публичных обсуждений в пределах, заданных положениями международных стандартов ИСО/МЭК 11801, ANSI/TIA/EIA-568B и российским стандартом ГОСТ Р 53246-2008.

Изображения под хабракатом могут нарушить душевный покой системных администраторов

Nested Sets + MySQL TRIGGER

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

Задача


Задача такая же как и в предыдущей статье, только применимо к MySQL.

Грабли


Хорошая новость ребята! В MySQL нет проблемы с рекурсивными триггерами! Разработчики MySQL просто тупо лочат изменяемую таблицу даже на уровне триггера, вот редиски. Но, собственно, нас может остановить только отключение электричества.
Есть небольшая лазейка, с… объединенными таблицами. Хотя я не нашел в документации подтверждения того, что это так специально было задумано, но и отрицания тоже не было. Правда есть вероятность того, что эту лазейку могут прикрыть, хотя я не вижу в этом смысла.
Увы, механизм триггеров в MySQL новый и довольно сырой, что накладывает некоторые ограничения на его использование, но все же его достаточно для решения нашей задачи.
Читать дальше →

Иерархические структуры данных и производительность

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

Введение



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

В данной статье я постараюсь приоткрыть завесу над этим животрепещущим вопросом, а в следующей обещаю коснуться вопросов оптимизации и поисков нестандартных решений.

Читать дальше →

Использование коэффициента Танимото для поиска людей с одинаковыми предпочтениями

Время на прочтение3 мин
Количество просмотров13K
Решая упражнения к книге «Программируем коллективный разум», я решил поделиться реализацией одного из алгоритмов упомянутого в этой книге (Глава 2 — Упражнение 1).

Исходные условия следующие: пусть мы имеем словарь с оценками критиков:

critics={'Lisa Rose'{'Superman Returns'3.5'You, Me and Dupree'2.5'The Night Listener'3.0}
           'Gene Seymour'
{'Superman Returns'5.0'The Night Listener'3.5'You, Me and Dupree'3.5}}

Чем выше оценка, тем больше нравится фильм.
Надо вычислить: насколько схожи интересы критиков для того, например, чтобы можно было на основе оценок одного рекомендовать фильмы другому?

Читать дальше →

Пишем свой первый скрипт для Greasemonkey

Время на прочтение3 мин
Количество просмотров42K
Greasemonkey — это расширение для Mozilla Firefox, и некоторых других браузеров на основе движка Gecko, которое позволяет пользователю добавлять JavaScript на любую страницу. Сам файл с JS должен быть оформлен соответствующим образом.

Для чего же пользователю, к примеру мне, или вам, нужно добавлять JS на страницы любых сайтов? Это чудесная возможность управлять внешним видом страницы и её функционалом. Естественно есть ограничения, которые накладывает сам язык JS. Однако и возможностей у него очень и очень много.

Как правило, большинство скриптов для Greasemonkey тесно «дружат» с CSS. Так что получается, этот пост несколько пересекается с темой User-CSS — однако я в название топика не стал выносить этот аспект.

Давайте же напишем пару очень простых скриптов для Greasemonkey, ну а жертвой для наших опытов возьмём, само собой, habrahabr.
Читать дальше →

Evercookie — самые устойчивые куки

Время на прочтение1 мин
Количество просмотров75K
Samy Mamkar разработал систему, которая позволяет хранить куки в 8 местах, автоматически восстанавливая друг друга, и даже добиться того, чтобы куки, поставленное в одном браузере, действовало и в другом.

Удалить это куки практически невозможно! (Все возможно, конечно, но слишком много мороки)

Куки хранятся в:
  • HTTP Cookies;
  • Local Shared Objects (Flash);
  • Сохранение куки в значениях RGB автосгенерированных и форсированно кэшированных PNG с использованием HTML5 canvas;
  • Сохранение куки в Web History;
  • HTML5 Session Storage;
  • HTML5 Local Storage;
  • HTML5 Global Storage;
  • HTML5 Database Storage через SQLite.

При удалении из одного из этих мест кука автоматически восстанавливается из оставшихся. Работает даже если пользователь сменит браузер (через Local Shared Objects из Flash).

Описание (на английском) и демо: http://samy.pl/evercookie/.
Попробуйте удалить куки, почистить систему и зайти назад.



Как пользоваться?
Читать дальше →

И ещё про «домашний» Asterisk

Время на прочтение4 мин
Количество просмотров19K
Прочитав этот пост, решил поделиться и своим опытом.

В данный момент решены 2 простые задачи:
  • все звонки, поступающие на PSTN номер (обычный городской), переадресовываются на мобильный телефон, который у меня всегда в кармане и, одновременно, на SIP телефон, который стоит дома
  • с SIP телефона я могу звонить как по России, так и в некоторые нужные мне страны по минимальным тарифам.

Как это сделано?
Читать дальше →

Алгоритм коллаборативной фильтрации

Время на прочтение2 мин
Количество просмотров16K
Коллаборативная фильтрация (англ. collaborative filtering) — это метод, который даёт автоматические прогнозы исходя из наколенной информации о интересах и вкусах пользователей.

Чаще всего можно рекомендовать музыку или книги уже имея какие-то данные о пользователе. Например, Amazon или Ozon запоминают, что я ищу или куда ходил и из этих данных строит мне рекомендацию. Но лучше, чтобы пользователь сам вводил их в свой профиль, можно даже ему рассказать, что у вас эта система стоит и чтобы он сам мог выбирать что ему дать в следующий раз.
Читать дальше →

База изображений в любых форматах и разрешениях

Время на прочтение3 мин
Количество просмотров4.5K
заказчик: Пусть аватарки пользователей у нас будут в 50×50 и 100×100, в JPEG
разработчик: Готово

заказчик: Надо переделать, чтобы аватарки были в PNG
разработчик: Сделал

заказчик: Пусть аватарки будут в GIF, 25×25 и 40×40
разработчик: Ага, проверяй
заказчик: Уже? Как ты это так быстро делаешь???
разработчик: …
Читать дальше

Asterisk, или домашняя телефония для (про)двинутых пользователей

Время на прочтение14 мин
Количество просмотров122K
Эта история началась два долгих года назад, когда во время командировки в США я ВДРУГ остался без мобильной связи: с дуру перед поездкой поменял телефон, а он оказался «двух-диапазонником»… Да и роуминг не дешёвый…
Итогом стало открытие для себя SIP-телефонии.

И вот несколько месяцев назад, из статей на Хабре, выясняю, что чужим дядям можно и не платить за межгород, если надо позвонить откуда-то в родной город через Интернет! Достаточно поставить VoIP сервер и настроить его так, как надо именно тебе!

И вот, взяв в руки Asterisk, я приступил к операции по борьбе с излишней жадностью ОпСоСов…

Читать дальше →

madVR: как выжать максимум качества из видео

Время на прочтение1 мин
Количество просмотров137K
imageВ первый раз я познакомился с madVR, когда обнаружил новый чекбокс в настройках MPC Home Cinema. Как оказалось, качество видео получаемое на выходе madVR видео рендерер просто не сравнимо ни с чем, что я использовал раньше (EVR, Overlay, VMR 7, 9 и Haali). madVR создавался с целью выводить видео максимально возможного качества. В чем особенности madVR и каким образом у него получается видео такого высокого качества?
Читать дальше →

Информация

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