Profil für Markus Tangens > Rezensionen

Persönliches Profil

Beiträge von Markus Tangens
Top-Rezensenten Rang: 70.675
Hilfreiche Bewertungen: 194

Richtlinien: Erfahren Sie mehr über die Regeln für "Meine Seite@Amazon.de".

Rezensionen verfasst von
Markus Tangens

Anzeigen:  
Seite: 1 | 2 | 3
pixel
CSL - 300 Mbit/s WLAN Stick mit Antennenbuchse und abnehmbarer Antenne, Wireless LAN, USB 2.0 Stick, Mini Dongle 802.11n/b/g, SMA Buchse 150 54, Windows 7 + Windows 8 + Windows 8.1 fähig, besonders hohe Reichweite
CSL - 300 Mbit/s WLAN Stick mit Antennenbuchse und abnehmbarer Antenne, Wireless LAN, USB 2.0 Stick, Mini Dongle 802.11n/b/g, SMA Buchse 150 54, Windows 7 + Windows 8 + Windows 8.1 fähig, besonders hohe Reichweite
Wird angeboten von CSL-Computer
Preis: EUR 11,99

1 von 1 Kunden fanden die folgende Rezension hilfreich
3.0 von 5 Sternen Schwieriges Verhältnis zu Ubuntu Linux 13.10, 7. Mai 2014
Verifizierter Kauf(Was ist das?)
Ich habe einen vier Jahre alten Laptop mit Lubuntu 13.10, bei dem kürzlich die interne Funknetzkarte ausgefallen ist. Nach einigen positiven Amazon-Erfahrungsberichten bei der Verwendung des Adapters unter Linux, war ich voller Hoffnung, dass ich die Fehlfunktion mit dem externen WLAN-USB-Adapter von CSL Computer ausgleichen könnte. Auch einschlägige WLAN-Linux-Erklärungsseiten wie jene von ubuntuusers.de versprechen, dass der verbaute Chipsatz Realtek RTL8191SU ab Ubuntu 12.04 direkt unterstützt werden sollte. Tut er aber nicht. Nach Einstecken des WLAN-USB-Adapters bleibt die LED am Adapter dunkel und der Lubuntu-Desktop weiß nichts von Funknetzwerken.

Weiter bin ich so vorgegangen:

1. Ich habe versucht, den Originaltreiber von der mitgelieferten CD zu übersetzen. Das scheiterte daran, dass unter anderem eine Funktion namens "daemonize" im Kernel 3.11 von Ubuntu 13.10 nicht mehr existiert, wie ich verschiedenen Foren entnehmen konnte.

2. Ich habe mich bei [....] nach einem neueren Treiber umgesehen. Der letzte stammt aber von Mai 2012.

3. Verschiedene Versuche, irgendwelche Kernelmodule zu laden oder die Geräte-ID einem Treiber zuzuordnen oder Firmware-Bin-Dateien in irgendwelchen Verzeichnissen abzulegen, brachten keinen Erfolg.

4. Letzter Versuch war die Nutzung des Windows-XP-Treibers mit Hilfe des Ndiswrappers. Damit konnte ich tatsächlich eine Verbindung aufbauen. Allerdings muss ich zu Beginn den Adapter erst neu einstecken, damit er angenommen wird. Außerdem zickt jetzt der Rechner hin und wieder herum: Er friert manchmal ein, wenn man auf dem Lubuntu-Desktop das Funknetzwerk aktivieren will und beim Herunterfahren bleibt mitunter der Rechner hängen, schaltet sich also insbesondere nicht automatisch aus.

Mein Fazit: Nichts für den Durchschnittsbenutzer unter Linux.
Kommentar Kommentar (1) | Kommentar als Link | Neuester Kommentar: May 8, 2014 1:43 PM MEST


Die Entdeckung der Faulheit: Von der Kunst, bei der Arbeit möglichst wenig zu tun
Die Entdeckung der Faulheit: Von der Kunst, bei der Arbeit möglichst wenig zu tun
von Corinne Maier
  Taschenbuch

3.0 von 5 Sternen zutreffend, aber langweilig, 1. Februar 2014
Verifizierter Kauf(Was ist das?)
Ich hatte in dem Buch ausgefallene Tipps erwartet, wie man sich auf Arbeit um die Arbeit drückt, ohne aufzufallen, oder wenigstens ein paar Anekdoten aus dem frustrierenden Angestelltendasein in einem großen Konzern. Nichts von beidem findet man in diesem Buch. Es ist eine Aneinanderreihung allgeheimgehaltener Schilderungen vom traurigen Zustand eines Großunternehmens, sicher zutreffend, aber wenig lesenswert. Am interessantesten fand ich noch den Hinweis auf die Affäre "avions renifleurs". Ansonsten halte ich mich lieber an das häufig im Buch erwähnte Dilbert-Prinzip.


Haskell-Intensivkurs: Ein Kompakter Einstieg in die Funktionale Programmierung (Xpert.press) (German Edition)
Haskell-Intensivkurs: Ein Kompakter Einstieg in die Funktionale Programmierung (Xpert.press) (German Edition)
von Marco Block
  Taschenbuch
Preis: EUR 37,99

