A practical step-by-step guide to Git, taking you through each phase of a project and explaining the use of Git at each step of the development process. Expect lots of how-to, but also some how-not-to, to avoid going down the wrong path.
This document discusses integrating test automation and code coverage for web service applications. It introduces Postman for calling web services and testing responses, and Jenkins for build automation and tracking test results over time. It then demonstrates setting up a test automation workflow using these tools on a sample Laravel application, including starting and stopping coverage collection, running tests from Postman and PHPUnit, and merging the results. Some best practices and philosophies around test automation and code coverage are also discussed.
This document summarizes and compares Ruby HTTP client libraries. It discusses the sync and async APIs of 16 libraries including Net::HTTP, HTTPClient, and Faraday. It covers their compatibility, supported features like keep-alive connections, and performance based on benchmarks. The document recommends libraries based on priorities like speed, HTML handling, API clients, and SSL support. It encourages readers to check the detailed feature matrix and report any errors found.
This document provides an overview of the Tornado web server and summarizes its internals. It begins with an introduction to Tornado, describing it as a scalable, non-blocking web server and framework written in Python. It then outlines the main Tornado modules and discusses sockets, I/O monitoring using select, poll and epoll, and how Tornado sets up its server loop and handles requests.
This document discusses how Groovy enables clean code through features like native JSON support, builders for JSON and markup, checked exceptions, default imports, AST transformations, extension modules, and scripts. Groovy avoids verbosity through features like built-in reader classes and meta-programming capabilities like registered meta-methods that allow overriding core behaviors.
Tornado is a non-blocking light-weight web server and framework. There's been many introductory talks about it, and it's time to look deeper into it: not just what Tornado does, but how it does it and what can we learn from it when designing our own concurrent systems.
In this talk I go over the following topics. I cover them in two parts: first I present how to use a certain feature or approach in our applications; then, I dig into Tornado's source code to see how it really works.
- Getting Started: quickly get a simple Tornado application up and running. We'll keep digging into, changing and poking this Application for most of the talk.
- An Application Listens: what an Application is, how does Tornado start it and how does it process its requests.
- Application and IOLoop: we'll look at how the IOLoop receives the connections from the users and passes them on to the Applications.
- Scheduled Tasks: we'll see how to schedule tasks and how the IOLoop will run them.
- Generators: we'll learn to use generators to handle the responses of our asynchronous calls, and how they work with the IOLoop.
Advanced:
- Websockets: how to use them and how they work.
- IOStream: how do Tornado's non-blocking sockets work.
- Database: how to use non-blocking sockets to connect to databases.
- Process: how Tornado works with multiple processes.
I presented this talk at Europython 2012 and PyGrunn 2012.
Code examples: https://bitbucket.org/grimborg/tornado-in-depth/src/tip/examples/
Tornado is a Python web framework and asynchronous networking library. It is a scalable, non-blocking web server that allows applications to handle multiple requests simultaneously using a single thread. Some key features include lightweight and fast templates, asynchronous request handlers, and integrations with databases, caches and other services. Tornado is best suited for building real-time web services and can be used alongside other front-end web servers.
This document discusses the Tornado web server framework. It provides an overview of Tornado, including that it is a non-blocking and scalable web server that was used by FriendFeed and is now open-sourced by Facebook. It describes Tornado's architecture, which uses an IOLoop and callbacks instead of threads to remain asynchronous and non-blocking. An example "Hello World" application in Tornado is also provided. Performance comparisons show Tornado outperforming other frameworks like Node.js and Twisted.
The document discusses designing a Perl module called Net::AWS::Glacier for interacting with Amazon Glacier, a cloud storage service. It proposes a two-level design with a low-level API module that mirrors the Glacier API and a high-level module that provides a more object-oriented interface. The high-level module would use a "Vault" object to manage downloads and access to archive data, hiding low-level details like iterating through job lists. An inheritance-based approach is described where derived classes can customize initialization while reusing a common object structure and initialization logic.
This document provides an overview of using asyncio for asynchronous programming in Python. It discusses what asyncio is and some key concepts like coroutines, the event loop, and the await keyword. It then demonstrates several examples of using asyncio to run asynchronous functions with coroutines, gather futures, handle synchronous code, and iterate over async iterators/generators. Common asyncio packages for web applications, databases, and networking are also mentioned.
The document discusses different approaches to web programming and asynchronous event-driven architectures. It introduces Tornado, an asynchronous Python web framework that uses non-blocking techniques like coroutines and cooperative multitasking to handle thousands of simultaneous connections efficiently using a single thread. Tornado allows building real-time web applications and APIs that can update clients in real-time using techniques like websockets and long polling.
Composer - Package Management for PHP. Silver Bullet?Kirill Chebunin
Modern package management for PHP projects.
http://packagist.org/
http://github.com/composer/composer
Shared Object images in Docker: What you need is what you want.Workhorse Computing
Docker images require appropriate shared object files (".so") to run. Rather than assume Ubuntu has the correct lib's, use ldd to get a list and install the ones you know you need. This can reduce the underlying images from GB to a few MB.
Tornado is a Python web framework that can handle high concurrency loads. The document discusses using Tornado and Nginx together to handle 17,000 requests per second. It provides examples of building simple and secure cookie-based authentication in Tornado as well as handling blocking vs non-blocking requests to external APIs. The document also briefly mentions ideas for further optimizations like templates, project structure, and pre-rendering frequently updated data.
Tornado is a Python web framework and asynchronous networking library. It is non-blocking and scalable, using epoll and other low-level I/O modules. Tornado includes modules for HTTP handling, templates, authentication, and more. It was originally developed at FriendFeed and later open sourced by Facebook. Example usages include a simple "Hello World" app, handling requests and responses, using cookies and secure cookies, internationalization, and asynchronous database requests.
Keep hearing about Plack and PSGI, and not really sure what they're for, and why they're popular? Maybe you're using Plack at work, and you're still copying-and-pasting `builder` lines in to your code without really knowing what's going on? What's the relationship between Plack, PSGI, and CGI? Plack from first principles works up from how CGI works, the evolution that PSGI represents, and how Plack provides a user-friendly layer on top of that.
This document discusses various topics related to programming efficiently in Groovy and Grails, including:
- Organizing classes into packages in Eclipse and importing dependencies
- The structure of a Grails project and where different types of code belong
- Automatically and manually generating controllers and views in Grails
- Using log4j for logging instead of println statements
- Examples of useful Grails plugins
- Tips for choosing and using Grails plugins
- Maintaining a clean coding style
Les slides du Tools in Action que j'ai donné à Devoxx France 2019.
Le JDK est open source et son développement aussi. L'ensemble des nouveautés vit sur des branches Mercurial qui peuvent être téléchargées et compilées à la demande. Cela permet de jouer avec des fonctionnalités encore en chantier, de regarder comment les nouvelles syntaxes fonctionneront, bref, de jouer avec un JDK du futur, qui n'existera peut-être jamais. L'objet de ce tools in action est simple : montrer comment tout ceci fonctionne, de l'installation d'une machine Ubuntu à l'exécution d'un JDK recompilé maison.
Real-Time Web Apps & Symfony. What are your options?Phil Leggetter
This document discusses options for building real-time web applications with Symfony. It covers existing solutions like ReactPHP, Ratchet, Faye and Pusher that provide real-time functionality. It also considers factors like programming language, application functionality, architecture, and whether to use a self-hosted or hosted solution. Example architectures are presented using Symfony with Ratchet and Faye. The document aims to help developers choose the right real-time solution for their needs.
The document discusses the state and future of Puppet at GitHub. It describes how GitHub has been using Puppet for over 5 years to manage over 600 nodes, open sourcing many Puppet modules. It also outlines best practices for writing, testing, and deploying Puppet code used at GitHub, including tools like Puppet Lint, RSpec Puppet, and continuous integration/deployment. The future of Puppet at GitHub includes upgrading to Puppet 3.x and Ruby 2.0, integrating more with PuppetDB and their GPanel configuration tool, and potentially using MCollective.
Webinar: Building Your First App in Node.jsMongoDB
Node.js is one of the fastest growing and most popular application frameworks today. It offers a set of features that is both useful and challenging to modern web and back-end developer. Most engineers think of it as a cool, simple, and fast application framework that makes iterative development easier.
In this webinar we will talk about how Node.js and MongoDB interact, discuss the best ways to get started, and walk through how to use MongoDB and Node.js in a set of use cases.
Composer has triggered a renaissance in the PHP community, it has changed the way we deal with other people’s code and it has changed the way we share our code. We are all slowly moving to using Composer, from Wordpress to Joomla and Drupal and frameworks in between. But many of us mistreat composer, follow outdated practices or simply lack a few tricks. In this session i’ll get you the low down on how to use composer the right way.
Going native with less coupling: Dependency Injection in C++Daniele Pallastrelli
Slideshow from C++ Meetup Bologna 2014, about the central role of Dependency Injection in OO software.
The slide deck contains detailed explanation about dependency injection in general and C++ frameworks in particular.
This document provides an overview of advanced Git concepts, including:
- Git architecture with working copy, staging index, local repository, and remote repository
- Common Git commands like add, commit, push, pull, and their purposes
- Git configuration settings for user name, email, and formatting preferences
- Creating and cloning repositories locally and remotely
- Using branches to work on features independently and merging them together
- Tracking other developers' repositories as remotes to collaborate on work
Tornado is a Python web framework and asynchronous networking library. It is a scalable, non-blocking web server that allows applications to handle multiple requests simultaneously using a single thread. Some key features include lightweight and fast templates, asynchronous request handlers, and integrations with databases, caches and other services. Tornado is best suited for building real-time web services and can be used alongside other front-end web servers.
This document discusses the Tornado web server framework. It provides an overview of Tornado, including that it is a non-blocking and scalable web server that was used by FriendFeed and is now open-sourced by Facebook. It describes Tornado's architecture, which uses an IOLoop and callbacks instead of threads to remain asynchronous and non-blocking. An example "Hello World" application in Tornado is also provided. Performance comparisons show Tornado outperforming other frameworks like Node.js and Twisted.
The document discusses designing a Perl module called Net::AWS::Glacier for interacting with Amazon Glacier, a cloud storage service. It proposes a two-level design with a low-level API module that mirrors the Glacier API and a high-level module that provides a more object-oriented interface. The high-level module would use a "Vault" object to manage downloads and access to archive data, hiding low-level details like iterating through job lists. An inheritance-based approach is described where derived classes can customize initialization while reusing a common object structure and initialization logic.
This document provides an overview of using asyncio for asynchronous programming in Python. It discusses what asyncio is and some key concepts like coroutines, the event loop, and the await keyword. It then demonstrates several examples of using asyncio to run asynchronous functions with coroutines, gather futures, handle synchronous code, and iterate over async iterators/generators. Common asyncio packages for web applications, databases, and networking are also mentioned.
The document discusses different approaches to web programming and asynchronous event-driven architectures. It introduces Tornado, an asynchronous Python web framework that uses non-blocking techniques like coroutines and cooperative multitasking to handle thousands of simultaneous connections efficiently using a single thread. Tornado allows building real-time web applications and APIs that can update clients in real-time using techniques like websockets and long polling.
Composer - Package Management for PHP. Silver Bullet?Kirill Chebunin
Modern package management for PHP projects.
http://packagist.org/
http://github.com/composer/composer
Shared Object images in Docker: What you need is what you want.Workhorse Computing
Docker images require appropriate shared object files (".so") to run. Rather than assume Ubuntu has the correct lib's, use ldd to get a list and install the ones you know you need. This can reduce the underlying images from GB to a few MB.
Tornado is a Python web framework that can handle high concurrency loads. The document discusses using Tornado and Nginx together to handle 17,000 requests per second. It provides examples of building simple and secure cookie-based authentication in Tornado as well as handling blocking vs non-blocking requests to external APIs. The document also briefly mentions ideas for further optimizations like templates, project structure, and pre-rendering frequently updated data.
Tornado is a Python web framework and asynchronous networking library. It is non-blocking and scalable, using epoll and other low-level I/O modules. Tornado includes modules for HTTP handling, templates, authentication, and more. It was originally developed at FriendFeed and later open sourced by Facebook. Example usages include a simple "Hello World" app, handling requests and responses, using cookies and secure cookies, internationalization, and asynchronous database requests.
Keep hearing about Plack and PSGI, and not really sure what they're for, and why they're popular? Maybe you're using Plack at work, and you're still copying-and-pasting `builder` lines in to your code without really knowing what's going on? What's the relationship between Plack, PSGI, and CGI? Plack from first principles works up from how CGI works, the evolution that PSGI represents, and how Plack provides a user-friendly layer on top of that.
This document discusses various topics related to programming efficiently in Groovy and Grails, including:
- Organizing classes into packages in Eclipse and importing dependencies
- The structure of a Grails project and where different types of code belong
- Automatically and manually generating controllers and views in Grails
- Using log4j for logging instead of println statements
- Examples of useful Grails plugins
- Tips for choosing and using Grails plugins
- Maintaining a clean coding style
Les slides du Tools in Action que j'ai donné à Devoxx France 2019.
Le JDK est open source et son développement aussi. L'ensemble des nouveautés vit sur des branches Mercurial qui peuvent être téléchargées et compilées à la demande. Cela permet de jouer avec des fonctionnalités encore en chantier, de regarder comment les nouvelles syntaxes fonctionneront, bref, de jouer avec un JDK du futur, qui n'existera peut-être jamais. L'objet de ce tools in action est simple : montrer comment tout ceci fonctionne, de l'installation d'une machine Ubuntu à l'exécution d'un JDK recompilé maison.
Real-Time Web Apps & Symfony. What are your options?Phil Leggetter
This document discusses options for building real-time web applications with Symfony. It covers existing solutions like ReactPHP, Ratchet, Faye and Pusher that provide real-time functionality. It also considers factors like programming language, application functionality, architecture, and whether to use a self-hosted or hosted solution. Example architectures are presented using Symfony with Ratchet and Faye. The document aims to help developers choose the right real-time solution for their needs.
The document discusses the state and future of Puppet at GitHub. It describes how GitHub has been using Puppet for over 5 years to manage over 600 nodes, open sourcing many Puppet modules. It also outlines best practices for writing, testing, and deploying Puppet code used at GitHub, including tools like Puppet Lint, RSpec Puppet, and continuous integration/deployment. The future of Puppet at GitHub includes upgrading to Puppet 3.x and Ruby 2.0, integrating more with PuppetDB and their GPanel configuration tool, and potentially using MCollective.
Webinar: Building Your First App in Node.jsMongoDB
Node.js is one of the fastest growing and most popular application frameworks today. It offers a set of features that is both useful and challenging to modern web and back-end developer. Most engineers think of it as a cool, simple, and fast application framework that makes iterative development easier.
In this webinar we will talk about how Node.js and MongoDB interact, discuss the best ways to get started, and walk through how to use MongoDB and Node.js in a set of use cases.
Composer has triggered a renaissance in the PHP community, it has changed the way we deal with other people’s code and it has changed the way we share our code. We are all slowly moving to using Composer, from Wordpress to Joomla and Drupal and frameworks in between. But many of us mistreat composer, follow outdated practices or simply lack a few tricks. In this session i’ll get you the low down on how to use composer the right way.
Going native with less coupling: Dependency Injection in C++Daniele Pallastrelli
Slideshow from C++ Meetup Bologna 2014, about the central role of Dependency Injection in OO software.
The slide deck contains detailed explanation about dependency injection in general and C++ frameworks in particular.
This document provides an overview of advanced Git concepts, including:
- Git architecture with working copy, staging index, local repository, and remote repository
- Common Git commands like add, commit, push, pull, and their purposes
- Git configuration settings for user name, email, and formatting preferences
- Creating and cloning repositories locally and remotely
- Using branches to work on features independently and merging them together
- Tracking other developers' repositories as remotes to collaborate on work
In May 2012, DSpace migrated from the centralized source code management system SVN to Github. While many participants in the community still regard this migration as a technical “under the hood” evolution, it comes with important benefits for repository managers and developers.
This workshop presentation features:
• General, non-DSpace related Github basics
• How DSpace repository managers and committers use github
• A few must know details about the underlying Git protocol
The bulk of the workshop will be spent in guiding the participants with hands-on parts:
• Creating a Github account
• Forking their own DSpace repository
• Installing Git on their local laptops
• Using the Github Windows or Mac client for moving changes from their local machine back to Github
Participant Profile
This workshop is suited for both repository managers and developers. No prior programming or version control management is required. As a consequences, this workshop will not bring anything new to seasoned developers if they are already experienced working with Git and Github.
Format
The ideal format would be a one hour session with around 20-50 attendees in a room where they can work on their own laptops. However, the content can be tuned to fit any format.
This document provides an overview of Git and how to use it. It discusses version control systems and how distributed version control systems like Git work. It explains how Git was created by Linus Torvalds for Linux kernel development and why it gained popularity due to its speed and efficiency. The document then covers Git basics like setup, commits, branches and workflows. It also introduces tools for using Git in Eclipse and GitLab for code hosting and collaboration.
In this slide, I have a fully explanation about what is Git and why use it. I also give a fully explanation about the basic command that mostly use with git.
GIT is a free and open source distributed version control system that allows users to work locally and share code remotely. It allows creating branches to work on features separately, and merging them together easily. The basic workflow involves initializing a local repository, making commits by adding and saving files, and pushing changes to remote repositories like GitHub to share code. Users can then clone repositories from GitHub to contribute code through pull requests.
This document outlines the steps to set up Git with Bitbucket on Linux, create a repository, commit and push code, and merge branches. The key steps are:
1. Install Git and configure username and email.
2. Create a repository on Bitbucket and copy the remote repository URL.
3. Initialize a local Git repository, add files, commit changes, and push the code to the remote Bitbucket repository.
4. Pull changes from the remote repository before making new commits to keep the local codebase updated.
This document outlines the steps to set up Git with Bitbucket on Linux, create a repository, commit and push code, and merge branches. The key steps are:
1. Install Git and configure username and email.
2. Create a repository on Bitbucket and copy the remote repository URL.
3. Initialize a local Git repository, add and commit files, and push the code to Bitbucket.
4. Pull changes from the remote regularly and use Git commands like merge, rebase, and log to manage branches.
The document provides an overview of Git, including what it is, its benefits over centralized version control systems, basic workflows and commands, branching, tagging, and best practices. Git is an open source distributed version control system designed to manage source code and other files. It allows users to work offline and commit changes incrementally to a local repository before pushing to a remote server.
Git Bash is a command line interface that allows you to interact with Git, a version control system that tracks changes in your code and lets you collaborate with other developers. Git Bash is based on a popular Unix shell called Bash, and it works on Windows operating systems. With Git Bash, you can create and manage Git repositories, stage and commit your code, push and pull from remote servers, create and merge branches, and much more. In this article, I will give you an introduction to Git Bash and show you how to use some basic commands. ¹²³
المصدر: محادثة مع Bing، 29/9/2023
(1) Git bash: Definition, commands, & getting started | Atlassian. https://www.atlassian.com/git/tutorials/git-bash.
(2) An introduction to Git: what it is, and how to use it - freeCodeCamp.org. https://www.freecodecamp.org/news/what-is-git-and-how-to-use-it-c341b049ae61/.
(3) Introduction to Git Bash: A Beginner's Guide to Using the Command Line .... https://marketsplash.com/tutorials/git/git-bash/.
(4) undefined. https://git-scm.com/book/en/v2/Getting-Started-Installing-Git.
Introduction to GitHub, Open Source and Tech ArticlePRIYATHAMDARISI
The document provides an introduction to Git and GitHub. It begins with an agenda that outlines topics like commands, a demo, open source, and conclusion. It then discusses what Git is, the need to learn version control, and demonstrates some basic Git commands. It also covers topics like open source opportunities and general discussions.
An introduction to git, assuming very little. I introduce some core concepts, the commands used to work with them, and briefly touch on Github flow (interpreted in quite a specific way) and recap the commands used for that.
The examples could be used as exercises for a class learning git live, with a bit of fleshing out.
This document discusses source code management (SCM) systems and the Git SCM system. It explains that SCM systems are used to track changes to source code files and maintain versions. Git is an example of a distributed SCM that stores project files and versions locally, allows cloning repositories, and supports branching and merging. The document provides instructions for basic Git commands and configuring Git for Unity projects.
Github - Git Training Slides: FoundationsLee Hanxue
Slide deck with detailed step breakdown that explains how git works, together with simple examples that you can try out yourself. Slides originated from http://teach.github.com/articles/course-slides/
Author: https://twitter.com/matthewmccull
Git is a version control system that records changes to files over time. It was created by Linus Torvalds for development of the Linux kernel and is now widely used by software developers. Some key points about Git include that it is distributed, allows non-linear development through branches, and can handle large projects with millions of lines of code and thousands of commits from hundreds or thousands of contributors. The basic Git workflow involves initializing a repository, making changes, staging files, committing changes to the local repository, and pushing commits to a remote repository. Common commands include git init, git add, git commit, git push, git pull, and git log.
Beyond php - it's not (just) about the codeWim Godden
Most PHP developers focus on writing code. But creating Web applications is about much more than just wrting PHP. Take a step outside the PHP cocoon and into the big PHP ecosphere to find out how small code changes can make a world of difference on servers and network. This talk is an eye-opener for developers who spend over 80% of their time coding, debugging and testing.
Wim Godden discusses how to bring bright ideas to life by first determining if an idea is truly original and if there is market demand. He recommends building small initially to get fast feedback and adding features step-by-step. Talking to potential customers can provide feedback but be careful not to share every detail. Leverage existing services like APIs and consider scalability from the start. Financial projections are important, and success may lead to building on the idea through APIs, plugins or white labels. Keep iterating ideas and be willing to let others take over if it does not work out.
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.
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.
With more and more sites falling victim to data theft, you've probably read the list of things (not) to do to write secure code. But what else should you do to make sure your code and the rest of your web stack is secure ? In this tutorial we'll go through the basic and more advanced techniques of securing your web and database servers, securing your backend PHP code and your frontend javascript code. We'll also look at how you can build code that detects and blocks intrusion attempts and a bunch of other tips and tricks to make sure your customer data stays secure.
With more and more sites falling victim to data theft, you've probably read the list of things (not) to do to write secure code. But what else should you do to make sure your code and the rest of your web stack is secure ? In this tutorial we'll go through the basic and more advanced techniques of securing your web and database servers, securing your backend PHP code and your frontend javascript code. We'll also look at how you can build code that detects and blocks intrusion attempts and a bunch of other tips and tricks to make sure your customer data stays secure.
The time of static or dynamically generated sites is long gone. Non-stop interaction with users is the new normal. However, polling with Ajax requests is processor intensive and cumbersome. Websockets allow you to interact with users in real-time without increasing system load. We'll go through the basics and see all the different options, illustrated with live examples of how and when to use it, as well as when not to use it.
Who would have thought putting 140 charachter messages about one's life online or having a virtual farm game could ever be popular ? Then again, many of us have those weird (but sometimes brilliant) ideas.
But no matter how incredible your ideas might be, getting them launched successfully takes more than writing lots of php code, smacking a sleek design on it and dropping it on a server.
So what does it take ? Where do most ideas crashland and how can you avoid making the same mistakes and transform your ideas into reality ? We'll look at what steps are needed to make a service successful and sustainable.
Your app lives on the network - networking for web developersWim Godden
Our job might be to build web applications, but we can't build apps that rely on networking if we don't know how these networks and the big network that connects them all (this thing called the Internet) actually work.
I'll walk through the basics of networking, then dive a lot deeper (from TCP/UDP to IPv4/6, source/destination ports, sockets, DNS and even BGP).
Prepare for an eye-opener when you realize how much a typical app relies on all of these (and many more) working flawlessly... and how you can prepare your app for failure in the chain.
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.
The document discusses upgrading from PHP 5.x to PHP 7.x. It begins by explaining why upgrading is important for security, performance and compatibility reasons, as PHP 5.x reaches end of life. It then discusses how to upgrade, including new features in PHP 7.x like scalar type declarations and null coalescing operators, and removed/deprecated functions. It emphasizes automating the process using tools like PHPCompatibility to analyze code for compatibility issues across PHP versions. Upgrading in a staged, tested manner is recommended over postponing upgrades.
Beyond php - it's not (just) about the codeWim Godden
Most PHP developers focus on writing code. But creating Web applications is about much more than just wrting PHP. Take a step outside the PHP cocoon and into the big PHP ecosphere to find out how small code changes can make a world of difference on servers and network. This talk is an eye-opener for developers who spend over 80% of their time coding, debugging and testing.
With more and more sites falling victim to data theft, you've probably read the list of things (not) to do to write secure code. But what else should you do to make sure your code and the rest of your web stack is secure ? In this tutorial we'll go through the basic and more advanced techniques of securing your web and database servers, securing your backend PHP code and your frontend javascript code. We'll also look at how you can build code that detects and blocks intrusion attempts and a bunch of other tips and tricks to make sure your customer data stays secure.
The time of static or dynamically generated sites is long gone. Non-stop interaction with users is the new normal. However, polling with Ajax requests is processor intensive and cumbersome. Websockets allow you to interact with users in real-time without increasing system load. We'll go through the basics and see all the different options, illustrated with live examples of how and when to use it.
Your app lives on the network - networking for web developersWim Godden
Our job might be to build web applications, but we can't build apps that rely on networking if we don't know how these networks and the big network that connects them all (this thing called the Internet) actually work.
I'll walk through the basics of networking, then dive a lot deeper (from TCP/UDP to IPv4/6, source/destination ports, sockets, DNS and even BGP).
Prepare for an eye-opener when you realize how much a typical app relies on all of these (and many more) working flawlessly... and how you can prepare your app for failure in the chain.
With more and more sites falling victim to data theft, you've probably read the list of things (not) to do to write secure code. But what else should you do to make sure your code and the rest of your web stack is secure ? In this tutorial we'll go through the basic and more advanced techniques of securing your web and database servers, securing your backend PHP code and your frontend javascript code. We'll also look at how you can build code that detects and blocks intrusion attempts and a bunch of other tips and tricks to make sure your customer data stays secure.
With more and more sites falling victim to data theft, you've probably read the list of things (not) to do to write secure code. But what else should you do to make sure your code and the rest of your web stack is secure ? In this tutorial we'll go through the basic and more advanced techniques of securing your web and database servers, securing your backend PHP code and your frontend javascript code. We'll also look at how you can build code that detects and blocks intrusion attempts and a bunch of other tips and tricks to make sure your customer data stays secure.
This document discusses asynchronous PHP processing and libraries. It begins with an overview of synchronous vs asynchronous processing and blocking vs non-blocking I/O. It then reviews several approaches for asynchronous PHP including Pthreads, pcntl_fork, popen, curl_multi, and event loops with libraries like ReactPHP. ReactPHP is discussed in depth as an event-driven non-blocking I/O library that uses promises and streams for asynchronous operations. Examples are provided for asynchronous HTTP requests, DNS lookups, and a pub/sub application using ZeroMQ. Key points emphasized are that asynchronous code does not necessarily run faster and execution order is not guaranteed.
With more and more sites falling victim to data theft, you've probably read the list of things (not) to do to write secure code. But what else should you do to make sure your code and the rest of your web stack is secure ? In this tutorial we'll go through the basic and more advanced techniques of securing your web and database servers, securing your backend PHP code and your frontend javascript code. We'll also look at how you can build code that detects and blocks intrusion attempts and a bunch of other tips and tricks to make sure your customer data stays secure.
With more and more sites falling victim to data theft, you've probably read the list of things (not) to do to write secure code. But what else should you do to make sure your code and the rest of your web stack is secure ? In this tutorial we'll go through the basic and more advanced techniques of securing your web and database servers, securing your backend PHP code and your frontend javascript code. We'll also look at how you can build code that detects and blocks intrusion attempts and a bunch of other tips and tricks to make sure your customer data stays secure.
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! 🚀
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...TrustArc
Most consumers believe they’re making informed decisions about their personal data—adjusting privacy settings, blocking trackers, and opting out where they can. However, our new research reveals that while awareness is high, taking meaningful action is still lacking. On the corporate side, many organizations report strong policies for managing third-party data and consumer consent yet fall short when it comes to consistency, accountability and transparency.
This session will explore the research findings from TrustArc’s Privacy Pulse Survey, examining consumer attitudes toward personal data collection and practical suggestions for corporate practices around purchasing third-party data.
Attendees will learn:
- Consumer awareness around data brokers and what consumers are doing to limit data collection
- How businesses assess third-party vendors and their consent management operations
- Where business preparedness needs improvement
- What these trends mean for the future of privacy governance and public trust
This discussion is essential for privacy, risk, and compliance professionals who want to ground their strategies in current data and prepare for what’s next in the privacy landscape.
Special Meetup Edition - TDX Bengaluru Meetup #52.pptxshyamraj55
We’re bringing the TDX energy to our community with 2 power-packed sessions:
🛠️ Workshop: MuleSoft for Agentforce
Explore the new version of our hands-on workshop featuring the latest Topic Center and API Catalog updates.
📄 Talk: Power Up Document Processing
Dive into smart automation with MuleSoft IDP, NLP, and Einstein AI for intelligent document workflows.
Dev Dives: Automate and orchestrate your processes with UiPath MaestroUiPathCommunity
This session is designed to equip developers with the skills needed to build mission-critical, end-to-end processes that seamlessly orchestrate agents, people, and robots.
📕 Here's what you can expect:
- Modeling: Build end-to-end processes using BPMN.
- Implementing: Integrate agentic tasks, RPA, APIs, and advanced decisioning into processes.
- Operating: Control process instances with rewind, replay, pause, and stop functions.
- Monitoring: Use dashboards and embedded analytics for real-time insights into process instances.
This webinar is a must-attend for developers looking to enhance their agentic automation skills and orchestrate robust, mission-critical processes.
👨🏫 Speaker:
Andrei Vintila, Principal Product Manager @UiPath
This session streamed live on April 29, 2025, 16:00 CET.
Check out all our upcoming Dev Dives sessions at https://community.uipath.com/dev-dives-automation-developer-2025/.
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...SOFTTECHHUB
I started my online journey with several hosting services before stumbling upon Ai EngineHost. At first, the idea of paying one fee and getting lifetime access seemed too good to pass up. The platform is built on reliable US-based servers, ensuring your projects run at high speeds and remain safe. Let me take you step by step through its benefits and features as I explain why this hosting solution is a perfect fit for digital entrepreneurs.
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager APIUiPathCommunity
Join this UiPath Community Berlin meetup to explore the Orchestrator API, Swagger interface, and the Test Manager API. Learn how to leverage these tools to streamline automation, enhance testing, and integrate more efficiently with UiPath. Perfect for developers, testers, and automation enthusiasts!
📕 Agenda
Welcome & Introductions
Orchestrator API Overview
Exploring the Swagger Interface
Test Manager API Highlights
Streamlining Automation & Testing with APIs (Demo)
Q&A and Open Discussion
Perfect for developers, testers, and automation enthusiasts!
👉 Join our UiPath Community Berlin chapter: https://community.uipath.com/berlin/
This session streamed live on April 29, 2025, 18:00 CET.
Check out all our upcoming UiPath Community sessions at https://community.uipath.com/events/.
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.
This is the keynote of the Into the Box conference, highlighting the release of the BoxLang JVM language, its key enhancements, and its vision for the future.
Big Data Analytics 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.
Rock, Paper, Scissors: An Apex Map Learning JourneyLynda Kane
Slide Deck from Presentations to WITDevs (April 2021) and Cleveland Developer Group (6/28/2023) on using Rock, Paper, Scissors to learn the Map construct in Salesforce Apex development.
"Client Partnership — the Path to Exponential Growth for Companies Sized 50-5...Fwdays
Why the "more leads, more sales" approach is not a silver bullet for a company.
Common symptoms of an ineffective Client Partnership (CP).
Key reasons why CP fails.
Step-by-step roadmap for building this function (processes, roles, metrics).
Business outcomes of CP implementation based on examples of companies sized 50-500.
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdfAbi john
Analyze the growth of meme coins from mere online jokes to potential assets in the digital economy. Explore the community, culture, and utility as they elevate themselves to a new era in cryptocurrency.
Leading AI Innovation As A Product Manager - Michael JidaelMichael Jidael
Unlike traditional product management, AI product leadership requires new mental models, collaborative approaches, and new measurement frameworks. This presentation breaks down how Product Managers can successfully lead AI Innovation in today's rapidly evolving technology landscape. Drawing from practical experience and industry best practices, I shared frameworks, approaches, and mindset shifts essential for product leaders navigating the unique challenges of AI product development.
In this deck, you'll discover:
- What AI leadership means for product managers
- The fundamental paradigm shift required for AI product development.
- A framework for identifying high-value AI opportunities for your products.
- How to transition from user stories to AI learning loops and hypothesis-driven development.
- The essential AI product management framework for defining, developing, and deploying intelligence.
- Technical and business metrics that matter in AI product development.
- Strategies for effective collaboration with data science and engineering teams.
- Framework for handling AI's probabilistic nature and setting stakeholder expectations.
- A real-world case study demonstrating these principles in action.
- Practical next steps to begin your AI product leadership journey.
This presentation is essential for Product Managers, aspiring PMs, product leaders, innovators, and anyone interested in understanding how to successfully build and manage AI-powered products from idea to impact. The key takeaway is that leading AI products is about creating capabilities (intelligence) that continuously improve and deliver increasing value over time.
Learn the Basics of Agile Development: Your Step-by-Step GuideMarcel David
New to Agile? This step-by-step guide is your perfect starting point. "Learn the Basics of Agile Development" simplifies complex concepts, providing you with a clear understanding of how Agile can improve software development and project management. Discover the benefits of iterative work, team collaboration, and flexible planning.
Semantic Cultivators : The Critical Future Role to Enable AIartmondano
By 2026, AI agents will consume 10x more enterprise data than humans, but with none of the contextual understanding that prevents catastrophic misinterpretations.
12. Who am I ?
Wim Godden (@wimgtr)
Founder of Cu.be Solutions (http://cu.be)
Open Source developer since 1997
Developer of PHPCompatibility, OpenX, PHPConsistent, ...
Speaker at Open Source conferences
13. Who are you ?
Developers ?
CVS ?
SVN ?
TFS ?
Git ?
14. What is git ?
Git is a file system
with a Version Control System on top of it
16. What is git ?
Git is a file system
with a Version Control System on top of it
17. What is git ?
Git is a distributed file system
with a Version Control System on top of it
18. (Almost) everything is local
Clone = copy of entire repository
Work offline :
Perform a diff
View file history
Commit changes (!)
Create, merge or switch branches
etc.
Only push/pull are not local
19. (Almost) everything is immutable
Immutable = doesn't change
Once placed in git, it stays there
Even if you delete files
20. Differences with SVN
SVN keeps diffs between versions
Git keeps full snapshots
Commit #1
tree
author_info
parent
Tree
README.MD
Commit #2
tree
author_info
parent
Tree
README.MD
index.php
Commit #3
tree
author_info
parent
Tree
README.MD
LICENSE
index.php
21. Differences with SVN
SVN is centralized
↔ Git is distributed
An SVN commit → shared with everyone
↔ A Git commit is local
SVN has revision increments
↔ Git has SHA1 hashes to identify objects
(commits, trees, blobs, ...)
23. Basic git - .gitignore
Allows you to specify files to ignore
Can be specific to repository
Hint : set up a global .gitignore for :
thumbnail.dat
desktop.ini
.DS_Store
Your local editor's files
…
24. Create a repo
$ git init
$ tree .git
.git/
├── branches
├── config
├── description
├── HEAD
├── info
│ └── exclude
├── objects
│ ├── info
│ └── pack
└── refs
├── heads
└── tags
25. .git directory
config – Configuration file
refs/heads/... - branches
refs/tags/... - tags
refs/remotes/... - remotes
objects/... - the actual objects
HEAD – the current working space, points to one of branches
26. git clone
Creates a repository from an existing repository
git clone https://someplace.com/repo.git <somefolder>
Original repository is called 'origin'
→ This is called a 'remote'
30. git add
Add file in current state to the staging area
Can be new file
Can be modification
git add -A stages all
git add . stages new and modified, but no deletions
git add -u stages modified and deleted, but no new files
34. git commit
Creates a new version
Based on the staging area
Commits on local repository only
Commit #1
tree
author_info
parent
Tree
README.MD
Commit #2
tree
author_info
parent : #1
Tree
README.MD
index.php
Commit #3
tree
author_info
parent : #2
Tree
README.MD
LICENSE
index.php
HEAD
35. git log
Shows each commit with SHA1 hash
→ hash can be used with other commands
-p gives a diff view
36. git diff
No params : default diff output
git diff --staged : diff with what's been staged
38. Working with remotes
git push
→ Send locally commited changes to the remote repository
git fetch/pull
→ Retrieve changes from the remote repository
39. Fetch, merge and pull
Remote originLocal repository
C1 C2
origin/master
1 2
C1 C2
origin/master
C3
master HEAD
master HEAD
1
C1 C2 C3
master HEAD
2
3
C1 C2
master
C3C2
origin/master 3
40. git fetch + merge vs git pull
git fetch : fetches information from remote into local repository
but nothing more
git merge : merges changes that were fetched
needs a source parameter
merges TO wherever HEAD is pointing to :
git merge origin/master
git pull : does both at the same time
41. Branches
Branches are separate full-blown versions of your code
Default branch = master
Which branches are there ? → git branch
Create a new branch → git branch <branchname>
Switch to branch → git checkout <branchname>
Create + switch to new branch → git checkout -b <branchname>
Show branch activity : git show-branch
Delete a branch : git branch -d <branchname>
43. Conflicting change
git merge <branchname> → conflict
git status → shows conflicted files
Resolve conflict
git commit -a → tells git conflict was resolved
44. Contributing to a Github project
Github is built on Git, so...
Clone, commit, pull, merge, push are all the same
But :
You need to fork the project first
Changes to the main repository must be requested through a
pull request
46. Creating a fork
Will create a complete copy (not a clone) of the project
Including master, all branches, all tags, all commits, etc.
i.e. confoo/some-repo → <your_github_username>/some-repo
You can do anything in it...
But please don't if you intend to contribute back...
Which you should ofcourse ;-)
47. Next : create a branch for your feature/bugfix
Why ?
Work on multiple features/fixes at same time
Experiment without damaging your master
master should always be a fully functioning, deployable version
Name the branch well
Don't : bugfix
Do : bugfix_issue_26_fatal_error
48. Next : add/change code and commit
Don't forget unit tests, integration tests, …
Make your commit message descriptive
Don't : fixed it
Do : added real-time updates on dashboard
Each commit should contain a single feature or bugfix
→ Allows project maintainers to add small blocks of code
→ Easier than adding 50 features/bugfixes
→ Easier to test
49. Next : create a Pull Request (PR)
When you want to contribute
Partial code = OK
→ But only if you want feedback
Otherwise :
Finish your code
Make sure you have unit tests
Be descriptive in your pull request
Don't : “this will fix my issues”
Do : “Added an OAuth authentication layer”
50. Next : merging the PR
Done by a project maintainer (could be you !)
Merge from the PR branch to master
Again : have a clear merge message
→ On Github : 'Closes #56' will close Github issue and links
Congratulations, you're a Github contributor ;-)
#42: * = current brach
+ = commit is in the branch
- = commit is in the branch as a merge
#44: git checkout -b test
edit LICENSE file
git checkout master
edit LICENSE file
git merge test → will show conflict
git status → will show unmerged path
edit LICENSE file
git commit -a -m&apos;conflict resolved&apos;