Planet Freitagsrunde

Konrad Mohrfeldt

Schwarz-Rot, das sind uns‘re Farben und unser Ziel, heißt ANARCHIE!

Goldig...

Ich konnt nich anders, sorry. :o(

via tagesschau.de

by Konrad Mohrfeldt at Wed, 01 Sep 2010 17:42:47 +0000

Konrad Mohrfeldt

Extreme Kühle erreicht nur die Bullerei

hatte ich schon ganz vergessen…

www.youtube.com/watch?v=SHlyklcIX8M

by Konrad Mohrfeldt at Mon, 30 Aug 2010 20:58:16 +0000

Tannek

Warum der SPAM nie aufhoeren wird


Nun. Wir alle traeumen von einer Welt ohne ungebetene Mails oder irgendwelche Links zu Gluecksspielwebseiten in Gaestebuechern/Foren/Wikis. Doch ich glaube nicht daran, dass dieser Traum Wirklichkeit werden kann.  Warum nicht?

Gucken wir uns das ganze mal von der Seite des ehrlichen Betreibers eines Blogs mit Gaestebuch an:

Was kann man gegen den SPAM tun?

1. Kapitel: "CAPTCHA"s

Massnahme:
Man fuegt also nun so lustige Bilder/Animationen ein, auf denen nur ein Mensch erkennen koennen soll, was da abgebildet seien soll.

Umgehung:
Sofern die ueblichen OCR-Programme auch trotz vorherigem Filtern eine lausige Rate haben sollten (dabei sind die schon so gut, dass es Firefox AddOns gibt die ganze Accounts fuer einen anlegen), gibt es immer noch die Moeglichkeit andere die Dinger loesen zu lassen.


"Warum der SPAM nie aufhoeren wird" vollständig lesen

by Tannek (nospam@example.com) at Mon, 16 Aug 2010 18:23:00 +0000

Konrad Mohrfeldt

Nerdstöckle

Korrupt verteilt hier Nerdstöcken. Ich bin zwar nich beworfen worden, werde das aber auch mal ausfüllen aus ganz trivialen Gründen: Ich schreib hier zu viel Nerdfoo :o. Dexter ist zwar wie immer ein Spielverderber und sagt das sei total 2006, aber was weiß der schon.

Geht los:

Nerd zu sein ist prima. An sich meistens, aber konkret

nachts um vier, weil…
…morgen zum Glück immer erst nach dem Aufstehen ist. Nur die nicht-Nerdwelt hat das noch nich mitbekommen :/
in diesem leicht heiß geratenen Sommer gerade, weil…
…die Dauerbeleuchtung von der Drillionen Watt Glühbirne da oben perfekt als Argument taugt, warum die generelle Kelleratmosphäre im Zimmer beibehalten werden müsse
morgens beim aufstehen, weil…
…die letzte Mate am Abend eh nicht mehr ihren Dienst verichtet hat und jetzt noch zur Hälfte voll auf dem Tische steht. „morgens“ is das aber nich
bei der folgenden Geschichte:
Ausgiebiges Verschlafen der Uni ist nicht möglich. Vertrauensvolle™ Freunde bekommen da ne Shell auf dem Homeserver, der den mpd beherbergt. Im Zweifel loggen die sich da mal ein, arpen einmal rum und gucken, ob der Laptop noch läuft, der zu dieser Zeit eigentlich nich mehr im Netz sein sollte und wechseln ggf. einmal laut den Avatar-Soundtrack in die Playlist
Nerdsein ist aber auch nicht immer das reine Glück. Beispielsweise…
…wenn man von züchtigen Methoden der objektorientierten Programmierung abweichen muss und Menschen tatsächlich erwarten, dass man ihre Verbosity nicht via
person.setVerbosityLevel(Verbosity.Debug)

erhöht, sondern durch gutes zureden und -hören.

Nerdtests sind…
…in der Regel viel zu lang. Die Frage, ob man xkcd mindestens zu großen Teilen lustig findet, hätte völlig gereicht
Dieses Nerd-Sein-Gefühl, das hab ich besonders, wenn/weil…
…ich eigentlich bei jedem Satz meines Gegenübers und meiner Wenigkeit wahlweise Southpark, TBBT, IT Crowd, dilbert etc. pp. zitieren will und mich sehr schwer daran tue, es nicht zu tun
Ich kenne weitere Nerds, denen ich dieses Stöckchen weiterreiche, nämlich…
seba, tannek, fari und x2017 und vllt noch jmd vom planeten. Vergessen worden sind mutax, Laetitia und Dexter… los du willst auch ;)

