Zephir is a high-level domain-specific language that simplifies creating and maintaining native PHP extensions in C. It was developed by the team behind Phalcon to make it easier for developers to write low-level PHP extensions. Zephir compiles to C code and generates PHP extensions. It supports object-oriented programming and common control structures like if/else statements, while loops, and for loops. Zephir code is type safe and supports type hints.
Diving into HHVM Extensions (PHPNW Conference 2015)James Titcumb
HHVM is currently gaining popularity at quite a pace, and it's a pretty exciting time for PHP runtimes. Have you ever wondered what is going on beneath this slick and super-speedy engine? I wondered that myself, so I dived into the internals of HHVM, discovering a treasure trove of awesome stuff. In this talk, I'll show you how HHVM itself works with a guided tour of the codebase, demonstrating how it all pieces together. I'll also show you a couple of ways to write your own incredible HHVM extension. You don't need to know C++ to understand this talk - just PHP language knowledge is enough.
With PHP5.3.3 recently released I really feel it is time that php developers are taking namespaces seriously. If you don’t I guarantee you will be out of a job within five years. Namespaces are a fundamental part of the future of PHP. The talk explains the usage on importing third party libraries, using it in your own code and aliasing. The full works.
PHP7 brings a tremendous number of new features. Tonight, we will take a look at the null coalesce operator, new execution order (uniform variable syntax), new exceptions and more.
Video presentation: https://www.youtube.com/watch?v=jLAFXQ1Av50
Most applications written in Ruby are great, but also exists evil code applying WOP techniques. There are many workarounds in several programming languages, but in Ruby, when it happens, the proportion is bigger. It's very easy to write Ruby code with collateral damage.
You will see a collection of bad Ruby codes, with a description of how these codes affected negatively their applications and the solutions to fix and avoid them. Long classes, coupling, misapplication of OO, illegible code, tangled flows, naming issues and other things you can ever imagine are examples what you'll get.
PhpSpec is a SpecBDD tool that enables you to use a TDD workflow that can transform the way you write PHP. In this session we will look at the TDD workflow and see how PhpSpec can be used to speed up your development; add regression safety, and improve your object-oriented design.
Diving into HHVM Extensions (PHPNW Conference 2015)James Titcumb
HHVM is currently gaining popularity at quite a pace, and it's a pretty exciting time for PHP runtimes. Have you ever wondered what is going on beneath this slick and super-speedy engine? I wondered that myself, so I dived into the internals of HHVM, discovering a treasure trove of awesome stuff. In this talk, I'll show you how HHVM itself works with a guided tour of the codebase, demonstrating how it all pieces together. I'll also show you a couple of ways to write your own incredible HHVM extension. You don't need to know C++ to understand this talk - just PHP language knowledge is enough.
With PHP5.3.3 recently released I really feel it is time that php developers are taking namespaces seriously. If you don’t I guarantee you will be out of a job within five years. Namespaces are a fundamental part of the future of PHP. The talk explains the usage on importing third party libraries, using it in your own code and aliasing. The full works.
PHP7 brings a tremendous number of new features. Tonight, we will take a look at the null coalesce operator, new execution order (uniform variable syntax), new exceptions and more.
Video presentation: https://www.youtube.com/watch?v=jLAFXQ1Av50
Most applications written in Ruby are great, but also exists evil code applying WOP techniques. There are many workarounds in several programming languages, but in Ruby, when it happens, the proportion is bigger. It's very easy to write Ruby code with collateral damage.
You will see a collection of bad Ruby codes, with a description of how these codes affected negatively their applications and the solutions to fix and avoid them. Long classes, coupling, misapplication of OO, illegible code, tangled flows, naming issues and other things you can ever imagine are examples what you'll get.
PhpSpec is a SpecBDD tool that enables you to use a TDD workflow that can transform the way you write PHP. In this session we will look at the TDD workflow and see how PhpSpec can be used to speed up your development; add regression safety, and improve your object-oriented design.
Doctrine 2.0 Enterprise Persistence Layer for PHPGuilherme Blanco
One area that was mostly abandoned in applications is the Model layer. Doctrine is a project that brings enterprise support this layer through a powerful ORM implementation.
Allied with new support introduced in PHP 5.3, Doctrine 2.0 brings the concept of ORM in PHP to the next level. It introduces a couple of concepts known from other languages and areas, like Annotations, Object Query Languages and Parsers. This talk will introduce these new concepts as well as explain most of its architecture.
The PHP 7 release is just around the corner, bringing some much-desired changes and improvements to the language. However, many developers simply aren't aware of what's coming. We'll remedy this by checking out the new "spaceship operator," demonstrating how static type hints produce clean code, and using anonymous classes to quickly implement interfaces on the fly. Attendees will also learn about breaking changes and "gotchas" to watch out for when making the upgrade and will receive pointers on getting started with PHP 7 today.
PHP 8.1 brings Enums, one of the most requested features in PHP.
Enums, or Enumerations, allow creating strict and type-safe structures for fixed values. An Enum structure can hold a number of values that can also be backed with integer or string values.
In this comprehensive session, we will discover what Enums are, why they are useful, how to apply them on our applications, and things to watch out for when using Enums.
Rich Model And Layered Architecture in SF2 ApplicationKirill Chebunin
Presentation for Symfony Camp UA 2012.
* What are Rich Model, Service Layer & Layered Architecture
* Layered architecture in Sf2 Application
* Integration with 3rd party bundles
I present four design patterns that make your development easier and better. Design patterns are a fantastic way to make more readable code, as they make use of common ideas that many developers know and use. These patterns are tried and tested in the enterprise world.
The first one is dependency injection. This covers putting the variables that a class needs to function preferably inside a constructor.
The second one is the factory pattern. A factory moves the responsibility of instantiating an object to a third-party class.
The third one is dependency injection. This allows us to place a class' dependencies at one time, making it easy to come back and see what the class needs to survive.
Finally, we discuss the chain of responsibility. This allows complex operations to be handled by a chain of classes. Each class in the chain determines whether it is capable of handling the request and, if so, it returns the result.
PECL Picks - Extensions to make your life betterZendCon
One of the biggest strengths of PHP is its "glue" power. Take any C library and with a little magic and a compiler you have a fantastic extension. These extensions hide in PECL, but few people can tell the good from the unmaintained or just plain broken. Find the best extensions for your project, learn about PECL, and find out how to become a part of the PECL developer community.
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.
Custom, in depth 5 day PHP course I put together in 2014. I'm available to deliver this training in person at your offices - contact me at rich@quicloud.com for rate quotes.
Andres Gutierrez "Phalcon 3.0, Zephir & PHP7"Fwdays
Phalcon is a web framework written as an extension PHP seeking to improve the performance, taking advantage of low-level resources that no other traditional framework can take. Phalcon is a full stack framework, also providing a Micro approach, a template engine called Volt, the first ODM and ORM for PHP written in Zephir/C and many other components that ease the life of developers when creating web applications.
Initial versions of Phalcon were created using C directly as main language. Given the framework success many developers were willing to help, however it required C knowledge and PHP internals expertise, this made it difficult for them the possibility of help.
Since Phalcon 2, we started using Zephir, a brand new, high-level and compiled language created by the core team, that made our collaborators can help out easier to our project making it robust and stable.
Best of all, Zephir allows the easy creation of extensions for both PHP5 and PHP7. An extension can sometimes improve performance, reduce overall memory and processor usage and protect intelectual property.
The talk will be about the project evolution, Phalcon 3 as framework and the advantages of using Zephir for building extensions, also success cases and best practices in terms of performance.
Doctrine 2.0 Enterprise Persistence Layer for PHPGuilherme Blanco
One area that was mostly abandoned in applications is the Model layer. Doctrine is a project that brings enterprise support this layer through a powerful ORM implementation.
Allied with new support introduced in PHP 5.3, Doctrine 2.0 brings the concept of ORM in PHP to the next level. It introduces a couple of concepts known from other languages and areas, like Annotations, Object Query Languages and Parsers. This talk will introduce these new concepts as well as explain most of its architecture.
The PHP 7 release is just around the corner, bringing some much-desired changes and improvements to the language. However, many developers simply aren't aware of what's coming. We'll remedy this by checking out the new "spaceship operator," demonstrating how static type hints produce clean code, and using anonymous classes to quickly implement interfaces on the fly. Attendees will also learn about breaking changes and "gotchas" to watch out for when making the upgrade and will receive pointers on getting started with PHP 7 today.
PHP 8.1 brings Enums, one of the most requested features in PHP.
Enums, or Enumerations, allow creating strict and type-safe structures for fixed values. An Enum structure can hold a number of values that can also be backed with integer or string values.
In this comprehensive session, we will discover what Enums are, why they are useful, how to apply them on our applications, and things to watch out for when using Enums.
Rich Model And Layered Architecture in SF2 ApplicationKirill Chebunin
Presentation for Symfony Camp UA 2012.
* What are Rich Model, Service Layer & Layered Architecture
* Layered architecture in Sf2 Application
* Integration with 3rd party bundles
I present four design patterns that make your development easier and better. Design patterns are a fantastic way to make more readable code, as they make use of common ideas that many developers know and use. These patterns are tried and tested in the enterprise world.
The first one is dependency injection. This covers putting the variables that a class needs to function preferably inside a constructor.
The second one is the factory pattern. A factory moves the responsibility of instantiating an object to a third-party class.
The third one is dependency injection. This allows us to place a class' dependencies at one time, making it easy to come back and see what the class needs to survive.
Finally, we discuss the chain of responsibility. This allows complex operations to be handled by a chain of classes. Each class in the chain determines whether it is capable of handling the request and, if so, it returns the result.
PECL Picks - Extensions to make your life betterZendCon
One of the biggest strengths of PHP is its "glue" power. Take any C library and with a little magic and a compiler you have a fantastic extension. These extensions hide in PECL, but few people can tell the good from the unmaintained or just plain broken. Find the best extensions for your project, learn about PECL, and find out how to become a part of the PECL developer community.
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.
Custom, in depth 5 day PHP course I put together in 2014. I'm available to deliver this training in person at your offices - contact me at rich@quicloud.com for rate quotes.
Andres Gutierrez "Phalcon 3.0, Zephir & PHP7"Fwdays
Phalcon is a web framework written as an extension PHP seeking to improve the performance, taking advantage of low-level resources that no other traditional framework can take. Phalcon is a full stack framework, also providing a Micro approach, a template engine called Volt, the first ODM and ORM for PHP written in Zephir/C and many other components that ease the life of developers when creating web applications.
Initial versions of Phalcon were created using C directly as main language. Given the framework success many developers were willing to help, however it required C knowledge and PHP internals expertise, this made it difficult for them the possibility of help.
Since Phalcon 2, we started using Zephir, a brand new, high-level and compiled language created by the core team, that made our collaborators can help out easier to our project making it robust and stable.
Best of all, Zephir allows the easy creation of extensions for both PHP5 and PHP7. An extension can sometimes improve performance, reduce overall memory and processor usage and protect intelectual property.
The talk will be about the project evolution, Phalcon 3 as framework and the advantages of using Zephir for building extensions, also success cases and best practices in terms of performance.
Commands, events, queries - three types of messages that travel through your application. Some originate from the web, some from the command-line. Your application sends some of them to a database, or a message queue. What is the ideal infrastructure for an application to support this on-going stream of messages? What kind of architectural design fits best?
This talk provides answers to these questions: we take the *hexagonal* approach to software architecture. We look at messages, how they cross boundaries and how you can make steady communication lines between your application and other systems, like web browsers, terminals, databases and message queues.
You will learn how to separate the technical aspects of these connections from the core behavior of your application by implementing design patterns like the *command bus*, and design principles like *dependency inversion*.
After years of promoting PHPUnit I still hear it's hard to get started with unit testing. So instead of showing nice step-by-step examples on how to use PHPUnit, we're going to take an example straight from github. So I've taken the challenge to start writing tests for PHP projects that don't have unit tests in place and explain how I decide where to begin, how I approach my test strategy and how I ensure I’m covering each possible use-case (and covering the CRAP index). The goal of this presentation is to show everyone that even legacy code, spaghetti code and complex code bases can be tested. After this talk you can immediately apply my examples on your own codebase (even if it's a clean code base) and get started with testing. To follow along a basic knowledge unit testing with PHPUnit is required.
Developing software as part of a team introduces a host of challenges. A strong, motivated development team working together can marshal the strengths and specialities of each of its members to create something much larger than the sum of its parts. Teams that don’t work together can drain resources and make the workplace a miserable place to spend the day. The fact is, strong teams need strong leaders, and strong leadership is something that each of us can cultivate within ourselves. No matter your experience level or seniority, if you work as part of a team, you have the capacity to help lead your colleagues toward success. We’ll discuss strategies for dealing with conflict, ideas on how to become stronger communicators, and ways to help you and your teammates get the best from one another.
Are you a good Code Scout
Scouts are taught to be adventurous, considerate, thoughtful, effective, diligent, ingenious, thorough, earnest and effective… All of these qualities are ones that we should be striving for as a Developer.
This talk intends to prove that being a Good Scout and being a Great developer are are pretty much the same thing. It will take you through the types of actions and attitudes that are taught to millions of kids aged seven to eighteen and compare it to what you should be practicing every day to make you a better Developer.
I'll tell you all the things you need to know to earn your very first Code Scout badge.
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.
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.
Secure Form Processing and Protection - Sunshine PHP 2015Joe Ferguson
This talk was given January 27th 2015 at MemphisPHP.org and February 6th at SunshinePHP 2015.
XSS, NONCE, CSRF, WTF?! Form processing is something that's very basic and easy to do...wrong. There are tools and technologies you need to be using to prevent your forms from being abused and data falling into the wrong hands. We'll explore several of these technologies and how to implement them into your applications to keep your data safe.
Everyone talks about raising the bar on quality of code, but it's always hard to start implementing it when you have no clue where to start. With this talk I'm shooing that there are many levels developers can improve themselves by using the right tools. In this talk I'll go over each tool with examples how to use them against your codebase. A must attend talk for every developer that wants to scale up their quality. Most PHP developers deploy code that does what the customer requested but they don't have a clue about the quality of the product they deliver. Without this knowledge, maintenance can be a hell and very expensive. In this workshop I cover unit testing, code measuring, performance testing, debugging and profiling and give tips and tricks how to continue after this workshop.
Your Inner Sysadmin - Tutorial (SunshinePHP 2015)Chris Tankersley
One thing that most programmers do not take the time to understand is the servers that their application lives on. Most know a smattering of Apache configs, PHP configs, and basic information about the OS. This talk will deal with looking at tools that can help you quickly set up a server and how it can help you be a better developer. We'll look at tools like puppet for server management, OSSEC for log management, different command line tools, and nagios/monit for system monitoring.
Type hints were introduced with PHP 5. PHP 7 will add the ability to type hint on scalars and even to explicitly state what type will be returned from the function. This talk briefly goes over these added features to PHP 7.
This is not about how to code your API, but rather to show you what steps and best practices you need to utilize to build a successful, long-lived API. Thankfully with 5 Simple Steps you can build an API that is designed to last.
1 – Go in with a long-term mindset
2 – Understand what you’re building
3 – Utilize Spec Driven Development
4 – Incorporate Best Practices
5 – Repeat steps 1-4 for all new features
Although essential to the survival of open source, it remains a challenge for many developers to get the companies they work for to provide paid support. At the moment, businesses around the world aren’t doing enough in this area, and they are certainly missing out in terms of innovation in the long term.
Thanks to tools like vagrant, puppet/chef, and Platform as a Service services like Heroku, developers are extremely used to being able to spin up a development environment that is the same every time. What if we could go a step further and make sure our development environment is not only using the same software, but 100% configured and set up like production. Docker will let us do that, and so much more. We'll look at what Docker is, why you should look into using it, and all of the features that developers can take advantage of.
Refactorizando Pccomponentes.com con SymfonyMario Marín
Partimos de un reto: cómo cambiar una web con millones de visitas, con un entorno en constante cambio, con una deuda técnica crítica y un equipo aumentando en número, en procesos para la generación de software de manera automatizada, documentada, probada y coordinada para la consecución de nuestras metas.
En esta charla se presenta el caso práctico de la implantación de Symfony como pieza fundamental del puzzle y la integración continua como camino a seguir. Pruebas, integración, bundles, bases de datos, rendimiento... Aspectos claves para la consecución de nuestros objetivos.
Introduction to Continuous Integration with JenkinsEric Hogue
Talk on Continuous Integration given at Sunshine PHP 2015 on February 7.
Continuous Integration allows developers to run tests automatically every time code is pushed to source control. We will look at the different tests that a Continuous Integration server can run. How to create a build script so it runs the tests and make sure it produces the needed reports. Finally, how to set up Jenkins to run the build and display the reports.
With PHP 5.4 out and many production environments still running 5.2 (or older), it's time to paint a clear picture on why everyone should move to 5.3 and 5.4 and how to get code ready for the latest version of PHP. In this talk, we'll migrate an old piece of code using some standard and some very non-standard tools and techniques.
PHP 7 is on track, ready to hit the road later this year. What does it bring?
What other alternative do we have in the PHP World? Be from alternative implementations point of views, like hhvm or other, or do we have existing solutions to speed up PHP already? Using the existing versions?
Introduction to php7, its performance improvements, presenting alternative to boost your code if waiting for php7 is not an option, like hhvm, zephir or QB allowing immediate gains using php 5.5+.
Presented at the Istanbul PHP Conference
Practical tips for dealing with projects involving legacy code. Covers investigating past projects, static analysis of existing code, and methods for changing legacy code.
Presented at PHP Benelux '10
PHP is a server-side scripting language designed for web development but also used as a general-purpose programming language. As of January 2013, PHP was installed on more than 240 million websites (39% of those sampled) and 2.1 million web servers.[4] Originally created by Rasmus Lerdorf in 1994,[5] the reference implementation of PHP (powered by the Zend Engine) is now produced by The PHP Group.[6] While PHP originally stood for Personal Home Page,[5] it now stands for PHP: Hypertext Preprocessor, which is a recursive backronym
The why and how of moving to PHP 5.4/5.5Wim Godden
With PHP 5.5 out and many production environments still running 5.2 (or older), it's time to paint a clear picture on why everyone should move to 5.4 and 5.5 and how to get code ready for the latest version of PHP. In this talk, we'll migrate an old piece of code using some standard and some very non-standard tools and techniques.
Are you still on PHP 5.6-which will be EOL'd at the end of this year?! PHP 7 was released at the very end of 2015 and brought with it long awaited features to the PHP programming language while striving to keep backwards-compatibility. In this talk, I'll cover the new features including Static Type Hints, new operators, array de-referencing that you can use in your own Drupal modules to make your life easier. I'll also introduce a tool to assess how ready an existing PHP 5 codebase is to migrate to PHP 7.
Listen to the keynote address and hear about the latest developments from Rachana Ananthakrishnan and Ian Foster who review the updates to the Globus Platform and Service, and the relevance of Globus to the scientific community as an automation platform to accelerate scientific discovery.
Navigating the Metaverse: A Journey into Virtual Evolution"Donna Lenk
Join us for an exploration of the Metaverse's evolution, where innovation meets imagination. Discover new dimensions of virtual events, engage with thought-provoking discussions, and witness the transformative power of digital realms."
Accelerate Enterprise Software Engineering with PlatformlessWSO2
Key takeaways:
Challenges of building platforms and the benefits of platformless.
Key principles of platformless, including API-first, cloud-native middleware, platform engineering, and developer experience.
How Choreo enables the platformless experience.
How key concepts like application architecture, domain-driven design, zero trust, and cell-based architecture are inherently a part of Choreo.
Demo of an end-to-end app built and deployed on Choreo.
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisGlobus
JASMIN is the UK’s high-performance data analysis platform for environmental science, operated by STFC on behalf of the UK Natural Environment Research Council (NERC). In addition to its role in hosting the CEDA Archive (NERC’s long-term repository for climate, atmospheric science & Earth observation data in the UK), JASMIN provides a collaborative platform to a community of around 2,000 scientists in the UK and beyond, providing nearly 400 environmental science projects with working space, compute resources and tools to facilitate their work. High-performance data transfer into and out of JASMIN has always been a key feature, with many scientists bringing model outputs from supercomputers elsewhere in the UK, to analyse against observational or other model data in the CEDA Archive. A growing number of JASMIN users are now realising the benefits of using the Globus service to provide reliable and efficient data movement and other tasks in this and other contexts. Further use cases involve long-distance (intercontinental) transfers to and from JASMIN, and collecting results from a mobile atmospheric radar system, pushing data to JASMIN via a lightweight Globus deployment. We provide details of how Globus fits into our current infrastructure, our experience of the recent migration to GCSv5.4, and of our interest in developing use of the wider ecosystem of Globus services for the benefit of our user community.
top nidhi software solution freedownloadvrstrong314
This presentation emphasizes the importance of data security and legal compliance for Nidhi companies in India. It highlights how online Nidhi software solutions, like Vector Nidhi Software, offer advanced features tailored to these needs. Key aspects include encryption, access controls, and audit trails to ensure data security. The software complies with regulatory guidelines from the MCA and RBI and adheres to Nidhi Rules, 2014. With customizable, user-friendly interfaces and real-time features, these Nidhi software solutions enhance efficiency, support growth, and provide exceptional member services. The presentation concludes with contact information for further inquiries.
Globus Connect Server Deep Dive - GlobusWorld 2024Globus
We explore the Globus Connect Server (GCS) architecture and experiment with advanced configuration options and use cases. This content is targeted at system administrators who are familiar with GCS and currently operate—or are planning to operate—broader deployments at their institution.
Large Language Models and the End of ProgrammingMatt Welsh
Talk by Matt Welsh at Craft Conference 2024 on the impact that Large Language Models will have on the future of software development. In this talk, I discuss the ways in which LLMs will impact the software industry, from replacing human software developers with AI, to replacing conventional software with models that perform reasoning, computation, and problem-solving.
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar
The European Union Agency for Law Enforcement Cooperation (Europol) has suffered an alleged data breach after a notorious threat actor claimed to have exfiltrated data from its systems. Infamous data leaker IntelBroker posted on the even more infamous BreachForums hacking forum, saying that Europol suffered a data breach this month.
The alleged breach affected Europol agencies CCSE, EC3, Europol Platform for Experts, Law Enforcement Forum, and SIRIUS. Infiltration of these entities can disrupt ongoing investigations and compromise sensitive intelligence shared among international law enforcement agencies.
However, this is neither the first nor the last activity of IntekBroker. We have compiled for you what happened in the last few days. To track such hacker activities on dark web sources like hacker forums, private Telegram channels, and other hidden platforms where cyber threats often originate, you can check SOCRadar’s Dark Web News.
Stay Informed on Threat Actors’ Activity on the Dark Web with SOCRadar!
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus
As part of the DOE Integrated Research Infrastructure (IRI) program, NERSC at Lawrence Berkeley National Lab and ALCF at Argonne National Lab are working closely with General Atomics on accelerating the computing requirements of the DIII-D experiment. As part of the work the team is investigating ways to speedup the time to solution for many different parts of the DIII-D workflow including how they run jobs on HPC systems. One of these routes is looking at Globus Compute as a way to replace the current method for managing tasks and we describe a brief proof of concept showing how Globus Compute could help to schedule jobs and be a tool to connect compute at different facilities.
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns
Unlocking Business Potential: Tailored Technology Solutions by Prosigns
Discover how Prosigns, a leading technology solutions provider, partners with businesses to drive innovation and success. Our presentation showcases our comprehensive range of services, including custom software development, web and mobile app development, AI & ML solutions, blockchain integration, DevOps services, and Microsoft Dynamics 365 support.
Custom Software Development: Prosigns specializes in creating bespoke software solutions that cater to your unique business needs. Our team of experts works closely with you to understand your requirements and deliver tailor-made software that enhances efficiency and drives growth.
Web and Mobile App Development: From responsive websites to intuitive mobile applications, Prosigns develops cutting-edge solutions that engage users and deliver seamless experiences across devices.
AI & ML Solutions: Harnessing the power of Artificial Intelligence and Machine Learning, Prosigns provides smart solutions that automate processes, provide valuable insights, and drive informed decision-making.
Blockchain Integration: Prosigns offers comprehensive blockchain solutions, including development, integration, and consulting services, enabling businesses to leverage blockchain technology for enhanced security, transparency, and efficiency.
DevOps Services: Prosigns' DevOps services streamline development and operations processes, ensuring faster and more reliable software delivery through automation and continuous integration.
Microsoft Dynamics 365 Support: Prosigns provides comprehensive support and maintenance services for Microsoft Dynamics 365, ensuring your system is always up-to-date, secure, and running smoothly.
Learn how our collaborative approach and dedication to excellence help businesses achieve their goals and stay ahead in today's digital landscape. From concept to deployment, Prosigns is your trusted partner for transforming ideas into reality and unlocking the full potential of your business.
Join us on a journey of innovation and growth. Let's partner for success with Prosigns.
We describe the deployment and use of Globus Compute for remote computation. This content is aimed at researchers who wish to compute on remote resources using a unified programming interface, as well as system administrators who will deploy and operate Globus Compute services on their research computing infrastructure.
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Globus
Large Language Models (LLMs) are currently the center of attention in the tech world, particularly for their potential to advance research. In this presentation, we'll explore a straightforward and effective method for quickly initiating inference runs on supercomputers using the vLLM tool with Globus Compute, specifically on the Polaris system at ALCF. We'll begin by briefly discussing the popularity and applications of LLMs in various fields. Following this, we will introduce the vLLM tool, and explain how it integrates with Globus Compute to efficiently manage LLM operations on Polaris. Attendees will learn the practical aspects of setting up and remotely triggering LLMs from local machines, focusing on ease of use and efficiency. This talk is ideal for researchers and practitioners looking to leverage the power of LLMs in their work, offering a clear guide to harnessing supercomputing resources for quick and effective LLM inference.
In software engineering, the right architecture is essential for robust, scalable platforms. Wix has undergone a pivotal shift from event sourcing to a CRUD-based model for its microservices. This talk will chart the course of this pivotal journey.
Event sourcing, which records state changes as immutable events, provided robust auditing and "time travel" debugging for Wix Stores' microservices. Despite its benefits, the complexity it introduced in state management slowed development. Wix responded by adopting a simpler, unified CRUD model. This talk will explore the challenges of event sourcing and the advantages of Wix's new "CRUD on steroids" approach, which streamlines API integration and domain event management while preserving data integrity and system resilience.
Participants will gain valuable insights into Wix's strategies for ensuring atomicity in database updates and event production, as well as caching, materialization, and performance optimization techniques within a distributed system.
Join us to discover how Wix has mastered the art of balancing simplicity and extensibility, and learn how the re-adoption of the modest CRUD has turbocharged their development velocity, resilience, and scalability in a high-growth environment.
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Globus
The Earth System Grid Federation (ESGF) is a global network of data servers that archives and distributes the planet’s largest collection of Earth system model output for thousands of climate and environmental scientists worldwide. Many of these petabyte-scale data archives are located in proximity to large high-performance computing (HPC) or cloud computing resources, but the primary workflow for data users consists of transferring data, and applying computations on a different system. As a part of the ESGF 2.0 US project (funded by the United States Department of Energy Office of Science), we developed pre-defined data workflows, which can be run on-demand, capable of applying many data reduction and data analysis to the large ESGF data archives, transferring only the resultant analysis (ex. visualizations, smaller data files). In this talk, we will showcase a few of these workflows, highlighting how Globus Flows can be used for petabyte-scale climate analysis.
Enhancing Research Orchestration Capabilities at ORNL.pdfGlobus
Cross-facility research orchestration comes with ever-changing constraints regarding the availability and suitability of various compute and data resources. In short, a flexible data and processing fabric is needed to enable the dynamic redirection of data and compute tasks throughout the lifecycle of an experiment. In this talk, we illustrate how we easily leveraged Globus services to instrument the ACE research testbed at the Oak Ridge Leadership Computing Facility with flexible data and task orchestration capabilities.
How Recreation Management Software Can Streamline Your Operations.pptxwottaspaceseo
Recreation management software streamlines operations by automating key tasks such as scheduling, registration, and payment processing, reducing manual workload and errors. It provides centralized management of facilities, classes, and events, ensuring efficient resource allocation and facility usage. The software offers user-friendly online portals for easy access to bookings and program information, enhancing customer experience. Real-time reporting and data analytics deliver insights into attendance and preferences, aiding in strategic decision-making. Additionally, effective communication tools keep participants and staff informed with timely updates. Overall, recreation management software enhances efficiency, improves service delivery, and boosts customer satisfaction.
Experience our free, in-depth three-part Tendenci Platform Corporate Membership Management workshop series! In Session 1 on May 14th, 2024, we began with an Introduction and Setup, mastering the configuration of your Corporate Membership Module settings to establish membership types, applications, and more. Then, on May 16th, 2024, in Session 2, we focused on binding individual members to a Corporate Membership and Corporate Reps, teaching you how to add individual members and assign Corporate Representatives to manage dues, renewals, and associated members. Finally, on May 28th, 2024, in Session 3, we covered questions and concerns, addressing any queries or issues you may have.
For more Tendenci AMS events, check out www.tendenci.com/events
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Shahin Sheidaei
Games are powerful teaching tools, fostering hands-on engagement and fun. But they require careful consideration to succeed. Join me to explore factors in running and selecting games, ensuring they serve as effective teaching tools. Learn to maintain focus on learning objectives while playing, and how to measure the ROI of gaming in education. Discover strategies for pitching gaming to leadership. This session offers insights, tips, and examples for coaches, team leads, and enterprise leaders seeking to teach from simple to complex concepts.
2. What is Zephir?
Zephir – Zend Engine PHP Intermediate.
A high-level domain-specific language (DSL) that simplifies
the creation and maintain-ability of native C extensions for
PHP.
Developed by the team behind Phalcon, the PHP CMS
written in C.
3. What is Zephir?
The creators of Zephir actually pronounce it “zaefire”.
(/ˈzäfī(-ə)r/)
But I still pronounce it “Zephir” (/ˈzef.ər/)
The Zephir Language is an open source project licensed
under an MIT license.
Zephir is written in PHP.
4. What is Zephir?
In a nutshell
Zephir makes it easy for high-level developers write low-level PHP
Extensions.
5. Writing a PHP Extension
https://wiki.php.net/internals/references
http://www.phpinternalsbook.com/
http://www.amazon.com/Extending-Embedding-PHP-Sara-Golemon/dp/067232704X
6. Why might I write an Extension?
Native C Extensions to PHP can typically execute faster than
raw PHP code.
The ability to use native C datatypes in an Extension may
help save memory usage.
Deploying an Extension allows you to keep the source of
your code closed.
7. Why might I write an Extension?
If a class is heavily IO bound, or requires the allocation/
deallocation of large amounts of memory, then you will
probably not gain any performance benefits.
Unless you can take advantage of the native C datatypes
internally in the code, then you will probably not gain any
memory benefits.
8. Why might I write an Extension?
Performance comparison
HHVM vs Zephir vs PHP
https://www.simonholywell.com/post/2014/02/hhvm-vs-zephir-vs-php-the-
showdown/
https://www.simonholywell.com/static/files/2014-02-28/index.html
Simon Holywell
Australian Zend certified Development Director at Mosaic in Brighton, UK
10. Zephir – Installation (Ubuntu)
Requirements
◦gcc >= 4.x/clang >= 3.x
◦re2c 0.13 or later
◦gnu make 3.81 or later
◦autoconf 2.31 or later
◦automake 1.14 or later
◦libpcre3
◦php development headers and tools
17. Zephir – First Steps
Organise your code into files and namespaces
Uses Case-Sensitive file/folder names
Always use lower-case for file/folder names
Every file must contain one (and only one) class
Only OOP Code, no new PHP functions
Class names can be mixed-case
Classes must be namespaced
Top-level Namespace should match the namespace defined in config.json
but may be mixed-case
18. Zephir – First Steps
$ cd helloworld
$ cat greetings.zep
namespace HelloWorld;
class greetings {
public function english() {
// Variables must be defined before they can be used
var greeting;
// "let" is used to assign values to a variable
let greeting = "Hello World";
echo greeting, PHP_EOL;
}
}
19. Zephir – First Steps
$ cd ..
$ zephir compile
helloworld/
ext/
/helloworld ## zephir generates C source code here
/modules ## zephir builds the PHP Extension here
helloworld/
compile-errors.log
compile.log
config.json
21. Zephir – First Steps
$ php -i | grep -m 2 -A 4 helloworld
helloworld
Hello World Extension
helloworld => enabled
Author => Mark Baker
Version => 0.0.1
Build Date => Sep 27 2015 08:57:19
Powered by Zephir => Version 0.8.0a
22. Zephir – First Steps
$ cat helloworld.php
<?php
$instance = new HelloWorldgreetings();
$instance->english();
$ php helloworld.php
Hello World
23. Zephir – Variables
Variable names don’t begin with a $
Variables must be pre-defined/declared
var stringVar = "hello", boolVar = true, intVar = 1.0;
int answer = 42, question = 1;
PHP scope rules apply
Global variables don’t exist in Zephir (except that SuperGlobals can be accessed)
let requestMethod = _SERVER["REQUEST_METHOD"];
24. Zephir – Variables
Variable variables do not exist in Zephir
But they can be “simulated”
//Set variable $name in PHP
let {"name"} = "hello";
//Set variable $price in PHP
let name = "price";
let {name} = 10.2;
25. Zephir – Variable Types
Dynamic Typed Variables
Like PHP variables, and can change datatype between the different variable
types supported by PHP
Declared with the keyword “var”
var name = "Mark";
Static Typed Variables
A subset of C-Datatypes
boolean, int, uint, char, uchar, long, ulong, string, array
Can’t change datatype once declared
Declared with the appropriate datatype name
uint counter = 1;
26. Zephir – Strings
String literals (dynamic var, static string) must be wrapped in double quotes
var name = "Mark Baker";
Character literals (static char, static uchar) must be wrapped in single quotes
char initial = 'M';
Strings in Zephir do not support variable interpolation/parsing; use
concatenation instead:
let forename = "Mark";
let surname = "Baker";
let fullName = forename . " " . surname;
27. Zephir – Arrays
Array variables can be declared using the keywords “var” or “array”:
var a = []; // dynamic variable
array b = []; // static array variable
As in PHP, keys can only be string or integer values
Syntax is slightly different:
let elements = [
"foo": "bar", // Use of : rather than =>
"bar": "foo" // No trailing , permitted
];
28. Zephir – Control Structures
public function compare(a, b) {
if a < b {
return -1;
} elseif a > b {
return 1;
}
return 0;
}
Brackets around the evaluated condition are optional
29. Zephir – Control Structures
let counter = 0;
while counter < 10 {
echo counter, PHP_EOL;
let counter += 1;
}
Brackets around the evaluated condition are optional
30. Zephir – Control Structures
let n = 10;
loop {
let n -= 2;
if n == 0 { break; }
echo n, PHP_EOL;
}
31. Zephir – Control Structures
let items = ["a": 1, "b": 2, "c": 3, "d": 4];
for key, value in items {
echo key, " : ", value, PHP_EOL;
}
for key, value in reverse items {
echo key, " : ", value, PHP_EOL;
}
32. Zephir – Control Structures
string fullName = "Mark Baker"; char character;
for character in fullName {
echo character , PHP_EOL;
}
for character in reverse fullName {
echo character , PHP_EOL;
}
33. Zephir – Control Structures
let items = ["a": 1, "b": 2, "c": 3, "d": 4];
for key, _ in items {
echo key, PHP_EOL;
}
The value element in the for loop doesn’t need to be declared
34. Zephir – Exceptions
try {
// exceptions can be thrown here
if (firstCase) {
throw new RuntimeException("This is an exception");
} else {
throw "Untyped Exception";
}
} catch RuntimeException|Exception, e {
// handle exception
echo e->getMessage();
}
35. Special Features of Zephir
Type Hints
Object/Interface Type Hints
public function injectFilter(<AppFilterInterface> filter)
{
//...
}
Similar to the existing type hints in PHP, although notice the syntax
differences
36. Special Features of Zephir
Type Hints
“Scalar” Type Hints
public function filterText(string text, boolean escape=false)
{
//...
}
Allows “compatible” types, e.g.
this->filterText(1234, 0);
Will try to convert the data passed to the type-hinted datatype
37. Special Features of Zephir
Type Hints
Strict Scalar Hints
public function filterText(string! text, boolean escape=false)
{
//...
}
this->filterText(1234, 0);
Will throw an Exception
38. Special Features of Zephir
Return Type Hints
public function getClassFromFactory() -> <AppMyInterface> {
//...
}
Similar to the return type hints introduced in PHP 7, although notice the
syntax differences
function isValidStatusCode(int $statusCode): bool {
//...
}
39. Special Features of Zephir
Read-Only Arguments
public function filterText(const string text, boolean escape=false)
{
//...
}
Used for compiler optimisations
40. Special Features of Zephir
Named Arguments
public function crop(width = 600, height = 400) {
//...
}
this->crop(height: 200);
this->crop(height: 300, width: 400);
Adds a slight performance overhead
41. Zephir – Pitfalls
Silent compilation failures
$ zephir compile
helloworld/
ext/
/helloworld ## zephir generates C source code here
/modules ## zephir builds the PHP Extension here
helloworld/
compile-errors.log ## Always check this file
compile.log
config.json
43. Zephir – Pitfalls
Bad assumptions from lazy PHP practises
In PHP, a pass-by-reference variable in an expression like
$validComplex = preg_match('/^...$/ui', $complexNumber, $complexParts);
will automatically created $complexParts if it doesn't exist;
but Zephir won't do this, so you need to explicitly create it in advance
var complexParts;
let validComplex = preg_match("/^....$/ui", complexNumber, complexParts);
44. Zephir – Pitfalls
Overly-Complex or Ambiguous Syntax
An expression like
if (!is_object($complex) || !$complex instanceof Complex) { … }
Might logically be translated to Zephir as
if !is_object(complex) || !complex instanceof Complex { … }
but Zephir has a different precedence to PHP for instanceof, so you
need to do
if !is_object(complex) || !(complex instanceof Complex) { … }
otherwise it executes !complex and then tests the result of that (always
a boolean) for instanceOf Complex
cf. https://github.com/phalcon/zephir/issues/277
45. Zephir – Utilities and Helpers
PHP to Zephir
https://github.com/fezfez/php-to-zephir
46. Zephir – Utilities and Helpers
$ zephir init helloworld
$ cd helloworld
$ /home/vagrant/vendor/bin/php-to-zephir phpToZephir:convertDir
<path to PHP source code>
49. Zephir – Testing
$ cd ext/modules
$ php run-tests.php *.phpt <directory with test files>
$ php run-tests.php --help
Useful Option
-c <filename> ## Custom php.ini file to be used
50. Zephir – Testing
$ cat helloWorldTest001.phpt
--TEST--
Test Hello World display using helloworld extension
--FILE--
<?php
$instance = new HelloWorldgreetings();
$instance->english();
--EXPECT--
Hello World
51. Zephir – Testing
$ php run-tests.php *.phpt <directory with test files>
…
=====================================================================
Running selected tests.
PASS Test Hello World display using helloworld extension
[/srv/phpnw2015/helloworld/tests/helloWorldTest-001.phpt]
=====================================================================
Number of tests : 1 1
Tests skipped : 0 ( 0.0%) --------
Tests warned : 0 ( 0.0%) ( 0.0%)
Tests failed : 0 ( 0.0%) ( 0.0%)
Expected fail : 0 ( 0.0%) ( 0.0%)
Tests passed : 1 (100.0%) (100.0%)
---------------------------------------------------------------------
Time taken : 0 seconds
=====================================================================