Как стать автором
Обновить
0
Серёжа @SwampRunnerread⁠-⁠only

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

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

Как вернуть качественный звук в Windows 7, 10, 11 — побитовый вывод, аппаратные эффекты (EAX и пр.)

Время на прочтение5 мин
Количество просмотров276K
Хочу поділитися досвідом по темі звуку в Windows 7.
Насправді все не так погано, як спочатку здається, і я вам зараз це продемонструю.
Читать дальше →

Юзабилити с самого начала

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

В начале этого года по приглашению канала ITV я дал интервью Наилю Байкову о юзабилити (о чем я еще могу говорить?).

Анонс канала ITV: «Юзабилити — наука, которая была востребована еще тогда, когда такого термина даже не существовало. Сегодня же каждый второй веб-дизайнер объявляет себя специалистом по юзабилити. О том, что представляет собой эта наука на самом деле, где таятся ее корни и чего ожидать от нее в перспективе — в рассказе от первого лица.»

B-tree

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

Введение


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

Основные операции в деревьях выполняются за время пропорциональное его высоте. Сбалансированные деревья минимизируют свою высоту (к примеру, высота бинарного сбалансированного дерева с n узлами равна log n). Большинство знакомо с такими сбалансированными деревьями, как «красно-черное дерево», «AVL-дерево», «Декартово дерево», поэтому не будем углубляться.

В чем же проблема этих стандартных деревьев поиска? Рассмотрим огромную базу данных, представленную в виде одного из упомянутых деревьев. Очевидно, что мы не можем хранить всё это дерево в оперативной памяти => в ней храним лишь часть информации, остальное же хранится на стороннем носителе (допустим, на жестком диске, скорость доступа к которому гораздо медленнее). Такие деревья как красно-черное или Декартово будут требовать от нас log n обращений к стороннему носителю. При больших n это очень много. Как раз эту проблему и призваны решить B-деревья!

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

TOP'ай сюда

Время на прочтение5 мин
Количество просмотров184K
Обзор практически всех *top утилит под linux (atop, iotop, htop, foobartop и т.д.).

top

Все мы знаем top — самую простую и самую распространённую утилиту из этого списка. Показывает примерно то же, что утилита vmstat, плюс рейтинг процессов по потреблению памяти или процессора. Совсем ничего не знает про загрузку сети или дисков. Позволяет минимальный набор операций с процессом: renice, kill (в смысле отправки сигнала, убийство — частный случай). По имени top суффикс "-top" получили и все остальные подобные утилиты в этом обзоре.

atop


Atop имеет два режима работы — сбор статистики и наблюдение за системой в реальном времени. В режиме сбора статистики atop запускается как демон и раз в N времени (обычно 10 мин) скидывает состояние в двоичный журнал. Потом по этому журналу atop'ом же (ключ -r и имя лог-файла) можно бегать вперёд-назад кнопками T и t, наблюдая показания atop'а с усреднением за 10 минут в любой интересный момент времени.

В отличие от top отлично знает про существование блочных устройств и сетевых интерфейса, способен показывать их загрузку в процентах (на 10G, правда, процентов не получается, но хотя бы показывается количество мегабит).

Незаменимое средство для поиска источников лагов на сервере, так как сохраняет не только статистику загрузки системы, но и показатели каждого процесса — то есть «долистав» до нужного момента времени можно увидеть, кто этот счастливый момент с LA > 30 создал. И что именно было причиной — IO программ, своп (нехватка памяти), процесор или что-то ещё. Помимо большего количества информации ещё способен двумя цветами подсказывать, какие параметры выходят за разумные пределы.
Читать дальше →

Масштабирование нагрузки web-приложений

Время на прочтение6 мин
Количество просмотров61K
С ростом популярности web-приложения его поддержка неизбежно начинает требовать всё больших и больших ресурсов. Первое время с нагрузкой можно (и, несомненно, нужно) бороться путём оптимизации алгоритмов и/или архитектуры самого приложения. Однако, что делать, если всё, что можно было оптимизировать, уже оптимизировано, а приложение всё равно не справляется с нагрузкой?
Читать дальше →

Набор инструментов для построения графиков, блок-схем и диаграмм

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


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

Как справляться с запланированной недоступностью веб-сайта

Время на прочтение2 мин
Количество просмотров11K
Томер Хонен и Каспар Шимански, Команда качества поиска, Дублин

Нас часто спрашивают, может ли недоступность сайта во время сканирования Googlebot’ом плохо сказаться на видимостЬ сайта в результатах поиска Google. Иногда сайт бывает недоступен по техническим причинам, например когда он закрыт на обслуживание или редизайн. Подобные ситуации, не обозначенные должным способом, могут негативно повлиять на репутацию сайта. Мы не можем гарантировать индексирование или ранжирование, но существуют методы, которые позволяют справляться с запланированным простоем веб-сайта без отрицательного действия на его видимость в результатах поиска.

Например, при запросе страницы сайта вместо возврата кода статуса HTTP 404 (Не найдено) или показа ошибки на веб-странице с кодом статуса 200 (OK), лучше всего возвратить код статуса 503 (Сервис недоступен), который сообщает поисковику, что простой временный. Более того, это позволяет веб-мастерам предоставлять посетителям и ботам информацию о том, когда веб-сайт восстановит свою работу.

