четверг, 20 ноября 2008 г.

ann // netbeans 6.5

Вышел новая версия. Что нового, можно прочитать здесь.

Честно признаться, хоть компания Sun и придумала java, что-то она не смогла привлечь большого числа крупных сторонииков к платформе netbeans, как это сделала IBM к eclipse.

Архитектура, видимо, неудачная? Или маркетинг?

среда, 19 ноября 2008 г.

Touch typing // Dvorak layout

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

Читая заметку Джэффа We Are Typists First, Programmers Second, решил переключится на Дворак раскладку.

Этим убиваю двух зайцев:
1) изучение продуктивной раскладки (если не обманывают Фил и Густаво)
2) отучиваю себя смотреть на клавиатуру при печати (смысла в этом все равно нет, поскольку надписи на qwerty клавиатуре все равно не совпадают).

p.s.
Хочу еще и клавиатуру как у Scott-а :-)

пятница, 5 сентября 2008 г.

ANN // Sun VirtualBox 2.0.0 released

Вчера, компания Sun анонсировала выход новой версии VirtualBox.

Из новшеств, отмеченных мной:
- поддержка 64-битных guest-ов, правда только на 64-х битных хостах
- Переход UI на QT 4 (стало выглядеть очень симпатично)

Полный список изменений здесь.

На вопрос, зачем все это?
Отвечу так - это менше чем VMware (меньше качать из интернета), бесплатнее (ну конечно!!! :) ), ну а по функциональности ничем ей не уступает.

четверг, 28 августа 2008 г.

Vacation // Photo

Большие фотографии лежат здесь

Vacation photos // Vityaz bay

Собственно сама бухта и поселок Витязь

Обитатели бухты и ее окресностей

Вид из бухты Астафъева

Бухта Теляковского

Маяк на мысе Гамова

P.S.

Права на фото принадлежат Андрею Лобанову.

среда, 27 августа 2008 г.

m // back online

Вернулся из отпуска.
Провел его с семьей и друзьями в б. Витязь (Росиия, Приморский край, Хасанский район).
Дорога ужастна для моей Honda CR-V (для "люфтованных" сурфов, саффарей и лендкрузеров видимо большой разници нет), но увиденные места стоили того.
На днях размещу фотографии.

среда, 13 августа 2008 г.

Отладка Segmentation fault с GDB

На кроссплатформенном проекте ковырялся с ошибкой возникающей на Linux при завершении системы, а именно Segmentation fault.

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

Просто интересен сам сценарий отладки в GDB.

Симптом проблемы такой -> стартуем систему -> ну и собственно закрываем ее по Ctrl+C.

[snikulov@snikulov ~/SVN/trunk/dist]$ ./stream_hub
[hub.3086730960, 15:17:29]: System $Rev: 1120 $ started...
[hub.3086730960, 15:17:30]: MetaInfo receiver started on port 1235
[hub.3063008144, 15:17:30]: RTPReceiver started on URL: udp://@?localport=1234
[hub.3086730960, 15:17:30]: Started HTTP service on port: 9000

<Ctrl>+<C>
Segmentation fault
[snikulov@snikulov ~/SVN/trunk/dist]$

На Win32 она тоже есть, но как-то незаметно - только в консоли отладчика ругнется, что access violation по такому-то адресу, а пользователю ничего не скажет. Не было бы Linux варианта и хай бы с ним :) Но нет ведь - видно, значит надо фиксать.

Запускаем дебажную версию под этим чудом человеческой мысли

