Archivi di Web developing category
Vista la buona riuscita del planet S.P.R.I.Te. e il conseguente scambio di opinioni su vari argomenti tecnico/geek, propongo un mio modo per uploadare velocemente le modifiche a un sito, curioso di conoscere vostre alternative al tutto.
Esigenza: uploadare VELOCEMENTE* gli ultimi file modificati (anche in sottocartelle), nei rispettivi path remoti (struttura dirs mantenuta), sovrascrivendo (se necessario) i files. Esigenza che deriva dallo sviluppo di applicazioni già funzionanti e da testare online.
* Con un batch in pochi secondi, i files più recenti sono sempre sul pc in locale. Supponiamo di avere in locale una cartella di sorgenti di vari Mb e se no modifica solo 1 in una sottocartella.
Mio Metodo: con un batch (autoit + winrar + winscp scripting):
- winrar crea un archivio con i files modificati negli ultimi N minuti (N chiesto a prompt). Winrar riesce in pochissimo tempo a analizzare gli ultimi files modificati (sottocartelle comprese) dopo una certa data/ora (tempo di molto inferiore al controllo manuale su ogni file da parte del batch).
- decompressione archivio in cartella temporanea
- upload della cartella temporanea tramite winscp scripting (connette, upload cartella e sottocartelle, sconnette).
- se l’operazione riesce, scrivo un file con il timestamp dell’upload, così la volta successiva non viene chiesto nessun input dei minuti al passo 1
Personalizzazioni: apertura finestra winrar con l’archivio creato, così si possono modificare i file da caricare o no.
Aggiunte: creazione file con elenco siti, path e relativi profili di connessione winscp. Programmino autoit che mostra l’elenco dei siti, quindi con n click su questi lancia il batch sul sito selezionato e lo aggiorna (img a lato).
Alternative:
- comparazione directory winscp: funzione che controlla le date dei files. Lenta in caso delle sottocartelle.
- rsyinc: funziona solo su shell linux, ne parlano spesso ma non l’ho mai provata, sviluppando su windows
Altre idee o soluzioni pronte ?
PHP. Capita spesso di voler richiamare una pagina (che è stata già chiamata con dei parametri).
Per non dover ogni volta riscrivere la url da zero, si possono sovrascrivere (o aggiungere se non ci sono già) i parametri in GET con la funzioncina ,codice a fondo post. Esempio : in una pagina di navigazione recordset stiamo visualizzando la pagina X di Y (quindi in GET ci saranno già dei parametri che vogliamo mantenere ), e serve un link alla pagina che però cambi l’ordinamento:
Cioè se la pagina corrente era
pagina.php?order=id&page=4&table=tabella
il link dovrebbe essere
pagina.php?order=nome&page=4&table=tabella
Usiamo la funzione e scriviamo
<a href="pagina.php<?=makeUrl( array("order"=>"nome") )?>">ordina tabella per nome</a>
fregandocene dei parametri correnti che verranno mantenuti
Qualcuno ha avuto qualche altra idea per risolvere il problema ? commentate !
//rileggo i parametri GET e li sovrascrivo con quelli passati, restituendo la URL
function makeUrl($overGet)
{
$get = $GLOBALS['_GET'];
// overWrite GET
foreach($overGet as $k => $v)
{
$get[$k] = $v;
}
// make Url
$ga = array();
foreach($get as $k => $v)
{
$ga[] = urlencode($k)."=".urlencode($v);
}
//
return implode("&", $ga);
}
17
May
Postato in sprite, Web developing by admin |
Mi è capitato spesso di sviluppare un software web-based o sito, poi sentirmi dire che sulle vecchie versioni (maledette!) di Internet Eplorer si vedono male.
Colpa in maggior parte del mancato rispetto delle regole CSS da parte di IE < 7.0.
Resta il fatto che ancora una grossa fetta di utenti usa IE 5, 6 e simili.
Esiste spesso (con molta fatica) una soluzione cross-browser prestando attenzione x esempio alle regole sui padding degli oggetti.
Purtroppo non è possibile installare versioni diverse di IE sulla stessa macchina, a meno che non si agisca con un trucchetto sulle DLL che vengono usate dal browser.
Googlando in giro, ho trovato questo articolo:
"Install multiple versions of IE on your PC"
http://tredosoft.com/Multiple_IE
Fa scaricare un software che in soli 10 Mb, installa gli eseguibili dei browser IE dalla versione 3 alla 6
Valida alternativa alla soluzione che propone di installare virtual PC 2004 (che nn va su Xp Home) + immagine dell’SO (>400Mb!!!)
16
Feb
Postato in Web developing by admin |
a questo link
http://www.elcisoft.com/tools/index.php
due form per ricavare l’IP dal nome DNS e viceversa
+ altre informazioni sul client (IP, user_agent, ecc…)
30
Jan
Postato in Web developing by admin |
Ho creato una prima versione di un piccolo servizio web per inviare in automatico i titoli dei feed RSS nella casella e-mail.
Dopo registrazione & login, si possono inserire i link dei feed con la cadenza di invio:
es: www.sito.it/feed.xml ogni 2 giorni, www.sito2.it/feed.xml ogni settimana. ecc…
Ogni 2 giorni (7 per sito2.it ) verranno quindi inviati per mail i nuovi titoli, description e link dei titoli (non già precedentemente inviati) dei feed.
http://www.elcisoft.com/rss2mail/
Testate e fate sapere di bug e migliorie varie


