Sails.js is a realtime MVC framework for Node.js that provides conventions and structures for building applications. It includes features like a lightweight ORM, policies for authentication and authorization, and integrates Socket.io for realtime functionality. Sails.js aims to simplify building realtime apps by handling websockets and HTTP requests together and providing patterns for application structure. The framework is actively maintained by an open source community.
Sails.js makes it easy to build custom, enterprise-grade Node.js apps. It is designed to resemble the MVC architecture from frameworks like Ruby on Rails, but with support for the more modern, data-oriented style of web app development. It's especially good for building realtime features like chat.
Over the last few years, Airbnb’s frontend architecture has evolved to keep pace with the rapid advancement happening the JavaScript world. Starting as a humble Rails 2 + Prototype.js app in 2008, the frontend stack powering airbnb.com has gone through a few revisions, including a push towards single-page app architecture with Backbone.js and Handlebars.js, an adventure into isomorphic JavaScript with Rendr (our library for using Node.js to server-render Backbone SPAs), and most recently, a move toward React.js and a re-envisioning of our build pipeline to take advantage of CommonJS, ES6, and a Node.js-based transform system. Spike Brehm, software engineer on the @AirbnbNerds team, will walk through how we approached and executed on these changes. Plus, get excited to see a preview of our new approach to isomorphic JavaScript, allowing us to server-render React components from our Rails app.
Spike Brehm is a software engineer at Airbnb who specializes in building rich web experiences. As a JavaScript nerd, he has spent the last few years shipping web apps and prototyping Airbnb’s front-end stack, experimenting with “isomorphic JavaScript” — apps that have the flexibility to run on both the client and sever using the same codebase.
These are the slides from Johannes Weber's talk which were presented on AngularJS Lightning Talks #2 (2014-06-26) in Munich. More details about the event: http://www.meetup.com/AngularJS-Munich/events/164424472/
[Srijan Wednesday Webinars] Developing Large Scale Applications in AngularJSSrijan Technologies
AngularJS is currently at the forefront of MVC (Model View Controller) frameworks for the web, and it makes it very simple to develop prototypes and web applications in it. But how do we ensure that the large scale applications we develop remain high performance, bug free and fast?
In this webinar, our speaker shared his learnings from developing various large scale AngularJS applications. He also shared how to create a maintainable project structure, and cover common performance bottlenecks and best practices to follow.
Watch complete webinar recording: http://youtu.be/b92Y77TExiA
Sails.js makes it easy to build custom, enterprise-grade Node.js apps. It is designed to resemble the MVC architecture from frameworks like Ruby on Rails, but with support for the more modern, data-oriented style of web app development. It's especially good for building realtime features like chat.
Over the last few years, Airbnb’s frontend architecture has evolved to keep pace with the rapid advancement happening the JavaScript world. Starting as a humble Rails 2 + Prototype.js app in 2008, the frontend stack powering airbnb.com has gone through a few revisions, including a push towards single-page app architecture with Backbone.js and Handlebars.js, an adventure into isomorphic JavaScript with Rendr (our library for using Node.js to server-render Backbone SPAs), and most recently, a move toward React.js and a re-envisioning of our build pipeline to take advantage of CommonJS, ES6, and a Node.js-based transform system. Spike Brehm, software engineer on the @AirbnbNerds team, will walk through how we approached and executed on these changes. Plus, get excited to see a preview of our new approach to isomorphic JavaScript, allowing us to server-render React components from our Rails app.
Spike Brehm is a software engineer at Airbnb who specializes in building rich web experiences. As a JavaScript nerd, he has spent the last few years shipping web apps and prototyping Airbnb’s front-end stack, experimenting with “isomorphic JavaScript” — apps that have the flexibility to run on both the client and sever using the same codebase.
These are the slides from Johannes Weber's talk which were presented on AngularJS Lightning Talks #2 (2014-06-26) in Munich. More details about the event: http://www.meetup.com/AngularJS-Munich/events/164424472/
[Srijan Wednesday Webinars] Developing Large Scale Applications in AngularJSSrijan Technologies
AngularJS is currently at the forefront of MVC (Model View Controller) frameworks for the web, and it makes it very simple to develop prototypes and web applications in it. But how do we ensure that the large scale applications we develop remain high performance, bug free and fast?
In this webinar, our speaker shared his learnings from developing various large scale AngularJS applications. He also shared how to create a maintainable project structure, and cover common performance bottlenecks and best practices to follow.
Watch complete webinar recording: http://youtu.be/b92Y77TExiA
Amongst all the big front end frameworks, Nuxt.js stands out as it has a lot of advantages over the other. This presentation covers an overview of Nuxt.js and how Server Side Rendering helps in improving the SEO of a site.
Content-centric architectures - case study : Apache SlingFabrice Hong
Building a CMS is basically enabling authors to create hierarchical web content whose structure is supposed to be flexible. This hierarchy is both at the level of the pages organisation, as well as at the level of the structure of the page itself.
Content management frameworks (CMF) helps developers creating web CMS applications by proposing a certain number of out of the box facilities and by maximizing conventions to reduce the amount of code to create and maintain.
But there is still a certain amount of boilerplate code that developers need to implement to bridge the content to the views. Moreover this mapping is versioned with the production code, which make the system less flexible to share or import component types at runtime.
Apache Sling is a RESTful content-centric CMF that uses the Java Content Repository as database (JCR). When the data layer embody the CMS model, the content can be directly exposed over REST and the static bridging become unnecessary.
In this Webmardi we will present different aspect of Apache Sling:
- Situations where content centric architecture is a good fit
- Typical CMS issues the framework facilitate
- Java content repository features
- Request processing and rendering resolution
- Ambivalence of content representation, resilience of Sling architecture against consumers types evolution, caching strategies, type of website (server side scripting, single page webapp)
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
Es gibt kaum ein Thema, das im Enterprise-Umfeld so umstritten ist wie die Wahl des richtigen Webframeworks. Die perfekte Universallösung gibt es wie so oft nicht, und Unwissenheit über Vor- und Nachteile verschiedener Ansätze führt häufig zu folgenschweren Fehlentscheidungen. Dabei können oftmals einfache grundsätzliche Fragestellungen die Auswahl drastisch minimieren. Der Vortrag bietet einen praxisnahen Überblick zu existierenden Ansätzen für MVC-Webframeworks im Java-Umfeld (Component-oriented vs. Action-oriented) und beleuchtet zusätzlich ihre jeweiligen Vor- und Nachteile.
AngularJS is a framework for client-side dynamic web apps. It lets you use HTML as your template language and lets you extend HTML's syntax to express your application's components clearly and succinctly. Angular's low impact nature ties in with Drupal's data handling and structure to allow you rapidly make interactive Javascript applications. Javascript developers will find that Angular's Controller/View structure adapts itself well to Drupal's Block and/or Panel System with minimal disruption to a standard Javascript development workflow - even if that developer has minimal or no Drupal knowledge.
In this talk I'll cover setting up AngularJS in Drupal using the Angles module, how to setup your Angular project structure for a large implementation (it works for small ones too), interacting with Drupal via the Services module and gotchas to watch out for.
This talk is targeted at technical users primarily but managers evaluating using AngularJS with Drupal will also benefit. Having some Javascript experience is recommended but not required.
A presentation on how to use Webpack to bundle and build a web application using TypeScript and CSS. The presentation demonstrates how to use a few of Webpack's loaders and plugins.
Building Isomorphic Apps (JSConf.Asia 2014)Spike Brehm
Over the past year or so, we’ve seen the emergence of a new way of building JavaScript web apps that share code between the web browser and the server, using Node.js — a technique that has come to be known as "isomorphic JavaScript.” There are a variety of use cases for isomorphic JavaScript; some apps render HTML on both the server and the client, some apps share just a few small bits of application logic, while others share the entire application runtime between client and server to provide advanced offline and realtime features. Why go isomorphic? The main benefits are performance, maintainability, reusability, and SEO.
This talk shares examples of isomorphic JavaScript apps running in the wild, explore the exploding ecosystem of asset building tools, such as Browserify, Webpack, and Gulp, that allow developers to build their own isomorphic JavaScript apps with open-source libraries, demonstrate how to build an isomorphic JavaScript module from scratch, and explore how libraries like React and Flux can be used to build a single-page app that renders on the server.
Comparing Hot JavaScript Frameworks: AngularJS, Ember.js and React.js - Sprin...Matt Raible
JavaScript MVC Frameworks are all the rage these days. They’ve taken the web development world by storm. This session explores the various features of the three hottest JavaScript MVC frameworks: AngularJS, Ember.js and React.js. It also compares client-side templating vs. server-side templating and how well each framework supports Isomorphic JavaScript (code that can run both client-side and server-side). Finally, it ranks each framework on 10 different criteria using Yevgeniy Brikman’s framework scorecard.
Video on InfoQ: https://www.infoq.com/presentations/comparing-angular-ember-react
Its a presentation about node.js. Here I have covered the basic things of node.js. Like what is node.js how it can be used. and explanation about some node.js frameworks
Amongst all the big front end frameworks, Nuxt.js stands out as it has a lot of advantages over the other. This presentation covers an overview of Nuxt.js and how Server Side Rendering helps in improving the SEO of a site.
Content-centric architectures - case study : Apache SlingFabrice Hong
Building a CMS is basically enabling authors to create hierarchical web content whose structure is supposed to be flexible. This hierarchy is both at the level of the pages organisation, as well as at the level of the structure of the page itself.
Content management frameworks (CMF) helps developers creating web CMS applications by proposing a certain number of out of the box facilities and by maximizing conventions to reduce the amount of code to create and maintain.
But there is still a certain amount of boilerplate code that developers need to implement to bridge the content to the views. Moreover this mapping is versioned with the production code, which make the system less flexible to share or import component types at runtime.
Apache Sling is a RESTful content-centric CMF that uses the Java Content Repository as database (JCR). When the data layer embody the CMS model, the content can be directly exposed over REST and the static bridging become unnecessary.
In this Webmardi we will present different aspect of Apache Sling:
- Situations where content centric architecture is a good fit
- Typical CMS issues the framework facilitate
- Java content repository features
- Request processing and rendering resolution
- Ambivalence of content representation, resilience of Sling architecture against consumers types evolution, caching strategies, type of website (server side scripting, single page webapp)
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
Es gibt kaum ein Thema, das im Enterprise-Umfeld so umstritten ist wie die Wahl des richtigen Webframeworks. Die perfekte Universallösung gibt es wie so oft nicht, und Unwissenheit über Vor- und Nachteile verschiedener Ansätze führt häufig zu folgenschweren Fehlentscheidungen. Dabei können oftmals einfache grundsätzliche Fragestellungen die Auswahl drastisch minimieren. Der Vortrag bietet einen praxisnahen Überblick zu existierenden Ansätzen für MVC-Webframeworks im Java-Umfeld (Component-oriented vs. Action-oriented) und beleuchtet zusätzlich ihre jeweiligen Vor- und Nachteile.
AngularJS is a framework for client-side dynamic web apps. It lets you use HTML as your template language and lets you extend HTML's syntax to express your application's components clearly and succinctly. Angular's low impact nature ties in with Drupal's data handling and structure to allow you rapidly make interactive Javascript applications. Javascript developers will find that Angular's Controller/View structure adapts itself well to Drupal's Block and/or Panel System with minimal disruption to a standard Javascript development workflow - even if that developer has minimal or no Drupal knowledge.
In this talk I'll cover setting up AngularJS in Drupal using the Angles module, how to setup your Angular project structure for a large implementation (it works for small ones too), interacting with Drupal via the Services module and gotchas to watch out for.
This talk is targeted at technical users primarily but managers evaluating using AngularJS with Drupal will also benefit. Having some Javascript experience is recommended but not required.
A presentation on how to use Webpack to bundle and build a web application using TypeScript and CSS. The presentation demonstrates how to use a few of Webpack's loaders and plugins.
Building Isomorphic Apps (JSConf.Asia 2014)Spike Brehm
Over the past year or so, we’ve seen the emergence of a new way of building JavaScript web apps that share code between the web browser and the server, using Node.js — a technique that has come to be known as "isomorphic JavaScript.” There are a variety of use cases for isomorphic JavaScript; some apps render HTML on both the server and the client, some apps share just a few small bits of application logic, while others share the entire application runtime between client and server to provide advanced offline and realtime features. Why go isomorphic? The main benefits are performance, maintainability, reusability, and SEO.
This talk shares examples of isomorphic JavaScript apps running in the wild, explore the exploding ecosystem of asset building tools, such as Browserify, Webpack, and Gulp, that allow developers to build their own isomorphic JavaScript apps with open-source libraries, demonstrate how to build an isomorphic JavaScript module from scratch, and explore how libraries like React and Flux can be used to build a single-page app that renders on the server.
Comparing Hot JavaScript Frameworks: AngularJS, Ember.js and React.js - Sprin...Matt Raible
JavaScript MVC Frameworks are all the rage these days. They’ve taken the web development world by storm. This session explores the various features of the three hottest JavaScript MVC frameworks: AngularJS, Ember.js and React.js. It also compares client-side templating vs. server-side templating and how well each framework supports Isomorphic JavaScript (code that can run both client-side and server-side). Finally, it ranks each framework on 10 different criteria using Yevgeniy Brikman’s framework scorecard.
Video on InfoQ: https://www.infoq.com/presentations/comparing-angular-ember-react
Its a presentation about node.js. Here I have covered the basic things of node.js. Like what is node.js how it can be used. and explanation about some node.js frameworks
DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...Amazon Web Services
Organizations around the globe are leveraging the cloud to accomplish world-changing missions. This session will address how AWS can help organizations put more money toward their mission and scale outreach and operations to achieve more with less. Hear some of AWS’s most advanced customers on how their organizations handle DevOps, continuous integration and deployment. Learn how these practices allow them to rapidly develop, iterate, test and deploy highly-scalable web applications and core operational systems on AWS. The discussion will focus on best practices, lessons learned, and the specific technologies and services they use.
Introduction to node js - From "hello world" to deploying on azureColin Mackay
Slide deck from my talk on Node.js.
More information is available here: http://colinmackay.scot/2014/11/29/dunddd-2014-introduction-to-node-jsfrom-hello-world-to-deploying-on-azure/
8 Node.js Frameworks Every Developer Should Know [UPDATED].pptx75waytechnologies
Did you know that tech giants like Amazon, Netflix, Tumblr, PayPal, and Reddit use Node.js? Quite fascinating stats, right? No surprise, Node.js has gained wide popularity in the realms of technology. But why is all this Node.js buzz? To be honest, Node.js is popular because it uses JavaScript, which is the only choice to develop web apps in the browser. Not only this, but this technology also supports microservices architecture, which is powerful and suitable for organizations of any distinct size.
With 61,000+ stars on GitHub, 7.49K votes on StackShare, and 2450 contributors, there is no shadow of a doubt that Node.js is the fastest-growing open-source project every developer is interested in learning.
Since its first appearance in 2009, NodeJS has come a long way. Many frameworks have been developed on top of it. These all make our task easy and quick. It is us who need to decide which one to choose? So, here is the list of top 10 NodeJS frameworks that will help you build an awesome application.
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. What’s changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
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.
JMeter webinar - integration with InfluxDB and GrafanaRTTS
Watch this recorded webinar about real-time monitoring of application performance. See how to integrate Apache JMeter, the open-source leader in performance testing, with InfluxDB, the open-source time-series database, and Grafana, the open-source analytics and visualization application.
In this webinar, we will review the benefits of leveraging InfluxDB and Grafana when executing load tests and demonstrate how these tools are used to visualize performance metrics.
Length: 30 minutes
Session Overview
-------------------------------------------
During this webinar, we will cover the following topics while demonstrating the integrations of JMeter, InfluxDB and Grafana:
- What out-of-the-box solutions are available for real-time monitoring JMeter tests?
- What are the benefits of integrating InfluxDB and Grafana into the load testing stack?
- Which features are provided by Grafana?
- Demonstration of InfluxDB and Grafana using a practice web application
To view the webinar recording, go to:
https://www.rttsweb.com/jmeter-integration-webinar
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
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.
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
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.
5. node.js translates server concepts into
javascript-- the lingua franca for the every-
man
our event loop is faster than your thing
native bindings means Node can do pretty
much anything
core is purposefully feature-sparse
npm publish, nuff said (lower barrier to
entry)
•
•
•
•
•
11. Programming
realtime apps
was still not
trivial.
WebSocket and HTTP messages/
requests have to be handled
independently, which leads to
separate code bases for
realtime and traditional server
code.
12. Programming
realtime apps
was still not
trivial.
WebSocket and HTTP messages/
requests have to be handled
independently, which leads to
separate code bases for
realtime and traditional server
code.
Socket programming is a new
paradigm for many modern web
developers
13. WebSocket and HTTP messages/
requests have to be handled
independently, which leads to
separate code bases for
realtime and traditional server
code.
Socket programming is a new
paradigm for many modern web
developers
Questions about scalability
Programming
realtime apps
was still not
trivial.
16. Express wasn’t
“structured
enough”
Authentication has to be rolled
from scratch
No standard,
implementation-agnostic method
of working with datastores
Low level and free-form -- not a
lot of guidelines for teams used
to convention-over-configuration
frameworks
18. Lots
of different
kinds of
projects
There weren’t really any simple
and reproducible patterns for
structuring complicated Node.js
aplications top to bottom
Could be working with an
existing client, or writing a new
client for a mobile web browser,
an automobile, a toaster, or god
knows what
19. Lots
of different
kinds of
projects
There weren’t really any simple
and reproducible patterns for
structuring complicated Node.js
aplications top to bottom
Could be working with an
existing client, or writing a new
client for a mobile web browser,
an automobile, a toaster, or god
knows what
Lots of different 3rd party
proprietary services to deal with
on the back-end -- there was no
standard way to integrate new
systems
22. MVC structure
Sails.js is modeled after the same
convention-over-configuration philosophy
you’re used to from frameworks like Rails,
Grails, Symfony, and Zend.
Controller actions are just Express middleware
Views are ejs by default, but you can use
jade, etc. We rarely use them since we’re
normally making single page apps with
client-side templates.
23. Lightweight ORM
Kept querying semantics dead-simple and
adapter-agnostic whenever possible
Pulled the best of Active Record,
Hibernate, and Mongoose
Made it easy to add purpose-built adapters
at the app level
24. Policies
Policies are just more Express middleware
They can be chained together to “protect”
or preprocess requests for controllers
E.g. access control, storage quotas, or
anything else you’d want to use
middleware for
25. Socket.io Request
interpreter
Translated incoming socket.io messages into
Express requests
Translated res.send(), res.json(), and res.view()
to respond via the socket, as well as allowing
for streams
Added res.broadcast() and req.join() methods
for pubsub
Normalized configuration
26. Blueprints
Instead of something like Rails HTML
scaffolds, by default, when you generate a
model and controller, Sails serves an API
Built-in search, sort, pagination, and
complex queries
Authentication/access control can be built
on top using policies
27. Other
cool
stuff
CLI tool
REPL
Custom adapters
Optional server-side coffee
support
Automatic asset bundling (LESS
and coffeescript files are
compiled, merged with css and js,
and injected into the DOM,
minified in production mode)
Uses grunt by default, but can be
replaced by ant, gulp, maven,
etc.
28. associations
• should upgrade not only Waterline
(ORM), but also RESTful blueprints
and model-focused publish/
subscribe (pubsub) methods.
• cross-adapter
• cross-connection
• efficient as possible, allowing more
efficient solutions to be implemented
at the adapter layer
Sturday, Jauary 25, 4
31. cross-connection
• different hosts (servers)
• different database users
• nasty/annoying integrations w/
legacy data
e.g. join two different MySQL
databases with incompatible
schemas
•
32. how it works
• when possible, use native
optimizations (i.e. joins) at the
database layer
• in-memory joins for the rest, just
like you would have to do in code
• maintains multiple connection pools
33. impact on adapters
• Existing Sails adapters (and any
new ones you write) now support
associations out of the box,
without writing any additional
code.
• You can add a `join()` method
that will be used instead of
`find()` for running intra-
database associations queries.
36. Community is flourishing (over 6000 stars /
600 forks on github, active IRC channel and
Google group)
My company and most of our customers are
using Sails in production
CURRENT STATUS (V0.9.13)
37. My company and most of our customers are
using Sails in production
Oldest running production Sails apps
havs been up for over 2 years
CURRENT STATUS (V0.9.13)
Community is flourishing (over 6000 stars /
600 forks on github, active IRC channel and
Google group)
38. extending sails
• adapter interface: standards for how our
servers talk to databases and web services
• blueprint interface: standards for how our
servers offer up their own API-- start with
conventional setup, then jump into writing
custom code later.
generators: plugins that allow sails new and
sails generate output to be completely
overridden and/or extended
• hooks: plugins that allow components
of the Sails runtime to be overridden or
extended
•
40. blueprints
• generic impl. for HTTP/ socket APIs
• prioritizes usability / practicality over elegance
• declarative configuration
(e.g. ember expects a certain format, or
angular prefers a certain JSONP parameter)
• overridable
(can replace logic completely with
imperative code at a moment’s notice)
43. Want to get involved?
Contribute to an adapter
44. Want to get involved?
Contribute to an adapter
improve the documentation
45. Want to get involved?
Contribute to an adapter
improve the documentation
Write tutorials
46. Want to get involved?
Contribute to an adapter
Improve the documentation
Write tutorials
Blog about Sails
47. Contribute to an adapter
improve the documentation
Write tutorials
Blog about Sails
Build an integration with your
product or API (it's pretty easy)
Want to get involved?