2009-08-26

Как изменить кодировку по умолчанию

howto

По умолчанию Апач в заголовки пишет кодировку в которой отдается текстовое содержимое, какая это будет кодировка, зависит от настроек самого Апача. Если нужно другая, скажем utf-8, то нужно добавить а .htaccess следующую строку:

AddDefaultCharset utf-8

 

Оставить комментарий

 
  2009-08-21

Закачака файлов AJAX

программирование, JavaScript, howto, вебмастеринг

Нашел занимательный пример по закачке файлов посредством AJAX. Решение, оказывается, простое ну просто до безобразия - у формы с файлом ставится target с именем невидимого фрейма, за счет этого форма с файлом не перегружается а перегружается этот самый невидимый фрейм. Гениально!

 

Оставить комментарий

 
  2009-08-15

Как выключить встроенную звуковую карту в Linux

howto

На моей машинке две звуковушки - приобрел дешевый Creative Sound Blaster когда оказалось что встроенную карту заставить работать с Скайпом можно только при помощи бубна, шамана да и то только по четным дням каждого шестого нечетного месяца года если сумма цифр не содержит цифры тринадцать...

С переходом на линукс проблема усугибилась тем, что со звуковыми подсистемами в линукс полный бардак - половина приложений работает с одной звуковой картой, вторая половина с другой, третья половина (поправьте меня те кто считает что половин может быть только две) вообще отказывается работать.

Поискав по форумам решения которое мне понравилось бы я почему то не нашел, поэтому, решил что лучшим будет отключить устройство совсем.

Алгоритм следующий:

1. запускаем lsmod, ищем название модуля похожее на нашу встроенную звуковушку в моем случае это оказалось snd_hda_intel

2. добавляем в /etc/modprobe.d/blacklist.conf строчку

blacklist snd_hda_intel

3. перегружаемся

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

 

Оставить комментарий

 
  2009-07-24

Исправление latin1 в cp1251

howto

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

Алгоритм решения получился следующий, получаем дамп базы данных в кодировке cp1251, для этого phpMyAdmin нужно заставить думать что он работает в latin1 и в этом режиме сделать дамп нашей базы данных. Для этогого в /libraries/select_lang.lib.php (у меня древний phpMyAdmin в новых может и не то нужно делать...) поменял

    'utf-8'        => 'utf8',

на

    'utf-8'        => 'latin1',

phpMyAdmin на главной странице показывает:

MySQL charset: cp1252 West European (latin1)

значит обман удался :)

После этого делаем дамп базы данных называем его например db_cp1251.sql

Открываем дамп и удаляем все где говориться про latin1 (типа DEFAULT CHARSET=latin1)

Забрасываем дамп обратно, но mysql клиенту говорим что файл в кодировке cp1251:

mysql --default-character-set=cp1251 --character-sets-dir="C:\Program Files\MySQL\MySQL Server 4.1\share\charsets" db < db_cp1251.sql

(--character-sets-dir нужен только в Windows)

Не забываем вернуть phpMyAdmin в исходное состояние и, вуаля, файл в правильной кодировке. Ура!.

 

Оставить комментарий

 
  2009-07-13

Автомонтирование раздела ntfs

howto, linux

Убунта вообще то по умолчанию делает это сама. Вернее делает Gnome но только при первом обращении. У меня же на ntfs разделе есть несколько виртуальных доменов и апачу такое обращение явно не нравится поэтому нужно чтобы раздел монтировался при старте системы.

1. находим имя устройства для монтирования - после того как диск подмонтирован запускаем

mount -l

увидим много строчек где есть что то вроде:

/dev/sdb1 on /media/disk type fuseblk (rw,nosuid,nodev,allow_other,blksize=4096) []

значит наше устройство /dev/sdb1

2. добавляем в /etc/fstab следующую строку:

/dev/sdb1       /media/diskc    ntfs-3g  defaults,locale=ru_RU.utf8  0 1

я специально в качестве точки монтирования указал /media/diskc а не /media/disk - здесь обнаружилась одна тонкость чтобы раздел был успешно подмонтирован папка должна существовать поэтому ее нужно создать.

3. создаем папку:

sudo mkdir /media/diskc/

4. перегружаемся:

sudo reboot

Если все сделано правильно то диск будет подмонтирован автоматически во время запуска.

 

