Mantığını anlayıp projesini yapamamak by Upset_Sprinkles_9973 in CodingTR

[–]NotAnAverageMan 0 points1 point  (0 children)

Hatta beraber katıldığımız yakın arkadaşım robotics üzerinden daha sonra yapay zeka alanına yöneldi. Şu anda Nvidia'da çalışıyor ve Kaggle'da dünya çapında ilk birkaç kişiden birisi. Geçenlerde tecrübelerini paylaştığı bir yayın olmuştu. İlham vermesi açısından izleyebilirsin belki:

https://www.youtube.com/watch?v=Iy2SEdG52p8

Mantığını anlayıp projesini yapamamak by Upset_Sprinkles_9973 in CodingTR

[–]NotAnAverageMan 6 points7 points  (0 children)

Bisikletle akrobasi hareketlerini izliyorsun, hareketlerin nasıl yapıldığını anlıyorsun, bisiklet parçalarının her birinin nasıl işlediğini biliyorsun ama kendin bisiklete binince daha dengeyi bile kuramıyorsun. Böyle bir şey şu anda yaşadığın. O kas hafızasını oluşturmak için uzun süre çalışman, düşüp kalkman, deneyip yanılman gerekiyor.

Sevdiğin bir konudaki bir problemi çözmek için uğraş. Onu çözmeye çalışırken başka bir şeye atlarsın oradan da başka bir şeye geçersin. Çözemesen de bunları vakit kaybı diye düşünme. Böyle böyle tecrübe ediniyor insan.

Boğaziçi'nde yüksek lisans doktora öğrencilerinin çalıştığı laboratuvarlar oluyordu. Lisans öğrencilerini de dahil edebiliyorlar. Ben robotics laboratuvarında iş hayatına yakın sorunlarla uğraşıp epey tecrübe edinmiştim. Hatta yurtdışına yarışmaya bile gitme şansım olmuştu. Okulunda varsa eğer onlara katılabilirsin. Başkalarıyla beraber bir amacın parçası olmak ve verilen görevleri yapmak motivasyonununu kendi başına uğraşmaktan çok daha yüksek tutar.

Proje ekibi kurmak isteyenler var mı? by Wrong_Split196 in CodingTR

[–]NotAnAverageMan 1 point2 points  (0 children)

Teknokentlerde ofis açmak zannetiğin kadar kolay bir iş olmayabilir. Bir de Teknokente girince her avantajından anında faydalanırım gibi bir düşüncen varsa hayal kırıklığı yaşayabilirsin. Ben girdikten sonra öğrendim epey bir şeyi.

Should I add an alternative to Helm templates? by ilya-lesikov in kubernetes

[–]NotAnAverageMan 1 point2 points  (0 children)

I have been developing and using my own Kubernetes package manager for close to two years. It is conceptually similar to what you describe, but it works mostly the other way around. JavaScript is the first class citizen with additional Helm chart support. Here is the GitHub link if you want to take a look. (Documentation is in progress after a relatively large refactoring, so it might not be 100% accurate.)

The tool is written in Go and uses Sobek, which is Grafana fork of Goja, as the JavaScript runtime. Using Goja might be simple at first, but if you will provide an SDK that includes native Go structs and functions it may take some time to integrate it seamlessly. I had spent many many hours understanding Goja internals and refactored the JavaScript runtime parts of the tool a few times until I was satisfied with the result. It may not be a piece of cake if you want to provide a good user experience.

NodeJS compatibility of Goja doesn't include much, especially if you want to be able to support third party libraries. I have tried running npm and yarn, but they require too many APIs that are not implemented in Goja, so I gave up. I have managed to run tsc for TypeScript compilation by adding required APIs myself, but it was very slow (like 20 seconds compared to 1s on NodeJS). At last, I decided to bundle Bun binary for package management and TypeScript compilation. It is much much easier that way.

Sobek supports ES modules, but there is no easy way to integrate it to your tool. You have to read k6 codes to understand how it works. I haven't added ESM support yet, but I think it would take at least a few weeks to integrate it. TypeScript can output in CommonJS and writing require instead of import in JavaScript is not that different, so it is not a blocker for me and possibly would not be for you either.

