воскресенье, июня 09, 2013

Clean Code Cheat Sheet

Наткнулся в дебрях интернета на шпаргалку по концепции "чистого кода", а именно коллекции best practices, шаблонов и анти-шаблонов описанных простым английским языком в одном месте.

Скажем спасибо автору и скачать шпаргалку можно тут: http://www.planetgeek.ch/2013/06/05/clean-code-cheat-sheet/#

воскресенье, марта 10, 2013

Бесполезный факт: крупнейшие держатели золота

Стал открытием факт, что индийские семьи являются крупнейшими потребителями и держателями золота в мире, им принадлежит 11% мирового запаса золота или более 20 000 тонн.

Пруфлинк: http://www.financialexpress.com/news/indians-hoard-20k-tonnes-gold-worth-record-1.16-trn/1037761

четверг, марта 07, 2013

Развертывание веб приложений с помощью GIT


Время от времени приходится сталкиваться с типовой и до боли банальной, но не тривиальной задачей, как же установить приложение на удаленный сервер или как организовать continues delivery.
Для решения этой задачи для ASP.NET приложений, пожалуй самый простой способ это использовать Web Deploy, но а в случае со скриптовыми языками, да еще запущенными на Linux среде открываться огромное пространство для пытливого ума.

Способ, который мне приглянулся, основан на использовании популярного в мире опенсурса GIT и является относительно простым.

Дано: есть виртуальная машина ec2 или любая Linux машина, далее по тексту "сервер".

Надо: организовать возможность обновлять приложение.

Делаем:

1. Нам понадобятся ssh ключи, по которым наша виртуальная машина будет аутентифицировать, желающих выполнить обновление приложения. Для этого генерируем SSH ключи, следуя инструкциям описанным на gihhub: https://help.github.com/articles/generating-ssh-keys


2. Чтоб добавить сгенерированные ключи, на "сервер" и выполняем команду:

cat ~/.ssh/id_rsa.pub | ssh -i ~/.ssh/your_pemfile.pem <YourUserName>@<Your_IP_Addr> "cat>> .ssh/authorized_keys"

Подробней о происходящем на этом шаге можно прочитать тут: http://rizloff.com/linux/ssh-login-without-password-use-authorized-keys

3. Создаем bare Git репозиторий:

$ cd ~
$ mkdir <YourApplication>.git && cd <YourApplication>.git
$ git init --bare

4. Coздаем папку, где будем размещать наш веб сайт:
$ mkdir /var/www/<YourApplication>

5. Создаем Post-Receive hook, который срабатывает после того как кто-то выполнил push в Git:
$ cd ~/<YourApplication>.git$ cat > hooks/post-receive#!/bin/shGIT_WORK_TREE=/var/www/<YourApplication> git checkout -f
$ chmod +x hooks/post-receive

6. Переключаем на рабочую станцию:

$ git remote add web ssh://<YourUserName>@<Your_IP_Addr>/home/<RemoteUserName>/<YourApplication>.git$ git push web +master:refs/heads/master

7. Теперь для того, чтобы обновить веб сайт на удаленной машине делаем:

$ git push web master

8. Для того, чтобы иметь возможность выполнять git push в несколько удаленных репозиториев одновременно редактируем .git/config локального репозитория:

[remote "all"]
url = https://github.com/YourGitAccount/ProjectDir.git
url = ssh://<YourUserName>@<Your_IP_Addr>/home/<RemoteUserName>/<YourApplication>.git

9. Профит:)

суббота, марта 02, 2013

Лимиты AWS по умолчанию

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

Однако, когда сталкиваешься вплотную, оказывается все же есть определенные лимиты о которых надо знать.

Рассмотрит сервисы Amazon AWS. Большенство лимитов о которых пойдет речь, можно снять, отправив запрос в поддержку. Однако информация о действующих лимитах разбросана по статьям FAQ разных сервисов и несколько теряется, если ее специально не искать.

Amazon EC2:

В рамках одного региона, на одном пользовательском аккаунте может быть создано:
* 10 On-Demand или Reserved Instances
* 100 Spot Instances
* Cluster GPU Quadruple Extra Large instances, High I/O Quadruple Extra Large, High Storage Eight Extra Large, and High Memory Cluster instances - может быть создано до 2 instances.

