<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-293197781778894158</id><updated>2024-10-24T23:13:44.263+03:00</updated><category term="javascript"/><category term="blogs"/><category term="money"/><category term="MODx"/><category term="OpenID"/><category term="TinyMCE"/><category term="ajax"/><category term="blogger"/><category term="csv"/><category term="email"/><category term="import"/><category term="php"/><category term="plugin"/><category term="regexp"/><category term="syntax highlight"/><title type='text'>Adequator</title><subtitle type='html'>&lt;strike&gt;не&lt;/strike&gt;адекватный блог</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://adequator.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/293197781778894158/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://adequator.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>10</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-293197781778894158.post-8019326341837324271</id><published>2009-09-08T16:20:00.005+04:00</published><updated>2009-09-08T16:37:52.488+04:00</updated><title type='text'>Вылетает Python при подключении к MS SQL Server 2005?</title><content type='html'>&lt;p&gt;Решение нашлось :) Достаточно в настройках поменять язык подключения по-умолчанию. Насколько я понял, эта проблема вообще касается только русской версии SQL сервера. Итак...&lt;/p&gt;
&lt;/p&gt;Открываем Management Studio, кликаем правой кнопкой в сервер и открываем &lt;i&gt;Свойства&lt;/i&gt;, выбираем вкладку &lt;i&gt;Дополнительно&lt;/i&gt; и меняем параметр &lt;b&gt;Язык по умолчанию&lt;/b&gt; на любой другой (например, на English).&lt;/p&gt;
&lt;p&gt;Python больше не вылетат! Кстати, если у вас вылетает php, то поблема решается точно так же.&lt;/p&gt;
&lt;h5&gt;Для справки:&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;Python 2.5.4&lt;/li&gt;
&lt;li&gt;pymssql 1.0.2&lt;/li&gt;
&lt;li&gt;ntwdblib.dll 8.00.2187&lt;/li&gt;
&lt;/ul&gt;</content><link rel='replies' type='application/atom+xml' href='http://adequator.blogspot.com/feeds/8019326341837324271/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://adequator.blogspot.com/2009/09/python-ms-sql-server-2005.html#comment-form' title='Комментарии: 2'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/293197781778894158/posts/default/8019326341837324271'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/293197781778894158/posts/default/8019326341837324271'/><link rel='alternate' type='text/html' href='http://adequator.blogspot.com/2009/09/python-ms-sql-server-2005.html' title='Вылетает Python при подключении к MS SQL Server 2005?'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-293197781778894158.post-5087404976447371979</id><published>2009-02-07T03:55:00.002+03:00</published><updated>2009-02-07T04:10:34.633+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="javascript"/><category scheme="http://www.blogger.com/atom/ns#" term="plugin"/><category scheme="http://www.blogger.com/atom/ns#" term="TinyMCE"/><title type='text'>Плагин для TinyMCE</title><content type='html'>&lt;p&gt;
Как-то года 2-3 назад мне понадобилось прикрутить визуальный редактор для одного сайта. Даже помню, для какого :) Это был &lt;a href=&quot;http://euromaa.com&quot;&gt;euromaa.com&lt;/a&gt;. Выбирал я не очень долго, сразу остановился на TinyMCE. Весь &amp;laquo;вордовский&amp;raquo; функционал там нужен не был, достаточно было минимального форматирования, списков и ссылок. Это всё есть в минимальной конфигурации. Но ещё мне хотелось, чтобы можно было легко добавлять заголовки (h1-h6), тут-то проблема и возникла. Можно было оставить стандартный выпадающий список стиля абзаца, но мы пошли дальше и сделали &lt;a href=&quot;https://sourceforge.net/tracker2/?func=detail&amp;aid=1467705&amp;group_id=103281&amp;atid=738747&quot;&gt;небольшой плагин&lt;/a&gt;, в котором заголовки реализованы кнопочками :)
&lt;/p&gt;
&lt;p&gt;
Да, к чему я это всё... Сегодня сел и за час переделал плагин под 3-ю версию TinyMCE. Кому интересно, можете смело &lt;a href=&quot;https://sourceforge.net/tracker2/download.php?group_id=103281&amp;atid=738747&amp;file_id=312386&amp;aid=1467705&quot;&gt;качать&lt;/a&gt;.
&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://adequator.blogspot.com/feeds/5087404976447371979/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://adequator.blogspot.com/2009/02/tinymce.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/293197781778894158/posts/default/5087404976447371979'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/293197781778894158/posts/default/5087404976447371979'/><link rel='alternate' type='text/html' href='http://adequator.blogspot.com/2009/02/tinymce.html' title='Плагин для TinyMCE'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-293197781778894158.post-3681273663482890538</id><published>2009-02-01T22:12:00.008+03:00</published><updated>2010-10-03T16:27:22.850+04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="csv"/><category scheme="http://www.blogger.com/atom/ns#" term="import"/><category scheme="http://www.blogger.com/atom/ns#" term="php"/><title type='text'>Импорт CSV из Excel на PHP</title><content type='html'>&lt;p&gt;Столкнулся с проблемой импорта xls-таблицы, сохраненной в csv.  Изначально делалось так: &lt;/p&gt;&lt;pre&gt;&lt;code&gt;
$data = file($file_name);
foreach ($data as $key =&gt; $val) {
  // здесь обрабатываем каждую запись в таблице
}

