giovedì 26 maggio 2011

google api translate

comando restful

https://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=Hello,%20my%20friend!&langpair=en%7Cit

risposta ::

{"responseData": {"translatedText":"Ciao, amico mio!"}, "responseDetails": null, "responseStatus": 200}

API TRANSLATE

Un sito in più lingue può essere gestito in modi diversi, e il modo migliore dipende sempre dal tipo di sito che stiamo gestendo. Ad esempio, un sito che viene aggiornato raramente (ad esempio il sito verina di un albergo) può tenere sul database le versioni in più lingue dei testi, opportunamente tradotte da un traduttore. Per i siti che vengono aggiornati frequentemente, come i blog, questo può rappresentare un problema.
Con le Google AJAX Language API, questo problema può essere risolto in modo molto semplice: si può automatizzare il processo di traduzione e quindi non avere bisogno di un traduttore, inoltre eviteremo di conservare i testi tradotti sul nostro database.
Per includere le API, sarà necessario utilizzare il comando google.load:
<script type=”text/javascript” src=”http://www.google.com/jsapi”>
</script>
<script type=”text/javascript”>
google.load(“language”, “1″);
</script>
Adesso, tradurre una stringa diventa semplicissimo: la chiamata seguente traduce una frase dall’italiano all’inglese:
google.language.translate(“Ciao, sono una frase”, “it“, “en“, function(result) {
if (!result.error) {
var container = document.getElementById(“traduzione“);
container.innerHTML = result.translation;
}
});
Il primo parametro è la stringa da tradurre, il secondo la lingua di partenza ed il terzo la lingua in cui ottenere la traduzione. Il risultato della traduzione viene inserito nell’elemento con ID “traduzione”.
E’ possibile anche tradurre senza conoscere la lingua di partenza, con la funzionalità di riconoscimento della lingua: basterà immettere una stringa vuota come secondo parametro. Per ottenere invece il codice della lingua utilizzata, si utilizzerà la funzione detect:
var text = “Guten morgen!”;
google.language.detect(text, function(result) {
if (!result.error) {
var language = ‘unknown’;
for (l in google.language.Languages) {
if (google.language.Languages[l] == result.language) {
language = l;
break;
}
}
var container = document.getElementById(“codice“);
container.innerHTML = “Il codice lingua è : ” + language;
}
});
Il codice della lingua verrà inserito nell’elemento con ID “codice”.
Le Google AJAX Language API non si fermano alla sola traduzione del testo, ma comprendono molte altre funzionalità, per una lista esaustiva di tutte le possibilità vi rimando alla documentazione ufficiale.
Il risultato non sarà sempre perfetto, ma è un’ottima soluzione per chi gestisce un sito aggiornato frequentemente e per chi desidera un blog multilingua!

venerdì 20 maggio 2011

11 - javasvript - Come cambiare gli attributi style con javascript

Style/CSS Javascript Reference

A table of Javascript names for CSS properties.
document.getElementById('ID').style.PROPERTY = "VALUE";
Example:
<div id='contentblock'> some content </div>

<script type='text/javascript'>
document.getElementById('contentblock').style.backgroundColor = "#f0fcaa";
</script>

