In questo talk si parlerà dell’integrazione della libreria javascript Dojo Toolkit nello Zend Framework e di come sia possibile sviluppare applicazioni RIA direttamente da PHP senza dover scrivere codice in javascript.In particolare verranno presentati i seguenti argomenti: integrare le widget Dijit con Zend_View, Form 2.0 con Zend_Form e Dojo e creare un datastore remoto con Zend_Dojo_Data.
Marco Rho: Magento theme development workflow con GruntMeet Magento Italy
Creare un workflow per lo sviluppo di un tema in Magento, automatizzando processi e integrando framework e preprocessori, è fondamentale non solo per velocizzare i tempi di sviluppo, ma anche perché aiuta il riuso del codice e mantiene facile la manutenzione del progetto. Grunt è un task runner formidabile che permette di realizzare operazioni ripetitive e di eseguirle in cascata in maniera automatica.
In questa presentazione Marco Rho ci mostrerà come creare un workflow per ottimizzare lo sviluppo di un tema di Magento. In particolare, configurerà Grunt in modo da pre-processare file scritti in sass, controllare la sintassi del codice, ottimizzare i tempi di caricamento del sito (minificando i file e ottimizzando in automatico le immagini), ed eseguire il reload automatico della pagina contemporaneamente su diversi device e browser per il testing.
In questo talk si parlerà dell’integrazione della libreria javascript Dojo Toolkit nello Zend Framework e di come sia possibile sviluppare applicazioni RIA direttamente da PHP senza dover scrivere codice in javascript.In particolare verranno presentati i seguenti argomenti: integrare le widget Dijit con Zend_View, Form 2.0 con Zend_Form e Dojo e creare un datastore remoto con Zend_Dojo_Data.
Marco Rho: Magento theme development workflow con GruntMeet Magento Italy
Creare un workflow per lo sviluppo di un tema in Magento, automatizzando processi e integrando framework e preprocessori, è fondamentale non solo per velocizzare i tempi di sviluppo, ma anche perché aiuta il riuso del codice e mantiene facile la manutenzione del progetto. Grunt è un task runner formidabile che permette di realizzare operazioni ripetitive e di eseguirle in cascata in maniera automatica.
In questa presentazione Marco Rho ci mostrerà come creare un workflow per ottimizzare lo sviluppo di un tema di Magento. In particolare, configurerà Grunt in modo da pre-processare file scritti in sass, controllare la sintassi del codice, ottimizzare i tempi di caricamento del sito (minificando i file e ottimizzando in automatico le immagini), ed eseguire il reload automatico della pagina contemporaneamente su diversi device e browser per il testing.
SUPERMOMS & SUPERHEROES CHRISTMAS CONCERT 2014 SPONSORSHIP PACKAGEDerrick Kim
Bridging Talent Worldwide is incorporated under Canadian Not-For-Profit Corporation Act (NFP Act), as a federal non-profit organization (899385-8).
The organization plans, organizes and executes an annual campaign that tackles our societal problems, with creative means of bridging talent of individuals and organization.
For our 2014 campaign,
we plan to organize a performing event where single moms and their children (a.k.a. “Super Moms & Super Heroes”) are cordially invited for celebrating their life stories. Like fairy-tale story of Cinderella, various musicians, artists, and volunteers (or other talents) will be bridged to create one unforgettable day, just for them.
Un'immagine, si sa, vale più di mille parole, e a maggior ragione anche più di mille numeri: la rappresentazione visiva di una serie di cifre è la strada più rapida per identificare a colpo d'occhio le situazioni che necessitano di una più approfondita analisi di dettaglio.
Strumenti come Google Chart Tools rendono possibile l'integrazione di grafici funzionali e moderni nelle proprie applicazioni web, e quando queste ultime sono realizzate sfruttando le potenzialità di Domino e la flessibilità delle XPages si può davvero parlare di felice unione tra esperienza produttiva e dinamica per l'utente e sviluppo rapido per il programmatore.
In questa sessione analizzeremo insieme, con demo alla mano, diversi esempi pratici applicabili anche in contesto mobile, senza dimenticare l'importanza fondamentale di una selezione ragionata dei dati da elaborare.
Difficoltà: Facie, Beginner
Argomenti: Drupal Theming & Css Framework
Descrizione:
Le slide sono state proiettate durante la sessione "Drupal Theming & Css Framework" al Drupal Camp 2010 di Torino da Domenico Monaco, aka Kiuz. domenico.monaco[@]kiuz.it
I linguaggi del web - seconda edizione (3° giornata)Diego La Monica
Modulo 4 – AJAX
- Interazioni client/server
- Framework a confronto:
- jQuery
- Mootools
- YUI
- JAST
Modulo 5 – ARIA e l’accessibilità lato client
- Prendere un po' di ARIA
- Le tecnologie assistive
- Ruoli, stati e proprietà
- Strumenti per lo sviluppo accessibile
Slide prediposte per un corso di livello intermedio sul CMS Drupal. Nel corso delle slide si affronta una prima parte di presentazione delle caratteristiche di Drupal per poi procedere verso un approfondimento relativo ad alcuni dei suoi plugin principali con una particolare attenzione al theming, anche avanzato.
SUPERMOMS & SUPERHEROES CHRISTMAS CONCERT 2014 SPONSORSHIP PACKAGEDerrick Kim
Bridging Talent Worldwide is incorporated under Canadian Not-For-Profit Corporation Act (NFP Act), as a federal non-profit organization (899385-8).
The organization plans, organizes and executes an annual campaign that tackles our societal problems, with creative means of bridging talent of individuals and organization.
For our 2014 campaign,
we plan to organize a performing event where single moms and their children (a.k.a. “Super Moms & Super Heroes”) are cordially invited for celebrating their life stories. Like fairy-tale story of Cinderella, various musicians, artists, and volunteers (or other talents) will be bridged to create one unforgettable day, just for them.
Un'immagine, si sa, vale più di mille parole, e a maggior ragione anche più di mille numeri: la rappresentazione visiva di una serie di cifre è la strada più rapida per identificare a colpo d'occhio le situazioni che necessitano di una più approfondita analisi di dettaglio.
Strumenti come Google Chart Tools rendono possibile l'integrazione di grafici funzionali e moderni nelle proprie applicazioni web, e quando queste ultime sono realizzate sfruttando le potenzialità di Domino e la flessibilità delle XPages si può davvero parlare di felice unione tra esperienza produttiva e dinamica per l'utente e sviluppo rapido per il programmatore.
In questa sessione analizzeremo insieme, con demo alla mano, diversi esempi pratici applicabili anche in contesto mobile, senza dimenticare l'importanza fondamentale di una selezione ragionata dei dati da elaborare.
Difficoltà: Facie, Beginner
Argomenti: Drupal Theming & Css Framework
Descrizione:
Le slide sono state proiettate durante la sessione "Drupal Theming & Css Framework" al Drupal Camp 2010 di Torino da Domenico Monaco, aka Kiuz. domenico.monaco[@]kiuz.it
I linguaggi del web - seconda edizione (3° giornata)Diego La Monica
Modulo 4 – AJAX
- Interazioni client/server
- Framework a confronto:
- jQuery
- Mootools
- YUI
- JAST
Modulo 5 – ARIA e l’accessibilità lato client
- Prendere un po' di ARIA
- Le tecnologie assistive
- Ruoli, stati e proprietà
- Strumenti per lo sviluppo accessibile
Slide prediposte per un corso di livello intermedio sul CMS Drupal. Nel corso delle slide si affronta una prima parte di presentazione delle caratteristiche di Drupal per poi procedere verso un approfondimento relativo ad alcuni dei suoi plugin principali con una particolare attenzione al theming, anche avanzato.
Sviluppo Web con React e Delphi - Seminario Delphi Day 2016, PiacenzaMarco Breveglieri
Slide del seminario sull'uso di React con Delphi e confronto con altre tecnologie (es. ExtJS) per lo sviluppo Web, tenuto al Delphi Day 2016 a Piacenza.
I sorgenti sono disponibili qui:
https://github.com/marcobreveglieri/conferences/tree/master/2016/delphi_day_2016
Livin' with Docker - dallo sviluppo alla produzionegiacomos
Presentiamo un caso di studio di un progetto web nato e cresciuto con Docker al centro della scena. Vedremo le soluzioni scelte durante tutto il percorso, partendo da docker-compose in locale, per arrivare a CoreOS e systemd in produzione, passando per la fase di continuous integration/build e il deploy.
Talk DockerOps 13-02-2016, Ferrara
Introduzione ai Big Data e alla scienza dei dati - Big DataVincenzo Manzoni
Lezione 5 del corso di analisi dati tenuto al Palazzolo Digital Hub (Palazzolo sull'Oglio, Brescia) nel 2014. In questa quinta e ultima lezione si introducono le tecnologie dei Big Data.
La prototipazione è un’attività fondamentale per “capire facendo”. Lo scopo della prototipazione non è costruire partendo da un progetto definito ma, piuttosto, acquisire dati preziosi per essere poi più consapevoli di prendere la giusta direzione. Alla base delle attività di prototipazione ci sono spesso strumenti low code e no code. Esistono ormai da diversi anni e ultimamente stanno guadagnando sempre più attenzione nella community per la loro immediatezza e velocità. Abbiamo definito meglio le loro qualità e le opportunità che ci sono nel loro utilizzo.
Durante il talk abbiamo approfondito perché è importante prototipare e come questa attività migliora i nostri progetti. In particolare, abbiamo approfondito l’utilizzo AWS Step Functions Workflow Studio, strumento low code prodotto da AWS. Workflow Studio ci permette di imbastire una state machine basata su step functions con uno strumento visuale drag & drop che semplifica moltissimo il nostro lavoro. Abbiamo analizzato cosa lo contraddistingue da altri strumenti e quali sono i suoi punti di forza. Infine siamo passati alla pratica facendo una piccola esercitazione con AWS Step Functions.
Grunt: automazione per sviluppatori “pigri” - WordCamp Bari 2019Marco Chiesi
Nel lavoro quotidiano di uno sviluppatore capita spesso di dover eseguire azioni ripetitive e noiose. Per fortuna esistono strumenti come Grunt che consentono di automatizzare tali operazioni permettendo al programmatore di concentrarsi sugli aspetti importanti del proprio lavoro. Grunt è un task runner molto versatile grazie alla sua struttura a plugin ed è ampiamente diffuso nell’ambito dello sviluppo di plugin e temi per WordPress.
Introduzione alla programmazione Android - Android@tulugIvan Gualandri
Prima lezione del corso android tenuto presso il TuLug (Tuscia Lug) A Viterbo. Le slides sono completamente in italiano (Slides are in italian! Sorry!)
An overview of technologies and best practices for the development of a full-stack web application using JavaScript. How to realize an entire Application Server with a single programming language, the use of event-driven logic and the potential of Node.js.
Similar to Gestire i pdf con IOS - Maurizio Moriconi - WhyMCA (20)
Gestire i pdf con IOS - Maurizio Moriconi - WhyMCA
1. Gestire i PDF con iOS
Maurizio Moriconi - @bugman79
Mobilesoft
giovedì 24 maggio 12
2. Chi sono: Maurizio Moriconi
• CTO presso Mobilesoft • Co-founder
• Mobile Developer • Main Developer
http://www.linkedin.com/in/bugman
@bugman79
http://www.facebook.com/maurizio.moriconi
2
giovedì 24 maggio 12
5. Funzionalità MobilePaper
• Visualizzazione in portrait e landscape (2 pagine affiancate)
• Zoom della pagina tramite pinch o con doppio tap
• Possibilità di passare alle pagine successive o precedenti
• Visualizzazione delle pagine tramite elenco e/o miniature
• Visualizzazione dell'indice (capitoli e paragrafi del pdf)
• Memorizzazione dei segnalibri (preferiti)
• Scelta della musica di sottofondo
• Inserimento di note
• Ricerca di testo all'interno della rivista
• Disponibile su iOS ed Android
5
giovedì 24 maggio 12
6. Editoria su iOS
• Varie possibilità:
– App Native
– Uso di PDF con eventuale aggiunta di
elementi nativi (multimedia ed interazione)
– HTML 5
6
giovedì 24 maggio 12
7. Il formato Pdf
• Portable Document Format
• File basato su un linguaggio di descrizione pagina
• Sviluppato da Adobe System nel 1993
• Nel 2007 è diventato standard ISO 32000
• Ci sono vari sottoformati (PDF/A, PDF/X, PDF/E...)
7
giovedì 24 maggio 12
8. PDF/A
• PDF/A (PDF/Archiving) per l’archiviazione a lungo
termine (ha 2 sottoformati /A-1a /A-1b)
• Standard ISO 19005-1:2005 dal 2005
• Basato sulla vesione 1.4 del formato PDF di Adobe
• Documenti “auto contenuti”
– Include i font che utilizza!!
– Include immagini, colori, altri dati
– Non ci sono fonti esterne
• Nel sottoformato PDF/A-2 si basa PDF v. 1.7
8
giovedì 24 maggio 12
9. PDF: specifiche
http://www.adobe.com/devnet/pdf/
pdf_reference.html
Ultima versione:
PDF Reference, sixth edition APDF version 1.7
1310 pagine!!!
9
giovedì 24 maggio 12
10. Uso della webview
• Vantaggi
– Facile da realizzare
– Possibilità di usare pdf “online”
– Funzionamento dei link interni
• Svantaggi
– Poca interazione lato utente
– Scrollview verticale
– Nessuna paginazione
10
giovedì 24 maggio 12
11. Caricare Pdf in una webview
NSString *pdfPath = [[NSBundle mainBundle] pathForResource:@"file"
ofType:@"pdf"];
NSURL *url = [NSURL fileURLWithPath:pdfPath];
NSURLRequest *urlRequest = [NSURLRequest requestWithURL:url];
[webView loadRequest:urlRequest];
11
giovedì 24 maggio 12
13. Uso di Quartz
• Motore di rendering di Darwin
chiamato “per gli amici” con il
nome di Core Graphics
• Quartz 2D:
– libreria grafica ereditata da QuickDraw
– usa il formato PDF per il disegno!!!
– si basa sulla versione 1.4 Adobe PDF
13
giovedì 24 maggio 12
14. Classi che ci interessano
• CGPDFDocument
• CGPDFPage
• CGPDFObject
• CGContext
14
giovedì 24 maggio 12
15. Caricamento del Pdf
#import <QuartzCore/QuartzCore.h>
NSURL *pdfURL = [[NSBundle mainBundle] URLForResource:@"TestPage.pdf"
withExtension:nil];
CGPDFDocumentRef pdf = CGPDFDocumentCreateWithURL((CFURLRef)pdfURL);
// Prendo la prima pagina
CGPDFPageRef page = CGPDFDocumentGetPage(pdf, 1);
CGPDFPageRetain(page);
// Determino la grandezza del PDF
CGRect pageRect = CGPDFPageGetBoxRect(page, kCGPDFMediaBox);
pdfScale = self.imageView.frame.size.width/pageRect.size.width;
pageRect.size = CGSizeMake(pageRect.size.width*pdfScale,
pageRect.size.height*pdfScale);
15
giovedì 24 maggio 12
18. Scorrimento pagine
• Uso di scrollview con paginazione
• Creare una classe per la singola pagina
ereditando da UIView
• Pre-caricare più pagine ma...
• Attenzione alla memoria!
– Scaricare / Caricare una “finestra” di pagine
18
giovedì 24 maggio 12
22. Gestire lo Zoom
• Scrollview con dentro Scrollviews :)
– Ogni pagina è una scrollview!
• Utilizzando per lo zoom il delegato:
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
22
giovedì 24 maggio 12
23. Zoom con doppio tap
• Intercettarlo tramite touchesBegan
• Permettere lo zoom in base a dove si è
fatto il tap!
• Tornare a zoom scale = 1 con ulteriore
doppio tap
23
giovedì 24 maggio 12
26. il Pdf è vettoriale!!!
26
giovedì 24 maggio 12
27. CATiledLayer
• Presente dentro QuartzCore!
• Poca documentazione (4 properties, 1 Class Method)
• Esempio: Applicazione Mappe
• Ogni view possiede un CALayer
– CATiledLayer è una sottoclasse di CALayer!
• Per il disegno usare drawLayer:inContext:
27
giovedì 24 maggio 12
28. LevelofDetail e LevelOfDetailBias
• Level Of Detail il num di livelli di dettaglio per il layer
• Level Of Detail Bias è il num di livelli magnified di dettaglio per il
layer
• Ogni LODB/LOD è una potenza di due o più rispetto al livello di
dettaglio
28
giovedì 24 maggio 12
29. TileSize
• E’ la grandezza massima di ogni
singolo tile usato nel layer
• Di base è 256x256
• Ci sono problemi con iPad 3 :(
29
giovedì 24 maggio 12
30. LevelofDetail e LevelOfDetailBias
• UIScrollview con zoom
– minimumZoomScale 0.125f
– maximumZoomScale 8.0f
– Zoom di fattore 8
• Potremmo scegliere LevelOfDetail 7 e LevelOfDetailBias 3
– 7 configurazioni di level of detail
– ogni livello è la metà di risoluzione del precedente
– primi 3 sono a risoluzione “magnified”
– il 4 è a risoluzione normale
– gli ultimi 3 sono a risoluzione ridotta
30
giovedì 24 maggio 12
35. Metadati
• Dalle specifiche sono presenti al capitolo
10.2 Metadata
• Sono in un formato “particolare”
• Si possono estrarre con CoreGraphics 8-)
1 0 obj
<< /Title ( PostScript Language Reference, Third Edition )
/Author (Adobe Systems Incorporated)
/Creator (Adobe FrameMaker 5.5.3 for Power Macintosh®) /Producer (Acrobat Distiller
3.01 for Power Macintosh) /CreationDate (D:19970915110347-08'00')
/ModDate (D:19990209153925-08'00')
>> endobj
35
giovedì 24 maggio 12
37. Titolo ed autore del pdf
CGPDFDictionaryRef info = CGPDFDocumentGetInfo(pdf);
CGPDFStringRef titleStringRef;
CGPDFDictionaryGetString(info, "Title", &titleStringRef);
const unsigned char *titleCstring =
CGPDFStringGetBytePtr(titleStringRef);
printf("Titolo: %s", titleCstring);
CGPDFStringRef authorStringRef;
CGPDFDictionaryGetString(info, "Author", &authorStringRef);
const unsigned char *authorCstring =
CGPDFStringGetBytePtr(authorStringRef);
printf("nAutore: %s", authorCstring);
37
giovedì 24 maggio 12
38. Accesso ai dati PDF
• CGPDFDocument
• CGPDFDocumentGetCatalog
• CGPDFPage
• CGPDFPageGetDictionary
• CGPDFObjectGetObject, CGPDFDictionaryGetBoolean,
CGPDFDictionaryGetInteger, CGPDFDictionaryGetString,
CGPDFDictionaryGetArray...
38
giovedì 24 maggio 12
39. Indice
• Non è sempre presente :)
• In base alla versione ed al formato
potrebbe cambiare... (gestire più casi!)
• Dalle specifiche presente nel capitolo
8.2 Document-Level Navigation
39
giovedì 24 maggio 12
43. Altre possibilità... che non vedremo :)
• Links
• Annotations (cap. 8.4)
• Thumbnail (cap 8.2.3)
• Ricerca testuale (estrazione full text)
43
giovedì 24 maggio 12