&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Пока данные в таблице однострочные, всё прекрасно работает. Но как только в одном из полей появляется символ новой строки, мы получаем массив $data, в котором части строк с разделителями попадают в новый элемент массива. &lt;/p&gt;&lt;p&gt;Решение оказалось достаточно элементарным. Excel при сохранении CSV разделяет строки символами CR+LF, а многострочные записи в одном поле только символом LF. Таким образом получаем следующий код: &lt;/p&gt;&lt;pre&gt;&lt;code class=&quot;php&quot;&gt;
$str = file_get_contents($file_name);
$data = explode(&quot;\r\n&quot;, $str); 
  // а дальше всё так же, как в предыдущем варианте :)
foreach ($data as $key =&gt; $val) {
  // здесь обрабатываем каждую запись в таблице
}

&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Как обрабатывать сами строки&amp;nbsp;&amp;mdash; это уже немного другой вопрос. Главное не забывать, что строковые данные заключаются в двойные кавычки, а двойные кавычки внутри текстовых полей просто дублируются. &lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://adequator.blogspot.com/feeds/3681273663482890538/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://adequator.blogspot.com/2009/02/csv-excel-php.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/293197781778894158/posts/default/3681273663482890538'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/293197781778894158/posts/default/3681273663482890538'/><link rel='alternate' type='text/html' href='http://adequator.blogspot.com/2009/02/csv-excel-php.html' title='Импорт CSV из Excel на PHP'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-293197781778894158.post-3989074951724119399</id><published>2009-01-20T21:36:00.000+03:00</published><updated>2009-01-20T23:59:01.505+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="email"/><category scheme="http://www.blogger.com/atom/ns#" term="javascript"/><category scheme="http://www.blogger.com/atom/ns#" term="regexp"/><title type='text'>RegExp для проверки адреса e-mail</title><content type='html'>&lt;p&gt;
Много искал, мало нашёл, поэтому подгоняю то, что нашёл под свои нужды. Сразу приведу удовлетворяющий меня вариант регулярного выражения, пояснения будут ниже.
&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;javascript&quot;&gt;/^\w((-|\+|\.|)\w)*@(\w[\w\-]*\w\.)+[a-zA-Z]{2,6}$/&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Теперь пояснения&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;разрешил символы &quot;.&quot;,&quot;-&quot;,&quot;_&quot; и &quot;+&quot; в имени пользователя, но они не могут стоять рядом&lt;/li&gt;
&lt;li&gt;имя пользователя должно начинаться и заканчиваться с буквы или цифры&lt;/li&gt;
&lt;li&gt;доменное имя не может начинаться и заканчиваться символом &quot;-&quot;&lt;/li&gt;
&lt;li&gt;зона состоит только из букв и содержит от 2 до 6 символов&lt;/li&gt;
&lt;li&gt;совсем убрал представление хоста в виде ip-адреса, т.к. с такими адресами не встречался и пользователи с такими адресами мне не нужны&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Это регулярное выражение не проверяет e-mail на валидность по RFC 2822, но вполне справляется с проверкой адресов, которые можно получить на большинстве бесплатных почтовых сервисов. С корпоративными и личными доменами ещё проще, т.к. там вообще очень редко встречаются корявые адреса.
&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://adequator.blogspot.com/feeds/3989074951724119399/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://adequator.blogspot.com/2009/01/regexp-e-mail.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/293197781778894158/posts/default/3989074951724119399'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/293197781778894158/posts/default/3989074951724119399'/><link rel='alternate' type='text/html' href='http://adequator.blogspot.com/2009/01/regexp-e-mail.html' title='RegExp для проверки адреса e-mail'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-293197781778894158.post-2645734775690531943</id><published>2009-01-11T09:10:00.003+03:00</published><updated>2010-10-03T17:48:12.914+04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="blogger"/><category scheme="http://www.blogger.com/atom/ns#" term="javascript"/><category scheme="http://www.blogger.com/atom/ns#" term="syntax highlight"/><title type='text'>Подсветка синтаксиса на blogger.com</title><content type='html'>&lt;p&gt;
Прикрутил подсветку синтаксиса. Всё оказалось гораздо проще, чем можно было подумать.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Качаем &lt;a href=&quot;http://softwaremaniacs.org/soft/highlight/&quot;&gt;Highlight.js&lt;/a&gt; и выкладываем куда-нибудь на хостинг&lt;/li&gt;
&lt;li&gt;Заходим в настройку макета, туда где меняют HTML&lt;/li&gt;
&lt;li&gt;Где-нибудь внутри тэга &lt;b&gt;head&lt;/b&gt; добавляем следующий код: &lt;pre&gt;&lt;code&gt;
&amp;lt;script type=&quot;text/javascript&quot; src=&quot;highlight.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;script type=&quot;text/javascript&quot;&amp;gt;
  hljs.initHighlightingOnLoad();
