Compare commits

..

No commits in common. "9f849350c96175c2059b8c6b7d8c5d9acfd32a91" and "8da623865336658e472cf8ecb8b4847b291ef14a" have entirely different histories.

13 changed files with 17 additions and 204 deletions

View file

@ -3,7 +3,7 @@
"baseUrl": ".", "baseUrl": ".",
"paths": { "paths": {
"*": [ "*": [
"../../../.cache/go/mod/github.com/!cai!jimmy/hugo-theme-stack/v3@v3.27.0/assets/*" "../../../.cache/go/mod/github.com/!cai!jimmy/hugo-theme-stack/v3@v3.26.0/assets/*"
] ]
} }
} }

View file

@ -2,8 +2,8 @@
title: Books title: Books
description: The books I'm reading/I've read/I plan to read description: The books I'm reading/I've read/I plan to read
date: 2024-01-29 00:00:00+0000 date: 2024-01-29 00:00:00+0000
draft: false
image: books.jpg image: books.jpg
weight: 2
categories: categories:
- Programming - Programming
- Books - Books
@ -48,4 +48,3 @@ the [F] tag means that the book is available freely online. A great starting poi
- [Linux Bible](https://books.google.it/books/about/Linux_Bible.html?id=5rDbDwAAQBAJ&redir_esc=y) - [Linux Bible](https://books.google.it/books/about/Linux_Bible.html?id=5rDbDwAAQBAJ&redir_esc=y)
- [Linux basics for Hakers](https://nostarch.com/linuxbasicsforhackers) - [Linux basics for Hakers](https://nostarch.com/linuxbasicsforhackers)
- [Just for Fun: The Story of an Accidental Revolutionary](https://www.google.it/books/edition/Just_for_Fun/--K-DvEj7yAC) - [Just for Fun: The Story of an Accidental Revolutionary](https://www.google.it/books/edition/Just_for_Fun/--K-DvEj7yAC)
- [Linux Device Drivers, Third Edition](https://lwn.net/Kernel/LDD3/)

View file

@ -3,7 +3,6 @@ title: My linux userspace
description: A collection of tools i use in my workflow description: A collection of tools i use in my workflow
image: linux.png image: linux.png
date: 2023-09-07 00:00:00+0000 date: 2023-09-07 00:00:00+0000
weight: -1
categories: categories:
- Linux - Linux
- Programming - Programming
@ -70,22 +69,19 @@ Again, if you ever want to be taken into consideration by the cool guys and gals
All jokes aside [htop](https://htop.dev/) is a neat piece of software, very light and super useful, written in the mighty C language. All jokes aside [htop](https://htop.dev/) is a neat piece of software, very light and super useful, written in the mighty C language.
## Text editor: neovim ## Text editor: neovim
Ok, big boys time, I use neovim as my main text editor both to play around in linux and to write code. ok, big boys time, i use vim as my main text editor both to play around in linux and to write code
I use the [AstroVim](https://astronvim.com/) setup, it's a very "IDE-like" setup and you can go much more minimalistic if you need to. i use [AstroVim](https://astronvim.com/) setup, its a very IDE like setup and you can go much more minimalistic if you need to.
That being said i am constantly hopping among major neovim configs so this might very well change in the future. That being said i am constantly hopping among major neovim configs so this might very well change in the future.
I didn't customize the setup very much just: i didn't customize the setup very much just:
- relative lines set to true - relative lines set to true
- catcapuccin as my theme - catcapuccin as my theme
- path_display not truncated - path_display not truncated
- telescope search with hidden files enabled - telescope search with hidden files enabled
- random nerdfont installed using this [guide](https://www.behova.net/install-nerd-font-on-arch-linux/) (i will probably copy it just in case this site cease to exists) - random nerdfont installed using this [guide](https://www.behova.net/install-nerd-font-on-arch-linux/) (i will probably copy it just in case this site cease to exists)
- macro changes - macro changes
- lazygit for git version control - lazygit
- minor bindings changes
- minor treesitter changes
- other stuff I'm too lazy to remember - other stuff I'm too lazy to remember
Does this setup suck for your usecase? Remove it with: Does this setup suck for your usecase? Remove it with:
``` ```
rm -rf ~/.config/nvim rm -rf ~/.config/nvim
@ -127,4 +123,4 @@ and more. I like it.
It uses BorgBackup under the hood and is part of Gnome cirle apps. It uses BorgBackup under the hood and is part of Gnome cirle apps.
## SWAG: neofetch ## SWAG: neofetch
Do i need to say more? You can have it start at login to flex on r/unixporn, normal linux users will be most likely disgusted (rightfully so) do i need to say more? you can have it start at login to flex on r/unixporn, normal users will be most likely disgusted (rightfully so)

View file

@ -1,69 +0,0 @@
---
title: macOS setup [WORK IN PROGRESS]
description: A description of my current macOS development setup
date: 2024-09-04 00:00:00+0000
image: macos-setup.png
weight: 999
math:
license:
hidden: false
categories:
- Programming
tags:
- macos
- terminal
---
This is a collection of tools I am using on my M1 Macbook Pro. Most of it is still a work in progress.
I am using the Yabai tiling window manager and skhd as hotkey daemon to replicate the setup I have on my Linux machines as much as i can, Alacritty as my terminal emulator, Powerlever10k as zsh theme and more.
I also made a number of changes in the system setting to remove most of the annoying and/or useless macOS features.
## System settings
### Desktop & Dock
- Set **Click wallpaper to reveal desktop** to **Only in Stage Manager**
- Uncheck **Show items On Desktop**
- Remove all apps from the dock
- Set dock size to as small as possible
- Check **Automatically hide the Dock**
- Uncheck **Animate opening applications**
- Uncheck **Show suggested and recent apps in the Dock**
- Disable Widget completely
### Notifications
- Disable all notifications when the screen is on and unlocked
- Keep notifications when screen is on and locked
### Control Center
- Remove everything except Clock, WiFi and Battery indicators
- More changes will be done during the Menu Bar setup
### Siri & Spotlight
Completely disable Siri, leave Spotlight unchanged, won't be using it anyway once RayCast is installed
## RayCast
I use RayCast as an app launcher, although it can do way more things than just launch your apps, and if you're interested you can check the enormous amount of community plugins available.
Download and install [RayCast](https://www.raycast.com/), follow the tutorial if necessary.
- Disable **Window Manager** control
## Homebrew
A package manager for MacOS. Does what it's supposed to do, most of the times.\
Can be installed as a RayCast plugin and used by opening RayCast and typing **brew**, but personally i find myself using it from the terminal almost always.
- Download and install [Homebrew](https://brew.sh/)
PS: I still have not looked but know there are (apparently) alternatives, in particular: MacPorts and pkgsrc.
## Hidden Bar
Install Hidden Bar using Brew, it's an app that allows you to decide which icons you want to see and which icons you want to hide in your menu bar.\
You will want to start this app at login.
## Stats
[Stats](https://github.com/exelban/stats) is an app for the Menu Bar that shows statistics about the hardware. CPU/GPU/RAM temps and usage, stuff like that.\
I keep only the CPU temp and RAM usage in the bar and hid the rest using Hidden Bar.
You can install Stats using RayCast's plugins or using Homebrew: `brew install --cask stats`
## Alacritty
## Oh My Zsh
## Yabai
## Powerlever10k
## Skhd

Binary file not shown.

Before

Width:  |  Height:  |  Size: 646 KiB

View file

@ -3,7 +3,6 @@ title: My Oneplus 6T Linux setup
description: A description of my current Linux phone and it's setup description: A description of my current Linux phone and it's setup
date: 2024-02-23 00:00:00+0000 date: 2024-02-23 00:00:00+0000
image: postmarket.png image: postmarket.png
weight: 2
math: math:
license: license:
hidden: false hidden: false

View file

@ -3,7 +3,6 @@ title: Parabola Installation Guide
description: A recap of the commands needed to have an encrypted, openRC Parabola setup. description: A recap of the commands needed to have an encrypted, openRC Parabola setup.
date: 2024-02-08 00:00:00+0000 date: 2024-02-08 00:00:00+0000
image: parabola.jpg image: parabola.jpg
weight: 2
categories: categories:
- Linux - Linux
- Libreboot - Libreboot

View file

@ -3,7 +3,6 @@ title: A simple T400 Libreboot Guide
description: Simplest Libreboot guide I can write description: Simplest Libreboot guide I can write
date: 2024-01-22 00:00:00+0000 date: 2024-01-22 00:00:00+0000
image: libreboot.png image: libreboot.png
weight: 2
categories: categories:
- Libreboot - Libreboot
- Thinkpad - Thinkpad

View file

@ -3,7 +3,6 @@ title: T400 mods
description: A collection of ways you can mod a Thinkpad T400 description: A collection of ways you can mod a Thinkpad T400
date: 2023-09-07 00:00:00+0000 date: 2023-09-07 00:00:00+0000
image: thinkpad2.jpg image: thinkpad2.jpg
weight: 2
categories: categories:
- Thinkpad - Thinkpad
- Libreboot - Libreboot

View file

@ -3,7 +3,6 @@ title: Talks
description: A list of talks I have seen at various events description: A list of talks I have seen at various events
date: 2024-02-08 00:00:00+0000 date: 2024-02-08 00:00:00+0000
image: talks.png image: talks.png
weight: 2
categories: categories:
- Events - Events
tags: tags:

View file

@ -782,18 +782,6 @@
"liked": true, "liked": true,
"attended": false "attended": false
}, },
{
"title": "Demystifying (& Bypassing) macOS's Background Task Management",
"speakers": ["Patrick Wardle"],
"date": "2023-06-12T10:00:00",
"location": "DEFCON31",
"tags": ["apple", "macOS"],
"url": "https://www.youtube.com/watch?v=GOoqEVhvNw8",
"duration": "PT45M",
"description": "To retain a foothold on an infected system, most Mac malware will persist; installing itself in a manner that ensures it will be automatically (re)launched each time the infected system is rebooted. In macOS Ventura, Apple's rearchitected core persistence mechanisms and added a new security mechanism that alerts the user any time an item is persisted. As the former is both undocumented and implemented in a proprietary manner this poses a problem for existing security and forensics tools (that aim to heuristically detect malware via unauthorized persistence events). On the other hand, the latter is problematic to malware authors, who obviously want their malicious creations to persist without an alert being shown to the user.",
"liked": true,
"attended": false
},
{ {
"title": "The D Programming Language for Modern Open Source Development", "title": "The D Programming Language for Modern Open Source Development",
"speakers": ["Mike Shah"], "speakers": ["Mike Shah"],
@ -1303,55 +1291,7 @@
"duration": "PT50M", "duration": "PT50M",
"description": "Have you wondered how virtual threads in Java are able to provide such high scalability? How is JVM able to switch between so many virtual threads while executing a single platform thread? If you did then this talk is for you. A Continuation is the magic that powers Virtual Threads. It can be viewed as a representation of the current state of the program or it can be viewed as a reference to the rest of the program. It helps us to pause execution of a program (or part thereof) and then resume it later. This ability to pause/resume is a powerful mechanism and is the basis for providing virtual threads. In this talk, we will start with explaining what continuations are and how does Continuation API in Java work. We will also explore the uses of continuations. And more importantly, we will write our own simple VirtualThread class using the Continuation API provided by JDK. This gives clear idea about the role of continuations in the nature of virtual threads." , "description": "Have you wondered how virtual threads in Java are able to provide such high scalability? How is JVM able to switch between so many virtual threads while executing a single platform thread? If you did then this talk is for you. A Continuation is the magic that powers Virtual Threads. It can be viewed as a representation of the current state of the program or it can be viewed as a reference to the rest of the program. It helps us to pause execution of a program (or part thereof) and then resume it later. This ability to pause/resume is a powerful mechanism and is the basis for providing virtual threads. In this talk, we will start with explaining what continuations are and how does Continuation API in Java work. We will also explore the uses of continuations. And more importantly, we will write our own simple VirtualThread class using the Continuation API provided by JDK. This gives clear idea about the role of continuations in the nature of virtual threads." ,
"liked": true, "liked": true,
"attended": false "attended": true
},
{
"title": "Spring Security Architecture Principles",
"speakers": ["Daniel Garnier-Moiroux"],
"date": "2024-05-30T12:00:00",
"location": "Spring I/O 2024",
"tags": ["security", "java"],
"url": "https://www.youtube.com/watch?v=HyoLl3VcRFY",
"duration": "PT50M",
"description": "When you need to secure your application, you use Spring Security. Its the de-facto standard, its robust, extensible, and brings sensible defaults to your application. But newcomers can feel lost as soon as they step out of the “Getting Started” guides and need to fine-tune the configuration to their specific use-cases. Developers can find themselves frantically copy-pasting from Stack Overflow until it kinda-sorta works." ,
"liked": true,
"attended": false
},
{
"title": "Implementing Domain Driven Design with Spring",
"speakers": ["Maciej Walkowiak"],
"date": "2024-05-31T14:30:00",
"location": "Spring I/O 2024",
"tags": ["domain driven design", "java"],
"url": "https://www.youtube.com/watch?v=VGhg6Tfxb60",
"duration": "PT50M",
"description": "After years of Microservices hype, it seems that our industry now understands its costs and how difficult it is to build a distributed system. We are looking again towards building monolithic applications. But how can we develop monoliths that dont turn into an unmaintainable mess? There is no single recipe, but we can say with a high degree of confidence that domain modeling techniques presented in Domain-Driven Design, in combination with Clean/Onion/Hexagonal Architecture, can significantly help in achieving clear and well-structured code aligned with the business needs." ,
"liked": true,
"attended": false
},
{
"title": "The Modern Monolith, with Spring Modulith",
"speakers": ["Cora Iberkleid"],
"date": "2024-05-31T10:00:00",
"location": "Spring I/O 2024",
"tags": ["domain driven design", "java", "modulith"],
"url": "https://www.youtube.com/watch?v=Pae2D4XcEIg",
"duration": "PT50M",
"description": "In the last decade, much emphasis has been placed on decomposing monoliths into microservices. While this practice has important benefits, including increased agility for development teams and independent lifecycle management for applications, it also introduces new complexities, such as managing many git repositories and many component deployments. In some cases, the benefits of monolith decomposition are absolutely necessary, but not in all. Sometimes we invite complexity for no good reason. In these cases, it behooves us to consider maintaining monolithic code bases. This does not mean, however, to revert back to the spaghetti monoliths of yesteryear, or to the cursory attempt to organize code into services of the SOA age. Instead, we must be sure to apply the hard-fought lessons from microservices and create a new paradigm for Modern Monoliths." ,
"liked": true,
"attended": false
},
{
"title": "Bootiful Spring Boot 3.x",
"speakers": ["Josh Long"],
"date": "2024-05-31T12:30:00",
"location": "Spring I/O 2024",
"tags": ["spring boot", "java"],
"url": "https://www.youtube.com/watch?v=2Aa5uQozbJQ",
"duration": "PT50M",
"description": "Spring Boot 3.x and Java 21 are here, and theres never been a better time to be a Java developer! In this talk well look at the incredible opportunities that lay ahead for the Spring Boot developer, and especially those using Java 21 and later. Spring Boot continues to offer the most sophisticated and robust ecosystem of integrations - supporting AI, GraphQL, easy data access, security (hello, Spring Authorization Server!), and so much more. And, it offers cutting edge support for production-centric optimizations like Project Looms virtual threads, Project CRaC, and GraalVM. Join me Spring Developer Advocate Josh Long (@starbuxman) and well explore next-gen Spring together." ,
"liked": true,
"attended": false
}, },
{ {
"title": "Serverless Java with Spring", "title": "Serverless Java with Spring",
@ -1363,7 +1303,7 @@
"duration": "PT50M", "duration": "PT50M",
"description": "Serverless computing revolutionizes how we build and run applications by abstracting server management, delivering fine granular auto-scaling, and billing only for execution time. This enables developers to focus on code, not infrastructure. Join this talk to understand how you can build and deploy cloud-native and Serverless Spring applications. You will learn how to run already existing Spring Boot applications in a Serverless environment with the AWS Serverless Java container and its integration with the Spring ecosystem. You will also learn how-to develop new event-driven applications with Spring Cloud Function. We will also cover support for GraalVM native images, developer tooling and additional performance optimizations" , "description": "Serverless computing revolutionizes how we build and run applications by abstracting server management, delivering fine granular auto-scaling, and billing only for execution time. This enables developers to focus on code, not infrastructure. Join this talk to understand how you can build and deploy cloud-native and Serverless Spring applications. You will learn how to run already existing Spring Boot applications in a Serverless environment with the AWS Serverless Java container and its integration with the Spring ecosystem. You will also learn how-to develop new event-driven applications with Spring Cloud Function. We will also cover support for GraalVM native images, developer tooling and additional performance optimizations" ,
"liked": true, "liked": true,
"attended": false "attended": true
}, },
{ {
"title": "Magical Beans and Mystery", "title": "Magical Beans and Mystery",
@ -1375,7 +1315,7 @@
"duration": "PT50M", "duration": "PT50M",
"description": "o you just created a Spring Boot project at start.spring.io, but then what? Dont worry! Tiffany was just there too, and now we are here to help. Join us as we explore Spring at a beginners pace.Even though Spring makes Java development so much easier, the initial learning curve can feel daunting (there are over 20 years of resources after all!). Lets break down what to look at first, and how to continue learning from there. Well start with the Spring Framework and its core building blocks, such as the IoC container and these magical beans. Next, well dive into Spring Boot, an extension of the Spring Framework that simplifies and speeds up application development through autoconfiguration for various integrations and more." , "description": "o you just created a Spring Boot project at start.spring.io, but then what? Dont worry! Tiffany was just there too, and now we are here to help. Join us as we explore Spring at a beginners pace.Even though Spring makes Java development so much easier, the initial learning curve can feel daunting (there are over 20 years of resources after all!). Lets break down what to look at first, and how to continue learning from there. Well start with the Spring Framework and its core building blocks, such as the IoC container and these magical beans. Next, well dive into Spring Boot, an extension of the Spring Framework that simplifies and speeds up application development through autoconfiguration for various integrations and more." ,
"liked": true, "liked": true,
"attended": false "attended": true
}, },
{ {
"title": "Mind the gap, connecting high performance systems at a leading Crypto Exchange", "title": "Mind the gap, connecting high performance systems at a leading Crypto Exchange",
@ -1387,7 +1327,7 @@
"duration": "PT50M", "duration": "PT50M",
"description": "As one of Europes leading Crypto Exchanges, Bitvavo enables its ~2 million customers to buy, sell and store over 200 digital assets and provides a 24/7 service processing many thousands of transactions per second with stable sub millisecond execution times on its order flow. In this talk we will deep dive on the high level architecture of Bitvavo Exchange and discuss how we use Spring Boot to bridge the integration and monitoring of our systems with the ultra low latency Exchange and Matching Engine Systems. We will cover architectural patterns, lessons learned and good practices routing and processing high volumes of market data to Databases and Kafka while maintaining the high performance and scalability required from the leading Crypto Exchange in Europe." , "description": "As one of Europes leading Crypto Exchanges, Bitvavo enables its ~2 million customers to buy, sell and store over 200 digital assets and provides a 24/7 service processing many thousands of transactions per second with stable sub millisecond execution times on its order flow. In this talk we will deep dive on the high level architecture of Bitvavo Exchange and discuss how we use Spring Boot to bridge the integration and monitoring of our systems with the ultra low latency Exchange and Matching Engine Systems. We will cover architectural patterns, lessons learned and good practices routing and processing high volumes of market data to Databases and Kafka while maintaining the high performance and scalability required from the leading Crypto Exchange in Europe." ,
"liked": true, "liked": true,
"attended": false "attended": true
}, },
{ {
"title": "Beyond Built-in: Advanced Testing Techniques for Spring Boot Applications ", "title": "Beyond Built-in: Advanced Testing Techniques for Spring Boot Applications ",
@ -1399,7 +1339,7 @@
"duration": "PT50M", "duration": "PT50M",
"description": "Spring Boot ships with testing batteries included, and you know that. But what happens when you reach the end of all this? You will need to find additional libraries or come up with your solutions for extending the built-in capabilities. This session will provide you with exactly that. Libraries and custom-built extensions in combination with the great test support of Spring that I used to ease testing and solve challenges within my projects." , "description": "Spring Boot ships with testing batteries included, and you know that. But what happens when you reach the end of all this? You will need to find additional libraries or come up with your solutions for extending the built-in capabilities. This session will provide you with exactly that. Libraries and custom-built extensions in combination with the great test support of Spring that I used to ease testing and solve challenges within my projects." ,
"liked": true, "liked": true,
"attended": false "attended": true
}, },
{ {
"title": "GraphQL Java and Spring: The Latest Features", "title": "GraphQL Java and Spring: The Latest Features",
@ -1411,7 +1351,7 @@
"duration": "PT50M", "duration": "PT50M",
"description": "Spring for GraphQL 1.3 releases in May, 2024, just days before the Spring I/O conference, and less than a month after GraphQL Java 22. There are plenty of new features and themes to digest on both sides. From GraphQL Java, expect support for incremental delivery with defer and stream directives, oneOf input types where exactly one field is set and others are omitted, request execution insight, schema diffing, and more. From Spring for GraphQL, expect the GraphQlClient revisited for blocking vs non-blocking execution, new SSE transports based on the GraphQL over HTTP RFC, EntityMapping controller methods for federated schema types, integration with DGS code generation, and more. In addition, the Spring and DGS teams have collaborated on a common foundation for both projects." , "description": "Spring for GraphQL 1.3 releases in May, 2024, just days before the Spring I/O conference, and less than a month after GraphQL Java 22. There are plenty of new features and themes to digest on both sides. From GraphQL Java, expect support for incremental delivery with defer and stream directives, oneOf input types where exactly one field is set and others are omitted, request execution insight, schema diffing, and more. From Spring for GraphQL, expect the GraphQlClient revisited for blocking vs non-blocking execution, new SSE transports based on the GraphQL over HTTP RFC, EntityMapping controller methods for federated schema types, integration with DGS code generation, and more. In addition, the Spring and DGS teams have collaborated on a common foundation for both projects." ,
"liked": true, "liked": true,
"attended": false "attended": true
}, },
{ {
"title": "Generating embeddings for Yu-Gi-Oh Cards with NumPy", "title": "Generating embeddings for Yu-Gi-Oh Cards with NumPy",
@ -1423,55 +1363,7 @@
"duration": "PT30M", "duration": "PT30M",
"description": "In a world where data intersects with everything around us, trading card games like Yu-Gi-Oh! are not exempt from crossing paths with advanced data science techniques where the potential for innovation is immense. This talk at PyData focuses on the intersection of web-obtained data and NumPy to create an interesting approach for Yu-Gi-Oh! card recommendations." , "description": "In a world where data intersects with everything around us, trading card games like Yu-Gi-Oh! are not exempt from crossing paths with advanced data science techniques where the potential for innovation is immense. This talk at PyData focuses on the intersection of web-obtained data and NumPy to create an interesting approach for Yu-Gi-Oh! card recommendations." ,
"liked": true, "liked": true,
"attended": false "attended": true
},
{
"title": "Disenshittify or die! How hackers can seize the means of computation",
"speakers": ["Cory Doctorow"],
"date": "2024-08-10T12:00:00",
"location": "DEFCON32",
"tags": ["internet"],
"url": "https://www.youtube.com/watch?v=4EmstuO0Em8",
"duration": "PT45M",
"description": "The enshittification of the internet wasn't inevitable. The old, good internet gave way to the enshitternet because we let our bosses enshittify it. We took away the constraints of competition, regulation, interop and tech worker power, and so when our bosses yanked on the big enshittification lever in the c-suite, it started to budge further and further, toward total enshittification. A new, good internet is possible - and necessary - and it needs you." ,
"liked": true,
"attended": false
},
{
"title": "Kubernetes Deconstructed: Understanding Kubernetes by Breaking It Down",
"speakers": ["Carson Anderson"],
"date": "2017-12-07T11:10:00",
"location": "KubeCon/CloudNativeCon",
"tags": ["kubernetes"],
"url": "https://www.youtube.com/watch?v=90kZRyPcRZw",
"duration": "PT30M",
"description": "Understanding Kubernetes as a whole can be daunting. With so many different components working together it can be hard to know how the pieces work together or where new products and features fit in. I will start at the highest level and then peel off the layers one at time to explain how some of the \"magic\" happens. Over the course of the presentation I will break Kubernetes into layers" ,
"liked": true,
"attended": false
},
{
"title": "Life of a Packet",
"speakers": ["Michael Rubin"],
"date": "2017-03-30T12:15:00",
"location": "KubeCon/CloudNativeCon",
"tags": ["kubernetes"],
"url": "https://www.youtube.com/watch?v=0Omvgd7Hg1I",
"duration": "PT35M",
"description": "Tracing the path of network traffic in the kubernetes system. Clarifying which API objects map to implementation and how Google deploys this in GKE today. Attendees will learn about topics from how networking packets are processed when the cluster is working as designed and what are common problems when the cluster is being creative and surprising." ,
"liked": true,
"attended": false
},
{
"title": "Kubernetes Design Principles: Understand the Why",
"speakers": ["Saad Ali"],
"date": "2018-12-12T14:35:00",
"location": "KubeCon/CloudNativeCon",
"tags": ["kubernetes"],
"url": "https://www.youtube.com/watch?v=ZuIQurh_kDk",
"duration": "PT35M",
"description": "Kubernetes is quickly becoming indispensable for managing and deploying workloads on distributed systems across both cloud and on-prem environments. While most people are now familiar with how to use Kubernetes, few are aware of the “why” behind it? Why does the Kubernetes API look the way it does? Why do Kubernetes components only interact with each other through the Kubernetes API? Why is there a PersistentVolumeClaim object when you could easily reference a volume directly from a pod? To answer these questions and help you develop a deeper understanding of Kubernetes, this talk exposes the principles underpinning the design of Kubernetes. " ,
"liked": true,
"attended": false
} }
] ]
} }

2
go.mod
View file

@ -2,4 +2,4 @@ module github.com/CaiJimmy/hugo-theme-stack-starter
go 1.17 go 1.17
require github.com/CaiJimmy/hugo-theme-stack/v3 v3.27.0 // indirect require github.com/CaiJimmy/hugo-theme-stack/v3 v3.26.0 // indirect

4
go.sum
View file

@ -1,2 +1,2 @@
github.com/CaiJimmy/hugo-theme-stack/v3 v3.27.0 h1:wVAa/ZimTOkFy/mODH5RXS3R3mlgfAXaDTYs7GccJUw= github.com/CaiJimmy/hugo-theme-stack/v3 v3.26.0 h1:kLZSTvo+E3S2YWw59DjXWtKLNbw3JaL7Z+VAjcegqa0=
github.com/CaiJimmy/hugo-theme-stack/v3 v3.27.0/go.mod h1:IPmCXiIxlFSLFYS0tOmYP6ySLviyeNVSabyvSuaxD+I= github.com/CaiJimmy/hugo-theme-stack/v3 v3.26.0/go.mod h1:IPmCXiIxlFSLFYS0tOmYP6ySLviyeNVSabyvSuaxD+I=