<?xml version="1.0"?>
<rss version="2.0.">
  <channel>
    <title>Advogato blog for audriusa</title>
    <link>http://www.advogato.org/person/audriusa/</link>
    <description>Advogato blog for audriusa</description>
    <language>en-us</language>
    <generator>mod_virgule</generator>
    <pubDate>Wed, 14 May 2008 16:13:37 GMT</pubDate>
    <item>
      <pubDate>Sun, 23 Mar 2008 21:31:10 GMT</pubDate>
      <title>23 Mar 2008</title>
      <link>http://www.advogato.org/person/audriusa/diary.html?start=7</link>
      <guid>http://www.advogato.org/person/audriusa/diary.html?start=7</guid>
      <description>"&lt;b&gt;GNU hackers flatten Sun's professionals with they&#xD;
java.util.BitSet&lt;/b&gt;" - sounds not so bad. Some simple&#xD;
comparisons show that our BitSet runs roughly 24 % times&#xD;
faster than Sun's 1.6.0 implementation. Sun takes back on&#xD;
HashSet, however - this one is slower in GNU Classpath, more&#xD;
or less by the same percent.&#xD;
See the posted &lt;a href="" 'http://www.advogato.org/article/963.html'&gt;Advogato&#xD;
article&lt;/a&gt; for details. &#xD;
&#xD;
&lt;p&gt; I am not sure why our BitSet is faster. Deciding from&#xD;
OpenJDK, both implementation use the array of long's to keep&#xD;
the data. From the other side, the overall code is so&#xD;
different that it is&#xD;
difficult to say, who makes the benefit. The history of GNU&#xD;
BitSet spans over seven years (1998 - 2005) and have seen&#xD;
many contributions. The main authors of this class seem&#xD;
Jochen Hoenicke, Tom Tromey and Eric Blake. &#xD;
&#xD;
&lt;p&gt; I have checked near all java.util classes but the remaining&#xD;
differences seem for me too small to be considered&#xD;
seriously. I am, however, happy to discover that GNU&#xD;
Classpath is very far indeed from being universally worse&#xD;
than OpenJDK at any single line of code. The detailed 'class&#xD;
versus class' check may discover more interesting differences.&#xD;
&#xD;
</description>
    </item>
    <item>
      <pubDate>Sat, 22 Mar 2008 15:08:42 GMT</pubDate>
      <title>22 Mar 2008</title>
      <link>http://www.advogato.org/person/audriusa/diary.html?start=6</link>
      <guid>http://www.advogato.org/person/audriusa/diary.html?start=6</guid>
      <description>Today I started to do something that I am sure it was needed&#xD;
long time ago already. I took the latest GNU Classpath&#xD;
distribution and started to rip some selected interesting&#xD;
package, java.util, apart. One time I will check properly if&#xD;
it is worse or maybe same or maybe better the one we have&#xD;
got from Sun. &#xD;
&#xD;
&lt;p&gt; GNU Classpath has been written over long time by numerous&#xD;
developers. In addition, it usually runs with the different&#xD;
java virtual machine than the Sun's code. In that way, no&#xD;
honest comparison is possible between any units that are&#xD;
smaller than all jre + all rtl together. &#xD;
&#xD;
&lt;p&gt; So, that I have done so far I moved the chosen set of GNU&#xD;
Classpath java.util classes into some transient package&#xD;
where they do not conflict with java.util from Sun. Some&#xD;
code editing was needed to build everything but in general&#xD;
it was trivial to build it that way. Now I have the two&#xD;
java.util's on the same virtual machine! It is time to try&#xD;
some performance comparison. We will just write some simple&#xD;
tests for that. Stay tuned.</description>
    </item>
    <item>
      <pubDate>Sat, 1 Mar 2008 10:25:13 GMT</pubDate>
      <title>1 Mar 2008</title>
      <link>http://www.advogato.org/person/audriusa/diary.html?start=5</link>
      <guid>http://www.advogato.org/person/audriusa/diary.html?start=5</guid>
      <description>&lt;b&gt;FOSDEM 2008&lt;/b&gt;&lt;br&gt;&#xD;
