Piero V.

Benchmark natsort al contrario

Sta notte, mentre non riuscivo a dormire mi sono chiesto se è più veloce natsort con array_reverse oppure usort con -strnatcmp.

La risposta più o meno me l’aspettavo già, però non pensavo la differenza fosse così tanto abissale come vi farò vedere dopo.

Come benchmark ho generato un array col ciclo for di 10^6 elementi e poi li ho messi a caso. Ho dato ad entrambe le funzioni il medesimo array, in modo da fare un test il meno influenzato possibile.

Ho eseguito il test sia per il for che incrementa i valori ($i++), sia per quello che li decrementa ($i–).

Un’ultima considerazione: secondo me non sono importanti i risultati assoluti ma quelli relativi, in quanto non volevo fare il test della macchina, che so non essere tra le migliori.

Insomma, so che si potrebbe fare senza dubbio di meglio come test, magari anche in 64bit.

Ed ecco i risultati:

VDFN Benchmark

Natsort al contrario, for crescente.

Natsort + array_reverse
Tempo: 31.985618114471s
Memoria di picco: 175.97104263306MB

usort (-strnatcmp)
Tempo: 74.302319049835s
Memoria di picco: 175.97214508057MB

Come vedete con usort e il mio callback ci mette più del doppio, mentre la RAM ha valori molto, molto vicini. … [Leggi il resto]

Somiglianze dei linguaggi di programmazione

I linguaggi di programmazione sono delle vere e proprie lingue e come esse hanno la caratteristica di avere punti in comune.

Ieri, dopo la mia brutta esperienza con i PIC, ho cercato di portare un software fatto in PIC Basic in C per Arduino.

Di basic non avevo mai preso nulla in mano, invece il C so più o meno la struttura del linguaggio e fare i classici programmini banali ma non lo so approfonditamente, o almeno senza guida.

Devo dire che però è stato abbastanza facile portare quel codice ad Arduino: grazie alle conoscenze di PHP e di Javascript mi trovo molto bene in C perché come struttura stretta del linguaggio sono abbastanza comuni. Forse il mio unico problema sono le variabili nei programmi compilati. Anche la mia gavetta in Pascal mi è stata utile: il PIC Basic è molto simile al Pascal, quindi di parentesi non ce n’è neanche l’ombra e quindi, per esempio, gli IF utilizzano l’ENDIF un po’ come nel bascal IF ... THEN BEGIN... END.

Inoltre le funzioni che si possono eseguire sui micro controllori sono in un numero abbastanza ristretto e spesso tra un linguaggio e l’altro cambia solo il modo in cui sono scritte (bitClean al posto di CLEANBIT).

Perciò fidatevi quando vi dico di imparare bene un linguaggio di programmazione se ne volete imparare di altri perché poi ciò che sapete già vi può aiutare ad imparare più velocemente altro, come è un po’ in generale e non solo in programmazione.

Plugin Tag (v2.5) [Flatpress]

English

This is an update for the Tag Plugin.

Changelog:

  • Fixed entities problems on the tag listing
  • Fixed the problem with the manual [more]
  • Modified the entry editor (suggestion feature requires jQuery)

Known bugs:

  • If you haven’t Javascript enabled and you click on Save and continue you see both the tag tag and both the tag field. This is a limit of Flatpress, I can’t do anything.

License: GNU GPLv2

Download: tag_v2.5.tar.gz

Italiano

Ecco un aggiornamento per il Plugin Tag.

Changelog:

  • Sistemato un problema di validazione con la liste dai Tag
  • Sistemato un problema con il [more] manuale
  • Modificato l’editor dei post (i suggerimenti richiedono jQuery)

Bug conosciuti:

  • Se non hai abilitato Javascript o non hai jQuery, quando clicchi Salva e continua vengono fuori i tag sia nella textarea, sia nel campo apposito. Sono spiacente ma pare essere un limite di Flatpress.

Licenza: GNU GPLv2

Download: tag_v2.5.tar.gz

Browser a tab sincrone

Ho appena avuto un’idea che sarebbe molto bella.

Mi piacerebbe che nei browser si potessero vedere contemporaneamente due schede: per fare certe cose sarebbe proprio utile.

A dir la verità per il momento c’è l’opzione di “affiancare” le finestre… Però una volta non c’erano le tab e c’era la riduzione a icona, chissà che così anche in un futuro non si possa avere l’affiancamento delle schede 😊

Nuovi progetti

È arrivato Agosto e ho ansia perché temo di non finire tutti i miei progetti che mi ero prefissato per l’estate.

Perciò ecco i nuovi progetti da completare entro agosto, i miei obbiettivi:

  • Finire ancora il famoso mini-mixer. Devo forare due PCB, metterci i componenti, collegare il tutto e provare. Quindi, una volta che non funzionerà 😁 cercare di trovare i problemi
  • Costruire il clone di arduino. Ho visto che una scheda ufficiale mi costa 26,40€ più spese di spedizione. Un clone senza supporto USB ma con la seriale dovrebbe venirmi meno di 15€.
  • Finire il VDFN System. Questo è un progetto che non rilascerò come mio software bensì sarà un software capace di gestire un sito che mette l’utente come primo obiettivo. Dovrebbe essere possibile fare di tutto con questa piattaforma, anche un social network volendo. Purtroppo però il lavoro è molto.

Questi progetti sembrano pochi, ma in realtà ognuno richiederà molto tempo e io dall’8 al 12 sono a Firenze in vacanza 😊

Non ci sono progetti per Flatpress nell’elenco. Infatti non ne ho in mente. A breve dovrei rilasciare un aggiornamento per un plugin che aggiunge solamente qualcosa di estetico, non molto di più. Magari ci sarò per la community, aiuterò ma nuovi plugin non penso di svilupparne prima che queste cose non siano a posto.