Twig - the PHP templating engine - is easy to use, friendly and extensible. This presentation will introduce you to Twig and show you how to extend it to your bidding.
Build powerfull and smart web applications with Symfony2Hugo Hamon
Symfony2 first stable release is scheduled for the first week of March 2011. During this session, we will have a look at the new framework architecture and most of its powerfull features.
We will show you how Symfony2 implements the MVC pattern and an HTTP request is processed and converted as a response for the end user. Of course, we will talk about the configuration principles and how it's easy to configure Symfony2 project parts like the routing system or the data model. We will also focus on other major components of the framework like the Doctrine2 integration, forms, security (authentication and authorizations) or HTTP cache management.
Symony2 A Next Generation PHP FrameworkRyan Weaver
A mixture of architecture and hands-on examples, this presentation takes you through the killer features of Symfony2, how it's so decoupled, and how you can get started developing in it.
As an added bonus, a number of new standalone PHP libraries and tools are mentioned at the end.
Dependency Injection: Make your enemies fear youRyan Weaver
This document discusses dependency injection and how it can be implemented using a service container. It explains that dependency injection means passing all dependencies explicitly to methods rather than having methods fetch dependencies globally. A service container manages object instantiation and handles passing dependencies to constructor methods. The document provides an example of how a gallery plugin could use a service container to define services and their dependencies.
Symfony2: What's all the buzz about?
Follow along as we download, install and get a hands-on experience using Symfony2. This presentation shows you how to get started with Symfony and introduces you to the large group of new PHP libraries coming from the Symfony2 community. You'll see examples of how to create pages, use template inheritance, and create a simple JSON API.
Twig: Friendly Curly Braces Invade Your Templates!Ryan Weaver
Video: http://youtu.be/Jikkiqt-nBo
Twig! Yep, it's that fancy magic that's supposed to make theming in Drupal 8 as much fun as eating beef brisket at Rudy's Country Store in Austin (apologies to my veggie friends!). And in fact, Twig was *born* for this: a language that was created with one job in mind: making writing templates awesome and powerful. Oh, and to make you love using it.
In this talk, we'll learn about Twig from the ground-up: syntax, filters, inheritance and other tricks you can learn now to be ready for Drupal 8. We'll also look at how Twig looks inside Drupal, and how it compares to what you're used to in Drupal 7.
By the end, you'll know everything to start getting your Drupal 8 theme on and be shouting its praises from the hills! Ok, maybe not that last part (but I do love how excited Drupalers get), but you'll definitely have a new friend in your world: Twig.
The document provides an overview of starting a new project with Symfony2. It discusses downloading the Symfony Standard Edition, installing vendor libraries, configuring the project, and initializing a Git repository. The document also introduces bundles as the way Symfony organizes code and demonstrates creating a basic bundle to develop application pages. Behavior-driven testing with Behat is also covered at a high level.
Design pattern in Symfony2 - Nanos gigantium humeris insidentesGiulio De Donato
This document discusses various design patterns used within the Symfony framework such as the Front Controller pattern, Decorator pattern, Dependency Injection, and others. It also discusses anti-patterns to avoid like over-engineering, overuse of patterns, big ball of mud, and reinventing the wheel. Throughout the document there is an emphasis on decoupling code and avoiding tightly coupled spaghetti code.
This document summarizes Pablo Godel's presentation on Symfony. It discusses the history and releases of Symfony 1.0 and the transition to Symfony 2. Key highlights of Symfony 1.0 included its ORM integration, Web Debug Toolbar, Admin Generator, and documentation. Symfony 2 introduced 21 standalone components and a full-stack framework built on top. It emphasizes extensibility through bundles and flexible configuration. Getting started with Symfony 2 involves downloading a standard distribution and exploring its directory structure.
The document discusses common myths about the Symfony framework. It addresses criticisms that Symfony is hard to learn, extremely coupled, just configuration rather than programming, restrictive, badly performing, and the ultimate tool. For each myth, it provides counterarguments, explaining that Symfony has good documentation, a supportive community, and flexibility. It concludes that while Symfony has a learning curve, it must fit the project and team, and there is no single ultimate tool.
A peek into Python's Metaclass and Bytecode from a Smalltalk UserKoan-Sin Tan
The document discusses metaclasses and bytecode in Python from the perspective of a Smalltalk user. Smalltalk influenced Python's use of bytecode, though Python's metaclasses differ from Smalltalk. Metaclasses in Smalltalk determine the class of a class, with every class being an instance of its metaclass. In Python, the default metaclass is type, but some standard classes use non-type metaclasses defined in the abc module. The document also provides an overview of Smalltalk bytecode categories and examples, and compares it to the Python bytecode generated for simple methods.
Introduction to the Eclipse scripting tool Groovy Monkey. Groovy Monkey allows for you to engage in API exploration, Task Automation, Plugin prototyping and collaboration in a lightweight and simple way.
Twig for Drupal 8 and PHP | Presented at OC Drupalwebbywe
A high level overview of Twig and its functions that was presented at the OC Drupal meetup in February 2014 at KWALL.
As Twig is now part of Drupal 8 core, it is still being developed so slides are mostly on Twig itself. Discussion was over what Twig provides to themers.
http://www.meetup.com/oc-php
http://www.meetup.com/ocdrupal/
The document discusses programming concepts including programming languages, switch case statements, and looping. It provides examples of how to write code using switch case statements and different types of loops (for, while, do-while). The examples demonstrate how to get user input, perform calculations, and repeat blocks of code multiple times.
This document provides an overview of the Standard PHP Library (SPL) including common data structures, interfaces, exceptions and iterators. It discusses how SPL components like SplAutoload, SplFileInfo and various iterators are used in popular open source projects. The document encourages developers to get involved in improving SPL through code contributions and articles and provides contact information for the presenter.
With PHP 8.0 recently released and PHP 5.x still accounting for over 40% of all production environments, it's time to paint a clear picture on not just why everyone should move to 8.x, but on how to get code ready for the latest version of PHP. In this talk, we'll look at some handy tools and techniques to ease the migration.
Getting big without getting fat, in perlDean Hamstead
Thoughts on keeping your perl code lean as your code base gets bigger. Ideas on API structure for plugins and modules which can help. Some recommended option settings and module suggestions for handling configuration. A passing reference to logging.
A variety of pop culture, tech and start up culture references to keep things interesting.
All feedback welcome
Presented 18/08/2015 at Sydney PM
With PHP 7.2 recently released and PHP 5.3 and 5.4 still accounting for over 40% of all production environments, it's time to paint a clear picture on not just why everyone should move to 7.0 (or preferably 7.1), but on how to get code ready for the latest version of PHP.
Using the version compatibility checker for PHP_CodeSniffer and a few simple step-by-step instructions, upgrading old code to make it compatible with the latest PHP versions becomes actually really easy. In this talk, we'll migrate an old piece of code and get rid of the demons of the past and ready for the present and future.
Repoze Bfg - presented by Rok Garbas at the Python Barcelona Meetup October 2...maikroeder
This document introduces Repoze.BFG, a Python web framework that aims to provide a simple yet powerful way to build web applications. It allows developers to use popular Zope technologies like security, templating, and components without needing the full Zope framework. BFG stands for "Big Friendly Giant" and provides common features like routing, security, and templating while avoiding complexity and only including what is necessary. It uses the Chameleon templating engine and allows the use of Zope interfaces, components and other utilities via lightweight integration.
This document provides an overview of the Symfony components created by Fabien Potencier. It describes that the components are standalone libraries for PHP 5.3 that have no dependencies between them. The components include Event Dispatcher, Output Escaper, YAML, Routing, Console, Dependency Injection Container, Request Handler, and Templating. The document discusses how to download and install the components via Git, SVN, or nightly builds. It also covers autoloading classes using the UniversalClassLoader and describes some of the individual components in more detail like Console, Routing, and Testing.
Swift is an exciting new language developed by Apple as a replacement for ObjectiveC. It has a modern clean syntax, strong inferential typing support, and uses automatic reference counting to streamline memory management and prevent numerous types of errors. Swift focuses on providing a "safe" compiled language but manages to have an easy-to-learn scripting language "feel".
The language was originally released in 2014, but after it was released as an Open Source project in late 2015, there has been an explosion of interest and work in the language. It's been ported to multiple non-MacOS platforms (e.g, Linux and Android) and extended to support server-side programming in addition to being able to target MacOS, iOS, watchOS, and tvOS.
This talk will present an overview of the development of Swift, review the basic syntax of the language, and discuss some of the philosophy behind its design. After attending this talk, you'll be poised to dive into Swift coding for yourself!
Delivered at OpenWest 2016, 15 July 2016
This document provides an overview of using the UICatalog sample code to learn about the user interface components available in UIKit. It discusses downloading and running the UICatalog sample, and how to capture screenshots of the user interface elements to create mockups and prototypes. It also includes background information on Objective-C, UIKit, the model-view-controller (MVC) pattern, and the basic structure of an iOS application.
This document discusses design patterns and object-oriented principles in C++. It begins with an agenda that covers object-oriented fundamentals, the Gang of Four (GoF) design patterns including creational, structural and behavioral patterns, and interoperability. It then discusses object-oriented concepts like classes and interfaces in C++. It provides examples of applying design patterns like the Factory Method and Prototype patterns to demonstrate flexible object creation in C++.
PHP Annotations: They exist! - JetBrains WebinarRafael Dohms
Annotations are more than PHPDoc comments, they’re a fully-featured way of including additional information alongside your code. We might have rejected an RFC to add support into the PHP core, but the community has embraced this tool anyway!
This session shows you who is doing what with annotations, and will give you some ideas on how to use the existing tools in your own projects to keep life simple. Developers, architects and anyone responsible for the technical direction of an application should attend this session.
Class.js is a small JavaScript library that provides class-like inheritance. It allows defining classes that inherit properties and methods from a parent class. The library is only 25 lines long and uses a clever approach of caching method references to enable calling super methods from subclasses. While useful for defining common APIs across related types, Class.js is generally not needed in idiomatic JavaScript which favors composition over classes.
This document provides an introduction and overview of Griffon, an open source framework for building desktop applications in Java and Groovy. It discusses key Griffon concepts like the MVC architecture, views, models, controllers and plugins. It also demonstrates common Griffon commands and shows code examples for building a basic todo application with a Griffon including adding tables, binding forms and handling threading.
This document provides an overview of the Twig templating engine. It begins with introducing Twig and its advantages over traditional PHP templates. It then covers basic Twig syntax like variables, control structures, filters, tests, and extensions. The document explains how to extend templates through inheritance, includes, and macros. It also discusses creating custom Twig extensions and tags. Finally, it notes that Twig compiles templates to optimized PHP code for speed and has a sandbox mode for security when evaluating untrusted templates.
This document discusses using continuous integration and testing for Drupal 7 projects. It introduces tools like Jenkins, Phing, Drush, PHPUnit and Behat that can be used to set up an automated testing workflow. Key aspects covered include continuous integration, testing history and strategies, and setting up different environments for local development, continuous integration, staging and production. Examples of configuration files and a build process using these tools are also provided.
This document summarizes Pablo Godel's presentation on Symfony. It discusses the history and releases of Symfony 1.0 and the transition to Symfony 2. Key highlights of Symfony 1.0 included its ORM integration, Web Debug Toolbar, Admin Generator, and documentation. Symfony 2 introduced 21 standalone components and a full-stack framework built on top. It emphasizes extensibility through bundles and flexible configuration. Getting started with Symfony 2 involves downloading a standard distribution and exploring its directory structure.
The document discusses common myths about the Symfony framework. It addresses criticisms that Symfony is hard to learn, extremely coupled, just configuration rather than programming, restrictive, badly performing, and the ultimate tool. For each myth, it provides counterarguments, explaining that Symfony has good documentation, a supportive community, and flexibility. It concludes that while Symfony has a learning curve, it must fit the project and team, and there is no single ultimate tool.
A peek into Python's Metaclass and Bytecode from a Smalltalk UserKoan-Sin Tan
The document discusses metaclasses and bytecode in Python from the perspective of a Smalltalk user. Smalltalk influenced Python's use of bytecode, though Python's metaclasses differ from Smalltalk. Metaclasses in Smalltalk determine the class of a class, with every class being an instance of its metaclass. In Python, the default metaclass is type, but some standard classes use non-type metaclasses defined in the abc module. The document also provides an overview of Smalltalk bytecode categories and examples, and compares it to the Python bytecode generated for simple methods.
Introduction to the Eclipse scripting tool Groovy Monkey. Groovy Monkey allows for you to engage in API exploration, Task Automation, Plugin prototyping and collaboration in a lightweight and simple way.
Twig for Drupal 8 and PHP | Presented at OC Drupalwebbywe
A high level overview of Twig and its functions that was presented at the OC Drupal meetup in February 2014 at KWALL.
As Twig is now part of Drupal 8 core, it is still being developed so slides are mostly on Twig itself. Discussion was over what Twig provides to themers.
http://www.meetup.com/oc-php
http://www.meetup.com/ocdrupal/
The document discusses programming concepts including programming languages, switch case statements, and looping. It provides examples of how to write code using switch case statements and different types of loops (for, while, do-while). The examples demonstrate how to get user input, perform calculations, and repeat blocks of code multiple times.
This document provides an overview of the Standard PHP Library (SPL) including common data structures, interfaces, exceptions and iterators. It discusses how SPL components like SplAutoload, SplFileInfo and various iterators are used in popular open source projects. The document encourages developers to get involved in improving SPL through code contributions and articles and provides contact information for the presenter.
With PHP 8.0 recently released and PHP 5.x still accounting for over 40% of all production environments, it's time to paint a clear picture on not just why everyone should move to 8.x, but on how to get code ready for the latest version of PHP. In this talk, we'll look at some handy tools and techniques to ease the migration.
Getting big without getting fat, in perlDean Hamstead
Thoughts on keeping your perl code lean as your code base gets bigger. Ideas on API structure for plugins and modules which can help. Some recommended option settings and module suggestions for handling configuration. A passing reference to logging.
A variety of pop culture, tech and start up culture references to keep things interesting.
All feedback welcome
Presented 18/08/2015 at Sydney PM
With PHP 7.2 recently released and PHP 5.3 and 5.4 still accounting for over 40% of all production environments, it's time to paint a clear picture on not just why everyone should move to 7.0 (or preferably 7.1), but on how to get code ready for the latest version of PHP.
Using the version compatibility checker for PHP_CodeSniffer and a few simple step-by-step instructions, upgrading old code to make it compatible with the latest PHP versions becomes actually really easy. In this talk, we'll migrate an old piece of code and get rid of the demons of the past and ready for the present and future.
Repoze Bfg - presented by Rok Garbas at the Python Barcelona Meetup October 2...maikroeder
This document introduces Repoze.BFG, a Python web framework that aims to provide a simple yet powerful way to build web applications. It allows developers to use popular Zope technologies like security, templating, and components without needing the full Zope framework. BFG stands for "Big Friendly Giant" and provides common features like routing, security, and templating while avoiding complexity and only including what is necessary. It uses the Chameleon templating engine and allows the use of Zope interfaces, components and other utilities via lightweight integration.
This document provides an overview of the Symfony components created by Fabien Potencier. It describes that the components are standalone libraries for PHP 5.3 that have no dependencies between them. The components include Event Dispatcher, Output Escaper, YAML, Routing, Console, Dependency Injection Container, Request Handler, and Templating. The document discusses how to download and install the components via Git, SVN, or nightly builds. It also covers autoloading classes using the UniversalClassLoader and describes some of the individual components in more detail like Console, Routing, and Testing.
Swift is an exciting new language developed by Apple as a replacement for ObjectiveC. It has a modern clean syntax, strong inferential typing support, and uses automatic reference counting to streamline memory management and prevent numerous types of errors. Swift focuses on providing a "safe" compiled language but manages to have an easy-to-learn scripting language "feel".
The language was originally released in 2014, but after it was released as an Open Source project in late 2015, there has been an explosion of interest and work in the language. It's been ported to multiple non-MacOS platforms (e.g, Linux and Android) and extended to support server-side programming in addition to being able to target MacOS, iOS, watchOS, and tvOS.
This talk will present an overview of the development of Swift, review the basic syntax of the language, and discuss some of the philosophy behind its design. After attending this talk, you'll be poised to dive into Swift coding for yourself!
Delivered at OpenWest 2016, 15 July 2016
This document provides an overview of using the UICatalog sample code to learn about the user interface components available in UIKit. It discusses downloading and running the UICatalog sample, and how to capture screenshots of the user interface elements to create mockups and prototypes. It also includes background information on Objective-C, UIKit, the model-view-controller (MVC) pattern, and the basic structure of an iOS application.
This document discusses design patterns and object-oriented principles in C++. It begins with an agenda that covers object-oriented fundamentals, the Gang of Four (GoF) design patterns including creational, structural and behavioral patterns, and interoperability. It then discusses object-oriented concepts like classes and interfaces in C++. It provides examples of applying design patterns like the Factory Method and Prototype patterns to demonstrate flexible object creation in C++.
PHP Annotations: They exist! - JetBrains WebinarRafael Dohms
Annotations are more than PHPDoc comments, they’re a fully-featured way of including additional information alongside your code. We might have rejected an RFC to add support into the PHP core, but the community has embraced this tool anyway!
This session shows you who is doing what with annotations, and will give you some ideas on how to use the existing tools in your own projects to keep life simple. Developers, architects and anyone responsible for the technical direction of an application should attend this session.
Class.js is a small JavaScript library that provides class-like inheritance. It allows defining classes that inherit properties and methods from a parent class. The library is only 25 lines long and uses a clever approach of caching method references to enable calling super methods from subclasses. While useful for defining common APIs across related types, Class.js is generally not needed in idiomatic JavaScript which favors composition over classes.
This document provides an introduction and overview of Griffon, an open source framework for building desktop applications in Java and Groovy. It discusses key Griffon concepts like the MVC architecture, views, models, controllers and plugins. It also demonstrates common Griffon commands and shows code examples for building a basic todo application with a Griffon including adding tables, binding forms and handling threading.
This document provides an overview of the Twig templating engine. It begins with introducing Twig and its advantages over traditional PHP templates. It then covers basic Twig syntax like variables, control structures, filters, tests, and extensions. The document explains how to extend templates through inheritance, includes, and macros. It also discusses creating custom Twig extensions and tags. Finally, it notes that Twig compiles templates to optimized PHP code for speed and has a sandbox mode for security when evaluating untrusted templates.
This document discusses using continuous integration and testing for Drupal 7 projects. It introduces tools like Jenkins, Phing, Drush, PHPUnit and Behat that can be used to set up an automated testing workflow. Key aspects covered include continuous integration, testing history and strategies, and setting up different environments for local development, continuous integration, staging and production. Examples of configuration files and a build process using these tools are also provided.
Professional Help for PowerShell ModulesJune Blender
Slides from talk at PowerShell Conference Europe 2016 (@PSConfEu). In this deck:
-- Why write PowerShell help?
-- How help for modules differs from cmdlet help
-- Mechanics:
---- Comment-based help vs. XML help
---- About topic format requirements and best practices
-- About Help Content
---- How to start an About topic
---- How to organize an About topic.
---- About topic checklist
-- How to support online help
Pycon Colombia 2018
One year ago I joined a team that favours Serverless, since then I’ve been building and maintaining lots of services using Serverless. With a pinch of Skepticism, I sailed through some of the challenges and tooling, I want to share with the community the pains and glory of it.
Twig, the flexible, fast, and secure template language for PHPFabien Potencier
The document introduces Twig, a template language for PHP. It provides a concise overview of Twig's key features including being flexible, fast, and secure. It also summarizes Twig's history, how templates are compiled into PHP classes for improved performance, and Twig's extensibility through extensions, macros, and a sandbox mode for untrusted code.
This document provides an introduction and overview of the Python programming language. It discusses what Python is, how it can be used for tasks like web development, data analysis, and scientific computing. It also covers how to get started with Python, including installing it and using basic features like variables, functions, modules, and packages. Examples are provided for common Python concepts like lists, dictionaries, and working with CSV files. MongoDB and the PyMongo module for interacting with MongoDB databases from Python are also briefly introduced.
web programming UNIT VIII python by Bhavsingh MalothBhavsingh Maloth
This document provides a tutorial on Python programming. It introduces core Python concepts over several sections. The first section discusses what will be covered, including an introduction to the Python language and becoming comfortable writing basic programs. Subsequent sections cover specific Python topics like data types, operators, conditional and loop execution, functions, modules and packages for code reusability. The document emphasizes consistent indentation and readability in Python code.
The Ring programming language version 1.5.4 book - Part 6 of 185Mahmoud Samir Fayed
This document provides an overview of the Ring programming language. Key features include native object-oriented support with encapsulation, inheritance, polymorphism and composition. It also supports reflection, exception handling, runtime code evaluation, I/O, math functions, strings, lists, files, databases, security, internet, zip, and CGI functionality. The language aims to have clear structure, be compact, encourage organization, and support both procedural and object-oriented paradigms. It can be used to create applications, libraries, games and more.
The document summarizes the Tapestry-JFly integration library, which allows developers to incorporate the Dojo JavaScript framework into Tapestry5 web applications. Some key points:
1) Tapestry-JFly provides ready-to-use Dojo components that simplify including Dojo scripts and widgets in Tapestry5.
2) Setting up a new Tapestry5 project requires adding the Tapestry-JFly dependency and enabling Dojo via annotations.
3) Tapestry-JFly components can then be used to incorporate standard and custom Dojo widgets into templates and pages.
The Ring programming language version 1.5.3 book - Part 6 of 184Mahmoud Samir Fayed
- Ring is a simple, dynamically typed scripting language designed for productivity. It aims to have clear program structure and encourage organization.
- Key features include object-oriented support, reflection, exception handling, math/string/file functions, and embedding capabilities. It can be used to create applications, games, and declarative domain-specific languages.
- The language focuses on transparency - its implementation and each compiler stage can be clearly seen. It also aims to have natural, minimal syntax and encourage nesting and organization of code.
Functional programming in Python 1st Edition David Mertznkossivilana87
Functional programming in Python 1st Edition David Mertz
Functional programming in Python 1st Edition David Mertz
Functional programming in Python 1st Edition David Mertz
<b>PHP</b> Reference: Beginner to Intermediate <b>PHP5</b>tutorialsruby
This document is a reference book for PHP functions aimed at beginner to intermediate PHP programmers. It provides concise descriptions, examples, and related functions for common PHP functions. The book assumes some PHP experience and focuses on the essential information for each function rather than extensive tutorials. It excludes more advanced PHP topics like object-oriented programming.
This document provides reference information for PHP functions suitable for beginner to intermediate PHP programmers. It includes an introduction, overview of assumptions made, and formatting used for describing each function. Functions are grouped into categories like string functions, array functions, date/time functions, and more. Sample code and output is provided for each function described.
This document provides an overview and instructions for a workshop on building Instagram filters using JavaScript, including introducing the speaker and teaching assistant, describing the goals of learning HTML, JavaScript basics and using third-party libraries to build a photo filtering application, and outlining the Thinkful program for learning web development through individual mentorship.
The document provides information about Mohan Arumugam's profile and background as a technologies specialist and consultant. It then provides details about the history and development of the Python programming language, including:
- Python is named after the Monty Python comedy group, not the snake.
- Key releases and features added in each major Python version from 0.9.0 to 3.12.
- Python's growing popularity and widespread adoption in various domains like web development, data science, AI, and automation.
- Details about Python 3.12, including new features like generic classes/functions, f-string grammar updates, and security improvements.
This tutorial provides an introduction to the Python programming language. It will cover Python's core features like syntax, data types, operators, conditional and loop execution, functions, modules and packages to enable writing basic programs. The tutorial is intended for learners to learn Python together through questions, discussions and pointing out mistakes.
Codemotion 2013 - Designing complex applications using html5 and knockoutjsFabio Franzini
The document discusses tools and frameworks for building complex applications using HTML5 and JavaScript. It begins with introductions and background on the speaker. The rest of the document outlines various topics: HTML5 and its benefits, JavaScript and patterns like modularity, client-side frameworks like KnockoutJS, server-side tools like TypeScript, packaging apps with Cordova or AppJS, and demonstrates some of the frameworks.
Webpack Encore Symfony Live 2017 San FranciscoRyan Weaver
Ready to write an amazing front-end for your app? There are *so* many great tools, like React, Vue.js, module loaders, Sass, LESS, PostCSS and more. But, they all have one thing in common: you need to configure a *build* system before you write a single line of code! Thankfully, there's Webpack: the leading tool for processing & bundling your JavaScript and CSS. There's just one problem: configuring Webpack is tough and requires a lot of Webpack-specific knowledge. Say hello to Webpack Encore: a library built by Symfony to quickly bootstrap a sophisticated asset setup, complete with minification, SASS processing, automatic versioning, Babel support and *everything* you need to start writing great JavaScript quickly. In this talk, we'll also learn about using JavaScript modules, how to bootstrap a framework (like React) and other important modern practices. Give your assets a huge boost with Webpack Encore!
The Coolest Symfony Components you’ve never heard of - DrupalCon 2017Ryan Weaver
What is Symfony *really*? It's a collection of *35* independent libraries, and
Drupal uses less than *half* of them! That means that there's a *ton* of other
good stuff that you can bring into your project to solve common problems... as
long as you know how, and what those components do!
In this talk, we'll have some fun: taking a tour of the Symfony components, how
to install them (into Drupal, or anywhere) and how to use some of my *favorite*,
lesser-known components. By the end, you'll have a better appreciation of what
Symfony *really* is, and some new tools to use immediately.
Finally, Professional Frontend Dev with ReactJS, WebPack & Symfony (Symfony C...Ryan Weaver
If you're like me, you know that being a great backend developer isn't enough. To make *truly* great applications, we need to spend significant time in an area that's moving at a lightning pace: frontend development.
This talk is for you: the backend developer that wants to hook their API's up to rich, interactive JavaScript frontends. To do that, first, we need to demystify a lot of new terms, like ES6/ES2015, ECMAScript, JSX, Babel and the idea that modern JavaScript (surprise) *requires* a build step.
With this in mind, I'll give you a brief introduction into Webpack & the modular development it finally allows.
But the real star is ReactJS. In the frontend world, you never know what new tech will *win*, but React is a star. I'll give you enough of an intro to get you rolling on your project.
The new frontend dev world is huge! Consider the starting line down an exciting new journey.
Symfony Guard Authentication: Fun with API Token, Social Login, JWT and moreRyan Weaver
There are so many interesting ways to authenticate a user: via an API token, social login, a traditional HTML form or anything else you can dream up.
But until now, creating a custom authentication system in Symfony has meant a lot of files and a lot of complexity.
Introducing Guard: a simple, but expandable authentication system built on top of Symfony's security component. Want to authenticate via an API token? Great - that's just one class. Social login? Easy! Have some crazy legacy central authentication system? In this talk, we'll show you how you'd implement any of these in your application today.
Don't get me wrong - you'll still need to do some work. But finally, the path will be clear and joyful.
Symfony: Your Next Microframework (SymfonyCon 2015)Ryan Weaver
Microservices are a huge trend, and microframeworks are perfect for them: put together just a few files, write some code, and your done!
But Symfony is a big framework, right? Wrong! Symfony can be as small as a single file!
In this talk, we'll learn how to use Symfony as a micro-framework for your next project. Your app will stay small and clear, but without needing to give up the features or third-party bundles that you love. And if the project grows, it can evolve naturally into a full Symfony project.
So yes, Symfony can also be a microframework. Tell the world!
There are so many interesting ways to authenticate a user: via an API token, social login, a traditional HTML form or anything else you can dream up. But until now, creating a custom authentication system in Symfony has meant a lot of files and a lot of complexity. Introducing Guard: a simple, but expandable authentication system built on top of the security component and introduced in Symfony 2.8. Want to authenticate via an API token? Great - that's just one class. Social login? Easy! Have some crazy legacy central authentication system? In this talk, we'll show you how you'd implement any of these in your application today. Don't get me wrong - you'll still need to do some work. But finally, the path will be clear and joyful.
Grand Rapids PHP Meetup: Behavioral Driven Development with BehatRyan Weaver
Testing our applications is something we all do. Ahem, rather, it's something we all *wish* we did. In this chat, I'll introduce you to Behat (behat.org) (version 3!!!!): a behavior-driven-development (BDD) library that allows you to write functional tests against your application just by writing human-readable sentences/scenarios. To sweeten the deal these tests can be run in a real browser (via Selenium2) with just the flip of a switch. If you asked me to develop without Behat, I'd just retire. It's that sweet. By the end, you'll have everything you need to start functionally-testing with Behat in your new, or very old and ugly project.
Master the New Core of Drupal 8 Now: with Symfony and SilexRyan Weaver
I'm not a Drupal developer, but I do already know *a lot* about Drupal 8, like how the event system works, what a service is, how it relates to a dependency injection container and how the deepest and darkest of Drupal’s request-response workflow looks.
How? Because I use Symfony. And if you want to get a jumpstart on Drupal 8, you should to. In this talk, we'll double the number of tools you have to solve problems (Drupal + Symfony) and start to unlock all the new important concepts. We'll start with Silex (a microframework based on Symfony), graduate to Symfony, and focus on the pieces that are most interesting to a Drupal 8 developer.
Silex: Microframework y camino fácil de aprender SymfonyRyan Weaver
Ya quieres aprender Symfony? Bueno! Si eres en usuario de Drupal o si quieres aumentar sus habilidades, aprender Symfony puede ayudarte. Sin embargo, aprender Symfony puede ser difícil - y muchas ideas nuevas (pero buenas) como PHP namespaces, Composer, y código "object-oriented". Te presento a Silex: el Microframework que se construye por las mismos pedazos (HttpFoundation, HttpKernel, Composer, etc) como el Symfony Framework y Drupal 8. En esta charla, vamos a crear un mini-app con Silex para mostrarte como fácil puede ser y cuales partes son los mismos como Symfony y Drupal. Al fin, vas a estar listo entender Drupal 8 o crear su primer proyecto con Symfony.
Y porque esta charla sería mi primera en español, puedas disfrutar esta aventura conmigo :).
Drupal 8: Huge wins, a Bigger Community, and why you (and I) will Love itRyan Weaver
The document discusses the benefits of Drupal 8 over Drupal 7. Drupal 8 embraces modern PHP standards and libraries, allowing for easier code sharing, improved quality, and new possibilities. Key benefits include leveraging libraries like Symfony, Twig and others with no development effort, improved developer experience through object oriented code and standards, and the ability to more easily create new types of applications and distributions. Drupal 8 innovates away from outdated Drupal 7 technologies and practices to build a stronger, more interoperable community.
Cool like a Frontend Developer: Grunt, RequireJS, Bower and other ToolsRyan Weaver
Bower, Grunt, and RequireJS are just a few tools that have been re-shaping the frontend development world, replacing cluttered script tags and server-side build solutions with a sophisticated, but sometimes complex approach to dependency management and module loading. In this talk, we'll put on our trendy frontend developer hat and find out how these tools work and how they differ from what we might be used to. Most important, we'll see how using tools like this might look in Symfony2 and how our application can be a friendly place for a frontend guy/gal.
The Wonderful World of Symfony ComponentsRyan Weaver
The document provides an overview of the Symfony components and how they can be used independently of Symfony frameworks. It discusses how the components like HttpFoundation, HttpKernel, EventDispatcher and Routing can be used to build a basic framework. It encourages developers to learn about these components and leverage them to build applications and share code across different PHP projects.
A PHP Christmas Miracle - 3 Frameworks, 1 appRyan Weaver
In this presentation, we walk take a flat PHP4-style application and gently migrate it into our own "framework", that uses components from Symfony2, Lithium, Zend Framework and a library called Pimple. By the end, you'll see how any ugly application can take advantage of the many wonderful tools available to PHP developers.
Doctrine2 consists of two libraries: the Database Abstraction Layer (DBAL) and the Object Relational Mapper (ORM). The DBAL provides a PDO-like layer with additional features for schema manipulation. The ORM allows normal PHP objects to be persisted as database rows and vice versa by mapping object properties to table columns via annotations. The document provides examples of executing queries, retrieving schema information, altering schemas, persisting objects, and retrieving persisted objects using Doctrine2.
The document discusses Doctrine migrations, which are PHP files that contain instructions for updating a database schema. It covers generating migrations automatically based on changes to models, writing migrations manually, conventions for migration file names and classes, tools for comparing databases, and potential issues like migration failures or autoloading bugs. The presentation notes discuss strategies for resetting migrations if old references cause failures and workarounds for autoloading issues in the diff generation tool.
Role of Data Annotation Services in AI-Powered ManufacturingAndrew Leo
From predictive maintenance to robotic automation, AI is driving the future of manufacturing. But without high-quality annotated data, even the smartest models fall short.
Discover how data annotation services are powering accuracy, safety, and efficiency in AI-driven manufacturing systems.
Precision in data labeling = Precision on the production floor.
Quantum Computing Quick Research Guide by Arthur MorganArthur Morgan
This is a Quick Research Guide (QRG).
QRGs include the following:
- A brief, high-level overview of the QRG topic.
- A milestone timeline for the QRG topic.
- Links to various free online resource materials to provide a deeper dive into the QRG topic.
- Conclusion and a recommendation for at least two books available in the SJPL system on the QRG topic.
QRGs planned for the series:
- Artificial Intelligence QRG
- Quantum Computing QRG
- Big Data Analytics QRG
- Spacecraft Guidance, Navigation & Control QRG (coming 2026)
- UK Home Computing & The Birth of ARM QRG (coming 2027)
Any questions or comments?
- Please contact Arthur Morgan at [email protected].
100% human made.
HCL Nomad Web – Best Practices and Managing Multiuser Environmentspanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-nomad-web-best-practices-and-managing-multiuser-environments/
HCL Nomad Web is heralded as the next generation of the HCL Notes client, offering numerous advantages such as eliminating the need for packaging, distribution, and installation. Nomad Web client upgrades will be installed “automatically” in the background. This significantly reduces the administrative footprint compared to traditional HCL Notes clients. However, troubleshooting issues in Nomad Web present unique challenges compared to the Notes client.
Join Christoph and Marc as they demonstrate how to simplify the troubleshooting process in HCL Nomad Web, ensuring a smoother and more efficient user experience.
In this webinar, we will explore effective strategies for diagnosing and resolving common problems in HCL Nomad Web, including
- Accessing the console
- Locating and interpreting log files
- Accessing the data folder within the browser’s cache (using OPFS)
- Understand the difference between single- and multi-user scenarios
- Utilizing Client Clocking
Linux Support for SMARC: How Toradex Empowers Embedded DevelopersToradex
Toradex brings robust Linux support to SMARC (Smart Mobility Architecture), ensuring high performance and long-term reliability for embedded applications. Here’s how:
• Optimized Torizon OS & Yocto Support – Toradex provides Torizon OS, a Debian-based easy-to-use platform, and Yocto BSPs for customized Linux images on SMARC modules.
• Seamless Integration with i.MX 8M Plus and i.MX 95 – Toradex SMARC solutions leverage NXP’s i.MX 8 M Plus and i.MX 95 SoCs, delivering power efficiency and AI-ready performance.
• Secure and Reliable – With Secure Boot, over-the-air (OTA) updates, and LTS kernel support, Toradex ensures industrial-grade security and longevity.
• Containerized Workflows for AI & IoT – Support for Docker, ROS, and real-time Linux enables scalable AI, ML, and IoT applications.
• Strong Ecosystem & Developer Support – Toradex offers comprehensive documentation, developer tools, and dedicated support, accelerating time-to-market.
With Toradex’s Linux support for SMARC, developers get a scalable, secure, and high-performance solution for industrial, medical, and AI-driven applications.
Do you have a specific project or application in mind where you're considering SMARC? We can help with Free Compatibility Check and help you with quick time-to-market
For more information: https://www.toradex.com/computer-on-modules/smarc-arm-family
Spark is a powerhouse for large datasets, but when it comes to smaller data workloads, its overhead can sometimes slow things down. What if you could achieve high performance and efficiency without the need for Spark?
At S&P Global Commodity Insights, having a complete view of global energy and commodities markets enables customers to make data-driven decisions with confidence and create long-term, sustainable value. 🌍
Explore delta-rs + CDC and how these open-source innovations power lightweight, high-performance data applications beyond Spark! 🚀
Mobile App Development Company in Saudi ArabiaSteve Jonas
EmizenTech is a globally recognized software development company, proudly serving businesses since 2013. With over 11+ years of industry experience and a team of 200+ skilled professionals, we have successfully delivered 1200+ projects across various sectors. As a leading Mobile App Development Company In Saudi Arabia we offer end-to-end solutions for iOS, Android, and cross-platform applications. Our apps are known for their user-friendly interfaces, scalability, high performance, and strong security features. We tailor each mobile application to meet the unique needs of different industries, ensuring a seamless user experience. EmizenTech is committed to turning your vision into a powerful digital product that drives growth, innovation, and long-term success in the competitive mobile landscape of Saudi Arabia.
How Can I use the AI Hype in my Business Context?Daniel Lehner
𝙄𝙨 𝘼𝙄 𝙟𝙪𝙨𝙩 𝙝𝙮𝙥𝙚? 𝙊𝙧 𝙞𝙨 𝙞𝙩 𝙩𝙝𝙚 𝙜𝙖𝙢𝙚 𝙘𝙝𝙖𝙣𝙜𝙚𝙧 𝙮𝙤𝙪𝙧 𝙗𝙪𝙨𝙞𝙣𝙚𝙨𝙨 𝙣𝙚𝙚𝙙𝙨?
Everyone’s talking about AI but is anyone really using it to create real value?
Most companies want to leverage AI. Few know 𝗵𝗼𝘄.
✅ What exactly should you ask to find real AI opportunities?
✅ Which AI techniques actually fit your business?
✅ Is your data even ready for AI?
If you’re not sure, you’re not alone. This is a condensed version of the slides I presented at a Linkedin webinar for Tecnovy on 28.04.2025.
What is Model Context Protocol(MCP) - The new technology for communication bw...Vishnu Singh Chundawat
The MCP (Model Context Protocol) is a framework designed to manage context and interaction within complex systems. This SlideShare presentation will provide a detailed overview of the MCP Model, its applications, and how it plays a crucial role in improving communication and decision-making in distributed systems. We will explore the key concepts behind the protocol, including the importance of context, data management, and how this model enhances system adaptability and responsiveness. Ideal for software developers, system architects, and IT professionals, this presentation will offer valuable insights into how the MCP Model can streamline workflows, improve efficiency, and create more intuitive systems for a wide range of use cases.
Technology Trends in 2025: AI and Big Data AnalyticsInData Labs
At InData Labs, we have been keeping an ear to the ground, looking out for AI-enabled digital transformation trends coming our way in 2025. Our report will provide a look into the technology landscape of the future, including:
-Artificial Intelligence Market Overview
-Strategies for AI Adoption in 2025
-Anticipated drivers of AI adoption and transformative technologies
-Benefits of AI and Big data for your business
-Tips on how to prepare your business for innovation
-AI and data privacy: Strategies for securing data privacy in AI models, etc.
Download your free copy nowand implement the key findings to improve your business.
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptxAnoop Ashok
In today's fast-paced retail environment, efficiency is key. Every minute counts, and every penny matters. One tool that can significantly boost your store's efficiency is a well-executed planogram. These visual merchandising blueprints not only enhance store layouts but also save time and money in the process.
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...Noah Loul
Artificial intelligence is changing how businesses operate. Companies are using AI agents to automate tasks, reduce time spent on repetitive work, and focus more on high-value activities. Noah Loul, an AI strategist and entrepreneur, has helped dozens of companies streamline their operations using smart automation. He believes AI agents aren't just tools—they're workers that take on repeatable tasks so your human team can focus on what matters. If you want to reduce time waste and increase output, AI agents are the next move.
Andrew Marnell: Transforming Business Strategy Through Data-Driven InsightsAndrew Marnell
With expertise in data architecture, performance tracking, and revenue forecasting, Andrew Marnell plays a vital role in aligning business strategies with data insights. Andrew Marnell’s ability to lead cross-functional teams ensures businesses achieve sustainable growth and operational excellence.
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep DiveScyllaDB
Want to learn practical tips for designing systems that can scale efficiently without compromising speed?
Join us for a workshop where we’ll address these challenges head-on and explore how to architect low-latency systems using Rust. During this free interactive workshop oriented for developers, engineers, and architects, we’ll cover how Rust’s unique language features and the Tokio async runtime enable high-performance application development.
As you explore key principles of designing low-latency systems with Rust, you will learn how to:
- Create and compile a real-world app with Rust
- Connect the application to ScyllaDB (NoSQL data store)
- Negotiate tradeoffs related to data modeling and querying
- Manage and monitor the database for consistently low latencies
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungenpanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-nomad-web-best-practices-und-verwaltung-von-multiuser-umgebungen/
HCL Nomad Web wird als die nächste Generation des HCL Notes-Clients gefeiert und bietet zahlreiche Vorteile, wie die Beseitigung des Bedarfs an Paketierung, Verteilung und Installation. Nomad Web-Client-Updates werden “automatisch” im Hintergrund installiert, was den administrativen Aufwand im Vergleich zu traditionellen HCL Notes-Clients erheblich reduziert. Allerdings stellt die Fehlerbehebung in Nomad Web im Vergleich zum Notes-Client einzigartige Herausforderungen dar.
Begleiten Sie Christoph und Marc, während sie demonstrieren, wie der Fehlerbehebungsprozess in HCL Nomad Web vereinfacht werden kann, um eine reibungslose und effiziente Benutzererfahrung zu gewährleisten.
In diesem Webinar werden wir effektive Strategien zur Diagnose und Lösung häufiger Probleme in HCL Nomad Web untersuchen, einschließlich
- Zugriff auf die Konsole
- Auffinden und Interpretieren von Protokolldateien
- Zugriff auf den Datenordner im Cache des Browsers (unter Verwendung von OPFS)
- Verständnis der Unterschiede zwischen Einzel- und Mehrbenutzerszenarien
- Nutzung der Client Clocking-Funktion
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptxJustin Reock
Building 10x Organizations with Modern Productivity Metrics
10x developers may be a myth, but 10x organizations are very real, as proven by the influential study performed in the 1980s, ‘The Coding War Games.’
Right now, here in early 2025, we seem to be experiencing YAPP (Yet Another Productivity Philosophy), and that philosophy is converging on developer experience. It seems that with every new method we invent for the delivery of products, whether physical or virtual, we reinvent productivity philosophies to go alongside them.
But which of these approaches actually work? DORA? SPACE? DevEx? What should we invest in and create urgency behind today, so that we don’t find ourselves having the same discussion again in a decade?
Book industry standards are evolving rapidly. In the first part of this session, we’ll share an overview of key developments from 2024 and the early months of 2025. Then, BookNet’s resident standards expert, Tom Richardson, and CEO, Lauren Stewart, have a forward-looking conversation about what’s next.
Link to recording, presentation slides, and accompanying resource: https://bnctechforum.ca/sessions/standardsgoals-for-2025-standards-certification-roundup/
Presented by BookNet Canada on May 6, 2025 with support from the Department of Canadian Heritage.
Complete Guide to Advanced Logistics Management Software in Riyadh.pdfSoftware Company
Explore the benefits and features of advanced logistics management software for businesses in Riyadh. This guide delves into the latest technologies, from real-time tracking and route optimization to warehouse management and inventory control, helping businesses streamline their logistics operations and reduce costs. Learn how implementing the right software solution can enhance efficiency, improve customer satisfaction, and provide a competitive edge in the growing logistics sector of Riyadh.
2. being dangerous with Twig
A 5-step guide to using Twig – the fast, secure and
extensible PHP templating engine – to create clean
template code, leverage powerful filters, make your designers
write you love letters, write template functions that don't clog up your
global PHP namespace, take advantage of true template inheritance, hang out with
Django programmers and be able to talk template syntax, enjoy true and non- invasive
output escaping, have more time for your family, control whitespace, add global
variables to all templates, stop lying when you try to tell yourself that <?php echo looks better than a
simple {{, use the fancy for-else control, Rock some macros – little reusable code functions, do awesome stuff like “{% if i is divisibleby 2 %}”,
mediate in the simplicity of your templates and drink more green tea, sandbox your template and whitelist capabilities – allowing Twig to be used in a CMS,
take advantage of the fact that all templates compile to PHP classes that can extend a base class of your choosing, impress your friends by changing the print tag from
{{ var }} to [all-your-base] var [are-belong-to-us], confuse the guy next to you by changing “is” and “is not” to mean the opposite things and convince him that he's misunderstood
how logical expressions are used in programming languages all along, create a custom tag that takes the body of its block and tweets it,
write templates the expresses presentation and not program logic.
Ryan Weaver
Symfony Live 2011
4. iostudio: flying the symfony flag
●
Advertising & Integrated Marketing Solutions
• coming to you from
» Nashville, TN
» Washington, D.C.
• 150 employees
• and we're hiring!
8. Template engines
A template engine allows you to render a
presentation (HTML, XML, etc) via a template
in a controlled environment
It should allow special functionality that
makes creating templates easier (helpers,
template inheritance, etc)
11. PHP templating woes
» rendering template files is a hack: an include
statement with output-buffering control
» no or faked template inheritance
» no isolation: PHP templates suck in any global
variables or functions available
12. we need the brevity
of templates
with the isolation of
object-oriented
programming
13. so give me some Twiggy pudding
Twig is: Twig offers:
» fast » true inheritance
» flexible » real output escaping
» concise » tons of filters
» secure » custom tags
» fully-featured » great documentation
» Extensible » global variables
» designer-friendly » the “for-else” control
http://www.twig-project.org
14. Twig is concise
and each template
compiles to an actual
PHP object
24. Twig's three tags
Twig parses just three simple tags:
» comment tag
» print tag
» block tag
25. a. do nothing (comment tags)
{# comment #}
» totally ignored when rendered
26. b. say something (print tags)
{{ 'print me!' }}
» prints the given expression
» think “<?php echo”
» If you're ultimately printing something, use
this tag
27. c. do something (block tags)
{% set foo = 'inside a block tag' %}
» used mostly for control-flow statements like if, for,
include and block
» can have beginning and end tags
» if you're *doing* something and not *printing*
something, use this tag
28. Twig's three tags
» do nothing: {# comment tag #}
» say something: {{ print tag }}
» do something: {% block tag %}
it's just that simple
41. the test...
» a template that displays a list of “widgets” in
odd-even rows
» render tags and other info about each widget
» create basic, clean pagination
45. filter to title-case
the widget name
filters to strip tags
and shorten the
widget's description
46. your presenter is lying to you...
» the “truncate” filter isn't part of Twig, but
is available via a repository of extensions
» Everything in Twig is loaded via an Extension
(even the core stuff)
» Extensions are easy to use and create – we'll
prove it later
* https://github.com/fabpot/Twig-extensions
48. Twig function cycles through
the given array items
Special variable available inside
all “for” loops.
The “loop” variable knows other
tricks like “loop.last” and
“loop.revindex”
54. function returns a positive
radius of numbers around the
center (e.g. 3, 4, 5, 6, 7)
the awesome loop variable tells us
when we're in the last iteration
55. the audacity: your speaker just lied again
» but.... the “radius” function doesn't actually
exist in Twig.
but since it's pretty handy, let's create it!
60. step 2: tell Twig about the extension (Symfony2)
* don't forget to import this file from your
application's configuration (i.e. app/config/config.yml)
62. step 4: Celebrate!!!
* buy a round of drinks
* watch the sun set
* ask a cute stranger out to dinner
63. I want more!
ok great – do some reading!
» http://www.twig-project.org/doc/advanced.html
» http://www.twig-project.org/doc/extensions.html
seriously – the Twig docs are quite excellent
65. screw with the Twig syntax
» because Twig is totally sandboxed (i.e. you
control exactly what can and cannot be done
inside a template, Twig is a perfect fit for a CMS.
» and if Twig's syntax scares your clients... change it!
67. cool, what about
debugging?
a debug tag ships with
the twig-extensions
71. there's much much more
» inheritance name can be:
* an item on an array
* property on an object
» macros (reusable code bits) * getName()
» subscripts
or you can force it to
*just* fetch “name”
as an array item
72. Twig, he's a people-person
» Twig loves contributions, so *get involved*!
» https://github.com/fabpot/twig
» https://github.com/fabpot/twig-extensions
» http://groups.google.com/group/twig-users
73. The Symfony documentation wants you!
» The Symfony2 documentation is a community effort
» The best way as a beginner to get involved
immediately!
» Talk to me!!!
74. thank you
Ryan Weaver
iostudio
@weaverryan
www.thatsquality.com
ryan [at] thatsquality.com
*do* reach out to me – i'd love to talk nerd with you
comments, feedback, questions
http://joind.in/2765