by Konrad Mohrfeldt at Tue, 10 Aug 2010 01:47:38 +0000

Tannek

HDR FCKUP!


Irgendwie ist bei mir mal so eine HDR-Erstellung nach hinten losgegangen ) :

Aber sieht doch ganz schick ;D

by Tannek (nospam@example.com) at Mon, 02 Aug 2010 14:16:53 +0000

Florian

Ein HDR-Experiment

by Florian (noreply@blogger.com) at Sun, 01 Aug 2010 13:09:41 +0000

Tannek

RE: Finally … backups.


Kai hatte letzten Woche ueber das RSNAPSHOT-script gebloggt, was mich jetzt dazu brachte das auch mal in Angriff zu nehmen.

Rsnapshot basiert (wie so viele) auf rsync und kann lokale, wie auch ferne (ssh,rsync) Quellen sichern. Die gesamte Konfiguration geschieht in der /etc/rsnapshot.conf und ist sehr uebersichtlich und schnell eingerichtet (nur die TABs als Trenner sind gewoehnungsbeduerftig).

Im folgenden: Tipps zur conf, sowie "tweaks" und natuerlich Performance-Werte :-D



"RE: Finally … backups." vollständig lesen

by Tannek (nospam@example.com) at Wed, 28 Jul 2010 14:56:33 +0000

Konrad Mohrfeldt

html5/ajax audioplayer – yes it sparkles

Ich betreibe nun schon seit einiger Zeit, versteckt hinter einem htaccess Schutz und ordentlich verschlüsselt auf Port 443 auf meinem zuhause-immer-an-rechner einen Webaudioplayer, der mir meine Musiksammlung auf jeden beliebigen Rechner mit HTML5-fähigem Browser befördert. Zeit das Ganze doch einmal vorzustellen.

Wie’s dazu kam

Das Projekt in seiner jetzigen Form entspringt einem für Informatiker ganz grundlegenden Bedürfnis: Programmiersprachen lernen. Konkret ging es hier um JavaScript, denn das hatte ich eh schonmal so halb gelernt, als ich 3D Scripting mit Unity gemacht habe und halbe Sachen sind ja per se sowieso und überhaupt total langweilig. Als dann eigentlich schon alles™ fertig war, kam auch noch das Bedürfnis hinzu etwas Python zu machen. Das ist aber eher nebensächlich gewesen.

Was es tut

Es leuchtet blau! Ein wenig zumindest.
Der Player soll eine einfache Oberfläche liefern für meine Musiksammlung zuhause. Also unterstützt die Software auch das grundlegende, was man so von einer Musiksoftware erwartet. Es listet Verzeichnisse mit Musik auf, zeigt Titelinformationen an und unterstützt manuelle Playlisten, die man auch abspeichern kann. Die Seite selbst lädt einmal, der Rest ist JavaScript. Ich mache kein Flash-Fallback, Browser die kein audio Element unterstützen oder nur unzureichend haben Pech; CSS3 ist ebenso Voraussetzung. Kurzum: Aktuell läuft das Ding quasi nur in Chrome/Chromium und wahrscheinlich noch in Safari, da ja beide WebKit nutzen.

Wie das geht

Ganz einfach: da sitzt ein kleines Frontend und schickt per Ajax (eigentlich ist das ja kein Ajax -- Asynchronous JavaScript and XML -- sondern „Ajaj“ -- Asynchronous JavaScript and JSON -- was ich hier nutze) beständig Anfragen an ein Backend, das in Python realisiert ist. Das schickt seine Daten zurück und das wars. Die Pythonscripte selbst docken an einen Apache mittels mod_wsgi an. Man könnte allerdings auch relativ simpel eine neue index.py basteln, die CGI nutzt.

