<?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-3632424430303246318</id><updated>2024-11-01T13:34:15.992+03:00</updated><category term="tool"/><category term="tip"/><category term="server"/><category term="Arch"/><category term="desk"/><category term="dev"/><category term="howto"/><category term="script"/><category term="vim"/><category term="Python"/><category term="hack"/><category term="min"/><category term="mix"/><category term="IRL"/><category term="Java"/><category term="LaTeX"/><category term="google"/><title type='text'>IT записки</title><subtitle type='html'>IT, программирование, Linux и все в таком духе</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://blog.iborisov.ru/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3632424430303246318/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://blog.iborisov.ru/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/3632424430303246318/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Ivan</name><uri>http://www.blogger.com/profile/17653318768291757340</uri><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>50</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3632424430303246318.post-358647653254059440</id><published>2015-03-22T01:35:00.000+03:00</published><updated>2015-03-22T01:35:58.255+03:00</updated><title type='text'>Предварительный отзыв на книгу «Clojure web development essentials»</title><content type='html'>&lt;p&gt;Недавно мне поступило предложение от издательства &lt;a href=&quot;http://packtpub.com&quot;&gt;Packt Publishing&lt;/a&gt;: оставить отзыв о книге &lt;a href=&quot;http://bit.ly/1KhhpxT&quot;&gt;Clojure web development essentials&lt;/a&gt; в обмен на эту самую книгу.&lt;/p&gt;
&lt;p&gt;Естественно, я согласился, потому что давно уже положил глаз на Clojure и его в веб-стек в том числе, и через некоторое время книга появилась в моей учетной записи на &lt;a href=&quot;packtpub.com&quot;&gt;packtpub.com&lt;/a&gt;. Удобно, что прямо оттуда можно послать книгу прямо в Kindle — я использую приложение на телефоне и планшете, прогресс чтения синхронизируется между ними.&lt;/p&gt;
&lt;p&gt;Итак, на данный я прочитал 5 глав из 11 и здесь опишу впечатления.&lt;/p&gt;
&lt;h2 id=&quot;-&quot;&gt;Краткое содержание прочитанного&lt;/h2&gt;
&lt;h3 id=&quot;-&quot;&gt;О чем вообще книга&lt;/h3&gt;
&lt;p&gt;Как следует из названия, о веб-разработке с применением Clojure, причем только серверной части (соответственно, ничего нет про ClojureScript).&lt;/p&gt;
&lt;p&gt;В книге используется «фреймворк» &lt;a href=&quot;http://www.luminusweb.net/&quot;&gt;Luminus&lt;/a&gt;, который фреймворком можно назвать  условно. Luminus — это шаблон для Leiningen (главная система сборки и автоматизации для Clojure-проектов), который предлагает некоторый набор библиотек для веб-разработки на Clojure и несколько удобных уже написанных функций (вроде запуска\остановки встроенного сервера, умного рендеринга шаблонов) и собственно каркаса приложения.&lt;/p&gt;
&lt;h3 id=&quot;-1-luminus&quot;&gt;Глава 1. Приступая к работе с Luminus&lt;/h3&gt;
&lt;p&gt;Установка окружения, генерация с помощью Luminus первого приложения. В общем, запускаем HelloWorld и осматриваемся.&lt;/p&gt;
&lt;h3 id=&quot;-2-ring-ring-server&quot;&gt;Глава 2. Ring и Ring Server&lt;/h3&gt;
&lt;p&gt;Хотя автор и называет главу «самой сухой в книге», она одна из самых главных — здесь достаточно подробно рассматривается основы взаимодействия с HTTP-стеком: request maps, response maps, handlers, middleware.&lt;/p&gt;
&lt;h3 id=&quot;-3-&quot;&gt;Глава 3. Логгирование&lt;/h3&gt;
&lt;p&gt;Как, наверное, и во всех языках, логгирование — это вещь из серии «настроил и забыл». Тут так же: сначала немного рассказывается про библиотеку Timbre, затем вместо стандартного настраиваем date rolling appender.&lt;/p&gt;
&lt;h3 id=&quot;-4-url-&quot;&gt;Глава 4. URL маршрутизация и шаблоны&lt;/h3&gt;
&lt;p&gt;Как стандартом для HTTP является Ring, так Compojure — стандартный набор макросов для генерации правил URL-маршрутизации. В первой части главы рассказывается про маршрутизацию URL, обработку и деструктуризацию параметров. Во второй части — про шаблонизатор Selmer, с краткой демонстрацией его возможностей: переменные, фильтры, теги, наследование шаблонов. Selmer написан с оглядкой на встроенный в Django шаблонизатор. Это удобно, учитывая распространенность подобного синтаксиса (в отличие, например, от Hiccup, который является скорее DSL для HTML).&lt;/p&gt;
&lt;h3 id=&quot;-5-&quot;&gt;Глава 5. Обработка ввода&lt;/h3&gt;
&lt;p&gt;В этой главе описан подход к валидации входных данных из HTML формы с помощью библиотеки Validateur и созданию переиспользуемых функций валидации.&lt;/p&gt;
&lt;h2 id=&quot;-&quot;&gt;Общие впечатления и примечания&lt;/h2&gt;
&lt;p&gt;Некоторые вещи уже устарели. Например, из Luminus 2 убрана библиотека lib-noir; для валидации теперь по умолчанию используется Bouncer, а не Validateur, как в книге; немного изменился код генерируемого приложения и т.д. Хоть автор и предупреждает об этом и говорит, как зафиксировать версию Luminus, чтобы все примеры из книги работали, все равно хочется самое свежее на данный момент. В целом можно приспособиться.&lt;/p&gt;
&lt;p&gt;Отсутствует введение в Clojure, и это хорошо, потому что вряд ли кому-то нужно очередной tutorial по Clojure за 15 минут. Есть много хороших книг и кратких онлайн-руководств по языку.&lt;/p&gt;
&lt;p&gt;Перед чтением, помимо знакомства с Clojure и основами веб-разработки, хорошо бы иметь представление о Java Servlet и контейнерах сервлетов, чтобы понять, что происходит в промежутке между браузером и Ring (и увидеть всю красоту Ring).&lt;/p&gt;
&lt;p&gt;Понравился подход, когда сначала в кратком виде излагается «Что?», а после «Как?» и «Зачем?» — это позволяет быстро вернуться назад, и окинуть взглядом основные концепции главы. При этом нет слишком долгого описания библиотек — для глубокого ознакомления присутствуют ссылки на отдельную документацию (или прямиком на исходный код ☺). Кстати, книга своей простотой и последовательностью мне напомнила «The Definitive Guide to Django».&lt;/p&gt;
&lt;p&gt;Также хорошо, что в такой небольшой книге освещаются важные для production темы: логирование, тестирование, миграции БД, работу в разных окружениях (dev\prod).&lt;/p&gt;
&lt;h2 id=&quot;-&quot;&gt;Заключение (тоже предварительное)&lt;/h2&gt;
&lt;p&gt;Пока что книга оставляет преимущественно позитивные впечатления. Даже если я не буду использовать Clojure в качестве основного языка в рабочих проектах, просто приятно отвлечься от «enterprise» кода с Java, Spring и т.п. и иногда что-нибудь на красивом языке.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.iborisov.ru/feeds/358647653254059440/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://blog.iborisov.ru/2015/03/clojure-web-development-essentials.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3632424430303246318/posts/default/358647653254059440'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3632424430303246318/posts/default/358647653254059440'/><link rel='alternate' type='text/html' href='http://blog.iborisov.ru/2015/03/clojure-web-development-essentials.html' title='Предварительный отзыв на книгу «Clojure web development essentials»'/><author><name>Ivan</name><uri>http://www.blogger.com/profile/17653318768291757340</uri><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-3632424430303246318.post-8409653194401538840</id><published>2015-01-03T20:52:00.000+03:00</published><updated>2015-01-04T11:38:29.356+03:00</updated><title type='text'>Разделение окон в Openbox как в Windows 7</title><content type='html'>&lt;p&gt;credits: &lt;a href=&quot;&quot;&gt;&lt;a href=&quot;http://v1chak.blogspot.ru/2013/03/lubuntu-openbox-keybind-to-split-screen.html&quot;&gt;http://v1chak.blogspot.ru/2013/03/lubuntu-openbox-keybind-to-split-screen.html&lt;/a&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;В секцию &lt;code&gt;&amp;lt;keyboard&amp;gt;&lt;/code&gt; добавить:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;keybind key=&amp;quot;W-Left&amp;quot;&amp;gt;
    &amp;lt;action name=&amp;quot;UnmaximizeFull&amp;quot;/&amp;gt;
    &amp;lt;action name=&amp;quot;MoveResizeTo&amp;quot;&amp;gt;
      &amp;lt;x&amp;gt;0&amp;lt;/x&amp;gt;
      &amp;lt;y&amp;gt;0&amp;lt;/y&amp;gt;
      &amp;lt;width&amp;gt;50%&amp;lt;/width&amp;gt;
      &amp;lt;height&amp;gt;97%&amp;lt;/height&amp;gt;
    &amp;lt;/action&amp;gt;