1 von 2 Kunden fanden die folgende Rezension hilfreich
2.0 von 5 Sternen Haskell - intensiv nachbessern bitte!, 31. Januar 2014
Ich habe selbst Erfahrungen mit Haskell-Programmierung und suche ein Buch, das ich Studenten in die Hand drücken kann. Es gibt zahlreiche Lobpreisungen von Haskell in deutscher Sprache in Zeitschriftenartikeln und im Internet, aber häufig schlage ich die Hände über dem Kopf zusammen, weil die vorgestellten Lösungen reichlich umständlich, manchmal sogar falsch sind und die Argumente für Haskell am Kern der Sache vorbeigehen. Hebt sich dieses Buch positiv von anderen Beiträgen ab?

Eine Rezension von Einführung in die Programmierung mit Haskell bemängelt, dass jenes Buch kein Wort über Monaden enthält, während für das vorliegende Buch eine Rezension die Einführung in Monaden lobt. Weil Monade in Haskell mit vielen Irrtümern belastet sind, (siehe: "What a Monad is not" in der Haskell-Wiki) werde ich mir also genau das Kapitel über Monaden genauer anschauen.

Das Kapitel 17 über Monade beginnt auf Seite 210. Auf Seite 211 gibt es bereits den ersten Fehler: In der Implementierung von "h" sind in der Verkettung "gMit ++ fMit" die Operanden vertauscht, die Texte werden also entgegen der chronologischen Reihenfolge zusammengesetzt, was auch der später gezeigten allgemeinen Implementierung des Writer-Monads widerspricht. Auf Seite 212 sieht man in der Ausgabe von "h 5" ein fehlendes Leerzeichen zwischen dem Punkt und "fertig". D.h. den darüber dargestellten Programmteil haben die Autoren offenbar so nicht ausgeführt. Als nächstes werden Zufallszahlen im Modul "Data.Random" verortet, tatsächlich muss man sie aber von "System.Random" importieren.

Auf Seite 215 werden für Abschnitt 17.3.2 durch die Überschrift Umwandlungsregeln für if-then-else innerhalb der do-Notation in Aussicht gestellt. Der Abschnitt zeigt aber keinerlei solche Umwandlung, er weist nur darauf hin, dass die Then- und Else-Zweige ggf. eigene do-Schlüsselwörter benötigen. Das ist aber keine Besonderheit der if-then-else-Syntax, sondern trifft auch auf alle Funktionen zu, beispielsweise "ifThenElse" oder "when". Tatsächlich zeigt das Beispiel aber eine andere Besonderheit:

if p then do
..anweisung2
..anweisung3
else do
..anweisung4
..anweisung5

Wenn in einem do-Block eine Zeile in der ersten Spalte des Blockes beginnt, so wertet der Haskell-Übersetzer dies normalerweise als neue monadische Aktion, und fügt ein (>>) oder (>>=) ein. In dem Beispiel beginnt eine Zeile allerdings mit "else" und dieses wird trotz genannter Regel dem vorangehenden "if" zugeordnet. Dies ist eine syntaktische Ausnahme, um eine Einrückung zu ermöglichen, die viele Programmierer aus imperativen Sprachen gewohnt sind. Siehe Artikel DoAndIfThenElse in der GHC-Wiki.

Persönlich finde ich das überflüssig, weil ich aus Symmetriegründen den Then- und Else-Teil gleich einrücken würde:

if p
..then do
....anweisung2
....anweisung3
..else do
....anweisung4
....anweisung5

Darüber hinaus halte ich eine spezielle Syntax für if-then-else überflüssig, weil es auch die Standardfunktion ifThenElse gibt. Zuletzt weisen die Autoren darauf hin, dass man den Else-Teil nicht weglassen darf. An dieser Stelle könnten sie den Leser darauf hinweisen, dass es die Funktion 'when' gibt, bei der man genau das darf. Meine Meinung: Wenn man gleich die Funktion ifThenElse verwendet, dann ist es klarer, dass der Else-Teil immer dazu gehört, und der Wechsel von einer Funktion "ifThenElse" zu einer Funktion "when" erscheint mir auch leichter zu sein, als ein Wechsel von einer speziellen Syntax (if-then-else) zu einer regulären Funktion (when).

Weiter geht es auf Seite 219 mit dem Reader-Monad. Ich musste mich zuerst durch das Programm arbeiten, um überhaupt zu verstehen, welches Problem die Autoren lösen wollen. Anscheinend betrachten die Autoren "Magenta" als eine Farbnuance von "Rot" und "Cyan" als eine Nuance von "Gruen". Aus irgendeinem Grund wollen sie eine Liste von Texten einlesen, in welchen sich Namen von Grundfarben und Namen von Nuancen abwechseln, und daraus eine Liste machen, in der diese Zuordnung sozusagen maschinenverständlich aufbereitet ist. Was die Motivation für so eine Aufgabe sein könnte, erschließt sich mir zunächst nicht.

