- una cronoca scritta dai pionieri (dal sito di ISOC), altra versione (dal sito di UCSB)
Barry M. Leiner, Vinton G. Cerf, David D. Clark, Robert E. Kahn, Leonard Kleinrock, Daniel C. Lynch, Jon Postel, Larry G. Roberts, Stephen Wolff
- “INWG and the Conception of the Internet: An Eyewitness Account” by Alex McKenzie, IEEE Annals of the History of Computing, Vol 33, No 1, pp 66-71; una ricostruzione storica da parte di un protagonista, in particolare sul ruolo del International Packet Network Working Group (INWG) (vedi anche collezione di documenti sul INWG e altri ora depositati agli Charles Babbage Institute Archives da parte di McKenzie stesso)
- una buona timeline commentata (apri in una nuova scheda per vedere img in grande)
- History_of_the_Internet, voce Wikipedia, sempre un buon punto di partenza (sopratutto nella versione inglese) (ma nelle versione del Luglio 2018, non cita il ruolo dello INWG)
WP, Block editor vs. Content Editor
Piccolo promenoria.
WP 5.1.1. è distribuito con editor Gutemberg. Per ragioni da capire, post creati con Gutemberg non vengono salvati (benché mi appaia la conferma di salvataggio)
Con plugin Classic Editor, riappare editor usuale e i post vengono salvati senza problema.
Dalle impostazioni di Network, ultima opzione Impostazioni dell’Editor, scelgo Consenti agli amministratori del sito di modificare le impostazioni, e questo fa apparire la possibilità di cambiare le impostazioni del funzionamento del plugin, per ciascun sito del multisite (ovviamente, dal menu dei plugin per ciascun sito).
Per ogni post, posso ora avere la possibilità di crearli con uno o altro editor, ma rimane la difficoltà di salvare con Block editor.
Unico vantaggio è che posso creare un blocco con il Block editor, copiare il codice html (in genere migliore), passare al Classic editor, e utilizzare il codice salvato, quindi salvare il post, che apparirà come se creato con Gutemberg.
Courier
Solo in Inglese.
Axigen. Grazie!
Per curiosità ho usato Axigen mail server sulla mia macchina personale per più di dieci anni. Ora Axigen ha modificato le proprie policy per la licenze gratuite, e quindi non ho più ragione di usarlo.
Benché lo abbia testato per un uso molto particolare, per un solo utente su una macchina personale, credo di poter dire che Axigen è potente, ben assistito, e di facile uso (grande GUI!). Lo consiglio vivamente! Ottimo anche il forum.
Grazie e buona fortuna a Axigen e il suo team.


