вторник, 22 ноября 2011 г.

Описание MySQL Error Codes

Время от времени при работе с базами MySQL приходится сталкиваться с ошибками вида "error: SQLSTATE[HY000] [2003] Can't connect to MySQL server on xxx (4)"

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

И очень здорово, что в unix существует функция, способная вернуть описание этих самых кодов. Ибо без этого бывает сложно догадаться, почему падает база (часто такого рода ошибки проявляются на высоких нагрузках при исчерпании каких-либо системных ресурсов).
Функция perror возвращает описание большинства системных ошибок по их коду. Например:

# perror 28
OS error code  28:  No space left on device

Обращаю внимание на то, что речь идет прежде всего о *NIX системах, хотя и винде эта функция также доступна из командной строки и работает. Для этого необходимо, чтобы в системе был установлен MySQL Server.

воскресенье, 30 октября 2011 г.

Форматирование XML в Notepad++

Очень удобно смотреть/редактировать XML-файлы посредством Notepad++ При этом часто требуется отформатировать XML в удобочитаемый вид, с отступами.
Для этого:
1) Юзаем форматтер, доступный по-умолчанию -  TextFX | TextFX HTML Tidy | Tidy: Reindent XML (у меня плохо работает в Win7 64).
2) Ставим плагин XML Tools и... Plugins | XML Tools | Pretty print (XML only - with line breaks)

среда, 10 августа 2011 г.

Генерация документа Word средствами php (простейший метод)


Всем привет!
Сегодня передо мной встала задача отдавать пользователю сгенерированную html'ку в формате *.doc. Был найден простейший метод как это сделать без подключения дополнительных библиотек и лишних телодвижений.В скрипте, хранящем логику вывода (в моем случае это контроллер, согласно MVC-паттерну) добавляем заголовки ответа:
header("Content-type: application/vnd.ms-word");
header("Content-Disposition: attachment;Filename=document_name.doc");

В html-шаблоне (т.н "вьюхе") не требуется какая-то особая структура, только кодировку указываем виндовую. Примерно так это выглядит у меня:
 
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252" />
<head>
<body>
    <h1>Привет, мир!h1>
<body>
<html>

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

Источник: (StackOverflow.com)

UPD: Небольшое исследование показало, что в метатеге лучше использовать кодировку "UTF-8", особенно если в документе есть кириллица.

понедельник, 8 августа 2011 г.

Перенос VPN-соединений Windows 7

Всем привет!

Меня всегда напрягала необходимость повторной настройки VPN-соединений на свежеустановленной Windows 7. Проще и лучше будет просто перенести все настройки.

Делается это элементарно. Соединения хранятся в папке, которую необходимо просто скопировать:
     %userprofile%\AppData\Roaming\Microsoft\Network\Connections\PBK

суббота, 30 июля 2011 г.

Логи cron в Ubuntu server

Всем привет! 


Недавно настраивал кроны старых проектов на новом сервере и мне показалось дико неудобно после фряхи, что Ubuntu по-умолчанию пишет все системные логи, в том числе и кроновские, в единый файл - /etc/rsyslog.conf. Когда сервер нагружен проектами и утилитами, выуживать записи скриптов крона из общей кучи очень неудобно.


Тем более, что вынести логи cron в отдельный файл проще простого:
  • Редактируем /etc/rsyslog.conf, добавляем строку cron.* -/var/log/cron
  • Перезапускаем rsyslogservice rsyslog restart
Готово! Теперь логи крона будут лежать в /var/log/cron.

воскресенье, 19 июня 2011 г.

Чемпионат мира по мотофристайлу в Пензе

Всем привет! Сегодня на стадионе "Пенза" прошел второй день чемпионата мира по мотофристайлу "Night of the jumps". Событие для нашего небольшого города, мягко говоря, неординарное, интересное и я с радостью пошел посмотреть выступление лучших мотофристайлеров мира. Занял место повыше, чтобы видеть побольше и...