Die Implementierung ist ebenso merkwürdig wie die Aufgabenstellung. Mir sticht sofort ins Auge, dass die Funktion liesFarben erstens nicht total ist, sie zweitens zwei Funktionen "rot" und "gruen" aufruft, die nahezu gleich sind, und drittens sich viel einfacher mit einem mapM implementieren lässt. Ersteres bedeutet, dass der Funktionswert undefiniert ist, wenn eine andere Farbe als "Rot" und "Gruen" gelesen wird. Wenn man sich Warnungen ausgeben lässt, so warnt ein Haskell-Übersetzer in der Regel vor unvollständigen Fallunterscheidungen wie dieser. Auf diese Problematik sollte der Text wenigstens hinweisen. Zweiteres heißt, dass ohne Not redundanter Programmtext geschrieben wird. Beide Funktionen unterscheiden sich nur darin, welcher Farbe-Konstruktor verwendet wird. Man hätte es viel einfacher haben können, indem man "rot" und "gruen" zusammenfasst zu

sucheFarbe :: [String] -> Reader Woerterbuch (Int, [String])

und dann die Konstruktoren Rot und Gruen erst in den Fallbehandlungen von liesFarben anwendet. Aber auch das ist noch sehr umständlich. Das "rest"-Argument in "rot" und "gruen" wird nämlich gar nicht verarbeitet, sondern nur durchgereicht. Also würde es auch ein

sucheFarbe :: String -> Reader Woerterbuch Int

tun. Eine Fallbehandlung von liesFarben sieht dann nur noch so aus:

liesFarben ("Rot":nuance:rest) = do
..nuanceInt <- sucheFarbe nuance
..erg <- liesFarben rest
..return (Rot nuanceInt : erg)

Aber auch das ist alles noch sehr umständlich, weil drittens eigentlich ein mapM geboten ist. Ich würde so vorgehen: Zuerst schreibe ich eine Funktion, welche eine Liste in Paare benachbarter Elemente zerlegt:

pairs :: [a] -> [(a,a)]

Dann schreibe ich eine Funktion liesFarbe, die sich mit genau einer Farbe und ihrer Nuance beschäftigt:

liesFarbe :: (String, String) -> Reader Woerterbuch Farbe
liesFarbe (farbe, nuance) =
..fmap (case farbe of "Rot" -> Rot; "Gruen" -> Gruen) $
..sucheFarbe nuance

Zum Schluss setze ich zusammen:

liesFarben = mapM liesFarbe . pairs

Die Autoren entschuldigen sich am Ende des Abschnittes mit dem Satz:
"Da wir unser Beispiel einfach gehalten haben, um die Konzepte zu verdeutlichen, erfordert es ein wenig Phantasie, den Vorteil der Verwendung der Monade zu sehen."

Wenn sie ihr Beispiel wirklich einfach gehalten hätten, so wie ich es gezeigt habe, dann hätten sie auch die Vorteile von Monaden demonstrieren können. Im Englischen nennen es die Haskell-Freunde "separation of concerns", zu deutsch etwa: "immer nur eine Sache auf einmal erledigen". Ich denke, ich habe das ganz gut gezeigt: Eine Handvoll einfach zu verstehende Funktionen wie "pairs" und "liesFarbe" lassen sich mit ebenfalls gut verständlichen Kombinatoren wie "mapM" und "." zu etwas Großem zusammensetzen.

Im übrigen sehe ich auch in real verwendeten Haskell-Paketen häufig Code, in dem auf umständliche Weise Funktionen wie "map" oder "mapM" mit Anwendungscode vermengt werden. Es wäre wirklich nötig in einem Lehrbuch mit gutem Beispiel voranzugehen.

Kommen wir zum Zustandsmonad auf Seite 220. Auch hier versuchen die Autoren ein neues Konzept anhand eines unklaren Beispiels einzuführen. Es geht um einen Getränkeautomaten. Aber was soll dieser Getränkeautomat genau tun? Erst im Verlaufe des Programmes beginne ich zu erahnen, dass der Automat nicht mit Euro bezahlt wird, sondern man eine Geldeinheit pro Flasche entrichten muss. Diese Vereinfachung finde ich sinnvoll, aber keineswegs selbstverständlich. Ein Hinweis darauf muss mir entgangen sein. Der Zustandsgraph in Abbildung 17.1 zeigt drei Zustände 0, 1, 2, welche im Datentyp Automat als Int deklariert sind, bei denen mir aber nicht klar ist, was sie bedeuten. Die Autoren wären gut beraten, für die Zustände einen Aufzählungstypen mit aussagekräftigen Namen zu verwenden, ähnlich dem Typ "Aktion". Auch beim Typ "Aktion" ist mir allerdings nicht klar, was die Aktionen "Flasche" und "Entnehmen" bedeuten. Bei der Aktion "Geld" tippe ich auf den Einwurf einer Geldeinheit. Im Programm ist es möglich mit den Aktionen "Geld" und "Entnehmen" vom Zustand 2 in den Zustand 1 zu gelangen. Diese Kante fehlt in der Abbildung. Mich beschleicht der Verdacht, dass das Programm eigentlich gar keiner Unterscheidung von Zuständen bedarf. Kann man nicht einfach zwei Zähler verwenden: Einer für die eingeworfene Geldmenge und einer für den Umfang des Vorrates an Flaschen? Geldeinwurf erhöht den Geldzähler und Auswurf einer Flasche erniedrigt den Geldzähler und den Vorratszähler. Indem die Autoren die Zustände einfach durchnumeriert haben, haben sie sich schön um eine Klärung ihrer Bedeutung herumgedrückt. Deswegen könnte es gut sein, dass es eigentlich nur einen Zustand gibt, nämlich "Automat funktioniert".

