четверг, 25 декабря 2014 г.

Скажем нет архивам

Читая главную страничку bootstrap-а, я всегда пропускал мимо глаз строки:

Install with Bower

You can also install and manage Bootstrap's Less, CSS, JavaScript, and fonts using Bower:
$ bower install bootstrap
и в каждый раз нажимал на кнопку "download bootstrap" скачивая архив, и распаковывая его в нужную папку.

   Но вот при очередном проекте я задумался, а не написать ли подобие pip но только для разных js библиотек и других необходимых компонентов. Уже запустил sublime, как в памяти мелькнули выше упомянутые строчки с сайта бутстрапа. Перейдя по ссылке,я в который раз убедился, что все уже написано до нас(

Так вот, Bower делает все то что я задумывал. А именно:  установка библиотек и фреймфорков с заранее подготовленного манифеста (что то похожее на requirements.txt в джанго) или одной командой и всех необходимых зависимостей.

Установка:

К большому сожалению, для установки Bower нужен нодж.
sudo apt-get install npm
Далее устанавливаем Bower:
sudo npm install -g bower
У меня сразу не завелось, а выдавало ошибку:
'usr/bin/env: node: No such file or directory'
для ее устранения нужно сделать симлинк:
sudo ln -s /usr/bin/nodejs /usr/bin/node
Теперь к делу. Для установки пакетов нужно выполнить :
bower install <package>
Например:
bower install jquery
Также вы можете указать версию:
bower install <package>#<version>
У нас создастся папка bower_components/, в которой будет папка jquery, а в ней самая свежая версия библиотеки(или та которую указали).

Для того что бы на сервере вручную не устанавливать нужные пакеты, можно создать манифест:
bower init
Введите всю нужную информацию, и в конце вы получите файл brower.json.
После, на другом компьютере или сервере, выполняем команду:
bower install 
и получаем все нужные компоненты, которые заданы в bower.json.
Если вы захотите в проект добавить еще библиотек, которые нужно добавить в манифест, то к команде установки добавляем опцию --save
bower install <package> --save 
bower install backbone --save
Также сам bower имеет массу настроек. Например, мне не понравилось что файлы по умолчанию сохраняются в папку bower_components и придется ее добавлять в STATICFILES_DIRS в сетингах дажнго. Поэтому создаем в корне проекта файл .bowerrc и в нем прописываем
{
   "directory": "core/static/"
}
Все, пакеты устанавливают в static. Остальные настройки можете почитать в официальной документации.

На последок все нужные команды при разработке:
bower search 
bower list
bower update
bower update <package>
bower uninstall <package>
Также можете попробовать использовать батарейку django-bower. Но мне она показалась не нужным велосипедом, так как bower без нее и так все умеет.

Ссылки:
http://bower.io/
http://habrahabr.ru/post/183094/
https://github.com/nvbn/django-bower

среда, 17 декабря 2014 г.

Сочетание HTTP и TCP/IP

      HTTP(англ. HyperText Transfer Protocol — «протокол передачи гипертекста») - это протокол уровня приложений, расположенный поверх протокола TCP, и применяемый для взаимодействий между клиентами и серверами в Web. Протокол HTTP определяет простое взаимодействие вида запрос-ответ, которое называется "Web-транзакцией". Каждое HTTP-взаимодействие состоит из запроса, посылаемого от клиента серверу, и следующего за ним ответа от сервера клиенту. HTTP-запрос состоит из нескольких частей: метода, указывающего на действие (GET, HEAD, PUT и POST), унифицированного указателя информационного ре­сурса (Uniform Resource Locator, URL), который идентифицирует имя запрашивае­мой информации, а также другой информации, такой как тип требуемого докумен­та, аутентификация и разрешение на оплату.

    Когда сервер получает запрос, он выполняет его синтаксический разбор и реа­лизует действия, указанные методом. Затем сервер отправляет клиенту ответ, со­стоящий из строки состояния, указывающей, успешным ли оказался запрос, мета-информации о типе возвращаемого объекта и запрашиваемой информации, а также файла или результатов, сгенерированных серверным приложением (т.е. CGI-приложением). Главными этапами, из которых состоит HTTP-взаимодействие "зап­рос-ответ", являются:
·     Установка соответствия между именем сервера и IP-адресом.
·     Установка TCP-соединения с сервером.
·     Передача запроса (URL + метод + другая информация).
·     Получение ответа (HTML-текста, изображения либо другой информации).
·     Закрытие TCP/IP-соединения (в случае HTTP 1.1 соединение остается открытым для получения вложенных изображений).

Это копия статьи - 

Протоколы tcp/ip. "Белые" и "серые" ip адресса

Что такое IP - протокол (IP)?

     IP (сокращение Internet Protocol, дословно - межсетевой протокол) 
определяет технический формат пакетов и схему адресации для компьютеров которые связаны по сети. Большинство сетей комбинирует IP с высоко-одноуровневым протоколом, который называется TCP (Transmission Control Protocol), который устанавливает виртуальное соединение между назначением и источником.

     IP объединяет сегменты сети в единую сеть, обеспечивая доставку пакетов данных между любыми узлами сети через произвольное число промежуточных узлов (маршрутизаторов).IP не гарантирует надёжной доставки пакета до адресата — в частности, пакеты могут прийти не в том порядке, в котором были отправлены, про дублироваться (приходят две копии одного пакета), оказаться повреждёнными (обычно повреждённые пакеты уничтожаются) или не прийти вовсе. Гарантию безошибочной доставки пакетов дают некоторые протоколы более высокого уровня — например, вышеупомянутый TCP, которые используют IP в качестве транспорта.

     Механизм TCP предоставляет поток данных с предварительной установкой соединения, осуществляет повторный запрос данных в случае потери данных и устраняет дублирование при получении двух копий одного пакета, гарантируя тем самым, в отличие от UDP, целостность передаваемых данных и уведомление отправителя о результатах передачи.

Стек протоколов TCP/IP включает в себя четыре уровня:




В настоящие время мы имеем 2 версии - IPv4 и IPv6.

     Каждому узлу IPv4-сети, например компьютеру, маршрутизатору или интернет-принтеру, присваивается IPv4-адрес, который используется для идентификации этого узла при взаимодействии с другими узлами в той же сети. В принципе, любой компьютер с публичным IPv4-адресом может отправлять данные любому другому компьютеру с IPv4-адресом.

  Разница между IPv4 и IPv6.


    IP это двоичное число, которое может храниться в виде текст, что бы люди смогли его читать. Для примера 32-битное число (IPv4) записывается в десятичной системе в виде 4 цифр разделенных точкой(1.160.10.240).

IPv6 адрес есть 128-битнымt, IP адрес записывается в  шестнадцатеричный системе исчисления и разделен блоками по 4 цифры ( 3ffe:1900:4545:3:200:f8ff:fe21:67c).

 Разница между "Белыми" и "серыми" ip адресами.


    Все IP-адреса протокола IPv4 делятся на локальные это "серые" и публичные/глобальные/внешние это "белые".

    Публичные "белые" адреса используются в сети Интернет. Публичным IP-адресом называется IP-адрес, который используется для выхода в Интернет. Доступ к устройству с публичным IP-адресом можно получить из любой точки глобальной сети, т.к. публичные (глобальные) IP-адреса маршрутизируются в Интернете, в отличие от частных (серых) IP-адресов.



Подробнее:
  1. http://www.webopedia.com/DidYouKnow/Internet/ipv6_ipv4_difference.html
  2. http://zyxel.ru/kb/2730
  3. https://ru.wikipedia.org/wiki/%D0%98%D1%81%D1%87%D0%B5%D1%80%D0%BF%D0%B0%D0%BD%D0%B8%D0%B5_IPv4-%D0%B0%D0%B4%D1%80%D0%B5%D1%81%D0%BE%D0%B2
  4. https://ru.wikipedia.org/wiki/IPv6
Также советую прочитать:
http://pws49.awardspace.com/internet/menasce/2.htm