caine's place

Мой угол в интернете

Обновление сайта и миграция на Octopress.

После продолжительного тестирования и многочисленных экспериментов я, наконец, решился перевести сайт с порядком надоевшего Wordpress’а на Octopress.

Уже давно наблюдаю за развитием этого фреймворка, и вот, наконец, созрел до миграции блога на него. Расписывать подробно все его прелести не буду, в сети есть большое количество разных статей на эту тему, но основная идея - Octopress преобразует статьи, размеченные в markdown, в статический HTML-сайт, безо всякого php, баз данных и прочих задумчивых вещей. Причем, все это действо происходит прямо на моем компе, не загружая сервер лишней работой. Все, что остается - синхронизировать полученный HTML-контент с сервером с помощью rsync, например. Разумеется, тут теряется возможность написать пост, сидя в байдаре посреди речки или из открытого космоса - под рукой должен быть, как минимум, компьютер, но для меня это небольшая проблема, тем более, что для сиюминутного графоманства отлично подойдет и твиттер.

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

Заодно, решил поменять и хостинг, ибо со статическим сайтом выбор значительно упрощается: хоть на narod.ru выкладывай. Ну, про narod.ru я пошутил: тамошняя принудительная реклама с легкостью перечеркивает все плюсы, поэтому я выложил сайт на Amazon S3. В течение прошлого года, благодаря кампании free tier (год бесплатного использования Amazon Web Services для всех желающих) я не только познакомился с этими замечательными сервисами, но и перевел туда несколько проектов, так что общение с S3 мне было не в новинку. Для тех же, кто слышит об этом впервые, есть несколько замечательных статей на Хабре.

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

Сделаем папку и загрузим туда Octopress.
1
2
mkdir work && cd work
git clone git://github.com/imathis/octopress.git octopress

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

1
2
3
4
bash -s stable < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer)
echo '[[ -s "/Users/caine/.rvm/scripts/rvm" ]] && source "/Users/caine/.rvm/scripts/rvm" # Load RVM into a shell session *as a function*' >> ~/.profile
cd octopress
rvm install 1.9.2 && rvm use 1.9.2

Ну и собственно, установим Octopress:

1
2
3
gem install bundler
bundle install
rake install

Дальнейший процесс настройки и использования фреймворка хорошо и подробно документирован на сайте Octopress, поэтому не буду описывать его подробно. А вот о синхронизации с Amazon S3 стандартным для Octopress путем (через ‘rake deploy’) не слишком много написано в сети, так что остановимся на ней подробнее. Для начала нам понадобится утилитка s3cmd. Сама она написана для Linux, но, как показала практика, отлично работает и на Mac. Перейдем в папку с распакованным архивом и запустим в терминале:

1
2
sudo python setup.py install
s3cmd --configure

Программа задаст несколько вопросов о способе подключения и ключах доступа к AWS, узнать которые можно тут.

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

1
2
3
4
5
desc "Uploading site to Amazon S3"
task :s3 do
  puts "## Uploading site to Amazon S3"
  ok_failed system("s3cmd sync --acl-public public/* s3://#{s3_bucket}/")
end

и установим там же переменные:

blog.caine.in - это, разумеется, настройка для меня
1
2
s3_bucket = "blog.caine.in"
deploy_default = "s3"

Привязать доменное имя к сайту на S3 можно через DNS-псевдоним CNAME:

1
blog.caine.in CNAME blog.caine.in.s3-website-eu-west-1.amazonaws.com.

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

1
2
3
4
5
6
main:octopress caine$ nslookup blog.caine.in.s3-website-eu-west-1.amazonaws.com

Non-authoritative answer:
blog.caine.in.s3-website-eu-west-1.amazonaws.com  canonical name = s3-website-eu-west-1.amazonaws.com.
Name: s3-website-eu-west-1.amazonaws.com
Address: 178.236.5.70

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

1
blog.caine.in A 178.236.5.70

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

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

1
2
3
cd ~/work/octopress
rake generate
rake deploy

P.S. Для любителей нестандартных хостингов можно порекомендовать статьи о размещении сайта c Octopress на Heroku (и еще тут), Github и даже Google App Engine. Во всех этих случаях можно, кстати, размещать сайт совершенно забесплатно, но в ущерб посещаемости (GAE), скорости работы (Heroku) и закрытости исходников (Github).

P.P.S. Кстати, за время тестирования (примерно 2 месяца, правда, с небольшим трафиком) этого и 3-х других сайтов Amazon предъявил мне счет всего на 1.18$!

Создание раздела Recovery HD на рабочей системе.

Про пользу новинки OS X 10.7 - раздела Recovery HD можно достаточно много говорить: это и прямое назначение (возможность загрузиться в сложной ситуации), и обеспечение загрузки с зашифрованного тома Filevault и даже возможность переустановки системы без посторонних дисков. Теперь, с выходом iCloud, он требуется еще и для работы функции Find My Mac (точнее, только для возможности удаленной блокировки компа - по сути, аналога того же Filevault, но, если раздела нет, то и Find My Mac включить нельзя).  Вобщем, очень нужная вещь - этот раздел.

Но иногда случается так, что этого раздела у вас нет. Произойти это может по разным причинам: установка системы 10.7 традиционным для хакинтоша способом (загрузка с образа, полученного совмещением BaseSystem.dmg и папки Packages от InstallESD.dmg), переносом системного раздела с другого диска или ошибками при апгрейде с 10.6. Раньше, до выхода 10.7.2 создать нужную схему разделов можно было только путем полной переустановки системы. Но теперь, вместе с выходом 10.7.2, Apple выпустила Lion Recovery Update. Использовать его по прямому назначению при отсутствии Recovery HD не выйдет - апдейт заявит, что обновлять ему нечего и закончит работу. Но выход, конечно же, есть: будем использовать его внутренности без спроса.

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