пятница, 17 июня 2011 г.

Что происходит в интернете за 60 секунд.

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

Знаете ли вы, что каждые 60 секунд в twitter в среднем размещается более 98000 новых твитов? И что около 320 новых пользователей регистрируются каждую минуту?

Впечатляющие на первый взгляд цифры твиттера,  достаточно скромны по сравнению с другими интернет-гигантами, такими как Google, Facebook и Skype. Готовы к взрыву мозга? Взгляните на фантастическую инфографику, любезно предоставленную веб-дизайнерами Go-Globe.com, которая обобщает все, что происходит во Всемирной Паутине всего лишь за 60 секунд.
Перейдем к цифрам! Итак, каждую минуту в интернете:
  • Отправляется более 168 миллионов электронных писем;
  • Обновляются 695000 статусов и публикуются 510040 комментариев в Facebook;
  • Google обрабатывает свыше 694445 поисковых запросов;
  • Совершается более 370 тысяч минут разговоров по Skype;
  • 20000 постов публикуется в Tumblr;
  • Более 13000 часов аудиопотока прослушивается в музыкальном сервисе Pandora;
  • Скачивается более 13000 приложений для iPhone;
  • Публикуется 6600 изображений в Flickr;
  • 600 видео (примерно 25 часов видеоконтента) загружается на Youtube.



Совершенно невероятно!!!

(источник: Go-Globe.com.)

воскресенье, 22 мая 2011 г.

Несколько слов о TortoiseSVN

Всем привет!

Сегодня я хотел бы поделиться полезным опытом работы с популярным Windows-клиентом системы контроля версий Subversion.

Создаем ярлык для Repository Browser.

В TortoiseSVN имеется весьма неплохой repository browser. Однако, у него нет собственного исполняемого файла. Чтобы создать для него ярлык, нужно указать следующий путь:

"C:\Program Files\TortoiseSVN\bin\TortoiseProc.exe" /command:repobrowser /path:"url:to/your/repository"

В "path" удобно указать путь к trunk, если постоянно работаете с определенным проектом.
Кроме того, через использование /command доступно большинство привычных комманд SVN, таких как commit. В документации все они хорошо описаны.

Боремся с глюком исчезновения оверлейных иконок SVN.

Оверлейные иконки SVN, отображаемые в проводнике и в Total Commander - полезная штука.

Однако, когда я недавно проапгрейдился до версии 1.6.15 на рабочем ноуте под Windows XP, инонки исчезли... Переустановка мне не помогла. 

Тогда я полез в реестр и увидел, что в HCKU\Software\TortoiseSVN есть несколько "битых" записей реестра. Я их благополучно снес и переустановил SVN-клиент, после этого все заработало! 

Кстати, под Windows 7 64-bit лучше ставить обе версии TortoiseSVN (-32 и -64 битную).  32bit версия нужна, чтобы вы могли видеть оверлейные значки в Total Commander и проводнике. Работают обе версии "бок-о-бок" без проблем.

суббота, 16 апреля 2011 г.

Хирургические вмешательства. Вырезаем MicroSIM для iPhone.

Всем привет! Наконец-то это свершилось, мне приехал iPhone 4!!! Радости полны штаны нет предела, сами понимаете)))

Первое дело которое предстоит сделать - порезать обычную полноразмерную симку и сделать из нее MicroSIM. Быстро нашел в сети шаблончик, по которому можно вырезать. Надо сказать, что  хочется быстрее раскромсать симку и активировать айфончег, но не стоит торопиться. Сделаем все аккуратно и у нас останется "переходчик" на большую SIM-карту. Мало ли бывает, в старый телефон понадобится вставить симку...

Нам понадобятся:

  • Симка
  • Ножницы
  • Канцелярский зажим или скотч
  • Канцелярский нож
  • Немного терпения
  • Прямые руки