[snikulov@snikulov ~/SVN/trunk/dist]$ gdb ./stream_hub
GNU gdb Red Hat Linux (6.5-16.el5rh)
Copyright (C) 2006 Free Software Foundation, Inc.
(gdb) run
Starting program: /home/snikulov/SVN/trunk/dist/stream_hub
[Thread debugging using libthread_db enabled]
[New Thread -1208686896 (LWP 5381)]
[hub.3086280400, 15:35:34]: System $Rev: 1120 $ started...
[New Thread -1208906864 (LWP 5384)]
[New Thread -1221592176 (LWP 5385)]
[New Thread -1232082032 (LWP 5386)]
[hub.3086280400, 15:35:34]: MetaInfo receiver started on port 1235
[hub.3062885264, 15:35:34]: RTPReceiver thread started on URL: udp://@?localport=1234
[New Thread -1242571888 (LWP 5389)]
[New Thread -1253061744 (LWP 5390)]
[New Thread -1264477296 (LWP 5391)]
[New Thread -1274967152 (LWP 5392)]
[New Thread -1285457008 (LWP 5393)]
[New Thread -1295946864 (LWP 5394)]
[New Thread -1306436720 (LWP 5395)]
[New Thread -1316926576 (LWP 5396)]
[New Thread -1327416432 (LWP 5397)]
[hub.3086280400, 15:35:35]: Started HTTP service on port: 9000

<Ctrl>+<C>

Program received signal SIGINT, Interrupt.
[Switching to Thread -1208906864 (LWP 5384)]
0x00b80402 in __kernel_vsyscall ()
(gdb) bt
#0 0x00b80402 in __kernel_vsyscall ()
#1 0x00370ec9 in pthread_sigmask () from /lib/libpthread.so.0
#2 0x00cc7ee9 in pq_block_sigpipe () from /usr/lib/libpq.so.4
#3 0x00cc80a6 in pqsecure_write () from /usr/lib/libpq.so.4
#4 0x00cc0856 in pqReadData () from /usr/lib/libpq.so.4

<куча всего еще, но явно не то>
(gdb) cont
Continuing.
<и ничего - висим>

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

К счастью есть решение для этого случая в отмене GDB хэндлера

(gdb) handle SIGINT pass print nostop
SIGINT is used by the debugger.
Are you sure you want to change it? (y or n) y
Signal Stop Print Pass to program Description
SIGINT No Yes Yes Interrupt

<запускаем поновой>
(gdb) run
The program being debugged has been started already.
Start it from the beginning? (y or n) y
Starting program: /home/snikulov/SVN/trunk/dist/stream_hub
[Thread debugging using libthread_db enabled]
[New Thread -1208318256 (LWP 5459)]
[hub.3086649040, 15:49:28]: System $Rev: 1120 $ started...
[New Thread -1208538224 (LWP 5460)]
[New Thread -1221592176 (LWP 5461)]
[New Thread -1232082032 (LWP 5462)]
[hub.3086649040, 15:49:28]: MetaInfo receiver started on port 1235
[hub.3062885264, 15:49:28]: RTPReceiver thread started on URL: udp://@?localport=1234
[New Thread -1242571888 (LWP 5465)]
[New Thread -1253987440 (LWP 5466)]
[New Thread -1264477296 (LWP 5467)]
[New Thread -1274967152 (LWP 5468)]
[New Thread -1285457008 (LWP 5469)]
[New Thread -1295946864 (LWP 5470)]
[New Thread -1306436720 (LWP 5471)]
[New Thread -1316926576 (LWP 5472)]
[New Thread -1327416432 (LWP 5473)]
[hub.3086649040, 15:49:28]: Started HTTP service on port: 9000

Program received signal SIGINT, Interrupt.
[Thread -1327416432 (LWP 5473) exited]
[Thread -1253987440 (LWP 5466) exited]
[Thread -1274967152 (LWP 5468) exited]
[Thread -1285457008 (LWP 5469) exited]
[Thread -1295946864 (LWP 5470) exited]
[Thread -1306436720 (LWP 5471) exited]
[Thread -1316926576 (LWP 5472) exited]
[Thread -1264477296 (LWP 5467) exited]

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1221592176 (LWP 5461)]
0x01b67a6c in memcpy () from /lib/libc.so.6

<это уже наш случай - делаем бэктрэйс>

(gdb) bt
#0 0x01b67a6c in memcpy () from /lib/libc.so.6
#1 0x0017a31b in sws_getConstVec () from /usr/local/lib/libswscale.so.0
#2 0x000e1000 in ?? ()
#3 0x00000000 in ?? ()
(gdb)

Отлично, FFMPEG libswscale используется в объекте-скэйлере изображений. Смотрим код - да, там нет проверки на нулевой указатель. Добавляем его - проблема ушла.

Кроме того, полезная команда

(gdb) info handle

