ubuntuusers.de

21. Februar 2009

pidginMeine privaten Daten lass ich am liebsten über Facebook weiterverkaufen. Facebook bietet die Möglichkeit mit seinen Freunden direkt über das Web zu chatten. Üblicherweise läuft der Chat dabei im Browser. Das ist nicht immer praktisch. Es gibt allerdings ein Plugin für Pidgin, dass es ermöglicht mit Facebook-Freunden zu chatten.

Das Plugin kann unter Ubuntu ganz einfach installiert werden:

  1. Plugin herunterladen (deb-Paket von http://code.google.com/p/pidgin-facebookchat/)
  2. pidgin-facebookchat-1.47.deb installieren
  3. Pidgin neustarten
  4. Facebook-Konto hinzufügen

Danach kann man über Pidgin auch mit seinen Facebook-Kontakten chatten. Danke an mzungu für die Idee!

20. Februar 2009

[...] Neij wurde nach seiner Beziehung zum Werber Oded Daniel befragt. Auf die Frage, ob dieser auch in die technischen Aspekte der Site involviert sei, antwortete Neij: „Nein, Er ist nicht gut darin. Er nutzt Windows. Also…“.

(via)

19. Februar 2009

Schon länger habe ich nach dieser Möglichkeit gesucht und endlich gefunden: Ein Dateibrowser-Applet für das GNOME Panel. Finden kann man das Applet hier und trägt die entsprechenden Quellen in die /etc/apt/sources.list ein. Aber an Fremdquellen und so denken… ;)
Nun kann mit einem

sudo apt-get install file-browser-applet

das Apple installieren.

In den Einstellungen kann man noch festlegen, welche Orte man im Panel anzeigen lassen will. Ich finde es eine praktische Sache um schnell mal an Dateien zu kommen, ohne den Nautilus öffnen zu müssen.

Dateibrowser Applet

Screenshot des Projekts

Update: Das Applet findet man auch in den universe Quellen, jedoch in einer weniger aktuellen Version. Danke an dé.wé für den Hinweise.