Если известны продолжительность простоя в секундах или предположительные дата и время завершения простоя, то они могут быть указаны в поле заголовка Retry-After, используемом гуглботом для определения подходящего момента переиндексации URL.

Ответ сервера кодом состояния 503 может быть хорошим решением и в других ситуациях. Хорошей практикой считается возвращать код состояния 503 «Сервис недоступен» для ошибок сервера, недоступности сайта, перерасхода трафика или страниц-заглушек (в том числе и «Сайт закрыт на реконструкцию»). На случай запланированных простоев сервера, таких как ремонт аппаратного обеспечения, стоит иметь отдельный сервер, который бы возвращал код 503.

Тем не менее, важно не относиться к коду статуса 503 как к постоянному решению проблемы: продолжительная выдача 503 может рассматриваться как знак, что сервер стал постоянно недоступен, в результате чего мы можем удалить URL из индекса Google.

header('HTTP/1.1 503 Service Temporarily Unavailable');
header('Retry-After: Sat, 8 Oct 2011 18:27:00 GMT');

Так может выглядеть информация в header-e при использовании PHP, если вы настроите ответ 503 (Сервис недоступен).

Подобно тому, как можно сделать страницы 404 более полезными для пользователей, следует также правильно настроить сообщения 503, объясняющие пользователям текущую ситуацию и предоставляющие им информацию о том, когда сайт снова будет доступен.

Дополнительная информация о кодах состояния HTTP предоставлена на странице RFC 2616.

Базовые рекомендации для повышения безопасности *nix веб-сервера

Время на прочтение3 мин
Количество просмотров25K
Вдохновившись статьей о поиске следов взлома, решил написать статью о предупреждении взлома и базовых шагах для сведения возможности взлома сервера к минимуму.
Все шаги крайне важны, и невозможно выделить самый-самый важный, либо второстепенный.
Данная статья не является пошаговой инструкцией, а лишь списком рекомендуемых шагов.
Читать дальше →

О том, как у меня украли домен, а я украл его обратно

Время на прочтение11 мин
Количество просмотров54K
Уважаемые хабравчане! Истории, одна из которых произошла со мной, случаются сплошь и рядом, вот только концовка в моем случае довольно редкая.
По определенным соображениям в данной статье я не буду указывать домен и имя реселлера. Тех, кто сможет их опознать, убедительно прошу в комментариях не обнародовать.
Читать дальше →

Онлайн генератор схем баз данных

Время на прочтение1 мин
Количество просмотров252K
Хочу представить онлайн генератор схем баз данных dbdsgnr. Сервис сделан на питоне и google app engine. Залогиниться в него можно имея аккаунт в гугле. Вкратце о сервисе: вы рисуете схему баз данных, а сервис создает вам код. На данный момент можно получить только для MySQL, но обещают поддержку PostgreSQL, SQLite, MySQL, MSSql, Oracle. Под катом пример работы с данным сервисом.
Читать дальше →

MODх — Учет посетителей сайта и график посещений

Время на прочтение7 мин
Количество просмотров15K
Как и многие программисты, я страдаю некоторой степенью подозрительности к чужим сервисам, и предпочитаю делать все сам.
К чужим сервисам, в частности относится liveinternet и другие счетчики посещений. Я им как то не доверяю, знаете ли.

Сейчас я вам расскажу (и покажу) как нетрудно сделать учет посетителей сайта с помощью modx.

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

audio.js — слушаем музыку в любом браузере

Время на прочтение1 мин
Количество просмотров70K
audio.js — это javascript библиотека, позволяющая использовать HTML5 тэг повсюду. Что скрывается за словом «повсюду». Если есть возможность использовать тэг , то будет использоваться он, иначе будет подключен плеер на flash. В библиотеку так же входит и UI отображение для этого плеера, которое может быть видоизменено с помощью css.
Читать дальше →

Munin — мониторинг сети это просто!

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

В жизни каждого системного администратора рано или поздно наступает момент, когда глаз и рук уже не хватает уследить за всеми серверами, то там, то там возникают какие-то проблемы, а для решения их очень хочется узнать что же было «до этого». И именно здесь на выручку приходят они — вел
икие и ужасные системы мониторинга. Долгое время я пользовался Nagios, и до сих пор, при всём удобстве, иначе как монстрообразным назвать не могу. В итоге реально использовались лишь 10% возможностей этой прекрасной системы. Всё изменилось, когда я наткнулся на Munin — прекрасное решение для мониторинга небольших сетей.
Обзор системы

Кто в ответе за user-generated content?

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

Владельцы сайтов против правообладателей



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

На множестве сайтов можно найти контрафактный контент, который в отдельных случаях становится предметом судебных исков. Если его выкладывает сам владелец сайта, то в таких случаях никаких неясностей не возникает. Но вот кто должен отвечать за то, что выложено пользователем? Есть распространенное мнение о том, что «владелец несет полную ответственность за то, что публикуется на его сайте». Как правило, пропагандируют его «профессиональные истцы» и прочие пропагандисты «закручивания гаек» в области копирайта. Однако, в законодательстве и в судебной практике оно подтверждения не находит. В этом мы сейчас и убедимся.
Читать дальше →

