Skip to main content.
November 10th, 2007

GWT Tk - Patched to Support GWT 1.4.60

GWT Tk (http://www.asquare.net/gwttk/)  is an excellent open-source GWT widget library. I use it to show modal dialog boxes in my GWT applications. There is only one problem: the ModalDialog does not work with the latest version of GWT: GWT 1.4.60. I investigated where the problem comes from and I patched the file ExposedCellPanel.java to run correctly on GWT 1.4.60. Here are the changes:

The original author of GWT Tk didn’t publish a new version to support GWT 1.4.60 when it officially released so I provide my modified one here: gwttk-0.2.3-patched.zip.

Posted by nakov as java at 12:20 AM EET

Comments Off

New version of GWT Advanced Table

I released a new version of my GWT Advanced Table widget. It now supports multiple rows selection:

GWT Advanced Table - screenshot from November 2007

I hope all GWT fans will enjoy using it.

Posted by nakov as java at 12:12 AM EET

2 Comments »

November 8th, 2007

GForge as Collaboration Software for Software Development

About GForge

I use GForge, an open-source software for collaboration in a development team for almost all my projects: software projects, courses, consulting projects, etc.

I am very happy with GForge. It provides integrated set of collaboration tools: Subversion, CVS, project tracking tools, bug tracking, management of projects and users (create, manage, modify projects and users), and configurable security. You can create new project, create users and assign access rules for these users.

Where to Start From with GForge?

I prefer running GForge on a virtual machine instead on a real PC to simplify backup, migration and support of the system. If you want to start using GForge, I recommend you to download and run a VMWare virtual machine image from http://gforge.org/ and configure it. You would like to configure some files and settings as mentioned below.

Configure Network and Hostname

First you need to configure the networking settings. I prefer using bridged network and join the virtual machine as part of the existing network.

The hostname is pre-set to gforgedemo.com so you first need to create local DNS and hosts entries. To change the hostname, there are several files in /etc/* that you need to modify. Alter the hostname and IP address to your needs:

/etc/gforge/httpd.conf
/etc/gforge/local.inc
/etc/gforge/plugins/scmcvs/config.php
/etc/gforge/plugins/cvstracker/config.php
/etc/gforge/plugins/svntracker/config.php
/etc/hosts
/etc/sysconfig/network
/etc/mailman/mm_cfg.py

Test the system by logging with the default administrator, delete it and create new administrator and users. Create some sample projects and test it they work.

Configure Scheduled Tasks

By default if you register a new project, its SVN and CVS repositories will be created in few minutes, not immediately. You may need to reconfigure the speed of the scheduled tasks in the crontab file (in Red Hat it is /etc/cron.daily). Modify this line:

20 * * * * $PHP $GFORGE/cronjobs/dav-svn/create_svn.php

with this line:

*/5 * * * * $PHP $GFORGE/cronjobs/dav-svn/create_svn.php

By default All Projects are Public!

Be careful because by default all newly registered projectas are public and can be accesses (in read only mode) by any users at the system, including guests. You should edit projects and mark them private to enforce security. Thus only authenticated users belonging to the project could access it.

Configure External (Internet) Access

You may want to enable access to the GForge server form Internet. You may not have static real IP address and may want to access the SVN without establishing VPN connection to your internal network. You can make a portmap to enable accessing the GForge server from your network (e.g. http://192.168.0.17:80) through your real IP address on another port through SSL, e.g. https://dev.external-ip.mycompany.com:8080.

This is not enough! You will soon discover that GForge redirects all your external requests from dev.external-ip.mycompany.com:8080 to the internal server, e.g. 192.168.0.17:80. To disable this feature edit this file: /opt/gforge/gforge-4.5.4/www/include/pre.php and comment the redirection code (fragment of it is shown below):

/*
        redirect to proper hostname to get around certificate problem on IE 5
*/
if ($HTTP_HOST != $GLOBALS[’sys_default_domain’] && $HTTP_HOST …

That is all. Have a fun!

Posted by nakov as blog at 4:39 PM EET

Comments Off

October 31st, 2007

Bulgarian Association of Software Developers is Now Member of INETA

Bulgarian Association of Software Developers (BASD) became an official member of INETA (the International .NET Association).

INETA logo

Now BASD is registered .NET user group for Bulgaria and will promote the .NET technology through its members by seminars, conferences, meetings and other events.

We are planning to run a new interesting event called “IT boxing” where .NET and Java technology evangelists meet to discuss which technology is better and finally box with inflatable boing gloves. The first match will be “ADO.NET+LINQ vs. JPA and Hibernate”. I will post more about the IT boxing championship.

Posted by nakov as .net, news, blog at 2:46 AM EET

Comments Off

Give full trust to .NET assembly hosted in a Web page in Internet Explorer

I have a .NET 2.0 assembly that runs in the Internet Explorer Web browser as hosted control. The assembly is called ExampleControl.dll. The HTML file used to display it is the following:

Now I want to increase its priviledges to be able to connect to Microsoft SQL Server. If I just create a new code group with FullTrust permission set in .NET Framework 2.0 Configuration Runtime Security Policy for all assemblies comming from URL=”http://localhost/MyWebApp/*”, I get the following error message:

System.Security.SecurityException: Request for the permission of type 'System.Data.SqlClient.SqlClientPermission, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.

It is strange, because my assembly actually has the SqlClientPermission (this can be seen by “Evaluate Assembly”). Eventhough the .NET control in my Web browser cannot connect to SQL Server.

To solve this problem I needed to give FullTrust to whole the Web site (URL=”http://localhost/*”), not only to my Web application (URL=”http://localhost/MyWebApp/*”).

I tried to assert the required permission by calling new SqlClientPermission().Assert(), but with no result. The only way to solve the problem I found is to to give FullTrust to whole the Web site (URL=”http://localhost/*”).

Posted by nakov as .net, blog at 2:35 AM EET

Comments Off

October 18th, 2007

JavaServer Faces (JSF) Seminar

Bulgarian Association of Software Developers (BASD) organizes a meeting of the Bulgarian Java User Group (BGJUG) on 25 October 2007 to discuss the JavaServer Faces (JSF) technology and new trends. Speakers will be Ivan Davidov and Nikolay Dokovski.

See the official invitation here: http://www.devbg.org/seminars/seminar-JSF-25-october-2007/.

Posted by nakov as news, java at 3:48 PM EEST

Comments Off

September 30th, 2007

Semantic Similarity, False Friends, Cognates and Words Alignments @ RANLP 2007 Conference

As part of my PhD research I attended the RANLP 2007 conference in Borovets, Bulgaria (Recent Advances in Natural Language Processing - 2007) to present two scientific papers and a novel algorithm for measuring semantic similarity between words by searching Google and analyzing the local contexts comming for the returned page excerpts.

Improved Word Alignments Using the Web as a Corpus

With my co-authors we presented an approach for improving word alignments by combining orthographic similarity measure designed for Russian/Bulgarian with semantic similarity measure. The full paper is available here: Improved Word Alignments Using the Web as a Corpus (PDF). The presentation is also available: Improved Word Alignments - Presentation RANLP 2007 (PPT).

Cognate or False Friend? Ask the Web!

With my co-authors we presented a novel algorithm for distinguishing between cognates and false friends. The algorithm is based on improved version of our semantic similarity measure that uses the Web as a corpus. We also published an evaluation of its performance for Russian/Bulgarian.  The full paper is available here: Cognate or False Friend? Ask the Web! (PDF). The presentation is also available: Cognate or False Friend? Ask the Web? (PPT). We also recorded video of my talk and the discussion: Cognate-or-False-Friend-Ask-the-Web-v1.0.avi.

Posted by nakov as news at 4:10 PM EEST

Comments Off

BGJUG First Meeting, BASD Seminar, GWT Talk

On 26th of September 2007 I and Peter Tahchiev organized the first meeting of the Bulgarian Java User Group (BGJUG) running at the Bulgarian Association of Software Developers (BASD). It was attended by about 120 Java developers. It is a good start!

BGJUG first meeting - GWT talk by Svetlin Nakov

I gave a talk on AJAX applications development with the Google Web Toolkit (GWT) technology.

Svetlin Nakov talking about GWT

I presented the fundamentals of GWT and made few live demonstrations including creating custom widgets and using RPC services. The GWT presentation, the demonstrations and the video recording (in Bulgarian) are available for download from the seminar’s official page.

There was high interest to my talk and to the event as a whole. Good job!

The BGJUG will meet regularly once monthly, each last Wednesday of the month. I hope the Java community will constantly grow and the events will become better and better.

Posted by nakov as news, blog at 2:31 AM EEST

Comments Off

September 18th, 2007

Forcing Windows to Hibernate

I usually use my home machine (running Windows 2003) from my office through Remote desktop. Sometimes in the evenings I want to hibernate it but the hibernation fails if I have used the machine remotely even if all remote connections are closed. I think this is a bug but I am not sure.

In the event log I see this message: “A request to suspend power was
denied by winlogon.exe”. This means that Windows intentionally does not want to hibernate because it thinks some remote users are still connected (which is not true).

I found two solutions to this problem:

1) Instead of using Start –> Shut Down –> Hibernate, use this command from the console:

shutdown /f /h

2) Compile and use this C# code to force Hibernation programmatically:

Posted by nakov as blog at 10:33 AM EEST

Comments Off

September 16th, 2007

svnleave - a Tool for Cleaning-up and SVN Directory

When you need to copy a project that resides in a Subversion repository to another location or send a piece of the source code by email, you need to clean the all .svn or _svn files from its directory structure.

I know an easy way to do this by the TortoiseSVN GUI client for Windows:

SVN export

This works pretty well but sometime you need more simple solution: removing all .svn directories from given project. I didn’t found any useful tool for this so I wrote one: svnleave.

My favourite programming language for writing such small programs is C#. It is highly productive, user friendly, have very good development environment and runs on any Windows machine (I mostly use Windows as desktop).

Here is the source code:

A compiled version svnleave for .NET Framework 2.0 is available for download here: svnleave.exe.

Posted by nakov as .net, blog at 1:04 PM EEST

5 Comments »

« Previous Entries  Next Entries »