Adequator

неадекватный блог

8 сент. 2009 г.

Вылетает Python при подключении к MS SQL Server 2005?

Решение нашлось :) Достаточно в настройках поменять язык подключения по-умолчанию. Насколько я понял, эта проблема вообще касается только русской версии SQL сервера. Итак...

Открываем Management Studio, кликаем правой кнопкой в сервер и открываем Свойства, выбираем вкладку Дополнительно и меняем параметр Язык по умолчанию на любой другой (например, на English).

Python больше не вылетат! Кстати, если у вас вылетает php, то поблема решается точно так же.

Для справки:
  • Python 2.5.4
  • pymssql 1.0.2
  • ntwdblib.dll 8.00.2187

7 февр. 2009 г.

Плагин для TinyMCE

Как-то года 2-3 назад мне понадобилось прикрутить визуальный редактор для одного сайта. Даже помню, для какого :) Это был euromaa.com. Выбирал я не очень долго, сразу остановился на TinyMCE. Весь «вордовский» функционал там нужен не был, достаточно было минимального форматирования, списков и ссылок. Это всё есть в минимальной конфигурации. Но ещё мне хотелось, чтобы можно было легко добавлять заголовки (h1-h6), тут-то проблема и возникла. Можно было оставить стандартный выпадающий список стиля абзаца, но мы пошли дальше и сделали небольшой плагин, в котором заголовки реализованы кнопочками :)

Да, к чему я это всё... Сегодня сел и за час переделал плагин под 3-ю версию TinyMCE. Кому интересно, можете смело качать.

1 февр. 2009 г.

Импорт CSV из Excel на PHP

Столкнулся с проблемой импорта xls-таблицы, сохраненной в csv. Изначально делалось так:


$data = file($file_name);
foreach ($data as $key => $val) {
  // здесь обрабатываем каждую запись в таблице
}

Пока данные в таблице однострочные, всё прекрасно работает. Но как только в одном из полей появляется символ новой строки, мы получаем массив $data, в котором части строк с разделителями попадают в новый элемент массива.

Решение оказалось достаточно элементарным. Excel при сохранении CSV разделяет строки символами CR+LF, а многострочные записи в одном поле только символом LF. Таким образом получаем следующий код:


$str = file_get_contents($file_name);
$data = explode("\r\n", $str); 
  // а дальше всё так же, как в предыдущем варианте :)
foreach ($data as $key => $val) {
  // здесь обрабатываем каждую запись в таблице
}

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

20 янв. 2009 г.

RegExp для проверки адреса e-mail

Много искал, мало нашёл, поэтому подгоняю то, что нашёл под свои нужды. Сразу приведу удовлетворяющий меня вариант регулярного выражения, пояснения будут ниже.

/^\w((-|\+|\.|)\w)*@(\w[\w\-]*\w\.)+[a-zA-Z]{2,6}$/

Теперь пояснения

  • разрешил символы ".","-","_" и "+" в имени пользователя, но они не могут стоять рядом
  • имя пользователя должно начинаться и заканчиваться с буквы или цифры
  • доменное имя не может начинаться и заканчиваться символом "-"
  • зона состоит только из букв и содержит от 2 до 6 символов
  • совсем убрал представление хоста в виде ip-адреса, т.к. с такими адресами не встречался и пользователи с такими адресами мне не нужны

Это регулярное выражение не проверяет e-mail на валидность по RFC 2822, но вполне справляется с проверкой адресов, которые можно получить на большинстве бесплатных почтовых сервисов. С корпоративными и личными доменами ещё проще, т.к. там вообще очень редко встречаются корявые адреса.

11 янв. 2009 г.

Подсветка синтаксиса на blogger.com

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

  • Качаем Highlight.js и выкладываем куда-нибудь на хостинг
  • Заходим в настройку макета, туда где меняют HTML
  • Где-нибудь внутри тэга head добавляем следующий код:
    
    <script type="text/javascript" src="highlight.js"></script>
    <script type="text/javascript">
      hljs.initHighlightingOnLoad();
    </script>
    <link rel="stylesheet" href="ascetic.css">
    
    
  • Не забываем исправить пути к файлу highlight.js и файлу стилей
  • Добавляем в блог пост с кодом, предварительно поместив его в <pre><code> </code></pre>
  • Наслаждаемся полученным результатом ;)

UPD: Теперь highlight.js хостится на Яндексе.

30 июл. 2008 г.

OpenID + MODx

Для себя: надо бы описать процесс прикручивания OpenID на Матеме.

10 июл. 2008 г.

Moneyburner vs. Moneymaker

Выигрывает первый...