Sunday, February 15, 2009

Вернор Виндж. Пламя над бездной.

В романі автор пропонує дуже цікавий погляд на будову всесвіту. Він поділяється на зони - від центра до краю. В центрі - безодня, в якій розум неможливий. Чим ближче до краю, тим технологічнішими можуть бути цивілізації. В Краї, швидкість світла не є обмеженням. За краєм цивілізації стають Силами (я так і не зрозумів що це таке).

Розпочинається книга, тим, що представники людської цивілізації, десь в Краї, знайшли та розворушили якийсь архаїчний архів, і цим розбудили Зло, яке собі спокійно дрімало мільйони років. Корабель, в якому, як виявилось була протидія, встиг втекти і потрапив на планету в повільній зоні.

Надалі, однією з основних сюжетних ліній є опис цивілізації собакоподібних зграй, які населяють ту планету, де приземлився космічний корабель з утікачами. Ці собаки можуть бути розумними лише коли об'єднані в зграю. І вся зграя - це одна особистість.

Щоб активувати протидію Злу, споряджена експедиція. Пригоди та стосунки членів екіпажу: жінки, чоловіка, який певним чином пов'язаний із Силою, та двох розумних рослин на візках складають іншу сюжетну лінію.

І все це переплітається повідомленнями із груп новин пародійної всесвітньої мережі "мільйонів неправд".

Мені роман сподобався своєю незвичністю. Тепер собак шкода, як же їм, бідним "синглетам" живеться.

Monday, February 2, 2009

Герберт Уэллс. Машина времени.

Ця книга давно була в мене в readlist'і. Нарешті дійшли руки її прочитати. Перед тим як її завантажити, прочитав кілька дуже схвальних відгуків. І мабуть тому від книги очікував більше. Але прочитав із задоволенням, швидко. Перед сном і з ранку в метро.
Головною темою книги є питання соціальної нерівності, яке автор показав в незвичному ракурсі.

PS. Я думаю, що людству до 8000 року не дотягнути.

Sunday, February 1, 2009

Стивен Хокинг и Леонард Млодинов. Кратчайшая история времени.

Прочитав чергову книгу найвідомішого (принаймні для мене) фізика сучасності.

В цій книзі автор намагається, іще доступніше ніж в своїх попередніх книгах, пояснити будову всесвіту, з точки зору сучасної фізики.

І дійсно складні речі в книзі пояснені дуже доступно і з цікавими прикладами. Прочитав із великим задоволенням.

P.S. Але така хитрість автора зі мною не спрацювала. Все рівно нічого не розумію.

Thursday, October 30, 2008

Unit testing #2. NUnit constraint-based Asserts

Починаючи з версії 2.4 в NUnit реалізовано новий стиль assert'ів. Ця модель використовує один метод Assert.That(args) для всіх тверджень. Логіка виконання кожного твердження перенесена в другий параметр. Ось декілька прикладів:
Assert.That(10.0/3.0, Is.EqualTo(3.33).Within(0.01f));
Assert.That(2*2, Is.Not.EqualTo(5));
Assert.That(new object(), Is.Not.Null);
Assert.That(string.Empty, Is.Empty);
Assert.That("abc", Has.Length(3));
Assert.That(new string[] {"a", "b", "c"}, Is.All.Not.Null);
Також можна комбінувати constraints.
Assert.That(3, Is.LessThan( 5 ) | Is.GreaterThan( 10 ));
Assert.That("s", !Is.Null));
Для того щоб працювати з новим стилем потрібно використати:
using NUnit.Framework.SyntaxHelpers;
Цей стиль мені подобається більше ніж класичний.

Детальніше - на сторінці Constraint-Based Assert Model документації NUnit .

Wednesday, October 29, 2008

Unit testing #1


Я знову вирішив щось написати. Справа в тому, що я почав читати книгу "Pragmatic Unit Testing in C# with NUnit" by Andy Hunt and Dave Thomas with Matt Hargett. І ось, вночі, коли я прочитав перші сторінки, я подумав - "Круто, прочитав лише кілька сторінок, а вже виніс для себе чотири нових речі про які не знав раніше. А наступного дня, коли на роботі розказував, що книжка цікава, що я дізнався чотири нових штучки, ніяк не міг згадати, а про яку ж все-таки четверту річ я дізнався. От три пам'ятаю а четверту ні. Отже треба ці знання записувати. Тут їм і буде місце.



Тіп #1. "Ommit the
message string for reporting unless you really need to".

Ось класичний синтаксис Assert в NUnit:
Assert.AreEqual(expected, actual [, string message])
Автори рекомендують не включати текстовий рядок для пояснення тесту, крім випадків коли це дійсно необхідно. Краще коли ім'я тесту самостійно пояснює призначення самого тесту, коли використовуються доречні методи Assert'а, або тест розбивається на декілька методів, щоб залишатися сконцентрованими на конкретних тестових випадках.

Що ж в цій практиці революційного і чому вона нова для мене? Не знаю. Просто я чомусь часто писав ці текстові пояснення в NUnit Assert'ах. Мабуть це був вплив StyleCop, який змушує завжди писати пояснення для методу System.Diagnostics.Deиug.Assert. А тепер не буду, звісно крім випадків, коли це дійсно необхідно :).

Wednesday, July 2, 2008

Двоколісний друг

Нарешті купив мотик. Yamaha YBR 125. Або просто "йобр", чи "юбка". Уже встиг впасти :). Фотки потім.

Monday, June 2, 2008

Інвестиційний портфель

Натрапив на сайт Мой инвестиционный портфель, який дозволяє контролювати та аналізувати свої інвестиційні вклади. Я для таких цілей використовував spreadsheets в Google docs. Мушу визнати що користуватися новим ресурсом значно простіше.