Хлебопечка
С тех пор как в семье появился этот домашний зверёк мы совсем перестали покупать хлеб в магазине.
Зато теперь мы закупаем муку всевозможных видов — пшеничную, ржаную, рисовую, разрыхлители, дрожжи, мак и т.д. и т.п.
Достаточно загрузить в хлебопечку все необходимые ингредиенты в правильном порядке и в правильных пропорциях и на выходе получается вкусная горячая бухaнка.
Выпекание занимает чуть больше трёх часов. Оказывается, для хлеба важным является порядок загрузки ингредиентов — важно, сначала залить воду, затем положить соль и другие ингредиенты, затем засыпать муку и в уже самом конце на муку положить дрожжи. Если дрожжи положить в воду — это их убъёт и ничего не получится. Именно так я загубил свою первую буханку. Кстати, сухие дрожжи лучше покупать в маленьких пакетиках - в больших пакетиках они почемуто работают хуже.
Ещё важно соблюдать правильные пропорции продуктов - стоит немного положить больше воды или дрожжей и хлеб осядет но если положить больше муки то хлеб получится недостаточно мягким и клёклым. Для лучшего результата желательно на кухне иметь электронные весы.
Но зато, если все условия соблюдены идеально, на выходе получается вот такая изумительная буханка:
Приятного аппетита!
Почему Git лучше Subversion
Несколько вещей которые мне нравятся у Git в сравнении с Subversion:
1. в Git нет дурацких папочек .svn в каждой директории проекта. Одна папка .git лежит в корне и все!
2. папки можно безбоязненно переименовывать - ведь в них больше нет папочек .svn (см. п. 1);
3. ignore лежит в корне проекта - это удобно;
4. каждый локальный репозиторий одновременно содержит и локальную версию проекта;
5. если квакнется удаленный репозиторий - локальный все равно содержит историю всех изменений;
6. можно использовать несколько удаленных репозиториев;
7. просматривать историю изменений при помощи .git реально быстро - она вся хранится локально;
8. Я так и не научился при доступе через SSH в Subversion обходиться без пароля - в Git правилом хорошего тона является использование ключей шифрования;
9. Git создал Линус Торвальдс — а это дорогого стоит;
Web 2.0 fuck off!
Я не люблю Web 2.0.
Хоть по работе я и связан с созданием всяких там Web 2.0 штучек, мое искреннее убеждение, что Web 2.0 хуже по определению чем классический Web. И под Web 2.0 я подразумеваю переход к облачным вычислениям, когда вы запускаете приложение из облака и надеетесь, что оно будет работать как надо. Тоже относится к разным системам шаринга файлов или документов, различные централизованные онлайн чаты.
Я не люблю livejournal - это глупость хостить свои блоги на стороннем сервисе, по мне так безопасней иметь собственный блог на собственном хостинге. Желательно на домашнем сервере.
К сожалению, история показывает что плохое всегда заменяется очень плохим - серебрянные монеты вытеснили золотые, медные вытеснили серебрянные, появились бумажные деньги обеспеченные золотом, потом они стали необеспеченные золотом, сейчас бумажные деньги вытесняются пластиковыми картами, которые, идее вообще сводят идею денег до виртуальных фантиков. Аналогичная судьба ждет и Web - он все больше виртуализируется.
Ребята, что вы будете делать когда интернет сломается? Сегодняшнее падение Skype по всему миру лишний раз подтверждает идею, что Web 2.0 - sux.
Флешки больше не нужны! или: Использование Git для синхронизации папок
Допустим, у вас есть какой нибудь сервер с доступом по SSH. На сервере стоит git. Мы хотим создать некую папку на удаленном сервере, содержимое которой должно синхронизироваться с локальной папкой на домашнем копьютере а также с локальной папкой на другом компьютере, например на работе.
Начнем с сервера (на нем Ubuntu).
1. если git не стоит установим его:
> sudo apt-get install git-core
> git config --global user.name "Uzumaki Naruto" #расскажем немного о себе
> git config --global user.email naruto@uzumaki.co.jp #свой емайл
2. создадим репозиторий
> cd /path/to/the/folder #переходи в папку которую будем шарить
> git init #создаем репозиторий
> git config receive.denyCurrentBranch ignore #это чтобы можно было заливать изменения
3. создаем файл README и добавим его в наш новый репозиторий:
> touch README #создаем пустой файл
> git add README #добавляем его в репозиторий
> git commit -a -m"first commit" #фиксируем изменения
Репозиторий создан. Теперь переходим на наш домашний компьютер. Прежде чем соединяться с удаленным сервером нам нужно залить на удаленный сервер публичный ключ домашнего компьютера чтобы мы могли соединяться с ним без пароля.
> ssh-keygen -t rsa -C"naruto@homeaddress.ru" #создадим ключ если не создан
> cat ~/.ssh/id_rsa.pub | ssh user@remoteserver.com 'cat >> .ssh/authorized_keys' #закинем ключ на удаленный сервер
скачиваем наш репозиторий с удаленного сервера:
> git clone user@remoteserver:/path/to/the/folder
Поздравляю, репозиторий скачан, мы можем отредактировать файл README локально и закачать изменения в репозиторий:
> git status #смотрим что изменилось
> git commit -a -m "local chages" #фиксируем изменения
> git push origin master
Аналогично, можно создать репозиторий на другой машине, например на вашем рабочем компьютере. При этом чтобы скачать изменения на рабочий компьютер достаточно перейти в каталог с репозиторием и вызвать
> git pull #все изменения сделанные дома зальются на рабочий компьютер.
Теперь, если перейти на удаленный компьютер, где лежит оригинальная версия файлов можно заметить, что файловая система удаленного репозитория осталась без изменений, т.е. файл README как был пустой так и остался, вызываем волшебную команду:
> git reset --hard
Проверям, содержимое файла README теперь такое же как и на нашей домашней машине, как и на рабочей машине.
Таким образом, мы получили несколько репозиториев связанных между собой через один удаленный репозиторий. Причем, система полностью децентрализованна - потеря одного репозитория ничем нам не грозит, всегда можно восстановить удаленный репозиторий используя один из локальных, в отличии от, скажем, SVN.
Несколько замечаний.
1. для доступа к удаленному репозиторию по идее git не обязателено устанавливать на удаленной машине достаточно иметь к ней доступ по SSH - просто скопировать локально созданный репозиторий на удаленную машину, но в этом случае мы не сможем видеть изменения на удаленном сервере в виде живых файлов.
2. в примере используется SSH авторизация, если нужно чтобы к репозиторию обращалось несколько человек имеет смысл использовать gitosis см: https://help.ubuntu.com/community/Git