This document summarizes Makoto Kuwata's presentation on creating a high-speed template engine in Python. It discusses Tenjin, a template engine created by Kuwata that is very fast. It benchmarks Tenjin against other template engines like Mako, Jinja2, and Django and shows that Tenjin is significantly faster. The presentation provides optimization techniques for template engines like using bound methods, local variables, and format strings instead of string concatenation. It also recommends implementing performance critical parts in a low-level language like C to achieve better speeds.
Tenjin - the fastest template engine in the worldkwatch
Tenjin is a very fast and compact template engine. It is similar to eRuby or PHP, but it has many features such as layout template, caching, preprocessing, and so on. In addition, Tenjin is available in Perl, Python, Ruby, PHP, and JavaScript.
PostgreSQL vs MySQL: PostgreSQL como alternativa.Arturo Espinosa
Una plática rápida acerca de las diferencias entre PostgreSQL y MySQL para generar curiosidad en el neófito hacia alternativas que pueden favorecer su crecimiento en su carrera.
(ATS3-PLAT01) Recent developments in Pipeline PilotBIOVIA
This session will review significant enhancements to Pipeline Pilot in recent releases. Areas covered are: Professional client, administration, security, integration, databases, and collections (chemistry, next gen sequencing, documents and text, statistics, and imaging).
Tenjin - the fastest template engine in the worldkwatch
Tenjin is a very fast and compact template engine. It is similar to eRuby or PHP, but it has many features such as layout template, caching, preprocessing, and so on. In addition, Tenjin is available in Perl, Python, Ruby, PHP, and JavaScript.
PostgreSQL vs MySQL: PostgreSQL como alternativa.Arturo Espinosa
Una plática rápida acerca de las diferencias entre PostgreSQL y MySQL para generar curiosidad en el neófito hacia alternativas que pueden favorecer su crecimiento en su carrera.
(ATS3-PLAT01) Recent developments in Pipeline PilotBIOVIA
This session will review significant enhancements to Pipeline Pilot in recent releases. Areas covered are: Professional client, administration, security, integration, databases, and collections (chemistry, next gen sequencing, documents and text, statistics, and imaging).
micro(-service) components. While this approach to building software - if done correctly - can improve a system's maintainability and scalability, distributed applications also introduce challanges for operations. Where monolithic applications typically offered direct access to extensive monitoring dashbords, such easy overview is no longer available when multitude services are loosly connected over a network. But how to keep track of a system of such dynamic state?
Distributed tracing is a method of connecting interaction of different services on a network. Collecting and processing such tracing information again allows for the observation of a distributed system in its entirety. This talk shares the presenter's insights gained by working on the JVM-support of distributed tracing for the APM tool Instana. Doing so, it introduces the landscape of distributed tracing on the JVM, discussing popular approaches such as Dapper, Zipkin or Brave/OpenTracing. In the process, it is discussed how byte code instrumentation can be used to capture systems without requiring a user to set up the software under observation. The presentation finishes with a discussion of typical problems of distributed tracing solutions and carefully examines the performance penalties APM tools entail.
Performance evaluation of Linux Discard SupportLukáš Czerner
Basic overview of discard and why we have it. Introduce discard benchmarking tool and show some of its results. What have we done for ext4 and what can you use now.
Accelerated Windows Debugging 3 training public slidesDmitry Vostokov
The slides from Software Diagnostics Services Accelerated Windows Debugging 3 training. The training description: "The full transcript of Software Diagnostics Services training with 14 step-by-step exercises, notes, and source code of specially created modeling applications. Learn live local and remote debugging techniques in kernel, user process and managed .NET spaces using WinDbg debugger. The unique and innovative course teaches unified debugging patterns applied to real problems from complex software environments. The second edition was fully reworked and updated to use the latest WinDbg version and Windows 10."
Database Sharding the Right Way: Easy, Reliable, and Open source - HighLoad++...CUBRID
The presentation the CUBRID team presented at Russian HighLoad++ Conference in October, 2012. The presentation covers the topic of Big Data management through Database Sharding. CUBRID open source RDBMS provides native support for Sharding with load balancing, connection pooling, and auto fail-over features.
ESUG 2017
Video: https://youtu.be/yDKaHphbFow
At ESUG in Cambridge I introduced Sista, an optimizing JIT design for the Pharo VM. The current implementation is now running 1.5x times faster on production applications and up to 5x faster on specific benchmarks that the production Pharo VM. In this talk, I will present the overall optimization pipeline and I will try to show the myriad of implementation details, including the interaction between Sista and other optimizations (Context-to-Stack mapping, closure optimizations, ...), pathological code patterns or the problems related to stack deoptimization and closures.
Bio: Clement Bera implemented the Sista optimizing JIT in the Cog VM for Pharo. He worked 5 years with Eliot Miranda on improving the Cog VM.
White Paper: xDesign Online Editor & API Performance Benchmark Summary EMC
This white paper explains the performance of the xDesign Online Editor and its web services APIs, part of the EMC Document Sciences xPression suite. It provides performance data for editing a document, publishing a document, returning it to the calling application or browser, and displaying it in the user’s queue.
In this WebHack talk I shared about what I have learnt from SpiderMonkey: the JavaScript engine inside Firefox browser. I extracted and concluded 3 slides made in the past, and updated some few content.
Router is one of the most important feature or component in Web application framework,
ant it is also one of the performance bottlenecks of framework.
In this session, I'll show you how to make router much faster than ever.
micro(-service) components. While this approach to building software - if done correctly - can improve a system's maintainability and scalability, distributed applications also introduce challanges for operations. Where monolithic applications typically offered direct access to extensive monitoring dashbords, such easy overview is no longer available when multitude services are loosly connected over a network. But how to keep track of a system of such dynamic state?
Distributed tracing is a method of connecting interaction of different services on a network. Collecting and processing such tracing information again allows for the observation of a distributed system in its entirety. This talk shares the presenter's insights gained by working on the JVM-support of distributed tracing for the APM tool Instana. Doing so, it introduces the landscape of distributed tracing on the JVM, discussing popular approaches such as Dapper, Zipkin or Brave/OpenTracing. In the process, it is discussed how byte code instrumentation can be used to capture systems without requiring a user to set up the software under observation. The presentation finishes with a discussion of typical problems of distributed tracing solutions and carefully examines the performance penalties APM tools entail.
Performance evaluation of Linux Discard SupportLukáš Czerner
Basic overview of discard and why we have it. Introduce discard benchmarking tool and show some of its results. What have we done for ext4 and what can you use now.
Accelerated Windows Debugging 3 training public slidesDmitry Vostokov
The slides from Software Diagnostics Services Accelerated Windows Debugging 3 training. The training description: "The full transcript of Software Diagnostics Services training with 14 step-by-step exercises, notes, and source code of specially created modeling applications. Learn live local and remote debugging techniques in kernel, user process and managed .NET spaces using WinDbg debugger. The unique and innovative course teaches unified debugging patterns applied to real problems from complex software environments. The second edition was fully reworked and updated to use the latest WinDbg version and Windows 10."
Database Sharding the Right Way: Easy, Reliable, and Open source - HighLoad++...CUBRID
The presentation the CUBRID team presented at Russian HighLoad++ Conference in October, 2012. The presentation covers the topic of Big Data management through Database Sharding. CUBRID open source RDBMS provides native support for Sharding with load balancing, connection pooling, and auto fail-over features.
ESUG 2017
Video: https://youtu.be/yDKaHphbFow
At ESUG in Cambridge I introduced Sista, an optimizing JIT design for the Pharo VM. The current implementation is now running 1.5x times faster on production applications and up to 5x faster on specific benchmarks that the production Pharo VM. In this talk, I will present the overall optimization pipeline and I will try to show the myriad of implementation details, including the interaction between Sista and other optimizations (Context-to-Stack mapping, closure optimizations, ...), pathological code patterns or the problems related to stack deoptimization and closures.
Bio: Clement Bera implemented the Sista optimizing JIT in the Cog VM for Pharo. He worked 5 years with Eliot Miranda on improving the Cog VM.
White Paper: xDesign Online Editor & API Performance Benchmark Summary EMC
This white paper explains the performance of the xDesign Online Editor and its web services APIs, part of the EMC Document Sciences xPression suite. It provides performance data for editing a document, publishing a document, returning it to the calling application or browser, and displaying it in the user’s queue.
In this WebHack talk I shared about what I have learnt from SpiderMonkey: the JavaScript engine inside Firefox browser. I extracted and concluded 3 slides made in the past, and updated some few content.
Router is one of the most important feature or component in Web application framework,
ant it is also one of the performance bottlenecks of framework.
In this session, I'll show you how to make router much faster than ever.
Oktest - a new style testing library for Python -kwatch
Oktest is a new-style testing library for Python. It helps you to read & write tests very much. Oktest is available with (or without) standard 'unittest' module.
Generating a custom Ruby SDK for your web service or Rails API using Smithyg2nightmarescribd
Have you ever wanted a Ruby client API to communicate with your web service? Smithy is a protocol-agnostic language for defining services and SDKs. Smithy Ruby is an implementation of Smithy that generates a Ruby SDK using a Smithy model. In this talk, we will explore Smithy and Smithy Ruby to learn how to generate custom feature-rich SDKs that can communicate with any web service, such as a Rails JSON API.
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.
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.
Elevating Tactical DDD Patterns Through Object CalisthenicsDorra BARTAGUIZ
After immersing yourself in the blue book and its red counterpart, attending DDD-focused conferences, and applying tactical patterns, you're left with a crucial question: How do I ensure my design is effective? Tactical patterns within Domain-Driven Design (DDD) serve as guiding principles for creating clear and manageable domain models. However, achieving success with these patterns requires additional guidance. Interestingly, we've observed that a set of constraints initially designed for training purposes remarkably aligns with effective pattern implementation, offering a more ‘mechanical’ approach. Let's explore together how Object Calisthenics can elevate the design of your tactical DDD patterns, offering concrete help for those venturing into DDD for the first time!
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
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.
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
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/
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Tobias Schneck
As AI technology is pushing into IT I was wondering myself, as an “infrastructure container kubernetes guy”, how get this fancy AI technology get managed from an infrastructure operational view? Is it possible to apply our lovely cloud native principals as well? What benefit’s both technologies could bring to each other?
Let me take this questions and provide you a short journey through existing deployment models and use cases for AI software. On practical examples, we discuss what cloud/on-premise strategy we may need for applying it to our own infrastructure to get it to work from an enterprise perspective. I want to give an overview about infrastructure requirements and technologies, what could be beneficial or limiting your AI use cases in an enterprise environment. An interactive Demo will give you some insides, what approaches I got already working for real.
3. Python Products
Tenjin : very fast temlate engine
Kook : task utility like Ant/Rake
Benchmarker : a good friend for performance
Oktest : new-style testing library
4. Tenjin
Very fast
One file, 2000 lines
Full-featured
Python 3 support
Google App Engine
Release 1.0 coming soon!
http://www.kuwta-lab.com/tenjin/
47. Summary
String concatenation is not a bottleneck
extend() & join() are enough fast
Bottleneck is str() and escape_html()
join() should call str() internally
C Extension (webext) is great
49. Google says...
... The major web applications we
have surveyed have indicated that
they bottleneck primarily on
template systems, ...
Django?
http://code.google.com/p/unladen-swallow/wiki/ProjectPlan
50. Case Study #1
http://www.myweightracker.com/
Switch from Django template to Tenjin
M, C, Network, etc... Django
ed
M, C, Network, etc... Spe !
pp Up
A
30%
https://groups.google.com/group/kuwata-lab-products/
browse_thread/thread/b50877a9c56d64c9/60f77b5c9b9f5238
51. Case Study #2
Ruby on Rails 1.2
Remove helper methods by preprocessing
M, C, Network, etc... Helper Methods
template engine
ed
M, C, Network, etc... pp Spe !
A Up
1 00%
http://jp.rubyist.net/magazine/?0021-Erubis
52. Components of View Layer
Just one of them
Template
Important for Engine More Important
performance!
for performance!
Helper Cache
Functions Mechanism
55. Python v.s. Others
plTenjin (Perl) 12108.0
pyTenjin+Webext 4179.7
he
st !
phpTenjin (PHP) 2788.0
Pe rl i ion
ha mp
pyTenjin (Python) 2682.9 C
rbTenjin (Ruby) 2634.8
0 2500 5000 7500 10000 12500
pages/sec
56. Why Perl is so Fast?
No need to call str(val) nor val.toString()
Bytecode op for string concatenation
57. C Ext v.s. Pure Script
plTenjin Pure Perl
MobaSiF C Ext
Template::Toolkit C Ext
pyTenjin+Webext Python + C Ext
pyTenjin Pure Python
Cheetah C Ext No need to impl
engine in C
rbTenjin Pure Ruby (except helpers)
eruby C Ext
0 2500 5000 7500 10000 12500
pages/sec
58. Summary
View layer components
Template engine, Helper functions, and
Cache mechanism
No need to implement engine in C
(except helper functions)
Perl is great
Django temlate engine sucks
59. Appendix
Tenjin: fast & full-featured template engine
http://www.kuwata-lab.com/tenjin/
Webext: C extension for escape_html()
http://pypi.python.org/pypi/Webext/
Benchmarker: a utility for benchmarking
http://pypi.python.org/pypi/Benchmarker/