My Internet provider forces me to use PPPoE to connect to Internet. It is unpleasant to manually start the connection when Windows restarts or the connection drop. This is even worse when I am not physically at the machine’s console - if the connection accidentally drop I can not establish Remote Desktop session.
Windows does not support keeping VPN / PPPoE always connected. If you start the firewall service, the “Routing and Remote Access” in Windows 2003 is not available so this is not a solution.
My solution is to use a script that establishes connection to the Internet at some scheduled time interval.
What I do is to add task in “Scheduled Tasks” to run at 5 minutes and execute the following command:
This causes a console window to show and immediately hide at each 5 minutes. Very unpleasant. To fix this behaviour I create special Windows user and run the above command as this user. This the console window is shown on different desktop and actually is not visible.
Posted by nakov as blog at 2:10 AM EEST
Comments Off
Today I needed to deploy an early preview version of our GWT based product to the testing server on the customer site. I didn’t mentioned early but our product is a large content repository for famous Bulgarian telecom. It took me 2 hours or maybe more to write and debug ant based build script but it didn’t work. This was the script:
I changed the original project name and class names in the above script name to keep the NDA signed for this project.
The build was successfull, the created WAR file was correct, but the application didn’t work. Why?
The reason was the library “gwt-user.jar”. It is intented to run in GWT Shell, but when deploying on Java EE server you need to replace it with “gwt-servlet.jar”. Otherwise the RPC services will not work saying “Class not found: com.google.gwt.user.client.rpc.RemoteService”. It is strange error because this class is part of “gwt-user.jar” but cannot be loaded.
I had the “gwt-user.jar” and “gwt-servlet.jar” in my “lib” directory but I included the first in the Eclipse’s build path and excluded the second. In the ant script I do the opposite. … and it now works. Chreers!
I was using Tomcat 6, Java 6, Eclipse 3.3 (ahhhh bugger). I first mapped the GWT RPC services to servlets in the WEB-INF/web.xml deployment descriptor. Initially I had an idea to write custom task for the ant script that reads the MyModule.gwt.xml file and XSL transforms it to a section in the web.xml file but this was too complex. I prefer working solutions insted of complex general (and sometime working) ones.
Posted by nakov as java, blog at 10:40 PM EEST
Comments Off
I needed for my GWT project a panel that supports showing a set of widgets in a group (GroupBox panle). I needed the exact functionality like the HTML fieldset/legend tags:

I didn’t found any ready-to-use widget so I implemented one myself. Here is the source code:
It was really easy to extend the flow panel and add <fieldset> and <legend> tags around the panel element. Hope this widget will be useful to everybody. I may wish to modify the CSS to make it look better.
Posted by nakov as java, blog at 7:13 PM EEST
Comments Off
I work on a meidum sized Java project and we use GWT (Google Web Toolkit), Hibernate and Oracle. I am a technical architect for the project and I manage small team of developers in the same time.
GWT is interesting technology for creating dynamic AJAX applications. It is like Swing: you write Java code, use containers and controls (called widgets), assign properties, handle events, like creating Java GUI application, but all this Java code is compiled to JavaScript and is executed at the client side by the Web browser. Interesting, but young technology, not rich enough. It does not support Java 5 (you need to code in Java 1.4). The available widgets are limited and not enough functional. I lose lot of time creating my own widgets.
The last widget I created was a GWT Advanced table that suports paging, sorting and filtering. It runs on the client side but takes the data displayed in the table from the server side. This is how it looks like:

I was satisfied by developing this widget. It was really nice. It was designed for reusability, so I want to share it with you. I created a project at Google Code (code.google.com) and published the source code as freeware software. You can visit its official Web site here: http://code.google.com/p/gwt-advanced-table/. I didn’t created comprehensive documentation, but the code is clean and easy modifiable. Example is also available in the SVN repository: http://gwt-advanced-table.googlecode.com/svn/trunk/.
Posted by nakov as java, blog at 3:42 AM EEST
Comments Off
My name is Svetlin Nakov. I am software engineer, consultant, trainer, book writer and enterpreneur from Sofia, Bulgaria. My primary concern is software engineering and training. I have very rich experience in different technical and management positions, starting from Basic and Pascal developer on Apple II (in 1991), passing through Delphi, C, C++, Java, C#, .NET, VB.NET, PHP, JavaScript. I have rich database, desktop and Web application development experience with various frameworks, technologies and tools: Oracle, SQL Server, Interbase, MySQL, SQL, JSP/Servlets, JSTL, Tomcat, GWT, ASP.NET, IIS, AJAX, PKI, and many more.
Finally I started my public blog to share my knowledge with the community. I should have done this few years ago but I always say “I don’t have time for this”. I really have very overloaded daily round and I don’t have too much time because usually work 10-12 hours/day, but I will try to add few posts in my blog each month.
Few words about my blogging intentions:
1) I will always use English in my posts. I will not blog in Bulgarian because I want to share my knowledge with as many developers as possible.
2) I will not post stupid non-technical articles like “how I got drunken yesterday” or “who won the politics elections in Bulgaria”. I will blog on significant technical software development topics.
Happy blogging!
Posted by nakov as blog at 3:25 AM EEST
Comments Off