All entries for Saturday 28 July 2007

July 28, 2007

Optional method parameters in java

Earlier this week someone was complaining java didn’t support optional method parameters. In some languages you can assign default values to parameters and if those parameters are not supplied then they will take on their default value. The syntax is usually something like SomeMethod(Param1=”foo”,Param2=2);

Whether this is actually any clearer than method overloading is debatable, personally I find it a little confusing. However, intrigued, I tried to see how close to this syntax it is possible to get in java. The following is as close as I could get, can anyone do better?:

Similar is possible in c# 3.0 with (should work with svn mono when compiled like: “gmcs -langversion:linq ./Filename.cs”)

YCP syntax highlighting for kate

Most people see YaST [0] as an application used for configuring the operating system. Relatively few people know that it is a development platform with its own language, libraries, and user interface abstraction layer that enables the developer to write a configuration module that will display using Qt when run in KDE, GTK when run in GNOME, ncurses when run on the command line. [1]

Although there are very nice features of the YaST platform, there are also disadvantages. YCP (The language most [2] YaST modules are written in is quite archaic in some respects, and there is limited library support. Also as YCP is only used by YaST there is little tool support for developing in it. In an effort to make developing in YCP a little easier for the remainder of its lifetime I wrote some kate-part (Used by kwrite,kate,kdevelop,konqueror etc) syntax highlighting rules for the YCP language. Screenshots: Here -> and here .

To use them simply save in ~/.kde/share/apps/katepart/syntax or `kde-config—prefix`/share/apps/katepart/syntax for all users.

It should be possible to create some kdevelop templates for YaST projects, and possibly even a tool for automatically generating the framework for common modules such as wizards.



[2] Yes modules can be written in Perl too, and now Ruby. At present the user interface components must be written using YCP though. Also I personally dislike Perl and Ruby more than YCP.

First week of freedom

Last week I finished my work placement year, and I am now back to being a Student \o/. After losing a couple of days failing to move due to the flooding here in Britain, I have begun catching up on all the things I have had too little time to complete over the past few weeks.

I have spent quite a bit of time re-writing the YaST based wizard I for simple software installation from web pages. Although there are only minor changes to the user interface. It is now considerably more powerful.

The XML format used for the single click install has been discussed over the past few weeks and is now nearly finalised, it should now be potentially usable by other distributions too.

Amongst other improvements it is now possible to:

- Have one “install now” link that will work for multiple distributions & versions.
- Have translatable descriptions/summaries etc.
- Install patterns
- Have conflict resolutions specified in the xml format.

The user interface has been simplified somewhat and there is now better reporting of installation status / errors.

Hopefully the new version will find its way into one of the next openSUSE 10.3 alpha or beta1.

Implementing this was an interesting challenge due to limitations in the YaST platform. Particularly challenging was parsing non-trivial XML and communicating between multiple instances of YaST (One running a limited user, one running as root). The latter was required as we do not want to request root privileges until the user has been able to review the changes that will be made to his or her system.

Next week I am off on holiday, hopefully the rain might stop for at least some of the week.

July 2007

Mo Tu We Th Fr Sa Su
Jun |  Today  | Aug
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31               

Search this blog



Most recent comments

  • Hey skx, how do you do that ? I run into the fu….. problem, that curl terminate with unspec. error… by David on this entry
  • With some minor changes this will also work for updating from 11.0 to 11.1. by skx on this entry
  • You are the man!!! Great work and good documentation! It worked without any problem for me. Thanks a… by Vany on this entry
  • didn't work for me. In fact killed the system. Have to download 11.0 and burn to dvd to fix it. by maybe windows on this entry
  • Will this method work for 11 => 11.1 ? by Erik Jakobsen on this entry

Blog archive

Not signed in
Sign in

Powered by BlogBuilder