Проверяем отказоустойчивость сайта

Время на прочтение4 мин
Количество просмотров36K
Результаты тестирования. Время ответа сервераЭто очередной пост их уже традиционной предновогодней серии про проверку отказоустойчивости сайта и готовности его принять всех ваших посетителей, озадаченных выбором подарков или предновогодними скидками. В этом выпуске я рассмотрю создание тестов в расширенном режиме с использованием записи действий (Proxy recorder), что позволяет почти полностью эмулировать поведение реальных пользователей из реального браузера у вас на сайте. Также немного будет затронута тема анализа самих графиков по отказоустойчивости.
Итак, поехали.
Читать дальше →

Настройка и оптимизация MySQL сервера

Время на прочтение9 мин
Количество просмотров317K
В этой статье будут описаны различные настройки MySQL, преимущественно те, которые влияют на производительность. Для удобства все переменные разделены по разделам (базовые настройки, ограничения, настройки потоки, кэширование запросов, тайминги, буферы, InnoDB). Сначала уточним имена некоторых переменных, которые изменились в версии 4 MySQL, а в сети продолжают встречаться и старые и новые варианты имен, что вызывает вопросы.
Читать дальше →

Как выбрать помещение для интернет-магазина в реале

Время на прочтение7 мин
Количество просмотров34K
Маркетинг магазина в реале начинается с выбора места. Есть два пути решения задачи: так называемый «жоп-филинг», то есть интуитивное принятие решения и продуманный просчёт.

Общая задача такая:
  • Есть интернет-магазин, нужна точка в реале;
  • Место должно способствовать наибольшей прибыли точки как отдельного розничного магазина;
  • И хорошо работать как пункт самовывоза интернет-магазина.
Читать дальше →

apache+nginx+gzip_static+yuicompressor

Время на прочтение6 мин
Количество просмотров15K
В этой статье я опишу принципиальные различия Apache и Nginx, архитектуру фронтэнд-бэкэнд, установку Apache в качестве бэкэнда и Nginx в качестве фронтэнда. А также опишу технологию, позволяющую ускорить работу веб-сервера: gzip_static+yuicompressor.
Читать дальше →

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

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


Введение

Все началось с того, что я стал системным администратором у одного провинциального Интернет-провайдера. Помимо администрирования различного рода ресурсов, мне в присмотр достался один молодой, но бурно развивающийся ресурс. Ресурс представлял из себя классический LAMP проект. Сайт, на котором генераторами контента являлись обычные пользователи.
* К слову, в то время я ничего не понимал в *nix системах, хоть и все сервера которые мне достались, были именно на нем, разбирался я во всем этом достаточно быстро.

Как обычно бывает с ресурсами, набирающими популярность, железки на которых все крутится, перестают справляться. Ресурс стоял на стареньком двухпроцессорном сервере, на котором крутились практически все сервисы для пользователей. В то время начальство не воспринимало ресурс как нечто стоящее вложений, поэтому, к моему сожалению (а позже – счастью), денег под новую железку мне не выделяли.
Читать дальше →

Homemade Spacecraft

Время на прочтение1 мин
Количество просмотров7.2K
Несколько чудаков из Бруклина с помощью подручных средств и воздушного шара, который используют изготовления метеорологических зондов, запустили в стратосфееру комплект из GPS-навигатора и iPhone. На видео видны различные этапы тестирования и запуска с комментариями на английском языке.



Достигнув максимальной расчетной высоты, воздушный шар лопнул, и всё благополучно полетело вниз. Весь комплект приземлился (повис на дереве) на расстоянии 50 километров от места запуска, и его нашли по сигналам GPS навигатора. Полет в стратосферу и обратно занял несколько часов. Устройство подверглось сильнейшему ветру (более 160 километров в час), температуре минус 60 по Цельсию (для этого оно было как-то защищено) и поднялось на высоту более 30 000 метров!

Более подробно с проектом можно ознакомится на его сайте www.brooklynspaceprogram.org/BSP/About_us.html Там же можно заказать DVD с совсеми видеоматериалами о полете, включая полноценную запись, сделаную во время экспедиции.

UPD1 По поводу споров о скорости ветра и пройденом пути замечу, что атмосфера — это такой слоеный пирог из ветров разной силы, температуры и направления:
http://ru.wikipedia.org/wiki/Высотное_струйное_течение
http://ru.wikipedia.org/wiki/Стратосфера
http://ru.wikipedia.org/wiki/Тропосфера
http://ru.wikipedia.org/wiki/Тропопауза

UPD2 blo сообщает:
да, это как минимум третий такой эксперимент, предыдущие 2 были описаны на хабре
habrahabr.ru/blogs/i_am_clever/54901/
habrahabr.ru/blogs/popular_science/75150/

UPD2 wazd поправляет:
Комплект состоял из ХД-камеры и айфона, который как раз и был навигатором.


Под катом несколько снимков

Информация

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