Wir haben auf der Arbeit einen Dell Laptop mit einem Dualboot ausgestattet. Zum Einsatz kommen Windows XP und eine aktuelle Fedora. Mit ein paar Anleitungen aus dem VirtualBox Wikis ist es uns gelungen, das Windows auf Partition 1 zu starten. Da die virtuelle Hardware nun aber anders ist, muss man das Windows natürlich neu aktivieren. Über das Internet hat man hier keine Chance, denn es fehlt ja noch der Netzwerktreiber der Virtuellen Netzwerkkarte :-(.

Ich habe lange nach dieser Möglichkeit gesucht und einige Versuche mit qemu gemacht, jedoch ohne Erfolg.

Jetzt gilt es noch, dass Windows dazu zu bewegen, dass es mit beiden Hardware Konfigurationen zurecht kommt.

Weitere Artikel:

Bisher habe ich immer geglaubt mit dem Porn-HardwareLiSter habe ich den Stein der Weisen gefunden, doch durch den mittlerweile abgeschlossenen Beta Test von Celetania bin ich über eine weitere interessante Applikation gestolpert, die ich euch nicht vorenthalten möchte. HardInfo: System Profiler and Benchmark ist zwar schon relativ alt, aber kann mehr und vor allem kann es auch einen HTML Report generieren. Der erleichtert natürlich die Kommunikation im Supportfall ungemein. Ausnahmsweise spare ich mir mal eigene Screenhots und verweise auf die der Projekt Homepage.

Nach gleich zwei Kommentaren mit dem gleichen Hinweis auf Me-TV bei der Anleitung mit Kaffeine habe ich mir auch dieses Programm angesehen und muss sagen, ich bin begeistert. Ein sehr übersichtlicher EPG (Elektronischer Programm Guide) mit der Möglichkeit Sendungen für eine Aufnahme zu markieren, sowie eine Broadcast-Funktion, mit welcher man das TV-Signal im Netzwerk bereitstellen kann.



Me-TV installieren:
Ganz einfach über das Terminal mit folgendem Befehl:
sudo apt-get install me-tv


Nach kurzer Installation findet sich das Programm unter Unterhaltungsmedien - Digital Television
Wenn man dieses nun startet, wird zuerst eine Senderliste angelegt:







Daraufhin startet das Haupt-Programm und man kann direkt TV schauen. Sehr nett auch, mit einem Rechtsklick auf das TV-Bild wird er EPG eingeblendet. Ein Klick auf den Aufnahme-Knopf startet eine Aufnahme, welche man sich dann später ansehen kann.

Da in einigen Foren, keine PHP-Dateien zwischen [img][/img]-Tags erlaubt sind, hier ein Counter extra für diesen speziellen Fall. Das Bild wird auf dem Server regelmäßig neu generiert und kann dann einfach eingebunden werden. Auf das Problem aufmerksam gemacht hat mich Malte, hier. Hier der Code für Foren:

Counter für Foren

  • [url=http://www.ubuntu.com][img]http://www.the-pc-board.com/jauntycounter3/counter.png[/img][/url]

Die übrigen Counter sind auf dieser Seite zu finden. Viel Spaß damit!

UPDATE: Die Seite ist jetzt obsolet, bitte Kommentare betrachten.


Nun habe ich meinen neuen Laptop fast 1 Jahr, bin schon begeistert, von einem 1,83 Ghz Centrino mit 32 Bit auf 2*2,5 Ghz mit 64 Bit Registerbreite zu springen ist schon ziemlich geil. Nun habe ich mir ein neues Eclipse gezogen (mal in Netbeans geschnuppert) und aus Versehen die 32 Bit Version gezogen. Angemacht und fast Gebrochen. Der Splash Screen war nicht zu sehen. Das letzte halbe Jahr hatte ich mit dem Eclipse aus dem Ubuntu Repository und PHP Eclipse verbracht (leider). Zwischen den 2 Versionen liegen in der Ausführungsgeschwindigkeit Welten. Irgendwie nährt sich in mir immer mehr der Verdacht, dass die x64 Libs leicht fürn Arsch sind. Beim builden von 32bit Apps gibts nur Probleme und der 32Bit Kram läuft deutlich schneller (ich bin nicht gerade der Mensch, der Bootzeiten stoppt). Trotz der Warnung zahlreicher Kollegen hab ichs nicht eingesehen mir ein  32Bit System aufzusetzen. Wenn sich das mit dem Speed bewarheitet, ist ganz schnell ein neues System drauf. Dann kann ich wenigstens mein log-get Tool mal ausprobieren.

Oh Mann! Es ist zwar schon ein wenig später, aber so verpeilt war ich selten. Links auf Verzeichnisse sollten in Linux immer “soft” geschehen. Guckst Du hier:

root@nethercap:/var/www# ln -s  /home/schmiddi/workspace/php_test_project/
root@nethercap:/var/www# ls php_test_project
index.php  test.html

und schon ist alles gut :)

18. Februar 2009

Bei der Arbeit mit dem Ubuntu Wochenrückblick wird der Vorteil von einem Gemeinschaftseditor offensichtlich. Das gemeinsame Arbeiten an einem Text, dessen Struktur schon vorgegeben ist, erspart wahnsinnig viel Zeit und stärkt den Geist einer Gemeinschaft. In der open Source Gemeinde ist vor allem der Editor Gobby beliebt. Diesen Texteditor zum kollaborativen Schreiben zeichnet es aus, daß er plattformunabhängig, open Source und nahezu selbsterklärend ist.

Was ist kollaboratives schreiben?

Als kolloboratives Schreiben bezeichnet man Projekte, an denen mehrere Autoren arbeiten. Dies kann mit geeigneten Editoren wie Gobby sogar in Echtzeit und gleichzeitig geschehen. Auch das Prinzip von Wikis, wie der Wikipedia oder ubuntuusers basiert auf kolloborativen schreiben. Dabei können sogar einander unbekannte Menschen gemeinsam an einem Projekt arbeiten. Vorraussetzung zum kolloborativen Schreiben ist, dass sich alle Teilnehmer über das Ziel des Projektes im Klaren sind und dementsprechend handeln.

Installation

Gobby kann auf Debian-basierten Systemen ganz einfach mit APT über apt-get install gobby installiert werden. Bei anderen Distributionen, bei denen Gobby im Repository ist, gelten natürlich die äquivalenten Befehle der Paketverwaltungssoftware. Man auch die Gobby-Homepage besuchen und den Installer für viele verschiedene Betriebssysteme, darunter NetBSD, Windows und Mac herunterladen. Zur Not kann man natürlich immernoch den Quelltext kompilieren. Gobby benötigt das GIMP-Toolkit, um funktionieren zu können. Man muß also unter KDE/Windows/Mac noch das GIMP-Toolkit, und unter MacOS noch einen X-Server, nachinstallieren.

Eröffnen einer Sitzung

Um eine gemeinschaftliche Sitzung zu eröffnen, genügt es auf den Button Sitzung eröffnen zu klicken und einen geöffneten Port (standardmäßg 6522), einen geeigneten Benutzernamen und eine Farbe, die im Dokument als Erkennungsmerkmal benutzt wird, einzugeben. Anschließend genügt eine Bestätigung und das Schreiben kann mit Klick auf neues Dokument beginnen. Man kann die Sitzungen auch mit einem Kennwort versehen, damit nicht jeder, der die IP des Hosters kennt, die Dokumente bearbeiten kann. Dies ist v.a. bei Gobby-Servern wichtig, weil deren DNS meist öffentlich bekannt sind.

Erstellung des Artikels in Gobby

Einer Sitzung beitreten und Einstellungen vornehmen

Um einer Sitzung beizutreten reicht es aus, Gobby zu starten, auf den Sitzung beitreten-Button zu klicken, und dann die globale IP oder die DynDNS Adresse des Servers einzugeben, den Port (standardmäßg 6522), seinen Namen und die gewünschte Farbe anzugeben. Dann kann man sich die geöffneten Dokumente ansehen, und sie bearbeiten.

Wichtig: In Gobby gibt es keine Rückgängigtaste und Strg + Z bleibt folgenlos. Was weg ist, ist also endgültig weg, wenn niemand eine Sicherungskopie erstellt hat. Diese kann man mit Dokument speichern unter leicht selbst erstellen und neu laden.

Beim Schreiben wird der Text jedes Benutzers mit der zu Beginn gewählten Farbe hinterlegt. Sollte diese Farbe nicht mehr erwünscht sein, kann sie über Benutzer → Farbe wechseln geändert werden. Außerdem steht unterhalb des Textfensters ein einfacher, IRC-änlicher Chat zur Verfügung. Um zwischen den bereitgestellten Textdokumenten zu wechseln muss man sich zunächst die Dokumentenliste anzeigen laßen. Diese kann man mit Fenster → Dokumentenliste anzeigen lassen. Die geöffneten Dokumente werden im Hauptfenster in Tabs angeordnet.

So, nun viel Vergnügen beim kollaborativen schreiben ;-)


