SVN how to (svn для начинающих)

Краткий справочник svn (subversion)
Полную документацию на русском читайте здесь

svn checkout http://repository.url/svn/name — извлекаем файлы проекта из репозитория, сокращение: svn co;

svn update — получаем обновления из репозитория, сокращение: svn up;

svn update -r rev_num ./file_name — извлекаем ревизию файла с номером rev_num;

svn add ./file_name — добавляем файл в репозиторий (не важно текстовый или бинарный);

svn rename ./old_file_name ./new_file_name — переименовываем файл в репозитории;

svn remove ./file_name — удаляем файл/директорию из репозитория;

svn status — просматриваем локально измененные файлы, сокращение: svn st;

Read the rest of this entry »

Оптимизация работы с MySQL

Ни для кого не секрет, что работа с базой данных занимает большую часть работы практически любого сайта. И именно работа с БД чаще всего является узким местом веб-приложений.
В этой статье хотелось бы дать практические советы использования MySQL.
Сразу оговорюсь:

  • данная статья написана про MySQL, хотя общие вещи скорее всего справедливы для любой СУБД.
  • все написанное в статье является моей личной точкой зрения, и не является истиной в последней инстанции.
  • советы не претендуют на новизну и являются результатом обобщения прочтенной литературы и личного опыта.
  • в рамках данной статьи я не буду касаться вопросов конфигурирования MySQL.

Проблемы при использовании MySQL можно разделить на следующие три группы(в порядке значимости):

  1. Неиспользование или неправильное использование индексов.
  2. Неправильная структура БД.
  3. Неправильные \ неоптимальные SQL запросы. Read the rest of this entry »

Архитектура Google

Каждый хоть раз слышал о Google благодаря их всеобъемлющему, “умному” и быстрому поисковому сервису, но ни для кого не секрет, что они не ограничиваются только им. Их платформа для построения масштабируемых приложений позволяет выпускать множество удивительно конкурентноспособных интернет-приложений, работающих на уровне всего Интернета вцелом. Они ставят перед собой цель постоянно строить все более и более производительную и масштабируемую архитектуру для поддержки своих продуктов. Как же им это удается?

Источники информации

Эта запись является переводом с английского, автор оригинальной версии - Todd Hoff. Оригинал написан приблизительно в середине 2007 года, но по-моему до сих пор очень даже актуально.

Далее следует перечисление источников информации из оригинала:

Архитектура Flickr

Flickr является мировым лидером среди сайтов размещения фотографий. Перед Flickr стоит впечатляющая задача, они должны контролировать обширное море ежесекундно обновляющегося контента, непрерывно пополняющиеся легионы пользователей, постоянный поток новых предоставляемых пользователям возможностей, а делается все это при постоянной поддержке отличной производительности. Как же они это делают?

Источники информации

Этот пост является переводом статьи от Todd’а Hoff’а.  Далее привожу источники информации из оригинальной статьи:

Платформа

  • PHP
  • MySQL
  • Сегментирование (прим.: разбиение системы на части, обслуживающие каждая свою группу пользователей; называть можно было по-разному, но давайте остановимся на этом варианте перевода слова “Shards”)
  • Memcached для кэширования
  • Squid в качестве обратной-прокси для HTML и изображений
  • Linux (RedHat)
  • Smarty в роли шаблонизатора
  • Perl
  • PEAR для парсинга e-mail и XML
  • ImageMagick для обработки изображений
  • Java для узлового сервиса
  • Apache
  • SystemImager для развертывания систем
  • Ganglia для мониторинга распределенных систем
  • Subcon хранит важные системные конфигурационные файлы в SVN-репозитории для легкого развертывания на машины в кластере.
  • Cvsup для распространения и обновления коллекций файлов по сети Read the rest of this entry »

Javascript in Ten Minutes

Basic Types

var intValue = 1;
var floatValue = 3.0;
var stringValue = "This is a string\n";
var sqString = 'This is also a string';

Javascript is a dynamically typed language. Variables are declared with the keyword var. Common simple types are supported.

Arrays

var emptyList = [];
var homogenousList = [1, 2, 3];
var heterogenousList = ["one", 2, 3.0];

Javascript has built-in collection objects. The Array object is a dynamically typed sequence of Javascript values. They are created with the bracket notation [] or with the new operator on the Array object (e.g. new Array(5)).
Read the rest of this entry »

jQuery Cheet Sheet

See more…..
Read the rest of this entry »

Cheat Sheet Round-Up: Ajax, CSS, LaTeX, Ruby…

Actionscript

Read the rest of this entry »

Как заставить Firefox “кушать” меньше памяти

  1. Открываем about:config
    Это настройки Firefox. Открываем и начинаем править. Создать новый параметр — по правому клику. Изменить существующий — двойным кликом. В общем, разберетесь.
  2. Параметр browser.cache.memory.capacity
    Сколько отводить памяти (в килобайтах) на кэш Firefox. По умолчанию 50000. Я выставил себе 10000 для эксперимента.
  3. Параметр browser.cache.disk.capacity
    Сколько места на диске (в килобайтах) отводить под кэш Firefox. Советуют ставить 5000, если RAM до 512 мегов и 15000, если больше. Я поставил себе 10000 на первое время.
  4. Параметр config.trim_on_minimize
    Очень полезная штука. Если его выставить в true, то Firefox при каждом сворачивании будет высвобождать RAM. Например, занимал 140 мегов, вы его свернули — он стал занимать всего 10 мегов оперативки. Этот параметр исходно не существует. Его надо создать. Внимание: тип должен быть boolean, часто юзеры спешат и делают его string, тогда ничего не сработает.
  5. Параметр network.prefetch-next
    Firefox начинает загружать страницы, помеченные как rel=prefetch, если этот параметр true. Выставить его в false, если не хотите, чтобы Firefox грузил и кэшировал еще не открытые страницы заранее.
  6. Параметр browser.sessionhistory.max_total_viewers
    Определяет, как много страниц хранится в Back/Forward. Я выставил себе три.

Важно: чтобы изменения вступили в силу, надо перезагрузить Firefox (закрыть все окна).