In molti contesti un generatore di password casuali può essere utile, specialmente in un sistema di gestione utenti. Pensiamo di voler resettare la password di un utente su richiesta, uno script del genere potrebbe essere utile, e, ovviamente, più generico è meglio è.
Lo snippet è molto semplice, io l’ho fatto così.
<?php function getPassword($length= 5,$caps=true,$num=true,$special=true){ $ncaps="abcdefghilmnopqrstuvzxwkjy"; $dcaps="ABCDEFGHILMNOPQRSTUVZXWKJY"; $dnum="1234567890"; $dspecial="!£$%&/()=?^;:_,.-@#][{}";
Il primo parametro indica la lunghezza della password, il secondo indica se si vuole usare anche i caratteri grandi, il terzo se si vogliono usare anche i numeri, e, l’ultimo, se si vogliono usare anche i caratteri speciali. Ovviamente possono essere combinati tra loro in vari modi.
Dal punto di vista pratico la password viene generata facendo una permuttazione casuale della stringa risultante (generata attraverso la concatenazione delle variabili iniziali secondo i parametri passati) attraverso la funzione str_shuffle e estrapolandone i primi n caratteri (dove n è la lunghezza specificata come primo parametro) attraverso substr. Prosegui la lettura…
Quando si ha a che fare con l’input immesso da tastiera bisogna sempre stare attenti a cosa passa l’utente di turno. Può essere utile ad esempio, chiudere automaticamente un tag lasciato aperto durante la digitazione. Pensiamo al BBCode, ormai ci sono gli editor che mettono la struttura del tag, però, accidentamente, se l’utente non chiude un tag poi ci possono essere problemi.
Da queste premesse, quindi, è utile scrivere uno script che chiuda automaticamente i tag (bbcode) lasciati aperti.
function count_t($tag,$text){ $count=0; for($i=0;$i<=strlen($text)-strlen($tag);$i++){ $s=substr($text,$i,strlen($tag)); if($s==$tag) $count++; }
Praticamente lo script non fa altro che contare quante volte è stato aperto un tag e quante volte è stato chiuso, se la differenza è maggiore o uguale ad 1, allora almeno un tag è stato lasciato aperto, e quindi li chiude in automatico
Come tutti sono spesso abbastanza impegnato, cerco di programmare i post quando posso e quindi pubblicarli successivamente, ma, molte volte non ho proprio tempo per scrivere (molto di quello che ho postato era anche materiale che avevo sul pc e che volevo condividere). Quindi, chiunque volesse collaborare inserendo news o snippet, può postare un commento di seguito e manderò via email le info (ovviamente l’email del commento deve essere corretta).
Nei labs di Google è finita una nuova applicazione veramente interessante, Google Image Swirl. Praticamente è un motore di ricerca per le immagini ma, a differenza di Google Images, non fornisce una lista di foto relative alla keyword inserita, bensì raggruppa le foto in pile nelle quali ci sono tutte le immagini che hanno delle caratteristiche simili tra di loro. Una volta trovata la pila di foto che ci interessa basta cliccarci sopra e trovarne enne simili tra loro, in modo da facilitare la scelta.
Per info più approfondite e dettagliate vedete qui e qui. Per provare il prodotto qui.
Fin qui niente di strano, se non fosse che Microsoft ha annunciato di pubblicare anche i sorgenti, sotto licenza Apache 2.0. I sorgenti del .NET Micro Framework non includono il codice dello stack TCP/IP e della libreria crittografica. Questo perchè il primo è stato sviluppato da un’altra azienda esterna a Microsoft, quindi i termini della licenza vengono stabiliti da tale società. La libreria crittografica è rimasta closed perchè è utilizzata anche in altri prodotti.
Microsoft brevetta sudo? Sembrerebbe proprio che Redmond abbia partorito un brevetto che descrive il concetto di elevazione temporanea dei privilegi di un utente. sudo insomma..
A quanto pare Google ha in mente qualcosa per velocizzare il protocollo HTTP. SPDY, questo il nome, promette di migliorare la velocità di navigazione del 50%.
L’XML è ormai uno dei linguaggi fondamentali nella programmazione web e non. 7 Editor XML possono far comodo.
Picnik è un’applicazione online veramente comoda. E’ praticamente un editor di immagini online, permette di ridimensionare le immagini, ritagliarle, ruotarle, aggiungere effetti e via discorrendo. A me è tornato molto utile quando ho duvuto creare le miniature delle foto che vedete nella serie di post Elementi Speciali, con questo sito posso farlo direttamente online senza aprire programmi che succhiaro risorse per fare una cosa banale.
Oltre a poter caricare l’immagine da modificare, l’applicazione permette di importare le foto anche direttamente da siti come FaceBook, Picasa, Flickr o MySpace e poi salvare la foto modificata nel proprio computer. La maggior parte degli strumenti è disponibile gratuitamente, tuttavia, esiste una versione premium a pagamento che mette a disposizione degli effetti e delle funzionalità in più.
Con l’avvento di Windows 7, Microsoft ha rilasciato per tale piattaforma un API Code Pack per .NET (priva della sua uscita ovviamente). Sostanzialmente si tratta di un set di classi che permettono di gestire le nuove caratteristiche del sistema operativo attraverso i linguaggi del framework .NET.
La prima caratteristica utile è la Jump List. Al suo interno è possibile inserire link di vario genere o file recenti aperti dall’applicazione.
JumpList j;
JumpListLink[] link = { new JumpListLink(@"C:\Windows\system32\notepad.exe","Avvia NotePad"), new JumpListLink(@"C:\Windows\system32\mspaint.exe", "Avvia Paint") };
jParse è un plugin per jQuery interessante che permette di interpretare velocemente un file XML in JavaScript attraverso poche istruzioni. L’estensione è ancora in versione beta e alcune cose potrebbero non funzionare, tuttavia lo consiglio perchè è davvero semplice. Sul sito trovate la documentazione e un esempio d’utilizzo.
Questo è l’esempio banale che ho scritto io. inizialmente ho provato a mettere l’indirizzo remoto del feed, ma non viene elaborato, quindi ho estrapolato il feed direttamente in locale e inserito in un file xml.
I parametri che vedete in output del tipo jpet* sono quelli inseriti in elementTag, il dopo il nome indica quale parametro stampare (si parte da 0). Qui potete scaricare il plugin, mentre qui l’esempio scritto da me (che si rifà semplicemente a quello del sito).
Google ha pubblicato un nuovo linguaggio di programmazione, Go. Google lo presenta come un linguaggio semplice, veloce, sicuro, divertente e open source. Il nuovo linguaggio dovrebbe unire la velocità e le performance di linguaggi come il C++ alla semplicità e la dinamicità di quelli come il Python e portare innovazione in un settore in cui, a detta dei creatori, non ci sono grossi cambiamenti da oltre 10 anni.
Sinceramente, lo ritengo soltanto uno dei tanti linguaggi, così, su due piedi, non mi sembra abbia qualcosa di tanto innovativo da generare una migrazione di programmatori da linguaggi come .NET o Java verso questa tecnologia.
Navigando su CodeProject ho trovato un’articolo interessante. Praticamente mostra come è possibile creare una funzione eval in C#. Normalmente funzioni di questo tipo è possibile usarle soltanto in linguaggi puramente interpretati come PHP o Python. Tuttavia con qualche trucco è possibile farlo anche in altri linguaggi, questo è infatti quello che fa l’autore.
System.Reflection.Assembly a = cr.CompiledAssembly; object o = a.CreateInstance("CSCodeEvaler.CSCodeEvaler");
Type t = o.GetType();
MethodInfo mi = t.GetMethod("EvalCode");
object s = mi.Invoke(o, null); return s;
}
Praticamente è come se creasse al volo un sorgente (dove inserisce il codice) che poi va a compilare ed eseguire, infine restituisce il risultato dell’esecuzione. Potete scaricare il progetto completo da qui (dovete essere registrati a CodeProject, se non lo siete o vi registrate o lo scaricate da qui).
Novell ha sviluppato un nuovo prodotto, Mono Tools per Visual Studio, un plugin per Visual Studio, appunto, che permette di scrivere applicazioni Linux in ambiente Windows. Miguel de Icaza, responsabile del progetto Mono, fa una panoramica approfondita del prodotto sul suo blog.
L’add-in in questione non è per niente libero, come per MonoTouch l’applicativo è stato rilasciato a pagamento. E’ disponibile in tre versioni e il costo varia dai $99 della versione Professional fino ai 2,499 dollari della versione Ultimate.
Commenti recenti