Sehen will

Klaro. Ne Demo gibt’s hier. Ein Vorschaubild soll auch nicht fehlen:
html5/ajax audioplayer

Haben will


Klaro. Da das für mich ein Lernprojekt war, ist mir relativ Latte, was Leute damit machen. Allerdings interessiert mich was sie damit machen ;). Kurzum: Stellt mit dem Code an was ihr wollt, aber erzählt mal was ihr damit gemacht habt, wenn ihr was gemacht habt.

Änderungen lassen sich übers gitweb verfolgen, den Code selbst gibt’s im git.

Viel Spaß damit!

PS: Und ja, ein wenig buggy ist es noch z.T.
PPS: Übrigens bis zu diesem Commit, gabs noch ein PHP Backend (wer interessiert ist).

Ach und by the way… Man soll ja auch artig Credits geben, wenn man welche zu vergeben hat.
Die beiden waren wirklich motivierend beim Coden *gg*

www.youtube.com/watch?v=zJOWNz1a8DA

by Konrad Mohrfeldt at Wed, 28 Jul 2010 02:43:34 +0000

Daniel Käs

Simple Multi-Threaded Application in Haskell

Haskell has a powerful concurrency library which is surprisingly easy to use. The Control.Concurrent library is shipped with the standard installation of ghc and provides everything needed to get started.

As a small test I want to write a programme which reads numbers from stdin, spawns a new process to calculate the Fibonacci number for each input on a different CPU and prints the result to stdout.

First we need a function which is called when spawning a new process, which should calculate the result and print it to the console. In my case this is a simple IO Monad, which gets a MVar as it’s first argument. The function will wait for input from the MVar and then call the Fibonacci function.

This MVar can be thought of as a synchronised box where a thread can store a value and another thread can read from it. So MVars are just the poor men’s message channel which can hold one value at the time only. Of course there are also real channels in Haskell which act like the message queues in Scala or Erlang, see Control.Concurrent.Chan for more informations.

printResult mvar =  do
	value <- takeMVar mvar
	print $ "fib(" ++ show value ++ ")=" ++ show (fib value)

fib 0 = 0
fib 1 = 1
fib n =  fib (n - 1) + fib (n - 2)

Now we need to read the input from stdin, create a MVar object and invoke the printResult function. The cool thing about Haskell is the forkIO function which is really convenient. It takes an arbitrary IO expr and invokes it in a new thread:

import Control.Monad -- needed for "forever"
import System.Exit     -- needed for exitSuccess

main = forever $ do
	line <- getLine
	when (line == "quit") exitSuccess
	mvar <- newEmptyMVar
	forkIO $ printResult mvar
	putMVar mvar (read line :: Integer)

Now we have to compile our programme with the “-threaded” flag:

ghc -threaded fib.hs -o fib

The RTS allows us now to define the number of processors the application runs on with the -Nnum flag. If I want to use three processors for parallelisation I can run the programme simply with:

./fib +RTS -N4

by Daniel at Tue, 27 Jul 2010 21:42:01 +0000

Tannek

'evolution'..


Also das neuere Programme mehr Arbeitsspeicher verbrauchen kann ich nachvollziehen - aber das hier ist nun echt nicht gebrauchbar:

...da werd ich doch gleichmal die alte Version installieren.  ) ;

Oder doch ein anderer Client? *gruebel*

Bei der Gelegenheit: wir braeuchten mal einen Mailclient-BASH! ( seba tret )

by Tannek (nospam@example.com) at Tue, 27 Jul 2010 18:32:26 +0000

Florian

Ein Sommernachtsgewitter

by Florian (noreply@blogger.com) at Sat, 24 Jul 2010 09:25:49 +0000

Tannek

Ein Sommernachtsgewitter



by Tannek (nospam@example.com) at Sat, 24 Jul 2010 01:49:00 +0000

Kai

Finally … backups.

