Built to Sell

Lange geschlafen und somit nachmittags wieder in den 10h verschobenen Tagesrhythmus. Was will man machen… Ich machte heute erst mal langsam, setzte mich raus auf die Veranda zum Frühstück und wollte heute mal weniger am Computer sitzen. Es gab zu wenige Fortschritte in den letzten Wochen.

Mein alter Tolino Reader lief noch gut, hatte ein Firmware Update, doch das Wichtigste war, dass ich heute Lust hatte „Built to Sell“ zu lesen. Mit ca. 180 Seiten ein kurzes Buch. So verbrachte ich ein paar Stunden mit dem Buch. Leichte Business Lektüre im Erzählungsstil. Wie beim „E-Myth“ bekam ich gut Motivation. Es geht eben um die Standardisierung eines Prozesses und Angebots – ein Geschäft, immer unabhängig von Einzelpersonen. Das verliere ich oft aus den Augen, doch die neueren Geschäftsideen sind schon in etwa kompatibel.

Wes Bos merkte gestern an, dass in Zeiten von Solopreneurs und Media eben der Content zählt. Man bekommt Kunden / Follower mit dem Content – nicht umgedreht. Das ist nur eben kein verkaufbares Geschäft, weil eben die Services / Produkte noch immer vor Bezahlung erstellt werden.

Ich verfolge HN bezüglich der RSS Diskussion, die bei mir gerade auch wieder aktuell wurde. Wenn man nur RSS monetizen könnte… Technisch Interessant war das HNRSS Projekt mit Go Gin. Es gibt auch andere Parser, um aus Websites RSS Feeds zu generieren – vielleicht einfacher per crawdad? Alles in allem aber derzeit unwichtig. Noch gibt’s genug RSS und reddit. Das Dat Protokoll sieht auch cool in Verbindung mit RSS aus.

YouTube gab mit einen Copyright Claim zum Paton Video von vor einem Jahr. Erst jetzt wurde da eine Musik gefunden !? Ganz schlecht, wenn der ContentID Filter alle Videos nochmal spät durchforstet.

Spät eine kleine 20′ Jogging-Runde. Dann fand ich Invidio.us (Github / API ). Das alternative YouTube Interface wäre auch cool für die poptravel site zwischendurch? Mal gucken, wie man das Interface anpassen kann. Geschrieben in Crystal gibt’s einen Docker container für den Start.

In miniflux kann man jeder Feed nur eine Kategorie haben. Die Idee, Feeds nach Ländern zu sortieren (de)+(News) geht also erst mal nicht. Alles in einem Tag dann also, falls internation. Die API scheint ausreichend. Mal gucken, wie weit ich komme, damit ich endlich die ganzen Domains aktive schalte und um’s Leistungsschutzrecht in DE herum komme. Email Empfang für Newsletter Abos wären wichtig – wohl über mailgun?

Viele Ideen, wie ich endlich die popfeed.net Nutze und alles miteinander verbinde, sogar per Discourse einbinden könnte. Da stellt sich auch die Frage, was man reddit entgegenzusetzen hätte…aber darum geht’s erst mal nicht. YouTube ist noch das Einzige, was im kostenlosen Web was bringt.

Über RSS und das Vorrendern der Blöcke ergeben sich auch Möglichkeiten, die wikivoyage Inhalte zu patchen. Man könnte also komfortabel in WP-Kategorien die Seiteninhalte editieren und dann über RSS->HTML/Markdown->Caddy Template realtime in die Seiten kleben. Damit erspart man sich eine Schatten-Directory-Struktur, die ich erst in Betracht zog. Man bekommt so also halb-statische Seiten hin. D.h. die Wikivoyage Seiten-ID wird in’s Template übernommen und dann unter dieser ID + Subpage (/sleep) ein HTML-Block eingebunden. Das geht einfach über Caddy Templates oder dynamisch sogar über WordPress API oder eben RSS?

Das alles begeistert, scheint irgendwie zu kompliziert. Nun muss ich’s nur noch testen.

Also mal schnell Hugo angeworfen und das nette Tailwind Starter Theme installiert:

npm install -g postcss-cli
npm install -g autoprefixer
hugo new site miniflux
cd miniflux/
git init
hugo new posts/hello.md # simple testpost -> change draft to false
cd themes
git submodule add https://github.com/dirkolbrich/hugo-theme-tailwindcss-starter themes/tailwind
cd themes/tailwind/
npm install
rm -rf .git #?
cd ../..
pico config.toml # change themename to tailwind
hugo server --disableFastRender

Ich band einen Test in ein template ein und kam dann nicht weiter. Hugo unterstützt ausschließlich Auth per REST. Mit HTTP-Auth oder dem API-Key aus miniflux komme ich also in Go nicht weiter. Man kann den miniflux Go oder eben Python Client nehmen, dort die Daten als Proxy erhalten. Noch ein Teil mehr im Puzzle aber wohl derzeit die einzige Möglichkeit, die RSS Daten wieder in JSON und dann HTML zu rendern. Also doch wieder zu Flask und Frozen-Flask, mit dem dann die ganzen Blöcke gerendert werden könnten. Da wäre es vielleicht besser, gleich direkt auf die DB zuzugreifen. Es hätte einfacher sein können aber naja. Ich installierte mir Flask mit Frozen.

Über ein kleines Python Script testete ich den Zugang. Per Login/PW ging’s per API Token nicht. Ich schaute in den Sources nach und fand, dass man api_key = „…“ besser definiert – dann ging’s. Man könnte über Flask / Django die Auth machen und eine Proxy für Hugo bauen.

Python ist ja nicht so schlimm. Zwar langsamer als Hugo aber mit ’ner Django Verbindung intelligenter zu handhaben, als alles immer 100% neu zu generieren. Ich dachte außerdem an einen WordPress / PHP Client, um wikivoyage Seiten-IDs, mit WordPress (Slugs) und RSS sync.

Dann erst mal Schluss. Es ist mal wieder Spielzeit. Alte Sachen bewegen sich langsam.

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import miniflux
import json

URL = "http://rss.cosmigo.net/"

# Authentication using an API token
client = miniflux.Client(URL, api_key = "***")

# Get all feeds
feeds = client.get_feeds()

for feed in feeds:

# now feed is a dict
for key, value in feed.items() :
print(key, value) # example usage

Easy. Da könnte ich die ganzen einzelnen Kategorien / Blöcke gleich auf Disk ausgeben, wo Caddy sie dann in die Templates einfügt.

Flask wäre dennoch gut AJAX und echtes routing – vielleicht eben Alpine, Kutty oder eben Stimulus, falls nicht über Phoenix Liveview.

0 Responses to “Built to Sell”


Kommentare sind zur Zeit nicht möglich.
2020-05-17_21-22-16_IMG_20200517_212213831.jpg
2020-05-17_21-22-16_IMG_20200517_212213831.jpg
2020-05-17_21-22-46_IMG_20200517_212244999.jpg
2020-05-17_21-22-46_IMG_20200517_212244999.jpg
2020-05-17_21-23-47_IMG_20200517_212346605.jpg
2020-05-17_21-23-47_IMG_20200517_212346605.jpg
2020-05-17_21-27-15_IMG_20200517_212715280.jpg
2020-05-17_21-27-15_IMG_20200517_212715280.jpg