Yes, it is absolutely valid that you decided to commercialise your project and keeping parts or all of the code closed. As I work in the public sector and we are encouraged to use open source and write open source software, my knowledge regarding closed software solutions is thin. Is there a "standard way" how closed software is able to guarantee private key safety? I could imagine solutions where there is a separate handler that is open source so that one can verify that only specific information is passed into the closed software area, but this doesn't sound feasible when talking about full terminal support within the closed software.
Again, there is nothing wrong with going commercial! I am sure I will release closed software (side projects), too, at some point.
Good points!
- Tsabo was added when the deck was much more focused on lands and it doesn't really fit anymore.
- Bola's Citadel is a bad excuse for being able to play the top card (aka draw replacement). I will replace it. I am always quite low with my landbase, but no reason to keep that bad habit up
- Keen Duelist looks like such a fun card. I am not sure about the higher cmc draw cards you suggested, but the lower ones
- I feel like the Necromancer's are awesome because they do not cost that much and my commander allows me to recast them. Getting any creature temporary for 3 or permanent for 4 is just insane. Invader Parasite is the one card that is a bit more aggressive on land destruction as it hits general lands. I kinda still want to include it, because nuking a forest really makes recovering with land ramp very difficult - I know it is a bit off theme. Instead of removing dread return, I removed beacon of unrest. I feel like the 1 mana less really can be beneficial and casting form the graveyard for sac 3 while costly is sometimes playable - especially when sacrificing copies that only last till end of turn.
- I always feel like Final Parting is a bit slow, but at the same time: yea the value is insane. Coiling Rebirth could replace dread return... alright let's try that.
- I also added buried alive for goblin ruinblaster, but I don't feel very good about that one given that this thins my nonbasic hate - however, it also enables getting the good haters out
Hey, I had my struggles with app icons as well when I wrote a small app for myself so I am not really equipped to create the PR (also due to current time limitations). If no one is found for that, I can give it a shot at the end of the year, but I am sure you will find someone sooner than that.
However, I know of a free icon website and have looked through their icons to suggest a few to you:
- Simple Eye https://uxwing.com/view-icon/
- Thin line art eye https://uxwing.com/see-icon/
- Eye in "scanning square" (corners of a square are hinted, the eye is inside; typical "scanning square" for qr code scanners) https://uxwing.com/eye-scanning-icon/
- Binoculars https://uxwing.com/binoculars-icon/
- Spectacles https://uxwing.com/spectacles-icon/
- Happy man with VR glasses https://uxwing.com/virtual-reality-vr-icon/
- Old video recorder https://uxwing.com/video-camera-icon/
- Square with red dot insids and text record https://uxwing.com/screen-recorder-icon/
Uxwings license is amazing: https://uxwing.com/license/ you can use the icons for basically anything and can even alter them.
Personally, I like "Eye in "scanning square"" the most as it symbolizes the technical aspect of scanning/capturing the surroundings.
While I haven't used it yetis, there is also https://icon.kitchen/ for icon generation.
Giving it a quick scan, it does look interesting. I am not sure whether I will try it as I don't see the need to visualise beyond what I can do with a shell and the openstack dashboard, but there can definitely be use cases for it.
Not being FOSS is the deal-breaker though. Not sure if I am too much of a sceptic but I prefer open source when having software that accesses my private key/servers.
Good point. That player plays like 80% nonbasic. Others play less. The deck I linked above has some nonbasic land destruction but it's not the sole focus and it has plenty of other cards to assist with winning. I feel like in a game against a 3-5 colored commander, this deck might shoot one of the lands you need to get him out. Against others it might just slow your ramp.
I have ultimately decided against green to stay within two colors - even though it was the card I initially thought of when thinking about this deck.
So to answer the question: that nonbasic land destruction cards can be used in a deck in such a way that you don't think "that card kinda sucks... I should remove it"
That's a good idea. While I have opened some ports that are commonly used by kubernetes, I didn't think about flannel requiring additional open ports. I will look into this. It's also mentioned in the troubleshooting guide, but I looked for debugging advice there and only scanned the other sections: https://github.com/flannel-io/flannel/blob/master/Documentation/troubleshooting.md#firewalls
Chainer, Nightmare Adept - Commander deck (1) Commander • (1) Copy • (1) Creature • (1) Discard • (3) Drain • (12) Draw • (36) Land • (1) Protection • (9) Ramp • (13) Recursion • (15) Removal • (1) Sac Outlet • (2) Stax • (4) Tutor

