<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3473399517246044360</id><updated>2011-11-28T00:27:28.490+01:00</updated><category term='mirror'/><category term='sage'/><category term='google wave'/><category term='fun'/><category term='dotA'/><category term='go'/><category term='html'/><category term='google'/><category term='optimization'/><title type='text'>Harald Schilly</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://harald-schilly.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3473399517246044360/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://harald-schilly.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>hsy</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>15</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3473399517246044360.post-5673394517103880941</id><published>2011-07-01T16:16:00.003+02:00</published><updated>2011-07-01T16:20:17.776+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='go'/><title type='text'>Sorting is Linear - also in Go!</title><content type='html'>Wrttien in &lt;a href="http://www.golang.org/"&gt;Go&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre style="font-size: 9px;"&gt;package main&lt;br /&gt;&lt;br /&gt;/*&lt;br /&gt;&amp;nbsp; &amp;nbsp;Sorting a list of positive int64 values is linear, also in Go!&lt;br /&gt;&amp;nbsp; &amp;nbsp;Author: Harald Schilly &lt;br /&gt;&amp;nbsp; &amp;nbsp;Based on some bash script I found somewhere on the internetz ...&lt;br /&gt;*/&lt;br /&gt;&lt;br /&gt;import "time"&lt;br /&gt;&lt;br /&gt;func main() {&lt;br /&gt;&amp;nbsp; var vals = []int64 { 55, 1, 9, 0, 31, 11, 90, 11 }&lt;br /&gt;&lt;br /&gt;&amp;nbsp; var ret &amp;nbsp;= make(chan int64)&lt;br /&gt;&amp;nbsp; var done = make(chan bool)&lt;br /&gt;&lt;br /&gt;&amp;nbsp; // main loop, just a single for loop&lt;br /&gt;&amp;nbsp; for _, v := range vals {&lt;br /&gt;&amp;nbsp; &amp;nbsp; go func(v int64) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; // if it doesn't sort well, increase the 1e5&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; time.Sleep(1e5 * v)&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; ret &amp;lt;- v&lt;br /&gt;&amp;nbsp; &amp;nbsp; } (v)&lt;br /&gt;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp; // output iterates over all results in the ret channel&lt;br /&gt;&amp;nbsp; go func() {&lt;br /&gt;&amp;nbsp; &amp;nbsp; for i := 0; i &amp;lt; len(vals); i++ {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; println(&amp;lt;-ret)&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp; done &amp;lt;- true&lt;br /&gt;&amp;nbsp; }()&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;lt;-done&lt;br /&gt;}&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3473399517246044360-5673394517103880941?l=harald-schilly.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://harald-schilly.blogspot.com/feeds/5673394517103880941/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://harald-schilly.blogspot.com/2011/07/sorting-is-linear-also-in-go.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3473399517246044360/posts/default/5673394517103880941'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3473399517246044360/posts/default/5673394517103880941'/><link rel='alternate' type='text/html' href='http://harald-schilly.blogspot.com/2011/07/sorting-is-linear-also-in-go.html' title='Sorting is Linear - also in Go!'/><author><name>hsy</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3473399517246044360.post-533316356765575463</id><published>2010-11-12T20:34:00.000+01:00</published><updated>2010-11-12T20:34:48.265+01:00</updated><title type='text'>Java XML DOM Document creation</title><content type='html'>&lt;div style="white-space: nowrap;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;/**&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;* Since if found some crap on the Internet, here a better example for creating an XML document in Java.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;*&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;* Copyright: Harald Schilly &lt;harald.schilly@gmail.com&gt;&lt;/harald.schilly@gmail.com&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;* License: Apache 2.0&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;*/&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;package at.schilly.aldap2.ue12131415xml;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;import java.io.BufferedOutputStream;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;import java.io.File;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;import java.io.FileNotFoundException;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;import java.io.FileOutputStream;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;import java.text.SimpleDateFormat;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;import java.util.Calendar;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;import java.util.Map;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;import javax.xml.parsers.DocumentBuilder;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;import javax.xml.parsers.DocumentBuilderFactory;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;import javax.xml.parsers.ParserConfigurationException;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;import javax.xml.transform.OutputKeys;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;import javax.xml.transform.Transformer;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;import javax.xml.transform.TransformerException;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;import javax.xml.transform.TransformerFactory;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;import javax.xml.transform.dom.DOMSource;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;import javax.xml.transform.stream.StreamResult;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;import org.w3c.dom.Document;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;import org.w3c.dom.Element;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;import org.w3c.dom.Node;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;/** @author harald schilly */&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;public class MapToXml {&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;final private SimpleDateFormat dateformat = new SimpleDateFormat("yyyy-MM-dd");&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;/** this method takes a Map of Strings to Strings and builds an xml document.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; *&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; * @param xmlfn&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;xml output filename&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; * @param map&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;just a plain Map&lt;string, string=""&gt;&lt;/string,&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; * @throws ParserConfigurationException&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; * @throws FileNotFoundException&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; * @throws TransformerException */&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;public void write(final File xmlfn, final Map&lt;string, string=""&gt; map)&lt;/string,&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;throws ParserConfigurationException, FileNotFoundException,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;TransformerException {&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Docbuilder to create the xmldoc&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;DocumentBuilderFactory docbuilderfactory = DocumentBuilderFactory&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: small;"&gt;.newInstance();&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;DocumentBuilder docbuilder = docbuilderfactory.newDocumentBuilder();&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Document xmldoc = docbuilder.newDocument();&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;// That's the root element&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Element root = xmldoc.createElement("map");&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;// last saved element&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Element lastsaved = xmldoc.createElement("lastSavedBy");&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;lastsaved.setAttribute("name", "Harald Schilly");&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;lastsaved.setAttribute("date",&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;dateformat.format(Calendar.getInstance().getTime()));&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;root.appendChild(lastsaved);&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;// iterate over map and add the entry/value elements&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;for (Map.Entry&lt;string, string=""&gt; mapentry : map.entrySet()) {&lt;/string,&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;Element entry = xmldoc.createElement("entry");&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;entry.setAttribute("key", mapentry.getKey());&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;Element value = xmldoc.createElement("value");&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;Node node = xmldoc.createTextNode(mapentry.getValue());&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;value.appendChild(node);&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;entry.appendChild(value);&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;root.appendChild(entry);&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;xmldoc.appendChild(root);&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;// get a transformer with the given .dtd&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;TransformerFactory transormerfactory = TransformerFactory.newInstance();&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Transformer transformer = transormerfactory.newTransformer();&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;transformer.setOutputProperty(OutputKeys.DOCTYPE_SYSTEM, "map.dtd");&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "no");&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;transformer.setOutputProperty(OutputKeys.INDENT, "yes");&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;// transform and write to a file&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;// use a StringWriter() object to write to a string.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;FileOutputStream fos = new FileOutputStream(xmlfn);&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;BufferedOutputStream bos = new BufferedOutputStream(fos);&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;StreamResult result = new StreamResult(bos);&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;DOMSource source = new DOMSource(xmldoc);&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;transformer.transform(source, result);&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3473399517246044360-533316356765575463?l=harald-schilly.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://harald-schilly.blogspot.com/feeds/533316356765575463/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://harald-schilly.blogspot.com/2010/11/java-xml-dom-document-creation.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3473399517246044360/posts/default/533316356765575463'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3473399517246044360/posts/default/533316356765575463'/><link rel='alternate' type='text/html' href='http://harald-schilly.blogspot.com/2010/11/java-xml-dom-document-creation.html' title='Java XML DOM Document creation'/><author><name>hsy</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3473399517246044360.post-3615943575631208051</id><published>2010-03-06T19:18:00.004+01:00</published><updated>2010-03-06T19:31:50.517+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sage'/><category scheme='http://www.blogger.com/atom/ns#' term='html'/><title type='text'>Anchors in Sage Notebooks</title><content type='html'>If you have a lengthy Sage Notebook and you want to quickly jump to a certain header or paragraph as a reference, use HTML anchors. They work like follows:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;An &amp;lt;a name="anchorname"&amp;gt;&amp;lt;/a&amp;gt; tag must be inserted at the position you want to jump to.&lt;/li&gt;&lt;li&gt;Reference it via &amp;lt;a href="#anchorname"&amp;gt;some text&amp;lt;/a&amp;gt;.&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;After that, you can jump to the marked position just by clicking on the &lt;u&gt;some text&lt;/u&gt; link.&lt;br /&gt;&lt;br /&gt;To insert rich text and HTML, use the rich text editor accessible via&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt; &amp;lt;shift&amp;gt;+&amp;lt;click on blue insert bar&amp;gt&lt;/span&gt;. There is an "HTML" icon. Alternatively, you can use the &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;html()&lt;/span&gt; function:&lt;br /&gt;i.e. &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;html('&amp;lt;a name="test"&amp;gt;&amp;lt;/a&amp;gt;') ...&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3473399517246044360-3615943575631208051?l=harald-schilly.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://harald-schilly.blogspot.com/feeds/3615943575631208051/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://harald-schilly.blogspot.com/2010/03/anchors-in-sage-notebooks.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3473399517246044360/posts/default/3615943575631208051'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3473399517246044360/posts/default/3615943575631208051'/><link rel='alternate' type='text/html' href='http://harald-schilly.blogspot.com/2010/03/anchors-in-sage-notebooks.html' title='Anchors in Sage Notebooks'/><author><name>hsy</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3473399517246044360.post-2236207330091156796</id><published>2010-02-13T22:08:00.004+01:00</published><updated>2010-02-13T22:12:08.193+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='optimization'/><category scheme='http://www.blogger.com/atom/ns#' term='dotA'/><title type='text'>dotA Itemkauf Optimierung</title><content type='html'>Mein Mitbewohner ließ nicht locker,&lt;br /&gt;spielte täglich dieses &lt;a href="http://www.dota-allstars.com/"&gt;dotA&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Nach jedem Itemkauf fragte er sich,&lt;br /&gt;ob sich das nicht besser machen lies.&lt;br /&gt;&lt;br /&gt;Hier ein &lt;a href="http://zimpl.zib.de/"&gt;ZIMPL&lt;/a&gt; Skript zum optimieren,&lt;br /&gt;bitte schreib es fertig, sonst ists zum genieren.&lt;br /&gt;&lt;br /&gt;Flott sagt dir&amp;nbsp;&lt;a href="http://scip.zib.de/"&gt;SCIP&lt;/a&gt; dann ganz korrekt,&lt;br /&gt;wo du am besten dein Gold hinsteckst.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;# zimpl model for optimizing buying dotA items&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;# copyright 2010: harald schilly &lt;harald.schilly@gmail.com&gt;&lt;/harald.schilly@gmail.com&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;# license: CC-BY-NC-SA 3.0&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;# helden&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;set helden := { 1 to 5 };&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;# freie plätze zum einkaufen&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;param frei[helden] := &amp;nbsp;&amp;lt;1&amp;gt; 6, &amp;lt;2&amp;gt; 4, &amp;lt;3&amp;gt; 4, &amp;lt;4&amp;gt; 2, &amp;lt;5&amp;gt; 6;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;# welche items es gibt&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;set items := { 1 to 3} ;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;# kosten pro item&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;param itemcost[items] := &amp;lt;1&amp;gt; 100, &amp;lt;2&amp;gt; 50, &amp;lt;3&amp;gt; 63;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;# menge der fähigkeiten die jeder item pushen kann&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;set abilities := { 1 to 4 };&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;# was jeweils besser wird&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;param itempower[abilities * items] :=&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;| &amp;nbsp; 1, &amp;nbsp;2, &amp;nbsp; 3 |&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;|1| &amp;nbsp; 5, &amp;nbsp;1, &amp;nbsp; 0 |&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;|2| &amp;nbsp; 0, &amp;nbsp;1, &amp;nbsp; 4 |&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;|3| &amp;nbsp; 1, &amp;nbsp;1, &amp;nbsp; 8 |&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;|4| &amp;nbsp; 1, &amp;nbsp;4, &amp;nbsp;10 |;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;# basiswert der zum maximum einer spalte addiert wird&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;# notwendig in der zielfunktion für die gewichtung&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;param baseval := 1;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;# gesamtbuget an gold&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;param budget := 500;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;# die variablenmatrix&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;var buy[helden * items] integer &amp;gt;= 0 &amp;lt;= 6;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;# man kann nur so viel kaufen wie geld da ist&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;subto costs:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;sum &amp;lt;h,i&amp;gt;&amp;nbsp;&lt;h,i&gt;in helden * items:&amp;nbsp;&lt;/h,i&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;buy[h,i] * itemcost[i] &amp;lt;= budget;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;# man kann nur so viel kaufen wie der&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;# held noch freie plätze hat&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;subto maxperheld:&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;forall &lt;h&gt; in helden:&lt;/h&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;sum &lt;i&gt; in items: buy[h, i] &amp;lt;= frei[h];&lt;/i&gt;&lt;/span&gt;&lt;i&gt;&lt;/i&gt;&lt;/span&gt;&lt;i&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;# ich will die fähigkeiten meines teams maximieren&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;maximize obj: sum &amp;lt;h,i,a&amp;gt;&amp;nbsp;&lt;h,i,a&gt;in helden * items * abilities:&lt;/h,i,a&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;(itempower[a, i] / (baseval + max &amp;lt;a&amp;gt;&amp;nbsp;in abilities: itempower[a,i])) * buy[h, i];&lt;/span&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=3473399517246044360&amp;amp;postID=2236207330091156796"&gt;&lt;/a&gt;&lt;/span&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=3473399517246044360&amp;amp;postID=2236207330091156796"&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=3473399517246044360&amp;amp;postID=2236207330091156796"&gt;&lt;/a&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=3473399517246044360&amp;amp;postID=2236207330091156796"&gt;&lt;/a&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=3473399517246044360&amp;amp;postID=2236207330091156796"&gt;&lt;/a&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=3473399517246044360&amp;amp;postID=2236207330091156796"&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/a&gt;&lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3473399517246044360-2236207330091156796?l=harald-schilly.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://harald-schilly.blogspot.com/feeds/2236207330091156796/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://harald-schilly.blogspot.com/2010/02/dota-itemkauf-optimierung.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3473399517246044360/posts/default/2236207330091156796'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3473399517246044360/posts/default/2236207330091156796'/><link rel='alternate' type='text/html' href='http://harald-schilly.blogspot.com/2010/02/dota-itemkauf-optimierung.html' title='dotA Itemkauf Optimierung'/><author><name>hsy</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3473399517246044360.post-2546162055041529466</id><published>2010-01-21T20:06:00.008+01:00</published><updated>2010-02-07T14:26:18.383+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sage'/><title type='text'>Compiling Sage on my Atom N270 Netbook</title><content type='html'>&lt;span style="font-family: Verdana, sans-serif;"&gt;Here are some notes to myself regarding compiling &lt;/span&gt;&lt;a href="http://www.sagemath.org/"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Sage&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; on my HP Mini 2140 with an Atom N270 CPU. I'm running Linux Ubuntu 9.10. This successfully compiles Sage 4.3 and 4.3.1 and might also work for later version.&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size: x-large;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Download&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;# using aria2, first get aria2&lt;br /&gt;$&amp;nbsp;&lt;/span&gt;&lt;b&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;sudo apt-get install aria2&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;b&gt;&lt;span style="font-weight: normal;"&gt;# go to a local directory and just use the .metalink link&lt;/span&gt;&lt;br /&gt;&lt;/b&gt;$ &lt;/span&gt;&lt;b&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;aria2c http://server/path/&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;a href="http://sage.math.washington.edu/sage/metalinks.html"&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;sage-x.y.z.tar.metalink&lt;/span&gt;&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;&lt;div&gt;&lt;b&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;# note, that aria2c doesn't stop when it has finished.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;# it will start seeding the file to others via bittorrent.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;# You can terminate this by hitting Ctrl-C&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;####&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;a href="http://sage.math.washington.edu/sage/metalinks.html"&gt;&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-weight: normal;"&gt;&lt;b&gt;&lt;span style="font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;# or download via http/ftp from the &lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;a href="http://www.sagemath.org/download-source.html"&gt;download page&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span style="font-weight: normal;"&gt;&lt;b&gt;&lt;span style="font-weight: normal;"&gt;&lt;a href="http://www.sagemath.org/download-source.html"&gt;&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt; &lt;span style="font-size: x-large;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Verify&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;# If you think your download might have been corrupted, verify it:&lt;br /&gt;$&amp;nbsp;&lt;/span&gt;&lt;b&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;aria2c -V http://server/path/sage-x.y.z.tar.metalink&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;b&gt;&lt;span style="font-family: 'Times New Roman'; font-weight: normal;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt; &lt;/b&gt;&lt;/div&gt;&lt;span style="font-size: x-large;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Extract&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;b&gt;&lt;span style="font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;# any local directory is fine&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span style="font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;$ &lt;/span&gt;&lt;b&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;tar xf sage-x.y.z.tar&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-weight: normal;"&gt;&lt;b&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt; &lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: x-large;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Prerequisites&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;# You need some tools to compile Sage:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;$ &lt;b&gt;sudo apt-get install&amp;nbsp;build-essential m4\&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;b&gt;readline&amp;nbsp;libreadline-dev gfortran texlive&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;# read more:&amp;nbsp;&lt;/span&gt;&lt;a href="http://www.sagemath.org/doc/installation/source.html"&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;Installation Guide&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: x-large;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Setup Build Environment&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;b&gt;$ cd sage-x.y.z&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;# get rid of some environment variables, unless&lt;br /&gt;# you know what you do (i.e. ccache, ...)&lt;br /&gt;$ &lt;/span&gt;&lt;b&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;unset CC&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;$ &lt;/span&gt;&lt;b&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;unset CXX&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;#&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;see README.txt if you need this&lt;br /&gt;$ &lt;/span&gt;&lt;b&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;export SAGE_FAT_BINARY="yes"&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;br /&gt;# if you have gfortran library problems&lt;br /&gt;# find your correct paths via $ locate gfortran&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;# setting these variables is &lt;i&gt;necessary&lt;/i&gt; on Ubuntu 9.10&lt;br /&gt;$ &lt;/span&gt;&lt;b&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;export SAGE_FORTRAN=/usr/bin/gfortran&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;$ &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;export SAGE_FORTRAN_LIB=/usr/lib/libgfortran.so.3&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;# note: do not start over compilation if that problem happens,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;# you have to remove and clean up everything first&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;# there are two cores in the CPU&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;# use both of them in parallel!&lt;br /&gt;$ &lt;/span&gt;&lt;b&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;export MAKE="make -j2"&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt; &lt;/b&gt;&lt;i&gt;&lt;span style="font-style: normal;"&gt;&lt;span style="font-size: x-large;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Start Compilation&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt; &lt;/i&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;# in a resource friendly mode&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;$ &lt;b&gt;ionice -c 3 nice make&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt; &lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: x-large;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Testing and Packaging&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;If compilation didn't end with an error (otherwise:&amp;nbsp;&lt;/span&gt;&lt;a href="http://www.sagemath.org/search.html"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;search&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;, &lt;/span&gt;&lt;a href="http://groups.google.com/group/sage-support"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;sage-support&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; and &lt;/span&gt;&lt;a href="http://groups.google.com/group/sage-devel"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;sage-devel&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;or &lt;/span&gt;&lt;a href="http://www.sagemath.org/help-irc.html"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;irc chat&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;# Test the entire beast (2 for 2 CPU cores):&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;$ &lt;/span&gt;&lt;b&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;./sage -tp 2 devel/sage-main&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;# or&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;$ &lt;/span&gt;&lt;b&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;./sage -testall&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;# once again, please report problems&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-weight: normal;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;If you want to build a &lt;/span&gt;&lt;i&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;binary distribution&lt;/span&gt;&lt;/i&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;, upload it to us at sagemath.org or send it to a friend with a similar machine+system:&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;b&gt;&lt;span style="font-family: 'Times New Roman'; font-weight: normal;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;b&gt;&lt;span style="font-family: 'Times New Roman'; font-weight: normal;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;$ &lt;b&gt;./sage -bdist x.y.z-LinuxVersion&lt;operating_system&gt;;&lt;/operating_system&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;operating_system&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt; &lt;/operating_system&gt;&lt;/b&gt;&lt;/div&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;On systems like Ubuntu, you can shrink the resulting archive &lt;/span&gt;&lt;i&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;much smaller&lt;/span&gt;&lt;/i&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; using &lt;/span&gt;&lt;a href="http://en.wikipedia.org/wiki/Lempel-Ziv-Markov_chain_algorithm"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;lzma&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; compression. "trans-compress" it via:&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;b&gt;&lt;span style="font-family: 'Times New Roman'; font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;b&gt;&lt;span style="font-family: 'Times New Roman'; font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;b&gt;&lt;span style="font-family: 'Times New Roman'; font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;b&gt;&lt;span style="font-family: 'Times New Roman'; font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;$ &lt;b&gt;zcat sage-x.y.z-...tar.gz | lzma -zv &amp;gt; sage-x.y.z-...tar.lzma&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt; &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;b&gt;&lt;span style="font-family: 'Times New Roman'; font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;b&gt;&lt;span style="font-family: 'Times New Roman'; font-weight: normal;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;and to extract the tar.lzma later:&lt;br /&gt;&lt;/span&gt; &lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;b&gt;&lt;span style="font-family: 'Times New Roman'; font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;b&gt;&lt;span style="font-family: 'Times New Roman'; font-weight: normal;"&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;$ &lt;b&gt;tar --lzma -xvf sage-x.y.z...tar.lzma&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size: x-large;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Links&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.sagemath.org/doc/installation/source.html"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Installation Guide&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;a href="http://wiki.sagemath.org/devel/BuildFarm"&gt;Please report successes or failures in our wiki&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3473399517246044360-2546162055041529466?l=harald-schilly.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://harald-schilly.blogspot.com/feeds/2546162055041529466/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://harald-schilly.blogspot.com/2010/01/compiling-sage-on-my-atom-n270-netbook.html#comment-form' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3473399517246044360/posts/default/2546162055041529466'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3473399517246044360/posts/default/2546162055041529466'/><link rel='alternate' type='text/html' href='http://harald-schilly.blogspot.com/2010/01/compiling-sage-on-my-atom-n270-netbook.html' title='Compiling Sage on my Atom N270 Netbook'/><author><name>hsy</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3473399517246044360.post-4636433622011346767</id><published>2009-11-29T18:58:00.000+01:00</published><updated>2009-11-29T18:58:35.847+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sage'/><category scheme='http://www.blogger.com/atom/ns#' term='mirror'/><title type='text'>Maintaining a Mirror Network</title><content type='html'>&lt;div style="text-align: left;"&gt;&lt;span style="font-family: 'Trebuchet MS', sans-serif;"&gt;Here are some notes about maintaining a &lt;b&gt;mirror network&lt;/b&gt;. I'm talking about the&amp;nbsp;&lt;/span&gt;&lt;a href="http://www.sagemath.org/"&gt;&lt;span style="font-family: 'Trebuchet MS', sans-serif;"&gt;Sage&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: 'Trebuchet MS', sans-serif;"&gt;&amp;nbsp;software, which is a nice open source mathematics program. Besides the source, there are many prebuilt binaries&amp;nbsp;for various platforms&lt;span style="font-family: 'Times New Roman';"&gt;&lt;span style="font-family: 'Trebuchet MS', sans-serif;"&gt;. In total, for each release once a month, there have to move about 14GB in 27 files to 18 mirror websites on &lt;/span&gt;&lt;a href="http://www.sagemath.org/mirrors.html"&gt;&lt;span style="font-family: 'Trebuchet MS', sans-serif;"&gt;all continents of the world&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: 'Trebuchet MS', sans-serif;"&gt;. It's important to have nearby mirrors, because the network connectivity might be weak in some areas. In Nov. 2009, the virtual box image for windows alone generated about 1.5 TB of traffic - all other binaries and source combined probably also 1.5 TB. Therefore, the mirror networks net efficiency is approximately a&amp;nbsp;tenfold&amp;nbsp;increases of the outgoing data volume.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-family: 'Trebuchet MS', sans-serif;"&gt;To ensure that only those mirrors which are online and up-to-date are listed on the website, a small Python script checks a&amp;nbsp;time-stamp&amp;nbsp;file with a content-specific checksum. Only if it is correct and&amp;nbsp;retrievable, the mirror is included. This check happens every 10 minutes, using Linux's cron mechanism.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-family: 'Trebuchet MS', sans-serif;"&gt;Recently I enhanced this to visualize how the mirrors perform over time. This is especially interesting when a new release is mirrored out into the world. To see how this looks like, here is the graphic for the Sage 4.2.1 rollout:&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span style="font-family: 'Trebuchet MS', sans-serif; margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://sage.math.washington.edu/home/schilly/mm/mirror-log/mirror_manager_2009-46.png" /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-family: 'Trebuchet MS', sans-serif;"&gt;Time starts at the bottom, you see it's around 14:00 GMT on Nov. 17th. The first working mirror is "UW", which is the master. The master mirror is excluded, once there is at least another one in North America online -&amp;nbsp;as you can see that's SFU and Boston (Harvard). You can also see that it takes more than one day to sync with the mirrors. Besides that the transfer takes its time, they are probably scheduled to start sync only once a day, the master mirror rejects too many simultaneous connections, too many users download directly from the main server or there is simply some other timeout! Why are there two breaks? Well, not all binaries are ready at the same time and the timestamp is for the whole mirror, so that you do not access an outdated mirror. The broken line of Yandex is also a bit odd, but that's because they have multiple servers and seem to switch between.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-family: 'Trebuchet MS', sans-serif;"&gt;How does it look right now? Here is the website for the &lt;a href="http://www.sagemath.org/mirror-log/mirror_manager.html"&gt;mirror log visualization&lt;/a&gt;. There is also a link to how it looked &lt;a href="http://www.sagemath.org/mirror-log/mirror_manager_2009-47.png"&gt;last week&lt;/a&gt;.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Trebuchet MS', sans-serif;"&gt;Beyond just&amp;nbsp;retrieving&amp;nbsp;a file through http or ftp you can use a &lt;a href="http://www.sagemath.org/mirror/metalinks.html"&gt;metalink file&lt;/a&gt;. Through a client it enables downloading from all available mirrors simultaneously and the client selects a few but fastest mirrors automatically. It also checks consistency and downloads are&amp;nbsp;resumable. That's the ideal solution if you have a weaker connection and need to stop a huge transfer for some time or it is just flaky. Hint: use &lt;a href="http://aria2.sourceforge.net/"&gt;aria2&lt;/a&gt; or &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/201"&gt;DownThemAll&lt;/a&gt;.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-family: 'Trebuchet MS', sans-serif;"&gt;Ok, at last some words about hosting a mirror. Two things are important: sync often to avoid wasting time when you could transfer data, but only sync once at a time ;) I've written how i did set up a mirror (the Boston one) in a &lt;a href="http://wiki.sagemath.org/MirrorNetwork"&gt;MirrorNetwork wiki page&lt;/a&gt;. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Trebuchet MS', sans-serif;"&gt;In case the main website is down, you can find a &lt;a href="http://maps.google.com/maps/ms?ie=UTF8&amp;amp;hl=en&amp;amp;msa=0&amp;amp;msid=106570724428886886399.00046d7f23e304afe9f11&amp;amp;ll=28.304381,12.65625&amp;amp;spn=166.337894,360&amp;amp;z=1&amp;amp;source=embed"&gt;mirror here&lt;/a&gt;.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Trebuchet MS', sans-serif;"&gt;Thank's to all our mirror hosters! Without them Sage would probably never reach their users and new mirrors are always welcome, especially in southern asia!&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3473399517246044360-4636433622011346767?l=harald-schilly.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://harald-schilly.blogspot.com/feeds/4636433622011346767/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://harald-schilly.blogspot.com/2009/11/maintaining-mirror-network.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3473399517246044360/posts/default/4636433622011346767'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3473399517246044360/posts/default/4636433622011346767'/><link rel='alternate' type='text/html' href='http://harald-schilly.blogspot.com/2009/11/maintaining-mirror-network.html' title='Maintaining a Mirror Network'/><author><name>hsy</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3473399517246044360.post-3506469868727040854</id><published>2009-08-11T19:11:00.015+02:00</published><updated>2009-08-13T15:16:45.613+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sage'/><title type='text'>Popularity of Sage</title><content type='html'>&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;This post is about &lt;span class="Apple-style-span"  style=" ;font-family:Georgia, serif;"&gt;&lt;a href="http://www.sagemath.org/"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;Sage&lt;/span&gt;&lt;/a&gt;&lt;/span&gt; download statistics&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;.&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms', serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;I try to track the actual download events and derive some information about them. This post is about the timerange &lt;b&gt;June 1st until Aug 12th (today)&lt;/b&gt;. The basic numbers are, that Sage is downloaded most often in the USA (35%), followed by Germany (7%), France (5%), UK, Italy, Spain, Canada, China, Brazil and Japan (4 to 2 %). On average, Sage was downloaded 150 times each day during the last semester, and a bit more than 100 times during summer break. I hope, numbers will go up again ;)&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;But that's rather boring and I tried to put the numbers in context. I focused on those countries with more than one million inhabitants and scaled the download numbers with the population size or with the number of internet users. To my surprise, the hit-list looks totally different now!&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;Download Top 20 weighted by population&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="  white-space: pre-wrap; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Switzerland&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="  white-space: pre-wrap; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Austria&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="  white-space: pre-wrap; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;New Zealand&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="  white-space: pre-wrap; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Uruguay&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="  white-space: pre-wrap; "&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;United States&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="  white-space: pre-wrap; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Norway&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="  white-space: pre-wrap; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Slovenia&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="  white-space: pre-wrap; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Denmark&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="  white-space: pre-wrap; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Finland&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="  white-space: pre-wrap; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Canada&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="  white-space: pre-wrap; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Australia&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="  white-space: pre-wrap; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Singapore&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="  white-space: pre-wrap; "&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Germany&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="  white-space: pre-wrap; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Netherlands&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="  white-space: pre-wrap; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Spain&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="  white-space: pre-wrap; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Israel&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="  white-space: pre-wrap; "&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;France&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="  white-space: pre-wrap; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Czech Republic&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="  white-space: pre-wrap; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Greece &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style=" white-space: pre-wrap;font-size:medium;"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;I was somewhat surprised to see Switzerland, Austria and New Zealand and Uruguay on top! Concerning Uruguay, I know that they use Sage at University.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="  white-space: pre-wrap; "&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;b&gt;Download Top 20 weighted by "internet users"&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Niger&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Uruguay&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Guatemala&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Austria&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Greece&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Israel&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Switzerland&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Puerto Rico&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Ethiopia&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Mali&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Portugal&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Czech Republic&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;New Zealand&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Ireland&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Australia&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Spain&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Armenia&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap; "&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;France&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Denmark &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms', serif;"&gt;&lt;span class="Apple-style-span"  style=" white-space: pre-wrap;font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap; "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;For me, that's also rather interesting. Of course, those countries with only a few internet users are easily on top (Niger), but e.g. Guatemala has more than 1 million users and so far I have never heard of them using Sage. In this context, our top 3 from the pure download numbers are way down below: USA #23, Germany #21, France #19!&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms', serif;"&gt;&lt;span class="Apple-style-span"  style=" white-space: pre-wrap;font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms', serif;"&gt;&lt;span class="Apple-style-span"  style=" white-space: pre-wrap;font-size:medium;"&gt;&lt;i&gt;Now the important questions:&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms', serif;"&gt;&lt;span class="Apple-style-span"  style=" white-space: pre-wrap;font-size:medium;"&gt;What does that say about Sage adoption? Market potential? Is Uruguay a maths country and the USA not? Does it depend on the average income, GDP, ... (Switzerland &amp;amp; Austria vs. Uruguay &amp;amp; Guatemala?!?!) ... or just statistical noise?&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms', serif;"&gt;&lt;span class="Apple-style-span"  style=" white-space: pre-wrap; font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms', serif;"&gt;&lt;span class="Apple-style-span"  style=" white-space: pre-wrap;font-size:medium;"&gt;If you want to see the whole data: &lt;a href="http://spreadsheets.google.com/pub?key=tZ2axpG4DIf7GYBzOnHJGJQ&amp;amp;single=true&amp;amp;gid=0&amp;amp;output=html"&gt;online Webpage&lt;/a&gt;, &lt;a href="http://spreadsheets.google.com/pub?key=tZ2axpG4DIf7GYBzOnHJGJQ&amp;amp;single=true&amp;amp;gid=0&amp;amp;output=csv"&gt;CSV&lt;/a&gt;, &lt;a href="http://spreadsheets.google.com/pub?key=tZ2axpG4DIf7GYBzOnHJGJQ&amp;amp;single=true&amp;amp;gid=0&amp;amp;output=ods"&gt;ODS&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;&lt;b&gt;Update:&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;Here the same weighted top-20 lists for "Visits" (a session of one or more pages impressions on sagemath.org or an related website (mirror, wiki, etc.))&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;&lt;b&gt;Visists weighted by Population:&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Iceland&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Austria&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Martinique&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Switzerland&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Luxembourg&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;New Zealand&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Slovenia&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Norway&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Canada&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Denmark&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Australia&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Finland&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;USA&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Netherlands&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Germany&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Spain&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Sweden&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Uruguay&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;United Kingdom&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;France&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;&lt;b&gt;Visits weighted by internet users:&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Martinique&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Iceland&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Austria&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Switzerland&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Uruguay&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Greece&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Guatemala&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Israel&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Luxembourg&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Australia&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Germany&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Portugal&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Slovenia&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Spain&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Denmark&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;New Zealand&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Ireland&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Finland&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Hungary&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Norway&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;France&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;USA&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Canada&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Puerto Rico&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;United Kingdom&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:arial, sans, sans-serif;font-size:100%;"&gt;&lt;span class="Apple-style-span"  style=" white-space: pre-wrap;font-size:13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;Update:&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt; whole spreadsheet, also for visits:  &lt;/span&gt;&lt;a href="http://spreadsheets.google.com/pub?key=tZ2axpG4DIf7GYBzOnHJGJQ&amp;amp;output=html"&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;online Webpage&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;, &lt;/span&gt;&lt;a href="http://spreadsheets.google.com/pub?key=tZ2axpG4DIf7GYBzOnHJGJQ&amp;amp;output=csv"&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;CSV&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;, &lt;/span&gt;&lt;a href="http://spreadsheets.google.com/pub?key=tZ2axpG4DIf7GYBzOnHJGJQ&amp;amp;output=ods"&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;ODS&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms', serif;"&gt;&lt;span class="Apple-style-span"  style=" white-space: pre-wrap;font-size:medium;"&gt;H&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3473399517246044360-3506469868727040854?l=harald-schilly.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://harald-schilly.blogspot.com/feeds/3506469868727040854/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://harald-schilly.blogspot.com/2009/08/popularity-of-sage.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3473399517246044360/posts/default/3506469868727040854'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3473399517246044360/posts/default/3506469868727040854'/><link rel='alternate' type='text/html' href='http://harald-schilly.blogspot.com/2009/08/popularity-of-sage.html' title='Popularity of Sage'/><author><name>hsy</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3473399517246044360.post-4995516618044649906</id><published>2009-07-31T16:23:00.003+02:00</published><updated>2010-11-12T20:40:43.857+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='fun'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><title type='text'>ihhhehks fingers with tiny condoms</title><content type='html'>Just when I wanted to do some vintage maths, I found this:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://books.google.com/books?id=zDMAAAAAQAAJ&amp;amp;dq=logarithm%20table&amp;amp;as_brr=1&amp;amp;pg=PT301#v=onepage&amp;amp;q=logarithm%20table&amp;amp;f=false"&gt;&lt;img src="http://books.google.com/books?id=zDMAAAAAQAAJ&amp;amp;pg=PT301&amp;amp;img=1&amp;amp;zoom=3&amp;amp;hl=en&amp;amp;sig=ACfU3U0SW4ubqNLhV5e5IFz1KXEvsaDC7w&amp;amp;ci=10%2C1111%2C728%2C622&amp;amp;edge=0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;;-)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;UPDATE:&lt;/b&gt;&lt;br /&gt;They acually rescanned those pages, now the font is darker. Condomfingers are gone ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3473399517246044360-4995516618044649906?l=harald-schilly.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://harald-schilly.blogspot.com/feeds/4995516618044649906/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://harald-schilly.blogspot.com/2009/07/ihhhehks-fingers-with-tiny-condoms.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3473399517246044360/posts/default/4995516618044649906'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3473399517246044360/posts/default/4995516618044649906'/><link rel='alternate' type='text/html' href='http://harald-schilly.blogspot.com/2009/07/ihhhehks-fingers-with-tiny-condoms.html' title='ihhhehks fingers with tiny condoms'/><author><name>hsy</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3473399517246044360.post-5839451132391775824</id><published>2009-07-13T21:51:00.010+02:00</published><updated>2009-07-14T00:13:07.652+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sage'/><title type='text'>Sage Downloads - Spring 2009 Edition</title><content type='html'>&lt;span class="Apple-style-span"  style="font-family:'lucida grande';"&gt;This post is about Sage download statistics. It is not really exact science, but good enough to measure tendencies. It uses JavaScript on all download pages of the mirror sites and tracks clicked download links by assigning them certain values. Therefore, it misses those situations where somebody downloads "directly", uses wget, has JavaScript disabled or scripts blocked. So, the actual numbers are higher. Said that, here are the &lt;/span&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-family:'lucida grande';"&gt;numbers for April, March and June 2009&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span"  style="font-family:'lucida grande';"&gt;:&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'lucida grande';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'lucida grande';"&gt;&lt;b&gt;Total Downlods:&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'lucida grande';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt; &lt;table frame="VOID" cellspacing="0" cols="2" rules="NONE" border="0"&gt;  &lt;colgroup&gt;&lt;col width="354"&gt;&lt;col width="88"&gt;&lt;/colgroup&gt;  &lt;tbody&gt;   &lt;tr&gt;    &lt;td width="354" height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Apr 5, 2009 - Apr 11, 2009&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;    &lt;td width="88" align="RIGHT" sdval="1110" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;1110&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Apr 12, 2009 - Apr 18, 2009&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="964" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;964&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Apr 19, 2009 - Apr 25, 2009&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="1082" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;1082&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Apr 26, 2009 - May 2, 2009&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="1197" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;1197&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;May 3, 2009 - May 9, 2009&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="1005" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;1005&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;May 10, 2009 - May 16, 2009&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="1001" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;1001&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;May 17, 2009 - May 23, 2009&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="1160" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;1160&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;May 24, 2009 - May 30, 2009&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="1169" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;1169&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;May 31, 2009 - Jun 6, 2009&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="1298" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;1298&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Jun 7, 2009 - Jun 13, 2009&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="1212" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;1212&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Jun 14, 2009 - Jun 20, 2009&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="970" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;970&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Jun 21, 2009 - Jun 27, 2009&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="1079" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;1079&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;  &lt;/tbody&gt; &lt;/table&gt;&lt;span class="Apple-style-span"  style="font-family:'lucida grande';"&gt;&lt;br /&gt;&lt;/span&gt;   &lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'lucida grande', serif;"&gt;There is no clear tendency, maybe a bit more at the end of the semester but falling since the end of it. Day-to-day stats are rather linear, too.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'lucida grande', serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'lucida grande';"&gt;&lt;b&gt;Distribution of Operating Systems:&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'lucida grande';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: auto;"&gt;&lt;span class="Apple-style-span"  style="border-collapse: collapse; font-size:medium;"&gt;   &lt;table frame="VOID" cellspacing="0" cols="3" rules="NONE" border="0"&gt;  &lt;colgroup&gt;&lt;col width="354"&gt;&lt;col width="88"&gt;&lt;col width="88"&gt;&lt;/colgroup&gt;  &lt;tbody&gt;   &lt;tr&gt;    &lt;td width="354" height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;microsoft_windows&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;    &lt;td width="88" align="RIGHT" sdval="5668" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;5668&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;    &lt;td width="88" align="RIGHT" sdval="0.394789997910427" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;39%&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;linux/32bit&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="3109" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;3109&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="0.216549418402173" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;22%&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;src&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="2101" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;2101&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="0.146339764574772" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;15%&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;apple_osx/intel&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="1515" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;1515&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="0.10552343804416" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;11%&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;linux/64bit&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="1290" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;1290&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="0.089851640314829" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;9%&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;apple_osx/powerpc&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="364" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;364&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="0.0253534861043394" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;3%&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;linux/atom&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="157" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;157&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="0.0109354321933552" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;1%&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;apple_osx&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="85" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;85&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="0.00592045691996935" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;1%&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;solaris&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="54" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;54&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="0.00376123145503935" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;0%&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;src-old&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="10" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;10&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="0.000696524343525806" sdnum="1033;0;0.00E+000"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new', serif;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;0%&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;linux/itanium&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="4" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;4&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="0.000278609737410322" sdnum="1033;0;0.00E+000"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new', serif;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;0%&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;  &lt;/tbody&gt; &lt;/table&gt;   &lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span"  style="font-family:'lucida grande';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-family:'lucida grande';"&gt;Linux/32bit:&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt; &lt;table frame="VOID" cellspacing="0" cols="3" rules="NONE" border="0"&gt;  &lt;colgroup&gt;&lt;col width="429"&gt;&lt;col width="140"&gt;&lt;col width="88"&gt;&lt;/colgroup&gt;  &lt;tbody&gt;   &lt;tr&gt;    &lt;td width="429" height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;sage-3.4-linux-Ubuntu_8.10-i686-Linux.tar.gz&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;    &lt;td width="140" align="RIGHT" sdval="559" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;559&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;    &lt;td width="88" align="RIGHT" sdval="0.179800578964297" sdnum="1033;0;0.00%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;17.98%&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;sage-3.4.1-linux-Ubuntu_8.10-sse2-i686-Linux.tar.gz&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="430" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;430&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="0.138308137664844" sdnum="1033;0;0.00%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;13.83%&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;sage-3.4.2-linux-Ubuntu_8.10-sse2-i686-Linux.tar.gz&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="415" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;415&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="0.133483435188163" sdnum="1033;0;0.00%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;13.35%&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;sage-4.0-linux-Ubuntu_9.04-sse2-i686-Linux.tar.gz&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="248" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;248&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="0.0797684142811193" sdnum="1033;0;0.00%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;7.98%&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;sage-4.0.1-linux-Ubuntu_9.04-sse2-i686-Linux.tar.gz&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="215" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;215&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="0.069154068832422" sdnum="1033;0;0.00%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;6.92%&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;sage-3.4-&lt;b&gt;Fedora_release_9&lt;/b&gt;-i686-Linux.tar.gz&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="171" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;171&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="0.0550016082341589" sdnum="1033;0;0.00%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;5.50%&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;sage-4.0.2-linux-Ubuntu_9.04-i686-Linux.tar.gz&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="142" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;142&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="0.0456738501125764" sdnum="1033;0;0.00%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;4.57%&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;sage-3.4-linux-PentiumM-ubuntu-8.04.1-i686-Linux.tar.gz&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="123" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;123&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="0.039562560308781" sdnum="1033;0;0.00%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;3.96%&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;sage-3.4-linux-Debian_GNU_Linux_5.0_lenny-i686-Linux.tar.gz&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="69" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;69&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="0.0221936313927308" sdnum="1033;0;0.00%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;2.22%&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;sage-3.4.1-linux-Debian_GNU_Linux_5.0_lenny-sse2-i686-Linux.tar.gz&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="62" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;62&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="0.0199421035702798" sdnum="1033;0;0.00%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;1.99%&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;sage-3.4.2-linux-Debian_GNU_Linux_5.0_lenny-sse2-i686-Linux.tar.gz&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="62" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;62&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="0.0199421035702798" sdnum="1033;0;0.00%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;1.99%&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;sage-4.0.1-linux-Debian_GNU_Linux_5.0_lenny-sse2-i686-Linux.tar.gz&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="49" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;49&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="0.0157606947571566" sdnum="1033;0;0.00%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;1.58%&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;sage-4.0-linux-Debian_GNU_Linux_5.0_lenny-sse2-i686-Linux.tar.gz&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="47" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;47&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="0.0151174010935992" sdnum="1033;0;0.00%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;1.51%&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;sage-4.0.2-linux-Debian_GNU_Linux_5.0_lenny-i686-Linux.tar.gz&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="47" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;47&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="0.0151174010935992" sdnum="1033;0;0.00%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;1.51%&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;sage-3.4.1-linux-openSUSE_11.1_i586-sse2-i686-Linux.tar.gz&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="44" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;44&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="0.0141524605982631" sdnum="1033;0;0.00%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;1.42%&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;sage-3.4-linux-Mandriva_Linux_2009.0-i686-Linux.tar.gz&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="43" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;43&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="0.0138308137664844" sdnum="1033;0;0.00%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;1.38%&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;sage-3.4-linux-openSUSE_11.1_i586-i686-Linux.tar.gz&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="42" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;42&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="0.0135091669347057" sdnum="1033;0;0.00%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;1.35%&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;sage-3.4-linux-CentOS_release_5.2_Final-i686-Linux.tar.gz&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="34" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;34&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="0.010935992280476" sdnum="1033;0;0.00%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;1.09%&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;sage-4.0-linux-CentOS_release_5.2_Final-sse2-i686-Linux.tar.gz&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="31" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;31&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="0.00997105178513992" sdnum="1033;0;0.00%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;1.00%&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;sage-3.4.2-linux-openSUSE_11.1_i586-sse2-i686-Linux.tar.gz&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="27" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;27&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="0.00868446445802509" sdnum="1033;0;0.00%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;0.87%&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;sage-4.0-linux-openSUSE_11.1_i586-sse2-i686-Linux.tar.gz&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="24" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;24&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="0.00771952396268897" sdnum="1033;0;0.00%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;0.77%&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;sage-4.0.1-linux-openSUSE_11.1_i586-sse2-i686-Linux.tar.gz&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="24" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;24&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="0.00771952396268897" sdnum="1033;0;0.00%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;0.77%&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;sage-3.4-linux-Debian_GNU_Linux_4.0_etch-i686-Linux.tar.gz&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="22" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;22&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="0.00707623029913155" sdnum="1033;0;0.00%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;0.71%&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;sage-4.0.1-linux-mandriva32bit_linux_2009-sse2-i686-Linux.tar.gz&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="22" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;22&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="0.00707623029913155" sdnum="1033;0;0.00%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;0.71%&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;sage-3.4.1-linux-CentOS_release_5.2_Final-sse2-i686-Linux.tar.gz&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="21" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;21&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="0.00675458346735285" sdnum="1033;0;0.00%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;0.68%&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;  &lt;/tbody&gt; &lt;/table&gt;&lt;span class="Apple-style-span"  style="font-family:'lucida grande';"&gt;&lt;br /&gt;&lt;/span&gt;   &lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'lucida grande';"&gt;No surprises here, Ubuntu leads them all, then Fedora and Debian. Linux 64bit looks the same.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'lucida grande';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-family:'lucida grande';"&gt;Country&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span"  style="font-family:'lucida grande';"&gt;, Top 50&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt; &lt;table frame="VOID" cellspacing="0" cols="3" rules="NONE" border="0"&gt;  &lt;colgroup&gt;&lt;col width="354"&gt;&lt;col width="88"&gt;&lt;col width="88"&gt;&lt;/colgroup&gt;  &lt;tbody&gt;   &lt;tr&gt;    &lt;td width="354" height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;United States&lt;/span&gt;&lt;/td&gt;    &lt;td width="88" align="RIGHT" sdval="5017" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;5017&lt;/span&gt;&lt;/td&gt;    &lt;td width="88" align="RIGHT" sdval="0.349446263146897" sdnum="1033;0;0.00%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;34.94%&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Germany&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="1402" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;1402&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="0.097652712962318" sdnum="1033;0;0.00%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;9.77%&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;France&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="693" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;693&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="0.0482691370063384" sdnum="1033;0;0.00%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;4.83%&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;United Kingdom&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="668" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;668&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="0.0465278261475239" sdnum="1033;0;0.00%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;4.65%&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Italy&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="643" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;643&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="0.0447865152887093" sdnum="1033;0;0.00%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;4.48%&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Spain&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="487" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;487&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="0.0339207355297068" sdnum="1033;0;0.00%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;3.39%&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Canada&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="460" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;460&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="0.0320401198021871" sdnum="1033;0;0.00%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;3.20%&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;China&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="413" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;413&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="0.0287664553876158" sdnum="1033;0;0.00%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;2.88%&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Japan&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="286" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;286&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="0.0199205962248381" sdnum="1033;0;0.00%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;1.99%&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Australia&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="255" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;255&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="0.0177613707599081" sdnum="1033;0;0.00%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;1.78%&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Brazil&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="254" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;254&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="0.0176917183255555" sdnum="1033;0;0.00%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;1.77%&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;India&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="240" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;240&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="0.0167165842446194" sdnum="1033;0;0.00%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;1.67%&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Mexico&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="215" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;215&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="0.0149752733858048" sdnum="1033;0;0.00%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;1.50%&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Switzerland&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="192" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;192&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="0.0133732673956955" sdnum="1033;0;0.00%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;1.34%&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Netherlands&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="182" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;182&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="0.0126767430521697" sdnum="1033;0;0.00%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;1.27%&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Austria&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="168" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;168&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="0.0117016089712335" sdnum="1033;0;0.00%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;1.17%&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Portugal&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="135" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;135&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="0.00940307863759838" sdnum="1033;0;0.00%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;0.94%&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Belgium&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="134" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;134&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="0.0093334262032458" sdnum="1033;0;0.00%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;0.93%&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Greece&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="133" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;133&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="0.00926377376889322" sdnum="1033;0;0.00%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;0.93%&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Sweden&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="127" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;127&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="0.00884585916277774" sdnum="1033;0;0.00%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;0.88%&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Poland&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="119" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;119&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="0.00828863968795709" sdnum="1033;0;0.00%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;0.83%&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Russia&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="118" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;118&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="0.00821898725360451" sdnum="1033;0;0.00%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;0.82%&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Czech Republic&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="106" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;106&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="0.00738315804137355" sdnum="1033;0;0.00%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;0.74%&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Argentina&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="95" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;95&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="0.00661698126349516" sdnum="1033;0;0.00%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;0.66%&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;South Korea&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="92" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;92&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="0.00640802396043742" sdnum="1033;0;0.00%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;0.64%&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Finland&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="89" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;89&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="0.00619906665737968" sdnum="1033;0;0.00%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;0.62%&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Israel&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="89" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;89&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="0.00619906665737968" sdnum="1033;0;0.00%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;0.62%&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;New Zealand&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="83" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;83&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="0.00578115205126419" sdnum="1033;0;0.00%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;0.58%&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Norway&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="83" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;83&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="0.00578115205126419" sdnum="1033;0;0.00%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;0.58%&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Taiwan&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="81" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;81&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="0.00564184718255903" sdnum="1033;0;0.00%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;0.56%&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Denmark&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="73" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;73&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="0.00508462770773839" sdnum="1033;0;0.00%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;0.51%&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Colombia&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="72" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;72&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="0.0050149752733858" sdnum="1033;0;0.00%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;0.50%&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Hungary&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="58" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;58&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="0.00403984119244968" sdnum="1033;0;0.00%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;0.40%&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Singapore&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="56" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;56&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="0.00390053632374451" sdnum="1033;0;0.00%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;0.39%&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Romania&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="51" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;51&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="0.00355227415198161" sdnum="1033;0;0.00%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;0.36%&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Ireland&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="47" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;47&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="0.00327366441457129" sdnum="1033;0;0.00%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;0.33%&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Turkey&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="46" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;46&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="0.00320401198021871" sdnum="1033;0;0.00%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;0.32%&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Lithuania&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="45" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;45&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="0.00313435954586613" sdnum="1033;0;0.00%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;0.31%&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Peru&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="41" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;41&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="0.00285574980845581" sdnum="1033;0;0.00%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;0.29%&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Slovenia&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="41" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;41&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="0.00285574980845581" sdnum="1033;0;0.00%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;0.29%&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Thailand&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="41" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;41&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="0.00285574980845581" sdnum="1033;0;0.00%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;0.29%&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Indonesia&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="36" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;36&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="0.0025074876366929" sdnum="1033;0;0.00%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;0.25%&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Philippines&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="33" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;33&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="0.00229853033363516" sdnum="1033;0;0.00%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;0.23%&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Slovakia&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="32" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;32&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="0.00222887789928258" sdnum="1033;0;0.00%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;0.22%&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Croatia&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="31" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;31&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="0.00215922546493" sdnum="1033;0;0.00%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;0.22%&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Panama&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="31" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;31&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="0.00215922546493" sdnum="1033;0;0.00%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;0.22%&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Uruguay&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="31" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;31&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="0.00215922546493" sdnum="1033;0;0.00%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;0.22%&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Chile&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="30" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;30&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="0.00208957303057742" sdnum="1033;0;0.00%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;0.21%&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Iceland&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="30" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;30&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="0.00208957303057742" sdnum="1033;0;0.00%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;0.21%&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td height="17" align="LEFT"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Hong Kong&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="24" sdnum="1033;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;24&lt;/span&gt;&lt;/td&gt;    &lt;td align="RIGHT" sdval="0.00167165842446194" sdnum="1033;0;0.00%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;0.17%&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;  &lt;/tbody&gt; &lt;/table&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It would be interesting to score them against some index, like, population, GDP and similar. And then fit the factors to understand, why Brazil is next to China for example ...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;By the way, overall visits to the website during that timespan were rather constant. There were over 100,000 unique visitors, no changes since my last updates on the website concerning other parameters and Google is our main friend among all search engines. All major traffic sources:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;google  55,654  31.47%&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;(direct)  39,037  22.07%&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;sagemath.org (another page there) 29,638  16.76%&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;en.wikipedia.org (referral)  3,643  2.06%&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new', serif;"&gt;groups.google.com  (referral) 2,928  1.66% &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new', serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new', serif;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;h&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3473399517246044360-5839451132391775824?l=harald-schilly.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://harald-schilly.blogspot.com/feeds/5839451132391775824/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://harald-schilly.blogspot.com/2009/07/sage-downloads-spring-2009-edition.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3473399517246044360/posts/default/5839451132391775824'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3473399517246044360/posts/default/5839451132391775824'/><link rel='alternate' type='text/html' href='http://harald-schilly.blogspot.com/2009/07/sage-downloads-spring-2009-edition.html' title='Sage Downloads - Spring 2009 Edition'/><author><name>hsy</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3473399517246044360.post-3088223823225502733</id><published>2009-07-12T21:07:00.007+02:00</published><updated>2009-07-12T22:01:50.390+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sage'/><title type='text'>Download Website Redesign</title><content type='html'>What is a great software like Sage worth without the ability to get your hands on? Nothing!&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;That's why it is important to provide a good download! Fast downloads a dependent on your location and that of the server. For example this means that a European Server works better in Europe (alghough that's not really true, some European servers also work very well in the US).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Until last week there was one heavily used dedicated download link and the possibility to alternatively choose a mirror. That has changed in a way where the dedicated primary download link is replaced by an overview of all mirrors. Now, everyone is "forced" to choose the download option that suits best! The second reason is, that the main server got slow since most oft the downloads happened from there and i.e. only few of the European users downloaded from the French mirror.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Additionally to the redesign, I contacted several server admins and extended the list of mirrors. Now, Europe is covered by serveral mirrors, also Russia, and what's still missing is South America and Central-South Asia. I'm still waiting for answers from server admins over there.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Now some numbers from the last two weeks, comparing Mondays to Fridays.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Jun 29th - Jul 3rd:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;1.  www.sagemath.org          53.48%  &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;2.  www.sagemath.fr            8.44%  &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;3.  sage.math.washington.edu   7.70% &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;4.  modular.math.jmu.edu       7.57%  &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;5.  sagemath.org               4.84%  &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;6.  modular.fas.harvard.edu    3.88%  &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;7.  www.cecm.sfu.ca            2.33%  &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;8.  ftp.kaist.ac.kr            2.11%  &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;9.  echidna.maths.usyd.edu.au  2.02%  &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;10. ftp.sh.cvut.cz             1.99%&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;As you can see, since *sagemath.org and sage.math are behind the same network, far more than half of the activity happend on the primary server. The week before it was even above 70%!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Now the numbers after the redesign:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Jul 6th - Jul 10th:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;1.  modular.fas.harvard.edu        17.69%  &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;2.  mirror.switch.ch               14.98%  &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;3.  www.sagemath.fr                14.22%  &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;4.  sage.math.washington.edu       11.74%  &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;5.  www.sagemath.org                9.32%  &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;6.  modular.math.jmu.edu            8.95%  &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;7.  ftp.riken.jp                    4.65%  &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;8.  www.cecm.sfu.ca                 4.07%  &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;9.  freethemes.mirror.aarnet.edu.au 3.50%  &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;10. ftp.sh.cvut.cz                  3.13%&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Numbers massively differ after the redesign. Nearly only 20% of the activity on the main server is left, everything has moved to the other servers. Top server is located in Boston, but immediately followed by two servers in Europe: Switzerland and France. Also, the countries of the clients fit to the mirror locations. So, they actually choose and understand what to do ;) I'll probably post about the 4.1 release and the distribution around the world of Sage downloads in my next posting.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;My next project is to find an easy way to detect if a server is updated or lags behind. Then, I want that this script updates the website automatically and thus the chances of hitting an outdated or broken server are very low. I hope that's not too difficult.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Happy downloading, Harald&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3473399517246044360-3088223823225502733?l=harald-schilly.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://harald-schilly.blogspot.com/feeds/3088223823225502733/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://harald-schilly.blogspot.com/2009/07/download-website-redesign.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3473399517246044360/posts/default/3088223823225502733'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3473399517246044360/posts/default/3088223823225502733'/><link rel='alternate' type='text/html' href='http://harald-schilly.blogspot.com/2009/07/download-website-redesign.html' title='Download Website Redesign'/><author><name>hsy</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3473399517246044360.post-6662144587742168731</id><published>2009-07-05T11:21:00.004+02:00</published><updated>2009-07-05T13:42:46.073+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sage'/><title type='text'>Sage Mirrors Revamp</title><content type='html'>Until now, on all download pages was a dedicated main download link for Sage. It pointed to the master server in Seattle. The problem is, that traffic increased and the server got slower. There was always the possibility to use a mirror, but it was only used rarely. More than 50% of all downloads still happened to be from the master server (sagemath.org + sage.math). &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Now, the list of mirrors has moved into the download box area on all download pages. That should be a strong push for the &lt;a href="http://www.sagemath.org/mirrors.html"&gt;use of mirrors&lt;/a&gt;. Also, non-US mirrors in bold should even work well outside Europe. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Numbers for last month, June 2009:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;# | server | number of accesses | percentage&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;1.  www.sagemath.org 13,467  &lt;/span&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;47.89%  &lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;2.  www.sagemath.fr 4,160  14.79%  &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;3.  sage.math.washington.edu 3,911  &lt;b&gt;13.91%  &lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;4.  sagemath.org 1,440  5.12%  &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;5.  modular.math.jmu.edu 1,396  4.96%  &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;6.  modular.fas.harvard.edu 1,047  3.72%  &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;7.  ftp.kaist.ac.kr 633  2.25%  &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;8.  www.cecm.sfu.ca 486  1.73%  &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;9.  modular.math.washington.edu 435  1.55%  &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;10.  echidna.maths.usyd.edu.au  339  1.21%&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Also, notice the 15% for France. This will change, since Euopre is no longer covered by only one &lt;a href="http://www.sagemath.org/mirrors.html"&gt;mirror&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Harald &amp;amp; Minh&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3473399517246044360-6662144587742168731?l=harald-schilly.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://harald-schilly.blogspot.com/feeds/6662144587742168731/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://harald-schilly.blogspot.com/2009/07/sage-mirrors-revamp.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3473399517246044360/posts/default/6662144587742168731'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3473399517246044360/posts/default/6662144587742168731'/><link rel='alternate' type='text/html' href='http://harald-schilly.blogspot.com/2009/07/sage-mirrors-revamp.html' title='Sage Mirrors Revamp'/><author><name>hsy</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3473399517246044360.post-1111640319291049955</id><published>2009-06-26T12:13:00.006+02:00</published><updated>2009-06-26T12:30:51.054+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sage'/><title type='text'>two new mirrors</title><content type='html'>Sage only had one foot in Europe for the last months. It was the very busy &lt;a href="http://www.sagemath.fr"&gt;French mirror&lt;/a&gt;. Statistics showed that it was the most often accessed mirror of all and numbers were even increasing release by release. The upside is, there is growing interest in Sage in Europe - the downside a possible bottleneck in distributing Sage. I asked around and well, long story short: finally we have two new high quality mirrors in Europe:&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://ftp.sh.cvut.cz/MIRRORS/sagemath/"&gt;Czech Republic&lt;/a&gt; (&lt;a href="http://www.siliconhill.cz/en/"&gt;Silicon Hill Students Club&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;&lt;a href="ftp://ftp.fu-berlin.de/unix/misc/sage/index.html"&gt;Germany&lt;/a&gt; (&lt;a href="http://www.fu-berlin.de/"&gt;Free University of Berlin&lt;/a&gt;)&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;b&gt;Big thanks!&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;May the sageification of Europe continue - world domination soon to follow ;)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you are also able to help distributing Sage, &lt;a href="http://www.sagemath.org/contact.html"&gt;contact the webmaster&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;H&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3473399517246044360-1111640319291049955?l=harald-schilly.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://harald-schilly.blogspot.com/feeds/1111640319291049955/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://harald-schilly.blogspot.com/2009/06/two-new-mirrors.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3473399517246044360/posts/default/1111640319291049955'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3473399517246044360/posts/default/1111640319291049955'/><link rel='alternate' type='text/html' href='http://harald-schilly.blogspot.com/2009/06/two-new-mirrors.html' title='two new mirrors'/><author><name>hsy</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3473399517246044360.post-9106698878844887720</id><published>2009-06-02T12:11:00.002+02:00</published><updated>2009-06-02T12:13:27.580+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='fun'/><title type='text'>omegle proxy conversation</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;a href="http://omegle.com"&gt;in case you are really bored&lt;/a&gt;:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_48PLPyuFJjQ/SiT7CQaeM5I/AAAAAAAABFc/Xv9nvICmyI0/s1600-h/omegle-proxy-conversation.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 250px;" src="http://2.bp.blogspot.com/_48PLPyuFJjQ/SiT7CQaeM5I/AAAAAAAABFc/Xv9nvICmyI0/s400/omegle-proxy-conversation.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5342671074152559506" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3473399517246044360-9106698878844887720?l=harald-schilly.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://harald-schilly.blogspot.com/feeds/9106698878844887720/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://harald-schilly.blogspot.com/2009/06/omegle-proxy-conversation.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3473399517246044360/posts/default/9106698878844887720'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3473399517246044360/posts/default/9106698878844887720'/><link rel='alternate' type='text/html' href='http://harald-schilly.blogspot.com/2009/06/omegle-proxy-conversation.html' title='omegle proxy conversation'/><author><name>hsy</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_48PLPyuFJjQ/SiT7CQaeM5I/AAAAAAAABFc/Xv9nvICmyI0/s72-c/omegle-proxy-conversation.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3473399517246044360.post-2015618254390867643</id><published>2009-05-30T18:04:00.001+02:00</published><updated>2009-05-30T18:04:38.586+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sage'/><category scheme='http://www.blogger.com/atom/ns#' term='google wave'/><title type='text'>sage + google wave</title><content type='html'>google wave is a new type of web 2.0 hosted communication, presented at google's i/o conference a view days ago. http://wave.google.com . it is very early to tell what it really is, but it could be big. it is very open and also consists of an open protocol for communication, that can be used (basically) for everything - and that's where i started to think about sage. but first, i explain what i think it does and how sage could play a role in there!&lt;br /&gt;&lt;br /&gt;a server (not necessarily google - it's more like jabber/xmpp where everybody could host a server and servers talk to each other if users use different servers) hosts the "communication", called "wave". that's a tree-like structure of data, replies, extensions, meta-info, etc. if someone modifies something or adds a reply, every other participant sees the modification in real-time.&lt;br /&gt;&lt;br /&gt;there are also artificial participants, called robots. they can also do things just like a regular user. example: spellchecking! a spellchecker analyzes all text and if something is odd, it annotates/modifies the text.&lt;br /&gt;okay, how works synchronization? basically, all operations happen on the server. i think it is an abelian group so that there are no "destructive" operations - only invertible - that cannot destroy the state-flow and the sum of all state changes is the current state. therefore, there is only one thread of communication for all participants. if something happens (lost connection), everything is re-synced fast.&lt;br /&gt;&lt;br /&gt;the interesting point is, there are also gadgets: interactive elements for all participants (an example is a chess game) and that's where i think sage could be used. basically, my idea is to implement a button to create a cell from the notebook. then, you enter the url of a sage server + your credentials. now, input is sent to the server (also, autocomplete ....) and you get the answer back and a new cell is created. if i understand it correctly, the server is actually talking to sage, so it is possible that several users edit at the same time and the actual cell-data is saved inside this "wave".&lt;br /&gt;what's missing is formatting the formulas - but there is also mathml which could do it.&lt;br /&gt;&lt;br /&gt;i applied for an early developer sandbox access, once i know more about this i'll tell you more.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3473399517246044360-2015618254390867643?l=harald-schilly.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://harald-schilly.blogspot.com/feeds/2015618254390867643/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://harald-schilly.blogspot.com/2009/05/sage-google-wave.html#comment-form' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3473399517246044360/posts/default/2015618254390867643'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3473399517246044360/posts/default/2015618254390867643'/><link rel='alternate' type='text/html' href='http://harald-schilly.blogspot.com/2009/05/sage-google-wave.html' title='sage + google wave'/><author><name>hsy</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3473399517246044360.post-6045698683300770820</id><published>2009-05-25T20:21:00.000+02:00</published><updated>2009-05-25T20:22:01.906+02:00</updated><title type='text'>booom</title><content type='html'>yet another blogstart!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3473399517246044360-6045698683300770820?l=harald-schilly.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://harald-schilly.blogspot.com/feeds/6045698683300770820/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://harald-schilly.blogspot.com/2009/05/booom.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3473399517246044360/posts/default/6045698683300770820'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3473399517246044360/posts/default/6045698683300770820'/><link rel='alternate' type='text/html' href='http://harald-schilly.blogspot.com/2009/05/booom.html' title='booom'/><author><name>hsy</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
