Hatori Kibble

Jo eh…

Posts Tagged ‘Perl

InetBib-Listenarchiv als RSS-Feed

with 5 comments

Viele LeserInnen die InetBib eher passiv konsumieren haben den RSS-Reed über Gmane genutzt.

Allerdings gab Ende Juli der Entwickler bekannt, diesen Dienst nicht weiter betreiben zu wollen:

So… it’s been 14 years… I’m old now. I almost threw up earlier tonight because I’m so stressed about the situation. I should retire and read comic books and watch films. Oh, and the day job. Work, work, work. Oh, and Gnus.

I’m thinking about ending Gmane, at least as a web site.

Als Alternative habe ich jetzt ein kleines Skript geschrieben, dass aus den Inhalten des Listenarchivs einen RSS-Feed baut.

InetBib als RSS-Feed

InetBib als RSS-Feed

Wer also will, kann ab sofort InetBib über https://200110.vs.webtropia.com/rss/inetbib.xml abonnieren. Das Perl-Skript dazu habe ich auf GitHub gestellt, es kann gerne weiterverwendet werden.

 

Written by Peter

August 16, 2016 at 9:14 pm

Veröffentlicht in Perl, Programmierung, Scripts

Tagged with , , ,

Mit offenen lobid-Daten raten!

with 3 comments

Für ein kleines Datenanalyseprojekt brauche ich die Gender-Verteilung einer Namensliste. Das manuelle Durcharbeiten und Anlegen einer Strichliste ist relativ öde, daher habe ich nach einer automatisierten Lösung gesucht und einen schönen Anwendungsfall für offene Daten gefunden…

Das hbz bietet ja mit lobid.org eine API für die Abfrage der „Gemeinsamen Normdatei“ an. In der GND-Ontologie ist ein Gender-Eintrag definiert und manchmal auch vergeben.

Jane Austen in der GND

Jane Austen in der GND

In weiterer Folge habe ich jetzt ein kleines Perl-Modul geschrieben, das die GND Personendaten durchsucht und für die ersten 100 Treffer die Gender-Einträge analysiert.  Daraus wird dann eine statistische Präferenz abgeleitet:

> perl guess.pl Peter
'Peter' is probably 'male'

 

Here's the statistics data that I've used: $VAR1 = {
          'GenderRatio' => {
                             'Female' => '8.33333333333333',
                             'Male' => '91.6666666666667'
                           },
          'GenderDistribution' => {
                                    'female' => 2,
                                    'male' => 22,
                                    'notKnown' => 43
                                  },
          'GenderCount' => 67,
          'TotalCount' => 100
        };
> perl guess.pl Sarah
'Sarah' is probably 'female'

 

Here's the statistics data that I've used: $VAR1 = {
          'GenderRatio' => {
                             'Female' => '95.4545454545455',
                             'Male' => '4.54545454545455'
                           },
          'GenderDistribution' => {
                                    'female' => 21,
                                    'male' => 1,
                                    'notKnown' => 41
                                  },
          'GenderCount' => 63,
          'TotalCount' => 100
        };

Aus den Statistikdaten wird klar, wie schlecht die Datenlage eigentlich ist, in den meisten Fällen wurde in der GND notKnown vergeben. Trotzdem ist das Ergebnis für „Standardnamen“ relativ eindeutig.

Schwieriger wird es für Vornamen, die sowohl weiblich als auch männlich besetzt sind (Uli, Kim, Andrea, etc..).

Bei „Andrea“ schlägt auch noch die automatische Trunkierung zu  und der Name wird zu 92 % als männlich klassifiziert.

Trotz dieser Schwächen ist dieses Verfahren aber immer noch eine pragmatische Lösung und ein schönes Beispiel für die (Nach-)Nutzung bibliothekarischer Arbeit.

Wer das Modul verwenden will, oder Bugreports oder Verbesserungsvorschläge hat: hier geht’s zum GitHub-Repository!

Written by Peter

April 26, 2014 at 5:26 pm

Veröffentlicht in Perl, Programmierung, Scripts, Software

Tagged with , , , , ,

Neulich im Feedreader (Teil IX): Gut abgehangene Ratschläge, GitHub und literarische Rätsel…

leave a comment »

So, diese Rubrik gab es hier schon länger nicht mehr…

