IT-Expert
  IT-Expert / Веблог / Записи за ферваль 2007
Авторизация
Логин:
Пароль:


 
Поиск по записям:

Ключевые слова:
Записей в блоге
 за 2015 год
 за 2014 год
 за 2013 год
 за 2012 год
 за 2011 год

     за 2010 год

       за 2009 год
       за 2008 год
       за 2007 год
       за 2006 год
       за 2005 год
      RSS лента Лента новостей IT-Expert 
      Лента подкастов IT-Expert IT-Expert audiopodcasts

      Behaviour driven programming или переворот в сознании программера

      23:21, 16 ферваля 2007 ( Web Development Ruby Rails )

      BDD - behaviour driven programming, по-нашему "поведенческое программирование", основанное на мысли о том, что делает это, кому это наужно, и для чего делать это. В основу bdd заложено tdd test driven development (не слыхали? тогда бегом на wiki, восполнять пробелы в знаниях).

       

      Все эти dd приводят вас в ужас? Попробую объяснить человеческим языком. Раньше ведь как было? Напишешь бывало, код, напишешь еще, расширяешь функционал, расширяешь, даже не задаваясь вопросом нужен ли он, или только для "галочки", как и кто этим кодому будет пользоваться? А потом кода становится много и один код начинает цеплять кусочки работы другого кода, т.е. любое изменение одного объекта может отразиться на работе других объектов, а ошибки в конечном счете будут вылазить уже в самом неприятном месте - на десктопе конечного пользователя. До недавних пор ситуацию можно было бы назвать трагической, если бы не наличие тестов, которые кардинально меняют ситуацию. Особенно когда мы пишем тесты еще ДО НЕПОСРЕДСТВЕННОГО НАПИСАНИЯ КОДА. Как так? А вот так. Например, объект Box должен уметь добавлять некий элемент item в массив items. Все что нам нужно проверить, так это то, что элемент добавился корректно, т.е. что Box.add(item) будет добавлять в Box.items[] новый item.

      Пишем тест,

      @box=Box.new
      @box.add(item)
      assert_not_nil box.items

      Вот и всё. Если все работает, то assert_not_nil вернет true и наши тесты пройдут.

      Вот теперь мы можем написать непосредственно метод объекта Box:

      def add(item)
         @items<<item
      end 

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

      Это TDD, который нативно поддерживается Ruby и Rails. Но есть на свете умные люди, которые пошли еще дальше, и стали делать тесты всё более человечными, для чего был написан плагин RSpec и написание при помощи него тестов и кода стало называться behaviour driven programming. Основная мысль RSpec - создание спецификаций и выражение языком близким к человеческому того, чего ожидается от объекта, т.е. его поведение, а вокруг спецификации уже выстраиваются тесты и сам код.

      Замечательный туториал для RSpec for Rails: 

      http://blog.davidchelimsky.net/articles/2006/11/06/view-spec-tutorial 

      Внимание, правильный url для установки плагина RSpec:

      svn://rubyforge.org/var/svn/rspec/tags/REL_0_7_5_1/rspec_on_rails/vendor/plugins/rspec_on_rails т.е.

      ruby script/plugin install svn://rubyforge.org/var/svn/rspec/tags/REL_0_7_5_1/rspec_on_rails/vendor/plugins/rspec_on_rails

      Да, вот такая вот мэйнструя в программировании вообще и для Rails в частности. 

       

      Ну вот и закончен еще один проект

      09:24, 16 ферваля 2007 ( Web Development )

      http://www.arena-hr.com.ua

      Простой и легкий дизайн в стиле Web 2.0,

      Фичи: база вакансий, база резюме, CMS с tiny_mce и  picbrowser, подписка на получение новых вакансий, вакансии автоматически рассылаются при публикации. Подписка с подтверджением, отписка по ссылке в письме. 

      Для трекинга проекта впервые использовался Basecamp, от чего и пропёрся. Хорошая штучка. Если платить ежемесячную абонплату.

       

      Окончательно решилась проблема с часами в VMWare на AMD 64 Dual Core

      11:49, 15 ферваля 2007 ( Virtual Machines )

      Оказалось, что проблема присуща именно этой платформе, решается, внимание,

      УСТАНОВКОЙ ДРАЙВЕРА ПРОЦЕССОРА AMD как в хостовой, так и в гостевой системах. 

      Также, на всякий случай, установил AMD Dual-Core Optimizer который по описанию точно имеет отношение к часам и частотам, на которых работает процессор.

       

      В общем, так проблема и решилась :) 

      Вот про это же в ixbt:

      http://www.ixbt.com/news/all/index.shtml?06/40/84 

       

      Верстка HTML форм

      19:14, 12 ферваля 2007 ( Web Development )

      По мотивам заметки с xhtml.ru (кстати, очень качественный ресурс)  о форматировании формы без таблиц
      Все было замечательно до тех пор пока среди контролзов формы не попадались радио кнопки, чекбоксы и иже с ними, т.е. input теги.

      Короче, дабы не быть голословным, просто скажу, в css работает вот это:

      input[type='text']{

         color:red;

      Кому оно надо - тот поймет :) 

       

      updated: Автообнаружение прокси. ИМХО, самый правильный способ настройки прокси на клиенте

      13:33, 12 ферваля 2007 ( Administration Education )

      Опять же, как просветил всезнающий камрад brj, настраивать прокси на клиентах можно по-разному. И вот самый лучший, IMHO, cпособ автообнаружения.

      Далее привожу copy-paste из http://www.freeproxy.ru/ru/free_proxy/faq/wpad.htm 


      WPAD - это Web Proxy Auto-Discovery Protocol. Цель WPAD - в автоматическом обнаружении PAC URL (PAC - это Proxy Auto Config, файл на JavaScript). Для этого браузер использует DNS, DHCP и Service Location Protocol (SLP). WPAD позволяет клиентам автоматически определять настройки proxy сервера без участия пользователя.
      Какие браузеры поддерживают WPAD?

      Web Proxy Auto-Discovery Protocol поддерживается далеко не всеми браузерами. С ним может работать только Internet Explorer версии 5 и выше.
      Как работает WPAD?

      Если у вас включена настройка "автоматическое определение настроек", то при подключении к Internet браузер попытается найти сервер wpad.<имя-вашего-домена>. Если оно не обнаружено, то браузер будет добавлять "wpad" ко всем именам доменов уровнем выше (вплоть до 3-го уровня). Например, если клиент находится в домене a.b.microsoft.com, то Internet Explorer будет искать сервера:
      wpad.a.b.microsoft.com
      wpad.b.microsoft.com
      wpad.microsoft.com
      Если один из серверов найден, то браузер в корневом каталоге будет пытаться обнаружить файл wpad.dat . Если этот файл существует, то он будет использован в качестве скрипта при подключении к Internet (PAC-файл).
      Как настроить WPAD?

      1. Создайте стандартный файл Proxy Auto-Config (PAC).
      2. Сохраните этот файл в корневом каталоге вашего web-сервера (из вашего домена) под именем wpad.dat
      При необходимости вы можете использовать HTTP редирект, и сохранить этот файл где-либо еще:
      Redirect /wpad.dat http://other.server.com/proxy.pac
      3. Убедитесь, что этот файл Вы можете открыть в браузере по адресу:
      http://www.<имя-вашего-домена>/wpad.dat , например:
      http://www.web.server.ru/wpad.dat
      4. Добавьте следующую строку в файл mime.types на вашем сервере (если у вас на сервере есть уже такая строка для pac файлов, добавьте к ней "dat"):
      application/x-ns-proxy-autoconfig dat
      после чего перегрузите ваш web-сервер, чтобы это заработало
      (вы можете попробовать пропустить этот этап)
      5. Создайте запись DNS на вашем сервере, которая позволит распознавать имя wpad.<имя-вашего-домена> в IP-адрес вашего web-сервера (дополнительное имя web-сервера, alias)
      Или же вы можете использовать файл hosts вашего компьютера, для создания связи:
      wpad.your.domain.name
      6. В Internet Explorer 5, меню "Tools" ("Сервис"), "Internet Options" ("Свойства обозревателя"), "Connections" ("Подключение"), "Settings" or "LAN Settings" ("Настройка сети" или "Настройка локальной сети"), установите только "Use Automatic Configuration Script" ("Использовать сценарий автоматической настройки") и пропишите там адрес, где находится ваш файл wpad.dat, например:
      http://wpad.your.domain.name/wpad.dat
      Убедитесь, что все работает с использованием вашего скрипта (файла wpad.dat). Не переходите к следующему пункту до тех пор, пока не убедитесь, что все функционирует корректно...
      7. Теперь вернитесь к экрану настройки конфигурации proxy, описанному в шаге 6, и отключите все флажки за исключением "Automatically Detect Settings" ("Автоматическое определение настроек").
      Если этот флажок был включен, то выключите его, перегрузите браузер, и снова включите.
      Теперь перегрузите Internet Explorer... все должно работать.
       

      UPDATE: 

      Читаем про грабли: 

      http://www.sysoev.ru/web/wpad.html 

       

      Web 2.0

      18:16, 8 ферваля 2007 ( Daily thoughts )
      Видео потрясающе. Рекомендуется смотреть лицам, понимающим английский.

      Link via brj

       

      Vista joke

      14:36, 8 ферваля 2007 ( Humor )
        

      Открыл для себя Mozilla Calendar

      01:03, 8 ферваля 2007 ( Mindmaps )

      http://www.mozilla.org/projects/calendar/


      Отлично, а я как раз искал инструмент для работы с гугль календарем и с basecamp календарем проекта. Имеет привычный интерфейс Outlook, позволяет работать с календарем и с задачами. 

      А, еще есть плагины. 

       

      (updated) VMWare сервер, контроллер домена и проблемы с синхронизацией по времени

      17:02, 2 ферваля 2007 ( Administration Virtual Machines )

      Имеется: VMWare сервер 1.0.1 на базе Athlon 64 Dual Core 3800+, в нем устрановлен контроллер домена, виртуальный сервер терминалов и FreeBSD роутер.

      Началось все со странно работающей синхронизации времени на клиентах, очевидно, что время на клиентских машинах и на контроллере домена не совпадало, что в принципе, является ситуацией неординарной, т.к. для корректного функционирования kerberos5 протокола аутентификации между сервером и клиентами требовалось корректное (читай одинаковое) время. А разница во времени была, и очень немаленькая. А рассинхронизация времени на клиенте с контроллером домена влекла за собой последствия весьма неожиданые (сетевые принтеры не печатали, в терминалах вообще было вообще что-то невообразимое, политики применялись через раз). И вот захожу я на контроллер домена, и, о ужас, время идет БЫСТРЕЕ чем надо, т.е. буквально, секундная стрелка наворачивала круги как электросчетчик при включенном сварочном аппарате.

      Windows cannot find the machine account, The clocks on the client and server machines are skewed. .
       

      Вот такая печальная история. VMWare рекоммендует много workaround, есть целые дискуссии на форумах и описание проблемы в целом pdf на сайте производителя.  Гугль дает по поиску много страниц. Лично у меня есть подозрение на power saving options в биосе и на работу dual core в vmware.

      UPDATE: 

      Проблема решилась. Заходим в BIOS и ставим технологию Cool'n'Quiet в disable. 

      UPDATE2:

      Не ставим виртуальным машинами ДВА ПРОЦЕССОРА. Только по одному. 

       
      страницы: 1
       2 
      3
      © Максим Прокопов 2005-2016 О сервере