Es melden sich immer mehr Blogs bei https://read.greatblogs.org/ an. Auch Foodblogs. Jetzt sind @kuechenlatein und ich da nicht mehr ganz so allein. 😅

#foodblog #blog #GreatBlogs

Read Great Blogs - Tolle Artikel aus der BlogosphÀre finden

Durchstöbere alle gelisteten Blogs und finde tolle Artikel

GreatBlogs - Ein Webcrawler entsteht - Norbert Eder

Im letzten Beitrag zu GreatBlogs ging es um die Resourcen-Optimierung der bereits bestehenden Software. Nachdem ein erster Nutzen des Projektes vorhanden ist, geht es ans Eingemachte. Um das eigentliche Suchthema. Dazu braucht es mehrere Dinge, eines davon ist ein Webcrawler, der nach Inhalten sucht. Grundlegende Idee Die Idee des Webcrawler ist, von einem Startpunkt ausgehend, 
 „GreatBlogs – Ein Webcrawler entsteht“ weiterlesen

Norbert Eder

GreatBlogs – Ein Webcrawler entsteht

Im letzten Beitrag zu GreatBlogs ging es um die Resourcen-Optimierung der bereits bestehenden Software. Nachdem ein erster Nutzen des Projektes vorhanden ist, geht es ans Eingemachte. Um das eigentliche Suchthema. Dazu braucht es mehrere Dinge, eines davon ist ein Webcrawler, der nach Inhalten sucht.

Grundlegende Idee

Die Idee des Webcrawler ist, von einem Startpunkt ausgehend, neue Seiten bzw. Aktualisierungen zu finden. Diese wandern in einen Index und werden in weiterer Folge von einem anderen Prozess thematisch kategorisiert und mit einer Relevanz versehen.

Erste Iterationen und Learnings

Theoretisch ist ein Webcrawler eine einfache Sache. Aber wie immer in der Softwareentwicklung trifft Theorie auf Praxis und es gibt Themen, die unerwartet sind, aber auch solche, die bewusst auf spÀter verschoben werden.

Ich wÀhlte einen iterativen Ansatz mit dem Ziel, einen einfachen Crawler funktional zu haben und diesen in weiterer Folge kontinuierlich zu optimieren und um neue Features anzureichern.

Webcrawler v0.1.0

Wie auch das bisherige Backend, ist der Webcrawler mit Go geschrieben. Er gibt sich als gbbot zu erkennen. Ausgehend von einer Startdomain wird diese durchsucht und sowohl die einzelnen Seiten dieser Domain, als auch weitere Domains persistiert.

Im nĂ€chsten Schritt werden die neu gefundenen Domains durchsucht – nach demselben Verfahren.

Mit net/http und net/url bring Go alles mit, was man braucht.

Webcrawler v0.2.0

Bereits nach dem dritten Durchlauf gab es eine Unmenge an Domains, die natĂŒrlich mit dem Thema Blogs nichts mehr zu tun hat. Im Grunde finden sich alle Social Media-Plattformen und großen Tech-Buden in der Liste. Es muss also doch eine manuelle Freischaltung her.

Es werden zwar weiterhin alle gefundenen Domains gespeichert, allerdings mĂŒssen die zu crawlenden Domains manuell aktiviert werden. Das ist zwar aktuell Handarbeit, aber ohne eindeutige Erkennung, dass es sich hierbei um ein Blog handelt, gibt es keine andere Möglichkeit.

Der bisherige Nachteil: Das Parsen und Verfolgen ist nicht ganz billig.

Webcrawler v0.3.0

Um den gesamten Parsing-Prozess zu verbessern, wird nun zu Beginn ĂŒberprĂŒft, ob es eine sitemap.xml gibt. Wenn ja, wird diese herangezogen. Sitemap-Index-Dateien werden genauso unterstĂŒtzt, wie Standard-Sitemap-Dateien.

In diesem Fall werden nur diese Seiten evaluiert und lediglich neue gefundene Domains mitgeschrieben, aber keinen weiteren Links gefolgt.

Das ist in Summe wesentlich performanter bzw. speichereffizienter, als sich alle gecrawlten Seiten zu merken und beim Durchsuchen des Trees zu prĂŒfen, ob der gefundene Link bereits ĂŒberprĂŒft wurde.

