ru.java на livejournal

Июль 15, 2010

 

Работа с Bluetooth и другие вопросы

Я с 2001 г. работаю с J2ME, но под J2SE писать пока не приходилось. Сейчас пытаюсь переписать на Java свою C-программу - в основном для того, чтобы было меньше проблем с переносимостью (Linux/Windows/MacOS). В результате сходу возник ряд вопросов:

1) Как работать в JSE с Bluetooth? Судя по всему, использовать JSR-82 не удастся? Интересует работа с синезубом как под Linux, так и под Windows и MacOS.

2) Как правильно организовать работу с плагинами? Чтобы при необходимости дополнить программу новой функциональностью можно было бы создать отдельный jar - и подгружать его классы, не перекомпилируя основную программу.

3) В Линуксе есть такая удобная вещь, как псевдотерминалы. Можно ли пользоваться этим механизмом из Java?

Java на habrahabr

Июль 15, 2010

 

JAVA / [Ссылка] Параллельный Reduce: математическое обоснование и пример реализации на Java

В данной статье рассмотрены понятия свертки и ссылочного гомоморфизма, их взаимосвязь, приведен пример построения многопоточного Reduce и сравнение его скорости работы с однопоточным вариантом на примере анализа данных с сервера РТС.

Java Swing

Июль 15, 2010

 

Генерация getter’ов и setter’ов в Eclipse

У каждого разработчика свой стиль написания приложений. Кто-то любит писать весь код руками с клавитуры сам, а кто-то использовать различные примочки и возможности интегрированной среды разработки. Например взять меня. Я любитель написать всё сам от начала до конца без использования каких-то генераторов кода, хотя это очень часто и увеличивает время написания. Со временем я стал [...]

ru.java на livejournal

Июль 14, 2010

 

Использовать Maven в изолированной от интернета сети?

Судя по предыдущим постам тут много любителей мавена. Разъясните тогда, возможно ли им пользоваться не имея доступа в интернет.
Наличествует subversion с проектом.
Девелоперы, которые живут под виндой и несколько боксов линуксовых на которых это нужно периодически собирать для перформанс тестирования + teamcity. Девелоперы могут быть в разных местах географически с не очень быстрым каналом друг к другу.
Кроме того это релизится через внешнюю систему, которая запускает make и потом деплоит артефакт на r/o сетевой диск под системным пользователем в неизвестном окружении.

На данный момент система собирается антом, все депернденсы для сборки хранятся в директории lib.

Какие есть варианты это преобразовать в maven? Моя личная мотивация тут простая. Меня и существующая система функционально устраивает т.к. она работает, но кроме автора ни кто не может ее поддерживать в плане внесения изменений, а мне это делать за всех лень. С мавеном всегда можно отправить людей книжки читать. :)

ru.java на livejournal

Июль 14, 2010

 

Необходимо реализовать программу с интерфесом основанным на HTML/CSS/JavaScript.

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

Необходимо реализовать программу с интерфесом основанным на HTML/CSS/JavaScript.


Выбор пал на org.eclipse.swt.browser. Иммется код следующего содержания:


import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.*; import org.eclipse.swt.browser.*; class BrowserExample { public static void main(String[] args) { Display display = new Display(); final Shell shell = new Shell(display); shell.setText("Browser Example"); shell.setSize(800, 600); final Browser browser = new Browser(shell, SWT.NONE); shell.open(); browser.setBounds(0, 0, 800, 600); browser.addLocationListener(new LocationListener() { public void changed(LocationEvent event) { } public void changing(LocationEvent event) { if (event.location.equals("file:///hi")){ // Здесь надо запретить вывод сообщения "File not found" browser.stop(); } } }); browser.setText("<h1>Hello World!</h1><a href=\"hi\">Hey!</a>"); while (!shell.isDisposed()) { if (!display.readAndDispatch()) { display.sleep(); } } display.dispose(); } }

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


Что делать в такой ситуации? Есть вариант отправлять все запросы на localhost, но я не уверен в правильности такого решения. Второй вариант
зарегистрировать свой протокол через protocol.handler, но как я так и не нашел.


Спасибо

ru.java на livejournal

Июль 14, 2010

 

Developing with Ant

Доброго дня.
Собираюсь использовать Ant в своих проектах, и читаю маны и Developing with Ant.
Возник такой вопрос, как вы складываете зависимости для компиляции и для выполнения?

МНе было бы удобно держать все библиотеки в структуре каталогов похожей на ту, в которой поставляются зависимости к SpringFramework:
библиотеку для log4j я бы стал держать в [project_dir]/lib/org.apache.log4j/{filename}.jar
filename = com.springsource.org.apache.log4j-1.2.15 - если бы я ее скопировал из dependencies от SpringFramework;
filename = log4j-1.2.16 - если бы я ее взял с официального сайта;

Для компиляции срабатывает конструкция:
    <JAVAC
          srcdir="${src}"
          destdir="${build}"
          includeAntRuntime="true"&gt;
      <CLASSPATH refid="id.classpaths" />
    </JAVAC>

   <PATH id=id.classpaths>
     <FILESET dir=lib>
       <INCLUDE name="**/*/*.jar" />
     </FILESET>
   </PATH>



Как теперь все найденные (используемые в зависимостях) jar'ы поместить в dist/lib?

Java Swing

Июль 13, 2010

 

Изменение курсора над компонентом в Java Swing

Совсем недавно обнаружил одну особенность компонентов Java Swing. Особенность эта заключается в том, что для каждого компонента можно устанавливать форму курсора, который будет показываться при наведении указателя мыши на компонент. Хотим, чтобы при наведении на кнопку отображался курсор загрузки (песочные часы или что-то в этом роде) - пожалуйста. Хотим, чтобы при наведении на какой-то компонент [...]

ru.java на livejournal

Июль 13, 2010

 

IntelliJ IDEA

Беру проект из SVN, проект кривой - не хватает библиотек. Открыл несколько исходников, они подсвечены красным и в редакторе, и в дереве.

Добавляю ему библиотеки, нажимаю Ctrl+f9. Проект собирается, все ок. Дерево сорцов все равно красное. Нахожу файлы, подсвеченные красным, открываю - опа, они уже нормально скомпилировались.

И за это товарищи из JetBrains хотят денег? Именно из за таких мелочей Eclipse рулит, а идея - для фанатов, навроде ойфона.

Сратч и холиворы трэд го!

Java на habrahabr

Июль 13, 2010

 

JAVA / Кэширование данных в приложениях с Spring 3, размещенных в AppEngine

В этой статье я расскажу как можно кэшировать в memcache значения, возвращаемые методами bean'ов. Для этого не потребуется писать код, достаточно добавить конфигурации в xml файлы Spring'а и разметить код с помощью аннотаций.

Итак поредставим что у нас есть DAO с тремя методами — двумя для поиска сущностей и одним для сохранения сущностей. Для правильного функционирования нам нужен интерфейс и реализующий его класс (чтобы можно было добавить dynamic proxy на реализацию)

Блог о программировании

Июль 12, 2010

 

Самый лучший Singleton

Из всех существующих на момент написания этого поста реализаций шаблона Singleton (одиночка)  мне больше всего нравится эта:

public class Singleton { // Private constructor prevents instantiation from other classes private Singleton() {}   /** * SingletonHolder is loaded on the first execution of Singleton.getInstance() * or the first access to SingletonHolder.INSTANCE, not before. */ private static class SingletonHolder { private static final Singleton INSTANCE = new Singleton(); }   public static Singleton getInstance() { return SingletonHolder.INSTANCE; } }

Эту реализацию придумал  Bill Pugh. Это гениальный и очень простой способ. При помощи элегантного использования внутреннего класса Вы получаете ленивый (объект Singleton не инициализируется до моменты вызова метод getInstance())  и потоко-безопасный Singleton.

Поскольку в классе Singleton нет статических полей которые нужно инициализировать, класс беспрепятственно загрузится. То есть Вам не нужно ждать, пока мы создадим объект Singleton в самом начале, когда загружаются классы.
Смотрим дальше, когда объект INSTANCE будет создан? Тогда, когда мы вызовем метод getInstance(), что повлечет загрузку внутреннего класса SingletonHolder, что спровоцирует создание объекта INSTANCE. Поскольку фаза инициализации класса гарантировано (спецификацией) "не конкурента", то у нас нет необходимости использовать synchronized и volatile. Ура!

 
<< < 76 из 79 > >>