Оставить комментарий

 
  2009-07-10

Как создать скриншот странички на стороне сервера

howto

Встала задачка, сделать скриншет сайта на стороне сервера (Linux).

Обнаружил сразу несколько способов.

Первый способ это воспользоваться khtml2png - консольная утилита которая испольльзует khtml - движек на котором работают Safari и Crome. Утилита требует наличия иксов, чтобы запустить X сервер на сервере, можно воспользоваться Xvfb.

Еще один способ это установить на сервер firefox. При наличии Xvfb он отлично запускается.

Оба способа работают, однако khtml2png работает довольно грустно ибо не поддерживает флеш, firefox работает гораздо веселее, но пока никак не соображу как запустить его из командной строки на fullscreen.

 

Коментариев: 7

 
  2009-07-10

Как сделать картинку без картинки

howto

Обнаружил забавное, оказывается можно на стороне клиента показывать картинку не загружая с сервера бинарник из файла:

<img src="data:image/png;base64,
iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAABGdBTUEAALGP
C/xhBQAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9YGARc5KB0XV+IA
AAAddEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIFRoZSBHSU1Q72QlbgAAAF1J
REFUGNO9zL0NglAAxPEfdLTs4BZM4DIO4C7OwQg2JoQ9LE1exdlYvBBeZ7jq
ch9//q1uH4TLzw4d6+ErXMMcXuHWxId3KOETnnXXV6MJpcq2MLaI97CER3N0
vr4MkhoXe0rZigAAAABJRU5ErkJggg==" alt="Red dot" />
ul.checklist > li.complete { margin-left: 20px; background:
  url
('data:image/png;base64,
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAA
ABlBMVEUAAAD///+l2Z/dAAAAM0lEQVR4nGP4/5/h/1+G/5
8ZDrAz3D/McH8yw83NDDeNGe4Ug9C9zwz3gVLMDA/A6P9/A
FGGFyjOXZtQAAAAAElFTkSuQmCC'
) top left no-repeat; }

отсюда

 

Коментариев: 1

 
  2009-07-02

Скругленные углы в FF и Safari

вебмастеринг, howto, css

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

Здесь описаны примеры как в мозиле и фаерфоксе добиться скруглённых уголков. Все предельно просто:

W3C has offered some new options for borders in CSS3, of which one is border-radius. Both Mozila/Firefox and Safari 3 have implemented this function, which allows you to create round corners on box-items. This is an example:

пользователи Mozilla/Firefox и Safari 3 увидят прямоугольный бокс со скругленными углами.

 Код который это делает выглядит следующим образом:

 <div style=" background-color: #ccc;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
border: 1px solid #000;
padding: 10px;" >

Жаль IE пока такое себе не позволяет.

 

Коментариев: 1

 
  2009-06-28

Синтез Речи под Линукс

howto

На платформе Windows есть замечательная штука называемая Speech API которую я использую чтобы начитывать книжки в mp3 и потом слушать с мобильника. Здравый смысл подсказывает что под Линукс должна быть  своя система для синтеза голоса, и такая система действительно есть - это festival.

Под Ubuntu festival ставится при помощи стандартной системы установки пакетов. Однако русского языка в дистрибутиве Убунты я не нашел. Однако поискав в Интернете нашел что некие ребята разработали русский голос для festival.

Скачал дебиановский пакет, убунтовый почему то не скачался. Попробовал...

Тембр голоса оказался довольно приятным, но вот интонация чтения, и фразовые ударения оказались заметно хуже чем у микрософтского движка. Кроме того, программа отказывается воспроизводить файл если в нем есть латинские буквы.

В общем до практического использования festival оказался мне не пригоден.

Попробовал установить Speech API и Говорилку  (ее я использую под Windows) под Wine и... о чудо. Программа запустилась. И говорит! Сейчас поставил синтезировать очередную вещь Юрия Никитина... Пока работает без сбоев, посмотрим доделает ли до конца... Под Виндовс она что греха таить глючит, поэтому приходится файл скармливать по кусочкам, будет смешно если под Wine она окажется стабильней...

