What is Hackers' Pub?

Hackers' Pub is a place for software engineers to share their knowledge and experience with each other. It's also an ActivityPub-enabled social network, so you can follow your favorite hackers in the fediverse and get their latest posts in your feed.

지난 주말부터 열심히 토큰을 팍팍 태워 만든 TypeScript/Rust용 엑셀 라이브러리 SheetKit, 방금 0.4.0를 배포했습니다.

문서 퀄리티가 아직 좋다고는 말을 못해도 API 레퍼런스와 문서 웹도 생겼고, 단순한 값 읽기/쓰기를 넘어 복잡한 기능들도 많이 추가되었습니다. 이제 폭발적인 구현보다는 적당한 스피드로 문서의 완성도를 높이고 WebAssembly나 Bun/Deno/Python 등에 대한 바인딩 등을 고민해볼 계획입니다. 문서의 완성도도 좀 어느 정도 올라간다면 이리저리 SheetKit을 소개하는 정식 글도 한번 여기저기에 올려보려고 합니다.

이미 Node.js쪽 binding은 열심히 개밥먹기하고 있는 중인데, Rust나 Node.js 환경에서 엑셀 파일을 다룰 일이 있는 분들은 한번 써보시고 이슈나 피드백을 남겨주시면 너무 좋을 것 같습니다.

Node.js에서 SheetKit은 다른 라이브러리에 비해 거의 모든 벤치마크 테스트에서 성능 우위를 보였습니다. 웹 문서에는 SheetKit이 어떻게 메모리를 덜 사용하고 Node.js 바인딩에서 영역 전환 시의 오버헤드를 줄였는지도 정리되어 있습니다.

https://github.com/Nebu1eto/sheetkit

1

marius shared the below article:

Impressions on the new Framework 13 laptop

Marius @Marius@marius.federated.id

There are two types of people in this world: the ones that use their computers for doing the work, and the ones that are happy to tinker with them until they fit their usage and only then start doing the work. Of course sometimes for the later ones, of which I am one of, get bored along the way and the work is all but forgotten.
But since I'm writing this update on the new Framework laptop while procrastinating doing the work on some GoActivityPub issues, I'll consider it a win anyway.

In March, I decided that despite being unemployed and going through my savings at a brisk pace, the fact that I don't have a laptop is becoming a bit of a problem in my attempt at getting GoActivityPub into a state fit for a first stable version.

Since my previous machine had its screen die at the end of last year - a mysterious ailment that I wasn't able to diagnose or fix even with the gracious help of the tech support people at Tuxedo Computers, the company I bought it from in sometime in 2020 - I was left having to do computing on an old desktop machine I had built about ten years ago for playing Steam games. Luckily it had a decent(ish) CPU for the time, and it was perfectly adequate for running the kind of setup I need for my usual development needs. However, it wasn't very mobile friendly, everything needed to be done at the desk, and frankly it was getting somewhat uncomfortable to spend 10-12 hours a day on it.

And then Framework launched their new 13inch version with a top of the line AMD CPU, and plenty of configuration options which was enough for me to decide to get one despite its premium price and my sad, unemployed state.

Fast forwards to a couple of days ago when the package arrived at my door, rather at my building's door as no logistics company employee is willing to climb the many flights of stairs to my attic apartment. I was very excited as you can imagine to stop wearing off the F5 key on my keyboard looking for those shipping updates. It even arrived a day earlier than expected.

Assembly

I was eager to unbox the DIY version I bought and Framework didn't disappoint. Everything was packed tightly together with very little plastic and the one that is there is recyclable at that.

It was a little surprising how little there was to put together: only the keyboard and screen bezel needed full assembly. Additionally, the RAM and the hard drive needed to be slotted in, but that was all.

Putting everything together was incredibly easy (as underscored by the very helpful guide), it took about 30 minutes which included a lot off faffing about setting up angles and lighting in order to take some of the pictures attached to this post. They're still not great, but I did my best, sorry.

The guide, and the comments from users, implied that the bezel mounting might prove finicky, but for me everything snapped in place on the first try. I'll admit here that going for the black translucent version my best idea. It breaks the otherwise clean silver look of the machine and seeing the exposed bits of the screen is not as cyber punk as I had expected.

OS installation

Once assembly was done, the real set up began: installing linux and syncing my home directory. As this happens every couple of years you'd think that I have some kind of automation for the process. Sadly I don't so the manual setup was a bit tedious. Going through the Archlinux installation guide is becoming a bit of a comfort self-stimulation operation. The setup I chose was to use dm-crypt full disk encryption and a single btrfs multi volume partition.

The good news is that all the (essential) hardware is supported out of the box, with the small mention that the first boot configuration has Secure Boot enabled so the archlinux ISO isn't recognized without first disabling it from the BIOS.