Elastic Load Balancers:

Всего по умолчанию может быть создано до 10 Load Balancers.

Amazon RDS DB:

* Всего по умолчанию может быть создано до 20 экземпляров SQL серверов.
* Количество серверов Oracle или MS SQL с лицензированием ("License Included") до 10 серверов. Если покупаете лицензию самостоятельно, то серверов может быть до 20.

Amazon ElastiCache Node Limits:

По умолчанию количество нодов не может привышать 20 экземпляров.

AWS CloudFormation:

Позволяет создавать до 20 стеков на регион.

AWS Elastic Beanstalk:

По умолчанию, позволяет создать до 25 приложений, хранить до 500 версий приложений.
Однако следует учитывать, что Beanstalk базируется на сервисах EC2, соотвественно это накладывает ограничение на количество виртуальных машин, которые могут быть запущены.
По умолчанию 20 машин на регион.

Если столкнулись с ограничениями по лимитам, то необходимо обратиться в поддержку Амазон и Вам в среднем в течении 5 рабочих дней по заявке увеличат лимиты.


четверг, мая 15, 2008

Кен Роквелл - Чак Норрис фотографии

* Камера Кена Роквелла оснащена теми же режимами, что и любая другая, только расшифровываются они иначе: P[erfect], Av[Awesome Priority, Tv[Totally Awesome Priority], M[ajestic]
* Кен Роквелл не занимается коррекцией цвета, он корректирует окружающий мир
* Иногда Кен Роквелл удаляет одну-две неудачных фото, другие люди называют это Пулитцеровской премией
* Кен Роквелл не настраивает глубину резкости, он меняет пространство-время
* Когда Кен Роквелл снимает пейзаж, он не ждет света - свет ждет его
* Кен Роквелл никогда не поворачивает свою камеру в портретное положение - он поворачивает Землю
* Однажды Кен Роквелл заказал “эльку” у Nikon… и вскоре получил заказ
* Кен Роквелл - единственный, кому удалось сфотографировать Иисуса. К несчастью, у Кена закончилась пленка - пришлось воспользоваться полотенцем
* Когда Кен Роквелл использует автобрекетинг, все три снимка занимают первое место, каждый в своей категории
* Когда Nikon и Canon разрабатываеют новые камеры, они отправляют их Кену на тестирование. Лучшая камера получает наклейку Nikon. Та, что похуже - Canon
* Однажды Кен Роквелл тестировал камеру, но даже наклейки Canon для нее было много. Так родился Pentax
* Кен Роквелл не пользуется вспышкой… после инцидента в Нагасаки
* Кену Роквеллу требовалось что-то, чем можно было бы занять начинающих фотографов. Так появились утки
* Кен Роквелл единственный, кто может снять ваш автопортрет
* Кен Роквелл не заставляет моделей раздеваться, когда снимает ню
* Однажды Кен Роквелл разработал зум-объектив. Получившаяся линза теперь известна как телескоп Хаббл
* Когда Кен Роквелл распаковывает новую карту памяти, на ней уже есть шедевры
* Снятые Кеном портреты настолько жизненны, что им приходится платить налоги
* На компьютере Кена Роквелла иконка “Корзина” залинкована на National Geographic
* Кен Роквелл произносит слово “мыльница” как “h-a-s-s-e-l-b-l-a-d”
* Когда Кен Роквелл перешел на цифру, National Geographic едва не разорился, потому что Кен перестал выбрасывать негативы
* На каждые десять снимков, сделанных Кеном, приходится одиннадцать шедевров
* Цифровые фотографии Кена состоят из нолей, единиц и двоек
* Кен Роквелл никогда не фокусируется - все объекты переходят в его зону резкости
* Роквелловские снимки настолько совершенны, что Adobe пришлось переделать под них Photoshop. Специальная версия содержит единственную кнопку - “Закрыть”
* Термин “штатив” был навеян силуэтом Кена
* У Кена Роквелла не бывает ужасных снимков - только недоступные пониманию
* Кен Роквелл - не Чак Норрис фотографии. Это Чак Норрис - Кен Роквелл боевых искусств
* Кен Роквелл никогда не начинает - он продолжает.