Bootstrap is the popular HTML, CSS and JavaScript framework for developing a responsive and mobile friendly website.
Bootstrap all topics of Bootstrap such as jumbotron, table, button, grid, form, image, alert, wells, container, carousel, panels, glyphicon, badges, labels, progress bar, pagination, pager, list group, dropdown, collapse,tabs, pills, navbar, inputs, modals, tooltip, popover and scrollspy.
Our November Austin WordPress Beginner’s class continues our “Back to WordPress Basics” series. The questions our new members are asking have reminded the WPATX organizers of the level of conceptual confusion that we all felt when trying to envision and understand what the various aspects of WordPress were doing and why.
This WPATX Beginner’s class will be devoted to learning the vocabulary and structure of WordPress themes. The goal of this class is to help our community of WordPress Beginners really understand what a WordPress Theme does, and how it does it.
This session will be lead by Nick Batik and Sandi Batik and has been designed for new users of WordPress and those who have been using WordPress a while and would really like to know, 'How WordPress Themes Work’.
The .NET Framework provides a common platform and language runtime for multiple programming languages. It includes the Common Language Specification (CLS), which defines interoperability standards, and the Common Language Runtime (CLR), which handles memory management, security, and code execution. The .NET Framework also includes a large class library called the Framework Class Library (FCL) that contains types and methods for building applications. Developers can use Visual Studio to create .NET applications using languages like C# and VB.NET, which compile to Microsoft Intermediate Language (MSIL) code that is executed within the CLR.
Bootstrap is an open-source front-end framework that helps developers design responsive mobile-first websites easily. It provides pre-built UI components like buttons, navigation bars, and grids for building layouts. The document discusses Bootstrap's introduction, file structure, grid system, responsive design features, and common layout components like dropdown menus and button groups.
This document summarizes CSS Grid Layout, a new two-dimensional grid system being added to CSS. It discusses some of the limitations of existing CSS layout methods and how Grid Layout addresses them. Key points include: Grid Layout uses line-based placement to position items, grid tracks can be flexible or fixed widths, areas can be explicitly or implicitly named, and the system avoids hacks and limitations of previous methods.
The document provides an overview of the semantic web including:
1. It describes the key technologies that power the semantic web such as RDF, RDFS, OWL, and SPARQL which allow data to be shared and reused across applications.
2. It discusses semantic web themes like linked data, vocabularies, and inference which enable data from multiple sources to be integrated and new insights to be discovered.
3. It outlines current and future applications of the semantic web such as in e-commerce, online advertising, and government where semantic technologies can enhance search, personalization and data sharing.
Bootstrap is the popular HTML, CSS and JavaScript framework for developing a responsive and mobile friendly website.
Bootstrap all topics of Bootstrap such as jumbotron, table, button, grid, form, image, alert, wells, container, carousel, panels, glyphicon, badges, labels, progress bar, pagination, pager, list group, dropdown, collapse,tabs, pills, navbar, inputs, modals, tooltip, popover and scrollspy.
Our November Austin WordPress Beginner’s class continues our “Back to WordPress Basics” series. The questions our new members are asking have reminded the WPATX organizers of the level of conceptual confusion that we all felt when trying to envision and understand what the various aspects of WordPress were doing and why.
This WPATX Beginner’s class will be devoted to learning the vocabulary and structure of WordPress themes. The goal of this class is to help our community of WordPress Beginners really understand what a WordPress Theme does, and how it does it.
This session will be lead by Nick Batik and Sandi Batik and has been designed for new users of WordPress and those who have been using WordPress a while and would really like to know, 'How WordPress Themes Work’.
The .NET Framework provides a common platform and language runtime for multiple programming languages. It includes the Common Language Specification (CLS), which defines interoperability standards, and the Common Language Runtime (CLR), which handles memory management, security, and code execution. The .NET Framework also includes a large class library called the Framework Class Library (FCL) that contains types and methods for building applications. Developers can use Visual Studio to create .NET applications using languages like C# and VB.NET, which compile to Microsoft Intermediate Language (MSIL) code that is executed within the CLR.
Bootstrap is an open-source front-end framework that helps developers design responsive mobile-first websites easily. It provides pre-built UI components like buttons, navigation bars, and grids for building layouts. The document discusses Bootstrap's introduction, file structure, grid system, responsive design features, and common layout components like dropdown menus and button groups.
This document summarizes CSS Grid Layout, a new two-dimensional grid system being added to CSS. It discusses some of the limitations of existing CSS layout methods and how Grid Layout addresses them. Key points include: Grid Layout uses line-based placement to position items, grid tracks can be flexible or fixed widths, areas can be explicitly or implicitly named, and the system avoids hacks and limitations of previous methods.
The document provides an overview of the semantic web including:
1. It describes the key technologies that power the semantic web such as RDF, RDFS, OWL, and SPARQL which allow data to be shared and reused across applications.
2. It discusses semantic web themes like linked data, vocabularies, and inference which enable data from multiple sources to be integrated and new insights to be discovered.
3. It outlines current and future applications of the semantic web such as in e-commerce, online advertising, and government where semantic technologies can enhance search, personalization and data sharing.
Django forms allow the creation of HTML forms and validation of submitted data. The document discusses:
1. The Django forms API automatically renders HTML forms, validates data, and converts it to relevant data types.
2. Forms are defined in forms.py using fields like CharField and IntegerField, which have default widgets and validation logic.
3. Forms can be rendered unbound without data or bound with specific data. Validation is triggered by calling is_valid() on a bound form.
4. ModelForms map models to forms and include model field validation. They support creating and editing model instances.
The document discusses HTML frames, including:
1. Objectives such as creating frame layouts, controlling hyperlinks between frames, and using reserved target names.
2. Advantages of frames like flexibility in design and reducing redundancy. Disadvantages include increased loading time and some browsers not supporting frames.
3. Syntax for creating frame layouts using <frameset> tags and specifying frame sizes using pixels, percentages and asterisks.
It provides details on using frames and hyperlinks, including assigning names to frames and specifying link targets.
Wordpress is an open source content management system that allows users to build dynamic websites and blogs. It has features like multi-lingual support, SEO, user management and media management. Popular themes include Divi, Ultra and Avada. Popular plugins include WooCommerce, Contact Form 7, SEO plugins and security plugins. Posts are individual pieces of content with dates, categories and tags while pages are static blocks without those attributes. Wordpress uses hooks, queries, widgets and shortcodes to extend functionality. Optimization techniques include updating software, using caching plugins, image optimization and .htaccess modifications.
Scale Your Load Balancer from 0 to 1 million TPS on AzureAvi Networks
For years, enterprises have relied on appliance-based (hardware or virtual) load balancers. Unfortunately, these legacy ADCs are inflexible at scale, costly due to overprovisioning for peak traffic, and slow to respond to changes or security incidents.
These problems are amplified as applications migrate to the cloud. In contrast, the Avi Vantage Platform not only elastically scales up and down based on real-time traffic patterns, but also offers ludicrous scale at a fraction of the cost.
Watch this webinar to see how Avi can scale up and down quickly on the Microsoft Azure Cloud.
- Configure load balancing on Azure to scale up from 0 to 1 million transactions per second (TPS) and down in under 10 minutes
- Learn why hardware or virtual appliances are not an option for modern load balancing in public clouds
- Understand how Avi’s elastic scale dramatically lowers TCO and enhances security, including DDoS attacks
Watch the full webinar: https://info.avinetworks.com/webinars-ludicrous-scale-on-azure
CSS is used to style and lay out web pages. There are three types of CSS: external, internal, and inline stylesheets. External stylesheets define styles in CSS files and can be used across many web pages, internal stylesheets are defined within the <style> tags in an HTML page, and inline styles are defined within HTML elements using the style attribute. CSS selectors allow targeting specific elements using IDs, classes, types, and other attributes to style them. Common CSS properties include colors, backgrounds, borders, padding, margins, and styling of links and lists.
This document provides an introduction to jQuery, including:
- jQuery is a JavaScript library that simplifies HTML document interaction and event handling. It was created by John Resig in 2006.
- The current version is 1.3.2 and version 1.4 is coming soon. John Resig continues to develop jQuery in Boston.
- jQuery selects elements, changes their properties, handles events, and makes AJAX calls to simplify common JavaScript tasks. It works by selecting DOM elements and running functions on the selection.
A university lecture for journalism students -- how to use the canvas element to add graphics and animation to Web pages. Updated April 2014. Basics for beginners. See also https://github.com/macloo/canvas
Web servers – features, installation and configurationwebhostingguy
A web server is a computer program and server that allows for hosting of websites and web applications. It accepts requests from browsers and returns HTML documents and other content. Common technologies used on web servers include CGI scripts, SSL security, and ASP to provide dynamic content and server-side processing. Web servers work by accepting connections from browsers, retrieving content from disk, running local programs, and transmitting data back to clients as quickly as possible while supporting threads and processes.
The document discusses CSS margin and padding properties, describing what each property controls for positioning elements on a page. It provides examples of how to set the top, right, bottom, and left margins and padding individually or together. There is also an exercise asking to apply various margin and padding properties to an h1 selector.
- Laravel is a popular PHP MVC framework that provides tools like Eloquent ORM, Blade templating, routing, and Artisan CLI to help developers build applications faster.
- Key Laravel features include Eloquent for database access, Blade templating engine, routing system, middleware, and Artisan CLI commands for common tasks like migrations and seeding.
- The document discusses Laravel's file structure, installing via Composer, and provides best practices for coding with Laravel like avoiding large queries and using middleware, validation, and CSRF protection.
This document discusses various web development tools. It begins by defining web development tools as those that allow developers to test and debug code using technologies like CSS, HTML, JavaScript. Popular tools mentioned include Chrome Developer Tools, Firebug, FirePHP, and IE Developer Tools. Each tool is briefly described, noting what technologies it supports (CSS, JavaScript debugging etc), how to access it (keyboard shortcuts, menus), and key features. The document provides a high-level overview of the most commonly used development tools.
This chapter discusses how to create tables and forms in HTML. It covers defining table elements like rows and columns, inserting captions and headers. It also covers different form controls like text boxes, checkboxes, dropdowns and buttons. It provides examples and code to create a table and form, and describes how to style them for responsive design across viewports. The chapter aims to help readers plan, design and code tables and forms for use on webpages.
Bootstrap adalah kerangka kerja CSS open source yang digunakan untuk membuat desain tampilan website dan aplikasi web. Ia menyediakan komponen seperti navigasi, tombol, tipografi dan formulir untuk membangun antarmuka pengguna. Bootstrap juga memiliki fitur JavaScript untuk membantu pengembangan sisi front-end.
The document discusses several key protocols and concepts related to email:
1) File Transfer Protocol (FTP) allows clients to transfer files from a remote server using separate TCP connections for control commands and data transfer.
2) Simple Mail Transfer Protocol (SMTP) is used by email servers to send and receive email messages. It uses TCP port 25 and involves greeting, message transfer, and closure phases between servers.
3) Email messages are formatted according to RFC 822 with headers, body, and MIME extensions that allow encoding of attachments and multimedia content.
Web servers are software applications that deliver web content accessible over the Internet or intranets. They host websites, files, scripts, and programs and serve them using HTTP and other protocols. Common web servers include Apache, Microsoft IIS, and Sun Java. Tomcat is an open source web server and servlet container. It implements Java servlets and JSP specifications, providing a Java HTTP environment. Tomcat's main components are Catalina for servlet handling, Coyote for HTTP connections, and Jasper for JSP compilation. While Apache is generally better for static content, Tomcat can be used with Apache for Java/JSP applications.
Introduzione alla piattaforma documentale Alfresco.
Presentazione Generale della Piattaforma
- Document Management
- Record Management
- Web Content Management
L’Architettura
- I Componenti Open Source
- I Protocolli e gli Standard Supportati
- Standard JSR-170
Estendere il Modello dei Contenuti
- Custom Data Model
- Esempi
Comunicare con il Repository
- Web Script
- Esempi
Il Modello Relazionale Dei Dati
Il Workflow
- Il Simple Workflow
- Il Workflow Avanzato
Alfresco Share
- Le API di Alfresco
- API RAAR
Conclusioni
Che cosa è Alfresco Document Management? A cosa serve? Come lo integro nei miei processi aziendali? Lo scopo del webinar è presentare le più importanti caratteristiche ma anche alcune delle nuove funzionalità di Alfresco, in un ottica pratica di utilizzo all’interno di una realtà aziendale pubblica o privata.
Il webinar è diretto verso coloro i quali desiderano approfondire rapidamente e capire di cosa si tratta senza perderci troppo tempo. Una panoramica condensata ma completa di Alfresco Document Management, Web Content Management, e la collaborazione con Alfresco Share. In un'ora.
Django forms allow the creation of HTML forms and validation of submitted data. The document discusses:
1. The Django forms API automatically renders HTML forms, validates data, and converts it to relevant data types.
2. Forms are defined in forms.py using fields like CharField and IntegerField, which have default widgets and validation logic.
3. Forms can be rendered unbound without data or bound with specific data. Validation is triggered by calling is_valid() on a bound form.
4. ModelForms map models to forms and include model field validation. They support creating and editing model instances.
The document discusses HTML frames, including:
1. Objectives such as creating frame layouts, controlling hyperlinks between frames, and using reserved target names.
2. Advantages of frames like flexibility in design and reducing redundancy. Disadvantages include increased loading time and some browsers not supporting frames.
3. Syntax for creating frame layouts using <frameset> tags and specifying frame sizes using pixels, percentages and asterisks.
It provides details on using frames and hyperlinks, including assigning names to frames and specifying link targets.
Wordpress is an open source content management system that allows users to build dynamic websites and blogs. It has features like multi-lingual support, SEO, user management and media management. Popular themes include Divi, Ultra and Avada. Popular plugins include WooCommerce, Contact Form 7, SEO plugins and security plugins. Posts are individual pieces of content with dates, categories and tags while pages are static blocks without those attributes. Wordpress uses hooks, queries, widgets and shortcodes to extend functionality. Optimization techniques include updating software, using caching plugins, image optimization and .htaccess modifications.
Scale Your Load Balancer from 0 to 1 million TPS on AzureAvi Networks
For years, enterprises have relied on appliance-based (hardware or virtual) load balancers. Unfortunately, these legacy ADCs are inflexible at scale, costly due to overprovisioning for peak traffic, and slow to respond to changes or security incidents.
These problems are amplified as applications migrate to the cloud. In contrast, the Avi Vantage Platform not only elastically scales up and down based on real-time traffic patterns, but also offers ludicrous scale at a fraction of the cost.
Watch this webinar to see how Avi can scale up and down quickly on the Microsoft Azure Cloud.
- Configure load balancing on Azure to scale up from 0 to 1 million transactions per second (TPS) and down in under 10 minutes
- Learn why hardware or virtual appliances are not an option for modern load balancing in public clouds
- Understand how Avi’s elastic scale dramatically lowers TCO and enhances security, including DDoS attacks
Watch the full webinar: https://info.avinetworks.com/webinars-ludicrous-scale-on-azure
CSS is used to style and lay out web pages. There are three types of CSS: external, internal, and inline stylesheets. External stylesheets define styles in CSS files and can be used across many web pages, internal stylesheets are defined within the <style> tags in an HTML page, and inline styles are defined within HTML elements using the style attribute. CSS selectors allow targeting specific elements using IDs, classes, types, and other attributes to style them. Common CSS properties include colors, backgrounds, borders, padding, margins, and styling of links and lists.
This document provides an introduction to jQuery, including:
- jQuery is a JavaScript library that simplifies HTML document interaction and event handling. It was created by John Resig in 2006.
- The current version is 1.3.2 and version 1.4 is coming soon. John Resig continues to develop jQuery in Boston.
- jQuery selects elements, changes their properties, handles events, and makes AJAX calls to simplify common JavaScript tasks. It works by selecting DOM elements and running functions on the selection.
A university lecture for journalism students -- how to use the canvas element to add graphics and animation to Web pages. Updated April 2014. Basics for beginners. See also https://github.com/macloo/canvas
Web servers – features, installation and configurationwebhostingguy
A web server is a computer program and server that allows for hosting of websites and web applications. It accepts requests from browsers and returns HTML documents and other content. Common technologies used on web servers include CGI scripts, SSL security, and ASP to provide dynamic content and server-side processing. Web servers work by accepting connections from browsers, retrieving content from disk, running local programs, and transmitting data back to clients as quickly as possible while supporting threads and processes.
The document discusses CSS margin and padding properties, describing what each property controls for positioning elements on a page. It provides examples of how to set the top, right, bottom, and left margins and padding individually or together. There is also an exercise asking to apply various margin and padding properties to an h1 selector.
- Laravel is a popular PHP MVC framework that provides tools like Eloquent ORM, Blade templating, routing, and Artisan CLI to help developers build applications faster.
- Key Laravel features include Eloquent for database access, Blade templating engine, routing system, middleware, and Artisan CLI commands for common tasks like migrations and seeding.
- The document discusses Laravel's file structure, installing via Composer, and provides best practices for coding with Laravel like avoiding large queries and using middleware, validation, and CSRF protection.
This document discusses various web development tools. It begins by defining web development tools as those that allow developers to test and debug code using technologies like CSS, HTML, JavaScript. Popular tools mentioned include Chrome Developer Tools, Firebug, FirePHP, and IE Developer Tools. Each tool is briefly described, noting what technologies it supports (CSS, JavaScript debugging etc), how to access it (keyboard shortcuts, menus), and key features. The document provides a high-level overview of the most commonly used development tools.
This chapter discusses how to create tables and forms in HTML. It covers defining table elements like rows and columns, inserting captions and headers. It also covers different form controls like text boxes, checkboxes, dropdowns and buttons. It provides examples and code to create a table and form, and describes how to style them for responsive design across viewports. The chapter aims to help readers plan, design and code tables and forms for use on webpages.
Bootstrap adalah kerangka kerja CSS open source yang digunakan untuk membuat desain tampilan website dan aplikasi web. Ia menyediakan komponen seperti navigasi, tombol, tipografi dan formulir untuk membangun antarmuka pengguna. Bootstrap juga memiliki fitur JavaScript untuk membantu pengembangan sisi front-end.
The document discusses several key protocols and concepts related to email:
1) File Transfer Protocol (FTP) allows clients to transfer files from a remote server using separate TCP connections for control commands and data transfer.
2) Simple Mail Transfer Protocol (SMTP) is used by email servers to send and receive email messages. It uses TCP port 25 and involves greeting, message transfer, and closure phases between servers.
3) Email messages are formatted according to RFC 822 with headers, body, and MIME extensions that allow encoding of attachments and multimedia content.
Web servers are software applications that deliver web content accessible over the Internet or intranets. They host websites, files, scripts, and programs and serve them using HTTP and other protocols. Common web servers include Apache, Microsoft IIS, and Sun Java. Tomcat is an open source web server and servlet container. It implements Java servlets and JSP specifications, providing a Java HTTP environment. Tomcat's main components are Catalina for servlet handling, Coyote for HTTP connections, and Jasper for JSP compilation. While Apache is generally better for static content, Tomcat can be used with Apache for Java/JSP applications.
Introduzione alla piattaforma documentale Alfresco.
Presentazione Generale della Piattaforma
- Document Management
- Record Management
- Web Content Management
L’Architettura
- I Componenti Open Source
- I Protocolli e gli Standard Supportati
- Standard JSR-170
Estendere il Modello dei Contenuti
- Custom Data Model
- Esempi
Comunicare con il Repository
- Web Script
- Esempi
Il Modello Relazionale Dei Dati
Il Workflow
- Il Simple Workflow
- Il Workflow Avanzato
Alfresco Share
- Le API di Alfresco
- API RAAR
Conclusioni
Che cosa è Alfresco Document Management? A cosa serve? Come lo integro nei miei processi aziendali? Lo scopo del webinar è presentare le più importanti caratteristiche ma anche alcune delle nuove funzionalità di Alfresco, in un ottica pratica di utilizzo all’interno di una realtà aziendale pubblica o privata.
Il webinar è diretto verso coloro i quali desiderano approfondire rapidamente e capire di cosa si tratta senza perderci troppo tempo. Una panoramica condensata ma completa di Alfresco Document Management, Web Content Management, e la collaborazione con Alfresco Share. In un'ora.
Con queste “14 misere” slide ho cercato d’introdurre Liferay e come iniziare con il piede giusto per affrontare lo sviluppo di applicazioni ai voi che siete proprio “novelli”. Spero di essere riuscito con questo primo episodio a suscitare la vostra curiosità e interesse.
SPRING - MAVEN - REST API (ITA - Luglio 2017)Valerio Radice
Introduzione al framework Java Spring e Maven per realizzare API REST.
Breve introduzione all'uso di Maven per configurare un progetto SpringBoot e realizzare un server REST.
Disponibile il codice dimostrativo su github (link nelle slide, attenzione alle branch).
Valerio Radice (valix85)
Luglio 2017
Differenze tra Alfresco Community ed EnterpriseSoftInstigate
Quali sono le principali differenze tra Alfresco Community ed Enterprise? Lo scopo di questo webinar in italiano è illustrare i servizi a valore aggiunto che la versione professionale e stabile di Alfresco mette a disposizione di system integrator e clienti finali. Partecipa se vuoi comprendere come funziona l’abbonamento Alfresco Enterprise, la manutenzione, il supporto tecnico, gli stack commerciali certificati, la consulenza e tutte le tecnologie aggiuntive (clustering, monitoraggio, tuning, configurazione a caldo, integrazioni con SAP, Kofax, XAM, …) della versione a pagamento di Alfresco, progettata per ambienti “mission critical” e supportata dal produttore.
My CV in Italian language and European format
--------------------------------------------------------------------
Il mio CV in italiano e in formato europeo
Enterprise Spring and Flex applicationsmarcocasario
SpringSource ha recentemente annunciato Spring BlazeDS Integration, un nuovo progetto open source per permettere una facile integrazione tra il framework Spring e Adobe BlazeDS, una tecnologia open source basata su server Java remoting e Web messaging.
Il plugin di SpringSource fornisce un approccio più semplice ed intuitivo agli sviluppatori Spring e Java per creare Enterprise Rich Internet Applications utilizzando il framework Adobe Flex, una pietra miliare della Flash Platform.
In questa sessione ai partecipanti verrà fornita una panoramica del framework Flex e di BlazeDS, illustrando i vantaggi e le modalità di integrazione al framework Spring attraverso il plugin Spring BlazeDS.
Cruda&crudo: l'idea, il progetto, l'analisi di mercato e gli abbinamentiedoardo fraioli
Presentazione all'Espro drink del 26 marzo.
Come nasce l'idea di Cruda e Crudo, il progetto, la reaizzazione.
La stesura di un libro e la cucina non sono poi così distanti dalla gestione di un progetto IT. Vediamo perchè.
Cruda & Crudo: disponibile su Lulu, Itunes, Google Play e Amazon - www.crudae...edoardo fraioli
Qual è la birra giusta da abbinare ad un certo cibo?
La risposta a questa domanda è un gioco di profumi, sensazioni, ma anche l'atmosfera della serata, gli amici e le risate...
Ho deciso di provare a raccogliere tutto ciò in alcune serate organizzate per giocare insieme con le birre artigianali o di micro birrifici di tutto il mondo. Ricette di crudo di pesce, carne o insalate gourmet trovano nella birra una compagna di tavola dai profumi non industrializzati che ricordano e assecondano gli ingredienti integri e i sapori del territorio con i quali sono preparati i piatti. www.crudaecrudo.it
A1. ING - Ingegneria del software
A2. BD - Basi di dati
A3. PROG - Progettazione e sviluppo sw
A4. SI - Sicurezza informatica
A5. RETE - Tecnologie di rete
A6. SO - Sistemi operativi
2. PROGRAMMA 1/2 giornata di introduzione all’architettura di Alfresco 1/2 giornata Demo Alfresco live 1 giorno di approfondimenti alla customizzazione di Alfresco / utilizzo delle API
3.
4.
5. PROGRAMMA: customizzazioni 1 giorno di approfondimenti alla customizzazione di Alfresco / utilizzo delle API configurazioni base indicizzazione, database, mail, cache, tuning JVM, sistema di archivio, log file, backup e restore configurazioni avanzate Image magick, come configurare e usare la full text search e indicizzazione, reportistica, trasformazioni, configurare il Versioning, JMX Console
6.
7.
8.
9. COSA C’E’ SOTTO 1/4 I maggiori componenti Open Source usati per costruire Alfresco sono: Apache Lucene ( http://lucene.apache.org/ ) Full-text and metadata search Hibernate 3.0 ( http://www.hibernate.org/ ) Database persistence Apache MyFaces 1.0.9 ( http://myfaces.apache.org/ ) JSF components in the web client FreeMarker ( http://freemarker.org/ ) Web script framework views, custom views in the web client, web client dashlets, email templates
10. COSA C’E’ SOTTO 2/4 I maggiori componenti Open Source usati per costruire Alfresco sono: Mozilla Rhino JavaScript Engine ( http://www.mozilla.org/rhino/ ) Web script framework controllers, Server-side JavaScript, Actions OpenSymphony Quartz ( http://www.opensymphony.com/quartz/ ) Scheduling of asynchronous processes Spring ACEGI ( http://www.acegisecurity.org/ ) Security (authorization), roles, and permissions Apache Axis ( http://ws.apache.org/axis/ ) Web services
11. COSA C’E’ SOTTO 3/4 I maggiori componenti Open Source usati per costruire Alfresco sono: OpenOffice.org ( http://www.openoffice.org/ ) Conversion of office documents into PDF Apache FOP ( http://xmlgraphics.apache.org/fop/ ) Transformation of XSL:FO into PDF Apache POI ( http://poi.apache.org/ ) Metadata extraction from Microsoft Office files JBoss jBPM ( http://www.jboss.com/products/jbpm ) Advanced workflow
12. COSA C’E’ SOTTO 4/4 I maggiori componenti Open Source usati per costruire Alfresco sono: ImageMagick ( http://www.imagemagick.org ) Image file manipulation Chiba ( http://chiba.sourceforge.net/ ) Web form generation based on Xforms Questo non significa che bisogna essere esperti di tutti questi prodotti per utilizzare o customizzare Alfresco.
13. STANDARD 1/4 I maggiori standard e protocolli supportati da Alfresco: FTP E’ possibile accedere ai contenuti del repository via FTP. Secure FTP non è ancora supportato. WebDAV WebDAV è un protocollo HTTP-based comunemente supportato dai Content Management vendors. E’ un modo per rappresentare il repository come un file system. CIFS ( Common Internet File System) CIFS permette al repository di essere montato come un drive condiviso da altre macchine. A differenza di WebDAV, non c’è differenza tra un repository “montato” come uno shared drive attraverso CIFS e un file server tradizionale.
14. STANDARD 2/4 I maggiori standard e protocolli supportati da Alfresco: JSR-170 JCR è una Java API per il mantenimento e l’accesso ai contenuti. Alfresco è un JCR-compliant repository di livello 1. E’ vicino al Level 2 compliant. Portlet API (JSR-168) Il Web Script Framework permette di definire RESTful API verso il repository. Web Scripts possono restituire XML, HTML, JSON, e JSR-168 portlets. Nell’attuale release, è richiesto che il portal e Alfresco girino sulla stessa JVM. SOAP API Web Services usano SOAP-based web services.
15. STANDARD 3/4 OpenSearch ( http://www.opensearch.org ) Alfresco repository può essere configurato come una sorgente dati di tipo OpenSearch che permette ad Alfresco di partecipare a ricerche federate. OpenSearch è una collezione di tecnologie che permettono di pubblicare I risultati di una ricerca in un formato disponibile per syndication e aggregation. E’ un modo per siti web e search engine di pubblicare risultati di ricerca in un formato standard e accessibile attraverso I seguanti componenti: OpenSearch Description files : XML files che identificano e descrivono un search engine. OpenSearch Query Syntax : descrive dove recuperare i risultati dela ricerca OpenSearch RSS (in OpenSearch 1.0) o OpenSearch Response (in OpenSearch 1.1): formato per fornire gli open search results. OpenSearch Aggregators : Siti che possono visualizzare OpenSearch results. OpenSearch " Auto-discovery " per segnalare la presenza di un searchplugin link all’utente e link embedded nell’ header odelle pagine HTML
16. STANDARD 4/4 XForms, XML Schema I form web sono definiti usando XML Schema. Non tutti i widgets XForms widgets sono supportati. XSLT, XSL:FO I dati delle form web possono essere trasforamti usando XSL 1.0. LDAP Può esser usato LDAP directory o un Microsoft Active Directory server.
19. Architettura - spring Ogni parte del Repository di Alfresco è un componente o un servizio. Un component è una implementazione black box che fornisce una specifica caratteristica o capacità Un service è una interfaccia. Questo approccio permette di modificare i componenti esistenti con nuove implementazioni, e nuovi componenti di esser aggiunti con facilità. Permette ai cliet di connettersi e usare I servizi senza conoscere come sono implementati. Alfresco ha fatto di Spring il core della sua architettura.
22. Architettura : data storage Per default, Alfresco ha scelto di immagazzinare i metadati nel database e il contenuto nel file system. Usando un database si ottengono immediatamente I benefici tipice del database quali il supporto alle transazionie, scalabilità e capacità di aministrazione. Il Contenuto è immagazzinato nel file system per permettere per grandi quantità di contenuti, accesso random, streaming, Hibernate e Lucene.
34. Security Model: utenti In Alfresco ogni utente può avere il proprio space individuale. La location e il nome dello space può essere specificato mentre si crea l’account utente. L’utente per il quale viene creato uno space diventa l’owner di quello space Come owner, l’utente può avere full access al suo space
35.
36.
37. Permessi di default 1/2 <!-- --> <!-- Global permissions apply regardless of any particular node context. --> <!-- They can not be denied by the permissions set on any node. --> <!-- --> <!-- Admin can do anything to any ndoe --> <globalPermission permission="FullControl“ authority="ROLE_ADMINISTRATOR"/> <!-- For now, owners can always see, find and manipulate their stuff --> <globalPermission permission="FullControl" authority="ROLE_OWNER"/> <!-- Unlock is granted to the lock owner --> <globalPermission permission="Unlock" authority="ROLE_LOCK_OWNER"/> <!-- Check in is granted to the lock owner --> <globalPermission permission="CheckIn" authority="ROLE_LOCK_OWNER"/> <!-- Cancel check out is granted to the locak owner --> <globalPermission permission="CancelCheckOut" authority="ROLE_LOCK_OWNER"/>
38. Invitare gli utenti Si possono dare permessi agli utenti a fare specifiche attività nel proprio space. Per fare questo si possono invitare gli utenti nel proprio space. Ogni ruolo viene applicato solo allo spazio in cui è assegnato. Per esempio, potresti invitare un utente (o gruppo) a uno dei tuoi spaces come un editor. Potresti invitare lo stesso utente (or group) a differenti spaces come un collaborator. Lo stesso utente (o group) potrebbe essere invitato da qualcun altro come un coordinator.
39. Sicurezza per i gruppi Scenario 1 : Utente 1 è in grado di contribuire nello space "X“, ed è editore degli space "Y“ e "Z". Se cancelliamo l’utente 1 dal sistema, è necessario cancellarlo manualmente dagli space X, Y e Z. Alfresco non fornisce nessun report che indichi tutti gli space ai quali un particlare utente può accedere. Scenario 2 : Due utenti che appartengono all’area vendite sono aggiunti con contributori agli space "Sales" e "Finance" e qualche altro space. Se una nuova persona viene assunta nell’area vendite, è necessario aggiungerla agli stessi space e questo è un grosso lavoro di manteinance . Invece, fornendo al gruppo sales accesso a questi space, l’aggiunta e la cancellazione di membri del gruppo vendite, assumerà automaticamente le stesse regole di sicurezza e collaborazione richieste dal sistema Raggruppare sempre gli utenti. Un utente può appartenere a più di un gruppo. Usare I gruppi per definire sicurezza sugli space.
40. Maintenance – Best Practice Quando viene cancellato un item (contenuto o space) in Alfresco, l’item non sarà cancellato dal server, ma sarà spostato in una cartella temporanea chiamata archive space store. Questo da una opportunità di recover il contenuto cancellato Gli item cancellati (nella cartella temporanea, consumano spazio, quindi è buona pratica pulire periodicamente la cartella. Questi item non potranno più essere recuperati. E’ raccomandabile un backup regolare dei propri dati.
43. Data Dictionary Data Dictionary è una shared resource. Tutti gli script e i template presenti in data dictionary possono essere definiti dall’amministratore e usati dagli utenti. Email Templates : contiene I templates per la notifica via mail di un invito ad uno space, documento, o da una regola o azione. Email templates sono scritti in FreeMarker template language e hanno l’estensione .ftl. Presentation Templates : templete di presentazione, usati per la visualizzazione del contenuto in deversi modi. Presentation templates sono scritti in FreeMarker template language e hanno l’estensione .ftl. RSS Templates : usati per fornire RSS feeds degli space. Saved Searches : pre-built queries, salvate da un utente per la generazione di report. Ogni utente avrà il proprio spazio privato di ricerche salvate. Inoltre qesto space conterrà tutte le ricerche salvate e sharate come pubbliche. Scripts : JavaScript files, usati per effettuare certe operazioni sul contenuto
44. Space Templates Space Templates: contiene le strutture degli space che possono esser usate come templae per creare nuovi space. Ogni space può essere salvato come un template per un riuso futuro dela struttura e dei dati. Invece di creare ripetutamente la stessa struttura per ogni progetto, si può mantenere un Project template e replicarlo per ogni progetto. Tutto il lavoro fatto manualmente potrebbe essere fatto in pochi secondi semplicemente usando un template.
45.
46.
47.
48.
49.
50.
51.
52.
53. Regole delle Rules 1/2 Le Inbound rules non saranno applicate ai documenti che già sono presenti nello space prima della creazione della regola. Le Inbound rules saranno applicate solo ai documenti che sono aggiunti dopo che la regola è creata. Se uno space ha più di una regola, tutte le regole saranno eseguite in sequenza.
54. Regole delle Rules 1/2 Le regole definite negli space padre (con l’opzione “applica la regola ai sub-spaces) saranno anche eseguite nello space corrente. Un documento può essere uploadato in uno space in modi differenti usando Web Client o FTP o WebDAV o CIFS. La Inbound rule in uno space sarà avviata quando un documento è uploadato nello space, a prescindere da come viene uploadato .
55.
56.
57.
58. 1- Aspetti Ogni aspetto ha differente significato: Classifiable : abilita la categorizzazione così che le categorie possono essere linkate al documento Complianceable : aggiunge una proprietà di conformità chiamata Remove after to the document. Dublin Core : aggiunge metadati Dublin core al documento. Publisher, Contributor, Subject, and Rights. Effectivity : aggiunge la proprietà di validità. Effective From and Effective To to the document. Emailed : aggiunge un insieme di proprietà. Email Data to the document, usata per cattuare le informazioni della mail, se il documento è un attachment di email. Localizable : aggiunge la proprietà Locale Summarizable : aggiunge la proprietà Summary. Templatable : Enable template view. Translatable : aggiunge la proprietà Translations al documento. Versionable : abilita il versioning.
59.
60.
61. 6- Custom JavaScript Creare un file JavaScript, .js, con il seguente codice. Lo script verifca il contenuto nello space Staging e sposta il contenuto, la cui proprietà di decorrenza ha un valore minore alla data di oggi, allo space di produzione var stagingFolder = companyhome.childByNamePath("Intranet/Marketing Communications/Website Documents/Staging"); var productionFolder = companyhome.childByNamePath("Intranet/Marketing Communications/Website Documents/Production"); if(stagingFolder != null) { var i=0; var today = new Date(); stagingChildren = stagingFolder.children; stagingTotal = stagingChildren.length; for(i=0; i<stagingTotal;i++) { child = stagingChildren[i]; if(child.properties["cm:from"] <= today) { child.move(productionFolder); } } }
62. 6- Eseguire Custom JavaScript Creando una business rule su uno space. Un altro modo è eseguire la business rule manualmente come un comando Run Action sullo space. Usando le Java Script API si possono trovare i nodi (via XPath), navigare la gerarchia dei nodi, effettuare ricerche (incluse Lucene full-text searches), esaminare e modificare le proprietà dei nodi, e modificare gli aspetti applicati ai nodi. In aggiunta, scripts possono creare nuovi files e cartelle e copy/move/delete nodi. Applicare tutta la security e ACL permissions tipiche di Alfresco. Una descrizione dettagliata circa le API JavaScript di Alfresco: http://wiki.alfresco.com/wiki/JavaScript_API
63. Execute Custom JavaScript Il secondo modo è usare direttamente l’indirizzamento URL per una chiamata stile REST. Il web client di Alfresco è una servlet chepermette l’esecuzione di script direttamente via URL Questa caratteristica permette di accedere agli script e I risultati degli script sono ritornati come stream html nella respone.
64. Scripting usage I seguenti oggetti sono disponibili agli scripts per default in root scope: Named object Description companyhome The Company Home node userhome Current user's Home Space node person Node representing the current user's Person object space The current space node (if any); note that for a script executing from a rule, the space object will be the space that the rule resides in document The current document script The node representing the script itself search A host object providing access to Lucene and Saved Search results people A host object providing access to people and groups in Alfresco session Session-related information (session.ticket for the authentication ticket) Classification Read access to classifications and root categories .
65. Scripting Esempi // test accesso alle proprieta di un documento e modifica var docname = document.name.substring(0, document.name.lastIndexOf('.')); document.properties.name = "12345 " + document.properties.name; document.save(); / modifcare il contenuto appendendo una stringa alla fine document.content = content + "Here is another line added from a script!“ // creare una cartella nello stesso space var folderNode = space.createFolder(docname + " - added by script"); // copia il doc in una nuova cartella nodo creata var copy = document.copy(folderNode); // spoasa la folder node in companyhome folderNode.move(companyhome); // aggiungere una aspetto copy.addAspect("cm:translatable");
66.
67. Auditing Auditing è disabilitato per default. Per abilitare la configurazione di default bisogna cambiare l’attributo enabled. Per abilitare l’auditing tramite un metodo deve essere abilitato on “unset” sul metodo, abilitato o disabilitato sul service e abilitato al livello più alto dell’elemento da controlalre. Se l’elemento è marcato enabled="false" dovunnque nello stack l’auditing sarà disabled. L’audit configuration file è <configRoot>uditConfig.xml.
68.
69.
70.
71. Workflow Alfresco ha due opzioni per implementare I workflow: simple workflow o advanced workflow. Con I simple workflows gli utenti finali possono configurarli direttamente senza avere skill tecninci. "add a simple workflow" ad un document quando è inserito in una cartella Quando un ocumento ha un simple workflow significa che ha un "forward step“ e un "backward step“ ad esempio "Approve“ e "Reject". Quando uno step è invocato il contenuto può esser copiato o spostato in una altra cartella. Per esempio ci potrebbero essere cartelle chiamate "Draft",”In Review", e "Approved". Lo stato del documento è determinato dalla cartella in cui si trova.
72.
73. Customizzazione base Se la customizzazione consiste nella configurazione di files o properties web-client-config-custom.xml or webclient.properties, si possono porre I file di customizzazione nella extension folder Tomcat: <alfresco>/tomcat/shared/classes/alfresco/extension Quando Alfresco parte, legge tutti I file di default di configurazione e dopo legge gli item customizzati (nella extension folder). Quindi la customizzazione o estende o sovrascrive l’item di configurazione.
74.
75.
76. Repository Configuration repository.properties AlfrescoomcatebappslfrescoEB-INFlasseslfresco Lucene configuration: path dei file degli indici – path dove il contenuto binario è immagazzinato Database configuration : database connection properties Mail configuration Admin username
77. Repository cache Configuration Le cache in Alfresco sono implementate usando Ehcache library, transazionale e clusterizzabile La cache migliora le performance del repository di Alfresco ma può consumare considerevole Java heap memory. I settings usati dipendono dall’uso e dalla memoria disponibile sul server. Il file di default ehcache.xml è adeguato alla maggior parte dei sistemi ed è impostato per approssimativi 512MB di cache heap memory – questo è il default raccomandato per una Java heap size di1GB
78. Tuning - uso dello spazio La dimensione del repository di Alfresco è pari alla quantità di spazio disco necessario. Il contenuto in Alfresco è per default immagazzinato direttamente sul disco, quinid per mantenere 1000 documenti di 1MB ci sarà bisogno di 1000MB di spazio disco. Considerare lo spazio per I file temporanei e le versioni – ogni versione di un file è immagazzianto sul disco come copia separata del file. E’ altamente raccomandato l’uso di SCSI RAID disk array.
79.
80. Configurazione posta From Email Address Per modificare il ‘from’ email address quando gli utenti sono invitati a uno space, aggiungere al web-client-config-custom.xml file nella extension folder: <config> <client> <from-email-address>someone@your-domain.com </from-email-address> </client> </config>
81.
82. Disabilitare l’archivio Documenti Per default tutti i documenti e le cartelle che non sono taggate con l’aspetto sys:temporary saranno archiviti al momento della cancellazione Se questa funzionalità non è richiesta, può essere disabilitata nel file togliendo la riga in “rosso”: Node-services-context.xml <!-- Map stores to archive stores --> <bean id="storeArchiveMap" class="org.alfresco.repo.node.StoreArchiveMap"> <property name="archiveMap"> <map> <entry key="workspace://SpacesStore"><value>archive://SpacesStore</value></entry> </map> </property> </bean>
92. Lucene queries Roster Questa ricerca non ritorna risultati per default, quando usando la ricerca per nodi, solo la full text è effettuata e sebbene il nome e la descrizione includono “roster”, il documento non contiene la stringa. Sample whitepaper Questa ricerca ritorna tutti e 3 I documenti perchè questa query è la stessa cosa di "sample OR whitepaper". Sample AND whitepaper Ritorna solo sample-a.pdf e sample-b.pdf. E’ la stessa cosa di usare il più ("+") come in +sample +whitepaper. L’operatore + richiede che un termine sia nel documento per esser eincluso
93. Lucene queries -sample whitepaper Ritorna solo class roster. Il meno ("-") specifica che il risultato non deve includere la parola "sample". M?urice Ab* Lauren~ Riotrnano tutte class roster. ("?") è un carattere jolly. L’asterisco ("*") è un wildcard. Tilde ("~") denota una fuzzy search—cerca parole similari. In questo caso "Lauren" to "Loren". sample effective whitepaper sample^10 effective whitepaper Compara queste due ricerche.ritornano sample PDFs e class roster. Nella prima ricerca, class-roster.txt è mostrata al top della lista dei risultati. Nella seconda, il ("^") carattere è usato per incrementare il peso del terminedi un fattore 10. Questo rende i PDFs più pesanti. Così si trovano al top della lista
94. Ricerca Properties So far you've searched the full text of the sample documents, but what if you wanted to search against a specific property? To do that, use the at ("@") symbol followed by the namepsace and property name, and then the search phrase. @cmdescription:read This search returns both sample PDFs because both contain the word read in their description fields. @cmdescription:(whitepaper -sample) This search shows a combination of a field-based search with the minus operator to return only the documents that have whitepaper, but not sample in their description property. In this case, the search returns only class-roster.txt. @scisActive:true Searches for custom properties work as well. This one returns documents where the SomeCo isActive property is set to true.
95. Ricerca per prossimità Proximity Search If you need to find documents where two words appear within certain proximity of each other, you can use a proximity search. @cmdescription:"wonderful absorb"~12
96. Ricerca per range Properties can also be searched by range. @cmcreated:[2008-07-01T00:00:00 TO 2008-07-22T00:00:00] returns the sample PDFs, but not the class roster. This is because at least for this particular sample set, the class roster was created on July 24, 2008. @cmname:([clam TO dog]) Range searches work on strings as well. This search returns class-roster.txt, but neither of the sample Whitepapers.
97. Report Usare le ricerche salvate come report Spesso c’è la necessità di ripetere una ricerca che soddisfi gli stessi criteri di ricerca. Invece di ripetere la selezione delle opzioni ogni volta è possibile salvare I criteri per riusare la ricerca così impostata. Si crea così un report personalizzato. Questo può essere “condiviso” con altri rendendo la ricerca salvata come “pubblica” . Altri report, possono essere considerati “privati” e saranno inseriti nella lista come report privati solo per l’owner
98. Report – best practices Tutti i report (ricerche salvate) possono essere loclizzate in Company Home | Data Dictionary | Saved Searches space. Si possono riusare I criteri di ricerca salvati, selezionadoli dalla form Advanced Search.
99. Trasformations Configuration 1/3 Alfresco permette la trasformazione di documenti tra diversi formati usando librerie di terze parti, come pdfbox e applicazioni come OpenOffice (running in modalità server-side). I default Content transformers sono dichiarati ed inizializzati in <configRoot>/alfresco/content-services-context.xml , ma le estensioni dovrebbero essere aggiunte come file extension <extension>/alfresco/extension/my-transformers-context.xml . Default transformers sono dichiarati nel package org.alfresco.repo.content.transform Usare javadocs per vedere gli effetti delle diverse impostazioni.
100. Trasformations Configuration 2/3 Se è richiesta una trasformazione da mimetype X->Z ma sono disponibili solo X-Y e Y-Z, il transformation registry non assumerà automaticamente di effettuare le trasformazioni come catena di operazioni da fare. Le trasformazioni possono essere linkate, dichiarate manualmente usando ComplexContentTransformer.
101. Trasformations Configuration 3/3 Estrarre il testo da PowerPoint non è possibile direttamente. Open Office può esportare PowerPoint come un PDF, e poi PDFBox project permette la conversione da PDF a text. <bean id="transformer.complex.OpenOffice.PdfBox" class="org.alfresco.repo.content.transform.ComplexContentTransformer" parent="baseContentTransformer" > <property name="transformers"> <list> <ref bean="transformer.OpenOffice" /> <ref bean="transformer.PdfBox" /> </list> </property> <property name="intermediateMimetypes"> <list> <value>application/pdf</value> </list> </property> </bean>
102.
103.
104. Auto Versioning Per default tutto il contenuto versionabile ha l’AUTO-Version attivo. Questo vuol dire che una nuova versione è creata nella history quando il contenuto è uploadato. L’Auto-Versioning segue le seguenti regole: La initialVersion indica che quando l’aspetto versionabile è applicato allora uno snapshot iniziale del nodo è preso a quel punto. autoVersion indica che quando avviene un cambio al contenuto del nodo, una nuova versiona sarà creata Questo può essere impostato a on o off per ottenere il comportamento desiderato. La caratteristica dell’auto-version può essere impostata a off anche per uno specifico contenuto agendo sulla proprietà via UI.
106. JMX Console Per default, i System Administrators possono riconfigurarre Alfresco spegnendo il server, editando I file cdi configurazione o proprerties quindi riaviando il server. Certe operazioni di supporto dovrebbero poter essere effettuate on demand a runtime senza la necessità di riavviare il server. Per esempio dovrebbe essere possibile cambiare temporaneamente il livelli dei log per debuggare il sistema.
107.
108.
109.
110. Backup Il Backup di un repository Alfresco deve prevedere il backup delle directory puntate dalla dir.root e quelle che vengono usate dal database. Fare il backup dei uno senza gli altri fa si che il backup non potrà essere restorato. dir.root directory è definita in <configRoot>/alfresco/extension/custom-repository.properties. Per default questa directory è nominata alf_data ed è locata nella directory di installazione di Alfresco. Backup del database Backup degli indici Backup dei documenti Backup applicativo Sistema di configuration management
111.
112. Backup – Best Practice La possibilità di effettuare un backup a caldo dipende dalle capacità del database e dalla possibilità di quest’ultimo con un tool che può effettuare uno "snapshot“ consistente di Alfresco database (transactionally consistent copy of all of the tables in the Alfresco database) Non eseguire mai, il backup della sottodirectory degli indici di lucene mentre Alfresco è Running. Fare questo è causa della corruzione degli indici di Lucene. Alfresco include un background job responsabile del backup degli indici che per default è configurato per essere eseguito alle 3am di ogni notte. L’hot backup process must not run concurrently with this background job, so you should either ensure that the hot backup completes by 3am, or wait until the index backup job has completed before initiating a hot backup.
113.
114.
115. Maintenance – Best Practice Quando viene cancellato un item (contenuto o space) in Alfresco, l’item non sarà cancellato dal server, ma sarà spostato in una cartella temporanea chiamata archive space store. Questo da una opportunità di recover il contenuto cancellato Gli item cancellati (nella cartella temporanea, consumano spazio, quindi è buona pratica pulire periodicamente la cartella. Questi item non potranno più essere recuperati. E’ raccomandabile un backup regolare dei propri dati.