Piero V.

PHP Runkit

Oggi ho scoperto un’estensione di PHP che non conoscevo prima: si chiama Runkit.

In pratica permette di modificare a piacimento funzioni, classi, metodi e addirittura ridefinire costanti.

La sua parte migliore è però quella che riguarda la Sandbox: infatti quest’estensione può creare una sandbox per PHP, ovvero un ambiente in cui eseguire codice che non può accedere all’ambiente principale, ma l’ambiente principale può accedere all’ambiente della sandbox.

Purtroppo non è sempre possibile utilizzare questa funzionalità, in quanto richiede una patch a PHP (il che implica che vi ricompiliate PHP a manina ☹️ ).

Inoltre non penso che non ci siano molti hoster che la diano, però sarebbe troppo bello averla.

L’installazione deve essere eseguita tramite PECL. Io con PHP 5.3 su Debian ho dovuto usare questi sorgenti.

Un login più sicuro?

Stavo pensando al modo di creare un login più sicuro: questa era un’idea che mi era venuta già un po’ di tempo fa ma poi ho rinunciato a compierla perché mi ero incasinato, così sono tornato al classico cookie con id e password.

Questo tipo di login però è un po’ rischioso: intanto l’hash della password (o l’hash dell’hash, come preferite 😉 ) rimane salvato in un computer e non è mai una bella cosa; inoltre rende più possibili i tentativi di attacco, per esempio tramite forza bruta: una volta scoperta la funzione dell’hash (soprattutto in assenza di un salt), si può saltare il form di login e provare direttamente con i vari cookie.

Il sistema a cui invece ho pensato si basa sempre su un cookie, ma che racchiude un id del login (generato magari con la funzione uniqid) e un codice di sicurezza diverso dalla password.

Di svantaggio ha il fatto che se a un utente viene “rubato” il cookie può fare tranquillamente il login, ma ciò avveniva anche con l’altro metodo.

Il secondo svantaggio è che il cookie che dura per la sessione viene fatto sparire dal browser, mentre applicando quest’idea bisognerebbe pensare a un tot di tempo di validità per il login breve. … [Leggi il resto]

Google: la guerra con Skype è iniziata?

Si sapeva già che Skype è un avversario di Google, infatti avrebbe voluto comprarla, ma Microsoft le ha soffiato l’affare.

Però negli ultimi tempi si sono viste molte palesi sfide al famoso client “VoIP”, se così si può definire, visto che Skype usa protocolli proprietari.

Prima si è sentito parlare della videochiamata via web, ma oggi, accedendo all’interfaccia grafica di GMail mi è stato illustrato Google Voice, un servizio che permette di chiamare via internet i telefoni “standard” (linea fissa, cellulari…). Addirittura da USA/Canada a telefoni USA fissi è gratis!

Insomma, Google è una contro tantissime, grosse aziende di internet… E sta creando un rischioso monopolio.

Mi domando se prima o poi vedremo la grande azienda di Mountain View nel campo del gaming.

Anonimato in rete

Non è una notizia nuova e l’avevo già letta qualche giorno fa, però volevo prendermi il tempo di commentarla per bene.

Per Randi Zuckerberg ed Eric Schmidt l’anonimato in rete è un pericolo.

La prima è la sorella di Mark Zuckerberg, che occupa il posto di direttrice del marketing nell’azienda del fratello, il secondo è il CEO di Google, perciò persone che occupano ruoli importanti in due grosse aziende di internet, aziende che collezionano dati e dati sugli utenti.

La loro opinione è della difesa degli utenti da crimini vari.

La mia opinione è invece opposta: è una cosa fantastica quella che su internet non serve sapere chi sei.

Penso che il poter dire le propria opinione anonimamente sia uno dei fattori del successo di internet: penso che tante persone come me, tra dover pubblicare per forza con i propri dati, e quindi far diventare tracciabili tutte le proprie attività nella rete, oppure limitare il proprio uso di internet, sceglierebbero la seconda.

Per me l’assenza di anonimato (almeno apparente) sarebbe come essere costretto ad andare in giro nudo.

Quella dei crimini è una baggianata vera e propria: sopra ho specificato apparente perché in realtà non siamo nella condizione di dover palesare la nostra identità però in realtà qualunque azione si commetta viene registrata nei file di log. In caso di crimini la polizia si può far consegnare questi file in poco tempo e potrebbe risalire fino a una cerchia di persone che avrebbero potuto commettere il reato, visto che gli ISP hanno i log delle persone alle quali hanno assegnato determinati indirizzi IP.

Vorrei poter discutere di più nell’argomento ma ora devo proprio andare.

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]