пятница, 18 февраля 2011 г.

PHP Output Buffering, UTF8 и HTTP-заголовки

Рассмотрим файл index.php

<?php
ob_start();
echo "I'm just a loser and slowpoke!";
header "location: nooooooooooooooo.com";
ob_end_flush();
?>

Суть в том, что если файл сохранен в UTF8 с BOM, в 4 строке вылетит ошибка. Смотрим вики:

Порядок байтов
В потоке данных UTF-16 старший байт может записываться либо перед младшим (англ. UTF-16 big-endian), либо после младшего (англ. UTF-16 little-endian). Аналогично существует два варианта четырёхбайтной кодировки — UTF-32BE и UTF-32LE.
Для определения формата представления Юникода в текстовом файле используется приём, по которому в начале текста записывается символ U+FEFF (неразрывный пробел с нулевой шириной), также именуемый меткой порядка байтов (англ. byte order mark, BOM). Этот способ позволяет различать UTF-16LE и UTF-16BE, поскольку символа U+FFFE не существует. Также он иногда применяется для обозначения формата UTF-8, хотя к этому формату и неприменимо понятие порядка байтов.
PHP отправляет тот самый символ, и, как следствие, отправить заголовок уже нельзя. Решение — при использовании буферизации вывода использовать UTF8 без BOM.

суббота, 1 января 2011 г.

О блогах

Наткнулся в интернете на картинку. Во-первых, это про блоги в целом, во-вторых — истина где-то рядом. sic.

суббота, 25 декабря 2010 г.

Автозапуск в Openbox

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

Суть в том, что опенбокс выполнит при старте команды из ~/.config/openbox/autostart.sh.

Всё, что остается — просто создать этот файл.

touch ~/.config/openbox/autostart.sh && chmod +x ~/.config/openbox/autostart.sh 

Собственно, всё. Файл скрипта должен иметь права на исполнение (в строке выше это учитывается).

Заполнить его можно, например, так:

#!/bin/bash
xbmc

для старта xbmc, как в моём случае.

понедельник, 28 июня 2010 г.

LiteOn 5350-3HB1, или Как не надо ремонтировать блоки питания



Маркировка платы: Bestec ATX-250
Маркировка на корпусе: LiteOn 5350-3HB1

Блок питания поступил с внешними признаками неисправности "не запускается".
Действительно, на полсекунды дергаются кулеры и далее ничего, гаснет светодиод на БП, новая попытка возможна лишь после переподключения питания.

Внутри оказались вздуты конденсаторы в выходных цепях + еще несколько поглубже.

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

На одном форуме было прочитано про "слишком нежную защиту". Была рекомендация снизить емкость конденсатора с606 с 10 до 3,3 мф. Не помогло. Холодный блок питания запускается и работает некоторое время, после чего проблемы, пока не остынет.

Напряжения в норме, ±0,2-0,3 v.

После продолжительных раздумий поступил следующим образом. На A1147LT напаял сверху панельку, сверху подключил еще одну, с проводами, и замерял напряжения в трех состояниях — standby, работа, через час после запуска. Выяснилось, что на 3ей ноге вышеуказанной микросхемы постепенно накапливается напряжение, и когда оно достигает примерно 0,8v, БП запускаться отказывается. Причем чтобы "снять" это напряжение, было достаточно внутреннего сопротивления тестера.



В итоге проблема была решена подпайкой резистора 10k. БП обрел стабильность и больше не пытался отключиться.

Заголовок сообщения я сделал таким потому. что логично было бы посмотреть схему на этот БП. Но таковой просто нет в интернете (или я не нашел), и потому пришлось искать обходные пути. Правильно или нет — я не знаю. На мой взгляд, не совсем.

понедельник, 21 июня 2010 г.

Создание собственной загрузочной флешки. Часть 2.

Это продолжение статьи. Первую часть можно найти здесь.

В этой части описано добавление пунктов меню загрузки для загрузки Linux и iso-образов.

воскресенье, 20 июня 2010 г.

Создание собственной загрузочной флешки

Вам, наверное, не раз приходилось видеть и использовать загрузочные диски типа "всё-в-одном": тест памяти, установщик Windows и livecd какой-нибудь OS.

Современные компьютеры имеют возможность загрузки с внешних флеш-носителей. Преимущество флешки в том, что содержимое её можно обновлять множество раз, например, с выходом нового дистрибутива Linux, тогда как обычный диск такого не позволяет.

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

вторник, 1 июня 2010 г.

APM 2054N и замена ему

APM 2054(n) — N-канальный полевой транзистор, применяемый в основном в импульсных стабилизаторах напряжения. Особенностью данного мосфета является его относительная ненадежность, весьма часто приходится сталкиваться с ситуацией, когда APM'ы горят, что называется, рядами. В связи с этим публикуется список возможных замен (даташит в большинстве случаев легко гуглится):
  • International Rectifier LR3303
  • International Rectifier LR2905 (рассчитан на чуть большее напряжение)
  • 14N03L
  • FDD6030L (с большим запасом)
  • International Rectifier L3103
  • K3918 (с большим запасом)
Самым дешевым у меня в городе оказался IRLR3303.
Про область применения указанных мосфетов можно сказать следующее — в основном материнские платы ASUS (и не только, другие производители тоже применяют), видеокарты... в БП не встречал.
Если говорить об ASUS, то следует отметить серию P4S800 MX (M, MX SE, и т. д.). Именно в них эти транзисторы рекомендуется менять в первую очередь при ремонте.
Однако даташиты смотреть все равно надо, т. к., к примеру, у 3303 вольтаж меньше, чем у 2905, а где-то APM нужно подбирать другую замену — максимальная рабочая частота у него выше, чем у 3303 и 2905. Удачи в ремонте!