Wicket in Action is the introduction I gave at the Øredev conference in Malmö, Sweden in November 2008. You'll learn about Wicket, Components, Models, Integrating Spring, Testing, and deploying your Wicket application.
Unfortunately slideshare doesn't work with accented letters in the URL, so I had to change the title.
The document provides an introduction to the Apache Wicket framework. It discusses what Wicket is, its key features and architecture. Wicket allows building web applications using reusable Java components and separating presentation from logic. The document covers topics like the component model, state management, templates, and provides a basic "Hello World" example to demonstrate how components work.
The document provides 6 ways to keep work from interfering with weekends by testing and monitoring Wicket applications. It recommends using WicketTester for component and Ajax testing without starting the server. It also suggests using PageChecker to validate pages against a policy file, EntityChecker to detect non-serializable objects attached to pages, MarkupValidator to ensure valid HTML, RequestLogger for decoded request information, and monitoring tools like Nagios for uptime and performance of production applications.
How to create a real time chat application using socket.io, golang, and vue js-Katy Slemon
Here’s a tutorial on how to create a real-time chat application using Go, VueJS, and Socket.IO. Let’s build a demo application with this comprehensive guide
HTML 5 is the latest version of the HTML standard. It includes several new elements and features to improve structure and behavior. Some key changes include new semantic elements like <article>, <aside>, <header>, and <footer>; built-in support for audio and video; the <canvas> element for drawing graphics; and forms with new input types. HTML 5 aims to simplify HTML and separate structure and presentation, making code cleaner and pages more accessible. It is developed jointly by the WHATWG and W3C organizations.
A Microsoft Silverlight User Group Starter Kit Made Available for Everyone to...DataLeader.io
The document discusses a starter kit for building a Silverlight user group website. It provides an out-of-the-box, fully functional website template that demonstrates Silverlight 4 features like printing, video/webcam support, authentication, and RIA services. The starter kit uses MVVM architecture and can serve as a codebase for any Silverlight 4 application. It allows users to play, learn, and contribute to extend the community.
The document provides an introduction to the Apache Wicket framework. It discusses what Wicket is, its key features and architecture. Wicket allows building web applications using reusable Java components and separating presentation from logic. The document covers topics like the component model, state management, templates, and provides a basic "Hello World" example to demonstrate how components work.
The document provides 6 ways to keep work from interfering with weekends by testing and monitoring Wicket applications. It recommends using WicketTester for component and Ajax testing without starting the server. It also suggests using PageChecker to validate pages against a policy file, EntityChecker to detect non-serializable objects attached to pages, MarkupValidator to ensure valid HTML, RequestLogger for decoded request information, and monitoring tools like Nagios for uptime and performance of production applications.
How to create a real time chat application using socket.io, golang, and vue js-Katy Slemon
Here’s a tutorial on how to create a real-time chat application using Go, VueJS, and Socket.IO. Let’s build a demo application with this comprehensive guide
HTML 5 is the latest version of the HTML standard. It includes several new elements and features to improve structure and behavior. Some key changes include new semantic elements like <article>, <aside>, <header>, and <footer>; built-in support for audio and video; the <canvas> element for drawing graphics; and forms with new input types. HTML 5 aims to simplify HTML and separate structure and presentation, making code cleaner and pages more accessible. It is developed jointly by the WHATWG and W3C organizations.
A Microsoft Silverlight User Group Starter Kit Made Available for Everyone to...DataLeader.io
The document discusses a starter kit for building a Silverlight user group website. It provides an out-of-the-box, fully functional website template that demonstrates Silverlight 4 features like printing, video/webcam support, authentication, and RIA services. The starter kit uses MVVM architecture and can serve as a codebase for any Silverlight 4 application. It allows users to play, learn, and contribute to extend the community.
DevTeach Ottawa - Webmatrix, see what the matrix can do for you!!Frédéric Harper
WebMatrix is a free tool that makes it easy to create, configure, and publish websites and web applications. It includes features like a web app gallery, database management, Razor syntax, and helpers. The presentation demonstrates how to use WebMatrix to build a website from templates or from scratch, access databases, use Razor syntax, and deploy apps from the gallery. Attendees are encouraged to try out WebMatrix themselves to unleash its power for creating websites and apps.
George Thiruvathukal, User Experiences with Plone Content Management webcontent2007
The document provides an overview of a presentation on user experiences with the Plone content management system. It includes sections on requirements for the system, a quick tour of Plone's interface, what Plone is, its open source licensing, default content types, publication states, customizing Plone through skins and layers, adding plugins, creating custom content types using Archetypes, and hosting Plone with Apache. Code examples are provided for customizing Plone and defining a custom "ETL Project" content type.
WebMatrix, see what the matrix can do for you!!Frédéric Harper
The document provides an overview of WebMatrix, a free tool from Microsoft that makes it easy to create, configure, and publish websites and web applications. It discusses what WebMatrix is, who it is for, features like the Razor syntax, database access, and helpers. It also covers the app gallery and open source apps. The presentation aims to demonstrate how WebMatrix can be used to easily create websites and applications.
Presented at WordCamp Montreal 2017
For many WordPress users, even seasoned PHP developers, creating new plugins for WordPress seems like a daunting task. This presentation aims to show attendees how simple creating plugins for WordPress from the ground up can be by looking at the architecture of a WordPress plugin, from the basic concepts of registering actions and filters to more advanced concepts such as the creation of admin pages and registering shortcodes.
Getting started with Appcelerator TitaniumTechday7
Techday7, Cross platform application development using Appcelerator Titanium event's Getting started with Appcelerator Titanium By Naga Harish M, Lead Developer of Anubavam Technologies
Real World Asp.Net WebApi ApplicationsEffie Arditi
This document provides guidance on building real world single page applications using various technologies including Git, AppHarbor PaaS, MongoDB integration, IoC/Dependency Injection, testing with nUnit and Moq, CI/CD, the Repository Pattern, and exception management. It discusses using Bootstrap.MVC for responsive design, Backbone.js as a client MVC library, and client-side session and authentication management. The document also covers building and deploying an app in the cloud using WebAPI which is self-hosted and flexible with content negotiation, and separating website concerns from the API.
This DrupalCon 2019 Amsterdam talk provides a look beyond the world of PHP and Javascript. It explores how other languages such as Ruby, Java, Rust and Perl handle things and highlights some interesting features of those languages. Not all the things that other languages can do can be done in PHP or Javascript but the concepts and ideas can still be used.
The document outlines an agenda for building a Twitter bot with JavaScript. It will cover key JavaScript concepts, setting up a development environment, registering an application with Twitter, getting a basic bot working, and adding custom features. Attendees will learn how to use Node.js and the Twitter API to create a bot that searches for tweets with specific keywords and automatically responds.
Build a Web App with JavaScript and jQuery (5:18:17, Los Angeles)Thinkful
This document provides an overview of building a web app with JavaScript and jQuery. It discusses the objectives and benefits of using JavaScript, what jQuery is and how it helps with cross-browser compatibility and UI features. It also covers DOM traversal and manipulation using jQuery, common uses like animations and form handling, and attaching events like clicks using callbacks. The document includes examples of changing styles, traversing elements, and responding to events. It concludes with challenges to practice these skills by creating a photo gallery and shopping list app.
Prairie Dev Con West - 2012-03-14 - Webmatrix, see what the matrix can do fo...Frédéric Harper
WebMatrix is a free tool that makes it easy to create, configure, and publish websites and web applications. It includes features like a web app gallery, database management, Razor syntax, and helpers. Razor is a new view engine that is compact, expressive, and fluid. It allows code to be easily mixed with markup. WebMatrix also provides tools for database access and APIs through helpers. The presentation encourages attendees to install WebMatrix and explore its capabilities.
JHipster is one of those open-source projects you stumble upon and immediately think, "Of course!" It combines three very successful frameworks in web development: Bootstrap, Angular, and Spring Boot. Bootstrap was one of the first dominant web-component frameworks. Its largest appeal was that it only required a bit of HTML and it worked! All the efforts we made in the Java community to develop web components were shown a better path by Bootstrap. It leveled the playing field in HTML/CSS development, much like Apple's Human Interface Guidelines did for iOS apps.
This talk shows you how to use JHipster to build a Spring Boot API, an Angular UI, and make it all look good with Bootstrap. You'll learn how to deploy the generated project to Heroku too!
WebFest 2011 WebMatrix Overview by Gavin WarrenerSpiffy
Microsoft introduced WebMatrix, a new web development tool that allows users to easily create, customize, and publish websites. WebMatrix includes everything needed for website development, such as a web server, database, and tool box. It supports various programming languages and frameworks like ASP.NET, PHP, and Razor. WebMatrix also features helpers that add commonly used functionality to simplify development.
WordPress Internationalization and Localization - WordPress Translation Day 3...WordPress Trivandrum
This document provides an introduction to WordPress and internationalization/localization. It discusses what WordPress is, its history and uses. It then covers the importance of internationalization and localization when developing WordPress themes and plugins. It provides guidelines for internationalizing code as well as translating and localizing content. Statistics on WordPress translations are also presented.
The Ring programming language version 1.9 book - Part 54 of 210Mahmoud Samir Fayed
This document discusses using the RingLibCurl library in Ring to make HTTP requests. It provides examples of making GET and POST requests, using cURL to log into Facebook, saving the output of a request to a string, and retrieving stock data from Yahoo Finance by extracting cookie and crumb values. The examples demonstrate initializing cURL handles, setting options like the URL, headers, and cookies, performing requests, and cleaning up handles after requests are completed.
Scott Guthrie slides talking about what's new on VS 11, .NET 4.5 and MVC 4, including automatic Bundling, Minifying, Real Time updates, SignalR, Asynchronous requests, Web API, Database Migration and Open Source of MVC / ASP.NET.
OpenSocial aims to make the web more social by allowing developers to add social features to websites and applications. The OpenSocial APIs allow gadgets to access user profile data and enable social interactions through features like activities. Developers can focus on building engaging experiences while OpenSocial handles user management and relationships through standards-based gadget specifications and JavaScript APIs.
This document provides an overview and roadmap for building a simple guessing game with JavaScript. It begins with introductions and background on programming concepts. It then outlines the steps to build the game, including generating a random number on page load, accepting user input, checking guesses, and allowing new games. Code examples are provided for functions to generate random numbers and display guesses. Homework extends the game with additional feedback and counting number of guesses. Information is also given on Thinkful's mentorship program for learning to code.
Busy Developer's Guide to Windows 8 HTML/JavaScript AppsJAX London
With the upcoming release of Windows 8, Microsoft decided to bring HTML+Javascript into the world of Windows-platform application development as a first-class citizen. But make no mistake, this isn’t an attempt to somehow subvert Web developers—it’s more about enabling Web developers to leverage those skills in building “native” Windows applications running on the Windows 8 laptops, desktops, and slates. In this presentation, we’ll go over the basics of building a Windows 8 app using HTML and JavaScript, including a brief overview of what’s possible—and what’s not—for the Web developer seeking to “go native” on Windows.
Goodle Developer Days Munich 2008 - Open Social UpdatePatrick Chanezon
Updates about the OpenSocial ecosystem at Google developer days Munich, including presentations from Xing, Lokalisten, netlog and Viadeo..
OpenSocial is an open specification defining a common API that works on many different social websites, including MySpace, Plaxo, Hi5, Ning, orkut, Friendster Salesforce.com and LinkedIn, among others. This allows developers to learn one API, then write a social application for any of those sites: Learn once, write anywhere.
In addition, in order to make it easier for developers of social sites to implement the API and make their site an OpenSocial container, the Apache project Shindig provides reference implementations for OpenSocial containers in two languages (Java, PHP). Shindig will define a language specific Service Provider Interface (SPI) that a social site can implement to connect Shindig to People, Persistence and Activities backend services for the social site. Shindig will then expose these services as OpenSocial JavaScript and REST APIs.
In this session we will explain what OpenSocial is, show examples of OpenSocial containers and applications, demonstrate how to create an OpenSocial application, and explain how to leverage Apache Shindig in order to implement an OpenSocial container.
HTMX: Web 1.0 with the benefits of Web 2.0 without the grift of Web 3.0Martijn Dashorst
- HTMX is a JavaScript library that allows any HTML element to interact as a hypermedia component by adding attributes that instruct HTMX on what requests to make and how to update the DOM.
- Attributes like hx-get, hx-post, hx-target, and hx-swap allow elements to make requests and update other elements without JavaScript. Inherited attributes remove repetition.
- HTMX requests can be detected on the server via request headers, and response headers can modify requests by changing targets or swapping mechanisms. Classes provide feedback during requests.
While our predecessor product(s) were a COBOL application and later a Windows client/server application distributed on floppies, since 2005 we rock a Java web application that has gone through a lot of changes to keep up with the times. No longer duplicating 5 1/4” 1.2M floppies over the weekend and mailing them to our customers, but a single `git push` will deliver our latest version to our customers.
In this session you will learn how we made our application survive for 18 years and still be relevant. Learn how we rearchitected our application from 2005 to 2022, and more importantly, what we did wrong so you can avoid our mistakes. We migrated from Java 1.4 to Java 17, we moved from tomcat+hibernate+velocity via tomcat+hibernate+wicket+cxf+axis+spring+jgroups+ehcache to wildfly+wicket, from deploying on physical hardware to virtual kubernetes nodes. From manually scp-ing releases to gitops, and from Oracle to Postgresql, causing a 5 week outage.
If you learn only one thing from Martijn Dashorst’s session: always have a plan B.
DevTeach Ottawa - Webmatrix, see what the matrix can do for you!!Frédéric Harper
WebMatrix is a free tool that makes it easy to create, configure, and publish websites and web applications. It includes features like a web app gallery, database management, Razor syntax, and helpers. The presentation demonstrates how to use WebMatrix to build a website from templates or from scratch, access databases, use Razor syntax, and deploy apps from the gallery. Attendees are encouraged to try out WebMatrix themselves to unleash its power for creating websites and apps.
George Thiruvathukal, User Experiences with Plone Content Management webcontent2007
The document provides an overview of a presentation on user experiences with the Plone content management system. It includes sections on requirements for the system, a quick tour of Plone's interface, what Plone is, its open source licensing, default content types, publication states, customizing Plone through skins and layers, adding plugins, creating custom content types using Archetypes, and hosting Plone with Apache. Code examples are provided for customizing Plone and defining a custom "ETL Project" content type.
WebMatrix, see what the matrix can do for you!!Frédéric Harper
The document provides an overview of WebMatrix, a free tool from Microsoft that makes it easy to create, configure, and publish websites and web applications. It discusses what WebMatrix is, who it is for, features like the Razor syntax, database access, and helpers. It also covers the app gallery and open source apps. The presentation aims to demonstrate how WebMatrix can be used to easily create websites and applications.
Presented at WordCamp Montreal 2017
For many WordPress users, even seasoned PHP developers, creating new plugins for WordPress seems like a daunting task. This presentation aims to show attendees how simple creating plugins for WordPress from the ground up can be by looking at the architecture of a WordPress plugin, from the basic concepts of registering actions and filters to more advanced concepts such as the creation of admin pages and registering shortcodes.
Getting started with Appcelerator TitaniumTechday7
Techday7, Cross platform application development using Appcelerator Titanium event's Getting started with Appcelerator Titanium By Naga Harish M, Lead Developer of Anubavam Technologies
Real World Asp.Net WebApi ApplicationsEffie Arditi
This document provides guidance on building real world single page applications using various technologies including Git, AppHarbor PaaS, MongoDB integration, IoC/Dependency Injection, testing with nUnit and Moq, CI/CD, the Repository Pattern, and exception management. It discusses using Bootstrap.MVC for responsive design, Backbone.js as a client MVC library, and client-side session and authentication management. The document also covers building and deploying an app in the cloud using WebAPI which is self-hosted and flexible with content negotiation, and separating website concerns from the API.
This DrupalCon 2019 Amsterdam talk provides a look beyond the world of PHP and Javascript. It explores how other languages such as Ruby, Java, Rust and Perl handle things and highlights some interesting features of those languages. Not all the things that other languages can do can be done in PHP or Javascript but the concepts and ideas can still be used.
The document outlines an agenda for building a Twitter bot with JavaScript. It will cover key JavaScript concepts, setting up a development environment, registering an application with Twitter, getting a basic bot working, and adding custom features. Attendees will learn how to use Node.js and the Twitter API to create a bot that searches for tweets with specific keywords and automatically responds.
Build a Web App with JavaScript and jQuery (5:18:17, Los Angeles)Thinkful
This document provides an overview of building a web app with JavaScript and jQuery. It discusses the objectives and benefits of using JavaScript, what jQuery is and how it helps with cross-browser compatibility and UI features. It also covers DOM traversal and manipulation using jQuery, common uses like animations and form handling, and attaching events like clicks using callbacks. The document includes examples of changing styles, traversing elements, and responding to events. It concludes with challenges to practice these skills by creating a photo gallery and shopping list app.
Prairie Dev Con West - 2012-03-14 - Webmatrix, see what the matrix can do fo...Frédéric Harper
WebMatrix is a free tool that makes it easy to create, configure, and publish websites and web applications. It includes features like a web app gallery, database management, Razor syntax, and helpers. Razor is a new view engine that is compact, expressive, and fluid. It allows code to be easily mixed with markup. WebMatrix also provides tools for database access and APIs through helpers. The presentation encourages attendees to install WebMatrix and explore its capabilities.
JHipster is one of those open-source projects you stumble upon and immediately think, "Of course!" It combines three very successful frameworks in web development: Bootstrap, Angular, and Spring Boot. Bootstrap was one of the first dominant web-component frameworks. Its largest appeal was that it only required a bit of HTML and it worked! All the efforts we made in the Java community to develop web components were shown a better path by Bootstrap. It leveled the playing field in HTML/CSS development, much like Apple's Human Interface Guidelines did for iOS apps.
This talk shows you how to use JHipster to build a Spring Boot API, an Angular UI, and make it all look good with Bootstrap. You'll learn how to deploy the generated project to Heroku too!
WebFest 2011 WebMatrix Overview by Gavin WarrenerSpiffy
Microsoft introduced WebMatrix, a new web development tool that allows users to easily create, customize, and publish websites. WebMatrix includes everything needed for website development, such as a web server, database, and tool box. It supports various programming languages and frameworks like ASP.NET, PHP, and Razor. WebMatrix also features helpers that add commonly used functionality to simplify development.
WordPress Internationalization and Localization - WordPress Translation Day 3...WordPress Trivandrum
This document provides an introduction to WordPress and internationalization/localization. It discusses what WordPress is, its history and uses. It then covers the importance of internationalization and localization when developing WordPress themes and plugins. It provides guidelines for internationalizing code as well as translating and localizing content. Statistics on WordPress translations are also presented.
The Ring programming language version 1.9 book - Part 54 of 210Mahmoud Samir Fayed
This document discusses using the RingLibCurl library in Ring to make HTTP requests. It provides examples of making GET and POST requests, using cURL to log into Facebook, saving the output of a request to a string, and retrieving stock data from Yahoo Finance by extracting cookie and crumb values. The examples demonstrate initializing cURL handles, setting options like the URL, headers, and cookies, performing requests, and cleaning up handles after requests are completed.
Scott Guthrie slides talking about what's new on VS 11, .NET 4.5 and MVC 4, including automatic Bundling, Minifying, Real Time updates, SignalR, Asynchronous requests, Web API, Database Migration and Open Source of MVC / ASP.NET.
OpenSocial aims to make the web more social by allowing developers to add social features to websites and applications. The OpenSocial APIs allow gadgets to access user profile data and enable social interactions through features like activities. Developers can focus on building engaging experiences while OpenSocial handles user management and relationships through standards-based gadget specifications and JavaScript APIs.
This document provides an overview and roadmap for building a simple guessing game with JavaScript. It begins with introductions and background on programming concepts. It then outlines the steps to build the game, including generating a random number on page load, accepting user input, checking guesses, and allowing new games. Code examples are provided for functions to generate random numbers and display guesses. Homework extends the game with additional feedback and counting number of guesses. Information is also given on Thinkful's mentorship program for learning to code.
Busy Developer's Guide to Windows 8 HTML/JavaScript AppsJAX London
With the upcoming release of Windows 8, Microsoft decided to bring HTML+Javascript into the world of Windows-platform application development as a first-class citizen. But make no mistake, this isn’t an attempt to somehow subvert Web developers—it’s more about enabling Web developers to leverage those skills in building “native” Windows applications running on the Windows 8 laptops, desktops, and slates. In this presentation, we’ll go over the basics of building a Windows 8 app using HTML and JavaScript, including a brief overview of what’s possible—and what’s not—for the Web developer seeking to “go native” on Windows.
Goodle Developer Days Munich 2008 - Open Social UpdatePatrick Chanezon
Updates about the OpenSocial ecosystem at Google developer days Munich, including presentations from Xing, Lokalisten, netlog and Viadeo..
OpenSocial is an open specification defining a common API that works on many different social websites, including MySpace, Plaxo, Hi5, Ning, orkut, Friendster Salesforce.com and LinkedIn, among others. This allows developers to learn one API, then write a social application for any of those sites: Learn once, write anywhere.
In addition, in order to make it easier for developers of social sites to implement the API and make their site an OpenSocial container, the Apache project Shindig provides reference implementations for OpenSocial containers in two languages (Java, PHP). Shindig will define a language specific Service Provider Interface (SPI) that a social site can implement to connect Shindig to People, Persistence and Activities backend services for the social site. Shindig will then expose these services as OpenSocial JavaScript and REST APIs.
In this session we will explain what OpenSocial is, show examples of OpenSocial containers and applications, demonstrate how to create an OpenSocial application, and explain how to leverage Apache Shindig in order to implement an OpenSocial container.
HTMX: Web 1.0 with the benefits of Web 2.0 without the grift of Web 3.0Martijn Dashorst
- HTMX is a JavaScript library that allows any HTML element to interact as a hypermedia component by adding attributes that instruct HTMX on what requests to make and how to update the DOM.
- Attributes like hx-get, hx-post, hx-target, and hx-swap allow elements to make requests and update other elements without JavaScript. Inherited attributes remove repetition.
- HTMX requests can be detected on the server via request headers, and response headers can modify requests by changing targets or swapping mechanisms. Classes provide feedback during requests.
While our predecessor product(s) were a COBOL application and later a Windows client/server application distributed on floppies, since 2005 we rock a Java web application that has gone through a lot of changes to keep up with the times. No longer duplicating 5 1/4” 1.2M floppies over the weekend and mailing them to our customers, but a single `git push` will deliver our latest version to our customers.
In this session you will learn how we made our application survive for 18 years and still be relevant. Learn how we rearchitected our application from 2005 to 2022, and more importantly, what we did wrong so you can avoid our mistakes. We migrated from Java 1.4 to Java 17, we moved from tomcat+hibernate+velocity via tomcat+hibernate+wicket+cxf+axis+spring+jgroups+ehcache to wildfly+wicket, from deploying on physical hardware to virtual kubernetes nodes. From manually scp-ing releases to gitops, and from Oracle to Postgresql, causing a 5 week outage.
If you learn only one thing from Martijn Dashorst’s session: always have a plan B.
A short introduction to the SOLID principles of Object Oriented Programming in (mostly) Dutch.
- Single responsibility
- Open/Closed
- Lishkov Substitution
- Interface Segregation
- Dependency Inversion
This presentation was given at a meetup for Working Spirit in Deventer.
Converting 85% of Dutch Primary Schools from Oracle to PostgreSQLMartijn Dashorst
This case study describes migrating the most used application for primary schools in the Netherlands from Oracle to PostgreSQL. The application uses a multi-tenant, single schema database (i.e. 6000 schools in a single database) and runs using a typical Java EE frontend.
You will learn about our application architecture, hardware platform, reasons for switching, migration strategies considered and the results of our migration.
Since the CFP closes one week before our actual migration we can't reveal the results in this abstract, but the presentation will capture all the things that went wrong and well
The document discusses solutions for when documentation avoidance fails. It recommends using plain text formats like Markdown or AsciiDoc to write documentation, keeping documentation and code together, integrating documentation into development processes using tools like Git, Maven and Docker, and automating documentation testing and generation as much as possible. The document provides examples of using Arquillian, Maven, AShot and Graphene to automate the creation of a user manual with screenshots from automated tests. The goal is to produce an up-to-date user manual with high test coverage through continuous integration of documentation with code.
The Apache Wicket community is working hard to build the new major release of Wicket. One of the tentpole features is the move to Java 8 as a minimum requirement. Why did we do that, and how does this improve my Wicket code? Learn how to apply Java 8 features such as lambdas and the new DateTime API in your Wicket applications, and learn what else the community is creating for your benefit.
The document proposes a "Code Review Drinking Game" where certain common code review occurrences trigger sips of a drink, such as using "Random" instead of "secureRandom", TODO comments, or merge conflicts in committed code. It includes drinking game rules for both Java and JavaScript code reviews. The goal is to have an entertaining way to conduct code reviews by turning typical issues into opportunities to drink.
Java Serialization is often considered a dark art of Java programmers. This session will lift the veil and show what serialization is and isn't, how you can use it for profit and evil. After this session no NotSerializableException will be unconquerable.
How can you make code reviews more palatable? This drinking game will make any code review interesting and enjoyable. For Java/.Net programmers, and a special drinking game for JavaScript code reviews.
Na jaren projecten te duur en te laat opgeleverd te hebben met de waterval projectmethodiek heeft de IT industrie een nieuwe projectaanpak omarmt als de zilveren kogel die te late en te dure projecten achter zich zou laten. Door in korte iteraties op je doel af te gaan, waarbij het doel ook nog eens mag bewegen beloven deze nieuwe projectaanpakken als Scrum gouden bergen. Maakt deze beweging de belofte waar en is deze aanpak een goede match voor het (project)onderwijs?
In deze sessie legt Martijn Dashorst kort de moderne projectaanpakken uit, Scrum in het bijzonder, en hoe deze binnen Topicus toegepast worden om van koffie software te maken. Tot slot kijkt Martijn vanuit de onderwijspraktijk naar hoe goed Scrum matcht binnen het Hoger Onderwijs om zo de geschikheid van deze aanpak voor projectgroepen te analyseren.
Who Automates the Automators? (Quis Automatiet Ipsos Automates?)Martijn Dashorst
Who automates the automators? For a lot of people the future seems uncertain: automation may eat their jobs. Old and new industries are ripe for disruption: transportation, healthcare, education, finance, law and even the culinary industry are being automated as we speak. When chauffeurs and truck drivers fear that they won't be able to hitch a ride into the future, should the automators perhaps wonder... when is it our turn to be automated? Who automates the automators?
Martijn Dashorst takes a look at the future of the programmer: are we also without a job when the last doctor, lawyer, 3-star chef and driver have been automated?
Het oorspronkelijke verhaal van de Schone Coder geschreven door de gebroeders Scrum over hoe Assertpoetser in een vervloekt project terecht kwam dat het rijk in 100 jaar technical debt stortte. Kan Prinses Agile hem op tijd redden? Sprintten ze nog lang en gelukkig?
In deze lunchlezing vertelt Martijn Dashorst over het wel en wee van de coder die in een wereld vol tegenstrijdige belangen probeert te overleven en zinvol werk te leveren. Hoe krijg je een goede hygiene voor jou, je omgeving en je code? Hoe voorkom je 10 jaar lange technical debt? Met meer dan 20 jaar ontwikkelervaring biedt Martijn een blik in de keuken van een professionele software ontwikkelaar.
With the Tenth Anniversary of Wicket behind us, Wicket is still one of the thriving survivors of the Great Web Framework Wars of the mid 00's. Is there a future for server-side frameworks? In this presentation Martijn Dashorst provides a brief history of Wicket.
With a State of the Wicket, Martijn will look at who is currently using Wicket, the community and current release plans.
The majority of this session will be dedicated to the future of Wicket: does a component oriented, Java web framework have a future in the era of native clients and client side JavaScript frameworks? Martijn will layout the plans of making Wicket more productive for current users, on integrating better with JavaEE technologies and much more.
This document provides an overview of Apache Wicket, a Java web application framework. It begins with an introduction to Wicket and its core concepts like components. It then walks through an example of creating a simple cheese store application with Wicket, including setting up the project, adding domain models and entities, and building out components. The document also discusses how to use Enterprise JavaBeans (EJBs) with Wicket, such as making data access objects (DAOs) into EJBs and injecting them.
This document provides an overview of the state of the Apache Wicket framework. It discusses Wicket's origins and history from 2004 to present, including major releases and contributions over time. It also summarizes key metrics about Wicket's codebase and community based on an Ohloh report, including lines of code, contributors, and estimated development effort. Finally, it previews possible future directions for Wicket in areas like Java 8 support, JavaScript integration, and semantic versioning.
Presentation about Apache Wicket given at FOSDEM 2011. Apache Wicket is an open source, component oriented Java web framework. This presentation features an introduction to the Wicket framework and showcases some of the new features in the upcoming 1.5 release of Wicket.
A Dutch presentation (with English quotes) about the ongoing renaissance in software engineering where we transition from begin regarded as mere drones to software craftsmen. This presentation is heavily influenced by Robert C. Martin's The Renaissance of Craftsmanship.
The document provides guidance for successfully graduating a project from the Apache Software Foundation (ASF) Incubator within a year. It outlines that the ASF is a US nonprofit organization with around 2000 committers and 250 members supporting 60 open source projects through a collaborative development process. Participants who want to join an existing community or grow their own are advised to consider entering the ASF Incubator.
Presentation on Apache Wicket delivered at JavaPolis 2007 in Antwerp. We introduce Wicket, learn the concepts and go through developing an online Cheese store
How to Get CNIC Information System with Paksim Ga.pptxdanishmna97
Pakdata Cf is a groundbreaking system designed to streamline and facilitate access to CNIC information. This innovative platform leverages advanced technology to provide users with efficient and secure access to their CNIC details.
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc
How does your privacy program stack up against your peers? What challenges are privacy teams tackling and prioritizing in 2024?
In the fifth annual Global Privacy Benchmarks Survey, we asked over 1,800 global privacy professionals and business executives to share their perspectives on the current state of privacy inside and outside of their organizations. This year’s report focused on emerging areas of importance for privacy and compliance professionals, including considerations and implications of Artificial Intelligence (AI) technologies, building brand trust, and different approaches for achieving higher privacy competence scores.
See how organizational priorities and strategic approaches to data security and privacy are evolving around the globe.
This webinar will review:
- The top 10 privacy insights from the fifth annual Global Privacy Benchmarks Survey
- The top challenges for privacy leaders, practitioners, and organizations in 2024
- Key themes to consider in developing and maintaining your privacy program
Full-RAG: A modern architecture for hyper-personalizationZilliz
Mike Del Balso, CEO & Co-Founder at Tecton, presents "Full RAG," a novel approach to AI recommendation systems, aiming to push beyond the limitations of traditional models through a deep integration of contextual insights and real-time data, leveraging the Retrieval-Augmented Generation architecture. This talk will outline Full RAG's potential to significantly enhance personalization, address engineering challenges such as data management and model training, and introduce data enrichment with reranking as a key solution. Attendees will gain crucial insights into the importance of hyperpersonalization in AI, the capabilities of Full RAG for advanced personalization, and strategies for managing complex data integrations for deploying cutting-edge AI solutions.
“An Outlook of the Ongoing and Future Relationship between Blockchain Technologies and Process-aware Information Systems.” Invited talk at the joint workshop on Blockchain for Information Systems (BC4IS) and Blockchain for Trusted Data Sharing (B4TDS), co-located with with the 36th International Conference on Advanced Information Systems Engineering (CAiSE), 3 June 2024, Limassol, Cyprus.
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...Neo4j
Leonard Jayamohan, Partner & Generative AI Lead, Deloitte
This keynote will reveal how Deloitte leverages Neo4j’s graph power for groundbreaking digital twin solutions, achieving a staggering 100x performance boost. Discover the essential role knowledge graphs play in successful generative AI implementations. Plus, get an exclusive look at an innovative Neo4j + Generative AI solution Deloitte is developing in-house.
Dr. Sean Tan, Head of Data Science, Changi Airport Group
Discover how Changi Airport Group (CAG) leverages graph technologies and generative AI to revolutionize their search capabilities. This session delves into the unique search needs of CAG’s diverse passengers and customers, showcasing how graph data structures enhance the accuracy and relevance of AI-generated search results, mitigating the risk of “hallucinations” and improving the overall customer journey.
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfMalak Abu Hammad
Discover how MongoDB Atlas and vector search technology can revolutionize your application's search capabilities. This comprehensive presentation covers:
* What is Vector Search?
* Importance and benefits of vector search
* Practical use cases across various industries
* Step-by-step implementation guide
* Live demos with code snippets
* Enhancing LLM capabilities with vector search
* Best practices and optimization strategies
Perfect for developers, AI enthusiasts, and tech leaders. Learn how to leverage MongoDB Atlas to deliver highly relevant, context-aware search results, transforming your data retrieval process. Stay ahead in tech innovation and maximize the potential of your applications.
#MongoDB #VectorSearch #AI #SemanticSearch #TechInnovation #DataScience #LLM #MachineLearning #SearchTechnology
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slackshyamraj55
Discover the seamless integration of RPA (Robotic Process Automation), COMPOSER, and APM with AWS IDP enhanced with Slack notifications. Explore how these technologies converge to streamline workflows, optimize performance, and ensure secure access, all while leveraging the power of AWS IDP and real-time communication via Slack notifications.
A tale of scale & speed: How the US Navy is enabling software delivery from l...sonjaschweigert1
Rapid and secure feature delivery is a goal across every application team and every branch of the DoD. The Navy’s DevSecOps platform, Party Barge, has achieved:
- Reduction in onboarding time from 5 weeks to 1 day
- Improved developer experience and productivity through actionable findings and reduction of false positives
- Maintenance of superior security standards and inherent policy enforcement with Authorization to Operate (ATO)
Development teams can ship efficiently and ensure applications are cyber ready for Navy Authorizing Officials (AOs). In this webinar, Sigma Defense and Anchore will give attendees a look behind the scenes and demo secure pipeline automation and security artifacts that speed up application ATO and time to production.
We will cover:
- How to remove silos in DevSecOps
- How to build efficient development pipeline roles and component templates
- How to deliver security artifacts that matter for ATO’s (SBOMs, vulnerability reports, and policy evidence)
- How to streamline operations with automated policy checks on container images
Essentials of Automations: The Art of Triggers and Actions in FMESafe Software
In this second installment of our Essentials of Automations webinar series, we’ll explore the landscape of triggers and actions, guiding you through the nuances of authoring and adapting workspaces for seamless automations. Gain an understanding of the full spectrum of triggers and actions available in FME, empowering you to enhance your workspaces for efficient automation.
We’ll kick things off by showcasing the most commonly used event-based triggers, introducing you to various automation workflows like manual triggers, schedules, directory watchers, and more. Plus, see how these elements play out in real scenarios.
Whether you’re tweaking your current setup or building from the ground up, this session will arm you with the tools and insights needed to transform your FME usage into a powerhouse of productivity. Join us to discover effective strategies that simplify complex processes, enhancing your productivity and transforming your data management practices with FME. Let’s turn complexity into clarity and make your workspaces work wonders!
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024Neo4j
Neha Bajwa, Vice President of Product Marketing, Neo4j
Join us as we explore breakthrough innovations enabled by interconnected data and AI. Discover firsthand how organizations use relationships in data to uncover contextual insights and solve our most pressing challenges – from optimizing supply chains, detecting fraud, and improving customer experiences to accelerating drug discoveries.
UiPath Test Automation using UiPath Test Suite series, part 6DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 6. In this session, we will cover Test Automation with generative AI and Open AI.
UiPath Test Automation with generative AI and Open AI webinar offers an in-depth exploration of leveraging cutting-edge technologies for test automation within the UiPath platform. Attendees will delve into the integration of generative AI, a test automation solution, with Open AI advanced natural language processing capabilities.
Throughout the session, participants will discover how this synergy empowers testers to automate repetitive tasks, enhance testing accuracy, and expedite the software testing life cycle. Topics covered include the seamless integration process, practical use cases, and the benefits of harnessing AI-driven automation for UiPath testing initiatives. By attending this webinar, testers, and automation professionals can gain valuable insights into harnessing the power of AI to optimize their test automation workflows within the UiPath ecosystem, ultimately driving efficiency and quality in software development processes.
What will you get from this session?
1. Insights into integrating generative AI.
2. Understanding how this integration enhances test automation within the UiPath platform
3. Practical demonstrations
4. Exploration of real-world use cases illustrating the benefits of AI-driven test automation for UiPath
Topics covered:
What is generative AI
Test Automation with generative AI and Open AI.
UiPath integration with generative AI
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
21. Top 5 features
1. Just Java and HTML™
2. No XML configuration
3. Object Oriented Programming for the Web
22. Top 5 features
1. Just Java and HTML™
2. No XML configuration
3. Object Oriented Programming for the Web
4. Easy custom component creation
23. Top 5 features
1. Just Java and HTML™
2. No XML configuration
3. Object Oriented Programming for the Web
4. Easy custom component creation
5. Community
25. Just Java™
• Components are objects (just use extends)
• No annotation hunting
• Not managed by the framework (just use new)
26. Just Java™
public class EditPersonLink extends Link {
private final Person person;
public EditPersonLink(String id, Person person) {
super(id);
this.person = person;
}
public void onClick() {
setResponsePage(new EditPersonPage(person));
}
}
27. Just Java™
public class EditPersonLink extends Link {
private final Person person;
public EditPersonLink(String id, Person person) {
super(id);
this.person = person;
}
public void onClick() {
setResponsePage(new EditPersonPage(person));
}
}
28. Just Java™
public class EditPersonLink extends Link {
private final Person person;
public EditPersonLink(String id, Person person) {
super(id);
this.person = person;
}
public void onClick() {
setResponsePage(new EditPersonPage(person));
}
}
32. Just HTML™
• Designer friendly
• No new language to learn
• No serverside scripting in markup
33. Just HTML™
• Designer friendly
• No new language to learn
• No serverside scripting in markup
• Developers won’t $#$#% up your design
34. Just HTML™
• Designer friendly
• No new language to learn
• No serverside scripting in markup
• Developers won’t $#$#% up your design
• Designers won’t $*&#$# up your code
44. No XML
• Page navigation is done in Java:
setResponsePage(new MyPage());
45. No XML
• Page navigation is done in Java:
setResponsePage(new MyPage());
• Configuration is done in Java:
protected void init() {
getDebugSettings()
.setAjaxDebugModeEnabled(true);
}
47. Wicket is the first truly modern
framework [...] to fully realize
the promise of object oriented
development.
“
”—James McLaughlin
48. Embrace encapsulation
public class PersonLink extends Link {
private Person person;
public PersonLink(String id, Person p) {
this.person = p;
}
public void onClick() {
person.someOperation();
}
}
49. Embrace encapsulation
public class PersonLink extends Link {
private Person person;
public PersonLink(String id, Person p) {
this.person = p;
}
public void onClick() {
person.someOperation();
}
}
50. Use the right abstractions
public abstract class PersonEditPanel extends Panel {
public PersonEditPanel(String id, Person p) {
add(new Button("save") {
public void onSubmit() {
onSave(person);
}
});
add(new Button("delete") { ... });
}
protected abstract void onSave(Person p);
protected abstract void onDelete(Person p);
}
51. Use the right abstractions
public abstract class PersonEditPanel extends Panel {
public PersonEditPanel(String id, Person p) {
add(new Button("save") {
public void onSubmit() {
onSave(person);
}
});
add(new Button("delete") { ... });
}
protected abstract void onSave(Person p);
protected abstract void onDelete(Person p);
}
54. public class PersonLink extends Link { ... }
public class PersonEditPanel extends Panel { ... }
public class NationalitySelect extends
DropDownChoice { ... }
just use extends
56. The Wicket community is by far the most
vibrant and helpful open source
community that I have been a part of.
—JeremyThomerson
“
”
57. Community
• Part of The Apache Software Foundation
“not simply a group of projects sharing a
server, but rather a community of
developers and users.”
58. Community
• Part of The Apache Software Foundation
• User list: >800 subscribers, 59 messages/day
• Meetups around the world
• ##wicket on irc.freenode.net
59. Community Projects
• Wicket Stuff
jquery, dojo, scriptaculous, google maps,
hibernate, minis, prototip, etc.
• databinder.net
• Wicket Web Beans
• Tons of other projects at googlecode,
sourceforge, etc.
73. Click counter
This <a href="#">link</a> has been clicked
123 times.
This link has been clicked 123 times.
74. Click counter
This <a href="#">link</a> has been clicked
<span>123</span> times.
This link has been clicked 123 times.
75. Click counter
This <a wicket:id="link" href="#">link</a>
has been clicked <span>123</span> times.
This link has been clicked 123 times.
76. Click counter
This <a wicket:id="link" href="#">link</a> has
been clicked <span wicket:id="clicks">123</
span> times.
This link has been clicked 123 times.
100. Component
• Component has identifier (wicket:id)
new Label("msg", "Hello,World!");
• Markup has same identifier (wicket:id)
<h1 wicket:id="msg">Gets replaced</h1>
101. Component
• Components can be nested inside one another
<a href="#" wicket:id="link">
<span wicket:id="label">replaced</span>
</a>
Link link = new Link("link") {...};
add(link);
link.add(new Label("label", "Some text"));
102. Component
• Components can be nested inside one another
<a href="#" wicket:id="link">
<span wicket:id="label">replaced</span>
</a>
Link link = new Link("link") {...};
add(link);
link.add(new Label("label", "Some text"));
103. Component
• Components can be nested inside one another
<a href="#" wicket:id="link">
<span wicket:id="label">replaced</span>
</a>
Link link = new Link("link") {...};
add(link);
link.add(new Label("label", "Some text"));
104. Component
• Components can receive events
public class EditPersonForm extends Form {
public EditPersonForm(String id, Person p) {
super(id, new Model(p));
}
public void onSubmit() {
person.save();
setResponsePage(new ListPage());
}
}
112. Adding JavaScript to a
component
link.add(new AbstractBehavior() {
public void onComponentTag(Component component,
ComponentTag tag) {
tag.put("onclick",
"return confirm('Are you sure?');");
}
});
<a href="..." onclick="return confirm('Are you sure?');">
Play thermonuclear war
</a>
126. Ajax behaviors
• Can re-render components
target.addComponent(...);
• Can execute JavaScript
target.appendJavaScript("$('foo').explode();");
127. Ajax behaviors
• Can re-render components
target.addComponent(...);
• Can execute JavaScript
target.appendJavaScript("$('foo').explode();");
• Can throttle the client side events
behavior.setThrottleDelay(Duration.seconds(10));
128. Ajax behaviors
• Can re-render components
target.addComponent(...);
• Can execute JavaScript
target.appendJavaScript("$('foo').explode();");
• Can throttle the client side events
behavior.setThrottleDelay(Duration.seconds(10));
• Can add new header related resources
JavaScript, stylesheets, etc.
133. Simple Model usage
new Label("name", customer.getName())
new Label("street",
customer.getAddress().getStreet())
newTextField("username", new Model("<username>"))
134. What’s wrong with this?
new Label("street",
customer.getAddress().getStreet())
135. What’s wrong with this?
new Label("street",
customer.getAddress().getStreet())
• Label isn’t notified of street/address/
customer changes
136. What’s wrong with this?
new Label("street",
customer.getAddress().getStreet())
• Label isn’t notified of street/address/
customer changes
• NullPointerException: customer, address
could be null
154. Markup inheritance
• Inherit markup from child pages
• Includes <wicket:head> sections
• Works for Panels too
• Very easy to create consistent layout
157. Getting at Spring
public class CheesesPage extends WebPage {
private CheesesDao dao;
public CheesesPage() {
List<Cheese> = dao.getCheeses();
...
}
}
158. Getting at Spring
public class CheesesPage extends WebPage {
@SpringBean
private CheesesDao dao;
public CheesesPage() {
List<Cheese> = dao.getCheeses();
...
}
}
165. WicketTester
• Test components directly, or their markup
• Runs tests without starting server
• Ajax testing (server side)
• Runs in IDE, ant, maven builds
• Achieves high code coverage
172. Link test
@Test
public void countingLinkClickTest() {
WicketTester tester = new WicketTester();
tester.startPage(LinkCounter.class);
}
173. Link test
@Test
public void countingLinkClickTest() {
WicketTester tester = new WicketTester();
tester.startPage(LinkCounter.class);
tester.assertModelValue("label", 0);
}
174. Link test
@Test
public void countingLinkClickTest() {
WicketTester tester = new WicketTester();
tester.startPage(LinkCounter.class);
tester.assertModelValue("label", 0);
tester.clickLink("link");
}
175. Link test
@Test
public void countingLinkClickTest() {
WicketTester tester = new WicketTester();
tester.startPage(LinkCounter.class);
tester.assertModelValue("label", 0);
tester.clickLink("link");
tester.assertModelValue("label", 1);
}
176. Navigation test
@Test
public void navigateToSecondPage() {
WicketTester tester = new WicketTester();
tester.startPage(new FirstPage());
tester.clickLink("link");
tester.assertRenderedPage(SecondPage.class);
}
177. Navigation test
@Test
public void navigateToSecondPage() {
WicketTester tester = new WicketTester();
tester.startPage(new FirstPage());
tester.clickLink("link");
tester.assertRenderedPage(
SecondPage.class);
}
184. Development mode
• exceptional error pages
• dynamic markup reloading
• no caching
• no javascript/css optimizations
• discover mistakes early (serialization,
missing components, ...)
• Wicket debugger visible
185. Production mode
• Cache markup resources
• No checks
• Don’t display stack traces to users
• Minimize/compress JavaScript
• Don’t generate wicket tags
• Wicket debugger not visible
186. Default setting
INFO - WebApplication - [WicketInActionApplication] Started Wicket
version 1.3.0 in
development mode
********************************************************************
*** WARNING: Wicket is running in DEVELOPMENT mode. ***
*** ^^^^^^^^^^^ ***
*** Do NOT deploy to your live server(s) without changing this. ***
*** See Application#getConfigurationType() for more information. ***
********************************************************************
187. Go to production
• System property:
java -Dwicket.configuration=deployment
• Servlet/filter initialization parameter (web.xml)
• Context initialization parameter (web.xml)
<init-param>
<param-name>configuration</param-name>
<param-value>deployment</param-value>
</init-param>