Alan North's Avatar

Alan North

@alanscodelog

Dev / Artist (❤️ rust | typescript | vue | nuxt) | Working on several UI/UX oriented libraries + revolutionary note app. https://github.com/alanscodelog https://alanscodelog.github.io/

27
Followers
46
Following
92
Posts
02.11.2024
Joined
Posts Following

Latest posts by Alan North @alanscodelog

I have nearly stopped using them to do any sort of "task". I mostly use them as search engines when learning something unfamiliar. Though they suck at docs too, so it only helps initially.

19.05.2025 12:51 👍 2 🔁 0 💬 0 📌 0
Senior Engineer tries Vibe Coding.
Senior Engineer tries Vibe Coding. YouTube video by Programmers are also human

real
www.youtube.com/watch?v=_2C2...

08.04.2025 21:59 👍 1 🔁 0 💬 0 📌 0

They look at these? Wouldn't the names be all sorts of things? I thought using semantic HTML elements was enough.

08.04.2025 10:57 👍 0 🔁 0 💬 0 📌 0

😱😍

11.03.2025 21:25 👍 0 🔁 0 💬 0 📌 0

*accidentally writes a game engine*

I was just fooling around with #ziglang, just trying to write a simple stl viewer, I swear.

I did not think this would be so similar.

09.03.2025 22:33 👍 1 🔁 0 💬 0 📌 0
Post image

The solution was just to render myself a benchy, lel. Also maybe I'm stupid, but I can't figure out how one is supposed to structure the cleanup code when using flecs. Ended up just looping through after my main loop, but I want each component to handle it's cleanup.

03.03.2025 00:11 👍 0 🔁 0 💬 0 📌 0
Preview
a cartoon squirrel with an acorn on his head ALT: a cartoon squirrel with an acorn on his head

Me learning #ziglang: How hard could it be not too leak memory everywhere?

01.03.2025 21:43 👍 1 🔁 1 💬 1 📌 0

Have started to dabble with comptime in #ziglang. This is amazing. I can't quite put into words just how nice it feels. It's like someone put all the ridiculous type magic you do in typescript with generics IN the function body. Reads so nice.