So wirr wie die Aufgabenstellung sieht auch die Implementierung aus. Sie besteht aus der Funktion mit dem Typen

automat :: [Aktion] -> State Automat [String]

und Sie ahnen es schon, auch diese Funktion lässt sich im Wesentlichen als mapM schreiben. Stattdessen vermengen die Autoren die Fallunterscheidung zum Listenskelett mit der Fallunterscheidung zur Aktion, wobei die Aktionen "Geld" und "Flaschen" mit eigenen Funktionen implementiert sind, aber "Entnehmen" direkt in "automat" behandelt wird. Das Hin- und Herspringen zwischen "automat", "geld" und "flaschen" erinnert mich stark an das lange überwunden geglaubte GOTO. Beim Fall "Entnehmen" habe ich wieder zu bekritteln, dass mit "error" die Funktion nicht total ist und weiterhin wundere ich mich über das umständliche "case (guthaben z) of n | n==0 -> ..." welches man doch eher als "case guthaben z of 0 -> ..." schreiben würde.

Zum Schluss scheitert man daran, das Beispiel auszuführen, denn auf Seite 222 ist die Hugs-Eingabezeile so formatiert, dass man das zweite Argument von "runState" für die Ausgabe von Hugs halten muss. Die Einrückung für "Entnehmen" ist nett gemeint, aber Anfänger bekommen leicht den Eindruck, dass man das so einrücken müsste, insbesondere weil man ihnen zuvor gesagt hat, dass Einrückungen in Haskell eine Bedeutung haben. Es wäre sicher sinnvoller gewesen, zur Erzeugung eines Anfangszustandes eine Funktion zu programmieren, dann hätte der gesamte runState-Aufruf in zwei Eingabezeilen gepasst. Im übrigen hatte ich hinter dem Namen "automat" eher eine Funktion erwartet, die einen Automat-Datenverbund erzeugt. Die im Buch gezeigte Funktion hätte ich eher "ausfuehren" genannt.

Als letztes kommt der Listenmonad ab Seite 222. Dort wird eine Funktion vorgestellt, die alle Permutationen einer Liste aufzählt - selbstverständlich mit dem typischen Anfängerfehler, die Funktion "delete" zu verwenden. In der Haskell-Wiki wird unter "Haskell programming tips" fast genau dieses Beispiel behandelt und die Funktion "removeEach" vorgeschlagen, mit welcher man Permutationen ohne die Typbeschränkung "Eq" berechnen kann. Überdies funktioniert "removeEach" auch beim Auftreten von Elementen, die bezüglich (==) gleich sind.

Die Funktion slowSort ließe sich sehr knapp implementieren als "filter istSortiert . perm". Die Autoren ziehen jedoch eine mehrzeilige Lösung im Listenmonad vor, weil nunmal der Listenmonad gerade das Thema ist.

Das zum Thema Monade. Ansonsten habe ich zu bemängeln, dass in dem Buch Programmierfehler und Ausnahmebehandlung durcheinander geworfen werden. Wenn beispielsweise dem Getränkeautomaten die Flaschen ausgehen, dann darf natürlich nicht das Programm abstürzen, so wie es die Autoren programmiert haben. Vielmehr muss das Programm auf diese Situation vorbereitet sein und dem Benutzer eine sinnvolle Fehlermeldung mitteilen, ihm das Geld zurückgeben und am besten gleich den Getränkelieferer informieren. Auch die Verwendung des Writer-Monads für Debug-Ausgaben ist nicht korrekt. Für die Fehlersuche kann man Hilfsausgaben vorübergehend(!) mit Debug.Trace.trace ausgeben, aber das Programm dauerhaft auf die Fehlersuche anzupassen, ist sicher nicht der richtige Weg. Eine sinnvolle Anwendung für ein Protokoll wäre eine Log-Datei für einen Web-Server, in der der Web-Server gestellte Anfragen archiviert.

Weiterhin stört mich, dass aus dem Buch nur schwer zu erkennen ist, welche Programmschnippsel zusammengehören. Es werden regelmäßig Bezeichner an einer Stelle definiert und an anderer Stelle verwendet, aber der Sichtbarkeitsbereich ist ebensowenig ersichtlich, wie der Satz an importierten Modulen. Eine sinnvolle Einteilung wäre etwa ein Modul pro Kapitel. Wenn man die Dateien jedoch von der Seite der Autoren herunterlädt, so erhält man die Schnipsel genauso aufgeteilt, wie sie in den Blöcken im Buch erscheinen. In dieser Form lassen sie sich nicht in einen Haskell-Interpreter laden! Es ist also gar nicht klar, ob die Autoren ihre Programme überhaupt jemals ausprobiert haben. Meine oben gezeigten Beispiel wecken Zweifel daran. Dieser Umstand erklärt wohl auch, warum sich manchmal Bezeichner von einem Block zum nächsten ändern, ohne dass es die Autoren bemerken. Das sieht man zum Beispiel am Typen "Baum" auf Seite 168: Dort steht "x {elems = size x + size y, ..." Die Variable "x" ist vom Typ "Baum", dieser hat aber kein Element namens "elems". Im Übrigen ist "elems" fettgedruckt, sicher weil das LaTeX-Paket "listings" eine entsprechende Funktion im Modul Data.Array kennt.

