kedd aug. 30, 2005

StarOffice 8

The localization project of StarOffice 8 to Hungarian is in a pretty good shape, although I still haven't upgraded the build on my Windows XP to the one containing the full Help localization. Here's a screenshot of the build I'm using and testing currently:

click to enlarge

StarOffice 8 will offer some advanced migration utilities for companies wishing to migrate from a full MS Office environment. I've started to compile a list of Hungarian companies who have been doing related activities in the country during the last 4 years. There are surprisingly many of them and virtually none are Sun partners. Yet. Or at least I hope some of them will become Sun partners and together we'll be able to offer advanced Office migration services for all those companies wishing to escape the Microsoft Office tax.

I have very good feelings about this project and this product.

szerda júl. 20, 2005

Sun Cluster HA for Solaris Containers

I'm not a Sun Cluster guy but still got pretty excited when I came across this title while I was looking for some documentation on Solaris Zones on I'd love to set aside some lab time to play around with these two. Just imagine: virtual Solaris instances that migrate from one server onto another within a cluster...

szerda máj. 04, 2005

"Are Sun Rays expensive?" poll

This is a question that keeps bugging me for a while. We have sold about 2000 Sun Ray thin clients during the last five years in Hungary which is a rounding error compared to the number of PCs sold by our competitors during the same period (of course we never had a dedicated Sun Ray sales).

My personal experience is that when people see the list price of a Sun Ray 1g appliance they usually suffer a sudden heart attack and lose their interest in the technology. It is possible to show them TCO and ROI numbers and convince them that in the long run a thin client infrastructure is cheaper to maintain, but it's a hard and time consuming task with much talking, drawing, writing involved (which just shows that it is more expensive to sell something that is considered to be expensive by the customer). Also, I don't remember ever selling Sun Rays at the list price: looks like it's only function is to scare away people.

Do you think it would give IT managers an incentive to switch to Sun Ray/JDS desktops if the client hardware was less expensive? Also if you could buy a 150/200/250\* USD thin client for your wife/kids instead of a new PC... wouldn't more tech people buy these appliances?

Please tell me what you think...

\* of course the list price depends on which country you live in. European list prices are always higher than US ones

kedd jan. 18, 2005

Changing JDS/Solaris 10 proxy settings

I guess this should go into the Gnome category, but I'm too lazy to create one:). Yesterday I finally wrote the magic script that automatically sets the proxy properties of Gnome depending on the ip address the notebook got from DHCP. It could be useful for others running JDS or Gnome who change between networks (home, office, customer, etc) a lot. This one works on Solaris, but you may customize the ifconfig part to run on Linux as well.


# ethernet interface to query for ip address
# proxy to set