скажет вам что будет делать GDB на различные сигналы.

пятница, 1 августа 2008 г.

Microsoft has become a Platinum sponsor of the Apache Software Foundation.

Судя по аннонсу от DevSource, Microsoft решил поддержать ASF как деньгами, так и ресурсами (интерестно, может они еще проспонсируют разработку Linux?).

И все таки, мне новость кажеться позитивной. Хотя и допускаю, что у софтверного гиганта свои планы (не самые чистосердечные).

Возможно, корпорация заинтерсована в интеграции/продвижении своих продуктов (?). Так же вероятна и попытка привлеч разработчиков на платформу .NET (сейчас львиная доля проектов ASF - Java).

Ждем продолжения :)

А тем временем...

BTW, пока я ковыряюсь с интрументами для блогов...
25 июля выложили subversion 1.5.1 с исправлениями и в merge tracking в том числе.
Странно, только, что нет бинарного релиза для win32. Нужно порекомендовать проекту использовать Cmake или Scons ;)

WLW и Blogger

Написав предидущее сообщение ночью, обнаружил на следующий день, что WLW плохо дружит с Blogger. Посему предидущая статья о merge tracking фичи в Subversion 1.5 ушла в драфты, на время изучения инструментария power blogger-ов. Скажем просто - наступило время RTFM. Приношу свои ивинения :)

Осталось проверить Blogger for MS Word и Adobe Contribute.

Может кто посоветует удобный и надежный редактор блогов?
Буду премного благодарен.

суббота, 19 июля 2008 г.

О вреде сверхурочной работы.

Читая подборку blog-ов обнаружил русскоязычные мысли на тему персонального управления временем.

Конечно, разговор как бы об отдыхе ;-). Видимо, у нас в России все так - опущены предложения по спискам задач, их приоритетам, о том что в бизнесе IT все постоянно изменяется и учиться необходимо постоянно (см. книгу "Pragmatic Programmer" Tip 1-2), чтобы иметь этот самый
приятный, пусть и иногда короткий, отдых на деьги, заработанные на продуктивном и высокооплачиваемом труде!
Зато есть о пользе чая (общению за чашечкой с коллегами, чем зачастую злоупотребляют в госорганах ;-)) и о комфортных условиях труда (личный кабинет, секретарша, которая приготовит чай и все такое... :-) ).

Я, кстати, тоже "за" - не подумайте чего плохого.

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

Так о чем это я? О вреде сверхурочности...

Просто, за несколько дней до русскоязычной статьи, я прочитал англоязычную - The Case Against Overtime.

Прочтите. Дело не только в отдыхе.

Удачи.

суббота, 12 июля 2008 г.

Ann // SOCI v3.0 released

Как-то, совершенно незаметно, выпустили новую версию библиотеки Simple Oracle Call Interface - 3.0.0.

Судя по анонсу в списке рассылки новая версия тестировалась на работу только с Oracle, PostgreSQL и MySQL. Поддержку sqlite и odbc похоже отложили до лучших времен (когда будет время или пока не появиться доброволец в мэйнтейнеры ;-) ). Ну да вообщем, 3 основных бэкэнда тоже неплохо.

Рекомендую попробовать и высказать свои комментарии (мне тоже это предстоит, но чуть позже).

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

CMake 2.6 // ошибка в FindBoost?

В процессе работы над проектом решил попробовать новый FindBoost поставляемый с версией 2.6.

Немного технических подробностей.

Проект представляет из себя множество под-проектов представленных в виде дерева фолдеров:

project_root/
----> modules/
---------> module1/[hdr,src]
---------> module2/[hdr,src]
...
---------> moduleN/[hdr,src]

CMakeLists.txt в фолдере modules не сложен и выглядит примерно так

-- начало ----
# говорим, что проект у нас С++!!!
project(project_name_of_the_whole_system CXX)

add_directory(module1)
...
add_directory(moduleN)
-- конец ----

Не каждый модуль использует Boost, и старается быть, по возможности, независим, но каждый является C++ кодом.

Соответственно, для каждого нового модуля, появляющегося в проекте, берем шаблон вида:

-- начало ----
# меняем конфигурационные параметры - изменяемая часть шаблона
# говорим, что проект у нас С++!!!
project(project_name_of_the_specific_module CXX)

# означает что будет собираться библиотека
set(is_module_exec false)

# означает что мы зависим от специфичной библиотеки
set(is_module_use_lib1 true)

# используем Boost C++ lib
set(is_module_use_boost true)

# не изменяемая часть
# здесь конфигурируем, в зависимости от установленных параметров выше
include(ModuleConfig)

# далее строим модуль
...
-- конец ----

С Cmake 2.6, в начальную конфигурацию добавляю

set(is_module_required_boost_libs
thread
system
program_options
)

правлю внутренний ModuleConfig.cmake примерно так

if(is_module_required_boost_libs)
find_package(Boost COMPONENTS ${is_module_required_boost_libs})
else(is_module_required_boost_libs)
find_package(Boost)
endif(is_module_required_boost_libs)

На Windows все прошло замечательно, поскольку библиотеки там прилинковываются автоматически (autolink feature от Visual C++). Для GNU C++ такой возможности нет (или по крайней мере я о ней не знаю - если кто подскажет, буду очень признателен). Посему, для g++ приходиться хитрить.

FindBoost должен все найти для меня. А я, по идее, пробегаясь foreach(my_requested_name ${is_module_required_boost_libs}) по всем компонентам получаю набор библиотек Boost-а, необходимых для передачи линкеру.

Вроде бы все логично, однако при добавлении system компоненты FindBoost выставляет Boost_FOUND в false.
Что за дела? Начинаю ковыряться...

BOOST_ROOT указывает в /usr/local - там версия 1.34.1. libboost-system-gcc41-... там присуствует.
Выкидываю system из требуемых компонент буста для модуля. Вывожу отладочную информацию по фолдеру с библиотеками - получаю /usr/lib. Обнаруживаю там библиотеки версии 1.33.1, поставляемые с RH5, но с названием вида libboost-thread-mt... Где gcc[ver] в имени либы? libboost-system там дейсвительно нет. Но почему же он ищет там, не учитывая BOOST_ROOT переменную? Долго осознаю, что происходит... :-) Не понимаю. Ругаюсь. Пытаюсь обмануть систему генерации, установив помимо BOOST_ROOT еще и BOOST_LIBRARYDIR - результат тот же.
Начитаю курочить FindBoost.cmake отладочной информацией. Понимая, что проблема с именованиями - проверяю определение компилятора и его версии в скрипте FindBoost. Скрипт дает мне информацию, что это Intel-овский компилятор C++, поскольку это UNIX и компилятор NOT GNUCC. Чертовски логично, учитывая что, скорее всего, он GNUCXX для C++ проекта.

---- кусок FindBoost --------
IF (UNIX)
IF (APPLE)
SET (_boost_COMPILER "")
ELSE (APPLE)
IF (NOT CMAKE_COMPILER_IS_GNUCC)
# This is for the intel compiler
SET (_boost_COMPILER "-il")
ELSE (NOT CMAKE_COMPILER_IS_GNUCC)
#find out the version of gcc being used.
EXEC_PROGRAM(${CMAKE_CXX_COMPILER}
ARGS --version
OUTPUT_VARIABLE _boost_COMPILER_VERSION
)
---- кусок FindBoost --------

Вот так...
Проект у меня C++, Boost вроде тоже библиотека С++, а проверяем CMAKE_COMPILER_IS_GNUCC, вместо CMAKE_COMPILER_IS_GNUCXX.

Для проверки своего предположения, добавил в проектный скрипт информацию по компилятору. Действительно, если проект объявлен CXX, CMAKE_COMPILER_IS_GNUCC не определен.

Как обходной маневр (workaround) объявил проект, как

# говорим, что проект у нас не только С++, но и C!!!
project(project_name_of_the_whole_system CXX С)

Думаю, что необходимо спросить мнения CMake-ров на эту тему в список рассылки и завести проблему в cmake багтрэкер, по соображениям изложенным выше.

Такой вот длинный рассказ на ночь :-).

Благодарю за внимание всех, кто дочитал до конца.

пятница, 20 июня 2008 г.

Subversion 1.5 released