Der Datentyp "Baum" eignet sich darüber hinaus gut als Beispiel, wie man Datentypen nicht definiert: In der Definition werden 3 Sprachen und 4 Metaphern vermengt. Die Sprachen sind Deutsch (Baum, Knoten, anzahl, inhalt), Latein (nil von nihil), und Englisch (lT und rT vermutlich leftTree und rightTree, die unnötige Abkürzung macht die Sache nur noch schlimmer), und jedes der Wörter Baum, Knoten, Nil und inhalt gehört anscheinend zu einer anderen Metapher, aber zu welcher? Ich denke, wenn man einen Baum als Vorbild wählt, dann sollte man auch bei Bestandteilen eines Baumes bleiben, also Wurzel, Ast, Zweig, Blatt etc. Auch sonst trifft man in dem Buch viele gequälte denglische Ausdrücke wie Traversierung (statt ... ja was wollen sie eigentlich sagen?), Instanz (statt Ausprägung), Funktionskomposition (statt -verkettung), Pattern match (statt Mustertest). Für mich sind Nicht- oder Schlechtübersetzungen häufig ein Zeichen von Nicht-Verstehen und das deckt sich mit meinem Eindruck, den ich allein aus dem Monad-Kapitel mitgenommen habe.

Habe ich schon erwähnt, dass die Haskell-Module zum Buch teilweise Tabulatoren enthalten? Das ist in Haskell problematisch, weil Einrückungen eine Bedeutung haben, und es wird spätestens dann zum Problem, wenn man Texte mit Leerzeichen und Tabulatoren zusammenkopiert.

In meinem Schlusswort möchte ich auf die Frage zurückkommen, ob man das Buch Studenten in die Hand drücken soll oder nicht. Meine Antwort: Ja, man sollte das durchaus tun, denn daraus kann man eine Menge lernen. Erstens lernt man, dass Programmierer ziemlich schlampig sind und dass dies leider auch auf Haskell-Programmierer zutrifft. Zweitens kann man lernen, wie man es nicht macht und warum. Würde man Studenten nur zeigen, wie man diszipliniert programmiert, dann würden sie einem ja nicht glauben, dass Programmierer zu gewissen Schandtaten wirklich bereit sind.

35 Euro ist diese Diskussionsgrundlage allerdings ganz klar nicht wert. Vielleicht bekommen Sie das Buch irgendwo gebraucht.
Kommentar Kommentare (8) | Kommentar als Link | Neuester Kommentar: Jun 24, 2014 7:53 PM MEST


Pferdefreundschaft für immer: Die Pferde vom Friesenhof
Pferdefreundschaft für immer: Die Pferde vom Friesenhof
von Margot Berger
  Gebundene Ausgabe
Preis: EUR 5,00

1 von 1 Kunden fanden die folgende Rezension hilfreich
1.0 von 5 Sternen alter Wein in neuen Schläuchen, 31. Dezember 2013
Wir haben uns auf neue Pferdegeschichten gefreut und stattdessen die Geschichten bekommen, die wir schon in Pferdesommer am Meer und Ein Wunschpferd kommt selten allein von Margot Becker aus dem Arena-Verlag haben, also von der gleichen Autorin und vom gleichen Verlag. Dabei legt der Verlag durchaus kriminelle Energie an den Tag, denn alle drei Bücher haben ein anderes Titelbild, verschiedene ISBNs und jede Ausgabe gilt als 1. Auflage. Die Seiten in den Büchern sind aber exakt gleich.
Der Preis des Buches ist mit 5 Euro gerade so hoch, dass sich der Aufwand einer Rückgabe eigentlich nicht lohnt. Alles in allem scheint das ein abgekartetes Spiel zu sein, bei dem der Verlag auf die Trägheit der Käufer spekuliert.


Brother DCP-9055CDN  Multifunktionsgerät (Drucker, Kopierer und Scanner)
Brother DCP-9055CDN Multifunktionsgerät (Drucker, Kopierer und Scanner)
Wird angeboten von Printer Profi Partner GbR
Preis: EUR 479,00

4.0 von 5 Sternen runde Sache mit Schwächen beim Scannen, 28. Juni 2013
Also zunächst mal bin ich ganz zufrieden mit dem Kauf: Ein Farb-Laser-Drucker mit Duplex-Einheit, Scanner mit automatischem Einzug, wobei beide über das Netzwerk von mehreren Rechnern angesprochen werden können für nur 550 Euro, das ist eine preiswerte runde Sache! Scannen und Drucken funktionieren auch reibungslos unter Linux! Die Kartuschen können nachgefüllt werden und der Händler hat mir versichert, dass in Geräten dieser Preisklasse keine Seitenzähler eingebaut sind, die das Gerät nach einer bestimmten Benutzungsdauer für immer abschalten. Aber es gibt so einige nervige Kleinigkeiten, die vor allem den Scanner betreffen.

