Sun's JavaFX 1.0 platform opens a vast global market for developers and content authors who want to deploy their content, services and experiences across all the screens of their customers' lives. Worldwide industry estimates show that Java technology is already on more than 90 percent of desktops and laptops, 85 percent of mobile devices and is a technology leader in next-generation televisions, Blu-ray disc players and TV set-top boxes.
05 декабря 2008
Java FX 1.0 релиз состоялся
Вчера, 04.12.2008, состоялся релиз Java FX 1.0. Посмотреть примеры работы, изучить туториалы и скачать SDK можно с сайта http://www.javafx.com/
Множественные уязвимости в Sun Java JDK и JRE
Обнаруженные уязвимости позволяют удаленному пользователю обойти некоторые ограничения безопасности, получить доступ к важным данным, вызвать отказ в обслуживании и скомпрометировать целевую систему.
Всего 23 уязвимости(SecurityLab)
Всего 23 уязвимости(SecurityLab)
Решение: Установите исправление
JDK and JRE 6 Update 11:
http://java.sun.com/javase/downloads/index.jsp
JDK and JRE 5.0 Update 17:
http://java.sun.com/javase/downloads/index_jdk5.jsp
SDK and JRE 1.4.2_19:
http://java.sun.com/j2se/1.4.2/download.html
SDK and JRE 1.3.1_24:
http://java.sun.com/j2se/1.3/download.html
- ZDI-08-080: Sun Java AWT Library Sandbox Violation Vulnerability
- ZDI-08-081: Sun Java Web Start and Applet Multiple Sandbox Bypass Vulnerabilities
- iDefense Security Advisory 12.04.08: Sun Java JRE TrueType Font Parsing Heap Overflow Vulnerability
- iDefense Security Advisory 12.04.08: Sun Java Web Start GIF Decoding Memory Corruption Vulnerability
- iDefense Security Advisory 12.04.08: Sun Java JRE Pack200 Decompression Integer Overflow Vulnerability
- iDefense Security Advisory 12.04.08: Sun Java JRE TrueType Font Parsing Integer Overflow Vulnerability
- The Java Runtime Environment Creates Temporary Files That Have "Guessable" File Names
- Java Runtime Environment (JRE) Buffer Overflow Vulnerabilities in Processing Image Files and Fonts May Allow Applets or Java Web Start Applications to Elevate Their Privileges
- Multiple Security Vulnerabilities in Java Web Start and Java Plug-in May Allow Privilege Escalation
- The Java Runtime Environment (JRE) "Java Update" Mechanism Does Not Check the Digital Signature of the JRE that it Downloads
- A Buffer Overflow Vulnerability in the Java Runtime Environment (JRE) May Allow Privileges to be Escalated
- A Security Vulnerability in the Java Runtime Environment (JRE) Related to Deserializing Calendar Objects May Allow Privileges to be Escalated
- A Buffer Overflow Vulnerability in the Java Runtime Environment (JRE) "Unpack200" JAR Unpacking Utility May Lead to Escalation of Privileges
- The Java Runtime Environment UTF-8 Decoder May Allow Multiple Representations of UTF-8 Input
- Security Vulnerability in Java Runtime Environment May Allow Applets to List the Contents of the Current User's Home Directory
- Security Vulnerability in the Java Runtime Environment With Processing RSA Public Keys
- A Security Vulnerability in Java Runtime Environment (JRE) With Authenticating Users Through Kerberos May Lead to a Denial of Service (DoS)
- Security Vulnerabilities in the Java Runtime Environment (JRE) JAX-WS and JAXB Packages may Allow Privileges to be Escalated
- A Security Vulnerability in Java Runtime Environment (JRE) With Parsing of Zip Files May Allow Reading of Arbitrary Memory Locations
- A Security Vulnerability in the Java Runtime Environment may Allow Code Loaded From the Local Filesystem to Access LocalHost
Sun News Radio
Узнать новости Sun Microsystems можно из первых уст http://www.blogtalkradio.com/stations/sunradio/SunNews
28 ноября 2008
Работа со строками в oracle
Наиболее частая операция, которую необходимо выполнять - это выбор подстроки из строки. Для этого в oracle присутствует специальная встроенная функция substr
например : substr('test string #1', 5, 11 ) , где 1й параметр - это задана строка, 2й - позиция с которой начинается подстрока, 3й(не обязательный) - длинна подстроки.
Если точна позиция начала подстроки не известна , можно воспользоваться функцией instr
Например instr('test string #1', ' ' ) - будет найдено первое вхождение пробела в строку. В функции instr есть ещё третий параметр, который задаёт начало поиска, причём если указать -1 начало будет производится с конца строки.
Другие полезные функции:
ascii('S') - ascii код символа
upper / lower / initcap - преобразования регистра букв в большие / маленькие / первая большая все остальные маленькие.
chr(168) - получения символа по заданному ascii коду
concat('s1','s2') - соединение строк
trim / rtrim / ltrim - отбрасывание пробелов
reverse('12345') - получение строки с символами в обратном порядке
length - длинна строки
например : substr('test string #1', 5, 11 ) , где 1й параметр - это задана строка, 2й - позиция с которой начинается подстрока, 3й(не обязательный) - длинна подстроки.
Если точна позиция начала подстроки не известна , можно воспользоваться функцией instr
Например instr('test string #1', ' ' ) - будет найдено первое вхождение пробела в строку. В функции instr есть ещё третий параметр, который задаёт начало поиска, причём если указать -1 начало будет производится с конца строки.
Другие полезные функции:
ascii('S') - ascii код символа
upper / lower / initcap - преобразования регистра букв в большие / маленькие / первая большая все остальные маленькие.
chr(168) - получения символа по заданному ascii коду
concat('s1','s2') - соединение строк
trim / rtrim / ltrim - отбрасывание пробелов
reverse('12345') - получение строки с символами в обратном порядке
length - длинна строки
23 ноября 2008
Паттерн поведения Observer (наблюдатель)
Наблюдатель (Observer) - паттерн поведения объектов, устанавливающий систему оповещения объектами своих соседей в процессе их деятельности.
Известен также под именами: Dependents (подчиненные), Publish-Subscribe (издатель-подписчик).
В процессе функционирования и взаимодействия объектов системы нужно оповещать других участников по завершении какой-нибудь значимой операции. Конечно же, можно в каждый такой класс, производящий значимые действия добавлять обращение к этим всем другим заинтересованным объектам, но таким образом мы дублируем связи между объектами (система становится все менее и менее гибкой) – это еще и в разы затруднит последующую модификацию каких либо участников, т.к. необходимо будет перекомпилировать этот код обращения ко всем заинтересованных субъектам.
В этом случае очень подошло бы иметь такую структуру, в которой каждый участник, если он заинтересован в каких-либо событиях системы, мог бы самостоятельно «подписаться» на эти изменния независимо от других заинтересованных участникам – и, таким образом, получая уведомления об этих событиях – выполнять требуемые ответные действия.
В результате – не создается лишних связей: есть источник значимых действий, есть заинтересованные в фактах выполнения этих действий субъекты, никак не связанный друг с другом, количество которых при этом – также неограниченно.
Паттерн-наблюдатель описывает именно такой подход: определяет зависимость типа «один ко многим» между объектами таким образом, что при изменении состояния одного объекта все зависящие от него оповещаются об этом и автоматически обновляются.
Реализация паттерна поведения Наблюдатель (Observer).
Итак, у нас есть класс Child , который описывает модель ребёнка, основное действие - ребёнок растёт : childGrow, и в зависимости от возвраста ребёнка необходимо менять одежду, еду, игрушки - эти сущности описываются классами Clothes, Food, Toys соответственно. Эти три сущности реалиузют интерфейс Observer через класс BaseObserver.
После создания экземпляра класса ребёнка мы можем добавить или удалить специфических наблюдателей, и при достижении ребёнком какого то возраста (вызов childGrow) автоматически произойдёт обновление зарегистрированных в это время слушателей.
Источники:
Ппаттерн наблюдатель
Observer pattern
Speaking on the Observer pattern
Известен также под именами: Dependents (подчиненные), Publish-Subscribe (издатель-подписчик).
В процессе функционирования и взаимодействия объектов системы нужно оповещать других участников по завершении какой-нибудь значимой операции. Конечно же, можно в каждый такой класс, производящий значимые действия добавлять обращение к этим всем другим заинтересованным объектам, но таким образом мы дублируем связи между объектами (система становится все менее и менее гибкой) – это еще и в разы затруднит последующую модификацию каких либо участников, т.к. необходимо будет перекомпилировать этот код обращения ко всем заинтересованных субъектам.
В этом случае очень подошло бы иметь такую структуру, в которой каждый участник, если он заинтересован в каких-либо событиях системы, мог бы самостоятельно «подписаться» на эти изменния независимо от других заинтересованных участникам – и, таким образом, получая уведомления об этих событиях – выполнять требуемые ответные действия.
В результате – не создается лишних связей: есть источник значимых действий, есть заинтересованные в фактах выполнения этих действий субъекты, никак не связанный друг с другом, количество которых при этом – также неограниченно.
Паттерн-наблюдатель описывает именно такой подход: определяет зависимость типа «один ко многим» между объектами таким образом, что при изменении состояния одного объекта все зависящие от него оповещаются об этом и автоматически обновляются.
Реализация паттерна поведения Наблюдатель (Observer).
/** Observer design pattern sample
*/
import java.util.ArrayList;
import java.util.List;
public class Child {
// --
List list = new ArrayList();
void addObserver(Observer o){
list.add(o);
}
void removeObserver(Observer o){
list.remove(o);
}
void notifyObservers(){
for (Observer o:list){
o.update();
}
}
// --
void childGrow(int newAge){
System.out.println("Age of child changed to " + newAge);
notifyObservers();
}
public static void main(String []s){
Child ot = new Child();
ot.childGrow(1);
ot.addObserver(new Food());
ot.addObserver(new Toys());
ot.addObserver(new Clothes());
ot.childGrow(3);
ot.removeObserver(new Food());
ot.childGrow(10);
ot.removeObserver(new Toys());
ot.childGrow(15);
ot.addObserver(new Food());
ot.childGrow(20);
ot.removeObserver(new Food());
ot.removeObserver(new Clothes());
ot.childGrow(25);
}
}
interface Observer {
void update();
}
abstract class BaseObserver implements Observer {
public boolean equals(Object obj) {
return this.getClass().equals(obj.getClass());
}
}
class Clothes extends BaseObserver {
public void update() {
System.out.println("Change childs' clothes");
}
}
class Toys extends BaseObserver {
public void update() {
System.out.println("Change childs' toys");
}
}
class Food extends BaseObserver {
public void update() {
System.out.println("Change childs' food");
}
}
Итак, у нас есть класс Child , который описывает модель ребёнка, основное действие - ребёнок растёт : childGrow, и в зависимости от возвраста ребёнка необходимо менять одежду, еду, игрушки - эти сущности описываются классами Clothes, Food, Toys соответственно. Эти три сущности реалиузют интерфейс Observer через класс BaseObserver.
После создания экземпляра класса ребёнка мы можем добавить или удалить специфических наблюдателей, и при достижении ребёнком какого то возраста (вызов childGrow) автоматически произойдёт обновление зарегистрированных в это время слушателей.
Источники:
Ппаттерн наблюдатель
Observer pattern
Speaking on the Observer pattern
22 ноября 2008
Перенаправление системного вывода в файл
Для того что бы выводить информацию из Java программы в файл не обязательно использовать навороченные системы логгирования.
Можно просто перенаправить стандартный поток вывода и стандартный поток для ошибок в файл.
Сделать это можно с помощью следующего фрагмента кода:
Можно просто перенаправить стандартный поток вывода и стандартный поток для ошибок в файл.
Сделать это можно с помощью следующего фрагмента кода:
PrintStream st = new PrintStream(new FileOutputStream("output.txt"));
System.setErr(st);
System.setOut(st);
20 ноября 2008
Java EE справочник по русски
Java 2 Enterprise Eddition (J2EE)
Обзор J2EE:
- Введение
- Модель приложений
- Установленные стандарты
- J2EE. Обеспечение совместимости, переносимости и возможности сетевого взаимодействия (PDF)
Учебник по J2EE (PDF):
- Предисловие
- Обзор
- Введение
- Пример сессионного компонента
- Примеры управляемой компонентами персистентности
- Корпоративные компоненты
Разработчикам:
- Платформа Java (PDF)
- Руководство по Web-сервисам (PDF)
- Новое в спецификации Enterprise JavaBean 2.0
- Процесс разработки B2B-приложений (PDF)
- Корпоративные компоненты JavaBeans и клиенты CORBA: Руководство разработчика (PDF)
- Основы сервлетов Java
- Основы RMI
- Руководство: Сервлеты (PDF)
- Технология Java Servlet
- JavaServer Pages
- Средство связывания данных XML для платформы Java (PDF)
- Переносимые данные/переносимый код: технологии XML и Java (PDF)
- Архитектура коннектора J2EE (PDF)
- Архитектура J2EE Connector
- Язык описания интерфейсов Java (Java IDL)
- Java Transaction API (JTA)
- Java Transaction Service (JTS)
- JavaMail 1.2 API
- Основные паттерны J2EE
- Core J2EE Pattern Catalog (PDF)
- Business Delegate (PDF)
- Composite Entity (составная сущность) (PDF)
- Composite View (PDF)
- Data Access Object (объект доступа к данным) (PDF)
- Dispatcher View (PDF)
- Front Controller (PDF)
- Intercepting Filter (PDF)
- Service Activator (PDF)
- Service Locator (локатор службы) (PDF)
- Service to Worker (PDF)
- Session Facade (фасад сессии) (PDF)
- Transfer Object Assembler (сборщик объекта перемещения) (PDF)
- Transfer Object (объект перемещения) (PDF)
- Value List Handler (обработчик списка значений) (PDF)
- View Helper (PDF)
17 ноября 2008
JScience : Java научная библиотека
JSscience - всеобъемлющая Java библиотека предоставляющая API для научных вычислений. API включает функции для выполнения различных задач из таких областей науки, как : физика, биология, социология, астрономия, экономика, география и др.
Описание некоторых возможностей:
Документация(версия 4.3.1)
Скачать библиотеку(версия 4.3.1)
Описание некоторых возможностей:
- Модуль coordinates совместимый с OGC/ISO спецификацией для разработке географических
- linear algebra - модуль включающий параметризированный класс матрица , позволяющий решать линейные уравнения различной сложности.
- measurements - модуль для произведения измерений различной точности
- models - модуль поддерживающий различные физические системы.
- monetary- модуль для проведения валютных операций из заданой точностью.
Документация(версия 4.3.1)
Скачать библиотеку(версия 4.3.1)
SwisSQL - Oracle to Java Migration Tool
SwisSQL- утилита для преобразования Oracle PL/SQL кода в Java. SwisSQL на вход получает код пакетов, функций, процедур, тригеров и преобразует в Jdbc код.
Подписаться на:
Сообщения (Atom)