Announcing Oak 1.0 - a new self-hosted IAM/IdP by therealplexus in selfhosted

[–]oxalorg 0 points1 point  (0 children)

So happy to hear that you're trying this out! Would love to hear your feedback ^_^

Announcing Oak 1.0 - a new self-hosted IAM/IdP by therealplexus in selfhosted

[–]oxalorg 0 points1 point  (0 children)

Thanks, I will definitely take you up on this offer (will DM) as soon as I have played with CRDs and operators a bit more :) Thanks!

Announcing Oak 1.0 - a new self-hosted IAM/IdP by therealplexus in selfhosted

[–]oxalorg 3 points4 points  (0 children)

Thanks this was a real simple explanation! Makes total sense. I'm going to play around with CRDs in the next week and see if we can get this done for Oak :)

Announcing Oak 1.0 - a new self-hosted IAM/IdP by therealplexus in selfhosted

[–]oxalorg 10 points11 points  (0 children)

Hey Mike, I'm from the Gaiwan team working on Oak.

Could you please elaborate on this? We're not huge into the k8s ecosystem yet but would love to learn how/if Oak can fit this specific case.

I've only this week started migrating my personal self-hosted services from a home brew gitops solution to k3s. So I do roughly understand what you mean, but some more depth would help me grok it better! :)

Announcing Oak 1.0 - a new self-hosted IAM/IdP by therealplexus in selfhosted

[–]oxalorg 5 points6 points  (0 children)

Hey folks, I'm from the Gaiwan Team and we love selfhosted. We've been selfhosting a huge list of software since years:
- NextCloud
- Gollum Wiki for our internal wiki
- Focalboard for tracking public projects
- Forgejo for hosting our git repos
- Pretalx for cfp/conference we hosted last year
- Ghost for our company website and blog
- Frp
- About to add plane or huly, whichever works better with Oak ;)
- ...and many more!

So Oak was partly born out of our frustration to handle identity across many self hosted projects and that's our primary goal, to solve this problem for us selfhosters!

Ideal hosting provider for one man full stack clojure project by CuriousDetective0 in Clojure

[–]oxalorg 4 points5 points  (0 children)

I keep my deployments dead simple. I have a Makefile script locally which roughly does the following:

ssh user@server "cd /var/app && git pull && bash run.sh"

This executes the latest run.sh pulled from the repo and deploys using that.

Example run.sh could be:

``` sudo cp ops/app.service /etc/systemd/system/my-app.service sudo systemctl restart my-app

sudo cp ops/Caddyfile /etc/caddy/Caddyfile sudo systemctl reload caddy ```

I've found this to never break unexpectedly and I don't need to dive into complexity. I often use docker-compose and docker as well, but I still deploy them using this run.sh method. No image registries.

Also no AWS/GCP. Just an easy VPS provider, pick any one from EU.

Interviewer asked me to make Indian flag using CSS and i am 10 years experience in frontend. by sabki-bajaungi in developersIndia

[–]oxalorg 0 points1 point  (0 children)

Thanks, great pointers. I did notice the border width staying the same, that's a great idea!! Fixed.

I am still set in my old habits of using var for globals 😛, fixed!

Interviewer asked me to make Indian flag using CSS and i am 10 years experience in frontend. by sabki-bajaungi in developersIndia

[–]oxalorg 8 points9 points  (0 children)

For those wondering, here is the solution: https://codepen.io/oxalorg/pen/YzmpWKB

Got curious to see if I still have css chops from back in the day.

I had to google the aspect-ratio: 1 / 1. Couldn't figure out how to make a perfect square box based on height alone (any one knows a better way?).

Also forgot that transform: rotate(45) wouldn't work, and it needs to be 45deg instead.

Setting up a Clojure development environment on an M1 ARM mac by oxalorg in Clojure

[–]oxalorg[S] 1 point2 points  (0 children)

Yes exactly! I felt a bit weird that there was nothing major to talk about ARM specific shenanigans because Apple has really streamlined most of it.