Solved what’s probably everbodys most neglected problem: backups (or better their absence).

  • bought a bluetooth stick to backup the phone (with gammu/wammu)
  • bought a 2TB HDD and an USB/eSATA case to backup my systems (with rsnapshot)
    • It definitly was a very relaxing moment when I finished the first backup. Rsnapshot is certainly the tool to use for such home backup purposes. It allows you to have multiple virtual full snapshots of the system while only needing the space of the first full backup plus all your changes (it uses hardlinks for unchanged files). One thing I noticed: As I’m a bit of a paranoid, I set the disc encryption algorithm to AES256 in contrast to dmcrypts default AES128 setting. Now it seems like that takes up a considerable amount of CPU cycles more then AES128 (no real measurement, just quick observation). The result is that on my Atom 330 board, the encryption process runs at 100% CPU usage, eating up a full core and I only get 15MB/s writing speed (as opposed to 30MB/s on a Core2Duo 1.6GHz — maxing out the USB port). It’s still OK, it’s just that I don’t even have to bother using the eSATA port with the system. The good thing is, that on the next weekly backup, the disk speed will not matter very much as only the diff will get rsynced :)

      Now … my nights will be much better, I think :)

      And if you don’t have home backups yet, I hope your nights will be very restless!

by admin at Sun, 11 Jul 2010 12:52:55 +0000

Kai

Sonnencreme

by admin at Wed, 07 Jul 2010 04:57:36 +0000

Seba

Scriptupdate von Sendfile und xkcd-dl

Patchday! Die zusammengefrickelten Alltagshelfer brauchte ein paar Updates.

Sendfile fehlten ein paar wichtige Sachen. Nun kommt auch wget mit dem Downloaden klar und benennt nicht mehr alles was das Script ausspuckt "index.html". Anscheinend kommt wget mit den HTTP-Atachment Headern nicht klar, benutzt man aber ein 302 so wird die Datei auch von wget richtig benannt. Ausserdem sagt es bescheid, ob ein Client fertig mit Downloaden ist bzw. ob er abgebrochen hat. Und noch als schönes Feature sucht es sich über ifconfig alle IPs des aktuellen Systems und spuckt diese auf der Konsole als mögliche Downloadlinks aus.

Ein Kommentar zu Python, SocketServer und ipv6: Es scheint so, als würde der BaseHTTPServer, welcher auf TCPServer basiert, kein IPv6 können. Das scheint daran zu liegen, dass dort einfach "address_family = socket.AF_INET" gesetzt wird. Kein AF_INET6. Tja. Soll aber angeblich irgendwann gefixxt werden/worden sein.

Dann gibt es natürlich noch das XKCD-Download Script. Nun läd es auch inkrementell runter. Soll heißen, es guckt, welche Nummer der zuletzt heruntergeladene Comic im aktuellen Verzeichnis hat und läd dann die Folgenden runter. Ausserdem parst es ein wenig an den Alt-Texten rum. Dieser Urlencodefoo auf den Bildern musste einfach weg.

Nundenn, wieder mal produktiv gewesen! Hoffe es hilft dem einen oder anderen.

Tue, 06 Jul 2010 23:04:28 +0000

Tannek

IMDB-interfaces

Achtet auf die Reihenfolge...

Offizielle Interfaces von IMDB

by Tannek (nospam@example.com) at Fri, 25 Jun 2010 17:45:24 +0000

rbu

LinuxTag RadioTux interview with sping and rbu

Sebastian was invited to a radio interview with RadioTux during LinuxTag and I decided to join him. It was a lot of fun talking with Roman (much more than talking alone as I did the last year). Now, finally here’s the recording (in German).

by rbu at Wed, 23 Jun 2010 13:02:07 +0000

Kai

MOTM

Mr. Scruff — Get A Move On

and a personal update: after some struggling, I will go to work at 9:00 today. Finally. :)

by admin at Mon, 21 Jun 2010 05:34:25 +0000

Martin Häcker

Objective-C Metaprogrammierung: Blöcke zu Methoden