# function to set a gconf parameter via gconftool-2
set_gconf() {
  gconftool-2 \\
        --type $1 --set $2 "$3"

# fetch the ip address of the specified interfaced
ipaddress=`/sbin/ifconfig $IFACE | grep inet | awk ' { print $2 } ' `

if echo $ipaddress | egrep 192.168
  set_gconf string /system/proxy/mode none
  set_gconf bool /system/http_proxy/use_http_proxy false
  exit 0

# Sun Office
if echo $ipaddress | egrep 129.159
  set_gconf string /system/proxy/mode manual
  set_gconf string /system/proxy/secure_host $SUNPROXY
  set_gconf string /system/proxy/ftp_host $SUNPROXY
  set_gconf int /system/proxy/secure_port $SUNPORT
  set_gconf int /system/proxy/ftp_port $SUNPORT

  set_gconf bool /system/http_proxy/use_http_proxy true
  set_gconf string /system/http_proxy/host $SUNPROXY
  set_gconf int /system/http_proxy/port $SUNPORT
  exit 0

# Unknown network, disable proxy
set_gconf string /system/proxy/mode none
set_gconf bool /system/http_proxy/use_http_proxy false

If only the gaim version shipped with JDS used these global settings... gnome-session-properties can be used to make this script run automaticaly every time you log into JDS.

péntek jan. 14, 2005

CUPS and Solaris 9

Last week I had to modify a Sun Ray installation (10 x V210 frontend servers, Solaris 9, SRSS 2.0) to use CUPS instead of lpsched for printing. There is a public document available on that gives you a few hints on how to do it, but it is very far from complete.

You may ask why we needed to use CUPS instead of lpsched at this particular customer. The main reason is ease of administration. The customer has about 300 Sun Rays deployed in 5 different buildings with about 100 different printers from brand new Canon multipurpose printers to old HP 4L laserjets.

My first attempt at creating a printer subsystem was to create all print queues on a dedicated server using Solaris printing. I wrote a script that used lpadmin to add a printer to the system and called ldapadd with an ldif file ro register the new printer in LDAP (the servers are using a central LDAP server as naming service). This way we had only one server to administer printers on (which of course was a single point of failure in the architecture). HP printers were added by JetAdmin. Non postscript printers were handled by another script, which created an additional raw queue and some filters to call ghostscript to translate the postscript printer jobs into PCL or any other encoding that was necessary.

In order for Mozilla to print, I had to setup Xprint as well. Fortunately the Mozilla guys make available a Solaris package called GISWxprintglue at which takes care of everything, you just have pkgadd it to your system and start it with "/etc/init.d/xprint start".

Gnome Printer Settings showed all the configured printers (but not the description field, which was a bit disappointing for the customer) and allowed the user to change the default printer. Mozilla, MagyarOffice (a commercial variant localized into Hungarian) also printed fine, although the latter needed a bit setup with spadmin: turning off font substitutions, etc.

The problems started coming when more and more printers were added to the system. As the print server was also a Sun Ray server, the architecture shifted into a very unhealthy assymetrical one. There were three different ways to add printer queues to the system. I've had a feeling that this was not the best way to setup printing in this kind of environment.

So, I took a look at CUPS. We considered it earlier in the project as an alternative to setup printing, but none of us had any hands-on experience with the software on Solaris, so decided against using it. I installed the packages from the Companion CD on the servers and started to play around with it. CUPS can be started without stopping lpsched, so you can use it without interfering with the Solaris printing system. The web based administration looks nice and is very easy to use for all kinds of printers, so it quickly turned out that from an administration point of view CUPS is much easier to use than the default Solaris printing. We tested CUPS with all of the different printers available at the customer, and all seemed to work fine. The decision was made: we'll transition from lpsched to CUPS on all 10 servers.

The printers were added to CUPS manually. USB direct attached printers caused some trouble: they had to be symlinked to /dev/usb/printerX from /tmp/SUNWut/ for CUPS to work correctly (later I found a directive in cupsd.conf which allowed for other locations to be used as ports, but it was too late:). The printer subsystem setup was modified one evening, when users were notified to logout before they leave. I started at 17:00 and got home at about 23:00. Here's what I had to do:

The sunsolve article says: "Be sure to edit /etc/profile, /etc/.login, and/or /etc/default/login to ensure users PATHs have /opt/sfw/cups/bin before /usr/bin so that they get the CUPS versions of the printing commands lp, lpr, lpq, cancel, etc.". This sounds logical, but for some strange reason Sun's Gnome developers think it's a good idea to include /usr/bin at the beginning of the PATH. So if you wish to include /opt/sfw/cups/bin before /usr/bin in the PATH, be sure to either use CDE, or modify the following line in /usr/dt/config/Xinitrc.Sun-gnome\* from

export PATH="/usr/bin:${PATH}:/usr/dt/bin:/usr/openwin/bin"
export PATH="${PATH}:/usr/bin:/usr/dt/bin:/usr/openwin/bin"

As a matter of fact I just commented the line out. There may be some applications that don't search for lp in the PATH, instead use /usr/bin/lp. One such example is Acrobat Reader. This is the reason why you should move Solaris lp commands out of the way and symlink commands from /opt/sfw/cups/bin to /usr/bin.

This particular customer is running Gnome exclusively, and of course the Gnome Printer Settings in Solaris doesn't really work with CUPS. I had to find some other solution for users to have a GUI tool to select the default printer. The easiest solution seemed to "rewrite" it from scratch. CUPS is using an .lpoptions file in each user's home instead of .printers to store custom settings of printers. Newer Gnome versions include zenity - a command line tool to display dialogs, but in Gnome 2.0 only gdialog is present to create a shell script based GUI. So, the following script was made:


default=`cat $HOME/.lpoptions | grep Default | cut -d' ' -f2`
printers=`wget -O- -o /dev/null localhost:631/printers | egrep '(<TH BGCOLOR="#999966"><A HREF="/printers/|Location)' || sed -e 's/<[\^>]\*>//g' | sed -e 's/\^.\*Location: //' | awk ' NR % 2 == 1 { printf "%s",$1 } NR % 2 == 0 { printf " %s off ",$1}' `
title="Choose the default printer!\\n"
answer=`gdialog --title "Default Printer" --radiolist "$title Current: $default" 20 40 10 $printers  2>&1`

if [ ! -z "$answer" ]
        lpoptions -d $answer

I'm using wget to get a list of printers embedded into HTML from the administration web console. Then I do some grep/sed to strip off HTML and get only the alternating list of printer names and location fields. Finally awk creates a list that can be given to gdialog as an argument. If the user selects a printer and presses Ok, gdialog writes the name of the list item that was selected to stderr. We call lpoptions to change the default printer. There are some errors that are not handled in the script (like what if .lpoptions doesn't yet exist).

