среда, 17 сентября 2008 г.

Pure virtual destructor

Как-то ускользнул от меня раньше этот момент. Оказывается, деструктор тоже может быть чисто виртуальным. В стандарте про это всего лишь строчка [12.4.7]. Похоже, сделано это, чтобы иметь возможность запретить инстанциирование в случае, когда в классе вообще отсутствуют виртуальные функции. В общем-то тоже самое, что и в случае чисто виртуальных функций, только у чисто виртуальных функций определение опционально, а у чисто виртуального деструктора оно обязательно.
Итак имеется базовый класс без виртуальных функций. Полиморфное использование отпадает. Чего тогда с этим делать? Единственное пришедшее в голову неэкзотическое применение - при создании классов, предназначенных для использования в качестве базовых при наследовании реализации (private-наследовании). Слишком накручено? Или у меня сегодня плохо с фантазией?

суббота, 28 июня 2008 г.

Метко

Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning.
Rick Cook, The Wizardry Compiled

Сегодняшняя цитата с Quotations page :-))

воскресенье, 8 июня 2008 г.

Пять инструментов. Ну, или почти 5

Ну что же, начинаю разгоняться на своём этапе эстафеты, схватив палочку, переданную мне Юрием Волковым.
  1. Не то, чтобы инструмент, но запускаю каждый день точно. Уже больше года в качестве основной операционки дома использую Ubuntu. Из других дистрибутивов смотрел Fedora и OpenSUSE, но что-то не понравилось. Хотя может быть стаботал эффект первого положительного впечатления. Единственное, что не очень нравится - качество Upgrage на новую версию. После обновления на 7.10 отвалилась сеть - было не очень приятно. Обновление на 8.04 тоже прошло не слишком гладко (всё ещё есть вещи не работающие как надо). Но при всём при этом, работая в Linux, чувствую себя гораздо свободнее, чем в Windows (операционка на работе и вторая операционка дома).
  2. На втором месте ожидаемо находится Firefox. Конечно же вместе со своими расширениями: Adblock Plus, Fire Gestures, Faviconize Tab, del.icio.us Bookmarks, Foxmarks, Secure Login, Permit Cookies, Uppity и ещё десятком других. Очень жду работы del.icio.us Bookmarks с Firefox 3 - жутко удобное средство. Без него даже не знаю, как бы я управлял своими более чем 400 закладками.
  3. Теперь средства разработки. Конечно же Visual Studio. Но обязательно в связке с Visual Assist.
    Перед написанием поста прикинул, какие инструменты хочу поместить в этот список из пяти вещей и понял, что не умещаюсь. Решил схитрить и указать в этом пункте ещё и замечательнейшее средство Visual Paradigm for UML - лучшая вещь для построения UML-диаграмм. Всё делается буквально в пару кликов мыши - минимальный путь между мыслью в голове и её реализацией на экране.
  4. Слушаю музыку почти всегда. Даже не знаю, есть что-нибудь лучше чем Amarok.
  5. FreeMind - кроссплатформенный инструмент для создания mind maps. Текущая стабильная версия - 0.8.1. Но очень советую использовать бету 0.9.0, обладающую заметно большей функциональностью. Важным преимуществом для меня является то, что практически все основные действия можно выполнять без использования мыши вообще.
Кончились у меня все пункты списка, но очень хочется упомянуть Emacs, имеющий все шансы попасть через некоторое время в описываемый перечень. Всего месяц назад я попробовал первый раз в нём работать - потрясающий расширяемый инструмент. Пускай идёт вне конкурса ;-)

Если кто из нижеперечисленных тут бывает, то с радостью передам эстафету дальше:

четверг, 5 июня 2008 г.

IBM Linux: The Kid

Очень стильный ролик. Причём достаточно старый. Странно, что раньше не попался

четверг, 24 апреля 2008 г.

Play to Win

Вчера присутствовал на презентации Асхата Уразбаева по Scrum. Обратил внимание на картинку, в общем-то не относящуюся напрямую к разработке. Скорее общепсихологического характера:


Очень часто результат давит и мешает добиться того, к чему стремишься. Неожиданно, но если залезть внутрь себя и разобраться в ощущениях, то окажется, что боишься не только провала, но и успеха... Даже смешно, что иногда сам подсознательно противишься вдруг получить то, чего так хочешь...

вторник, 8 апреля 2008 г.

Windows Vista source code

Не могу удержаться и не поместить у себя копию поста с Linux and Open Source Blog :-))

/*
TOP SECRET Microsoft(c) Project:Longhorn(TM) SP1
Estimated release date:2008
*/

#include "win95.h"
#include "win98.h"
#include "leopard.h"

char chew_up_some_ram[10000000];

void main () 
{
  while (!CRASHED) 
  {

    if (first_time_install) 
    {
      make_10_gigabyte_swapfile();
      do_nothing_loop();
      search_and_destroy(FIREFOX | OPENOFFICEORG | ANYTHING_GOOGLE);
      hang_system();
    }

    if (still_not_crashed) 
    {
      basically_run_windows_xp();
      do_nothing_loop();
    }
  }

  if (!DX10GPU()) 
  {
    set_graphics(aero, very_slow);
    set_mouse(reaction, sometimes);
  }

  // printf("Welcome to Windows 2000?);
  // printf("Welcome to Windows XP");
  printf("Welcome to Windows Vista");

  while (something) 
  {
    sleep(10);
    get_user_input();
    sleep(10);
    act_on_user_input();
    sleep(10);
    flicker_led_promisingly(hard_disk);
  }

  creat_general_protection_fault();
}

I'm back!

После заметного перерыва, в течение которого много чего полезного было сделано и много чего интересного произошло, я вернулся!!