• yougetsignal.com — набор полезных сетевых инструментов!

      В набор входят как обычные, так и уникальные утилиты, ну давайте обо всем по порядку (как это представлено на сайте).

      1. Port Forwarding Tester — средство для проверки внешнего IP-адреса и обнаружения открытых портов.



      2. Network Location Tool — утилита, позволяющая определить геофизическое местоположение по ip-адресу используя Google Maps.
      Читать дальше →
    • Масштабируемые и высокопроизводительные веб-приложения. Гл. 1. Протокол HTTP. Draft.

        Обсуждаемые темы: HTTP-запросы; HTTP-ответы; Оптимизация с помощью HTTP keep-alive; Оптимизация с помощью HTTP-pipelining; Оптимизация с помощью HTTP-кэширования: Кэширование в современных клиентах, Стратегии ревалидации, Отключение кэширования и интерактивные страницы; Оптимизация с помощью компрессии; Специфическая оптимизация отдаваемого содержимого; Комбинирование контента.

        Комментарии приветствуются.

        Читать дальше →
      • Инфраструктура MySpace не справляется с нагрузкой

          Журнал Baseline опубликовал подробный технический анализ инфраструктуры сайта MySpace.com. Как известно, это один из крупнейших веб-сервисов в интернете, который сейчас спорит с порталом Yahoo за звание самого посещаемого сайта в Сети.
          Читать дальше →
        • Купил новый компьютер? Старый тоже пригодится

            Так получилось, что я люблю программирование и компьютеры. Поэтому у каждого члена моей семьи было по одному PC. У меня стационарный (Ubuntu), у мамы тоже (Windows XP), а у жены — ноутбук (Windows Vista). Была задача — организовать интернет для всей этой техники. Провайдер мне его отдает по PPTP. Недолго думая (и будучи лентяем) я докупил обычные Ethernet-сетевые карты, вставил на стационарные компы и соединил все компьютеры проводами (если честно, я еще купил WiFi модуль для своего компа, но тупо не смог настроить для ubuntu).

            Шло время, потребности росли (особенно потребности в мобильности рабочего места) и я стал обладателем ноутбука MacBook Pro. Что делать со старым компьютером? Выбрасывать? Было жалко… Ведь почти руками его собирал в течение двух лет. И тогда я решил — будет сервером! Я почистил компьютер и заново поставил туда Ubuntu Linux.
            Читать дальше →
          • flash-видео на веб-страницах и PHP

              Эта статья — перепечатка статьи от 16 ноября 2007 г. с моего блога, ссылку на который можно найти в моем же профайле — но, поскольку так уж вышло, что тема эта, кажется, до сих пор многим интересна, к тому же не так давно я читал на эту тему доклад на конференции PHPConf… в общем — судите сами.

              Вступление


              В последнее время все большее распространение получает технология трансляции видео через веб – без необходимости скачивать медиа-контент на машину пользователя, с просмотром прямо из браузера. Таким образом можно просматривать довольно большое количество различных форматов видео, однако, это требует наличия определенных плагинов на стороне пользователя. Очевидно, самым распространенным подобным плагином является flash-player (ну хорошо, хорошо: если быть точным, то он, конечно же, не может сам по себе проигрывать видео – но позволяет легко создать приложение, способное воспроизводить видео-контент). Яркий пример такого подхода – youtube.com. Попытаюсь рассказать о том, как самостоятельно организовать трансляции флэш-видео на своей веб-странице и какие существуют подходы к этой проблеме.

              Читать дальше →
            • MediaCoder — Аудио-Видео перекодировщик

                MediaCoder Logo
                MediaCoder — универсальный аудио-видео перекодировщик, обладающий огромными возможностями. Поддерживаемы аудио форматы — MP3, Vorbis, AAC, AAC+, AAC+v2, MusePack, Speex, AMR, WMA, RealAudio, FLAC, WavPack, Monkey's Audio, OptimFrog, AAC Lossless, TTA, WAV/PCM, Waveform. Видео кодеры — H.264, XviD, DivX, MPEG 1/2/4, Theora, Flash Video, Dirac, 3ivx, RealVideo, Windows Media Video; Контейнеры — AVI, MPEG/VOB, Matroska, MP4, PMP, RealMedia, ASF, Quicktime, OGM, а также CD, DVD, VCD, SVCD, CUESheet.
                Читать дальше →
              • 11 порталов для выбора Иконок

                  Коллекция ссылок больших порталов и поисковиков, для выбора всевозможных Иконок(Icons) разного типа. Практически на всех есть широкий выбор размеров.

                  В этой коллекции я уверен что вы найдете что вам нужно ;)

                  Ну интересное так точно!!!

                  1. http://www.iconspedia.com
                  Читать дальше →
                • Выбираем онлайн-хранилище файлов

                    Персональные онлайн-хранилища файлов Не знаю как у вас, но у меня периодически возникает потребовать в онлайн-хранилище данных. Всегда есть файлы, которые могут потребоваться мне как на работе, так и дома – документация, фрагменты кода (snippets), наброски статей и т.д. Впрочем, иные документы, такие как карты, описания туристических маршрутов, материалы по истории городов и достопримечательностей могут понадобиться и вдалеке от родины. В первом случае можно обойтись синхронизацией данных домашнего и офисного компьютеров (что, кстати, не гарантирует вам отсутствие «головной боли»).
                    Читать дальше →
                  • Не гуглом единым… Онлановые инструменты

                      Сделал подборочку не гугловских инструментов:

                      www.gliffy.com — Онлайн-диаграммы, эквивалент MS Visio;
                      thinkature.com — Онлайн-диаграммы, размышлений;
                      show.zoho.com — Онлайн-презентации;
                      www.bubbl.us — Онлайн Mind Maps;
                      us.ajax13.com — Онлайн-офис;
                      www.empressr.com — Онлайн-презентации;
                      www.burnham-on-sea.co.uk/fax.html — Послать онлайн-факс;
                      www.zamzar.com/?www.deltaasesores.com — Конвертер файлов;
                      www.chatcreator.com/chatbox — Возможность добавить на свой сайт чат;
                      www.ortelius.de/kalender/form_en2.php — Перевод дат по разным календарям, есть даже календарь Майя;
                      www.webwag.com — Web-комбайн: rss-агрегатор, погода, поиск, возможность добавлять свой контент;
                      www.netvibes.com — Web-комбайн: читает rss, показывает, погоду, хранит todo листы, проверяет почту, хранит закладки, записки, хранит todo из rememberthemilk, всё это дополняет приятным и удобным интерфейсом;
                      www.rememberthemilk.com — Онлайн-органайзер;
                      voo2do.com — todo-листы, поддержка проектов.
                    • Система непересекающихся множеств и её применения

                        Добрый день, Хабрахабр. Это еще один пост в рамках моей программы по обогащению базы данных крупнейшего IT-ресурса информацией по алгоритмам и структурам данных. Как показывает практика, этой информации многим не хватает, а необходимость встречается в самых разнообразных сферах программистской жизни.
                        Я продолжаю преимущественно выбирать те алгоритмы/структуры, которые легко понимаются и для которых не требуется много кода — а вот практическое значение сложно недооценить. В прошлый раз это было декартово дерево. В этот раз — система непересекающихся множеств. Она же известна под названиями disjoint set union (DSU) или Union-Find.

                        Условие


                        Поставим перед собой следующую задачу. Пускай мы оперируем элементами N видов (для простоты, здесь и далее — числами от 0 до N-1). Некоторые группы чисел объединены в множества. Также мы можем добавить в структуру новый элемент, он тем самым образует множество размера 1 из самого себя. И наконец, периодически некоторые два множества нам потребуется сливать в одно.

                        Формализируем задачу: создать быструю структуру, которая поддерживает следующие операции:

                        MakeSet(X) — внести в структуру новый элемент X, создать для него множество размера 1 из самого себя.
                        Find(X) — возвратить идентификатор множества, которому принадлежит элемент X. В качестве идентификатора мы будем выбирать один элемент из этого множества — представителя множества. Гарантируется, что для одного и того же множества представитель будет возвращаться один и тот же, иначе невозможно будет работать со структурой: не будет корректной даже проверка принадлежности двух элементов одному множеству if (Find(X) == Find(Y)).
                        Unite(X, Y) — объединить два множества, в которых лежат элементы X и Y, в одно новое.

                        На рисунке я продемонстрирую работу такой гипотетической структуры.


                        Как такое сделать и зачем оно нужно
                      • Обзор NoSQL систем

                          Беспрецедентные объемы данных заставляют разработчиков и бизнес приглядываться к альтернативам реляционных баз данных, используемым вот уже более тридцати лет. В совокупности все эти технологии известны как «NoSQL базы данных».


                          Основной проблемой является то, что реляционные базы данных не могут справляться с нагрузками актуальными в наше время (мы говорим о high-load проектах). Есть три конкретные проблемных области:
                          • горизонтальное масштабирование при больших объемах данных, например как в случае Digg (3 терабайта для зеленых значков, отображаемых, если ваш друг сделал dugg на статье) или Facebook (50 терабайт для поиска по входящим сообщениям) или eBay (2 петабайта в целом)
                          • производительность каждого отдельного сервера
                          • не гибкий дизайн логической структуры.
                          Читать дальше →
                        • Ресайз изображений на лету

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

                              Вступление


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

                              В этой статье я опишу как мы, разработчики проекта, сумели выжать из одного сервера с Pentium 4 HT / 512Mb RAM, максимум, держа одновременно 700+ пользователей на форуме и 120,000 на трекере. Да, проект этот — торрент трекер. Предлагаю сразу оставить в стороне разговоры о копирайтах и правах, мне это не интересно, что действительно интересно — это HighLoad.
                              читать дальше
                            • Три первых шага к оптимизации LAMP

                                Бытует мнение, что связка LAMP (Linux+Apache+Mysql+PHP) не требует особой настройки и работает «из коробки». Это далеко не так. После того, как я долго убеждал товарища установить кеширующий акселератор PHP xcache, я решил провести небольшой эксперимент и попробовать выключить xcache на своём виртуальном сервере, находящемся под небольшой нагрузкой (около хита в секунду). В реальной жизни нагрузка на процессор мала, а вот память загружена сильно, т.к. её немного (256МБайт).

                                Результаты эксперимента превзошли все ожидания.
                                Читать дальше →
                              • Marble drop

                                  Должен признаться, меня несколько смущало "щелкание винчестера" (WDC WD1200BEVS-75RST0) на моем Dell Inspiron. Я использую Ubuntu Linux и помню шумиху вокруг системы энергосбережения, которая должна была "убивать" жесткие диски наших компьютеров. В то время доказали, что это не более, чем глупости, что все будет исправлено и, вообще, переживать по данному поводу не стоит. Недавняя статья заставила меня еще раз более пристально понаблюдать за HDD и поэкспериментировать с настройками APM (advanced power management) и соотношением шум/производительность. Действительно, оказалось, что странные звуки вызваны парковкой головок диска.

                                  Команды

                                  sudo hdparm -M 254 /dev/sda
                                  sudo hdparm -B 255 /dev/sda


                                  решили проблему!

                                  Однако, после перезагрузки я начал опять слышать характерные щелчки. Оказалось, что значение параметра '-B' (APM settings) не сохраняется. Для Ubuntu Linux решением этого оказалось редактирование /etc/hdparm.conf (раскомментировав 41-ю сроку получил запись 'apm = 255').

                                  Если после данных манипуляций система не грузится, следует попробовать в grub дать параметр ядру 'nohdparm'.

                                  Дополнительную полезную информацию можно найти на Ubuntu Forums.
                                • Кэширование и memcached

                                    Этим постом хочу открыть небольшую серию постов по материалам доклада на HighLoad++-2008. Впоследствии весь текст будет опубликован в виде одной большой PDF-ки.



                                    Введение


                                    Для начала, о названии серии постов: посты будут и о кэшировании в Web’е (в высоконагруженных Web-проектах), и о применении memcached для кэширования, и о других применениях memcached в Web-проектах. То есть все три составляющие названия в различных комбинациях будут освещены в этой серии постов.
                                    Читать дальше →
                                  • AdMe.ru: Тэги, полнотекстовый поиск и всё такое…

                                      В этой статье я открою секреты того, как работает adme.ru, а именно я расскажу о том как устроено хранение статей и тэгов, как работает полнотекстовый поиск, поиск по тэгам и всё такое…

                                      В статье приведён пример структуры таблиц, рабочий конфиг Sphinx и немного php кода с примерами выборок.
                                      Читать дальше →
                                    • Скриптлеты для Web-разработчика + подарок

                                        Для начала. Что же такое скриптлет?

                                        Скриптлет — яваскрипт, помещеный в закладку и выполняемый на открытой странице при нажатии на ту самую закладку.

                                        С помощбю скриптлетов можно видоизменять страницу, редактировать или отлаживать дизайн, искать ошибки в своих скриптах и еще очень много чего…

                                        Читать дальше →
                                      • Безопасность на хабре

                                          А расскажу я вам сегодня про фичу, которую совсем недавно мне понадобилось сделать в одном проекте. А именно о функции «Запомнить меня на этом компьютере». Смешно не правда ли? Что же тут сложного? Сохраняй куки на две недели, месяц, потом вытаскивай и восстанавливай сессию. Ага, всё просто. А я встал в тупик. Меня часто ставят в тупик самые простые вещи.Так что же меня смутило…

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