Modern Web 2016: Using Golang to build a smart IM Bot Evan Lin
Evan Lin presents on using Golang to build smart instant messaging bots. The key points covered include:
1. What instant messaging bots are and how they work using a webhook to an HTTPS server.
2. Why Golang is a good choice for building bots, highlighting its speed, concurrency, and tooling.
3. Steps to build bots for Line and Facebook Messenger, deploying examples to Heroku for easy hosting.
4. Using natural language processing with LUIS to build smarter bots that can understand intent and entities.
5. The future of bots interacting directly without APIs and their potential uses for customer service and businesses.
This document provides an overview of Git workflow in agile development. It introduces basic Git commands like git init, git add, git commit, git branch, git checkout, and git merge. It then demonstrates how these commands can be used in a typical workflow involving feature branches, hotfix branches, and merging changes back into the master branch for deployment. Key steps shown include creating feature branches off of develop, pushing changes to those branches, merging the feature branches back into develop once complete, creating hotfix branches off of master as needed, and merging those hotfixes back to both master and develop.
Project 52 is a 52-week challenge to complete 52 Go projects. It was started by Evan Lin to become more familiar with Go through building projects. Some of the projects completed include a machine translator, Facebook pages scraper, and Instagram scraper. The experience of Project 52 helped Lin read more code, use interesting Go packages, and inspired him to start 14 additional Go projects after completing the initial 52.
This document provides guidance on designing microservices using the Go programming language. It begins with an introduction to Go's core concepts like packages, functions, methods, structs, interfaces, errors, goroutines, and what Go does not include. It then discusses when Go is well-suited and not well-suited through examples. The document concludes with tips for designing Go microservices, including leveraging existing frameworks, using interfaces, ORM for entities, centralizing configurations, and making errors meaningful. The overall message is to understand where Go works best and mix technologies as needed while avoiding unnecessary complexity.
The document discusses OSGi versioning and testing. It covers:
1) The importance of versioning software and maintaining backwards compatibility when evolving APIs. OSGi version numbers encode compatibility at the bundle and package level.
2) Best practices for OSGi development including writing decoupled code, using mocks for dependencies, and employing test-driven development.
3) The challenges of testing OSGi applications and approaches for testing bundles in isolation while still testing integration and the full system.
Modern Web 2016: Using Golang to build a smart IM Bot Evan Lin
Evan Lin presents on using Golang to build smart instant messaging bots. The key points covered include:
1. What instant messaging bots are and how they work using a webhook to an HTTPS server.
2. Why Golang is a good choice for building bots, highlighting its speed, concurrency, and tooling.
3. Steps to build bots for Line and Facebook Messenger, deploying examples to Heroku for easy hosting.
4. Using natural language processing with LUIS to build smarter bots that can understand intent and entities.
5. The future of bots interacting directly without APIs and their potential uses for customer service and businesses.
This document provides an overview of Git workflow in agile development. It introduces basic Git commands like git init, git add, git commit, git branch, git checkout, and git merge. It then demonstrates how these commands can be used in a typical workflow involving feature branches, hotfix branches, and merging changes back into the master branch for deployment. Key steps shown include creating feature branches off of develop, pushing changes to those branches, merging the feature branches back into develop once complete, creating hotfix branches off of master as needed, and merging those hotfixes back to both master and develop.
Project 52 is a 52-week challenge to complete 52 Go projects. It was started by Evan Lin to become more familiar with Go through building projects. Some of the projects completed include a machine translator, Facebook pages scraper, and Instagram scraper. The experience of Project 52 helped Lin read more code, use interesting Go packages, and inspired him to start 14 additional Go projects after completing the initial 52.
This document provides guidance on designing microservices using the Go programming language. It begins with an introduction to Go's core concepts like packages, functions, methods, structs, interfaces, errors, goroutines, and what Go does not include. It then discusses when Go is well-suited and not well-suited through examples. The document concludes with tips for designing Go microservices, including leveraging existing frameworks, using interfaces, ORM for entities, centralizing configurations, and making errors meaningful. The overall message is to understand where Go works best and mix technologies as needed while avoiding unnecessary complexity.
The document discusses OSGi versioning and testing. It covers:
1) The importance of versioning software and maintaining backwards compatibility when evolving APIs. OSGi version numbers encode compatibility at the bundle and package level.
2) Best practices for OSGi development including writing decoupled code, using mocks for dependencies, and employing test-driven development.
3) The challenges of testing OSGi applications and approaches for testing bundles in isolation while still testing integration and the full system.
OpenJDK is an open-source implementation of the Java Platform, Standard Edition. It was originally developed by Sun Microsystems, and is now maintained by a community of developers at companies including Oracle, Red Hat, Azul Systems, IBM, and SAP. The development process involves submitting code changes via JIRA and Mercurial repositories, with review and approval from committers needed before changes can be committed. Getting involved in OpenJDK development can start with building the codebase, checking starter issues, developing patches, and submitting them for review on the mailing list.
This document discusses using Golang for building command line tools. It introduces the speaker, Takaaki Mizuno, and his experience. It then discusses some common use cases for Golang, including web services, mobile apps, daemons/services, and command line tools. It asks which language is commonly used for command line tools and argues that Golang is a good choice. Benefits of Golang for command line tools include producing a single binary, being cross-platform, having no runtime dependencies, and supporting concurrency. Many famous command line tools like Docker are written in Golang. The document demonstrates using the gcli tool to generate a skeleton for a Golang command line tool. It provides some tips for
Collaborative Development: The Only CD That Matters - Brent Beer - Codemotion...Codemotion
The document discusses ways to promote collaborative development through knowledge sharing and reuse. It suggests establishing ad-hoc teams, guilds, and hubs of information to make work and expertise discoverable. It also emphasizes the importance of inclusion and adopting practices like InnerSource to engage diverse talent.
Getting started with Go - Florin Patan - Codemotion Rome 2017Codemotion
This talk focuses on people which are interested the Go programming language and want to learn it. In it I will present the various resources new gophers have to learn Go, what are the usual pitfalls and how to get help when they are stuck.
- Go was created in 2007 by Rob Pike and Robert Griesemer at Google to address issues with other languages like slow compilation times and complexity. It was open sourced in 2009.
- Over the past 10 years, Go has grown significantly in adoption and popularity. Key milestones included reaching 1 million users in 2017 and the introduction of Go modules in 2018.
- The Go community has also expanded, growing 76% year-over-year and becoming more inclusive. There are now over 2000 contributors and 28 annual Go conferences held worldwide.
Git is a source control management system that allows developers to work collaboratively by controlling versions from a central repository. Each team member has a local copy of the repository. Commands are used to upload and download changes from the central repository. Best practices for collaboration include using branches like develop and feature branches, and following a roadmap of branching, testing, merging into develop, and releasing to production.
Go is a statically-typed, compiled programming language developed by Google. It aims for fast build times and single binary deployments. Go emphasizes concurrency through lightweight goroutines and channels for communication between them. While it lacks some object-oriented features like inheritance, it provides built-in support for concurrency and parallelism which makes it well-suited for backend services, network applications, and processing large amounts of data.
This document provides an overview and introduction to developing RESTful APIs using the Go programming language. It begins with background on Go and describes it as a general purpose, open source language created at Google with built-in concurrency. It then discusses RESTful architecture and standards before diving into examples of building RESTful APIs in Go using common libraries like Gorilla Mux and frameworks like Negroni for routing and middleware. The document covers best practices for RESTful API development including resource design, HTTP methods, authentication, security, and JSON API specification.
CODE GIST: https://gist.github.com/tyndyll/cce72c16dc112cbe7ffac44dbb1dc5e8
A high level introduction to the Go programming language, including a sample Hello World web server
The document summarizes the past, present, and future of the Zope project. It discusses how Zope was initially successful competing with other web frameworks but then lost popularity with the rise of Ruby on Rails and other Python frameworks. This led to an identity crisis within the Zope community. The vision going forward is to phase out the term "Zope 3", support Zope 2 as the application server, and promote GROK and Zope components as lower barrier ways to build with Zope.
Video and slides synchronized, mp3 and slide download available at URL http://bit.ly/2Gtedjh.
Szczepan Faber talks about two different use cases of implementing continuous delivery at scale: LinkedIn and Mockito. Yet the challenges, benefits and impact on the engineering culture are very similar. Filmed at qconsf.com.
Szczepan Faber is a Tech Lead for LinkedIn Development Tools, responsible for developer productivity at LinkedIn. Previously, he was core engineer of Gradle 1.x and 2.x. and instructed numerous classes on build automation. He created Mockito framework in 2007, currently estimated user base of 2M, and has been giving classes on automated testing since.
This document discusses using Golang for building command line tools. It begins with introductions and background on the speaker and their company Innovatube. Golang is described as being used for non-HTML heavy web development, API servers, and mobile app backends. Common use cases for Golang include web services, mobile apps, game backends, daemons/services, and command line tools. Several popular command line tools built with Golang are listed, and libraries for building CLI tools in Golang are provided. The document demonstrates using the gcli library to generate a skeleton for a Golang CLI tool. It concludes with some tips for coloring text and building dashboards in Golang CLI tools.
The development workflow of git github for beginnersGunjan Patel
For video of this session please visit https://youtu.be/lEnYz0b7omE
===================================================
Joomla! is using successful branching model to maintain and keep stable and staging separate. My presentation is mainly focused on beginners. How joomla is working with git and github to track bugs and release. I will explain basic functionality of Git, it's setup, basic git commands, explanation of commands. This will be basic to advance, so it will also help those who already know git but not following proper development workflow in their application. This presentation will guide and encourage them to use proper workflow. Beginners will able to get knowledge of Joomla development workflow which will help them to contribute in project easily. Topics which I am planning to cover are below,
* Set up your computer to use git & github.
* What is fork? How to fork a repository?
* Clone Repository to work in local
* What is upstream? How to configure upstream?
* Commit and Push changes
* Sending Pull request
* Updating your pull request.
=========== Help ==============
I have write some handy commands so it can be easy to work with Git. You may find book here https://gunjanpatel.gitbooks.io/gitbranchingmodel/content/index.html
Mphasis Digital - Use Go (gloang) for system programming, distributed systems...Aniruddha Chakrabarti
Go is presented as an alternative to C and C++ for system programming, distributed systems, and cloud workloads. It has performance characteristics of C/C++ but also flexibility of modern languages. Go is well-suited for web development with various frameworks and is supported on cloud platforms like Google Cloud and AWS. The document argues that Go will emerge as a strong alternative to C/C++ in these areas.
Building a Kubernetes Powered Central Go Modules RepositoryLeon Stigter
Today, Kubernetes is the defacto standard if you want to run container workloads in a production environment. As we set out to build our next generation of products, and run them smoothly in the cloud, we needed to move to Kubernetes too! In the process of building tools like KubeXray and GoCenter we learned a whole bunch.
At CloudExpo I got to talk about how to get started with Kubernetes and how we got started at JFrog building our new tools. After the session you will know:
How we got to Kubernetes (and why we chose it)
How to know what you have in your apps and containers (and how we built ours)
How we’re running GoCenter at scale.
Refactoring to Modules - Why, How and Everything Else I Can Fit In 45 Minutes… Leon Stigter
Go modules are here to stay and it’s about time to start modularizing your code. In this talk at the Atlanta Go Meetup Group, we’ve covered:
What Go modules are and why you need them
What GoCenter is and why we built this free module repository
What the benefits are of using modules
What are the differences between modules and the things we did before that
What you need to do to "switch" to modules.
OpenJDK is an open-source implementation of the Java Platform, Standard Edition. It was originally developed by Sun Microsystems, and is now maintained by a community of developers at companies including Oracle, Red Hat, Azul Systems, IBM, and SAP. The development process involves submitting code changes via JIRA and Mercurial repositories, with review and approval from committers needed before changes can be committed. Getting involved in OpenJDK development can start with building the codebase, checking starter issues, developing patches, and submitting them for review on the mailing list.
This document discusses using Golang for building command line tools. It introduces the speaker, Takaaki Mizuno, and his experience. It then discusses some common use cases for Golang, including web services, mobile apps, daemons/services, and command line tools. It asks which language is commonly used for command line tools and argues that Golang is a good choice. Benefits of Golang for command line tools include producing a single binary, being cross-platform, having no runtime dependencies, and supporting concurrency. Many famous command line tools like Docker are written in Golang. The document demonstrates using the gcli tool to generate a skeleton for a Golang command line tool. It provides some tips for
Collaborative Development: The Only CD That Matters - Brent Beer - Codemotion...Codemotion
The document discusses ways to promote collaborative development through knowledge sharing and reuse. It suggests establishing ad-hoc teams, guilds, and hubs of information to make work and expertise discoverable. It also emphasizes the importance of inclusion and adopting practices like InnerSource to engage diverse talent.
Getting started with Go - Florin Patan - Codemotion Rome 2017Codemotion
This talk focuses on people which are interested the Go programming language and want to learn it. In it I will present the various resources new gophers have to learn Go, what are the usual pitfalls and how to get help when they are stuck.
- Go was created in 2007 by Rob Pike and Robert Griesemer at Google to address issues with other languages like slow compilation times and complexity. It was open sourced in 2009.
- Over the past 10 years, Go has grown significantly in adoption and popularity. Key milestones included reaching 1 million users in 2017 and the introduction of Go modules in 2018.
- The Go community has also expanded, growing 76% year-over-year and becoming more inclusive. There are now over 2000 contributors and 28 annual Go conferences held worldwide.
Git is a source control management system that allows developers to work collaboratively by controlling versions from a central repository. Each team member has a local copy of the repository. Commands are used to upload and download changes from the central repository. Best practices for collaboration include using branches like develop and feature branches, and following a roadmap of branching, testing, merging into develop, and releasing to production.
Go is a statically-typed, compiled programming language developed by Google. It aims for fast build times and single binary deployments. Go emphasizes concurrency through lightweight goroutines and channels for communication between them. While it lacks some object-oriented features like inheritance, it provides built-in support for concurrency and parallelism which makes it well-suited for backend services, network applications, and processing large amounts of data.
This document provides an overview and introduction to developing RESTful APIs using the Go programming language. It begins with background on Go and describes it as a general purpose, open source language created at Google with built-in concurrency. It then discusses RESTful architecture and standards before diving into examples of building RESTful APIs in Go using common libraries like Gorilla Mux and frameworks like Negroni for routing and middleware. The document covers best practices for RESTful API development including resource design, HTTP methods, authentication, security, and JSON API specification.
CODE GIST: https://gist.github.com/tyndyll/cce72c16dc112cbe7ffac44dbb1dc5e8
A high level introduction to the Go programming language, including a sample Hello World web server
The document summarizes the past, present, and future of the Zope project. It discusses how Zope was initially successful competing with other web frameworks but then lost popularity with the rise of Ruby on Rails and other Python frameworks. This led to an identity crisis within the Zope community. The vision going forward is to phase out the term "Zope 3", support Zope 2 as the application server, and promote GROK and Zope components as lower barrier ways to build with Zope.
Video and slides synchronized, mp3 and slide download available at URL http://bit.ly/2Gtedjh.
Szczepan Faber talks about two different use cases of implementing continuous delivery at scale: LinkedIn and Mockito. Yet the challenges, benefits and impact on the engineering culture are very similar. Filmed at qconsf.com.
Szczepan Faber is a Tech Lead for LinkedIn Development Tools, responsible for developer productivity at LinkedIn. Previously, he was core engineer of Gradle 1.x and 2.x. and instructed numerous classes on build automation. He created Mockito framework in 2007, currently estimated user base of 2M, and has been giving classes on automated testing since.
This document discusses using Golang for building command line tools. It begins with introductions and background on the speaker and their company Innovatube. Golang is described as being used for non-HTML heavy web development, API servers, and mobile app backends. Common use cases for Golang include web services, mobile apps, game backends, daemons/services, and command line tools. Several popular command line tools built with Golang are listed, and libraries for building CLI tools in Golang are provided. The document demonstrates using the gcli library to generate a skeleton for a Golang CLI tool. It concludes with some tips for coloring text and building dashboards in Golang CLI tools.
The development workflow of git github for beginnersGunjan Patel
For video of this session please visit https://youtu.be/lEnYz0b7omE
===================================================
Joomla! is using successful branching model to maintain and keep stable and staging separate. My presentation is mainly focused on beginners. How joomla is working with git and github to track bugs and release. I will explain basic functionality of Git, it's setup, basic git commands, explanation of commands. This will be basic to advance, so it will also help those who already know git but not following proper development workflow in their application. This presentation will guide and encourage them to use proper workflow. Beginners will able to get knowledge of Joomla development workflow which will help them to contribute in project easily. Topics which I am planning to cover are below,
* Set up your computer to use git & github.
* What is fork? How to fork a repository?
* Clone Repository to work in local
* What is upstream? How to configure upstream?
* Commit and Push changes
* Sending Pull request
* Updating your pull request.
=========== Help ==============
I have write some handy commands so it can be easy to work with Git. You may find book here https://gunjanpatel.gitbooks.io/gitbranchingmodel/content/index.html
Mphasis Digital - Use Go (gloang) for system programming, distributed systems...Aniruddha Chakrabarti
Go is presented as an alternative to C and C++ for system programming, distributed systems, and cloud workloads. It has performance characteristics of C/C++ but also flexibility of modern languages. Go is well-suited for web development with various frameworks and is supported on cloud platforms like Google Cloud and AWS. The document argues that Go will emerge as a strong alternative to C/C++ in these areas.
Building a Kubernetes Powered Central Go Modules RepositoryLeon Stigter
Today, Kubernetes is the defacto standard if you want to run container workloads in a production environment. As we set out to build our next generation of products, and run them smoothly in the cloud, we needed to move to Kubernetes too! In the process of building tools like KubeXray and GoCenter we learned a whole bunch.
At CloudExpo I got to talk about how to get started with Kubernetes and how we got started at JFrog building our new tools. After the session you will know:
How we got to Kubernetes (and why we chose it)
How to know what you have in your apps and containers (and how we built ours)
How we’re running GoCenter at scale.
Refactoring to Modules - Why, How and Everything Else I Can Fit In 45 Minutes… Leon Stigter
Go modules are here to stay and it’s about time to start modularizing your code. In this talk at the Atlanta Go Meetup Group, we’ve covered:
What Go modules are and why you need them
What GoCenter is and why we built this free module repository
What the benefits are of using modules
What are the differences between modules and the things we did before that
What you need to do to "switch" to modules.
Refactoring to Modules - Why, How and Everything Else I Can Fit In 45 Minutes…Leon Stigter
This document contains the notes from a presentation on refactoring Go code to use modules. It discusses the history of dependency management in Go and the problems with previous approaches. The presentation introduces modules as the new standard way to manage dependencies and provides definitions of key terms. It outlines how to set up a module, edit the go.mod file, and use modules with the go command. Finally, it discusses benefits of modules like reproducible builds, caching, and immutable dependencies.
The “rise” of the containers created very interesting opportunities for running and deploying micro-services and distributed software in general, like any good thing, it comes with a price. Building a Cloud-Native CI/CD infrastructure utilizing the advantages of containers is quite challenging. In this session, we will introduce the challenges of CI/CD in the cloud native world including building our CI/CD infrastructure as code and working with dynamic workers. We will explore popular projects aiming to help us with these challenges: Bloody Jenkins, Jenkins X and more.
We discuss things to be taken into account when deciding on a policy for your CI/CD pipelines. This might include Git workflows, testing approaches, and shipping strategies.
Modernisation of legacy PHP applications using Symfony2 - PHP Northeast Confe...Fabrice Bernhard
The document discusses modernizing legacy PHP applications using Symfony2. It outlines the challenges of a total rewrite versus a progressive rewrite. A progressive rewrite involves refactoring the application incrementally over time to decouple modules and introduce new Symfony2 features while maintaining the existing codebase. The document describes technical solutions for preventing regressions, upgrading systems, routing, sharing layouts and sessions, decoupling code, and migrating models and data as part of a progressive rewrite approach.
Refactoring to Go modules: why and howLeon Stigter
The document discusses refactoring Go code to use modules. It describes the problems with existing dependency management approaches in Go like vendoring and GOPATH. Modules provide a standard way to declare, fetch, and lock dependencies. Key aspects of modules covered include defining a go.mod file, requiring and replacing dependencies, caching modules locally and remotely, and ensuring immutable and repeatable builds. The presentation encourages developers to start using modules for better management of Go dependencies.
In these slides, I explained about SDLC and how it differs from Git Flow. How to Build the project with git. And also I covers the content about the connection between git and github.
Advantages of golang development services & 10 most used go frameworksKaty Slemon
Go is a compiled, typed language inspired by C syntax that allows programmers familiar with C to migrate to a modern language with the same power. It supports asynchronous concurrency through goroutines and channels, allowing for high performance on multi-core systems. Go programs compile to static binaries with no dependencies, making deployment simple. Popular frameworks for Go include Faygo, Essgo, Macaron, Hugo, Baa, Gin, Beego, Buffalo, Revel, and Gorilla. Overall, Go is well-suited for backend systems requiring high performance and concurrency due to its stability, efficiency and ease of use.
Trusting Your Ingredients - What Building Software And Cheesecake Have In CommonLeon Stigter
The document discusses the similarities between making cheesecake and building software applications. It notes that both processes require trusting where ingredients/libraries come from and having transparency in the overall process. This includes knowing the ingredients/libraries, who uses them, and where they are stored. The document advocates integrating security practices like DevSecOps earlier in the development lifecycle to help build more secure applications faster.
Where did my modules GO? Building and deploying Go Apps w/ GoCenter & CodefreshLeon Stigter
Go is the language of choice for a lot of (cloud-native) projects because it creates very streamlined binaries. We used to “vendor” in all dependencies, but with Go Modules we now have real dependency management. We’ll show you a few pipelines from code to production and see if Modules are that much better to make builds lightning quick and hassle-free.
Best practices for joomla extensions developersFrancesco Abeni
The document discusses best practices for developing Joomla extensions. It covers topics such as using version control with Git, following coding standards, using the MVC pattern with clear separation of controller, model and view code, and leveraging the Joomla framework with classes for databases, users, sessions and more. It also provides examples of code for controllers, models and views that follow these best practices.
The document introduces the Zend Framework, which is a modular collection of PHP classes that simplify common tasks. It aims to be a leading PHP application development framework and demonstration of PHP 5 best practices. Some key components introduced include an MVC framework, database abstraction layer, input filtering, mail sending capabilities, and a Lucene-based search engine. The framework is open source under a BSD license and aims to make PHP application development simple while taking advantage of PHP 5 features.
So You Just Inherited a $Legacy Application...Joe Ferguson
You were just handed the keys to a new repo. Your first glance over the code base causes the fearful "LEGACY" word to ring in your head. HAVE NO FEAR! I'll share the techniques I've learned after working on several legacy codebases to help update that old code to the current PHP generation. We'll cover triaging the old code base, writing tests to make sure you don't break anything, and how to modernize your old code base!
Introduction to GoLang by Amal Mohan N. This presentation is an introduction to GoLang - it's history, features, syntax, importance etc.
concurrency, go-routines, golang, google, gopher, introduction, programming
Que nos espera a los ALM Dudes para el 2013?Bruno Capuano
The document discusses challenges with application lifecycle management (ALM) and recommends adopting agile practices like Scrum and Kanban to improve project predictability, lower costs, and increase team responsiveness. It emphasizes establishing continuous integration using automated testing, version control like Git, and configuration management. Adopting practices like test-driven development, behavior-driven development, and continuous integration can help address typical ALM problems like lack of visibility, ineffective communication, undefined requirements, and inadequate testing.
The document discusses Griffon, an open source desktop rapid development framework that leverages Java Swing and the Groovy language. It provides an overview of Griffon and its key features, including its MVC structure, plugins/addons, application packaging, competitors like Apache Pivot and Eclipse RCP, and sample applications. The agenda includes discussing Griffon's MVC, plugins, packaging, competitors, demos, and a summary. Sample code is provided for building a MongoDB database viewer application in Griffon.
Data in the wild west with some DevOps to the rescueElad Hirsch
Once upon a time, there were just two data pipelines - a data warehouse to support analysis activities, and a reporting pipeline that produced some strange numbers for investors' board meetings, and all was good. But in today's data wild west, we are getting more demands - from business users who would like to transform their idea into a POC, deploy ML models in production, and ensure quality in the data pipeline with regression and anomaly detection. Keeping up with these challenges requires an agile, automated, and cost-effective operation that isn't always part of our data team's responsibility. On the other hand, this may sound familiar with the DevOps challenges we face daily in a SaaS team? so let's add some DevOps to the rescue. I'm sure Gandalf's famous "you should not pass" comes into your mind rejecting this idea, but let's give it a try with a practical, informal introduction to DataOps.
In this session we'll discuss some of Kubernetes' basic concepts and talk about the architecture of the system, the problems it solves, and the model that it uses to handle containerized deployments and scaling.
KNATIVE - DEPLOY, AND MANAGE MODERN CONTAINER-BASED SERVERLESS WORKLOADSElad Hirsch
Knative is the new kid in town in the Serverless community.
As Kubernetes is de facto our cloud infrastructure, Knative allows us to focus more on our business logic and less on infrastructure, All while committing to the new paradigm of Serverless computing.
This session will explore a high-level overview of Knative and follow the architectural design of a modern data pipeline shifting from AWS Lambda to Knative.
JaVers (Open Source) - Object auditing and diff frameworkElad Hirsch
This document discusses a Java-based system for managing decision tables and rule editors. It proposes using Javers to provide version control capabilities, Spring Data repositories for data access, and an MD editor interfacing with an MD database. Key business requirements are to track change history, support draft/commit workflows, and handle conflicts during merges across branches. The technology stack suggested includes Java 8, Spring, JPA, and object serialization.
With Cloud Functions you write simple, functions that doing one unit of execution.
Cloud Functions can be written using JavaScript, Python 3, or Go
and you simply deploy a function bound to the event you want and you are all done.
In our case we will leavrage from Cloud Function to manage our K8s clusters based on work times in order to save budget.
AngularJS apps are great but as all great things its came to an end. This presentation will explore the main aspects from component to routes and the new boot process. we we learn how to efficiently migrate AngularJS projects over to the new Angular platform
The document discusses optimizing Angular performance and debunking myths. It covers topics like change detection, disabling the Angular zone, taking control of change detection, reducing DOM size and recalculation, debugging with probes, server-side rendering, service workers, and reducing build time. The presentation aims to provide best practices for optimizing Angular applications and tackle common performance issues.
This document discusses trends in JavaScript development. It notes that development has shifted to the client-side and JavaScript ecosystems have become more complex. Modern JavaScript development involves using modules, package managers, module loaders, and semantic versioning to manage dependencies and distribute code. Continuous integration/continuous delivery (CI/CD) is also important to reliably deliver changes. Challenges include non-determinism in dependency trees and ensuring offline access to packages and metadata. The talk provides an overview of current JavaScript practices and tools to help developers build and deliver JavaScript applications.
AngularJS - Architecture decisionsin a large project Elad Hirsch
This document discusses architecture decisions for a large JavaScript project. It covers the project's technology stack including using Bower for frontend artifacts, ES6 classes for cleaner code, and RequireJS for asynchronous module loading. It also discusses design principles like separation of concerns, testing as a baseline, and enabling easier reusability of components. Specific Angular directives design topics are covered such as making directives singletons, handling state with $scope, and the compile and link functions.
This document summarizes a presentation given at the Jenkins User Conference in Herzelia, Israel on July 5, 2012. It discusses how Israel Direct Insurance (IDI) has implemented continuous integration practices using tools like Jenkins, Subversion, Maven, Artifactory, and Jira. The presentation outlines IDI's development environment, processes, challenges, and how Jenkins has helped address issues with build synchronization, testing integration, and deployment.
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/
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.
Measures in SQL (SIGMOD 2024, Santiago, Chile)Julian Hyde
SQL has attained widespread adoption, but Business Intelligence tools still use their own higher level languages based upon a multidimensional paradigm. Composable calculations are what is missing from SQL, and we propose a new kind of column, called a measure, that attaches a calculation to a table. Like regular tables, tables with measures are composable and closed when used in queries.
SQL-with-measures has the power, conciseness and reusability of multidimensional languages but retains SQL semantics. Measure invocations can be expanded in place to simple, clear SQL.
To define the evaluation semantics for measures, we introduce context-sensitive expressions (a way to evaluate multidimensional expressions that is consistent with existing SQL semantics), a concept called evaluation context, and several operations for setting and modifying the evaluation context.
A talk at SIGMOD, June 9–15, 2024, Santiago, Chile
Authors: Julian Hyde (Google) and John Fremlin (Google)
https://doi.org/10.1145/3626246.3653374
Liberarsi dai framework con i Web Component.pptxMassimo Artizzu
In Italian
Presentazione sulle feature e l'utilizzo dei Web Component nell sviluppo di pagine e applicazioni web. Racconto delle ragioni storiche dell'avvento dei Web Component. Evidenziazione dei vantaggi e delle sfide poste, indicazione delle best practices, con particolare accento sulla possibilità di usare web component per facilitare la migrazione delle proprie applicazioni verso nuovi stack tecnologici.
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.
Artificia Intellicence and XPath Extension FunctionsOctavian Nadolu
The purpose of this presentation is to provide an overview of how you can use AI from XSLT, XQuery, Schematron, or XML Refactoring operations, the potential benefits of using AI, and some of the challenges we face.
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.
WWDC 2024 Keynote Review: For CocoaCoders AustinPatrick Weigel
Overview of WWDC 2024 Keynote Address.
Covers: Apple Intelligence, iOS18, macOS Sequoia, iPadOS, watchOS, visionOS, and Apple TV+.
Understandable dialogue on Apple TV+
On-device app controlling AI.
Access to ChatGPT with a guest appearance by Chief Data Thief Sam Altman!
App Locking! iPhone Mirroring! And a Calculator!!
14 th Edition of International conference on computer visionShulagnaSarkar2
About the event
14th Edition of International conference on computer vision
Computer conferences organized by ScienceFather group. ScienceFather takes the privilege to invite speakers participants students delegates and exhibitors from across the globe to its International Conference on computer conferences to be held in the Various Beautiful cites of the world. computer conferences are a discussion of common Inventions-related issues and additionally trade information share proof thoughts and insight into advanced developments in the science inventions service system. New technology may create many materials and devices with a vast range of applications such as in Science medicine electronics biomaterials energy production and consumer products.
Nomination are Open!! Don't Miss it
Visit: computer.scifat.com
Award Nomination: https://x-i.me/ishnom
Conference Submission: https://x-i.me/anicon
For Enquiry: Computer@scifat.com
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
Using Query Store in Azure PostgreSQL to Understand Query PerformanceGrant Fritchey
Microsoft has added an excellent new extension in PostgreSQL on their Azure Platform. This session, presented at Posette 2024, covers what Query Store is and the types of information you can get out of it.
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.
Flutter is a popular open source, cross-platform framework developed by Google. In this webinar we'll explore Flutter and its architecture, delve into the Flutter Embedder and Flutter’s Dart language, discover how to leverage Flutter for embedded device development, learn about Automotive Grade Linux (AGL) and its consortium and understand the rationale behind AGL's choice of Flutter for next-gen IVI systems. Don’t miss this opportunity to discover whether Flutter is right for your project.
7. @JFrog | jfrog.com | #GoCenter
When did you start with Go?
Let’s turn to the audience for a poll…
1.0
2012
1.2
2013
1.5
2015
1.8
2017
1.11
2018
8. @JFrog | jfrog.com | #GoCenter
A quick history of go
Go 1.0
First major
milestone as a
long term
stable release
2012 2015
Go 1.5
First release to
no longer use C
(except for cgo)
2017
Go 1.8
Introduction of
Go plugins
2018
Go 1.11
This is where
the magic is! (at
least for this
talk ☺)
9. @JFrog | jfrog.com | #GoCenter
Dependency Management…
So what is that magic?
10. @JFrog | jfrog.com | #GoCenter
“Tis impossible to be sure of anything
but Death and Taxes”
- Christopher Bullock
14. @JFrog | jfrog.com | #GoCenter
Dependency management @ Google
•One Huge Makefile
•Refactor into multi Makefile per module
•Pain of dependency management is huge this days
Dependency Hell term
is born
16. @JFrog | jfrog.com | #GoCenter
One easy solution…?
Dependencies are sources!
Remote imports are in VCS
Dump everything into a single folder
Compile everything together
Profit!!
17. @JFrog | jfrog.com | #GoCenter
•Which dependencies I use?
•Which dependencies you used?
•Which dependencies I should use?
•Which code I’m editing right now?
•Is there any dependency duplications?
•What is going on?!
Wait ! But… how do I know…
18. @JFrog | jfrog.com | #GoCenter
The official response - Let’s duplicate dependencies
“Check your dependencies to your own VCS.”
Andrew Gerrand
19. @JFrog | jfrog.com | #GoCenter
Vendoring – the worst kind of forking
“Copyall of the filesat some version from one version control repository and
pastethem into a differentversion control repository”
20. @JFrog | jfrog.com | #GoCenter
• History, branch, and tag information is lost
(metadata is lost)
• Pulling updates is impossible
• It invites modification, divergence, and bad
fork
• It wastes space
• Good luck finding which version of the code
you using
But what is wrong with vendoring?
21. @JFrog | jfrog.com | #GoCenter
Build your own dependency manager…
“It’s not the role of the tooling provided by
the language to dictate how you manage
your code (...)”
Andrew Gerrand
23. AND THE NEXT THING YOU KNOW…
THERE ARE 19 DEPENDENCY MANAGERS
24.
25. @JFrog | jfrog.com | #GoCenter
•Working in project directories
•Local cache for dependencies
•Version declarations
•Conflict resolution
Go dep – Proper dependency management?
26. •Started as an experiment
•Lesson learned from - java / npm …
•Main challenge - how to solve conflict resolution
• Dep disallow multiple major versions
• GO Tech lead Russ Cox took another approach
• Go -> Simple solution -> SMV
Go dep status
32. @JFrog | jfrog.com | #GoCenter
Who is using Go modules?
Let’s turn to the audience for another poll…
Yes No
33. @JFrog | jfrog.com | #GoCenter
Module
A module is a collection of
related Go packages that
are versioned together as a
single unit.
Let’s go over some definitions
34. @JFrog | jfrog.com | #GoCenter
Sources
A module is a tree
(directory) of Go source
files with a go.mod file in
the root directory.
Let’s go over some definitions
35. @JFrog | jfrog.com | #GoCenter
Version Control
Most often, a single
version-control repository
corresponds exactly to a
single module
Let’s go over some definitions
36. @JFrog | jfrog.com | #GoCenter
Set the environment variable
GO111MODULE to ON
you do not need to set
GO111MODULE
Using go modules
1
2
Work inside $GOPATH Work outside $GOPATH
37. @JFrog | jfrog.com | #GoCenter
mkdir mymodule
cd mymodule
go mod init github.com/retgits/mymodule
Creating a module
38. @JFrog | jfrog.com | #GoCenter
•Import dependencies from Gopkg.lock
go mod init <module path>
•Remove unnecessary imports and add indirect imports
go mod tidy
•Delete the vendor folder
rm –rf vendor/
•Delete Gopkg files
rm Gopkg.*
Moving from DEP to modules
39. Upgrade from dep to go modules
git clone https://github.com/eladh/sample-app-go-dep.git
43. @JFrog | jfrog.com | #GoCenter
module github.com/retgits/mymodule
go 1.12
require (
github.com/naoina/go-stringutil v0.1.0
github.com/some/dependency v1.2.3
github.com/google/go-github/v25 v25.0.1
)
replace github.com/some/dependency ../../Downloads/dependency
It’s great when you got dependencies
that still under local development
44. @JFrog | jfrog.com | #GoCenter
•You can create the vendor folder
go mod vendor
•You can use the vendor folder during builds
go build –mod=vendor
This does mean you need to have all dependencies
listed in your go.mod file
But I kinda like the vendor folder?
It’s provide us dependencies beforehand
45. @JFrog | jfrog.com | #GoCenter
Before modules
go get https://github.com/sirupsen/logrus
git clone https://github.com/sirupsen/logrus
<build module locally>
With modules
go get github.com/sirupsen/logrus
GET github.com/sirupsen/logrus/@v/list
GET github.com/sirupsen/logrus/@v/v1.0.0.mod
GET github.com/sirupsen/logrus/@v/v1.0.0.zip
Go get my a new super duper module
47. @JFrog | jfrog.com | #GoCenter
The <module>@v<version> construct should be immutable
That means that
github.com/retgits/checkiday/@v/v1.0.0
Should forever be the same…
Modules are immutable
48. @JFrog | jfrog.com | #GoCenter
But are they really?
”Friends don’t let friends do git push -f”
- Aaron Schlesinger
49. @JFrog | jfrog.com | #GoCenter
Using the GOPROXY variable
export GOPROXY=https://myawesomeproxy.com
go get github.com/retgits/checkiday
50. @JFrog | jfrog.com | #GoCenter
A Go module proxy is any web server that can
respond to GET requests for URLs of a specified form.
The requests have no query parameters, so even a
site serving from a fixed file system (including a
file:/// URL) can be a module proxy.
51. @JFrog | jfrog.com | #GoCenter
Keeping modules
Highly available, CDN, no infra, free
Public cache (public proxy)
Immediate access, not shared, can be wiped…
Local cache ($GOPATH/pkg/mod)
Fast access, requires infra, shared across devs
Organizational cache (private proxy)
56. @JFrog | jfrog.com | #GoCenter
What is a 5* module for you?
How can we ensure module quality ?
57. @JFrog | jfrog.com | #GoCenter
•If you haven’t, start with Go modules:
GO111MODULE=on if you must stay on $GOPATH
•Start working outside of your $GOPATH
•Use a public proxy server for immutable Go modules
(like GoCenter.io)
•Think about running your own proxy server or repository
manager such as Artifactory or Athens
Final thoughts
58. @JFrog | jfrog.com | #GoCenter
Go modules are in beta stage ?
Modules are supported from Go version 1.11
but it will be finalized in Go version 1.13
63. @JFrog | jfrog.com | #GoCenter
▪
JFrog CLI
// Configure Artifactory:
jfrog rt c
//Configure the project's repositories::
jfrog rt go-config
//Build the project with go and resolve the project dependencies from
Artifactory.
jfrog rt go build --build-name=my-build --build-number=1
//Publish the package we build to Artifactory.
jfrog rt gp go v1.0.0 --build-name=my-build --build-number=1
//Collect environment variables and add them to the build info.
jfrog rt bce my-build 1
//Publish the build info to Artifactory.
jfrog rt bp my-build 1
JFrog CLI - GO support