Tillbaka till fram… forntiden

Till alla som inte som inte riktigt anammat RSS som en metod för att ta reda på vad som skrivs i våra bloggar Rumor Control och Driftbloggen kan vi nu erbjuda ett riktigt smidigt alternativ: de senaste rubrikerna via finger.

Finger är ett gammalt avdankat 70-talsprotokoll som det finns stöd för i praktiskt taget varenda dator man kan tänka sig. För första gången på riktigt länge erbjuds nu dessutom något att verkligen använda det till. 😉

Om du är Windows-användare, gör så här: Klicka på Start-knappen och välj ”Kör”. Skriv sedan in cmd i fältet ”Öppna” och klicka på OK. Du blir nu presenterad ett konsolfönster.

Om du vill få reda på de senaste rubrikerna från bloggen Rumor Control, skriv som följer:

C:\>finger rumor@loopia.se

[loopia.se]
10 latest headlines from Rumor Control (https://blogg.loopia.se):

Förenklad hantering av .se-domäner (https://blogg.loopia.se/?p=32)
Möt oss i Sollentuna (https://blogg.loopia.se/?p=31)
Driftstörning på driftbloggen (https://blogg.loopia.se/?p=30)
Utveckla Loopia (https://blogg.loopia.se/?p=29)
ASP.NET 2.0 SP1 (https://blogg.loopia.se/?p=28)
Från PHP4 till PHP5 (https://blogg.loopia.se/?p=27)
Domänåret 2007 (https://blogg.loopia.se/?p=26)
Säg nej till Google (https://blogg.loopia.se/?p=25)
Sidan kan inte visas (https://blogg.loopia.se/?p=23)
Hjälp din sökmotor (https://blogg.loopia.se/?p=22)

C:\>

Vill du få reda på de senaste rubrikerna från vår driftblogg, skriv så här:

C:\>finger drift@loopia.se

[loopia.se]
10 latest headlines from Driftinformation från Loopia (http://www...

Webserver s8 (Avslutat) (http://www.driftbloggen.se/?p=37)
Webserver s7 (Avslutat) (http://www.driftbloggen.se/?p=36)
Statistik (avslutat) (http://www.driftbloggen.se/?p=35)
Webserver (avslutat) (http://www.driftbloggen.se/?p=34)
Omstart av webserver (avslutat) (http://www.driftbloggen.se/?p=33)
Omstart av webserver (avslutat) (http://www.driftbloggen.se/?p=32)
Webserver (avslutat) (http://www.driftbloggen.se/?p=31)
Underhåll, webservrar (avslutat) (http://www.driftbloggen.se/?p=30)
Tillfällig driftstörning (avslutat) (http://www.driftbloggen.se/?p=29)
Underhåll, webservrar (avslutat) (http://www.driftbloggen.se/?p=28)

C:\>

Om du bävar för att skriva massa text i ett konsolfönster finns det givetvis webbaserade alternativ. Då behöver du inte heller tänka på eventuella problem med teckenuppsättningar och annat.

Dela detta inlägg:

5 tankar kring ”Tillbaka till fram… forntiden

  1. Jimmy Mäkelä

    Tilläggas bör att http://tools.ietf.org/html/rfc1288#section-2.5.5 exemplifierar allt som internet en gång stod för.

    Jag citerar:

    Vending machines SHOULD respond to a {C} request with a list of all items currently available for purchase and possible consumption. Vending machines SHOULD respond to a {U}{C} request with a detailed count or list of the particular product or product slot. Vending machines should NEVER NEVER EVER eat money.

    En standard som tar sig friheten att specifiera hur automater ska hantera protokollet avspeglar hur hemtrevligt internet var 1991. För att inte tala om den berömda glimten i ögat. Det skulle aldrig hända i dagens internet där profithungriga företag styr.

    Men å andra sidan fanns ju inte vår underbara blog 1991 och den är ju ganska hemtrevlig den också, så det finns nog hopp även för framtiden.

  2. jonas321

    Skulle vara fasligt kul att vet hur ni faktiskt genomförde detta också!

    //Jonas.

  3. Jimmy Mäkelä
    #!/usr/bin/perl
    
    package lfingerd;
    
    use Net::Server::PreForkSimple;
    @ISA = qw(Net::Server::PreForkSimple);
    
    use XML::RSS::Parser;
    use LWP::Simple qw(get);
    use Encode qw(from_to);
    
    use utf8;
    
    &main();
    exit 1;
    
    sub process_request {
      my $query = "";
    
      do {
        my $buf;
        my $err = sysread STDIN, $buf, 1024;
        if (defined($err) && $err > 0) {
          $query .= $buf;
        }
      } while (defined($err) && $err > 0);
    
      chomp $query;
      $query =~ s/[\s\r\x00]+$//;
    
      if ($query =~ /drift/) {
        fetch_and_print_rss("http://www.driftbloggen.se/?feed=rss2")
          || print "No news available.\r\n";
      } else {
        fetch_and_print_rss("http://blogg.loopia.se/?feed=rss2")
          || print "No news available.\r\n";
      }
    }
    
    sub main {
      lfingerd->run(port => 79, max_servers => 2);
    }
    
    sub fetch_and_print_rss {
      my $url = shift;
    
      eval {
        my $xml = get($url);
        die("error fetching xml") unless defined($xml);
    
        my $p = XML::RSS::Parser->new;
        my $feed = $p->parse_string($xml);
        die("error parsing RSS") unless defined($feed);
    
        # output some values
        my $feed_title = 
          $feed->query('/channel/title')->text_content;
        #from_to($feed_title, "utf-8", "us-ascii");
        my $feed_url = 
          $feed->query('/channel/link')->text_content;
    
        print $feed->item_count 
          . " latest headlines from $feed_title ($feed_url):\r\n\r\n";
    
        foreach my $i ( $feed->query('//item') ) {
          my $content = $i->query('title')->text_content;
          my $url = $i->query('link')->text_content;
    
          #from_to($content, "utf-8", "us-ascii");
          print "$content ($url)\r\n";
        }
      };
    
      if ($@) {
        print STDERR "Caught exception in fetch_and_print_rss: $@\n";
        return 0;
      }
    
      return 1;
    }
  4. Fredrik Berglund Inläggsförfattare

    Det skall noteras att Jimmy (som alltså skrivit vår finger-tjänst) givetvis använde åtta tecken långa tabbar as intended by God, men jag har kortat ned dem något för att slippa alltför långa rader.

  5. daniel

    Är sjukt imponerad! Gränsar mellan otroligt användbart och helt onödigt. Som alla genialiska lösningar 🙂

Lämna ett svar

E-postadressen publiceras inte. Obligatoriska fält är märkta *