среда, 11 октября 2006 г.
Из спецификации по JNI
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
понедельник, 9 октября 2006 г.
Смысл javax.resource.cci.*
Я наконец-то понял зачем нужен CCI. Все время казалось, что из-за него в простых RA много ненужного кода. А теперь ощутил зачем этот CCI нужен.
Если реализовывать RA без CCI, то наш MCF возвращает CF который не CCI-compliant, а тот уже в свою очередь по запросу RA клиента делегирует обращение в RM и получает соединение к RA отдавая его клиенту. Все просто и хорошо, но:
- в этом случае мы не может использовать DI, оказывается @Resource работает только для набора предопределенных интерфейсов (типа тогоа же CCI CF), поэтому CF придется ручками из JNDI доставать.
- если RA не продеплоена как EAR, а задеплоена в виде одельного RAR файла и клиент RA задеплоен соответственно как отдельный JAR, то, чтобы клиент мог использовать наш собственный CF, у него должен быть на руках интерфейс этого CF. В случае CCI CF этого не требуется, так как CCI CF определен в java.resource.cci.
- наверное есть еще что-то, но мне хватило этого
Доздравствует CCI!
Если реализовывать RA без CCI, то наш MCF возвращает CF который не CCI-compliant, а тот уже в свою очередь по запросу RA клиента делегирует обращение в RM и получает соединение к RA отдавая его клиенту. Все просто и хорошо, но:
- в этом случае мы не может использовать DI, оказывается @Resource работает только для набора предопределенных интерфейсов (типа тогоа же CCI CF), поэтому CF придется ручками из JNDI доставать.
- если RA не продеплоена как EAR, а задеплоена в виде одельного RAR файла и клиент RA задеплоен соответственно как отдельный JAR, то, чтобы клиент мог использовать наш собственный CF, у него должен быть на руках интерфейс этого CF. В случае CCI CF этого не требуется, так как CCI CF определен в java.resource.cci.
- наверное есть еще что-то, но мне хватило этого
Доздравствует CCI!
четверг, 5 октября 2006 г.
SUNWappserver uninstall
Если кто-то пытается переустановить Sun Application Server 9.0 Platform Edition и у него не получается это в течении часа (то already installed, то unexpected exception), то стоит грохнуть нахрен (или аккуратно почистить) /var/tmp/productregistry или /tmp/productregistry.
Навеяно вот этим советом в котором неправильно указан путь.
Навеяно вот этим советом в котором неправильно указан путь.
среда, 4 октября 2006 г.
Mastering EJB 4ed
Офигенный код в книге Mastering EJB 4ed!
Chapter 15, конец метода execute:
А еще в этой книге есть строки в раздели Best Practice:
Many organizations have tried—and failed—to truly reuse components. Because of this, it is a perfectly valid strategy to not attempt true reuse at all. Rather, you can shoot for a copy-and-paste reuse strategy, which means to make the source code for components available in a registry to other team members or other teams. They can take your components’ code and change it as necessary to fit their business problem. While this may not be true reuse, it still offers some benefits.
Chapter 15, конец метода execute:
if (out != null) {
return true;
} else {
return false;
}
класс! :))А еще в этой книге есть строки в раздели Best Practice:
Many organizations have tried—and failed—to truly reuse components. Because of this, it is a perfectly valid strategy to not attempt true reuse at all. Rather, you can shoot for a copy-and-paste reuse strategy, which means to make the source code for components available in a registry to other team members or other teams. They can take your components’ code and change it as necessary to fit their business problem. While this may not be true reuse, it still offers some benefits.
Эта запись писалась в течении 7 минут 37 секунд.
пятница, 29 сентября 2006 г.
Попробовал себя

Попробовал себя в роли "электронщика". Спаял хреновину для коммутации трех каналов постоянного напряжения (up to 24В ) и одного переменного (up to +220В) через LPT порт. Ну что я могу сказать? Нафик, нафик, я лучше буду программировать.
Что общего в электронике с программированием:
1. По отдельности куски работают, а стоит засунуть "в корпус" - работает 10%.
2. Постоянно что-то отваливается.
3. Хрен найдешь, что отвалилось - при визуальном осмотре все OK.
4. Надо пользоваться отладочными средствами.
5. Поиски ерундовой проблемы занимают больше всего времени.
6. В конце понимаешь, как надо было делать, чтобы избежать половины проблемм и запутанного устройства.
7. Но переделывать лень и поэтому делаем заплатки.
8. В конце концов как-то вся это хрень начинает работаеть. Ты молишься, чтобы от неловкого движения все не сломалось и не пришлось лезть внутрь.
9. Решение "выйти, зайти или перезапустить" часто помогает - почему не понятно.
10. Надо иметь крепкие нервы.
11. Чудес не бывает.
В чем отличие:
1. Программированием тяжело поранится, общечься, убится, спалить квартиру или порт принтера вместе с материнской платой.
2. После программирования в комнате не стоит запах канифоли и вообще оно никак не пахнет.
3. Программирование не оставляет за собой кучу мусора и ошметков.
4. В программировании один программный модуль не может уничтожить прочие модули, если их неправильно сцепить.
5. Программу можно забэкапить...
6. ...
среда, 27 сентября 2006 г.
Личный прогресс
Собрал схему с этой странички. И она даже работает. Собирал на куске картона вместо текстолита. Несмотря на то, что схема расчитана на 112В/220В, у меня заработала на AC 24V. Получилось коммутировать переменное напряжение с компьютера через LPT порт. Виииии! :) Зачем пока не знаю, но что-нибудь придумаю. Надо еще щось для постоянного собрать...
пятница, 4 августа 2006 г.
Патч для spcacat
spcaview умеет подстраивать яркость изображения захватываемого камерой автоматически. А вот spcacat - необходимая для захвата изображения без его просмотра (в batch режиме) почему-то этого не умеет (хотя автор тот же самый). Сделал патчик, который это исправляет (ключ -b). Также добавил ключик -M который указывает, что надо пропустить y кадров, прежде чем "захватить" -N кадров. Это нужно, чтобы дать время на подстройку яркости - она подстраевается либо на основе пропущенного кадра, либо на основе захваченного.
Из-за абсолютно дибильного кода (серьезно, я хуже open source'ного кода не видел никогда) на написание патча ушло 1.5 часа, хотя работы там реально минут на 20-30.
Собственно патч.
Из-за абсолютно дибильного кода (серьезно, я хуже open source'ного кода не видел никогда) на написание патча ушло 1.5 часа, хотя работы там реально минут на 20-30.
Собственно патч.
Подписаться на:
Сообщения (Atom)