Once the basics were in place I synced my home directory from the desktop machine. Since I didn't want to think too hard about this, I decided to use rsync directly. This wasn't a great idea due to the number of small files that needed to be transferred which slowed everything down to the level that I had to let it run overnight. I was however able to boot into a sway session and setup my displays, each with different DPI settings: 30inch 4K monitor at 1.76scaling, 25inch 1920p monitor at 1.5 scaling and the laptop's own screen 13inch 2880x1920 at 2 scaling. Granted this is more of a statement about how far sway and Wayland have come than about how capable the hardware is, but it is good to know that everything worked on the first try.

The display is very good, the 3/2 aspect ratio will be very useful for work and will probably allow me to stop using vertical tabs for my IDE and other assorted tools. One little niggle is the fact that the top has rounded corners, which are noticeable when at the top of a linux console, when logging in to fix an issue for example (it's even noticeable in the image above showing PowerTop).

Another good impression was about how silent the machine was. I was used to my previous laptop to have fans on full blast as soon as I started a Youtube video, but outside the rsync process the system temperature was a stable 46° Celsius with inaudible fans (despite the framework_tool binary reporting about 3K RPM).

Work relevant observations

As I already mentioned I bought the machine to be able to keep working when away from my desk, or at it for all that matters. Astute readers might have noticed me earlier saying that I am also unemployed and wonder at the contradiction. But there is none, the work I keep mentioning is the open-source projects that I've been grinding for the better part of eight, ten years. That's a jumble of C and Go code-bases, but mostly the GoActivityPub - which I have already mentioned - library for building ActivityPub applications using Go. So the laptop spends quite a lot of time compiling things, and even though the speeds of both C and Go compilers is quite good, it's pleasant to minimize the time spent waiting. The 12 core AMD CPU is both faster and cooler than the previous generation from the Tuxedo Pulse, not to mention to the venerable i7 I have on the desktop machine.

The run times for the most exhaustive test suite for FedBOX, went down from around 17-18 to 12-13 seconds, with the additional benefit that the variant that does additional checks for race conditions went from 29 to 19 seconds. I consider that a significant enough gain.

The only problem that cropped up so far is that the new AMD integrated GPUs have at least one issue on linux.
It manifests when viewing video in the browser as a screen freeze and subsequent Firefox video thread crash. One solution proposed by the framework forums was to migrate to the development version of the linux-firmware package, which diminished the frequency but didn't fully solve the problem. The “good” news is that the machine is still accessible through ssh and it can be safely rebooted.

On the AMDGPU bug tracker there is a thread from an Arch user running the same configuration and reporting the same, or a very similar, issue. I haven't tried all the configuration options suggested there, but I'll go through them if the instability keeps happening. The consensus seems to be that version 6.15 of the kernel will include patches that should fix everything.

Conclusion

This was a good purchase. Hopefully the repairability will give it a longer life than the four years I got out of the Tuxedo which would have still been perfectly usable had the company allowed for a screen replacement.

The good:

  • Excellent specs and configurability.
  • The assembly for the DIY version is indeed very simple.
  • Tall 3/2 screen aspect ratio.
  • Good thermal management.
  • Most of the firmware can be updated with fwupd.
  • The framework_tool utility that can query and set hardware specific values.
  • Good support for multiple screen setups.
  • Hardware switches for microphone and webcam.
  • I love the framework screwdriver. It's minimalism speaks to me at a hind brain level that I can't quite articulate.

The bad:

  • The AMDGPU issue.
  • Not all expansion cards support firmware updates (it's possible that they don't need it though).
  • Rounded top corners for the display.
Read more →
0
0
0
1
0
0

We are committed to growing the Open Social Web. For us, that starts by working to overcome barriers of entry in the network and highlighting the things done well.

On March 2nd, @fediforum are hosting an event dedicated to Growing the OSW. It's a chance to talk about all the issues as well as the long list of things the Social Web is doing well.

Ahead of it, we've published our Position Paper. You can see it here 👉
newsmastfoundation.org/our-blo

0
0
0
0
0
0
0

Big update pushed for - my Bash-based static site generator

This is a major pre-release update, not the official release yet, and I would really love some testing and feedback before cutting it.

Highlights:
* New build mode: BUILD_MODE="ram" / --build-mode ram
* This is a memory-first build mode designed to drastically reduce disk I/O during the build.
* On real projects, this results in a ~2× speedup, and in some cases well over 3× faster builds, depending on:

* site size
* number of generators involved
* storage speed
* parallelism available

In RAM mode you also get a stage timing summary, so you can see exactly where build time is spent. This makes performance tuning much more transparent and data-driven.

Under the hood:
The core build system was heavily refactored:
* Clear separation between orchestration, generators, and indexing
* Cleaner and more predictable generation flow for posts, pages, tags, authors, archives, and feeds
* Asset and theme handling moved into a dedicated build module
* Static file copying and theme CSS processing are no longer scattered around the codebase

Performance and robustness:
* Smarter rebuild and caching logic
* Improved parallel execution paths
* Uses parallel when available
* Shell-based worker fallback when it isn’t
* Parallel behavior is now more robust and easier to reason about

Stability and polish:
* Fixed an edge case with locale-specific timing parsing
* Configuration and documentation updated to match new options and tuning knobs
* Overall codebase is simpler, clearer, and easier to extend

Before tagging the official release, I need help testing this.

* Please test from the main branch or commit and report issues *

Links:
Repo: brew.bsd.cafe/stefano/BSSG

Huge thanks to everyone who tests, reports issues, or pokes at it.

This release comes from a lot of refactoring and profiling, and fresh eyes really help

0
0
0
0
0
0

Want to know how much memory (in bytes) your machine has installed? Let
sysctl(8) tell you with the following command:

sysctl hw.realmem

The realmem value is memory before the kernel and modules are loaded, whereas
hw.physmem is what is left after they were loaded.

The number of active CPUs is displayed using this command:

sysctl hw.ncpu

-- Benedict Reuschling <bcr@FreeBSD.org>

0

Youtube tip you might find useful:

Trying to find something specific, but Youtube keeps putting irrelevant "people also search for" stuff in results? Just add a before: filter with a date in the future. "your search before:2027" gets rid of that stuff.

0
0

Anyone have contact with Microsoft network ops? They've blackholed my SMTP (204.11.50.134) (which is used by me and half a dozen other people, none of whom send spam), and my admin's on vacation and I don't wanna screw up his time off. This is obviously a false positive though.

0
0
0
0

Obsidian uses local files, so all your standard terminal commands work for editing/moving/searching/etc

what CLI adds is everything else:

- interacting with the UI
- Obsidian's internal functions, e.g. base queries
- deterministic results like the "orphans" command
- easily create a personal plugin now that your agent can access devtools, console, screenshots, eval, etc

See the CLI docs!
mas.to/@obsidian/1160469856764

0
0
0
0
0

: This Feb. 4, 2026, image from NASA’s Solar Dynamics Observatory captures a strong solar flare erupting. Solar flares are powerful bursts of energy that, along with other types of solar eruptions, can impact radio communications, electric power grids, and navigation signals and pose risks to spacecraft and astronauts. The flare pictured was classified as an X4.2 flare. X-class flares are the most intense. Credit: NASA/SDO

NASA’s Solar Dynamics Observatory captured this image of a solar flare — seen as the bright flash toward the upper middle — on Feb. 4, 2026. The image shows a subset of extreme ultraviolet light that highlights the extremely hot material in flares and which is colorized in blue and red.
0
0
0
0
0
0
0
0
0

Each time a new privacy-invasive
feature like facial scanning is implemented, if people in majority comply and accept to use it, it will soon become normality, and other options will be marginalized or even removed entirely.

If each time a new privacy-invasive
feature is implemented people opted to refuse it, it would soon be discontinued.

Each individual opposition to privacy-invasive features matters.

It is an act of self-protection but,
perhaps even more importantly,
it is also an act of protest.

A protest against the normalization of mass surveillance and the loss of privacy rights.

The fact that there are other cameras around doesn't mean that more cameras or additional scanning is not making things even worse.

If we do not refuse,
if we do not fight for our privacy rights,
we will lose them all.

@Em0nM4stodonEm :official_verified:

It's also an action of protection of society.
Eventually, some form of fascism will be in force, regardless of society. The less surveillance there is, the better chances the society has for ridding itself of the fascism and returning to safe tracks.

We as a society "have nothing to hide" right now, but in the future we will, some day.
Who supports surveillance is an enemy of the organized society.

0
0
0
0

Want to know how much memory (in bytes) your machine has installed? Let
sysctl(8) tell you with the following command:

sysctl hw.realmem

The realmem value is memory before the kernel and modules are loaded, whereas
hw.physmem is what is left after they were loaded.

The number of active CPUs is displayed using this command:

sysctl hw.ncpu

-- Benedict Reuschling <bcr@FreeBSD.org>

0
0
0

for all you beautiful hard working professional computer touchers out there:

"my day job has me making the world a ____ place"

(be honest, don't just repeat what your CEO says)

0
0
0

Anyone have contact with Microsoft network ops? They've blackholed my SMTP (204.11.50.134) (which is used by me and half a dozen other people, none of whom send spam), and my admin's on vacation and I don't wanna screw up his time off. This is obviously a false positive though.

0
0
0
0
0
0
0

Anyone have contact with Microsoft network ops? They've blackholed my SMTP (204.11.50.134) (which is used by me and half a dozen other people, none of whom send spam), and my admin's on vacation and I don't wanna screw up his time off. This is obviously a false positive though.

0
0
0
0
0
0
0
0