Dieser Artikel ist der erste in unserem Blog, der kolloborativ mit Gobby geschrieben worden ist.
Beteiligte Autoren: benni, joeserin
noqqe.de 18. Februar 2009 21:12

MySQL in PHP

Zuerstmal, lief mein Test über MySQL in der Schule super :) Nachdem ich jetzt sowohl in PHP als auch MySQL unterrichtet wurde, hat mich dann doch intressiert wie sich die beiden in Kombination verhalten :) Die Datenbank die ich für “A-byte-of-MySQL” erstellt habe diente als Test-Objekt:

Wie fange ich an?
mysql_connect(‘server’,'user’,'passwort’);
# Verbinde zu mysql auf Server mit Benutzer und folgendem Passwort

Wie wähle ich die zu verwendende Datenbank aus?
mysql_select_db(“arbeit”);

Wie definiere ich den Befehl der auszführen ist?
$sql=”SELECT * FROM kollegen order by rand();”;

Wie führe ich ihn aus?
$result = mysql_query($sql) OR die(mysql_error());

Wie gebe ich das Ergebnis aus?
while ($row = mysql_fetch_assoc($result))
{
echo $row['ID'].” “.$row['Name'].” “.$row['Gehalt'].” “.$row['Bereich'].”
“;
}
# Schleife: Für jeden Eintrag in der Datenbank eine Zeile erzeugen.

Verbindung schliessen.
mysql_close();
?>

Komplett:

<html>
<?php
mysql_connect(‘server’,'user’,'passwort’);
mysql_select_db(“arbeit”); //Auswahl der DB
$sql=”SELECT * FROM kollegen order by rand();”;
$result = mysql_query($sql) OR die(mysql_error());
while ($row = mysql_fetch_assoc($result))
{
echo $row['ID'].” “.$row['Name'].” “.$row['Gehalt'].” “.$row['Bereich'].”<br>”;
}
?>
</html>

Ergebnis:  http://zwetschge.org/stuff/sql.php


Wer kennt die tollen blauen Zahlen und Zeichen an der Notebook Tastatur nicht (ab und zu sind diese FN Zeichen auch in Kästchen o.ä.) und wie sinnfrei diese doch sein können.

Nun rief gerade die Verwandtschaft ganz aufgebracht an und meinte, sie könne nicht mehr I, O und L schreiben, sondern nur noch Zahlen.

Hier die Lösung:
FN und NUM gleichzeitig drücken und das Problem sollte gelöst sein.

Dies ist eine Übersetzung des englischen Posts New KWin effect: Sheet

Ich habe einen neuen KWin Effekt namens “Sheet” implementiert. Dieser animiert modale Dialoge (keine Ahnung wie das wirklich auf Deutsch heißt). Das Dialogfenster wird zusammengerollt und fliegt vom Elternfenster rein. Etwas schwierig das ganze mit Worten zu beschreiben, daher hier ein Video (natürlich ist die Geschwindigkeit auf sehr langsam gestellt):

Link für Planet oder RSS Leser

Aktuell möchte man den Effekt nicht benutzen wenn der Fade Effekt aktiviert ist. Die beiden Effekte haben eine unterschiedliche Geschwindigkeit, daher ist das Dialogfenster ausgeblendet, bevor die Sheet Animation beendet ist.

Die Arbeit am Würfel Effekt geht ebenfalls weiter und neue Features werden implementiert. Gestern habe ich zum Beispiel mich ergeben und auf Grund häufigen Wunsches die 3D-Fenster implementiert. Fenster können nun über dem Würfel schweben. Es gehört eigentlich zu den Features, die ich nicht mag, aber Compiz hat es, also muss es implementiert werden ;-)

Mal wieder sagt ein Bild mehr als tausend Worte:
cube-3d-windows

Es gibt noch leichte Darstellungsfehler verursacht durch die Zeichnungsreihenfolge.

17. Februar 2009

Letztens brachte Holgi mir wieder etwas in Erinnerung, was ich schon längst vergessen hatte. Meine Linuxanfänge 19.. ich glaube 90/91 (später) oder so. Als mit SuSE 5.1 das deutsche Tastaturlayout noch nicht so durchgängig war. Wenn man dann seiner Freude über das System und dem Verwaltungstool ungezügelt freien Lauf lassen wollte achtete man nicht selten gar nicht drauf, dass Y und Z auf der englischen Tastatur vertauscht sind.
Auch wenn heute nur noch apt-get ruley gilt, muss ich trotzdem immer wieder grinsen.

Wie bereits versprochen, hier noch einige Counter für die nächste Ubuntu-Version. Falls Wünsche für andere Counter vorliegen, bitte einfach melden.