CSS PropertyJavaScript Reference
backgroundbackground
background-attachmentbackgroundAttachment
background-colorbackgroundColor
background-imagebackgroundImage
background-positionbackgroundPosition
background-repeatbackgroundRepeat
borderborder
border-bottomborderBottom
border-bottom-colorborderBottomColor
border-bottom-styleborderBottomStyle
border-bottom-widthborderBottomWidth
border-colorborderColor
border-leftborderLeft
border-left-colorborderLeftColor
border-left-styleborderLeftStyle
border-left-widthborderLeftWidth
border-rightborderRight
border-right-colorborderRightColor
border-right-styleborderRightStyle
border-right-widthborderRightWidth
border-styleborderStyle
border-topborderTop
border-top-colorborderTopColor
border-top-styleborderTopStyle
border-top-widthborderTopWidth
border-widthborderWidth
clearclear
clipclip
colorcolor
cursorcursor
displaydisplay
filterfilter
fontfont
font-familyfontFamily
font-sizefontSize
font-variantfontVariant
font-weightfontWeight
CSS PropertyJavaScript Reference
heightheight
leftleft
letter-spacingletterSpacing
line-heightlineHeight
list-stylelistStyle
list-style-imagelistStyleImage
list-style-positionlistStylePosition
list-style-typelistStyleType
marginmargin
margin-bottommarginBottom
margin-leftmarginLeft
margin-rightmarginRight
margin-topmarginTop
overflowoverflow
paddingpadding
padding-bottompaddingBottom
padding-leftpaddingLeft
padding-rightpaddingRight
padding-toppaddingTop
page-break-afterpageBreakAfter
page-break-beforepageBreakBefore
positionposition
floatstyleFloat
text-aligntextAlign
text-decorationtextDecoration
text-decoration: blinktextDecorationBlink
text-decoration: line-throughtextDecorationLineThrough
text-decoration: nonetextDecorationNone
text-decoration: overlinetextDecorationOverline
text-decoration: underlinetextDecorationUnderline
text-indenttextIndent
text-transformtextTransform
toptop
vertical-alignverticalAlign
visibilityvisibility
widthwidth
z-indexzIndex

mercoledì 18 maggio 2011

80 - applicazioni - CONTROLLO DI GESTIONE -- Monitorare la gestione aziendale

CONTROLLO DI GESTIONE -- Monitorare la gestione aziendale


3. Fasi del controllo di gestione.
  • pianificazione: elaborazione delle strategie aziendali di medio-lungo periodo e dei piani a più breve termine (spesso sotto forma di budget);
  • attuazione: mobilitazione delle risorse aziendali per il raggiungimento degli obiettivi fissati nei piani;
  • controllo: verificare che i piani siano stati realizzati e che gli obiettivi siano stati raggiunti
  • correzione: revisione dei piani per individuare nuove strategie più efficaci e nuovi obiettivi di miglioramento.

5. Il sistema di costing

L’attribuzione dei costi avviene attraverso diverse metodologie che si definisce sistema di costing.
Il sistema per centri di costo classifica le strutture o le attivita' aziendali attribuendo i costi sostenuti dall’azienda. Tale attribuzione può avvenire scegliendo solo di valutare i costi diretti (sistemi di direct costing o variable costing) oppure attribuendo anche i costi indiretti (sistemi di full costing). I costi indiretti sono distribuiti con l’utilizzo di driver.
  • Il sistema di contabilità analitica è lo strumento che permette di rilevare e ripartire in modo corretto, tempestivo e significativo i fatti aziendali.
  • Costi diretti: sono i costi che possono essere associati in modo univoco ad un prodotto.
  • Costi indiretti: sono quei costi che possono essere associati alla produzione attraverso l’utilizzo di criteri di ripartizione . Sono pertanto oggetto di stima o congettura a cura del controller.
  • Il margine di contribuzione finale è la differenza tra ricavi unitari, costi diretti unitari e costi fissi unitari.

martedì 17 maggio 2011

11 - javascript - collection of javascript graphics library

1. JSCharts 

JS Charts is a JavaScript chart generator that requires little or no coding. JS Charts allows you to easily create charts in different templates like bar charts, pie charts or simple line graphs.
voto 7 semplice classica

2. PlotKit – Javascript Chart Plotting

PlotKit is a Chart and Graph Plotting Library for Javascript. It has support for HTML Canvas and also SVG via Adobe SVG Viewer and native browser support.
bellina 

3.JavaScript vector-draw library

How many times you wished if you could only draw an arrow on your web page? Or few lines here and there? Unfortunately, HTML offers nothing in this department, and using images takes bandwidth and slows down the loading of your pages.
Courtesy of Walter Zorn, you can now use JavaScript to draw objects on your web pages. Fire up your JavaScript Editor, follow the instructions below and you will be drawing shapes on your web pages in no time.
Click here to download the JavaScript vector-draw library (6KB) under LGPL license
Use the library to draw:
Lines (see example above)
Circles and ellipses / ovals (see example above)
Rectangles (see example above)
Poly-lines and polygons (see example above)
Text
Images


