Any artists open to commission for a logo for my open source #matrix project named #thurim? Fair warning, I have a vague idea of what I want, but part of what I'm looking for is a creative mind to hash out a solid idea. Definitely a paid gig, we can discuss budget via DM or matrix chat. You can find my user id in my profile.
#elixir programmer <> late thirties <> she/they <> #matrix and Spritely enthusiast
Banner and PFP by Cesya Palmer.
@brainblasted Have you checked out Titanium Court?
Oh, duh, I guess I can roll my own Registry?
Been having fun hacking on my #ReplicantSpace client in #Gleam, so I joined the Discord. Everyone seems nice but man, comparison to the work of others really is the theft of joy, lol
RE: https://social.anoxinon.de/@codebergstatus/116765466028092709
Potential hot take, but if you need to say fuck unauthenticated users to keep the cost of your free service down, I don't think that's a big deal.
RE: https://hachyderm.io/@mercutio/116693717913095951
OK, this is sick as hell. Perfect excuse to pick up #Gleam whenever I get worn out on #Elixir with #thurim on any given day.
On the plus side, I snuck in some #Ruby pattern matching successfully.
Another day, another failed attempt to use ractors in #Ruby
"Holy shit, I can just assign myself a task that requires writing code," the staff engineer realized one day. "Thank fuck!"
huh, 69 followers on my profile. Nice.
RE: https://mastodon.social/@Knoebel/116754098513906588
Welp, that's a shame
Slowly getting back into the swing of #GuildWars2
@masukomi Those are on my wish list too! Especially since I discovered Spritely Institute.
ok, it gets even sexier:
defmodule ThurimClientApi.Plugs.RateLimit.RegistrationController do
use ThurimClientApi, :rate_limiter
@impl RateLimitBehaviour
def get_scale(action) when action in [:register],
do: :timer.minutes(1)
@impl RateLimitBehaviour
def get_limit(action) when action in [:register], do: 1
end
Everything else is encapsulated in the __using__ macro! Yeah, yeah, explicit is better than implicit, but this lets me define rate limits per action on each controller quickly and efficiently!
On second thought, I don't need to assign scale and limit to conn...
Seriously, look at my child:
defmodule ThurimClientApi.Plugs.RateLimit.RegistrationController do
use ThurimClientApi, :rate_limiter
// ...
def call(conn, _options) do
conn =
conn
|> assign_scale(&get_scale/1)
|> assign_limit(&get_limit/1)
%{rate_limit_info: %RateLimitInfo{scale: scale, limit: limit}} = conn.assigns
conn.assigns.current_user.user_id
|> RateLimitKey.get_key(conn.assigns.action)
|> RateLimit.hit(scale, limit)
|> case do
{:allow, _count} ->
conn
{:deny, retry_after} ->
conn
|> put_resp_header("retry-after", Integer.to_string(div(retry_after, 1000)))
|> send_resp(429, [])
|> halt()
end
end
@impl RateLimitBehaviour
def get_scale(action) when action in [:register],
do: :timer.minutes(1)
@impl RateLimitBehaviour
def get_limit(action) when action in [:register], do: 1
end
A #tea review: Luxmi Bombay Cutting Chai
A loose leaf black tea with lemongrass, ginger, and cardamon spices. Straight out of the tin, the aroma is interesting, in a funky kind of way. Not unpleasant, but unusual for a tea in my experience. That unusual nature carries over to the brew itself, I highly recommend taking it with some sweetener along with my usual glug of half & half. I found three to four packets of Splenda to be good, giving it a forward sweetness that finishes strong with a unique mix of ginger, lemongrass, and cardamon, in that order of strength.