Countdown von Ubuntu 9.04 (jaunty jackalope)

  • HTML-Code: <a href=“http://www.ubuntu.com“><img src=“http://www.the-pc-board.com/jauntycounter/?/banner.png“ border=“0″ alt=“Countdown von Ubuntu 9.04 (jaunty jackalope)“ /></a>
  • BBCode: [URL=http://www.ubuntu.com][IMG]http://www.the-pc-board.com/jauntycounter/?/banner.png[/IMG][/URL]

______________________________

Countdown von Ubuntu 9.04 (jaunty jackalope)

  • HTML-Code: <a href=“http://www.ubuntu.com“><img src=“http://www.the-pc-board.com/jauntycounter2/?/banner.png“ border=“0″ alt=“Countdown von Ubuntu 9.04 (jaunty jackalope)“ /></a>
  • BBCode: [URL=http://www.ubuntu.com][IMG]http://www.the-pc-board.com/jauntycounter2/?/banner.png[/IMG][/URL]

______________________________

Countdown von Ubuntu 9.04 (jaunty jackalope)

  • HTML-Code: <a href=“http://www.ubuntu.com“><img src=“http://www.the-pc-board.com/jauntycounter3/?/banner.png“ border=“0″ alt=“Countdown von Ubuntu 9.04 (jaunty jackalope)“ /></a>
  • BBCode: [URL=http://www.ubuntu.com][IMG]http://www.the-pc-board.com/jauntycounter3/?/banner.png[/IMG][/URL]

______________________________

Countdown von Ubuntu 9.04 (jaunty jackalope)

  • HTML-Code: <a href=“http://www.ubuntu.com“><img src=“http://www.the-pc-board.com/jauntycounter4/?/banner.png“ border=“0″ alt=“Countdown von Ubuntu 9.04 (jaunty jackalope)“ /></a>
  • BBCode: [URL=http://www.ubuntu.com][IMG]http://www.the-pc-board.com/jauntycounter4/?/banner.png[/IMG][/URL]

Die Counter stehen unter der Creative Commons Lizenz und dürfen frei benutzt, weitergeben und verändert werden.


Da ich hier noch einen Grand DVB-T (Pen) Stick von Conrad rumliegen habe und gerade einen anderen Sender als meine Frau sehen möchte, mache ich mich nun wieder an die Installation, welche unter Ubuntu 8.04 fehlgeschlagen ist. Also erstmal das gute Stück eingesteckt und folgenden Befehl ausgeführt:

dmesg

[ 9186.085036] usb 4-1: new high speed USB device using ehci_hcd and address 2
[ 9186.145294] hub 4-0:1.0: unable to enumerate USB device on port 1
[ 9186.409052] usb 4-1: new high speed USB device using ehci_hcd and address 3
[ 9186.468061] hub 4-0:1.0: unable to enumerate USB device on port 1
[ 9186.840041] usb 3-1: new full speed USB device using ohci_hcd and address 2
[ 9187.042065] usb 3-1: not running at top speed; connect to a high speed hub
[ 9187.048399] usb 3-1: configuration #1 chosen from 1 choice
[ 9187.311075] dvb-usb: found a 'GRAND - USB2.0 DVB-T adapter' in cold state, will try to load a firmware
[ 9187.311096] firmware: requesting dvb-usb-dibusb-6.0.0.8.fw
[ 9187.354662] dvb-usb: downloading firmware from file 'dvb-usb-dibusb-6.0.0.8.fw'
[ 9188.646207] usbcore: registered new interface driver dvb_usb_dibusb_mc
[ 9188.648039] usb 3-1: USB disconnect, address 2
[ 9188.648150] dvb-usb: generic DVB-USB module successfully deinitialized and disconnected.
[ 9190.425049] usb 4-1: new high speed USB device using ehci_hcd and address 4
[ 9190.567727] usb 4-1: configuration #1 chosen from 1 choice
[ 9190.570887] dvb-usb: found a 'GRAND - USB2.0 DVB-T adapter' in warm state.
[ 9190.574559] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.
[ 9190.577398] DVB: registering new adapter (GRAND - USB2.0 DVB-T adapter)
[ 9190.590106] DVB: registering frontend 0 (DiBcom 3000MC/P)...
[ 9190.715379] MT2060: successfully identified (IF1 = 1220)
[ 9191.194967] input: IR-receiver inside an USB DVB receiver as /devices/pci0000:00/0000:00:04.1/usb4/4-1/input/input10
[ 9191.238659] dvb-usb: schedule remote query interval to 150 msecs.
[ 9191.238680] dvb-usb: GRAND - USB2.0 DVB-T adapter successfully initialized and connected.
[ 9251.645787] DVB: frontend 0 frequency 0 out of range (48000000..860000000)

Sieht also so aus, als wäre das gute Stück erkannt und eingebunden worden, daher Totem gestartet, was aber die erste Ernüchterung mit sich brachte.

Totem bringt folgenden Fehler:


Da ich nun gelesen habe, dass Kaffeine in Sachen DVB-T etwas besser bzw. dankbarer ist, beschloss ich diesen Media-Player zu isntallieren:
sudo apt-get install kaffeine


Nach einiger Zeit kann nun die Konfiguration begonnen werden. Zuerst werden gefundene Plugins angezeigt (Win Plugins sind wahrscheinlich auch bei euch nicht verfügbar, das macht aber weiter nichts). Ein paar mal auf "Weiter" und ihr landet in folgendem Dialog:


Bei Quelle nun den Standort wählen und auf "OK" klicken. Dann startet Kaffeine.


1. Dort bitte im Menü auf "DVB" klicken und "Kanäle" auswählen.

2. Nun noch auf "Suche starten" klicken und warten.
3. Rechts findet ihr die gefundenen Sender. Diese müsst ihr nun markieren (oder einfach auf "Select All" klicken) und dann auf "Ausgewählte hinzufügen"
4. "Fertig" anklicken
5. Zurück in Kaffeine klickt ihr nun bitte auf das kleine TV-Symbol am linken Rand und dann in der Senderliste auf den gewünschten Sender (Doppelklick). Schon erscheint das TV Bild rechts.

Einfach toll!

Was ich allerdings schon feststellen durfte: innerhalb von kurzer Zeit ist Kaffeine schon zweimal abgeschmiert.
Ubuntu läuft gerade so zufriedenstellend, dass es einfach nichts zu berichten gibt. Nun hat sich allerdings ein kleines Problem aufgetan, welches aber genauso schnell wieder beseitigt werden konnte: Einige Programme sind trotz deutscher Installation auf englisch, darunter auch Open Office. Da die Bedienung zwar relativ selbsterklärend ist, war es kein Problem das Programm trotzdem zu bedienen, doch schön war es auch nicht.

Die Lösung:
Ein Update der Sprachdateien half - klickt dazu auf System - Systemverwaltung - Sprachunterstützung im nun geöffneten Fenster klickt ihr neben Deutsch auf das Kästchen um aus einem "-" ein Häkchen zu machen:


Nach einem Klick auf Anwenden wird noch das Admin-Passwort verlangt. Nun werden die benötigten Dateien heruntergeladen und eingefügt. Wenn alles fertig ist, einmal ab und wieder anmelden und schon hat man die deutsche Sprache im Programm.

Ich galube wir machen das dieses Jahr mal ganz anders. Nicht ich verrate die Vorträge die die ich besuchen würde. Sondern ich bin mal neugierig, welche 3 Vorträge euch am meisten gefallen. Besuchen ist ja manchmal schwer da sie auch noch gleichzeitig sind. Also ins Programm der CLT schauen und mir mittels Kommentar verraten, welche 3 ihr unbedingt besuchen würdet, falls ihr denn nach Chemnitz fahrt.

So langsam nähert sich Ubuntu 9.04 der Beta-Phase. Noch 64 Tage, dann wird Jaunty Jackalope veröffentlich. Wie bereits bei den letzten Ubuntu-Versionen, hab ich auch dieses mal einen Counter gestaltet. Momentan ist die Auswahl noch nicht gerade groß, keine Angst: In den nächsten Tagen werde ich weitere Versionen basteln und hier veröffentlichen. Wünsche, Anliegen etc. können ebenfalls hier gepostet werden. Um den Counter auf die Homepage einzubinden, genügt folgender Code.

Countdown von Ubuntu 9.04 (jaunty jackalope)

  • HTML-Code: <a href=“http://www.ubuntu.com“><img src=“http://www.the-pc-board.com/jauntycounter/index.php“ border=“0″ alt=“Countdown von Ubuntu 9.04 (jaunty jackalope)“ /></a>
  • BBCode: [URL=http://www.ubuntu.com][IMG]http://www.the-pc-board.com/jauntycounter/index.php[/IMG][/URL]

Nachdem ich letztens Daten mit photorec gerettet habe, hatte ich das Problem, dass die Dateien alle unsortiert in verschiedenen Ordnern lagen. Damit man die Daten wenigstens nach Dateitypen sortiert hat, habe ich ein kleines Script geschrieben, welches genau das macht, d.h. die Dateien nach Dateitypen sortiert und in einem entsprechenden Ordner speichert. Dem Script werden zwei Parameter übergeben, einmal für den Pfad zum BackUp-Ordner und einmal für den Dateityp.

sortierung -p Pfad zum Backup-Ordner -t Typ

Das Script kann man sich hier herunterladen. Vor der Benutzung natürlich noch ausführbar machen.

chmod +x sortierung

Was wären wir ohne das Internet? Die gesammte Ubuntu Community baut auf dem virtuellen Netz auf, dass sich bis in die hintersten Ecken erstreckt. Wir telefonieren über das Internet, wir kaufen ein und wir versenden Emails usw. Doch wie kam es zum Internet? Ein Video klärt auf.

Aus “betrieblichen Gründen” installierte ich neulich Windows XP auf mein Lenovo R61 (8918 - DFG mit 2 GB flüchtigem Speicher). Dabei sind mir im Vergleich zu meiner Lieblingsdistribution Ubuntu einige Dinge aufgefallen, die ich hier kurz notieren möchte. Selbstverständlich betreibe ich parallel dazu eine Zweitinstallation mit Ubuntu; ich will mich ja nicht selbst verstümmeln ;-)

Dazu habe ich eine kleine Grafik erstellt, welche die meiner Meinung nach wichtigsten Beurteilungspunkte abbildet. Es ist eine persönliche Beurteilung, die einer objektiven Betrachtung nicht standhalten muss.

Vergleich Windows XP - Ubuntu 8.10

Installation

Am meisten aufgefallen ist mir die Installation eines Windows XP inklusive Service Pack 2. Damit ich alle Anwendungen, die ich benötige, plus die erforderlichen Treiber und ein paar Erweiterungen zur Verfügung hatte, brauchte ich satte acht Stunden! Mit dabei ist allerdings die gesamte Patcherei und das Einspielen des Service Packs 3 für XP. Trotzdem: Das ist deutlich zu lange und viel zu aufwändig, mindesten für meinen Geschmack. Denn schliesslich brauche ich auf der Anwendungssseite bloss das Office 2003, Visio 2003, Paint Shop Pro, ein Sonic Wall VPN Client und Kleinigkeiten wie den Firefox, KeePass und ähnliches. Also plus-minus eine Standard-Installation. Sehr zeitaufwändig ist das Herunterladen und Installieren der ThinkVantage-Komponenten.

Dazu steht im Gegensatz eine Ubuntu-Installation mit allen nötigen Applikationen inklusive einer virtuellen Windows-Instanz über VirtualBox, die gerade mal gute zwei Stunden dauert. Was also die Installation betrifft, erachte ich Windows als Katastrophe und Ubuntu als lieblicher Spass. Diese Aussage ist natürlich persönlich gefärbt, versteht sich. Windows bekommt einen von maximal drei Punkten, Ubuntu deren drei.

Hardware-Erkennung

Bei der Hardware-Erkennung sieht es leicht anders aus. Windows XP erkennt zwar von Haus aus nicht sehr viel, nach dem Nachliefern der nötigen Treiber allerdings alle Komponenten; also auch den Fingerprint-Teil. Mit Ubuntu kann ich jenes Teil nicht nutzen, dagegen alle andern Hardware-Teile bis auf die Spezialtasten; und zwar direkt nach der Installation. Windows schneidet trotzdem gesamthaft gesehen besser ab; deswegen drei Punkte für das OS aus Redmond und zwei für Ubuntu.

Arbeitsgeschwindigkeit

Damit meine ich nicht meine Arbeitsgeschwindigkeit, die steht ausserhalb meiner Beurteilung ;-) Sondern ich denke da an die Geschwindigkeit des Rechners je nach verwendetem OS. Windows arbeitet recht flott und sauber, braucht aber lange beim Booten und nach dem Anmelden, bis alle Komponenten geladen sind. Ubuntu bootet schneller und braucht auch nach dem Login keine Minute, bis alles bereit ist. Generell erlebe ich Ubuntu als schneller im Betrieb als Windows. Deswegen bekommt Windows zwei Punkte, Ubuntu drei.

Komfort

Damit beurteile ich das “allgemeine Arbeiten” am Rechner, auch das “Anstöpseln” von zusätzlicher Hardware. Da ist Windows deutlich besser, nicht zuletzt auch deshalb, weil diverse Hersteller (beispielsweise Sony Ericsson oder Sonicwall) entweder gar keine Software unter Linux anbieten, oder für Windows die bessere Variante haben. Es ist also nicht unbedingt eine Beurteilung des Betriebssystems, sondern auch eine Schau der Applikationen. So gesehen beurteile ich Windows XP als komfortabler im Nutzen als Ubuntu. Weiter stellte ich fest, dass Windows offenbar die “griffigere” Akkuverwaltung nutzt, denn während Ubuntu maximal während 100 Minuten im Akku-Dauer-Betrieb läuft, schafft es Windows während 150 Minuten. Windows bekommt von mir in diesem Bereich drei Punkte, Ubuntu zwei.

Sicherheit

Das ist ein schwieriges Thema. Ich bin kein Experte und gebe daher nur sehr bescheiden wieder, was ich beurteile. Auch heute lässt sich ein XP recht sicher betreiben, wenn alle Updates immer sauber gefahren werden (und die allenfalls erneut geflickt werden) und ein leistungsfähiger und moderner Viren- und Malwarescanner vorhanden ist. Ich nutze dazu Kaspersky. Ebenfalls setze ich eine physische Firewall voraus, die einigermassen sinnreich konfiguriert ist. Unter Ubuntu sollte man zwar die Updates ebenfalls regelmässig fahren, ein Virenscanner ist aber für den eigenen Schutz nicht notwendig. Grundsätzlich meine ich, dass man unter Windows aktiver für die Sicherheit etwas tun muss, als unter Ubuntu. Deswegen vergebe ich Windows zwei Punkte und Ubuntu drei.

Kompatibilität

Damit meine ich die Möglichkeiten, mit der Aussenwelt zu kommunizieren und Dokumente auszutauschen. Bei beiden Varianten sehe ich heute keine nennenswerten Schwierigkeiten mehr. Sowohl unter Windows wie unter Ubuntu lassen sich Daten (Office-Dateien etc.) bis auf wenige Ausnahmen problemlos austauschen und auf dem jeweiligen System weiterverarbeiten. Beide Motoren bekommen deswegen drei Punkte.

Gesamtbeurteilung

Windows erhält 14 Punkte, Ubuntu 16. Damit ist der Sieger erkoren; mindestens für mich. Doch etwas ist mir klar geworden: Windows ist nicht das schlechteste OS, leider nur das meistgenutzte und damit auch dasjenige, das am häufigsten angegriffen wird. Aber es bietet durchaus Vorteile, auch im privaten Bereich. Aber viele Hersteller ignorieren bis heute, dass es auch noch Macianer und Linux-Menschen gibt. Sonicwall ist ein solcher Kandidat. Zwar bietet das Unternehmen im Bereich SSL-VPN mittlerweile Software für Linux und Mac an, aber einen Clienten für VPN gibt es seit ewigen Zeiten nicht für Linux, wird es wohl ach nie geben. Ebenso VMWare, dort gibt es noch immer keinen VMware Infrastructure-Client für Linux.

Eigentlich sollte ich aufhören, über Windows herzuziehen, sondern viel eher dessen Vorteile nutzen. Das bringt allen mehr, finde ich. Dabei darf ich ja trotzdem meinen Favoriten, das liebliche Ubuntu, pflegen und Windows dort einsetzen, wo ich es für sinnreich erachte. Glaubenskriege bringen nichts; auch im digitalen Bereich nicht.

Ähnliche Artikel

16. Februar 2009

OpenSSHDer normale Ablauf sich per ssh einzuloggen besteht darin den Befehl abzusetzen und danach den Benutzernamen und das Passwort einzugeben. Das heißt die Verbindung ist immer interaktiv und schliesst damit das Benutzen von scp zeitgesteuert aus. Mit Hilfe von ssh keys kann man das Problem aber lösen.

Hier eine kleine Anleitung mit folgendem Szenario: Ich möchte mich von meinem Notebook auf meinen Server mit Hilfe von ssh keys einloggen:

Notebook
Auf meinem Notebook erzeuge ich mit folgendem Befehl 2 Schlüssel (privat & öffentlich):

ssh-keygen -t rsa

Das Programm fordert nun eine Passworteingabe, die man einfach mit Enter 2x bestätigt, denn sonst muß man später wieder beim Verbindungsaufbau das Passwort eingeben. Danach befinden sich im Verzeichnis ~/.ssh/ 2 Dateien:

  • id_rsa privater Schlüssel
  • id_rsa.pub öffentlicher Schlüssel

Damit wäre die Arbeit auf meinem Notebook erledigt.

Server
Ich kopiere jetzt die Datei id_rsa.pub auf meinen Server in das Verzeichnis ~/.ssh/ und füge den Schlüssel mithilfe folgendem Befehls der Datei authorized_keys hinzu:

cat id_rsa.pub>>~/.ssh/authorized_keys

Dann versichere ich mich, dass die Datei mir (Benutzer) und meiner Gruppe gehört (bei Kubuntu) hoergen:hoergen (chown). Und schließlich muss die Datei die Rechte 0600 haben.

chmod 0600 ~/.ssh/authorized_keys

Beim nächsten Login werde ich dann nicht mehr nach meinem Passwort gefragt.

Dank gebührt dem Madeagle Kollektiv für die erneute Erinnerung.

Nachtrag: Wenn der Dateitransfer abbricht, üblicherweise bei 80%-90%, kann man leider mit scp kein resume (kein Fortsetzen) des Transfers anstossen. Man müßte die Datei komplett neu übertragen. Eine Lösung wäre der Einsatz eines ssh getunnelten rsync:

rsync –partial –progress –rsh=ssh {source} {destiantion}

Weiterer Nachtrag: Im Netz doch noch ein Script gefunden, das mit einem reinen ssh ohne den Einsatz von rsync ein resume macht:

#!/bin/sh
# Frequently used functions:
# $Id: functions.sh 57 2004-08-07 17:34:19Z taal $

debug() {
level=${1:-"0"}
msg="$2"
if [ "$DEBUG" -ge "$level" ]; then
echo "debug($level): [$msg]"
fi
}

remove_pattern() {
string="$1"
pattern="$2"
var="$3"
result=`echo "$string" | sed -e "s/${pattern}//g"`
eval ${var}=\"$result\"
}

debug_vars() {
for var in "$@"; do
eval contents=\$${var}
echo -n "${var} = [$contents], "
done
echo
}


konsole_title() {
CURDIR=$(pwd | sed -e 's#\(/[^\/]*/[^\/]*\)/.*/\([^\/]*/[^\/]*\)\$#\1...\2#g'); # Prepare nice directory
if [ -n "$SSH_CLIENT" -o -n "$KONSOLE_DCOP" ]; then # If we are in konsole or ssh
echo -e "\e]0; ::: $@ ::: | ${USER} @ ${HOSTNAME} | $CURDIR | \a"; # Set konsole window title
fi
"$@"
}

usage()
{
echo
echo "Usage: `basename $0` -u(pload) \$localfile \$remotefile"
echo " `basename $0` -d(ownload) \$remotefile \$localfile"
echo
echo " \$remotefile should be in the scp format, i.e.: user@host:filename"
echo " and can be user@host: for uploading"
echo
exit 1
}

[ -z "$1" -o -z "$2" -o -z "$3" ] && usage

option=$1
case $option in
-u*|-U*)
localfile=$2
remote=$3

remove_pattern "${remote}" ":.*$" userhost
remove_pattern "${remote}" "^.*:" remotefile

if [ ! -f "$localfile" ]; then
echo "File not found: $localfile"
usage
fi
if [ x"$userhost" = x"$remote" ]; then usage; fi
if [ x"$remotefile" = x"$remote" -o -z "$remotefile" ]; then remotefile=`basename "$localfile"`; fi


echo "Getting size of remote file:"
localsize=`ls -l "${localfile}" | awk '{ print $5 }'`
remotesize=`ssh "$userhost" "[ -f \"${remotefile}\" ] && ls -l \"${remotefile}\"" | awk '{ print $5 }' `

if [ -z "$remotesize" ]; then remotesize=0; fi

if [ $localsize -eq $remotesize ]; then
echo "Local size equals remote size, nothing to transfer."
exit 0;
fi

echo "Resuming upload of '$localfile' at byte $remotesize..."

dd bs=1 skip=$remotesize "if=${localfile}" | \
ssh -C -c arcfour "$userhost" "cat >> \"$remotefile\""

echo "done."
;;
-d*|-D*)
localfile=$3
remote=$2

remove_pattern "${remote}" ":.*$" userhost
remove_pattern "${remote}" "^.*:" remotefile

debug_var localfile remote userhost remotefile

if [ x"$localfile" = x"." ]; then localfile=`basename "$remotefile"`; fi
if [ ! -f "$localfile" ]; then
localsize=0;
else
localsize=`ls -l "${localfile}" | awk '{ print $5 }'`
fi
if [ x"$remotefile" = x"$remote" ]; then usage; fi


if [ -z "$localsize" ]; then localsize=0; fi

echo "Resuming download of '$localfile' at byte $localsize..."
ssh -C -c arcfour "$userhost" "dd bs=1 skip=$localsize \"if=${remotefile}\"" >> $localfile

;;
*)
usage
;;
esac