Unlike two years ago, this time I have been a "completely&#xD;
different person" in FOSDEM: arrived by plane, used hotel&#xD;
and also brought two young developers I supervise - to&#xD;
demonstrate them how the FOSS looks like from the closer&#xD;
distance. Even a very simple things are impressive for some&#xD;
people: that the conference was organized by the university,&#xD;
that it was really large, that the level of the projects is&#xD;
indeed very high and that nobody does not even think to talk&#xD;
about things like cracking iPhones. It is important to&#xD;
resist various FUD in time. This goal seems reached and I am&#xD;
satisfied with the result. &lt;br&gt;&#xD;
Apart java talks, one of the most interesting things I have&#xD;
seen might be OpenSolaris. While I needed to stuff an extra&#xD;
hard drive into my box just to install it properly, I did -&#xD;
runs fine, scaring the older staff from the oil industry&#xD;
like a resurected ghost: Solaris??? Its dead! It is over!&#xD;
Well, there are many other interesting things - the&#xD;
summarized report was 16 pages long. Really a nice weekend.&#xD;
</description>
    </item>
    <item>
      <pubDate>Tue, 27 Nov 2007 20:22:50 GMT</pubDate>
      <title>27 Nov 2007</title>
      <link>http://www.advogato.org/person/audriusa/diary.html?start=4</link>
      <guid>http://www.advogato.org/person/audriusa/diary.html?start=4</guid>
      <description>&lt;b&gt;... this is to ask a few minutes of your time to help my&#xD;
research group... &lt;/b&gt;&#xD;
&lt;p&gt;&#xD;
Today I haver received one more questionnaire related to the&#xD;
"FOSS research". It is already a second one this month, and&#xD;
as much as I remember already a fifth I have completed. Some&#xD;
wave of "fundamental scientific analysis" on FOSS seems&#xD;
spreading around the world. Why are you programming this?&#xD;
Are the companies involved? Do you feel the owner of your&#xD;
project under GPL? Would you program if you know it would be&#xD;
illegal? How the important development decisions are made&#xD;
inside your project?&#xD;
&lt;p&gt;&#xD;
Somewhat it was considerably less attention even a year ago.&#xD;
While FOSS developers likely have never be treated as a&#xD;
bunch of hackers about that there is "nothing interesting to&#xD;
know", it seems an achievement that more people accept FOSS&#xD;
development as a kind of process which needs detailed study&#xD;
and understanding. Something similar to the mountain formation. &#xD;
&lt;p&gt;&#xD;
Hope they will not fish out any weak places in our movement&#xD;
with these surveys. If they potentially could, it is likely&#xD;
time to think about the shared policies how to answer...&#xD;
&#xD;
</description>
    </item>
    <item>
      <pubDate>Fri, 9 Nov 2007 20:47:56 GMT</pubDate>
      <title>9 Nov 2007</title>
      <link>http://www.advogato.org/person/audriusa/diary.html?start=3</link>
      <guid>http://www.advogato.org/person/audriusa/diary.html?start=3</guid>
      <description>&lt;p&gt;&lt;b&gt;libgcj in C-based parallel clusters?&lt;/b&gt;&#xD;