Egal ob beim Scannen über die Glasplatte oder über den automatischen Einzug, wenn ich die Vorlagen bündig an die Ränder lege, dann sind die Ränder der Vorlagen im digitalisierten Bild abgeschnitten. Wäre es denn so schwierig, den Scanner so zu bauen, dass die Lichtsensorenzeile im Zweifelsfall über die Glasplatte hinaus reicht, anstatt von der Vorlage etwas abzuschneiden? So nehme ich nun immer eine Stück Pappe zu Hilfe, um vollflächig bedruckte Vorlagen vollständig digitalisieren zu können. Das ist umständlich und das Bild wird trotzdem schief.

Zweites Problem beim Scannen: Ich habe es unter Linux nicht geschafft, den Scan-Vorgang vom Scanner aus zu starten. Wenn ich das machen will, muss ich auf meinem Rechner einen FTP- oder Samba-Server starten. Ich schätze, dass damit viele Benutzer schon überfordert sind. Ich habe es geschafft, einen FTP-Server zu starten und habe auch von einem zweiten Rechner probiert, Dateien auf dem FTP-Server abzulegen - das funktioniert jedenfalls. Wenn ich allerdings am Scanner einen Scan-Vorgang über FTP starten will, dann sagt er nebulös, dass das fehlschlägt. Er gibt mir keine Informationen darüber, warum es genau nicht funktionieren soll. Das Handbuch schweigt sich zu diesem Problem ebenfalls aus.

Ich denke, es wäre sehr viel einfacher, wenn der Drucker die Bilder lokal speichern könnte, und ich sie mir über den Web-Browser vom Drucker über HTTP abholen könnte. Jedenfalls funktioniert die Konfiguration des Druckers über den eingebauten Web-Server tadellos. Meine Notlösung sieht so aus, dass ich mir ein Shell-Skript geschrieben habe, welches hintereinander weg Scan-Vorgänge startet. Ich muss nur zusehen, dass ich am Scanner die Vorlagen rechtzeitig auflege. Danach muss ich mir aus den digitialisierten Bildern die passenden heraussuchen.

Interessante Beobachtung am Rande: Ein Bekannter von mir besitzt den Canon imageRunner, einen Drucker-Scanner-Kopierer mit ähnlichem Funktionsumfang, und bei ihm funktioniert die Übertragung gescannter Bilder mit FTP genauso nicht und er weiß auch nicht warum.

Das dritte Problem, wieder mit dem Scanner, ist bislang eher theoretischer Natur: Während ich die Druckertreiber direkt aus Ubuntu-Archiven installieren kann, muss ich die Scannertreiber von Brother besorgen und installieren. D.h. die Brother-Scanner-Treiber liegen nicht offen und wenn Brother die Unterstützung für zukünftige Rechnergenerationen oder Linux-Versionen einstellen sollte, oder ich auf ein nicht unterstütztes System wechseln will, dann stehe ich im Regen. Das Problem dürfte genauso Windows-Benutzer betreffen.

Dann habe ich noch eine Merkwürdigkeit beobachtet: Manchmal ist in Ausdrucken die Auflösung der Schrift stark reduziert. Meine Vermutung ist, dass beim Mischen von Text und Grafik die Textauflösung auf die der Grafik reduziert wird. Warum das so sein muss, ist mir schleierhaft. Es sieht so aus, als ob sich das Problem beheben lässt, wenn ich beim Druck die Option "High Quality Image Printing" wähle. Aber bis ich bemerkt hatte, dass es da ein systematisches Problem gibt, hatte ich schon etliche verhunzte Ausdrucke produziert.

Als allerletzte Beschwerde möchte ich noch vorsichtig anmerken, dass der Drucker sehr schwer ist und viel Platz wegnimmt. Ursprünglich hoffte ich, ein Gerät zu bekommen, das so kompakt ist, wie die vielen erhältlichen Drucker-Scanner-Kopierer auf Tintenstrahlbasis. Aber Duplexeinheit und vier Laser-Kartuschen fordern anscheinend ihren Platz. Mir wurde auch erklärt, dass man die Größe des Druckers eigentlich nur auf Kosten der Kartuschengröße reduzieren könne, und dann würden die Kosten für die Kartuschen und deren Nachbefüllen verhältnismäßig groß werden. Vielleicht gibt es ja doch noch irgendeinen technologischen Durchbruch, um auch Laserdruckertechnik kompakt bauen zu können, oder vielleicht erfindet jemand ein ganz neues Verfahren zum Drucken?
Kommentar Kommentare (2) | Kommentar als Link | Neuester Kommentar: Jan 18, 2014 11:47 AM CET


Speedlink Aero Flexible USB-Ventilator
Speedlink Aero Flexible USB-Ventilator
Wird angeboten von Eliware
Preis: EUR 7,99

2 von 3 Kunden fanden die folgende Rezension hilfreich
3.0 von 5 Sternen Blöde Leuchtreklame, 28. Juni 2013
Im Laden gab es leider nur die Variante des Lüfters mit integrierten LEDs. Ich hoffte, man könnte die ausschalten. Man kann es nicht. Ich hoffte, man könnte die LEDs mit Pflaster überkleben. Die leuchten aber so stark, dass es praktisch keinen Unterschied macht, ob da Pflaster drauf ist oder nicht. Nun ventiliert also dieses Ding neben mir und die blinkenden Lichter lenken mich total ab. Ist es denn so schwierig einen Lüfter ohne oder mit abschaltbaren LEDs zu bauen?

