Игры, математика, программирование, и просто размышлизмы

среда, 2 октября 2013 г.

Баг с хайлайтером JXTable и способы его починки

Есть в свинге (swing) такая штука - JXTable, хорошая но бажная, поскольку находится в проекте лабс. И есть у этой штуки(равно, как и у других таблиц унаследованных от JTable) возможность выделить разным способом ячейки таблицы: цветом беграунда, размером и цветом шрифта и так далее. Существует множество дефолтных хайлайтеров, у дефолтного определяется нужно ли выделять ячейку с помощью предиката, который передаётся в конструктор.
      Всё вроде бы хорошо, но у дефолтного ColorHighlighter-а(он задаёт цвет беграунда и фореграунда) есть бага - если его задать, линии таблицы в выделенных ячейках пропадают. Фигово, товарищи.

Решается это дело добавлением другого хайлайтера PainterHighlighter. В него передаётся паинтер, который собственно и рисует линии таблицы.
Примерно так

public class InsteadGridPainter implements Painter {
    @Override
    public void paint(Graphics2D g, Object object, int width, int height) {

        g.setColor(Color.gray);
        g.drawLine(width - 1, 0, width - 1, height + 1);
        g.drawLine(0, height - 1, width, height - 1);

    }
}

Вот, этим нехитрым способом и можно побороть этот грёбаный баг

вторник, 28 мая 2013 г.

Тонкости настройки maven в Intellij Idea

В последних версиях идеи чтобы правильно заэкспортить maven проекты созданные с помощью третьего мейвена необходимо установить чекбокс "использование третьего мейвена".
Идем в файлы, настройки, мейвен, импорт и устанавливаем галку в "использование третьего мейвена"

среда, 17 апреля 2013 г.

Java Persistence with Hibernate устарела

Читаю я тут книжечку Java Persistence with Hibernate от некоего Кристиана Бауэра и Девида Кинга. Ну что сказать, книжечка хорошая, но ошибок там - туева хуча. Попробую другую завтра с утреца.

понедельник, 14 января 2013 г.

Проект для создания виртуальных миров castle


Проект моделирует мир населённый человекоподобными роботами: синтезирует восприятие роботами окружающей действительности и отвечает на их действия.
В составе средства предлагаются человекоподобные роботы исследущие окружающий мир с помощью сенсоров имитирующих органы чувств человека; видение(с помощью одного или нескольких глаз), проприоцепция и касание. В будущем планируется добавление и других органов чувств (однако судя по темпам развития проекта, это будущее может не настать никогда).
Состояние мира сохраняется с помощью реляционной базы данных, в проекте используется PostgreSQL, однако возможно выбрать любую другую реляционную базу. Существует так же возможность вмешиваться в работу программы с помощью сторонних приложений.
Средство создано с помощью pure Java(без сторонних фреймворков), 3D моделирование обеспечивается с помощью библиотеки Java 3D. Для верстки 3D конструкций предлагается средство collada(которое уже не поддерживается, по крайней мере сайт в не активном состоянии)
Ботов на для этого средства можно писать с помощью языков C++, Java, Python, Ruby и C#.
Для понимания возможностей средства разработчиками написано видео представленное по ссылке https://project.setcorp.com/castle/videos/egghunt/egghunt1.mpeg. На видео робот движется по сцене отыскивая яйца разного цвета попутно сталкиваясь с маленькими мячиками, которые от него отскакивают. Если робот подъезжает к яйцу, оно исчезает. После сбора четырёх яиц одного цвета появляются яйца другого цвета.

Данный проект обладает несколькими недостатками, на мой взгляд существенными. Главный из них это заброшенность проекта - последнее его обновление вышло в 2010-м году. Кроме того, мир, представленный на вышеуказанном видео беден, интересный мир с его помощью будет довольно сложно построить. Также, документирование средства слабое, в нём придётся разбираться попутно исправляя возможные ошибки разработчиков.
С другой стороны, проект бесплатный, поэтому может быть интересен в качестве бесплатного средства, которое можно развивать. Кроме того, декларируется восприятие роботов подобное человеческому. Возможно, проект можно развить усилиями нескольких энтузиастов.