Jupyter Notebook Pelican Combo

Si sta avvicinando il Pycon 8 e io ci parteciperò. Questo vuol dire che ho raccolto i soldi e sto preparando la strumentazione necessaria per quest’ anno. Visto quello che è successo l’anno scorso ho deciso di preinstallate Jupyter e essere pronto a fare degli appunti direttamente in notebook. Per questo ho cercato un sistema per convertirli in markdown, così da usarli anche nel blog, o farli leggere direttamente da Pelican e ho fatto una stupenda scoperta: esiste già questo plugin.

Per rendererizzare i file .ipynb è necessario aver installato il plugin pelican-ipynb e settato i metadati del .ipynb coi i metadata corretti:

  • Title titolo del post
  • Slug indirizzo del post
  • Date data di publicazione del post
  • Category categoria del post
  • Tags tag del post
  • Author autore del post
  • Summary riassunto del post

e settare i tipi di markup supportato con

MARKUP = ('md', 'ipynb')

facendoli vedere così i file .ipynb come file da eseguire e visualizzare come post.

L’unico difetto di questo plugin è che che non supporta, per ora, il metadata Status.

E quindi funziona?

E si arriva alla domanda fondamentale: “Funziona?” La risposta è si, funziona.

print('Hello world!')
Hello world!

Come vedete nel blocco di codice sopra è funzionante e permette di fare tutto quello che normalmente faresti con Jupyter.

columnA = ['Temporary','Intermittant','Partial','Redundant','Total',
	'Multiplexed','Inherent','Duplicated','Dual-Homed','Synchronous',
	'Bidirectional','Serial','Asynchronous','Multiple','Replicated',
	'Non-Replicated','Unregistered','Non-Specific','Generic','Migrated',
	'Localised','Resignalled','Dereferenced','Nullified','Aborted','Serious',
	'Minor','Major','Extraneous','Illegal','Insufficient','Viral',
	'Unsupported','Outmoded','Legacy','Permanent','Invalid','Deprecated',
	'Virtual','Unreportable','Undetermined','Undiagnosable','Unfiltered',
	'Static','Dynamic','Delayed','Immediate','Nonfatal','Fatal','Non-Valid',
	'Unvalidated','Non-Static','Unreplicatable','Non-Serious']
columnB = ['Array','Systems','Hardware','Software','Firmware','Backplane',
	'Logic-Subsystem','Integrity','Subsystem','Memory','Comms','Integrity',
	'Checksum','Protocol','Parity','Bus','Timing','Synchronisation','Topology',
	'Transmission','Reception','Stack','Framing','Code','Programming',
	'Peripheral','Environmental','Loading','Operation','Parameter','Syntax',
	'Initialisation','Execution','Resource','Encryption','Decryption','File',
	'Precondition','Authentication','Paging','Swapfile','Service','Gateway',
	'Request','Proxy','Media','Registry','Configuration','Metadata',
	'Streaming','Retrieval','Installation','Library','Handler']
columnC = ['Interruption','Destabilisation','Destruction','Desynchronisation',
	'Failure','Dereferencing','Overflow','Underflow','NMI','Interrupt',
	'Corruption','Anomaly','Seizure','Override','Reclock','Rejection',
	'Invalidation','Halt','Exhaustion','Infection','Incompatibility',
	'Timeout','Expiry','Unavailability','Bug','Condition','Crash','Dump',
	'Crashdump','Stackdump','Problem','Lockout']
columnD = ['Error','Problem','Warning','Signal','Flag']
from random import randint

bofhExcuse = columnA[randint(0,len(columnA)-1)]+' '
bofhExcuse += columnB[randint(0,len(columnB)-1)]+' '
bofhExcuse += columnC[randint(0,len(columnC)-1)]+' '
if(randint(0,100) > 80):
	bofhExcuse += columnD[randint(0,len(columnD)-1)]
print 'Today\'s issue is: '+bofhExcuse
Today's issue is: Duplicated Proxy Overflow
comments powered by Disqus