GNU Anubis 4.0 is out!!
Finally, after two years of development process, we released
a milestone version, 4.0. Here is the official
annoucement, and here is a quick summary of the major changes:
- The new authentication and authorization mode has been introduced,
which does not require client machines to run an AUTH server (identd).
It uses standard SMTP AUTH capability.
- User's database can be kept on the server machine in any of
the following formats: plain text, GDBM, MySQL, PostgreSQL.
- The program is now extensible via Guile.
- Configuration file grammar has been heavily improved. It features several
new syntactical entities, allows nesting of conditional statements to arbitrary
depth, and is easily extended using Guile.
- Added test suite (make check).
No matter how perfect things are made to appear,
Murphy's law will take effect and screw it up.
Oh well, it is likely that we'll have to postpone
the 4.0 release, because of the serious problems with GNU SASL
library 0.2.x. The API has changed heavily, and I can't remember so buggy
software in a long time! Current version 0.2.2 doesn't work with Anubis,
both while using an old API and while using the new. Fortunately,
Sergey hacked it and found the bugs, so Simon should be informed tomorrow.
Today I also updated GNU Bison 1.875e translation, but the
TP-Robot's gone crazy and refused to cooperate. Bad luck today, sigh.
Huh, this is a pretty smart and fresh idea:
Google Suggest.
Yup, socks.c
should be now fixed. I was thinking
about removing it in a future and use only an external
SOCKS
library, but (uhm) can't find any with a proper project's
home page and being completely free (GPL/LGPL). Am I googling
wrong? For instance, Fetchmail supports some SOCKS
libraries, but doesn't say anything about their source.
libmu_cpp has been merged into the mainline.
I wrote this:
in Java
import java.util.*;
class StackTest
{
public static void main (String[] s)
{
Stack stack = new Stack ();
stack.push ("a");
stack.push ("b");
stack.push ("c");
Iterator itr = stack.iterator ();
while (itr.hasNext ())
System.out.print (itr.next () + " ");
System.out.println ();
stack = null;
}
}
and C#
using System;
using System.Collections;
class StackTest
{
public static void Main ()
{
Stack stack = new Stack ();
stack.Push ("a");
stack.Push ("b");
stack.Push ("c");
IEnumerator e = stack.GetEnumerator ();
while (e.MoveNext ())
Console.Write (e.Current + " ");
Console.WriteLine ();
stack = null;
}
}
The result:
$ javac StackTest.java
$ java StackTest
a b c
$ mcs StackTest.cs
$ mono StackTest.exe
c b a
What the heck? This is confused, but I like more the
.NET framework implementation. So, here is my own stack implementation:
Stack.java alongside with the test
program StackTest.java.
Okay, here is also a similar example in C++:
#include <iostream>
#include <string>
#include <list>
using namespace std;
int main ()
{
list<string> stack;
stack.push_back ("a");
stack.push_back ("b");
stack.push_back ("c");
for (list<string>::const_iterator itr = stack.begin ();
itr != stack.end (); itr++)
cout << *itr << " ";
cout << endl;
for (list<string>::reverse_iterator itr = stack.rbegin ();
itr != stack.rend (); itr++)
cout << *itr << " ";
cout << endl;
return 0;
}
$ g++ StackTest.cc -o StackTest
$ ./StackTest
a b c
c b a
Notice that I didn't use <stack>,
because it is a container adapter and it doesn't provide the iterators.
Found PBase, a really nice
photo database. It has many interesting galleries and provides a good search engine
where you can search photos by keyword, by
country (and city), and even by a camera
type.
Some quick links:
A lot of rants
about Google's recent proprietary
Desktop Search tool. Right now, it's poor and MS Windows-only. It sucks,
but we can use Beagle
instead!
Update: It is a very good album.
The more I listen to it, the more I like it.
GNU Anubis 3.9.96 Released
I think the most important addition is a new automatic
test suite for the Dixie mode, because doing manual tests
takes a lot of time and it is drudging. As I already mentioned
it earlier in my blog, we have adjusted the format of plain
text database, which allows now for inclusion of empty fields.
I'm also very happy to see those less user-visible changes,
like the XELO
extension, the use of MD5 checksums
when checking user configuration file on a remote machine,
and the recent error handling improvement.
According to our roadmap, version 4.0 will be
released on December 15th, 2004. Uhm, so less than 3 months remain,
but we are going to hit that date, you can bet on it :).