Daten|teiler
Kopieren als Kulturtechnik

Ganz nett, aber mit vielen Schwächen — das iPhone 3G

27. Februar 2009 von Christian Imhorst

In einem Anfall von weiß ich nicht mehr warum habe ich mir von T-Mobile ein iPhone 3G als neues Handy schicken lassen. Preislich und vom Vertrag her gesehen kam es von den Handys, die mich interessiert haben, doch noch am günstigsten. Dabei war mir im Prinzip schon klar, dass ich als Linux-User schnell an die Grenzen des kleinen Smartphones stoßen werde. Das beginnt schon mit der Aktivierung; Dazu braucht man unbedingt iTunes, weil das iPhone komplett mit diesem Programm verheiratet ist.

Den restlichen Eintrag lesen »

Geschrieben in MacOS X und iPhone | Kommentare deaktiviert für Ganz nett, aber mit vielen Schwächen — das iPhone 3G

Die Funktion istZahl in C++

16. Februar 2009 von Christian Imhorst

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...

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. ;-)

Geschrieben in Programmieren | Kommentare deaktiviert für Die Funktion istZahl in C++

freiesMagazin 02/2009 erschienen

1. Februar 2009 von Christian Imhorst

Heute ist die Februarausgabe von freiesMagazin als KDE-Sonderausgabe erschienen. Falls man hinter einer Firewall sitzt, die FTP nicht zulässt, ist das Magazin auch per HTTP-Zugriff auf das FTP-Verzeichnis zu erreichen.

Auch diesen Monat gibt es wieder eine HTML-Ausgabe für Mobilgeräte ohne Bilder und mit Bildern (ca. 2,1 MB). Unter der Adresse http://freiesmagazin.de/mobil/ findet man immer die aktuelle und alle bisher erschienenen Mobil-Ausgaben.

Inhalte der Ausgabe 02/2009 sind u.a.

  • KDE4 wird erwachsen
  • KWin 4.2 – Neues aus dem Land der wabernden Fenster
  • Der KDE-Dateimanager Dolphin
  • Amarok 2: Der Wolf setzt zum Sprung an
  • Eine kleine Einführung in KDevelop
  • Scannen mit Skanlite
  • Die digitale Brieftasche: KWallet

Das vollständige Inhaltsverzeichnis findet man auf der Webseite der aktuellen Ausgabe. Leserbriefe mit Lob, Kritik, Anregungen oder Fragen können an die Redaktion geschickt werden.

Von mir ist übrigens der Artikel „Eine kleine Einführung in KDevelop“. Ich wünsche viel Spaß beim Lesen.

Geschrieben in freiesMagazin | Kommentare deaktiviert für freiesMagazin 02/2009 erschienen

Suspend-Ärger nach Kernel-Update

29. Januar 2009 von Christian Imhorst

Nachdem heute die neue Kernel-Version 2.6.27-11-generic über das automatische Update bei Ubuntu 8.10 aufgespielt wurde, klappt der Suspend bei meinem Acer Aspire 2920 nicht mehr. Die Bereitschaft verhält sich wieder genauso, wie unter Ubuntu 8.04 „Hardy Heron“. Das Notebook legt sich zwar schlafen, wacht aber nicht mehr auf. Stattdessen stürzt es ab und muss nochmal komplett neu gestartet werden. Das hat mit Intrepid Ibex auch schon besser funktioniert.

Den restlichen Eintrag lesen »

Geschrieben in Gnu/Linux | Kommentare deaktiviert für Suspend-Ärger nach Kernel-Update

Wie installiere ich MonoDevelop?

27. Januar 2009 von Christian Imhorst

Keith Curtis hat in seinem Buch After The Software Wars ganz begeistert über C# berichtet, weshalb ich die Sprache unter Ubuntu 8.10 unbedingt einmal ausprobieren möchte. Da eine C#-Unterstützung erst für KDevelop 4 Zeit noch geplant ist, habe ich Mono und MonoDevelop installiert.

Den restlichen Eintrag lesen »

Geschrieben in Gnu/Linux, Programmieren | Kommentare deaktiviert für Wie installiere ich MonoDevelop?

freiesMagazin 01/2009 erschienen

4. Januar 2009 von Christian Imhorst

