von
Kai um
17:38 am
Montag, 23. August 2010 in
Allgemeines |
0 Kommentare
Es ist schon interessant. Das erste Mal, als ich vor zwanzig Jahren einen GameBoy in der Hand hatte, war ich so beeindruckt von diesem kleinen Gerät, dass ich mich noch heute haargenau daran erinnern kann, was mir damals durch den Kopf ging, als ich zum ersten Mal Tetris spielte.
Ich malte mir aus, dass ich in der Klasse der Held sein würde und auf dem Pausenhof meine Klassenkameraden darum betteln würden, einmal kurz damit spielen zu dürfen. Ich habe Duck Tales und Tetris bestimmt monatelang täglich gespielt, ohne dass es mir je langweilig dabei wurde.
Als ich kurz darauf meinen ersten C64 bekam und Pirates, International Karate oder Last Ninja spielte, war ich fasziniert von der unglaublichen Grafik und den vielen Möglichkeiten, die man in diesen Spielen geboten bekam.
Einige Jahre später schrieb ich dann meine ersten BASIC-Programme und glaubte fortan, mit Computern ließe sich alles anstellen, woran man im entferntesten auch nur denken könne.
Wenn ich mich heute mit Technologie und Software beschäftige ist nicht mehr viel von der damaligen Faszination zu spüren. Ich habe mich so sehr daran gewöhnt, meine Joggingstrecke im Internet über GPS-Tracking nachvollziehen zu können und in meiner Hosentasche ein Smartphone zu haben, was mir einen nahezu vollwertigen Internetzugang bietet, wodurch jede Information nur ein Klick Touch weit entfernt ist, dass ich ungeduldig werde, wenn eine Webseite mal länger als einige Sekunden zum Laden braucht.
Ich entwickle über die Semesterferien in Zusammenarbeit mit meiner Hochschule (a.k.a FH) eine mobile Anwendung, die aus einem Kamerabild mittels einem optischem Chromasplitter ein 3D-Objekt extrahiert. Nochmal in kurz und verständlich: Aus einem Kamerabild wird ein 3D-Objekt erstellt. (Das Titelbild für diesen Beitrag ist nur die Vorarbeit gewesen und noch nicht das Endprodukt). Die einzige Reaktion, die ich bisher dazu bekomme habe, war: “Cool” oder “interessant” und im Grunde genommen fühle ich genauso: Nettes Projekt, nicht mehr, nicht weniger. Hätte man mir vor zwanzig Jahren versucht zu erklären, dass man aus einem Kamerabild ein 3D-Modell erzeugen kann, dann hätte ich das sicherlich unter Science-Fiction verbucht oder es als Humbug abgetan. Hätte man mir den Beweis gezeigt, wäre ich wohl ehrfürchtig auf die Knie gesunken. Heute ist es ein Projekt, was man mal so über die Semesterferien gemacht hat.
Denkbar, dass sich Menschen in der Zukunft darüber aufregen werden, dass die Sitze so unbequem sind auf dem Interplanetarflug zum Mars.
von
Kai um
11:27 am
Montag, 9. August 2010 in
How-To, Linux |
2 Kommentare
Da Computer und Betriebssysteme bei unsachgemäßer Behandlung gerne mal ihren Dienst quittieren und die darauf folgende Installationsprozedur langwierig sein kann, habe ich mir ein Skript geschrieben, was das Neuaufsetzen von (K)ubuntu komplett automatisiert. Dabei hab ich festgestellt, dass man das beliebig weit treiben kann (Setzen von Wallpaper, Installation eines Netzwerkdruckers etc., wobei ich ersteres wieder verworfen habe).
Ein weiterer Vorteil beim skriptgesteuertem Aufsetzen ist, dass man die kleinen Anpassungen an das System genau einmal aufschreibt und künftig dann nur einmal das Skript angestoßen werden muss (Es sei denn, langwierige Bugs wurden endlich gefixt und die Anpassung wird obsolet).
Als erstes fragt das Skript, ob es als root ausgeführt wurde, was für das Hinzufügen von Repositories und Installation von Programmen notwendig ist:
if [ `whoami` != "root" ]; then
echo "Bitte Skript als root starten"
echo "Installationsskript wird abgebrochen"
exit -1
fi
Danach folgen eine Aktualisierung und die Installation von bestimmten Repositories:
echo "System aktualisieren"
apt-get --yes update
apt-get --yes upgrade
apt-get --yes dist-upgrade
echo "Repo: Installation von Wine-Repository"
add-apt-repository ppa:ubuntu-wine/ppa
echo "Repo: Installation von Miro-Repository"
add-apt-repository ppa:pcf/miro-releases
echo "Repo: Installation von Webkit-Repository"
add-apt-repository ppa:webkit-team
apt-get -y update && apt-get -y upgrade
add-apt-repository ppa:liferea/ppa
Danach ziehe ich mir den aktuellen Treiber für meine Grafikkarte und Firmware für die DVB-T Karte:
echo "Hardware: ATI Grafiktreiber installieren"
wget https://a248.e.akamai.net/.../linux/ati-driver-installer-10-7-x86.x86_64.run
sh ati-driver-installer-*-x86.x86_64.run --buildpkg
sudo dpkg -i fglrx_*
sudo dpkg -i fglrx-mod*
sudo dpkg -i fglrx-amd*
echo "Hardware: Installation von DVB-T"
wget http://www.otit.fi/~crope/v4l-dvb/af9015/af9015_firmware_cutter/firmware_files/4.95.0/dvb-usb-af9015.fw
mv dvb-usb-af9015.fw /lib/firmware/
Anschließend folgen die eingangs erwähnten Anpassungen für bestimmte Bugs. Außerdem werden der Netzwerkdrucker und bestimmte Schriftarten installiert. Die Anpassung für Plymouth geht sicherlich auch besser, aber ich bin nicht sehr gut im Skripte schreiben (quasi mein erstes:-) ):
echo "Anpassungen: Akonadi beim Anmelden starten"
touch akonadi-start.sh
echo "#"'!'"/bin/bash" >> akonadi-start.sh
echo "/usr/bin/akonadictl start" >> akonadi-start.sh
mv akonadi-start.sh /home/kai/.kde/Autostart/
chmod +x /home/kai/.kde/Autostart/akonadi-start.sh
chown kai:kai /home/kai/.kde/Autostart/akonadi-start.sh
echo "System: Drucker installieren"
lpadmin -p hp-deskjet-f4180 -v lpd://192.168.2.2/LPRServer -P hp-deskjet-f4180.ppd -o InkType=300GrayscaleK -D "HP Deskjet F4180" -L Wohnzimmer -E
echo "Anpassungen: Plymouth anpassen"
apt-get install --yes v86d hwinfo
touch grubTMP
LINE1='GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"'
LINE1NEU='GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nomodeset video=uvesafb:mode_option=1400x1050-24,mtrr=3,scroll=ywrap"'
LINE2='#GRUB_GFXMODE=640x480'
LINE2NEU='GRUB_GFXMODE=1400x1050'
while read line
do
if [ "$line" = "$LINE1" ]; then
echo "$LINE1NEU" >> grubTMP
elif [ "$line" = "$LINE2" ]; then
echo "$LINE2NEU" >> grubTMP
else
echo "$line" >> grubTMP
fi
done < "/etc/default/grub"
mv grubTMP /etc/default/grub
echo "uvesafb mode_option=1400x1050-24 mtrr=3 scroll=ywrap" >> /etc/initramfs-tools/modules
echo FRAMEBUFFER=y | tee /etc/initramfs-tools/conf.d/splash
update-grub2
update-initramfs -u
echo "Anpassungen: Schriftarten installieren"
apt-get install unzip
wget http://www.gringod.com/wp-upload/MONACO.TTF
wget http://www.proggyfonts.com/download/download_bridge.php?get=ProggySquareSZ.ttf.zip
mkdir -p /usr/local/share/fonts/m
mkdir -p /usr/local/share/fonts/p
mv MONACO.TTF /usr/local/share/fonts/m/
unzip ProggySquareSZ.ttf.zip
mv ProggySquareSZ.ttf /usr/local/share/fonts/p/
chmod -R +r /usr/local/share/fonts
rm Licence.txt
Schließlich noch Dropbox installieren inklusive Anpassungen für Dolphin und alle weiteren Programme, die ich halt so brauche:
echo "Programme: Download und Installation von Dropbox"
wget http://www.dropbox.com/download?plat=lnx.x86_64
tar xzf dropbox-lnx*
mv .dropbox-dist /home/kai/
chown kai:kai /home/kai/.dropbox-dist
rm -f dropbox-lnx*
apt-get --yes install sqlite3 python-m2crypto xdg-utils
wget http://kde-apps.org/CONTENT/content-files/124416-DropboxServiceMenu-0.14.3.tar.gz
tar xzf 124416-DropboxServiceMenu-0.14.3.tar.gz
cd DropboxServiceMenu-0.14.3
./install-it.sh
cd ..
chown -R kai:kai /home/kai/.kde4/
rm -rf DropboxServiceMenu-0.14.3
echo "Programme: Installation von Virtualbox"
wget http://download.virtualbox.org/virtualbox/3.2.6/virtualbox-3.2_3.2.6-63112~Ubuntu~lucid_amd64.deb
dpkg -i virtualbox-3.2*
echo "Programme: Installation von NX-Client"
wget http://64.34.161.181/download/3.4.0/Linux/nxclient_3.4.0-7_x86_64.deb
dpkg -i nxclient_3.4.0-7_x86_64.deb
echo "Programme: Installation von Google Chrome"
wget http://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
dpkg -i google-chrome-stable_current_amd64.deb
echo "Installation von weiteren Programmen"
apt-get install --yes pdftk texlive texlive-doc-de texlive-latex-extra texlive-lang-german emacs23 build-essential ffmpeg openvpn network-manager-openvpn network-manager-openvpn-kde eclipse gimp subversion wine idle kdenlive auctex lacheck python-opengl p7zip-full liferea vlc dosbox imagemagick python-psycopg2 traceroute aspell aspell-de aspell-en kubuntu-restricted-extras vim xpdf kaffeine akonadi-kde-resource-googledata audacity easytag p7zip-full skype libsvn-java unrar unzip qbittorrent miro dia googleearth choqok libdvdcss2 w64codecs non-free-codecs nmap git-core sun-java6-jdk sun-java6-bin sun-java6-jre sun-java6-plugin
Das Skript ist sicherlich in die Kategorie “schnell und dreckig” einzuordnen, da sich viele Dinge besser lösen lassen und bestimmte Parameter mit dem Skript übergeben werden sollten, anstatt fest einzukodieren. Vielleicht baue ich das in ein späteres Update noch ein
von
Kai um
14:05 am
Freitag, 2. Juli 2010 in
News, Studium |
0 Kommentare
Seba hat auf seinem Blog unser Projekt für Softwaretechnik ganz schön zusammengefasst. Mir hat das ebenfalls sehr viel Spaß gemacht und interessante neue Aspekte in der Softwareentwicklung aufgezeigt:
So ist eine funktionierende Infrastruktur und Absprachen, an die man sich tunlichst halten sollte, wahrlich Gold wert. Ich glaube, eine gute Kommunikation ist für den Erfolg eines Softwareprojekts schon die halbe Miete.
von
Kai um
18:05 am
Montag, 28. Juni 2010 in
Programmiersprachen, Studium |
2 Kommentare
Fremden Code zu lesen ist grausam. Man muss sich nicht nur in eine völlig andere Denkweise hinein versetzen, sondern versuchen einzelne Stückchen zu einem großen Ganzen zusammenzusetzen.
Eigenen Code zu lesen ist aber mindestens genauso grausam, wenn der vorliegende Quelltext sagen wir älter als zwei Monate ist. Man vergisst schnell, was man sich beim entwickeln gedacht hat und warum man das entstehende Programm in eine bestimmte Richtung und nicht anders programmiert hat.
Wenn ich nun also zum Beispiel ein geschriebenes Programm aus dem ersten Semester um eine bestimmte Funktionalität erweitern müsste, dann wäre ich wahrscheinlich schneller, wenn ich das komplette Programm “from-scratch” noch einmal komplett neu schreiben würde.
Diese Erkenntnis ist natürlich schon lange bekannt und es gibt daher auch viele Konzepte, wie man diesem Problem entgegnen kann. Auf diese möchte ich hier aber gar nicht weitergehen, sondern versuchsweise aufzeigen, wie man im Kleinen schon darauf achten kann, lesbaren Code zu produzieren.
Als Beispielsprache verwende ich Python, weil mir erstens die Sprache sehr gut liegt und weil sie den Benutzer schon konzeptuell zwingt “saubereren” Code zu schreiben.
Kommentare sind dazu da, den eigenen Code zu erläutern bzw. zu erklären und verwendete Parameter auf ihre Bedeutung hin zu verdeutlichen. Im Prinzip wohl eine gute Sache. Ich finde den Einsatz von Kommentaren dennoch nicht gut, weil sie meiner Meinung nach das Problem nicht an der Wurzel packen: Wenn ich Code erst erklären muss, bevor sie einem dritten verständlich erscheinen, ist die Wahrscheinlichkeit hoch, dass entweder das zu lösende (Teil-)problem noch nicht ganz geknackt ist, oder meine Bezeichnungen für Funktionen und Variablen Mumpitz sind. Selbst Bezeichnungen für Hilfsvariablen sollten eindeutig bestimmen, wofür diese gebraucht werden.
Als Beispiel soll folgendes Szenario dienen:
Hier soll die Eingabe des Benutzer verarbeitet und an eine Funktion weitergegeben werden. Im ersten Beispiel ohne genauere Variablenbezeichnung und mit Kommentar, im zweiten Beispiel mit treffenden Bezeichnungen.
Obwohl die Lebensdauer der Variablen mindestgebot, auktionsdauer, dateipfad gerade mal zwei Zeilen beträgt, tragen diese doch erheblich zur Lesbarkeit bei:
# Eingabe: versteigere 50,60,/tmp/bild.jpg
eingabe = raw_input()
if eingabe.split()[0] == 'versteigere':
data = eingabe.split()[1].split(',')
if len(data) != 3:
print "error: wrong input"
else:
# Startet neue Auktion mit Mindestgebot,
# Dauer der Auktion und Pfad zum Bild
auktion.versteigere(data[0],data[1],data[2])
Und jetzt nochmal mit eindeutigen Bezeichnungen
eingabe = raw_input()
userBefehl = eingabe.split()[0]
if userBefehl == 'versteigere':
befehlsParameter = eingabe.split()[1].split(',')
if len(befehlsParameter) != 3:
print "error: wrong input"
else:
mindestgebot, auktionsdauer, dateipfad = befehlsParameter[:]
auktion.versteigere(mindestgebot, auktionsdauer, dateipfad)
Wie man sieht, hat man also nur durch eine bessere Bezeichnung der übergebenen Variablen ein Kommentar gespart und (hoffentlich) erheblich zur Lesbarkeit beigetragen.
Meines Erachtens darf hier auch ruhig redundante Information im Code vorkommen, wenn sie der Lesbarkeit dient. Im obigen Code ist das zum Beispiel das unnötige Slicing (befehlsParameter[:]), weil Python schlau genug ist, auch ohne das Slicing zu erkennen, dass die Liste mit drei Parameter auf die drei vorstehenden Variablen übergeben werden soll. Dennoch wird man durch das ‘[:]‘ beim Lesen noch einmal explizit darauf hingewiesen.
von
Kai um
18:46 am
Sonntag, 16. Mai 2010 in
Allgemeines, Produktivität, ubuntu |
2 Kommentare
Angeregt durch eine Diskussion über Vor- und Nachteile der drei großen Betriebssysteme, hatte ich ursprünglich geplant kurz aufzuschreiben, was mich, aus aktuellem Anlass, so sehr an Mac OS X stört, dass ich persönlich es für den produktiven Einsatz unbenutzbar halte.
Weil mir das sinnlose Betriebssystembashing aber auf die Nerven geht und ich trotzdem schreiben wollte, was mich stört, starte ich nun eine kleine Reihe der absolut besten Werkzeuge (lies Programme) unter Ubuntu, für die ich weder auf Windows 7 noch auf Mac OS X ein entsprechendes Gegenstück gefunden habe. (Die hier dargestellte Meinung beruht natürlich nur auf persönlichen Erfahrungen. Auch werde ich wohl, trotz guter Vorsätze, mir den einen oder anderen Seitenhieb auf die beiden anderen Betriebssysteme nicht ersparen können.)
Ich werde hier nur Programme behandeln, die bei einer Standardinstallation mit dabei sind, weil ich ungern Stunden und Tage damit verbringe, nach irgendwelchen Alternativlösungen zu suchen, die unter Umständen und mit eventuellen Einschränkungen für bestimmte Fälle eine gleiche Funktionalität bereitstellen würden.
Den Anfang macht nun Nautilus, der Standard-Dateimanager unter Ubuntu. Interessanterweise wurde die ursprüngliche Entwicklung von einem ehemaligen Apple-Mitarbeiter angestoßen:

- Nautilus kann mit Samba, SSH, SFTP, FTP und Webdav problemlos umgehen. Öfter benötigte Verbindungen lassen sich zudem bequem in der Seitenleiste verstauen und zwar mit Passwort. D.h. der Webserver, auf dem auch dieser Blog hier liegt ist mit einem Mausklick entfernt.
- Dateibearbeitung auf der entfernten Freigabe ist auch direkt und schmerzfrei möglich. Ich kann (als beliebten Anwendungsfall) mich über Nautilus auf den Webserver verbinden, und die dort liegenden Dateien z.B. mit Emacs öffnen und direkt bearbeiten. Dank Nautilus brauche ich also nicht extra ein FTP-Programm für FTP-Verbindungen. Nebenbei: Zugriffsrechte für Dateien lassen sich ebenso einfach über Nautilus setzen.
- Wenn man, was sicherlich häufiger mal vorkommt, Verzeichnisse kopieren oder abgleichen möchte, gibt es bei Nautilus eine geteilte Ansicht, die beide Verzeichnisse übersichtlich einblendet.
- Ein weiteres “Killer-Feature” meines Erachtens ist die Musikvorschau: Wenn man den Mauszeiger über eine Audiodatei hält, ertönt die dazugehörige Musik aus den Boxen. Der Produktivitätsgewinn hierbei muss ich wahrscheinlich nicht weiter ausführen.
- Sämtliche Funktionen wie zum Beispiel Ansichten ändern, Ordner erstellen, Adresszeile anzeigen, versteckte Dateien anzeigen usw. sind auch über ein Tastenkürzel erreichbar, was (zumindest für mich) die Arbeitsgeschwindigkeit nochmal steigert.
- Wenn man nach Dateien suchen muss, ist (ähnlich zum Finder) eine Suche in den Dateimanager integriert, die nach Ordner- und Dateinamen suchen kann.
So, und jetzt der unvermeidliche Seitenhieb (Ich werde auf den Dateimanager unter Windows gar nicht erst eingehen. Wenn jemand am Boden liegt, muss man nicht nochmal nachtreten): Spotlight für den Finder ist sicherlich eine feine Sache. Erreichbare Rechner im selben Netzwerk, die in der Seitenleiste vom Finder angezeigt werden, auch nett. Aber so triviale Sachen, wie zwei Verzeichnisse abgleichen? Fehlanzeige.
Genauso wie Cover Flow? Ich kenne nicht einen Anwendungsfall, in dem mir Cover Flow hilfreich erscheint. Musikverwaltung findet unter Mac OS stets über iTunes statt, wofür das ganze also noch auf Dateiebene?
Man kann darüber streiten, ob das ein schickes Feature ist. Ich finde, dass Designentscheidungen immer einen praktisch relevanten Nutzen haben und nicht einfach nur “nett anzuschauen” sein sollten.
Ich bin sicherlich nicht sehr affin im Umgang mit dem Finder (weil ich keinen Mac besitze und in der FH jedesmal Probleme damit habe). Rein intuitiv stelle ich jedoch mal die Behauptung in den Raum, dass der praktische Nutzen bei Nautilus höher ist.
Falls sich der werte Leser über den Abakus als Bild für diesen Beitrag wundert: Ich bezeichne den Abakus manchmal als ältestes Programm der Welt, weil man Zahlen für die Addition/Subtraktion eingibt, und dann das Ergebnis auf dem Abakus erhält. Mit etwas Übung geht das dann so leicht von der Hand, dass der Unterschied zum einfachen Taschenrechner nur noch marginal ist
Bildquelle: http://www.flickr.com/photos/obraka/4005590272/
von
Kai um
16:58 am
Freitag, 14. Mai 2010 in
Studium |
0 Kommentare
Dieses Semester habe ich die Veranstaltung Computergrafik besucht und mich dabei (neben viel Mathematik) auch ein bisschen in OpenGL eingearbeitet.
Leider wurde während des Semesters in dieser Vorlesung die bewährte Entwicklungsmethode des “Trial-and-Error“-Verfahrens Lügen gestraft. Man muss bei Computergrafik wirklich sehr genau wissen, was man da gerade tut. Alles andere endet in stundenlangem erfolglosen Rumstochern in Codezeilen.
Ich hatte schon eine dunkle Vorahnung, dass diese Entwicklungsmethode zum Scheitern verurteilt war und werde daher nun die gepredigten Vorsätze der ersten Semester versuchen zu verinnerlichen. Vor allem, da die anstehenden Softwareprojekte an Komplexität und Umfang stetig zunehmen ist das vielleicht nicht der schlechteste Zeitpunkt:-)
Zusammen mit zwei weiteren Kommilitonen habe ich als Projektabschluss für Computergrafik noch folgende Achterbahn zusammen gezimmert. Die Bahn ist nicht ganz fehlerfrei, weil wir bis zum Schluss noch ein paar Bugs drin hatten, die keiner von uns so richtig lösen konnte, aber moderne Videobearbeitung und ein guter Schnitt machen aus einer fehlerbehafteten Bahn ein einigermaßen anschauliches Ergebnis:
von
Kai um
13:04 am
Sonntag, 14. März 2010 in
design, ubuntu |
7 Kommentare
Nachdem in der Blogosphäre nun ausgiebig über das neue Design von Ubuntu 10.04 diskutiert wurde, äußert sich das Ubuntu Design Team nun selbst zur Kritik und beschreibt den Entwicklungsprozess, der hinter der Entscheidung, die Buttons der Fensterleiste neu anzuordnen, steht.
Ich denke, mit Veränderungen ist es immer so eine Sache, aber die Gedanken, die man sich über die neue Ausrichtung der Buttons gemacht hat, kann ich nachvollziehen. Richtig gut hingegen finde ich den generellen Ansatz Bestehendes einmal aufzubrechen und den Sinn zu hinterfragen. Vielleicht irre ich mich, aber mir fällt neben Ubuntu keine weitere Distribution ein, die sich ernsthaft mit der Usability auseinandersetzt.
Für mich ist nur wichtig, dass das ausgelieferte Theme funktioniert. Das heißt, ich möchte mich nicht damit auseinandersetzen, wenn ich es nicht will. So gesehen finde ich es auch in Ordnung, wenn mir ein kluger Kopf die Entscheidung darüber abgenommen hat, wo die Buttons wohl am besten platziert sind, solange es eben Sinn ergibt, auch wenn es unter Umständen etwas Eingewöhnungszeit bedeutet.
Interessant wäre hierbei aber auch mal zu wissen, wie viele Ubuntubenutzer überhaupt auf das Standardtheme setzen und ein mitgeliefertes Wallpaper benutzen. Ich habe hierzu leider keine Statistik gefunden. Ich habe nämlich den Verdacht, dass das nicht gerade viele sind, die ihr System auf dem Auslieferungszustand lassen, zumal es wirklich einfach ist dieses zu ändern. Insofern ist die verlinkte Aufregung für mich auch nicht wirklich nachvollziehbar.
Ich persönlich benutze bis auf ein anderes Wallpaper mittlerweile nur noch das Standardtheme, weil mir die Zeit, Motivation und ausgesprägtes Geschmacksempfinden fehlt, eine bessere Alternative zu suchen. Ich war mit Human zufrieden und bin gespannt, ob das neue (lila) Theme ebenfalls für mich in Ordnung sein wird, sobald es richtig fertig ist.
Bildquelle: http://www.ivankamajic.com/?p=281
von
Kai um
22:45 am
Freitag, 5. März 2010 in
Allgemeines, Linux |
2 Kommentare
Da letzte Woche mein neuer PC hier ankam, wollte ich die Gelegenheit nutzen und Kubuntu (mit KDE in der aktuellen Version 4.4) auf meinem Thinkpad ausprobieren.
Laut den Release Notes sollte sich die Stabilität deutlich gegenüber den vorherigen Versionen verbessert haben und einige interessante Features dazugekommen sein.
Da mir die durchdachte Fensterverwaltung besser als in Gnome gefällt und KDE sich groß “Social Desktop” auf die Fahne schreibt (also das Einbinden von Twitter, Facebook und Co auf den Desktop) wagte ich einen Versuch.
Die Installation ging noch reibungslos vonstatten, aber bereits nach dem ersten Start hatte ich immer wieder mit Abstürzen von Nepomuk zu kämpfen. Kopete, der mitgelieferte Instant Messenger, konnte ich nicht dazu überreden, MSN zu sprechen. Außerdem fand ich die UI zu groß dimensioniert. Damit komme ich auch direkt zum nächsten Punkt. Viel von der Software, die ich so täglich verwende, benutzt GTK. KDE setzt dagegen auf QT auf. Ich weiß nicht, wie hier die prozentuale Verteilung von Software ist, die mit GTK geschrieben wurde, gegenüber derjenigen, die QT benutzt, aber meine Wahrnehmung ist, dass “populärere” Opensource Programme oft ersteres verwenden.
Dann merkt man recht schnell, dass Ubuntu wesentlich besser unterstützt wird als Kubuntu. Gefühlt gibt es viel mehr Hilfestellung für Ubuntu im Netz zu finden. Zwar sind einige Probleme unabhängig von der verwendeten Grafikbibliothek, aber gerade zum Beispiel die größte und erste Anlaufstelle (wiki.ubuntuusers.de) hält, wie der Name schon sagt, wesentlich mehr ubunturelevante Artikel.
Wie auch immer, der eigentliche Grund für mich, nach einer Woche wieder zu Ubuntu zu wechseln war, dass ich vieles an Funktionalität bei Kubuntu (KDE) vermisst habe, welche mir Ubuntu bietet.
Zum einen konnte der Network-Manager von KDE nicht mit VPN umgehen (ich habe es mit OpenVPN probiert. Eine Verbindung kam nie zustande), so dass ich auf den von Gnome zurückgreifen musste. Dropbox wird leider ebenfalls nicht gut in Kubuntu unterstützt. Man kann den Daemon über die Konsole starten und bekommt auch eine Anzeige im Panel, aber die visuelle Rückmeldung im Dolphin Dateibrowser fehlt. Generell hat mir Dolphin nicht so gut gefallen, da meiner Meinung nach viel Platz für nichts verschwendet wird (also Freiraum). Außerdem war ich nicht in der Lage Bookmarks zu FTP oder SSH-Verbindungen anzulegen. Vielleicht geht das irgendwie, ich habe es aber nicht geschafft. Die eingebaute Hilfe von KDE war mir hier auch keine große Hilfe, da ich die relevanten Informationen dazu nicht gefunden habe.
Gut fand ich die Fensterverwaltung. Gerade auf kleineren Bildschirmen (wie hier am Thinkpad z.b.) hatte ich nie das Gefühl den Überblick über meine vier Desktops zu verlieren. Fenster konnte man leicht verschieben und praktisch (Hint: Aero Snap) anordnen. Außerdem sind einige Details ganz gut gelöst. So lassen sich z.b. Hintergrundbilder einfach installieren, indem man das entsprechende Bild auf den Desktop zieht und “als Hintergrundbild” auswählt.
Dennoch: Mein Fazit ist daher, dass ich Kubuntu (bzw. KDE) immer noch nicht empfehlen kann, da ich von der verbesserten Stabilität nicht allzuviel gemerkt habe, außerdem mangelt es meiner Meinung nach an Programmen, die auch Qt benutzen, weil GTK Programme stellenweise ziemlich hässlich in KDE aussehen.
von
Kai um
15:54 am
Donnerstag, 11. Februar 2010 in
Klausuren, Studium |
0 Kommentare
Heute war der Klausurtermin für “Mathematik für Informatiker”. So aus dem Gedächtnis wurden folgende Aufgaben gestellt. Die Liste ist bestimmt nicht vollständig und kann noch Fehler enthalten, kann aber mit Hilfe der anderen Opfer, die mitgeschrieben haben, komplettiert werden.
Aufgabe 1
a.) Beweisen Sie mit Hilfe der vollständigen Induktion:
b.) Beweisen Sie folgende Aussage mit Hilfe von Kontraposition:
Wenn
teilerfremd sind, so sind auch
teilerfremd.
c.) Beweisen Sie, dass der Satz: Wenn 3a+2b und 3a-2b sind nicht teilerfremd, dann sind a und b auch nicht teilerfremd, nicht gilt.
Lösung (anzeigen)
Aufgabe 2
a.) Die Wettervorhersage gibt an, dass es mit 40% Wahrscheinlichkeit morgen regnet und mit 60% Wahrscheinlichkeit, dass es nicht regnet. Leider trifft die Vorhersage aber nur mit 80% Wahrscheinlichkeit zu, dass es morgen tatsächlich regnet und mit 90% Wahrscheinlichkeit, dass es nicht regnet
Berechnen Sie die Wahrscheinlichkeit dafür, dass morgen ein Regentag ist.
b.) Adam und Eva waren zum Inlineskaten verabredet, doch leider kam Eva nicht zum vereinbartem Zeitpunkt, weil Sie gehört hat, dass es regnen wird. Als Entschuldigung gibt sie an, dass Sie gehört hat, dass es regnen sollte. Adam ist sich sicher, dass Eva die Wettervorhersage nicht gesehen haben kann.
Wie hoch ist die Wahrscheinlichkeit, dass es geregnet hat?
Aufgabe 3
Ein Prof vergisst jedes zehnte Mal (unabhängig vom vorherigen Mal) seine Unterlagen für die Vorlesung und muss zurücklaufen und sie holen. Bei 15 Vorlesungen:
a.) Wie groß ist die Wahrscheinlichkeit, dass er sie nie vergisst?
b.) Wie groß ist die Wahrscheinlichkeit, dass er sie mindestens zweimal nicht vergisst?
Lösung (anzeigen)
Aufgabe 4
In einer Sportgruppe liegt der Erwartungswert bzgl. der Körpergröße bei 1.8m und die Standardabweichung beträgt 0,1m. Für den Kurs „Turnen“ braucht man eine Größe zwischen 1,5m und 1,7m.
Wieviel Prozent der Studenten nehmen teil?
Lösung (anzeigen)
Es nehmen also 15,74% aller Studenten teil.
Aufgabe 5
Es sind folgende zwei Schätzer T1,T2 gegeben:

a.) Überprüfen Sie die Schätzer auf ihre Erwartungstreue
b.) Überprüfen Sie die Schätzer auf ihre Konsistenz
Aufgabe 6
Die Studenten geben an, dass Sie für das Fach Mathe folgenden Lernaufwand haben:
| Studenten |
80 |
100 |
60 |
40 |
| Zeitaufwand in Std. |
[0,5) |
[5,10) |
[10,20) |
[20,40) |
a.) Bitte erklären Sie, ob die Zufallsvariable X="Zeitaufwand der Studenten" diskret oder stetig ist. Bitte begründen Sie ihre Antwort. Ohne Begründung gibt es keine Punkte.
b.) Bitte geben Sie die Dichtefunktion an, und gehen Sie davon aus, dass die Studenten nicht länger als 40 Stunden für das Fach aufwenden?
c.) Zeichnen Sie die Verteilungsfunktion
d.) Berechnen Sie den Erwartungswert E(X)
e.) Berechnen Sie die Wahrscheinlichkeit für P(X<18)
Aufgabe 7
a.) Anhand folgender Tabelle soll eine Regressionsgerade mit Hilfe des Satzes der kleinen Quadrate berechnet werden.
| Jahr nach 2000 |
2 |
4 |
6 |
8 |
Durchschnittsverbrauch an Kraftstoff in Liter/100km |
8,5 |
8,2 |
7,9 |
8,0 |
b.) Berechnen Sie, ausgehend von einer linearen Abhängigkeit,nach wie viel Jahren nach dem Jahr 2000 der Durchschnittsverbrauch bei 5 Litern/100km liegen wird
Lösung (anzeigen)
von
Kai um
22:19 am
Montag, 8. Februar 2010 in
Allgemeines, Studium |
3 Kommentare
Millionen von Menschen versuchen jede Woche aufs neue mit einem Lottoschein den großen Gewinn zu holen. Die Tatsache, dass ein Sechser im Lotto so wahrscheinlich ist, wie in einem Treppenhaus von einem Blitz getroffen zu werden, wissen wohl die meisten.
Dennoch lässt sich diese Gruppe Menschen aber nicht davon beirren, es trotzdem zu probieren. Schließlich gewinnt ja fast jede Woche jemand beim Lotto.
Da bald eine Klausur in Stochastik und Statistik ansteht, habe ich mich zu folgender Überlegung hinreißen lassen:
Da es beim Lottospielen nicht auf die Reihenfolge der gezogenen Zahlen ankommt, ist die Anzahl aller Möglichkeiten 6 Zahlen aus 49 zu ziehen:
Eine von diesen knapp 14 Millionen wäre dann der Treffer für einen Lottogewinn. (Die Zusatzzahl habe ich hier mal nicht berücksichtigt).
Nun müssen es ja nicht immer 6 richtige sein. Vielleicht würde man sich ja mit 5 richtig gezogenen Zahlen auch zufrieden geben.
Die Anzahl der Möglichkeiten fünf richtige zu ziehen sind dann immer noch 43 x 6 = 258. Analog zu obiger Rechnung kann man es auch folgendermaßen schreiben:
Führt man diese Rechnung jetzt für alle Treffer durch, zum Spaß auch für die bei denen kein Gewinn ausgezahlt wird, kommt man zu folgendem Ergebnis (P steht hier für die Wahrscheinlichkeit):
Mit anderen Worten ausgedrückt, bedeutet das also, dass man mit einer Wahrscheinlichkeit von ca. 41,3% eine Zahl richtig getippt hat. Für zwei richtige Treffer sinkt die Wahrscheinlichkeit schon auf etwas über 13%. Für einen “Dreier” liegt die Wahrscheinlichkeit dann nur noch bei ca. 1,76%.
Ich weiß nicht, wieviel Euro es für einen Dreier gibt, aber nehmen wir mal an, man würde für drei richtig getippte Zahlen 50,- € bekommen. Leider muss man dafür aber auch im Schnitt ca. 57 Lottospiele mitspielen, um statistisch betrachtet einmal drei Richtige zu haben. Wenn man für einen Lottoschein also 7,- € bezahlt, dann wären das knapp 400,- €, die man für einen 50,- € Gewinn erhalten hätte.
Das dürfte aber die meisten Lottospieler nicht interessieren, schließlich gewinnt fast jede Woche jemand die Millionen.