Slide for COSCUP 2016. A talk to why I start and complete Project 52 and why I choose Golang
http://coscup.org/2016/schedules.html#H06
The MySQL Query Optimizer Explained Through Optimizer Traceoysteing
The document discusses the MySQL query optimizer. It begins by explaining how the optimizer works, including analyzing statistics, determining optimal join orders and access methods. It then describes how the optimizer trace can provide insight into why a particular execution plan was selected. The remainder of the document provides details on the various phases the optimizer goes through, including logical transformations, cost-based optimizations like range analysis and join order selection.
Использование GMock для обеспечения спокойной и сытой жизни разработчика. Обзор как верхушки так и некоторых подводных частей GMock. Разбор возможностей фреймворка на примерах.
Handling inline assembly in Clang and LLVMMin-Yih Hsu
The document discusses how inline assembly is processed in Clang and LLVM. It outlines the target-specific logic involved at each stage, including operand constraint validation in Clang, lowering operands to LLVM IR, and printing different operand types in the assembler. Target-specific callbacks for inline assembly handling are scattered throughout Clang and LLVM. The goals are to learn the inline assembly workflow and provide documentation for backend developers to add support.
MySQL 8 introduces support for ANSI SQL recursive queries with common table expressions, a powerful method for working with recursive data references. Until now, MySQL application developers have had to use workarounds for hierarchical data relationships. It's time to write SQL queries in a more standardized way, and be compatible with other brands of SQL implementations. But as always, the bottom line is: how does it perform? This presentation will briefly describe how to use recursive queries, and then test the performance and scalability of those queries against other solutions for hierarchical queries.
The document provides an introduction to the Go programming language. Some key points:
- Go was designed by Google to handle large scale software development with thousands of developers and machines. It focuses on concurrency, simplicity, and reliability.
- Some core features of Go include goroutines for lightweight threads, channels for communication between goroutines, and interfaces for abstraction.
- Go aims to compile quickly to machine code for performance and packages into single binaries for easy deployment.
- The document demonstrates building a basic web server in Go and encourages hands-on learning through its tour and examples.
As a reformed CQL critic, I'd like to help dispel the myths around CQL and extol its awesomeness. Most criticism comes from people like me who were early Cassandra adopters and are concerned about the SQL-like syntax, the apparent lack of control, and the reliance on a defined schema. I'll pop open the hood, showing just how the various CQL constructs translate to the underlying storage layer--and in the process I hope to give novices and old-timers alike a reason to love CQL.
Introduce Brainf*ck, another Turing complete programming language. Then, try to implement the following from scratch: Interpreter, Compiler [x86_64 and ARM], and JIT Compiler.
The document provides an overview of the Go programming language. It discusses that Go was designed by Google to help solve their large-scale programming problems. It then summarizes Go's history, purpose, features, and syntax elements such as data types, operators, functions, concurrency using goroutines and channels. The document also provides examples of Go code and concludes that Go has emerged as a popular language for cloud infrastructure due to its simplicity, concurrency, and performance.
Hearts Of Darkness - a Spring DevOps ApocalypseJoris Kuipers
In this talk Joris shares several real-life failure cases concerning running Spring applications in production. Examples include services being killed because of health check issues, Micrometer metrics getting lost, circuit breakers never closing after opening, OOM errors caused by unbounded queues and other nightmarish scenario’s. Not only will you come to understand how these problems could sneak through staging to make their way to production, you will also be given practical tips on how to avoid these things from happening to your own applications. Otto von Bismarck famously said “Fools say that they learn by experience. I prefer to profit by others’ experience”. Don’t be a fool, and profit by viewing this talk!
The document discusses the internals of the Windows heap and how it can be exploited for arbitrary memory overwrites. It covers the key data structures used in heap management like segments, free lists, lookaside tables, and virtually allocated chunks. The algorithms for allocation and freeing memory from the heap are explained in detail. Special techniques for reliable heap exploitation are presented for overcoming issues with service pack dependencies and unknown addresses.
Coder sans peur du changement avec la meme pas mal hexagonal architectureThomas Pierrain
Découvrez en pratique l'architecture hexagonale, indispensable pour vos applications complexes !
Ce style d'architecture permet d'adapter votre code à tout changement de technologie sans souffrir. Si vous aimez changer de frameworks ou de librairies, tester correctement ou appliquer le Domain-Driven Design, alors vous avez besoin d'architecture hexagonale !
Avec des exemples en code Java, et au travers d’un kata d’architecture auquel vous pourrez participer, nous vous montrerons les pièges à éviter et comment mettre en œuvre ce pattern sans trop galérer, et ce dès votre retour au bureau !
This document provides information about x86 architecture including registers, flags, modes, common instructions, Intel and AT&T syntax, system calls, examples, and references. It defines the purpose of key registers like EAX, EBX, ESP and flags. It explains real and protect modes and differences between Intel and AT&T syntax. Examples demonstrate how to write assembly code and call system calls. References provided can be used to learn more about x86 assembly programming.
The document discusses C++ exploitation techniques including name mangling, virtual function tables, vtable hijacking, vectors, strings, and memory allocation/deallocation functions like new and delete. It provides details on how virtual function tables are used to implement polymorphism in C++ and how vtable hijacking can be used to exploit vulnerabilities by forcing a vtable and hijacking the virtual function pointer to call shellcode. It also explains how vectors and strings are implemented dynamically in memory and their memory layout.
The document discusses using JSON in MySQL. It begins by introducing the speaker and outlining topics to be covered, including why JSON is useful, loading JSON data into MySQL, performance considerations when querying JSON data, using generated columns with JSON, and searching multi-valued attributes in JSON. The document then dives into examples demonstrating loading sample data from XML to JSON in MySQL, issues that can arise, and techniques for optimizing JSON queries using generated columns and indexes.
Coroutines are Kotlin's solution for concurrency and allow doing something else while waiting for results. They avoid issues with threading like memory usage and bottlenecks. Coroutines use suspending functions to pause execution and switch to other coroutines. They can be cancelled, have timeouts set, and structured hierarchically with jobs. Common coroutine patterns include producers that return values on channels and actors that receive messages on inbound channels. Coroutines are backed by event loops and may require yield() if CPU bound to allow other coroutines to run.
GDB can debug programs by running them under its control. It allows inspecting and modifying program state through breakpoints, watchpoints, and examining variables and memory. GDB supports debugging optimized code, multi-threaded programs, and performing tasks like stepping, continuing, and backtracing through the call stack. It can also automate debugging through commands, scripts, and breakpoint actions.
The code compares pointers and arrays in C by printing their sizes and string lengths. When a string literal is assigned to a pointer, sizeof(pointer) returns the pointer size rather than the string length, while sizeof(array) returns the full array size including the null terminator. strlen(pointer) and strlen(array) both return the string length excluding the null terminator. When an array is passed to a function, it converts to a pointer and sizeof then returns the pointer size rather than full array size.
The document summarizes the use of LLVM for code generation when recompiling Nintendo games as native games. LLVM provides a full compiler infrastructure that can be used to generate code for various platforms from a common intermediate representation (LLVM bitcode). The document discusses using LLVM for code generation from 6502 assembly to generate native code for emulation. Optimizations available through LLVM are also discussed.
Conan is a C/C++ package manager that allows defining and consuming packages from source code or pre-compiled binaries. It supports dependency management, configuration, and testing of C/C++ projects. The document provides an example of using Conan to retrieve and link to the Poco networking library in a C++ project, and describes how to create, test, and publish Conan packages from source code.
It is the presentation file used by Jim Huang (jserv) at OSDC.tw 2009. New compiler technologies are invisible but highly integrated around our world, and we can enrich the experience via facilitating LLVM.
Play with FILE Structure - Yet Another Binary Exploit TechniqueAngel Boy
The document discusses exploiting the FILE structure in C programs. It provides an overview of how file streams and the FILE structure work. Key points include that the FILE structure contains flags, buffers, a file descriptor, and a virtual function table. It describes how functions like fopen, fread, and fwrite interact with the FILE structure. It then discusses potential exploitation techniques like overwriting the virtual function table or FILE's linked list to gain control of program flow. It notes defenses like vtable verification implemented in modern libc libraries.
Evan Lin introduces Golang Taipei, a Golang user group he co-organizes in Taiwan. He discusses his background in Windows and web development and how he got involved with Golang. He shares about Project 52, a challenge he took on to create 52 Golang projects in a year. This helped him learn new tools and algorithms. Evan explains how blogging about his projects and sharing his knowledge led him to become a Golang Developer Experience (GDE). He encourages sharing what you learn to both teach others and further your own understanding of Golang.
How to master a programming language: a Golang example"Evan Lin
This document provides tips and resources for learning the Go programming language. It introduces Go and some of its key features like being compiled, statically typed, and having garbage collection. It then provides various links to interactive coding tutorials, example CLI and testing projects, and documentation resources. It also discusses concurrency concepts in Go like goroutines and channels. The document emphasizes that the best way to truly learn a language is to start writing complete programs and sharing knowledge with others.
Introduce Brainf*ck, another Turing complete programming language. Then, try to implement the following from scratch: Interpreter, Compiler [x86_64 and ARM], and JIT Compiler.
The document provides an overview of the Go programming language. It discusses that Go was designed by Google to help solve their large-scale programming problems. It then summarizes Go's history, purpose, features, and syntax elements such as data types, operators, functions, concurrency using goroutines and channels. The document also provides examples of Go code and concludes that Go has emerged as a popular language for cloud infrastructure due to its simplicity, concurrency, and performance.
Hearts Of Darkness - a Spring DevOps ApocalypseJoris Kuipers
In this talk Joris shares several real-life failure cases concerning running Spring applications in production. Examples include services being killed because of health check issues, Micrometer metrics getting lost, circuit breakers never closing after opening, OOM errors caused by unbounded queues and other nightmarish scenario’s. Not only will you come to understand how these problems could sneak through staging to make their way to production, you will also be given practical tips on how to avoid these things from happening to your own applications. Otto von Bismarck famously said “Fools say that they learn by experience. I prefer to profit by others’ experience”. Don’t be a fool, and profit by viewing this talk!
The document discusses the internals of the Windows heap and how it can be exploited for arbitrary memory overwrites. It covers the key data structures used in heap management like segments, free lists, lookaside tables, and virtually allocated chunks. The algorithms for allocation and freeing memory from the heap are explained in detail. Special techniques for reliable heap exploitation are presented for overcoming issues with service pack dependencies and unknown addresses.
Coder sans peur du changement avec la meme pas mal hexagonal architectureThomas Pierrain
Découvrez en pratique l'architecture hexagonale, indispensable pour vos applications complexes !
Ce style d'architecture permet d'adapter votre code à tout changement de technologie sans souffrir. Si vous aimez changer de frameworks ou de librairies, tester correctement ou appliquer le Domain-Driven Design, alors vous avez besoin d'architecture hexagonale !
Avec des exemples en code Java, et au travers d’un kata d’architecture auquel vous pourrez participer, nous vous montrerons les pièges à éviter et comment mettre en œuvre ce pattern sans trop galérer, et ce dès votre retour au bureau !
This document provides information about x86 architecture including registers, flags, modes, common instructions, Intel and AT&T syntax, system calls, examples, and references. It defines the purpose of key registers like EAX, EBX, ESP and flags. It explains real and protect modes and differences between Intel and AT&T syntax. Examples demonstrate how to write assembly code and call system calls. References provided can be used to learn more about x86 assembly programming.
The document discusses C++ exploitation techniques including name mangling, virtual function tables, vtable hijacking, vectors, strings, and memory allocation/deallocation functions like new and delete. It provides details on how virtual function tables are used to implement polymorphism in C++ and how vtable hijacking can be used to exploit vulnerabilities by forcing a vtable and hijacking the virtual function pointer to call shellcode. It also explains how vectors and strings are implemented dynamically in memory and their memory layout.
The document discusses using JSON in MySQL. It begins by introducing the speaker and outlining topics to be covered, including why JSON is useful, loading JSON data into MySQL, performance considerations when querying JSON data, using generated columns with JSON, and searching multi-valued attributes in JSON. The document then dives into examples demonstrating loading sample data from XML to JSON in MySQL, issues that can arise, and techniques for optimizing JSON queries using generated columns and indexes.
Coroutines are Kotlin's solution for concurrency and allow doing something else while waiting for results. They avoid issues with threading like memory usage and bottlenecks. Coroutines use suspending functions to pause execution and switch to other coroutines. They can be cancelled, have timeouts set, and structured hierarchically with jobs. Common coroutine patterns include producers that return values on channels and actors that receive messages on inbound channels. Coroutines are backed by event loops and may require yield() if CPU bound to allow other coroutines to run.
GDB can debug programs by running them under its control. It allows inspecting and modifying program state through breakpoints, watchpoints, and examining variables and memory. GDB supports debugging optimized code, multi-threaded programs, and performing tasks like stepping, continuing, and backtracing through the call stack. It can also automate debugging through commands, scripts, and breakpoint actions.
The code compares pointers and arrays in C by printing their sizes and string lengths. When a string literal is assigned to a pointer, sizeof(pointer) returns the pointer size rather than the string length, while sizeof(array) returns the full array size including the null terminator. strlen(pointer) and strlen(array) both return the string length excluding the null terminator. When an array is passed to a function, it converts to a pointer and sizeof then returns the pointer size rather than full array size.
The document summarizes the use of LLVM for code generation when recompiling Nintendo games as native games. LLVM provides a full compiler infrastructure that can be used to generate code for various platforms from a common intermediate representation (LLVM bitcode). The document discusses using LLVM for code generation from 6502 assembly to generate native code for emulation. Optimizations available through LLVM are also discussed.
Conan is a C/C++ package manager that allows defining and consuming packages from source code or pre-compiled binaries. It supports dependency management, configuration, and testing of C/C++ projects. The document provides an example of using Conan to retrieve and link to the Poco networking library in a C++ project, and describes how to create, test, and publish Conan packages from source code.
It is the presentation file used by Jim Huang (jserv) at OSDC.tw 2009. New compiler technologies are invisible but highly integrated around our world, and we can enrich the experience via facilitating LLVM.
Play with FILE Structure - Yet Another Binary Exploit TechniqueAngel Boy
The document discusses exploiting the FILE structure in C programs. It provides an overview of how file streams and the FILE structure work. Key points include that the FILE structure contains flags, buffers, a file descriptor, and a virtual function table. It describes how functions like fopen, fread, and fwrite interact with the FILE structure. It then discusses potential exploitation techniques like overwriting the virtual function table or FILE's linked list to gain control of program flow. It notes defenses like vtable verification implemented in modern libc libraries.
Evan Lin introduces Golang Taipei, a Golang user group he co-organizes in Taiwan. He discusses his background in Windows and web development and how he got involved with Golang. He shares about Project 52, a challenge he took on to create 52 Golang projects in a year. This helped him learn new tools and algorithms. Evan explains how blogging about his projects and sharing his knowledge led him to become a Golang Developer Experience (GDE). He encourages sharing what you learn to both teach others and further your own understanding of Golang.
How to master a programming language: a Golang example"Evan Lin
This document provides tips and resources for learning the Go programming language. It introduces Go and some of its key features like being compiled, statically typed, and having garbage collection. It then provides various links to interactive coding tutorials, example CLI and testing projects, and documentation resources. It also discusses concurrency concepts in Go like goroutines and channels. The document emphasizes that the best way to truly learn a language is to start writing complete programs and sharing knowledge with others.
Slides from a Go Lang Coding Dojo I ran recently at a client. The slides are pretty brief as most of the session was spent looking through Tour of Go (http://tour.golang.org/) and a sample project I put together for the coding dojo: https://github.com/clarenceb/jokes_api_golang
The author explains why they switched from primarily using Python to primarily using Go for serious projects. Some key reasons include that Go has better performance, code quality, testing, and concurrency features compared to Python. While Python is still good for hobby projects, Go enforces error handling, has built-in profiling tools, and makes deployment easier due to compiling to a single binary.
The document discusses why a Go program may be slow and provides tips for profiling and optimizing Go code performance. It introduces the pprof CPU profiler and how to use it to analyze performance bottlenecks. Some factors that can slow down Go programs include garbage collection, memory copying, and function calls. The document hopes that future versions of Go will include features like concurrent garbage collection to improve speed.
The document discusses how to create a popular open source project. It recommends finding a great idea, providing well-documented code and workflow, finding the first contributor, and promoting the project. It shares examples of open source projects created by Evan Lin including ones for algorithms, bots, and SDKs. It also discusses how open source projects can help with job skills like documentation, Git operations, code style, and CI/CD.
2018년 8월 19일 PyCon KR 2018에서 오픈소스 교육과 Python을 주제로 발표한 내용입니다.
# 개요
오픈소스 및 오픈소스 개발 방법론은 현대 프로그래밍 개발 및 생태계에서 가장 중요한 축을 담당하고 있다. 전세계 유수의 IT 기업들은 거의 모두 오픈소스를 사용하며, 자체 결과물을 오픈소스로 공개하고 있다. 또한 윈도우 및 맥오에스, 리눅스 및 안드로이드를 비롯한 운영체제들 또한 오픈소스로 개발되거나 또는 오픈소스 커뮤니티 방법론을 이용해 테스트되고 있다.
최근 오픈소스 소프트웨어 및 개발 방법론은 과거 컴퓨터 언어 및 개발 과정과 큰 차잇점이 있다. 가장 큰 차잇점은 네트워크에 의해 가속화된 생태계의 속도이다. 최근 오픈소스 소프트웨어 생태계의 경우 개발 방법론, 기술, 라이브러리 및 프로젝트들이 등장하고 성숙하는 과정에 걸리는 시간이 기존 컴퓨터 생태계에 비해 굉장히 짧다. 따라서 오픈소스 참여 기술보다는 오픈소스 생태계 및 변화의 흐름을 이해하는 것이 더 중요해지고 있다. 따라서 일반적인 대학 교과과정의 타임 프레임을 적용하여 과목을 설계하기에는 무리가 있다.
이 세션에서는 오픈소스 소프트웨어 대학 교육 과정을 설계하고 2년간 강의하며 겪은 다양한 경험을 Python 언어를 중심으로 다룬다. Python은 초기 접근이 용이하여 21세기 초부터 많은 대학이 기초 프로그래밍 언어로 선택하고 있어, 오픈소스 소프트웨어 방법론 교과 과정의 주 언어로 선택하였다. 교과 과정이 지향하는 바는 프로그래밍과 오픈소스 문화 두가지이다. 이를 반영한 교육 과정 설계 시 주의한 점들과, 2년간의 경험 끝에 잘못 생각한 것으로 판단하게 된 몇가지에 대해 간단히 소개한다.
오픈소스 소프트웨어 교육 과정에서는 초반부 오픈소스의 역사, 문화에 대해 학습한 방법과, Python 기반의 오픈소스 프로젝트 진행 과정에서 경험한 다양한 사례 및 장단점에 대해 소개한다. 개발 과정에서는 GitHub을 이용한 협업, 오픈소스 소프트웨어를 무에서 시작하거나 포크해서 시작하는 과정, 공동 작업에서의 PEP 준수의 중요성, 컨트리뷰터,커미터,메인테이너 결정 및 운영과, 팀 내 충돌, 그리고 Code of Conduct를 만들었던 과정을 차례로 설명한다. 또한 배포 패키지 개발을 위해 pypi를 사용하고, manpage로 매뉴얼을 준비하는 과정 및 python 패키지 제작시 겪는 몇몇 허들에 대해서도 소개한다.
마지막으로 과정에서 동기 부여에 대해 고민한 여러 생각 및 경험과 함께, 수업 과정에서 사용한 오리지널 프로젝트 원저자와의 GitHub을 통한 소통 및 오픈소스 경험의 확장 과정을 소개한다.
This presentation was given as a Workshop at OSCON 2014.
New to Go? This tutorial will give developers an introduction and practical
experience in building applications with the Go language. Gopher Steve Francia,
Author of [Hugo](http://hugo.spf13.com),
[Cobra](http://github.com/spf13/cobra), and many other popular Go packages
breaks it down step by step as you build your own full featured Go application.
Starting with an introduction to the Go language. He then reviews the fantastic
go tools available. With our environment ready we will learn by doing. The
remainder of the time will be dedicated to building a working go web and cli
application. Through our application development experience we will introduce
key features, libraries and best practices of using Go.
This tutorial is designed with developers in mind. Prior experience with any of the
following languages: ruby, perl, java, c#, javascript, php, node.js, or python
is preferred. We will be using the MongoDB database as a backend for our
application.
We will be using/learning a variety of libraries including:
* bytes and strings
* templates
* net/http
* io, fmt, errors
* cobra
* mgo
* Gin
* Go.Rice
* Cobra
* Viper
Implementing a command line client to GitHub in GoOwen Ou
This document discusses implementing the command line tool "gh" for interacting with GitHub using the Go programming language. It summarizes gh as a tool for automating Git and GitHub workflows. It then discusses why Go was chosen and some key aspects of Go like compilation speed, static typing, garbage collection, goroutines and channels for concurrency. It also shares lessons learned from building gh in Go like using the right tool, clarity and simplicity in code, and leveraging Go features like fast compilation and static binaries.
This document provides an overview of developing microservices using the Go programming language. It discusses how Go can help reduce the footprint of microservices compared to JVM-based solutions. It then provides background on the Go language, its design goals and pros and cons for development. The rest of the document discusses using Go for microservices, including integrating with services for configuration, logging, distributed tracing, circuit breaking and other concerns. It also compares developing microservices in Go versus Spring Boot and provides code samples.
Go - A Key Language in Enterprise Application Development?C4Media
Video and slides synchronized, mp3 and slide download available at URL https://bit.ly/2COBbRN.
Aarti Parikh goes over the Go language design and talks about why Go matters in the age of multicores and cloud-native computing. Filmed at qconsf.com.
Aarti Parikh is a software engineering manager with a decade of experience building teams and products for the Internet, IoT and now Fintech. Currently, she works at PayPal.
#GeodeSummit: Easy Ways to Become a Contributor to Apache GeodePivotalOpenSourceHub
The document provides steps for becoming a contributor to the Apache Geode project, beginning with joining online conversations about the project, then test-driving it by building and running examples, and finally improving the project by reporting findings, fixing bugs, or adding new features through submitting code. The key steps are to join mailing lists or chat forums to participate in discussions, quickly get started with the project by building and testing examples in 5 minutes, and then test release candidates and report any issues found on the project's issue tracker or documentation pages. Contributions to the codebase are also welcomed by forking the GitHub repository and submitting pull requests with bug fixes or new features.
About go unit test, content contains:
- Why Unit Test
- Basic Knowledge
- Table Testing
- Testing HTTP
- Other Packages
- Other Mock Packages
- Testing with Docker
This document summarizes a two-day Austin Go Language User Group event. Over the two days, there were presentations on topics such as understanding nil in Go, navigating unfamiliar Go code, using Go for data science, error handling in Go, vendoring in Go, concurrency visualization, internationalization in Go, and building mobile apps with Go. Presenters discussed the internals of Go maps and reflection. On the second day, talks included using Go without an operating system, packet capture and analysis in Go, and a hack day working on projects like controlling drones and Bluetooth devices with Go. Resources from many of the presentations were linked.
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...Lucas Jellema
For a long time I have been reluctant to actively contribute to an open source project. I thought it would be rather complicated and demanding – and that I didn't have the knowledge or skills for it or at the very least that they (the project team) weren't waiting for me.
In December 2021, I decided to have a serious input into the Dapr.io project – and now finally to determine how it works and whether it is really that complicated. In this session I want to tell you about my experiences. How Fork, Clone, Branch, Push (and PR) is the rhythm of contributing to an open source project and how you do that (these are all Git actions against GitHub repositories). How to learn how such a project functions and how to connect to it; which tools are needed, which communication channels are used. I tell how the standards of the project – largely automatically enforced – help me to become a better software engineer, with an eye for readability and testability of the code.
How the review process is quite exciting once you have offered your contribution. And how the final "merge to master" of my contribution and then the actual release (Dapr 1.6 contains my first contribution) are nice milestones.
I hope to motivate participants in this session to also take the step yourself and contribute to an open source project in the form of issues or samples, documentation or code. It's valuable to the community and the specific project and I think it's definitely a valuable experience for the "contributer". I looked up to it and now that I've done it gives me confidence – and it tastes like more (I could still use some help with the work on Dapr.io, by the way).
This document summarizes several presentations from a Go programming conference. It discusses tools for compiling Go to JavaScript, accessing mobile APIs from Go, building small binaries, code refactoring, plugins, prototyping designs, immutability, and first class functions in Go. Specific presentations are named and linked that cover topics like GopherJS, mobile development, link flags for small binaries, dealing with messy codebases, communicating between plugins, and advantages of first class functions.
- 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.
This document discusses Kubernetes secrets, service accounts, and authentication. It covers how secrets store sensitive information like passwords or SSH keys. Service accounts associate secrets with pods or provide credentials for processes. The document demonstrates how to create secrets and service accounts, and use secrets in pods through environment variables or mounted volumes. It also lists some OAuth server implementations for authentication.
This document summarizes several consistent hashing algorithms:
Mod-N hashing is simple but makes adding or removing servers difficult as it may require reconstructing the entire hashing table. Consistent hashing addresses this by using two hash functions - one for data and one for servers, placing them on a ring to distribute data. Jump hashing improves load distribution and reduces space usage to O(1) but does not support arbitrary node removal. Maglev hashing provides constant-time lookups but slow generation on node failure. Later algorithms aim to improve aspects like bounded load distribution and memory usage versus lookup speed. Overall, consistent hashing algorithms involve tradeoffs between these factors.
This document discusses vgo, a proposed modification to the Go tool that provides versioned dependencies. It introduces vgo and its key features like semantic versioning, minimal version selection, and allowing builds outside GOPATH. It then provides a tutorial on using vgo to build code, check dependencies, list available versions, upgrade and downgrade modules, and exclude versions.
This document compares Kubernetes and Mesos, discussing their architectures, support for multiple schedulers and container runtimes, suitability for standalone big data workloads, and container network plugins. It notes that big companies initially chose Mesos because it had more production usage history before Kubernetes 1.6. It also provides a timeline comparing feature releases between 2016-2017 for both platforms.
Google APAC Machine Learning Day 是 Google 今年三月初於新加坡 Google 辦公室針對機器學習所舉辦的兩天研討會活動,本次聚會將邀請前往參加該活動的 Evan Lin 及他的同事 Benjamin Chen 帶來他們的心得分享,內容包括:
Tensorflow Summit RECAP
Machine Learning Expert Day 所見所聞
分享一下 Linker Networks 如何使用 Tensorflow
https://gdg-taipei.kktix.cc/events/google-apac-machine-learning-day
Gopher Taiwan Gathering #16: Build a smart bot via GolangEvan Lin
This document summarizes a presentation about using Golang to build smart IM bots. It discusses choosing Golang for its fast performance, concurrency, and tooling. It then provides steps to build Line and Facebook bots using Golang and deploying to Heroku. Examples of pet-care bots are shown. The presentation discusses using LUIS for natural language processing and envisions bots communicating directly without APIs in the future to provide customer service. It also discusses building "right brain" bots and job opportunities.
Docker Swarm allows managing multiple Docker hosts as a single virtual Docker engine. The presenter demonstrates setting up a traditional Docker Swarm cluster with an external key-value store and load balancer. SwarmKit provides the core components of Docker Swarm as standalone binaries. Docker Swarm Mode is integrated directly into Docker Engine 1.12 and later, providing built-in orchestration without external components. The presenter then demonstrates a tutorial using Docker Swarm Mode to deploy a multi-container voting application across 3 Docker hosts and scale the service.
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 discusses Docker, an open-source containerization platform. It begins with a comparison of Docker containers to virtual machines, then describes the Docker architecture including Dockerfiles, images, and containers. Several examples are provided of using Docker to quickly launch servers, compile modules, and build Linux applications. Limitations of Docker on Windows and Mac are noted. The document concludes with recommendations on using Docker for continuous integration, keeping host environments clean, and sharing build environments between colleagues using Dockerfiles.
This document discusses how to set up a Line bot on Heroku using Golang. It provides steps to request a Line bot trial account, deploy the bot to Heroku with one click using a GitHub template, set up a fixed IP for whitelisting on Heroku, fill the bot information into the Line and Heroku dashboards, and includes examples of sending an image response and greeting message when a user adds the bot as a friend. The document concludes with a link to a live demo Line bot project on GitHub.
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.
Exploring Wayland: A Modern Display Server for the FutureICS
Wayland is revolutionizing the way we interact with graphical interfaces, offering a modern alternative to the X Window System. In this webinar, we’ll delve into the architecture and benefits of Wayland, including its streamlined design, enhanced performance, and improved security features.
Discover why Wi-Fi 7 is set to transform wireless networking and how Router Architects is leading the way with next-gen router designs built for speed, reliability, and innovation.
Who Watches the Watchmen (SciFiDevCon 2025)Allon Mureinik
Tests, especially unit tests, are the developers’ superheroes. They allow us to mess around with our code and keep us safe.
We often trust them with the safety of our codebase, but how do we know that we should? How do we know that this trust is well-deserved?
Enter mutation testing – by intentionally injecting harmful mutations into our code and seeing if they are caught by the tests, we can evaluate the quality of the safety net they provide. By watching the watchmen, we can make sure our tests really protect us, and we aren’t just green-washing our IDEs to a false sense of security.
Talk from SciFiDevCon 2025
https://www.scifidevcon.com/courses/2025-scifidevcon/contents/680efa43ae4f5
Solidworks Crack 2025 latest new + license codeaneelaramzan63
Copy & Paste On Google >>> https://dr-up-community.info/
The two main methods for installing standalone licenses of SOLIDWORKS are clean installation and parallel installation (the process is different ...
Disable your internet connection to prevent the software from performing online checks during installation
Microsoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdfTechSoup
In this webinar we will dive into the essentials of generative AI, address key AI concerns, and demonstrate how nonprofits can benefit from using Microsoft’s AI assistant, Copilot, to achieve their goals.
This event series to help nonprofits obtain Copilot skills is made possible by generous support from Microsoft.
What You’ll Learn in Part 2:
Explore real-world nonprofit use cases and success stories.
Participate in live demonstrations and a hands-on activity to see how you can use Microsoft 365 Copilot in your own work!
AgentExchange is Salesforce’s latest innovation, expanding upon the foundation of AppExchange by offering a centralized marketplace for AI-powered digital labor. Designed for Agentblazers, developers, and Salesforce admins, this platform enables the rapid development and deployment of AI agents across industries.
Email: [email protected]
Phone: +1(630) 349 2411
Website: https://www.fexle.com/blogs/agentexchange-an-ultimate-guide-for-salesforce-consultants-businesses/?utm_source=slideshare&utm_medium=pptNg
TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...Andre Hora
Unittest and pytest are the most popular testing frameworks in Python. Overall, pytest provides some advantages, including simpler assertion, reuse of fixtures, and interoperability. Due to such benefits, multiple projects in the Python ecosystem have migrated from unittest to pytest. To facilitate the migration, pytest can also run unittest tests, thus, the migration can happen gradually over time. However, the migration can be timeconsuming and take a long time to conclude. In this context, projects would benefit from automated solutions to support the migration process. In this paper, we propose TestMigrationsInPy, a dataset of test migrations from unittest to pytest. TestMigrationsInPy contains 923 real-world migrations performed by developers. Future research proposing novel solutions to migrate frameworks in Python can rely on TestMigrationsInPy as a ground truth. Moreover, as TestMigrationsInPy includes information about the migration type (e.g., changes in assertions or fixtures), our dataset enables novel solutions to be verified effectively, for instance, from simpler assertion migrations to more complex fixture migrations. TestMigrationsInPy is publicly available at: https://github.com/altinoalvesjunior/TestMigrationsInPy.
PDF Reader Pro Crack Latest Version FREE Download 2025mu394968
🌍📱👉COPY LINK & PASTE ON GOOGLE https://dr-kain-geera.info/👈🌍
PDF Reader Pro is a software application, often referred to as an AI-powered PDF editor and converter, designed for viewing, editing, annotating, and managing PDF files. It supports various PDF functionalities like merging, splitting, converting, and protecting PDFs. Additionally, it can handle tasks such as creating fillable forms, adding digital signatures, and performing optical character recognition (OCR).
What Do Contribution Guidelines Say About Software Testing? (MSR 2025)Andre Hora
Software testing plays a crucial role in the contribution process of open-source projects. For example, contributions introducing new features are expected to include tests, and contributions with tests are more likely to be accepted. Although most real-world projects require contributors to write tests, the specific testing practices communicated to contributors remain unclear. In this paper, we present an empirical study to understand better how software testing is approached in contribution guidelines. We analyze the guidelines of 200 Python and JavaScript open-source software projects. We find that 78% of the projects include some form of test documentation for contributors. Test documentation is located in multiple sources, including CONTRIBUTING files (58%), external documentation (24%), and README files (8%). Furthermore, test documentation commonly explains how to run tests (83.5%), but less often provides guidance on how to write tests (37%). It frequently covers unit tests (71%), but rarely addresses integration (20.5%) and end-to-end tests (15.5%). Other key testing aspects are also less frequently discussed: test coverage (25.5%) and mocking (9.5%). We conclude by discussing implications and future research.
Scaling GraphRAG: Efficient Knowledge Retrieval for Enterprise AIdanshalev
If we were building a GenAI stack today, we'd start with one question: Can your retrieval system handle multi-hop logic?
Trick question, b/c most can’t. They treat retrieval as nearest-neighbor search.
Today, we discussed scaling #GraphRAG at AWS DevOps Day, and the takeaway is clear: VectorRAG is naive, lacks domain awareness, and can’t handle full dataset retrieval.
GraphRAG builds a knowledge graph from source documents, allowing for a deeper understanding of the data + higher accuracy.
WinRAR Crack for Windows (100% Working 2025)sh607827
copy and past on google ➤ ➤➤ https://hdlicense.org/ddl/
WinRAR Crack Free Download is a powerful archive manager that provides full support for RAR and ZIP archives and decompresses CAB, ARJ, LZH, TAR, GZ, ACE, UUE, .
Designing AI-Powered APIs on Azure: Best Practices& ConsiderationsDinusha Kumarasiri
AI is transforming APIs, enabling smarter automation, enhanced decision-making, and seamless integrations. This presentation explores key design principles for AI-infused APIs on Azure, covering performance optimization, security best practices, scalability strategies, and responsible AI governance. Learn how to leverage Azure API Management, machine learning models, and cloud-native architectures to build robust, efficient, and intelligent API solutions
Why Orangescrum Is a Game Changer for Construction Companies in 2025Orangescrum
Orangescrum revolutionizes construction project management in 2025 with real-time collaboration, resource planning, task tracking, and workflow automation, boosting efficiency, transparency, and on-time project delivery.
How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...Egor Kaleynik
This case study explores how we partnered with a mid-sized U.S. healthcare SaaS provider to help them scale from a successful pilot phase to supporting over 10,000 users—while meeting strict HIPAA compliance requirements.
Faced with slow, manual testing cycles, frequent regression bugs, and looming audit risks, their growth was at risk. Their existing QA processes couldn’t keep up with the complexity of real-time biometric data handling, and earlier automation attempts had failed due to unreliable tools and fragmented workflows.
We stepped in to deliver a full QA and DevOps transformation. Our team replaced their fragile legacy tests with Testim’s self-healing automation, integrated Postman and OWASP ZAP into Jenkins pipelines for continuous API and security validation, and leveraged AWS Device Farm for real-device, region-specific compliance testing. Custom deployment scripts gave them control over rollouts without relying on heavy CI/CD infrastructure.
The result? Test cycle times were reduced from 3 days to just 8 hours, regression bugs dropped by 40%, and they passed their first HIPAA audit without issue—unlocking faster contract signings and enabling them to expand confidently. More than just a technical upgrade, this project embedded compliance into every phase of development, proving that SaaS providers in regulated industries can scale fast and stay secure.
How can one start with crypto wallet development.pptxlaravinson24
This presentation is a beginner-friendly guide to developing a crypto wallet from scratch. It covers essential concepts such as wallet types, blockchain integration, key management, and security best practices. Ideal for developers and tech enthusiasts looking to enter the world of Web3 and decentralized finance.
Douwan Crack 2025 new verson+ License codeaneelaramzan63
Copy & Paste On Google >>> https://dr-up-community.info/
Douwan Preactivated Crack Douwan Crack Free Download. Douwan is a comprehensive software solution designed for data management and analysis.
14. What is Go(lang)
• Create by Google
• Design by
• Ken Thompson
• Rob Pike
• Robert Griesemer,
• Feature:
• Compiled
• Statically Typed
• Garbage Collection
32. Project 52
Constraint
• The project could be small or
big, but it should be something
new not just refactoring an old
project.
• The Programming language is
not limited, feel free to write any
language you have just learnt.
• Don't need to create brand new
project, you could rewrite some
exist project. (but on your own
way, not allow to fork and refine.)
53. Other tools
14. A github notification (starred, follower, followed) RSS feed in Golang
15. A simple Github Status RSS feeder server in Golang
16. plurk-makerserver: IFTTT Twitter Plurk