5/3/08: Aggiunta la possibilità di farsi inviare il contenuto intero di una pagina web
21
Jan
Postato in Web developing by admin |
Mi è arrivata una mail da tophost.it dove mi hanno proposto un prodotto a scelta a solo 1 €.
Ho attivato quindi un dominio, che sposto sul mio hosting dreamhost (che supporta infiniti domini mappati su utenti e spazi personalizzati).
Come fare ?
1) Da dreamhost: Manage Domains -> crea il dominio, quindi appunta gli indirizzi ip, mostrati sotto "nameservers to work"
esempio:
NS1.DREAMHOST.COM 66.33.206.206
NS2.DREAMHOST.COM 208.96.10.221
NS3.DREAMHOST.COM 66.33.216.216
annotare il primo ip
2) tophost: cancella la riga www
e inseriscine un’altra
nome:www | tipo:A | valore: 66.33.206.206
eventualmente redirezionare anche le voci di mail ecc… anche se consiglio di usare l’alias delle mail offerto dal cpanel di tophost
3) dopo 1-2 giorni il dominio sarà raggiungibile
17
Jul
Postato in Web developing by admin |
Riporto sotto il principio di funzionamento di ajax, ovvero la tecnica che usa javascript e css per caricare parti della pagina solo quando richiesto, questo mi è utile quando lo uso per alcuni moduli, spero possa servire anche a qualcun’altro.
TEORIA
Javascript usa la classe httpRequest, che va istanziata e inizializzata (in modo diverso a seconda del browser). Tramite il metodo open (a cui passiamo la url da aprire) e send, facciamo una richiesta http al server
esempio:
httpRequest.open(‘GET’, ‘pagina.php?parametro=valore’, true);
httpRequest.send(null);
a queto punto, con il metodo responseText ottieniamo la risposta http della pagina.
Ovviamente dobbiamo scriverla da qualche parte, a questo scopo usiamo i CSS.
Diamo l’id css (es: id="destinazione") all’oggetto html (span, div…) dove vogliamo che venga scritta la risposta, così riusciamo ad accederne alle proprietà tramite getElementById(destinazione). La proprietà che ci interessa è in particolare innerHTML (cioè il contenuto).
Riassumendo:
document.getElementById(id).innerHTML = httpRequest.responseText;
PRATICA
Includete ajax.js
con il codice fra gli head:
<script language="javascript" xsrc="ajax.js"></script>
nell’href dei link o evento javascript (onClick per i pulsanti, onKeyUp per i cambiamenti nelle input…) inserite il codice
makeRequest(‘pagina.php?parametro=’ + document.form1.campo1.value, ‘destinazione’)
il primo parametro è il link http da caricare. Il parametro è preso dal contenuto del campo1 del form1.
il secondo parametro è l’id dell’oggetto dove verrà caricato il contenuto (in http) della pagina.
ESEMPIO MINIMALE CONCRETO
Facciamo una pagina per inserimento nomi di persona e cellulari in un database. Nel modulo di inserimento avvisiamo accanto con ajax quando il numero di cell esiste già nel database.
Supponiamo di aver già creato il database e avere la pagina check.php, che legge il parametro num, e stampa in html se il numero esiste già o no nel db:
<?
// check.php
//connessione mysql
if ($_GET['num'] esiste già nel db)
print "Attenzione: numero di tel già esistente";
else
print "OK. numero non ancora esistente";
?>
Creiamo il form html:
inserimento.html
<script language="javascript" xsrc="ajax.js"></script>
<form name=form1 action=[...] method=[...]>
Nome persona: <input name=nome><br>
Telefono: <input name=TEL
onKeyUp="makeRequest(‘check.php?num=’ + document.form1.tel.value, ‘destinazione’)" >
<span id="destinazione"></span><br>
<input type=submit>
</form>
In questo esempio, quando scriviamo "123" dentro il campo tel, javascript chiama la pagina check.php?tel=123 e scrive il risultato http dentro il tag con id="destinazione" (cioè accanto al campo di testo stesso).