&lt;p&gt;&#xD;
Today I was setting the MPI cluster. A tcl-based&#xD;
&lt;a href="" 'http://sourceforge.net/projects/expect'&gt;expect&lt;/a&gt;&#xD;
script is&#xD;
required to arrange the MPI connections. Expect was not&#xD;
present on my SuSe machines by default, but I found it&#xD;
between optional packages. Still, all that this default &#xD;
installation was doing is it was silently hanging with MPI&#xD;
setup script. Hence our team needed to build the more recent&#xD;
expect distribution from the source, remembering all fun of&#xD;
--configure--with (the default ./configure does not find the&#xD;
tcl configuration script on 64 bit platforms). &#xD;
&lt;p&gt;We had problems with firewalls, also. MPI uses same&#xD;
approach as the old CORBA implementations did: just opens&#xD;
multiple random ports wherever they like. However our&#xD;
'cluster' is not just for distributed computing - people use&#xD;
them heavily for various purposes, connecting via ssh -X.&#xD;
Finally we decided to use combined mac + ip address&#xD;
filtering with iptables.&#xD;
&#xD;
&#xD;
&lt;p&gt; &lt;p&gt; Ok, the MPI cluster is now running with full Fortran and C++&#xD;
support. Likely we will enjoy it, but how to build a bridge&#xD;
back to java? Some of our java programs already have complex&#xD;
GUIs, others are heavily JSP-based - the prospect to rewrite&#xD;
this stuff in C - even parallel C - does not seem&#xD;
attractive. I is now nice to have a java runtime library&#xD;
that connects with C easily, without the need to load and&#xD;
start all java virtual machine as a separate process. All we&#xD;
need is java-style serialization, RMI and maybe RMI-IIOP. It&#xD;
is far less than GNU Classpath is capable to do.&#xD;
Likely it makes a lot of sense to try our old staying-alive&#xD;
&lt;a href="" 'http://gcc.gnu.org/java/'&gt;libgcj&lt;/a&gt; here ...&#xD;
</description>
    </item>
    <item>
      <pubDate>Sat, 27 Oct 2007 16:48:41 GMT</pubDate>
      <title>27 Oct 2007</title>
      <link>http://www.advogato.org/person/audriusa/diary.html?start=2</link>
      <guid>http://www.advogato.org/person/audriusa/diary.html?start=2</guid>
      <description>Yesterday I was setting up CORBA via SSL on JacORB and was&#xD;
surprised that despite seemingly good support this task&#xD;
can still be such a headache. We needed the single-port SSL&#xD;
connection that would be secure from beginning (no naming&#xD;
service on an unprotected port) and would not require to&#xD;
pass the lenghty server IOR address via some other channel&#xD;
(the example in JacORB uses a shared file system to pass the&#xD;
IOR and in addition is broken in 2.3.0 release). The&#xD;
corbaloc:ssliop address notation still seemed not&#xD;
supported, so the only hack around we were able to find was&#xD;
to patch the pre-generated IOR for the local host with the&#xD;
separately given IP address and SSL port. Thank goodness&#xD;
JacORB has the internal undocumented routines to parse and&#xD;
modify IOR's, same as the GNU Classpath does. It is really&#xD;
sad that these IOR manipulation routines are in the private&#xD;
space and may change dramatically between releases. Likely&#xD;
having the useable naming service via SSL&#xD;
connection without passing of the 2K IOR that must be known&#xD;
in advance should be very easy and trivial to do.&#xD;
&#xD;
&lt;p&gt; I know that people more talk about the web services in these&#xD;
days, but our "messages" are many megabytes in size even&#xD;
when they are binary. It is really great that I have a lot&#xD;
of things to remember from the GNU Classpath CORBA project -&#xD;
otherwise it would likely take days to figure everything&#xD;
out. Indeed, the company managers should look for the Free&#xD;
software developers to do they tasks ...</description>
    </item>
    <item>
      <pubDate>Sun, 21 Oct 2007 16:37:24 GMT</pubDate>
      <title>21 Oct 2007</title>
      <link>http://www.advogato.org/person/audriusa/diary.html?start=1</link>
      <guid>http://www.advogato.org/person/audriusa/diary.html?start=1</guid>
      <description>&lt;p&gt;&lt;b&gt;GNU Classpath 0.96 - &amp;quot;Staying alive&amp;quot;&lt;/b&gt;&#xD;