FĂŒr die Arbeit mit den Sitemap-Dateien setze ich auf gopher-parse-sitemap. Die Lib ist schon Ă€lter, aber die AbhĂ€ngigkeiten sind ĂŒberschaubar und am Sitemap-Standard hat sich nichts weiter geĂ€ndert, also kein Problem.

Learnings

Defensives Programmieren und so, ihr kennt das.

Aber das, was der Crawler da so findet, ist teilweise schon sehr grenzwertig. Auf jeden Fall muss er mit zahlreichen “Edge-Cases” umgehen können:

  • Veraltete Links in Form von HTTP statt HTTPS
  • Client-Links
  • Malformed Links
  • Dead-Links
  • Nicht mehr existierende Domains

Und da gibt es noch weitere FĂ€lle. Manchmal wĂŒrde ich tatsĂ€chlich gerne einige Domaininhaber*innen anschreiben und ihnen einen Liste von unsinnigen Links mitteilen – aber das ist eine völlig andere Geschichte.

Weitere Verbesserungen

NatĂŒrlich gibt es noch viel zu tun, denn der Webcrawler ist bei weitem noch nicht optimal. Das sind die Themen, die als nĂ€chstes anstehen.

  • BerĂŒcksichtigung robots.txt
  • EinschrĂ€nkung Sprache (vorerst Deutsch)
  • BerĂŒcksichtigung /slashes

Danach wird es in Richtung “Themen-Erkennung” der BeitrĂ€ge gehen.

Bei Interesse also bitte gerne bei GreatBlogs vorbeischauen.

#golang #GreatBlogs #Webcrawler

GreatBlogs - Ressourcen-Optimierung, RSS und Co. - Norbert Eder

In GreatBlogs – Technik-Umschwung am Frontend habe ich schon Änderungen an der Technologie-Auswahl angekĂŒndigt. Ein Teil dessen wurde mittlerweile auch umgesetzt. Schauen wir uns die Änderungen im Detail an. Feed-Generierung Der Beitrags-Feed wurde im ersten Schritt mit Vue.js realisiert. Das ist nett, aber im Grunde ergibt das dann doch bei jedem Aufrung eine Query gegen 
 „GreatBlogs – Ressourcen-Optimierung, RSS und Co.“ weiterlesen

Norbert Eder

WÀhrend ich an #GreatBlogs arbeite, rippe ich gerade meine alten CDs - und erhöhe von MP3 auf FLAC.

#musik #mp3 #flac

Blogs finden und verbinden – wenig reicht auch

Norbert hat da ein tolles Projekt angeschoben. Vielleicht ist es auch fĂŒr euch interessant. GreatBlogs Search Engine Schaut es euch mal an. Aurelia

GreatBlogs Update5 – Prototyp fĂŒr Suche

Eine Websuche besteht aus mehreren Bestandteilen. Einer davon ist ein WebCrawler, der nach neuen BeitrĂ€gen und Aktualisierungen sucht. HierfĂŒr habe ich bereits einen Prototypen vorliegen und möchte einige Erkenntnisse und weitere Schritte dokumentieren. [
]

https://c0d1.eu/greatblogs-update5-prototyp-fuer-suche/

GreatBlogs – Ressourcen-Optimierung, RSS und Co.

In GreatBlogs – Technik-Umschwung am Frontend habe ich schon Änderungen an der Technologie-Auswahl angekĂŒndigt. Ein Teil dessen wurde mittlerweile auch umgesetzt. Schauen wir uns die Änderungen im Detail an.

Feed-Generierung

Der Beitrags-Feed wurde im ersten Schritt mit Vue.js realisiert. Das ist nett, aber im Grunde ergibt das dann doch bei jedem Aufrung eine Query gegen die Datenbank. Nun ist es nicht so relevant, auf Sekundenbasis neue BeitrÀge tatsÀchlich auch zu listen. Die Entscheidung, den Feed-Reader zu generieren und statisch auszuliefern, war daher sehr einfach.

Go bietet eine Templating-Engine an, die fĂŒr diese Zwecke perfekt ist. Also habe ich Templates und Styles entworfen und per Go hole ich die relevanten Daten, jage sie durch die Templating-Engine und fertig ist das Ergebnis.

Da ohnehin alle 30 Minuten per Cronjob die registrierten Feeds aktualisiert wird, wird im Zuge dessen auch die Feed-Seite im Anschluss neu generiert.

