суббота, 30 августа 2014 г.

Смена доменного имени для блога на Wordpress

Для обкатки изменений в блоге, таких как смена оформления, установка и настройка модулей, желательно сначала проводить тестирование на staging версии блога и только потом переносить изменения на live сайт. В случае с wordpress недостаточно скопировать исходники и базу. Нужно еще сделать замены в новой базе с учетом специфики wordpress.

Уже несколько раз подряд я пользуюсь инструментом Search-Replace-DB и все проходит нормально.

Конвертирование репозитария из mercurial в git

Относительно недавно довелось переводить один из внутренних проектов с mercurial на git. На всякий случай я делал миграцию на копии репозитария, чего и вам советую во избежание всяких неожиданностей.

Итак, сначала делаем копию репозитария (я добавляю опцию --noupdate, чтобы скопировать только метаданные)

$ hg clone --noupdate project.orig project.hg

Затем нам нужно установить расширение hg-git и подключить его в ~/.hgrc. В дебиан для этого нужно установить пакет mercurial-git

$ sudo aptitude install mercurial-git
$ cat >> ~/.hgrc <<_EOF_
[extensions]
hgext.bookmarks =
hgext.git =
hgext.convert =
_EOF_

Инициализируем пустой git репозитарий (тут нужно обратить внимание на опцию --bare, иначе hg push закончится ошибкой "прервано: git remote error: refs/heads/master failed to update"

$ mkdir project.git
$ git init --bare project.git/.git
Initialized empty Git repository in /home/andrey/tmp/hg-to-git/project.git/.git/

Если нужно скопировать информацию о ветках, кроме default, то нужно сначала добавить соответствующие bookmarks в репозитарии mercurial

$ cd project.hg
$ hg bookmark -r default master
$ hg bookmark -r feature1 feature_1
...

Когда все будет готово настает время выполнить push из репозитария project.hg в project.git

$ cd project.hg
$ hg push ../project.git
проталкиваем в ../project.git/
creating and sending data

На большом репозитарии этот процесс может занять много времени и потребовать достаточный объем оперативной памяти. Если процесс завершился без ошибок, то пора проверить историю комитов и соответствие бранчей в project.git

$ cd project.git
$ git log -n 1
commit 2c765e70ad96c2bd2bc6cc0b545038f4faa42c25
Author: John Doe <john.doe@example.com>
Date:   Sun Apr 20 12:27:44 2014 +0300

    Latest fixes for reviews.

$ git branch
* master
  feature_1

Теперь все готово и можно работать с репозиторием через git.

пятница, 22 августа 2014 г.

Сегодня начинается LVEE 2014

LVEE
Заканчиваю паковать пожитки и через пару часов выдвигаюсь на LVEE 2014. В этом году еду в первый раз и надеюсь прохладная погода не испортит впечатление от конференции.

четверг, 7 августа 2014 г.

Как в Git просмотреть файл целиком из определенной ревизии

Начинаю осваивать Git в качестве альтернативы Mercurial - потребовалось просмотреть файл целиком за определенную ревизию. В Mercurial для этого есть "cat", т.е.

$ hg cat -r 2fad6072a89d path/to/file

в git для этого есть команда "show"

$ git show -r 269c3b6ca51a:path/to/file

среда, 16 июля 2014 г.

Дизайнеров нужно обязать пользоваться своими творениями

Человек, разработавший дизайн корпуса CoolerMaster Elite 241 - USB 3, если ты читаешь это, то попробуй как-нибудь на досуге поставить железо в свое творение. Возможно в этом случае ты поймешь какую хрень ты создал и тебе станет стыдно.

Зачем было уменьшать расстояние между блоком питания и отсеком для накопителей 5.25" до нескольких сантиметров?! Как в таком проеме отключать/подключать кабели? А что там будет с вентиляцией?


P.S. Открыл для себя внешний вид разъема "Front panel USB3". Как оказалось этот разъем обратно несовместим с материнкой где поддерживается только USB2. Хотя судя по pinout могли бы и сделать legacy ответвление наподобие звука (Azalia & AC97).

суббота, 5 июля 2014 г.

Привычное поведение функциональных клавиш на Logitech Comfort Keyboard K290

При очередной закупке железа довелось столкнуться с клавиатурами Logitech Comfort Keyboard K290. Отличные клавиатуры, что в принципе ожидаемо для продукции Logitech, если бы не одно НО. Я не сразу сообразил, почему у меня не получается войти в меню выбора загрузочных устройств (F8 или F12 на большинстве BIOS). После внимательного изучения клавиатуры стало ясно что теперь по-умолчанию функциональные клавиши действуют как мультимедийные, а для привычного поведения нужно нажимать комбинацию FN+F12. Это поведение программируется и раньше по-умолчанию было наоборот.

Печалит что подобное нововведение не упоминается на странице описания продукта, а указано лишь в прилагавшейся инструкции. Для решения проблемы Logitech предлагает установить утилиту Setpoint, чтобы перепрограммировать поведение клавиш. Поразительно, но standalone инсталятор для одной архитектуры (x86 или amd64) занимает примерно 80M! Что они туда напихали для меня остается загадкой, ну да ладно... Однако после смены настроек они сохраняются только до выключения компьютера. Т.е. нет сохранения настроек в самой клавиатуре (помнится настройки клавиатур Compaq с "Erase Ease" сохранялось в самой клавиатуре).

Если под Windows производитель худо-бедно позаботился о пользователях, то под Linux все сложнее. Я нашел проект k290-fnctl на GitHub'е который предназначен для программирования поведения функциональных клавиш. Чтобы собрать утилиту нужно проделать следующее:

$ sudo apt-get install g++ libusb-1.0-0-dev
$ git clone https://github.com/milgner/k290-fnkeyctl
$ cd k290-fnkeyctl
$ g++ -std=c++11  k290_fnkeyctl.cpp -lusb-1.0 -o k290_fnkeyctl
$ sudo install -o root -g root -m 0755 ./k290_fnkeyctl /usr/local/sbin
$ sudo install -o root -g root -m 0644 ./99-k290-config.rules /etc/udev/rules.d
$ sudo udevadm control --reload-rules
$ sudo udevadm trigger --subsystem-match=input

Примечательно, что размер полученного бинарника всего 59K. После этого все начинает работать и в Linux.

среда, 2 июля 2014 г.

Что может быть проще времени

Госдума во втором и третьем чтениях приняла закон о переходе РФ на зимнее время, таким образом, в октябре россияне переведут стрелки часов на час назад.

За принятие документа высказались 442 депутата, один — против. Закон предусматривает, что с 26 октября в 02.00 в большинстве субъектов РФ часы будут переведены на час назад, и в дальнейшем сезонного перевода стрелок осуществляться не будет.

Пользователям Windows XP скорее всего придется руками править реестр, чтобы внести обновления в настройки таймзон.

Интересно как теперь поведет себя Беларусь. В принципе мне нравится идея вернуться на зимнее (UTC+02:00) время, которое для Беларуси является географическим.