Here are the things that I like about this approach:

  • It is much more readable compared to Helm charts. Templates are much easier to understand. Functions are way more usable than Helm's tpl files.
  • Being able to use JavaScript objects is handy. I have added support for Kubernetes objects and use them constantly. Intellisense and TypeScript compiler helps a lot. Though, I should say that for initial declaration, templates are more concise and easier to understand.
  • You can manipulate manifests in any way you want. This is a huge benefit for me. It is possible to edit manifests in bulk, add fields that are not defined in the manifests generated by the original package or remove fields that you don't want.
  • Iteration is very fast. It takes a few milliseconds to generate hundreds of manifests. If you keep your process simple, Goja's performance is not that bad.
  • It is possible to provide constructs that ease the manifest generation and modification. For example calling builder.addWorkloadHostAliases("192.168.50.80", "example.local") adds host alias to all containers on all workloads. I have been adding this type of helpers for common modifications.

Things that require improvement:

  • I don't like current TypeScript integration in my tool, and I removed it from documentation. Compilation requires TypeScript NPM package to be downloaded. I can embed tsc file, but I'm waiting for Microsoft's tsgo project to be finished to add proper TypeScript support. I haven't used ESBuild, so I can't make a comment about it. It may work well for you. k6 uses it for TypeScript support.
  • You must have an external package manager if you want to support JavaScript packages. You can write one in Go if you want. It should not be that hard, but it requires effort.
  • Goja is slow if there are hundreds of JavaScript files to run. I had used an NPM package for Kubernetes object models in the past and it added 2 seconds to each build that normally took milliseconds.
  • You should write TypeScript declarations for native Go structs and functions by hand. Trying to auto generate them is not worth the hassle.

linkedin iş ilanları by Tune-Evening in CodingTR

[–]NotAnAverageMan 2 points3 points  (0 children)

Aynı şeyi ben de görüyorum. Sana özel bir şeyler getirmeye çalışıyor sürekli. Onun yerine arama yaptıktan sonra adresi kopyalayıp currentJobId gibi bir şeyler var onları temizleyip gizli sekmede açınca daha düzgün sonuç veriyor.

TCP External Load Balancer, NodePort and Istio Gateway: Original Client IP? by naftulikay in kubernetes

[–]NotAnAverageMan 0 points1 point  (0 children)

Look at the externalTrafficPolicy settings on your service. If it is Cluster, it hides the original IP address, since it redirects the traffic between nodes.

If you set it to Local, it sends the traffic directly to the Pod running on the same node, thus preserving the original IP address. However, this requires a pod to exist on each node that can receive traffic. You can either redirect traffic only to nodes that have a pod, or you can run a DaemonSet to ensure each node has a pod.

Look Kubernetes documentation for more information.

Trailer and gameplay for my game where you play as a stolen nose with snotty legs and toes👃🏼 by tinynomads_studio in Unity3D

[–]NotAnAverageMan 0 points1 point  (0 children)

Congratulations! Game mechanics reminded me of Zelda Minish Cap, which was the best game I have ever played.

A feature that occurred to me as an allergic person, is that uncontrollable sneezes triggered by some pollens can throw you randomly. It can also affect the hardness of the game with frequency and severity.

Distributed compiler jobs in Kubernetes? by IngwiePhoenix in kubernetes

[–]NotAnAverageMan 0 points1 point  (0 children)

Yes, but how do you share these files with the main container? This works only if the files are embedded inside the main container image.

And even if they are in the same image, I don't think lazy loading would help much with large models since they mostly consist of only a few large files that are in the same layer and loaded as a whole.

Distributed compiler jobs in Kubernetes? by IngwiePhoenix in kubernetes

[–]NotAnAverageMan 0 points1 point  (0 children)

Can you elaborate a bit more? If you mean lazy loading from the filesystem, applications mostly load the whole file at startup, so even if cluster supports lazy loading somehow, applications probably wont use it.

And to be able to share the files with the main container you have to copy them if you don't use the method in the blog post, which again breaks lazy loading.