Die Ruby Welt verwendet Blöcke (Closures) liebend gerne für alles mögliche. Zum Beispiel als Builder-Methapher um Baumstrukturen (XML, GUI's, HTML, Tests) in der Sprache hinzuschreiben und dann nur noch in die Target-Sprache zu rendern.

Das sieht in Tests zum Beispiel so aus:

describe "something" do
  it "should do fnord" do
    someObject.should be_fnordy
  end
end

Der Trick dabei ist das alles von do bis end jeweils ein Block ist der von der Methode describe oder it dann in eine UnitTest Klassenstruktur eingehängt wird um dann später als 'ganz normale' unit tests ausgeführt zu werden.

Jetzt wo Objective-C auch Blöcke unterstützt (ok, die können natürlich weniger als das Ruby Equivalent) müsste das eigenltich auch gehen - und siehe da mit  Cedar gibt es auch schon einen ersten Versuch  RSpec in Objective-C nachzubauen.

Well und daher habe ich mir mal angeschaut wie weit man denn kommt wenn man in Objective-C einen Block in eine Instanz-Methode umwandeln will.

Gleich vorneweg - das Typ-System von Objective-C macht mir hier einen kleinen Strich durch die Rechnung - ich habe es nicht geschafft einen Block nicht direkt als Funktions-pointer verwenden.

Aber mit etwas Umweg geht es doch.

Der Trick ist das Blöcke auch id's sein können, d.h. man kann sie bequem in ein NSMutableDictionary packen.

Also brauche ich auf meiner Klasse nur ein Dictionary, speichere die Blöcke darin mit dem Namen der Methode ab und baue mir einen generischen Dispatcher-IMP der den Selector (zweites unsichtbares Argument jeder Objective-C Methode) verwendet um den Block aus aus dem Dictionary zu ziehen und führe ihn dann einfach aus.

So sieht dass dann aus

by dwt at Sat, 19 Jun 2010 22:06:46 +0000

rbu

Would Mark Shuttleworth use Gentoo had he not founded Ubuntu?

Fortunately, sping said almost everything there is to say about LinuxTag. But there’s one important part missing: We finally made a peace treaty with what many call Gentoo’s arch nemesis (no pun intended?): Ubuntu.

While Ubuntu lost the “just works on your notebook” unique selling point a while ago (thanks to freedesktop et. al.), we could convince Ubuntu founder Mark Shuttleworth to sign our Gentoo slogan “It’s all about choice” — so maybe in a year from now, you might see USE flags in Ubuntu as well. Don’t believe it? Here’s proof.

On a more serious note, I really like how events like LinuxTag encourage collaboration between distributions. You often meet people that do similar things in a different way, learn about new technology and ideas and (here’s the best part) most people will even want to show you how they integrated something and convince you to do it similarly. Try to get that with an i*hone at some consumer convention.

Oh, and if you read this whole text to get an answer to the question in the title: No. He was a Debian developer years before Gentoo was on the horizon.

by rbu at Wed, 16 Jun 2010 22:45:09 +0000

Konrad Mohrfeldt

Wat der Mark da so…

…von Datenschutz hält… dat is schon Bombe, ne?

Well, These New Zuckerberg IMs Won’t Help Facebook’s Privacy Problems

Dumb fuck.

by Konrad Mohrfeldt at Fri, 04 Jun 2010 04:18:59 +0000

Daniel Käs

Writing A Synthesizer With Brainfuck

Brainfuck is a small esoteric programming language which comes with just eight commands and Turing completeness (given enough time or memory). And that is just enough to write a small synthesizer in it. Some people have definitely too much time ;-)


by Daniel at Wed, 02 Jun 2010 20:57:57 +0000

Seba

SSH Proxying

Folgendes Problem ergab sich mir durch meinen Studentenjob: Ich habe einen haufen Linuxkisten, die alle nicht aus dem Netz per ssh erreichbar sind. Nur eine spielt quasi ssh-Gateway. Will ich nun auf eine der Kisten (z.B. Internal) muss ich also über den Gateway. Hierzu gab es mehrere Ansätze:

1. ssh zum Gateway, dannach ssh von dort aus zu Internal. Problem ist nur, dass man vielleicht dem Gateway nicht vertrauen möchte. Ausserdem ist man dann zu Passwordauthentication verdonnert, da man nicht wirklich ssh-Privatekeys auf der Kiste liegen haben möchte. Also kriegt der Gateway im Zweifelsfall auch das Passwort mit. Unschön.