Текущий месяц очень щедр на релизы :-)

Вышла новая версия Subversion (для тех не знает - система контроля версий).
Изменения описаны здесь.

Субъективно пока ничего сказать не могу - не пробовал, поскольку формат репозиториев изменился. Но судя по списку изменений, имеет смысл опробовать :-)

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

Firefox 3 is out...

Вчера забрал с сайта мозиллы последнюю версию Firefox и установил себе на компьютер.

Первые впечатления весьма положительные.

Субъективно:
- возросла производительность
- перестал "зависать" с большим количеством открытых табов (видимо сократили размер потребляемой памяти)
- приятный вид

Проходит acid2, но не проходит acid3.

Из неудобств:
ни один из мной выбраных скинов для 2-го не стал работать в 3-ем :-)

Плюсов, всетаки, больше.

Рекомендую попробовать :-)

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

Back home...

Итак, я удачно съездил в первопрестольную, обучился и получил аттестат о том, что прослушал 2-х дневный курс "Designing and Analyzing Software Architecture" проведенный Риком Казманом (Rick Kazman).

Рик известен своим участием в написании книги Software Architecture in Practice (2nd Edition) (The SEI Series in Software Engineering).

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

Вообще множество учебных материалов (литературы) связанных с программной инженерией вызывает у меня легкое deja-vu. Анализируя свой опыт разработки (вот так вот :-) ), понимаешь, что ты делал все очень похоже, как написано (видимо, интуитивно следуя какому-то процессу). Естественно, опуская какие-либо (кажущиеся тебе неважными) детали. Слушанье лекции, обеспечивает недостающие кусочки мозаики и объесняют причину их необходимости/важности.

Ну чтоже, нужно адаптировать и внедрить.

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

На пути в Москву...

Итак, первые впечатления, от поездки:

1. Рейс перенесли с 13:30 на 21:55 - это значит я буду в Москве в 12-ом часу ночи, а не в 15:30 как это должно было быть... Н-да... Это поломало всю стройную структуру моих запланированных перемещений :( Спасибо Аэрофлоту.

2. Пробую здесь в аэропорту Владивостока дальсвязевский WiFi по карточке... Вроде неплохо - пока не понял :)

3. Батарейка в моем 2-х ядерном ноуте конечно слабовата - работает от силы 1.5 часа. Нашел единственное место в аэропорту с 2-мя розетками. Даже не в зале ожидания а внизу в холе. Тут и примостился. Не круто для аэропорта.

4. Аэрофлот походу вступил в SkyTeam, и, посему, я положил дистанцию туда и обратно на свой SkyPass полученный в 2002 году в Korean Air. Доволен :)

пятница, 30 мая 2008 г.

Вопрос, который можно задать на интервью в Microsoft...

Навеяло при поездке на работу...

Вопрос:
Почему во Владивостоке асфальтовое покрытие на встречной полосе всегда кажется
лучшим?

Ответ:
Ответ может быть любой :) (см. William Poundstone "How Would You Move Mount Fuji?)", но мне почему-то кажеться что правильным будет:

"Да потому что оно все плохое, но тебе хочеться убедить себя в обратном"...

Р.S.
Я так не делаю, и других призываю этого не делать. Не подвергайте опасности других участников движения.

вторник, 27 мая 2008 г.

Новости на 27 мая 2008

Долго ничего не писал, посему просто небольшая подборка новостей:

1) Моему сыну 25-го числа исполнилось 1 год и 3 месяца :)

2) Был занят подготовкой вводного учебного курса по шаблонам проектирования ПО, или Design Patterns. Данный курс буду читать в своей компании для разработчиков. Кроме того, возможно, его же буду читать в ДВГУ для студентов. Есть идея некоторую подборку по шаблонам опубликовать в блоге (для справедливой критики и комментариев).

3) Числа 5-го июня вылетаю в Москву на семинар «Проектирование и анализ архитектуры ПО», проводимый компанией Текама 6-7 июня. Инструктор Rick Kazman.

пятница, 16 мая 2008 г.

Boost 1.35 + CMake 2.6 = букет проблем

Что за день сегодня? Вроде не 13-е...
Такое ощущение, что несчастливое число :-)