Ok, ich habe festgestellt, dass man den Propeller von der Achse abziehen kann. Wenn man ihn auseinanderschraubt, so kann man die kleine Leiterplatte mit den daran hängenden LEDs einfach herausziehen. Zuerst hatte ich versucht, das Motorgehäuse auseinanderzubauen, wobei ich im Handumdrehen die Drähte zum Motor durchgerissen hatte.

Jedenfalls habe ich nach dieser Operation einen netten, nicht nervenden Lüfter. Wahrscheinlich hätten die LEDs als Tastaturbeleuchtung sogar ganz nützlich sein können, aber dann nicht bunt und nicht blinkend und besser abschaltbar.


Kornkreise
Kornkreise
von Michael Glickman
  Gebundene Ausgabe

1 von 1 Kunden fanden die folgende Rezension hilfreich
4.0 von 5 Sternen gezeichnete Zeichen, 3. Oktober 2011
Verifizierter Kauf(Was ist das?)
Rezension bezieht sich auf: Kornkreise (Gebundene Ausgabe)
Eigentlich war ich auf der Suche nach einem Kornkreisbuch mit vielen schönen Luftaufnahmen
und leider erfährt man vor Kauf eines Buches im Internet nicht, welcher Art die Abbildungen im Buch sind.
Diese Frage kann ich nun beantworten: So wie auf dem Titelbild sind alle Bilder gezeichnet.
Der Vorteil: Man kann die Zeichen klar erkennen, so wie sie vermutlich gedacht waren,
befreit von nicht dazugehörigen Artefakten wie Traktorspuren und vom Wind niedergedrücktem oder von Menschen niedergetretenen Pflanzen.
Der Nachteil: Vielleicht gehören diese Artefakte gerade dazu?
Am liebsten hätte ich schöne farbenfrohe Luftaufnahmen und dazu die abstrahierten Zeichnungen.

Ansonsten ist das Buch sehr aufgeräumt, die Kornmuster werden nach ihren Formen kategorisiert vorgestellt.
Es hält sich mit Erklärungsversuchen zur Entstehung der Kreise zurück.


Schlafäpfel
Schlafäpfel
Preis: EUR 16,19

1 von 1 Kunden fanden die folgende Rezension hilfreich
5.0 von 5 Sternen Musik mit Tiefenwirkung, 25. Juli 2010
Rezension bezieht sich auf: Schlafäpfel (Audio CD)
Schützend breitet Annabell Berger ihre Buchstaben wie Flügel über drei Kinderäpfel aus, welche selig zusammengekuschelt schlummern und wenn ich die Schachtel wende, dann sehe ich, wie sich die gütige Apfelmama mit den großen Blättern auf dem Kopf nun auch die verdiente Ruhe gönnen kann. Gewissermaßen fielen diese Äpfel nicht weit von dem Stamm, aus dem Eva Schimek die Holzschnitte angefertigt hat. (Bitte fragt mich nicht, was ich damit meinen könnte. Ich konnte mir nur das Wortspiel nicht verkneifen. :-)

Eigentlich, so erfahre ich auf MySpace, sind Schlafäpfel moosballartige Wucherungen an Wildrosensträuchern, die man früher Kindern unter die Kopfkissen legte, damit die guten Träume die bösen vertreiben. Befinden sich in der Schachtel also solche geheimnisvollen Schlafäpfel? Mitnichten! Zwischen Ober- und Unterseite der Schachtel ist eine verzauberte silberne Scheibe eingezwängt, welche ich ehrfürchtig herausoperiere und neugierig im Sonnenlicht wende. Dieser unscheinbaren Scheibe hat Annabell ihre Lieder so lange vorgesungen, bis sie die auswendig konnte.

Jetzt benötige ich den schwarzen Kasten, der mir von Kaufleuten aus dem fernen Orient als Zehdeebläher angeboten wurde. Wenn ich das Silberding diesem Kasten auf die ausgestreckte Zunge lege, dann verschlingt er es gierig und es ist mir, als hörte ich Annabell selbst singen und auf dem Klavier spielen. Da sind Naturgedichte von Eva Strittmatter, Christine Lavant, Ilka Lohmann und Rainer Maria Rilke, die Annabell für uns vertont hat, mal aufrüttelnd und mal verträumt. Von denen gefällt mir "Im Herbst soll einer auf mich warten" am besten. So richtig beschäftigen mich aber vor allem ihre eigenen Texte. Da geht es um Menschen und ihre Pläne, die sie nie verwirklichten, um die Geburt ihres Sohnes, um Erinnerungen der Uroma an ihre Vertreibung, um eine Korrespondenz mit Freunden in St. Petersburg.

Wie auch auf der vorhergehenden CD "Sprachgitter" besingt und bespielt Annabell die CD allerdings nicht alleine. Sie wird zum Teil von den musikalischen Familienmitgliedern des Verlegers und ihren Instrumenten unterstützt. So wird die "Erschaffung der Sicherheit" mit Hilfe eines Schlagzeuges schon fast rockig.