2. Portforwarding: ssh gateway -L localhost:1234:internal:22 und dann ein ssh localhost -p1234. Potentiell eine Möglichkeit, gerade wenn man sich das irgendwie hinscriptet. Nur will man eigentlich nicht für jeden Server einen lokalen Port assignen damit die knownhosts nicht kaputt gehen. Gefällt mir auch nicht.

3. ssh ProxyCommand ! Direkt in ssh drin. Die Theorie: ssh zu Gateway. Dort dann direkt netcat internal 22 ausführen und somit an den SSH-Stream von Internal dran kommen und dagegen dann ssh machen. Für den Gateway ist der Traffic zu Internal verschlüsselt, man kommt direkt dran und kann auch mit scp/sshfs/younameit direkt arbeiten (und natürlich auch lokale keyfiles zum authen benutzen!). Einziger Unterschied ist, dass man ggf. zwei Passwörter für den Account (oder den ssh-Key, je nachdem) eingeben muss.

Hier die Konfiguration dafür:

Host gateway
Hostname gateway.foo.bla
IdentityFile ~/.ssh/gatewaysshkey

Host internal
Hostname internal
ProxyCommand ssh gateway nc %h %p
IdentityFile ~/.ssh/internalsshkey

Bedingungen dafür sind, dass auf Gateway netcat vorhanden ist und er internal zu der internen ip auflösen kann (kann man ggf. natürlich auch einfach selber dort einsetzen..). Meiner Meinung nach eine super Sache und ein riesen Spaß. Vielleicht hilft es ja auch dem ein oder anderen.

Mon, 31 May 2010 02:23:29 +0000

Martin Häcker

Die schönsten Testsuiten

Sowas wünsche ich mir auch mal für andere Programmiersprachen. Eine ständig aktuelle Hitliste der schönsten Testsuiten von Open Source software.

 Sowas hier - aber systematisch und crowdsourced immer aktuell.

Hach, man kann träumen. :-)

by dwt at Sat, 29 May 2010 19:53:05 +0000

Florian

How to disable AAAA queries for IPv6 / configure your resolver

Today I stumbled upon a very nasty behaviour of glibc - again.

On a host which has no access to IPv6 at all and no module-support in the kernel, it seems the connect() call fails when there is a AAAA record in place for a remote server.

This means I cannot wget a webpage if an AAAA record exists for the page, etc.

You will find many solutions on how to 'disable IPv6' - but they all miss the resolver in glibc, the part that is behind the 'gethostbyname' call.

I like to disable AAAA DNS-queries for IPv6 completely - and the solution is easy:

#cat /etc/resolv.conf 
options no-inet6
nameserver ...
nameserver ...

Just documenting it here, because the manpage does not document the 'no'-Feature and searching for this on google was not helpful at all.

by Florian (noreply@blogger.com) at Thu, 27 May 2010 22:28:23 +0000

rbu

Gentoo at LinuxTag 2010 in Berlin

LinuxTag is coming, and we’re on board again! All four days, starting Wednesday, June 9th until Saturday, June 12th, Gentoo will be present at the Berlin Fairgrounds.

And this time, we’re celebrating. As this is the fifth time we present our favorite distribution at LinuxTag, we have prepared a great booth for all Gentoo users, developers — and those who want to join the fun. After having visited the events in Karlsruhe in 2003 and 2004, we are regular visitors at the Berlin LinuxTag since 2008. Besides our usual activities (talking, emerging, giving away merchandise), we will have our unique Gentoo T-Shirts, the latest Gentoo DVDs, and the world’s most configurable Gentoo badge compiler.

So pack your bags, come to Berlin, and meet the 10+ Gentoo developers and users that already signed up. And maybe, you’ll join us for the some beer (or Mate tea) after the show or enjoy helping other users at the booth (drop us an email)?

But wait, there’s more! The German non-profit association “Förderverein Gentoo e.V.” will hold a member’s meeting right on the Fairgrounds on Friday (11th), 12:00–14:00 in the workshop room. Not a member yet? You can still become one, even right there and support our work.