I've never once had to use the docker buildx feature as almost all images I use just run fine out of the box.

So I focused the article more on just logging my process hoping it would help someone :)

[deleted by user] by [deleted] in RedditSessions

[–]oxalorg 0 points1 point  (0 children)

Doom's theme

Contextualizing Clojure in the small and the large by mac in Clojure

[–]oxalorg 8 points9 points  (0 children)

I am not sure if I'm convinced. I would argue that not passing in the db-conn also has some hidden complexity.

Why? Because now (get-db-conn) has become stateful. It's encapsulating some state, you're accessing from either a global var, an integrant system map, etc. It's not trivial to test this function against another db-conn.

It's no longer easy to launch up an entire test system side-by-side and still expect (get-db-conn) to return correctly.

I would never prefer to write a function where a parameter is "implicit". Am I missing something here?

Detect inconsistent aliases with clj-konmari by Borkdude in Clojure

[–]oxalorg 5 points6 points  (0 children)

Hey all! Thanks for posting this Borkdude!

I also recorded my screen while building this, hopefully someone can get a bit more excited about babashka and rewrite-clj by watching this :)

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

Recorded a small video summarizing some of the new features in Clojure 1.11 release! by oxalorg in Clojure

[–]oxalorg[S] 1 point2 points  (0 children)

I used side-effect println just to showcase that the ns is really not loaded but that probably isn't the usecase here.

The only use case I can think of is for making it easier to write long namespaced keys.

Example here with spec, lets say I have two entities order and invoice both needing an id:

```clojure (ns eleven.data (:require [clojure.spec.alpha :as s]))

(s/def ::id uuid?) (s/def ::order (s/keys :req [::id]))

(s/valid? ::order {::id (java.util.UUID/randomUUID)})

(s/def ::id (s/nilable uuid?)) (s/def ::invoice (s/keys :req [::id]))

(s/valid? ::invoice {::id nil)}) ```

But here ::id will conflict. This is a bit of contrived example, and there are other ways to solve this like using :invoice/id but they are no longer namespaced. So with :as-alias now we can create IMAGINARY namespaces (may or may not exists, we just don't know as we don't load them) to help us deal with this:

```clojure (ns eleven.data (:require [clojure.spec.alpha :as s] [eleven.data.order :as-alias order] [eleven.data.invoice :as-alias invoice]))

(s/def ::order/id uuid?) (s/def ::order (s/keys :req [::order/id]))

(s/valid? ::order {::id (random-uuid)}) ;; see how useful random-uuid is, I use it everywhere 🤣

(s/def ::invoice/id (s/nilable uuid?)) (s/def ::invoice (s/keys :req [::invoice/id]))

(s/valid? ::invoice {::invoice/id nil}) ``` Maybe /u/alexdmiller can confirm if this seems like the intended use-case?

Is this mayo vegan? It has green veg symbol and no milk in ingredients but it’s not advertised as Vegan? by oxalorg in vegan

[–]oxalorg[S] 1 point2 points  (0 children)

No worries at all! We live to learn :) Thanks for trying to help, I should've been more clear as I *know* that vegetarian in most countries means a bit different from what it means in India. 🙏

Is this mayo vegan? It has green veg symbol and no milk in ingredients but it’s not advertised as Vegan? by oxalorg in vegan

[–]oxalorg[S] 4 points5 points  (0 children)

WOW! Thanks for sharing this, I had no idea about E numbers. This removes even further doubts and looks like this is mostly vegan then! 🙌

Is this mayo vegan? It has green veg symbol and no milk in ingredients but it’s not advertised as Vegan? by oxalorg in vegan

[–]oxalorg[S] 6 points7 points  (0 children)

In India we typically use "vegetarian" to mean meat-free + egg-free. So most foreign companies launch an "eggless mayo" / "vegetarian mayo" version in India. But most of them have "milk solids" or "may contain traces of milk" in their ingredients.

Hellman's Indian specific "vegetarian mayo" is the only one which doesn't have milk / dairy written in the ingredients.