Skip to content →

Category: web

Bill Schelter’s Maxima

Bill
Schelter was a remarkable man. First, he was a top-class mathematician.
If you allow yourself to be impressed, read his proof of the
Artin-Procesi theorem. Bill was also among the first to take
non-commutative geometry seriously. Together with Mike Artin he
investigated a notion of non-commutative integral extensions and he was
the first to focuss attention to formally smooth algebras (a
suggestion later taken up by a.o. Cuntz-Quillen and Kontsevich) and a
relative version with respect to algebras satisfying all identities of
n x n matrices which (via work of Procesi) led to smooth@n
algebras. To youngsters, he is probably best know as the co-inventor of
Artin-Schelter regular algebras. I still vividly remember an
overly enthusiastic talk by him on the subject in Oberwolfach, sometime
in the late eighties. Secondly, Bill was a genuine Lisp-guru and
a strong proponent of open source software, see for example his
petition against software patents. He maintanind
his own version of Kyoto Common Lisp which developed into Gnu
Common Lisp
. A quote on its history :

GCL is
the product of many hands over many years. The original effort was known
as the Kyoto Common Lisp system, written by Taiichi Yuasa and Masami
Hagiya in 1984. In 1987 new work was begun by William Schelter, and that
version of the system was called AKCL (Austin Kyoto Common Lisp). In
1994 AKCL was released as GCL (GNU Common Lisp) under the GNU public
library license. The primary purpose of GCL during that phase of it’s
existence was to support the Maxima computer algebra system, also
maintained by Dr. Schelter. It existed largely as a subproject of
Maxima.

Maxima started as Bill’s version of
Macsyma an MIT-based symbolic computation program to which he
added many routines, one of which was Affine a package that
allowed to do Groebner-like computations in non-commutative
algebras (implementing Bergman’s diamond lemma) and which he
needed to get a grip on 3-dimensional Artin-Schelter regular
algebras
. Michel and me convinced Fred to acquire funds to
buy us a work-station (costing at the time 20 to 30 iMacs) and have Bill
flown in from the States with his tape of maxima and let him
port it to our Dec-station. Antwerp was probably for years
the only place in the world (apart from MIT) where one could do
calculations in affine (probably highly illegal at the time).
Still, lots of people benefitted from this, among others Michaela
Vancliff
and Kristel Van Rompay in their investigation
of 4-dimensional Artin-Schelter regular algebras associated to an
automorphism of a quadric in three-dimensional projective space.
Yesterday I ran into Bill (alas virtually) by browsing the
crypto-category of Fink. There it was, maxima, Bill’s package! I tried to install it
with the Fink Commander and failed but succeeded from the command line.
So, if you want to have your own version of it type

sudo fink
install maxima

from the Terminal and it will install without
problems (giving you also a working copy of common lisp). Unfortunately
I do not remember too much of Macsyma or Affine but there is plenty of
documentation on the net. Manuals and user guides can be obtained from
the maxima homepage and the University of Texas
(Bill’s university) maintains an online manual, including a cryptic description of
some Affine-commands. But probably I’ll have to send Michaela an
email asking for some guidance on this… Here, as a tribute to Bill who
died in july 2001 the opening banner

 iMacLieven:~ lieven$
/sw/bin/maxima Maxima 5.9.0 http://maxima.sourceforge.net 
Distributed under the GNU Public License. 
See the file COPYING. 
Dedicated to the memory of William Schelter. 
This is a development version of Maxima. 
The function bug_report() provides bug reporting information. 
(C1)
 
Leave a Comment

bandwidth measures


One day (hopefully) lots of MP3, JPEG and perhaps even
MPEG-files will be flying around our wireless home-network. But I
didn’t have any idea of how much data I could cram through the
Airport-connections. To estimate the available bandwith of a
network there is a nice free tool around, iperf of which you can download binaries for
almost any platform including OS X. So click on the MacOS X (Darwin 6.4)
binary button half way on the iperf-page and you get a Desktop
iperf-1.7.0-powerpc-apple-darwin6.4 Folder
which you may rename to
just iperf. Do this on two computers connected to the
Airport-network you want to measure. Now, decide which of the two will
play the ‘server’ and which the ‘client’ (the end result does not
depend on this choice). So fire up the Terminal of the serving
computer and type

sudo ~/Desktop/iperf/iperf -s

and you will
get a message saying that the server is listening on TCP port 5001. Go
to the SystemPreferences/Network to obtain the IP-address of the server
(say it is 10.0.1.5) . Walk over to the ‘client’-computer and type
into its Terminal

sudo ~/Desktop/iperf/iperf -c 10.0.1.5
-r

and after a few moments it will compute the bandwidth of the
connection for you. Here is a sample output of two Airport-card
iMacs connected to the same Airport-Extreme base station :

