The document discusses starting a Node.js community project called Seneca. Seneca is described as a toolkit that allows building a startup minimum viable product in a weekend. It encourages participants to sign up via Twitter or email and contribute code to the GitHub repository. The document provides an overview of Node.js modules and how to create, publish and use them as part of developing the Seneca project.
Microservices With SenecaJS
Websites: https://www.designveloper.com
Visit our blog https://www.designveloper.com/blog
Like Facebook page https://www.facebook.com/designveloper/
SockJS is a browser JavaScript library that provides a WebSocket-like object. It gives a coherent, cross-browser, Javascript API which creates a low latency, full duplex, cross-domain communication channel between the browser and the web server.
Under the hood SockJS tries to use native WebSockets first.
SockJS is intended to work for all modern browsers and in environments which don't support the WebSocket protocol. In this slide a real time chat application using SockJS (sockjs-1.1.1.min.js as SockJS-client, SockJS-node as SockJS-server) step by step development is also shown.
Comet approaches overview, benefits and drawbacks: polling, long-polling, HTML5 server-side events, HTML5 WebSocket.
Example of WebSocket and Spring 4 integration using STOMP protocol.
Microservices With SenecaJS
Websites: https://www.designveloper.com
Visit our blog https://www.designveloper.com/blog
Like Facebook page https://www.facebook.com/designveloper/
SockJS is a browser JavaScript library that provides a WebSocket-like object. It gives a coherent, cross-browser, Javascript API which creates a low latency, full duplex, cross-domain communication channel between the browser and the web server.
Under the hood SockJS tries to use native WebSockets first.
SockJS is intended to work for all modern browsers and in environments which don't support the WebSocket protocol. In this slide a real time chat application using SockJS (sockjs-1.1.1.min.js as SockJS-client, SockJS-node as SockJS-server) step by step development is also shown.
Comet approaches overview, benefits and drawbacks: polling, long-polling, HTML5 server-side events, HTML5 WebSocket.
Example of WebSocket and Spring 4 integration using STOMP protocol.
Securing Microservices using Play and Akka HTTPRafal Gancarz
Going down the microservices route makes a lot of things around creating and maintaining large systems easier but it comes at a cost too, particularly associated with challenges around security. While securing monolithic applications was a relatively well understood area, the same can't be said about microservice based architectures.
This presentation covers how implementing microservices affects the security of distributed systems, outlines pros and cons of several standards and common practices and offers practical suggestions for securing microservice based systems using Play and Akka HTTP.
A language for the Internet: Why JavaScript and Node.js is right for Internet...Tom Croucher
Increasingly we want to do more with the web and Internet applications we build. We have more features, more data, more users, more devices and all of it needs to be in real-time. With all of these demands how can we keep up? The answer is choosing a language and a platform that are optimized for the kind of architecture Internet and web applications really have. The traditional approach prioritises computation, assigning server resources before they are actually needed. JavaScript and Node.js both take an event driven approach only assigning resources to events as they happen. This allows us to make dramatic gains in performance and resource utilization while still having an environment which is fun and easy to program.
NodeJS : Communication and Round Robin WayEdureka!
Node.js uses JavaScript - a language known to millions of developers worldwide - thus giving it a much lower learning curve even for complete beginners. Using Node.js you can build simple Command Line programs or complex enterprise level web applications with equal ease. Node.js is an event-driven, server-side, asynchronous development platform with lightning speed execution. Node.js helps you to code the most complex functionalities in just a few lines of code.
Essa apresentação aconteceu no 17 encontro dos usuários de Rails de PE - Frevo on Rails. Nela, eu abordo 4 tópicos importantes na hora de implementar APIs: Rest, Consistencia, Versionamento e Segurança.
Slides presented at the Vue.js meetup in Paris the 3rd of December 2016.
Nuxt.js is a minimalist framework for server-rendered Vue.js applications.
https://nuxtjs.org
.NET Conf 2018: Build Great Libraries using .NET StandardImmo Landwerth
Description
Want to create great .NET class libraries? Confused about .NET Standard, .NET Core, and .NET Framework? Watch this talk to learn how you can easily support multiple platforms with .NET Standard and no compromises, thanks to via multi-targeting. We'll also cover the other aspects, such as versioning, strong naming, and binding redirects.
vert.x 3.1 - be reactive on the JVM but not only in JavaClément Escoffier
Softshake 2015 Talk
Vert.x 3 is a toolkit to create reactive applications on the Java Virtual Machine. Vert.x 3 takes the JVM to new levels of reactive awesomeness: it lets you build scalable applications transparently distributed in Java, JavaScript, Ruby and Groovy. And, you don’t have to choose a single language, but mix them! This talk presents the key concepts of Vert.x and how you can use it to build your next application. This session explains how the simple model promoted by Vert.x enables the construction of concurrent, scalable and efficient micro-service based applications. Several examples are developed during the talk and demonstrates Vert.x features such as the distributed event bus, the high availability, the polyglot aspect and vert.x web.
A presentation I gave on September 26 at the Melbourne Symfony developers group on using Environment Variables (envvars) in Symfony and managing secrets in your PHP applications.
For more information on these subjects, check out the supporting piece I wrote: https://samjarrett.com.au/swipe-right
Presentation of my TechTalk at eSapce (Every Thursday one of the departments make a session about something recently begun to use or a new technology, this was my session from SysOps team.) This is an introduction to Ansible, and how to get started with it ... and since then we moved to Ansible :-)
Ansible is a great tool for many purposes like: configuration management, contentious deployment, and multi-tier orchestration ... and more!
- http://tech.aabouzaid.com/
- http://espace.com.eg/
- http://ansible.com/
EC2 AMI Factory with Chef, Berkshelf, and PackerGeorge Miranda
Presentation accompanying a Live Demo at the AWS Pop-Up Loft in San Francisco on using Chef + Berks + Packer to create an AWS EC2 AMI Factory.
Demo Repo available here -- https://github.com/gmiranda23/chef-ami-factory
Richard rodger technical debt - web summit 2013Richard Rodger
The only way developers can finish projects on-time and under-budget is by taking on Technical Debt. Taking shortcuts, using quick fixes, and writing unmaintainable code builds up a technical debt that get the project delivered today. Tomorrow, there will be a reckoning, as development costs spiral and progress grinds to a halt. This talk helps you embrace the debt, love the cowboys, and gives you a way to make repayments.
Securing Microservices using Play and Akka HTTPRafal Gancarz
Going down the microservices route makes a lot of things around creating and maintaining large systems easier but it comes at a cost too, particularly associated with challenges around security. While securing monolithic applications was a relatively well understood area, the same can't be said about microservice based architectures.
This presentation covers how implementing microservices affects the security of distributed systems, outlines pros and cons of several standards and common practices and offers practical suggestions for securing microservice based systems using Play and Akka HTTP.
A language for the Internet: Why JavaScript and Node.js is right for Internet...Tom Croucher
Increasingly we want to do more with the web and Internet applications we build. We have more features, more data, more users, more devices and all of it needs to be in real-time. With all of these demands how can we keep up? The answer is choosing a language and a platform that are optimized for the kind of architecture Internet and web applications really have. The traditional approach prioritises computation, assigning server resources before they are actually needed. JavaScript and Node.js both take an event driven approach only assigning resources to events as they happen. This allows us to make dramatic gains in performance and resource utilization while still having an environment which is fun and easy to program.
NodeJS : Communication and Round Robin WayEdureka!
Node.js uses JavaScript - a language known to millions of developers worldwide - thus giving it a much lower learning curve even for complete beginners. Using Node.js you can build simple Command Line programs or complex enterprise level web applications with equal ease. Node.js is an event-driven, server-side, asynchronous development platform with lightning speed execution. Node.js helps you to code the most complex functionalities in just a few lines of code.
Essa apresentação aconteceu no 17 encontro dos usuários de Rails de PE - Frevo on Rails. Nela, eu abordo 4 tópicos importantes na hora de implementar APIs: Rest, Consistencia, Versionamento e Segurança.
Slides presented at the Vue.js meetup in Paris the 3rd of December 2016.
Nuxt.js is a minimalist framework for server-rendered Vue.js applications.
https://nuxtjs.org
.NET Conf 2018: Build Great Libraries using .NET StandardImmo Landwerth
Description
Want to create great .NET class libraries? Confused about .NET Standard, .NET Core, and .NET Framework? Watch this talk to learn how you can easily support multiple platforms with .NET Standard and no compromises, thanks to via multi-targeting. We'll also cover the other aspects, such as versioning, strong naming, and binding redirects.
vert.x 3.1 - be reactive on the JVM but not only in JavaClément Escoffier
Softshake 2015 Talk
Vert.x 3 is a toolkit to create reactive applications on the Java Virtual Machine. Vert.x 3 takes the JVM to new levels of reactive awesomeness: it lets you build scalable applications transparently distributed in Java, JavaScript, Ruby and Groovy. And, you don’t have to choose a single language, but mix them! This talk presents the key concepts of Vert.x and how you can use it to build your next application. This session explains how the simple model promoted by Vert.x enables the construction of concurrent, scalable and efficient micro-service based applications. Several examples are developed during the talk and demonstrates Vert.x features such as the distributed event bus, the high availability, the polyglot aspect and vert.x web.
A presentation I gave on September 26 at the Melbourne Symfony developers group on using Environment Variables (envvars) in Symfony and managing secrets in your PHP applications.
For more information on these subjects, check out the supporting piece I wrote: https://samjarrett.com.au/swipe-right
Presentation of my TechTalk at eSapce (Every Thursday one of the departments make a session about something recently begun to use or a new technology, this was my session from SysOps team.) This is an introduction to Ansible, and how to get started with it ... and since then we moved to Ansible :-)
Ansible is a great tool for many purposes like: configuration management, contentious deployment, and multi-tier orchestration ... and more!
- http://tech.aabouzaid.com/
- http://espace.com.eg/
- http://ansible.com/
EC2 AMI Factory with Chef, Berkshelf, and PackerGeorge Miranda
Presentation accompanying a Live Demo at the AWS Pop-Up Loft in San Francisco on using Chef + Berks + Packer to create an AWS EC2 AMI Factory.
Demo Repo available here -- https://github.com/gmiranda23/chef-ami-factory
Richard rodger technical debt - web summit 2013Richard Rodger
The only way developers can finish projects on-time and under-budget is by taking on Technical Debt. Taking shortcuts, using quick fixes, and writing unmaintainable code builds up a technical debt that get the project delivered today. Tomorrow, there will be a reckoning, as development costs spiral and progress grinds to a halt. This talk helps you embrace the debt, love the cowboys, and gives you a way to make repayments.
Meet song nhi your virtual financial assistanceDesignveloper
With this in mind, we gave Song Nhi birth. Using advanced technology such as AI, OCR, NLP, Song Nhi is a friendly intelligent virtual financial assistance which has the potential to help people manage their personal finances efficiently and intuitively through many major chat application like Facebook Messenger, Siri, OK google, Skype, Slack.
Microservices and Seneca at RomaJS groupLuca Lanziani
During the last few years the microservices movement has grown more and more, are we entering a new era of software development? What is a microservice and what's the complexity behind this new approach? A small walk through on microservices and an introduction of Seneca[1], a microservices toolkit for Node.js.
[1]: http://senecajs.org/
Node Interactive : 7 years, 7 design patterns, will node continue to outshineShubhra Kar
In the past 7 years, we have seen the rise of 7 key application architectures among others namely:
SPAs
Realtime Apps/APIs
Hybrid Mobile
Microservices
Serverless
IoT
AI
Node.js is very popular and performant and the hyper growth of modules and APIs proves the point…to an extent that there is a problem of too much choice and inconsistent quality.
Application architectures however cannot afford the same clip of change, else nothing meaningful will ever get delivered. Simultaneously GoLang, Weave, R, Async Java, Swift, Scala et all are competing for the same mindshare. Architects have purists (monoglot) and/or best of breed (polyglot) approaches. Many of them view languages as transient and designs as perpetual.
In this presentation, we will discuss standardization of design patterns across these 7 architectures and how node.js can be an integral part of them.
Dicas para publicar e manter sua aplicação NodeJS em produção. Configure o Express corretamente, trate erros, use o Nginx no seu máximo, monitore sua aplicação javascript server-side com newrelic e logs.
Patterns and practices for real-world event-driven microservicesRachel Reese
Jet.com is an e-commerce startup competing with Amazon. We're heavy users of F#, and have based our architecture around Azure-based event-driven functional microservices. Over the last several months, we've schooled ourselves on what works and what doesn't for F# and microservices. This session will walk you through the lessons we have learned on our way to developing our platform.
Why Reactive Architecture Will Take Over The World (and why we should be wary...Steve Pember
The natural tendency for application developers is to construct their code in a procedural, monolithic pattern. Veteran Developers know that this leads to error prone, unscalable, slow software – yet it is alarmingly prevalent. There have been several architectural patterns that have risen over the years which have attempted to mitigate this problem. We’ve heard of Service Oriented Architecture, Integration Patterns, and Event-Driven Systems, but the Reactive pattern has the best chance for success.
In this talk I will discuss the tenants of the Reactive Pattern and the importance of moving away from Monolithic architectures into Reactive. We will examine Spring Integration and the Grails Async features (along with Netty and RabbitMQ) in order to show they can quickly and effectively help your application to become Reactive. Finally, I will argue that the JVM is the best foundation currently for this architecture – but that if we’re not careful, NodeJS may be the most popular.
ITLC HN 14 - Bizweb Microservices ArchitectureIT Expert Club
Trong 2.5 tiếng diễn giả Nguyễn Minh Khôi sẽ trình bày các vấn đề liên quan đến kiến trúc của Bizweb - giải pháp hosting bán hàng online với trên 10,000 website đang hoạt động:
a. Kiến trúc Bizweb cũ và các khó khăn gặp phải, giải thích lý do xây dựng lại toàn bộ hệ thống từ đầu
b. Giới thiệu kiến trúc Microservices của Bizweb
c. Các vấn đề cần giải quyết trong hệ thống mới
d. Kinh nghiệm thực tế trong việc triển khai Microservices cho Bizweb
This is a presentation I prepared for a local meetup. The audience is a mix of web designers and developers who have a wide range of development experience.
Slides from my talk "Node.js Patterns for Discerning Developers" given at Pittsburgh TechFest 2013. This talk detailed common design pattern for Node.js, as well as common anti-patterns to avoid.
Mathilde Lemée & Romain Maton
La théorie, c’est bien, la pratique … aussi !
Venez nous rejoindre pour découvrir les profondeurs de Node.js !
Nous nous servirons d’un exemple pratique pour vous permettre d’avoir une premiere experience complete autour de Node.js et de vous permettre de vous forger un avis sur ce serveur Javascript qui fait parler de lui !
http://soft-shake.ch/2011/conference/sessions/incubator/2011/09/01/hands-on-nodejs.html
Has the traditional intro to event looped servers (thanks Ryan!) with a couple of examples of why I think node.js is particularly exciting today. Code for the demos can be found at https://github.com/davidpadbury/node-intro.
Using RAG to create your own Podcast conversations.pdfRichard Rodger
The presentation on "Retrieval Augmented Generation for Interactive Podcasts" outlines a method to transform podcast audio into interactive chat interfaces. It covers the design, coding, and practical aspects of using Retrieval Augmented Generation (RAG) to emulate podcast guest responses. The project involves processing a significant volume of podcast data, including episodes, transcripts, and metadata.
The technical discussion focuses on ingesting audio and metadata into an AI system and querying it for conversational responses. Key concepts introduced include vector embedding, which converts text to conceptual vectors using models, and the application of Large Language Models (LLMs) with Transformer architecture for context understanding.
The coding segment details microservice messages for transcript ingestion and chat functionalities, employing transcription services, embedding techniques, and vector storage solutions. Challenges in RAG project deployment are also discussed, highlighting performance, quality, regressions, and managing expectations.
The presentation concludes by contrasting technical complexities with a philosophical vision of AI's potential, inspired by speculative fiction, suggesting a future where AI capabilities vastly exceed human cognitive functions. Further resources and open-source implementations are provided for those interested in the technical development of interactive podcast systems
The presentation addresses the challenges developers face with APIs, such as the diversity in authentication methods, SDKs, and the steep learning curve for each new API. The key proposition is to approach API interactions through an ORM-like abstraction, treating APIs as databases to simplify CRUD operations and action commands.
The core idea revolves around treating everything as a message, leveraging microservices as modular, independent components that communicate through these messages. This approach enables a uniform way to interact with various APIs by encapsulating the complexities behind simple, standardized message formats. The example provided illustrates how updating a GitHub repository's description can be abstracted into a message, streamlining the process.
This methodology promotes a component-based architecture where microservices, defined by their ability to handle specific message patterns, can be composed to achieve more complex functionalities. The presentation outlines how this model can be applied to the GitHub API, transforming traditional API calls into message-driven interactions, thereby achieving a higher level of abstraction and simplicity.
The benefits of this approach include a unified interface for API calls, reduction in the reliance on multiple SDKs, and the facilitation of "pure" business logic that focuses on entity manipulation rather than the intricacies of API communication. The presentation concludes with practical considerations for implementation, such as handling logistics and edge cases, and offers resources for further exploration, emphasizing the philosophy of reducing unnecessary complexity in software design.
This presentation shares the journey of voxgig, a Software-as-a-Service platform for conference exhibitors, and its strategic decision to adopt microservices from the outset. The narrative unfolds with an exploration of how a small, remote team can build a significant platform, detailing a development timeline that spans from initial exploration to platform launch, all structured around microservices.
The architecture of voxgig is dissected to reveal two pivotal tactics: Transport Independence and Pattern Matching, which collectively enable emergent design within the microservices ecosystem. These concepts are expanded to illustrate their role in facilitating service distribution, extension, specialization, and composition, laying the groundwork for a robust microservice architecture.
Despite aspiring to an ideal microservice structure characterized by clean separation between client, application, and core data layers, practical challenges lead to a more organic coding approach, often necessitating later technical debt repayment. The evolution of voxgig's architecture culminates in a diverse ecosystem of 65 Node.js services, enriched by a detailed statistical analysis highlighting service size, age, quality, and the overarching message patterns that constitute the system's backbone.
Key lessons emerge from voxgig's experience, underscoring the complexity of UX design, the importance of adhering to one's methodologies, and the value of investing time in a robust core system. Insights into operational efficiencies, such as service bundling for cost savings and the indispensability of a message REPL, are shared. The presentation concludes by emphasizing the critical role of components within the microservices framework, advocating for system-wide operability in a single process locally and the pragmatic use of synchronous messages for the majority of use cases, all while championing the concept of microservices as fundamental components of a scalable, agile architecture.
This presentation delves into the mathematical principles underpinning microservices, drawing inspiration from historical numeral systems to illustrate the significance of adopting efficient mental models in software architecture. By contrasting the complexities of Roman numerals with the streamlined Indian numerical system, the talk sets the stage for rethinking software design through an algebraic lens, where microservices are seen as algebraic functions transforming inputs to outputs, akin to CRUD operations.
The core idea revolves around conceptualizing microservices as operations on messages, ensuring seamless service integration within complex systems through transport independence and pattern matching. This approach fosters a loosely coupled architecture where services communicate based on message content rather than direct identities, enhancing system flexibility and scalability.
Practical examples, including the development of a Node.js module search engine, demonstrate the application of these concepts, showcasing the ease of system expansion and modification when services are designed to interact through a message-driven paradigm. The presentation concludes by underscoring the benefits of this methodology, such as increased system adaptability, easier management of technical debt, and a more granular approach to system evolution, advocating for a shift towards viewing microservices as integral components of a coherent and scalable system architecture.
In this thought-provoking session at mucon London 2018, the dialogue revolves around the foundational premise that microservices should be embraced from the inception of a project, irrespective of the organization's size, from startups to established enterprises. The discussion opens with a candid acknowledgment of the inherent challenges in software engineering across the board, probing into the reasons behind the perceived complexity of software development, our collective penchant for perfection, and the frequent overemphasis on process over product.
The narrative then shifts to a more philosophical perspective, positioning microservices as the optimal intersection of psychological comfort and engineering pragmatism, conceptualized as units of quality, trust, and business logic encapsulation. This conceptual framework underpins a series of tactical recommendations, advocating for a message-centric approach to system design, where the delineation between monoliths, microservices, and serverless architectures blurs in favor of seamless communication and interoperability.
Practical advice is offered on tackling the 'general case' in system design, encouraging the development of specialized services for outlier scenarios and promoting adaptability to change. However, this approach is not without its trade-offs, sparking a debate on the merits and pitfalls of repository strategies and the double-edged sword that is Kubernetes, juxtaposed against the benefits such as finely segmented technical debt, deferred decision-making, and the capacity to scale rapidly without extensive cross-team coordination.
The session concludes on a reflective note, inviting attendees to explore further resources such as senecajs.org and "The Tao of Microservices", leaving the audience with a nuanced understanding of microservices as not just a technological choice, but a strategic framework for building resilient, adaptable, and business-aligned software ecosystems.
This presentation introduces a systematic approach to designing microservices using a visual language, beginning with the identification of requirements and distillation into messages that dictate service interactions. The methodology is illustrated through the process of developing a user registration system, breaking down the requirements into discrete messages like 'register-user' and 'confirm-email', which in turn inform the design of specific services handling registration and email confirmation.
The discussion extends to the temporal and functional dynamics of microservice interactions, differentiating between synchronous and asynchronous, as well as consumed and observed messages, using a unique visual lexicon where hexagons represent microservices, solid and dashed lines denote synchronous and asynchronous communications, and arrow styles distinguish between message consumption and observation.
The narrative further concretizes these concepts by outlining the design of a Node.js module search engine, showcasing how business requirements translate into a network of microservices handling search, indexing, and module detail presentation. The intricate web of service interactions is depicted through the visual language, demonstrating how services like 'web', 'search', 'npm', and 'github' collaborate through well-defined message patterns.
By the conclusion, attendees are equipped with a versatile framework for microservice design, capable of transforming complex system requirements into clear, manageable service components, as exemplified by the 'nodezoo' search engine project. This methodological approach not only clarifies the architecture of microservices systems but also facilitates their scalability, maintainability, and evolution over time.
This presentation delves into the intricate balance of risks and rewards in adopting microservices architecture, drawing parallels between complex systems failures, like the Three Mile Island nuclear incident, and potential pitfalls in software systems. It underscores the inherent risk in systems composed of multiple dependent components, highlighting how increased component count amplifies failure likelihood, challenging the conventional wisdom that redundancy can safeguard against systemic flaws due to homogeneity in components.
The discourse shifts to pragmatic strategies for managing deployment risks in microservices environments, advocating for frequent, low-impact deployments to mitigate the consequences of inevitable errors, as opposed to infrequent, high-stakes updates. The speaker presents microservices as a solution that simplifies deployments by isolating changes to individual components, thereby enhancing system reliability. The emphasis is placed on monitoring message flow rates as vital indicators of system health, with various microservice patterns like Actor, Subscriber, Chain, and Tree explored to illustrate message distribution dynamics.
The presentation concludes with practical deployment strategies like Canary and Progressive Canary releases, along with the concept of "Bake" deployments to incrementally expose new features, using these methods as risk measurement tools within the continuous delivery pipeline. The talk encourages embracing measured, data-driven approaches and automation to navigate the complexities of microservice deployments effectively, ensuring that technology adheres to the unforgiving principles of reality over theoretical perfection.
Title: Rethinking Service Discovery in Microservices Architecture
Description:
This presentation delves into the microservices architectural pattern, emphasizing the importance of service discovery in a landscape where services operate under the illusion of being solitary entities in the system. The discussion begins with an overview of microservices — small, independent processes that communicate through messages, which collectively contribute to a robust component model facilitating rapid development, continuous delivery, and the mitigation of technical debt.
The core of the talk addresses the complexities and unconventional programming models introduced by microservices, particularly focusing on the challenge of service-to-service discovery. Various strategies for service discovery are explored, including the use of configuration files, intelligent load balancing, service registries, DNS, and the necessity of a message bus. The concept of service discovery is then critically examined, proposing a paradigm shift towards pattern matching, where services interact based on message patterns rather than service identities. This approach advocates for transport independence, blind messaging, and a peer-to-peer model, where services maintain a local worldview, updated dynamically as services fluctuate. The presentation concludes by introducing the SWIM algorithm, an infection-style process group membership protocol designed for scalability and weak consistency, exemplified through a practical implementation in a Twitter clone built with 14 microservices.
Explore the cutting-edge capabilities of Vespa.ai, the open-source search engine pioneered by Yahoo, now a cornerstone for developers and data scientists seeking enhanced search and analytics functionalities. This session delves into the integration of machine learning to elevate search accuracy and user experience, achieving a fine balance between precision and recall. Participants will gain insight into Vespa.ai's evolution towards a cloud-based, analytics-focused platform, offering extensive configurability for Java aficionados and seamless incorporation of database-free text search capabilities.
The presentation further highlights the operational advantages and development efficiencies of Vespa.ai, including its compatibility with major big data technologies, automatic load distribution, and scalable deployment options. Attendees will leave with a comprehensive understanding of leveraging Vespa.ai for sophisticated, personalized search solutions within their own applications or platforms.
This talk is an appeal to server-side JavaScript developers to make
use of this time of change - Node.js is going to become the primary
server-side platform for most developers. We can move forward from
the old way of building web apps as large inter-locking co-dependent
code bases.
The Node.js module system has shown us the way. It's the first
step. Now, we need to use the beauty of Node modules to help us build
robust, scalable apps.
This approach is called the Micro-Services Architecture. It's more
than just having some services with HTTP end-points. It's about taking
this to the extreme. Everything is a service, and no service is larger
than 100 lines of code.
We've been using this approach for most of our projects for the last 18
months and it works really well. We get to drop loads of
project management ceremony. There will be some customer war stories.
Enterprise software teams are starting to understand and embrace the
power of Node.js. They face a serious challenge: integrating Node.js
into the legacy systems they maintain, and migrating these system over
time into Node.js architectures. This talk is a pathfinder for those
facing this task. As a community we must proactively engage with the
Java and .Net communities, and create a deeper understanding of the
"Node.js Way".
The micro-service architecture has changed the game for software
development. It provides the first scalable, effective component model
for software systems. By embracing the organic, dynamic and chaotic
nature of micro-services, you can built fault-tolerant, scalable and
reactive systms.
But there is a dark side. Things can get out of control very quickly.
As the number of micro-services, and messages and interactions between
them grow, how do you keep control? How do you retain understanding of
the system? How can you offer any commitments about its behaviour to
your CEO?
The answer is to embrace the complexity of the system, and recognize
that it has emergent properties. Rather than auditing and tracking
technical behaviour, measure the behaviour you care about, the
business outcomes. This allows you to understand the effects of new
deployments and failures at the right level.
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
In this insightful webinar, Inflectra explores how artificial intelligence (AI) is transforming software development and testing. Discover how AI-powered tools are revolutionizing every stage of the software development lifecycle (SDLC), from design and prototyping to testing, deployment, and monitoring.
Learn about:
• The Future of Testing: How AI is shifting testing towards verification, analysis, and higher-level skills, while reducing repetitive tasks.
• Test Automation: How AI-powered test case generation, optimization, and self-healing tests are making testing more efficient and effective.
• Visual Testing: Explore the emerging capabilities of AI in visual testing and how it's set to revolutionize UI verification.
• Inflectra's AI Solutions: See demonstrations of Inflectra's cutting-edge AI tools like the ChatGPT plugin and Azure Open AI platform, designed to streamline your testing process.
Whether you're a developer, tester, or QA professional, this webinar will give you valuable insights into how AI is shaping the future of software delivery.
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Neuro-symbolic is not enough, we need neuro-*semantic*Frank van Harmelen
Neuro-symbolic (NeSy) AI is on the rise. However, simply machine learning on just any symbolic structure is not sufficient to really harvest the gains of NeSy. These will only be gained when the symbolic structures have an actual semantics. I give an operational definition of semantics as “predictable inference”.
All of this illustrated with link prediction over knowledge graphs, but the argument is general.
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Tobias Schneck
As AI technology is pushing into IT I was wondering myself, as an “infrastructure container kubernetes guy”, how get this fancy AI technology get managed from an infrastructure operational view? Is it possible to apply our lovely cloud native principals as well? What benefit’s both technologies could bring to each other?
Let me take this questions and provide you a short journey through existing deployment models and use cases for AI software. On practical examples, we discuss what cloud/on-premise strategy we may need for applying it to our own infrastructure to get it to work from an enterprise perspective. I want to give an overview about infrastructure requirements and technologies, what could be beneficial or limiting your AI use cases in an enterprise environment. An interactive Demo will give you some insides, what approaches I got already working for real.
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Jeffrey Haguewood
Sidekick Solutions uses Bonterra Impact Management (fka Social Solutions Apricot) and automation solutions to integrate data for business workflows.
We believe integration and automation are essential to user experience and the promise of efficient work through technology. Automation is the critical ingredient to realizing that full vision. We develop integration products and services for Bonterra Case Management software to support the deployment of automations for a variety of use cases.
This video focuses on the notifications, alerts, and approval requests using Slack for Bonterra Impact Management. The solutions covered in this webinar can also be deployed for Microsoft Teams.
Interested in deploying notification automations for Bonterra Impact Management? Contact us at sales@sidekicksolutionsllc.com to discuss next steps.
5. let's start
a project
• less talking, more coding!
• community project with many coders
• something with lots of small pieces
6. seneca
• A Minimal Viable Product toolkit
• let's you build a startup in a weekend :)
• for more about MVPs: http://bit.ly/N25FlZ
7. • Lucius Annaeus Seneca, 4 BC – AD 65
• You have to be stoic to do a startup
• "increases are of sluggish growth, but the way to
ruin is rapid"
* http://cassandralegacy.blogspot.ie/2011/08/seneca-effect-origins-of-collapse.html
8. sign up
• Tweet @nodejsdublin with #seneca
• Mail me: richard.rodger@nearform.com
• Code: github.com/nodejsdublin/seneca
9. node.js
modules
• basic building blocks of Node.js apps
• no special syntax; plain old JavaScript
• no version conflicts!
10. using modules
var _ = require("underscore");
var threes = _.map([1, 2, 3], function(n){ return n*3 });
console.log( threes );
// prints [3, 6, 9]
var mongo = require('mongodb');
var host = 'localhost';
var port = 27017;
var db = new mongo.Db( 'mydatabase',
new mongo.Server(host, port, {}), {});
db.open(function(err, db) { ... }
11. cool
modules
• express - JSP/ASP style dynamic server-side pages
• socket.io - HTML5 real-time web sockets that "just work"
• request - easy outbound calls to web services
12. using npm
• npmjs.org - module repository of record
• usage: npm install modulename
• modules live in local node_modules folder
13. how to pick
a module
• serious modules are on https://github.com/joyent/node/wiki/modules
• popularity! check watchers/issues on github
• documentation, including third party blogs
• ask the community: http://nodejs.org/community/
14. why npm
rocks
• modules are installed separately for each project
• dependencies are also installed separately
• no global conflicts, no cross-dependency
conflicts
15. package.json
• defines a module; lists dependencies
• always create one for each project
• npm install will set up dependencies for you!
17. write a
module
• create a project on github
• npm init - creates package.json for you
• start with lib/modulename.js
18. modulename.js
"use strict";
function ModuleName() {
var self = {};
var private = "hidden";
self.member = "data";
self.method = function() { ... };
return self;
}
exports.ModuleName = ModuleName
callingcode.js
var modulename = require('modulename')
var instance = new modulename.ModuleName()
19. parambulator
• written just for this meetup! - sanity checks JSON data structures
• https://github.com/rjrodger/parambulator
• you also need a README.md and LICENSE.txt
• you really should have unit tests; try the vows module
21. publishing a
module
• the package.json files property is your friend
• register for an account on npmjs.org
• npm publish
• sit back and bask in the glory...
22. seneca
• nearForm builds web/mobile services
• shared set of features every startup needs
• ... must resist ... let's build a framework!
23. shared
features
• user accounts: login/logout, profile pages, social media, ...
• email: transactional, promotional, ...
• e-commerce: gateways, app stores, ...
• admin: data editors, analytics, audit logs, ..
24. seneca is in
production
businesspost.ie chartaca.com stanzr.com
25. command
pattern
• actions are represented by a set of properties
• seneca "executes" them by invoking plugins
• everything that happens is traceable
• business logic is insulated from service providers
26. seneca commands
// register a new user
seneca.act({
on: 'user',
cmd: 'register',
email: 'alice@example.com',
name: 'Alice',
password: '1234',
active: true
},
function(err, result) { ... })
// send an email
seneca.act({
on: 'email',
cmd: 'send',
to: 'alice@example.com',
code: 'thanks-for-registering',
fields: {name:'Alice'}
},
function(err, result) { ... })
29. shared
data model
• Built-in ODM - Object Document Mapper
• You need this to stay sane
• ActiveRecord-ish API with MongoDB-ish queries
30. seneca data model
var product = seneca.make('product');
product.name = 'Apple';
product.price = 1.99;
product.save$(function(err,savedproduct){
console.log('generated id: '+savedproduct.id);
})
product.load$('1234',function(err,foundproduct){
console.log('found product '+foundproduct);
})
product.list$( {price:1.99}, function(err,list){
for( var i = 0; i < list.length; i++ ) {
console.log( list[i] );
}
})
31. what we
•
have now
messy code that kinda sorta works
• a few hackety hack plugins
• no documentation!
32. what we
need
• plugins! plugins! plugins!
• documentation ( ... just kidding! I'll do that)
• some nodeknockout.com entries -
November 10-12th! Fame & Glory Await!
33. let's code!
• Tweet @nodejsdublin with #seneca
• Mail me: richard.rodger@nearform.com
• Code: github.com/nodejsdublin/seneca