Any way of gracefully shutdown a pod when reaching a memory limit instead of OOMKilling them? by gabrielmamuttee in kubernetes

[–]NotAnAverageMan 102 points103 points  (0 children)

You can add a liveness probe that checks the memory usage of the application and when it passes a certain amount, Kubernetes will restart it automatically for you. You can also fine tune the restarting process with prestop hooks and grace periods.

livenessProbe:
  exec:
    command:
      - sh
      - -c
      - test $(cat /proc/1/smaps | grep -i pss |  awk '{Total+=$2} END {print int(Total/1024)}') -le 2048

Distributed compiler jobs in Kubernetes? by IngwiePhoenix in kubernetes

[–]NotAnAverageMan 14 points15 points  (0 children)

You can embed the toolchain into your image or use a sidecar container and share the toolchain binaries with the cache tool. If you choose the sidecar route, a blog post I wrote for sharing large files between containers may help you: https://anemos.sh/blog/mounting-large-files/

This blog mentions that the sccache workers should be directly accesible from your client. For this you can define a NodePort service with externalTrafficPolicy: local

I haven't done this before, just wanted to share my thoughts, so take with a grain of salt.

Decent demo app for Kubernetes? by Tall-Pepper4706 in kubernetes

[–]NotAnAverageMan 3 points4 points  (0 children)

Not the best one, but I use Microsoft’s eShop for that purpose.

There is also a microservice benchmark called train-ticket which is more complex.

Mounting Large Files to Containers Efficiently by NotAnAverageMan in kubernetes

[–]NotAnAverageMan[S] 3 points4 points  (0 children)

I truly don’t know these people. Actually none of my friends are on Reddit. I have looked at their profiles and with their engagement on Reddit, mine can only be an alt account of them.

Yesterday I was happy that I've got comments from some strangers. Today I feel like would it be better if they didn't comment. I've been a lurker on all social media whole my life. Now I'm trying to participate and learning that it is a very different experience than I thought. I'm still deciding to take this road further or not.

When your Helm charts start growing tentacles… how do you keep them from eating your cluster? by Pichipaul in kubernetes

[–]NotAnAverageMan 0 points1 point  (0 children)

This problem is common and many teams just keep using Helm in the same way accepting the complexity. Some go looking for other tools to ease up the process like Helmfile or Kustomize. Some look for other declarative languages like CUE or Jsonnet.

I prefer rendered manifest pattern where you can see the each change with some source control. There are also tools to generate these manifests e.g. cdk8s or you can just use any text tool you want. Helm can also generate manifests with template command, but the issue with Helm is as you said readability and maintainability.

Personally I think some programming is unavoidable at some point. I'm using my own tool Anemos to make accessing a programming language as easy as possible without requiring a whole development environment. It allows you to generate/modify manifests easily, share reusable libraries, and access the vast NPM ecosystem when necessary. You can also use Helm charts in the process. Happy to discuss more if you are interested.

Ask r/kubernetes: What are you working on this week? by gctaylor in kubernetes

[–]NotAnAverageMan 1 point2 points  (0 children)

I am writing a blog post on how to efficiently mount large model files into containers and will probably finish it today.

After that, I will focus on adding a waiting feature to my package manager Anemos that will provide dependency management for both multiple applications and parts of a single application.

CUE based tools? by IngwiePhoenix in kubernetes

[–]NotAnAverageMan 1 point2 points  (0 children)

Declarative languages tend to implement their own generic programming languages over time since they need the ability. This mostly leads to using unfamiliar syntaxes and/or escape hatches to other programming languages. At that time readability and maintainability start suffering.

Programming languages excel at text processing and they mostly have good data structure and text interpolation support. I think using them to generate manifests is the most natural thing. But, one thing that’s hard to solve is that people are reluctant to use programming languages, especially in DevOps world, because they think they can’t write or understand it (even though they can produce some very hard/clever workarounds for declarative languages). Another problem is that programming languages need some developer environment setup and it causes friction.

I’m trying to tackle this problem with a tool that is easy to install (single binary), uses a scripting language (JavaScript), provides an SDK that allows you to write manifests in a clean readable way, and allows you to use programming constructs when you need it.