unassert - Encourage Design by Contract (DbC) by writing assertions in production code, and compiling them away from release.
Takuto Wada
2015/11/07 @nodefest Tokkyo 2015
Rhebok, High Performance Rack Handler / Rubykaigi 2015Masahiro Nagano
This document discusses Rhebok, a high performance Rack handler written in Ruby. Rhebok uses a prefork architecture for concurrency and achieves 1.5-2x better performance than Unicorn. It implements efficient network I/O using techniques like IO timeouts, TCP_NODELAY, and writev(). Rhebok also uses the ultra-fast PicoHTTPParser for HTTP request parsing. The document provides an overview of Rhebok, benchmarks showing its performance, and details on its internals and architecture.
[212] large scale backend service develpmentNAVER D2
The document discusses developing large scale backend services for a new game using Node.js, Docker, and AWS. It describes problems with scalability and performance, and solutions using Node.js clustering, reverse proxying, and CPU profiling to optimize services. The goals are to build services that are scalable, have high performance, and allow for fast iterations.
This document provides an overview and examples of using ngx_mruby, which allows embedding the mruby scripting language in the nginx web server. It introduces ngx_mruby and how it works, provides instructions for building and installing ngx_mruby, and gives several code examples for common tasks like content handling, logging, redirection, and authorization using ngx_mruby. Key features covered include accessing nginx variables and requests, sharing data across request phases and worker processes, and integrating mruby gems.
The document discusses concepts related to event loops and concurrency in programming. It includes code snippets in Java showing the use of NIO selectors and channels for non-blocking I/O. Diagrams are shown illustrating reactor patterns and Vert.x modules deployed across multiple CPUs. The summary provides an overview of the main topics and techniques discussed in the technical document.
Elasticsearch (R)Evolution — You Know, for Search… by Philipp Krenn at Big Da...Big Data Spain
Elasticsearch is a distributed, RESTful search and analytics engine built on top of Apache Lucene. After the initial release in 2010 it has become the most widely used full-text search engine, but it is not stopping there. The revolution happened and now it is time for evolution. We dive into current improvements and new features — how to make a great product even better.
https://www.bigdataspain.org/2017/talk/elasticsearch-revolution-you-know-for-search
Big Data Spain 2017
16th - 17th November Kinépolis Madrid
The document discusses asynchronous and non-blocking I/O with JRuby. It explains that asynchronous operations are better than synchronous operations because they use fewer resources and allow for parallelism. It provides an example of building a JRuby application with the Ratpack framework that makes asynchronous HTTP requests to eBay's API in a non-blocking way using promises. It also discusses using RxJava and Hystrix with Ratpack to build a book management application that handles data and API requests asynchronously.
Al Tobey (@AlTobey) is an Open Source Mechanic at DataStax. Prior to working at DataStax, Al was a Tech Lead of Compute and Data Services at Ooyala, which has been using Apache Cassandra since version 0.4 and these days uses Go in production.
Al will be presenting a brief introduction to Go (#golang) and Cassandra, and how they are a great fit for each other. This talk will include code samples and a live demo.
Apache MXNet Distributed Training Explained In Depth by Viacheslav Kovalevsky...Big Data Spain
Distributed training is a complex process that does more harm than good if it not setup correctly.
https://www.bigdataspain.org/2017/talk/apache-mxnet-distributed-training-explained-in-depth
Big Data Spain 2017
November 16th - 17th Kinépolis Madrid
(APP310) Scheduling Using Apache Mesos in the Cloud | AWS re:Invent 2014Amazon Web Services
"How can you reliably schedule tasks in an unreliable, autoscaling cloud environment? This presentation talks about the design of our Fenzo scheduler, built on Apache Mesos, that serves as the core of our stream-processing platform, Mantis, designed for real-time insights. We focus on the following aspects of the scheduler:
- Resource granularity
- Fault tolerance
- Bin packing, task affinity, stream locality
- Autoscaling of the cluster and of individual service jobs
- Constraints (hard and soft) for individual tasks such as zone balancing, unique, and exclusive instances
This talk also includes detailed information on a holistic approach to scheduling in a distributed, autoscaling environment to achieve both speed and advanced scheduling optimizations."
This document discusses testing code written for mruby, a lightweight Ruby implementation. It proposes using the mruby runtime itself to test code, rather than Ruby, by using the mruby-mtest library. This allows testing mruby code directly using the same binaries and libraries as production. Sample code shows how to structure tests and set up a test runner to execute tests against the mruby binary. Testing code with mruby provides faster, more direct testing compared to using Ruby.
Advanced technic for OS upgrading in 3 minutesHiroshi SHIBATA
This document discusses strategies for rapidly automating operating system upgrades and application deployments at scale. It proposes a two-phase image creation strategy using official OS images and Packer to build minimal and role-specific images. Automated tools like Puppet, Capistrano, Consul and Fluentd are configured to allow deployments to complete within 30 minutes through infrastructure-as-code practices. Continuous integration testing with Drone and Serverspec is used to refactor configuration files and validate server configurations.
Virtualize and automate your development environment for fun and profitAndreas Heim
The document discusses using Vagrant to virtualize and automate development environments. Vagrant allows developers to create identical virtual environments that match production. This ensures environments are the same across operating systems and developers. Vagrant uses automation tools like Chef and Puppet to configure environments. It addresses challenges like different dependency versions and allows quick resets. It advocates treating environments as code to make them documented, versioned and easily shared.
Matthew Eernisse gave a presentation on NodeJS at the Toster Conference in 2011. He introduced NodeJS as an evented I/O platform using JavaScript and V8 that is well suited for lightweight networked applications. He demonstrated a simple HTTP server in NodeJS and discussed how Yammer uses NodeJS for proxies, file uploads, testing, and real-time collaborative editing. Key aspects of NodeJS include asynchronous non-blocking I/O, event-driven programming, and its suitability for data streaming and real-time applications.
Puppet is an open source configuration management tool that has been available since 2005. It uses a desired state configuration language to define how nodes should be configured. Puppet combines node facts, configuration data, and the node model to generate a catalog that is applied at regular intervals to manage nodes. The HashiCorp suite includes tools like Packer, Vagrant, Terraform, Consul, and Vault that can be used along with Puppet for tasks like building images, provisioning VMs, managing infrastructure as code, service discovery, and secrets management.
This document discusses optimizing JavaScript performance in Node.js. It covers benchmarking Node applications, tips for writing efficient JavaScript that avoids hidden classes and dictionary mode in the V8 engine, profiling Node to find hot spots, and how the V8 optimizing compiler works. The presenter emphasizes the importance of speed and provides resources for further optimizing Node applications.
Node.js is an asynchronous event-driven JavaScript runtime that aims to provide an easy way to build scalable network programs. It uses an event loop model that keeps slow operations from blocking other operations by executing callbacks asynchronously. This allows Node.js programs to handle multiple connections concurrently without creating new threads. Common uses of Node.js include building web servers, real-time applications, crawlers, and process monitoring tools. The document provides examples of using modules like HTTP, TCP, DNS, and file system modules to demonstrate Node.js's asynchronous and non-blocking I/O model.
node.js and native code extensions by examplePhilipp Fehre
Over the last years node.js has evolved to be a great language to build web applications. The reason for this is not only that it is based on JavaScript which already is established around "the web" but also that it provides excellent facilities for extensions, not only via JavaScript but also integration of native C libraries. Couchbase makes a lot of use of this fact making the Couchbase node.js SDK (Couchnode) a wrapper around the C library providing a node.js like API, but leveraging the power of a native C library underneat. So how is this done? How does such a package look like? Let me show you how integration of C in node.js works and how to "read" a package like Couchnode.
How to improve ELK log pipeline performanceSteven Shim
The document discusses improving the processing speed of logs in an ELK stack. It finds that logs are beginning to back up due to high average request volumes of around 1 million requests per minute. It analyzes various logging pipeline architectures and patterns to address this. It recommends measuring key parts of the pipeline to identify bottlenecks, improving the Logstash grok parser performance, increasing Kafka partitions to distribute load more evenly, and scaling Logstash instances to parallelize ingestion. These changes aim to reduce the risks of high throughput, lost records, and latency in the logging pipeline.
Building a High-Performance Distributed Task Queue on MongoDBMongoDB
This document discusses building a distributed job queue in MongoDB. It begins by outlining the requirements of processing tasks across multiple servers. It then describes the design of storing messages and tasks in MongoDB collections, including different message and task states. It also covers techniques like composite tasks, reducing polling through tailable cursors, and optimizing performance through retry logic and oplog replay. The overall aim is to build an asynchronous and scalable way to process jobs in a distributed manner using MongoDB.
Packer and TerraForm are fundamental components of Infrastructure as Code. I recently gave a talk at a DevOps meetup, which allowed me the opportunity to discuss the basics of these two tools, and how DevOps teams should be using them
This document provides an introduction to Kibana4 and how to use its features. It discusses the major components of Kibana4 including Discover, Visualize, and Dashboard. It also covers visualization types like metrics, buckets, and aggregations. The document provides examples of using aggregations versus facets and describes settings, scripted fields, and plugins. It concludes by discussing potential future directions for Kibana.
Terraform, is no doubt very flexible and powerful. The question is, how do we write Terraform code and construct our infrastructure in a reproducible fashion that makes sense? How can we keep code DRY, segment state, and reduce the risk of making changes to our service/stack/infrastructure?
HashiCorp’s infrastructure management tool, Terraform, is no doubt very flexible and powerful. The question is, how do we write Terraform code and construct our infrastructure in a reproducible fashion that makes sense? How can we keep code DRY, segment state, and reduce the risk of making changes to our service/stack/infrastructure?
This talk describes a design pattern to help answer the previous questions. The talk is divided into two sections, with the first section describing and defining the design pattern with a Deployment Example. The second part uses a multi-repository GitHub organization to create a Real World Example of the design pattern.
Tim Messerschmidt presented on the KrakenJS framework at the LondonJS conference. KrakenJS is an open source JavaScript stack built on Node.js and Express that is preconfigured with tools like Dust for templating, LESS for CSS preprocessing, and RequireJS for module loading. It also includes modules like Makara for internationalization, Lusca for security, and Adaro and Kappa to integrate Dust templating. Using KrakenJS and Node.js at PayPal resulted in teams being 1/3 to 1/10 the size of Java teams, doubled requests per second, decreased response times by 35%, and increased development speed twofold.
Infrastructure as code with Puppet and Apache CloudStackke4qqq
Puppet can now be used to define not only the configuration of machines, but also the machines themselves and entire collections of machines when using CloudStack. New Puppet types and providers allow defining CloudStack instances, groups of instances, and entire application stacks that can then be deployed on CloudStack. This brings infrastructure as code to a new level by allowing Puppet to define and manage the entire CloudStack infrastructure.
Al Tobey (@AlTobey) is an Open Source Mechanic at DataStax. Prior to working at DataStax, Al was a Tech Lead of Compute and Data Services at Ooyala, which has been using Apache Cassandra since version 0.4 and these days uses Go in production.
Al will be presenting a brief introduction to Go (#golang) and Cassandra, and how they are a great fit for each other. This talk will include code samples and a live demo.
Apache MXNet Distributed Training Explained In Depth by Viacheslav Kovalevsky...Big Data Spain
Distributed training is a complex process that does more harm than good if it not setup correctly.
https://www.bigdataspain.org/2017/talk/apache-mxnet-distributed-training-explained-in-depth
Big Data Spain 2017
November 16th - 17th Kinépolis Madrid
(APP310) Scheduling Using Apache Mesos in the Cloud | AWS re:Invent 2014Amazon Web Services
"How can you reliably schedule tasks in an unreliable, autoscaling cloud environment? This presentation talks about the design of our Fenzo scheduler, built on Apache Mesos, that serves as the core of our stream-processing platform, Mantis, designed for real-time insights. We focus on the following aspects of the scheduler:
- Resource granularity
- Fault tolerance
- Bin packing, task affinity, stream locality
- Autoscaling of the cluster and of individual service jobs
- Constraints (hard and soft) for individual tasks such as zone balancing, unique, and exclusive instances
This talk also includes detailed information on a holistic approach to scheduling in a distributed, autoscaling environment to achieve both speed and advanced scheduling optimizations."
This document discusses testing code written for mruby, a lightweight Ruby implementation. It proposes using the mruby runtime itself to test code, rather than Ruby, by using the mruby-mtest library. This allows testing mruby code directly using the same binaries and libraries as production. Sample code shows how to structure tests and set up a test runner to execute tests against the mruby binary. Testing code with mruby provides faster, more direct testing compared to using Ruby.
Advanced technic for OS upgrading in 3 minutesHiroshi SHIBATA
This document discusses strategies for rapidly automating operating system upgrades and application deployments at scale. It proposes a two-phase image creation strategy using official OS images and Packer to build minimal and role-specific images. Automated tools like Puppet, Capistrano, Consul and Fluentd are configured to allow deployments to complete within 30 minutes through infrastructure-as-code practices. Continuous integration testing with Drone and Serverspec is used to refactor configuration files and validate server configurations.
Virtualize and automate your development environment for fun and profitAndreas Heim
The document discusses using Vagrant to virtualize and automate development environments. Vagrant allows developers to create identical virtual environments that match production. This ensures environments are the same across operating systems and developers. Vagrant uses automation tools like Chef and Puppet to configure environments. It addresses challenges like different dependency versions and allows quick resets. It advocates treating environments as code to make them documented, versioned and easily shared.
Matthew Eernisse gave a presentation on NodeJS at the Toster Conference in 2011. He introduced NodeJS as an evented I/O platform using JavaScript and V8 that is well suited for lightweight networked applications. He demonstrated a simple HTTP server in NodeJS and discussed how Yammer uses NodeJS for proxies, file uploads, testing, and real-time collaborative editing. Key aspects of NodeJS include asynchronous non-blocking I/O, event-driven programming, and its suitability for data streaming and real-time applications.
Puppet is an open source configuration management tool that has been available since 2005. It uses a desired state configuration language to define how nodes should be configured. Puppet combines node facts, configuration data, and the node model to generate a catalog that is applied at regular intervals to manage nodes. The HashiCorp suite includes tools like Packer, Vagrant, Terraform, Consul, and Vault that can be used along with Puppet for tasks like building images, provisioning VMs, managing infrastructure as code, service discovery, and secrets management.
This document discusses optimizing JavaScript performance in Node.js. It covers benchmarking Node applications, tips for writing efficient JavaScript that avoids hidden classes and dictionary mode in the V8 engine, profiling Node to find hot spots, and how the V8 optimizing compiler works. The presenter emphasizes the importance of speed and provides resources for further optimizing Node applications.
Node.js is an asynchronous event-driven JavaScript runtime that aims to provide an easy way to build scalable network programs. It uses an event loop model that keeps slow operations from blocking other operations by executing callbacks asynchronously. This allows Node.js programs to handle multiple connections concurrently without creating new threads. Common uses of Node.js include building web servers, real-time applications, crawlers, and process monitoring tools. The document provides examples of using modules like HTTP, TCP, DNS, and file system modules to demonstrate Node.js's asynchronous and non-blocking I/O model.
node.js and native code extensions by examplePhilipp Fehre
Over the last years node.js has evolved to be a great language to build web applications. The reason for this is not only that it is based on JavaScript which already is established around "the web" but also that it provides excellent facilities for extensions, not only via JavaScript but also integration of native C libraries. Couchbase makes a lot of use of this fact making the Couchbase node.js SDK (Couchnode) a wrapper around the C library providing a node.js like API, but leveraging the power of a native C library underneat. So how is this done? How does such a package look like? Let me show you how integration of C in node.js works and how to "read" a package like Couchnode.
How to improve ELK log pipeline performanceSteven Shim
The document discusses improving the processing speed of logs in an ELK stack. It finds that logs are beginning to back up due to high average request volumes of around 1 million requests per minute. It analyzes various logging pipeline architectures and patterns to address this. It recommends measuring key parts of the pipeline to identify bottlenecks, improving the Logstash grok parser performance, increasing Kafka partitions to distribute load more evenly, and scaling Logstash instances to parallelize ingestion. These changes aim to reduce the risks of high throughput, lost records, and latency in the logging pipeline.
Building a High-Performance Distributed Task Queue on MongoDBMongoDB
This document discusses building a distributed job queue in MongoDB. It begins by outlining the requirements of processing tasks across multiple servers. It then describes the design of storing messages and tasks in MongoDB collections, including different message and task states. It also covers techniques like composite tasks, reducing polling through tailable cursors, and optimizing performance through retry logic and oplog replay. The overall aim is to build an asynchronous and scalable way to process jobs in a distributed manner using MongoDB.
Packer and TerraForm are fundamental components of Infrastructure as Code. I recently gave a talk at a DevOps meetup, which allowed me the opportunity to discuss the basics of these two tools, and how DevOps teams should be using them
This document provides an introduction to Kibana4 and how to use its features. It discusses the major components of Kibana4 including Discover, Visualize, and Dashboard. It also covers visualization types like metrics, buckets, and aggregations. The document provides examples of using aggregations versus facets and describes settings, scripted fields, and plugins. It concludes by discussing potential future directions for Kibana.
Terraform, is no doubt very flexible and powerful. The question is, how do we write Terraform code and construct our infrastructure in a reproducible fashion that makes sense? How can we keep code DRY, segment state, and reduce the risk of making changes to our service/stack/infrastructure?
HashiCorp’s infrastructure management tool, Terraform, is no doubt very flexible and powerful. The question is, how do we write Terraform code and construct our infrastructure in a reproducible fashion that makes sense? How can we keep code DRY, segment state, and reduce the risk of making changes to our service/stack/infrastructure?
This talk describes a design pattern to help answer the previous questions. The talk is divided into two sections, with the first section describing and defining the design pattern with a Deployment Example. The second part uses a multi-repository GitHub organization to create a Real World Example of the design pattern.
Tim Messerschmidt presented on the KrakenJS framework at the LondonJS conference. KrakenJS is an open source JavaScript stack built on Node.js and Express that is preconfigured with tools like Dust for templating, LESS for CSS preprocessing, and RequireJS for module loading. It also includes modules like Makara for internationalization, Lusca for security, and Adaro and Kappa to integrate Dust templating. Using KrakenJS and Node.js at PayPal resulted in teams being 1/3 to 1/10 the size of Java teams, doubled requests per second, decreased response times by 35%, and increased development speed twofold.
Infrastructure as code with Puppet and Apache CloudStackke4qqq
Puppet can now be used to define not only the configuration of machines, but also the machines themselves and entire collections of machines when using CloudStack. New Puppet types and providers allow defining CloudStack instances, groups of instances, and entire application stacks that can then be deployed on CloudStack. This brings infrastructure as code to a new level by allowing Puppet to define and manage the entire CloudStack infrastructure.
- JavaScript has come a long way from its early days of form validation and image rollovers in 1995 to modern innovations like ES2015, Promises, async/await, and Web Assembly.
- Today, JavaScript features like classes, arrow functions, and template strings in ES2015 are widely adopted, and new standards like Promises, generators, and async programming have revolutionized asynchronous JavaScript.
- Emerging web platform technologies like Web Components, Service Workers, and CSS Paint enable new kinds of custom elements, offline/progressive web apps, and painting APIs, while proposals like decorators, value types, and module loading continue pushing the language forward.
How to create/improve OSS products and its communitySATOSHI TAGOMORI
This document discusses how to create and improve open source software (OSS) products and their communities. It recommends determining the purpose of the OSS product, choosing an appropriate programming language, using versioning to indicate stability, communicating in English, creating a pluggable architecture to encourage contributions, and continuously improving the software and engaging with users. The key is to be open, maintain the software over time, and grow the community through communication and contributions.
This document summarizes Takuto Wada's presentation on reviewing RESTful web apps. It discusses best practices for designing RESTful resources and representations, including using nouns instead of verbs in URLs, making URLs reflect the meaning of resources, and ensuring resources are connected through hypermedia links and forms. It also covers appropriate use of HTTP methods, status codes, and content negotiation to build RESTful APIs in accordance with best practices.
Testing most things in JavaScript - LeedsJS 31/05/2017Colin Oakley
Testing is important - it can improve the quality of your code and give you the reassurance to refactor without fear of destroying your application.
My talk will cover different types of automated testing in javascript (unit, integration, acceptance) and some regression as well tools to help standardise code (like js lint).
I'll also talk about automated build tools like jenkins and travis ci.
If you find yourself copying and pasting code from your build.gradle file every time you start a new project, then it's time you learn about Gradle Plugins. Come and learn what it takes to create a custom Gradle plugin for use in your Android/Java applications.
We're going to go over the following:
• Plugin Structure
• Key Components
• Testing
• Publishing
Walk away feeling empowered to create your own awesome plugins!
1. The document discusses polyglot programming using multiple languages on the Java Virtual Machine (JVM), including Java, Groovy, Scala, and Clojure.
2. It notes that while Java has matured, other JVM languages have evolved faster with features like closures, operator overloading, and richer type systems.
3. Interoperability between JVM languages is seamless, allowing code written in different languages to easily call each other. The document promotes experimenting with multiple JVM languages for polyglot programming.
This document provides an introduction to the vim text editor. It begins by listing some benefits of using vim, such as its lightweight nature and ability to improve keyboard skills. The document then provides instructions on basic vim commands for movement, editing, searching, and undo/redo. It presents a series of "missions" to demonstrate practical uses of commands like deleting text, copying and pasting lines, and text refactoring. More advanced topics covered include macros, text manipulation, working with files, and useful vim plugins. The document emphasizes that practice is needed to gain proficiency with vim's keyboard-driven approach.
The document discusses the const keyword in C++ and how it can be used to avoid errors and optimize code. Const ensures an initialized value is never modified, acting as a promise to the compiler. Errors can occur when trying to modify values returned by functions, which are temporary rvalues. These errors can be fixed by declaring functions that return these values as const, promising they do not modify their arguments. Using const and passing by reference rather than value avoids unnecessary object copying, improving efficiency.
JavaScript Test-Driven Development with Jasmine 2.0 and Karma Christopher Bartling
This document discusses JavaScript test-driven development using Jasmine 2.0 and Karma. It introduces test-driven development principles and benefits, then covers the Karma test runner, PhantomJS browser, and features of the Jasmine testing framework including describe blocks, expectations, matchers, spies, and custom matchers. It also provides an example of mapping earthquakes and testing color-coded circles using magnitude and discusses code coverage and sustaining test-driven practices.
utomation is becoming more and more important in the world of software testing, especially as more development shops move into agile or agile-like methodologies. However, for testers with no development background the idea of learning how to automate can be intimidating.My goal is simple: to demystify the subject by taking a novice tester with no coding experience through the process of writing a simple automated test using using the Cucumber framework. I will take a volunteer from the audience and transform that person from an ordinary QA professional (or whatever their occupation) into an automation engineer in one short hour.
This will be a live demonstration and we will be working without a net. No animals will be harmed during the show, but be prepared to slay your fear of coding once and for all.
¿Pensando en montar una arquitectura de microservicios?¿O quizás ya estás en mitad de una y sientes que estás perdiendo el control o te produce ansiedad cualquier subida a producción? En esta charla hablaré de cómo podemos volver a tomar el control de la situación combinando tres cosas: GraphQL, service directory and contract testing.
Find out more at https://madrid2018.codemotionworld.com/speakers/
How Testability Inspires AngularJS Design / Ran MizrahiRan Mizrahi
Testability is a major part of design decision making in Angular`s development.
In this sessions we’ll cover what testability is, how it inspires Angular`s design and why it’s good for us.
Cool Jvm Tools to Help you Test - Aylesbury Testers VersionSchalk Cronjé
This document summarizes a presentation about cool JVM tools for testing. It introduces the presenter and discusses tools like Spock and Geb for writing readable tests in Groovy. It also covers Ratpack for HTTP testing, Betamax for recording external API responses, and Gradle for running and integrating tests. The presentation provides code examples and outlines how these tools can help write effective tests more efficiently.
Why you should be using the shiny new C# 6.0 features now!Eric Phan
C# 6.0 will change the way you write C#. There are many language features that are so much more efficient you’ll wonder why they weren’t there since the beginning.
Good karma: UX Patterns and Unit Testing in Angular with KarmaExoLeaders.com
The document discusses unit testing in Angular with Karma. It provides examples of UX patterns in Angular like binding elements to variables, lists, and click handlers. It also covers what controllers and scopes are and examples of testing components in Angular like services, factories, and UI elements. Hands-on examples are provided for setting up a test environment and writing tests.
Gradle is easy to use for building standard Java projects, but it’s rare to find a project that is completely standard. Whenever you have some custom requirement, you need to start using Gradle’s power features. It’s at that point that you can find yourself producing an unmaintainable mess and a hard-to-use build.
This talk will start by explaining Gradle’s model, which you need to understand if you want to retain control over your builds. I will then introduce you to some simple but effective guidelines that will ensure that your builds stay clean and effective.
Unit Testing in Javascript
The way to quality product isn't easy or simple but it is reachable. One of the key things to do is unit testing. What, when and how to do it --> read in the presentation.
See more details here: http://www.slideshare.net/AnnaKhabibullina/jsfwdays-2014unittesingjavascriptv4-33966202
Read about this and other techtalks @ DA-14 in our blog: http://da-14.com/our-blog/
This talk introduces Spring's REST stack - Spring MVC, Spring HATEOAS, Spring Data REST, Spring Security OAuth and Spring Social - while refining an API to move higher up the Richardson maturity model
The document discusses polyglot programming on the Java Virtual Machine (JVM). It introduces the speaker and provides background on Java. It notes that while Java is mature, other JVM languages like Groovy, Scala, and Clojure have evolved faster with features like closures, pattern matching, and immutability. These languages are highly interoperable with Java and allow for reduced verbosity. The document demonstrates features of these languages and provides examples of domains where polyglot programming is common like web development, next-gen data stores, and build systems. It encourages the audience to try these languages on the JVM.
The document describes a WordFilter class that can detect and censor sensitive words in strings. It allows specifying words to censor, and will replace matches with <censored> in the censor method output or return true/false from the detect method. The filter is designed to find and obscure matches without disturbing surrounding context.
The only one big thing every programmer should knowTakuto Wada
The document discusses the benefits of exercise for both physical and mental health. It notes that regular exercise can reduce the risk of diseases like heart disease and diabetes, improve mood, and reduce feelings of stress and anxiety. Exercise is also credited with boosting brain health and improving cognitive function as we age.
Takashi Wada is an artist and designer who goes by the names id:t-wada and @t_wada on social media. In 2010, he posted photos of furniture designs copyrighted to Artek, a Finnish furniture company, to his social media accounts. The photos were credited to Artek as the original designer and manufacturer of the furniture pieces.
A Brief Introduction About Jeremy MillulJeremy Millul
Jeremy Millul, a junior software developer based in Rochester, NY, specializes in Python, JavaScript, Java, and C++. An NYU Computer Science graduate, he pairs his academic foundation with expertise in web development frameworks like React and Node.js. Jeremy is committed to Agile methodologies and Test-Driven Development, enabling him to deliver robust, efficient, and scalable solutions. His passion for innovation drives his success in creating impactful digital experiences for clients and users alike.
Navigating SharePoint Integration: From Seamless Configuration to Workflow Au...Safe Software
Integrating SharePoint with FME can open up a world of possibilities, from automating repetitive tasks to managing your data workflows. But navigating the integration process might seem daunting — until now. In this webinar, we’ll break down how to seamlessly connect SharePoint with FME, covering everything from basic to more advanced workflows.
You’ll learn how to leverage SharePoint Online as a file system, integrate web services using OAuth, and troubleshoot common issues like authorization errors and SSL certificate problems. Plus, we’ll dive into real-world examples and live demos, showing you different methods to bring your SharePoint data into your workflows, detect changes in SharePoint that trigger downstream processes, and more.
By the end of this webinar, you’ll have the knowledge and confidence to transform your SharePoint processes into efficient, automated workflows, saving you time and reducing manual effort.
UiPath Automation Developer Associate Training Series 2025 - Session 3DianaGray10
In session 3, we will cover User Interface (UI) Automation for Studio.
Required self-paced training for this lesson is:
User Interface (UI) Automation with Modern Design in Studio 2 modules - 3h - https:/academy.uipath.com/courses/user-interface-ui-automation-with-modern-design-in-studio
UI Automation Synchronization with Studio - 2 modules - 1 h 30 m - https://academy.uipath.com/courses/ui-automation-synchronization-with-studio
UI Automation Descriptors in Studio - 2 modules - 2h - https:/academy.uipath.com/courses/ui-automation-descriptors-in-studio
⁉️ For any questions you may have, please use the dedicated Forum thread. You can tag the hosts and mentors directly and they will reply as soon as possible.
Expanding your DEIA with age and belongingTed Drake
Enhance your DEI+A program by fostering belonging, addressing intersectionality, and including employees over 40. Learn how to promote inclusive leadership, challenge ageism, and implement effective initiatives to create a truly inclusive workplace.
Transcript: Elements of Indigenous Style: Insights and applications for the b...BookNet Canada
From acquisitions and editorial to marketing and sales teams, every team member plays a role in accurately, respectfully, and ethically championing Indigenous and traditionally underrepresented voices. This session, led by Warren Cariou, Lead Editor of the second edition of Gregory Younging’s Elements of Indigenous Style, is for book industry professionals eager to learn and apply Indigenous teachings to their work.
Using Elements of Indigenous Style as a foundation, this session delves into its mind-opening content, which goes beyond the scope of a traditional style guide. The book advocates for the indigenization of publishing and addresses topics such as culturally appropriate publishing practices; understanding identity and community affiliation; Two-Spirit, trans, and Indigiqueer contexts; practices to support Indigenous linguistic and cultural sovereignty; and emerging issues in the digital environment. Warren provides actionable recommendations and best practices for publishers working on literary projects by or about Indigenous authors, which can be applied more broadly to other underrepresented communities.
Kaitlin Littlechild from the Indigenous Editors Association brings her expertise to the discussion as the moderator.
Link to recording and presentation slides: https://bnctechforum.ca/sessions/elements-of-indigenous-style-insights-and-applications-for-the-book-industry/
Presented by BookNet Canada on February 28, 2025 with support from the Department of Canadian Heritage.
How Yieldmo Cut Database Costs and Cloud Dependencies Fast by Todd ColemanScyllaDB
Yieldmo processes hundreds of billions of ad requests daily with subsecond latency. Initially using DynamoDB for its simplicity and stability, they faced rising costs, suboptimal latencies, and cloud provider lock-in. This session explores their journey to ScyllaDB’s DynamoDB-compatible API.
UiPath Automation Developer Associate Training Series 2025 - Session 4DianaGray10
Please join us for session 4 of the Developer Associate series, where we will cover selectors in Studio and PDF Automation in Studio.
Topics covered:
Selectors in Studio
PDF Automation with Studio
Required self-paced training to be completed for this session:
Selectors in Studio Deep Dive - 2 modules - 1h 30m - https://academy.uipath.com/courses/selectors-in-studio-deep-dive
PDF Automation with Studio - 2 modules - 1h 15m - https:/academy.uipath.com/courses/pdf-automation-in-studio
⁉️ For any questions you may have, please use the dedicated Forum thread. You can tag the hosts and mentors directly and they will reply as soon as possible.
Data Intelligence Platform Transforming Data into Actionable Insights.pptxLisa Gerard
In today’s data-driven world, a Data Intelligence Platform plays a crucial role in empowering organizations to make informed, strategic decisions. By leveraging advanced analytics, seamless data integration, and robust governance, businesses can transform vast amounts of data into actionable insights.
Spin Glass Models of Neural Networks: The Curie-Weiss Model from Statistical ...Charles Martin
The Curie–Weiss Model is a classic from physics that is foundational to understanding the statistical mechanics approach to the theory of neural networks. And, in particular, to the theory behind weightwatcher. In this deck, I present:
• Core Mathematical Techniques: Explore the mean-field theory and the saddle-point approximation (SPA) in the large-N limit, which provide a clear derivation of the phase diagram.
• Simple Phase Behavior: See how the model predicts a phase transition—from a disordered paramagnetic state to an ordered ferromagnetic state—which parallels the behavior observed in neural network training.
• Bridging to Modern Theory: The math here is also essential for understanding the theoretical backbone behind Weightwatcher SETOL theory. Both introduce critical techniques that help explain and predict phase behavior in modern deep learning architectures.
Whether you’re a physicist or an ML practitioner, these insights offer a deeper look at how classical models inform today’s neural network theory.
Agentic AI in Action: Real-Time Vision, Memory & Autonomy with Browser Use & ...Zilliz
About this webinar
Discover how to integrate Vision Language Models with Browser Use and Milvus to create an agentic system capable of real-time visual and textual analysis. Ideal for developers who want to learn how to use Agents that can see, take action, and remember what they saw.
This Session Will:
- Demonstrate a workflow where Browser Use extracts dynamic web data, while Milvus stores and retrieves the data, that way you can always come back to what the agent saw.
- Showcase practical use cases, such as querying live web content with AI agents that reason over historical and visual data.
- Explore balancing autonomy and control in agentic systems, including challenges like hallucination mitigation and performance optimization.
Two Leading Approaches to Data Virtualization, and Which Scales Better? by Da...ScyllaDB
Should you move code to data or data to code? Conventional wisdom favors the former, but cloud trends push the latter. This session by the creator of PACELC explores the shift, its risks, and the ongoing debate in data virtualization between push- and pull-based processing.
Elements of Indigenous Style: Insights and applications for the book industry...BookNet Canada
From acquisitions and editorial to marketing and sales teams, every team member plays a role in accurately, respectfully, and ethically championing Indigenous and traditionally underrepresented voices. This session, led by Warren Cariou, Lead Editor of the second edition of Gregory Younging’s Elements of Indigenous Style, is for book industry professionals eager to learn and apply Indigenous teachings to their work.
Using Elements of Indigenous Style as a foundation, this session delves into its mind-opening content, which goes beyond the scope of a traditional style guide. The book advocates for the indigenization of publishing and addresses topics such as culturally appropriate publishing practices; understanding identity and community affiliation; Two-Spirit, trans, and Indigiqueer contexts; practices to support Indigenous linguistic and cultural sovereignty; and emerging issues in the digital environment. Warren provides actionable recommendations and best practices for publishers working on literary projects by or about Indigenous authors, which can be applied more broadly to other underrepresented communities.
Kaitlin Littlechild from the Indigenous Editors Association brings her expertise to the discussion as the moderator.
Link to recording and transcript: https://bnctechforum.ca/sessions/elements-of-indigenous-style-insights-and-applications-for-the-book-industry/
Presented by BookNet Canada on February 28, 2025 with support from the Department of Canadian Heritage.
Database Migration Strategies and Pitfalls by Patrick BossmanScyllaDB
Jump start your migration to ScyllaDB! In this talk, we will discuss how to migrate from Cassandra, DynamoDB, as well as other sources. Review tooling available to assist with Scylla Migrations. Review approaches and considerations for online and offline migrations, and how to plan for a faster migration if necessary.
Bridging the Gap from Telco to Techco with Agile ArchitectureBATbern
The Telco industry is undergoing a major IT transformation, shifting from Telco to Techco. This shift is driven by a breakneck pace of technological change that traditional architectures simply cannot keep up with. In my presentation, I will explore the profound impact of digitization on Telco architecture. Using examples from Swisscom's Network Division, I will show why Agile Architecture is crucial for cutting complexity, accelerating time-to-market, and sparking innovation within the organization. This approach isn't just strategic; it's vital for the future success of our industry. Join me to uncover how Swisscom is navigating this transformation and what lessons can be applied to your organization.
There’s a common adage that it takes 10 years to develop a file system. As ScyllaDB reaches that 10 year milestone in 2025, it’s the perfect time to reflect on the last decade of ScyllaDB development – both hits and misses. It’s especially appropriate given that our project just reached a critical mass with certain scalability and elasticity goals that we dreamed up years ago. This talk will cover how we arrived at ScyllaDB X Cloud achieving our initial vision, and share where we’re heading next.
Webinar - Zilliz Cloud Monthly Demo - March 2025Zilliz
Join our monthly demo for a technical overview of Zilliz Cloud, a highly scalable and performant vector database service for AI applications
Topics covered
- Zilliz Cloud's scalable architecture
- Key features of the developer-friendly UI
- Security best practices and data privacy
- Highlights from recent product releases
- This webinar is an excellent opportunity for developers to learn about Zilliz Cloud's capabilities and how it can support their AI projects. Register now to join our community and stay up-to-date with the latest vector database technology.
UiPath NY AI Series: Session 1: Introduction to Agentic AI with UiPathDianaGray10
🚀 Embracing the Future: Starting the Course with Agentic AI with UiPath
📢 Event Overview:
Join us for an exciting session on Agentic AI with UiPath! This event is perfect for professionals, tech enthusiasts, and automation leaders eager to learn about autonomous and intelligent digital agents. Discover how UiPath’s Agentic AI is shaping the future of automation! 🤖✨
📅 What You’ll Learn
🔹 UiPath’s Agentic AI Vision - Learn about UiPath’s AI-driven automation future.
🔹 Evolution of UiPath’s Automation - From RPA to AI-powered automation, see the journey! 🚀
🔹 What is Agentic Automation? - Understand how self-adaptive AI is changing workflows.
🔹 Principles of Agentic Automation - Key ideas like autonomy & adaptability.
🔹 Real-World Applications - Success stories & use cases from businesses leveraging AI.
🔹 UiPath’s Agentic AI Architecture - A peek into the technical side of intelligent automation. 🏗️
🔹 Q&A Session
👥 Who Should Attend?
Automation Developers & Tech Enthusiasts 💡
Business Leaders 📊
IT Architects & Tech Innovators 🏗️
UiPath Community Members 🤝
📌 Register now & be part of the future of AI-driven automation! 🔥
UiPath NY AI Series: Session 1: Introduction to Agentic AI with UiPathDianaGray10
unassert - encourage reliable programming by writing assertions in production
1. unassertEncourage Design by Contract (DbC) by writing assertions
in production code, and compiling them away from release
Takuto Wada
Nov 7, 2015 @nodefest Tokyo 2015
8. 'use strict';
var assert = require('assert');
function add (a, b) {
console.assert(typeof a === 'number');
assert(!isNaN(a));
assert.equal(typeof b, 'number');
assert.ok(!isNaN(b));
return a + b;
}
before
src.js
10. 'use strict';
var assert = require('assert');
function add (a, b) {
console.assert(typeof a === 'number');
assert(!isNaN(a));
assert.equal(typeof b, 'number');
assert.ok(!isNaN(b));
return a + b;
}
after
dest.js
13. In internal / private methods, we
check preconditions with assert,
helping us catch mistakes within the
library.
For performance, these checks are
removed from the production build
with unassertify.
CONTRIBUTING.md
where / when unassert
14. I don't think we should use this
primarily for type checking, but for
preconditions -- parts of API
contracts that cannot be statically
checked.
@jfirebaugh
why unassert
15. Flow & TypeScript are compile-time,
and preconditions could be runtime.
Mapbox GL JS is pretty minimal in
terms of transforms - envify, brfs, glify
- such that all JS is vanilla.
@tmcw
why not flow / typescript
19. If you promise to call routine with
precondition satisfied then I, in
return, promise to deliver a final
state in which postcondition is
satisfied.
Design by Contract (DbC)
20. •redundant checks can and indeed will hurt
•simplicity becomes a crucial criterion
•complexity is the major enemy of quality
•whose responsibility it is to enforce it: the
client's, or the supplier's.
Design by Contract (DbC)
22. switch (name) {
case 'foo':
doSomething();
break;
case 'bar':
doAnother();
break;
default:
assert(false, 'Cannot be here');
}
Not only preconditions
23. add(path) {
assert(path instanceof PathElement,
`path should be PathElement but was: ${ typeName(path) }`);
this.paths.push(path);
assert.deepEqual(this.paths, sortedPathElements(this.paths),
'this.paths should always be sorted');
}
Not only preconditions