Gentoo at LinuxTag Gentoo DVDs, books, and sweets Gentoo T-Shirts Gentoo banner

Hope to see you all in Berlin!

by rbu at Sun, 23 May 2010 22:31:26 +0000

Kai

MOTM

by admin at Thu, 20 May 2010 14:35:14 +0000

Kai

Hide your Useragent

Gentoo users compile their stuff on their own. This is a fun thing to do and provides you with a lot of flexibility. Every gentoo system is unique. Sadly this sometimes is exposed to the internet. For example Firefox contains the compile-date in it’s useragent string. Goodbye privacy.

Then again, we can easily fix this. Take a common useragent from useragentstring.com and paste it into the “general.useragent.override” option in the about:config settings editor of firefox. (If the setting does not exist, create it.) Done.

You can check your uniqueness on the EFF Panopticlick site. I reach a level of “one in 13,247 browsers have the same fingerprint as yours” (which is pretty good already). This is with a Windows-Firefox 3.6.3 useragent string and javascript disabled.

by admin at Tue, 18 May 2010 13:58:45 +0000

Florian

bzip2 vs. gzip und gvfs im Allgemeinen

Eben bin ich mal wieder über einige Kleinigkeiten gestolpert, die einfach nur ärgerlich sind.

Ein paar wirklich kleine Bugs, aber trotzdem unendlich nervig!

Gnome bindet Samba-Freigaben (also Windows-Freigaben) innerhalb des virtuellen Dateisystems ~/.gvfs innerhalb des Homes des Nutzers ein. Soweit so gut.

Erster Akt: Zugriff!

Man könnte ja annehmen, dass Gnome dann auch transparent Zugriff darauf erlaubt. Wenn ich ein Terminal starte, kann ich in das Verzeichnis wechseln und mit normalen Kommandozeilentools auf die Freigaben schreiben. Alles toll.

Aber in Gnome tauchen diese Freigaben im normalen Datei-öffnen Dialog nicht auf. Entsprechend auch nicht in Firefox, Galeon, Epiphany. Wie soll denn ein Endnutzer jetzt auf einfache Weise einen Download auf dem Share speichern? Vielleicht übersehe ich auch was, aber sowas ist einfach nur ärgerlich. Nicht nur weil das unter Windows ohne Probleme funktioniert.

Navigiert man manuell nach ~/.gvfs/ klappt es aber...

Zweiter Akt: Verknüpfungen

Wer es aus Windows kennt, versucht es auch unter Linux. Hat man nach viel Suchen die richtige Freigabe auf dem richtigen Server gefunden, zieht man die Freigabe aus der Netzwerkumgebung auf den Desktop und hat fortan eine Verknüpfung mit dem Share, die beim Doppelklick wiederhergestellt wird.

Nicht so bei unserem Lieblingsfrickelbetriebssystem mit Gnome. Zuerst beschwert es sich, dass die Freigabe kein normaler Ordner ist. Ach! Dann legt es auf dem Desktop einen leeren Ordner mit dem Namen der Freigabe an. Toll! Wie soll denn ein Endbenutzer jetzt auf die Idee kommen, dass alles was er in diesem Ordner speichert eben nicht auf dem Server landet?!

Nun gut, versuchen wir Rechtsklick auf den Freigabenamen in der Netzwerkumgebung, dann Verknüpfung erstellen. Ooops. Ich habe auf der obersten Ebene des Servers ja keine Schreibrechte, also Fehlerdialog, Verknüpfung kann nicht angelegt werden. Leider erfolgt auch keine Möglichkeit wie bei Windows (sic!) die Verknüpfung statt dessen direkt und automatisch auf dem Desktop anlegen zu lassen. Ergo: Verknüpfungen erzeugt man manuell, indem man einen Starter mit dem Ziel nautilus smb://server/ anlegt.

Wie soll denn ein Endbenutzer....

Wenn man viel Glück hat geht das auch meistens. Oft habe ich aber wie unter Windows nur leere Servereinträge, bekomme skurrile dbus-Fehlermeldungen, kann das Netzwerk nicht durchsuchen, etc. Ja, iptables ist leer und auf ACCEPT.

