How to generate JAR file dynamically compiling Java code in KotlinMitsunori Komatsu
This document discusses how to dynamically generate a JAR file by compiling Java code in Kotlin. It involves converting a Lisp AST to Java source code using a visitor pattern, compiling the Java code with Janino, extracting the Java bytecode using reflection, and creating a JAR file from the bytecode and dependent classes. Key steps include traversing the Lisp tree to generate Java source, using Janino to compile the source in-memory, accessing Janino's hidden bytecode field to obtain the bytecode, and packaging the bytecode and dependencies into a JAR file.
How to run WebAssembly in your React Web ApplicationAlexandr Skachkov
This document discusses how to run WebAssembly in a React web application. It provides an overview of what WebAssembly is, which is a new binary format that provides performance benefits over JavaScript. It can be used to build high performance applications and run code written in languages like C/C++ and Rust in the browser. The document then discusses how to set up a basic WebAssembly project using tools like Webpack loaders and provides resources for learning more about WebAssembly.
Asynchronous Services – A promising future for OSGi - T Wardmfrancis
OSGi Community Event 2014
Abstract:
Asynchronous and event-driven programming models are known to offer exceptional performance in large-scale parallel workloads, and are experiencing significant growth in the Java ecosystem. Other JVM languages are also exploring the benefits of high-throughput asynchronous systems; the Actor pattern is commonly used to help design and build these systems. At its heart the Actor pattern is all about composing systems from modular components – exactly the same thing that OSGi is designed for. In the imminent OSGi Enterprise R6 release OSGi will be adding some new APIs that allow bundles to communicate asynchronously, even when using existing synchronous services.
This talk will describe the workings of the new Promises and Asynchronous Services APIs from the OSGi Enterprise and Compendium specifications, showing you how you can start to take advantage of asynchronous programming techniques using modular, loosely-coupled services. It will also demonstrate how OSGi Remote Services can transparently integrate within the asynchronous application, allowing completely non-blocking interactions in distributed environments.
Speaker Bio:
Tim Ward is a Senior Consulting Engineer and Trainer at Paremus, a co-author of Enterprise OSGi in Action, and has been actively working with OSGi for over six years. Tim has been a regular participant in the OSGi Core Platform and Enterprise Expert Groups, and led the development of several specifications, including OSGi Promises and Asynchronous Services. Tim is also an active Open Source committer and a PMC member in the Apache Aries project, which provides a container for enterprise OSGi applications.
Tim is a regular conference speaker, and can often be found at JavaOne, Devoxx, OSGi DevCon, OSGi Community Event, EclipseCon, Jazoon and JAX London.
Namshi is an e-commerce company based in Dubai that has grown to over 250 employees and serves millions of visitors per month. Originally using a monolithic PHP architecture, they migrated to a microservices architecture using PHP, Node.js, RabbitMQ, and other tools to improve scalability, deployability, and maintainability. This involved breaking the monolith into independent services, implementing an event-driven messaging system, and building new frontends using JavaScript.
How to generate JAR file dynamically compiling Java code in KotlinMitsunori Komatsu
This document discusses how to dynamically generate a JAR file by compiling Java code in Kotlin. It involves converting a Lisp AST to Java source code using a visitor pattern, compiling the Java code with Janino, extracting the Java bytecode using reflection, and creating a JAR file from the bytecode and dependent classes. Key steps include traversing the Lisp tree to generate Java source, using Janino to compile the source in-memory, accessing Janino's hidden bytecode field to obtain the bytecode, and packaging the bytecode and dependencies into a JAR file.
How to run WebAssembly in your React Web ApplicationAlexandr Skachkov
This document discusses how to run WebAssembly in a React web application. It provides an overview of what WebAssembly is, which is a new binary format that provides performance benefits over JavaScript. It can be used to build high performance applications and run code written in languages like C/C++ and Rust in the browser. The document then discusses how to set up a basic WebAssembly project using tools like Webpack loaders and provides resources for learning more about WebAssembly.
Asynchronous Services – A promising future for OSGi - T Wardmfrancis
OSGi Community Event 2014
Abstract:
Asynchronous and event-driven programming models are known to offer exceptional performance in large-scale parallel workloads, and are experiencing significant growth in the Java ecosystem. Other JVM languages are also exploring the benefits of high-throughput asynchronous systems; the Actor pattern is commonly used to help design and build these systems. At its heart the Actor pattern is all about composing systems from modular components – exactly the same thing that OSGi is designed for. In the imminent OSGi Enterprise R6 release OSGi will be adding some new APIs that allow bundles to communicate asynchronously, even when using existing synchronous services.
This talk will describe the workings of the new Promises and Asynchronous Services APIs from the OSGi Enterprise and Compendium specifications, showing you how you can start to take advantage of asynchronous programming techniques using modular, loosely-coupled services. It will also demonstrate how OSGi Remote Services can transparently integrate within the asynchronous application, allowing completely non-blocking interactions in distributed environments.
Speaker Bio:
Tim Ward is a Senior Consulting Engineer and Trainer at Paremus, a co-author of Enterprise OSGi in Action, and has been actively working with OSGi for over six years. Tim has been a regular participant in the OSGi Core Platform and Enterprise Expert Groups, and led the development of several specifications, including OSGi Promises and Asynchronous Services. Tim is also an active Open Source committer and a PMC member in the Apache Aries project, which provides a container for enterprise OSGi applications.
Tim is a regular conference speaker, and can often be found at JavaOne, Devoxx, OSGi DevCon, OSGi Community Event, EclipseCon, Jazoon and JAX London.
Namshi is an e-commerce company based in Dubai that has grown to over 250 employees and serves millions of visitors per month. Originally using a monolithic PHP architecture, they migrated to a microservices architecture using PHP, Node.js, RabbitMQ, and other tools to improve scalability, deployability, and maintainability. This involved breaking the monolith into independent services, implementing an event-driven messaging system, and building new frontends using JavaScript.
The document discusses how and why Ruby was introduced to replace the Java technology used for an independent music company's webclient. Ruby was chosen to improve testability, efficiency, and productivity compared to the previous solution. It was gradually introduced over several months but complete migration would have been better. Ruby significantly improved productivity and quality while enabling easier development, though performance suffered and it can enable bad practices if not used carefully.
The document discusses Cujo.js, an architectural toolkit for building modular JavaScript applications. It introduces the creators Brian Cavalier and John Hann and outlines some of the key Cujo.js libraries like curl.js, wire.js, and meld.js that help with module loading, dependency injection, and aspect-oriented programming. The document then covers general concepts in Cujo.js like inversion of control and application composition as well as specific concepts like wire specs, contexts, and connections that help decompose applications into components.
Scaling and Orchestrating Microservices with OSGi - N Bartlettmfrancis
This document discusses how OSGi services can be used to implement microservices and enable their orchestration and scaling. It describes how OSGi services have supported capabilities like runtime assembly, software components, and continuous delivery since before the term "microservices" was coined. The document argues that OSGi services align with many characteristics of microservices, like independent deployability, but with OSGi additionally enforcing encapsulation where discipline is needed with other approaches. It also discusses how OSGi remote services and discovery allow services to be scaled horizontally across processes and machines while enabling dynamic availability and pluggability. The document demonstrates these concepts with an OSGi-based microservices orchestration platform.
Building the ideal betting stack | London Erlang User Group presentationErlang Solutions
Speaker: Chandru Mullaparthi, Chairman of the Erlang Industrial User Group; Former Head of Software Architecture at bet365.
Expert industry analysis and proposal of the ideal components available today to make up a betting tech stack. A creative session to visualise building a betting stack from the ground up with no concern for a legacy, instead focusing on traditional and innovative technologies.
Chandru will draw on his experience building highly available, reliable, and concurrent systems for the online gambling & betting industry to outline his dreamteam of programming languages, middleware, operations, configuration management, and databases.
Rails has evolved over the past 5 years from making blogs in 15 minutes to handling larger scale applications. Key developments include the use of technologies like Phusion Passenger, memcached, and message queues to help Rails scale. The introduction of Merb led to debates around whether Rails was a "ghetto." Rails and Merb later reunited. Rails uses metaprogramming techniques like module class_eval, object instance_eval, and Kernel eval under the hood. Rack provides an interface between web servers and frameworks. Future developments for Rails include better modularity, being framework agnostic, a public API without monkeypatching, and technologies like LightRecord for ORM with key-value stores.
Breathing new life into JSP with OSGi? Why!!! - R Augemfrancis
OSGi Community Event 2014
Abstract:
Experience level: Intermediate
JSP is a legacy UI model developed in the early days of Java EE (back when it was still J2EE). In spite if it's many proclaimed drawbacks, it has persisted until today in many applications and is still widely used while being despised by many. In this talk we'll explore the reasons why anyone would implementing support for such a hated technology in OSGI and how such an implementation might actually breath new life into it.
Speaker - Raymond Auge (Liferay Inc.)
The document discusses why Ruby and Rails are good choices for programming. Ruby is designed to save time and make programming fun and easy to read. Rails provides a full-stack framework that embraces Ruby's philosophy of freedom and productivity. It includes features like MVC, ORM, internationalization and more. Some potential weak points are hosting on Windows and lack of POSIX support, but overall Ruby and Rails provide coherency and maximize productivity and happiness for developers.
Lambda local - A local server for developing AWS Lambda function in JavaYenwen Feng
This document discusses using AWS Lambda to develop REST services. It begins with an introduction to AWS Lambda, including what it is, when it launched, supported programming languages, and billing model. It then provides examples of building a simple "Hello World" REST service using AWS Lambda and API Gateway, including packaging, deployment, testing, and using Lambda proxy integration with API Gateway. It also discusses some additional Lambda details and alternatives like Lambda-Local for local development and testing.
This document discusses Nashorn, a JavaScript engine for Java 8 that replaced the older Rhino engine. It provides an overview of Nashorn's features like improved performance and ECMAScript compliance compared to Rhino. It also introduces Avatar.js, an open source framework that brings the Node.js programming model to the JVM using Nashorn. Finally, it briefly describes Project Avatar, which provides JavaScript services and client frameworks to build applications using Nashorn and Avatar.js that integrate with Java platforms and APIs.
This document discusses aspect-oriented programming (AOP) and how it can be implemented using PostSharp. AOP aims to make cross-cutting concerns like logging and error handling easier to implement separately from business logic. It describes how PostSharp uses IL weaving to modify code at compile time or JIT to add aspects without changing the original code. Alternatives to PostSharp include using the .NET profiler API or proxies, but IL weaving generally has better performance. The document also briefly outlines how AOP may be improved in future versions of C# compilers like Roslyn.
Developing Java EE applications with NetBeans and PayaraPayara
This document discusses developing Java EE applications with NetBeans and Payara. It introduces Payara as an open source drop-in replacement for GlassFish Server that provides enhancements, bug fixes and patches. It also notes that Java EE 7 is less complex than older J2EE, using annotations and POJOs rather than being XML-driven, and provides features like dependency injection. The document includes an agenda and code demo section.
WebRTC and the Web Audio API allow real-time communication and audio/video processing capabilities directly in the browser. WebRTC provides APIs for capturing media streams from devices and establishing peer-to-peer connections, while dealing with challenges like firewalls and NAT using ICE, STUN and TURN. The Web Audio API enables efficient audio stream manipulation through a processing block model. While building full-featured video chat applications with WebRTC alone can be difficult, these capabilities open opportunities for applications involving real-time media and audio processing directly in the browser.
This document discusses how to build command line interface (CLI) applications in Ruby. It introduces the Thor gem for building CLI apps with single commands and then discusses building interactive shell apps using a read-eval-print loop (REPL) and the GNU Readline library. The document provides examples of CLI apps, why they are useful, and tips for making better CLI apps, and concludes by showcasing a Facebook command line application built with these techniques.
Alfresco REST API of the future ... is closer than you thinkJ V
BeeCon 2016 (Brussels)
For an update, please see: https://www.slideshare.net/jvonka/exciting-new-alfresco-apis
https://www.youtube.com/watch?v=7jR2PV5w1O4
http://beecon.buzz/2016/talks/?id=20160401001
Alfresco Repository comes with a great REST API but some of these API's can be difficult to navigate and use.
Alfresco will show us about the future of REST API's, where the market is moving and how we are embracing this future at Alfresco.
Come and see how straightforward it will soon be to manage files, folders, custom node types, shared links and much more. The future is closer than you think !
----
Alfresco V1 REST APIs - new capabilities to get & manage nodes (files, folders & custom metadata), associations, versioning, locks, shared links, trashcan, sites, queries, people, search, discovery, auth ... etc. These are in addition to existing capabilities to manage tags, comments, favorites, activities & site memberships.
For more details, please see:
- https://github.com/Alfresco/rest-api-explorer/blob/community-head/src/main/webapp/definitions
Update 19/Jan/17
Community 201701 GA
https://community.alfresco.com/docs/DOC-6587-alfresco-community-edition-201701-ga-release-notes
Update 16/Dec/16
Community 201612 GA
Update 18/Nov/16
Community 201611 EA
Update 04/Nov/16
Preview build available in Community Dev Build (476+)
Update 13/Sep/16
Community 201609 EA
Update 29/Jun/16
Community 201606 EA
Update 03/Jun/16
Early preview available in Community Dev Build (444+)
Update 18/May/16
Early preview available in Community Dev Build (442+)
This document provides an introduction to Node.js, including:
- Node.js allows JavaScript to be run on the server-side using the V8 JavaScript engine.
- It uses an event-driven, non-blocking I/O model that makes it lightweight and efficient.
- Node.js supports module-driven development through NPM, which has over 250,000 packages available.
The document discusses the company Inkzee.com moving their infrastructure from a limited virtual machine setup using MySQL and Apache to Amazon Web Services using Cherokee as a web server, Tokyo Cabinet for storage, and Sphinx for searching. This new setup improved performance and scalability issues the company was facing with their previous virtual machine configuration.
This document provides an introduction and overview of React, including:
- What React is and who is using it
- The core concepts of React including components, one-way data flow, and the virtual DOM
- Why React is popular due to its cross-platform capabilities, performance advantages of the virtual DOM, and being maintained by Facebook
- How to get started with React using create-react-app and building a basic component
APIDays Australia - Openresty for scaleSteven Cooper
As CTO of a rapid growth FinTech one of my biggest challenges is rebuilding the platform to scale elastically plus still allowing for the rapid development and integration of core platform functionality. Even for fast prototyping and design Openresty allows for the quick integration for mobile and web services that can integrate with almost any database or stateless program logic allowing for faster than normal deployment and event geo based load balancing. Utilising NGINX ill show some of the ways i am overcoming some of the challenges by building a developer focused api platform that will allow the quick and easy deployment of new services while still maintaining the functionality needed by modern REST API design techniques. Also we will be looking at some of the additional functionality available to the Openresty suite including Machine Learning (which can be used for API error handling), QR code handling and API tempting and authentication. http://au.apidays.io/abstracts.html#2747a1f1
Building a Large Scale SEO/SEM Application with Apache Solr: Presented by Rah...Lucidworks
The document discusses building a large scale SEO/SEM application using Apache Solr. It describes some of the key challenges faced in indexing and searching over 40 billion records in the application's database each month. It discusses techniques used to optimize the data import process, create a distributed index across multiple tables, address out of memory errors, and improve search performance through partitioning, index optimization, and external caching.
Ruby is an object-oriented scripting language with features like mixins, metaprogramming, and dynamic typing. It allows defining functions and methods that can take blocks or lambdas as arguments. Arrays, hashes, and ranges provide ways to iterate over collections. Strings support interpolation and methods like split. Classes define methods that can access fields and local variables. The JSON library extends core types like Hash to add methods like to_json for serialization.
The document discusses how and why Ruby was introduced to replace the Java technology used for an independent music company's webclient. Ruby was chosen to improve testability, efficiency, and productivity compared to the previous solution. It was gradually introduced over several months but complete migration would have been better. Ruby significantly improved productivity and quality while enabling easier development, though performance suffered and it can enable bad practices if not used carefully.
The document discusses Cujo.js, an architectural toolkit for building modular JavaScript applications. It introduces the creators Brian Cavalier and John Hann and outlines some of the key Cujo.js libraries like curl.js, wire.js, and meld.js that help with module loading, dependency injection, and aspect-oriented programming. The document then covers general concepts in Cujo.js like inversion of control and application composition as well as specific concepts like wire specs, contexts, and connections that help decompose applications into components.
Scaling and Orchestrating Microservices with OSGi - N Bartlettmfrancis
This document discusses how OSGi services can be used to implement microservices and enable their orchestration and scaling. It describes how OSGi services have supported capabilities like runtime assembly, software components, and continuous delivery since before the term "microservices" was coined. The document argues that OSGi services align with many characteristics of microservices, like independent deployability, but with OSGi additionally enforcing encapsulation where discipline is needed with other approaches. It also discusses how OSGi remote services and discovery allow services to be scaled horizontally across processes and machines while enabling dynamic availability and pluggability. The document demonstrates these concepts with an OSGi-based microservices orchestration platform.
Building the ideal betting stack | London Erlang User Group presentationErlang Solutions
Speaker: Chandru Mullaparthi, Chairman of the Erlang Industrial User Group; Former Head of Software Architecture at bet365.
Expert industry analysis and proposal of the ideal components available today to make up a betting tech stack. A creative session to visualise building a betting stack from the ground up with no concern for a legacy, instead focusing on traditional and innovative technologies.
Chandru will draw on his experience building highly available, reliable, and concurrent systems for the online gambling & betting industry to outline his dreamteam of programming languages, middleware, operations, configuration management, and databases.
Rails has evolved over the past 5 years from making blogs in 15 minutes to handling larger scale applications. Key developments include the use of technologies like Phusion Passenger, memcached, and message queues to help Rails scale. The introduction of Merb led to debates around whether Rails was a "ghetto." Rails and Merb later reunited. Rails uses metaprogramming techniques like module class_eval, object instance_eval, and Kernel eval under the hood. Rack provides an interface between web servers and frameworks. Future developments for Rails include better modularity, being framework agnostic, a public API without monkeypatching, and technologies like LightRecord for ORM with key-value stores.
Breathing new life into JSP with OSGi? Why!!! - R Augemfrancis
OSGi Community Event 2014
Abstract:
Experience level: Intermediate
JSP is a legacy UI model developed in the early days of Java EE (back when it was still J2EE). In spite if it's many proclaimed drawbacks, it has persisted until today in many applications and is still widely used while being despised by many. In this talk we'll explore the reasons why anyone would implementing support for such a hated technology in OSGI and how such an implementation might actually breath new life into it.
Speaker - Raymond Auge (Liferay Inc.)
The document discusses why Ruby and Rails are good choices for programming. Ruby is designed to save time and make programming fun and easy to read. Rails provides a full-stack framework that embraces Ruby's philosophy of freedom and productivity. It includes features like MVC, ORM, internationalization and more. Some potential weak points are hosting on Windows and lack of POSIX support, but overall Ruby and Rails provide coherency and maximize productivity and happiness for developers.
Lambda local - A local server for developing AWS Lambda function in JavaYenwen Feng
This document discusses using AWS Lambda to develop REST services. It begins with an introduction to AWS Lambda, including what it is, when it launched, supported programming languages, and billing model. It then provides examples of building a simple "Hello World" REST service using AWS Lambda and API Gateway, including packaging, deployment, testing, and using Lambda proxy integration with API Gateway. It also discusses some additional Lambda details and alternatives like Lambda-Local for local development and testing.
This document discusses Nashorn, a JavaScript engine for Java 8 that replaced the older Rhino engine. It provides an overview of Nashorn's features like improved performance and ECMAScript compliance compared to Rhino. It also introduces Avatar.js, an open source framework that brings the Node.js programming model to the JVM using Nashorn. Finally, it briefly describes Project Avatar, which provides JavaScript services and client frameworks to build applications using Nashorn and Avatar.js that integrate with Java platforms and APIs.
This document discusses aspect-oriented programming (AOP) and how it can be implemented using PostSharp. AOP aims to make cross-cutting concerns like logging and error handling easier to implement separately from business logic. It describes how PostSharp uses IL weaving to modify code at compile time or JIT to add aspects without changing the original code. Alternatives to PostSharp include using the .NET profiler API or proxies, but IL weaving generally has better performance. The document also briefly outlines how AOP may be improved in future versions of C# compilers like Roslyn.
Developing Java EE applications with NetBeans and PayaraPayara
This document discusses developing Java EE applications with NetBeans and Payara. It introduces Payara as an open source drop-in replacement for GlassFish Server that provides enhancements, bug fixes and patches. It also notes that Java EE 7 is less complex than older J2EE, using annotations and POJOs rather than being XML-driven, and provides features like dependency injection. The document includes an agenda and code demo section.
WebRTC and the Web Audio API allow real-time communication and audio/video processing capabilities directly in the browser. WebRTC provides APIs for capturing media streams from devices and establishing peer-to-peer connections, while dealing with challenges like firewalls and NAT using ICE, STUN and TURN. The Web Audio API enables efficient audio stream manipulation through a processing block model. While building full-featured video chat applications with WebRTC alone can be difficult, these capabilities open opportunities for applications involving real-time media and audio processing directly in the browser.
This document discusses how to build command line interface (CLI) applications in Ruby. It introduces the Thor gem for building CLI apps with single commands and then discusses building interactive shell apps using a read-eval-print loop (REPL) and the GNU Readline library. The document provides examples of CLI apps, why they are useful, and tips for making better CLI apps, and concludes by showcasing a Facebook command line application built with these techniques.
Alfresco REST API of the future ... is closer than you thinkJ V
BeeCon 2016 (Brussels)
For an update, please see: https://www.slideshare.net/jvonka/exciting-new-alfresco-apis
https://www.youtube.com/watch?v=7jR2PV5w1O4
http://beecon.buzz/2016/talks/?id=20160401001
Alfresco Repository comes with a great REST API but some of these API's can be difficult to navigate and use.
Alfresco will show us about the future of REST API's, where the market is moving and how we are embracing this future at Alfresco.
Come and see how straightforward it will soon be to manage files, folders, custom node types, shared links and much more. The future is closer than you think !
----
Alfresco V1 REST APIs - new capabilities to get & manage nodes (files, folders & custom metadata), associations, versioning, locks, shared links, trashcan, sites, queries, people, search, discovery, auth ... etc. These are in addition to existing capabilities to manage tags, comments, favorites, activities & site memberships.
For more details, please see:
- https://github.com/Alfresco/rest-api-explorer/blob/community-head/src/main/webapp/definitions
Update 19/Jan/17
Community 201701 GA
https://community.alfresco.com/docs/DOC-6587-alfresco-community-edition-201701-ga-release-notes
Update 16/Dec/16
Community 201612 GA
Update 18/Nov/16
Community 201611 EA
Update 04/Nov/16
Preview build available in Community Dev Build (476+)
Update 13/Sep/16
Community 201609 EA
Update 29/Jun/16
Community 201606 EA
Update 03/Jun/16
Early preview available in Community Dev Build (444+)
Update 18/May/16
Early preview available in Community Dev Build (442+)
This document provides an introduction to Node.js, including:
- Node.js allows JavaScript to be run on the server-side using the V8 JavaScript engine.
- It uses an event-driven, non-blocking I/O model that makes it lightweight and efficient.
- Node.js supports module-driven development through NPM, which has over 250,000 packages available.
The document discusses the company Inkzee.com moving their infrastructure from a limited virtual machine setup using MySQL and Apache to Amazon Web Services using Cherokee as a web server, Tokyo Cabinet for storage, and Sphinx for searching. This new setup improved performance and scalability issues the company was facing with their previous virtual machine configuration.
This document provides an introduction and overview of React, including:
- What React is and who is using it
- The core concepts of React including components, one-way data flow, and the virtual DOM
- Why React is popular due to its cross-platform capabilities, performance advantages of the virtual DOM, and being maintained by Facebook
- How to get started with React using create-react-app and building a basic component
APIDays Australia - Openresty for scaleSteven Cooper
As CTO of a rapid growth FinTech one of my biggest challenges is rebuilding the platform to scale elastically plus still allowing for the rapid development and integration of core platform functionality. Even for fast prototyping and design Openresty allows for the quick integration for mobile and web services that can integrate with almost any database or stateless program logic allowing for faster than normal deployment and event geo based load balancing. Utilising NGINX ill show some of the ways i am overcoming some of the challenges by building a developer focused api platform that will allow the quick and easy deployment of new services while still maintaining the functionality needed by modern REST API design techniques. Also we will be looking at some of the additional functionality available to the Openresty suite including Machine Learning (which can be used for API error handling), QR code handling and API tempting and authentication. http://au.apidays.io/abstracts.html#2747a1f1
Building a Large Scale SEO/SEM Application with Apache Solr: Presented by Rah...Lucidworks
The document discusses building a large scale SEO/SEM application using Apache Solr. It describes some of the key challenges faced in indexing and searching over 40 billion records in the application's database each month. It discusses techniques used to optimize the data import process, create a distributed index across multiple tables, address out of memory errors, and improve search performance through partitioning, index optimization, and external caching.
Ruby is an object-oriented scripting language with features like mixins, metaprogramming, and dynamic typing. It allows defining functions and methods that can take blocks or lambdas as arguments. Arrays, hashes, and ranges provide ways to iterate over collections. Strings support interpolation and methods like split. Classes define methods that can access fields and local variables. The JSON library extends core types like Hash to add methods like to_json for serialization.
Ruby is Awesome and Rust is Awesome and Building a Game in Both is AWESOMEJulien Fitzpatrick
Learning to program in Ruby was super fun, but I kept hearing people talk about typed languages that are so-called "closer to the metal," like Rust. It seemed intimidating, but I was curious! I built a small, text-based adventure game in both Ruby and Rust, side-by-side, so I could see what the differences and similarities were. I learned a lot, and now I'm here to share it all with you!
In December 2015, PHP 7.0 was released marking a new milestone for PHP and web application developers. We thought all was going to be easy to migrate to PHP 7.0. Unfortunately, many extensions and tools we use weren’t ready yet. In December 2016 PHP 7.1 was released, and the urgency to update became real as PHP 5.6 was nearing end-of-life. In this talk, I describe the analysis and the challenges we faced migrating towards PHP 7.1 so you can learn how to defeat those challenges if you plan to migrate too.
Fullstack End-to-end test automation with Node.js, one year laterMek Srunyu Stittri
Airware's cloud automation team returns with a year’s worth of lessons learned, and will share the challenges involved with building a full-stack test automation framework with Node.js while using the latest and greatest in JavaScript tools.
Topics
Async / Await - an alternative to Webdriver’s built-in control flow. Limitations with control flow. Use Babel to write the latest ES6 JavaScript syntax. Custom reporter with screenshots from Sauce Labs. Parallel tests and accurate reporting.
Type-safe JavaScript with Facebook’s Flow-type library.
Robust visual diffs
The document provides an overview and agenda for an Apache Solr crash course. It discusses topics such as information retrieval, inverted indexes, metrics for evaluating IR systems, Apache Lucene, the Lucene and Solr APIs, indexing, searching, querying, filtering, faceting, highlighting, spellchecking, geospatial search, and Solr architectures including single core, multi-core, replication, and sharding. It also provides tips on performance tuning, using plugins, and developing a Solr-based search engine.
Building Intelligent Search Applications with Apache Solr and PHP5israelekpo
ZendCon 2010 - Building Intelligent Search Applications with Apache Solr and PHP5. This is a presentation on how to create intelligent web-based search applications using PHP 5 and the out-of-the-box features available in Solr 1.4.1 After we finish we finish the illustration of adding, updating and removing data from the Solr index, we will discuss how to add features such as auto-completion, hit highlighting, faceted navigation, spelling suggestions etc
Building a real time, solr-powered recommendation engineTrey Grainger
Searching text is what Solr is known for, but did you know that many companies receive an equal or greater business impact through implementing a recommendation engine in addition to their text search capabilities? With a few tweaks, Solr (or Lucene) can also serve as a full featured recommendation engine. Machine learning libraries like Apache Mahout provide excellent behavior-based, off-line recommendation algorithms, but what if you want more control? This talk will demonstrate how to effectively utilize Solr to perform collaborative filtering (users who liked this also liked…), categorical classification and subsequent hierarchical-based recommendations, as well as related-concept extraction and concept based recommendations. Sound difficult? It’s not. Come learn step-by-step how to create a powerful real-time recommendation engine using Apache Solr and see some real-world examples of some of these strategies in action.
ConFoo 2017: Introduction to performance optimization of .NET web appsPierre-Luc Maheu
This document discusses performance optimization of .NET web apps. It defines performance as response time and resource utilization. It emphasizes measuring performance before and during optimization to identify the right things to optimize. A variety of tools are presented for different levels of performance monitoring and profiling, including Application Performance Monitoring, lightweight code profilers, and code profilers for highest detail. Best practices like leveraging load balancers and avoiding implicit transactions are also recommended.
Introductory presentation about what React is, why it would be useful and how it can be built into the existing legacy architecture of GraysOnline that spans almost a decade of technologies.
The document discusses Ruby on Rails, an open-source web application framework. It is optimized for programmer happiness and productivity by favoring convention over configuration, allowing developers to write code more quickly. Ruby on Rails uses a model-view-controller (MVC) architecture and is widely adopted by companies like Twitter.
The document compares PHP and Ruby, and the web frameworks CakePHP and Ruby on Rails. It discusses the key features and differences between PHP and Ruby, and demonstrates how a simple blog application can be created from scratch in under a minute using Ruby on Rails with no coding required, compared to the additional coding needed in CakePHP. The document argues that Ruby on Rails is more productive and fully-featured compared to CakePHP.
These slides are from a workshop I taught in April 2016 to a group from INTERalliance (http://interalliance.org/).
The code examples can be found here:
- https://github.com/andrewlively/crm
- https://github.com/andrewlively/Node.js-Presentation-Examples
This document provides an overview of enterprise systems and web frameworks. It discusses multi-tier architectures, with presentation, logic and data tiers typically running on separate servers. Web frameworks are presented as assisting with common tasks like database access. Scaffolding, which automatically generates application skeletons from data models, is explained for Ruby on Rails and ASP.NET. Object-relational mapping is discussed as mapping data between relational and object formats. Many frameworks also adopt the MVC pattern, separating applications into models, views, and controllers. Finally, application servers are introduced as optimizing performance and managing deployment of enterprise applications.
Ruby on Rails is a web framework built on Ruby that aims to make web development simpler and more enjoyable. It was extracted from the Basecamp project management tool. Rails emphasizes conventions over configurations, separating concerns into models, views, and controllers, and following patterns that reduce repetition. Developers can get started with Rails by downloading the Ruby language and using resources like books, screencasts, and online communities to learn more. Popular hosting providers that support Rails include Heroku, Slicehost, and Dreamhost.
The document discusses an open course on Ruby on Rails that covers topics like the Rails framework, IDEs like NetBeans and Apatana RadRails, version control with Google Code and SVN, team collaboration, and questions and answers. It also provides several resources for learning more about Rails, communicating with experts, and staying up to date with the Rails community in China.
This document provides an overview and introduction to Ruby on Rails. It begins with an agenda and introduction to the speaker. It then provides a brief introduction to Rails, including what industries use it, examples of popular websites built with Rails, and an explanation of its model-view-controller architecture and RESTful design philosophy. The document continues with sections on auditing Rails applications, identifying common vulnerabilities like mass assignment and cross-site scripting, and recommendations for removing vulnerabilities.
Ruby On Rails - Rochester K Linux User GroupJose de Leon
The document provides a history and overview of Ruby and Ruby on Rails. It discusses how Ruby on Rails embodies best practices in software design such as the model-view-controller pattern, test-driven development, and principles of simplicity. Examples are given of how Rails enforces separation of concerns and automates common development tasks to improve productivity.
Server-side Web development via Ruby on Railsg3ppy
Ruby on Rails is an open-source web application framework used to build database-backed web applications according to the MVC pattern. It provides conventions for building applications, including generators to create the database schema and controller actions. The framework emphasizes convention over configuration and is based on the Ruby programming language.
Ror Seminar With agilebd.org on 23 Jan09Shaer Hassan
This presentation is done by Code71 Team to the IT community in Bangladesh. The presentation covers the basics of Ruby on Rails and the advantage of it over many other contemporary languages to build web applications. It also mentions the strength of RoR by siting great quotes and examples of great sites.
Rails Girls: Programming, Web Applications and Ruby on RailsDonSchado
This document provides an introduction to programming, web applications, and Ruby on Rails. It discusses key concepts like HTTP requests and responses, the MVC pattern, and the Rails framework. It encourages learning programming through communication, passion, research, problem solving and patience. The document concludes by recommending resources for learning to code in Ruby on Rails.
Wordpress workshop accademia di belle arti di bergamo - 22 04 2015Andrea Cognini
This document summarizes a WordPress workshop that covers:
- An overview of WordPress as a content management system (CMS) built on PHP and MySQL.
- Features of WordPress like personalization, search engine optimization (SEO), and types of sites that can be created with it like blogs, magazines and ecommerce sites.
- The process of installing WordPress including preparing the hosting environment, downloading WordPress, configuring the wp-config.php file, and installing themes.
- How to customize WordPress through its editor, plugins, widgets and theme customization options.
The document discusses software as a service (SAAS) and why the company Viridian chose to use the Ruby on Rails web application framework. It notes that Rails allows for lower entry costs than other options due to reduced server maintenance needs and flexibility. It also summarizes some key advantages of Rails like its convention over configuration approach and support for modern technologies. The document provides resources for learning Rails including dev environments, tutorials, and open source projects to review.
All Things API Presentation - Gordon Weakleim [HomeAway]Cloud Elements
This document summarizes the evolution of HomeAway's APIs from multiple acquired companies with different architectures into a unified REST API. It describes how the API was designed with REST constraints in mind to provide a consistent interface. It also discusses how operational concerns led to additional layers being added for caching, authentication, analytics and more. The API framework approach standardized URLs, media types, and provided tooling to support over 250 developers building and maintaining the APIs.
Similar to WebUp Feb 2017 - How (not) to get lost in bigger Ruby on Rails project. (20)
APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024APNIC
Ellisha Heppner, Grant Management Lead, presented an update on APNIC Foundation to the PNG DNS Forum held from 6 to 10 May, 2024 in Port Moresby, Papua New Guinea.
Meet up Milano 14 _ Axpo Italia_ Migration from Mule3 (On-prem) to.pdfFlorence Consulting
Quattordicesimo Meetup di Milano, tenutosi a Milano il 23 Maggio 2024 dalle ore 17:00 alle ore 18:30 in presenza e da remoto.
Abbiamo parlato di come Axpo Italia S.p.A. ha ridotto il technical debt migrando le proprie APIs da Mule 3.9 a Mule 4.4 passando anche da on-premises a CloudHub 1.0.
Instagram has become one of the most popular social media platforms, allowing people to share photos, videos, and stories with their followers. Sometimes, though, you might want to view someone's story without them knowing.
Bridging the Digital Gap Brad Spiegel Macon, GA Initiative.pptxBrad Spiegel Macon GA
Brad Spiegel Macon GA’s journey exemplifies the profound impact that one individual can have on their community. Through his unwavering dedication to digital inclusion, he’s not only bridging the gap in Macon but also setting an example for others to follow.
Gen Z and the marketplaces - let's translate their needsLaura Szabó
The product workshop focused on exploring the requirements of Generation Z in relation to marketplace dynamics. We delved into their specific needs, examined the specifics in their shopping preferences, and analyzed their preferred methods for accessing information and making purchases within a marketplace. Through the study of real-life cases , we tried to gain valuable insights into enhancing the marketplace experience for Generation Z.
The workshop was held on the DMA Conference in Vienna June 2024.
8. Why so complicated?
- Fat model
- Fat controller
- Fat view
- Too much logic!!
- Creating Work Order
- ~350 lines
- Model?
- Controller?
- Service per action
- Index Jobs
- ~ 150 lines query
- JSON presenter - ~ 350 lines
- View?
- Presenter
9. What is Presenter?
- Move logic from html/json template to some class
- Nice & clean template
- Freedom of use
- Speed
- Decorators, Presenters, JSONPresenters(?)
10. What is Service?
- Move logic from Controllers and Models
- Dynamic validations
- Creating nested models
- Complex logic
- Indexing
- Backup data
- Counting
- Notifications
- Third Party APIs
- Generators (Transaction numbers, Colors, Keys)
11. What is Query?
- Move logic from Controllers
- Dynamic queries
- Filters/Conditions
- Ordering
- Restrictions
- Calculations
- Stats (pagination, summary)
- Speed
- Loading connected data
- Loading only necessary data
- Jobs query
- 27 parts
- Pos query
- 6 base classes
- 200 lines
- 50 parts