Dec 14, 2009

CZJUG Prosinec - Vaadin a Vánoční hrátky s JAXB

Prosincové setkání Czech Java User Group probehne 14.12. od 19 hodin v posluchárně S5 na Matematicko-fyzikální fakultě Karlovy Univerzity na Malostranském náměstí 25, Praha 1.
  • Vaadin - Rich web applications in plain Java without plugins or JavaScript
  • Vánoční hrátky s JAXB

Dec 13, 2009

Xmarks for Chrome!

Xmarks is the #1 bookmarking add-on. Xmarks synchronizes across multiple computers, and across web browsers: Chrome, Firefox, Safari and Internet Explorer. After you install the add-on, click on the notification to set up Xmarks and start backing up and synchronizing your bookmarks. Xmarks sync profiles give you full control over which bookmarks are synced to which computers, allowing you to keep private bookmarks at home while syncing everything else to your work computer. Xmarks automatically keeps a backup of each bookmark change, making it easy to backup and restore your bookmark sets.

Dec 7, 2009

HTTP basic authentication with JAX-WS (Client)

JAX-WS does not do very well with HTTP basic authentication. In general, to create and use a web-service client you have to perform the following steps: 1. Use wsimport to generate the stub files 2. Create a service class in the client 3. Retrieve a proxy to the service, also known as a port All three steps could require HTTP basic authentication. And for each step it have to be handled in a different way.

1. The stub files generation

If access to a wsdl file is restricted with basic authentication, wsimport fails to get it. Unfortunately it does not support the common approach to write access credentials right into the
URL (RFC 1738). It is not a big deal to resolve this issue. You just need to create a server authentication file: $HOME/.metro/auth. This file should have the WSDL URL with username and password in the RFC 1738 format:
You can have line delimited multiple entries in this file and they can be used for various sites that need basic authentication.

2. The service class creation

