Category Archives: Administration
Хостинг на amazon aws
Наконец-то переехал на amazon aws (ec2 micro instance)! Первый год обещают бесплатно, потом — недорого (1,2 цента в час): http://aws.amazon.com/ec2/pricing/. Вот что дают за эти деньги: http://aws.amazon.com/free/ Подробное пошаговое описание «для чайников», как оформить хостинг и даже как поставить php, mysql и т. д.: http://habrahabr.ru/post/135713/ (http://habrahabr.ru/post/62362/ — старая статья на ту же тему и менее …
Как удалить ssh fingerprint в windows 7
В windows есть замечательная штука — реестр:). В ветке HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\SshHostKeys лежат все сохранённые отпечатки. Удаляем оттуда нужный — и система всё забыла:)
Realtime-профилирование проекта от Instagram
Measurements: счетчики и таймеры Дабы следить за всем, что происходить внутри, надо как-то мониторить всю активность. Обычно это два типа активности: какие-то количества (counters, регистраций в секунду, например) и какие-то интервалы времени (timers, сколько по времени занимает лайкнуть винтажное фото, например). Но как быть, когда у тебя не одна машина на балконе, а пара десятков …
Запуск команды от имени другого пользователя в shell
1 |
sudo su [username] [whatever] |
Боремся с Clickjacking
«Clickjacking — относительно новый и не очень широко известный тип атак на веб-сайты. Его суть в том, что пользователь, совершая клик на специально сформированной странице злоумышленника, на самом деле кликает по ссылке на совершенно другом сайте. Это может быть использовано как для относительно безобидных накруток голосований (например, ретвитов или лайков), так и более разрушительных вещей, …
PHP Fatal error: Exception thrown without a stack frame in Unknown on line 0
Отличная ошибка, на которую обычно просто «забивают», т. к. не понятно, где и что искать. А ошибка вызвана тем, что в кастомном обработчике исключений происходит исключение, после чего php прерывает процесс с таким замечательным и информативным сообщением об ошибке. В моём случае это было своё расширение для класса DateTime
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
public function __construct( $Time = 'now', DateTimeZone $Timezone = null ) { // PHP 5.3.3 имеет этот баг: // @link https://bugs.php.net/bug.php?id=52063 // поэтому пишем странное: if ( ! empty( $Timezone ) ) { parent::__construct( $Time, $Timezone ); } else { parent::__construct( $Time ); } // ещё раз вызываем явно setTimezone, чтобы обойти багу с timestamp - @link http://www.php.net/manual/en/datetime.construct.php#97724 if ( empty( $Timezone ) ) { $this->setTimezone( new DateTimeZone( 'Europe/Moscow' ) ); } } |
Если не написать тот странный …
Бесплатный хостинг с Django
https://www.alwaysdata.com/plans/shared/ Языки: PHP, Python, Ruby, Perl, Java, Lua, OCaml, Erlang; фреймворки: Джанго, Рельсы и symfony (PHP). Сам не пробовал, но слышал. Минусы — под код дают целых 10 Мб дискового пространства и гигабайт трафика в месяц.
Символическая ссылка в Windows
В Windows 7 в командной строке
1 |
mklink /J "D:\Games\steamapps" "C:\Program Files (x86)\Steam\steamapps" |
Кстати так можно играть в игры через steam, если мало места на диске C:\ ;).
Логирование js-ошибок на сервере
Подсмотрел у разработчиков Yandex простое как пень логирование ошибок клиентской части на сервер:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
function logError( Message, Url, Line ) { new Image().src = '/monitoring.php?msg=' + encodeUriComponent( Message ) + '&url=' + encodeUriComponent( Url ) + '&line=' + Line; } window.onerror = function ( Message, Url, Line ) { logError( Message, Url, Line ); }; try { // ... } catch ( e ) { logError( e ); } |
Ещё ссылка про логирование ошибок через google analytics — http://blog.gospodarets.com/track_javascript_angularjs_and_jquery_errors_with_google_analytics/ (у меня несколько иная реализация, но идея примерно та же).
Конвертирование проекта из SVN в Git
В fedora linux:
1 2 3 4 5 6 7 8 9 10 11 |
$ sudo yum install git-svn $ cd ~/git-svn-repo $ git svn clone http://[url]/main/trunk/[source] $ git config svn.authorsfile ~/users $ git ~/git-svn-repo ~/git-repo $ cd ~/git-repo $ git remote set-url --push origin [name]@[site]:[repo] // gitorious@git.uncc:mosfm/mos-fm-site.git $ git push origin master |
После этого в ~/git-repo будет «чистый» git-репозиторий. Ссылки: http://www.johnclarkemills.com/2011/01/01/migrate-from-svn-to-git-with-history/ http://gitready.com/beginner/2009/02/04/converting-from-svn.html http://redlinesoftware.com/blog/2008/2/24/converting-subversion-repositories-to-git http://stackoverflow.com/questions/79165/how-to-migrate-svn-with-history-to-a-new-git-repository http://www.jonmaddox.com/2008/03/05/cleanly-migrate-your-subversion-repository-to-a-git-repository/ http://stackoverflow.com/questions/7784951/how-to-begin-committing-via-git-to-bitbucket-not-seeing-changes http://lists.debian.org/debian-devel/2011/07/msg00522.html http://git.or.cz/course/svn.html Чтобы слить несколько свн-репозиториев в один, можно воспользоваться советом про subtree merge — http://stackoverflow.com/questions/1425892/how-do-you-merge-two-git-repositories