&lt;p&gt;&#xD;
Again, a new version of GNU Classpath, our old Free java&#xD;
runtime library, has been released - &lt;a&#xD;
href='http://www.gnu.org/software/classpath/announce/20071015.html'&gt;GNU&#xD;
Classpath 0.96&lt;/a&gt;. Apart version numbers, many releases&#xD;
also have smart names: &lt;i&gt;A La Mort Subite, All for One, One&#xD;
for All, Dreamland ... &lt;/i&gt; But for everybody who is more&#xD;
or less aware about the current history of java, the recent&#xD;
name of 0.96 sounds more aggressive than any&#xD;
previous. &lt;i&gt;Staying alive&lt;/i&gt;. Too pretty to die. &#xD;
&lt;p&gt;&#xD;
&lt;img align='right'&#xD;
src='http://www.object-refinery.com/classpath/statcvs/loc_small.png'&gt;&#xD;
Who have changed since the times of 0.93, when multiple GNU&#xD;
Classpath hackers, myself including, were demonstrating&#xD;
fully functional GNU Classpath Swing for the astonished&#xD;
public in a number of software conferences? How happened&#xD;
that the nine year old project with near two millions &lt;a&#xD;
href='http://www.object-refinery.com/classpath/statcvs/'&gt;lines&#xD;
of code&lt;/a&gt; feels proud just surviving? Well, we, surely&#xD;
know: Sun have released the majority of its own java runtime&#xD;
library under GPL. Soon it will not be necessary to use and&#xD;
develop the GNU Classpath code just because it is Free when&#xD;
Sun's code is not. Unless, of course, other reasons would&#xD;
appear.&#xD;
&lt;p&gt;&#xD;
Somebody who is not aware about the current state of the GNU&#xD;
Classpath may say: that is fine, just merge the Sun's code&#xD;
in! However while Classpath continues getting multiple&#xD;
patches per day, no significant merging activity have ever&#xD;
been seen. The reason is simple: GNU Classpath&#xD;
implementation is too complete. There were several useless,&#xD;
non functional stubs in the past (RMI-IIOP implementation,&#xD;
for instance). However it is long time since they are&#xD;
replaced by the fully working code. There are no parts that&#xD;
are just non-functional, clearly deserving to be ripped out,&#xD;
stuffing the Sun's code instead. Or should we believe that&#xD;
any single line of code from Sun is doubtlessly better?&#xD;
Written by professionals? That do you know about the GNU&#xD;
Classpath team, if you think so? &#xD;
&lt;p&gt;&#xD;
Yes, there are tasks where the current Sun's 1.5&#xD;
implementation (with some pretty proprietary stuff inside&#xD;
remaining, by the way) performs faster, but does this mean&#xD;
that GNU Classpath should now be abandoned? The programming&#xD;
user who does not want to spend any time comparing the&#xD;
sources of these two implementations would likely just pick&#xD;
the variant that is more efficient today. But it is possible&#xD;
to imagine projects that dig deeper than just using java.&#xD;
Now, then the Free Sun's implementation starts emerging, the&#xD;
major value of GNU Classpath may be in that it&#xD;
implementation is &lt;i&gt;different&lt;/i&gt;. &#xD;
&lt;p&gt;&#xD;
From one side, GNU Classpath implements the same official&#xD;
API. But from the other side, no GNU Classpath hacker has&#xD;
ever been allowed to look into Sun's code while writing the&#xD;
alternative implementation. This means, that many or even&#xD;
majority of the algorithms in Sun's and GNU's&#xD;
implementations are realized differently. This opens a&#xD;
really exiting prospects to compare the solutions, picked by&#xD;
various developers when implementing exactly the same&#xD;
framework. From the first sight, this comparison may look&#xD;
very difficult and work-intensive to do. However we should&#xD;
not forget that (differently from GNOME and KDE, for&#xD;
instance) we speak about the system where the modules of the&#xD;
alternative implementations are aligned against each other.&#xD;
Packages consist of classes, classes consist of&#xD;
methods and these methods must have the exactly the same&#xD;
functionality implemented. Hence it is surely possible to&#xD;
compare package versus package, and in many cases it should&#xD;
be possible to compare even class against class. It may well&#xD;
be - and I personally am sure in this - that some methods,&#xD;
classes or even packages exist where GNU Classpath&#xD;
implementation may actually be &lt;i&gt;better&lt;/i&gt;. Yes, that is&#xD;
not funny. During development I did a lot of side-by-side&#xD;
comparisons at least for CORBA and HTML parser (both were&#xD;
later continued by my friends) and have reasons to suspect&#xD;
that Sun might not be an absolute winner in all possible&#xD;
test cases. Also, it may be&#xD;
other parts of code where the better implementation can be&#xD;
written after &lt;i&gt;comparing&lt;/i&gt; the two existing ones and&#xD;
learning from mistakes of both sides. It is not frequent to&#xD;
have opportunity to compare the two different&#xD;
implementations seriously, package versus package or may be&#xD;
even class versus class.&#xD;
&lt;p&gt;&#xD;
Hence it may well be that the best Free java runtime library&#xD;
is yet to be written, uniting the best solutions from Sun's,&#xD;
GNU Classpath and Apache Harmony implementations. Such&#xD;
project can be an independent initiative, but it also may&#xD;
start as a branch (or even head) of the GNU Classpath&#xD;
project. Hence a serious hacker can find a new ways to the&#xD;
future of the GNU Classpath. Ways that do not look just like&#xD;
a gradual decay. Ways that lead forward though staying alive.&#xD;
&#xD;
</description>
    </item>
    <item>
      <pubDate>Sat, 6 Oct 2007 19:11:07 GMT</pubDate>
      <title>6 Oct 2007</title>
      <link>http://www.advogato.org/person/audriusa/diary.html?start=0</link>
      <guid>http://www.advogato.org/person/audriusa/diary.html?start=0</guid>
      <description>&lt;b&gt;Linux in the USB stick - direct installation&lt;/b&gt;&#xD;