Распечатываем шаблон симки, вырезаем. Я вырезал по контурам большой симки и аккуратно наложил поверх своей SIM-карты, прижал зажимом. Затем обвел по контуру MicroSIM ножиком, надрезая бумагу, но сильно не надавливая, чтобы просто оставить контуры на симке. Брал немного с запасом чтобы в случае чего подрезать (не понадобилось). Проверяем, чтобы контуры совпадали с тем что нужно и чтобы не задеть сам чип на сим-карте. Аккуратно, никуда не торопясь, вырезаем ножом симку по контурам. Таким образом, у нас останется старая симка с дыркой посередине, куда можно вставлять микро-сим, типа переходник такой.

Удачных вам юзаний айфонов, а я пойду погамаю уже во что нибудь на нем))))

вторник, 29 марта 2011 г.

Включаем "несовместимые" расширения в Firefox 4

Всем привет!
Как вы знаете, совсем недавно любимый многими браузер Mozilla Firefox обновился до четвертой стабильной версии. Интерфейс стал красивым и современным, скорость загрузки и работы существенно возросла. В общем и целом обновленный "огненный лис" порадовал.

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

Но не все так плохо, "несовместимые" расширения можно включить! Для этого:
  • Нам нужно зайти на страницу настроек Firefox. Набираем в адресной строке "about:config", читаем предупреждение и жмем "Я обещаю, что буду осторожен!"
  • Добавим параметр, отключающий проверку совместимости расширений. Правый клик в окне настроек и затем выбираем "Создать" -> "Логическое"
  • Указываем имя параметра - "extensions.checkCompatibility.4.0".
  • Устанавливаем значение - false.

Все! После этого перезапускаем браузер и все несовместимые плагины включаются. В моем случае расширение "Просмотр HTTP-заголовков" заработало без видимых ошибок. Тем не менее, используйте данную настройку осторожно! Далеко не факт, что все ваши "несовместимые" расширения будут работать без проблем. Лучше всего отдельно протестировать работоспособность каждого из них. Те расширения, с которыми проблем не замечено оставить, а остальные отключить.

суббота, 26 февраля 2011 г.

Details matters. Приятные мелочи в дизайне веб-приложений

Мелочи рулят. Небольшие запоминающиеся детали, благодаря которым на веб-сервис хочется возвращаться снова и снова. Взять, к примеру, мой любимый twitter-клиент TweetDeck. Недавно обнаружил вот такую классную фишку:



Всегда приятно слышать, что "ты - супер", не правда ли? И настроение улучшается!

Твердотельные наступают. Тестирование SSD Intel X25-M.

Всем привет! Давненько я ничего не писал в блог, самое время это исправить!

Сегодня у меня в гостях твердотельный накопитель Intel X25-M объемом 80Gb. Посмотрим, годится ли он на роль системного диска в домашнем компьютере.

Ни для кого не секрет, что сегодня самым узким местом в производительности современных компьютеров является дисковая подсистема. Традиционные жесткие диски, безраздельно господствовавшие последние десятилетия, практически достигли своего потолка скорости и объема. Их производительности уже недостаточно для обеспечения быстрой загрузки операционной системы. Запуск отдельных "тяжелых" приложений может занимать полминуты и более, что сами понимаете, ни в какие ворота не лезет. И естественно, даже самые быстрые процессор и оперативная память не спасут вас от тормозов винчестера.

Полтора года назад я понял, что дело плохо. Cкорость работы Windows XP, установленной на одиночный HDD стандарта SATA II, который одновременно служил хранилищем для всех моих данных, совершенно перестала меня устраивать. Было принято решение модернизировать дисковую подсистему. 

Тогда же я пришел к выводу, что целесообразно будет разделить винты на используемые исключительно под систему и винты только под хранение данных. Для системы я приобрел два быстрых "одноблиновых" HDD и собрал из них дисковый массив RAID0. Для хранения данных я предпочел RAID1 ("зеркало") из больших по объему, но не самых скоростных жестких дисков.

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