Elm, a transpiled-to-JavaScript language which makes sure you’ll never have a runtime error in your app. Almost. Why it’s cool, what it looks like, it’s pros and (most importantly) cons.
The document discusses ReasonML, a dialect of OCaml that compiles to JavaScript. It summarizes:
1) The author uses ReasonML for various projects at Viska including 8 cloud functions, a web admin, and a React Native app with over 8,000 lines of ReasonML code and several open source binding libraries.
2) ReasonML allows developing both web and mobile apps with one codebase and team as it compiles to JavaScript, unlike React Native which requires separate teams.
3) ReasonML is advantageous over React Native as it is typed, has a fast compiler, and the functional features of OCaml, unlike the untyped and slow nature of JavaScript in React Native.
Cassandra Summit 2014: Astyanax — To Be or Not To BeDataStax Academy
Presenter: Puneet Oberai, Senior Software Engineer at Netflix
In this session, we'll cover a quick introduction to the Astyanax Java client driver, powerful features, comparison to Java Driver and what to do with CQL3.
Moving a Java team to Scala presents both challenges and benefits. Some challenges include Scala features like infix notation and higher order functions that can scare Java developers. It is important to select team members comfortable with functional programming concepts. Benefits include the Scala REPL for experimenting, compatibility with Java libraries and tools, and features like class constructors and pattern matching that allow for more concise code. With the right approach, a team can embrace Scala's advantages while overcoming unfamiliar elements.
Devops and Immutable infrastructure - Cloud Expo 2015 NYCJohn Willis
You often hear the two titles of "DevOps" and "Immutable Infrastructure" used independently.
In his session at DevOps Summit, John Willis, Technical Evangelist for Docker, will cover the union between the two topics and why this is important. He will cover an overview of Immutable Infrastructure then show how an Immutable Continuous Delivery pipeline can be applied as a best practice for "DevOps." He will end the session with some interesting case study examples.
This document outlines a presentation on ASP.NET MVC. It begins with introductions and prerequisites. The agenda includes an overview of the MVC pattern, differences between ASP.NET MVC and web forms, routing, controllers and actions, Razor views, HTML helpers and partial views, unit testing, and best practices. Live demos are promised on routing, controllers, views, models, HTML helpers, partial views, and layouts. Resources for further learning are provided at the end.
The document provides an overview of reactive programming with Spring Reactor. It defines key concepts like reactive programming, asynchronous and non-blocking approaches, and reactive streams. It then discusses how Spring Reactor allows achieving reactive approaches in Java applications through components like Flux and Mono that represent push-based streams. Code examples are provided to demonstrate defining publishers and subscribers as well as building a simple reactive server with Spring.
Spring Boot is a product from Spring, that provides many configuration defaults for a new Spring project, so that one can set up a project in minutes.
However, this is only one of the many features of Spring Boot. One of its module also provides many important Non-Functional Requirements out-of-the-box: monitoring, metrics, exposing those over HTTP, etc. In this presentation, I’ll demo some of those, that will make DevOps more than a little happy.
The document discusses ReasonML, a dialect of OCaml that compiles to JavaScript. It summarizes:
1) The author uses ReasonML for various projects at Viska including 8 cloud functions, a web admin, and a React Native app with over 8,000 lines of ReasonML code and several open source binding libraries.
2) ReasonML allows developing both web and mobile apps with one codebase and team as it compiles to JavaScript, unlike React Native which requires separate teams.
3) ReasonML is advantageous over React Native as it is typed, has a fast compiler, and the functional features of OCaml, unlike the untyped and slow nature of JavaScript in React Native.
Cassandra Summit 2014: Astyanax — To Be or Not To BeDataStax Academy
Presenter: Puneet Oberai, Senior Software Engineer at Netflix
In this session, we'll cover a quick introduction to the Astyanax Java client driver, powerful features, comparison to Java Driver and what to do with CQL3.
Moving a Java team to Scala presents both challenges and benefits. Some challenges include Scala features like infix notation and higher order functions that can scare Java developers. It is important to select team members comfortable with functional programming concepts. Benefits include the Scala REPL for experimenting, compatibility with Java libraries and tools, and features like class constructors and pattern matching that allow for more concise code. With the right approach, a team can embrace Scala's advantages while overcoming unfamiliar elements.
Devops and Immutable infrastructure - Cloud Expo 2015 NYCJohn Willis
You often hear the two titles of "DevOps" and "Immutable Infrastructure" used independently.
In his session at DevOps Summit, John Willis, Technical Evangelist for Docker, will cover the union between the two topics and why this is important. He will cover an overview of Immutable Infrastructure then show how an Immutable Continuous Delivery pipeline can be applied as a best practice for "DevOps." He will end the session with some interesting case study examples.
This document outlines a presentation on ASP.NET MVC. It begins with introductions and prerequisites. The agenda includes an overview of the MVC pattern, differences between ASP.NET MVC and web forms, routing, controllers and actions, Razor views, HTML helpers and partial views, unit testing, and best practices. Live demos are promised on routing, controllers, views, models, HTML helpers, partial views, and layouts. Resources for further learning are provided at the end.
The document provides an overview of reactive programming with Spring Reactor. It defines key concepts like reactive programming, asynchronous and non-blocking approaches, and reactive streams. It then discusses how Spring Reactor allows achieving reactive approaches in Java applications through components like Flux and Mono that represent push-based streams. Code examples are provided to demonstrate defining publishers and subscribers as well as building a simple reactive server with Spring.
Spring Boot is a product from Spring, that provides many configuration defaults for a new Spring project, so that one can set up a project in minutes.
However, this is only one of the many features of Spring Boot. One of its module also provides many important Non-Functional Requirements out-of-the-box: monitoring, metrics, exposing those over HTTP, etc. In this presentation, I’ll demo some of those, that will make DevOps more than a little happy.
Sébastien Levert presented on using Angular, Azure Functions, and the SharePoint Framework together. He discussed how Azure Functions can be used to host APIs cheaply using various programming languages. He demonstrated a scenario using PowerShell and the Microsoft Graph to provision new SharePoint sites via an Azure Function. Levert also covered how Angular Elements allows generating web components from Angular that can be used in SharePoint Framework web parts, though the approach is still in preview. Resources and next steps were provided.
"GitHub com for lazy in cloud project management" by Sergejs Matancevs from S...DevClub_lv
Experience sharing on how we in Scope Technologies have managed to make project management developer oriented or at least not painful for developer. Our project managers once allowed developers to organize project managements the way we developers want. What happened? How we’ve achieved minimization of administrative stuff? How we use GitHub.com as a tool for lazy project management.
Sergejs is experienced .NET and WEB developer and team lead at Scope Technologies.
Promise of a better future by Rahul Goma Phulore and Pooja Akshantal, Thought...Thoughtworks
With the recent, vivid trend towards multicore hardware and the ever growing application requirements, concurrency is no more a niche area it used to be, and is slowly becoming a norm. In this talk, we will talk about promises/futures, one of the concurrency models that has risen to the occasion. We will look at what they are, how they're implemented and used in Java and Javascript. We will see how Scala, with its functional paradigm and greater abstraction capabilities, avoids "callback hell" typically associated with the model, allows writing of concurrent code in "direct style", and thereby greatly reduces the cognitive burden, allowing you to focus on application logic better.
Spotify's Music Recommendations Lambda ArchitectureEsh Vckay
Spotify's Collaborative Filtering platform powers our Discover Page. In light of the fact, that we have been adding one new user every three seconds, it is paramount that we do things in real-time. We redesigned our recommendation system and added a Storm based real-time platform.
The document summarizes an Entity Framework session that covers topics like eager vs lazy loading, asynchronous queries and saves, optimistic concurrency, and best practices. The agenda includes loading related objects, non-blocking data access, handling concurrency issues, and techniques like avoiding singletons, updating versions, using stored procedures for complex queries, and caching expensive results. General recommendations are to limit result sets, embrace asynchronous patterns, and use fast serializers.
Managing Serverless Microservices in the Wild
Handing off responsibility for your microservice's infrastructure with AWS API Gateway and Lambda is great, but it also means losing visibility and influence over your app in production.
In this talk, we'll discuss different strategies to gain insights into what actually is going on inside your serverless app. We will present a tool we've built at atomData to get high quality, actionable logs and metrics about our services.
Alexandra johnson reducing operational barriers to model trainingMLconf
This document discusses reducing operational barriers to machine learning model training through building machine learning infrastructure. It presents challenges faced by both machine learning experts and infrastructure engineers. It then describes SigOpt's solution of building SigOpt Orchestrate to address these challenges through containerization, Kubernetes for parallel training, and a command line interface for viewing progress and debugging. The final slides invite connecting with SigOpt and note they are hiring.
Using Microsoft Flow to automate our workflows, automatically retweet based on certain hash tags and how powershell.cool was built entirely by content collected and generated by Microsoft Flow. Also Sheep.
Elm & Elixir: Functional Programming and WebPublitory
This document discusses functional programming and its use for web development. It introduces the Elm and Elixir languages as examples of pure functional languages that can handle input/output without side effects. Elm is described as a good choice for building mobile clients since it avoids CSS, HTML, and JavaScript. The document also presents serverless architecture as an option using Elm, with the client communicating directly with a shared database. It provides links to resources on Elm and the Phoenix framework for Elixir web development. Overall, the document promotes functional programming and Elm/Elixir as trends for building scalable and maintainable web applications.
From TOIL to Continuous Delivery of Infrastructure, our tail of migrating our existing Infrastructure as code tools & wrappers so that they can be used in a CD system, but with all of the control grey-beards, enterprises & governments expect.
A tail of how we took our terraform tooling from being human focussed (and thus causing much more TOIL than was reasonable) and adapted it work within a sane set of pipelines, enabling drift checking, automated deployments & approved deployments that fit with in a multi-environment, sovereign-control organisation, while still retaining the ability to "run from your laptop" in an emergency or in bootstrap mode. We'll also cover the patterns that emerged for building tools that are both human & tool friendly, for progressive roll-out of changes & why CI/CD for VM based infrastructure requires better techniques than "fixing the build".
PuppetConf 2017: No Server Left Behind - Miguel Di Ciurcio Filho, InstructPuppet
A big percentage of companies do not use proper configuration management nor automation. In this talk, I will share various ideas and experiences, making the audience feel much more prepared and confident in rolling out Puppet to manage old or legacy environments that might be left out of automation and configuration management. It is possible to roll out the Puppet agent with ease on these challenging scenarios, letting Puppet gradually fully manage everything with confidence and close to no impact. One of the reasons that commonly makes companies afraid of rolling out the Puppet agent is the impact of actually letting it do its job, since there might be so much accumulated technical debt due to years of manual work. I’ll show successful strategies used on some of our clients that demonstrate Puppet’s powerful built-in state modeling and simulation mechanisms and various useful resource types that let us very granularly manage configuration without breaking what is already in place.
North American Collaboration Summit 2018 - SharePoint Framework, Angular & Az...Sébastien Levert
This document discusses using Angular, Azure Functions, and the SharePoint Framework (SPFx) together. It introduces Azure Functions as a way to host APIs cheaply in Azure using various programming languages. It then demonstrates using Azure Functions with the PnP PowerShell cmdlets to provision a Microsoft Teams site. It also discusses challenges with earlier versions of Angular and SPFx, and how Angular Elements helps address these by generating web components from Angular components. The full scenario builds an SPFx web part using Angular and Angular Material, with an Azure Function as the backend API. While this approach is currently the best option, it is still early preview for production use.
Things are moving fast. Sometimes you might even feel that you own comfort zone is getting of control. But in a Mobile-First, Cloud-First world, things are changing to a crazy pace and to stay on the top of your game, you need keep up with the latest and greatest technologies that are available out there. By staying up to date, you will give to yourself new options that will let you be more productive, write better code and push you in a more open and more collaborative world.
With the official shipment of Angular 2 and the current preview release of the SharePoint Framework, it is now the time to start moving towards those new technologies in your SharePoint Solutions.
In this session, we will cover the modern tool belt of the SharePoint developer by covering the SharePoint Framework as the new surface to express yourself, Angular as a Framework to enable you to build complete applications within your SharePoint modern experiences and Azure Function as the perfect server-side companion for all your Office 365 & Azure development.
This very demo-intensive session will make sure that at the end you get those 3 key takeaways :
Understand the role of the SharePoint Framework, Angular and Azure Functions in this Cloud-First, Mobile-First world
Have a complete sample where the modern tool belt is relevant and useful in a real-world scenario
Change the way you will think for your next SharePoint project
Presentation for Walnut St Labs "iSchool" - Meant to be an inspiring and informative presentation about what is available to developers for full devops automation for FREE.
Automate yourself out of a job - Use ChatOps!Jaap Brasser
In this session we will cover a range of topics regarding Chat automation and the possibilities this gives us. We will dive into the concept of ChatOps, what it is, how we can implement it and what the benefits are. After this brief introduction we will dive into real-world examples of setting up and configuring your first chatbot, configuring security and resolving real-world incidents using this chatbot.
This document provides an overview of asynchronous processing in Salesforce using Batch Apex and Scheduled Apex. It discusses the differences between synchronous and asynchronous processing, how to structure Batch Apex jobs with start, execute, and finish methods, how to maintain state across batches, considerations for Batch Apex, how Scheduled Apex jobs work based on cron expressions, anatomy of a Scheduled Apex job, and considerations for Scheduled Apex. The document includes demos of writing basic and stateful Batch Apex jobs and a Scheduled Apex job with a cron trigger.
MEAN is an acronym representing a suite of opensource tech: MongoDB, Express, AngularJS, and Node.js.
In this presentation, Leila Adams, software developer at Aspenware, explores the MEAN stack from a .NET context for the Boulder Colorado .NET user group.
Participants learned how to play nice with Node.js without leaving the comfort of their Microsoft environment, how to get started creating a MEAN project and current web trends influencing the upcoming version of .NET.
The document discusses modularizing a codebase using Architect, a dependency injection framework for Node.js. It describes problems that can occur when a codebase grows such as tight coupling between modules and lack of configuration options. Architect addresses these by treating each piece of functionality as a plugin that can import other plugins, declares dependencies, and is configured through options. This allows building independent and testable modules that can be combined to create applications.
Introduction to Aspect Oriented Programming by Donald Belcham.NET Conf UY
Aspect-oriented programming (AOP) is a programming paradigm that aims to increase modularity by allowing separation of cross-cutting concerns. It does this through aspects, which can encapsulate code that implements a cross-cutting concern and be attached to other code to augment its behavior. There are two main AOP styles - interception, which modifies code execution at runtime through decorators, and IL weaving, which modifies the code during compilation. Both allow aspects to be cleanly separated from core concerns and attached to any code construct.
Sébastien Levert presented on using Angular, Azure Functions, and the SharePoint Framework together. He discussed how Azure Functions can be used to host APIs cheaply using various programming languages. He demonstrated a scenario using PowerShell and the Microsoft Graph to provision new SharePoint sites via an Azure Function. Levert also covered how Angular Elements allows generating web components from Angular that can be used in SharePoint Framework web parts, though the approach is still in preview. Resources and next steps were provided.
"GitHub com for lazy in cloud project management" by Sergejs Matancevs from S...DevClub_lv
Experience sharing on how we in Scope Technologies have managed to make project management developer oriented or at least not painful for developer. Our project managers once allowed developers to organize project managements the way we developers want. What happened? How we’ve achieved minimization of administrative stuff? How we use GitHub.com as a tool for lazy project management.
Sergejs is experienced .NET and WEB developer and team lead at Scope Technologies.
Promise of a better future by Rahul Goma Phulore and Pooja Akshantal, Thought...Thoughtworks
With the recent, vivid trend towards multicore hardware and the ever growing application requirements, concurrency is no more a niche area it used to be, and is slowly becoming a norm. In this talk, we will talk about promises/futures, one of the concurrency models that has risen to the occasion. We will look at what they are, how they're implemented and used in Java and Javascript. We will see how Scala, with its functional paradigm and greater abstraction capabilities, avoids "callback hell" typically associated with the model, allows writing of concurrent code in "direct style", and thereby greatly reduces the cognitive burden, allowing you to focus on application logic better.
Spotify's Music Recommendations Lambda ArchitectureEsh Vckay
Spotify's Collaborative Filtering platform powers our Discover Page. In light of the fact, that we have been adding one new user every three seconds, it is paramount that we do things in real-time. We redesigned our recommendation system and added a Storm based real-time platform.
The document summarizes an Entity Framework session that covers topics like eager vs lazy loading, asynchronous queries and saves, optimistic concurrency, and best practices. The agenda includes loading related objects, non-blocking data access, handling concurrency issues, and techniques like avoiding singletons, updating versions, using stored procedures for complex queries, and caching expensive results. General recommendations are to limit result sets, embrace asynchronous patterns, and use fast serializers.
Managing Serverless Microservices in the Wild
Handing off responsibility for your microservice's infrastructure with AWS API Gateway and Lambda is great, but it also means losing visibility and influence over your app in production.
In this talk, we'll discuss different strategies to gain insights into what actually is going on inside your serverless app. We will present a tool we've built at atomData to get high quality, actionable logs and metrics about our services.
Alexandra johnson reducing operational barriers to model trainingMLconf
This document discusses reducing operational barriers to machine learning model training through building machine learning infrastructure. It presents challenges faced by both machine learning experts and infrastructure engineers. It then describes SigOpt's solution of building SigOpt Orchestrate to address these challenges through containerization, Kubernetes for parallel training, and a command line interface for viewing progress and debugging. The final slides invite connecting with SigOpt and note they are hiring.
Using Microsoft Flow to automate our workflows, automatically retweet based on certain hash tags and how powershell.cool was built entirely by content collected and generated by Microsoft Flow. Also Sheep.
Elm & Elixir: Functional Programming and WebPublitory
This document discusses functional programming and its use for web development. It introduces the Elm and Elixir languages as examples of pure functional languages that can handle input/output without side effects. Elm is described as a good choice for building mobile clients since it avoids CSS, HTML, and JavaScript. The document also presents serverless architecture as an option using Elm, with the client communicating directly with a shared database. It provides links to resources on Elm and the Phoenix framework for Elixir web development. Overall, the document promotes functional programming and Elm/Elixir as trends for building scalable and maintainable web applications.
From TOIL to Continuous Delivery of Infrastructure, our tail of migrating our existing Infrastructure as code tools & wrappers so that they can be used in a CD system, but with all of the control grey-beards, enterprises & governments expect.
A tail of how we took our terraform tooling from being human focussed (and thus causing much more TOIL than was reasonable) and adapted it work within a sane set of pipelines, enabling drift checking, automated deployments & approved deployments that fit with in a multi-environment, sovereign-control organisation, while still retaining the ability to "run from your laptop" in an emergency or in bootstrap mode. We'll also cover the patterns that emerged for building tools that are both human & tool friendly, for progressive roll-out of changes & why CI/CD for VM based infrastructure requires better techniques than "fixing the build".
PuppetConf 2017: No Server Left Behind - Miguel Di Ciurcio Filho, InstructPuppet
A big percentage of companies do not use proper configuration management nor automation. In this talk, I will share various ideas and experiences, making the audience feel much more prepared and confident in rolling out Puppet to manage old or legacy environments that might be left out of automation and configuration management. It is possible to roll out the Puppet agent with ease on these challenging scenarios, letting Puppet gradually fully manage everything with confidence and close to no impact. One of the reasons that commonly makes companies afraid of rolling out the Puppet agent is the impact of actually letting it do its job, since there might be so much accumulated technical debt due to years of manual work. I’ll show successful strategies used on some of our clients that demonstrate Puppet’s powerful built-in state modeling and simulation mechanisms and various useful resource types that let us very granularly manage configuration without breaking what is already in place.
North American Collaboration Summit 2018 - SharePoint Framework, Angular & Az...Sébastien Levert
This document discusses using Angular, Azure Functions, and the SharePoint Framework (SPFx) together. It introduces Azure Functions as a way to host APIs cheaply in Azure using various programming languages. It then demonstrates using Azure Functions with the PnP PowerShell cmdlets to provision a Microsoft Teams site. It also discusses challenges with earlier versions of Angular and SPFx, and how Angular Elements helps address these by generating web components from Angular components. The full scenario builds an SPFx web part using Angular and Angular Material, with an Azure Function as the backend API. While this approach is currently the best option, it is still early preview for production use.
Things are moving fast. Sometimes you might even feel that you own comfort zone is getting of control. But in a Mobile-First, Cloud-First world, things are changing to a crazy pace and to stay on the top of your game, you need keep up with the latest and greatest technologies that are available out there. By staying up to date, you will give to yourself new options that will let you be more productive, write better code and push you in a more open and more collaborative world.
With the official shipment of Angular 2 and the current preview release of the SharePoint Framework, it is now the time to start moving towards those new technologies in your SharePoint Solutions.
In this session, we will cover the modern tool belt of the SharePoint developer by covering the SharePoint Framework as the new surface to express yourself, Angular as a Framework to enable you to build complete applications within your SharePoint modern experiences and Azure Function as the perfect server-side companion for all your Office 365 & Azure development.
This very demo-intensive session will make sure that at the end you get those 3 key takeaways :
Understand the role of the SharePoint Framework, Angular and Azure Functions in this Cloud-First, Mobile-First world
Have a complete sample where the modern tool belt is relevant and useful in a real-world scenario
Change the way you will think for your next SharePoint project
Presentation for Walnut St Labs "iSchool" - Meant to be an inspiring and informative presentation about what is available to developers for full devops automation for FREE.
Automate yourself out of a job - Use ChatOps!Jaap Brasser
In this session we will cover a range of topics regarding Chat automation and the possibilities this gives us. We will dive into the concept of ChatOps, what it is, how we can implement it and what the benefits are. After this brief introduction we will dive into real-world examples of setting up and configuring your first chatbot, configuring security and resolving real-world incidents using this chatbot.
This document provides an overview of asynchronous processing in Salesforce using Batch Apex and Scheduled Apex. It discusses the differences between synchronous and asynchronous processing, how to structure Batch Apex jobs with start, execute, and finish methods, how to maintain state across batches, considerations for Batch Apex, how Scheduled Apex jobs work based on cron expressions, anatomy of a Scheduled Apex job, and considerations for Scheduled Apex. The document includes demos of writing basic and stateful Batch Apex jobs and a Scheduled Apex job with a cron trigger.
MEAN is an acronym representing a suite of opensource tech: MongoDB, Express, AngularJS, and Node.js.
In this presentation, Leila Adams, software developer at Aspenware, explores the MEAN stack from a .NET context for the Boulder Colorado .NET user group.
Participants learned how to play nice with Node.js without leaving the comfort of their Microsoft environment, how to get started creating a MEAN project and current web trends influencing the upcoming version of .NET.
The document discusses modularizing a codebase using Architect, a dependency injection framework for Node.js. It describes problems that can occur when a codebase grows such as tight coupling between modules and lack of configuration options. Architect addresses these by treating each piece of functionality as a plugin that can import other plugins, declares dependencies, and is configured through options. This allows building independent and testable modules that can be combined to create applications.
Introduction to Aspect Oriented Programming by Donald Belcham.NET Conf UY
Aspect-oriented programming (AOP) is a programming paradigm that aims to increase modularity by allowing separation of cross-cutting concerns. It does this through aspects, which can encapsulate code that implements a cross-cutting concern and be attached to other code to augment its behavior. There are two main AOP styles - interception, which modifies code execution at runtime through decorators, and IL weaving, which modifies the code during compilation. Both allow aspects to be cleanly separated from core concerns and attached to any code construct.
Aspect-oriented programming (AOP) is a programming paradigm that aims to increase modularity by allowing separation of cross-cutting concerns. It does this through aspects, which can encapsulate code that implements a cross-cutting concern and attach it to other code, known as join points. There are two main AOP styles - interception, which modifies code execution at runtime through decorators, and IL weaving, which modifies the code during compilation. Both allow clean separation of concerns while maintaining full debuggability.
This document introduces Phoenix, a web framework for building scalable and fault-tolerant distributed systems with Elixir and Erlang. It discusses how Moore's Law has led to more multi-core machines requiring better support for concurrency. Phoenix provides productivity benefits like Rails while enabling applications to handle massive concurrency through Elixir and Erlang's actor model and lightweight processes. The document demonstrates building basic and real-time web apps with Phoenix as well as using it as the web layer for distributed systems.
Hot to build continuously processing for 24/7 real-time data streaming platform?GetInData
You can read our blog post about it here: https://getindata.com/blog/how-to-build-continuously-processing-for-24-7-real-time-data-streaming-platform/
Hot to build continuously processing for 24/7 real-time data streaming platform?
This document provides an overview of Elixir and the Phoenix framework. It discusses how Elixir runs on the Erlang VM and inherits properties like high availability and distribution. Phoenix is introduced as a web framework for Elixir that focuses on productivity, reliability, and speed. Key Phoenix concepts like the request pipeline, router, controllers, models and views are briefly outlined.
Scala Days Chicago 2017: Building a Company on ScalaNatalie Vegel
Tapad co-founder and CTO, Dag Liodden, shares best practices on how companies can embrace Scala to spur growth and use the language to help deliver high quality code at high velocity.
Generalization in Auto-Testing. How we put what we had into new Technological...SQALab
This document discusses generalization in test automation and the XML2Selenium test automation platform. It provides an overview of the platform's architecture, including its use of an XML domain-specific language to define tests, contexts to decouple entities, plugins for extensibility, and support for techniques like polymorphism, page objects, and data-driven testing. The document also covers how the platform has evolved over time and can be used to test itself.
This document discusses using the Xtext framework to build an Eclipse-based integrated development environment (IDE) for digital hardware design using VHDL. It describes implementing a VHDL grammar, scoping, autocompletion, formatting and testing. Key challenges included debugging the declarative scoping approach, improving autocomplete beyond the grammar, customizing formatting, and addressing performance issues for large files. Overall Xtext provided a good starting point but significant custom work was still required to build the IDE.
This document provides an introduction to the Elm programming language. It discusses some key features of Elm including:
- No runtime exceptions due to its purely functional nature and static type checking.
- Use of immutable data and a functional programming style.
- The Elm architecture which is similar to Redux, with the Elm runtime handling side effects and communicating with the DOM.
- Ways to interface Elm code with other languages and frameworks like JavaScript/React using ports and flags.
The document aims to explain what Elm is and why developers may want to use it for building reliable web applications in a declarative style.
Online games backend are challenging applications, a single user generates one http call every few seconds, usage volume can spike very quickly and balance between data read and write is close to 50/50 which make the use of write through cache or other common scaling approaches not so effective.
Follow how in our quest for a better architecture to serve millions of games sessions daily and reduce our resource usage we took the decision to write in Erlang our third generation game backend, see how we’re leveraging the actor model in order to change how we use and conceive our persistency layer. See also how introducing Erlang as a new tool in a company is working out, what we found hard from an organizational and technical point of view, which obstacle we hit and how as technical guys we convinced our management to take the risk of bringing in house a different technology.
Erlang factory SF 2011 "Erlang and the big switch in social games"Paolo Negri
talk given at erlang factory 2011 about using erlang to build social games backends
Watch the video of this presentation http://vimeo.com/22144057#at=0
My read and summarization of the booklet on devops by mike loukides from O Reilly, great read for starters.. a good reference on automation, inreastructure as code
JavaScript has a well deserved reputation of be hard to write and debug. Put it on a mobile device and the problems increase exponentially. Mobile browsers lack all of the niceties that developers rely on to do testing and debugging including the most fundamental tool, the debugger. But it is possible to write quality JavaScript on a mobile device without relying on blind luck. In this talk I will show all of the tools and tricks that I learned in my 12 month development of the new KBB.com mobile site.
With more businesses moving to cloud-based solutions everyday, we must re-think the strategies used to deploy Perl applications and related libraries, given the volatile aspects of the cloud and its constraints.
In this talk I go over the challenges posed by virtualised environments, and consider several solutions to them. The use cases are all related to Amazon's EC2, but will easily be adapted for GoGrid, Mosso, and others.
The Typesafe Stack includes Scala, Akka, and Play frameworks for building scalable applications. Scala is a statically typed, functional programming language that runs on the JVM and interoperates with Java. Akka is an event-driven middleware for building distributed, fault-tolerant applications using actors. Play is a web framework that enables fast development of RESTful APIs and web applications using Scala templates. Together, these frameworks provide tools for building scalable, distributed systems with easy development.
The document discusses reasons for using Kotlin Multiplatform including writing code once that can run on multiple platforms, sharing business logic between server and client apps, and accessing native platform APIs from Kotlin. It notes Kotlin Multiplatform allows optional code sharing so only common code is shared. It also discusses why other cross-platform solutions may not be ideal and provides an overview of Kotlin/Native and concurrency in Kotlin.
Similar to Elm - never get a runtime error anymore. Almost. (20)
Consistent toolbox talks are critical for maintaining workplace safety, as they provide regular opportunities to address specific hazards and reinforce safe practices.
These brief, focused sessions ensure that safety is a continual conversation rather than a one-time event, which helps keep safety protocols fresh in employees' minds. Studies have shown that shorter, more frequent training sessions are more effective for retention and behavior change compared to longer, infrequent sessions.
Engaging workers regularly, toolbox talks promote a culture of safety, empower employees to voice concerns, and ultimately reduce the likelihood of accidents and injuries on site.
The traditional method of conducting safety talks with paper documents and lengthy meetings is not only time-consuming but also less effective. Manual tracking of attendance and compliance is prone to errors and inconsistencies, leading to gaps in safety communication and potential non-compliance with OSHA regulations. Switching to a digital solution like Safelyio offers significant advantages.
Safelyio automates the delivery and documentation of safety talks, ensuring consistency and accessibility. The microlearning approach breaks down complex safety protocols into manageable, bite-sized pieces, making it easier for employees to absorb and retain information.
This method minimizes disruptions to work schedules, eliminates the hassle of paperwork, and ensures that all safety communications are tracked and recorded accurately. Ultimately, using a digital platform like Safelyio enhances engagement, compliance, and overall safety performance on site. https://safelyio.com/
UI5con 2024 - Keynote: Latest News about UI5 and it’s EcosystemPeter Muessig
Learn about the latest innovations in and around OpenUI5/SAPUI5: UI5 Tooling, UI5 linter, UI5 Web Components, Web Components Integration, UI5 2.x, UI5 GenAI.
Recording:
https://www.youtube.com/live/MSdGLG2zLy8?si=INxBHTqkwHhxV5Ta&t=0
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdfVALiNTRY360
Salesforce Healthcare CRM, implemented by VALiNTRY360, revolutionizes patient management by enhancing patient engagement, streamlining administrative processes, and improving care coordination. Its advanced analytics, robust security, and seamless integration with telehealth services ensure that healthcare providers can deliver personalized, efficient, and secure patient care. By automating routine tasks and providing actionable insights, Salesforce Healthcare CRM enables healthcare providers to focus on delivering high-quality care, leading to better patient outcomes and higher satisfaction. VALiNTRY360's expertise ensures a tailored solution that meets the unique needs of any healthcare practice, from small clinics to large hospital systems.
For more info visit us https://valintry360.com/solutions/health-life-sciences
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...XfilesPro
Wondering how X-Sign gained popularity in a quick time span? This eSign functionality of XfilesPro DocuPrime has many advancements to offer for Salesforce users. Explore them now!
Microservice Teams - How the cloud changes the way we workSven Peters
A lot of technical challenges and complexity come with building a cloud-native and distributed architecture. The way we develop backend software has fundamentally changed in the last ten years. Managing a microservices architecture demands a lot of us to ensure observability and operational resiliency. But did you also change the way you run your development teams?
Sven will talk about Atlassian’s journey from a monolith to a multi-tenanted architecture and how it affected the way the engineering teams work. You will learn how we shifted to service ownership, moved to more autonomous teams (and its challenges), and established platform and enablement teams.
Project Management: The Role of Project Dashboards.pdfKarya Keeper
Project management is a crucial aspect of any organization, ensuring that projects are completed efficiently and effectively. One of the key tools used in project management is the project dashboard, which provides a comprehensive view of project progress and performance. In this article, we will explore the role of project dashboards in project management, highlighting their key features and benefits.
How Can Hiring A Mobile App Development Company Help Your Business Grow?ToXSL Technologies
ToXSL Technologies is an award-winning Mobile App Development Company in Dubai that helps businesses reshape their digital possibilities with custom app services. As a top app development company in Dubai, we offer highly engaging iOS & Android app solutions. https://rb.gy/necdnt
What to do when you have a perfect model for your software but you are constrained by an imperfect business model?
This talk explores the challenges of bringing modelling rigour to the business and strategy levels, and talking to your non-technical counterparts in the process.
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...Paul Brebner
Closing talk for the Performance Engineering track at Community Over Code EU (Bratislava, Slovakia, June 5 2024) https://eu.communityovercode.org/sessions/2024/why-apache-kafka-clusters-are-like-galaxies-and-other-cosmic-kafka-quandaries-explored/ Instaclustr (now part of NetApp) manages 100s of Apache Kafka clusters of many different sizes, for a variety of use cases and customers. For the last 7 years I’ve been focused outwardly on exploring Kafka application development challenges, but recently I decided to look inward and see what I could discover about the performance, scalability and resource characteristics of the Kafka clusters themselves. Using a suite of Performance Engineering techniques, I will reveal some surprising discoveries about cosmic Kafka mysteries in our data centres, related to: cluster sizes and distribution (using Zipf’s Law), horizontal vs. vertical scalability, and predicting Kafka performance using metrics, modelling and regression techniques. These insights are relevant to Kafka developers and operators.
Enhanced Screen Flows UI/UX using SLDS with Tom KittPeter Caitens
Join us for an engaging session led by Flow Champion, Tom Kitt. This session will dive into a technique of enhancing the user interfaces and user experiences within Screen Flows using the Salesforce Lightning Design System (SLDS). This technique uses Native functionality, with No Apex Code, No Custom Components and No Managed Packages required.
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSISTier1 app
Are you ready to unlock the secrets hidden within Java thread dumps? Join us for a hands-on session where we'll delve into effective troubleshooting patterns to swiftly identify the root causes of production problems. Discover the right tools, techniques, and best practices while exploring *real-world case studies of major outages* in Fortune 500 enterprises. Engage in interactive lab exercises where you'll have the opportunity to troubleshoot thread dumps and uncover performance issues firsthand. Join us and become a master of Java thread dump analysis!
The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...kalichargn70th171
In today's business landscape, digital integration is ubiquitous, demanding swift innovation as a necessity rather than a luxury. In a fiercely competitive market with heightened customer expectations, the timely launch of flawless digital products is crucial for both acquisition and retention—any delay risks ceding market share to competitors.
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...The Third Creative Media
"Navigating Invideo: A Comprehensive Guide" is an essential resource for anyone looking to master Invideo, an AI-powered video creation tool. This guide provides step-by-step instructions, helpful tips, and comparisons with other AI video creators. Whether you're a beginner or an experienced video editor, you'll find valuable insights to enhance your video projects and bring your creative ideas to life.
3. Secret techniques for reliable projects
• Use pure functions
• Avoid nulls
• Immutability everywhere
• Powerful type system
• One global state
• View is just a pure function of state
19. Cons
• Very opinionated
• Tooling
• Dead Code Elimination
• Immaturity
• Runtime errors are still possible
• Some things are hard to do
• Almost no libraries for “production”
• Poor coverage of modern browser APIs
20. Is it ready for production?
It depends…
But if you learn it,
it will make you a better JavaScript developer.
Editor's Notes
Hi! My name is Anton, and I gonna tell you about the Elm language.
There are tons of compiled-to-JS languages (https://github.com/jashkenas/coffeescript/wiki/list-of-languages-that-compile-to-js over 9000!), so, why would I want to tell you about Elm? Well, let me step back and tell you about my recent project I participated, Montage.
This is basically a photobook editor. You upload a bunch of photos, zoom, pan, rearrange them, then click Order, and you'll receive a physical photo book in a week.
It was a super fun project to work on. Also, it was technically a complex and big project. We wrote it in Dart, which is statically typed, and static typing helped a lot and eliminated a lot of bugs. We also added a powerful troubleshooting system to it - we log all user's actions starting from when they opened the editor, and every time runtime exception happens there, we send that exception to Rollbar (error aggregator service), and attach the logs of all the user actions (including HTTP requests and responses) to these exceptions, together with the user's account name. So whenever user complains something doesn't work there, we theoretically have a lot of information to help - we usually can see the exception, which just happened, all the history of user's actions, requests and responses from our servers, etc. And still, more often than not, I'm looking at all of this, and I have NO IDEA what just happened. How she ended up with that state of the app? How to help the user and at least make sure the project will be saved properly? Why the hell there's no method blah on null, since that thing just never should be null?
Could we avoid all these problems and create a more reliable app, which would have less problems? Well, yeah, there're a lot of techniques, which help with that, like:
* Use pure functions whenever it is possible, try to isolate side effects
* Avoid nulls, there were tons of errors when we call something on null, it was like 80% of errors in out Rollbar. I wish it was easy in any language with nulls...
* Enforce immutability. Immutable objects and values give you piece of mind nothing will ever change them, it's way easier to reason about them, and less chances to make a mistake when using them.
* Use powerful type system, make the compiler check everything and catch errors for developers early, making it impossible to make runtime errors. All the errors should be caught in compile time.
* Concentrate the state in one place, so we don't need to sync a lot of local states between each other
Make rendering is just a pure function of the global state (like redux does currently), local states are very painful to sync.
After Montage, I started to dream about some language or technology, which would solve all these problems we had with Montage, which wouldn't allow us to make runtime errors. Which would just force me to handle every case where something may go wrong, because by the Murphy's law things will go wrong if there's even a slight chance for that for some user.
Elm is a small, simple, very opinionated, staticly typed, pure, functional reactive programming language. It has Haskell-inspired syntax, which is very concise and elegant, and the type system is also Haskell-inspired (with type inference, yay! So you don't have to write all these Foo foo = new Foo() all the time). It doesn't have nulls, it has union types, and overall the type system is quite flexible. Thankfully, it's not as flexible as in Haskell, and fear not, it's not as complex as Haskell, it's actually quite simple. Elm doesn't have typeclasses, monads, do notation, and all these crazy things like this one:
* Elm is a pure language. You can only define pure functions there, no side effects (well, almost. E.g. you can write to console.log)
But we need side effects and state, right? So, Elm solves it with FRP, i.e. it uses "signals" to route user events and other external events into the app, and respond to them. Just like in RxJavaScript, Bacon, etc.
* No nulls. Ever. What to do if there's no value? You should use Maybe. But the difference is - if something returns Maybe, you HAVE TO handle both cases (when there is value and when there's no value). Otherwise, you'll get a compiler error. So, no chance of runtime error here.
* Everything is immutable. When you need to change a list or a record, you create a new one. It's not as inefficient as you'd think, because it uses special data structures under the hood to make it fast.
* Compiler checks everything, there's literally almost no chance to get a runtime error. It will check that you handled every possible case in your 'switch' statements, that everything type checks, that you handled all possible errors you can get from HTTP requests, that you handled possible wrong JSON responses from the server, etc. Some prolific Elm developers stated they never have seen a runtime error in their Elm apps in their code, all runtime errors are coming from the JS code.
Elm is very opinionated about the architecture of your app, if you don't follow what they recommend, you gonna struggle. It's basically a single global state of the app + Command-Query pattern + view as a pure function. The good thing - it's a good architecture, from my experience (and I built 2 apps on that architecture already) - it simplifies the app significantly, and makes debugging very simple. And simple debugging is prob the biggest takeaways after Montage - if you are building a big app, you should really build mechanisms for debugging it, because you’ll need it a lot, and your app will fail in different and totally random places.
I keep talking about how it’s opinionated and about Elm architecture, but what it is, really? Let’s see:
We don't live in the world of ponies and butterflies. Using every technology or language is a tradeoff, and Elm is not an exception. Everything has pluses and minuses. I really don't like when you listen to a talk about some technology or language, and you only get ponies, but not scary dragons. But dragons are there, for sure. So, for Elm, the minuses would be:
* It's very opinionated. If you don't like that "Elm architecture", you are pretty much doomed. It's almost impossible to use another architecture to write a web app in Elm. On the other hand, if you like it and follow the architecture, everything in the language is built with the assumption you are going to use it.
* Tooling. There's a package manager, some integrations with editors, but no IDE features - i.e. no go to definition, no find usages, no refactorings, global renamings, check inferred type under cursor, etc. Coming from the Dart world, where the tools are top-notch and state of art, this looks really poor.
* No tree shaking. The output of the code is not Google Closure compatible, you cannot use it to eliminate unused code (e.g. in ClojureScript or Dart you can).
So, the compiled JS size could be smaller.
* Immaturity. Despite the community is growing, it's still prob < 1% of the JS community. Not many packages, no millions of answers on Stack Overflow, sometimes documentation is sparse. Of course you can use JS packages, there's JS interop in place, but dealing with JS you're losing all this safety and 'no runtime errors' features.
* Runtime errors are still possible (though very rare). E.g. if you call Debug.crash explicitly, or try to create incorrect regex.
Even worse, sometimes you can make it compile, you won't have a runtime error, but then it silently doesn't work. E.g. if you forgot to wire a port, or used a decoder on an event, and that decoder is not compatible with the event's JSON (looking for a nonexisting field, for example). In this case you'll click to a button, and nothing gonna happen. It also is quite rare, but still possible, and this sucks.
* Some simple operations are actually a big deal and require a lot of ceremony. For example, getting height of a generic DOM node is quite tricky to do, you'll have to do that either via ports, (basically, send a request to JS side, and then wait for a response. There's no guarantee JS won't throw an exception on its side). Or you can do that via so-called Native Elm - i.e. write an extension in JS, which will be mapped to Elm's function. Native Elm is how all the core library is implemented. But again, you'll have to be super careful there, things could go even worse, e.g. if you return a null, and Elm's function should return Int, you'll eventually get a runtime error somewhere INSIDE Elm code once it tries to apply e.g. multiplication or another int-specific funciton.
* No production libraries. Like, gathering all the runtime errors and sending them to Rollbar, sending metrics to GA or Mixpanel, logging packages, etc. Things, which are must for production-ready apps.
* A lot of browser APIs are not covered by Elm's standard lib. No File API, no Service Workers, etc. You can do them via ports (JS intro), but again - you will work in JS unsafe realm. Evan (the creator of the language) promises a lot of improvements in this field in the next version of the language though.
In your real app you gonna use ports a lot - even getting a width of a DOM element is not a pure function, so you have to do that via ports, getting a signal of it.
Still, I think this is a very interesting and promising language. It allows you to build very robust and easy to understand core, and move all the impurity and unsafety out of it to JS side, which is very useful for mid-large size projects. I think it's a very promising technology.
Is it ready for production? Well, it depends… And this is probably not the answer you want to hear from me, so I’ll try to elaborate. If you build a next-gen main application for your company, and it gonna take 60 developer months and you bet all your money on it, then I wouldn’t take Elm. I’d probably take TypeScript. Since you have to have the talent pool of developers to hire, Stack Overflow answers for most problems which can arise, solid IDE and plenty of packages to use. Ironically, Elm is supposed to be used in large projects like this, but IMHO a bit too early for it. Some mid size non-central internal tool - I think a good candidate to try it out. Small front-end projects - doesn’t really matter what language to use, IMHO, as long as you can keep the whole app in your head.
But if you’re building large JS projects, want to build large JS projects, want to know more how to build mid-to-large JS projects, you should really look into Elm. It will show you how to work in a pure language, how you can manage state and side effects in front-end projects, how you can build apps using Elm architecture, which is a very elegant architecture. It’s also a quite gentle introduction into functional programming, without head-cracking concepts like in Haskell.
So, I encourage you to try it out, it will make you a better JavaScript developer after all.
That’s it, thank you!