Перенос svn-репозитария в git

Если у вас есть репозиторий svn, но вы познали все прелести git и не хотите терять историю правок, то эта статья для вас ;) Первым этапом будет получение всех авторов, которые коммитили в svn. Для гита нужен дополнительно email коммитера. #!/usr/bin/env bash authors=$(svn log -q | grep -e '^r' | awk 'BEGIN { FS = "|" } ; { print $2 }' | sort | uniq) for author in ${authors}; do echo "${author} = ${author} <email>"; done Сохраняем вывод в какой-нибудь файл (/home/user/svn-authors.

Читать далее

Непрерывная интеграция: jenkins + yii + git

Услышав шумиху про некую систему интеграционного тестирования hudson, который переименовали в jenkins, я захотел узнать что это и как это можно использовать. Для чего собственно он нужен? В кратце: он вытягивает последнюю версию из git/svn-репозитория и выполняет определённые действия (тестирует, выкладывает на другой сервер, делает отчёты). Всё это происходит автоматически: можно задать время, когда будет выполнятся задания. Можно почитать про пример использования jenkins. Задача такая: Выполнение unit тестов для yii с отображением покрытия кода

Читать далее

Правильная отдача заголовков при технических работах на сайте

Есть ситуация: проводятся какие-то технические работы на сайте и нужно сайт правильно закрыть. Это нужно чтобы поисковики знали, что сайт не доступен, а не добавляли страницы в индекс или помечали страницы как удалённые. server { listen 80 default; server_name _; root /var/www/default/www; charset utf-8; error_page 404 403 =503 /503.html; location = /503.html { add_header Retry-After "Sun, 27 Feb 2011 23:59:59"; } } Строка error_page 404 403 =503 /503.html означает, что перенаправляем все запросы с ошибками 404 и 403 на файл 503.

Читать далее

Ubuntu 11.04 alpha 2. Asus EeePC 1000H. Не работает wifi RaLink 2790 (RT2860)

Нашёл как исправить баг с глючащим wifi в моём нетбуке Asus EeePC 1000H. Карточка RaLink 2790 (RT2860). Нетбук подключался к wifi, получал ip-адрес по DHCP, но ничего не работало. Потом разрывалось соединение и заново подключалось с тем же печальным эффектом. Решение подсмотрел тут. Комманда lspci -vv выдала 01:00.0 Network controller: RaLink RT2860 Subsystem: RaLink Device 2790 Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast &gt;TAbort- &lt;TAbort- &lt;MAbort- &gt;SERR- &lt;PERR- INTx- Latency: 0, Cache Line Size: 32 bytes Interrupt: pin A routed to IRQ 19 Region 0: Memory at fbef0000 (32-bit, non-prefetchable) [size=64K] Capabilities: &lt;access denied&gt; Kernel driver in use: rt2800pci Kernel modules: rt2860sta, rt2800pci Нужно отключить модуль rt2800pci и использовать модуль rt2860.

Читать далее

Yii: поведения (behaviors)

Поведения в yii позволяют применять некоторые методы к уже существующему объекту из другого класса. Для чего могут понадобиться поведения? Рассмотрим “жизненный” пример. Нужно получить какие-то данные по залогиненному пользователю. Можно, конечно, использовать что-то вроде: User::model()->findByPk(Yii::app()->user->id); А можно использовать поведения и добавить метод в Yii::app()->user protected/components/WebUser.php class WebUser extends CBehavior { public function getData() { if ($this->getOwner()->id) { return User::model()->findByPk($this->getOwner()->id); } else { return FALSE; } } } Добавляем в конфиг protected/config/main.

Читать далее

Проект в utf8, mysql-база в cp1251

Бывает так, что исходники проекта в utf8, а данные в базе хранятся в cp1251. Чтобы MySQL сам занимался переводом в другую кодировку, но после коннекта выполнить команды: $db->query('SET NAMES cp1251'); $db->query('SET CHARACTER SET utf8');

Читать далее

Голосовое напоминание в Ubuntu Gnu/Linux

Сидя за компом забываешь кое-что сделать, например, выключить плиту. В линуксе это можно реализовать так: echo "нужная комманда" | at 07:00 Примеры: Сказать голосом через 10 минут, что нужно выключить плиту: $ echo "espeak -v ru 'Выключи плиту'" | at `date -d '+10 minute' +%H:%M` Пора выходить: $ echo "espeak -v ru 'Пока выходить'" | at 20:00 Весело получается ;)

Читать далее

3G интернет в Ubuntu

Хочу показать насколько просто настраивать 3G интернет в Ubuntu. Имеется huawei E1550 от МТС и Ubuntu 10.10. Хочу обратить внимание, что это всё работает “из коробки”. Всё, интернет подключен ;)

Читать далее

Расширение для Google Chrome: local database storage

Продолжаем осваивать плагинописание для браузеров на основе chromium и ,соответственно, для google chrome. Текущая тема: научиться использовать local database storage. Local database storage - это база данных, использумая из javascript. Представляет она собой SQLite внутри. Синтаксис привычный для SQL баз. Я буду использовать базу для запоминания всех полученных цитат. Логически все действия можно разделить на 4 операции: Открытие базы и получение коннекта к ней Создание таблицы Запись в таблицу Чтение из таблицы Открытие базы и получение коннекта

Читать далее