Alnkq's Avatar

Alnkq

@alnkq.bsky.social

Software dev. Interests: .NET, compilers, performance, DuckDB, ATProto I'm building AppViewLite, a self-hostable appview for Bluesky https://github.com/alnkesq/AppViewLite

479 Followers  |  30 Following  |  137 Posts  |  Joined: 31.12.2024  |  1.7662

Latest posts by alnkq.bsky.social on Bluesky

In the meantime a workaround is to add some swap space.

My machine has 8 GB of RAM, and I haven't experienced OOMs since adding 8 GB of swap. Memory usage seems to plateau after a while.

22.10.2025 12:54 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

I'll leave the current process run for a few more days (current uptime 9 days) and then deploy a version that sets GCLargeObjectHeapCompactionMode to see if it fixes the issue.

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

That's an issue I'm investigating.

I believe it might be due to Large Object Heap fragmentation rather than an actual leak, since running "dotnet-gcdump collect" makes memory usage go back to normal

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

I don't currently have any sponsor page

02.10.2025 17:35 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

Added some initial Docker container support to AppViewLite

24.09.2025 17:47 โ€” ๐Ÿ‘ 5    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 1
Post image

Now /debug/requests/<guid> includes a simple profiler to see which operations take the longest to complete or perform the most IO.

21.09.2025 17:36 โ€” ๐Ÿ‘ 5    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Preview
GitHub - alnkesq/RemoteConfigurator: Sets up a local or remote machine, supporting incremental changes without full re-execution Sets up a local or remote machine, supporting incremental changes without full re-execution - alnkesq/RemoteConfigurator

Open sourcing a simple scripting tool that I use to automatically configure my machines (Linux or Windows).

Can run incrementally after you make changes to the configuration script.

08.09.2025 17:15 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

I'm not very familiar with nix or tangled, but I assume the two things are not related, right?

As for the nix packaging, I can accept pull requests.
That and deployment with containers are things that AppViewLite is still lacking.

25.08.2025 13:57 โ€” ๐Ÿ‘ 3    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 1

Now you can log in to multiple accounts in AppViewLite, and quickly switch between them using the sidebar.

24.08.2025 22:03 โ€” ๐Ÿ‘ 12    ๐Ÿ” 1    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

And now likes to reposts are properly displayed in the notifications page

18.07.2025 14:14 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

it's interesting how well appviewlite's balanced following feed makes me

1. not actively hate scrolling here
2. see posts from people that i'd easily miss in the usual chronological view

really decent logic there

17.07.2025 12:51 โ€” ๐Ÿ‘ 7    ๐Ÿ” 1    ๐Ÿ’ฌ 2    ๐Ÿ“Œ 0

Now samples of your saved feeds are shown in the Following feed.

I also fixed a performance problem with cold starts of the following feed

17.07.2025 18:34 โ€” ๐Ÿ‘ 4    ๐Ÿ” 1    ๐Ÿ’ฌ 2    ๐Ÿ“Œ 0

I took a long dev break during the last 2 months, so here are some recent updates:
- Populate {Like,Repost}.via, to notify the reposter of your like
- Fix IO performance regression that was introduced with caching
- Sidebar announcement when disk space is running low
- Support for Telegram videos

10.07.2025 21:30 โ€” ๐Ÿ‘ 4    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

By default, it only listens to mod.bsky.app, but if you set that env variable to *, it will listen to all the labelers listed in the PLC directory

24.05.2025 23:41 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

AppViewLite tip: if you navigate to <HOST>/r/somesubreddit, it will redirect you to the corresponding AppViewLite page for that subreddit's RSS (which you can then follow)

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

Apparently, Firefox automatically displays a notification dot on pinned tabs, if the page title is set to "(X) Page title" where X is a number.

I discovered this by accident by seeing it on AppViewLite despite not having written any custom code to change the favicon

15.05.2025 20:04 โ€” ๐Ÿ‘ 4    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Note that this is not another discovery feed. The balanced feed still only shows you content from the people you follow, or that they directly repost.

13.05.2025 17:53 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

If you're particularly fond of a certain user or set of users (based on your interactions), it will make sure that you don't miss out new content from them, even if they post from a different timezone.

13.05.2025 17:51 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

It still tries to favor recency, but not at the cost of being too repetitive.
For example, it clamps the number of consecutive posts or reposts from the same person at any given time, as well as the number of reposts of content from people you don't follow (the maximum ratio is 3:1)

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

The AppViewLite default timeline tries to fairly distribute your feed's vertical space among the profiles you follow, even if they post at very different frequencies

13.05.2025 17:42 โ€” ๐Ÿ‘ 6    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

Depending on how you configure it, it can fetch the blobs lazily from the PDSes (and possibly cache the thumbnails to disk), or it can reuse an existing CDN (cdn.bsky.app)

11.05.2025 14:48 โ€” ๐Ÿ‘ 3    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

That would mitigate the inner loop.
But to be honest I don't even remember how long it takes, I ran the generator only once some time ago.
I just know that it produces quite a lot of code.

09.05.2025 15:04 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

The worst ones are those that don't even bother fetching the OpenGraph preview

09.05.2025 14:57 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

It might be a nice coding exercise, but the amount of generated code is quite big.
Having the generator run manually and predictably and only when you actually need it is probably better from a development experience point of view.

09.05.2025 14:54 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

AppViewLite reuses the FishyFlip generated types.
@drasticactions.dev is also working to add support for generated AspNet XRPC server API stubs (and I'm migrating appviewlite to use them)

09.05.2025 14:48 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Video menu in AppViewLite, showing Speed up playback

Video menu in AppViewLite, showing Speed up playback

Now you can speed up the video playback rate in AppViewLite

07.05.2025 20:47 โ€” ๐Ÿ‘ 6    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
Post image

...and Telegram channels

05.05.2025 17:48 โ€” ๐Ÿ‘ 4    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
AppViewLite profile page for a github project, showing recent releases

AppViewLite profile page for a github project, showing recent releases

New pluggable protocol: now you can follow GitHub projects from AppViewLite (issues, releases, PRs, or issues)

05.05.2025 13:45 โ€” ๐Ÿ‘ 10    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

The AppViewLite native UI works for sure, for creating posts.

Deer + XRPC appviewlite, I never personally tried this combination, so I was a bit surprised to see that it just worked.

04.05.2025 23:07 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Yes the native UI is more feature-complete compared to the social-app + XRPC combo

04.05.2025 22:21 โ€” ๐Ÿ‘ 6    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

@alnkq is following 20 prominent accounts