Heute ist die Januarausgabe von freiesMagazin erschienen. Falls man hinter einer Firewall sitzt, die FTP nicht zulässt, ist das Magazin auch per HTTP-Zugriff auf das FTP-Verzeichnis zu erreichen.

Auch diesen Monat gibt es wieder eine HTML-Ausgabe für Mobilgeräte ohne Bilder und mit Bildern (ca. 2,3 MB). Unter der Adresse http://freiesmagazin.de/mobil/ findet man immer die aktuelle und alle bisher erschienenen Mobil-Ausgaben.

Inhalte der Ausgabe 01/2009 sind u.a.

  • Installation und Einrichtung von Avant Window Navigator
  • Projektvorstellung Opera
  • Das neue „Sonnensystem“ – Ein Blick auf OpenSolaris 2008.11
  • Ubuntu 8.10 – Die neue Version „Intrepid Ibex“ vorgestellt
  • Die zehnte Fedora-Ausgabe vorgestellt

Zusätzlich hat freiesMagazin auch eine Umfrage gestartet und bittet alle Leser daran teilzunehmen.

Geschrieben in freiesMagazin | Kommentare deaktiviert für freiesMagazin 01/2009 erschienen

KDevelop will nicht kompilieren

2. Januar 2009 von Christian Imhorst

KDevelop will in Ubuntu 8.10 „Intrepid Ibex“ nicht so recht kompilieren. Selbst beim simpelsten „Hallo Welt“-Programm kommt eine Fehlermeldung wie diese:

