0
appunti sparsi

Indice

Emacs + org-mode = Zero

Un sito realizzato con Emacs + org-mode

e pubblicato su ZeroNet e su A/I

PaesaggiSonori

sull'Intergalactic File Server ho creato il canale PaesaggiSonori nel quale ho caricato le registrazioni audio effettuate durante il Buskers Festival del 2016 @ Lugo

FeedBot-ZeroBlog   zeronet

in

  • FeedBot-N0blogs-ZeroBlog
  • FeedBot-XXX-ZeroBlog

ho aggiunto

# inserimento del titolo del feed come tag del post
#
            bot_data['tag'] += [{
                'post_id': bot_data['tag'][-1]['post_id'] + 1,
                'value': entry['feed_title']
            }]
#
#

così com'è in FeedBot-Fluss0-ZeroBlog

Beaker   rete

ho appena installato Beaker:

Beaker is an experimental peer-to-peer browser with support for the dat:// protocol

permette di navigare siti p2p che utilizzano il protocollo / dat:// /

i miei siti:

SchiZero

Schizzi

schizo-rotonde

schizo-fritter

dat://

eventualmente si potrebbe anche solo utilizzare, ad esempio, la cli dat con la quale è possibile pubblicare un sito p2p indicizzabile attraverso Hashbase e quindi navigabile anche in chiaro attraverso l'indirizzo sito.hashbase.io

figata

San Martino   aggiornamenti

ho aggiunto la pagina SanMartino dedicata al Festival di arte, design e artigianato del filo e della tessitura organizzato a San Martino di Castrozza (TN) al quale partecipo con alcune mie creazioni

NoSocial   rete

<2018-07-11 mer>

sto provando a collegare il nuovo account su #Mastodon con ZeroMe attraverso ZeroMe Mastodon Bridge

ZeroMe Mastodon Bridge

<2018-07-11 mer>

sto provando ad utilizzare ZeroMe Mastodon Bridge

queste sono le grezze modifiche che ho apportato allo script per farlo funzionare, ovviamente bisognerebbe saperle integrare nel codice in maniera decente

in "%Y-%m-%dT%H:%M:%S.%fZ" sotituisco Z con %z ed elimino la T sostituendola con uno spazio
poi, essendo la timezone scritta senza i due punti (+0000)

ce la metto direttamente io a forza, perché non so fare in altro modo, per adattare il tutto

"%Y-%m-%d %H:%M:%S.%f+00:00"

strptime() argument 1 must be str, not datetime.datetime

quindi bisogna fare argomentodapassare = str(argomentodapassare)

feed2toot   tec rete

<2018-06-21 gio>