Symfony 4.0. Un primo tutorial
Symfony è un ottimo framework PHP (almeno così mi sembra). Per la versione 4.0 un buon tutorial per installarlo con i bundle necessari qui. Grazie a Jerzy Zawadzki.
Alert: Backdoor in Captcha Plugin
Da studiare. Check here
Socials falliti
A infographics da cdn-3eff.kxcdn.com
mySQL + Fedora25: risettare password di root
Siccome Fedora 25 utilizza systemd, non sembra sia installato mysqld_safe:
On platforms for which systemd support for MySQL is installed, scripts such as mysqld_safe and the System V initialization script are unnecessary and are not installed. For example, mysqld_safe can handle server restarts, but systemd provides the same capability, and does so in a manner consistent with management of other services rather than by using an application-specific program. Vedi dev.mysql.com
Le seguenti istruzioni sono risultate efficaci: (sudo su root)
-
systemctl stop mysqld
-
systemctl set-environment MYSQLD_OPTS="--skip-grant-tables"
-
systemctl start mysqld
-
mysql -u root
-
mysql> UPDATE mysql.user SET authentication_string = PASSWORD('MyNewPassword') WHERE User = 'root' AND Host = 'localhost';
-
mysql> FLUSH PRIVILEGES;
-
mysql> quit
-
systemctl stop mysqld
-
systemctl unset-environment MYSQLD_OPTS
-
systemctl start mysqld
Grazie a thelinuxevangelist
In Fedora 25, di default è installato mysql-community-server, la soluzione qui sopra evita di installare mariadb.
Leggi i libri di Andrew S. Tanenbaum
Come ho inserito ora+data dell’ultimo aggiornamento di un articolo
Il tema Deciduous inserisce, dopo il contenuto di un articolo, diverse informazioni associate da WP a ciascun articolo, ma tra queste non l’ora e data dell’ultima modifica, o aggiornamento, dell’articolo stesso, informazione che è comunque salvata da WP.
Non è difficile ottenere di mostrare tale informazione:
Questi i passi per ottenere l’inserimento di ora+data dell’ultimo aggiornamento di un articolo.
La strategia migliore è risultata quella di creare un nuovo tema child del tema in uso. Le istruzioni a developer.wordpress.org di come fare sono chiare (e non richiedono una conoscenza profonda di WP). Si tratta di creare una cartella sotto wp-content/themes con il nome della tema principale seguita da -child, nel nostra caso quindi deciduous-child
creandovi almeno due file: style.css e functions.php
In style.css è richiesto inserire – nei commenti – alcune informazioni sul tema e il sopratutto il nome del tema parente
/* Theme Name: deciduous-child Theme URI: http://net.chiari.org Description: deciduous-child is a child theme of Deciduous, created by ChildTheme-Generator.com Author: Mario Author URI: http://chiari.org Template: deciduous Version: 0.0.1 License: GNU General Public License v2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html Tags: light, dark, two-columns, right-sidebar, responsive-layout, accessibility-ready Text Domain: deciduous-child */
In functions.php è richiesto inserire una funzionalità che WP apparentemente utilizza per collegare il tema child a il suo parent (e che copio dal tutorial)
add_action( 'wp_enqueue_scripts', 'deciduous_child_enqueue_styles' ); function deciduous_child_enqueue_styles() { $parent_style = 'deciduous-style'; wp_enqueue_style( $parent_style, get_template_directory_uri() . '/style.css' ); wp_enqueue_style( 'deciduous-child-style', get_stylesheet_directory_uri() . '/style.css', array( $parent_style ), wp_get_theme()->get('Version') ); }
Ora il task leggermente più impegnativo è individuare quali linee di codice creano il footer sotto ogni articolo che voglio arricchire.
Controllando il sorgente della visualizzazione di un singolo articolo, si individua facilmente il valore entry-utility che identifica il footer
<footer class="entry-utility"> <span class="cat-links">Questo inserimento è stato pubblicato in ...... </footer><!-- .entry-utility -->
e con una breve ricerca con grep nella cartella del tema Deciduous si trova il file post-footer-extension.php e ivi la funzione che crea il footer:
function deciduous_p_postfooter() { $post_type = get_post_type(); $post_type_obj = get_post_type_object( $post_type ); // Check for "Page" post-type and logged in user to show edit link if ( $post_type == 'page' && current_user_can( 'edit_posts' ) ) { $postfooter = '<footer class="entry-utility">' . deciduous_postfooter_posteditlink(); $postfooter .= '</footer><!-- .entry-utility -->'; $postfooter .= "\n"; // Display no edit link for logged out users on a "Page" post-type } elseif ( $post_type == 'page' ) { $postfooter = ''; // For post-types other than "Pages" press on } else { $postfooter = '<footer class="entry-utility">'; if ( is_single() ) { [.....]
Inserendo una opportuna modifica di questa funzione nel file functions.php del tema child, WP la esegue al posto della versione presente nel tema parent e si ottiene il risultato voluto.
Le seguenti linee di codice, prese da How to Display the Last Updated Date of Your Posts in WordPress, estraggono l’informazione sulle date di creazione e aggiornamento del post:
$u_time = get_the_time('U'); $u_modified_time = get_the_modified_time('U'); if ($u_modified_time >= $u_time + 86400) { //86400 $updated_date = get_the_modified_time('j F Y'); $updated_time = get_the_modified_time('h:i a'); }else{$updated_date=get_the_modified_time('j F Y'); $updated_time = get_the_modified_time('h:i a');}
Prima di adattare deciduous_p_postfooter, abbiamo però un ultimo problema: assicurare versioni diverse per le diverse lingue del blog (nel mio caso IT e EN). Non ho trovato altro modo che aggiornare i dizionari della tema parent, ovvero aggiungere le due seguenti stringhe al file deciduous/library/languages/it_IT.po (e con un tool come poEdit, si crea anche il corrispondente file it_IT.mo)
#: functions.php:56 msgid "Last updated on" msgstr "Ultimo aggiornamento il" #: comments.php:56 msgid "at" msgstr "alle"
Finalmente possiamo definire la nuova funzione deciduous_p_postfooter:
function deciduous_p_postfooter() { $post_type = get_post_type(); $post_type_obj = get_post_type_object( $post_type ); $u_time = get_the_time('U'); $u_modified_time = get_the_modified_time('U'); if ($u_modified_time >= $u_time + 86400) { //86400 $updated_date = get_the_modified_time('j F Y'); $updated_time = get_the_modified_time('h:i a'); }else{$updated_date=get_the_modified_time('j F Y'); $updated_time = get_the_modified_time('h:i a');} // Check for "Page" post-type and logged in user to show edit link if ( $post_type == 'page' && current_user_can( 'edit_posts' ) ) { $postfooter = '<footer class="entry-utility">' . deciduous_postfooter_posteditlink(); $postfooter .= '</footer><!-- .entry-utility -->'; $postfooter .= "\n"; // Display no edit link for logged out users on a "Page" post-type } elseif ( $post_type == 'page' ) { $postfooter = ''; // For post-types other than "Pages" press on } else { $postfooter = '<footer class="entry-utility">'; $postfooter .= esc_html__('Last updated on', 'deciduous').' '; $postfooter .= $updated_date .' '.esc_html__('at', 'deciduous').' '. trim($updated_time).'.'; if ( is_single() ) { [.....]
Questo è tutto, e funziona!!!
DA FARE. Capire se sia possibile aggiungere file .po e .mo nel tema child, senza modificare quelli del tema parent (essendo la ragione di usare temi child appunto di non modificare niente del tema parent)
DA FARE. Capire come localizzare il formato delle date (6.00 PM vs. 18.00)
Thematic is over
Theme Thematic non viene piú aggiornato. Il suo sviluppatore, Gene (emhr), sviluppa Deciduous, e anche noi ci siamo aggiornati.