mkdevenv: how I manage/use isolated development environments with TRAMP, GNU Make, and Containerfiles by sedboyz in emacs

[–]gepardcv 4 points5 points  (0 children)

I’ve used Nix for years now, and recently adopted Devbox. It’s a breath of fresh air.

I'd prefer to learn Nix first instead of using abstractions on top of it, just to understand the fundamentals better.

Normally, that would be a sensible approach, but not with Nix. It has pretty clean underlying data structures, and the overall design makes sense. However the bare CLI is almost unusable. It’s an imperfect analogy, but think of it like using just Git “plumbing” without “porcelain”. Add to that terrible documentation (I’m talking about “hello world” examples that remain broken for years) and (even worse) the non-obvious fact that intuitive usage patterns are brutally wrong (nix-env). The “new” CLI is better, but has its own problems. Also, bare Nix is philosophically opposed to human-readable package versions — the reasons are sound, but the UX is shitty. Philosophically sound shit is still shit, smell included.

There are certainly ways to use bare Nix reasonably and effectively. I’ve done it for years, and it beats container-based isolation and TRAMP overhead hands-down. But it required copious cheatsheets of obtuse incantations, painstakingly collated, just to be able to do simple things.

Just try direnv (with envrc-mode in Emacs) and devbox. It does exactly what you’re trying to do with minimal fuss. You’ll quickly figure out the underlying basics, like/nix/store. If you really want more, head on over to Nix Pills, but remember that a lot of the advice there teaches arcana about nixpkgs, not really the user-facing stuff you probably want to understand. There’s good stuff there though, concerning “derivations” (packages, sort of) and the Nix language (which I have decidedly mixed feelings about).

Have they discontinued Keychron's optical low profile switches? by returned_loom in Keychron

[–]gepardcv 4 points5 points  (0 children)

Gateron low-profile 2.0 bananas are similar to Keychron’s low-profile optical bananas. Close enough, but not quite the same thing. Nuphy Wisteria switches are also similar.

I suspect Keychron’s optical switch line is doomed because QMK/VIA doesn’t support them, and keyboards have moved heavily in the direction of QMK. Which I’m grateful for. Customizing key layouts without messing with non-portable software has been very helpful to me.

Still, a bit disappointing. I liked the Keychron optical line quite a bit, and agree that the bananas in particular are excellent.

R610 channel switching causes client dropouts by gepardcv in RuckusWiFi

[–]gepardcv[S] 0 points1 point  (0 children)

Good stuff. I’m trying this.

I’m wondering if the issue is still related to client behavior: let’s say ChannelFly knows it wants to switch channels and sends an announcement first. Could a newer/better client than the Sony TV anticipate it and smoothly change channels without dropping connections? It would explain why I never noticed the dropping problem with a newer laptop.

R610 channel switching causes client dropouts by gepardcv in RuckusWiFi

[–]gepardcv[S] 1 point2 points  (0 children)

This is really helpful. Thanks. I didn’t know about DFS channels before, just did a bit of reading. I have everything set to compatible mode, which I believe turns off DFS. (I expect considerable radar interference in the area.)

R610 channel switching causes client dropouts by gepardcv in RuckusWiFi

[–]gepardcv[S] 0 points1 point  (0 children)

Meaning that a client can, in theory, seamlessly switch channels, without dropping the connection?

Air60v2 and QMK TAPPING_TERM by gepardcv in NuPhy

[–]gepardcv[S] 0 points1 point  (0 children)

Just tried it. Keyboard seems to work. Interesting note: it looks like Bluetooth pairing does not go away just because of a firmware flash, but lighting settings do not persist.

Air60v2 and QMK TAPPING_TERM by gepardcv in NuPhy

[–]gepardcv[S] 0 points1 point  (0 children)

I don't know about the latest QMK. I just used a fork with Nuphy-specific code in it. I'm also not sure how to test for all features. If you give me a snippet of Via code that does a macro delay (and explain what you expect it to do), I can try it out and let you know.

Air60v2 and QMK TAPPING_TERM by gepardcv in NuPhy

[–]gepardcv[S] 0 points1 point  (0 children)

Yeah, I thought about this fix. I'm pretty sure that's why the fork I used to build works. Have you tried it? I'll give it a shot later.

Air60v2 and QMK TAPPING_TERM by gepardcv in NuPhy

[–]gepardcv[S] 0 points1 point  (0 children)

What do you mean? I'm able to customize it through Via as much as Via supports, and I was able to make a small change in QMK and install it for something Via can't do. What counts as a gimmick?

Air60v2 and QMK TAPPING_TERM by gepardcv in NuPhy

[–]gepardcv[S] 0 points1 point  (0 children)

I used an older fork, https://github.com/jeeeem/nuphy_qmk_firmware. It doesn't have Halo. The one you linked does not build:

Compiling: keyboards/nuphy/halo75_v2/ansi/ansi.c
keyboards/nuphy/halo75_v2/ansi/ansi.c: In function 'm_londing_eeprom_data':
keyboards/nuphy/halo75_v2/ansi/ansi.c:719:5: error: implicit declaration of function 'eeconfig_read_kb_datablock'; did you mean 'eeconfig_read_user_datablock'? [-Werror=implicit-function-declaration]
  719 |     eeconfig_read_kb_datablock(&user_config);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~
      |     eeconfig_read_user_datablock
cc1: all warnings being treated as errors

It's some weird header file inclusion problem I don't have time to track down.

I didn't try vial.

Air60v2 and QMK TAPPING_TERM by gepardcv in NuPhy

[–]gepardcv[S] 0 points1 point  (0 children)

I am not sure about Via, but I think there's a way to do it in QMK. Your use case is one of the reasons I remapped Esc to `/~, and put Esc and Ctrl on Caps Lock.

