Ebooks download utility

Recentemente sono incappato in un sito interessante che contiene una vasta lista di ebooks, per lo più inerenti al mondo IT.
IT eBooks è infatti una sorta di libreria online piena di PDF, “liberi” da scaricare.

La lista è piuttosto vasta, di conseguenza quello che verrebbe naturale fare sarebbe usare la funzionalità di ricerca o navigare tra le varie pagine.

Domanda: e nel caso volessimo scaricare tutti gli ebooks? Un approccio diretto (scaricare i libri uno ad uno) sarebbe un sicuro spreco di tempo.
La soluzione migliore è creare una sorta di crawler custom che scarichi in automatico tutti i files.

La struttura della pagine è piuttosto semplice, quindi è stato abbastanza veloce e immediato implementare un utility che effettuasse il download.

Ho deciso di mettere online il codice sorgente e il file jar pronto per l’uso, direttamente su GitHub.

Repository: itEbooksDownloader.

VERSIONE INGLESE: su RogueAI

Rilasciato PHP 5.3.1

Dopo quasi 5 mesi dal rilascio della versione PHP 5.3.0 arriva dagli sviluppatori il primo aggiornamento per il branch 5.3 del popolare linguaggio di programmazione.
La nuova release PHP 5.3.1 è incentrata principalmente sulla stabilità apportando ben 100 bug fix, alcuni dei quali legati alla sicurezza.

L’ultima release vede anche l’aggiunta della direttiva INI “max_file_uploads“, che consente di limitare il numero di uploads di file per ogni richiesta: 20 è l’impostazione di default.
Questa soluzione consente di evitare potenziali tentativi di attacchi DoS (Denial of Service).
Aggiunti inoltre alcuni sanity check nella fase di processing di informazioni Exif (exchangeable image file format).

Ulteriori dettagli possono essere consultati leggendo le release notes e il change log.
Disponibile sul sito anche una migration guide per gli utenti che effettuano l’upgrade dalla versione PHP 5.2.
PHP è rilasciato attualmente sotto la licenza PHP Licence 3.01.

Javascript frameworks: qual è il migliore?

Personalmente ho utilizzato Prototype abbastanza da ritenerlo un ottimo “strumento” per realizzare piccole “chicche” in Ajax o per semplici operazioni quali il classico “document.getElementById()”.
Mi sono capitate però sottomano un paio di pagine interessanti.
Nella fattispecie:
Dojo vs JQuery vs MooTools vs Prototype Performance Comparison
SlickSpeed Selectors Test
Inutile dire che la lettura e l’esecuzione dei test ha scatenato in me un grosso interesse: in particolare verso Dojo che a quanto pare sembra il “migliore” di tutti.
Prototype invece non esce molto bene classificandosi in coda.
Giusto per sfizio mi sa daro’ un occhio a Dojo.

Qualcuno di voi ha esperienze a riguardo ? Consigli ?

Aptana IDE bug: permessi sui file via ftp

Da un po’ di tempo a questa parte ho abbandonato definitivamente Dreamweaver come ambiente di sviluppo web e php.
Visto che per lavoro utilizzo quotidianamente Eclipse, ho pensato di impiegare questo ottimo IDE oltre che per lo sviluppo J2EE anche per piccoli progetti PHP.
E l’ho fatto mediante Aptana.
Aptana Studio è un IDE per lo sviluppo web e ajax, Eclipse-based, che puo’ essere utilizzato come applicazione standalone oppure come plugin per una installazione esistente di Eclipse.
Io ho appunto optato per quest’ultima soluzione.
Per incorporarlo in una installazione già esistente di Eclipse (nel mio caso una Eclipse Europa 3.3) è sufficiente seguire le istruzioni reperibili a questo indirizzo.
Una volta fatto questo per avere a disposizione anche strumenti e funzionalità di sviluppo PHP è sufficiente integrare l’apposito plugin (qui le istruzioni).