to be complete

40 - statistica - Retta regressione

Retta di regeressione lineare
x
y
xm media x
ym media y
n numero valori
i iesimo valore

a= (som(xi*yi) - n(xm*ym)) /som(xi+xi) - (n * xm * xm)
b= xm - a*xm




???????

a = (som(xi*yi) - som(xi)*som(yi) ) / som(xi**) - (som(xi))**
b = (som(xi**)*som(yi) - som(xi*yi) * som(xi)) / som(xi**) - (som(xi))**

y = ax + b




a = (n*som(xi*yi) - som(xi)*som(yi) ) / som(xi**) - (som(xi))**
b = (n*som(xi**)*som(yi) - som(xi*yi) * som(xi)) / som(xi**) - (som(xi))**
n=8
x 1 3 4 6 8 9 11 14
y 1 2 4 5 5 7 8 9
som(xi) 56
som(yi) 40
som(x**) 524
som(xi*yi) 364
som(y**) 256

a = (8 * 364 - 56*40 ) / 8*524 - 56*56
b = (524 *40 - 364 * 56) / 8*524 - 56*56

domenica 15 maggio 2011

Compilatore php HIPHop

HipHop per PHP

Da Wikipedia, l'enciclopedia libera
Hiphop logo white.png
Developer (s) Facebook
Prima versione 2 febbraio 2010 ( 2010/02/02 )
Scritto in C + + , C
Sistema operativo Cross-platform
Tipo Codice sorgente trasformatore
Licenza Software libero ( PHP License )
Sito http://wiki.github.com/facebook/hiphop-php/
HipHop per PHP è un trasformatore di codice sorgente per PHP codice di script. HipHop trasforma il codice sorgente PHP di programmazione altamente ottimizzato in C + + e quindi utilizza g + + per compilarlo a codice macchina . HipHop comprende un trasformatore di codice, una reimplementazione del sistema di runtime di PHP, e una riscrittura di molte estensioni PHP comune di approfittare di queste ottimizzazioni delle prestazioni. [ 1 ]
HipHop è stato creato da Facebook per risparmiare risorse sui propri server. E 'stato distribuito con i suoi oltre 300.000 linee di codice sorgente scritto in C + + e C come software libero sotto i termini della versione 3.01 della licenza di PHP .
Hanno inoltre elaborato HPHPi , che è un interprete sperimentale studiato per lo sviluppo senza la necessità di compilare il codice sorgente PHP prima di eseguirlo.
 Storia
Inizialmente HipHop è stato sviluppato a Facebook sotto la guida di Haiping Zhao su CentOS e Fedora sistemi. Ne consegue simili sviluppi precedenti come PHC [ 2 ] e Roadsend PHP [ 3 ] del compilatore (la compilazione di C) o Quercus [ 4 ] e di Project Zero [ 5 ] (implementazioni Java di PHP) o Phalanger (compilatore per. NET). Era stato in sviluppo per due anni, quando già il rilascio come software libero sotto la licenza PHP è stata annunciata per il 2 febbraio 2010. A causa delle difficoltà tecniche Facebook non è riuscito a consegnare alla data, [ 6 ] [ 7 ], ma il 20 febbraio le sorgenti sono stati infine caricati al pubblico Git repository.

Uso HipHop per PHP

HipHop per PHP è un progetto open source, disponibile da GitHub sotto la licenza open source PHP.
HipHop attualmente supporta PHP versione 5.2 e sarà aggiornato per supportare 5.3.
HipHop è stato sviluppato su CentOS e Fedora, la costruzione su altri sistemi operativi potrebbe non funzionare al momento, anche se il supporto può essere aggiunto in futuro. Al momento, HipHop può essere eseguito solo su architetture a 64 bit.
HipHop è un notevole miglioramento per l'esecuzione di progetti PHP con un ingombro di memoria ridotto [ 8 ] e l'aggiunta di TBB parallel_for s 'HipHop dà una ancor più grande di speed-up e una significativa riduzione del consumo di memoria [ 9 ]
Collegamenti esterni