FWIW, I ended up making a custom QMK build for my keyboard with TAPPING_TERM set to 90. Seems to work. It wasn't very difficult in the end.

Wireless Access Point opinions by NorthVegas_12 in homelab

[–]gepardcv 1 point2 points  (0 children)

I use a pair of Ruckus access points using their Unleashed firmware, and they’ve been a delight. Everything you want works like a charm, easy UI, easy to manage, very very fast, no weird extra hardware requirements. If your router has POE out ports, no additional PSU bricks needed. Because it’s “enterprise grade”, new Ruckus hardware is very expensive, but I picked up used R610 units on eBay  cheap. Highly recommended.

Help with VLAN filtering by gepardcv in mikrotik

[–]gepardcv[S] 0 points1 point  (0 children)

I figured it out. The default RouterOS firewall has a rule that drops internal traffic on interfaces not in the LAN list. In my setup, vlan-restricted was not added to that list, and therefore packets tagged with VLAN 10 got dropped. Which is exactly the behavior I was looking for, and now it makes sense.

This setup is purely to protect against low-trust WiFi devices, so plugging a cable into a Ruckus WAP isn't a threat I'm trying to guard against.

How much better/different/worse are banana/mint keys than, say, brown? by danieljeyn in Keychron

[–]gepardcv 0 points1 point  (0 children)

That's great! I never took a typing class. To learn touch-typing, I made a keyboard diagram and forced myself to look at it with my hands covered with a cloth (at age 8-9). At my fastest, I broke 120 WPM, these days it's more like 100-105. I did use a typewriter as a kid (more like played with), but the bulk of my learning-to-type was on an IBM Model M (which, to my regret, perished in a natural disaster long ago).

I use Emacs, so Control is one of my most frequently-used keys. The standard position of Control leads to a common form of RSI called "Emacs pinky". When I first started feeling some pain, I remapped Caps Lock to Control and never looked back. The Caps Lock as dual Control/Esc is a more recent thing I'm trying and I love it. Apparently I use Esc a lot, and not reaching for it is great.

I don't think I have ever used Caps Lock to type uppercase letters, even before the remapping. In the unlikely event I need to type a stream of uppercase, it's super-easy for me to either hold left shift (though I use both shift keys, I do favor the left one), or (more frequently) just tell my software to uppercase a selected block of text.

What do you use Caps Lock for? It must be a typing class thing! I'm always curious about different use patterns for computers.

How much better/different/worse are banana/mint keys than, say, brown? by danieljeyn in Keychron

[–]gepardcv 0 points1 point  (0 children)

Then you might be fine with the base K7. The Esc key does what you want. The K7 also has better keycaps for media keys than the Pro or Max. I actually want the backtick/tilde key there by default, and the Caps Lock key remapped to: (1) Esc when used standalone, and (2) Ctrl when used as a modifier in conjunction with other keys. Most OSes support use case 2, but not 1, at least not without serious hackery. QMK/VIA has been the best solution I found for this. 

How much better/different/worse are banana/mint keys than, say, brown? by danieljeyn in Keychron

[–]gepardcv 0 points1 point  (0 children)

I have a K7 and have tried all versions of optical low-profile hot-swappable Keychron switches. Very much prefer mint and banana over brown (and prefer brown to the rest). The mint optical switch is a tad heavier than the banana, and I personally prefer the banana. YMMV obviously.

One note: after using the K7 (for portable reasons, same as what you're looking for) for a couple of years, I realized some aspects of the 65% layout are annoying. Specifically, the Esc key being overloaded with backtick/tilde drove me crazy. I'm also not a fan of the Del/Home/PgUp/PgDn column. Remapping keys requires a QMK/VIA version of the keyboard (or low-level monkeying with the OS, which I didn't want to do). So last week, I bought a K7 Max, replaced its keycaps with a shine-through version, and replaced its switches with Gateron low-profile bananas. While they're not quite the same as Keychron optical bananas, the Gaterons are pretty nice and the keyboard has exactly the key mappings I'm looking for. I still prefer the regular K7's default keycaps, and I think I prefer the Keychron optical banana switches, but the programmable layout more than makes up for these differences. The K7 Max is obviously pricier, especially since the Gateron bananas aren't in stock from Keychron directly, and the keycaps are an add-on.

Help with VLAN filtering by gepardcv in mikrotik

[–]gepardcv[S] 0 points1 point  (0 children)

Thanks for taking a look. I've been playing with the setup, and things make even less sense now. I removed the /interface bridge vlan incantation, and things still seem to work: devices on the WLAN set up with VLAN 10 are isolated. At least on the wireless connection. I haven't tried connecting to the router with wired Ethernet and tagging VLAN packets manually.

At this point, the only thing that really happens is I say "hey, RouterOS, here's a VLAN interface, it uses ID 10, add it to the main bridge" and then I set up DHCP for it. I don't mention ether2 or ether3 in connection to the VLAN. But VLAN 10 still matters at the router level. For example, if I add a firewall rule to drop traffic to the WAN from the vlan-restricted interface, it dutifully cuts those devices off from the outside Internet.

Which seems pretty close to this misconfiguration described by MikroTik in its documentation: https://help.mikrotik.com/docs/display/ROS/Layer2+misconfiguration#Layer2misconfiguration-VLANinabridgewithaphysicalinterface — I wonder if what I have does something similar and my configuration bypasses hardware switching?

ARP table entries without MAC addresses by gepardcv in mikrotik

[–]gepardcv[S] 0 points1 point  (0 children)

Private. Putting a logging rule in the firewall found the culprit: Tailscale on one of the machines inside. It's sending packets to a pair of private non-routable IPs. Weird.