&amp;lt;/keybind&amp;gt;
&amp;lt;keybind key=&amp;quot;W-Right&amp;quot;&amp;gt;
    &amp;lt;action name=&amp;quot;UnmaximizeFull&amp;quot;/&amp;gt;
    &amp;lt;action name=&amp;quot;MoveResizeTo&amp;quot;&amp;gt;
      &amp;lt;x&amp;gt;1/2&amp;lt;/x&amp;gt;
      &amp;lt;y&amp;gt;0&amp;lt;/y&amp;gt;
      &amp;lt;width&amp;gt;50%&amp;lt;/width&amp;gt;
      &amp;lt;height&amp;gt;97%&amp;lt;/height&amp;gt;
    &amp;lt;/action&amp;gt;
&amp;lt;/keybind&amp;gt;
&amp;lt;keybind key=&amp;quot;W-Down&amp;quot;&amp;gt;
    &amp;lt;action name=&amp;quot;Iconify&amp;quot;/&amp;gt;
&amp;lt;/keybind&amp;gt;
&amp;lt;keybind key=&amp;quot;W-Up&amp;quot;&amp;gt;
    &amp;lt;action name=&amp;quot;Maximize&amp;quot;/&amp;gt;
&amp;lt;/keybind&amp;gt;
&lt;/code&gt;&lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.iborisov.ru/feeds/8409653194401538840/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://blog.iborisov.ru/2015/01/openbox-windows-7.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3632424430303246318/posts/default/8409653194401538840'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3632424430303246318/posts/default/8409653194401538840'/><link rel='alternate' type='text/html' href='http://blog.iborisov.ru/2015/01/openbox-windows-7.html' title='Разделение окон в Openbox как в Windows 7'/><author><name>Ivan</name><uri>http://www.blogger.com/profile/17653318768291757340</uri><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-3632424430303246318.post-7680607080169898184</id><published>2015-01-02T20:06:00.001+03:00</published><updated>2015-01-02T20:06:10.949+03:00</updated><title type='text'>Подключение к удаленному JMX через SSH</title><content type='html'>&lt;p&gt;На сервере добавляем опции:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;-Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.port=9999 \
-Dcom.sun.management.jmxremote.authenticate=false \
-Dcom.sun.management.jmxremote.local.only=false \
-Dcom.sun.management.jmxremote.ssl=false \
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;JMX сервер слушает 9999 порт.&lt;/p&gt;
&lt;p&gt;Говорим ssh вести себя как прокси:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;ssh -D 7777 &amp;lt;ssh host&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Локальный «прокси» слушает 7777 порт.&lt;/p&gt;
&lt;p&gt;Подключаемся в JConsole:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;jconsole -J-DsocksProxyHost=localhost -J-DsocksProxyPort=7777 \
service:jmx:rmi:///jndi/rmi://localhost:9999/jmxrmi
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Настраиваем и подключаемся в VisualVM:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Tools-&amp;gt;Options-&amp;gt;Network - Manual Proxy Settings localhost 7777

File -&amp;gt; Add remote host -&amp;gt; example.org

Right click example.org -&amp;gt; Add JXM connection -&amp;gt; example.org:9999
&lt;/code&gt;&lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.iborisov.ru/feeds/7680607080169898184/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://blog.iborisov.ru/2015/01/jmx-ssh.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3632424430303246318/posts/default/7680607080169898184'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3632424430303246318/posts/default/7680607080169898184'/><link rel='alternate' type='text/html' href='http://blog.iborisov.ru/2015/01/jmx-ssh.html' title='Подключение к удаленному JMX через SSH'/><author><name>Ivan</name><uri>http://www.blogger.com/profile/17653318768291757340</uri><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-3632424430303246318.post-6566742239385175442</id><published>2014-12-20T19:59:00.001+03:00</published><updated>2014-12-20T19:59:45.254+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="mix"/><title type='text'>Обо всем №2</title><content type='html'>&lt;p&gt;Очередной дамп памяти и записной книжки.&lt;/p&gt;

