programování

...now browsing by tag

 
 

Android Chess Clock 1.0-b3 released today

Saturday, February 6th, 2010

I have released next version of Android Chess Clock. Major change is refactoring of calculation engine to support multiple calculation strategies in future. Although this change is not visible for user today it is investment for future.

Screenshots

acc-main acc-main-l

Major changes in this release

  • slight screen design graphic improvement
  • added different layout for landscape screens
  • when any player runs out of time application allows one click reset of time to start next game quickly
  • added feedback button to About screen
  • various small code improvements

Coming soon

  • additional time control algorithms

Mám rád Bugzillu, je kdyby se tak jmenovala jinak…

Friday, August 7th, 2009

Na našem posledním projektu používáme na evidenci změn Bugzillu. Je to velice praktický nástroj, hodně vývojářům a testerům pomáhá, nehledě na snadnou integraci přímo do testovaného produktu (vyhozená exception může být snadno reportována do Bugzilly).

Máme ale s Bugzillou jiný problém.
Click to continue »

Netbeans performance problem: JPanel form is much slower if running inside RCP

Wednesday, August 5th, 2009

Last week I was fighting with very strange performance issue. We have quite complicated JPanel form and I was doing some performance opmtimization. I thought that it is now OK, but when then same form was executed as component inside NetBeans Rich Client Platform, it was horribly slow.

Click to continue »

How to submit Bugzilla bug using XML/RPC and pure Java

Thursday, July 16th, 2009

Our project uses Bugzilla for tracking issues. I was looking for solution how to submit occured exception programatically. I found quite simple solution using Groovy and I have adapted it to pure Java.

Here is the source code:

import java.net.MalformedURLException;
import java.net.URL;
import java.util.HashMap;
import java.util.Map;
import org.apache.commons.httpclient.HttpClient;
import org.apache.xmlrpc.XmlRpcException;
import org.apache.xmlrpc.client.XmlRpcClient;
import org.apache.xmlrpc.client.XmlRpcClientConfigImpl;
import org.apache.xmlrpc.client.XmlRpcCommonsTransportFactory;

public class Main {
   public static void main(String s[])
      throws MalformedURLException, XmlRpcException {

        HttpClient httpClient = new HttpClient();
        XmlRpcClient rpcClient = new XmlRpcClient();
        XmlRpcCommonsTransportFactory factory = new XmlRpcCommonsTransportFactory(rpcClient);
        XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl();

        factory.setHttpClient(httpClient);
        rpcClient.setTransportFactory(factory);
        config.setServerURL(new URL("http://bugzilla.example.com/xmlrpc.cgi"));
        rpcClient.setConfig(config);

        // map of the login data
        Map loginMap = new HashMap();
        loginMap.put("login", "tomas.hubalek@....");
        loginMap.put("password", "*top*secret*");
        loginMap.put("rememberlogin", "Bugzilla_remember");

        // login to bugzilla
        Object loginResult = rpcClient.execute("User.login", new Object[]{loginMap});
        System.err.println ("loginResult=" + loginResult);

        // map of the bug data
        Map bugMap = new HashMap();

        bugMap.put("product", "Playground");
        bugMap.put("component", "Database");
        bugMap.put("summary", "Bug created from groovy script");
        bugMap.put("description", "This is text including stacktrace");
        bugMap.put("version", "unspecified");
        bugMap.put("op_sys", "Linux");
        bugMap.put("platform", "PC");
        bugMap.put("priority", "P2");
        bugMap.put("severity", "Normal");
        bugMap.put("status", "NEW");

        // create bug
        Object createResult = rpcClient.execute("Bug.create", new Object[]{bugMap});
        System.err.println("createResult = " + createResult);
     }
 }

Usage of Apache XML RPC Client is quite straightforward, only gotcha is that mapped parameters must be set passed as new Object[]{bugMap}. Otherwise you get ClassCastException.

Před anglicky mluvícími managery nikdy nepoužívejte slovo Subversion, nahraďte jej nic neříkající zkratkou SVN…

Wednesday, April 18th, 2007

Už delší dobu se snažíme změnit stávající verzovací systém ze stařičkého CVS na něco modernějšího. Pro vývojáře se jako přirozená náhrada může jevit Subversion. Zkoušeli jsme si tedy domluvit schálení této změny u managementu v Phoenixu.

Neuspěli jsem, s tradiční odpovědí, že už několik let existuje plán na přechod celé korporace na CA Harvest a že teď nemá smysl přecházet na nějaký jiný verzovací systém.

Možná stále nechápete, proč vás varuju před slovem Subversion. Já ho taky nechápal, než mi bylo neformálně sděleno, abych se podíval na význam tohoto slova do slovníku.

Kdybych to byl býval věděl, použil bych výhradně zkratku SVN, možná by tento systém vzbudil více důvěry…

Alternativa k NaSMS? Dá se napsat během dvou hodin, pokud máte NetBeans a Mobility Pack…

Saturday, March 24th, 2007

Většina telefonů Nokia se Symbian Series 60 má jeden hodně nepříjemný nešvar a tím je psaní SMS s diakritikou a tím i zkracování délky zprávy. Mnoho uživatelů používá komerční program NaSMS, který tento problém dokáže řešit tím, že z odeslané zprávy diakritiku odstraní.

Zkušený Java developer si ale s tímto problémem dokáže poradit a pokud používá správné nástroje, kterým jsou: NetBeans Mobility Pack a Wireless Messaging API, má to za chvilku hotové a ještě se něco naučí…

Click to continue »

NetBeans 6.0: I want it, I want it, I want it…

Tuesday, February 20th, 2007

Here is an exciting demo of new features that will be available in NetBeans 6.0. I was amazed and I’m really looking forward some working beta version of NetBeans 6.0.

How to execute long running tasks in NetBeans platform…

Tuesday, January 30th, 2007

We work on J2EE project based on NetBeans platform and we solve typical tasks. My first problem was execution of long running tasks.

Here is a solution:

  private void jbExecuteActionPerformed(java.awt.event.ActionEvent evt) {                                                    // start thread    RequestProcessor.getDefault().post(new Runnable() {       public void run() {          ProgressHandle progress =                 ProgressHandleFactory.createHandle("Loading data...");                            progress.start(10);                            try {            for (int i = 1; i < 10; i++) {              try {                 Thread.sleep(2000);              } catch (InterruptedException ex) { }               progress.progress(i);            }          } finally {            progress.finish();          }       }    });  }          

The trick is in RequestProcessor.getDefault().post(new Runnable(){...}).

Inside new Runnable(){...} you may optionally use NetBeans Progress API

NetBeans module and web services made easy…

Friday, January 12th, 2007

I looked at Roumen’s presentation regarding NetBeans Plaftorm and Web Services and I was impressed. It really looks very easy.

Nové vlastnosti Spring 2.0

Thursday, January 11th, 2007

Tento článek velice přehledně sumarizuje, co je nového ve Spring 2.0. Pro Java developery velice užitečné čtení…

Rod Johnson: Spring 2.0: What’s New and Why it Matters

Switch to our mobile site