Сверим ваши часы
Краткая инструкция как настроить синхронизацию времени компьютера с сервером в Интернет по протоколу NTP.
Предполагается что компрьтер работает под Linux (я тестировал на centos)
1. инсталлируем пакет ntp
> yum install ntp
2. редактируем /etc/ntp.conf если есть такое желание NTP сервера нужно брать по возможности ближе к вашему реальному расположению список ntp-серверов можно взять здесь pool.ntp.org
3. ставим ntpd демона в автозапуск
> chkconfig ntpd on
4. запускаем демона
> /etc/init.d/ntpd start
Все, теперь можно не думать о секундах свысока...
Полезное свойство FireBug
Иногда бывают на некоторых сайтах формочки в которые пользователь вбивает некий текст, например сообщение другому пользователю. Вбивать сообщение можно долго, особенно если вбиваешь на неродном языке а реакция респондента важна, например, если это потенциальный заказчик.
Вбил сообщение, нажал кнопочку отправить и тут замечаешь внизу маленький чекбоксик, типа "я ознакомился с правилами пользования сайтом"...
Едрыть... его то мы забыли поставить... а страничка уже постится....
Естественно когда страничка запостилась на экране сообщение об ошибке и та же самая форма в которую мы с любовью вводили во уже последний час наше сообщение... Только пустая.... Едрыть....
Ни о какой любви уже не может быть и речи... нужно набивать все заново... С остервенением... Время - деньги.
Но у нас то есть firebug! Открываем вкладочку "сеть" находим нужный нам запрос (он самый первый и начинается со слова POST, если вкладка была неактивна, просто нужно ее активировать, нажать f5 и перепослать данные) Жмем на + и видим наши только что посланные данные, после чего их нужно только скопипастить обратно в форму.
Слава Firebug'у!
CSS Reset
Как известно разные браузеры имеют свои значения по умолчанию для своих элементов. Чтобы привести все элементы к общему знаменателю приходится все нюансы держать в голове и каждый новый проект начинать с того, что вставлять в css определения, нивелирующие разницу в поведении тех или иных тегов, а уж затем начинать творить. Иначе кроссбраузерная отладка удлиняется в разы.
Мартин Миранда нашел код который поможет свести к минимуму возможные различия в форматировании элементов по умолчанию.
Что то подобное есть и у меня, хотя этот код гораздо полнее.
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, font, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td {
margin: 0;
padding: 0;
border: 0;
outline: 0;
font-weight: inherit;
font-style: inherit;
font-size: 100%;
font-family: inherit;
vertical-align: baseline;
}
/* remember to define focus styles! */
:focus {
outline: 0;
}
body {
line-height: 1;
color: black;
background: white;
}
ol, ul {
list-style: none;
}
/* tables still need 'cellspacing="0"' in the markup */
table {
border-collapse: separate;
border-spacing: 0;
}
caption, th, td {
text-align: left;
font-weight: normal;
}
blockquote:before, blockquote:after,
q:before, q:after {
content: "";
}
blockquote, q {
quotes: "" "";
}
На мой взгляд, не хватает кой чего важного, например, корректировок для LI, UL но в целом идея достойная.
Как перенести SVN репозиторий с oDesk
Иногда встает задача переноса SVN репозитория с сервера на котором у вас нет ssh доступа. Возникнуть такая задача может у пользователей oDesk, Google Code, SourceForge и других площадок которые предоставляют SVN но не предоставляют ssh доступ.
Если ssh доступ есть то задача решается просто, например можно воспользоваться вот этими инструкциями. Однако что делать если ssh не доступен?
Решение нашел вот здесь. На помощь приходит утилита svnsync позволяющая синхронизировать два репозитория. Алгоритм получается следующий:
- создаем чистый репозиторий;
- синхронизируем его с удаленным при помощи svnsync;
- делаем дамп нового репозитория;
- заливаем дамп в новый репозиторий который и будет новым основным репозиторием.
Создаем временный репозиторий:
> svnadmin create temp_repo
Здесь и далее temp_repo - имя временного репозитория.
Создаем внутри директории hooks пустой исполняемый файл:
> echo '#!/bin/sh' > temp_repo/hooks/pre-revprop-change
> chmod +x temp_repo/hooks/pre-revprop-change
Теперь синхронизируем наши репозитории:
> svnsync init file://[full_path_to_repository]/temp_repo https://secure.odesk.com/svn/[odesk_s_reporsitory_name]
> svnsync sync file://[full_path_to_repository]/temp_repo
Дело сделано, теперь получаем дамп:
> svnadmin dump [full_path_to_repository]/temp_repo > repo_dump
Теперь в repo_dump мы имеем полный дамп удаленного репозитория который можно залить куда угодно.
Создадим новый репозиторий и зальем туда наш дамп:
> cd /path/to/new-repository-parent-directory
> svnadmin create repository-name
> svnadmin load repository-name < repository.dumpfile
Осталось переключить проект на новый репозиторий:
> svn switch --relocate oldurl newurl