&lt;a href=&quot;http://blog.iborisov.ru/2014/12/2.html#more&quot;&gt;Дальше »&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.iborisov.ru/feeds/6566742239385175442/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://blog.iborisov.ru/2014/12/2.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3632424430303246318/posts/default/6566742239385175442'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3632424430303246318/posts/default/6566742239385175442'/><link rel='alternate' type='text/html' href='http://blog.iborisov.ru/2014/12/2.html' title='Обо всем №2'/><author><name>Ivan</name><uri>http://www.blogger.com/profile/17653318768291757340</uri><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-3632424430303246318.post-4809737347752500593</id><published>2013-09-07T17:48:00.000+04:00</published><updated>2013-10-14T14:01:40.847+04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="dev"/><category scheme="http://www.blogger.com/atom/ns#" term="howto"/><title type='text'>Компиляция Mercurial с помощью icc</title><content type='html'>&lt;!-- title:
Компиляция Mercurial с помощью icc
--&gt;

&lt;p&gt;Нужно было установить Mercurial на серверной машине с icc без админских прав.&lt;/p&gt;
&lt;p&gt;Повезло, что в наличии были Python 2.6 и easy_install.&lt;/p&gt;
&lt;p&gt;И из коробки (через easy_install), и &lt;a href=&quot;http://mercurial.selenic.com/wiki/UnixInstall#Per-user_installation&quot;&gt;установку руками по умолчанию&lt;/a&gt; Mercurial завершался с ошибкой, жалуясь на неопределенный символ &lt;code&gt;__intel_security_cookie&lt;/code&gt; в модуле osutil.so.&lt;/p&gt;
&lt;p&gt;Решение было найдено в &lt;a href=&quot;https://groups.google.com/forum/#!topic/cython-users/gFq3BWqOUN8&quot;&gt;гугл-группе cython-users&lt;/a&gt;: нужно явно указывать, чтобы модули компилировались в виде динамических библиотек и передавать линкеру соответствующую опцию.&lt;/p&gt;
&lt;p&gt;Итак, чтобы установить Mercurial, в директории с исходниками нужно выполнить 2 команды:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;CC=icc LDSHARED=&quot;icc -shared&quot; python setup.py build
python setyp.py install --home=$HOME
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;После этого в домашнем каталоге появятся &lt;code&gt;bin/&lt;/code&gt; и &lt;code&gt;lib/&lt;/code&gt; (или &lt;code&gt;lib64/&lt;/code&gt;).&lt;/p&gt;
&lt;p&gt;Для нормального использования команды &lt;code&gt;hg&lt;/code&gt; нужно добавить &lt;code&gt;${HOME}/bin&lt;/code&gt; в &lt;code&gt;PATH&lt;/code&gt; и &lt;code&gt;${HOME}/lib/python&lt;/code&gt; (или &lt;code&gt;${HOME}/lib64/python&lt;/code&gt;) в &lt;code&gt;PYTHONPATH&lt;/code&gt;.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.iborisov.ru/feeds/4809737347752500593/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://blog.iborisov.ru/2013/09/mercurial-icc.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3632424430303246318/posts/default/4809737347752500593'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3632424430303246318/posts/default/4809737347752500593'/><link rel='alternate' type='text/html' href='http://blog.iborisov.ru/2013/09/mercurial-icc.html' title='Компиляция Mercurial с помощью icc'/><author><name>Ivan</name><uri>http://www.blogger.com/profile/17653318768291757340</uri><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-3632424430303246318.post-9211192175372801990</id><published>2012-12-20T22:45:00.000+04:00</published><updated>2012-12-30T16:32:00.981+04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="mix"/><category scheme="http://www.blogger.com/atom/ns#" term="tip"/><title type='text'>Обо всем № 1</title><content type='html'>&lt;p&gt;Новый формат постов — сборная солянка. Короткие заметки, собранные в
разное время и не тянущие на отдельный пост.&lt;/p&gt;

&lt;a href=&quot;http://blog.iborisov.ru/2012/12/1.html#more&quot;&gt;Дальше »&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.iborisov.ru/feeds/9211192175372801990/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://blog.iborisov.ru/2012/12/1.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3632424430303246318/posts/default/9211192175372801990'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3632424430303246318/posts/default/9211192175372801990'/><link rel='alternate' type='text/html' href='http://blog.iborisov.ru/2012/12/1.html' title='Обо всем № 1'/><author><name>Ivan</name><uri>http://www.blogger.com/profile/17653318768291757340</uri><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-3632424430303246318.post-4920353876080981899</id><published>2012-11-12T01:00:00.000+04:00</published><updated>2015-01-02T21:45:35.464+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="dev"/><category scheme="http://www.blogger.com/atom/ns#" term="howto"/><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><title type='text'>Отчеты в Maven</title><content type='html'>&lt;!-- title: Отчеты в Maven --&gt;