A constructor of the service object requires access to the WSDL. And again it does not support basic authentication out of the box. You have an option to download the wsdl file and use it locally. Another option is to use the default authenticator:
Authenticator.setDefault(new Authenticator() {
 protected PasswordAuthentication getPasswordAuthentication() {
   return new PasswordAuthentication(

3. The service class configuration

And the last but not least part of our adventure is configuration of the service port:
OurWebService service = new OurWebService ();
OurWebServicePortType port = service.getOurWebServicePortType();

BindingProvider bindingProvider = (BindingProvider)port;
Map requestContext = bindingProvider.getRequestContext();
requestContext.put(BindingProvider.USERNAME_PROPERTY, USER_NAME);
requestContext.put(BindingProvider.PASSWORD_PROPERTY, PASSWORD);
Done! Now you are able to use methods of the port object to communicate with a web service.

Dec 2, 2009

java6 splash screen and maven project

Splash screens are a standard part of any modern graphical user interface (GUI) application. Their primary purpose is to let the user know that the application is starting up. An application that displays a polished and professional-looking splash screen can occupy the user's attention and gain the user's confidence that the application is starting. Fortunately, Java™ SE 6 provides a solution that allows the application to display the splash screen even before the virtual machine starts. A Java application launcher is able to decode an image and display it in a simple non-decorated window. How to configure splash screen for the application in a maven project? 1. Put you splash screen image somewhere in a class path. Let it be something like "YourProjectName/src/main/resources/images/splash.png" 2. Add maven-jar-plugin to the POM file 3. Configure a manifest generation The final fragment of the POM file looks like one below:

Nov 21, 2009

Reiser4 May Go For Mainline Inclusion In 2010

source... The Reiser4 file-system has been around since 2004 but has not reached a point of being close to be included in the mainline Linux kernel, especially after the lead developer, Hans Reiser, was convicted of murdering his wife. Development of Reiser4 has continued on, albeit with a very limited number of developers, and not nearly at the brisk pace of Btrfs or with great interest by corporate parties. The last TODO list update on the Reiser4 file-system was posted back in April with just five items un-addressed. In late July it was then shared by Edward Shishkin, a former employee of Hans Reiser's Namesys who has since effectively taken over work on Reiser4, that in the Autumn they would begin exploring the opportunity of getting this file-system in the mainline Linux kernel. In the United States, the end of Autumn is nearing and Winter is approaching, but there hasn't yet been any push to get Reiser4 into the mainline Linux kernel. What has happened? Well, we asked Shishkin. Before asking Linus to pull Reiser4 into the mainline Linux kernel, he first wants to publish a plug-in design document in a scholarly magazine in order to facilitate some independent expert review. After missing the deadline for FAST 2010, Shishkin is now hoping to publish this Reiser4 document for USENIX Annual 2010. This would be due in January, but their annual conference does not take place until June. After that, they can focus on finally getting this advanced Linux file-system into the mainline code-base. It's possible we could possibly see Reiser4 in the mainline Linux kernel in H2'2010. Assuming this all works out and Shishkin and the other developers go for inclusion shortly thereafter, it would put Reiser4 on the block around the Linux 2.6.36 time-frame.

Nov 16, 2009

Google Chrome OS To Launch Within A Week

source... Google’s Chrome OS project, first announced in July, will become available for download within a week, we’ve heard from a reliable source. Google previously said to expect an early version of the OS in the fall. What can we expect? Driver support will likely be a weak point. We’ve heard at various times that Google has a legion of engineers working on the not so glamorous task of building hardware drivers. And we’ve also heard conflicting rumors that Google is mostly relying on hardware manufacturers to create those drivers. Whatever the truth, and it’s likely in between, having a robust set of functioning drivers is extremely important to Chrome OS’s success. People will want to download this to whatever computer they use and have it just work. We expect Google will be careful with messaging around the launch, and endorse a small set of devices for installation. EEE PC netbooks, for example, may be one set of devices that Google will say are ready to use Chrome OS. There will likely be others as well, but don’t expect to be able to install it on whatever laptop or desktop machine you have from day one. Google has previously said they are working with Acer, Adobe, ASUS, Freescale, Hewlett-Packard, Lenovo, Qualcomm, Texas Instruments, and Toshiba on the project. We’ve seen convincing and not so convincing screenshots of Chrome OS over the last several months. The good news is the speculation is about to end, and you can try it out yourself. If you have one of the supported devices, that is.

Nov 3, 2009

SwingX 1.6 released

Just 5 months after the 1.0 release, SwingX team is pleased to announce yet another release. This release signifies the big step in the project. This releave version number signifies abandoning the compatibility with Java 5 and aligning the base line with the Java 6. The release contains bug fixes, introduces full Nimbus Look and Feel support and removes all dependencies on Java 5 related libraries and code changes.
Release notes:

Nov 1, 2009

Metawidget 0.8 - 0.85 migration - trying ordeal you have to deal with

Metawidget 0.85 is released. A great work was done to improve architecture of this framework. Now API looks mature and straightforward. But backward compatibility is broken. Here is a list of main changes:
  • WidgetProcessors and refactored internal pipeline
  • Upgraded RichFaces support (SuggestionBox, TabPanel and RichPanel)
  • Upgraded ExtGWT support to 2.0.1 (includes new Slider widget)
  • Much more documentation
  • XML Schemas for all components
  • Bug fixes; and
  • More unit tests
The official migration guide: My migration experience: PS. Actually it was impossible to migrate my project to 0.85 version, I had to use patched one. PPS. Finally I have migrated my project to 0.85 release. Many thanks to Richard Kennard for support.

Oct 31, 2009

What are Oracle’s plans for NetBeans?

Oracle has a strong track record of demonstrating commitment to choice for Java developers. As such, NetBeans is expected to provide an additional open source option and complement to the two free tools Oracle already offers for enterprise Java development: Oracle JDeveloper and Oracle Enterprise Pack for Eclipse. While Oracle JDeveloper remains Oracle’s strategic development tool for the broad portfolio of Oracle Fusion Middleware products and for Oracle’s next generation of enterprise applications, developers will be able to use whichever free tool they are most comfortable with for pure Java and Java EE development: JDeveloper, Enterprise Pack for Eclipse, or NetBeans. Original document link.

SwingX 1.6?

Two days ago the a new TAG was created in the subversion repository of the project. It is SwingX-1-6 with comment: "Release of SwingX 1.6.". There is an forum topic I have found:
Covered a lot of distance since final SwingX 1.0. The most important was target jdk1.6. This implied to remove 1.5 specifics, hacks and - most prominently - re-doing sorting/filtering core-style. That and lots of internal cleanup resulted in fixing 80+ issues so far. Another about 20 issues are targeted at 1.x, that is the next release, but could easily be moved to the second next. Obviously, those changes will break existing code. And are bound to have added new bugs ;-) But on the whole, I think it's a rather stable state right now and as such a good opportunity for a release. Would call it 1.5 because so much has changed. And would love to push it out of the door as soon as possible, as long as it is half-way stable. Next major changes will be - new/replaced components, like JXTreeTable going JXXTreeTable and JXComboBox which uses a sortable, highlightable JXList - enhanced Nimbus (and general Synth) support Comments highly welcome! Jeanette
Other related links: SwingXChanges

Oct 28, 2009

Apache Velocity is my choice.

If you need to generate some text (HTML, SQL, e.t.c.) you have a significant number of options. Even for java we have a lot of engines and tools. How to choose a right solution? I have performed several tests to make a picture a bit more clear. Tested approaches are enumerated below: Full tests report you could find here. Source code could be found here.

New Substance - old problems!

A new release (5.3) still useless for me. The unresolved issues with SwingX components prevent from using this well looking and features rich LnF in my projects. Some screen-shots are below. I have created a simple application to demonstrate issues with SwibgX (1.0) components under Substance (5.3) LnF. First of all JXErrorPane while resizing run out of screen. It looks really ugly. Secondly JXTable looks absolutely different of JTable. Here is the source code to reproduce the behavior depicted above.
package javatabletest;

import java.awt.GridLayout;
import java.awt.HeadlessException;
import java.util.Vector;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
import javax.swing.table.DefaultTableModel;
import org.jdesktop.swingx.JXErrorPane;
import org.jdesktop.swingx.JXTable;

public class Main {

    static class MyTableModel extends DefaultTableModel {

        public MyTableModel(Object[][] data, Object[] columnNames) {
            super(data, columnNames);

        public Class<?> getColumnClass(int columnIndex) {
            return (columnIndex == 4)?Boolean.class:Object.class;


    static Vector createDataVector(int id, String n, boolean a){
        Vector v = new Vector();
        return v;

    public static void main(String[] args) {

        SwingUtilities.invokeLater(new Runnable() {

            public void run() {
                try {
                    UIManager.setLookAndFeel(new SubstanceBusinessLookAndFeel());
                } catch (UnsupportedLookAndFeelException ex) {
                    Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
                JXErrorPane.showDialog(new Exception());

    private static void createUI() throws HeadlessException {
        JFrame frame = new JFrame("Table test");

        String[] columnNames = {"First Name",
                                "Last Name",
                                "# of Years",

        Object[][] data = {
            {"Mary", "Campione",
             "Snowboarding", new Integer(5), new Boolean(false)},
            {"Alison", "Huml",
             "Rowing", new Integer(3), new Boolean(true)},
            {"Kathy", "Walrath",
             "Knitting", new Integer(2), new Boolean(false)},
            {"Sharon", "Zakhour",
             "Speed reading", new Integer(20), new Boolean(true)},
            {"Philip", "Milne",
             "Pool", new Integer(10), new Boolean(false)}

        MyTableModel model = new MyTableModel(data, columnNames);
        JTable table1 = new JTable(model);

        JTable table2 = new JXTable(model);

        JPanel panel = new JPanel(new GridLayout(2, 1));

        JScrollPane pane1 = new JScrollPane(table1);
        JScrollPane pane2 = new JScrollPane(table2);



Oct 19, 2009

Better Swing Application Framework 1.9 Milestone 1

It is a first real release of this project. Changes since bsaf-1.9EA2: 1. SessionStorage class is refactored 2. Custom property support could be plugged in to the session storage 3. Bug fixes 4. Unit tests fixes Download

Sep 28, 2009

New certificate - SQL

Demonstrates a clear understanding of many advanced concepts within this topic. Appears capable of mentoring others on most projects in this area. Strengths
  • Subqueries
  • Multi-Table Queries
  • Data Definition Language
  • Queries
  • Aggregate Queries
  • Data Modification
Weak Areas
  • None Noted

Sep 27, 2009

Better Swing Application Framework 1.9 Early Access 2 release

Link to download: Release notes: This release is a new starting point for the project. It is based on SAF 1.03 sources with minimal changes:
  • Maven as a build tool
  • Removed dependency on the org.jdesktop.swingworker.SwingWorker.

Sep 12, 2009

Metawidget is an easy way to do a complex UI.

Introduction Official site of the project:
Metawidget is a 'smart User Interface widget' that populates itself, at runtime, with UI components to match the properties of your business objects.
In this article you can find some useful information for quick start. Additional documentation, forum and wiki are available on the official site. Full article link...

Sep 4, 2009

Skype for Linux

Отличные новости для тех, кто вынужден использовать Skype под Linux. Доступна новая версия. Не релиз, но вполне пригодная для использования. Лично для меня в ней решено множество проблем. Пользуюсь уже 2 недели с огромным удовольствием. Основные изменения:
  • Нормальная поддержка PulseAudio
  • Значок в трее показывает количество уведомлений
  • Вернули поддержку групп контактов
  • Реализованы ярлыки для контактов
  • Можно войти в публичные чаты из меню
  • deb-пакет для Ubuntu x86_64, с правильными зависимостями
Страница для скачивания.

Jul 6, 2009

Чиновники не дают Oracle купить Sun

Поздно вечером 26 июня Министерство юстиции США выпустило короткое заявление, где сообщило о том, что антимонопольное расследование в отношении слияния Oracle и Sun будет продолжено, сообщает The Wall Street Journal. Впрочем, в Oracle не сомневаются, что это лишь небольшая задержка, и в конце концов регулятор примет положительное решение. «У нас состоялся очень хороший диалог с Министерством юстиции, и мы почти что сумели уладить все до истечения срока перед подачей повторного прошения, - отм… полный текст

Источник: CNews

Jun 7, 2009

New certificate - XSL

Scored higher than 92% of all previous test takers. Demonstrates a clear understanding of many advanced concepts within this topic. Appears capable of mentoring others on most projects in this area. Strengths
  • XSL Formatting
  • XSL Transformation
  • General Knowledge
Weak Areas
  • None Noted
But the master level is the next target for me. Done! 4.30 Scored higher than 99% of all previous test takers.

May 28, 2009

If Programming Languages ran the Airlines

We all know the hilarious page titled "If Operating Systems ran the airlines". If you don't know it, you can find it here. I thought it was time for another version, with Programming Languages instead of Operating Systems. Enjoy! PL/1 Mainframe Air: You arrive at the airport. It's not really an airport, but actually an old wooden building next to the river. You ask why there isn't a real airport. A very old man answers you that they have been building with wood ever since the beginning of construction, so it must be good. You ask where you can check in and when your plane leaves, but you are answered that they really don't have any planes, because they think planes are too modern. Instead, you must place your luggage and yourself into a rowing boat in the river. This is because people have been using rowing boats for centuries, so rowing boats have proven that they work very good. You argue that a rowing boat can't possibly take you to your destination 2000 miles away, but the old man insists that you try. After all, the rowing boat has never let HIM down. The fact that he only ever went as far as 2 miles up the river can't convince him. In the end, with no choice left, you decide to give it a try. At first, all goes quite well. The old man can steer the rowing boat very fast down the river, but when you finally arrive at sea, the old man has a heart-attack and dies. You are now in the middle of the ocean, with nothing but a pair of paddles. Good luck. C++ Air: When you enter the airport, there are 5 entrances. You walk towards one, but then someone warns you that, if you choose one, you can never switch back and everything, including the destination of your journey, will depend on it. After thourough consideration, you find the entrance that is best for you. You go to a checkin terminal to check in, and you receive a ticket with everything from you name and address to the name of your dog (which you left home) and the contents of your wardrobe. You ask why there is so much information that isn't necessary for the flight and you are answered that this is good, because then, you are in complete control of what you are doing. When you sit down at a table at a restaurant, the waiter won't bring you anything, because you have the wrong flight-ticket. If you ask what this has to do with getting food, you are told that you should have thought of this before you chose a ticket. A bit confused, you enter the airplane. You are given a meal with a couple of slices of bread and a samurai-sword to cut them. Around you, you see everyone try to slice the bread, while accidentally cutting of their own limbs and fingers. You ask the man next to you why they don't just give you a normal knife to slice your bread and you tell him that swords are very dangerous, but the man says that only a samurai sword is sharp enough to slice bread and that you are stupid and a noob if you can't do it. At least, the airplane is very very fast and you get to your destination in a very short time, but when you approach the destination airport, the pilot receives a message that the landing airstrip has changed. Because the airplane is unable to change the destination landing strip after take-off, the pilot returns to the airport where it left from and will have to start the flight all over again. PHP Air: When you arrive at the airport, you see a lot of people dragging parts of airplanes around. When you ask why this is, a man says that you need airplanes in order to fly, so that's why they are building them. You ask if there aren't any pre-made planes that have passed security tests, but the man has already dissappeared with a big wing under his arm. Once you board your airplane (the left wing is still not finished, but the stewardess promises that it will be before take-off), you meet a little kid. You ask him if this is his first flight, but it appears that he is actually the pilot of the plane. The kid tells you all about the fact that he has played with toy-airplanes when he was a baby and that he has a real pilot's uniform, so he is more than qualified to fly the plane. When the plane takes off, there is a lot of turbulence, but after a while, it gets better and the plane is on it's way. When you fly above the ocean, the plane is suddenly hit by a thunderstorm. The little kid gets a little frightened, but he tries his best to save the situation. When more and more people start to panic, the little kid begins to cry and gives up. You try to steer the plane yourself, but there is no usermanual anywhere to be found. When the plane heads towards crashing in the ocean, you look outside the window and you see a man screaming in a rowing boat. At least, you will not go down alone... .NET Airlines: You arrive at a very modern terminal. There is only one counter where you can check in, but you don't have to wait and you are helped by a very friendly woman. After checking in, you decide to get something to eat. There is only one restaurant, and it's pretty expensive, but the food is very good, so you don't mind. You are guided to your plane by another very friendly stewardess. There is only one corridor through which you can walk, so you don't really need the help, but on the other hand, it's quite comfortable. Your plane is the only plane at the airport, but it's a very nice one, with very nice chairs and a wonderful in-flight dinner. After about 20 minutes in the air, you land at exactly the same airport as where you left from, because it's the only airport where .NET airplanes can land. Java Air: You arrive at the airport with all your luggage. It's kinda heavy, so you sigh: "I wish I had someone to carry it for me..." Immediatly, out of all corners of the terminal, people start running towards you, offering you their services. Some ask a little money, but most of them do it for free, because they like hauling with luggage. At first, you are totally overwhelmed by this many people offering you stuff, but after a while, you get to know some of them and they are quite nice. When arriving at your airplane, there is not one, but five, all totally different, but they are all airplanes and they all bring you where you want to go. Some of them are even free. You see some people, especially people with suits and ties, who don't trust all the free airplanes and are anxious to choose from so many options. They all walk into a big blue building. You hear that you can let the people inside the blue building do everything for you and make the choices for you, if you pay them enough, but since you're a little short on cash and also because you never actually see anyone come OUT of the blue building again, you decide to fly with one of the free airplanes. After a pleasant flight, you arrive at your destination. You try to convince your friends to travel with Java Air too, but all they can say is: "Was it FREE??? Then it cannot be good..." Ruby Air (courtesy of Ryan Daum): You arrive at the airport, which is actually a nightclub. There is a band playing at the check-in desk. They are playing music which sounds like New Wave from the early 80s, but the band is made up of people born after 1975. You swear that the woman at the ticket counter looks like Adele Goldberg, but she just looks at you funnily, and won't let you past until you exchange your Dell laptop for a MacBook Pro. You are told the only place the plane will land is Portland. The interior of the plane is retro-chic, and the pilot has piercings and spikey hair. After take-off, the landing gear of the plane won't retract, and is missing oxygen masks, but the pilot says that's O.K., because when he build the plane he used unit tests. Halfway through the flight, the plane runs out of fuel, and you are all forced to transfer onto a new plane after a brief landing on a pacific island. You see Jack Sheppard on the island. JavaFX Air (courtesy of Sven Hafner): This one is an offspring of a very traditional airline which is around for some ten years, with a good safety record, but aircrafts available in grey color and flying to all business destinations. The new sibling starting up is very colorful and supposed to fly to hip and colorful holiday destinations using whatever aircraft you like, including hot air balloons, surfboards and submarines, though it doesn't offer flights on freely available aircrafts (not yet). You buy a ticket with fancy 3D holograms printed on it and the flight attendants are not walking along the aisle but sliding in from the side. Before you board you can easily choose the color scheme of the plane, but then you need to paint it by yourself because there is no one doing that for your with fancy tools. It is fun flying with them. They are competing with the other budget airlines, Silverlight Air and Flex Air. Erlang Air (courtesy of Zubin Wadia): You arrive at a fairly rudimentary airport on your way to Tokyo. Only Herring is available in the food court, along with bottled water. No explanation is given in regards to the dearth of options. Stranger still, all the staff appear to have very restricted linguistic skills coupled with awkward inflections in their speech. Regardless, you figure out how to check in and get on the plane. Predictably, more Herring is served. Unfortunately, the plane hits an air pocket, resulting in a massive drop in altitude, in turn leading to the engines burning out. Strangely, all the staff are calm, they move to the exit doors and open them mid-flight... Absolute chaos reigns momentarily as we get sucked out of the aircraft and into thin air. Just as suddenly, we’re back in an aircraft, it appears to be the same one, we all have the same seats and we’re still heading to Tokyo. Author: Gert-Jan Schouten

Apr 25, 2009

Scala 2.7.4 final

It's ready! The new stable release of the Scala distribution, Scala 2.7.4 final, is now available from our Download Page. This version will be the last release of the 2.7.x branch, and will also be the last one to support the old version 1.4 of the Java Virtual Machine.

Apr 23, 2009

Microsoft предоставит российским специалистам широкие возможности по анализу программного кода

Microsoft планирует обеспечить в России более широкие возможности по анализу кода основных продуктов компании. Об этом заявил президент «Microsoft Россия» Николай Прянишников. По его словам, у Microsoft существует соглашение о том, что компания открывает доступ к своим продуктам соответствующим органам в России. Кстати, Россия была первой страной, в которой Microsoft заключил такое соглашение в 2002 году. «Мы намерены пойти в этом направлении еще дальше. Microsoft планирует создать в России своего рода «чистую комнату», где будут представлены более широкие возможности по анализу кода основных продуктов компании, которые поставляются в Россию. К ним будет иметь доступ строго ограниченный круг лиц, представляющих российские компетентные органы, отвечающие за безопасность использования компьютерного программного обеспечения в стране. Таким образом будет обеспечен, с одной стороны, полный государственный контроль за безопасностью применения ПО Microsoft в России, а с другой – надлежащая защита интеллектуальной собственности, лежащей в основе наших программных продуктов. Я думаю, что Россия в этом смысле может подавать пример и другим странам», – отметил он.

Ubuntu 9.04 - Coming Soon!

Ubuntu 9.04 Desktop Edition delivers a range of feature enhancements to improve the user experience. Shorter boot speeds, some as short as 25 seconds, ensure faster access to a full computing environment on most desktop, laptop and netbook models. Enhanced suspend-and-resume features also give users more time between charges along with immediate access after hibernation. Intelligent switching between Wi-Fi and 3G environments has been broadened to support more wireless devices and 3G cards, resulting in a smoother experience for most users.

Apr 20, 2009

Sun and Oracle

SANTA CLARA, Calif., April 20, 2009 -- Sun Microsystems (NASDAQ: JAVA) and Oracle Corporation (NASDAQ: ORCL) announced today they have entered into a definitive agreement under which Oracle will acquire Sun common stock for $9.50 per share in cash. The transaction is valued at approximately $7.4 billion, or $5.6 billion net of Sun's cash and debt.

Apr 16, 2009

Выпущена первая бета PostgreSQL 8.4

Первая бета версии 8.4 наиболее развитой системы управления базами данных с открытыми исходными кодами PostgreSQL только что выпущена Всемирной командой разработчиков PostgreSQL (PostgreSQL Global Development Group). После 14-ти месяцев разработки версия 8.4 представлена для тестирования широкому кругу пользователей во всём мире для того, чтобы сделать релиз этой версии наиболее качественным за всю историю развития проекта.

Apr 4, 2009

I.B.M. Reportedly Will Buy Rival Sun for $7 Billion

I.B.M. appears on the verge of acquiring Sun Microsystems, a longtime rival in the computer server and software markets, for nearly $7 billion.
link April 5, 2009
I.B.M. withdrew its $7 billion bid for Sun Microsystems on Sunday, one day after Sun’s board balked at a reduced offer, according to three people close to the talks.

Mar 29, 2009

Sony Ericsson will support JavaFX™ Mobile
Sony Ericsson is committed to delivering innovative and energized user experiences to our consumers, working closely with partners who share the creativeness and vision." says Rikko Sakaguchi, Corporate Vice President and Head of Creation and Development at Sony Ericsson.
We see JavaFX as a natural fit to our mobile software platform strategy to enable developers, both in-house and in our ecosystem, to create superior, innovative, expressive mobile applications and services. Sony Ericsson expects that JavaFX will have a great impact on the mobile content ecosystem and plan to bring JavaFX to a significant part of our product portfolio.

The rise of the Blue Sun: IBM and Sun

The news broke this morning, March 18th, that IBM is talking to Sun about buying the company. Sources from both companies tell me that such a deal is in the works and it may be completed as early as this week. Full story...

Mar 28, 2009

Toward NetBeans application platform!

Всем известно, что в мире Desktop Java есть уже 2 платформы для построения тяжелых пользовательских приложений с богатым графическим интерфейсом. Прежде всего это eclipse platform и, набирающий последнее время популярность, NetBeans Rich-Client Platform. Недавно я наткнулся на несколько примеров миграции приложений на платформу NetBeans. Прежде всего это SQuirreL SQL Client - очень удобный универсальный SQL клиент ко всем популярным серверам баз данных. Он особенно полезен, когда необходимо работать одновременно с несколькими базами. Последние 2 версии (начиная с 3.0.0) этот замечательный клиент получил новый GUI. Теперь он может похвастаться очень удобными и функциональными "табами", которые позаимствованы у NetBeans. Похоже оттуда же взят механизм обновления модулей. Это тоже очень удобная функция. Процесс обновления (проверенно на версии 3.0.1) стал быстрым и приятным. Для фанатов чистого MDI доступен старый вариант интерфейса. Другой пример - iReport. Это официальный дизайнер и редактор для популярной системы генерации отчетов JasperReports. Начиная с версии 3.1.2 программа полностью переписана на платформу NetBeans. Это глобальное изменение не прошло даром. С одной стороны мы имеем современный и функциональный интерфейс снаружи и модульную архитектуру внутри. Возможность интеграции редактора отчетов непосредственно в NetBeans IDE. С другой стороны очень сырой и нестабильный продукт (3.1.2 - 3.1.3). Редактор отчетов полностью изменен по виду и идеологии. В результате не стоит ожидать хорошо отточенного инструмента. Пока все очень не доделано и не додумано. Но использовать уже вполне можно. Много ошибок было исправлено в 3.1.4 версии. Собственно эта версия уже пригодна к применению в реальных проектах. Ваш покорный слуга уже успел создать в нем более 10 отчетов различной сложности, и все они успешно пошли в "продакшн". Буквально недавно (2009-03-25) вышла версия 3.5.0. Я ее еще не пробовал, но надеюсь, что там все будет работать еще лучше и стабильней. Особо хочется предупредить пользователей NetBeans IDE. Идея интеграции редактора отчетов в среду разработки очень заманчива, но я не советую прямо сейчас этого делать. Все мои попытки закончились плачевно. Установка модуля редактора отчетов, может привести к краху всего IDE или отдельных модулей. В последних версиях перестает работать Web Services Client. Поэтому пока безопаснее использовать iReport и NetBeans IDE отдельно. Постепенно я прихожу к заключению, что настало время внимательно взглянуть на платформу NetBeans и, возможно, начать ее использовать для клиентских приложений. Эта тема особенно актуальна в свете очень непонятного положения более легкого Swing Application Framework (JSR 296).

Mar 23, 2009

PDF printing under SUSE linux

Возникла необходимость "печати в файл" для отладки различного рода отчетов и экономии бумаги (кризис как ни как!). Есть много различного рода "псевдо" принтеров, которые это делают под Windows, но на рабочем компьютере стоит SUSE Linux. Интуиция подсказывает, что это должно быть просто, так как печать в линукс построена вокруг формата PostScript. А от него и до PDF недалеко. Но вот на какую конкретно кнопку надо нажать, чтобы все заработало? По теме была найдена неплохая статья. Но в реальности все оказалось даже проще. Задача решается за несколько простых шагов:
  1. Скачиваем пакет cups-pdf, воспользовавшись поисковой системой openSUSE Build Service
  2. Устанавливаем пакет cups-pdf
  3. Запускаем yast2 и переходим на вкладку hardware/printers
  4. Делаем виртуальный принтер "Virtual PDF Printer (CUPS-PDF)" принтером по умолчанию.
  5. Редактируем конфигурацию /etc/cups/cups-pdf.conf, например устанавливаем путь, куда будут складироваться распечатанные pdf файлы, по умолчанию они сохраняются в папку /var/spool/cups-pdf/$USERNAME/
  6. Выполняем тестовую печать