finalmente sono riuscito a far funzionare feed2toot (non so cosa non andasse, so solo che con sudo sia nell'installazione che nella configurazione iniziale tutto è andato a buon fine)

adesso inizierò a postare prevalentemente sul mio sito principale attraverso emacs e i vari feed che lo compongono verranno pubblicati ovunque: zeronet, hubzilla, mastodon e… twitter, addirittura, dove ho aperto un account (ancora per poco) poco prima che venisse annuciata l'apertura dell'istanza mastodon https://mastodon.bida.im/

però è un po' un pacco: se metto l'elemento {summary} rischia di superare spesso i 500 caratteri e lui non lo taglia automaticamente, lo segnala come errore, del resto solo {title} {link} sono decisamente pochini

TODO Proxy ZeroNet Privato   tec zeronet

<2018-06-19 mar>

mi annoto qualche discussione che possa tornarmi utile nel caso mi capiti di provare a impostare un proxy privato per i miei siti su ZeroNet

zerocat.eu undergoing DDoS attack && || getting hacked.

quantumkitty

I won't run a proxy again. As I said, there's a vulnerability in ZeroNet public proxies that allows attackers to list the directory of server site folders, and possibly steal private keys and masterseeds. You wake up one morning, server is down, and the SSH terminal TMUX session shows ZeroHello directory files.

Luckily, they only seem to have listed the directory of ZeroHello. I don't know what they were doing there.. it would be interesting to create a honeypot. It may have just been an attempt to shut down the ZeroNet client i.e. DDoS.

My proxy is now running privately.

http://127.0.0.1:43110/Talk.ZeroNetwork.bit/?Topic:1526789823_1NZftAz9VSawGF5JgMYGFv4ByoKEaQbNZu

Zero proxies vulnerability

ZeroNet proxies do not disable Stats plugin. Any people can get access /Benchmark tools externally.

I suppose, it is vulnerability for (D)DOS attack.

http://127.0.0.1:43110/Talk.ZeroNetwork.bit/?Topic:1_1LJP7tDoGnWNppUGJoNS8cJbmYTS1TecCC

Setup A Clearnet Proxy for ZeroNet

I've set up a clearnet proxy, currently for personal use, may open it for everyone later.

http://127.0.0.1:43110/1EiMAqhd6sMjPG2tznkkGXxhdwFBDdeqT9/?Post:44

Deploy ZeroNet to Heroku as a Public or Private ZeroNet Proxy Service

Note: due to formatting issues, some bash commands below have incomplete display. Just copy and paste the bash code block somewhere for the complete commands. Introduction

This is a tutorial on deploying ZeroNet to Heroku as a Python web app. You can host a (1) public or (2) private ZeroNet proxy, or only host (3) your personal zsites (ZeroNet site) statically (with all your zsite contents there) or dynamically (as an open gate to the clearnet and fetch your zsite contents from the zero network) on Heroku…

http://bruce-lab.blogspot.com/2017/11/deploy-zeronet-to-heroku-as-proxy.html

TODO ProxySchizo

ho attivato il proxy personale su HEROKU

http://proxyschizo.herokuapp.com/

ma non funziona, devo vedere dai log quale è il problema…

Running a ZeroProxy

You might have noticed I just started to host two new ZeroProxies

In this post, I will teach you how to host your own.

http://127.0.0.1:43110/kindlyfire.bit/?Post:9:Running+a+ZeroProxy

#+BEGINCOMMENT First things first, you need :

A domain name pointing to your server (I will refer to it as domain.net) A VPS running Debian 8 (You can get one at DigitalOcean (ClearNet))

Connect to your VPS, on Linux and MAC this would be:

$> ssh root@serverip

Update it:

$> apt update $> apt upgrade

Setup the domain name

The domain name you want to use, here domain.net, needs to have an A record pointing to serverip. You can check this with dig:

$> dig domain.net

; <<>> DiG 9.9.5-3ubuntu0.8-Ubuntu <<>> domain.net ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 32341 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;domain.net. IN A

;; ANSWER SECTION: domain.net. 253 IN A 164.132.6.35 <=== THIS IS IT

;; Query time: 23 msec ;; SERVER: 127.0.1.1#53(127.0.1.1) ;; WHEN: Fri Jun 17 23:02:44 CEST 2016 ;; MSG SIZE rcvd: 58

Refer to your domain name provider for help on how to set it up. If you use CloudFlare as DNS provider, make sure CloudFlare protection is disabled for the A record. Get ZeroNet up and running

We will have to download, extract and make ZeroNet run with forever. Let's start:

$> wget https://github.com/HelloZeroNet/ZeroBundle/raw/master/dist/ZeroBundle-linux64.tar.gz $> tar -xvf ZeroBundle-linux64.tar.gz $> rm ZeroBundle-linux64.tar.gz $> wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.31.1/install.sh | bash $> . ~/.nvm/nvm.sh $> nvm install 5 $> npm install forever -g

Now we have both ZeroBundle and forever installed, let's launch it once:

$> cd ZeroBundle ZeroBundle/$> ./ZeroNet.sh

Once you see the following (underneath), hit CTRL + C.

[14:12:02] Ui.UiServer ---------------------------------–— [14:12:02] Ui.UiServer Web interface: http://127.0.0.1:43110/ [14:12:02] Ui.UiServer ---------------------------------–—

Now that ZeroBundle downloaded ZeroNet, we can enable the Multiuser plugin.

ZeroBundle/$> cd ZeroNet/plugins/ ZeroBundle/ZeroNet/plugins/$> mv disabled-Multiuser/ Multiuser/ ZeroBundle/ZeroNet/plugins/$> cd ../..

ZeroNet is installed and we are not going to let it run yet. Before, install Tor using these instructions (ClearNet). After that, you can run ZeroNet :

ZeroBundle/$> forever start -c bash "ZeroNet.sh"

You can check the status of scripts running with forever using forever list. Generate an SSL certificate

No, you're not going to pay for it. We'll use certbot by LetsEncrypt, it's free ! You will have to renew your certificate every 90 days though (edit: this is now done automatically thanks to a cron job added by certbot).

$> echo "deb http://ftp.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list $> apt update $> apt install certbot -t jessie-backports $> certbot certonly -d domain.net –standalone

Carefully read the message returned by the last command, and if it didn't worked then fix the issues it pointed out. If you get a success message, note the file it gives you ! Finally, install nginx

Nginx is like Apache, but faster and just overall better. My friend angristan made an easy installation script:

$> wget https://raw.githubusercontent.com/Angristan/nginx-autoinstall/master/nginx-autoinstall.sh $> chmod +x nginx-autoinstall.sh $> ./nginx-autoinstall.sh

You should follow it as I did:

Welcome to the nginx-autoinstall script.

What do you want to do?

  1. Install Nginx
  2. Uninstall Nginx
  3. Update the script

Select an option [1-3]: 1

This script will install Nginx 1.11.1 (mainline) with some optional famous modules.

Please tell me which modules you want to install. If you select none, Nginx will be installed with its default modules.

Modules to install : PageSpeed 1.11.33.2 [y/n]: n Brotli [y/n]: n Headers More 0.30 [y/n]: n GeoIP [y/n]: n Cloudflare's HTTP/2 + SPDY patch [y/n]: y Cloudflare's TLS Dynamic Record Resizing patch [y/n]: n

Choose your OpenSSL implementation :

  1. System's OpenSSL (default)
  2. OpenSSL 1.0.2h from source
  3. LibreSSL 2.4.1 from source

Select an option [1-3]: 1

Nginx is ready to be installed, press any key to continue… <press enter>

Once that's done, we'll have to create a vhost for nginx.

$> cd etc/nginx /etc/nginx/$> nano nginx.conf

Find the line include etc/nginx/conf.d/*.conf; and add include /etc/nginx/sites/*.conf; behind (or the line after it, just make sure it comes before }). CTRL + X then Y to save. We can now put our vhost in sites:

/etc/nginx/$> cd sites /etc/nginx/sites/$> nano domain.net.donf

Dont forget the .conf suffix, or the file won't load.

Enter this in it:

server { listen 80; servername domain.net; rewrite ^ https://$server_name$request_uri? permanent; }

server { listen 443 ssl http2;

servername domain.net;

sslcertificate /etc/letsencrypt/live/domain.net/fullchain.pem; sslcertificatekey /etc/letsencrypt/live/domain.net/privkey.pem; ssltrustedcertificate /etc/letsencrypt/live/domain.net/chain.pem;

sslprotocols TLSv1.2; sslecdhcurve secp384r1; sslciphers EECDH+AESGCM:EECDH+AES; sslpreferserverciphers on; sslstapling on; sslstaplingverify on; resolver 80.67.169.12 80.67.169.40 valid=300s; resolvertimeout 5s; sslsessioncache shared:SSL:10m; sslsessiontimeout 5m; sslsessiontickets off;

location / { proxypass http://127.0.0.1:43110; proxysetheader Host $host; proxysetheader X-Real-IP $remoteaddr; proxysetheader X-Forwarded-For $proxyaddxforwardedfor; proxysetheader X-Forwarded-Proto $scheme; }

location /Websocket { proxypass http://127.0.0.1:43110; proxyhttpversion 1.1; proxyreadtimeout 1h; #for long live websocket connetion proxysetheader Upgrade $httpupgrade; proxysetheader Connection "upgrade"; }

clientmaxbodysize 20M; }

Don't forget to replace all domain.net with your domain !

nginx -s reload to reload the nginx configuration and you're all set. You should be able to see your proxy by going to domain.net, all good.

If you have any questions, my contact info is in the sidebar.

2 Comments:

  • ssdifnskdjfnsdjk ━ on Jan 19, 2018

    It not worked for me.

    The "forever" not worked on CentOS7. Result: -bash: forever: command not found During installation (npm install forever): npm WARN optional Skipping failed optional dependency /chokidar/fsevents: npm WARN notsup Not compatible with your operating system or architecture: fsevents@1.1.3 npm WARN enoent ENOENT: no such file or directory, open '/root/package.json'

    When i launched ZeroNet.sh it shown no error and log file was updated with various connections, yet i was unable to visit http://myvpsip (timeout)

    – WHAT WORKED for me was this: in directory where is zeronet.py located, create new file zeronet.conf and inside add: [global] uiip = * uiport = 80

    Then run "screen" command and inside run zeronet.py by command: "python zeronet.py", detach screen by (Ctrl+a and "d" key), to re-attach, do command: screen -r

  • darkdevel ━ on Sep 13, 2016

    dyn dns is ok too #+ENDCOMMENT

TODO Cmdline Support For ZeroNet And Zites   tec zeronet

<2018-06-19 mar>

mi appunto questa discussione e il relativo codice prodotto sino ad ora con la speranza di poter integrare un po' più di funzionalità di ZeroNet all'interno di Emacs

http://127.0.0.1:43110/1EiMAqhd6sMjPG2tznkkGXxhdwFBDdeqT9/?Post:77:Idea:+Add+More+Cmdline+Support+For+ZeroNet+And+Zites

la cosa bella sarebbe un zerome-mode per Emacs tipo identica-mode

Git Center   tec zeronet

ho clonato i mei due siti principali su ZeroNet,
i due repo sono rispettivamente:

  • Schiz0

git clone $pathtodata/1B8RwkM5KhH1g6WZqskx3J1jjeno7xRa7F/schiz0.git was copied to the clipboard.
Replace $pathtodata with correct path to ZeroNet's data folder.

  • SchizzI

git clone $pathtodata/1BhXhBiBqedot2vLVkv9zsVQLn9f2ov6qT/schizzi.git
Replace $pathtodata with correct path to ZeroNet's data folder.

<2018-06-20 mer> ho spostato entrambi i repo su Git-Center

Federazione   tec

<2018-07-11 mer> sto creando ponti tra le varie piattaforme:

Socccial   tec

<2018-06-01 ven> ho fatto un po' d'integrazione tra le varie piattaforme:

dopo aver aperto una finestra su twitter ho installato twittering-mode.el (is a major mode for Twitter) in Emacs ho pure iniziato a provare alcuni modi (prevalentemente applet su IFTTT) per importare il feed generale di questo sito… anche su tumblr e i canali telegram

Tessiture Sonore   aggiornamenti

<2018-01-26 ven> è stata creata la nuova pagina Tessiture Sonore
nella quale vengono approfondite tematiche di Rumorismo Tessile

DONE Rete locale

<2018-01-25 gio>

tutto gira intorno all'hotspot attivato nel computer collegato alla rete tramite cavo ethernet:

  • l'ip che viene assegnato a tale macchina viene utilizzato per distribuire ZeroNet in locale,

lanciando zeronet con il comando:

$ python2 /path/to/zeronet/zeronet.py --ui_ip MY_Local_static_ip
  • con webdav rendo accessibile, sempre su quell'indirizzo,

la mia home sul "server"

  • sempre tramite webdav metto in relazione gli aggiornamenti su i vari dispositivi e la repo caricata su AI

DONE Version Control   tec

<2018-01-25 gio 09:41>

seguendo le indicazioni Putting Your org Files Under Version Control
ho creato una repo dei file in org su AI con git in modo tale da poter effettuare modifiche da qualsiasi postazione
ed avere l'aggiornamento di tali variazioni su qualsiasi dispositivo

DONE Surface

<2018-01-25 gio>

ho fatto un clone pure su Surface…

DONE Pensierini   aggiornamenti

ho aggiunto la pagina Pensierini… il nome è tutto un programma

TODO SchizoGizmo   firefox

<2018-01-18 gio>

qualche anno fa accrocchiai un programmino in perl che leggeva la cache di firefox vi cercava file html e immagini, poi analizzava gli html e quando trovava l'url di un'immagine la andava a sostituire con una presa a caso tra quelle presenti nella cache;
lo chiamai SchizoGizmo… ora l'ho perso nel corso del tempo e delle memorie digitali dimenticate…

TODO Read FireFox Cache with Python   firefox python

<2018-01-18 gio>

I had to write a program that does similar thing (locate and read firefox cache and show cache data) in Python. First I tried to automate the about:cache mechanism, but couldn't make it. Later I went for processing raw cache data…

But interestingly I didn't need to use all these knowledge. Just used regular expression to parse the data :-)

Read FireFox Cache with Python

Programmatically reading firefox cache

My idea on how to painstakingly read the firefox cache…

import glob, re  

cache_folder = r"~/.cache/mozilla/firefox/[]/cache2\*"  
urls = set()  

for cache_filename in glob.glob(cache_folder):  
    with open(cache_filename, 'rb') as file_cache:  
        data = file_cache.read()  
        urls |= set(re.findall("(http.*?)\x00", data))  

for url in urls:  
    print url  

python - Programmatically reading firefox cache - Stack Overflow

firefox cache & Python

DONE Boodler   tec

<2018-01-25 gio> fatto!
dopo diversi tentativi andati a vuoto sono riuscito, seguendo il suggerimento per Ubuntu in Installation Information For Various Platforms,
a far funzionare nuovamente Boodler.

ai tempi della Massa Critica avevo generato qualche Ciclo Ambiente Sonoro:

  • blop.EchoWorld.mp3
  • cavepool.Cavern.mp3
  • drumbeat.DualDrums.mp3
  • fire.Bonfire.mp3
  • frogs.FrogPond.mp3

bene,

TODO sarebbe bello fare qualcosa con la tessitura

che ne so,
anche solo la generazione di Ambienti Sonori Tessili a partire dalle armature dei telai;

sarebbe una buona occasione per sporcarsi i polpastrelli con python

DONE Feedbot   zeronet

attarverso il Feedbot realizzato da Binchan, oltre a importare le notizie dalla "clearnet" direttamente in zeronet (in ziti specifici e in ZeroHello), gestisco anche gli aggiornamenti su i siti realizzati con org-mode pubblicandoli, in questo modo, anche su ZeroBlog

TODO appuntare le modifiche fatte per l'adattamento al "template" ZeroBlog

TODO azzerare il contenuto del campo tag prima di scriverci in automatico

TODO Fancy HTML5 export   emacs orgmode

testare :html-html5-fancy

TODO Fortune   emacs orgmode

sto cercando di mettere una citazione automatica ogni volta che viene salvata una pagina… un po' alla volta…

Happy hacking!   emacs lisp orgmode rete zeronet

È sempre una questione di fili che s'intrecciano,
Di tessiture,
Di reti…

TODO EmacsPP0 (Emacs - Punto Presenza 0)

una normale giornata Emacsiana nel quartiere ZeroNet

In Scrittura

  • sudo mount /home/schizo/AI
  • python /dove/è/installata/ZeroBundle/ZeroNet/zeronet.py

    è possibile avviare zeronet senza lanciare il browser?
    ovviamente!
    basta lanciare lo script zeronet.py piuttosto che start.py che generalmente viene lanciato da ZeroNet.sh

  • M-x gnus
  • M-x elfeed-update

    dopo aver riprovato newsticker:

    Newsticker provides a newsticker for Emacs. A newsticker is a thing that asynchronously retrieves headlines from a list of news sites, prepares these headlines for reading, and allows for loading the corresponding articles in a web browser.

    integrato in Emacs

    e RSS feeds

    Org can add and change entries based on information found in RSS feeds and Atom feeds. You could use this to make a task out of each new podcast in a podcast feed. Or you could use a phone-based note-creating service on the web to import tasks into Org.

    mi son trovato di fronte elfeed! oserei dire che non c'è un paragone con gli altri:
    essenziale, veloce…
    c'è pure elfeed-org:

    Maintaining tags for all rss feeds is cumbersome using the regular flat list where there is no hierarchy and tag names are duplicated a lot. Org-mode makes the book keeping of tags and feeds much easier. Tags get inherited from parent headlines. Multiple files can be specified to separate your private from your work feeds for example. You may also use tagging rules to tag feeds by entry-title keywords.

    See https://github.com/remyhonig/elfeed-org for usage.

  • eww
  • M-x du-w
  • M-x org-capture
  • M-x org-publish
  • rawdog -uw
  • Feedbot
    • versione ZeroBlog
    • versione ZeroMe

In Lettura

TODO XMLtoSQL

cercare un convertitore xml > DB per elaborare un feeding su ZeroHello di qualsiasi Zito che produca feed

TODO 0ERC

manca un client IRC che si possa interfacciare a ZeroMe

TODO ASCIICAM

indagare sulla nostra presenza, almeno supposta, davanti a i monitor: porre un ulteriore livello di [pre|assenza]

HasciiCam :: ASCII art for the masses

Introduction jaromil-hascii-sm.png

HasciiCam makes it possible to have live ascii video on the web. It captures video from a tv card and renders it into ascii letters, formatting the output into an html page with a refresh tag, or in a live ascii window, or in a simple text file. It gives the possiblity to anybody that has a bttv card, a unix box and a cheap modem line to show live (h)ascii video can be viewed without any need for extra applications, plugins, java etc.

https://www.dyne.org/software/hasciicam/

DONE Telegra.ph   emacs lisp orgmode telegraph

<2017-11-23 gio> sono riuscito a trasformare le pagine di Telegra.ph in formato json in modo tale da poterle acquisire attraverso org-mode;
il tutto viene gestito da questo piccolo script in elisp:

;; telegraph.el

(provide 'telegraph-json-page)

(defun telegraph-json-page ()

  (interactive)

  (setq json-page (substring-no-properties (nth 0 kill-ring)))

  (shell-command
   (format "cd \"/tmp\"; wget \"https://api.telegra.ph/getPage/%s\?return_content\=true\"; mv \"%s\?return_content\=true\" \"%s\.json\"" json-page json-page json-page)
   )

  (setq json-file (concat "/tmp/" json-page ".json"))

  (print json-page (get-buffer "*scratch*"))

                                        ;  (print (json-encode (json-read-file json-file)) (get-buffer "*scratch*"))

  (setq json (json-encode (json-read-file json-file)))

  (print json (get-buffer "*scratch*"))

  (let ((case-fold-search t)) ; or nil

    (goto-char (point-min))
    (while (search-forward "\\\"" nil t)
      (replace-match "\""))
    )

    (goto-char (point-min))
    (while (search-forward "\\n" nil t)
      (replace-match "\ "))
    )

)

sicuramente malissimamente codificato, ma orgogliosamente funzionante!

<2017-11-24 ven> … e questa invece è una versione che, pur essendo sempre raffazzonata è mooolto migliore: non si appoggia più all'elaborazione del json a javascript perché tutti i dati necessari vengono estrapolati direttamente in lisp e presentati bell'e pronti per essere catturati da org-mode e inseriti nella formazione del nuovo post, senza bisogno di una trasformazione al volo durante il caricamento della pagina html… un bel passo avanti!

;
;; telegraph_2.el
;

(provide 'telegraph-json-page-2)

(defun telegraph-json-page-2 ()

  (interactive)

  (setq json-page (substring-no-properties (nth 0 kill-ring)))

  (shell-command
   (format "cd \"/tmp\"; wget \"https://api.telegra.ph/getPage/%s\?return_content\=true\"; mv \"%s\?return_content\=true\" \"%s\.json\"" json-page json-page json-page)
   )

  (setq json-file (concat "/tmp/" json-page ".json"))

  (setq json-prova (json-read-file json-file))
  (setq json-list (cdr (assoc 'result json-prova)))
  (print "#+BEGIN_CENTER" (get-buffer "*scratch*"))
  (print (concat "[[" (cdr (assoc 'image_url json-list)) "]]") (get-buffer "*scratch*"))
  (print "#+END_CENTER" (get-buffer "*scratch*"))
  (print (cdr (assoc 'description json-list)) (get-buffer "*scratch*"))
  (print (concat "[[" (cdr (assoc 'url json-list)) "]]") (get-buffer "*scratch*"))

  (let ((case-fold-search t)) ; or nil

    (goto-char (point-min))
    (while (search-forward "\"" nil t)
      (replace-match "\ "))
    )

  )

TODO interazione e attenzione

adesso lo script:

  • si prende come nome della pagina telegra.ph da scricare ciò che viene memorizzato nella prima posizione del kill-ring di emacs, quindi se

ci si sbaglia si va a creare dei file assurdi, anche se nella directory tmp

  • a seconda del current-buffer, in cui ci si trova, il ciclo di ricerca/sostituzione elimina le virgolette, quindi è opportuno lanciarlo dal buffer scratch dove viene scritto il risultato dell'elaborazione e da dove di eseguirà un bel org-capture

DONE PUBDATE   emacs orgmode

nell'impostazione di un template di cattura in org-capture-templates
ho aggiunto

:PROPERTIES:
:PUBDATE:  %t
:END:

in modo tale da automatizzare l'inserimento della data di pubblicazione
utilizzata nella generazione del feed xml

DONE Fasi per la pubblicazione di Schiz0   ai emacs orgmode xml zeronet

<2017-11-17 ven>

per pubblicare il sito Schiz0 su A/I e ZeroNet insieme ai file xml dei vari feed
queste sono le operazioni in sequenza

  • pubblicare NoviglobRss
  • lanciare rawdog
  • pubblicare Noviglob e SchiZero
  • eseguire segnatura e pubblicazione di Schiz0

tradotto in un semplice script in elisp da lanciare da emacs…

DONE (provide 'schiz0-pubblicazione)   orgmode

(provide 'schiz0-pubblicazione)

(defun schiz0-pubblicazione ()
  (interactive)
  (org-publish-project "NoviglobRss")
  (shell-command "rawdog -uw")
  (org-publish-project "Noviglob")
  (org-publish-project "Schizero")
  (shell-command "python /directory/di/ZeroBundle/ZeroNet/zeronet.py siteSign "indirizzo" "password" --publish;")
  )

TODO Webdav   ubuntu

in Nautilus collegandomi al server con:

davs://www.autistici.org/dav/nome_utente

riesco a montare il filesystem senza problemi d'autenticazione
però viene montato in una sottodirectory run inaccessibile in scrittura durante le fasi di aggiornamento del sito
per cui sono costretto a continuare ad usare /davfs

questo comporta che ogni volta che eseguo il "sudo mount directory" dovevo rispondere con un y a:

/sbin/mount.davfs: the server certificate is not trusted
  issuer:      Let's Encrypt, US
  subject:     autistici.org
  identity:    autistici.org
  fingerprint: 20:91:af:b1:e8:62:fd:b6:3d:0d:2b:68:05:37:f9:f6:1d:85:79:75
You only should accept this certificate, if you can
verify the fingerprint! The server might be faked
or there might be a man-in-the-middle-attack.
Accept certificate for this session? [y,N]

TODO All Interconnected   orgmode zeronet

<2017-11-16 gio>

Feeds

DONE generare feed per SchiZero

e elencarli in una pagina relativa;

probabilmente potrebbe avere senso crere due progetti in org:

  • uno per la generazione di feed interni a Zeronet
  • uno per la generazione di feed relativi ad A/I
  • DONE aggiungere anche, tramite symlink, il file n0te.org
  • TODO provare a vedere se è possibile includere l'xml
  • DONE collegarlo all'utenza Fluss0

DONE Feedbot-Schiz00

attivare un feedbot che pubblichi gli aggiornamenti dei vari xml nel sito Schiz00

TODO Telegram emacs ERC bitlbee purple   emacs telegram

<2017-11-15 mer>

vorrei provare ad accedere a Telegram con ERC;
bitlbee, attraverso la libreria libpurple, offre il plugin telegram-purple

BitlBee User Guide

DONE ID   orgmode

<2017-11-15 mer>

:PROPERTIES:
:ID: id
:END:

questa proprietà (ID) che genero con la funzione org-id-get-create rendono il post non linkabile nell'elenco generato attraverso org-info.js

quello di generare l'id (su tutti gli elementi) è un tentativo che ho fatto a fronte del fatto che quando provo a pubblicare il feed rss con ox-rss.el (RSS 2.0 Back-End for Org Export Engine) mi viene riportato l'errore

save-current-buffer: Symbol’s function definition is void: org-icalendar-create-uid

a questo proposito…

mi rendo conto che è una modifica da lamerone pazzesco però, dopo aver visto la patch Fix id generation in ox-rss.el, ho provato semplicemente a commentare la riga (org-icalendar-create-uid filename 'warn-user) in

  (let ((bf (get-file-buffer filename)))
    (if bf
          (with-current-buffer bf
            (org-rss-add-pubdate-property)
            (write-file filename)))
      (find-file filename)
;      (org-icalendar-create-uid filename 'warn-user)
      (org-rss-add-pubdate-property)
      (write-file filename) (kill-buffer))
  (org-publish-org-to
   'rss filename (concat "." org-rss-extension) plist pub-dir))

adesso l'xml viene generato

DONE How to fetch all posts using tumblr API   tumblr zeronet

<2017-11-15 mer>

You can put this code in your html or php.

<script type="text/javascript" src="http://YourTumblrName.tumblr.com/js?start='post'&num='posts-total'"></script>

It fetches the content of your tumblr into a page, but it not very flexible. I'm still trying to get the dates and tags fetched. And the image quality is not as good as in Tumblr…

https://stackoverflow.com/questions/13266515/how-to-fetch-all-posts-using-tumblr-api-or-tumblr-rss-feed

How to parse tumblr JSON feed

visto che nel JSON file sono presenti solo 20 post preferisco la soluzione precedente, anche se meno bella

<script type="text/javascript" src="http://ordine-complicato.tumblr.com/api/read/json"></script>

<script type="text/javascript>

var tumblr_api_read = {
    "tumblelog": {
        "title": "First Title",
        "description": "",
        "name": "clintonbeattie",
        "timezone": "US/Eastern",
        "cname": false,
        "feeds": []
    },
    "posts": [{
        "id": null,
        "url": "",
        "url-with-slug": "",
        "type": "regular",
        "date-gmt": " GMT",
        "date": "Wed, 31 Dec 1969 19:00:00",
        "bookmarklet": null,
        "mobile": null,
        "feed-item": "",
        "from-feed-id": 0,
        "unix-timestamp": 1333622193,
        "format": "html",
        "reblog-key": "TmN3ujDJ",
        "slug": "",
        "regular-title": "",
        "regular-body": ""
    }]
};

</script>

https://pastebin.com/qfdtwzju

Use tumblrapiread.

<script src="http://ordine-complicato.tumblr.com/bio/json"></script>

<script>

  alert(tumblr_api_read.tumblelog.title); // Shows "First Title"

  alert(tumblr_api_read.posts.length); // numero di post

  for (var i=0;i<tumblr_api_read.posts.length;i++) {
                                                   var thisPost = tumblr_api_read.posts[i];

//                                                 alert("This post was created at " + thisPost.date);

                                                   photourl = "<img style='display: block; border:0px;' src='" + tumblr_api_read["posts"][i]["photo-url-400"] + "' />"; 

                                                   document.write(photourl);
                                                   }
</script>

<script type="text/javascript" src="http://ordine-complicato.tumblr.com/api/read/json"></script>

<script type="text/javascript">
var posts = tumblr_api_read['posts-total'] // total posts
var totalposts = "<b>Total posts:</b> ";
document.write(totalposts)
document.write(posts)
</script>

<script type="text/javascript">
  nmax = 50;
  n = tumblr_api_read["posts-total"];
  if (n > nmax) n = nmax;
  for (i = 0; i < n; i++) {

                  photourl = "<img style='display: block; border:0px;' src='" + tumblr_api_read["posts"][i]["photo-url-400"] + "' />";  

                  document.write(photourl);

                  }
</script>

<script type="text/javascript">
    // The variable "tumblr_api_read" is now set.
    document.write(
        '<a href="' + tumblr_api_read[1][0]['url'] + 
        '">Most recent Tumblr post</a>'
    );
</script>

(boh! non ricordo da dove ho tirato fuori questi esempi, penso da https://pastebin.com)

TODO Accessing JSON data in elisp   emacs json orgmode zeronet

<2017-11-14 mar>

(require 'json)  

(let* ((json-object-type 'hash-table)  
       (json-array-type 'list)  
       (json-key-type 'string)  
       (json (json-read-file "test.json")))  
  (car (gethash "projects" json)))  

The let* is required because otherwise the call to json-read-file will not see the previously bound values as let sets them in parallel…

As for the access functions, gethash retrieves a value by key from a hash table, whereas car returns the first list element. If you need a different one, you can use nth with an index.

https://emacs.stackexchange.com/questions/27407/accessing-json-data-in-elisp

Introducing json.el

<2017-11-14 mar> JSON is a lightweight data interchange format based on a subset of JavaScript. You can read all about JSON at json.org. json.el is a JSON parser and generator for Emacs Lisp, which can produce an Emacs Lisp data structure from a JSON object and vice-versa. It’s been Included with Emacs since February 2008.

Using it is pretty straightforward; here are some examples.

TODO org-json.el — conversion between org and json

https://www.emacswiki.org/emacs/org-json.el

;; Usage:

;; 1. call (org-json-encode) to convert org(in current buffer) to json,
;;    return convert json.
;; 2. call (org-json-decode json) to convert json to org,
;;    return converted text.

;; Example:

;; * i1 [2,3,4]
;; * i2 3.4
;; * i3 "fdsafs"
;; => (("i1" . [2,3,4]) ("i2" . 3.4) ("i3" . "fdsafs"))
;;

;; * i1
;; [2,3,4]
;; * i2
;; 3.4
;; => (("i1"  . [2,3,4]) ("i2" 3.4)).

;; * lv1_1
;; ** lv2a 1
;; ** lv2b 2
;; * lv1_2 "tt"
;; => (("lv1_1" . (("lv2a" . 1) ("lv2b" . 2))) ("lv1_2" . "tt"))

;; * vect
;; ** 0 "idx0"
;; ** 1 1.23
;; ** 2
;; [5.2, "2.3t", 1]
;; => (("vect" . ["idx0" 1.23 [5.2 "2.3t" 1]]))

;; * long_src
;; +begin_src
;; line1
;; line2
;; +end_src
;; => (("long_src" . "line1\nline2\n"))

TODO ubuntu 17.10   ubuntu

<2017-11-14 mar>

  • viene segnalata la possibile mancanza di firmware, raven (amdgpu)
  • ricordarsi di vedere se e possibile eliminare texlive… è troppo pesante!

DONE Telegra.ph

sono riuscito ad impostare una pagina dove pubblico ciò che attraverso http://telegra.ph faccio confluire su i miei canali telegram

il processo è piuttosto stupido e laborioso,
ognuno c'ha i suoi limiti. . . e quello che ora passa il convento è sulla pagina. . . Telegraph

TODO Telegraph API

sicuramente sarebbe bello poter sfruttare le API di Telegraph
e quindi bisognerebbe provare a capirci qualcosinina di JavaScript

DONE Finalmente! JavaScript   emacs tec

<2017-01-15 dom>

sono riuscito a far funzionare lo script org-info.js
ed ora la rappresentazione di lunghi file contenenti molti argomenti non è più un problema. . . anzi

DONE Titolo

<2017-01-16 lun>

c'è voluto molto per capire che ciò che bloccava lo script era la mancanza di un titolo!

più specificatamente,
i miei file "org" contenevano sia un #+TITLE che un #+SUBTITLE
e proprio quest'ultimo scomponeva la riga "html" d'esportazione:
in sostanza è necessario avere

<h1 class=title>titolo</h1>

altrimenti lo script non funziona

DONE Timestamp

<2017-01-16 lun 09:19>

perché una sezione possa essere collegabile dalla lista ottenuta per tag è necessario anche inserire una data attiva nella prima riga dopo il titolo (anche prima di una sezione delle PROPERTIES), cosa che può essere ottenuta dall'annotazione CLOSED quando si passa da TODO a DONE o da i template di org-capture

Embedding Youtube videos with org-mode links   emacs tec

<2017-01-12 gio 10:27>

un interessantissimo articolo

http://endlessparentheses.com/embedding-youtube-videos-with-org-mode-links.html

TODO MobileOrg   emacs tec

<2016-12-25 dom>

verificare l'avanzamento delle nuove versioni

Autore: SchiZo SchiZo

Created: 2019-07-11 gio 20:05

Validate