Create your own PHP extension, step by step - phpDay 2012 VeronaPatrick Allaert
Ever been interested by contributing to the PHP core team?
In this workshop you will not only learn how (easy it is) to create your own PHP extension from scratch but you will also strengthen your knowledge of PHP by disecting its internals.
After this workshop, you will be able to create an extension on your own, whether it is to optimize the most CPU intensive parts of your code, to create new bindings to C libraries or just to leverage your PHP knowledge.
And what if PHP was a web framework for the C developer?
This workshop requires a bit of C knowledge and preferably a *nix system.
Create your own PHP extension, step by step - phpDay 2012 VeronaPatrick Allaert
Ever been interested by contributing to the PHP core team?
In this workshop you will not only learn how (easy it is) to create your own PHP extension from scratch but you will also strengthen your knowledge of PHP by disecting its internals.
After this workshop, you will be able to create an extension on your own, whether it is to optimize the most CPU intensive parts of your code, to create new bindings to C libraries or just to leverage your PHP knowledge.
And what if PHP was a web framework for the C developer?
This workshop requires a bit of C knowledge and preferably a *nix system.
API management with Taffy and API BlueprintKai Koenig
Introduction to API development with Taffy, a developer-friendly and convention-based framework for ColdFusion and Lucee.
Code samples at: https://github.com/TheRealAgentK/taffydemos
Presentation on how Puppet has been introduced in Seat Pagine Gialle to automate system administration tasks and easy the cooperation between Ops and Others.
A lot of people using PHPunit for testing their source code. While I was observing my team
I recognized most of them are only using the standard assertions like 'assertEquals()' or 'assertTrue()' and are complaining about how hard it is to test the code even when the tests are written first. This talk is about all the stuff not used on a daily basis. It shows you some nice features of PHPUnit and how to use them for your benefit.
The most hated thing a developer can imagine is writing documentation but on the other hand nothing can compare with a well documented source code if you want to change or extend some code. PhpDocumentor is one of many tools enabling you to parse the inline documentation and generate well structured and referenced documents. This tallk will show you how to get the most out of phpDocumentor and shall enable you to write fantastic documentation.
Scaling Symfony2 apps with RabbitMQ - Symfony UK MeetupKacper Gunia
Slides from my talk at Symfony UK Meetup. London, 20 Aug 2014. http://twitter.com/cakper
Video: https://www.youtube.com/watch?v=cha92Og9M5A
More Domain-Driven Design related content at: https://domaincentric.net/
Explaining ES6: JavaScript History and What is to ComeCory Forsyth
An overview of some of the history of JavaScript, how it became ECMAScript (and what Ecma is), as well as highlights of the new features and syntax in ES6 aka ES2015.
Originally presented to the New York Public Library on June 4 2015.
This is my first presentation in my college .it's cyborg technology which present that how some parts of human can be replace or use electronic devices like that pace maker.
An overview of the mission and vision of the 360 Center of Excellence, a manufacturing-based center.
From the 2014 Taking Shape Summit: The Internet of Things & the Future of Manufacturing.
API management with Taffy and API BlueprintKai Koenig
Introduction to API development with Taffy, a developer-friendly and convention-based framework for ColdFusion and Lucee.
Code samples at: https://github.com/TheRealAgentK/taffydemos
Presentation on how Puppet has been introduced in Seat Pagine Gialle to automate system administration tasks and easy the cooperation between Ops and Others.
A lot of people using PHPunit for testing their source code. While I was observing my team
I recognized most of them are only using the standard assertions like 'assertEquals()' or 'assertTrue()' and are complaining about how hard it is to test the code even when the tests are written first. This talk is about all the stuff not used on a daily basis. It shows you some nice features of PHPUnit and how to use them for your benefit.
The most hated thing a developer can imagine is writing documentation but on the other hand nothing can compare with a well documented source code if you want to change or extend some code. PhpDocumentor is one of many tools enabling you to parse the inline documentation and generate well structured and referenced documents. This tallk will show you how to get the most out of phpDocumentor and shall enable you to write fantastic documentation.
Scaling Symfony2 apps with RabbitMQ - Symfony UK MeetupKacper Gunia
Slides from my talk at Symfony UK Meetup. London, 20 Aug 2014. http://twitter.com/cakper
Video: https://www.youtube.com/watch?v=cha92Og9M5A
More Domain-Driven Design related content at: https://domaincentric.net/
Explaining ES6: JavaScript History and What is to ComeCory Forsyth
An overview of some of the history of JavaScript, how it became ECMAScript (and what Ecma is), as well as highlights of the new features and syntax in ES6 aka ES2015.
Originally presented to the New York Public Library on June 4 2015.
This is my first presentation in my college .it's cyborg technology which present that how some parts of human can be replace or use electronic devices like that pace maker.
An overview of the mission and vision of the 360 Center of Excellence, a manufacturing-based center.
From the 2014 Taking Shape Summit: The Internet of Things & the Future of Manufacturing.
Presentation by David Austin, an analyst in CBO’s Microeconomics Studies Division, at the Georgetown Freight Rail Colloquium.
Although freight transport contributes significantly to the productivity of the U.S. economy, it also involves sizable costs to society. Those costs include wear and tear on roads and bridges; delays caused by traffic congestion; injuries, fatalities, and property damage from accidents; and harmful effects from exhaust emissions. No one pays those external costs directly—neither freight haulers, nor shippers, nor consumers. The unpriced external costs of transporting freight by truck (per ton-mile) are around eight times higher than by rail; those costs net of existing taxes represent about 20 percent of the cost of truck transport and about 11 percent of the cost of rail transport. This presentation examines policy options to address those unpriced external costs.
A Partner is Good to Have, but Difficult to Behouseofyin
Architecture efforts can be sidelined without the engagement and trust of software developers and project managers, yet architects do not always see collaboration and service as part of their role. Lack of collaboration and service on the part of an architect can result in an architect’s
* uncertainty about whether and how well products are being used or delivering value
* products and guidance being “worked around” rather than incorporated
* rigid and less-than-effective use of stakeholder-related architecture practices
This presentation illustrates the importance of partnering in the context of architecture. We define partnering as “the extent to which architecture stakeholders maintain clear, cooperative roles and maximize the value that they deliver and receive.” We will also discuss how to build on existing partner relationships to increase engagement and trust.
This presentation was given at SATURN 2015 (http://www.sei.cmu.edu/saturn/2015)
This presentation was a part of the World IA Day - Dubai 2015, showing 2 key factors for making Users happy - getting to know your Users and understand them. Some of the User Testing and Empathy techniques were explained based on an example.
Accountability regulation and leadership in our school system - exploring a t...Browne Jacobson LLP
This report highlights a series of recommendations for consideration by stakeholders on delivering an effective accountability and regulatory regime and about what the sector needs to do to support the development of the next generation of leaders. Download the full report today!
https://www.brownejacobson.com/landing-pages/ten-year-vision
In this presentation we will discuss the role of MRI in the diagnosis of this rare Prion disease.
DWI is of diagnostic value in the diagnosis of Creutzfeldt Jakob Syndrome.
These are the slides from my talk "Your WebPerf Sucks" at HK CodeConf 2015 (http://hongkong.codeconf.io) at Science Park in Hong Kong, October 24th.
Web Performance is an important aspect of building for the web and this talk highlights different aspects of what is important and what can be done to improve web performance and build faster sites. While mentioning different aspects of possible improvements, the main focus lies on optimising the critical rendering path to get pages on the screen faster and what tools can help to do so.
WHY PEOPLE BULLSHIT AND WHAT TO DO ABOUT ITKevin Duncan
A quick analysis of this strange phenomenon, with some suggestions about how to cope with people who bullshit.
bulldictionary.com
Buy the book: http://amzn.to/2doeOTI
Sven and I are going to classify Xtext compared to other concepts and frameworks and demonstrate its capabilities with a refined version of an example I presented in London the week before. After that we discuss the versatile possibilities for extending and customizing the framework and finish with an exciting outlook.
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
Con la versione 7 di Drupal è stato introdotto il concetto di Entity, poi evoluto con la versione 8, utilizzato come base di buona parte degli elementi core (nodi, tassonomie, utenti, ...), ma - soprattutto - è stata data la possibilità di costruire entity custom. L'utilizzo di queste apre le possibilità di personalizzazione dello strumento ad un livello superiore velocizzando notevolmente lo sviluppo.
Verranno mostrate le potenzialità nell'uso delle Entity custom e le integrazioni possibili.
Con la versione 7 di Drupal è stato introdotto il concetto di Entity.
Verranno mostrate le potenzialità nell'uso delle Entity custom e le integrazioni possibili.
Relatore: Marco Vito Moscaritolo
A broad introduction to Java.
What is Java and where is it used
Programming Languages in the web development
What is Java and where is it used
OOP PRINCIPLES
JAVA SE, JRE, JDK
IDE’s
Where Java used in the “Real World”
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
Climate Impact of Software Testing at Nordic Testing DaysKari Kakkonen
My slides at Nordic Testing Days 6.6.2024
Climate impact / sustainability of software testing discussed on the talk. ICT and testing must carry their part of global responsibility to help with the climat warming. We can minimize the carbon footprint but we can also have a carbon handprint, a positive impact on the climate. Quality characteristics can be added with sustainability, and then measured continuously. Test environments can be used less, and in smaller scale and on demand. Test techniques can be used in optimizing or minimizing number of tests. Test automation can be used to speed up testing.
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
Pushing the limits of ePRTC: 100ns holdover for 100 daysAdtran
At WSTS 2024, Alon Stern explored the topic of parametric holdover and explained how recent research findings can be implemented in real-world PNT networks to achieve 100 nanoseconds of accuracy for up to 100 days.
Essentials of Automations: The Art of Triggers and Actions in FMESafe Software
In this second installment of our Essentials of Automations webinar series, we’ll explore the landscape of triggers and actions, guiding you through the nuances of authoring and adapting workspaces for seamless automations. Gain an understanding of the full spectrum of triggers and actions available in FME, empowering you to enhance your workspaces for efficient automation.
We’ll kick things off by showcasing the most commonly used event-based triggers, introducing you to various automation workflows like manual triggers, schedules, directory watchers, and more. Plus, see how these elements play out in real scenarios.
Whether you’re tweaking your current setup or building from the ground up, this session will arm you with the tools and insights needed to transform your FME usage into a powerhouse of productivity. Join us to discover effective strategies that simplify complex processes, enhancing your productivity and transforming your data management practices with FME. Let’s turn complexity into clarity and make your workspaces work wonders!
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfPaige Cruz
Monitoring and observability aren’t traditionally found in software curriculums and many of us cobble this knowledge together from whatever vendor or ecosystem we were first introduced to and whatever is a part of your current company’s observability stack.
While the dev and ops silo continues to crumble….many organizations still relegate monitoring & observability as the purview of ops, infra and SRE teams. This is a mistake - achieving a highly observable system requires collaboration up and down the stack.
I, a former op, would like to extend an invitation to all application developers to join the observability party will share these foundational concepts to build on:
Enhancing Performance with Globus and the Science DMZGlobus
ESnet has led the way in helping national facilities—and many other institutions in the research community—configure Science DMZs and troubleshoot network issues to maximize data transfer performance. In this talk we will present a summary of approaches and tips for getting the most out of your network infrastructure using Globus Connect Server.
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Dispatch in Clojure
1. Dispatch in Clojure Carlo Sciolla, Product Lead @ Backbase
DISPATCH IN CLOJURE | August 8, 2012 | @skuro
2. (ns aot
(:gen-class))
(defn -main [& args]
(dorun
(map println (seq args))))
javap -c aot.class
A quick journey in function calling
We all learn to divide our code in functions, and invoke them when it’s
their time on the stage of data processing. We define units of
computations, ready to be executed.
DISPATCH IN CLOJURE | August 8, 2012 | @skuro
3. public static void main(java.lang.String[]);
[..]
4:! invokevirtual!#66;
[..]
26:!invokestatic!
#104;
29:!invokeinterface! #108, 2;
[..]
44:!invokespecial!#115; (defn -main [& args]
[..] (dorun
(map println (seq args))))
The JVM executes our code
We’ll leave it to the JVM to figure out which code to actually run upon
function call. It’s not always a straightforward job, and there are several
ways to get to the code.
DISPATCH IN CLOJURE | August 8, 2012 | @skuro
4. public static void main(java.lang.String[]);
[..]
4:! invokevirtual!#66;
[..]
26:!invokestatic!
#104;
29:!invokeinterface! #108, 2;
[..]
44:!invokespecial!#115;
[..]
[clojure.lang.RT] static public ISeq seq(Object coll)
Static dispatch
When there’s nothing to choose from, the compiler emits a static
dispatch bytecode. All calls will always result in the same code being
executed.
DISPATCH IN CLOJURE | August 8, 2012 | @skuro
5. public static void main(java.lang.String[]);
[..]
4:! invokevirtual!#66;
[..]
26:!invokestatic!
#104;
29:!invokeinterface! #108, 2;
[..]
44:!invokespecial!#115;
[..]
Dynamic dispatch
Most often the compiler can’t figure out the proper method
implementation to call, and the runtime will get its chance to
dynamically dispatch the call.
DISPATCH IN CLOJURE | August 8, 2012 | @skuro
6. * dispatch by arity
* object oriented inheritance
* multimethods
* custom is-a hierarchies
* protocols
The options at hand
Clojure provides a rich interface to dynamic dispatch, allowing
programmers to have control over the dispatch logic at different
degrees to find the optimal balance on the performance trade off scale.
DISPATCH IN CLOJURE | August 8, 2012 | @skuro
7. * dispatch by arity
* object oriented inheritance (defn sum-them
* multimethods ([x y] (+ x y))
* custom is-a hierarchies ([x y z] (+ x y z)))
* protocols
The good old arity
Being a dynamically typed language, Clojure only checks on the
number of arguments provided in the function call to find the right
implementation to call.
DISPATCH IN CLOJURE | August 8, 2012 | @skuro
8. * dispatch by arity (defn stringify [x]
* object oriented inheritance (.toString x))
* multimethods
* custom is-a hierarchies (stringify (HashMap.)) ; “{}”
* protocols (stringify (HashSet.)) ; “[]”
More than Java™
Thanks to Clojure intimacy with Java, object inheritance is easily
achieved. Thanks to Clojure dynamic typing, it also allows functions to
traverse multiple inheritance trees.
DISPATCH IN CLOJURE | August 8, 2012 | @skuro
9. (defn stringify*
[^HashMap x]
(.toString x))
* dispatch by arity
* object oriented inheritance
(stringify* (HashMap.))
* multimethods
=> “{}”
* custom is-a hierarchies
(stringify* (TreeMap.))
* protocols
=> “{}”
(stringify* (HashSet.))
=> ClassCastException
Forcing virtual dispatch to improve performance
Being a dynamic language has a number of benefits, but performance
isn’t one of them. To avoid reflection calls needed by default by the
dynamic dispatch you can use type hints.
DISPATCH IN CLOJURE | August 8, 2012 | @skuro
10. (defn dispatch-fn
[{:keys [version]}]
* dispatch by arity
version)
* object oriented inheritance
* multimethods
(defmulti multi-call
* custom is-a hierarchies
dispatch-fn)
* protocols
http://bit.ly/multi-tests
Full power
Multimethods allow you to define your own dispatch strategy as a plain
Clojure function. Their limit is the sky: they perform quite bad, and your
dispatch fn can’t be changed or extended in user code.
DISPATCH IN CLOJURE | August 8, 2012 | @skuro
11. (defmethod
multi-call ::custom-type
* dispatch by arity
[x] [...])
* object oriented inheritance
* multimethods
(derive java.util.HashSet
* custom is-a hierarchies
::custom-type)
* protocols
http://bit.ly/multi-tests
Inheritance à la carte
Java types hierarchies defined outside your code can be “altered” by
custom is-a? relationships created as needed. You can either use the
default hierarchy or use make-hierarchy to restrict its scope.
DISPATCH IN CLOJURE | August 8, 2012 | @skuro
12. (defprotocol Registered
(register [this]))
* dispatch by arity
* object oriented inheritance
(extend-type String
* multimethods
Registered
* custom is-a hierarchies
(register [this] [...]))
* protocols
http://bit.ly/proto-tests
Inheritance à la carte
Java types hierarchies defined outside your code can be “altered” by
custom is-a? relationships created as needed. You can either use the
default hierarchy or use make-hierarchy to restrict its scope.
DISPATCH IN CLOJURE | August 8, 2012 | @skuro
13. * never used when compiling pure Java
* moves type checking at run time
* the compiler doesn’t resolve the method
* user code to perform the dispatch
* eligible for JIT optimizations
http://bit.ly/headius-invokedynamic
Bonus track: invokedynamic
Java7 introduced a new bytecode instruction to help JVM languages
designers: invokedynamic. There’s a long standing discussion as which
benefits it can provide to Clojure.
DISPATCH IN CLOJURE | August 8, 2012 | @skuro
15. Thanks!
Amsterdam Clojurians
Carlo Sciolla
Product Lead
http://skuro.tk
@skuro
http://bit.ly/amsclojure
DISPATCH IN CLOJURE | August 8, 2012 | @skuro