В первой части. Мы поверхностно посмотрели, как работает микросхема CXD2545, которая является частью контроллера CDRom и стоит между данными считываемые лазером и остальной частью приставки. Я для себя поставил задачу проэмулировать чтение оглавления диска. Это то, что делает приставка, когда пытается понять, что за диск в ней вставлен. А главное результат сего действа достаточно просто можно наблюдать во встроенном CD плеере приставки. Зная, что во время попытки чтения оглавления она не дает двигать курсор, а по окончании показывает, сколько треков было найдено.
(Также здесь будут описаны ошибки, которые я допустил, пытаясь сделать этот эмулятор, может, кого-то это убережет, от необдуманных поступков)
Итак у нас есть PS1 с платой SCPH-5502, DE1 с CycloneII на борту, клон DSLogic Plus и большое желание проэмулировать CDRom.
После того как gismeteo стал все чаще и чаще огорчать недоступностью данных в Home Assistant (а я утром оказывался на холодном полу в ванной потому что HA не мог узнать какая погода на улице и нужно ли ему включать теплый пол), я задумался о смене источника погодной информации. Выбор пал на Яндекс.Погоду. В начале хотел обойтись command_line сенсором, который бы тянул температуру через API, но сорвался и запилил целую интеграцию, которой хотел бы поделиться с сообществом.
Порой веб-разработчики с удивлением обнаруживают, что команда windows.close() не всегда закрывает окно браузера. А в консоли инструментов разработчика браузера при этом выводится сообщение, указывающее на то, что скрипты могут закрывать только окна, которые ими же и открыты:
Scripts may close only the windows that were opened by them.
Этом цикле статей «Идеальный www кластер», я хочу передать базовые основы построения высокодоступного и высокопроизводительного www решения для нагруженных web проектов для неподготовленного администратора.
Статья будет содержать пошаговую инструкцию и подойдет любому человеку кто освоил силу copy-paste
Ошибки найденые вами, помогут в работе и мне и тем кто будет читать эту статью позже! Так что любые улучшение и правки приветствуются!
Хочу отметить, что эта инструкция родилась в процессе миграции web-систем компании Acronis в высокодоступный кластер. Надеюсь мои заметки будут полезны и для Вас!.
В процессе экспертизы и проведенных мною исследований, она доказала свое право на жизнь и благополучно служит нам верой и правдой день ото дня.
На frontend мы будем использоваться связку из двух службы:
keepalived — реализации протокола VRRP (Virtual Router Redundancy Protocol) для Linux. Демон keepalived следит за работоспособностью машин и в случае обнаружения сбоя — исключает сбойный сервер из списка активных серверов, делегируя его адреса другому серверу.
Другими словами, у нас 2 сервера на которых прописано по одному публичному адресу. Если любой из этих серверов падает, то адрес упавшего подхватывается вторым.
Демоны keepalived общаются по протоколу VRRP, посылая друг другу сообщения на адрес 224.0.0.18.
Если сосед не прислал свое сообщение, то по истечению периода он считается умершим и оба адреса обслуживает оставшаяся нода. Как только упавший сервер начинает слать свои сообщения в сеть, все возвращается на свои места
nginx [engine x] — это HTTP-сервер и обратный прокси-сервер, а также почтовый прокси-сервер, написанный Игорем Сысоевым. Уже длительное время он обслуживает серверы многих высоконагруженных российских сайтов, таких как Яндекс, Mail.Ru, ВКонтакте и Рамблер. Согласно статистике Netcraft nginx обслуживал или проксировал 15.08% самых нагруженных сайтов в октябре 2013 года.
Основная функциональность HTTP-сервера
Обслуживание статических запросов, индексных файлов, автоматическое создание списка файлов, кэш дескрипторов открытых файлов;
Акселерированное обратное проксирование с кэшированием, простое распределение нагрузки и отказоустойчивость;
Акселерированная поддержка FastCGI, uwsgi, SCGI и memcached серверов с кэшированием, простое распределение нагрузки и отказоустойчивость;
Модульность, фильтры, в том числе сжатие (gzip), byte-ranges (докачка), chunked ответы, XSLT-фильтр, SSI-фильтр, преобразование изображений; несколько подзапросов на одной странице, обрабатываемые в SSI-фильтре через прокси или FastCGI, выполняются параллельно;
Поддержка SSL и расширения TLS SNI.
Другие возможности HTTP-сервера
Виртуальные серверы, определяемые по IP-адресу и имени;
Поддержка keep-alive и pipelined соединений;
Гибкость конфигурации;
Изменение настроек и обновление исполняемого файла без перерыва в обслуживании клиентов;
Настройка форматов логов, буферизованная запись в лог, быстрая ротация логов;
Специальные страницы для ошибок 3xx-5xx;
rewrite-модуль: изменение URI с помощью регулярных выражений;
Выполнение разных функций в зависимости от адреса клиента;
Ограничение доступа в зависимости от адреса клиента, по паролю (HTTP Basic аутентификация) и по результату подзапроса;
Проверка HTTP referer;
Методы PUT, DELETE, MKCOL, COPY и MOVE;
FLV и MP4 стриминг;
Ограничение скорости отдачи ответов;
Ограничение числа одновременных соединений и запросов с одного адреса;