&lt;p&gt;&lt;strong&gt;upd 03.01.2015: конфиг переехал в reporting вместо site plugin, обновлены версии плагинов&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Под катом очередная простыня XML с моим конфигом для построения
отчетов, собранным из разных мест интернета.&lt;/p&gt;
&lt;a href=&quot;http://blog.iborisov.ru/2012/11/maven.html#more&quot;&gt;Дальше »&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.iborisov.ru/feeds/4920353876080981899/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://blog.iborisov.ru/2012/11/maven.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3632424430303246318/posts/default/4920353876080981899'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3632424430303246318/posts/default/4920353876080981899'/><link rel='alternate' type='text/html' href='http://blog.iborisov.ru/2012/11/maven.html' title='Отчеты в Maven'/><author><name>Ivan</name><uri>http://www.blogger.com/profile/17653318768291757340</uri><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-3632424430303246318.post-1990469095256760642</id><published>2012-08-09T14:57:00.000+04:00</published><updated>2012-12-30T16:32:22.201+04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="server"/><category scheme="http://www.blogger.com/atom/ns#" term="tip"/><category scheme="http://www.blogger.com/atom/ns#" term="tool"/><title type='text'>Немного о Munin</title><content type='html'>&lt;p&gt;Когда-то давно на домашнем сервере установил Munin, настроил по умолчанию (c помощью &lt;code&gt;--suggest&lt;/code&gt;) и забыл. Со временем что-то изменилось, что-то добавилось: ACPI плагин перестал показывать температуру, потому что при очередном обновлении ядра пропало устройство из &lt;code&gt;/proc/acpi/thermal_zone/что-то_там&lt;/code&gt;, появились Apache Tomcat и nginx, для которых тоже интересно получать разные красивые графики. А еще захотелось настроить уведомления о неприятных ситуациях вроде перегрева, недостатка свободного места на дисках и т. п.&lt;/p&gt;
&lt;a href=&quot;http://blog.iborisov.ru/2012/08/munin.html#more&quot;&gt;Дальше »&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.iborisov.ru/feeds/1990469095256760642/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://blog.iborisov.ru/2012/08/munin.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3632424430303246318/posts/default/1990469095256760642'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3632424430303246318/posts/default/1990469095256760642'/><link rel='alternate' type='text/html' href='http://blog.iborisov.ru/2012/08/munin.html' title='Немного о Munin'/><author><name>Ivan</name><uri>http://www.blogger.com/profile/17653318768291757340</uri><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-3632424430303246318.post-6973716576615499810</id><published>2012-02-29T23:59:00.000+04:00</published><updated>2013-01-06T21:42:32.288+04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="desk"/><category scheme="http://www.blogger.com/atom/ns#" term="dev"/><category scheme="http://www.blogger.com/atom/ns#" term="howto"/><category scheme="http://www.blogger.com/atom/ns#" term="tool"/><title type='text'>Box.net, доступ через WebDAV с помощью Nautilus</title><content type='html'>&lt;p&gt;&lt;i&gt;По мотивам &lt;a href=&quot;http://lifehacker.ru/2012/02/29/kak-podklyuchit-50gb-ot-box-net-v-vide-setevogo-diska-v-widowsmac/&quot;&gt;заметки на Лайфхакере&lt;/a&gt;.&lt;/i&gt;&lt;/p&gt;

&lt;p&gt;В адресной строке Наутилуса пишем:&lt;/p&gt;
&lt;code&gt;&lt;pre&gt;davs://www.box.com/dav&lt;/pre&gt;&lt;/code&gt;
&lt;i&gt;&lt;code&gt;davs&lt;/code&gt; &amp;mdash; WebDAV через HTTPS.&lt;/i&gt;

