Barry's Avatar

Barry

@chiroptical.dev.bsky.social

PhD Theoretical Chemistry. Haskell/Typescript full stack engineer at Mercury. Aspiring Erlang programmer. Occasional content creator youtube.com/chiroptical twitch.tv/chiroptical. Fencing enjoyer.

1,061 Followers  |  201 Following  |  1,000 Posts  |  Joined: 01.07.2023  |  1.5332

Latest posts by chiroptical.dev on Bluesky

Do you mean just ignore the message or is there mechanism to say "ignore this error specifically"?

11.08.2025 00:13 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
restclient/src/restc.erl at 597d8162b4a9f547046f5ca604c93908b55e7e2a ยท kivra/restclient Erlang Rest Client. Contribute to kivra/restclient development by creating an account on GitHub.

This is actually โ€œfixedโ€ in the main branch github.com/kivra/restcl...

10.08.2025 23:46 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

#erlang how do I deal with dialyzer errors from dependencies? A type just doesnโ€™t exist in my dependencyโ€™s dependency

10.08.2025 23:44 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
Picture of the book โ€œA Philosophy of Software Designโ€ by John Ousterhout

Picture of the book โ€œA Philosophy of Software Designโ€ by John Ousterhout

Someone suggested this book to me. The preface speaks to me. Hopefully I learn something.

09.08.2025 19:21 โ€” ๐Ÿ‘ 5    ๐Ÿ” 0    ๐Ÿ’ฌ 2    ๐Ÿ“Œ 0
-spec decode_interact_contents(jsx:json_term() | {incomplete, jsx:decoder()}) ->
    {some, #interact_contents{}} | none.
decode_interact_contents(
    #{
        ~"channel_id" := #{~"id" := ChannelId},
        ~"user" := #{~"id" := UserId},
        ~"team" := #{~"id" := TeamId},
        ~"response_url" := ResponseUrl,
        ~"actions" := #{~"value" := SubmittedUrl}
    }
) ->
    {some, #interact_contents{
        channel_id = ChannelId,
        user_id = UserId,
        team_id = TeamId,
        response_url = ResponseUrl,
        submitted_url = SubmittedUrl
    }};
decode_interact_contents(_) ->
    none.

-spec decode_interact_contents(jsx:json_term() | {incomplete, jsx:decoder()}) -> {some, #interact_contents{}} | none. decode_interact_contents( #{ ~"channel_id" := #{~"id" := ChannelId}, ~"user" := #{~"id" := UserId}, ~"team" := #{~"id" := TeamId}, ~"response_url" := ResponseUrl, ~"actions" := #{~"value" := SubmittedUrl} } ) -> {some, #interact_contents{ channel_id = ChannelId, user_id = UserId, team_id = TeamId, response_url = ResponseUrl, submitted_url = SubmittedUrl }}; decode_interact_contents(_) -> none.

I like this a lot better than my previous implementation. It is obvious in hindsight. #erlang

09.08.2025 17:37 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

I have one more day but I keep saying โ€œsurely kiddo will sleep in tomorrow a bitโ€ and Iโ€™ve been WRONG

09.08.2025 12:47 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

This is completely untrue. Iโ€™ve found so many bugs ๐Ÿ˜‚

09.08.2025 12:34 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Trying to get my project to 100% dialyzed. Itโ€™s a labor of love really.

09.08.2025 12:33 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

The best part about solo-parenting is waking up at 5:30 am three days in a row.

09.08.2025 11:50 โ€” ๐Ÿ‘ 3    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

I suppose I could do nested map pattern matching for the pieces I need and put them into a record?

08.08.2025 22:30 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

Can anyone provide me an example of idiomatic jsx usage in #erlang? I have this recursive get function which offers something like `recursive_get([~โ€outerโ€, ~โ€innerโ€], jsx_term())`. It returns jsx_term() but unsure what yโ€™all do.

08.08.2025 22:29 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

โ€œquietโ€ got me a few days ago.

08.08.2025 13:22 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

Iโ€™d be willing to bet money the blueberry thing is just someone trolling another person on Reddit which got picked up in the training data.

08.08.2025 13:06 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

FWIW, I understand that this shouldnโ€™t be able to work after thinking about it for a bit.

08.08.2025 00:42 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

If I _could_ I would 100% write a standard library that is friendly with `maybe`.

08.08.2025 00:37 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

It would be sick if I could do `{deps, [{sets, ".*", {git, "https://github.com/chiroptical/s2", {branch, "main"}}}]}.`

08.08.2025 00:36 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

Used meck for the first time today. Pretty convenient #erlang

07.08.2025 15:21 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
{dialyzer, [
    {warnings, [unknown]},
    {plt_apps, top_level_deps},
    {plt_extra_apps, [uuid, elli, jsx, eunit, ssl]}
]}.

{dialyzer, [ {warnings, [unknown]}, {plt_apps, top_level_deps}, {plt_extra_apps, [uuid, elli, jsx, eunit, ssl]} ]}.

Why do I need to add these dependencies to dialyzer? They are listed in my `deps` section of rebar.config? #erlang

07.08.2025 13:17 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Getting coverage reports from #erlang is so nice.

07.08.2025 00:59 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

By ignore, I just mean they end up in the else clause to make the happy path more clear.

06.08.2025 11:17 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

In #erlang, a lot of existing APIs return `a | {error, _}`. This is unfortunate when working with `maybe`. Iโ€™m considering an EEP which introduces something like ??= to maybe which explicitly ignores error tuples/triples. What do you think?

06.08.2025 11:16 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 2    ๐Ÿ“Œ 0

Looks like relx packaged into a docker container would be simplest?

06.08.2025 01:51 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Iโ€™ll probably also re-write it in #gleamlang because I want static types.

06.08.2025 01:21 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Once it is deployed and my friends and I test it out a bit. Iโ€™ll share more information.

06.08.2025 01:20 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 2    ๐Ÿ“Œ 0

My #erlang Slack bot is nearly ready to be deployed! If yโ€™all have any deployment docs/blogs you think I should check out please post them ๐Ÿ˜Š

06.08.2025 01:19 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
What's new in Gleam 1.12?
YouTube video by Gears What's new in Gleam 1.12?

Whoa, Gears has made a video overview of Gleam v1.12.0! What a lovely surprise!
www.youtube.com/watch?v=KYvy...

05.08.2025 22:24 โ€” ๐Ÿ‘ 39    ๐Ÿ” 11    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

It is done. I really need to re-build this habit. It is ~30-35 minutes of listening plus ~15 minutes of activities. I was doing really well between Jan-April and just fell off.

02.08.2025 18:44 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

If I donโ€™t do my Pimsleur lesson today you can slap me the next time you see me.

02.08.2025 16:23 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

Iโ€™ve become an Old Forester main.

02.08.2025 03:42 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Go learn what my handle means

01.08.2025 01:08 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

@chiroptical.dev is following 19 prominent accounts