Leider kann man "Sprachgitter" nicht mehr bei Amazon kaufen, denn diese CD war auch sehr schön. Aber es gibt noch Examplare direkt bei den Urheberinnen unter [...] .

Ich weiß nicht, was ihr jetzt noch vorhabt, aber ich werde mich wieder in die Tiefen begeben, wo die Musik ihre edle Wirkung entfaltet - wie die Schlafäpfel.


Wie wird man exzellent? Deutsche Universitäten im Spitzenrausch
Wie wird man exzellent? Deutsche Universitäten im Spitzenrausch
von Johannes Balve
  Broschiert
Preis: EUR 14,90

2.0 von 5 Sternen Mäßig kritisch bis Phrasendrescher, 29. Juni 2010
Ich habe eine Vorstellung des Buches durch den Autor erlebt, weswegen ich von dem Vorhaben abgerückt bin, dieses Buch zu kaufen.
Es blieb bei mir der Eindruck, dass der Autor erwartet, dass sich durch Exzellenzinitiativen Exzellenz fördern ließe, wenn man nur die richtigen Kriterien ansetzte. Wenn ich sehe, wohin das heutige Artikelzählen (weiterentwickelt zu Impact Factors, Bibliometrie, etc.) in der Wissenschaft, die Erledigungspunkte bei Gerichten, die Lines-Of-Code-Metrik in Software-Häusern, die leistungsabhängige Bezahlung auf Sozialämtern usw. usf. geführt hat, finde ich diese Erwartung reichlich naiv. Siehe auch Goodhart's Law.
Ja, der Autor scheint viel in der Welt herumgekommen zu sein, aber seine Lösungsvorschläge beschränken sich wieder nur auf die altbekannten Phrasen von Internationalisierung, Teamarbeit und Interdisziplinarität.
Dazu passt sehr gut ein Zitat von Edsgar Dijkstra von 1993 (aus EWD1165):
"The battle-cries of the managers are absolutely standard, they have not changed since WWII. The scientist is attacked as individual 'unruly, rugged individualists being much harder to control than committees' by organizational insistence on teamwork. The scientist is attacked in his professional competence by organizational insistence on interdisciplinary research. Finally, the scientist's right of existence is denied by the postulate that there is nothing really left to be discovered. [We hear all these slogans now, but they are carefully described in [0] d.d. 1956]"


Erklärungsnotstand Altersvorsorge: Warum selbst Experten versagen - eine Diagnose mit Therapievorschlägen
Erklärungsnotstand Altersvorsorge: Warum selbst Experten versagen - eine Diagnose mit Therapievorschlägen
von Markus Rieksmeier
  Gebundene Ausgabe
Preis: EUR 42,99

1 von 5 Kunden fanden die folgende Rezension hilfreich
2.0 von 5 Sternen Die Selbstbeschreibung des Buches ist ein guter Grund, es nicht zu kaufen, 30. April 2010
Kann ich guten Gewissens eine Buch kaufen, das verspricht, dass ich nach dessen Lektüre die Riester- und Rürup-Rente besser akzeptiere - gerade wo in der Finanzkrise die verzockten Kapitalanlagen durch Steuergelder aufgefangen werden, sprich das Eigenvorsorgeprinzip durch die Hintertür wieder durch das Umlageprinzip gerettet wird? Nun gibt es Leute, die meinen, Riester- und Rürup-Rente wären großer Betrug, aber Privatvorsorge wäre prinzipiell richtig. Allerdings stellte schon Herr Mackenroth fest, dass die wahren Werte, nämlich Dienstleistungen und Produkte immer zu der Zeit konsumiert werden, wo sie erbracht bzw. hergestellt werden. Sollte es also in Zukunft auf Grund mangelnder Bevölkerung Mangel an Dienstleistungen und Produkten geben, dann betrifft das alle, egal ob sie ihr Geld aus einer Privatrente oder aus der gesetzlichen Umlagerente beziehen. Diesen Mangel wird es aber nicht geben, weil die Produktivität beständig steigt - eine Entwicklung, die in der öffentlichten Rentendiskussion beharrlich ignoriert wird.
Kurzum ich bezweifele, dass ich aus dem Buch noch was lernen kann, nachdem ich schon Peter Bofinger "Wir sind besser, als wir glauben", Albrecht Müller "Die Reformlüge" und seine Nachdenkseiten, oder die Artikel von Ulrike Herrmann in der TAZ gelesen habe und die Reportage "Rentenangst" vom SWR gesehen habe. Die folgenden Rezensenten dürfen mich gerne vom Gegenteil überzeugen!
Umso mehr irritiert mich die selbstgefällige Art des Autors, Leute mit anderer Meinung als demente Analphabeten hinzustellen. Wenn er über Rentenexperten aufklären möchte, kann er gerne die wirtschaftlichen Verbindungen hinter den Privatvorsorgeverfechtern Bernd Raffelhüschen, Meinhard Miegel, Bert Rürup aufdecken, das sagt nämlich schon viel darüber aus, wie die zu ihrer Meinung kommen.
Kommentar Kommentar (1) | Kommentar als Link | Neuester Kommentar: Apr 14, 2011 10:48 PM MEST


Seite: 1 | 2 | 3