&#xD;
&lt;p&gt; &lt;p&gt; Recently I checked the old idea to install Linux into USB&#xD;
stick directly, as into any other hard drive. This would be very&#xD;
simple and straightforward approach: just plug in USB drive,&#xD;
boot from the installation CD and expect to the /dev/sda (or&#xD;
similar) between devices during installation. Then direct&#xD;
the installation into that drive and tell the installer to&#xD;
leave other disks alone. The approach is not directly&#xD;
dependent from the distribution and looked very attractive &#xD;
for beginners.&#xD;
&#xD;
&lt;p&gt; &lt;p&gt; Debian have found the attached USB drive and fully completed&#xD;
the installation. In only asked me a couple of times if I&#xD;
really do not want a swap. I said I do not (how reasonable&#xD;
is to have a swap partition even on 4 Gb USB drive?). GRUB,&#xD;
however, was not configured correctly: in device map and&#xD;
menu.lst the pen drive (/dev/sda) appeared as hd2 and the&#xD;
flash did not even think to boot. However all I needed was&#xD;
to correct the boot device name to hd0 in menu.lst. The&#xD;
attempt to get rid of hard-coded /dev/sda name in /etc/fstab&#xD;
(using the LABEL approach) was also fully successful.&#xD;
&#xD;
&lt;p&gt; &lt;p&gt; OpenSUSE that we use at work was even smarter in the&#xD;
beginning: GRUB was configured correctly and it was possible&#xD;
to boot from the flash immediately. Just fstab needed&#xD;
corrections to get rid of hard coded dependencies, again.&#xD;
Also, both Debian and OpenSUSE installers configured the&#xD;
graphic and network settings along the lines of the hardware&#xD;
that they have found on that particular machine - so if the&#xD;
machines from where you will need to boot are different&#xD;
enough, it is necessary to switch into something like VESA&#xD;
manually afterwards (xdebconfigurator seems a magic curse&#xD;
for Debian).&#xD;
&#xD;
&lt;p&gt; &lt;p&gt; Still, I find this experiment interesting. It seems that&#xD;
with very little additional effort various Linux&#xD;
distributions could support USB stick a rather specific&#xD;
(generic drivers must be chosen) but still 'just one more&#xD;
hard drive'. I know that some distros have the 'install into&#xD;
USB stick' item on a user friendly level, but it does not&#xD;
necessary work well either. While I do needed to discover&#xD;
and fix several nonsenses myself, there are a lot of web&#xD;
sites where installation into USB drive is described as&#xD;
something horribly&#xD;
more complicated (see &lt;a&#xD;
href="http://www.debian-administration.org/articles/179"&gt;Debian&#xD;
instructions&lt;/a&gt;, for instance).&#xD;
&#xD;
&#xD;
</description>
    </item>
  </channel>
</rss>
