<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>vLog.index :format =&gt; :atom, :tag =&gt; 'code'</title>
  <updated>2009-09-09T19:27:38+00:00</updated>
  <link href="http://www.bitcheese.net/vlog/index"/>
  <entry>
    <title>Art thou</title>
    <id>http://www.bitcheese.net/vlog/post/1073</id>
    <updated>2009-09-09T19:27:38+00:00</updated>
    <link href="http://www.bitcheese.net/vlog/post/1073"/>
    <content type="html">&lt;h1&gt;&lt;a href="/vlog/post/1073"&gt;Art thou&lt;/a&gt;&lt;/h1&gt;
 	&lt;div&gt;&lt;small&gt;&lt;em&gt;Sep 9th, 2009 (Wednesday) 19:27
 	&lt;/em&gt;&lt;/small&gt;&lt;/div&gt;
&lt;p&gt;Оказывается, &lt;del&gt;RSS&lt;/del&gt; Atom был поломан по причине установки на сервер atom вместо православного ratom. Фиксед.&lt;/p&gt;&lt;p&gt;Событие это можно отпраздновать просмотром моих &lt;a href="/wiki/art_thou"&gt;зарисовок гелевой ручкой&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;small&gt;
	Метки:
	&lt;a href="http://www.bitcheese.net/vlog/tag/code"&gt;code&lt;/a&gt;, &lt;a href="http://www.bitcheese.net/vlog/tag/бардак"&gt;бардак&lt;/a&gt;, &lt;a href="http://www.bitcheese.net/vlog/tag/ruby"&gt;ruby&lt;/a&gt;
	|
	&lt;a href="http://www.bitcheese.net/vlog/post/1073#commform"&gt;Комментировать »&lt;/a&gt;
&lt;/small&gt;&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>QMPDClient и LyricWiki</title>
    <id>http://www.bitcheese.net/vlog/post/1064</id>
    <updated>2009-08-10T12:30:37+00:00</updated>
    <link href="http://www.bitcheese.net/vlog/post/1064"/>
    <content type="html">&lt;h1&gt;&lt;a href="/vlog/post/1064"&gt;QMPDClient и LyricWiki&lt;/a&gt;&lt;/h1&gt;
 	&lt;div&gt;&lt;small&gt;&lt;em&gt;Aug 10th, 2009 (Monday) 12:30
 	&lt;/em&gt;&lt;/small&gt;&lt;/div&gt;
