GopherCon UK
GopherCon UK
  • Видео 231
  • Просмотров 1 167 127
How to write a programming language and shell in Go with 92% test coverage and instant CI/CD-Qi Xiao
In this talk I will share my experience of developing a programming language and shell (Elvish, elv.sh) in Go.
The talk will cover the following topics:
A quick intro to Elvish itself, showing its full-fledged programming language and interesting interactive features
A dive into Elvish's interpreter, as a case study of how to implement a dynamic language interpreters in Go. This will include topics like:
How I implemented a tree-walking interpreter and static analyzer in Go
How I avoided reinventing the wheel by leveraging Go's types and standard libraries
How I used Go's concurrency primitives to implement shell semantics like pipelines
Techniques for testing Elvish, including:
Testing Elvish as...
Просмотров: 8 408

Видео

Using Pact to Deploy Microservice with Confidence - Mark Bradley, Armakuni
Просмотров 402День назад
Reliable microservices integration remains a major challenge, particularly when it comes to ensuring that independently deployable services work harmoniously in production. This talk introduces Pact, a powerful Consumer-Driven Contract testing tool essential for deploying microservices with increased confidence. Deploy with confidence, knowing that your stubs represent the API they are imitatin...
Go Full Stack Server-Side Rendering vs SPAs - Fernando J. Villamarin Diaz, JPMC
Просмотров 973День назад
Over the past year, we've witnessed an exciting shift in the development community: front-end logic is merging into the back-end, converging neatly within the Go ecosystem. We're talking full-stack capabilities with server-side rendering via Templ and a dash of HTMX for interactivity. Creating a complete full stack application solely in Go? Sounds awesome! In this talk, we'll delve into how thi...
Production Ready "Hello, World!" Daniela Petruzalek, JPMC
Просмотров 668День назад
As software engineers most of the time we are focusing on delivering the task that is given to us. If someone asks us to do a hello world API we can do it in 4, maybe 5 lines of Go code, but would that code be production-ready? What does production-ready code actually looks like? In this talk we are going to implement a “hello world” API, but focusing on all the aspects that would make this cod...
Building Graphical Go apps is Fyne Andrew Williams, FyneLabs
Просмотров 1 тыс.День назад
Have you been thinking about creating a graphical app, but you don’t know where to start? Have you ever wondered if you could use Go to build these kinds of graphical apps? If these questions sound familiar, then my talk “Visually building Go apps is Fyne” is for you. In this talk, I will show you how to get up and running quickly by building an initial app using barely 10 lines of Go code. Fro...
Building Generative AI Applications in Go (continued)- Gari Singh, Google
Просмотров 228День назад
This session will cover how to leverage the emerging ecosystem of tools and frameworks to build and deploy AI applications and models using Go. Part 1 on our Channel or in the GopherCon UK 2024 playlist!
Building Generative AI Applications in Go Gari Singh, Google
Просмотров 257День назад
This session will cover how to leverage the emerging ecosystem of tools and frameworks to build and deploy AI applications and models using Go. Part 2 is on our channel or in the GopherCon UK 2024 playlist!
Embracing Complexity Entropy in Software Design Shivam Acharya and Peter Chai
Просмотров 436День назад
'Complexity' is often used as an abstract concept in programming and software design - but how does it really manifest itself in the systems we write? Following the refactoring of one of our critical internal libraries, we explore the concept of entropy in software design to guide here we should place complexity in software systems, highlighting the gains and trade-offs of increasing/offloading...
Encore For Go Streamlining Cloud Development and Deployment (Continued) Salman Shah, Smartsheet
Просмотров 103День назад
In this hands-on tutorial, we'll explore Encore, a powerful Go SDK that simplifies cloud development and deployment. Encore allows you to declare infrastructure primitives as type-safe objects in your application code, eliminating the need for manual infrastructure configuration and maintenance. We'll start by setting up a local development environment with Encore, showcasing how it automatical...
Encore For Go Streamlining Cloud Development and Deployment Salman Shah, Smartsheet
Просмотров 136День назад
In this hands-on tutorial, we'll explore Encore, a powerful Go SDK that simplifies cloud development and deployment. Encore allows you to declare infrastructure primitives as type-safe objects in your application code, eliminating the need for manual infrastructure configuration and maintenance. We'll start by setting up a local development environment with Encore, showcasing how it automatical...
Let's Go Quantum - Sam Burns
Просмотров 660День назад
As quantum computing advances, classical encryption will become increasingly vulnerable. Go 1.23 is the first version of the language to introduce some post-quantum encryption features, with more to come. This talk will start off with a very light overview of quantum computing. We will cover what it is, and check in on the current state of the art, as well as why this is relevant to encryption....
An Introduction to Functional Programming in Go - Eleanor McHugh, Innovative Identity Solutions
Просмотров 1,6 тыс.День назад
Some rabbit holes are so far off the beaten track that when you find them they're essentially irresistible. This is one of those rabbit holes. Go is a pragmatic language with good tooling that's quick to learn and well suited to writing concurrent and network aware programs. It's design is generally conservative and so is its community, only gaining Generics a decade after release. It doesn't s...
Blazing Fast Merge with Loser Trees - Bryan Boreham, Grafana Labs
Просмотров 742День назад
Both sorting and merging efficiently can be hard problems. Merging ordered sequences is a little bit easier, but still hard. Thankfully many hard problems in computer science have been well-studied. A good strategy for k-way merging is called Tournament Tree, or Loser Tree. Go didn’t have an implementation of that, so I made one. In this talk, we will look at - Fundamentals and problems of k-wa...
Load testing distributed web services - George Malamidis, loveholidays
Просмотров 623День назад
January 2024 saw loveholidays' busiest period to date, with loveholidays.com serving 8,050 requests per second. Not only were our systems stable during this time, they also maintained strict performance expectations at a record low infrastructure cost. This is the result of continued focus on performance and scalability. Key has been ensuring our systems undergo daily load testing to address an...
Using Go to Scale Audit Logging at Cloudflare - Arti Phugat, Cloudflare
Просмотров 1,3 тыс.14 дней назад
At Cloudflare we operate applications at massive scale, and audit logging serves as a prime example of a distributed system handling millions of requests. Audit logging is integral to modern software development, allowing organizations to track user actions, system activities, and data changes for security, compliance, and troubleshooting purposes. In this session, I will discuss what audit log...
Go for serverless functions - Edson Ticona Zegarra
Просмотров 74014 дней назад
Go for serverless functions - Edson Ticona Zegarra
Go Channels slow down with more CPUs - Grant Stephens, Fastly
Просмотров 1,2 тыс.14 дней назад
Go Channels slow down with more CPUs - Grant Stephens, Fastly
The Key to Go Efficiency is Just a Few Go Runtime Metrics Away! - Bartłomiej Płotka & Arianna Vespri
Просмотров 1 тыс.14 дней назад
The Key to Go Efficiency is Just a Few Go Runtime Metrics Away! - Bartłomiej Płotka & Arianna Vespri
Event Driven Workflows - Andrew Wormald, Luno
Просмотров 2,4 тыс.14 дней назад
Event Driven Workflows - Andrew Wormald, Luno
Decoding AI: A Go Programmer's Perspective - Beth Anderson, BBC
Просмотров 64414 дней назад
Decoding AI: A Go Programmer's Perspective - Beth Anderson, BBC
Improving your code craft with generative AI - Liam Hampton, Microsoft
Просмотров 55714 дней назад
Improving your code craft with generative AI - Liam Hampton, Microsoft
AI is coming for your job - Adam Scholey, Benefex
Просмотров 75614 дней назад
AI is coming for your job - Adam Scholey, Benefex
Boost application performance with profile guided optimization Michael Pratt, Google
Просмотров 1,3 тыс.14 дней назад
Boost application performance with profile guided optimization Michael Pratt, Google
Understanding the Go runtime, Jesús Espino, Mattermost
Просмотров 1,2 тыс.14 дней назад
Understanding the Go runtime, Jesús Espino, Mattermost
Debugging Go Applications - Matt Boyle, Cloudflare
Просмотров 1,9 тыс.14 дней назад
Debugging Go Applications - Matt Boyle, Cloudflare
The Business of Go - Cameron Balahan, Google
Просмотров 66314 дней назад
The Business of Go - Cameron Balahan, Google
Reinventing Speech-to-Text Transcriptions with Go and Whisper - Pratim Bhosale & Sacha Arbonel
Просмотров 1,8 тыс.11 месяцев назад
Reinventing Speech-to-Text Transcriptions with Go and Whisper - Pratim Bhosale & Sacha Arbonel
Adelina Simion & Artur Kondas - The shimmy to the left: why security is coming for engineers
Просмотров 1,3 тыс.11 месяцев назад
Adelina Simion & Artur Kondas - The shimmy to the left: why security is coming for engineers
Memory Management in Go: The good, the bad and the ugly - Liam Hampton
Просмотров 17 тыс.11 месяцев назад
Memory Management in Go: The good, the bad and the ugly - Liam Hampton
Structured Logging for the Standard Library - Jonathan Amsterdam
Просмотров 8 тыс.11 месяцев назад
Structured Logging for the Standard Library - Jonathan Amsterdam