Concetti utili php-gtk

 

  • Widget: widget è semplicemente un nome comune tramite il quale vengono indicati i componenti che compongono (scusate il gioco di parole) un'interfaccia grafica, più comunemente chiamata GUI (Graphical User Interface). Un bottone, una finestra, una barra di scorrimento, sono tutti esempi di widget. Essendo un widget qualcosa di generico, indicheremo con widget anche quei componenti (non visibili direttamente) atti a contenere altri widget. Questi componenti sono più comunemente chiamati Containers e vengono spesso sfruttati per raggruppare tra loro più widget al fine di disporli correttamente sullo schermo.
  • Signal (Segnale): un segnale è una notifica effettuata da un widget, è un modo tramite il quale un componente indica al GUIengine che il suo status è stato modificato in qualche modo. Quando clicchiamo su un bottone, quando chiudiamo o ridimensioniamo una finestra il widget modificato ci informerà delle modifiche avvenute tramite un segnale. GTK+ differenzia molto i segnali dagli eventi : un evento è una notifica utilizzata tra i widget ed il GUIengine per comunicare. Gli eventi e la loro gestione verranno approfonditi in futuro.
  • Callback: ogni qualvolta un widget emette un segnale, viene eseguita, se presente, una funzione connessagli precedentemente. Questa funzione, scelta e connessa dal programmatore, è detta callback. Per fare un esempio concreto, potremmo associare al segnale evocato in caso di click su un bottone, una funzione che ci permetta di visualizzare un messaggio. Le callback funzionano in modo simile agli handler di una state-machine.
Come già anticipato per programmare in PHP-GTK è fondamentale conoscere il funzionamento della programmazione ad oggeti. Difatti, come in tutti i GUIengine, anche i wrapper di PHP-GTK fa largo uso di ereditarietà e polimorfismo per permettere una gestione più agevolata dei widget. Un piccolo esempio: ogni widget, sia esso finestra, bottone o altro, eredita da una classe base, chiamata GtkWidget che contiene tutte le proprietà ed i metodi comuni ad ogni componente. In questo modo, sia che si lavori su un'istanza di GtkWindow, sia che si lavori su un'istanza di GtkButton, sarà sempre possibile richiamare il metodo GtkWidget::hide() per nascondere il componente. Molte classi base, come GtkWidget, sono di tipo astratto, e quindi non possono essere istanziate direttamente, ma solo ereditate. Come potete vedere il concetto di ereditarietà risulta qui fondamentale, ed è necessario averne compreso appieno il funzionamento.

30 - php - Php convertitore in exe

Bambalam PHP EXE Compiler/Embedder

Uso:
   bamcompile [-opzioni] infile.php [outfile.exe]
   bamcompile [-opzioni] project_directory mainfile.php [outfile.exe]
   bamcompile projectfile.bcp

Opzioni:
    -W Nascondi finestra di console per applicazioni con finestre
    -Output exe c Compress (utilizzando UPX)
    -D Non codificare i file PHP
    -E: extension.dll Embed e usare l'estensione di PHP
    -I: icon.ico Aggiungi icona exe 

mercoledì 11 maggio 2011

20 - linux - crontab -e