&lt;p&gt;Затем вводим логин и пароль, и все, можно пользоваться. Для быстрого доступа в дальнейшем примонтированный сетевой диск можно добавить в закладки.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.iborisov.ru/feeds/6973716576615499810/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://blog.iborisov.ru/2012/02/boxnet-webdav-nautilus.html#comment-form' title='Комментарии: 2'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3632424430303246318/posts/default/6973716576615499810'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3632424430303246318/posts/default/6973716576615499810'/><link rel='alternate' type='text/html' href='http://blog.iborisov.ru/2012/02/boxnet-webdav-nautilus.html' title='Box.net, доступ через WebDAV с помощью Nautilus'/><author><name>Ivan</name><uri>http://www.blogger.com/profile/17653318768291757340</uri><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-3632424430303246318.post-1764636128123411847</id><published>2012-02-23T17:48:00.000+04:00</published><updated>2012-03-14T22:06:55.772+04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="dev"/><category scheme="http://www.blogger.com/atom/ns#" term="Python"/><category scheme="http://www.blogger.com/atom/ns#" term="script"/><category scheme="http://www.blogger.com/atom/ns#" term="tool"/><title type='text'>Mako, Markdown и немного Python...</title><content type='html'>&lt;h3&gt;... или генерируем кучу статического HTML с минимумом копипаста&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;Программист за два часа может написать программу, которая за две секунды сделает то, что обычный пользователь будет делать полчаса.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h4&gt;Задача&lt;/h4&gt;
&lt;p&gt;Недавно понадобилось сделать из большого структурированного текста HTML-документы с навигацией.&lt;/p&gt;
&lt;p&gt;Решил сделать это с помощью шаблонов и языка разметки Markdown, потому что:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Можно избежать копипаста однотипной HTML-разметки, так как общая структура у документов одинаковая.&lt;/li&gt;
&lt;li&gt;При изменении структуры, ссылок на стили и т. п. не нужно изменять много файлов.&lt;/li&gt;
&lt;/ol&gt;
&lt;a href=&quot;http://blog.iborisov.ru/2012/02/mako-markdown-python.html#more&quot;&gt;Дальше »&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.iborisov.ru/feeds/1764636128123411847/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://blog.iborisov.ru/2012/02/mako-markdown-python.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3632424430303246318/posts/default/1764636128123411847'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3632424430303246318/posts/default/1764636128123411847'/><link rel='alternate' type='text/html' href='http://blog.iborisov.ru/2012/02/mako-markdown-python.html' title='Mako, Markdown и немного Python...'/><author><name>Ivan</name><uri>http://www.blogger.com/profile/17653318768291757340</uri><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-3632424430303246318.post-3853943784714731770</id><published>2012-02-13T00:47:00.000+04:00</published><updated>2012-03-14T22:09:31.576+04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="dev"/><category scheme="http://www.blogger.com/atom/ns#" term="howto"/><title type='text'>Maven и Mercurial. Версия с точностью до changeset&#39;а</title><content type='html'>&lt;p&gt;Захотелось для Maven проекта, размещенного в разных местах и с разными билдами, знать точную версию в виде changeset&amp;#39;a из репозитория Mercurial.&lt;/p&gt;
&lt;p&gt;Ниже быстрое, простое (без scm плагина) и не слишком гибкое решение в виде кусков pom.xml.&lt;/p&gt;
&lt;a href=&quot;http://blog.iborisov.ru/2012/02/maven-mercurial-changeset.html#more&quot;&gt;Дальше »&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.iborisov.ru/feeds/3853943784714731770/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://blog.iborisov.ru/2012/02/maven-mercurial-changeset.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3632424430303246318/posts/default/3853943784714731770'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3632424430303246318/posts/default/3853943784714731770'/><link rel='alternate' type='text/html' href='http://blog.iborisov.ru/2012/02/maven-mercurial-changeset.html' title='Maven и Mercurial. Версия с точностью до changeset&#39;а'/><author><name>Ivan</name><uri>http://www.blogger.com/profile/17653318768291757340</uri><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-3632424430303246318.post-123409475575427108</id><published>2012-01-20T00:43:00.000+04:00</published><updated>2012-01-29T21:43:26.147+04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Arch"/><category scheme="http://www.blogger.com/atom/ns#" term="desk"/><category scheme="http://www.blogger.com/atom/ns#" term="min"/><title type='text'>Openbox. Индикаторы звука и раскладки клавиатуры</title><content type='html'>Уже достаточно давно начал пользоваться этими маленькими полезнюшками (наряду с описанными &lt;a href=&quot;/2011/04/openbox.html&quot;&gt;ранее&lt;/a&gt;). Пишу, чтобы не забыть названия программ :)&lt;a href=&quot;http://blog.iborisov.ru/2012/01/openbox.html#more&quot;&gt;Дальше »&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.iborisov.ru/feeds/123409475575427108/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://blog.iborisov.ru/2012/01/openbox.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3632424430303246318/posts/default/123409475575427108'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3632424430303246318/posts/default/123409475575427108'/><link rel='alternate' type='text/html' href='http://blog.iborisov.ru/2012/01/openbox.html' title='Openbox. Индикаторы звука и раскладки клавиатуры'/><author><name>Ivan</name><uri>http://www.blogger.com/profile/17653318768291757340</uri><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-3632424430303246318.post-6157140596123686331</id><published>2012-01-17T13:28:00.000+04:00</published><updated>2013-02-10T19:38:29.889+04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Arch"/><category scheme="http://www.blogger.com/atom/ns#" term="howto"/><title type='text'>ThinkPad X220 и установка Arch Linux + GPT + UEFI</title><content type='html'>Лог подготовки ноутбука к работе.&lt;br&gt;
&lt;a href=&quot;http://blog.iborisov.ru/2012/01/thinkpad-x220-arch-linux-gpt-uefi.html#more&quot;&gt;Дальше »&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.iborisov.ru/feeds/6157140596123686331/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://blog.iborisov.ru/2012/01/thinkpad-x220-arch-linux-gpt-uefi.html#comment-form' title='Комментарии: 6'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3632424430303246318/posts/default/6157140596123686331'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3632424430303246318/posts/default/6157140596123686331'/><link rel='alternate' type='text/html' href='http://blog.iborisov.ru/2012/01/thinkpad-x220-arch-linux-gpt-uefi.html' title='ThinkPad X220 и установка Arch Linux + GPT + UEFI'/><author><name>Ivan</name><uri>http://www.blogger.com/profile/17653318768291757340</uri><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>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3632424430303246318.post-3379680616264528069</id><published>2012-01-14T14:26:00.000+04:00</published><updated>2012-03-14T22:07:21.369+04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="dev"/><category scheme="http://www.blogger.com/atom/ns#" term="howto"/><category scheme="http://www.blogger.com/atom/ns#" term="server"/><category scheme="http://www.blogger.com/atom/ns#" term="tool"/><title type='text'>Lighttpd и Trac</title><content type='html'>Хоть Trac уже и заглушен, оставляю это тут на всякий случай.&lt;br&gt;
Под катом кусок конфига lighttpd для Trac&amp;#39;а с комментариями.&lt;br&gt;
&lt;code&gt;/trac/root&lt;/code&gt; тут &amp;mdash; корневая директория &lt;br&gt;
Работало все это на поддомене (&lt;code&gt;HTTP[&amp;quot;host&amp;quot;] =~ &amp;quot;^trac\.example\.com$&amp;quot;&lt;/code&gt;).&lt;br&gt;
&lt;a href=&quot;http://blog.iborisov.ru/2012/01/lighttpd-trac.html#more&quot;&gt;Дальше »&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.iborisov.ru/feeds/3379680616264528069/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://blog.iborisov.ru/2012/01/lighttpd-trac.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3632424430303246318/posts/default/3379680616264528069'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3632424430303246318/posts/default/3379680616264528069'/><link rel='alternate' type='text/html' href='http://blog.iborisov.ru/2012/01/lighttpd-trac.html' title='Lighttpd и Trac'/><author><name>Ivan</name><uri>http://www.blogger.com/profile/17653318768291757340</uri><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-3632424430303246318.post-760405817579453746</id><published>2011-10-21T17:20:00.002+04:00</published><updated>2012-01-21T21:01:55.902+04:00</updated><title type='text'>Realtek 8192se PKGBUILD Linux 3.x</title><content type='html'>&lt;p&gt;As &lt;a href=&quot;https://bbs.archlinux.org/viewtopic.php?id=124567&quot;&gt;people say&lt;/a&gt; kernel 3.x driver for Realtek wifi-cards works worse than official one.&lt;/p&gt;&lt;p&gt;So I&#39;ll try to install it and see the difference.&lt;/p&gt;&lt;p&gt;Here is my PKGBUILD for Arch Linux. It&#39;s based on &lt;a href=&quot;http://aur.archlinux.org/packages.php?ID=34281&quot;&gt;AUR package&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Here you&#39;ll find new driver (last from Realtek for kernel &gt;= 2.6.35 &lt;a href=&quot;http://www.realtek.com.tw/downloads/downloadsView.aspx?Langid=1&amp;PNid=48&amp;PFid=48&amp;Level=5&amp;Conn=4&amp;DownTypeID=3&amp;GetDown=false&amp;Downloads=true#2302&quot;&gt;official page&lt;/a&gt;) and some hack (thanks &lt;b&gt;mhertz&lt;/b&gt;) to compile this driver.&lt;/p&gt;&lt;pre&gt;&lt;code&gt;
# Maintainer: Techlive Zheng &lt;techlivezheng@gmail.com&gt;
# Contributor: Peter Bui &lt;pnutzh4x0r@gmail.com&gt;