Für ein kleines Programmierprojekt muss ich in C++ eine Eingabe überprüfen, ob wirklich nur ganze Zahlen, oder etwa andere Zeichen eingegeben wurden. Ich dachte da an dieses kleine Stück Quellcode:

#include <iostream>
using namespace std;
 
int main(){
 
        int zahl = 0;
        char zeichen[20];
        cout<<"Bitte Zahl eingeben: ";
        cin>>zeichen;
 
        while (!(sscanf(zeichen, "%d", &zahl))) {
        	cout<<"\nUngültige Eingabe. \nBitte nur Zahlen eingeben: ";
        	cin>>zeichen;
		}
            cout<<zahl<< " ist eine Zahl"<<endl;
 
}
Nur leider zeigt dieser Code-Schnipsel bei größeren ganzen Zahlen nur noch die Zahl 2147483647 an, was genau dem obersten Wertebereich des Datentyps int entspricht. Eine Zahl die größer ist, kann das Programm nicht anzeigen:

<em>Diese Zahl kommt einem bekannt vor...</em>Diese Zahl kommt einem bekannt vor..." title="istzahl1" width="524" height="375" class="size-full wp-image-1716" />

Diese Zahl kommt einem bekannt vor...

Da ich aber mit Eingaben rechnen muss, die mehr als zehn Stellen haben können, hilft mir dieses Code-Beispiel nicht weiter. Daher habe ich eine eigene Funktion istZahl() geschrieben:

