<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">

  <title><![CDATA[caine's place]]></title>
  <link href="http://blog.caine.in/atom.xml" rel="self"/>
  <link href="http://blog.caine.in/"/>
  <updated>2013-02-21T08:24:33+04:00</updated>
  <id>http://blog.caine.in/</id>
  <author>
    <name><![CDATA[caine]]></name>
    
  </author>
  <generator uri="http://octopress.org/">Octopress</generator>

  
  <entry>
    <title type="html"><![CDATA[Обновление сайта и миграция на Octopress.]]></title>
    <link href="http://blog.caine.in/2012/02/24/octopress-migration/"/>
    <updated>2012-02-24T18:50:35+04:00</updated>
    <id>http://blog.caine.in/2012/02/24/octopress-migration</id>
    <content type="html"><![CDATA[<p>После продолжительного тестирования и многочисленных экспериментов я, наконец, решился перевести сайт с порядком надоевшего Wordpress&#8217;а на <a href="http://octopress.org">Octopress</a>.</p>

<p>Уже давно наблюдаю за развитием этого фреймворка, и вот, наконец, созрел до миграции блога на него. Расписывать подробно все его прелести не буду, в сети есть большое количество разных статей на эту тему, но основная идея - Octopress преобразует статьи, размеченные в <a href="http://ru.wikipedia.org/wiki/Markdown">markdown</a>, в статический HTML-сайт, безо всякого php, баз данных и прочих задумчивых вещей. Причем, все это действо происходит прямо на моем компе, не загружая сервер лишней работой. Все, что остается - синхронизировать полученный HTML-контент с сервером с помощью rsync, например. Разумеется, тут теряется возможность написать пост, сидя в байдаре посреди речки или из открытого космоса - под рукой должен быть, как минимум, компьютер, но для меня это небольшая проблема, тем более, что для сиюминутного графоманства отлично подойдет и твиттер.</p>

<p>Причин для переезда множество и основная - просто захотелось что-то поменять. Wordpress наскучил и начал доставать своими тормозами (генерация страницы за 5 секунд - форменное безобразие на мой взгляд), предыдущий хостер тоже начал демонстрировать со временем признаки упадка в виде 500 Server Error. И даже попытка размещения сайта на VPS и эксперименты с кеш-плагинами для WP проблемы толком не решили.</p>

<p>Заодно, решил поменять и хостинг, ибо со статическим сайтом выбор значительно упрощается: хоть на narod.ru выкладывай. Ну, про narod.ru я пошутил: тамошняя принудительная реклама с легкостью перечеркивает все плюсы, поэтому я выложил сайт на Amazon S3. В течение прошлого года, благодаря кампании <a href="http://habrahabr.ru/blogs/hosting/135713/">free tier</a> (год бесплатного использования Amazon Web Services для всех желающих) я не только познакомился с этими замечательными сервисами, но и перевел туда несколько проектов, так что общение с S3 мне было не в новинку. Для тех же, кто слышит об этом впервые, есть <a href="http://habrahabr.ru/blogs/hosting/55058/">несколько</a> <a href="http://habrahabr.ru/blogs/hosting/62362/">замечательных</a> <a href="http://habrahabr.ru/blogs/cloud_computing/138695/">статей</a> на Хабре.</p>

<p>Ну а теперь напишу небольшую шпаргалку для быстрого развертывания Octopress на домашнем компе с OS X 10.7 и синхронизации его с Amazon S3. В первую очередью для для установки и работы фреймворка мне понадобится git (ставится вместе с Xcode) и  Ruby, причем именно версии 1.9.2. В OS X Lion Ruby установлен изначально, но версии 1.8.7,  Octopress с таким работать не будет, так что придется обновиться.
Итак, приступим:</p>

<figure class='code'><figcaption><span>Сделаем папку и загрузим туда Octopress.  </span></figcaption>
 <div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
</pre></td><td class='code'><pre><code class='bash'><span class='line'>mkdir work <span class="o">&amp;&amp;</span> <span class="nb">cd </span>work
</span><span class='line'>git clone git://github.com/imathis/octopress.git octopress
</span></code></pre></td></tr></table></div></figure>


<p>Затем установим RVM (Ruby Version Manager) и вместе с ним Ruby 1.9.2:</p>

<figure class='code'> <div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
</pre></td><td class='code'><pre><code class='bash'><span class='line'>bash -s stable &lt; &lt;<span class="o">(</span>curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer<span class="o">)</span>
</span><span class='line'><span class="nb">echo</span> <span class="s1">&#39;[[ -s &quot;/Users/caine/.rvm/scripts/rvm&quot; ]] &amp;&amp; source &quot;/Users/caine/.rvm/scripts/rvm&quot; # Load RVM into a shell session *as a function*&#39;</span> &gt;&gt; ~/.profile
</span><span class='line'><span class="nb">cd </span>octopress
</span><span class='line'>rvm install 1.9.2 <span class="o">&amp;&amp;</span> rvm use 1.9.2
</span></code></pre></td></tr></table></div></figure>


<p>Ну и собственно, установим Octopress:</p>

<figure class='code'> <div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
</pre></td><td class='code'><pre><code class='bash'><span class='line'>gem install bundler
</span><span class='line'>bundle install
</span><span class='line'>rake install
</span></code></pre></td></tr></table></div></figure>


<p>Дальнейший процесс настройки и использования фреймворка хорошо и подробно документирован на <a href="http://octopress.org/docs/">сайте Octopress</a>, поэтому не буду описывать его подробно. А вот о синхронизации с Amazon S3 стандартным для Octopress путем (через &#8216;rake deploy&#8217;) не слишком много написано в сети, так что остановимся на ней подробнее. Для начала нам понадобится утилитка <a href="http://s3tools.org/download">s3cmd</a>. Сама она написана для Linux, но, как показала практика, отлично работает и на Mac. Перейдем в папку с распакованным архивом и запустим в терминале:</p>

<figure class='code'> <div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
</pre></td><td class='code'><pre><code class='bash'><span class='line'>sudo python setup.py install
</span><span class='line'>s3cmd --configure
</span></code></pre></td></tr></table></div></figure>


<p>Программа задаст несколько вопросов о способе подключения и ключах доступа к AWS, узнать которые можно <a href="https://aws-portal.amazon.com/gp/aws/securityCredentials">тут</a>.</p>

<p>Затем нам надо сконфигурировать rakefile для работы с s3cmd, для чего добавим в него следующие строки:</p>

<figure class='code'> <div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
</pre></td><td class='code'><pre><code class='ruby'><span class='line'><span class="n">desc</span> <span class="s2">&quot;Uploading site to Amazon S3&quot;</span>
</span><span class='line'><span class="n">task</span> <span class="ss">:s3</span> <span class="k">do</span>
</span><span class='line'>  <span class="nb">puts</span> <span class="s2">&quot;## Uploading site to Amazon S3&quot;</span>
</span><span class='line'>  <span class="n">ok_failed</span> <span class="nb">system</span><span class="p">(</span><span class="s2">&quot;s3cmd sync --acl-public public/* s3://</span><span class="si">#{</span><span class="n">s3_bucket</span><span class="si">}</span><span class="s2">/&quot;</span><span class="p">)</span>
</span><span class='line'><span class="k">end</span>
</span></code></pre></td></tr></table></div></figure>


<p>и установим там же переменные:</p>

<figure class='code'><figcaption><span>blog.caine.in - это, разумеется, настройка для меня  </span></figcaption>
 <div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
</pre></td><td class='code'><pre><code class='ruby'><span class='line'><span class="n">s3_bucket</span> <span class="o">=</span> <span class="s2">&quot;blog.caine.in&quot;</span>
</span><span class='line'><span class="n">deploy_default</span> <span class="o">=</span> <span class="s2">&quot;s3&quot;</span>
</span></code></pre></td></tr></table></div></figure>


<p>Привязать доменное имя к сайту на S3 можно через DNS-псевдоним <a href="http://docs.amazonwebservices.com/AmazonS3/latest/dev/VirtualHosting.html">CNAME</a>:</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>blog.caine.in CNAME blog.caine.in.s3-website-eu-west-1.amazonaws.com.</span></code></pre></td></tr></table></div></figure>


<p>Записи типа A не поддерживаются, но при сильном желании можно смухлевать:</p>

<figure class='code'> <div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
</pre></td><td class='code'><pre><code class='bash'><span class='line'>main:octopress caine<span class="nv">$ </span>nslookup blog.caine.in.s3-website-eu-west-1.amazonaws.com
</span><span class='line'>
</span><span class='line'>Non-authoritative answer:
</span><span class='line'>blog.caine.in.s3-website-eu-west-1.amazonaws.com  canonical <span class="nv">name</span> <span class="o">=</span> s3-website-eu-west-1.amazonaws.com.
</span><span class='line'>Name: s3-website-eu-west-1.amazonaws.com
</span><span class='line'>Address: 178.236.5.70
</span></code></pre></td></tr></table></div></figure>


<p>Где 178.236.5.70 - IP адрес нашего сайта на S3 <em>в данный момент</em>. Можно привязать имя к этому адресу:</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>blog.caine.in A 178.236.5.70</span></code></pre></td></tr></table></div></figure>


<p>Вот тут и заключается главная проблема такого подхода: S3 использует балансировку нагрузки и IP-адреса постоянно меняются, подставляя наименее загруженный сервер в датацентре, а используя запись типа A мы лишаемся этой возможности. Вдобавок, нет никакой уверенности, что датацентр не сменит свои IP-адреса в будущем. В общем, рекомендовать привязку имени через запись A можно лишь в самом отчаянном положении при невозможности пользоваться записями CNAME.</p>

<p>Ну а дальнейшие действия просты: пишем посты на markdown, кидаем их в папку <code>octopress/source/_posts</code> и генерируем сайт:</p>

<figure class='code'> <div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
</pre></td><td class='code'><pre><code class='bash'><span class='line'><span class="nb">cd</span> ~/work/octopress
</span><span class='line'>rake generate
</span><span class='line'>rake deploy
</span></code></pre></td></tr></table></div></figure>


<p>P.S. Для любителей нестандартных хостингов можно порекомендовать статьи о размещении сайта c Octopress на <a href="http://jasongarber.com/blog/2012/01/10/deploying-octopress-to-heroku-with-a-custom-buildpack/">Heroku</a> (и еще <a href="http://octopress.org/docs/deploying/heroku/">тут</a>), <a href="http://octopress.org/docs/deploying/github/">Github</a> и даже <a href="http://octoprs.appspot.com/blog/2011/11/08/host-an-octopress-blog-on-google-app-engine/">Google App Engine</a>. Во всех этих случаях можно, кстати, размещать сайт совершенно забесплатно, но в ущерб посещаемости (GAE), скорости работы (Heroku) и закрытости исходников (Github).</p>

<p>P.P.S. Кстати, за время тестирования (примерно 2 месяца, правда, с небольшим трафиком) этого и 3-х других сайтов Amazon предъявил мне счет всего на 1.18$!</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Создание раздела Recovery HD на рабочей системе.]]></title>
    <link href="http://blog.caine.in/2011/10/24/sozdanie-razdela-recovery-hd-na-rabochej-sisteme/"/>
    <updated>2011-10-24T20:57:03+04:00</updated>
    <id>http://blog.caine.in/2011/10/24/sozdanie-razdela-recovery-hd-na-rabochej-sisteme</id>
    <content type="html"><![CDATA[<p>Про пользу новинки OS X 10.7 - раздела Recovery HD можно достаточно много говорить: это и прямое назначение (возможность загрузиться в сложной ситуации), и обеспечение загрузки с зашифрованного тома Filevault и даже возможность переустановки системы без посторонних дисков. Теперь, с выходом iCloud, он требуется еще и для работы функции Find My Mac (точнее, только для возможности удаленной блокировки компа - по сути, аналога того же Filevault, но, если раздела нет, то и Find My Mac включить нельзя).  Вобщем, очень нужная вещь - этот раздел.</p>

<p>Но иногда случается так, что этого раздела у вас нет. Произойти это может по разным причинам: установка системы 10.7 традиционным для хакинтоша <a href="http://www.applelife.ru/topic/29109-%d1%83%d1%81%d1%82%d0%b0%d0%bd%d0%be%d0%b2%d0%ba%d0%b0-mac-os-x-107-lion/">способом</a> (загрузка с образа, полученного совмещением BaseSystem.dmg и папки Packages от InstallESD.dmg), переносом системного раздела с другого диска или ошибками при апгрейде с 10.6. Раньше, до выхода 10.7.2 создать нужную схему разделов можно было только путем полной переустановки системы. Но теперь, вместе с выходом 10.7.2, Apple выпустила <a href="http://support.apple.com/kb/DL1464">Lion Recovery Update</a>. Использовать его по прямому назначению при отсутствии Recovery HD не выйдет - апдейт заявит, что обновлять ему нечего и закончит работу. Но выход, конечно же, есть: будем использовать его внутренности без спроса.</p>

<p>Итак, качаем апдейт, монтируем диск и распаковываем сам pkg куда-нибудь:</p>

<figure class='code'> <div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
</pre></td><td class='code'><pre><code class='bash'><span class='line'>pkgutil --expand /Volumes/Mac<span class="se">\ </span>OS<span class="se">\ </span>X<span class="se">\ </span>Lion<span class="se">\ </span>Recovery<span class="se">\ </span>HD<span class="se">\ </span>Update/RecoveryHDUpdate.pkg /Users/caine/Desktop/RHD
</span></code></pre></td></tr></table></div></figure>


<p>внутри папки RHD на рабочем столе находим еще один RecoveryHDUpdate.pkg - этот файл, в отличие от предыдущего распаковывать не обязательно, достаточно просто щелкнуть на &#8220;Show Package Contents&#8221; в Finder&#8217;е. Вот в нем-то и будет самое интересное: образ RecoveryHDMeta.dmg и папочка Scripts. Монтируем RecoveryHDMeta.dmg и выполняем следующий скрипт:</p>

<figure class='code'> <div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
</pre></td><td class='code'><pre><code class='bash'><span class='line'>/Users/caine/Desktop/RHD/RecoveryHDUpdate.pkg/Scripts/Tools/dmtest ensureRecoveryPartition / /Volumes/Recovery<span class="se">\ </span>HD<span class="se">\ </span>Update/BaseSystem.dmg 0 0 /Volumes/Recovery<span class="se">\ </span>HD<span class="se">\ </span>Update/BaseSystem.chunklist
</span></code></pre></td></tr></table></div></figure>


<p>По окончании работы скрипт выдаст долгожданное: <code>Creating recovery partition: finished</code><br/>Вот и все, Recovery HD создан на текущем диске, можно перезагружаться.</p>

<p>P.S.перед перезагрузкой хорошо бы обновить загрузочный кэш на новом разделе:</p>

<figure class='code'> <div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
</pre></td><td class='code'><pre><code class='bash'><span class='line'>sudo kextcache -f -u /
</span></code></pre></td></tr></table></div></figure>

]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Intel DP55SB и OS X 10.7]]></title>
    <link href="http://blog.caine.in/2011/07/02/intel-dp55sb-and-osx-10-7/"/>
    <updated>2011-07-02T20:24:24+04:00</updated>
    <id>http://blog.caine.in/2011/07/02/intel-dp55sb-and-osx-10-7</id>
    <content type="html"><![CDATA[<p>Сегодня, с выходом OS X 10.7 GM 11A511 (скачать можно <a href="http://imzdl.com/">тут</a>) пришла в голову мысль выложить в общественное достояние свои наработки для установки ее на плату Intel DP55SB.</p>

<p>Итак, DSDT я выложил на Google Code (<a href="http://code.google.com/p/dp55xx/">вот</a>). Вдобавок к этому еще комплект <a href="http://static.caine.in/blog/2011/07/Intel_-DP55SB_Drivers_for_Lion.zip">драйверов</a>: свежайшая сборка ethernet-драйвера AppleIntelE1000E.kext, собранная для 10.7, фиксы для AppleHDA.kext, профиль для управления питанием (идентификатор компа MacPro5,2) ну и конечно же FakeSMC.kext  с патченым плагином IntelCPUMonitor (пофиксено определение частоты FSB для Nehalem) и фиксом оранжевых иконок дисков. С большой долей вероятности все это подойдет и для других плат серии Intel DP55XX, необходимо тестирование. Загрузку я провожу с помощью загрузчика XPC (см. <a href="http://irc.netsplit.de/channels/details.php?room=%23xpc-boot&amp;net=MoofSpeak">тут</a>, но это уже дело привычки), видеокарту завожу с помощью поля device-properties в Device Tree.</p>

<p>Если кому пригодится, то <a href="http://static.caine.in/blog/2011/07/HD6850.plist.zip">вот</a> еще данные для заводки видеокарты XFX HD6850 (использую фреймбуфер Duckweed). Для XPC следует преобразовать plist-файл с помощью <a href="http://forum.netkas.org/index.php?topic=64.0">gfxutil</a>:</p>

<figure class='code'> <div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
</pre></td><td class='code'><pre><code class='bash'><span class='line'>gfxutil -i xml -o hex /path/to/HD6850.plist /path/to/HD6850.txt
</span></code></pre></td></tr></table></div></figure>


<p>Содержимое полученного txt-файла необходимо добавить в settings.plist загрузчика XPC.</p>

<p>That&#8217;s all, folks!</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Раздача лицензий на 1Password]]></title>
    <link href="http://blog.caine.in/2010/11/23/razdacha-licenzij-na-1password/"/>
    <updated>2010-11-23T23:55:42+03:00</updated>
    <id>http://blog.caine.in/2010/11/23/razdacha-licenzij-na-1password</id>
    <content type="html"><![CDATA[<p><img src="http://pit.dirty.ru/lepro/137/2010/11/23/42347-203452-2123edf2ee85e7e546d05bd5af078e01.jpg" alt="1password" />Только сегодня и только сейчас! Аттракцион невиданной щедрости - в рамках буржуинских праздников Agile Web Solutions дает возможность каждому обладателю лицензии горячо любимой mac-пользователями программы <strong>1Password</strong> совершенно забесплатно <strong>трижды</strong> подарить кому–нибудь такую же лицензию. Не упускайте случая <a href="http://agilewebsolutions.com/customer/thanksgiving_intro">сделать</a> добро людям.</p>

<p>Вот, собственно, запросто подарю кому-нить лицензию (нужно мыло и имя).</p>

<p>P.S. самое приятное, что каждый, получивший подарок сможет в, свою очередь, одарить еще троих и т.д.</p>

<p>P.P.S. подобные раздачи идут также <a href="http://mac.leprosorium.ru/comments/949327">тут</a> и <a href="http://community.livejournal.com/apple_russia/423281.html">тут</a>.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[XPC Boot жив!]]></title>
    <link href="http://blog.caine.in/2010/01/05/xpc-boot-zhiv/"/>
    <updated>2010-01-05T21:12:08+03:00</updated>
    <id>http://blog.caine.in/2010/01/05/xpc-boot-zhiv</id>
    <content type="html"><![CDATA[<p>Кажется, наиболее перспективный загрузчик Mac OS снова жив и продолжает свое развитие. Более того, проект превратился в opensource (очень этого не хватало) и со вчерашнего дня <a href="http://xpcefi-bootload.sourceforge.net">базируется</a> на хостинге sourceforge.net.</p>

<p>Для тех, кто не в курсе, XPC - наиболее удачная, на мой взгляд, идея загрузчика Mac OS для PC, использующая в своей основе эмуляцию UEFI (<a href="https://edk.tianocore.org">DUET</a>) от Tianocore.</p>

<p>К недостаткам проекта я бы причислил чрезвычайно медленное развитие (за последний год он практически остановился), закрытость исходников, и отсутствие толкового сайта (все анонсы публиковались в <a href="irc://irc.moofspeak.net/#UEFI-Boot">IRC-канале</a>).</p>

<p>Теперь, надеюсь, дело сдвинулось!</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Safari - Save as Web Application]]></title>
    <link href="http://blog.caine.in/2009/12/08/safari-save-as-web-application/"/>
    <updated>2009-12-08T00:43:05+03:00</updated>
    <id>http://blog.caine.in/2009/12/08/safari-save-as-web-application</id>
    <content type="html"><![CDATA[<p><img src="http://static.caine.in/blog/2009/12/2568406483_c19fb7fe62.jpg" alt="Safari Save as Web Application" /></p>

<p>А помните, когда-то давно, чуть ли не в самой первой публичной (или не очень) бете Safari 4 <a href="http://www.tuaw.com/2008/06/10/apple-seeds-developers-with-safari-4-0/">была</a> такая фича - Save as Web Application? Куда она потом исчезла и зачем? C ней пропала бы нужда в не шибко-то удобном Fluid, и даже в монструозном Adobe Air, и вообще, настала бы мировая гармония и красота.
Досадно:(.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[What is Google Wave?]]></title>
    <link href="http://blog.caine.in/2009/11/21/what-is-google-wave/"/>
    <updated>2009-11-21T22:59:15+03:00</updated>
    <id>http://blog.caine.in/2009/11/21/what-is-google-wave</id>
    <content type="html"><![CDATA[<iframe width="640" height="390" src="http://www.youtube.com/embed/rDu2A3WzQpo" frameborder="0" allowfullscreen></iframe>


<p>Видео, понятно объясняющее как пользоваться Google Wave. Мне, к слову весьма помогло с этим вейвом разобраться:). P.S. Вот еще одна хорошая <a href="http://completewaveguide.com/">ссылочка</a> с очень подробным (англ.) руководством.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Итоги года и раздача слонов]]></title>
    <link href="http://blog.caine.in/2009/11/12/itogi-goda-i-razdacha-slonov/"/>
    <updated>2009-11-12T15:29:44+03:00</updated>
    <id>http://blog.caine.in/2009/11/12/itogi-goda-i-razdacha-slonov</id>
    <content type="html"><![CDATA[<p>Итак, после весьма продолжительного молчания я снова добрался до клавиатуры и спешу сообщить, что за все прошедшее время для хакинтошестроения я не сделал ничего! Ура!!</p>

<p>Всему виной, конечно, нехватка времени, лень и, увы, трагическая гибель дорогой мне платы Intel dp35dp. Замену толком не нашел, использую скромненькую asus p5gc-mx/1333 на которой и так все замечательно работает, что очень плохо сказывается на желании что-либо менять или разрабатывать.</p>

<p>Зато, под конец года решил я избавится от всевозможных нематериальных предметов, которые мне ни к чему, а кому-нибудь очень пригодились бы. В итоге у меня <del>собрался следующий списочек подарков, которые я с легкостью отдам всякому попросившему</del> осталось следующее:</p>

<ul>
<li>5 приглашений на google wave</li>
<li>приглашение на google voice</li>
<li>3 приглашения на brokenstones.me</li>
<li>4 приглашения на darudar.org</li>
<li>приглашение на vortexnetwork.org</li>
<li>лицензия на <a href="http://www.wonderwarp.com/shovebox/">Shovebox</a></li>
<li>приглашения на <a href="http://db.tt/hpemL3A">dropbox.com</a>, дающие приглашенному дополнительные 250МБ (мне dropbox уже ничего не даст, я и так уже получил все, что мог:))</li>
</ul>


<p>Вот. Если в ближайшее время отремонтируют demonoid - раздам приглашения и туда:).</p>

<p>P.S. Пожалуйста, не спрашивайте о приглашениях на Хабр/Dirty/Лепру - их у меня нет.</p>

<p>P.P.S. Вот <a href="http://go.caine.in/jdpzn">тут</a> тоже большая раздача инвайтов на wave.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[3G в Твери]]></title>
    <link href="http://blog.caine.in/2009/07/11/3g-v-tveri/"/>
    <updated>2009-07-11T13:56:48+04:00</updated>
    <id>http://blog.caine.in/2009/07/11/3g-v-tveri</id>
    <content type="html"><![CDATA[<p>Вот и до нашего города добрался очередной кусочек цивилизации: вчера Мегафон официально <a href="http://szf.megafon.ru/info/rus/news/pressreleazes/3g_tvr.html">сообщил</a> о начале предоставления 3G/UMTS в Тверской области. Впечатления двоякие: 3G есть только в центре, скорость около мегабита, хотя, возможно, это особенность моего телефона. Дома пока еще только EDGE, но, надеюсь скоро покрытие расширится.</p>

<p><img src="http://static.caine.in/blog/2009/07/IMG_0345.png" alt="3G Тверь speedtest 1" /><img src="http://static.caine.in/blog/2009/07/IMG_0340.png" alt="3G Тверь speedtest 2" /></p>

<p><strong>Upd:</strong> <a href="http://static.caine.in/blog/2009/07/Tver.jpg.zip">Карта покрытия</a> по Твери в настоящий момент.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[PC EFI V10 и исходники Chameleon 2RC1]]></title>
    <link href="http://blog.caine.in/2009/06/30/isxodniki-chameleon-2rc1-i-pc-efi-v10/"/>
    <updated>2009-06-30T14:11:46+04:00</updated>
    <id>http://blog.caine.in/2009/06/30/isxodniki-chameleon-2rc1-i-pc-efi-v10</id>
    <content type="html"><![CDATA[<p>Случилось наконец! Сегодня Netkas <a href="http://netkas.org/?p=113">выложил</a> свежую версию своей модификации загрузчика chameleon - pc efi 10. Из новинок - некоторые оптимизации для работы со SnowLeo, для карт ATI и режима hybernation. Ну и самое интересное для меня - наконец-то выложены исходники загрузчика chameleon 2.</p>

<p>О, сколько нам открытий чудных&#8230;</p>

<p>Все лежит тут:</p>

<p><a href="http://www.mediafire.com/?1tyc7lcjsr0">загрузчик</a> и <a href="http://www.mediafire.com/?tmmlmzht0al">исходники</a></p>

<p>Хотя на всякий случай продублирую и у себя:</p>

<p><a href="http://static.caine.in/blog/2009/06/boot.zip">загрузчик</a> и <a href="http://static.caine.in/blog/2009/06/Chameleon-2.0-RC1-r431_PCEFIV10-src.zip">исходники</a></p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Загрузка висты через эмуляцию EFI (DUET)]]></title>
    <link href="http://blog.caine.in/2009/06/01/zagruzka-visty-cherez-emulyaciyu-efi-duet/"/>
    <updated>2009-06-01T09:40:21+04:00</updated>
    <id>http://blog.caine.in/2009/06/01/zagruzka-visty-cherez-emulyaciyu-efi-duet</id>
    <content type="html"><![CDATA[<iframe width="640" height="390" src="http://www.youtube.com/embed/JpNyEvOBnbY" frameborder="0" allowfullscreen></iframe>


<p>Вот так, все достаточно прозрачно и функционально. Если кратко, то алгоритм такой: идет загрузка в shell, выбирается efi-раздел dvd (в моем случае fs4:) и запускается файл /efi/boot/bootx64.efi. Характеристики компа: плата asus p5gc-mx/1333, процессор - pentium e2180.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Missing link found]]></title>
    <link href="http://blog.caine.in/2009/05/20/missing-link-found/"/>
    <updated>2009-05-20T21:15:20+04:00</updated>
    <id>http://blog.caine.in/2009/05/20/missing-link-found</id>
    <content type="html"><![CDATA[<p>Хе-хе, какой сегодня Google забавный:</p>

<p><img src="http://static.caine.in/blog/2009/05/missinglink.gif" alt="missing link" /></p>

<p>Видать, и впрямь чего-то <a href="http://www.google.ru/search?q=missing+link+found&amp;ct=missinglink">нашли</a>:).</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Страшнее мыши зверя нету]]></title>
    <link href="http://blog.caine.in/2009/05/20/strashnee-myshi-zverya-netu/"/>
    <updated>2009-05-20T14:06:01+04:00</updated>
    <id>http://blog.caine.in/2009/05/20/strashnee-myshi-zverya-netu</id>
    <content type="html"><![CDATA[<p><img src="http://static.caine.in/blog/2009/05/mm.jpg" alt="Mighty Mouse Failure" /></p>

<p>Особенно, если это Mighty Mouse от Apple. Проработала, зараза, всего полгода и теперь окончательно перестал вращаться шарик. Все это время я ее берег, <a href="http://community.usemac.ru/tips/mighty-mouse-clean-768.html">всячески</a> <a href="http://www.brendanfenn.com/cleanmouse.html">чистил</a>, заботился об этой дуре, как о родной, но увы - шарик позавчера бесповоротно застрял. В итоге я не выдержал и разобрал-таки ее (о том, как это сделать достаточно подробно расписано <a href="http://i-shakti.livejournal.com/6557.html">тут</a>), тщательно прочистил и склеил обратно. Проклятый грызунский шарик проработал ровно час и застрял снова.</p>

<p>В общем, купил я самую дешевую мышь фирмы logitech за скромные 250 руб. и доволен до невозможности: когда я нажимаю правую кнопку, то нажимается именно правая, а не средняя или левая, боковых кнопок хоть и нет, но не разъезжается уже ни с того, ни с сего экран expose от их совершенно непреднамеренного нажатия и самое главное - колесо крутится! Хоть и не в 4 стороны, а всего в две, но крутится и с очень четко ощущаемым шагом! Красота, одним словом.</p>

<p>Ну, а Apple Mighty Mouse - заслуженный позор, более отвратительной и нежизнеспособной мыши я еще не видел.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Изготовление загрузочной флешки с эмулятором EFI - DUET]]></title>
    <link href="http://blog.caine.in/2009/02/15/izgotovlenie-zagruzochnoj-fleshki-s-emulyatorom-efi-duet/"/>
    <updated>2009-02-15T22:19:16+03:00</updated>
    <id>http://blog.caine.in/2009/02/15/izgotovlenie-zagruzochnoj-fleshki-s-emulyatorom-efi-duet</id>
    <content type="html"><![CDATA[<p>В <a href="http://blog.caine.in/2009/02/13/zagruzka-v-rezhime-efi-na-plate-intel-dp35dp/">прошлом</a> посте я описал возможность загрузки в режиме EFI для плат Intel со встроенным (хоть и хорошо замаскированным) &#8220;аппаратным&#8221; EFI. Теперь как же быть всем остальным, не имеющим &#8220;счастья&#8221; обладать интеловской материнкой? Тут все чуть сложнее, но выход также есть: существует эмулятор, практически полностью реализующий все функции efi на текущем железе - DUET. Скачать исходники его можно <a href="https://edk.tianocore.org/servlets/ProjectDocumentList?folderID=5&amp;expandFolder=5&amp;folderID=4">здесь</a> (нужно зарегистрироваться), но для их сборки понадобится windows и visual studio 2005 (2008). Для сборки x64-файлов необходимо при установке Visual Studio 2005/2008 поставить галку &#8220;x64 compiler support&#8221; (или как-то так, точно не помню) в выборе опций. VS2003 не умеет собирать x64-файлы.</p>

<p>Как собирать?</p>

<ul>
<li>Качаем релиз edk по вышеупомянутой ссылке и распаковываем его в c :\edk.</li>
<li>Ищем в интернете masm 6.15 (ссылок полно) и тоже распаковываем его, скажем, в c:\masm615</li>
<li>Создаем в папке c:\edk файлик env.cmd следующего содержания:</li>
</ul>


<figure class='code'> <div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
</pre></td><td class='code'><pre><code class='bash'><span class='line'>call <span class="s2">&quot;C:\Program Files\Microsoft Visual Studio 9.0\VC\vcvarsall.bat&quot;</span>
</span><span class='line'><span class="nb">set </span><span class="nv">EDK_SOURCE</span><span class="o">=</span>c:<span class="se">\e</span>dk
</span><span class='line'><span class="nb">set </span><span class="nv">MASMPATH</span><span class="o">=</span>c:<span class="se">\m</span>asm615
</span><span class='line'><span class="nb">set </span><span class="nv">EFI_BOOT_DISK</span><span class="o">=</span>E:
</span></code></pre></td></tr></table></div></figure>


<p>скорректируйте пути, соответственно вашим.</p>

<ul>
<li>редактируем файл <code>c:\Edk\Sample\Platform\DUET\Build\config.env</code>, дабы измнить в нем следующие строки:</li>
</ul>


<figure class='code'> <div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
</pre></td><td class='code'><pre><code class='bash'><span class='line'><span class="nv">EFI_BUILD_TARGET_X64</span>           <span class="o">=</span> YES
</span><span class='line'><span class="nv">USE_VC8</span>                        <span class="o">=</span> YES
</span><span class='line'><span class="nv">USE_VC8_X64</span>                    <span class="o">=</span> YES
</span></code></pre></td></tr></table></div></figure>


<ul>
<li><p>редактируем файл <code>c:\Edk\Sample\Platform\DUET\Build\duet.env</code>, если хотим убрать/добавить какие-либо efi-фичи.</p></li>
<li><p>запускаем консоль (cmd.exe) и в ней:</p></li>
</ul>


<figure class='code'> <div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
</pre></td><td class='code'><pre><code class='bash'><span class='line'>c:<span class="se">\e</span>dk<span class="se">\e</span>nv.cmd
</span><span class='line'><span class="nb">cd </span>c:<span class="se">\E</span>dk<span class="se">\S</span>ample<span class="se">\P</span>latform<span class="se">\D</span>UET<span class="se">\</span>
</span><span class='line'>nmake uefi64 <span class="o">(</span>или uefi32<span class="o">)</span>
</span></code></pre></td></tr></table></div></figure>


<p>сборка может занять продолжительное время.</p>

<ul>
<li>готовим флешку: у меня она прописана в env.cmd как диск E:. Внимание: на флешине должна присутствовать mbr (т.е. она должна быть загрузочной, сделать ее такой можно с помощью, например, программки <a href="http://www.prime-expert.com/flashboot/">flashboot</a>).</li>
</ul>


<figure class='code'> <div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
</pre></td><td class='code'><pre><code class='bash'><span class='line'><span class="nb">cd </span>uefi64  <span class="o">(</span>или uefi32<span class="o">)</span>
</span><span class='line'>nmake createusb
</span></code></pre></td></tr></table></div></figure>


<p>перевтыкните флешку и:</p>

<figure class='code'> <div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
</pre></td><td class='code'><pre><code class='bash'><span class='line'>nmake usb
</span></code></pre></td></tr></table></div></figure>


<ul>
<li>Готово, можно загружаться! С помощью этой флешки каждый теперь может получить вполне работающую систему с efi на любой плате!</li>
</ul>

]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Загрузка в режиме EFI на плате Intel DP35DP]]></title>
    <link href="http://blog.caine.in/2009/02/13/zagruzka-v-rezhime-efi-na-plate-intel-dp35dp/"/>
    <updated>2009-02-13T16:45:32+03:00</updated>
    <id>http://blog.caine.in/2009/02/13/zagruzka-v-rezhime-efi-na-plate-intel-dp35dp</id>
    <content type="html"><![CDATA[<p>Многие из обладателей интеловских плат (DP35DP, DX38BT, BadAxe2 и пр.) слышали или читали о поддержке UEFI, но воспользоваться этим способом загрузки было не просто. Здесь я приведу детальное руководство для всех желающих поэкспериментировать в этой области.</p>

<p>На самом деле, на этих платах EFI (точнее, x64 UEFI) конечно же есть, но с двумя упущениями: полностью отсутствует консоль (shell) и&#8230; поддержка режима AHCI. Последнее особенно странно, учитывая, что в CSM (&#8220;эмулятор&#8221; биоса, через который мы обычно работаем) эта поддержка реализована. Возможно, в более современных биосах или платах на P45 или X58 она и добавилась, но на моей DP35DP с bios 0517 ее нету.</p>

<p>Все дальнейшее описание производится для операционных систем типа FreeBSD или Mac OS X. Впрочем, найти руководство по работе с разделами GPT EFI под Windows при помощи diskpart совсем несложно. Много полезного содержится, например, <a href="http://www.microsoft.com/whdc/device/storage/GPT_FAQ.mspx">тут</a>. Итак
приступим:</p>

<ul>
<li>монтируем efi-раздел (для загрузки в EFI необходим GPT-диск!):</li>
</ul>


<figure class='code'> <div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
</pre></td><td class='code'><pre><code class='bash'><span class='line'>sudo mkdir /Volumes/EFI
</span><span class='line'>sudo mount -t msdos /dev/disk0s1 /Volumes/EFI
</span></code></pre></td></tr></table></div></figure>


<ul>
<li><p>кидаем в него shell в папке <code>/efi/boot/</code> (например <a href="http://static.caine.in/blog/2009/02/efi.zip">этот</a>, от Tianocore EDK) или любой другой efi-модуль, названный bootx64.efi (этот путь обязателен: <code>/efi/boot/bootx64.efi</code>!) и имеющий x64-архитектуру.</p></li>
<li><p>перезагружаемся и переключаем контроллер в ide-режим, сохраняем настройки и заходим в экран Boot Options (F10).</p></li>
</ul>


<p>Должна получится примерно такая картина (Windows Boot Manager не в счет - запись в nvram осталась в наследство от давно снесенной висты):</p>

<p><img src="http://static.caine.in/blog/2009/02/efi.jpg" alt="efi boot options" /></p>

<ul>
<li><p>выбираем &#8220;Internal EFI Shell &#8211; Hard Drive&#8221; и грузим наш efi-shell (или что-нить другое). Если надпись не появляется, система виснет при загрузке или возвращается обратно в boot options - обновите биос (у меня на 0517 все гарантировано работает, на 03ХХ и 04ХХ были проблемы) и убедитесь в том, что загрузочный efi-файл имеет архитектуру x64.</p></li>
<li><p>ура, мы в консоли:</p></li>
</ul>


<p><img src="http://static.caine.in/blog/2009/02/efi2.jpg" alt="efi shell dp35dp" /></p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Packages update]]></title>
    <link href="http://blog.caine.in/2009/01/16/packages-update/"/>
    <updated>2009-01-16T17:13:38+03:00</updated>
    <id>http://blog.caine.in/2009/01/16/packages-update</id>
    <content type="html"><![CDATA[<p>Временный пост для выкладывания обновы для dp35dp под mac os. <a href="http://static.caine.in/blog/2009/01/intel-dp35dp-complete.zip">Intel-DP35DP-complete_v0.1</a> и <a href="http://static.caine.in/blog/2009/01/p5gc_mx_1333.zip">ASUS-P5GC-MX/1333</a>
тоже.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[ДР!]]></title>
    <link href="http://blog.caine.in/2009/01/10/dr/"/>
    <updated>2009-01-10T13:47:52+03:00</updated>
    <id>http://blog.caine.in/2009/01/10/dr</id>
    <content type="html"><![CDATA[<p>Юбилей, однако&#8230;</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Компьютеры себя не оправдали:(]]></title>
    <link href="http://blog.caine.in/2008/11/27/kompyutery-sebya-ne-opravdali/"/>
    <updated>2008-11-27T02:35:00+03:00</updated>
    <id>http://blog.caine.in/2008/11/27/kompyutery-sebya-ne-opravdali</id>
    <content type="html"><![CDATA[<p><img src="http://static.caine.in/blog/2008/11/comp.jpg" alt="Компьютеры себя не оправдали" /></p>

<p>Весь вечер убил на то, чтобы по-человечески настроить перманентное VPN-соединение под Mac OS на уровне сервиса (pppd daemon). Насколько легко и непринужденно это делается в винде, настолько же мутно и необъяснимо это настраивается в unix-like среде.</p>

<p>Зато, картину хорошую узрел! Художник - <a href="http://kopeikinn.livejournal.com/">Николай Копейкин</a>, тот самый, который сотворил &#8221;<a href="http://www.nomzhir.spb.ru/kopeykin/elefants/">Слонов Петербурга</a>&#8221;.</p>

<p>Нравится!</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Чудо-музыка]]></title>
    <link href="http://blog.caine.in/2008/11/09/chudo-muzyka/"/>
    <updated>2008-11-09T20:27:00+03:00</updated>
    <id>http://blog.caine.in/2008/11/09/chudo-muzyka</id>
    <content type="html"><![CDATA[<iframe width="640" height="390" src="http://www.youtube.com/embed/_ZTC_jUaVPw" frameborder="0" allowfullscreen></iframe>


<p>Идея, конечно, не нова, но уж больно красочно соединили здоровскую песню и видеоряд:).</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Снова роботы]]></title>
    <link href="http://blog.caine.in/2008/09/08/snova-roboty/"/>
    <updated>2008-09-08T02:18:00+04:00</updated>
    <id>http://blog.caine.in/2008/09/08/snova-roboty</id>
    <content type="html"><![CDATA[<p><img src="http://static.caine.in/blog/2008/09/moonrisesm.jpg" alt="Роботы" /></p>

<p>По наводке <a href="http://dirty.ru/comments/239417/">отсюда</a>. А <a href="http://www.ericjoyner.com/">тут</a> еще очень много вкусного непосредственно от автора.</p>
]]></content>
  </entry>
  
</feed>
