Entries tagged as programming
Related tags
android apple code computer google gui ios iphone jabber java linux misc mobile opensource presentation rant screenshot sdk shortys software tail -f /var/log/life video web webdesign xml zeitgeist bad world blog blogging browser captcha changes dns firefox fun hardware html life lighttpd linux&unix media murphy networking politics privacy s9y security server spam stuff tv webwide contentmanagement free markup rss ruby tool wordpress javascript documentation feedreader http realtime rest scala swing websockets windows xslt codec vp8 cheatsheet comic css datamining eigenfaces encryption howto im mail newsbeuter picture podcast psi regular expression subnetting test truecrypt unix perl conference dslr nikon photography 42 coffee science forum unbVor einiger Zeit habe ich ein Tool gesucht um Newsfeeds aus einer OPML-Datei auf Erreichbarkeit zu ueberpruefen. Nachdem ich keines gefunden hatte, habe ich mir selbst eines geschrieben.
Das kleine Tool wurde nun nochmals ein klein wenig ueberarbeitet. Hier mal die groebsten Aenderungen:
- Support von Threads
- Abfangen nicht konformer HTTP-Antworten
- Abfangen von "connection refused"-Fehlern
Alleine die Verwendung von Threads bringt einen erheblichen Performancegewinn. Als Beispiel dient meine Feedliste mit 179 Feeds. Hier ist das Ergebnis der Version ohne Threads:
time ./feedchecker.rb /tmp/rss.opml
./feedchecker.rb /tmp/rss.opml 2.70s user 0.88s system 1% cpu 4:05.40 total
Und hier mal die Version mit Threads:
time ./feedcheckerthread.rb /tmp/rss.opml
./feedcheckerthread.rb /tmp/rss.opml 1.51s user 0.35s system 4% cpu 42.661 total
Das Script gibt es hier zum download. Feedback ist wie immer willkommen.
Ich arbeite gerade an einem kleinen Tool, fuer das ich den URL-Kuerzungsdienst bit.ly ansprechen wollte. Daher habe ich mir eine Ruby-Klasse dafuer geschrieben, die die RESTfull-API anspricht:
#!/usr/bin/env ruby
# client class for url shortening service bit.ly
require 'net/http'
require 'uri'
class Bitly
def self.shortURL(surl)
api_url = "http://bit.ly/api"
res = Net::HTTP.post_form(URI.parse(api_url),{'url'=> surl})
return res.body
end
end
# Possible usage
puts Bitly.shortURL("http://blog.roothausen.de")
Das Ergebnis schaut so aus:
./bitlyapi.rb http://bit.ly/2BTVbK
Ich bin mal gespannt, wie dieser Kommentar aufgenommen wird.
Security people are often the black-and-white kind of people that I can't stand. I think the OpenBSD crowd is a bunch of masturbating monkeys, in that they make such a big deal about concentrating on security to the point where they pretty much admit that nothing else matters to them.
Ich werde das nicht kommentieren. ![]()
Ich habe gerade einen wunderbaren Vortrag ueber Softwareintegration gefunden, den ich euch nicht vorenthalten will.
RSS- und andere Newsfeeds sind ne tolle Sache, das ist klar. Nur haben sich bei mir mittlerweile eine Menge Feeds angesammelt bei denen es mal vorkommt, dass einige der Blogs und Podcasts umgezogen oder nicht mehr erreichbar sind. Ab und zu kommt es auch vor, dass der Feed umgestellt wird ohne eine Weiterleitung einzurichten.
Im kleinen koennte man hier ab und zu mal seine Liste manuell checken um zu sehen was Sache ist. Bei mir sind es allerdings > 160 Feeds. Darum habe ich ein kleines Tool geschrieben, das im Endeffekt nichts anderes macht als sich die Feeds aus einer opml-Datei zu holen, diese abzurufen und den HTTP-Response-Code auszuwerten. Dazwischen werden noch ein paar moegliche Fehler abgefangen.
Feeds, bei denen Weiterleitungen aktiv sind, Seiten bei denen der Feed nicht gefunden wurde oder zu denen aus anderen Gruenden keine Verbindung aufgebaut werden kann, werden ausgegeben. Bei umgeleiteten Feeds wird noch die URL, auf die umgeleitet wird, angezeigt.
Anwenden kann man das Tool in dem man es herunter laedt, ausfuehrbar macht und auf der Kommandozeile aufruft. Als ersten Parameter erwartet das Script eine opml-Datei:
./feedchecker.rb /tmp/rss.opml
Vorausgesetzt wird ein Ruby-Interpreter. Ich habe das ganze in der Version 1.8.6 getestet. Es werden zudem noch ein paar Teile der Ruby-Kernbibliothek benutzt. Das Teil ist in recht kurzer Zeit entstanden und daher ist es durchaus moeglich, dass in den 52 Zeilen Ruby-Code noch der eine oder andere Fehler steckt. ![]()
Fehlerberichte oder Verbesserungsvorschlaege sind durchaus erwuenscht und koennen als Kommentar, per Mail oder Jabber abgegeben werden.
Nachdem ich mich in letzter Zeit so nebenbei etwas mit Ruby beschaeftigt habe und mir heute nach dem Download einiger Podcasts die Dateien mit "%20" im Dateinamen praesentiert wurden, wollte ich das mal mit Ruby statt zmv loesen.
Nach etwa zwei Minuten ist dabei dieser Einzeiler, der sich direkt auf der Ruby-Shell (irb) ausfuehren laesst, heraus gekommen:
Dir["*.mp3"].each { |file| File.rename(file, file.gsub(/%20/, "_")) }
Hier wird einfach bei jeder *.mp3 Datei im Verzeichnis das %20 im Dateinamen durch einen Unterstrich ersetzt.
Ich muss sagen, dass mir Ruby als Programmiersprache immer mehr gefaellt. Irgendwie hat das ganze eine Leichtigkeit, die man in anderen Sprachen vermisst.
block = lambda {|x,y| x.times {puts y}}
block.call(5,"fooBar")
Diese zwei Zeilen Rubycode geben einfach 5 mal "fooBar" aus.
Gestern hatte ein Bekannter von mir Probleme aus einer Textdatei oder Shell-Pipeline Email-Adressen zu extrahieren. Ich habe darauf hin ein kleines Perlscript dafuer angefertigt. Falls jemand so etwas brauchen kann, darf er es weiter verwenden.
use strict;
use IO::Handle;
my @linearr;
if ($ARGV[0]) {
my $infile = $ARGV[0];
open FILEIN, "< ", $infile or die $!;
@linearr = <FILEIN>;
close FILEIN;
} else {
@linearr = <STDIN>;
}
foreach my $line (@linearr) {
if ( $line =~ m/(\w[-.\w]+\@[-.\w]+.\w{2,3})\W/) {
print("$1\n");
}
}
Man kann Script auf zwei Arten verwenden: Entweder man uebergibt eine Datei als Parameter "./emailscript.pl /pfad/zur/datei" oder man "piped" die Daten in das Script "cat /pfad/zur/datei | ./emailscript.pl".
Ich wuensche euch viel Spass damit