&lt;p&gt;Проблема решена написанием небольшого скрипта на php, который имеет такой же, как и REST API покойного. Таким образом, в программах можно только менять адрес запроса.&lt;/p&gt;&lt;p&gt;Скрипт тут: [http://gist.github.com&lt;sup class="footnote"&gt;&lt;a id="ref165164" href="#fn165164"&gt;165164&lt;/a&gt;&lt;/sup&gt;, работает тут: [http://dump.bitcheese.net/lwiki.php]&lt;/p&gt;
&lt;p&gt;&lt;small&gt;
	Метки:
	&lt;a href="http://www.bitcheese.net/vlog/tag/code"&gt;code&lt;/a&gt;, &lt;a href="http://www.bitcheese.net/vlog/tag/бардак"&gt;бардак&lt;/a&gt;, &lt;a href="http://www.bitcheese.net/vlog/tag/php"&gt;php&lt;/a&gt;, &lt;a href="http://www.bitcheese.net/vlog/tag/qmpdclient"&gt;qmpdclient&lt;/a&gt;
	|
	&lt;a href="http://www.bitcheese.net/vlog/post/1064#commform"&gt;Комментировать »&lt;/a&gt;
&lt;/small&gt;&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>LyricWiki RIP</title>
    <id>http://www.bitcheese.net/vlog/post/1063</id>
    <updated>2009-08-05T15:49:28+00:00</updated>
    <link href="http://www.bitcheese.net/vlog/post/1063"/>
    <content type="html">&lt;h1&gt;&lt;a href="/vlog/post/1063"&gt;LyricWiki RIP&lt;/a&gt;&lt;/h1&gt;
 	&lt;div&gt;&lt;small&gt;&lt;em&gt;Aug 5th, 2009 (Wednesday) 15:49
 	&lt;/em&gt;&lt;/small&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://groups.google.com/group/lyricwiki-api/browse_thread/thread/733ccd919d654040"&gt;Письмо к разработчикам&lt;/a&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;Unfortunately, licensing agreements with the biggest publishers in the music industry require us to no longer offer the ability for programmatic access to LyricWiki's collection of lyrics.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Печально. Даже Microsoft знает, что разработчиков обижать — себе дороже выйдет.&lt;/p&gt;
&lt;p&gt;&lt;small&gt;
	Метки:
	&lt;a href="http://www.bitcheese.net/vlog/tag/code"&gt;code&lt;/a&gt;, &lt;a href="http://www.bitcheese.net/vlog/tag/бардак"&gt;бардак&lt;/a&gt;
	|
	&lt;a href="http://www.bitcheese.net/vlog/post/1063#commform"&gt;Комментировать »&lt;/a&gt;
&lt;/small&gt;&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>QMPDClient 1.1.1 &amp;amp; 1.0.11</title>
    <id>http://www.bitcheese.net/vlog/post/1058</id>
    <updated>2009-06-22T12:06:27+00:00</updated>
    <link href="http://www.bitcheese.net/vlog/post/1058"/>
    <content type="html">&lt;h1&gt;&lt;a href="/vlog/post/1058"&gt;QMPDClient 1.1.1 &amp;amp; 1.0.11&lt;/a&gt;&lt;/h1&gt;
 	&lt;div&gt;&lt;small&gt;&lt;em&gt;Jun 22nd, 2009 (Monday) 12:06
 	&lt;/em&gt;&lt;/small&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://dump.bitcheese.net/images/qmpdclient.png"&gt;&lt;img alt="" src="http://dump.bitcheese.net/images/thumbs/qmpdclient.png" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Изменения: &lt;/p&gt;&lt;ul&gt;&lt;li&gt;Теперь игнорирование The при сортировке можно отключить.&lt;/li&gt;&lt;li&gt;Значительно улучшен механизм скробблинга Last.Fm, добавлена опция для изменения времени прослушивания, после которого композиция будет заскробблена.&lt;/li&gt;&lt;li&gt;Добавлены всплывающие подсказки для чрезмерно длинных названий песен.&lt;/li&gt;&lt;li&gt;Исправлено поведение при общении с менеджерами сессий (например, при выходе из KDE)&lt;/li&gt;&lt;li&gt;Добавлен .desktop-файл приложения&lt;/li&gt;&lt;li&gt;Улучшена работа с очередями&lt;/li&gt;&lt;li&gt;Добавлен перевод на чешский&lt;/li&gt;&lt;li&gt;Более информативная подсказка в трее&lt;/li&gt;&lt;li&gt;Множество исправлений ошибок&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Тарболлы: &lt;a href="http://dump.bitcheese.net/files/qmpdclient-1.1.1.tar.bz2"&gt;1.1.1&lt;/a&gt;, &lt;a href="http://dump.bitcheese.net/files/qmpdclient-1.0.11.tar.bz2"&gt;1.0.11&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;small&gt;
	Метки:
	&lt;a href="http://www.bitcheese.net/vlog/tag/code"&gt;code&lt;/a&gt;, &lt;a href="http://www.bitcheese.net/vlog/tag/qmpdclient"&gt;qmpdclient&lt;/a&gt;
	|
	&lt;a href="http://www.bitcheese.net/vlog/post/1058#commform"&gt;Комментировать »&lt;/a&gt;
&lt;/small&gt;&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Рамочка</title>
    <id>http://www.bitcheese.net/vlog/post/1057</id>
    <updated>2009-06-21T21:42:33+00:00</updated>
    <link href="http://www.bitcheese.net/vlog/post/1057"/>
    <content type="html">&lt;h1&gt;&lt;a href="/vlog/post/1057"&gt;Рамочка&lt;/a&gt;&lt;/h1&gt;
 	&lt;div&gt;&lt;small&gt;&lt;em&gt;Jun 21st, 2009 (Sunday) 21:42
 	&lt;/em&gt;&lt;/small&gt;&lt;/div&gt;
&lt;p&gt;Упырил с лора рамочку для кода.&lt;/p&gt;&lt;pre class="blockcode"&gt;&lt;code&gt;pre
{
	border-style: dashed;
	border-width: 1px;
	border-color: gray;
	overflow: auto;
}&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Теперь &lt;a href="/wiki/hellnet/hspawn/use"&gt;/hellnet/hspawn/use&lt;/a&gt; смотрится гораздо лучше, например.&lt;/p&gt;
&lt;p&gt;&lt;small&gt;
	Метки:
	&lt;a href="http://www.bitcheese.net/vlog/tag/code"&gt;code&lt;/a&gt;, &lt;a href="http://www.bitcheese.net/vlog/tag/уебдизайн"&gt;уебдизайн&lt;/a&gt;, &lt;a href="http://www.bitcheese.net/vlog/tag/красота"&gt;красота&lt;/a&gt;
	|
	&lt;a href="http://www.bitcheese.net/vlog/post/1057#commform"&gt;Комментировать[2] »&lt;/a&gt;
&lt;/small&gt;&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Hellnet</title>
    <id>http://www.bitcheese.net/vlog/post/1055</id>
    <updated>2009-06-21T20:43:55+00:00</updated>
    <link href="http://www.bitcheese.net/vlog/post/1055"/>
    <content type="html">&lt;h1&gt;&lt;a href="/vlog/post/1055"&gt;Hellnet&lt;/a&gt;&lt;/h1&gt;
 	&lt;div&gt;&lt;small&gt;&lt;em&gt;Jun 21st, 2009 (Sunday) 20:43
 	&lt;/em&gt;&lt;/small&gt;&lt;/div&gt;
&lt;blockquote&gt;&lt;p&gt;&amp;quot;Язык Д развивается хорошо&amp;quot;&lt;br /&gt;&lt;i&gt;Лучший ченджлог ever&lt;/i&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;a href="/wiki/hellnet/hspawn"&gt;Hellnet&lt;/a&gt; медленно, но верно выходит на проектную мощность! Сегодня я к нему приделал очень функциональный форум, но же чят. Собственно, одна из главных целей.&lt;/p&gt;&lt;p&gt;&lt;a href="http://dump.bitcheese.net/images/helldev.png"&gt;&lt;img alt="" src="http://dump.bitcheese.net/images/thumbs/helldev.png" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Собрать hellnet по-прежнему можно только с экзотическими плясками (установкой cabal-install и/или тыщи хаскеллопакетов) вокруг системы. И это, скорее всего, не изменить. Sad but true.&lt;/p&gt;
&lt;p&gt;&lt;small&gt;
	Метки:
	&lt;a href="http://www.bitcheese.net/vlog/tag/code"&gt;code&lt;/a&gt;, &lt;a href="http://www.bitcheese.net/vlog/tag/бардак"&gt;бардак&lt;/a&gt;, &lt;a href="http://www.bitcheese.net/vlog/tag/haskell"&gt;haskell&lt;/a&gt;, &lt;a href="http://www.bitcheese.net/vlog/tag/hellnet"&gt;hellnet&lt;/a&gt;
	|
	&lt;a href="http://www.bitcheese.net/vlog/post/1055#commform"&gt;Комментировать »&lt;/a&gt;
&lt;/small&gt;&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Программистская болезнь.</title>
    <id>http://www.bitcheese.net/vlog/post/1050</id>
    <updated>2009-05-31T17:42:37+00:00</updated>
    <link href="http://www.bitcheese.net/vlog/post/1050"/>
    <content type="html">&lt;h1&gt;&lt;a href="/vlog/post/1050"&gt;Программистская болезнь.&lt;/a&gt;&lt;/h1&gt;
 	&lt;div&gt;&lt;small&gt;&lt;em&gt;May 31st, 2009 (Sunday) 17:42
 	&lt;/em&gt;&lt;/small&gt;&lt;/div&gt;
&lt;p&gt;Как правило, программисты ленивы. Хорошие программисты еще более ленивы. И чем круче программист, тем ему меньше хочется заниматься низкоуровневой деятельностью.&lt;/p&gt;&lt;p&gt;Какой-нибудь школьник с дельфи за пять минут может сделать форму для виртуальной клавиатуры, накидав кнопки на форму. Также ему совершенно не в лом тыкать по каждой из кнопок двойным и вбивать туда вызов WinAPI. На это уходит еще 10 минут.&lt;/p&gt;&lt;p&gt;Если за эту работу возьмется опытный кодер на Qt, он ни в коем случае не будет так бездумно тратить свое время. Он сначала изучит клавиатуру, разобьет её на группы кнопок, все группы кнопок положит в layout'ы, потом полезет за документацией по шаблонам / любимым скриптовым языком и напишет небольшой кусок кода, который создаст обработчики для каждой кнопки. Все это он засунет в интерфейс, а отдельно он сделает libkeyboard, который будет платформо-независимо эмулировать нажатия кнопок.&lt;/p&gt;&lt;p&gt;Все это, если на полдороге ему не надоест и он не пойдет вылизывать свой вариант костылей для C / уменьшать сложность алгоритмов на Haskell / whatever.&lt;/p&gt;&lt;p&gt;В итоге, у хорошего программиста таки получается хорошая программа, но работает она медленнее и писал он ее часа два. Случай утрированный, но вот что мы имеем на текущий день:&lt;/p&gt;&lt;p&gt;Есть много хороших и отлично работающих программ под Windows. Например, Foobar2000, ImgBurn, Miranda, PerfectDark. Они бесплатны, удобны. Исходники их авторы не открывают только по привычке, или они открыты, но никому не нужны, ибо написаны через жопу ввиду слабой ознакомленности автора с языком.&lt;/p&gt;&lt;p&gt;Есть много хороших и отлично написанных кроссплатформенных программ, которые, к сожалению, не выходят за стадию сферического коня в вакууме. Причины? Автору неинтересно разрабатывать интерфейс, ведь ему все и так понятно и удобно. Документацию тоже писать не очень интересно. Иногда автору вообще было интересно воплотить концепт, а остальное его не очень волнует.&lt;/p&gt;&lt;p&gt;tuomov, автор ion3, говорит, что его вообще интересует в основном идея, а пачкать руки ее воплощением он не желает. К счастью, до того, как он дошел да такой стадии и заболел ФГМ, он успел написать отличный оконный менеджер.&lt;/p&gt;&lt;p&gt;Что же с этим всем делать? Умные программисты не хотят писать популярные программы, а популярные программы написаны черти-как.&lt;/p&gt;
&lt;p&gt;&lt;small&gt;
	Метки:
	&lt;a href="http://www.bitcheese.net/vlog/tag/code"&gt;code&lt;/a&gt;, &lt;a href="http://www.bitcheese.net/vlog/tag/бардак"&gt;бардак&lt;/a&gt;, &lt;a href="http://www.bitcheese.net/vlog/tag/bit cheese"&gt;bit cheese&lt;/a&gt;
	|
	&lt;a href="http://www.bitcheese.net/vlog/post/1050#commform"&gt;Комментировать[2] »&lt;/a&gt;
&lt;/small&gt;&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Mad clustering skillz</title>
    <id>http://www.bitcheese.net/vlog/post/1038</id>
    <updated>2009-04-28T20:26:15+00:00</updated>
    <link href="http://www.bitcheese.net/vlog/post/1038"/>
    <content type="html">&lt;h1&gt;&lt;a href="/vlog/post/1038"&gt;Mad clustering skillz&lt;/a&gt;&lt;/h1&gt;
 	&lt;div&gt;&lt;small&gt;&lt;em&gt;Apr 28th, 2009 (Tuesday) 20:26
 	&lt;/em&gt;&lt;/small&gt;&lt;/div&gt;
&lt;p&gt;Проведя вечер с ghci (доведя последний до сумашесшествия с потерей памяти) и kate, написал вот такую вот программу для кластеризации двумерных точек по очень примитивному алгоритму. Единственная проблема - несколько кластеров могут претендовать на одну и ту же точку.&lt;/p&gt;&lt;p&gt;[http://gist.github.com&lt;sup class="footnote"&gt;&lt;a id="ref103379" href="#fn103379"&gt;103379&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;&lt;p&gt;Почему-то мне кажется, что однокурсники не смогут ей воспользоваться.&lt;/p&gt;
&lt;p&gt;&lt;small&gt;
	Метки:
	&lt;a href="http://www.bitcheese.net/vlog/tag/code"&gt;code&lt;/a&gt;, &lt;a href="http://www.bitcheese.net/vlog/tag/lol"&gt;lol&lt;/a&gt;, &lt;a href="http://www.bitcheese.net/vlog/tag/haskell"&gt;haskell&lt;/a&gt;
	|
	&lt;a href="http://www.bitcheese.net/vlog/post/1038#commform"&gt;Комментировать »&lt;/a&gt;
&lt;/small&gt;&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Astral Messenger 3.0</title>
    <id>http://www.bitcheese.net/vlog/post/1037</id>
    <updated>2009-04-26T17:48:08+00:00</updated>
    <link href="http://www.bitcheese.net/vlog/post/1037"/>
    <content type="html">&lt;h1&gt;&lt;a href="/vlog/post/1037"&gt;Astral Messenger 3.0&lt;/a&gt;&lt;/h1&gt;
 	&lt;div&gt;&lt;small&gt;&lt;em&gt;Apr 26th, 2009 (Sunday) 17:48
 	&lt;/em&gt;&lt;/small&gt;&lt;/div&gt;
&lt;p&gt;Мною продуман концепт третьей версии Astral Messenger.&lt;/p&gt;&lt;p&gt;Суть такова -- для сообщения юзера случайно подбирается (из /dev/urandom) сообщение, состоящее из тех же символов, стоящих в том же порядке. Это новое сообщение передается по любому каналу связи, и на другом конце тем же образом из /dev/urandom посимвольно собирается исходное сообщение (совпадение выявляется по совпадениям символов, стоящих на одинаковых местах).&lt;/p&gt;&lt;p&gt;Метод передачи очень многообещающ, т.к. не требует криптографии и значительно превосходит по эффективности все предыдущие версии ПО. Есть у меня и еще одна задумка оптимизации этого метода.&lt;/p&gt;
&lt;p&gt;&lt;small&gt;
	Метки:
	&lt;a href="http://www.bitcheese.net/vlog/tag/code"&gt;code&lt;/a&gt;, &lt;a href="http://www.bitcheese.net/vlog/tag/lol"&gt;lol&lt;/a&gt;
	|
	&lt;a href="http://www.bitcheese.net/vlog/post/1037#commform"&gt;Комментировать »&lt;/a&gt;
&lt;/small&gt;&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>EEE tools</title>
    <id>http://www.bitcheese.net/vlog/post/1033</id>
    <updated>2009-04-20T17:22:45+00:00</updated>
    <link href="http://www.bitcheese.net/vlog/post/1033"/>
    <content type="html">&lt;h1&gt;&lt;a href="/vlog/post/1033"&gt;EEE tools&lt;/a&gt;&lt;/h1&gt;
 	&lt;div&gt;&lt;small&gt;&lt;em&gt;Apr 20th, 2009 (Monday) 17:22
 	&lt;/em&gt;&lt;/small&gt;&lt;/div&gt;
&lt;p&gt;Написал две небольшие программы для eeepc. Первая - монитор состояния устройств для ion3, показывает в статус-баре, включены ли bluetooth, wi-fi и камера.&lt;/p&gt;&lt;p&gt;Кинуть в ~/.ion3/, добавить %eee в строку statusd: statusd_eee.lua&lt;/p&gt;&lt;p&gt;Вторая -- переключает, соответственно, состояние камеры (camera), wifi (wlan) или bluetooth (bt). Написана на хаскелле, можно скомпилировать и поставить SUID.&lt;/p&gt;&lt;p&gt;[http://gist.github.com&lt;sup class="footnote"&gt;&lt;a id="ref98627" href="#fn98627"&gt;98627&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;&lt;small&gt;
	Метки:
	&lt;a href="http://www.bitcheese.net/vlog/tag/code"&gt;code&lt;/a&gt;, &lt;a href="http://www.bitcheese.net/vlog/tag/ion3"&gt;ion3&lt;/a&gt;, &lt;a href="http://www.bitcheese.net/vlog/tag/haskell"&gt;haskell&lt;/a&gt;, &lt;a href="http://www.bitcheese.net/vlog/tag/madskillz"&gt;madskillz&lt;/a&gt;
	|
	&lt;a href="http://www.bitcheese.net/vlog/post/1033#commform"&gt;Комментировать »&lt;/a&gt;
&lt;/small&gt;&lt;/p&gt;
</content>
  </entry>
</feed>