Dopo questa digressione su Aptana, tornando all’argomento vero e proprio del post, volevo porre l’accento su un bug che interessa la modalità di editing via FTP.
Per comodità e rapidità puo’ rivelarsi necessario intervenire direttamente via ftp su un sito/webapp già presente per modificare alcuni file o aggiungerne di nuovi in maniera immediata.
Nel far questo bisogna prestare attenzione al fatto che di default Aptana crea i nuovi file con permessi settati a 666 o rw-rw-rw.
Questa soluzione puo’ pero’ creare problemi in alcuni contesti.
Molti servizi di hosting infatti per motivi di sicurezza precludono la possibilità di impostare per file e cartelle il (w)rite bit per “All Users” e “Group Users”.
Questo comportamento è dovuto spesso all’uso di suphp (modulo per apache) o altri tool simili.
Accedendo quindi alla propria pagina php ci si potrà cosi’ trovare di fronte ad un bel messaggio d’errore “Server 500…etc.etc.”.
Va detto che per le modifiche sui file non v’è alcun problema (almeno non l’ho riscontrato), pero’ per i nuovi file che vengono creati si.
La soluzione sta quindi nel modificare a mano i permessi per i nuovi files a 644 o rw-r–r– o caricarli via qualche client ftp come Filezilla.

Attualmente infatti a quanto pare non v’è possibilità di cambiare i permessi dei file direttamente da Aptana o almeno questa funzionalità è preclusa per gli utenti della Community Edition.
Gli utenti della versione Pro invece possono intervenire seguendo queste istruzioni.

Sul forum di supporto di aptana si trovano parecchi topic a riguardo, tant’è che è stata aperta anche una segnalazione (STU-1792) sull’apposito sistema di bug tracking.
A quanto pare con la prossima versione 1.2 di Aptana dovrebbe venire introdotta una finestra di opzioni per consentire di impostare i permessi di default da assegnare ai nuovi file remoti.

Concludo semplicemente confermando la bontà di questo plugin e il consiglio per chi sviluppa webapp in Java di integrarlo comunque visto l’ottimo sistema di code assist/formatting e syntax highlighting/validation per i linguaggi Javascript, Html e Css.

Visual Studio e la lista dei file/progetti recenti

Da qualche giorno ho cominciato a darmi allo studio un po’ piu’ serio di C#.
In passato infatti mi ero cimentato nell’apprendimento con la tecnica “Learn by examples”.
Libri alla mano
1. Programming C# 4th Edition di Jesse Liberty

Programming C# 4th Edition di Jesse Liberty

2. Accelerated C# 2008 di Trey Nash

Accelerated C# 2008 di Trey Nash

e Visual Studio 2008 installato sto procendo a piccoli passi (lavoro permettendo) nella “mia avventura”.

Oggi volevo condividere una piccola curiosità relativa a Visual Studio.
In particolare vi siete mai chiesti come fare a ripulire gli elenchi che compaiono nei “Recent Files” o “Recent Projects” sotto la voce di menu File? Io si 😀
In particolare da registro di sistema vi sarà sufficiente individuare le chiavi:
HKEY_CURRENT_USERSoftwareMicrosoftVisualStudio<versione>ProjectMRUList
e
HKEY_CURRENT_USERSoftwareMicrosoftVisualStudio<versione>FileMRuList

Una volta trovate eliminate le voci inutili o che vi interessa rimuovere.

Microsoft Free Ebooks

Volevo segnalare la possibilità di scaricare in maniera del tutto gratuita previa registrazione dal seguente sito Microsoft:
http://csna01.libredigital.com/
una serie di ebook gratuiti.

In particolare si tratta di

Introducing Microsoft LINQ by Paolo Pialorsi and Marco Russo.
Chapter 1: LINQ Introduction
Chapter 2: C# Language Features
Chapter 3: Visual Basic 9.0 Language Features
Chapter 4: LINQ Syntax Fundamentals
Chapter 5: LINQ to ADO.NET
Chapter 6: LINQ to XML

Introducing Microsoft LINQ Ebook