Жалобы по порядку:

Boost::Thread поменял интерфейсы между 1.34.1 и 1.35 так что перестал собираться нашь проект. Завтра надо будет проревьюить что там поменялось и переделывать(?)...

Cmake перепрыгнув в версиях с 2.4.8 сразу на 2.6 начал выдавать какие-то предупреждения, с предложениями как их исправить. Исправления, как оказалось, не backward compatible.

Все ведет к тому что надо разбираться... А хочеться спать :-)

вторник, 13 мая 2008 г.

vsftpd on SuSE & xinetd

Интересная особенность у дефолтной конфигурации SuSE 10.3 - vsftpd демон разрешается в Yast через xinetd (нет его как standalone сервиса), но в /etc/vsftpd.conf по дефолту установлена опция listen=YES, что при соединении ftp клиентом приводит к ошибке "500 OOPS: could not bind listening IPv4 socket". Исправляется заменой на "NO".

Предположительно для того чтобы заставить заглянуть в файл vsftpd.cfg и поправить его под свои нужды... ;-)

OpenSolaris is out...

Пока я размышлял, ставить ли Solaris Developer Edition (SXDE), компания Sun выпустила OpenSolaris 2008.05

И сообщают на чистом английском языке, что SXDE отныне "мертвая" ветка - нужно пользовать OpenSolaris.

Note: This marks the end of the SXDE program. To provide a smooth transition, the SXDE 1/08 site will remain available through July of 2008. At that time, the site will be taken down and links redirected to the OpenSolaris site. Existing SXDE documentation will remain available on docs.sun.com and at the Solaris Developer Center. Thank you for your support and participation. We look forward to seeing you at opensolaris.com.


Ну что же... Думаю имеет смысл будет взглянуть, что же такого придумал Иан Мёрдок (Ian Murdock) - нынешний директора отдела операционных платформ Sun Microsystems, а в прошлом основатель проекта Debian Linux.

Предположительно, Solaris поменяет свой формат pkg на deb ;-) Шутка.

понедельник, 12 мая 2008 г.

SuSEa 10.3 в виртуалке на Vista

Сегодня успешноводрузил Сюзи в виртуальную машину на ноутбук.
Чтоже, первые впечатления весьма положительны - работает быстро и "гладко".
Собственно, это сообщение публикую из Сюзи.
Доволен, как ребенок :-)
Итог, в моем домашнем "зоопарке": FreeBSD 7, SuSE Linux 10.3.
На подходе Solaris x86.

среда, 30 апреля 2008 г.

Netbeans 6.1 released

Пока чинил компиляцию библиотеки Pantheios для FreeBSD, по электронной почте пришло сообщение о том, что выпущена новая версия Netbeans 6.1 - IDE и Development Platform от Sun.

Не то, чтобы я часто использую это IDE в повседневной своей жизни (больше в прошлом, когда писал на Java), но кто-то (уже не помню точно) порекомендовал мне присмотреться к Netbeans как к IDE для C++.

Из анонса, основными улучшениями (как мне показалось) являются производительность - на целых 40% увеличена скорость загрузки IDE, плюс сокращено потребление опреативной памяти ;-)

Кроме того, улучшена поддержка MySQL, который Sun приобрела за умопомрочительные деньги. Было бы естественным, плотно интегрировать свои же продукты :-)

Вообщем, кому интерестно, взять его можно
здесь.

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

Running FreeBSD 7 under Windows Vista

Для экспериментов поставил FreeBSD 7 в виртуальной машине под Vista на домашний notebook. Пока ничего конкретного - работает и ладно. Памяти выделил 512 в виртуалке. Довольно шустро. Люблю я BSD за ее минимализм.

Еще есть желание поставить Solaris x86 DE который мне привезли коллеги, вернувшиеся из Иллиноя. Но чуть позже. Была первая попытка, однако стандартных 512 мб, выдиляемых мною на гест ОС, GUI инстолеру показалось мало. Затребовал 1 гб. Или CUI. За это был отложен на полку. Попробую позже. Интерес для меня представляет Sun Studio 12 Compiler Collection и Dtrace.