Комментарии

  • @jagrutiacharya7001
    @jagrutiacharya7001 День назад

    Very nice well done

  • @joannacloud9077
    @joannacloud9077 День назад

    Human's Thinking can not be replaced

  • @dlipovetsky
    @dlipovetsky День назад

    46:57 Wait for it ... 😂

  • @StingSting844
    @StingSting844 6 дней назад

    What's the resource usage like compared to electron? I have a lot of Chromebook and low powered device users and this is an important constraint

  • @kojcelkelesh
    @kojcelkelesh 7 дней назад

    Thank you for the video!

  • @bumbam123
    @bumbam123 7 дней назад

    This is very entertaining but please please please never try to do anything like this at work

  • @bumbam123
    @bumbam123 7 дней назад

    Don't show it to Rob Pike

  • @TechTalksWeekly
    @TechTalksWeekly 7 дней назад

    This talk is excellent and it has been featured in the last issue of Tech Talks Weekly newsletter! 🎉 Congrats Eleanor!

  • @GabrielPozo
    @GabrielPozo 7 дней назад

    👏👏👏

  • @invisibleinvisible83
    @invisibleinvisible83 8 дней назад

    Thank you

  • @invisibleinvisible83
    @invisibleinvisible83 8 дней назад

    Thank you 🙏🏻

  • @invisibleinvisible83
    @invisibleinvisible83 8 дней назад

    Thank you 🙏🏻

  • @LeMinecrafteurCool
    @LeMinecrafteurCool 8 дней назад

    Nice !

  • @ElvishShell
    @ElvishShell 8 дней назад

    If you're interested in Elvish, you may also be interested in the talk on its design - ruclips.net/video/wrl9foNXdgM/видео.html. Subscribe to youtube.com/@ElvishShell for more Elvish videos :)

  • @arnabthakuria2243
    @arnabthakuria2243 9 дней назад

    jeez, I almost feel asleep . nice asmr 😀

  • @zeroidentidad
    @zeroidentidad 10 дней назад

    I want the slides

    • @jespinog
      @jespinog 7 дней назад

      RUclips is not allowing me to post the link directly, but you can find them in my speakerdeck (my user is jespino).

  • @cksidharthan
    @cksidharthan 11 дней назад

    Not for beginners and would be a pain for people to maintain this in their codebase unless I'm using this code as a library that someone maintains 😅

  • @park5263
    @park5263 12 дней назад

    It's a quite hard concept for me but I became incredibly interested in Functional Programming. !! thanks

  • @Sam-Burns
    @Sam-Burns 13 дней назад

    CONTENTS 3:07 Is Go 1.23's implementation of Post-Quantum Cryptography secure? 4:25 What is quantum computing 6:34 Quantum phenomenon explained with Gophers! 8:37 What is a qubit? 11:34 'Measuring a qubit' meme 13:59 Quantum logic gates 17:44 Quantum decoherence 23:03 Simulating quantum computers in Go 29:18 What is Post-Quantum Cryptography? 31:31 Quantum Computing's implications for encryption 33:36 Why do we need PQC now? 35:14 Public key cryptography recap 36:09 Key Encapsulation Mechanisms recap 37:44 Lattice-Based Cryptography overview 39:48 NIST standards body 40:56 Hybrid PQC/traditional encryption and the work of Dr Bas Westerbaan 42:36 Detecting PQC in the browser 44:39 What's new in Go 1.23 cryptography, and why it's secure 45:29 Original work by Filippo Valsorda 47:48 Caddy and Cloudflare's fork of Go 49:50 Building a webserver in Go 1.23+ with PQC 51:07 NIST's finalised standard and why Go's implementation is as secure as the finalised version 52:46 Possible future developments SLIDES A write-up and link to the slides is available at sam-burns.com/posts/gophercon-uk-2024-talk-lets-go-quantum/

  • @fringefringe7282
    @fringefringe7282 13 дней назад

    So many emotions...

  • @Danolboy
    @Danolboy 14 дней назад

    horribly unreadable code

    • @ghdshds1899
      @ghdshds1899 10 дней назад

      I think the point here was just to do a ludicrous dive into a rabbit hole that was never to be opened, not present a new way to write your software

  • @ismaelgrahms
    @ismaelgrahms 14 дней назад

    Great talk

  • @n4mlss
    @n4mlss 14 дней назад

    Thank you for these videos. It's very appreciated!

  • @GerbenWijnja
    @GerbenWijnja 14 дней назад

    Next time, use the entire screen for the code.

  • @GabrielPozo
    @GabrielPozo 14 дней назад

    Nice talk! Now, I'm waiting for the upload of the talk from Bryan Boreham: Getting Started with Go Optimization.

  • @jesse9999999
    @jesse9999999 14 дней назад

    one of the most information rich talks I've seen, thank you!

  • @stef9019
    @stef9019 15 дней назад

    Really appreciate the "running it in your editor" part - I was struggling all day with this today. Sadly, only after figuring it out myself I came across this talk :D. The talk didn't go over Helix (understandably so), so I'll leave it here if anyone is curious: Add the following to $HOME/.config/helix/languages.toml: [[language]] name = "<lang>" language-servers = ["<name>"] [language-server.<name>] command = "<path>" <lang> is the language your LSP is for <name> any arbitrary name <path> is obviously the location of your LSP

  • @jcbritobr
    @jcbritobr 15 дней назад

    Thats bizarre...

  • @TechTalksWeekly
    @TechTalksWeekly 15 дней назад

    This talks is excellent and it has been featured in the last issue of Tech Talks Weekly newsletter 👏 Congrats Matt!

  • @ivan-penchev
    @ivan-penchev 18 дней назад

    There is a reason why he is running ELK on ver 7, ver 8 is royal pain to run locally :D

  • @glyniszegarra2750
    @glyniszegarra2750 18 дней назад

    simplemente, Excelente, Felicitaciones Edson

  • @xxxPrzybyLxxx
    @xxxPrzybyLxxx 19 дней назад

    Amdahl's Law it is.

  • @noodledo
    @noodledo 19 дней назад

    Really well explained and complete details on how to tackle scaling issues

  • @peppybocan
    @peppybocan 19 дней назад

    Yeah, I don't think Go's scheduler is necessarily optimised and/or built for 128 core scheduling and contention🤔Usually microservices have ~1 core or units of cores. This use case seems a bit of an odd edge case. I would, instead of having 128 cores, downsize the nodes to 32 core ones, which, yes, increases the number of connections but I don't think that's necessarily a problem. 🤔

  • @park5263
    @park5263 19 дней назад

    Thank you for sharing

  • @aelon321
    @aelon321 20 дней назад

    Have you thought about using temporal and writing your logic directly instead of converting it to a state machine?

  • @danko95bgd
    @danko95bgd 20 дней назад

    You can't take something that i don't have

  • @heithemmoumni
    @heithemmoumni 20 дней назад

    thank you interesting talk

  • @yasir-box
    @yasir-box 20 дней назад

    I use very extensively and it is definitely better than JetBrains AI assistant. But in general i have found chat gpt answers to be significantly better than co pilot. I wish chat gpt integration is released into IDEs as well

  • @mahdiyounesi625
    @mahdiyounesi625 20 дней назад

    Thank you

  • @12crenshaw
    @12crenshaw Месяц назад

    white theme - opinion rejected

  • @dum.briyani
    @dum.briyani Месяц назад

    Loved the talk and the insights. The only slight issue I faced is that it could've been 2 minutes long if it just referred to the documentation.

  • @renekuhn7304
    @renekuhn7304 Месяц назад

    I have great audio!

  • @williamgilmore2226
    @williamgilmore2226 2 месяца назад

    Don’t waste your time watching this! I seldom am this harsh. There is minimal value in the information covered. At best, it is a time waste with a shill for CoPilot at the end. There are errors in it. The worst is that defer is scope by a code block where it is actually scoped at the function level. He absolutely states to not use global variables and subsequently states to reuse variables to minimize allocations without realizing that these two statements have conflicts in cases. Furthermore, he never references sync.Pool as an alternative means. There much better content available. much better

  • @derdere7803
    @derdere7803 2 месяца назад

    I dont understand people that waste the whole screen and put the content in a tiny box in the middle that's unreadable. we don't fancy syntax higlighter we just need to see the plain code.

  • @sebas11tian
    @sebas11tian 2 месяца назад

    Instead of watching this look for even freeman's 2018 presentation.

  • @aleksandrkravtsov8727
    @aleksandrkravtsov8727 2 месяца назад

    Sadly but "Golang manages memory with with memory management mechanisms, go and learn them somewhere else" is all you will get from this video

  • @nexovec
    @nexovec 3 месяца назад

    great talk.

  • @zzFluke
    @zzFluke 3 месяца назад

    well it's really really high level stuff. Almost a quote from the talk: "Wonderful GC would come and clean all your memory for you, don't worry!"

  • @Strawberry_Htet
    @Strawberry_Htet 4 месяца назад

    I thought this talk will go deep dive into GC. This video only touches the high level concepts.

    • @shubhamsharma9754
      @shubhamsharma9754 2 месяца назад

      @Strawberry_Htet Did you got hold of any better resources, which explain the GC internals in Go?