Баг в Swing: редактирование ячейки JTable отменяется при ресайзе столбца

0 коммент. | добавить комментарий
Я всегда говорил, что разработка под Swing сродни ходьбе по минному полю - никогда не знаешь, под какой ногой рванет в следующую минуту.

Сегодня (в который раз!) рванула JTable. Я напоролся на баг, который заключается в следующем: если начать ресайзить столбец таблицы в процессе редактирования ее ячейки, то введенный во время редактирования текст исчезает - вместо него возникает предыдущее значение.

Вот так вот. Багу #4330950 уже почти восемь лет.

Интересно было почитать комментарии к нему на сайте Sun:

  • 17 июня 2002 г.: можете пообещать, что это будет исправлено в 1.4.1?
  • 6 августа 2005 г.: это должно быт обязательно исправлено в Java 6!
    26 июня 2007 г.: проблема все еще жива в j2se 1.6.1!


В этот раз workaround нашелся. Там же, по ссылке, в комментах добрые люди советуют, что надо делать. Спасибо им за это!

Русские зайцы настолько суровы...

2 коммент. | добавить комментарий


Японские мультяшки про русских зайцев: здесь.

В ролях:

  • заяц в красном
  • заяц в зеленом
  • зайцы за дверью
  • странный цыпленок
  • жабко
  • и т.д.


Ржал долго. Пыхово у авторов реально тяжелое.

Interbase/Firebird и Windows Vista: друзья навек

19 коммент. | добавить комментарий
Вчера, несмотря на Старый Новый Год, пришлось решать проблему установки одной программы, использующей СУБД Interbase, на Windows Vista Home Basic.

Само по себе, увы, не заработало. Валился локальный протокол доступа Interbase.

Лирическое отступление. Протоколов доступа там два:

  • сетевой - формат адреса типа localhost:c:/db/mydb.gdb
  • локальный - а это, например, просто c:\db\mydb.gdb

Так вот, при попытке доступа к БД по локальному протоколу все время вываливалось unavailable database. В связи с этим излагаю выработанную последовательность шагов, которая позволяет запустить сервер Firebird под Windows Vista с работающим локальным протоколом:

  1. Скачиваем с firebirdsql.org Firebird 2.0.3 (подойдет любая версия старше 2.0.1), устанавливаем:

    • режим сервера - SuperServer
    • запускать как службу
    • НЕ ДОБАВЛЯТЬ аплет в Панель управления - иначе она потом вообще не сможет запуститься, и FB придется сносить

  2. Заходим в папку с Firebird, открываем файл firebird.conf, откомментируем строку с параметром IpcName, заменяем ее на:
    IpcName = Global\FIREBIRD

  3. Здесь придется перезагрузить машину.

После этих танцев с бубном Firebird должен заработать правильно.

The Truth About Game Development

2 коммент. | добавить комментарий

Только что два часа рубился в мега-игрушку (название в теме). Скачать ее можно отсюда.

Вы находитесь в роли продюсера новой компьютерной игры. Программисты (или рабы, как они называются там), бегают по лесенкам вверх-вниз и якобы вносят свой вклад в разработку. По мере продвижения, картинка на заднем фоне растет вверх.

У каждого раба есть почасовая зарплата. Кроме того, имеются бюджет и баланс между графикой, геймплеем и затратами на маркетинг:

По мере продвижения работ мотивация рабов снижается. Увеличить ее можно либо повышая зарплату и соглашаясь на инициативы вроде «поставить кулеры с водой» или «внедрить супер-клевую фичу», либо… убивая этих ленивых козлов-программистов! Страх – лучшая мотивация!

Если убивать их слишком часто, может начаться забастовка, в которой могут принять участие несколько рабов (тогда парочку из них можно убить), либо всеобщая – с которой уже хрен чего сделаешь. По завершении работ нам показывают отзывы геймерских журналов, доход и ROI. Мой рекорд – 1795692%:

Убийственно классная штука!

У этого же автора в блоге есть много других отличных игр (рекомендую Humpster, Bloody, Crayon). Он их пишет по одной в неделю.