19.02.2025 01:44 👍 4 🔁 0 💬 0 📌 0
pub fn onPreUpdate(cameras: []CameraComponent[]) void {

pub fn onPreUpdate(cameras: []CameraComponent[]) void {

Me, a typescript dev, trying #ziglang

17.02.2025 21:36 👍 3 🔁 0 💬 0 📌 0

I love zig's syntax to de-reference a pointer: variable.*. It just makes so much more sense. So much easier to think about. #ziglang

07.02.2025 22:15 👍 0 🔁 0 💬 0 📌 0

Damn, that node_modules inspector looks 🤯. Just gorgeous.

06.02.2025 00:43 👍 3 🔁 0 💬 0 📌 0

Fuck, I'm really getting into zig. Help. Must finish other projects first.

Also the naming of some of the libs is killing me : zbgfx, zglfw. Please stop mashing your keyboard (yes I know the z is for zig). I cannot deal with 4+ letter acronyms.

05.02.2025 14:24 👍 1 🔁 0 💬 0 📌 0

Not good for treeshaking last I checked, but I use a Result util like this in a lot of places, so worth it.

31.01.2025 01:00 👍 1 🔁 0 💬 1 📌 0

🥳 Conditional Return Types!!!!! 👏👏👏 No more crafting a perfectly typed function only to have to cast the return type in the implementation!

31.01.2025 00:55 👍 2 🔁 0 💬 0 📌 0

This looks amazing! Will the editing part be open source? Would love to integrate this into my app instead of having a latex block raw+preview block.

30.01.2025 23:25 👍 1 🔁 0 💬 1 📌 0
Post image

Pretty metadata inputs. Done with the basic ones + added random generation for testing.. More advanced + metadata type editor soon.

24.01.2025 02:02 👍 0 🔁 0 💬 0 📌 0
Post image

Want to quickly check NPM package popularity?

✨ I've built a tiny, beautiful terminal tool to check package stats. No setup needed, just run:

$ npx pkg-stats <package>

Let me know what you think!

17.01.2025 11:55 👍 61 🔁 8 💬 7 📌 6

Finally 👏👏👏!!!!!

Had a usecase for this a while back. I have to remember what it was. Was very sad I couldn't get the values as numbers in calc.

18.01.2025 23:43 👍 0 🔁 0 💬 0 📌 0

You can also just have a bridge typed in such a way that you could do something like this, but you have to tag each function

type Api = {
"tag" : typeof yourFunction
}

then it's possible to type the bridge in such a way as to type args here:

await bridge.send("tag", ...args)

18.01.2025 16:18 👍 0 🔁 0 💬 0 📌 0

This might be overkill for your usecase, but I needed something similar + runtime safety. I built a small async bridge for simple messages ("data"|"error"). Then I created a custom trpc handler on the worker side that communicates over the bridge. And can just use the trpc api as normal.

18.01.2025 16:11 👍 2 🔁 0 💬 1 📌 0

I just realized, when my pc is borked, I can just throw the logs at an LLM and it can sift through that mess real quick.

16.01.2025 20:22 👍 0 🔁 0 💬 0 📌 0

Please, I want to know when it's finally over. 🤣 It's been such a painful and slow move.

16.01.2025 12:46 👍 0 🔁 0 💬 0 📌 0

Am so tired of LLMs being like are you sure you want to do that? Yes jesus, give a warning, but DO THE THING. Do local or maybe less censored models also suffer from this? Can they be trained out of it? I hate it.

13.01.2025 22:35 👍 0 🔁 0 💬 0 📌 0
M.getWorkspaceRoot = function()
	local res = LazyVim.root.detect({
		spec = { "pnpm-workspace.yaml" },
		all = true,
	})
	if (res[1]) then
		return res[1].paths[1]
	end
	return LazyVim.root.get()
	end

M.getClosestProject = function()
	local res = LazyVim.root.detect()
	for i, v in ipairs(res) do
		if type(v) == "table" and v.spec[1] ~= "pnpm-workspace.yaml" then
			return v.paths[1]
		end
	end
	return LazyVim.root.get()
end

M.getWorkspaceRoot = function() local res = LazyVim.root.detect({ spec = { "pnpm-workspace.yaml" }, all = true, }) if (res[1]) then return res[1].paths[1] end return LazyVim.root.get() end M.getClosestProject = function() local res = LazyVim.root.detect() for i, v in ipairs(res) do if type(v) == "table" and v.spec[1] ~= "pnpm-workspace.yaml" then return v.paths[1] end end return LazyVim.root.get() end

My two new favorite friends. This makes it way nicer to work in a monorepos in neovim. Need to refactor into proper plugin.

12.01.2025 19:03 👍 3 🔁 0 💬 0 📌 0

This looks amazing. I know nothing about shaders, they've been on my to-learn list. This really makes me want to learn more.

11.01.2025 18:35 👍 1 🔁 0 💬 0 📌 0

Interesting. Will be keeping an eye out for how this works out. I ended up switching to 0 versioning for new projects after getting semantic release to work with it and most are just stuck in zero out of lazyness.

10.01.2025 12:10 👍 0 🔁 0 💬 0 📌 0

Have had to deviate my plans for today to implement dev only auth mocking. Was easier than I thought because I implemented most of the auth logic, but I'm surprised there's so little info on doing this. You'd think it'd be quite a common thing to need to do. Is there a better way?

09.01.2025 01:53 👍 0 🔁 0 💬 0 📌 0

Gotta update my utils.

02.01.2025 00:50 👍 0 🔁 0 💬 0 📌 0

🎉👏 Can't wait to try!

And they've added docs how to do writes through the db! Have been holding off on implementing the sync for my app for this.

Love the detailed examples on potential write patterns and the freedom to do it however you want.
electric-sql.com/docs/guides/...

28.12.2024 14:59 👍 1 🔁 0 💬 0 📌 0
Video thumbnail

Have I mentioned how much I love nuxt's devonly component? Yes. Have I mentioned it enough? No.

Here am using it in combination with radix's hover card so I can inspect all the internal data for an item.

#vue #nuxt #radix

28.12.2024 02:32 👍 1 🔁 0 💬 0 📌 0