../libtool: line 2237: X-O0: command not found
../libtool: line 2237: X-g3: command not found
../libtool: line 2406: Xtest2: command not found
X: user not authorized to run the X server, aborting.
../libtool: line 2418: Xtest2: command not found
../libtool: line 2426: mkdir /.libs: No such file or directory
mkdir: cannot create directory `/.libs': Permission denied
make: *** [test2] Error 1
*** Beendet mit Status: 2 ***

Das Problem liegt bei KDevelop 3.5.3 und Libtool, wobei letzteres zu den Autotools von GNU gehört. In Intrepid Ibex ist es in der Version 2.2.4 installiert, der source tree eines KDevelop-Projekts benutzt aber Libtool in der Version 1.5.24. Damit KDevelop die richtige Libtool-Version erzeugt, muss man das entsprechende Template austauschen. Der Einfachheit halber kopiert man dazu die Templates in das eigene Home-Verzeichnis. KDevelop sucht erstmal dort nach den Templates, bevor es die aus /usr/share benutzt.

cp -R /usr/share/apps/kdevappwizard/ $HOME/.kde/share/apps/

Danach muss man das Archiv

$HOME/.kde/share/apps/kdevappwizard/template-common/incadmin.tar.gz

entpacken und die alte Datei ltmain.sh durch die neuere in /usr/share/libtool/config/ltmain.sh ersetzen. Danach wird das Paket erneut geschnürt und wieder incadmin.tar.gz genannt. Das neue Archiv ersetzt dann das alte im Template-Ordner. Wenn man jetzt kompiliert, wird die Datei Libtool in der neuen Version erzeugt und es tauchen keine Fehlermeldungen mehr auf — zumindest solange der Quellcode korrekt ist.

Mein neues Archiv incadmin.tar.gz kann man hier herunterladen, wenn man es nicht selber zusammenstellen mag. Zu diesem Thema gab es auch einen Bug-Report bei Launchpad.

Geschrieben in Gnu/Linux | Kommentare deaktiviert für KDevelop will nicht kompilieren

Das kleine Scheitern – Warum man Linpus Linux nicht sinnvoll nutzen kann

7. Dezember 2008 von Christian Imhorst

Dieser Artikel ist erstmals erschienen im freiesMagazin 12/2008, das man als PDF herunterladen kann.

Linpus ist eine leichtgewichtige Linux-Distribution auf der Basis von Fedora. Nach eigenen Angaben [1] gehören sie mit zu den Big Playern im Open-Source-Geschäft und halten mehr als 80 Prozent des Marktanteils unter den Linux-Distributoren in Taiwan. Linpus finanziert sich hauptsächlich durch den Verkauf einer kostenpflichtigen Server-Variante, die man nicht herunterladen kann. Außerdem wird Linpus Linux von Herstellern wie Acer, Norhtec oder AIRIS zusammen mit ihren Netbooks verkauft.

Die kleine Schwester des Linpus Linux Desktops ist die Lite-Version für Ultra Mobile PCs (UMPCs) wie das Netbook Aspire One von Acer. Besonders durch das Aspire One verbreitet sich Linpus immer mehr auch in Deutschland. Allerdings unterscheiden sich Design und Software-Auswahl auf dem Netbook von der frei verfügbaren Variante. Wer die LiveCD einmal ausprobieren möchte, kann sie mittlerweile in annehmbarer Geschwindigkeit von der Linpus-Seite herunterladen [2]. Die Lite-Variante liegt zurzeit in der Version 9.4 vor und ihre besonderen Fähigkeiten wurden bereits in „Linpus Linux Lite – Ein Betriebssystem für mobile Computer“ in freiesMagazin 07/2008 [3] besprochen: Es gibt zwei Oberflächenmodi, einen einfachen und einen erweiterten Modus. Der einfache eignet sich sehr gut für kleine Bildschirme, wie sie zum Beispiel bei Netbooks vorkommen. Der erweiterte zeigt den schlanken Xfce-Desktop. Zusätzlich soll die leichtgewichtige Variante auf Festplatte installiert mit den Mindestanforderungen einer 366 Mhz CPU, 128 MB RAM und Festplattenplatz von ca. 512 MB auskommen. Auf einem frisch installiertem Linpus zeigt df -h allerdings 775 MB an [4].

Leider ist es nach der Installation auf Festplatte unter Linpus mühselig, an neue Programme zu kommen. Anders als bei der Version auf dem Aspire One, unter der man mit dem Paketmanager YUM bzw. durch seine grafische Oberfläche Pirut neue Software installieren oder das System upgraden kann, ist das beim installierten Linpus Lite nicht vorgesehen. Die Paketquellen für APT und Synaptic laufen ins Leere bzw. sind gar nicht vorhanden. Die Dateien mit den Repositories, man kann sie an der Endung .list erkennen, liegen direkt im Ordner /etc/apt anstatt unter /etc/apt/sources. list.d, wo sie hingehören. Anfangs war es noch müßig, die Dateien an die entsprechende Stelle zu kopieren, weil die Repositories nicht existierten. Seit Ende August 2008 gibt es sie zwar, sie sind aber leer. Man kann nur hoffen, dass Linpus diesen Zustand bald ändert. Der Paketmanager YUM ist gar nicht installiert. Da Linpus Linux bekanntlich ein angepasstes Fedora 8 ist, könnte man deren Repos nehmen. Dabei riskiert man allerdings nach dem Upgrade ein instabiles System mit unerfüllten Abhängigkeiten, besonders durch neue Pakete, die mit den bereits installierten älteren Versionen von Linpus in Konflikt stehen. Über den FTP-Server waren im Sommer 2008 noch angepasste RPM-Pakete erhältlich, die man nachträglich installieren konnte. Mittlerweile ist der FTP-Zugang mit einem Passwort geschützt. Nur die Quellpakete der Version für den Acer Aspire One sind noch erhätlich [5], können aber unter der installierten Lite-Version nicht kompiliert werden, weil das Paket rpm-build fehlt. Es lässt sich auch nicht manuell installieren, weil es eine Version für Linpus offiziell nicht gibt. Bei der Installation der Fedora-Version landet man in einer Abhängigkeitshölle [6].

Der große Bruder der Lite-CD ist Linpus Linux Desktop 9.6, der bei der frei herunterladbaren LiveCD eine GNOME-Oberfläche hat. Sehr neckisch ist übrigens der Desktop-Hintergrund, der mit fortschreitender Tageszeit wechselt und zwar in die Zustände Morgendämmerung, Vormittag, Mittag, Nachmittag, Abenddämmerung, Abend und Nacht. Außerdem lässt sich das System sehr leicht über den Starter „Install to Hard Drive“ auf dem Desktop und dem anschließenden Installationsprogramm auf die Festplatte installieren. Der Softwareumfang ist dagegen noch trauriger als bei der Lite-Version bzw. fast gar nicht vorhanden, da grundlegende Programme wie Browser, Office-Anwendungen und Grafikwerkzeuge komplett fehlen. Auch hier kann man die vermisste Software nicht so einfach nachinstallieren. Das Paketverwaltungsprogramm APT ist zwar wieder vorhanden, ebenso die grafische Oberfläche Synaptic, allerdings existieren keine Paketquellen für die Version 9.6. Da, wie gesagt, der FTP-Server mittlerweile passwortgeschützt ist, kann man auch hier nur auf Software von Fedora 8 zurückgreifen, um zum Beispiel einen Webbrowser wie Firefox 2 zu installieren [7].

Neue Software einfach nachzuinstallieren ist bei Linpus zur Zeit nicht vorgesehen, und das scheint sich in naher Zukunft auch nicht zu ändern. Damit ist die Distribution in der frei verfügbaren Variante für den alltäglichen Gebrauch leider absolut ungeeignet. Da das Unternehmen hinter Linpus eher auf OEM-Abkommen setzt, als eine offene Entwicklung zu betreiben, lässt sich die OEM-Version von Linpus Linux auf dem Acer Aspire One ein bisschen leichter handhaben, aber allzu groß sind die Unterschiede leider nicht.

Links

1. http://www.linpus.com/about.php
2. http://www.linpus.com/03_download_01.html
3. http://www.freiesmagazin.de/freiesMagazin-2008-07
4. http://www.imhorst.net/linpus-linux-lite-installieren/
5. http://ftp.twaren.net/Linux/Linpus/Aspire_One_Linpus_Linux/Aspire_One_Srpms/
6. http://www.imhorst.net/linpus-linux-lite-einrichten/
7. ftp://download.fedora.redhat.com/pub/fedora/linux/releases/8/Fedora/i386/os/Packages/

Geschrieben in freiesMagazin | Kommentare deaktiviert für Das kleine Scheitern – Warum man Linpus Linux nicht sinnvoll nutzen kann

freiesMagazin 12/2008 erschienen

7. Dezember 2008 von Christian Imhorst

Heute ist die Dezemberausgabe von freiesMagazin erschienen. Falls man hinter einer Firewall sitzt, die FTP nicht zulässt, ist das Magazin auch per HTTP-Zugriff auf das FTP-Verzeichnis zu erreichen.

Auch diesen Monat gibt es wieder eine HTML-Ausgabe für Mobilgeräte ohne Bilder und mit Bildern (ca. 1,1 MB). Unter der Adresse http://freiesmagazin.de/mobil/ findet man immer die aktuelle und alle bisher erschienenen Mobil-Ausgaben.

Inhalte der Ausgabe 12/2008 sind u.a.

  • Arch Linux auf dem Asus Eee PC 901
  • Die Ports-Sammlung unter FreeBSD/PC-BSD schnell und effektiv nutzen
  • Das Synchronisationstalent Dropbox
  • Der Linux-Screenreader Orca
  • Kurztipp: Free Icon-To-Speech sorgt für Kommunikation
  • Barrierearme Websites
  • Der humanitäre Gedanke hinter der Barrierefreiheit
  • Das kleine Scheitern – Warum man Linpus Linux nicht sinnvoll nutzen kann

Man merkt gleich, das diese Ausgabe mit dem Stichwort Barrierefreiheit ein Schwerpunktthema hat. Ein Artikel der mit Barrierefreiheit nichts zu tun hat ist von mir: Das kleine Scheitern – Warum man Linpus Linux nicht sinnvoll nutzen kann.

Viel Spaß beim Lesen des Magazins.

Geschrieben in freiesMagazin | Kommentare deaktiviert für freiesMagazin 12/2008 erschienen

Fedora 10 auf dem Acer Aspire 2920

7. Dezember 2008 von Christian Imhorst

Nach dem Release von Fedora Core 10 konnte ich nicht widerstehen, die Distro auf meinem Notebook Acer Aspire 2920 zu testen. Nachdem Ubuntu 8.10 Intrepid Ibex eine ganz gute Figur auf dem Subnotebook gemacht hat, kann Fedora eigentlich nicht sehr weit hinterher hinken. Mikrofon, WLAN, Webcam etc. funktionieren auch out of the box, doch leider gibt es einen kleinen Schönheitsfehler: Ruhezustand und Suspend (Bereitschaft) wollen nicht so recht.

Den restlichen Eintrag lesen »

Geschrieben in Gnu/Linux | Kommentare deaktiviert für Fedora 10 auf dem Acer Aspire 2920

« Previous Entries Next Entries »