A case study regarding how a fairly complex learning system was developed in Plone by way of a tool that takes a UML diagram and converts it into working code.
Django has been garnering a lot of attention from web developers in recent times due to its simple yet powerful nature. This talk will introduce those familiar to Django to Plone by way of comparing the two and drawing out similarities where possible but also some lessons that each could learn from the other.
Andy is an active contributor to the Plumi project, a distribution of Plone specifically designed for rich multimedia sites. He will discuss some of the different multimedia options available for Plone today.
Making the Most of Plone's Content Types - Dan Jackaknappt
Dan Jacka will walk us through configuring the content types in a Plone site - controlling which are addable where, experimenting with sub-types, etc. Smart use of these features can greatly simplify how a content creator/editor works with a Plone site.
WordPress plugins can appear to be magical, but they can be created with basic knowledge of PHP. This session will demonstrate how a beginner may develop a simple plugin or a more complex plugin using a boilerplate template.
A little presentation about HTML5 video capabilities. SzegedTech Meetup 2013.
A video from the presentation available here in Hungarian: https://www.youtube.com/watch?v=1D6QHpEcPzA
COSA SIGNIFICA CONVERTIRE UN MODULO DA D7 A D8Roberto Peruzzo
Titolo Talk: Cosa significa convertire un modulo da D7 a D8.
Livello: Base
Abstract: Ho sentito spesso dire: “non utilizziamo D8 perché non ha ancora i moduli che ci servono per il progetto.”. OK, allora iniziamo a convertirli! Presenterò la mia esperienza nel convertire il modulo Iubenda Integration da D7 a D8, cercando di mettere in luce le principali difficoltà incontrate.
Con questa sessione la mia speranza è di fornire le basi per convertire i propri moduli da a chi sviluppa progetti in Drupal 8.
[drupalday2017] - Behat per Drupal: test automatici e molto di piùDrupalDay
Behat è nato per semplificare il processo di accettazione da parte del cliente: per evitare ambiguità si realizza un test automatico (leggibile anche da chi non ha competenze tecniche) la cui esecuzione con successo garantisce che le specifiche siano rispettate. L'integrazione di Behat nel processo di sviluppo Drupal permette tuttavia di andare ben oltre: si può usare Behat per condividere le specifiche con il cliente, per guidare lo sviluppo (scrivendo il test prima del codice), per assistere il debug (usando uno scenario per popolare una situazione di errore ripetibile) e persino per migrare un sito da Drupal 7 a Drupal 8 (codificando il comportamento del sito in una serie di test che vengono poi usati come base per lo sviluppo del nuovo sito). Per tutti gli scenari descritti vedremo esempi basati sull'esperienza di Nuvole.
di Andrea Pescetti
Django has been garnering a lot of attention from web developers in recent times due to its simple yet powerful nature. This talk will introduce those familiar to Django to Plone by way of comparing the two and drawing out similarities where possible but also some lessons that each could learn from the other.
Andy is an active contributor to the Plumi project, a distribution of Plone specifically designed for rich multimedia sites. He will discuss some of the different multimedia options available for Plone today.
Making the Most of Plone's Content Types - Dan Jackaknappt
Dan Jacka will walk us through configuring the content types in a Plone site - controlling which are addable where, experimenting with sub-types, etc. Smart use of these features can greatly simplify how a content creator/editor works with a Plone site.
WordPress plugins can appear to be magical, but they can be created with basic knowledge of PHP. This session will demonstrate how a beginner may develop a simple plugin or a more complex plugin using a boilerplate template.
A little presentation about HTML5 video capabilities. SzegedTech Meetup 2013.
A video from the presentation available here in Hungarian: https://www.youtube.com/watch?v=1D6QHpEcPzA
COSA SIGNIFICA CONVERTIRE UN MODULO DA D7 A D8Roberto Peruzzo
Titolo Talk: Cosa significa convertire un modulo da D7 a D8.
Livello: Base
Abstract: Ho sentito spesso dire: “non utilizziamo D8 perché non ha ancora i moduli che ci servono per il progetto.”. OK, allora iniziamo a convertirli! Presenterò la mia esperienza nel convertire il modulo Iubenda Integration da D7 a D8, cercando di mettere in luce le principali difficoltà incontrate.
Con questa sessione la mia speranza è di fornire le basi per convertire i propri moduli da a chi sviluppa progetti in Drupal 8.
[drupalday2017] - Behat per Drupal: test automatici e molto di piùDrupalDay
Behat è nato per semplificare il processo di accettazione da parte del cliente: per evitare ambiguità si realizza un test automatico (leggibile anche da chi non ha competenze tecniche) la cui esecuzione con successo garantisce che le specifiche siano rispettate. L'integrazione di Behat nel processo di sviluppo Drupal permette tuttavia di andare ben oltre: si può usare Behat per condividere le specifiche con il cliente, per guidare lo sviluppo (scrivendo il test prima del codice), per assistere il debug (usando uno scenario per popolare una situazione di errore ripetibile) e persino per migrare un sito da Drupal 7 a Drupal 8 (codificando il comportamento del sito in una serie di test che vengono poi usati come base per lo sviluppo del nuovo sito). Per tutti gli scenari descritti vedremo esempi basati sull'esperienza di Nuvole.
di Andrea Pescetti
5 Reasons Why Your Website Is[n’t] a Native App (PrDC 2015)David Wesst
“We need a mobile app. Make our website into a mobile app.” The request seems reasonable, doesn’t it? Your website is JavaScript, native apps are JavaScript, why wouldn’t you make your website into an application? In this presentation we’ll give you 5 reasons why your website shouldn’t end up as a native application to give you the tools you need to not only turn down the request, but on how to make a better solution.
◦If you lost Eclipse, could you still produce quality code? If Visual Studio or IntelliJ don't provide you with a specific tool, are you still able to use it comfortably? If you're troubled by these questions, don't worry because you are not the only one! Over the years, developers tend to forget their roots and grow overly comfortable with their IDE. But, it's not the IDE that makes us developers, it's our mad coding skills and software knowledge! In this session David will bring you back to the days where a text editor was just a text editor, and command line was king and go through creating, building, deploying an application without an IDE.
Plugin Development for Beginners v.2019Joe Cartonia
WordPress plugins are not as complicated as you may think. They can be created with basic knowledge of PHP. This session will demonstrate how a beginner can start developing a plugin, and some common tools used by developers.
Easy form creation and validation with Formjackslicejack
Dealing with HTML forms can prove to be a challaging task, especially when it comes to data binding, validation and error handling. That’s why we’ve open sourced Formjack, library that helps you build, render and validate custom forms with just few lines of code.
Building a plugin like a pro it’s not only about code, it’s also about how you do that. I talked about the workflow, how WordPress works and how I build plugins. I also discussed some mistakes I made along the way. Doing something in a hurry is never a good thing.
HTML5 has changed the Web as we know it. The newest markup language has some exciting features that, for example, make it easy to embed and play multimedia content on the web without having to use proprietary plugins like Adobe’s Flash.
In this webinar, learn:
What HTML5 is and what it can do
New HTML5 tags
Useful coding examples
Testing and validation of your site
Future of HTML5
Participants will be given server space to create their own page and will be required to have a basic HTML editor like Notepad, Notepad++ or Eclipse.
Talk given at the University of Cape Town in my capacity as Google Developer Group Co-organiser
The talk cover:
Where to start?
What languages are out there?
Using Firebase and how useful it is when you want to build something fast.
Webinar : Simplified and Cost-Effective Drupal 9 MigrationAmeex Technologies
Webinar details:
• Why Upgrade?
• Pre-Requisites
• Backward Compatible
• Capabilities
o Faster and Better Performance
o BigPipe increasing page view performance
o Content Workflow allowing you to define multiple workflows
o Multilingual capabilities
o Structure Content: Drupal 9 ships with a wide range of available fields, including phone, email, date, and time
• Lifting Deprecated Codes
• Headless CMS
o Front-End Freedom
o Create Once, Publish Everywhere (COPE) method
o API-First Approach
o Easier Resourcing
o Single Source of Truth
P.S – Upgrading from Drupal 7 to 9 will cost you the same as upgrading from Drupal 7 to 8 to 9
5 Reasons Why Your Website Is[n’t] a Native App (PrDC 2015)David Wesst
“We need a mobile app. Make our website into a mobile app.” The request seems reasonable, doesn’t it? Your website is JavaScript, native apps are JavaScript, why wouldn’t you make your website into an application? In this presentation we’ll give you 5 reasons why your website shouldn’t end up as a native application to give you the tools you need to not only turn down the request, but on how to make a better solution.
◦If you lost Eclipse, could you still produce quality code? If Visual Studio or IntelliJ don't provide you with a specific tool, are you still able to use it comfortably? If you're troubled by these questions, don't worry because you are not the only one! Over the years, developers tend to forget their roots and grow overly comfortable with their IDE. But, it's not the IDE that makes us developers, it's our mad coding skills and software knowledge! In this session David will bring you back to the days where a text editor was just a text editor, and command line was king and go through creating, building, deploying an application without an IDE.
Plugin Development for Beginners v.2019Joe Cartonia
WordPress plugins are not as complicated as you may think. They can be created with basic knowledge of PHP. This session will demonstrate how a beginner can start developing a plugin, and some common tools used by developers.
Easy form creation and validation with Formjackslicejack
Dealing with HTML forms can prove to be a challaging task, especially when it comes to data binding, validation and error handling. That’s why we’ve open sourced Formjack, library that helps you build, render and validate custom forms with just few lines of code.
Building a plugin like a pro it’s not only about code, it’s also about how you do that. I talked about the workflow, how WordPress works and how I build plugins. I also discussed some mistakes I made along the way. Doing something in a hurry is never a good thing.
HTML5 has changed the Web as we know it. The newest markup language has some exciting features that, for example, make it easy to embed and play multimedia content on the web without having to use proprietary plugins like Adobe’s Flash.
In this webinar, learn:
What HTML5 is and what it can do
New HTML5 tags
Useful coding examples
Testing and validation of your site
Future of HTML5
Participants will be given server space to create their own page and will be required to have a basic HTML editor like Notepad, Notepad++ or Eclipse.
Talk given at the University of Cape Town in my capacity as Google Developer Group Co-organiser
The talk cover:
Where to start?
What languages are out there?
Using Firebase and how useful it is when you want to build something fast.
Webinar : Simplified and Cost-Effective Drupal 9 MigrationAmeex Technologies
Webinar details:
• Why Upgrade?
• Pre-Requisites
• Backward Compatible
• Capabilities
o Faster and Better Performance
o BigPipe increasing page view performance
o Content Workflow allowing you to define multiple workflows
o Multilingual capabilities
o Structure Content: Drupal 9 ships with a wide range of available fields, including phone, email, date, and time
• Lifting Deprecated Codes
• Headless CMS
o Front-End Freedom
o Create Once, Publish Everywhere (COPE) method
o API-First Approach
o Easier Resourcing
o Single Source of Truth
P.S – Upgrading from Drupal 7 to 9 will cost you the same as upgrading from Drupal 7 to 8 to 9
201705 neoteric software development introMatt Kurleto
Introduction to software development services provided by Neoteric. Java, JavaScript, AngularJS, JointJS, NodeJS, MongoDB, Neo4j developers. Get a quote for free.
Learn how to get small teams to embrace both using and contributing to open source in a healthy way. See case studies of open source projects and how they have contributed to the growth of a small team.
My talk from the winnipeg code camp (Prairie Dev Con) about agile project management and how we build PanoPla in just a few months.
Learn the basics of Scrum and a bit about what we do.
Building a scalable app factory with Appcelerator PlatformAngus Fox
Sharing the challenged in building a Mobile Backend as a Service (MBaaS) platform for Appcelerator Alloy apps using Joomla and a whole host of development tools for a London based startup where I am CTO
Cloud development goes lightweight - Ken Walkerjaxconf
Full JS version available on http://kenwalker.github.io/JAXConfUS2013
The natural progression of Web and Cloud development tools is to have the features needed to develop your cloud application or Web site available right in the browser. Orion is an open source tools integration platform that provides the consumable core components of an extendible Web-based Development Environment. Why spend developer time and money configuring and setting up a standard IDE when project tasks can be aligned with a dynamic client-side plugin architecture that provides the functionality needed all in a browser refresh. Orion leverages a secure client side Javascript plugin model to extend the platform by integrating other web pages and services into the Orion development workflow. Close integration is achieved through writing Orion plugins to extend the platform with additional capabilities. Extensions such as code outliners, code markers, code completion, error reporting, additional file system services and visual editors can leverage the micro-service framework, security and preferences systems. Plugins to deploy and manage Cloud based systems like CloudFoundry or Google App Engine can easily be integrated as well. What used to be a long setup period to get your IDE into the right state is as simple now as opening a browser, wherever you are and logging in. Deployment options for Orion include a multi-user Java server or a stand-alone Node.js npm install. In a minute you can be writing, testing and deploying right from a browser. We also host our stable development builds at http://orionhub.org for anyone to try the technologies we're building. This session will outline the technologies behind Orion, together how they can be used as a development platform, and individually how you can benefit from the Open Source artifacts of Orion in your own projects or how to join and contribute to Orion like companies such as IBM, VMware, Mozilla, Google, HP and others are doing already.
PixelsCamp | Odoo - The Open Source Business Apps Platform for the 21st CenturyDaniel Reis
Business processes are tricky. Robust apps are hard to build. Web frameworks are great to build the perfect front end, but not very helpful at tying all the pieces together in the backend. Get that out of the way: let the Odoo framework do the heavy lifting for you, and focus at excelling on your business idea.
Ibm worklight - going from xpages mobile to native mobile applicationsMark Roden
Abstract
In this session John and Mark will demonstrate how an XPages developer can make the simple, practical, logical evolution from XPages to IBM Worklight developer.
Have you ever wondered how to easily integrate a mobile phone native feature set with your corporate web applications? We will show that any XPages developer currently building mobile-accessible websites already has the skillset to build native mobile apps using IBM Worklight. We will cover installation, setup, similarities in designer clients, the test environment, the skills necessary and provide a working example.
You have the skills, you have the knowledge. Your only challenge is to come to the session and understand how to make this work. Go from HTML5 to native in minutes.
Google's serverless journey: past to presentwesley chun
Serverless, shorthand for "opinionated logic-hosting containers," continues on its sky-high trajectory. New features and products are continually being produced by vendors, all with developer focus and DevOps convenience in mind. Google has been in the serverless business long before the term even existed. In this high-level overview, we'll take you on a tour of our serverless journey, the products, use-cases, and target audiences, from the first step to the most recent, taken earlier this year at Cloud NEXT '19.
O365 and SharePoint Connect - Create an immersive experience with office 365...Alexander Meijers
Think of provisioning information on real-life objects or straw through Cloud data like persons, related contacts, documents and other stuff. This allows you to build rich applications containing information you normally process in a 2D world like your browsers. By extending it to a 3D world, you are able to process the data in a completely different way. Think of creating teams of people within your organization and group them based on specialties, getting a more clear inside view of your site structure in SharePoint or have a 3D model of the Microsoft Graph entities related objects
The New South Wales Government have been successfully using a shared hosting implementation of Plone to save on costs and maximise on their technology investments. Dylan Jay will present on the platform they implemented for the NSW Government and the resultant benefits of this shared hosting approach.
Getting All Your Web Apps To Wear The Company Brandknappt
Cross-platform theming! No matter what the platform/language, you can seamlessly apply 1 theme across all your disparate web applications. The technology is called Deliverance and Tim Knapp will demonstrate how to use this powerful tool to theme your web applications.
A presentation introducing the Repoze project, which is a project to (amongst other things) implement WSGI support in Zope . This was presented by Tim Knapp of Emerge Technology at the NZPUG Christchurch meetup in April 2008.
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
JMeter webinar - integration with InfluxDB and GrafanaRTTS
Watch this recorded webinar about real-time monitoring of application performance. See how to integrate Apache JMeter, the open-source leader in performance testing, with InfluxDB, the open-source time-series database, and Grafana, the open-source analytics and visualization application.
In this webinar, we will review the benefits of leveraging InfluxDB and Grafana when executing load tests and demonstrate how these tools are used to visualize performance metrics.
Length: 30 minutes
Session Overview
-------------------------------------------
During this webinar, we will cover the following topics while demonstrating the integrations of JMeter, InfluxDB and Grafana:
- What out-of-the-box solutions are available for real-time monitoring JMeter tests?
- What are the benefits of integrating InfluxDB and Grafana into the load testing stack?
- Which features are provided by Grafana?
- Demonstration of InfluxDB and Grafana using a practice web application
To view the webinar recording, go to:
https://www.rttsweb.com/jmeter-integration-webinar
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
Connector Corner: Automate dynamic content and events by pushing a buttonDianaGray10
Here is something new! In our next Connector Corner webinar, we will demonstrate how you can use a single workflow to:
Create a campaign using Mailchimp with merge tags/fields
Send an interactive Slack channel message (using buttons)
Have the message received by managers and peers along with a test email for review
But there’s more:
In a second workflow supporting the same use case, you’ll see:
Your campaign sent to target colleagues for approval
If the “Approve” button is clicked, a Jira/Zendesk ticket is created for the marketing design team
But—if the “Reject” button is pushed, colleagues will be alerted via Slack message
Join us to learn more about this new, human-in-the-loop capability, brought to you by Integration Service connectors.
And...
Speakers:
Akshay Agnihotri, Product Manager
Charlie Greenberg, Host
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. What’s changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
Neuro-symbolic is not enough, we need neuro-*semantic*Frank van Harmelen
Neuro-symbolic (NeSy) AI is on the rise. However, simply machine learning on just any symbolic structure is not sufficient to really harvest the gains of NeSy. These will only be gained when the symbolic structures have an actual semantics. I give an operational definition of semantics as “predictable inference”.
All of this illustrated with link prediction over knowledge graphs, but the argument is general.
Neuro-symbolic is not enough, we need neuro-*semantic*
Rapid Application Development in Plone - Paul Roe
1.
2. Rapid Application Development in Plone Presenter: Paul Roe Company: The Virtual Limited Building Plone sites since 2002 www. the virtual .co.nz
3. People get pictures “When you talk code, logic or in abstract it hurts the head of the client and misses that rare opportunity to use the client's eyes and ears at the same time”. Steven Gourley
18. Manual Code class photodoc(BaseContent, BrowserDefaultMixin): """ """ security = ClassSecurityInfo() implements(interfaces.Iphotodoc) meta_type = 'photodoc' _at_rename_after_creation = True schema = photodoc_schema ##code-section class-header #fill in your manual code here ##/code-section class-header # Methods registerType(photodoc, PROJECTNAME) # end of class photodoc ##code-section module-footer #fill in your manual code here ##/code-section module-footer
19. Install Copy across product, restart plone and you can install in a plone site.
21. A real project Steve Gourley approached us with the plan to build a web application for his Heath and Fitness Training and Recruitment company (NZIHF).
25. Steve Gourley - NZIHF “ A significant feature in attaining a good result for us was the opportunity to see the object and its relationships to other objects” “ We had no idea the thing was then generating code, but we did know what was being talked about and therefore had a richer exploration of what we wanted in a more economic (time, which is money in development too!) way”.
26. Rapid Application Development in Plone Presenter: Paul Roe Company: The Virtual Limited Building Plone sites since 2002 www. the virtual .co.nz
Editor's Notes
Hi I'm Paul from TheVirtual
I'm going to give brief introduction to using UML modelling and the ArchGenXML code generator. Quickly describe a more complicated real world web application . And then talk about some of the advantages that come with being able to use visual modelling in conjunction with ArchGenXML My hope is that you'll see the potential of these tools and give them a go.
We use ArgoUML. There are some relevant tutorials on the Plone site in the ArchGenXML howtos.
Initial ArgoUML screen. There's a UML Profile available for Archetypes which includes most of the stuff you need for getting things working.
As an example we'll subclass a Document and add a couple of fields.
Changing properties of fields, content types and relationships is easy. Select the field, Click tags and add tags to change the label, description and field level permissions etc You can add tags on the content type as well allowing permissions and many other properties to be controlled. We've set the modify permission on the field when we generate code later we'll see the label and write permissions have been set on the schema
Now we'll add a simple workflow. If you're happy with the default plone workflow you don't need to do anything as ArchGenXML takes care of that. But if you need something special adding a workflow to a content type is simple. Select the content type and add a statechart from the context menu You can also assign an existing workflow via a tag on the content type
Add workflow states and transitions, and events. Set permissions on the object and control access to the transitions
There are pros and cons of using code generation and gui tools for building applications. I've used a few systems in the past and I'm well aware of problems that can arise. Using version control on the models and generated code ensures that you understand whats going on when things are regenerated. Some of the many advantages are the reduction in boilerplate and ease of making major changes to the code base. Upgrades in Plone have also been much easier. The change to Generic Setup being one as new versions of ArchgenXML support the changes
Now we're going to generate the code, the first line invokes archgenxml. The rest is just a small part of the generated code for the schema in the content type. You can see the label and write permission on the field is set as per our model.
Throughout all the generated files there are plenty of places to put custom code which is kept across rebuilds. ArchGenXML builds the entire file structure and sets up the profiles for install and configuration
This all took about as long to explain as to actually do it! The real value of the UML diagramming and ArchGenXML comes when building something more complicated.
Its all very well being able to demo easy stuff, but how practical is it in the real world working with customers. These are a couple of the UML models from a real project.
Steve was well prepared and at our first meeting I suggested that the best way forward was to use use a GUI tool to analyse and explore the project. By collaboratively building a visual model of the application we would both better understand the project, and be able to work through any complex relationships and workflows more easily. We had regular meetings for an hour or two. With builds, extra custom code and testing done between. The previous image shows parts of that project.
There's not a lot of time to go into detail, but in this and the next few slides I'll show a few small parts that correspond to the simple demo at the start This is one of the simple workflows from the project Its reused over a few content types
This shows the permissions on a state in a training workflow. It shows who can access and change the object. The worklist tag means that when the object is in this state it appears in a review list similar to what a Reviewer would see with pending items.
This shows the properties on a transition in a workflow. Events can be fired on transitions. We setup a subscriber in the Effect Field. The subscriber in this case is fired when someone passes part of a course. This does a few checks and can change the state of their course to Passed if they've completed everything. It generates all the boiler plate for the Subscriber, just leaving the actual checks to be coded. There's a lot more to show, but that all we have time for.
Steve best sums up the advantages of UML, ArchGenXML and Plone. It really works well and the more input from the customer the better it works! Thanks – Questions? Steve is happy to talk to people he's at nzihf.co.nz