Grazie a Crontab, infatti, possiamo impostare delle operazioni pianificate sul nostro server Linux con una certa semplicità (operazioni che verranno eseguite dal demone Cron).
Il "cron daemon", infatti, legge il file "crontab" ed segue le operazioni ivi impostate al momento specificato.
Ogni utente del nostro O.S. Linux può avere la propria versione di questo file.
La sintassi è la seguente:
crontab -u username -opzione
La prima riga L'opzione -u comunica al sistema il nome dell'utente che "possiede" il file.
Se l'opzione -u è omessa, il sistema presumerà che state usando il vostro crontab personale.
List (l)
Con l'opzione list possiamo vedere il contenuto attuale del nostro crontab. L'utilizzo è questo:
crontab -l
Edit (e)
Con edit possiamo modificare (inserire o togliere) operazioni pianificate. Il comando da utilizzare è questo:
crontab -e
Automaticamente si aprirà il nostro editor di testo predefinito (generalmente pico o VI). Se è la prima volta che utiliziamo crontab può essere che vi ritroviate di fronte ad una pagina vuota... andiamo quindi ad inserire la nostra prima operazione pianificata!
Ecco un esempio:
00 00 * * * /usr/bin/updatedb
Nel comando qui sopra abbiamo detto al nostro demone Cron di eseguire il comando "updatedb" (specificandone il percorso assoluto) tutti i giorni al minuto 00 dell'ora 00. Prima del comando da eseguire, come potete vedere, vanno inseriti nell'ordine (da sinistra verso destra):
  • minuto
  • ora
  • giorno del mese
  • mese
  • giorno della settimana
L'utilizzo dell'asterisco significa "tutti". Se quindi lo utilizziamo al posto del giorno del mese, ad esempio, il comando verrà eseguito tutti i giorni del mese.

20 - linux - Montare e smontare Pendrive in linux

umount /media/usb
mount -t vfat /dev/sdc1 /media/usb
sleep 5
cd /media/usb
cp /var/newstar/dbnewstar .
sleep 10
umount /media/usb

20 - linux - Montare pendrive in linux da riga di comando



pendrive linux
Se possiedete un Server Linux vi sarà capitato di avere la necessità di trasferire dei dati da una pendrive usb, in Linux dobbiamo montare la periferica tramite il comando mount e disconnetterla con il comando umount. La prima cosa da fare è conoscere il nome della periferica che gli viene assegnata dal kernel.Riceviamo i diritti di root con:


1.sudo -i
Controlliamo il nome della periferica:  (nell'esempio sottostante il kernel assegna il device sdb1 alla pendrive)

1.fdisk -l
Utilizziamo mkdir per creare la directory di appoggio:

1.mkdir /mnt/usbdrive
Arrivati a questo punto possiamo montare la periferica utilizzando il seguente comando:

1.mount /dev/sdb1 /mnt/usbdrive
Invece disconnetterla prima di toglierla dalla porta USB con:

1.umount /dev/sdb1

Configurazione del file /etc/fstab

L'aggiunta di una riga di comando all'interno di questo file ci permette di poter montare la periferica in modo ancora piu semplice ho addirittura montarla automaticamente nella fase di boot.Se possediamo i diritti di root possiamo impartire il seguente comando per modificare il file:

1.nano /etc/fstab
Aggiungiamo questa riga in fondo:

1./dev/sdb1 /mnt/usbdrive auto noauto
Adesso possimo montare la periferica con mount /dev/sdb1 e smontarla con umount /dev/sdb1
Se invece andiamo a sostituire noauto con auto così:

1./dev/sdb1 /mnt/usbdrive auto auto
La chiavetta sarà montata automanticamente in fase di boot ma ricordatevi che se il sistema non trova la periferica connessa genera un errore in fase di avvio!

Note!

Non è possibile smontare la Pendrive con umount se nel momento in cui si impartisce il comando si risiede nella directory dove è stata montata (es. /mnt/usbdrive), sarà necessario spostarsi nella radice con cd / per effetture lo smontaggio!

20 - linux - Mounting A USB or Pen Drive In Linux

mount -t vfat /dev/sda1 /mnt/pendrive
where vfat is the type and sda1 is the dev for your drive.
the -t vfat is not allways nessisary but if it mounts and you have read or write errors then you need the -t vfat.
Well hopefully this helps someone. Oh don't forget to unmount using
umount /mnt/pendrive
Where /mnt/pendrive is the mount point.  If you dont unmount you will loose changes and risk messing up your partition.

20 - linux - Pendrive USB su linux

Pendrive USB su linux

 
La procedura qui descritta è stata sperimentata su Redhat Linux 7.3 con kernel 2.4.18-5 e potrebbe non avere alcun interesse sulle distribuzioni più recenti che hanno meccanismi di riconoscimento e mounting automatico delle periferiche di massa, ma la riporto ugualmente, al solo scopo di evidenziare i moduli necessari per utilizzare le famose “chiavette” anche in distribuzioni non recenti, le quali, ad ogni modo, potrebbero tornare molto utili per rivitalizzare PC ormai obsoleti dotati di processore pentium III che windows XP ha inesorabilmente mandato in cantina.
Caricamento dei moduli. I driver per la gestione delle porte USB sono UHCI o OHCI (che implementano l’ USB 1.1), il driver EHCI (per l’USB 2.0 non è presente in questa distribuzione). Uso il comando ‘modprobe’ per caricare i driver come moduli (una volta sperimentati come moduli i driver potrebbero essere conglobati nel kernel in modo statico ricompilandolo), in quanto permette di aggiustare automaticamente le dipendenze, contrariamente a ‘insmod’ che carica il modulo brutalmente senza fare altro. Bisogna includere anche altri elementi nel kernel:
  • usb-storage per la gestione delle periferiche USB
  • sd_mod lo SCSI Disk support, in quanto i dispositivi di memorizzazione di massa sulle USB sono gestiti come device SCSI.
Da notare che con il kernel 2.6 non è più necessario utilizzare lo strato di emulazione ide-scsi per averne accesso. Quindi i comandi da dare (come root) sono i seguenti:
  • modprobe uhci
  • modprobe sd_mod
  • modprobe usb-storage
a questo punto inseriamo la pendrive e notiamo che inizia a lampeggiare il led; come ulteriore verifica possiamo dare il comando ‘dmesg’ per vedere se è stata riconosciuta correttamente dal kernel, dmesg, ci rivela, tra l’altro, con quale device il dispositivo è stato mappato: ad esempio come “/dev/sda”. Nel mio caso la pendrive è stata mappata come “/dev/sda1″ quindi per raggiungere il contenuto del dispositivo, do i comandi:
  • cd /mnt
  • mkdir pendrive
  • mount /dev/sda1 pendrive
Rimozione del dispositivo. Prima della rimozione della chiavetta è necessario forzare la scrittura dei dati, rimasti nei buffer, sui rispettivi device; a tal scopo si può usare il comando ‘sync’ anche se il successivo comando di umount, sarebbe sufficiente per chiudere i file: – umount pendrive Una piccola nota: chi è abituato a usare Windows XP avrà notato che la procedura di “rimozione sicura” su una pendrive USB fa spegnere il led. In Linux anche se è sufficiente eseguire l’umount per poter rimuovere la chiavetta, a seguito di tale operazione il led non si spegne; in effetti il kernel mantiene una comunicazione con il dispositivo mediante il modulo UHCI; la rimozione di questo modulo determina lo spegnimento del led.

mercoledì 4 maggio 2011

Graph api & javascript base Facebook Connect tutorial

11- javascript -Una libreria JavaScript per le API di Facebook

Una libreria JavaScript per le API di Facebook

lunedì 28 gennaio 2008
API Facebook via JavascriptFacebook ha rilasciato in questi giorni una propria libreria JavaScript che permette agli sviluppatori di interfacciare applicazioni e siti web al mondo di Facebook. Invece che sviluppare un’applicazione che funziona dentro al social network, sarà quindi possibile sfruttare le varie funzionalità direttamente all’interno del proprio sito.
La libreria non richiede alcun linguaggio lato server e quindi può essere utilizzata anche in normali pagine HTML. Non sono però supportate le API che consentono l’upload di immagini e profile.setFBML può impostare il FBML (Facebook Markup Language) solo sul profilo utente corrente.