I play a bit of football in the park with my friends, and it’s not regulation NFL American Football or anything, but I’m curious if it’s cool when going for a punt to start a game, a friend of mine likes to pull the ball at the last possible second. She says it’s a big joke and my other friends laugh a bit too so maybe I’m just being too sensitive. Are there rules I can point her to showing this isn’t allowed?
posted by RoundHeadedKid to Sports, Hobbies, & Recreation at 17:04 – 13 answers  +
Long story short, I’ve been away a long time, but it’s time to go home. I need to get from Troy to Ithaca ASAP, but don’t trust my old map and my transportation is not always reliable either. Any tips for finding the best, most direct route and avoid annoying traffic snarls and other delays? Difficulty: No GPS. [more inside]
posted by Ody to Travel & Transportation at 21:10 – 28 answers +

 

 

 

Written by Peter

April 7, 2014 at 9:23 pm

Kleiner „Making Of“-Post

with one comment

Im gestrigen Geburtstagspost gab es einige hübsche Wordclouds zu sehen. Diese Grafiken wurden mit Wordle erstellt. Dafür brauchte ich aber die Rohdaten zu meinen Posts aufgeteilt auf die einzelnen Jahre.

Glücklicherweise hat WordPress eine XML-RPC Schnittstelle, darüber lässt sich relativ einfach ein entsprechendes Script basteln:

wordpress_fetch.pl

usage:
 wordpress_fetch.pl [long options...]
 wordpress_fetch.pl --help

description:
 this script connects via the XMLRPC API to your WordPress blog, fetches
 your posts and saves them into the text file '<YEAR>_blog_output.txt'.
If textonly is set, then HTML tags and WordPress codes are stripped.
You can set the options via the command line or create a JSON config file
 and point the parameter --config to it. (See config.json_example)
options:
   --blog_url blog url, e.g. 'http://xyz.wordpress.com' [Required]
   --config Path to command config file
   --help -h --usage -? Prints this usage information. [Flag]
   --max_posts number of posts the script should fetch ideally
       bigger than your post count, to fetch all your
        posts in one go [Default:"250"; Integer]
   --password WordPress password [Required]
   --textonly strip HTML tags and WordPress codes, default is false [Flag]
   --username WordPress username [Required]

Ein Backup seiner eigenen Daten zu haben ist ja immer empfehlenswert. Wer das Skript nachnutzen oder weiterentwickeln will, kann sich den Quelltext aus dem GitHub-Repository holen.

Written by Peter

Januar 21, 2014 at 9:25 pm

Veröffentlicht in Perl, Programmierung, Scripts

Tagged with , , , ,

Herr Kratochwil schaut nach… (in der Deutschen Digitalen Bibliothek)

with one comment

Anfang November hat die Deutsche Digitale Bibliothek eine API veröffentlicht. Natürlich reizt das den Nerd in mir etwas damit herumzuspielen…

Im Moment interessiert mich das Thema „virtuelles Stöbern“ und das Präsentieren von digitalen Sammlungen. Der einfachste Anwendungsfall für diese API wäre also natürlich eine deutsche Variante des EuropeanaBot gewesen.

Spannender fand ich dann aber die Möglichkeit, ein Blog mit interessanten Digitalisaten zu bespielen, ähnlich wie The Mechanical Curator (vgl. auch diesen Artikel). Mit diesem Projekt haben die KollegInnen der British Library eine Art „digitale Persönlichkeit“ aufgebaut:

Such is the whim of our newest colleague, The Mechanical Curator. She plucks from obscurity, places all before you, and leaves you to work out the rest.

Als deutsche Entsprechung dazu hatte ich mir den „Herrn Kratochwil“ überlegt: ein älterer Kollege, der durch die digitalen Archive schlurft, plötzlich wieder vor einem auftaucht und irgendwelche tollen Funde präsentiert.

Herr Kratochwil schaut nach..

Herr Kratochwil schaut nach…

Im Moment ist das alles noch sehr primitiv, wie beim EuropeanaBot werden Ortsnamen als Suchterme verwendet und aus den Ergebnissen wird ein Blogpost erstellt. Die einzelnen Beiträge erhalten die Schlagwörter und Kategorien des Digitalisats. Im Prinzip entsteht dadurch so etwas wie ein WordPress OPAC (falls sich noch jemand daran erinnert..) aus ausgewählten Fundstücken.

Bei TwitterBots stehen die einzelnen Ergebnisse immer relativ isoliert für sich und sind flüchtig. Innerhalb eines Blogs würde sich jetzt die Möglichkeit ergeben, neue Zusammenhänge zwischen den Objekten zu erstellen und Suchergebnisse als Ausgangspunkte für neue Entdeckungen zu nehmen.

In diese Richtung soll sich dieses Blog entwickeln…

Technisch basiert das Projekt auf einem Perl-Dämon, der periodisch die Deutsche Digitale Bibliothek durchsucht und über eine XML-RPC Schnittstelle das Blog ansteuert. Der Quellcode steht auf GitHub und kann gerne weiter verwendet werden.