Modification of CUPS configuration can be done on any of the servers, but afterwards the content of the /opt/sfw/cups/etc/cups directory must be copied to the 9 other servers. Right now this is a manual process which must be performed after every change. Setting up a CVS repository for configuration changes and change tracking would probably be a good idea.

szombat dec. 04, 2004

One week in Grenoble

Title says it all. I'm flying tomorrow from Budapest to Lyon to attend the EMEA Product Masters Event in Grenoble, which is a training on various Java Enterprise System products (Applications Server + Developer Tools, Portal, Communication software, Identity Management, etc). I'll focus on the Portal and Developer Tools sections.

hétfő nov. 22, 2004

Solaris 10 for game developers?

I've just read in an online forum (translated from Hungarian):

    "Some time ago somebody mentioned that an 3D accelerated driver for ATI and NVidia cards is under development for Solaris x86. Is this true? Will it be binary only or open source (I don't think so)?" If this is true, than game developers will finally have a stable unix. Stable meaning one distribution, one kernel, one libc, etc..."

Sun and Nvidia is working on Solaris drivers for NVidia cards (there was a press release some time ago, but Alan may know more about this). I happen to agree with the writer. Solaris 10 could be a stable Unix platform to develop and run games on. With a user-friendly desktop environment, stable APIs and ABIs, an integrated C, C++ development environment (Sun Studio 10), or Java development environment (Netbeans), it provides everything you may need as a developer.

kedd nov. 02, 2004

JDS R3 / Solaris review

There is a short review with 113 screenshots of Solaris 10 build 69 with Java Desktop System Release 3 on

szerda aug. 25, 2004

Xmodmap files for Hungarian keyboard layout

In case someone needs these:

For Solaris x86 (PCs, Sun Opteron workstations): view

For Solaris SPARC, USB keyboard (Sun Rays, Sun Blade workstations): view

A new Solaris 10 user

Running Solaris 10 x86 build 63 (with X packages upgraded to 66a) and Java Desktop System Release 3 build 16 on a Toshiba Satellite A30-303. Screenshot here. Unfortunately gimp segfaults so I couldn't create a thumbnail:)

kedd aug. 03, 2004

DosBox on JDS

I came across an RPM of DosBox that was built for Java Desktop System. It's available from In case you haven't heard about this open source utility: DosBox emulates a full PC with 2/386 CPU, Hercules/CGA/EGA/VGA graphics card and a SoundBlaster/Gravis Ultrasound sound card in software. It is able to run many old PC games on current hardware, and even has a MacOS X port...

csütörtök júl. 08, 2004

Enjoying the silence

More than two weeks without an update...

The thin client project is progressing quite well, though we run into some unforeseen problems almost each and every day. For example, configuring Identity Synchronization in a Sun Cluster environment was a bit more challenging task than we hoped. The software is built around a message queue that is used to synchronize user objects between a Sun Java Directory Server and a Windows Active Directory. Components connect or plug into the directory sources and send events through the message queue everytime a new user object is created or an attribute/password is modified for an existing object.