&amp;lt;/script&amp;gt;
&amp;lt;link rel=&quot;stylesheet&quot; href=&quot;ascetic.css&quot;&amp;gt;

&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;Не забываем исправить пути к файлу highlight.js и файлу стилей&lt;/li&gt;
&lt;li&gt;Добавляем в блог пост с кодом, предварительно поместив его в &amp;lt;pre&amp;gt;&amp;lt;code&amp;gt; &amp;lt;/code&amp;gt;&amp;lt;/pre&amp;gt;&lt;/li&gt;
&lt;li&gt;Наслаждаемся полученным результатом ;)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
UPD: Теперь highlight.js &lt;a href=&quot;http://api.yandex.ru/jslibs/libs.xml#highlightjs&quot;&gt;хостится на Яндексе&lt;/a&gt;.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://adequator.blogspot.com/feeds/2645734775690531943/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://adequator.blogspot.com/2009/01/bloggercom.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/293197781778894158/posts/default/2645734775690531943'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/293197781778894158/posts/default/2645734775690531943'/><link rel='alternate' type='text/html' href='http://adequator.blogspot.com/2009/01/bloggercom.html' title='Подсветка синтаксиса на blogger.com'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-293197781778894158.post-203692019873665608</id><published>2008-07-30T12:44:00.000+04:00</published><updated>2009-01-22T01:49:57.130+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="MODx"/><category scheme="http://www.blogger.com/atom/ns#" term="OpenID"/><title type='text'>OpenID + MODx</title><content type='html'>&lt;p&gt;Для себя: надо бы описать процесс прикручивания OpenID на &lt;a href=&quot;http://matema.ru&quot;&gt;Матеме&lt;/a&gt;.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://adequator.blogspot.com/feeds/203692019873665608/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://adequator.blogspot.com/2008/07/openid-modx.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/293197781778894158/posts/default/203692019873665608'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/293197781778894158/posts/default/203692019873665608'/><link rel='alternate' type='text/html' href='http://adequator.blogspot.com/2008/07/openid-modx.html' title='OpenID + MODx'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-293197781778894158.post-2061543205201485346</id><published>2008-07-10T16:54:00.000+04:00</published><updated>2009-01-22T01:50:21.139+03:00</updated><title type='text'>Moneyburner vs. Moneymaker</title><content type='html'>&lt;p&gt;Выигрывает первый...&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://adequator.blogspot.com/feeds/2061543205201485346/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://adequator.blogspot.com/2008/07/moneyburner-vs-moneymaker.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/293197781778894158/posts/default/2061543205201485346'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/293197781778894158/posts/default/2061543205201485346'/><link rel='alternate' type='text/html' href='http://adequator.blogspot.com/2008/07/moneyburner-vs-moneymaker.html' title='Moneyburner vs. Moneymaker'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-293197781778894158.post-490335439449349248</id><published>2007-11-20T18:55:00.000+03:00</published><updated>2009-01-22T01:57:20.324+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="blogs"/><category scheme="http://www.blogger.com/atom/ns#" term="money"/><title type='text'>А воз и ныне там...</title><content type='html'>&lt;p&gt;Так и не заработалось ничего :( &lt;br/&gt;
Неужели офлайн рулит? Не верю!&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://adequator.blogspot.com/feeds/490335439449349248/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://adequator.blogspot.com/2007/11/blog-post.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/293197781778894158/posts/default/490335439449349248'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/293197781778894158/posts/default/490335439449349248'/><link rel='alternate' type='text/html' href='http://adequator.blogspot.com/2007/11/blog-post.html' title='А воз и ныне там...'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-293197781778894158.post-359928841084620731</id><published>2007-08-05T20:22:00.000+04:00</published><updated>2009-01-22T01:51:12.926+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ajax"/><category scheme="http://www.blogger.com/atom/ns#" term="javascript"/><title type='text'>Про AJAX</title><content type='html'>&lt;p&gt;Обнаружил &lt;a href=&quot;http://www.javascriptkata.com/2007/06/12/ajax-javascript-and-threads-the-final-truth/&quot;&gt;интересное обсуждение&lt;/a&gt; технологии AJAX. Суть в том, что при асинхронном ajax-запросе callback-функция прерывает выполнение функции, из которой делался запрос.&lt;/p&gt;
&lt;p&gt;Правда, не так уж это и актуально, т.к. работает только если прерываемая функция работает довольно долго и если в ней вызываются alert() или confirm().&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://adequator.blogspot.com/feeds/359928841084620731/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://adequator.blogspot.com/2007/08/ajax.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/293197781778894158/posts/default/359928841084620731'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/293197781778894158/posts/default/359928841084620731'/><link rel='alternate' type='text/html' href='http://adequator.blogspot.com/2007/08/ajax.html' title='Про AJAX'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-293197781778894158.post-1520256950517744820</id><published>2007-07-27T15:45:00.001+04:00</published><updated>2009-01-22T01:50:49.355+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="blogs"/><category scheme="http://www.blogger.com/atom/ns#" term="money"/><title type='text'>Блин</title><content type='html'>&lt;p&gt;Итак, начнём...&lt;/p&gt;
&lt;p&gt;Есть хостинг, есть несколько десятков доменов от &lt;a href=&quot;https://www.ripn.net&quot;&gt;RIPNа&lt;/a&gt;, есть желание на этом заработать.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://adequator.blogspot.com/feeds/1520256950517744820/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://adequator.blogspot.com/2007/07/blog-post.html#comment-form' title='Комментарии: 1'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/293197781778894158/posts/default/1520256950517744820'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/293197781778894158/posts/default/1520256950517744820'/><link rel='alternate' type='text/html' href='http://adequator.blogspot.com/2007/07/blog-post.html' title='Блин'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry></feed>