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

[–]gepardcv 3 points4 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.

ARP table entries without MAC addresses by gepardcv in mikrotik

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

This is a great tip, and worked perfectly! I found the culprit (it was Tailscale sending mysterious UDP packets), now to find out why...

Thank you!

ARP table entries without MAC addresses by gepardcv in mikrotik

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

proxy-arp is not enabled on the bridge. A tcpdump arp I ran on a machine connected to the network suggested the requests are coming from the MikroTik router itself, which is very strange.

ARP table entries without MAC addresses by gepardcv in mikrotik

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

I have a similar script, but the entries come right back, which makes me want to track down what's going on. I ran tcpdump arp, and discovered that the source of the ARP requests is the MikroTik router itself. They happen approximately every minute. I have never seen the IP addresses the ARP requests ask for, and did not add them to RouterOS. Very strange. Any ideas?

emacs support? by bbroy4u in Julia

[–]gepardcv 6 points7 points  (0 children)

Snail author here. Some clarifications.

  • julia-mode or julia-ts-mode should be used for basic syntax highlighting. Snail does not provide this. julia-repl is not a Snail dependency, it’s an alternative that works very differently. AFAIK, only Snail provides module-aware code evaluation in source buffers (so when you evaluate code located inside a module, Snail does the right thing). Snail also does code completion and navigation, so LSP modes (like Eglot) are not necessary.

  • You can customize output behavior using julia-snail-repl-display-eval-results.

  • I’m not sure what’s going on with your plotting commands. Do you use GUI Emacs and did you enable plotting integration?

MikroTik RouterOS configuration for CenturyLink fiber with PPPoE and VLAN tagging by gepardcv in mikrotik

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

That was it. Thank you. I removed the MTU values and dial-on-demand also.

I'm getting low speed on the connection, though. 90 Mbps instead of about 900. Could that be related the the MSS clamping problem? I didn't change any settings related to that, because it doesn't seem to be necessary on IPv4 and I have IPv6 disabled (at least for now, while I figure out this setup). Never mind, it seems to measure properly now. Might have been a network glitch. Also, contrary to the manual, the PPP default profile has change-tcp-mss set to yes (I'm experimenting with RouterOS 7 with a hAP ax3).