In our setup the Sun directory was already installed on a Sun Cluster and it turned out that IdSync doesn't support the HA environment. There is a cluster agent for the Message Queue component, but we had no luck in getting it to work with IdSync: we couldn't add the startup arguments that IdSync uses to the HA agent.

So we installed Message Queue on both nodes of the cluster, installed IdSync on the node that the LDAP server was running on, and got it to work on this particular node. The LDAP server is installed on both nodes and uses shared disk to store the data. IdSync installed itself into the shared directory. We replicated the configuration of the message queue (/etc/imq/\*, /var/imq/\*) and the IdSync startup script (/etc/init.d/isw - the software is on shared disk, the configuration data is stored in LDAP, so no other files needed to be copied). Now we could start IdSync on any cluster node the directory server is running on. Right now I'm waiting for one of our cluster gurus to finish the configuration by writing a GDS script and adding the idsync resource to the ldap resource group.

kedd jún. 15, 2004

Desktop customization

Creating a Solaris 9 and Gnome 2.0 based locked down desktop environment which 300 Sun Ray users will use is a frustrating task. You come across problems you wouldn't think of in advance... like:
- How to get rid of "CDE Menu" in the Gnome Applications menu (it's a bitfield in gconf)?
- How to localize items in the "Add to panel" menu (you have to edit .server files in /usr/lib/bonobo/servers)?
- How to setup Mozilla autoconfiguration (if only it was documented somewhere)?
- How to setup an LDAP directory for Sun Forum 3.2 (a Netmeeting-like application for Solaris) when the included ldap setup script was written 3 years ago and the LDAP schema in Sun Java Directory Server 5.2 is not compatible with the old one (still struggling with this one)?

BTW, does anyone know how to convert Sun shipped .mo files into .po files? GNU's unmsgfmt says "Not in GNU format", which is sadly true... We were able to localize much of the Gnome desktop by unmsgfmt-ing the German .mo files, but Sun Forum is not compatible with this method.

kedd jún. 08, 2004

JDS Configuration Manager

This piece of technology is really promising although it wasn't easy to get everything right. I've started playing with it yesterday afternoon. I've installed the software multiple times on my notebook, but all I got was a couple of NullPointerExceptions in Mozilla. I downloaded a packaged "canned" demo cd in the evening, took it home but the NullPointerExceptions just kept coming. I gave up at 11pm and decided to get up early in the morning and reinstall JDS before the aforementioned partner event (I've left the install CDs in the office). That was when I've found out about and spent half the night creating this simple template and the photo montage in the title bar. So, I went to sleep at 3am, got up at 6, arrived in the office at 7, reinstalled JDS by 8, installed APOC by 8:30 and arrived before the start of event at 9. Luckily it was held in the castle district: Hotel Hilton which is not far from the Sun office (although it's on top of a hill: probably most of you who had the pleasure to visit Budapest and Hungary should remember the place and the stairs quite well).

Of course the NullPointerExceptions were coming because previously I had JDS Quicksilver build 05 installed and later upgraded my installation to the last FCS build. The upgrade must have kept the Configuration Management facility broken. That's the price I pay for running Sun on Sun beta:)

I feel I'm going to fall asleep soon...

Sun software event

I'm back in the office from a partner event held by DNS, our Channel Distributor Partner in Hungary. We have a new software sales rep who used to work for IBM and has a very good understanding of how the software business and market works in this region. This was the first time I saw him give a presentation and he was really impressive. He had 14 slides but talked over an hour describing Sun's strategy, giving many hints on why these things are happening.

I gave a presentation on Java Desktop System with a little demo of JDS Configuration Manager (also known as APOC). Conf. Manager is pretty impressive stuff. Too bad most of the feedback was about the lack of Hungarian localization of JDS and StarOffice. I cannot blame them - I'm trying to do my best to convince people in product marketing to do Hungarian localizations, but it looks like a lone presales engineer/ps consultant located in a post-communist central european EU member country doesn't have the weight to achieve much success (on the other hand this is not entirely true but I don't think I'm allowed to talk about this just yet:).




« június 2016