Blogger Auflistung

In dieselbe Kerbe schlĂ€gt die neue Blogger-Auflistung. Diese zeigt alle registrierten Blogs an. Da sich diese noch seltener Ă€ndert, reicht eine Aktualisierung einmal am Tag. Auch dies wird ĂŒber einen Cronjob durchgefĂŒhrt.

RSS-Feeds

Wie im Screenshot oben zu sehen ist, werden mittlerweile auch RSS-Feeds angeboten. HierfĂŒr gibt es eine praktische Go-Bibliothek: Gorilla Feeds.

Mit dieser Bibliothek können Atam bzw. RSS 2.0 Feeds sehr einfach erzeugt werden. Die Einbindung von Feeds ist damit ein Kinderspiel.

Hilfsmittel

Es gibt ja neben der technischen Aspekte weitere Themen zu bedienen: Usability, Accessability, Performance und natĂŒrlich auch IT-Themen. Das Einrichten und Konfigurieren von Cronjobs oder des Webservers zum Beispiel. Hier ein paar Links zu hilfreichen Webseiten:

#golang #GreatBlogs #RSS #templating

GreatBlogs - Technik-Umschwung am Frontend - Norbert Eder

Es tut sich was bei GreatBlogs. Ich hatte ja im Beitrag GreatBlogs – Projekt und Technik geschrieben, dass ich großteils einen neuen Dev-Stack einsetze. Wie das dann so ist, kann sich sehr schnell etwas daran Ă€ndern und das wird es auch. Den Grund und noch weitere Themen gibt es in diesem Beitrag. Statische Seiten brauchen 
 „GreatBlogs – Technik-Umschwung am Frontend“ weiterlesen

Norbert Eder

GreatBlogs Update4 – RSS Feeds, Blogauflistung

Die vergangenen Abende waren wieder gut gefĂŒllt. Einige Arbeiten an GreatBlogs wollten durchgefĂŒhrt werden. Was ist denn nun alles neu? [
]

https://c0d1.eu/greatblogs-update4-rss-feeds-blogauflistung/

GreatBlogs Update4 - RSS Feeds, Blogauflistung

Die vergangenen Abende waren wieder gut gefĂŒllt. Einige Arbeiten an GreatBlogs wollten durchgefĂŒhrt werden. Was ist denn nun alles neu? Update Einstiegsseite Nichts Großes, aber die allgemeine Einstiegsseite hat eine Anpassung erhalten: RSS/Atom-Feeds Read Great Blogs bietet nun

C0d1 Online

BeschÀftigt sich die BlogosphÀre zu sehr mit sich selbst?

Erik von Blogissimo stellte sich die Frage BeschĂ€ftigt sich die BlogosphĂ€re zu viel mit sich selbst. Eine gute und wichtige Frage. Er beantwortet sie mit Ja. Da ich auch direkt angesprochen wurde, möchte ich nun auch - nach ein paar Tagen des Reflektierens - meinen Senf dazu geben. [
]

https://c0d1.eu/beschaeftigt-sich-die-blogosphaere-zu-sehr-mit-sich-selbst/

BeschÀftigt sich die BlogosphÀre zu sehr mit sich selbst?

Erik von Blogissimo stellte sich die Frage BeschÀftigt sich die BlogosphÀre zu viel mit sich selbst. Eine gute und wichtige Frage. Er beantwortet sie mit Ja. Da ich auch direkt angesprochen wurde, möchte ich nun auch - nach ein paar Tagen des Reflektierens - meinen Senf dazu geben. Eriks Basi

C0d1 Online

GreatBlogs Update3 – Neue Feedanzeige im Test

Es tut sich etwas. Der in Update1 eingefĂŒhrte Feed wurde durch einen neuen ersetzt. [
]

https://c0d1.eu/greatblogs-update3-neue-feedanzeige-im-test/

GreatBlogs Update3 - Neue Feedanzeige im Test

Es tut sich etwas. Der in Update1 eingefĂŒhrte Feed wurde durch einen neuen ersetzt. Unter read.greatblogs.org findest du den neuen Feed aller beteiligten Blogs. Vorerst werden nur BeitrĂ€ge der vergangenen 24 Stunden angezeigt. Das wird sich aber sehr bald Ă€ndern und es werden mehr angezeigt.

C0d1 Online