Decklist: https://archidekt.com/decks/13999945/be_basic
A friend of mine claimed that nonbasic land removal is not effective. As we primarily play bracket 3, I disagreed. He remained pretty sure so I proposed a challenge and created this deck which I will soon prox and play against him. I am aware that it is not technically bracket 3, but I think the power level wise it is still a better fit for 3 than 4.
The main idea is to get a strong recursion engine going which allows us to again and again remove their fancy nonbasic lands and putting cool stuff on the board that should allow me to win eventually. I am sure this is not a perfect build and I am open for suggestions :)
Can you elaborate on that? I am not sure whether you are promoting the usage of Calico over Flannel in general or if you think that using Calico would not result in this issue or if Calico would be easier to debug if such an issue arise.
I decided to use flannel because it was labeled as the easiest. I know that Calico is most popular.
I am not entirely sure whether this sub is also intended for asking questions, but after opening the question on stack overflow and only getting an AI answer, I thought it would be worth a shot to ask here. What follows is a rather long question, but most of it is just debugging information to avoid obvious questions.
I have created a small kubernetes cluster (6 nodes) using kubeadm and flannel as the CNI in an openstack project. This is my first time using more than a single node kubernetes cluster.
I set up the kubernetes cluster's master via
```yaml
tasks file for kubernetes_master
-
name: Install required packages apt: name: - curl - gnupg2 - software-properties-common - apt-transport-https - ca-certificates state: present update_cache: yes
-
name: Install Docker apt: name: docker.io state: present update_cache: yes
-
name: Remove Keyrings Directory (if it exists) ansible.builtin.shell: rm -rf /etc/apt/keyrings
-
name: Remove Existing Kubernetes Directory (if it exists) ansible.builtin.shell: sudo rm -rf /etc/apt/sources.list.d/pkgs_k8s_io_core_stable_v1_30_deb.list
-
name: Disable swap ansible.builtin.command: cmd: swapoff -a
#- name: Ensure swap is disabled on boot
ansible.builtin.command:
cmd: sudo sed -i -e '/\/swap.img\s\+none\s\+swap\s\+sw\s\+0\s\+0/s/^/#/' /etc/fstab
-
name: Ensure all swap entries are disabled on boot ansible.builtin.command: cmd: sudo sed -i -e '/\s\+swap\s\+/s/^/#/' /etc/fstab
-
name: Add kernel modules for Containerd ansible.builtin.copy: dest: /etc/modules-load.d/containerd.conf content: | overlay br_netfilter
-
name: Load kernel modules for Containerd ansible.builtin.shell: cmd: modprobe overlay && modprobe br_netfilter become: true
-
name: Add kernel parameters for Kubernetes ansible.builtin.copy: dest: /etc/sysctl.d/kubernetes.conf content: | net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 net.ipv4.ip_forward = 1
-
name: Load kernel parameter changes ansible.builtin.command: cmd: sudo sysctl --system
-
name: Configuring Containerd (building the configuration file) ansible.builtin.command: cmd: sudo sh -c "containerd config default > /opt/containerd/config.toml"
-
name: Configuring Containerd (Setting SystemdCgroup Variable to True) ansible.builtin.command: cmd: sudo sed -i 's/SystemdCgroup = false/SystemdCgroup = true/' /opt/containerd/config.toml
-
name: Reload systemd configuration ansible.builtin.command: cmd: systemctl daemon-reload
-
name: Restart containerd service ansible.builtin.service: name: containerd state: restarted
-
name: Allow 6443/tcp through firewall ansible.builtin.command: cmd: sudo ufw allow 6443/tcp
-
name: Allow 2379:2380/tcp through firewall ansible.builtin.command: cmd: sudo ufw allow 2379:2380/tcp
-
name: Allow 22/tcp through firewall ansible.builtin.command: cmd: sudo ufw allow 22/tcp
-
name: Allow 8080/tcp through firewall ansible.builtin.command: cmd: sudo ufw allow 8080/tcp
-
name: Allow 10250/tcp through firewall ansible.builtin.command: cmd: sudo ufw allow 10250/tcp
-
name: Allow 10251/tcp through firewall ansible.builtin.command: cmd: sudo ufw allow 10251/tcp
-
name: Allow 10252/tcp through firewall ansible.builtin.command: cmd: sudo ufw allow 10252/tcp
-
name: Allow 10255/tcp through firewall ansible.builtin.command: cmd: sudo ufw allow 10255/tcp
-
name: Allow 5473/tcp through firewall ansible.builtin.command: cmd: sudo ufw allow 5473/tcp
-
name: Enable the firewall ansible.builtin.ufw: state: enabled
-
name: Reload the firewall ansible.builtin.command: cmd: sudo ufw reload
-
name: Prepare keyrings directory and update permissions file: path: /etc/apt/keyrings state: directory mode: '0755'
-
name: Download Kubernetes GPG key securely ansible.builtin.shell: curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.30/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
-
name: Add Kubernetes repository ansible.builtin.apt_repository: repo: "deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.30/deb/ /" state: present
-
name: Install kubeadm, kubelet, kubectl ansible.builtin.apt: name: - kubelet - kubeadm - kubectl state: present update_cache: yes
-
name: Hold kubelet, kubeadm, kubectl packages ansible.builtin.command: cmd: sudo apt-mark hold kubelet kubeadm kubectl
-
name: Replace /etc/default/kubelet contents ansible.builtin.copy: dest: /etc/default/kubelet content: 'KUBELET_EXTRA_ARGS="--cgroup-driver=cgroupfs"'
-
name: Reload systemd configuration ansible.builtin.command: cmd: systemctl daemon-reload
-
name: Restart kubelet service ansible.builtin.service: name: kubelet state: restarted
-
name: Update System-Wide Profile for Kubernetes ansible.builtin.copy: dest: /etc/profile.d/kubernetes.sh content: | export KUBECONFIG=/etc/kubernetes/admin.conf export ANSIBLE_USER="sysadmin"
only works if not executing on master
#- name: Reboot the system
ansible.builtin.reboot:
msg: "Reboot initiated by Ansible for Kubernetes setup"
reboot_timeout: 150
-
name: Replace Docker daemon.json configuration ansible.builtin.copy: dest: /etc/docker/daemon.json content: | { "exec-opts": ["native.cgroupdriver=systemd"], "log-driver": "json-file", "log-opts": { "max-size": "100m" }, "storage-driver": "overlay2" }
-
name: Reload systemd configuration ansible.builtin.command: cmd: systemctl daemon-reload
-
name: Restart Docker service ansible.builtin.service: name: docker state: restarted
-
name: Update Kubeadm Environment Variable ansible.builtin.command: cmd: sudo sed -i -e '/^\[Service\]/a Environment="KUBELET_EXTRA_ARGS=--fail-swap-on=false"' /usr/lib/systemd/system/kubelet.service.d/10-kubeadm.conf
-
name: Reload systemd configuration ansible.builtin.command: cmd: systemctl daemon-reload
-
name: Restart kubelet service ansible.builtin.service: name: kubelet state: restarted
-
name: Pull kubeadm container images ansible.builtin.command: cmd: sudo kubeadm config images pull
-
name: Initialize Kubernetes control plane ansible.builtin.command: cmd: kubeadm init --pod-network-cidr=10.244.0.0/16 creates: /tmp/kubeadm_output register: kubeadm_init_output become: true changed_when: false
-
name: Set permissions for Kubernetes Admin file: path: /etc/kubernetes/admin.conf state: file mode: '0755'
-
name: Store Kubernetes initialization output to file copy: content: "{{ kubeadm_init_output.stdout }}" dest: /tmp/kubeadm_output become: true delegate_to: localhost
-
name: Generate the Join Command ansible.builtin.shell: cat /tmp/kubeadm_output | tail -n 2 | sed ':a;N;$!ba;s/\\\n\s*/ /g' > /tmp/join-command delegate_to: localhost
-
name: Set permissions for the Join Executable file: path: /tmp/join-command state: file mode: '0755' delegate_to: localhost ```
manually reboot the node and installed flannel via kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
. Worker's are created in a similar way (without flannel). I omit their script for now but I can add it if it seems important.
I then had dns resolution issues with a helm chart which is why I tried to investigate network issues and noticed that instances are unable to ping each other.
I am unsure how to debug this issue further.
Debug Info
kubectl get nodes NAME STATUS ROLES AGE VERSION k8s-master-0 Ready control-plane 4h38m v1.30.14 k8s-worker-0 Ready <none> 4h35m v1.30.14 k8s-worker-1 Ready <none> 4h35m v1.30.14 k8s-worker-2 Ready <none> 4h35m v1.30.14 k8s-worker-3 Ready <none> 4h35m v1.30.14 k8s-worker-4 Ready <none> 4h35m v1.30.14 k8s-worker-5 Ready <none> 4h34m v1.30.14
kube-flannel-ds-275hx 1/1 Running 0 150m 192.168.33.149 k8s-worker-0 <none> <none> kube-flannel-ds-2rplc 1/1 Running 0 150m 192.168.33.38 k8s-worker-5 <none> <none> kube-flannel-ds-2w98x 1/1 Running 0 150m 192.168.33.113 k8s-worker-1 <none> <none> kube-flannel-ds-g4vb6 1/1 Running 0 150m 192.168.33.167 k8s-worker-4 <none> <none> kube-flannel-ds-mpwbz 1/1 Running 0 150m 192.168.33.163 k8s-worker-2 <none> <none> kube-flannel-ds-qmbgc 1/1 Running 0 150m 192.168.33.117 k8s-master-0 <none> <none> kube-flannel-ds-sgdgs 1/1 Running 0 150m 192.168.33.243 k8s-worker-3 <none> <none>
ip addr show flannel.1 4: flannel.1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1400 qdisc noqueue state UNKNOWN group default link/ether a2:4a:11:1f:84:ef brd ff:ff:ff:ff:ff:ff inet 10.244.0.0/32 scope global flannel.1 valid_lft forever preferred_lft forever inet6 fe80::a04a:11ff:fe1f:84ef/64 scope link valid_lft forever preferred_lft forever
ip route default via 192.168.33.1 dev ens3 proto dhcp src 192.168.33.117 metric 100 10.244.0.0/24 dev cni0 proto kernel scope link src 10.244.0.1 10.244.1.0/24 via 10.244.1.0 dev flannel.1 onlink 10.244.2.0/24 via 10.244.2.0 dev flannel.1 onlink 10.244.3.0/24 via 10.244.3.0 dev flannel.1 onlink 10.244.4.0/24 via 10.244.4.0 dev flannel.1 onlink 10.244.5.0/24 via 10.244.5.0 dev flannel.1 onlink 10.244.6.0/24 via 10.244.6.0 dev flannel.1 onlink 169.254.169.254 via 192.168.33.3 dev ens3 proto dhcp src 192.168.33.117 metric 100 172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown 192.168.33.0/24 dev ens3 proto kernel scope link src 192.168.33.117 metric 100 192.168.33.1 dev ens3 proto dhcp scope link src 192.168.33.117 metric 100 192.168.33.2 dev ens3 proto dhcp scope link src 192.168.33.117 metric 100 192.168.33.3 dev ens3 proto dhcp scope link src 192.168.33.117 metric 100 192.168.33.4 dev ens3 proto dhcp scope link src 192.168.33.117 metric 100
``` kubectl run -it --rm dnsutils --image=busybox:1.28 --restart=Never -- nslookup kubernetes.default If you don't see a command prompt, try pressing enter.
Address 1: 10.96.0.10
nslookup: can't resolve 'kubernetes.default' pod "dnsutils" deleted pod default/dnsutils terminated (Error) ```
kubectl get pods -n kube-system -l k8s-app=kube-dns NAME READY STATUS RESTARTS AGE coredns-55cb58b774-6vb7p 1/1 Running 1 (4h19m ago) 4h38m coredns-55cb58b774-wtrz6 1/1 Running 1 (4h19m ago) 4h38m
Ping Test
ubuntu@k8s-master-0:~$ kubectl run pod1 --image=busybox:1.28 --restart=Never --command -- sleep 3600 pod/pod1 created ubuntu@k8s-master-0:~$ kubectl run pod2 --image=busybox:1.28 --restart=Never --command -- sleep 3600 pod/pod2 created
ubuntu@k8s-master-0:~$ kubectl get pods -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES pod1 1/1 Running 0 15m 10.244.5.2 k8s-worker-1 <none> <none> pod2 1/1 Running 0 15m 10.244.4.2 k8s-worker-3 <none> <none> ubuntu@k8s-master-0:~$ kubectl exec -it pod1 -- sh / # ping 10.244.5.2 PING 10.244.5.2 (10.244.5.2): 56 data bytes 64 bytes from 10.244.5.2: seq=0 ttl=64 time=0.107 ms 64 bytes from 10.244.5.2: seq=1 ttl=64 time=0.091 ms 64 bytes from 10.244.5.2: seq=2 ttl=64 time=0.090 ms ^C --- 10.244.5.2 ping statistics --- 3 packets transmitted, 3 packets received, 0% packet loss round-trip min/avg/max = 0.090/0.096/0.107 ms / # 10.244.4.2 sh: 10.244.4.2: not found / # ping 10.244.4.2 PING 10.244.4.2 (10.244.4.2): 56 data bytes ^C --- 10.244.4.2 ping statistics --- 2 packets transmitted, 0 packets received, 100% packet loss / # exit command terminated with exit code 1
If I understand flannel correctly, it is fine that the pods are in other subnets as the ip routes manage the forwarding.
Fellow German here. Since October 2023 the information regarding Israel x Gaza has been wonky. Before that in history class (~10 years ago) the conflict has been viewed as "They are both responsible for the current state, peace talks never worked, sometimes there was hope but both did bad things". The focus was in general more on israel as a state and gaza as the less defined part that suffers. Personally, I was never happy with a country that defines itself by their religion. I also felt like taking Israel back after such a long time and driving out the inhabitants is difficult to defend.
October 2023: The government immediately stood behind Israel and it took a long time until Israel's behaviour was really questioned by journalists/media. Politicians still hold back. Many Germans, me included, thought something along the lines of "it is a very complex situation that goes back years. It was never resolved and it is understandable to some degree that Israel never wants to be terrorised like this again." - a bit like America's actions after 9/11.
For me the greatest shift came with the killed aid workers and finally with Amnesty International's recognition of a genocide. I didn't entirely trust any (whether pro or con) media footage before that due to claims from both sides that the other side is faking them.
Before the election I asked the parties what their plans are regarding Israel and Gaza. None answered. A while ago I have asked the new government what their plans are and linked the Amnesty International genocide pdf. I got an answer but just a forwarding to another agency which I haven't heard back from yet.
I still think the conflict is rather complex, but Israel is currently largely at fault. I have no idea how the situation can ever be solved as I don't see a power great and willing enough to enforce any peaceful contract between the parties. While I think it was unjust to recreate Israel the way it was recreated, I don't think it's feasible to undo a state. The ideal solution would be to unify both countries under a good constitution that gives everyone equal rights, review the stealing of land to find compromises and forget everything so that the coming generations are unable to not see that we are all equal but this will never happen.
There's also https://github.com/revoltchat which is very discord-like but still lacks some vital features that are currently in development like screensharing (if I am not misremembering)
I tend towards: No. I can't know for sure, but given how pdfs are structured this sounds very difficult.
A workaround might be to automatically place white boxes over those, but you can probably still select the text underneath afterwards.
I know of the "Search" feature at the bottom and the "Local" "All" feature at the top - where local refers to the server you logged into.
However, to discover new communities, I like listing all the communities of a server, select a community to list all the posts and then take a look whether some posts are interesting. I could see using this to find communities I would like to subscribe to.
Am I just blind or is this core feature missing? In the web version this can be done by selecting a server>communities>select a community>go through the posts.
Good point! Trilium has been handed over to TriliumNext so it is linked in the repository directly and soon will be replaced by TriliumNext (afaik).
Build your personal knowledge base with Trilium Notes - TriliumNext/Trilium
A highly customizable FOSS note taking app which enables you to better manage your campaigns, plots and everything. Build your own knowledge base, include your relevant media with your plot hooks and just have everything in one place.
Thanks for sharing! Haven't had the time to give it a listen yet, but will check it out soon.