P. S. Доделал, субъективно прграмма работала подольше чем под виндой, по какой-то причине в настройках Говорилки оказалась заблокированной настройка выбора размера части поэтому книжка оказалась порезена на куски по 16 мегов, не критично, хотя обычно я выбираю побольше. Качество синтеза я на слух отличить не смог, хотя при работе на динамики Wine режет частоты очень сильно. В случае c mp3 это не критично... Еще под вайном не работает буфер обмена - думаю из-за utf8, но думаю можно покапаться в настройках.

 

Оставить комментарий

 
  2009-06-17

Настройка Domain Keys для cpanel

howto

Количество нежелательной корреспонденции - спама в сети растет год от года. Можно называть тысячи причин  почему так происходит однако, как мне кажется, корни проблемы кроются, прежде всего в недостатках самого протокола SMTP не позволяющего надежно идентифицировать отправителя письма. Кто угодно может отправлять письма с любым обратным адресом, поэтому однозначно идентифицировать пользователя в сети бывает довольно трудно а порой и невозможно.

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

Одним из путей решения данной проблемы является идентификация пользователя по имени домена которому принадлежит адрес электронной почты. При этом в DNS запись домена добавляется некая информация позволяющая идентифицировать почтовое сообщение. В настоящее время получили широкое распространение две технологии работающие по такому принципу Yahoo Domain Keys (DK) и Sender Policy Framework (SPF). Принцип действия DK основывается на алгоритме RSA  — на сервере отсылающем почту хранится пара ключей открытый и закрытый. При этом открытый ключ публикуется в TXT DNS записи, а закрытый используется для подписывания email сообщения. При этом при приеме сообщения клиентское приложение или MTA способны проверить правильность электронной подписи и сделать вывод о подлинности отправителя.
Если вы являетесь владельцем выделенного или виртуального выделенного сервера с установленной WHM/CPanel то то для того чтобы  добавить DK к вашей исходящей почте достаточно выполнить одну простую команду в консоле.

/usr/local/cpanel/bin/domain_keys_installer [username]

Где [username] - имя пользователя - владельца домена.


При этом cpanel выполнит за вас все необходимые процедуры - создаст пару RSA ключей и настроит MTA для работы с DK.
Чтобы убедиться в том что система настроена правильно можно послать самому себе тестовое сообщение. При этом в заголовках полученного письма будет добавлен примерно такой заголовок

DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=default; d=yoursite.com;
    h=Received:To:Subject:From:Content-Type:Content-Transfer-Encoding:Message-Id:Date; b=txGKMRa7OGMPvnwb97AR...



При этом может оказаться что при посылке сообщения через PHP заголовка в письме может не оказаться.

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

mail($email, $subject, $content, $headers,'-f bounce@yoursite.com');


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

Например если для отправки вы захотите использовать не свой SMTP сeрвер а SMTP своего интернет провайдера то ваши письма будут уходить не подписанными и некоторые получатели могут посчитать это попыткой их фальсификации. Этот метод также мало поможет если вы попадете в черные списки — DK в этом случае лишь дополнительно подтвердит, что вы  — это вы. Поэтому при принятии решения об использовании DK нужно принимать во внимание кто будет является потенциальным получателем вашей корреспонденции.

 

Оставить комментарий

разное (184)
howto (124)
программирование (108)
гад-же-ты (75)
мысли (42)
PHP (41)
JavaScript (39)
вебмастеринг (37)
linux (28)
гондураша (28)
юмор (25)
полезное (21)
движок (17)
Android (17)
софт (15)
деньги (14)
видео (13)
кино (13)
музыка (10)
беспредел (10)
путешествия (10)
интернет (9)
diy (9)
ztools (8)
книги (8)
умный дом (8)
занимательная физика (8)
языки (7)
хостинг (7)
Nokia 5800 (7)
lifehack (6)
css (6)
вебдизайн (6)
apple (5)
arduino (5)
связной (5)
прелоадер (5)
козлы (5)
oDesk (5)
занимательная юриспруденция (4)
кухня (4)
Python (4)
аниме (4)
svn (4)
software (3)
synphony (3)
рестораны (3)
энергия (3)
движек (3)
webmastering (2)
Java (2)
фото на документы (2)
Ruby on Rails (2)
спорт (2)
bash (2)
гитара (2)
дурдом (1)
C++ (1)
годнурас (1)
микросервисы (1)
SEO (1)
programming (1)
технологии (1)
наука (1)
сайты (1)
авторское право (1)
восстановить (1)
Поиск по блогу:

Valid XHTML 1.0 Strict