Linux ставить видимо не стану - его мне и на работе достаточно. С нетерпением жду выхода OpenSUSE 11.0 (обещают в июне релиз). Что поделать - люблю этот немецкий дистрибутив за качество. Им обновлю рабочую станцию на работе, которая сейчас работает под 10.3

среда, 23 апреля 2008 г.

Microsoft исправляет ошибки в Visual C++ 2008 Feature Pack

Вышедший 8 апреля Visual C++ 2008 Feature Pack был с ошибками.

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

22 апреля вышел Visual C++ 2008 Feature Pack Refresh, который исправляет проблемы инсталляции данного Feature Pack, не замеченые при тестировании.

Однако странно, как такой (VCRedist_x86.exe failed to install on Vista and Windows Server 2008) баг мог быть незамеченным?

Предполагаю что в Microsoft имеют место быть проблемы c QA...
Либо, сама Microsoft еще не перешел на Висту... :-)

Исправили довольно быстро - честь и хвала. Бывает дольше.

PS.
Microsoft is a registered trademark of Microsoft Corp. in the United States and/or other countries.

Во Владивостоке выборы мэра // PR агитки

Я не скажу что я политически активен, но так как я живу не в одиночестве, а окруженный жителями города у моря, то волей-неволей приходиться рассматривать стены обклеенные агитками местных кандидатов в градоночальники.
А поскольку, некоторые из этих произведений PR-индустрии навевают некоторые мысли, хочу поделиться.

Уже неделю хожу на стоянку за своим авто и наблюдаю небольшую (A3) рекламку г-на Гильгенберга (кое-где перекрываемую плакатиками такого же формата от ректора ДВГТУ - он, видимо, позже вступил в рекламную гонку). Рекламки расклеены обильно по стенам домов (кто убирать-то будет?). Конечно, реклама дешевая и не так раскрученна как у "Человека Кремля" г-на Пушкарева (у Кремля ресурсов побольше будет - тут тебе и ТВ и рекламные плакаты по дорогам).

Ну да бог с ними...

Поражает лаконичность слогана, звучащего примерно так:
"Гильгенберг - кандидат от народа"

Не знаю уж, от какого такого народа (может этого?), но мысль приходит в голову одна - кандидат явно непроходной, поскольку не смог оплатить более подходящий (берущий за живое, так сказать :-) ) PR-лозунг.

Но внимание привлек - оценка 3-

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

Использование Code2HTML для размещения исходного кода в блоге

Итак, я искал возможность размещения фрагментов кода в блоге.

Спасибо за подсказку найденную здесь

Собственно как выглядит код:


Так значительно лучше :-)

У меня получился сокращенный (а может быть для кого-то усложненный :-) ) рецепт, поскольку jEdit не стал у меня работать на Windows Vista.
Почему? Разбираться я не стал, поскольку только ради плагина, который превращает буфер обмена в HTML, сей редактор не представляет для меня интереса (по крайней мере пока :-) ).

Мой рецепт отличается первыми шагами:

1. Устанавливаем ActivePerl
2. Берем последнюю версию Code2HTML
3. Из командной строки выполняем C:\>perl code2html -l <язык для раскраски> <имя файла с фрагментом исходного кода> >> <имя файла с результатом .htm>
- все что между <...> заменяем своими параметрами
- C:\>perl code2html --help предоставит справку по параметрам


ну и далее как у hype-free.

Test для Windows Live Writer

Пробую альтернативные возможности публикаций в блог :)

Вот решил попробовать WLW.

Интересует возможность размещения исходного кода...

Например решение задачи по развороту строки на собеседовании в Microsoft могло бы выглядеть на C++ так :)

#include <algorithm>
#include <iostream>
#include <cstdlib>
#include <string>

int main(int argc, char * argv[])
{
    if(1 < argc)
    {
        std::string string_to_reverse(argv[1]);

        std::cout << "before: " << string_to_reverse << std::endl;

        // doing reverse
        std::reverse(string_to_reverse.begin(), string_to_reverse.end());

        std::cout << "after: " << string_to_reverse << std::endl;

    }
    else
    {
        std::cout << "Usage: " << argv[0] << " string_to_reverse" << std::endl;
    }

    return EXIT_SUCCESS;
}