Written by Peter

Dezember 2, 2013 at 8:21 am

Mehr Bücher (inkl. einem Atlas) auf GitHub…

leave a comment »

Vor einiger Zeit hatte ich ja über das kollaborative Erstellen von Texten mit GitHub geschrieben. Unlängst habe ich wieder ein paar schöne Beispiele gefunden: z.B.: Das „Modern Perl Book“. Ursprünglich wurde dieses Projekt 2009 gestartet, um die neuen Features von Perl 5 etwas bekannter zu machen:

Remember, however, the Internet rarely forgets. A Perl tutorial which represented the best version of Perl from 1991 may still be around — and thanks to search engines, it may be the most highly recommended tutorial anywhere. Eighteen years later, Perl’s moved on. We’ve learned a lot since then.

The best way to write Perl programs in 1991 or 2001 or 2004 isn’t necessarily the best way to write Perl programs in 2009. It’s time to discuss and document and disseminate all of the wisdom of the greater Perl community. It’s time to talk about modern Perl.

Der Text des Buches wird auf GitHub gehostet und kann dadurch von jeder GitHub-Nutzerin/jedem GitHub-Nutzer verbessert werden. 46 Leute haben diese Gelegenheit auch genutzt und so listet die Commit-History bereits 961 Beiträge.

Die Kapitel liegen als reine Textdateien (im POD-Format) vor. Dies erleichtert einerseits die Änderungsverwaltung, anderseits ist das verwendete Format ein guter Ausgangspunkt für Konvertierungen. Man kann sich also selbst aus dem Quelltext eine PDF- oder EPub-Version bauen.

Eine Ideensammlung (daher etwas unstrukturiert) zum Thema kollaboratives Bücherschreiben gibt es auch bei den „GitHub Official Teaching Materials“.

Aber dieses Verfahren wird jetzt nicht nur bei kleinen Community-Projekten eingesetzt, mit „Atlas“ (Website, Blog) beteiligt sich mit „O’Reilly“ auch ein großer Verlag daran. Diese neue Plattform klingt erstmal ziemlich interessant:

  • The platform is based on Git (version control), but for text content. In other words, it uses all of the same processes that we developers use (eg. commits, reverts, branches, pull requests, etc.), but now it’s intended to be used for written content instead of for code, to make it easier for writers to collaborate (or just to keep track of different drafts and revert to older versions of specific parts of the book as needed).
  • The platform includes a web-based text editor for editing the actual content of your book. You can either do all your writing in there, or copy-paste from Word, and apply formatting using their GUI or the mark-up language AsciiDoc. The mark-up is designed so that regardless of how you choose to apply your formatting, it can properly be converted to and should look good in all formats (print, e-book, desktop, and mobile).There are some screenshots of what the web editor looks like here.
  • Once you’re ready to publish, the one source file for your book that you’ve been working on can generate a print book format, an e-book format, a desktop browser format, and a mobile-optimized browser format. What I’m not sure about is whether you’re still responsible for the distribution of these various formats yourself (ie. you need to host the websites, secure a publishing deal, etc.) or whether O’Reilly and the platform also provide for that.

Mehr Informationen (inkl. einem kleinem Video) zu Atlas gibt es auf dieser Seite, einige mit „Atlas“ erstellte Bücher kann man bereits online lesen.

Written by Peter

August 19, 2013 at 7:15 am

Veröffentlicht in Allgemein, E-Books, Perl, Scripts, Soziale Netzwerke

Tagged with , , , , , ,

Kleiner Nischenpost…

with one comment

Zugegeben die Zielgruppe ist doch sehr überschaubar, aber für Perl-Anwender, die das E-Paper der taz abonniert haben, gibt es jetzt auf GitHub ein neues Modul TazDownloader.

use TazDownloader;

my $T=TazDownloader->new(User=>'foo', Password=>'bar');

print $T->isAvailable(Date=>'Tomorrow'); # "true|false"

print $T->isAvailable(Date=>'Today'); # "true|false"

print $T->isAvailable(Date=>'23.02.2013'); # "true|false"

print $T->isAvailable(Date=>'23.02.2013', Format=>'ascii'); # "true|false"

$T->downloadIssue(TargetDir=>"/tmp", 
                  Format=>'epub_faks', 
                  Date=>'23.02.2013' 
                 );

Über Rückmeldungen und Verbesserungsvorschläge würde ich mich freuen und über Hinweise auf Bugs – na ja.. – natürlich auch!

Written by Peter

Februar 24, 2013 at 3:17 pm

Veröffentlicht in Basteln, Perl, Programmierung, Scripts, Software

Tagged with , , ,