pkgname=rtl8192se
pkgdesc=&quot;Drivers for Realtek 8192SE wireless chipset&quot;
pkgver=0003.0620.2011
pkgrel=5
license=(&quot;GPL&quot;)
depends=(&#39;linux&gt;=3.0.0&#39;) 
makedepends=(&#39;linux&gt;=3.0.0&#39;)
install=&quot;${pkgname}.install&quot;
source=(&quot;ftp://WebUser:r3iZ6vJI@95.130.192.218/cn/wlan/92ce_se_de_linux_mac80211_${pkgver}.tar.gz&quot;)
md5sums=(&#39;f6d488ef52ba284b859989de58d85839&#39;)
changelog=Changelog
arch=(&#39;i686&#39; &#39;x86_64&#39;)
url=&quot;http://www.realtek.com.tw/&quot;

build() {
    cd ${srcdir}/rtl_92ce_92se_92de_linux_mac80211_${pkgver}

    sed -i &#39;s|RX_FLAG_TSFT|RX_FLAG_MACTIME_MPDU|g&#39; base.c rtl8192{ce,se,de}/trx.c

    make || return 1
}

package(){
    cd ${srcdir}/rtl_92ce_92se_92de_linux_mac80211_${pkgver}
    FW=&quot;${pkgdir}/lib/firmware&quot;
    DEST=&quot;${pkgdir}/lib/modules/$(uname -r)/kernel/drivers/net/wireles/rtlwifi&quot; 
    mkdir -p $FW/rtl8192{se,ce,de}
    mkdir -p $DEST/rtl8192{se,ce,de}

    #make FIRMWAREDIR=$FW MODDESTDIR=$DEST install
    install -p -m 644 rtlwifi.ko $DEST 
    install -p -m 644 ./rtl8192se/rtl8192se.ko $DEST/rtl8192se
    install -p -m 644 ./rtl8192ce/rtl8192ce.ko $DEST/rtl8192ce
    install -p -m 644 ./rtl8192de/rtl8192de.ko $DEST/rtl8192de

    cp -fr firmware/rtlwifi/ $FW/.
}
&lt;/code&gt;
&lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.iborisov.ru/feeds/760405817579453746/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://blog.iborisov.ru/2011/10/realtek-8192se-pkgbuild-linux-3x.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3632424430303246318/posts/default/760405817579453746'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3632424430303246318/posts/default/760405817579453746'/><link rel='alternate' type='text/html' href='http://blog.iborisov.ru/2011/10/realtek-8192se-pkgbuild-linux-3x.html' title='Realtek 8192se PKGBUILD Linux 3.x'/><author><name>Ivan</name><uri>http://www.blogger.com/profile/17653318768291757340</uri><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-3632424430303246318.post-7316931863831085147</id><published>2011-09-01T16:17:00.000+04:00</published><updated>2012-01-21T20:54:24.111+04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Arch"/><category scheme="http://www.blogger.com/atom/ns#" term="desk"/><title type='text'>Xorg. Настройка клавиатуры + compose key</title><content type='html'>Мои стандартные настройки клавиатуры для нового стиля конфигурации Xorg.&lt;br&gt;
&lt;a href=&quot;http://blog.iborisov.ru/2011/09/xorg-compose-key.html#more&quot;&gt;Дальше »&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.iborisov.ru/feeds/7316931863831085147/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://blog.iborisov.ru/2011/09/xorg-compose-key.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3632424430303246318/posts/default/7316931863831085147'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3632424430303246318/posts/default/7316931863831085147'/><link rel='alternate' type='text/html' href='http://blog.iborisov.ru/2011/09/xorg-compose-key.html' title='Xorg. Настройка клавиатуры + compose key'/><author><name>Ivan</name><uri>http://www.blogger.com/profile/17653318768291757340</uri><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-3632424430303246318.post-7915804121396238158</id><published>2011-07-18T02:51:00.000+04:00</published><updated>2011-07-18T02:51:20.794+04:00</updated><title type='text'>Jenkins. Непонятные логи после обновления.</title><content type='html'>Решение было найдено тут:&lt;br /&gt;
&lt;a href=&quot;http://optimalops.blogspot.com/2010/07/migrating-hudson-instance.html&quot;&gt;http://optimalops.blogspot.com/2010/07/migrating-hudson-instance.html&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Вкратце: удалить ~/.jenkins/nodeMonitors.xml.</content><link rel='replies' type='application/atom+xml' href='http://blog.iborisov.ru/feeds/7915804121396238158/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://blog.iborisov.ru/2011/07/jenkins.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3632424430303246318/posts/default/7915804121396238158'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3632424430303246318/posts/default/7915804121396238158'/><link rel='alternate' type='text/html' href='http://blog.iborisov.ru/2011/07/jenkins.html' title='Jenkins. Непонятные логи после обновления.'/><author><name>Ivan</name><uri>http://www.blogger.com/profile/17653318768291757340</uri><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-3632424430303246318.post-5953478769471487606</id><published>2011-07-12T20:05:00.001+04:00</published><updated>2011-07-12T20:19:53.986+04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="tip"/><title type='text'>Google maps. Ссылка с видом со спутника по умолчанию.</title><content type='html'>Добавить к запросу параметр «&lt;code&gt;&amp;t=h&lt;/code&gt;» (h значит hybrid — спутник + карта).</content><link rel='replies' type='application/atom+xml' href='http://blog.iborisov.ru/feeds/5953478769471487606/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://blog.iborisov.ru/2011/07/google-maps.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3632424430303246318/posts/default/5953478769471487606'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3632424430303246318/posts/default/5953478769471487606'/><link rel='alternate' type='text/html' href='http://blog.iborisov.ru/2011/07/google-maps.html' title='Google maps. Ссылка с видом со спутника по умолчанию.'/><author><name>Ivan</name><uri>http://www.blogger.com/profile/17653318768291757340</uri><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-3632424430303246318.post-7641286730776885214</id><published>2011-07-02T22:29:00.000+04:00</published><updated>2012-01-21T21:08:54.990+04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="tool"/><title type='text'>Meld. Lightweight diff/merge tool</title><content type='html'>&lt;a href=&quot;http://meld.sourceforge.net/&quot;&gt;http://meld.sourceforge.net/&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://meld.sourceforge.net/screenshots.html&quot;&gt;http://meld.sourceforge.net/screenshots.html&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.iborisov.ru/feeds/7641286730776885214/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://blog.iborisov.ru/2011/07/meld-lightweight-diffmerge-tool.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3632424430303246318/posts/default/7641286730776885214'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3632424430303246318/posts/default/7641286730776885214'/><link rel='alternate' type='text/html' href='http://blog.iborisov.ru/2011/07/meld-lightweight-diffmerge-tool.html' title='Meld. Lightweight diff/merge tool'/><author><name>Ivan</name><uri>http://www.blogger.com/profile/17653318768291757340</uri><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-3632424430303246318.post-4110287236837766416</id><published>2011-06-16T13:27:00.000+04:00</published><updated>2012-01-21T21:15:33.577+04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="LaTeX"/><category scheme="http://www.blogger.com/atom/ns#" term="tip"/><category scheme="http://www.blogger.com/atom/ns#" term="tool"/><title type='text'>LaTeX. Скобки в математическом режиме</title><content type='html'>&lt;pre&gt;&lt;code&gt;
\left delim1 ... \right delim2
&lt;/code&gt;
&lt;/pre&gt;&lt;blockquote&gt;The two delimiters need not match; ‘.’ acts as a null delimiter, producing no output. The delimiters are sized according to the math in between. Example: \left( \sum_i=1^10 a_i \right].&lt;br /&gt;
&lt;/blockquote&gt;Фишка с точкой после скобки понадобилась для систем уравнений.&lt;br /&gt;
&lt;i&gt;&lt;br /&gt;
source:&lt;/i&gt;&lt;br /&gt;
&lt;a href=&quot;http://ctan.usu.ru/info/latex2e-help-texinfo/latex2e.html#Math-miscellany&quot;&gt;LaTeX reference&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.iborisov.ru/feeds/4110287236837766416/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://blog.iborisov.ru/2011/06/latex.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3632424430303246318/posts/default/4110287236837766416'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3632424430303246318/posts/default/4110287236837766416'/><link rel='alternate' type='text/html' href='http://blog.iborisov.ru/2011/06/latex.html' title='LaTeX. Скобки в математическом режиме'/><author><name>Ivan</name><uri>http://www.blogger.com/profile/17653318768291757340</uri><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-3632424430303246318.post-9193399716397523738</id><published>2011-06-15T19:52:00.000+04:00</published><updated>2012-01-21T21:15:09.349+04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="tip"/><category scheme="http://www.blogger.com/atom/ns#" term="vim"/><title type='text'>Vim. Tip 4. Замена на примере дробей и \frac</title><content type='html'>Еще один пример работы с командой замены в &lt;code&gt;vim&lt;/code&gt;.&lt;br /&gt;
&lt;br /&gt;
Чтобы заменить все места типа «целое_число1/целое_число2» на «\frac{целое_число1}{целое_число2}» (для LaTeX) в vim, команда:&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;
:%s:\(\d*\)\/\(\d*\):\\frac{\1}{\2}:g
&lt;/code&gt;
&lt;/pre&gt;&lt;b&gt;!&lt;/b&gt; Круглые скобки для группирования совпадений в vim надо экранировать.&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;see also:&lt;/i&gt;&lt;br /&gt;
&lt;a href=&quot;http://vimregex.com/&quot;&gt;vimregex.com&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.iborisov.ru/feeds/9193399716397523738/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://blog.iborisov.ru/2011/06/vim-regex-frac.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3632424430303246318/posts/default/9193399716397523738'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3632424430303246318/posts/default/9193399716397523738'/><link rel='alternate' type='text/html' href='http://blog.iborisov.ru/2011/06/vim-regex-frac.html' title='Vim. Tip 4. Замена на примере дробей и \frac'/><author><name>Ivan</name><uri>http://www.blogger.com/profile/17653318768291757340</uri><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-3632424430303246318.post-8483410894550056041</id><published>2011-05-29T22:10:00.000+04:00</published><updated>2012-01-21T21:02:28.667+04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="server"/><category scheme="http://www.blogger.com/atom/ns#" term="tip"/><category scheme="http://www.blogger.com/atom/ns#" term="tool"/><title type='text'>Screen. Запуск сразу после ssh-соединения</title><content type='html'>&lt;pre&gt;&lt;code&gt;
ssh -t login@example.com &quot;screen -RD&quot;
&lt;/code&gt;&lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.iborisov.ru/feeds/8483410894550056041/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://blog.iborisov.ru/2011/05/screen-ssh.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3632424430303246318/posts/default/8483410894550056041'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3632424430303246318/posts/default/8483410894550056041'/><link rel='alternate' type='text/html' href='http://blog.iborisov.ru/2011/05/screen-ssh.html' title='Screen. Запуск сразу после ssh-соединения'/><author><name>Ivan</name><uri>http://www.blogger.com/profile/17653318768291757340</uri><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-3632424430303246318.post-307658484720161123</id><published>2011-04-25T13:15:00.001+04:00</published><updated>2013-03-15T22:05:33.490+04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="tip"/><category scheme="http://www.blogger.com/atom/ns#" term="tool"/><title type='text'>Netbeans. Тонкая настройка</title><content type='html'>&lt;p&gt;Опции запуска по умолчанию.&lt;/p&gt;
&lt;p&gt;Пока привожу как есть, возможно позже добавлю описание каждого параметра.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;UPD 25.04.11&lt;/b&gt; теперь LaF по умолчанию Windows, т. к. покомпактней, чем GTK.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;UPD 23.03.12&lt;/b&gt; отключил master password &lt;code&gt;-J-Dnetbeans.keyring.no.master=true&lt;/code&gt; (работает только для версий 7.x).&lt;/p&gt;
&lt;p&gt;&lt;b&gt;UPD 26.08.12&lt;/b&gt; фикс для нескольких мониторов &lt;code&gt;-J-Dnetbeans.popup.no_hack=true&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;UPD 15.03.13&lt;/b&gt; нашел мегаполезную настройку: перенос статусной строки в главное меню: &lt;code&gt;-J-Dnetbeans.winsys.statusLine.in.menuBar=true&lt;/code&gt;. Экономит место по вертикали&lt;/p&gt;
&lt;p&gt;&lt;code&gt;/usr/share/netbeans/etc/netbeans.conf&lt;/code&gt;&lt;/p&gt;
&lt;code&gt;&lt;pre&gt;netbeans_default_options=&quot;--locale en \
-J-Dnetbeans.winsys.statusLine.in.menuBar=true \
-J-Dnetbeans.keyring.no.master=true \
-J-Dnetbeans.popup.no_hack=true \
-J-Dnetbeans.keyring.no.master=true -J-client -J-Xverify:none \
-J-Xss2m -J-Xms32m -J-Xmx1024m -J-XX:PermSize=32m \
-J-XX:MaxPermSize=500m -J-Dsun.java2d.noddraw=true \
-J-XX:+UseConcMarkSweepGC -J-XX:+CMSClassUnloadingEnabled \
-J-Djava.net.preferIPv4Stack=true -J-Dswing.aatext=true \
-J-Dawt.useSystemAAFontSettings=lcd --laf Windows \
-J-Dsun.zip.disableMemoryMapping=true&quot;
&lt;/pre&gt;&lt;/code&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.iborisov.ru/feeds/307658484720161123/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://blog.iborisov.ru/2011/04/netbeansconf.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3632424430303246318/posts/default/307658484720161123'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3632424430303246318/posts/default/307658484720161123'/><link rel='alternate' type='text/html' href='http://blog.iborisov.ru/2011/04/netbeansconf.html' title='Netbeans. Тонкая настройка'/><author><name>Ivan</name><uri>http://www.blogger.com/profile/17653318768291757340</uri><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-3632424430303246318.post-7331248934903400315</id><published>2011-04-08T21:45:00.000+04:00</published><updated>2011-04-08T21:45:26.264+04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Arch"/><category scheme="http://www.blogger.com/atom/ns#" term="desk"/><category scheme="http://www.blogger.com/atom/ns#" term="tool"/><title type='text'>Clipgrab. Сохранение видео с YouTube, Vimeo, Dailymotion etc.</title><content type='html'>&lt;h4&gt;Сайт программы&lt;/h4&gt;&lt;a href=&quot;http://clipgrab.de/en&quot;&gt;http://clipgrab.de/en&lt;/a&gt;&lt;br /&gt;
&lt;h4&gt;Фичи&lt;/h4&gt;&lt;ul&gt;&lt;li&gt;сохранение видео в разных форматах вплоть до HD.&lt;/li&gt;
&lt;li&gt;поиск по YouTube.&lt;/li&gt;
&lt;li&gt;перекодирование с помощью &lt;code&gt;ffmpeg&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;отслеживание буфера обмена на предмет подходящих ссылок.&lt;/li&gt;
&lt;li&gt;компактный размер (~160 КБ пакет для Archlinux) без лишних зависимостей (&lt;code&gt;ffmpeg&lt;/code&gt; опционально).&lt;/li&gt;
&lt;/ul&gt;&lt;h4&gt;Недостатки&lt;/h4&gt;&lt;ul&gt;&lt;li&gt;&lt;i&gt;(*субъективно)&lt;/i&gt; написан на &lt;code&gt;Qt&lt;/code&gt; (но без библиотек KDE).&lt;/li&gt;
&lt;li&gt;нет интерфейса командной строки.&lt;/li&gt;
&lt;li&gt;нет паузы\возобновления закачек.&lt;/li&gt;
&lt;/ul&gt;&lt;h4&gt;Скриншоты (кликабельны)&lt;/h4&gt;Окно поиска. При клике на видео попадаем на вкладку закачек, где уже можно скачать его.&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlQLzILOM83QMf2RGzgPMGCDNWmDuSmZiukp5IwAExcUGYuZfm52TPJgat7GKo3eH89kmBD2qNpBnL0q3PVEqbuxQ9-zXpBc3qlFnyu2LqWu9wdDoa04S5BUtq1o6Lyxict-vOH2_iN-s/s1600/clipgrab_search.png&quot; imageanchor=&quot;1&quot; style=&quot;clear:left; margin-right:1em; margin-bottom:1em&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;257&quot; width=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlQLzILOM83QMf2RGzgPMGCDNWmDuSmZiukp5IwAExcUGYuZfm52TPJgat7GKo3eH89kmBD2qNpBnL0q3PVEqbuxQ9-zXpBc3qlFnyu2LqWu9wdDoa04S5BUtq1o6Lyxict-vOH2_iN-s/s400/clipgrab_search.png&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Вкладка закачек. В верхней части можно самостоятельно вставить URL страницы с видео.&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXxJoY2W0r8CF6_479NcEbUupx82geXPPdLMLlSP_EtG6LAoEm8wiP-xDtm8bqizuCEfojUC7okGgV6CMwgH9fSHGERaC1pM0KLFmdOElaf71HyBmZQIsAuH_YcX6o23oBiKmvaQRpvF0/s1600/clipgrab_downloads.png&quot; imageanchor=&quot;1&quot; style=&quot;clear:left; margin-right:1em; margin-bottom:1em&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;257&quot; width=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXxJoY2W0r8CF6_479NcEbUupx82geXPPdLMLlSP_EtG6LAoEm8wiP-xDtm8bqizuCEfojUC7okGgV6CMwgH9fSHGERaC1pM0KLFmdOElaf71HyBmZQIsAuH_YcX6o23oBiKmvaQRpvF0/s400/clipgrab_downloads.png&quot; /&gt;&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.iborisov.ru/feeds/7331248934903400315/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://blog.iborisov.ru/2011/04/clipgrab-youtube-vimeo-dailymotion-etc.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3632424430303246318/posts/default/7331248934903400315'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3632424430303246318/posts/default/7331248934903400315'/><link rel='alternate' type='text/html' href='http://blog.iborisov.ru/2011/04/clipgrab-youtube-vimeo-dailymotion-etc.html' title='Clipgrab. Сохранение видео с YouTube, Vimeo, Dailymotion etc.'/><author><name>Ivan</name><uri>http://www.blogger.com/profile/17653318768291757340</uri><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><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlQLzILOM83QMf2RGzgPMGCDNWmDuSmZiukp5IwAExcUGYuZfm52TPJgat7GKo3eH89kmBD2qNpBnL0q3PVEqbuxQ9-zXpBc3qlFnyu2LqWu9wdDoa04S5BUtq1o6Lyxict-vOH2_iN-s/s72-c/clipgrab_search.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3632424430303246318.post-936633400112133501</id><published>2011-04-03T01:49:00.000+04:00</published><updated>2011-04-03T01:49:37.049+04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Arch"/><category scheme="http://www.blogger.com/atom/ns#" term="desk"/><category scheme="http://www.blogger.com/atom/ns#" term="script"/><category scheme="http://www.blogger.com/atom/ns#" term="tool"/><title type='text'>Transmission remote gtk PKGBUILD</title><content type='html'>Project is located at:&lt;br&gt;
http://code.google.com/p/transmission-remote-gtk/&lt;br&gt;
&lt;br&gt;
My PKGBUILD differents a bit from &lt;a href=&quot;http://aur.archlinux.org/packages.php?ID=47818&quot;&gt;existing in AUR&lt;/a&gt; so it will be a hard decision which to choose :P.&lt;br&gt;
&lt;br&gt;
Files under cut&lt;br&gt;
&lt;a href=&quot;http://blog.iborisov.ru/2011/04/transmission-remote-gtk-pkgbuild.html#more&quot;&gt;Дальше »&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.iborisov.ru/feeds/936633400112133501/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://blog.iborisov.ru/2011/04/transmission-remote-gtk-pkgbuild.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3632424430303246318/posts/default/936633400112133501'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3632424430303246318/posts/default/936633400112133501'/><link rel='alternate' type='text/html' href='http://blog.iborisov.ru/2011/04/transmission-remote-gtk-pkgbuild.html' title='Transmission remote gtk PKGBUILD'/><author><name>Ivan</name><uri>http://www.blogger.com/profile/17653318768291757340</uri><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></feed>