The REAL Way to master JQ
8:14
6 ай бұрын
AWK in 300 Seconds
5:48
6 ай бұрын
Earthly May Office Hours
53:23
11 ай бұрын
Build your own Container Runtime
37:37
Awk Crash Course
40:38
Жыл бұрын
Пікірлер
@OmPrasadKoirala
@OmPrasadKoirala 7 сағат бұрын
great job
@harshitmishra3318
@harshitmishra3318 Күн бұрын
At 8:25 what he is actually tell about the git commit ??? I didn't get that, can any one helps me to understand that ??
@venky1922
@venky1922 5 күн бұрын
How to do it in windows
@texman1166
@texman1166 7 күн бұрын
Thank you. Very understandable.
@totalscene3274
@totalscene3274 16 күн бұрын
Your approach of demystifying and investigating the source code of the linux kernel is unique! Thanks a lot for this! I know that you guys are here on a mission but I'd love to see more from you regarding the linux and unix-like kernels.
@EarthlyTech
@EarthlyTech 13 күн бұрын
You are welcome! What would you like to see?
@sudo_garrett
@sudo_garrett 20 күн бұрын
fantastic video! I didn't know Go had a native make capability, the syntax is simple as always :)
@rubenchiquin3768
@rubenchiquin3768 24 күн бұрын
People often criticize this way of handling errors, but it is probably due to a majority of people coming from a language where errors are ghosts, and you don't even know they can happen. That's why it might feel easier to deal with errors, because you are not forced to handle them. Sure, maybe some errors almost never happen and it might not even be worth handling them, but in my opinion If a language forces you to do very robust programs, where you handle all scenarios, that's a good thing, not a bad one. If you wanna write lazy code that breaks, but write it in 1 minute, then go with Python, because in Go it will be way harder to do bad code.
@danielniels22
@danielniels22 28 күн бұрын
When to create a custom error by implementing the error interface, or when to use the errors.New() ?
@sczoot6285
@sczoot6285 12 күн бұрын
Without exploring the different approaches, I would say implement the interface when you want to add additional state/functionality to what the error struct would provide
@cerkal726
@cerkal726 29 күн бұрын
Explanation was nice. But I think you have missed main part of video that is how to avoid dependency hell. Like when installing two packages which use different versions of same depended package is still resulting in error. Which you explained in the earlier section of the video but didn't actually explain if it could be solved or not using peotry.
@EarthlyTech
@EarthlyTech 11 күн бұрын
Yes, you are right! Poetry only solves when you use two separate venvs. Otherwise, it will attempt to find a version that is compatible with both and otherwise raise an error. At that point you need to find a singular version that works for both yourself or try otherwise adjust deps so that there is a singular version that works with your use case.
@windowsrefund
@windowsrefund 29 күн бұрын
A few things I'm noticing which I'm trying to get my head around in terms of overall workflow: 1) Adding a package dependency via "poetry add" is the process that actually updates poetry.lock; creating the file if it doesn't exist. 2) When running "poetry add" for the first time, poetry goes ahead and creates a virtual environment. By default, the virtual environment is created in shared location so if you want your virtual environments to live inside your project directory, you need to first configure poetry appropriately (see upstream docs for how to do this). 3) Also realize the virtual environment is not going to be used unless you activate it. This is a tedious process which is made cleaner with direnv. In order to have direnv use the .venv directory created by poetry, you need to echo "VIRTUAL_ENV=$PWD/.venv layout python" > .envrc && direnv allow. Now, every time you cd into your project directory, your virtual environment will be activated by direnv. 4) With all that said, at this point, I'm wondering why we're actually using "poetry install" and wonder if and how it relates to "pip install -e" which is the recommended approach used to make dealing with imports easier (difficult for me to exactly explain as the concept is still somewhat new). So........ in a nutshell, poetry seems nice but there's clearly a much larger conversation to be had in terms of tying all these things together and how to bootstrap a new project in the right order in able to get everything working. Don't forget getting pytest to use importlib (rather than the prepend mode it uses for backwards compatibility) if you'll be using TDD. I'm writing this 6m into the video so I'll get back to watching as it's possible you'll touch on some of these issues.
@windowsrefund
@windowsrefund 29 күн бұрын
OK so installing the package via "poetry install" makes the package available in the Virtual Environment. What's also nice is that the package is "editable" (see my previous comment). We can see this in the output of a "pip list" from within the Virtual Environment.
@windowsrefund
@windowsrefund 29 күн бұрын
I LOVE this video but please make the Internet a better place and stop referring to directories as "folders". Thumbs up! Also, the term "open source" is totally lame. The proper term is "Free Software".
@EarthlyTech
@EarthlyTech 13 күн бұрын
I grew up on windows. Some habits die hard.
@intelligenceservices
@intelligenceservices Ай бұрын
Python is supposed to be so clever terse and elegant. If it was an apartment, it would be as spotless as patrick bateman's, but they have such a pile of garbage outside you need a Shai-Hulud to get to the door. Just a little poetry there.
@nikodemus6449
@nikodemus6449 Ай бұрын
Great content as in your podcast, laid out perfectly, thanks !
@EarthlyTech
@EarthlyTech Ай бұрын
Great to hear!
@ninthsun
@ninthsun Ай бұрын
Thanks for awesome video. It was super helpful :D
@EarthlyTech
@EarthlyTech Ай бұрын
Glad it was helpful!
@felixman9691
@felixman9691 Ай бұрын
Lol that’s not you in the thumbnail. Why haha
@EarthlyTech
@EarthlyTech Ай бұрын
Surprise! It's terence tao
@ArcWeltraumpert
@ArcWeltraumpert Ай бұрын
awkwkwkwkwkwk means hahahahah in Indonesian language
@Linux.Learner
@Linux.Learner Ай бұрын
FANTASTIC...
@EarthlyTech
@EarthlyTech Ай бұрын
Thanks for watching
@Geza_Molnar_
@Geza_Molnar_ Ай бұрын
👍👍👍👍👍
@ade5324
@ade5324 Ай бұрын
so i guess, compared to using chroot , the only beneficial abstraction docker provides is layers. docker doesn't provide features like namespaces, cgroups, its already present in the linux kernel.
@EarthlyTech
@EarthlyTech Ай бұрын
No Docker doesn't provide namespaces or cgroups. But it brings them together with pivotroot and layers and etc into a hopefully cohesive package.
@ade5324
@ade5324 Ай бұрын
@@EarthlyTechbruh that what i said, man
@jeffg4686
@jeffg4686 2 ай бұрын
Nice. I like the choice of toml - aligns with Rust - my other language.
@209_Violate
@209_Violate 2 ай бұрын
youtube needs more examples to connect theory with pragmatism like yours. thanks for sharing, i love your teaching style.
@EarthlyTech
@EarthlyTech Ай бұрын
Glad you think so!
@aldrickdev
@aldrickdev 2 ай бұрын
hey this is a great introduction to Earthly, are their any plans to make more example videos?
@EarthlyTech
@EarthlyTech Ай бұрын
We have some Earthly Show and Tell videos. They are more walk throughs then tutorials though.
@mumk
@mumk 2 ай бұрын
Use Nix instead
@windowsrefund
@windowsrefund 29 күн бұрын
How?
@stephenday4834
@stephenday4834 2 ай бұрын
Clearly explained. I expected jq to be harder honestly. It's such an amazingly useful tool.
@EarthlyTech
@EarthlyTech 2 ай бұрын
Great to hear!
@chickenduckhappy
@chickenduckhappy 2 ай бұрын
I'll show you how to sleep comfortably on a stone bed. If you're coming from other styles of appartments or hotels, you will maybe be surprised by the first impression of a stone bed. But I'll show you how to adapt and learn to enjoy sleeping in this new way that some people first feel uncomfortable with due to unfamiliarity with how the extremely cold and hard surface feels.
@EarthlyTech
@EarthlyTech 2 ай бұрын
😂
@JevKuznetsov
@JevKuznetsov 2 ай бұрын
To go one step further - devcontainers are an even better solution. Build once - reproduce on any system.
@EarthlyTech
@EarthlyTech 2 ай бұрын
Do you use the dev container support in VS Code? I find that is pretty nice.
@user-ix5qn5vx5f
@user-ix5qn5vx5f 2 ай бұрын
thank you for the video! that was very helpful
@EarthlyTech
@EarthlyTech 2 ай бұрын
You're welcome!
@duongphuhiep
@duongphuhiep 2 ай бұрын
what bothering me is not the verbosity of "if err != nil", rather the fact that: (1) "Hidding error and continue running is the nature of Go codes" at least it is the default behavior when you "forgot" to handle error... On the other side, the "Exception paradigm" of Java, C# makes your codes crash if you "forgot" to handle the "exception" other function is throwing. (2) The "if err != nil" of Go is "contaminating" the same way as the "async await". It means that if you "forgot" only one line of "if err != nil" in the chain, then the worst case is that others "if err != nil" (in the chain) might be wasted. The longer the codes continue to run with the hidden error until the day it finally crashed, the harder to track down the root cause. Fortunately this worst case is not that common IME. Moreover, the golangci-lint gives you a big "errchecked" warning. Personally, I don't let any of these warnings appeared in my codes. Evens in case I wanted to skip / ignore an error, I'd still "if err != nil" to log the error (in debug level) along with a justification message explaining why I ignored the error (and so continued the happy path) I wish that Go team would inspire the same approach as Rust for error handling. Rust errors are Value the same way as Go, but the Result<T,E> of Rust beautifuly "forced" developers to handle error: In order to Get the result T you have to handle the "E" one way or other: in a "match" statement or by a simple unwrap() function to get the T which will panic the E... Unfortunately, It might be too late now for Go to take the same approach as Rust because Go has to keep backward compatibility with the current "if err != nil" way of errors handling.
@andrewdunbar828
@andrewdunbar828 2 ай бұрын
For me almost nothing goes as you show. Possibly because I started my C project in Xcode but then went on to mostly use it in VScode but the Xcode project having an extra level seems to make everything unintuitive and frustrating and I just had to give up. For instance I had no pencil icon next to Configuration, Build target, and launch target. I finally figured out it was because my makefile isn't in <project>/makefile but in <project>/<project>/makefile because that's how Xcode sets up a project and that's where my main.c was. But even then I can't set Configuration. I click on the pencil and choose Default but configuration still says [Unset].
@EarthlyTech
@EarthlyTech 2 ай бұрын
oh no. Perhaps file a big on the extension and they may address this.
@arunaruljothi9890
@arunaruljothi9890 3 ай бұрын
Pretty cool project. Would it make sense to run these containers inside a VM (like UTM) so we can mimic control groups/namespaces?
@EarthlyTech
@EarthlyTech 2 ай бұрын
Good question. I'm not familiar with UTM to be honest. But yes, a downside of this approach is that you don't have the features and restrictions control groups and namespaces bring.
@rogerscubadiver
@rogerscubadiver 3 ай бұрын
Very nice and detail dive into containers
@EarthlyTech
@EarthlyTech 2 ай бұрын
Thank you so much 😊
@bennguyen1313
@bennguyen1313 3 ай бұрын
I've read of people using Makefile "shim", to automate running make format, make docs, make tests.. never heard of shim.. I've only seen: "Make uses Makefiles to make C." "CMake uses CMakeLists to make Makefiles to make Make make C." Also, with so many compiler/frontend options.. gcc/mingw vs llvm/clang/Zig, Intel's EDG/ICC , to go along with building cmake vs meson, maven , gradle , bazel.. that it all gets a bit overwhelming! Would be nice to learn one system/tools that will work on a TI-86 calculator, to WIndows XP Mac/Linux, and Android! Maybe the only way is to maintain different docker containers or VMs with the environment for the desired target (and avoid cross-compilation)?
@chezchezchezchez
@chezchezchezchez 3 ай бұрын
In 2024…. Awk is 47 years old!!! Exciting old program!
@EarthlyTech
@EarthlyTech 2 ай бұрын
Still going strong!
@eugeneL_N1E104
@eugeneL_N1E104 3 ай бұрын
as to future potential topics, python typing looks not very clear when I write class methods for non-builtin classes. also wondering since which python3.* does this typing has really performance improvements (or "dev acceleration" as IDE use them)
@AllanKobelansky
@AllanKobelansky 3 ай бұрын
So many of these gems are unknown to the point-and-click world. Consider reading the Unix Man pages titled “Text Processing Utilities”. Therein you’ll find, awk, cut, split, join, … and so on. Nice tutorial.
@EarthlyTech
@EarthlyTech 3 ай бұрын
Thanks for watching. Great tip!
@EarthlyTech
@EarthlyTech 4 ай бұрын
Thanks to Dr Alex for the demo of his work. files shown: github.com/terraphim/terraphim-firecracker/blob/main/Earthfile github.com/terraphim/terraphim-ai/blob/main/terraphim_firecracker/atomic-server-infra/Earthfile
@Sdirimohamedsalah
@Sdirimohamedsalah 4 ай бұрын
Thank you for providing the source code . I’m curious to see if it’s create it own names space
@hashkeeper
@hashkeeper 4 ай бұрын
cool examples too, you could write some really cool code that organizes issue tracking, pull requests, commits ect from github on your own console of choice daaang
@EarthlyTech
@EarthlyTech 4 ай бұрын
yeah, you could build your own TUI to GitHub. Might be a fun project.
@hashkeeper
@hashkeeper 3 ай бұрын
@@EarthlyTech any project like that would be a great project for new job seekers looking for a foot in the door too. I keep returning to this tutorial, thanks. its a full scale explanation of jqs foundations, really really helpful.
@alexv2401
@alexv2401 4 ай бұрын
Thank you for your content. Your contributions to the KZbin Python Hive mind do not go unnoticed. Sincerely, A passionate Pythonista
@EarthlyTech
@EarthlyTech 4 ай бұрын
Wow, thank you
@sepheiba
@sepheiba 4 ай бұрын
Great news, hopefully I can use Podman natively on macOS soon
@EarthlyTech
@EarthlyTech 4 ай бұрын
Best of luck!
@NamasenITN
@NamasenITN 4 ай бұрын
Can I install poetry with poetry? Or will it cause an anomaly in the space time continuum?
@EarthlyTech
@EarthlyTech 4 ай бұрын
An anomaly for sure! The universe will be replaced with another universe where Python packaging is even more complex.
@IleaCristian
@IleaCristian 4 ай бұрын
Hello. I recently found your channel. I love your content. I noticed that you use some sort of AI video editing software to make your eyes point to the camera all the time. Except it doesn't work that well imho. Your eyes are beautiful, no need for the edit. Keep it up!
@LodeNachtergaele
@LodeNachtergaele 4 ай бұрын
What do you think about Pixi ?
@EarthlyTech
@EarthlyTech 4 ай бұрын
I'm not familiar with it. Do you like it?
@Drygear1
@Drygear1 4 ай бұрын
I might be missing some obvious point but it seems Go error handling is horrible..... sooo many lines of code just to handle one error.
@Nuraddinhassan
@Nuraddinhassan 4 ай бұрын
if you never touched Golang of course it will seem horrible, for me I just create standard approach/plan to handle it and now just follow that approach. it will be really messy if you just try to figure out how to handle it for every time you face error in code.
@kristiannn
@kristiannn 5 ай бұрын
this is one of the best videos on youtube about dependency management in python
@EarthlyTech
@EarthlyTech 3 ай бұрын
Thank you so much for your kind words! I'm glad you found the video helpful.
@2002budokan
@2002budokan 5 ай бұрын
1. What if I don't want to publish my package on pypi but use it on my own local machine as a single executable? For example on Windows machine as an .exe file, how can I build this file? 2. And in this video it is not clear, how poetry breaks the diamond that you show us at the beginning of your video. What if we need two different version of the same package, for two libraries we need in our project, how poetry breaks the diamond and put two different versions of the same library in venv?
@EarthlyTech
@EarthlyTech 4 ай бұрын
Poetry doesn't break the diamond problem. It lessens its scope, as all virtual envs in python do. within a single projects its still not possible to depend on two version of something, unless the new version is published with a different name.
@2002budokan
@2002budokan 5 ай бұрын
cargo4python => poetry
@EarthlyTech
@EarthlyTech 5 ай бұрын
Exactly
@jdavid82
@jdavid82 5 ай бұрын
this video helped me with 80% of getting there, now I need to look for where to add the hello world code and how to run it
@zanoxie
@zanoxie 5 ай бұрын
Great video! The building up of the jq topics was superb 🎉
@EarthlyTech
@EarthlyTech 5 ай бұрын
Thanks so much!
@istipb
@istipb 5 ай бұрын
Great content. Btw docker doesnt use chroot instead it uses pivotroot. Chroot has security bypass problem which pivotroot doesn't have.
@EarthlyTech
@EarthlyTech 5 ай бұрын
Thanks for watching! Yeah, I mention pivot root in the talk actually, although only briefly.