#include <iostream>
#include <cstring>
using namespace std;
 
int istZahl(char zahl[10]){
	int laenge=strlen(zahl);
	for(int i=0; i<laenge; i++)
        if ( !((int)zahl[i] > 47 && zahl[i] < 58)){
		return false;
		}
	return true;
	}
 
int main(){
	char a[20];
	cout<<"Bitte eine Zahl eingeben: ";
	cin.getline(a,20);
 
	while (istZahl(a)==false){
	cout<<"\nUngültige Eingabe. \nBitte nur Zahlen eingeben: ";
	cin.getline(a,20);
}
	cout<<a<<" ist eine Zahl."<<endl;
 
	return 0;
 
}
Hier kann eine ganze Zahl mit bis zu 19 Stellen eingegeben werden, da die 20. Stelle für die Endekennung \0 benötigt wird. Alle Stellen, die darüber hinausgehen, werden einfach abgeschnitten. Sollte das nicht reichen, kann man den Wert im Quellcode noch erhöhen.

So würde ich es machen, aber vielleicht gibt es ja noch schönere Lösungen?

[Update] Wie man an den Kommentaren vielleicht schon sieht, geht die Funktion noch schöner und hat Dank Stefan den neuen Namen istZiffer():

#include <iostream>
#include <cstring>
using namespace std;
const int MAX=5;
 
