суббота, 25 августа 2012 г.

Как я устанавливал phpUnit для работы с Yii-фреймворком под WAMP на Windows XP

Начитавшись в умных книжках о пользе тестирования, решил посмотреть на практике, что же это такое. Под PHP очень популярен phpUnit, который позволяет выполнять как модульное, так и функциональное тестирование ПО. Ну а так как я недавно занялся изучением Yii-фреймворка, то заодно решил посмтреть, как этот phpUnit будет работать из-под Yii.. В общем, выкачал исходники phpUnit версии 3.6.12 с гитхаба, настроил в phpUnit.bat путь для php.exe, в php.ini добавил путь к каталога phpUnit в параметр include_path. Запускаю батник phpUnit.bat - получаю кучу сообщений об отсутствии тех или иных php-файлов. Посмотрел в исходниках: действительно, файлы подключаются, а сами они отсутствуют. Загуглил - оказывается, сам phpUnit имеет модульную структуру, и различные модули нужно дополнительно скачивать и помещать в разные каталоги внутрь базового каталога phpUnit. Накачал 8 дополнительных модулей, и после их распаковки в нужные места, а также правки некоторых исходных файлов (некоторые файлы подключались по 2 раза), phpUnit худо-бедно, вроде бы, стал запускаться.

пятница, 27 апреля 2012 г.

Чтение технической литературы


Некоторое время назад заметил, что практически перестал читать книги по всяким IT-вещам. А это не есть хорошо, так как умные книги несут свет в нашу темную жизнь )  То есть, получилось так, что, когда только начал интересоваться компом и всем, что с ним связано, находил какие-то книжки технические и читал их. В то время это были чаще бумажные издания (дома даже что-то лежит по Assembler, Turbo Pascal, Delphi). Даже, помню, регулярно читал журнал "Мир ПК" в нашей местной технической библиотеке. Мда...

Вот. А потом со временем вся эта оффлайновая деятельность как-то сошла на нет. С появлением доступа в Интернет переключился на электронные учебники. Книг, конечно, в Сети очень много. Всяких и разных. Пытался читать их. Но как-то с экрана монитора читать не очень интересно, что ли. Не так, как бумажные книги, во всяком случае. Но все равно что-то там такое читал. Потом появился в моей жизни Хабр ), и на чтение электронных книг времени уже не оставалось. В общем, перестал читать книги вообще. И только вот недавно задумался о том, как это плохо.

Все-таки, в книгах всякие вопросы рассматриваются более глубоко, как правило. В них часто описываются различные фундаментальные вещи, которые редко разжевывают на технических форумах. В общем, решил начать читать снова. Главное в таких случаях - поставить себе цель читать хотя бы несколько страниц в день. То есть, найти в течение дня время для того, чтобы прочитать пару страниц очередной книги. Это не так уж и сложно, как кажется. Ну и конечно, когда книг вокруг очень много, и прочитать хочется сразу все, нужно бороться с соблазном читать одновременно несколько книг ) То есть, книги лучше читать последовательно: прочитал одну - переходи к другой. Лично мое мнение.

В общем, вывод такой: читать техническую литературу - это к добру )




суббота, 31 декабря 2011 г.

С Новым 2012 годом!

Друзья! Вот и подходит к концу 2011 год. В этом году, возможно, не все у нас получалось так, как нам бы хотелось. Что-то мы успели сделать, а что-то так и осталось незавершенным.
Наступает новый 2012 год - год Дракона. Хочется пожелать всем вам, чтобы в новом году вам сопутствовала удача, пожелать вам крепкого здоровья и успехов во всех ваших благих начинаниях. С Новым 2012 годом!

вторник, 20 декабря 2011 г.

Задача о движущихся точках и её решение на языке Haskell

В блогах на сайте free-lance.ru не так давно один человек разместил задачу, условие которой в чуть облагороженном (мной :) виде звучит следующим образом:
===
Имеется N вершин, между ними есть ребра (длину ребер мы задаем сами целым числом). По ребрам ездят точки, которые могут ехать в обе стороны. При нахождении двух точек в одной вершине происходит столкновение. Соответственно, если точки едут по одному ребру навстречу друг другу, тоже произойдет столкновение. Движение точек задано списком вершин, через которые они проходят. Скорости точек равны единице. При
достижении конечной вершины точка исчезает. По заданной конфигурации сети и точек
определить, будет ли столкновение.

===
Попробуем написать решение этой задачи на Haskell.

вторник, 6 декабря 2011 г.

Задача о составлении математических выражений на Хаскеле

В ЖЖ Романа Душкина не так давно был проведен конкурс на самое хорошее решение следующей задачи:
==
Даны числа 1, 5, 6 и 7. При помощи произвольного числа арифметических операций и
скобок необходимо составить такое математическое выражение из этих чисел, чтобы его
значение было равным 21. Данные числа можно использовать в выражении только по одному разу. Числа нельзя «склеивать» друг с другом (то есть из 1 и 5 получить 15).
==
Так как на конкурс я опоздал, да и решение у меня получилось наверняка не особо приятное :), опубликую его тут. Итак, в качестве языка выбираем Haskell.

пятница, 2 декабря 2011 г.

Старый советский фильм "Коммунист"

Недавно пересмотрел старый советский фильм "Коммунист", вышедший в 1957 году. Помню, что в детстве смотрел этот фильм несколько раз. Лет мне тогда было мало, и кульминационную сцену фильма, в которой убивают главного героя - коммуниста Василия Губанова - я вообще смотрел с закрытыми глазами.

Ну так вот. Пересмотрел этот фильм на днях. Смотрится на одном дыхании. Евгений Урбанский был действительно великим актером. Жаль, что он трагически погиб в достаточно молодом возрасте.

понедельник, 14 ноября 2011 г.

Интересное об отступах в Haskell

Недавно тут меня в комментах один человек спрашивал на тему ошибки, связанной с неправильными отступами в Haskell. Загуглив на эту тему, нашел кое-что интересное. Haskell нормально проглатывает символы табуляции в исходном коде, но интерпретирует их как пробельные строки длиной 8 символов. Так как у меня в редакторе выставлен размер "таба" в 4 пробельных символа, то это дает некоторые интересные эффекты.

Рассмотрим следующий пример бестолкового кода:

f x y =
    let g = 
        x + 1 
    in g + y

Если отступы внутри тела функции f были получены применением символов табуляции, никакого сообщения об ошибке синтаксиса мы не увидим. Хотя должны были бы, так как строка "x + 1" должна быть сдвинута минимум на 1 символ вправо относительно "g" в предыдущей строке кода. Но так как символы табуляции Хаскелем разворачиваются в строки
пробелов длины 8, у нас "x+1" "уедет" значительно правее, и исходник будет обработан корректно.

Если же отступы в том же исходном тексте были честно получены при помощи пробельных символов, то при попытке его запуска мы получим сообщение "possibly incorrect indentation".

То есть, визуально одинаковый исходный код (при определенных настройках редактора) может быть и ошибочным, и нет. В любом случае, следует быть аккуратным и осторожным :)