Seit ein paar Tagen kann man CompuLearn Mathematik auf compulearnonline.de/mathematik/download herunterladen.
Endlich ist die Webseite fertig und fast alle Bereiche mit Inhalt gefüllt. Jetzt stehen nur noch unzählige Kleinigkeiten an, wie das immer so ist…
CompuLearn Mathematik ist so wie CompuLearn Englisch als 1-Jahres-Lizenz erhältlich. Kosten: So viel wie eine Nachhilfestunde 
[http://mathematik-bestellung.compulearnonline.de/bestellung_cm_main.html|» Bestellung CompuLearn Mathematik]
[http://bestellung.compulearnenglisch.de/bestellung_ce_main.html|» Bestellung CompuLearn Englisch]

Verdi bestreikt in Stuttgart die Werkstätten der SSB vom heutigen Dienstag bis Freitag. Bis Freitag einschließlich sollen weder Busse noch Bahnen der SSB in Stuttgart fahren.
Dieser viertägige Streik trifft viele Berufspendler und Schüler hart: Die Bürgersteige sind voll von Leuten, die zur Arbeit oder zur Schule laufen müssen.
Laut SSB ist die Verkehrssicherheit der Fahrzeuge und die Sicherheit der Fahrgäste nicht gewährleistet.
Dies finde ich etwas seltsam. Sind alle Fahrzeuge so anfällig, dass sie sofort gefährlich sind, wenn sie vier Tage lang nicht gewertet werden? Dann müssten ja alle Straßenbahnen und Busse ständig in der Werkstatt sein. Wenn nur 10% – 20% aller Fahrten ausfallen würden könnte ich dieses Argument nachvollziehen. Aber warum sind gleich alle Fahrzeuge unsicher, nur weil die Werkstatt ein paar Tage geschlossen ist?
Die Einnahmeausfälle durch diesen Streik dürften eher gering ausfallen, da die meisten Fahrgäste sowieso Monatsfahrkarten gekauft haben. Effektiv haben sie also bereits für Leistungen bezahlt, die jetzt nicht erbracht werden.
So wie das Ganze für mich aussieht wollen die Arbeitgeber mit der Einstellung des Betriebs schlechte Stimmung gegen den Streik machen. Verdi behauptet, dass die Forderungen nicht auf dem Rücken der Fahrgäste durchgesetzt werden sollen aber genau dies bewirkt diese Aktion jetzt.


Unter Debian lenny wird zur Zeit nur Subversion 1.5.x bereitgestellt. Dies unterstützt allerdings nur Repositories bis zur Version 3. Neuere Repositories werden allerdings in der Version 4 erstellt. Wenn man mit diesen arbeiten möchte benötigt man Subversion 1.6
Vorbereitung
Zunächst muss der sources.list eine neue Zeile hinzugefügt werden, damit ein sogenannter Backport von Subversion verwendet werden kann. Dies bedeutet, dass neuere Software für ältere Debain Versionen zur Verfügung gestellt wird.
1
2
| # diese zeile muss zu "/etc/apt/sources.list" hinzugefügt werden
deb http://backports.debian.org/debian-backports lenny-backports main contrib non-free |
Nun ist es möglich Subversion 1.6 zu installieren. Allerdings muss dazu aptitude mit speziellen Parametern aufgerufen werden
Installation
Zunächst müssen die Paketquellen neu geladen werden. Dies geschieht mit
Nun kann Subversion 1.6 endlich installiert werden:
1
| sudo aptitude -t lenny-backports install subversion |
Aptitude wird eventuell vor der Installation noch nachfragen. Wenn alles funktioniert hat sollte nun Subversion 1.6 installiert sein:
1
2
3
| #svn --version
svn, Version 1.6.12 (r955767)
übersetzt Jun 17 2011, 07:54:11 |
Andere Artikel zum Thema Subversion

Damit die Reihe c# Snippets gleich mit zwei Artikel startet folgt nun noch ein kurzes aber praktisches Snippet.
Problemstellung
Gegeben ist eine Liste.
Gesucht ist eine Teilmenge der Liste, die eine bestimmte Bedingung erfüllt.
Beispiel
Gegeben: List<int> list = new List<int>() { 5, 3, 17, 2, 23 };
Gesucht ist eine neue Liste, die alle Elemente größer 10 enthält.
1
2
| List<int> list = ...;
List<int> result = (from i in list where i > 10 select i).ToList(); |
In dem Select-Teil kann auch Code ausgeführt werden, zum Beispiel wenn die Quadrate der Zahlen gesucht sind:
1
2
| List<int> list = ...;
List<int> result = (from i in list where i > 10 select i * i).ToList(); |

Dieser Artikel ist der erste Teil der Reihe c# Snippets.
Oftmals hat man eine Liste von Elementen möchte diese aber als einen String darstellen.
Beispiel
Gegegen ist eine Liste von decimal-Werten:
List<decimal>list = new list<decimal>{ 1.05, 2.50; 3.66 };
Gewünscht ist "1,05; 2,50; 3,66"
Der herkömmliche Ansatz
… sieht dann vermutlich so oder so ähnlich aus:
1
2
3
4
5
6
| StringBuilder sb = new StringBuilder();
foreach (decimal d in list) {
sb.Append(d.ToString("0.00") + "; ");
}
if (sb.Length > 0) sb.Length -=2; // Trennzeichen am Ende entfernen
return sb.ToString(); |
Die Hilfsmethode SerializeToString mit Lamda-Ausdrücken
1
2
3
4
5
6
7
8
9
| static class StringExtensions
{
public static string SerializeToString<T>(this IEnumerable<T> list, Func<T, string> serialize, string separator)
{
StringBuilder sb2 = list.Aggregate(new StringBuilder(), (sb, item) => sb.Append(serialize(item) + separator));
if (sb2.Length > 0) sb2.Length -= separator.Length;
return sb2.ToString();
}
} |
Der Aufruf von SerializeToString
ist nun wesentlich kürzer und meiner Meinung nach besser lesbar:
1
| string serializedValues = list.SerializeToString(d => d.ToString("0.00")); |
Natürlich funktioniert dies auch für Listen von komplexeren Datenstrukturen und auch verschachtelt:
1
2
3
4
5
6
7
| List<List<DateTime>> list = ...;
string serializedValues = list.SerializeToString(i1 => i1.Count + " Elemente: " + i1.SerializeToString(i2 => i2.ToString(), ", "), "\r\n");
// Beispiel-Ausgabe:
// 1.1.2010, 2.1.2010
// 1.1.2011, 2.1.2011, 3.1.2011
// ... |

… wenn alles funktioniert hat sollten neue Beiträge auf meinem Blog jetzt auch auf Facebook erscheinen.

Facebook kann über die Like-Buttons problemlos Benutzerprofile erstellen – auch von nicht angemeldeten Nutzern.
Jedes Mal, wenn ein Like-Button erscheint wird eine Anfrage an Facebook übermittelt. In dieser befinden sich ausreichend Daten, so dass Facebook nachvollziehen kann wann man welche Webseite aufgerufen hat.
Ein effektiver Weg dies zu verhindern ist die Like-Buttons nicht mehr zu laden. Dazu benötigt man
- Adblock Plus (kostenlose Erweiterung für Firefox)
- spezielle Filterregeln für Adblock Plus:
1
2
3
4
| ||facebook.com^$domain=~facebook.com|~facebook.net|~fbcdn.com|~fbcdn.net
||facebook.net^$domain=~facebook.com|~facebook.net|~fbcdn.com|~fbcdn.net
||fbcdn.com^$domain=~facebook.com|~facebook.net|~fbcdn.com|~fbcdn.net
||fbcdn.net^$domain=~facebook.com|~facebook.net|~fbcdn.com|~fbcdn.net |
Die Regeln bedeuten folgendes: Blockiere Inhalte von Facebook, wenn die Seite auf der der Inhalt angezeigt werden soll nicht Facebook ist.
Oder positiv ausgedrückt: Nur auf Facebook können Inhalte von Facebook geladen werden.
Regeln hinzufügen
Die Regeln müssen nach der Installation von Adblock Plus einzeln neu hinzugefügt werden.
Fazit
Alle Like-Buttons sind verschwunden.
Facebook kann das Surfverhalten nicht mehr nachvollziehen.
facebook.com kann trotzdem noch wie gewohnt verwendet werden.
Zeitaufwand: 5-10 Minuten
PS
Der Facebook-Link auf meinem Blog besteht aus einem Bild, das von diesem Server ausgeliefert wird. Erst beim Klick auf das “f” wird eine Verbindung zu Facebook hergestellt.
Quelle
lifehacker.com

Bei Steam gibt es zur Zeit jeden Tag ca. 12 neue (sonder-) Angebote. Teilweise sind die Spiele bis zu 75% reduziert – sogar im Vergleich zu Amazon Preisen.
Aber Vorsicht:
Bei manchen “reduzierten” Spielen spart man praktisch nichts gegenüber regulären Preisen bei anderen Händlern.
Es werden unter anderem auch ziemlich schlecht bewertete Spiele angeboten – aber auch richtig gute Spiele.
Trotzdem bzw. gerade deshalb lohnt es sich alle Angebote genau zu prüfen:
- Ersparnis gegenüber “realen” Preisen ermitteln
- metacritic.com konsultieren
- Entscheiden, ob einem das Spiel gefällt
Wikipedia Artikel lesen, Trailer schauen
- Viel Zeit zum Spielen einplanen – in meinem Fall nachdem ich die Prüfungen hinter mir habe.
Link zum Steam-Store
store.steampowered.com

Letztes Mal hatte ich im Tutorium angekündigt das pdf zur Rekursion hochzuladen – was ich auch gemacht habe.. etwas später am Abend. Leider waren bis dahin schon einige vergeblich suchend hier vorbeigekommen.
Dieses Mal ist alles besser: Die Dateien sind jetzt schon online:
» InfoP-Downloads


Portal 2 ist zwar länger als Portal 1, aber auch ziemlich schnell durchgespielt. Zum Glück gibt es auf thinkingwithportals.com sehr viele gute Einzelspieler- und Coopkarten zum Download.