bool istZiffer(char ziffer[MAX]){
	int laenge=strlen(ziffer);
	for(int i=0; i<laenge; i++)
        if (!(ziffer[i] >= '0' && ziffer[i] <= '9')) 
        // if (! isdigit (ziffer[i]))
        {
		return false;
		}
	return true;
	}
 
int main(){
	char a[MAX];
 
	do 
	{
		cout<<"Bitte Ziffern eingeben: ";
		cin.getline(a,MAX);
 
    }while (istZiffer(a)==false);
 
	cout<<a<<" ist eine Zahl."<<endl;
 
	return 0;
 
}
Das funktioniert soweit ganz gut, bis auf ein oder zwei Schönheitsfehler:

  1. Wenn ich im obigen Beispiel istZiffer() mehr als 4 Ziffern eingebe, wird alles was danach kommt einfach abgeschnitten, was aber für meine Bedürfnisse nicht weiter schlimm ist.
  2. Gebe ich aber z.B. mehr als vier Buchstaben ein, habe ich einen nervigen Programmabbruch, den ich noch nicht ganz weg bekomme.
  3. Wie dee schon sagt: Die Enter-Taste wird von der Funktion wie eine Ziffer behandelt, was ich auch noch ändern muss.


Aber Dank der vielen guten Kommentare ist die Funktion schon viel besser geworden. ;-)

Bücher zu C++