The document provides an overview of the Zugspitze framework, including its core components, services, examples, and repositories. Some key points:
- Zugspitze is built on top of Foomo and provides MVC, commands, operations, proxies and services.
- Core components include commands, operations, status manager, and proxy support. Services can be generated from IDL files.
- Examples are provided for ActionScript, mobile, MX, Spark and Flex projects.
- Code is organized into source and example repositories with naming conventions.
- The framework supports different approaches like pure MVC, command-based or operation-based workflows.
The document discusses implementing enterprise integration patterns through Apache Camel. It provides an overview of enterprise integration patterns, describes what Apache Camel is and how it is based on these patterns, and gives examples of implementing the Message Filter pattern in XML, Java, Scala and Spring configurations. It also discusses using beans with Camel for message translation and binding beans to endpoints.
"Swoole: double troubles in c", Alexandr VronskiyFwdays
Practices in using Swoole ecosystem & migration real production marketplace app to async approach. Which benefits we got and what problems happens on stack with PHP8, Postgresql, Redis, RebbitMQ, Doctrine, coroutines/fibers, concurrency HTTP Server.
What you need to remember when you upload to CPANcharsbar
Perlのモジュールを公開するときに気をつけておいた方がよい個のこと
This document provides tips for publishing Perl modules to CPAN. It discusses things to be aware of such as distributions being permanently archived on BackPAN even if deleted, CPAN accepting almost anything, and several testing services that can improve modules like PAUSE, CPAN Testers, CPANTS, and more. It also covers best practices for metrics evaluated by these services around availability, integrity, file layout, prerequisites and more. Developers are encouraged to use better tools from the Perl Toolchain Gang to avoid issues.
In this talk we will present a middleware async architecture based on Expressive and Swoole to speed up web API development and runtime in PHP. Using this approach, you will be able to achieve great performance improvement, up to 4x faster than nginx or Apache (benchmark).
The document summarizes Jersey Framework, a Java REST framework. It provides an overview of Jersey's features such as supporting JAX-RS APIs, Servlet 3.0, JSON/JAXB, and integration with Spring. A code sample demonstrates a simple "hello world" RESTful service using Jersey with annotations like @Path, @GET and @Produces. The document also covers additional Jersey concepts like request/response processing, URI building, exception handling, and security.
Assurer - a pluggable server testing/monitoring frameworkGosuke Miyashita
Assurer is a server testing and monitoring framework that allows configuring tests, notifications, formatting, and publishing of results using plugins. It uses a plugin architecture and YAML configuration to make it easy to add new tests and change outputs. Tests are run in parallel and results can be filtered and published to various outputs like terminals, email, and files. It aims to be similar to Plagger but also cover monitoring use cases.
This document discusses extending Perl with C libraries using XS. It explains that XS provides an interface between C and Perl by handling data conversion between their different types. The document outlines the components of a basic XS file and how it is compiled. It also discusses typemaps which define how C types are mapped to Perl types to allow values to be passed between the languages. Further details are provided on developing the XS interface and common tools like h2xs and a new converter tool.
This document summarizes and compares Ruby HTTP client libraries. It discusses the sync and async APIs of 16 libraries including Net::HTTP, HTTPClient, and Faraday. It covers their compatibility, supported features like keep-alive connections, and performance based on benchmarks. The document recommends libraries based on priorities like speed, HTML handling, API clients, and SSL support. It encourages readers to check the detailed feature matrix and report any errors found.
The document discusses implementing enterprise integration patterns through Apache Camel. It provides an overview of enterprise integration patterns, describes what Apache Camel is and how it is based on these patterns, and gives examples of implementing the Message Filter pattern in XML, Java, Scala and Spring configurations. It also discusses using beans with Camel for message translation and binding beans to endpoints.
"Swoole: double troubles in c", Alexandr VronskiyFwdays
Practices in using Swoole ecosystem & migration real production marketplace app to async approach. Which benefits we got and what problems happens on stack with PHP8, Postgresql, Redis, RebbitMQ, Doctrine, coroutines/fibers, concurrency HTTP Server.
What you need to remember when you upload to CPANcharsbar
Perlのモジュールを公開するときに気をつけておいた方がよい個のこと
This document provides tips for publishing Perl modules to CPAN. It discusses things to be aware of such as distributions being permanently archived on BackPAN even if deleted, CPAN accepting almost anything, and several testing services that can improve modules like PAUSE, CPAN Testers, CPANTS, and more. It also covers best practices for metrics evaluated by these services around availability, integrity, file layout, prerequisites and more. Developers are encouraged to use better tools from the Perl Toolchain Gang to avoid issues.
In this talk we will present a middleware async architecture based on Expressive and Swoole to speed up web API development and runtime in PHP. Using this approach, you will be able to achieve great performance improvement, up to 4x faster than nginx or Apache (benchmark).
The document summarizes Jersey Framework, a Java REST framework. It provides an overview of Jersey's features such as supporting JAX-RS APIs, Servlet 3.0, JSON/JAXB, and integration with Spring. A code sample demonstrates a simple "hello world" RESTful service using Jersey with annotations like @Path, @GET and @Produces. The document also covers additional Jersey concepts like request/response processing, URI building, exception handling, and security.
Assurer - a pluggable server testing/monitoring frameworkGosuke Miyashita
Assurer is a server testing and monitoring framework that allows configuring tests, notifications, formatting, and publishing of results using plugins. It uses a plugin architecture and YAML configuration to make it easy to add new tests and change outputs. Tests are run in parallel and results can be filtered and published to various outputs like terminals, email, and files. It aims to be similar to Plagger but also cover monitoring use cases.
This document discusses extending Perl with C libraries using XS. It explains that XS provides an interface between C and Perl by handling data conversion between their different types. The document outlines the components of a basic XS file and how it is compiled. It also discusses typemaps which define how C types are mapped to Perl types to allow values to be passed between the languages. Further details are provided on developing the XS interface and common tools like h2xs and a new converter tool.
This document summarizes and compares Ruby HTTP client libraries. It discusses the sync and async APIs of 16 libraries including Net::HTTP, HTTPClient, and Faraday. It covers their compatibility, supported features like keep-alive connections, and performance based on benchmarks. The document recommends libraries based on priorities like speed, HTML handling, API clients, and SSL support. It encourages readers to check the detailed feature matrix and report any errors found.
Apache Camel is a message routing engine that allows for integration between different components by exchanging messages. It provides a simple way to define routing and mediation rules in a declarative manner. For example, a sample Camel route could read files from a directory and send those files to a JMS queue. Camel is highly flexible and can run in many environments including standalone, OSGi, Blueprint, Spring, and application servers. It has been used by customers for use cases such as building a Netty HTTP gateway with over 100 dynamic routes and load balancing incoming HTTP requests over JMS.
"Highlights from Java 10&11 and Future of Java" at Java User Group Bonn 2018 ...Vadym Kazulkin
This document summarizes highlights from Java 10 and 11 and discusses the future of Java. Key points include new features in Java 10 like local variable type inference and improvements to the G1 garbage collector. Java 11 focuses on long term support and includes new features like local variable syntax for lambda parameters. Future projects aim to simplify syntax, add pattern matching, and value types. GraalVM allows running code from multiple languages on a single runtime for high performance. Project Loom plans to add lightweight fibers and continuations.
Remedie: Building a desktop app with HTTP::Engine, SQLite and jQueryTatsuhiko Miyagawa
Building a desktop app using HTTP::Engine as a micro web server, SQLite for data storage, and jQuery for the user interface. Comet and asynchronous workers are used to enable real-time features. JSON-RPC and routing are implemented to support AJAX actions. The combination provides a lightweight "desktop app" architecture that is cross-platform.
- PSGI (Perl Web Server Gateway Interface) and Plack provide a common interface and utilities for building web applications and servers in Perl.
- PSGI defines a standard interface that web frameworks can implement to work with different server implementations. Plack provides server implementations like standalone, FastCGI and Apache modules.
- This allows frameworks to focus on the application code instead of server specifics, and servers to handle multiple frameworks. Common middleware and testing utilities are also included.
- Examples of frameworks that have adopted PSGI include Catalyst, Maypole and Mojolicious. Popular servers built on Plack include Starman and Dancer.
This document is a webpage for downloading an MP3 file of the song "If Love Is Blind" by Tiffany. It includes metadata such as the title, description, and keywords. It also includes scripts to play the audio, start the download, and other interactive elements. The page is hosted on the file sharing site 4shared.
PSGI is a Perl port of Python's WSGI and Ruby's Rack that defines a common interface between web servers and frameworks. Plack provides reference implementations of PSGI servers as well as middleware and utilities. This allows frameworks to run on many servers like standalone, FastCGI, and Apache using a common PSGI application interface. Plack is fast, supports many frameworks through adapters, and provides tools like Plackup and middleware to help build and test PSGI applications.
This document discusses Fork/Join framework in Java 7. It explains that Fork/Join is designed to maximize usage of multiple processors by recursively splitting large tasks into smaller subtasks. It uses work-stealing algorithm where idle workers can steal tasks from busy workers' queues to balance load. An example of calculating Fibonacci numbers using Fork/Join is provided where the task is split recursively until the subproblem size is smaller than threshold, at which point it is computed directly.
Voxxed Days Vilnius 2015 - Having fun with JavassistAnton Arhipov
The document discusses using Javassist, a Java bytecode engineering library, to dynamically generate Java proxies at runtime. It provides examples of using Javassist with a Java agent to transform class files and generate proxies within a ClassFileTransformer. It also summarizes how Javassist is used within the JRebel application reload agent to refresh configurations and notify plugins of class reloading.
This document provides a taxonomy and survey of Ruby HTTP client libraries. It discusses several popular client libraries like HTTParty, Faraday, Net::HTTP, Rest-Client and Typhoeus. The survey found HTTParty and Faraday to be the most popular based on stars. It also provides code samples for making requests with some of the top libraries.
PHP 7 is scheduled for release in November 2015 and will be a major new version that introduces many new features and changes. Some key points include: PHP 7 will provide improved performance through a new Zend Engine 3.0 and full support for 32-bit and 64-bit platforms. New features include scalar type declarations, return type declarations, new operators like the null coalesce operator and the spaceship operator, and anonymous classes. The release will also change some behaviors and remove deprecated features.
Riga Dev Day 2016 - Having fun with JavassistAnton Arhipov
The document discusses using Javassist, an open-source bytecode engineering library, for bytecode instrumentation and generation of Java proxies. It provides examples of using Javassist's ClassPool and CtClass APIs to dynamically generate and modify classes, such as adding a print statement before a method or generating a class from metadata. The key uses of Javassist mentioned are generating proxies, bytecode instrumentation, and dynamic class generation.
Java agents are pluggable self contained components that run embedded in a JVM and intercept the classloading process. They were introduced in Java 5 along with the powerful java.lang.instrument package. Java agents can be loaded statically at startup or dynamically (programmatically) at runtime to attach to a running process.
Java agents were an awesome addition to the JVM as it opened a lot of opportunities for tool designers and changed Java tooling landscape quite drastically. In conjunction with Java bytecode manipulation libraries it is now possible to do amazing things to Java classes: we can experiment with programming models, redefine classes at runtime, record execution flow, etc.
I’d like to give an overview of Java agents’ functionality along with the usage examples and real world experiences. You will learn, how to implement an agent and apply Instrumentation API in combination with bytecode manipulation libraries to solve interesting tasks.
This document discusses integrating test automation and code coverage for web service applications. It introduces Postman for calling web services and testing responses, and Jenkins for build automation and tracking test results over time. It then demonstrates setting up a test automation workflow using these tools on a sample Laravel application, including starting and stopping coverage collection, running tests from Postman and PHPUnit, and merging the results. Some best practices and philosophies around test automation and code coverage are also discussed.
Symfony2 Service Container: Inject me, my friendKirill Chebunin
This document discusses the Symfony service container and dependency injection container. It covers topics such as inversion of control, dependency injection patterns like constructor injection, service definitions, scopes, extensions, compiler passes, and how bundles integrate with the container.
JavaOne 2015 - Having fun with JavassistAnton Arhipov
The document provides examples of using Javassist, an open-source bytecode engineering library, to dynamically generate, instrument, reflect and modify Java bytecode. It demonstrates how to use Javassist to generate proxy classes, insert logging before methods, and modify existing classes at runtime without recompilation. Key classes and methods discussed include ClassPool, CtClass, CtMethod and insertBefore.
The document discusses various PHP testing frameworks including xUnit, PHPUnit, SimpleTest, lime, and PHPSpec. It provides an overview of each framework, comparing features like assertion methods. Lime is highlighted as a simple testing framework in the style of xUnit but designed for PHP. Examples are given showing how to write and run lime tests against PHP code. Links are provided for more information on lime and PHP testing in general.
A function is a reusable block of code that can be called from different parts of a program. Functions accept parameters as input and may return a value. When a function is called, its parameters and local variables are stored on the stack. Each function call creates a stack frame that contains its parameters, local variables, and return address. This allows functions to maintain separate variable scopes while sharing the call stack.
Con-FESS 2015 - Having Fun With JavassistAnton Arhipov
This document discusses using Javassist, a bytecode manipulation library, for tasks like adding logging to existing code without modifying the source code. It provides examples of using Javassist to inject logging into a method and creating a Java agent to manipulate bytecode. The document also summarizes how Javassist works under the hood to modify class files and how frameworks like JRebel use it to reload configurations without restarts.
Taking Jenkins Pipeline to the Extremeyinonavraham
Slide deck from Jenkins User Conference Tel Aviv 2018.
Talking about suggested (best?) practices, tips and tricks, using Jenkins pipeline scripts with shared libraries, managing shared libraries, using docker compose, and more.
ES6 Metaprogramming presentation at MediterraneaJS on June 22th, 2015.
ES6 delivers some exciting metaprogramming capabilities with its new Proxies feature. Metaprogramming is powerful, but remember: "With great power comes great responsibility". In the talk we will shortly revisit Javascript metaprogramming and explain ES6 Proxies with code examples.
Apache Camel is a message routing engine that allows for integration between different components by exchanging messages. It provides a simple way to define routing and mediation rules in a declarative manner. For example, a sample Camel route could read files from a directory and send those files to a JMS queue. Camel is highly flexible and can run in many environments including standalone, OSGi, Blueprint, Spring, and application servers. It has been used by customers for use cases such as building a Netty HTTP gateway with over 100 dynamic routes and load balancing incoming HTTP requests over JMS.
"Highlights from Java 10&11 and Future of Java" at Java User Group Bonn 2018 ...Vadym Kazulkin
This document summarizes highlights from Java 10 and 11 and discusses the future of Java. Key points include new features in Java 10 like local variable type inference and improvements to the G1 garbage collector. Java 11 focuses on long term support and includes new features like local variable syntax for lambda parameters. Future projects aim to simplify syntax, add pattern matching, and value types. GraalVM allows running code from multiple languages on a single runtime for high performance. Project Loom plans to add lightweight fibers and continuations.
Remedie: Building a desktop app with HTTP::Engine, SQLite and jQueryTatsuhiko Miyagawa
Building a desktop app using HTTP::Engine as a micro web server, SQLite for data storage, and jQuery for the user interface. Comet and asynchronous workers are used to enable real-time features. JSON-RPC and routing are implemented to support AJAX actions. The combination provides a lightweight "desktop app" architecture that is cross-platform.
- PSGI (Perl Web Server Gateway Interface) and Plack provide a common interface and utilities for building web applications and servers in Perl.
- PSGI defines a standard interface that web frameworks can implement to work with different server implementations. Plack provides server implementations like standalone, FastCGI and Apache modules.
- This allows frameworks to focus on the application code instead of server specifics, and servers to handle multiple frameworks. Common middleware and testing utilities are also included.
- Examples of frameworks that have adopted PSGI include Catalyst, Maypole and Mojolicious. Popular servers built on Plack include Starman and Dancer.
This document is a webpage for downloading an MP3 file of the song "If Love Is Blind" by Tiffany. It includes metadata such as the title, description, and keywords. It also includes scripts to play the audio, start the download, and other interactive elements. The page is hosted on the file sharing site 4shared.
PSGI is a Perl port of Python's WSGI and Ruby's Rack that defines a common interface between web servers and frameworks. Plack provides reference implementations of PSGI servers as well as middleware and utilities. This allows frameworks to run on many servers like standalone, FastCGI, and Apache using a common PSGI application interface. Plack is fast, supports many frameworks through adapters, and provides tools like Plackup and middleware to help build and test PSGI applications.
This document discusses Fork/Join framework in Java 7. It explains that Fork/Join is designed to maximize usage of multiple processors by recursively splitting large tasks into smaller subtasks. It uses work-stealing algorithm where idle workers can steal tasks from busy workers' queues to balance load. An example of calculating Fibonacci numbers using Fork/Join is provided where the task is split recursively until the subproblem size is smaller than threshold, at which point it is computed directly.
Voxxed Days Vilnius 2015 - Having fun with JavassistAnton Arhipov
The document discusses using Javassist, a Java bytecode engineering library, to dynamically generate Java proxies at runtime. It provides examples of using Javassist with a Java agent to transform class files and generate proxies within a ClassFileTransformer. It also summarizes how Javassist is used within the JRebel application reload agent to refresh configurations and notify plugins of class reloading.
This document provides a taxonomy and survey of Ruby HTTP client libraries. It discusses several popular client libraries like HTTParty, Faraday, Net::HTTP, Rest-Client and Typhoeus. The survey found HTTParty and Faraday to be the most popular based on stars. It also provides code samples for making requests with some of the top libraries.
PHP 7 is scheduled for release in November 2015 and will be a major new version that introduces many new features and changes. Some key points include: PHP 7 will provide improved performance through a new Zend Engine 3.0 and full support for 32-bit and 64-bit platforms. New features include scalar type declarations, return type declarations, new operators like the null coalesce operator and the spaceship operator, and anonymous classes. The release will also change some behaviors and remove deprecated features.
Riga Dev Day 2016 - Having fun with JavassistAnton Arhipov
The document discusses using Javassist, an open-source bytecode engineering library, for bytecode instrumentation and generation of Java proxies. It provides examples of using Javassist's ClassPool and CtClass APIs to dynamically generate and modify classes, such as adding a print statement before a method or generating a class from metadata. The key uses of Javassist mentioned are generating proxies, bytecode instrumentation, and dynamic class generation.
Java agents are pluggable self contained components that run embedded in a JVM and intercept the classloading process. They were introduced in Java 5 along with the powerful java.lang.instrument package. Java agents can be loaded statically at startup or dynamically (programmatically) at runtime to attach to a running process.
Java agents were an awesome addition to the JVM as it opened a lot of opportunities for tool designers and changed Java tooling landscape quite drastically. In conjunction with Java bytecode manipulation libraries it is now possible to do amazing things to Java classes: we can experiment with programming models, redefine classes at runtime, record execution flow, etc.
I’d like to give an overview of Java agents’ functionality along with the usage examples and real world experiences. You will learn, how to implement an agent and apply Instrumentation API in combination with bytecode manipulation libraries to solve interesting tasks.
This document discusses integrating test automation and code coverage for web service applications. It introduces Postman for calling web services and testing responses, and Jenkins for build automation and tracking test results over time. It then demonstrates setting up a test automation workflow using these tools on a sample Laravel application, including starting and stopping coverage collection, running tests from Postman and PHPUnit, and merging the results. Some best practices and philosophies around test automation and code coverage are also discussed.
Symfony2 Service Container: Inject me, my friendKirill Chebunin
This document discusses the Symfony service container and dependency injection container. It covers topics such as inversion of control, dependency injection patterns like constructor injection, service definitions, scopes, extensions, compiler passes, and how bundles integrate with the container.
JavaOne 2015 - Having fun with JavassistAnton Arhipov
The document provides examples of using Javassist, an open-source bytecode engineering library, to dynamically generate, instrument, reflect and modify Java bytecode. It demonstrates how to use Javassist to generate proxy classes, insert logging before methods, and modify existing classes at runtime without recompilation. Key classes and methods discussed include ClassPool, CtClass, CtMethod and insertBefore.
The document discusses various PHP testing frameworks including xUnit, PHPUnit, SimpleTest, lime, and PHPSpec. It provides an overview of each framework, comparing features like assertion methods. Lime is highlighted as a simple testing framework in the style of xUnit but designed for PHP. Examples are given showing how to write and run lime tests against PHP code. Links are provided for more information on lime and PHP testing in general.
A function is a reusable block of code that can be called from different parts of a program. Functions accept parameters as input and may return a value. When a function is called, its parameters and local variables are stored on the stack. Each function call creates a stack frame that contains its parameters, local variables, and return address. This allows functions to maintain separate variable scopes while sharing the call stack.
Con-FESS 2015 - Having Fun With JavassistAnton Arhipov
This document discusses using Javassist, a bytecode manipulation library, for tasks like adding logging to existing code without modifying the source code. It provides examples of using Javassist to inject logging into a method and creating a Java agent to manipulate bytecode. The document also summarizes how Javassist works under the hood to modify class files and how frameworks like JRebel use it to reload configurations without restarts.
Taking Jenkins Pipeline to the Extremeyinonavraham
Slide deck from Jenkins User Conference Tel Aviv 2018.
Talking about suggested (best?) practices, tips and tricks, using Jenkins pipeline scripts with shared libraries, managing shared libraries, using docker compose, and more.
ES6 Metaprogramming presentation at MediterraneaJS on June 22th, 2015.
ES6 delivers some exciting metaprogramming capabilities with its new Proxies feature. Metaprogramming is powerful, but remember: "With great power comes great responsibility". In the talk we will shortly revisit Javascript metaprogramming and explain ES6 Proxies with code examples.
SymfonyCon Berlin 2016 - Symfony Plugin for PhpStorm - 3 years laterHaehnchen
In 2013 the "Symfony Plugin" for PhpStorm was born. Today we see over 1 million downloads and several other plugins for projects like Laravel, Drupal, Shopware, ... that help to improve your productivity.
I will talk about Symfony related features and will give you some tips and tricks. Also, we take a look at the infrastructure behind these plugins and how I maintain all of them.
Rapid java backend and api development for mobile devicesciklum_ods
This document discusses best practices for developing RESTful APIs and backend services for mobile applications. It recommends using Java, Maven, Spring, Jersey, and Protocol Buffers. Protocol Buffers provide a compact data interchange format that is faster than JSON and more widely supported than other protocols. The document provides an example of implementing authentication, API throttling, caching, testing, and error handling in a RESTful service using these technologies.
Ob1k is a new open source RPC container. it belongs to a new breed of frameworks that tries to improve on the classic J2EE model by embedding the server and reducing redundant bloatware. Ob1k supports two modes of operations: sync and async, the async mode aims for maximum performance by adopting reactive principals like using non-blocking code and functional composition using futures. Ob1k also aims to be ops/devops friendly by being self contained and easily configured.
Setting up the Red5 environment, building sample applications and integrating with flash. We will look at how Red5 works within the flash IDE and build a sample chat application, video streaming, and multi-user environment.
How and why i roll my own node.js frameworkBen Lin
1) The document discusses the author's experience building their own node.js web framework, including their background with other technologies like Ruby on Rails.
2) It describes the key features of their framework, such as MVC structure, middleware support, asset packaging, and command line tools.
3) The author explains that they rolled their own framework to learn more about how frameworks work, have more control over the technology stack, and because node.js performance is better than Ruby on Rails. They emphasize that building the framework was a fun learning experience.
JavaFX 8 est disponible depuis mars 2014 et apporte son lot de nouveautés. Gradle est en version 2 depuis juillet 2014. Deux technologies plus que prometteuses: JavaFX donne un coup de jeune au développement d’applications desktop en Java en apportant un navigateur web intégré, le support des WebSockets, de la 3D, et bien d’autres. Gradle est l’outil de d’automatisation de build à la mode, apportant de superbes possibilités par rapport rapport à maven, outil vieillissant, grâce à l’engouement de la communauté vis à vis de cet outil mais aussi par le fait de la technologie utilisée en son sein: groovy. Venez découvrir comment il est possible de réaliser rapidement une application à la mode en JavaFX avec un outil à la mode également. Bref venez à une session trendy.
This document provides an overview of Spring Boot and some of its key features. It discusses the origins and modules of Spring, how Spring Boot simplifies configuration and dependency management. It then covers examples of building Spring Boot applications that connect to a SQL database, use RabbitMQ for messaging, and schedule and run asynchronous tasks.
This document summarizes how to test Java web applications on mobile devices using Arquillian and Selenium. It describes setting up Android emulators, configuring the Arquillian extension for AndroidDriver, and writing sample unit and functional tests for a mobile web application using Page Object Model patterns and the WebDriver API. Tips are provided for debugging tests, capturing screenshots on failure, and integrating tests with Jenkins.
"Applied Enterprise Metaprogramming in JavaScript", Vladyslav DukhinFwdays
Is it possible to write a program that significantly changes its behaviour during the runtime without changing its source code? Have you ever wondered about native TypeScript support in Node.js? Or whether it is possible to write JavaScript code that syntactically feels a lot different but is still valid? The answers to these and a lot of other questions will be discussed in detail in this talk. From the basics of metaprogramming theory to practical examples of its application in enterprise projects. We are going to talk about metalinguistic abstractions, domain-specific languages, and how they can help us solve software engineering problems. We will take a look at how popular frameworks and libraries like React.js, Express.js, Nest.js and Lodash use metaprogramming to develop systems that are used worldwide. Moreover, we will learn how to think in terms of metaprograms and broaden our outlook towards the great world of metasystems.
Google Back To Front: From Gears to App Engine and Beyonddion
I had the privilege of giving a Yahoo! Tech Talk at their HQ in Sunnyvale. I spoke on Gears, App Engine, and other technologies such as the Ajax Libraries API and Doctype.
Krzysztof Sobkowiak presented on serverless Java on Kubernetes. Serverless computing refers to building applications without server management by deploying functions that automatically scale in response to demand. Function as a Service (FaaS) platforms like Apache OpenWhisk allow running Java code as stateless functions on Kubernetes. OpenWhisk supports Java actions and integrates with services through triggers and rules to enable event-driven architectures. Spring Cloud Functions provides a framework for building serverless applications using Spring Boot and Java.
Protractor framework architecture with exampleshadabgilani
Protractor is an open source functional testing framework for AngularJS applications. It automates interaction with AngularJS apps for end-to-end testing. Protractor uses Selenium WebDriver for browser control and Jasmine or Mocha for writing test cases. Tests are organized into pages, common utilities, test data, specs, and configuration files. Protractor provides locators and functions to test AngularJS apps and generates Allure reports for test results.
OB1K is a new RPC container. it belongs to a new breed of frameworks that tries to improve on the classic JEE model by embedding the server and reducing redundant bloatware.
OB1K supports two modes of operations: sync and async, the async mode aims for maximum performance by adopting reactive principals like using non-blocking code and functional composition using futures.
Ob1k also aims to be ops/devops friendly by being self contained and easily configured.
The document discusses the challenges and rewards of developing a large JavaScript application with over 120,000 lines of code. It describes the Xopus XML editor framework, including its object-oriented architecture, class loading system, and techniques for improving performance like asynchronous execution and lazy loading of components. The framework aims to provide an application development structure for JavaScript applications in a similar way that Java and C# frameworks work.
The document discusses the future of server-side JavaScript. It covers various Node.js frameworks and libraries that support both synchronous and asynchronous programming styles. CommonJS aims to provide interoperability across platforms by implementing synchronous proposals using fibers. Examples demonstrate how CommonJS allows for synchronous-like code while maintaining asynchronous behavior under the hood. Benchmarks show it has comparable performance to Node.js. The author advocates for toolkits over frameworks and continuing development of common standards and packages.
Google Cloud Endpoints: Building Third-Party APIs on Google AppEngineRoman Kirillov
This is a slide deck of a talk given to a London GDG meeting on 2013/07/10. It covers following topics:
* Building RESTful APIs using Cloud Endpoints and Google AppEngine
* Building Javascript and Android clients for these APIs
* Enabling OAuth2 authentication for this APIs.
Full video recording of the talk will be available later.
GridMate - End to end testing is a critical piece to ensure quality and avoid...ThomasParaiso2
End to end testing is a critical piece to ensure quality and avoid regressions. In this session, we share our journey building an E2E testing pipeline for GridMate components (LWC and Aura) using Cypress, JSForce, FakerJS…
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:
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.
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...Neo4j
Leonard Jayamohan, Partner & Generative AI Lead, Deloitte
This keynote will reveal how Deloitte leverages Neo4j’s graph power for groundbreaking digital twin solutions, achieving a staggering 100x performance boost. Discover the essential role knowledge graphs play in successful generative AI implementations. Plus, get an exclusive look at an innovative Neo4j + Generative AI solution Deloitte is developing in-house.
Unlocking Productivity: Leveraging the Potential of Copilot in Microsoft 365, a presentation by Christoforos Vlachos, Senior Solutions Manager – Modern Workplace, Uni Systems
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.
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofsAlex Pruden
This paper presents Reef, a system for generating publicly verifiable succinct non-interactive zero-knowledge proofs that a committed document matches or does not match a regular expression. We describe applications such as proving the strength of passwords, the provenance of email despite redactions, the validity of oblivious DNS queries, and the existence of mutations in DNA. Reef supports the Perl Compatible Regular Expression syntax, including wildcards, alternation, ranges, capture groups, Kleene star, negations, and lookarounds. Reef introduces a new type of automata, Skipping Alternating Finite Automata (SAFA), that skips irrelevant parts of a document when producing proofs without undermining soundness, and instantiates SAFA with a lookup argument. Our experimental evaluation confirms that Reef can generate proofs for documents with 32M characters; the proofs are small and cheap to verify (under a second).
Paper: https://eprint.iacr.org/2023/1886
UiPath Test Automation using UiPath Test Suite series, part 5DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 5. In this session, we will cover CI/CD with devops.
Topics covered:
CI/CD with in UiPath
End-to-end overview of CI/CD pipeline with Azure devops
Speaker:
Lyndsey Byblow, Test Suite Sales Engineer @ UiPath, Inc.
Dr. Sean Tan, Head of Data Science, Changi Airport Group
Discover how Changi Airport Group (CAG) leverages graph technologies and generative AI to revolutionize their search capabilities. This session delves into the unique search needs of CAG’s diverse passengers and customers, showcasing how graph data structures enhance the accuracy and relevance of AI-generated search results, mitigating the risk of “hallucinations” and improving the overall customer journey.
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.
Threats to mobile devices are more prevalent and increasing in scope and complexity. Users of mobile devices desire to take full advantage of the features
available on those devices, but many of the features provide convenience and capability but sacrifice security. This best practices guide outlines steps the users can take to better protect personal devices and information.
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionAggregage
Join Maher Hanafi, VP of Engineering at Betterworks, in this new session where he'll share a practical framework to transform Gen AI prototypes into impactful products! He'll delve into the complexities of data collection and management, model selection and optimization, and ensuring security, scalability, and responsible use.
How to Get CNIC Information System with Paksim Ga.pptxdanishmna97
Pakdata Cf is a groundbreaking system designed to streamline and facilitate access to CNIC information. This innovative platform leverages advanced technology to provide users with efficient and secure access to their CNIC details.
51. foomo.managers.MemoryManager
public interface IMemoryManager
{
function gc():void;
function unload(obj:Object):void;
function addUnloader(type:*, unloader:IUnloader):void;
function removeUnloader(type:*):void;
}
53. foomo.managers.LogManager
public interface ILogManager extends IEventDispatcher
{
function get level():int
function set level(value:int):void
function isDebug():Boolean
function isInfo():Boolean
function isWarn():Boolean
function isError():Boolean
function isFatal():Boolean
function removeLoggingTarget(target:*):Boolean;
function addLoggingTarget(target:ILoggingTarget):String
function log(category:*, level:int, message:String, parameters:Array):void;
}
# Set log level
LogManager.level = LogLevel.DEBUG;
# Log entry @see SparkExamples
if (LogManager.isDebug()) LogManager.debug(this, "Can't undo command - command in queue");
54. foomo.managers.SessionManager
public interface ISessionManager
{
function get localIsAvailable():Boolean
function get clientId():String
function get sessionId():String
function setLocalData(key:Object, value:*):*
function getLocalData(key:Object, defaultValue:*=null):*
function removeLocalData(key:Object):*
function flushLocal():String
function clearLocal():void
}
60. CommandManager
public interface ICommandManager extends IEventDispatcher
{
function set historyName(value:String):void
function get historyName():String
function set historySize(value:int):void
function get historySize():int
function get undoAble():Boolean
function get redoAble():Boolean
function execute(command:ICommand):void
function undo():void
function redo():void
}
# Controller
this.executeCommand(new AddTodosCommand([todo], this.model, true));
61. StatusManager
public interface IStatusManager extends IEventDispatcher
{
function get stack():Array;
function get busy():Boolean;
function setBusyStatus(instance:Object):void;
function removeBusyStatus(instance:Object):void;
}
# Anywhere
StatusManager.setBusyStatus(this);
StatusManager.removeBusyStatus(this);
63. Operations
public interface IOperation extends IEventDispatcher
{
function get result():*;
function get error():*;
}
public interface IProgressOperation extends IOperation
{
function get total():Number;
function get progress():Number;
}
74. Writing Code
Pure MVC
Command based
Operation based (OperationChain)
Operations & Commands
- no right way
- many possibilities
- take notes!
- feedback?
i.e.
- operations in model
77. Command based
public class ApplicationController extends ZugspitzeController
{
//...
public function setCurrentState(state:String):void
{
this.executeCommand(new SetValueCommand(this.model, 'currentState', state, true));
}
public function editTodo(todo:Todo):void
{
this.executeCommand(new SetValueCommand(this.model, 'todo', todo, true));
this.executeCommand(new SetValueCommand(this.model, 'currentState', ApplicationModel.STATE_EDIT,
true));
}
public function addTodo(text:String):void
{
this.executeCommand(new AddTodoCommand(text, this.model));
this.executeCommand(new SetValueCommand(this.model, 'currentState',
ApplicationModel.STATE_OPEN_LIST, true));
}
//...
}
78. Command based
public class ApplicationModel extends ZugspitzeModel
{
//...
public var todoProxy:Service1Proxy = new Service1Proxy;
public var currentState:String = STATE_LOADING;
public var opentTodos:ArrayCollection;
public var completeTodos:ArrayCollection;
public var todo:Todo;
public function setTodos(todos:Array):void
{
var open:Array = new Array;
var complete:Array = new Array;
for each (var todo:Todo in todos) {
if (todo.complete) {
complete.push(todo);
} else {
open.push(todo);
}
}
this.completeTodos = new ArrayCollection(complete);
this.opentTodos = new ArrayCollection(open);
}
//...
}
79. Command based
public class AddTodoCommand extends AbstractAddTodoCommand
{
public var model:ApplicationModel;
public function AddTodoCommand(text:String, model:ApplicationModel)
{
this.model = model;
super(text, this.model.todoProxy, true);
}
override protected function methodCall_proxyMethodCallResultHandler(event:ProxyMethodCallEvent):void
{
this.model.setTodos(AddTodoCall(event.methodCall).result);
this.dispatchCommandCompleteEvent();
}
}
83. Operation based
public class ApplicationController extends ZugspitzeController
{
//...
public function setCurrentState(state:String):void
{
this.model.currentState = state;
}
public function editTodo(todo:Todo):void
{
this.model.todo = todo;
this.model.currentState = ApplicationModel.STATE_EDIT;
}
public function getTodos():void
{
OperationChain
.create(GetTodosOperation, this.model.todoProxy)
.addOperationCompleteCallback(this.model.setTodos, ['operation.result'])
.addOperationCompleteCallback(this.setCurrentState, null, ApplicationModel.STATE_OPEN_LIST)
.unloadOnOperationComplete();
;
}
//...
}
84. Operation based
public class ApplicationModel extends ZugspitzeModel
{
//...
public var todoProxy:Service1Proxy = new Service1Proxy;
public var currentState:String = STATE_LOADING;
public var opentTodos:ArrayCollection;
public var completeTodos:ArrayCollection;
public var todo:Todo;
public function setTodos(todos:Array):void
{
var open:Array = new Array;
var complete:Array = new Array;
for each (var todo:Todo in todos) {
if (todo.complete) {
complete.push(todo);
} else {
open.push(todo);
}
}
this.completeTodos = new ArrayCollection(complete);
this.opentTodos = new ArrayCollection(open);
}
//...
}
86. What’s on my Todo List
Skinning workflow
LogService reimplementation
BusyStatus through operations
Flash/Reflex integration
Look at Signals
Filter for Logger
Debug menu
Hudson, Testing, UI Testing, .....