Introducing Microsoft ASP.NET AJAX by Dino Esposito

Chapter 1: The AJAX Revolution
Chapter 5: The AJAX Control Toolkit

Introducing Microsoft ASP.NET AJAX

Introducing Microsoft Silverlight 1.0 by Laurence Moroney

Chapter 1: Silverlight and User Experience
Chapter 5: Programming Silverlight with JavaScript

Introducing Microsoft Silverlight 1.0 Ebook

Rilasciato PHP 5.2.5

E’ stata rilasciata la versione 5.2.5 di linguaggio PHP, che chiude in primis numerose vulnerabilità, ma offre anche svariate migliorie.
Stando agli sviluppatori è stata migliorata la stabilità e sono state chiuse più di 60 falle.
Di conseguenza il consiglio è quello di effettuare l’aggiornamento il prima possibile.

Da segnalare il fatto importante che ora non possono più essere causati buffer overflows sfruttando le funzioni fnmatch, setlocale e glob.
La lista completa delle novità si trova qui: PHP 5 ChangeLog Version 5.2.5.
Gli utenti delle precedenti versioni 5.0 e 5.1 possono consultare un comodo tutorial sul come “migrare” alla nuova versione.

LINKS:
PHP 5.2.5 Release Announcement, news release on PHP.org
PHP 5.2.5 released, su Heise-Security

Open Source GOD: più di 480 applicazioni

Su Mashable.com è stata pubblicata nei giorni scorsi una lista definita “Open Source GOD: 480+ applications and resources“.
Il mega post raccoglie una lista di innumerevoli applicazioni dei tipi più disparati tutte rigorosamente opensource e free.
Tra le categorie:
– Accounting
– Content Management Systems
– CRM
– Desktop Environments / Shell replacements
– Email clients
– Encoding, Conversion & Ripping Tools
– ERP
– Filesharing & FTP
– Graphics-Design & Modeling Tools
– Media Players
– Messengers & Communication clients
– PDF Drivers & Tools
– Personal Information & Task Manager
– Project Management
– Reporting Tools
– RSS
– System utilities
– Office
– Web browsers

Non mi resta che augurarvi buona navigazione tra i quasi 500 links e buon download!

Evitare il messaggio "Pagina scaduta" in PHP

Se avete avuto modo di sviluppare un po’ in PHP vi sarà certamente capitato che tornando indietro da una pagina all’altra vi comparisse il messaggio d’errore “Attenzione pagina scaduta”.
Il classico esempio è una pagina di ricerca che vi restituisce i risultati, cliccate su uno per vederne i dettagli e quando cliccate sul button “Indietro” o “Back” del browser vi compare la schermata d’errore.
Il comportameno varia a seconda dei browser:

1) IE si limita a visualizzare semplicemente la pagina con l’errore

2) Firefox invece avvisa che si stanno tentando di reinviare i dati di un modulo

Cercando in rete la soluzione a questo problema sono incappato in questo interessante articolo che potete leggere qui:
Guru Speak: How to Avoid “Page Has Expired” Warnings

Succo del discorso è che per ovviare al problema basta aggiungere la seguente riga di codice:
ini_set('session.cache_limiter', 'private');
all’inizio delle pagine che danno questa seccatura.
Buon lavoro! 😀

Conferenza ASP.net AJAX

Su indicazione del mio amico e collega di università Lino Possamai, vi segnalo una conferenza che si terrà il giorno 11 ottobre 2007 presso i locali del Centro Socio Assistenziale in via Risorgive n.4 a Porcia in provincia di Pordenone.
L’incontro verterà su ASP.NET Ajax.
L’iniziativa è sponsorizzata oltre che dal comune di Porcia anche da 1nn0va, associazione non profit per lo sviluppo delle tecnologie informatiche. Sul loro sito trovate tutte le informazioni a riguardo.
Qui sotto trovate il volantino.
Verso i primi di ottobre seguirà un remainder 😀

1nn0va Conferenza ASP.NET AJAX