iMacLieven:~/Desktop/iperf lieven$ ./iperf
-s ------------------------------------------------------------\r\
nServer listening on TCP port 5001 TCP window size: 64.0 KByte
(default) -----------------------------------------------------------
- [  4] local 10.0.1.2 port 5001 connected with 10.0.1.7 port
49245 [ ID] Interval       Transfer     Bandwidth [  4]  0.0-10.3
sec  2.77 MBytes  2.27
Mbits/sec -----------------------------------------------------------
- Client connecting to 10.0.1.7, TCP port 5001 TCP window size:
65.0 KByte
(default) -----------------------------------------------------------
- [  4] local 10.0.1.2 port 49515 connected with 10.0.1.7 port
5001 [ ID] Interval       Transfer     Bandwidth [  4]  0.0-10.2
sec  2.73 MBytes  2.23 Mbits/sec indicating a bandwidth of approximately
2.25Mbits/sec. If we replay the same game with two
AirportExtreme-card iMacs on the same network we can nearly
triple (!) the bandwidth : 
[eMacAnn:~] lieven% cd
Desktop/iperf [eMacAnn:~/Desktop/iperf] lieven% ./iperf
-s ------------------------------------------------------------\r\
nServer listening on TCP port 5001 TCP window size: 64.0 KByte
(default) -----------------------------------------------------------
- [  4] local 10.0.1.5 port 5001 connected with 10.0.1.6 port
49314 [ ID] Interval       Transfer     Bandwidth [  4]  0.0-10.0
sec  8.50 MBytes  7.11
Mbits/sec -----------------------------------------------------------
- Client connecting to 10.0.1.6, TCP port 5001 TCP window size:
65.0 KByte
(default) -----------------------------------------------------------
- [  4] local 10.0.1.5 port 49320 connected with 10.0.1.6 port
5001 [ ID] Interval       Transfer     Bandwidth [  4]  0.0-10.9
sec  7.07 MBytes  5.45 Mbits/sec

However, if these two
AirportExtrame-card computers connect to each other via the
Graphite-Airport base station the bandwidth drops to a meagre 1.9
Mbits/sec which is roughly the same as two Airport-card computers
connecting (which gave me 2.45 Mbits/s). Anyway, there is no immediate
problem with bandwidth on either network for what I have in mind.
Another important number to know is the real speed of our
internet-connection (for instance if I want to replace our old router by
a better documented one and have a measure for the in/decrease of the
connection-speed). Here, a good URL is performance.chello.at which offers two tests :
String and String SSI. The later one has a graphical
resulting page such as

Leave a Comment

google spammers


In the GoogleMatrix I tried to understand the concept
of the PageRank algorithm that Google uses to list pages according to
their \’importance\’. So, if you want your webpage to come out first in
a certain search, you have to increase your PageRank-value (which
normally is a measure of webpages linking to your page) artificially. A
method to achieve this is by link spamming, that is if page A is
to webpage of which you want to increase the PageRank value, take a page
B (either under your control or that of a friend webmaster) and add a
dummy link page B -> page A. To find out the effect of this on the
PageRank and how the second eigenvalue of the GoogleMatrix is able to
detect such constructs let us set up a micro-web consisting of
just 3 pages with links 1->2 and 1->3. The corresponding GoogleMatrix
(with c=0.85 and v=(1/3,1/3,1/3) is

1/3   1/20   1/20 1/3   9/10 
 1/20 1/3   1/20   9/10

which has eigenvalues 1,0.85 and 0.28.
The eigenvector with eigenvalue 1 (the PageRank) is equal to (0.15,1,1)
so page 2 and page 3 are equally important to Google and if we scale
PageRank such that it adds up to 100% over all pages, the relative
importance values are 6,9%,46,5% and 46,5%. In this case the eigenvector
corresponding to the second eigenvalue 0.85 is (0,-1,1) and hence
detects the two leaf-nodes. Now, assume the owner of page 2 sets up a
link spam by creating page 4 and linking 4->3, then the corresponding
GoogleMatrix (with v=(1/4,1/4,1/4,1/4)) is

77/240   3/80   3/80  
3/80 77/240   71/80   3/80   37/80 77/240   3/80   71/80  
3/80  3/80   3/80   3/80   37/80

which has eigenvalues
1,0.85,0.425 and 0.283. The PageRank eigenvector with eigenvalue 1 is
in this case is (0.8,8.18,5.35,1) or in relative importance % we have
(4.9%,50.1%,32.7%,6.1%) and we see that the spammer achieved his/her
goal. The eigenvector corresponding to the second eigenvalue is
(0,-1,1,0) which again gives the leaf-nodes and the eigenvector of the
third eigenvalue is (0,-1,0,1) and detects the spam-construct.

Leave a Comment