Radoslaw Szulgo

Radoslaw Szulgo

Great Java enthusiast and developer, Radoslaw Szulgo, has studied IT since 2005. Google Summer of Code 2009 program participant. He's started his adventure with Java at the University and is involved in many projects. His life however, does not center on programming only. He's a semi-professional handball player and photographer. Author of a polish tech-blog: blog.dayt3k.net [L1 ]. He can be found at <rszulgo at gmail full stop com> .

About me

Nickname: rszulgo, daytek
Age: 23
University: Technical University of Gdansk, Poland
Major subject: Distributed Applications and Internet System
Interests: Java, handball, digital photography, P.Coelho books
My CV: [L2 ]

Coding skills

My hardware: Dell Vostro 1500 (notebook), Intel Core 2 Duo T7100 1.8 GHz 2 MB cache memory L2, FSB 800 MHz, 2048MB DDR2 RAM, NVIDIA GeForce 8400M GS - 256 MB
Favourite OS: Ubuntu 9.10
C and C++ skills: Good. I've made an OpenGL 3D Game in C++ in January 2009 (almost 10 000 lines of C and C++ code). It's avaiable at [L3 ] .
Tcl skills: Beginner. I've just started to learn Tcl.
I specialize in Java - 3 years of experience, many projects (including one large in Java EE - 15 people group). Unfortunately I can't show you the source code of that project because it's closed, however this is a space of my Java TCP Threaded Network Game which I wrote in 2007 (my beginnings). I know it's not so pure but I hadn't so much exp then. This is the game workspace [L4 ].

My current JavaBlackBelt rank:
Orange Belt

Me and You

I've just joined Tcl Community Association. Before, I wasn't involved in any OpenSource Projects so I'm glad that my beginnings start here. However, we are creating the Open Source Science Group at the university.

My project:
I've chosen Jacl Modernization. The latest release of Jacl supports the Tcl 8.0 commands where there is 8.5 version already. Jacl users will resign from it if it won't be evolving. I want to help and implement Tcl 8.4 commands and maybe 8.5 too. I expect that my implementation would be enough good to release new version of Jacl.

What do I want to achieve?
Reading some articles and web pages I found that Jacl was used in IBM WebSphere Project, which made me 'Wow'. Unfortunately, Jacl was passed in by Jython. I want to continue developing Jacl and through implementing new commands make the Jacl more useful for users. My secondly aim is to develop myself in Java and get to know Jacl so I could use it in my future projects. This is a great opportunity for me so I can join OpenSource project which is important for me.

Why I chose Jacl Modernization?
I think that if you want to do something really well, do what you are good at. Recently, I've interested in other prog. langs implementation in java ie. Jython (Python) or JRuby (Ruby). Thanks to Tomasz Kosiak (Tcl/Tk Community) I've interested in Tcl and I saw Jacl. I thought that this would be a great idea helping to evolve Jacl. Firstly, I would develop myself in Java. Secondly, I would help the community and join them.

What makes me suited to carry this project?
The major requirement to carry the Jacl Modernization project is to have an experience and wide knowledge of Java programming language. As you can see above I have permanent contact with Java and what is the most important I really want to develop myself in it. To approve that, I'm going to write my diploma in Java - it's about modernization of faculty management system (migration from EJB 2.0 to EJB 3.0).

How much time do I plan to invest in the project before, during and after the Summer of Code?
Before start of the Google Summer of Code I plan to get to know Tcl basics and make a detailed plan of my work on the project. When the project will be started, I'll spend minimum 7h per day in July and August. In June I have exams at university so I can't participate in the project full-time. Last summer I've worked for Compuware Corp. so I'm adjusted to work regularly and a little bit later because of time difference with USA. I'm prettty engaged in this project already, so it's very probable that I'll continue the Jacl evolution as a hobby.

Preliminary schedule:
Here's an analysis of Jacl modernization project (list of commands to implement): [L5 ]

Me and Tom Poindexter (Jacl Modernization mentor) has researched this idea and made a list of commands that needs to be implemented or modernized. As soon as I could I will get a branch in Jacl's CVS repository or I will create my own project space on code.google.com and there I will be developing Jacl project.

Till the mid-term evaluation deadline I'm going to work on easy tasks firstly, such as adding options to existing commands which will help me to familiarize with the Jacl code base before tackling more difficult tasks. As I've started reviewing Jacl source code recently, I think I'll be able to implement a part of new commands too.

Till the mid-term eval deadline I am going to implement new options to specific commands such as:

  • array statistics array‚Äźname
  • clock %g %G %h
  • expr wide
  • glob directory -join -path -tails -types
  • info functions
  • join list ?joinString?
  • lsearch -all, -inline, -not, -start,
  • lset varName ?index...? newValue
  • lsort -unique, -index end-$i
  • namespace exists
  • scan u i l L
  • unset option: -nocomplain

In July and August I'll have much more time so I'll do the rest of stuff. The highest priority has a File event processing commands (fileevent, open, file etc.). We will likely require to use Java NIO, or a thread-based solution to resolve this. Then I plan to implement pipes, regexp and trace command. The last two weeks I plan to reserve for regression tests (implementation in Tcl).

If everything goes well and there'll be time I'm ready to get further and implement Tcl 8.5 commands including list-expansion syntax {*} (and maybe 8.6!). If not, I will have the experience to do it later as a hobby. I know that there might be some issues and tasks could overrun that's why the implementation of 8.5 (or even 8.6) commands are in the "optimistic plan".