Dritter Akt: Auf der Kommandozeile ist alles besser?

Nein, nicht wirklich.

Bei dem Gnomefs ist z.B. die Funktion fchmod nicht implementiert. Und das führt zu unnötigen Fehlern.

Situation: Auf dem Share liegt eine Datei, die wir komprimieren wollen.

Also Kommandozeile, cd ~/.gvfs/sharename ; bzip2 file - und wir bekommen einen netten IO-Error um die Ohren gehauen. Vorher hat bzip2 das File übrigens ordnungsgemäß komprimiert. Komplett. Und wieder aufs Share geschrieben. Dann gelöscht.

Das gleiche Experiment mit gzip: Es wird auch ein Fehler geworfen, das File wird aber korrekt abgelegt und die Quelle gelöscht.

Welches Verhalten ist nun besser? gzip, der die Rechte nicht setzt und dem es egal ist, oder bzip2, dass die Datei einmal übers Netz zieht, komprimiert, schreibt und zurücksendet und dann löscht?

Was mich aber am meisten wundert: warum wird das fchmod erst NACH dem Schreiben der Nutzdaten gemacht?

Die Krönung des ganzen: Der Mode, den bzip2 hier übergeben will, unterscheidet sich nicht vom Mode, den die Datei auch so schon hat, wenn sie neu angelegt wird -.-

Fazit: Alle doof außer Mutti!

by Florian (noreply@blogger.com) at Tue, 18 May 2010 10:04:19 +0000

Tannek

Desktop / HTPC / NAS -case Empfehlungen


Bei einer Tasse Kaffee bin ich beim sonntäglichen Inspirationenquellen suchen fuer mein neuen Desktop-PC ueber einige echt gute Gehaeuse gestolpert :

  1. Chenbro  ES34069 (Mini-ITX)


    Vorweg: Chenbro ist mein aktueller Lieblingshersteller von Gehaeusen..
    Es ist einfach ein Traum wie durchdacht und vor allem Vielfaelltig deren Angebot ist! Aber von einem Server-Hersteller (z.B.: 50x 3.5'' Hotswap !??) sollte man diese Professionalität erwarten :-)
    Nachteile:
    Vorteile:
    • Klein !!
    • 4x 3.5 Hot-Swap
  2. Silverstone SST La Scala (ATX + 6x 3.5 intern)

    PREISTIPP !! Dieses Gehaeuse ist einfach mal nur halb so teuer, wie äquivalente HTPC-Gehaeuse... (jaja. die Front ist seltsam... fuer 10euro mehr gibs ne geschlossene)
    Nachteile:
    • Gross ( 42 x 17 x 42 cm BxHxT )
    • kein Hot-Swap moeglich (nur 2x 5.25'' nach extern)

    Vorteile:
    • 87 EURO !
    • 6x 3.5'' intern
    • + 2x 5.25'' extern
    • Luftig :-D
  3. Lian Li PC-Q08B (Mini-ITX+ 6x 3.5 intern)

    Wer kennt schon nicht Lian Li als Gehaeusehersteller?.. Ich habe bei der Suche nach NAS-Gehaeusen dieses gefunden, welches wie immer gut durchdacht  - insbesondere aber durch das typische Schlichte Design sehr Wohnzimmertauglich ist.
    Nachteile:

    • Cube (kein Stereoanlagenformat)
    • 110Euro?

    Vorteile:

    • 6x 3.5'' intern
    • Luftig !!! :-D
    • Platz fuer Mini-ITX + ATX-Netzteil

  4. Lian
    Li HTPC-Chassis PC-C34FB
    (ATX)


    Ein HTPC von Lian Li.. Super Design - Super Verarbeitung und super Durchdacht. Auf dem letzten Platz, aufgrund dem doch recht hohem Preis.
    Nachteile:
    • 220 Euro
    • nur 4x 3.5
    Vorteile:
    • 4x 3.5'' Hotswap hinter einer Frontklappe : )
    • Mit Fernbedienung..
    • Luftig !! :-D

by Tannek (nospam@example.com) at Sun, 16 May 2010 12:36:04 +0000