С++. Шаблонная магия и нафиг это надо.

С шаблонами в С++ можно делать много интересных вещей. Например, можно писать такой код, в котором никто никогда не разберется, по крайней мере, без поллитры. При этом, что характерно, код будет на 100% корректным, соответствовать всевозможным coding conventions и вообще идеально подходить в качестве примера отличного кода для очередной умной книжки о программировании. Еще можно развлекаться – делаешь в коде небольшую ошибочку и наблюдаешь, как компилятор истерично выплевывает в консоль мегабайты ругательств, которые можно выдавать в качестве домашнего задания нерадивому коллеге, если Вы, конечно, садист и уверены, кто коллега этот не знает Вашего домашнего адреса.

А еще можно делать шаблонную магию. Например, кое-какие вычисления можно делать во время компиляции. Все уже видели, как считать числа Фибоначчи или факториал там. Еще можно вычислить логарифм.

Вычисляем

Что не так в TFS.

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

Сразу отмечу, что я в основном использовал в своей работе CVS и Subversion, а также немного потыкал палочкой VSS, чтобы убедиться, что он и правда мертв, посему некоторые приколы, которые я упоминаю, могут быть и не проблемами вовсе. Так, дело привычки.

Ну, обо всем по порядку.

Закон Мерфи

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

Не зря я тестирую даже “хелловорлды”, не зря.

Грабли

Кубунта встала. Без прыжков с бубном и воззваний к духам.

Потом пытался поставить LinuxMCE, но понял, что без подключения к сети оно вставать не умеет. А ближайшая сетевая розетка у меня пока не просто в другой комнате, а даже на другом этаже, посему направил я свои стопы в канцтовары в надежде прикупить патчкорд подлиннее. Охуемши от цен, вышел из храма Меркурия в обнимку с беспроводной USB карточкой и патч-кордом о 10 метрах длиной. Пытливый читатель может попытаться угадать, от цены на какой из этих предметов я охуел.

Но это все лирика, настоящая нирвана снизошла на меня когда я первым делом всунул свежеприобретенный USB ништяк в Убунту. Оно его зохавало, распознало и моментом WPA ключ испросило и, получив оный, вышло на просторы интернету, где, ни теряя ни секунды, нашло кучу обновлений. “Во дает”, сказали суровые сибирские мужики.

Лом я, правда, сувать туда не стал. Так как, похоже, я уже это сделал. Где-то на полпути в списке пакетов в aptitude на консоль полезли сообщения типа

ata3.0: port is slow to respond

“Вот тебе, бабушка, и юркни в дверь”, подумал я и, поминая всякими словами теорию вероятностей, стал компутер пытать пуще прежнего, а заодно пытать интернет на предмет заклинаний, способных избавить мой компутер от страшной порчи, наведенной на него неизвестно кем. Очень не хотелось тащиться на почту отправлять назад только что купленный винт на полтерабайта. В процессе пыток я выяснил, что в ведре Linux вроде как присутствует баг, который, как советский гопнег пионера, заставляет компутер материть свой собственный жесткий диск трехэажно и даже зависать. Заодно я выяснил, что баг этот вроде как не починен.

Перепробовав все известные мне заклинания (и применив парочку из ассортимента Маори), я выдохся. И на этой оптимистичной ноте вырвал из кишок компутера новенький Geforce 8400, ласково засунутый туда мной же накануне.

Оскопленный компутер, однако, бодро ожил и зашевелил всеми девайсами бодро и безо всяких признаков порчи. “Ага”, сказали суровые сибирские мужики, достали китайский калькулятор и принялись считать. Оказалось, что хитрожопые Невлет-Раскардовцы снабдили тот чудо компутер блоком питания мощностью аж в 240 ватт. Нехитрые подсчеты показали, что с ЖиФорсом, который, по разным данным, способен жрать до 71 ватта, мощности БП будет хватать впритык. В смысле, “маловато будет”.

В общем, придется мне делать downgrade. Жду теперь заказанный 7200GS (говорят, всего 19 ватт).

А как же Убунта?  А что ей сделается – с родной встроенной видимокартой работает так, что фуфайка заворачивается.

Мыкрософт. Не перестает удивлять.

Работало. Отлично работало. До сего дня отлично работала сеть. Беспроводная.

В одной комнате нотебяк А с Уистой (Г). К нему подключен принтер Е.

В другой комнате нотебяк Х с XP. К нему ничего не подключено. Связь между объектами Г и Х осуществляется посредством модулированных сверхвысокочастотных электромагнитных колебаний сдандарта IEEE 802.11g

Так вот, до сего дня нотебяк Х мог печатать на принтер Е, подключенный к А, работающим под управлением Г.

А сегодня что-то случилось. Г перестала пускать объект Х на свои шары. И даже не пингуется, сволочь!

Уже все перетрахнул.

Впрочем, будет продолжать выебываться – на А вместо Г встанет какая-нибудь Убунта.

Upd. Однако, M$ непосредственно тут оказались ни при чем. То есть, на них вина по умолчанию лежит несмываемая, но мои проблемы вызвал, внимание Norton Internet Security. Который мне подусунули вместе с нотебякой и который решил так изящно сдохнуть, сука! Видать, в нем тоже был фаервол. Который тоже сдох. Что интересно, снести это поделие стандартными средствами не удавалось, пришлось скачать с Симантека и установить (!) удалятор этого Нортона. Как они еще не разорились – не понимаю.

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

Игрушки

Вчера Скачал Kubuntu.

Сегодня достал из-под шкафа какой-то HP, вынул из него немного старого железа, засунул немного нового. Всунул донгл от беспроводной клавы и мыши. Еще LiveCD всунул, да.

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

Я фшоке.

Теперь накатываю на это безобразие LinuxMCE. Медиа-центр буду делать, однако!

(Чего это карлсон на GeForse 8400 GS так ноет? Мож оторвать его надо?)

Торренты рулят?

Вот, поставил качаться образ Kubuntu LiveCD.

Так не успел чай попить, как оно прилетело. 600 метров за 25 минут.

А когда-то было Фидо и модемы на 14400 :)

В код мне баги! (С)

Готовимся к релизу продукта.

Так получилось, что я присоединился к команде где-то на середине процесса разработки и сразу огнем и мечом пинками ввел практику юнит-тестирования кода.

Сейчас функциональный код завершен полностью, настало время тестерам оторваться. Что получается? Правильно, 99% найденных багов – в коде, который был написан до моего прихода, то есть не был покрыт юнит-тестами.

(Оставшийся процент багов относится к различиям в формулировке ТЗ и тем, что на самом деле имелось в виду).

10 visitors online now
10 guests, 0 members
Max visitors today: 13 at 11:14 am MST
This month: 13 at 02-02-2012 08:06 am MST
This year: 29 at 01-23-2012 02:50 am MST
All time: 45 at 02-23-2011 09:11 am MST