1
pkgutil --expand /Volumes/Mac\ OS\ X\ Lion\ Recovery\ HD\ Update/RecoveryHDUpdate.pkg /Users/caine/Desktop/RHD

внутри папки RHD на рабочем столе находим еще один RecoveryHDUpdate.pkg - этот файл, в отличие от предыдущего распаковывать не обязательно, достаточно просто щелкнуть на “Show Package Contents” в Finder’е. Вот в нем-то и будет самое интересное: образ RecoveryHDMeta.dmg и папочка Scripts. Монтируем RecoveryHDMeta.dmg и выполняем следующий скрипт:

1
/Users/caine/Desktop/RHD/RecoveryHDUpdate.pkg/Scripts/Tools/dmtest ensureRecoveryPartition / /Volumes/Recovery\ HD\ Update/BaseSystem.dmg 0 0 /Volumes/Recovery\ HD\ Update/BaseSystem.chunklist

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

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

1
sudo kextcache -f -u /

Intel DP55SB и OS X 10.7

Сегодня, с выходом OS X 10.7 GM 11A511 (скачать можно тут) пришла в голову мысль выложить в общественное достояние свои наработки для установки ее на плату Intel DP55SB.

Итак, DSDT я выложил на Google Code (вот). Вдобавок к этому еще комплект драйверов: свежайшая сборка ethernet-драйвера AppleIntelE1000E.kext, собранная для 10.7, фиксы для AppleHDA.kext, профиль для управления питанием (идентификатор компа MacPro5,2) ну и конечно же FakeSMC.kext  с патченым плагином IntelCPUMonitor (пофиксено определение частоты FSB для Nehalem) и фиксом оранжевых иконок дисков. С большой долей вероятности все это подойдет и для других плат серии Intel DP55XX, необходимо тестирование. Загрузку я провожу с помощью загрузчика XPC (см. тут, но это уже дело привычки), видеокарту завожу с помощью поля device-properties в Device Tree.

Если кому пригодится, то вот еще данные для заводки видеокарты XFX HD6850 (использую фреймбуфер Duckweed). Для XPC следует преобразовать plist-файл с помощью gfxutil:

1
gfxutil -i xml -o hex /path/to/HD6850.plist /path/to/HD6850.txt

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

That’s all, folks!

Раздача лицензий на 1Password

1passwordТолько сегодня и только сейчас! Аттракцион невиданной щедрости - в рамках буржуинских праздников Agile Web Solutions дает возможность каждому обладателю лицензии горячо любимой mac-пользователями программы 1Password совершенно забесплатно трижды подарить кому–нибудь такую же лицензию. Не упускайте случая сделать добро людям.

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

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

P.P.S. подобные раздачи идут также тут и тут.

XPC Boot жив!

Кажется, наиболее перспективный загрузчик Mac OS снова жив и продолжает свое развитие. Более того, проект превратился в opensource (очень этого не хватало) и со вчерашнего дня базируется на хостинге sourceforge.net.

Для тех, кто не в курсе, XPC - наиболее удачная, на мой взгляд, идея загрузчика Mac OS для PC, использующая в своей основе эмуляцию UEFI (DUET) от Tianocore.

К недостаткам проекта я бы причислил чрезвычайно медленное развитие (за последний год он практически остановился), закрытость исходников, и отсутствие толкового сайта (все анонсы публиковались в IRC-канале).

Теперь, надеюсь, дело сдвинулось!

Safari - Save as Web Application

Safari Save as Web Application

А помните, когда-то давно, чуть ли не в самой первой публичной (или не очень) бете Safari 4 была такая фича - Save as Web Application? Куда она потом исчезла и зачем? C ней пропала бы нужда в не шибко-то удобном Fluid, и даже в монструозном Adobe Air, и вообще, настала бы мировая гармония и красота. Досадно:(.

What Is Google Wave?

Видео, понятно объясняющее как пользоваться Google Wave. Мне, к слову весьма помогло с этим вейвом разобраться:). P.S. Вот еще одна хорошая ссылочка с очень подробным (англ.) руководством.

Итоги года и раздача слонов

Итак, после весьма продолжительного молчания я снова добрался до клавиатуры и спешу сообщить, что за все прошедшее время для хакинтошестроения я не сделал ничего! Ура!!

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

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

  • 5 приглашений на google wave
  • приглашение на google voice
  • 3 приглашения на brokenstones.me
  • 4 приглашения на darudar.org
  • приглашение на vortexnetwork.org
  • лицензия на Shovebox
  • приглашения на dropbox.com, дающие приглашенному дополнительные 250МБ (мне dropbox уже ничего не даст, я и так уже получил все, что мог:))

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

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

P.P.S. Вот тут тоже большая раздача инвайтов на wave.

3G в Твери

Вот и до нашего города добрался очередной кусочек цивилизации: вчера Мегафон официально сообщил о начале предоставления 3G/UMTS в Тверской области. Впечатления двоякие: 3G есть только в центре, скорость около мегабита, хотя, возможно, это особенность моего телефона. Дома пока еще только EDGE, но, надеюсь скоро покрытие расширится.

3G Тверь speedtest 13G Тверь speedtest 2

Upd: Карта покрытия по Твери в настоящий момент.

PC EFI V10 и исходники Chameleon 2RC1

Случилось наконец! Сегодня Netkas выложил свежую версию своей модификации загрузчика chameleon - pc efi 10. Из новинок - некоторые оптимизации для работы со SnowLeo, для карт ATI и режима hybernation. Ну и самое интересное для меня - наконец-то выложены исходники загрузчика chameleon 2.

О, сколько нам открытий чудных…

Все лежит тут:

загрузчик и исходники

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

загрузчик и исходники