fool

joined 1 year ago
[–] fool@programming.dev 2 points 1 day ago* (last edited 1 day ago) (1 children)

Yeah, you're completely right. Microsoft Teams refers to multiple communications platforms, not just one. Wikipedia and Microsoft themselves made the same mistake as OP here. Hope you can help!

( ¬_¬)

[–] fool@programming.dev 4 points 1 day ago

We survived the Cold War. We survived that mild awkward moment where there were just 10,000 humans or something. We survived the Paleolithic by throwing and walking kinda good despite having super-mediocre body builds compared to the lithe apex competition.

Sure, a United Statesian might not know what price elasticity means when they go pro-tariffs, and shoot their foot on a national scale. Sure, "Eastern" youths might stretch themselves systemically thin to leap through an education colander into a limited, demanding job seat. Sure, there's a whole terror cloister awkwardly just below South Korea, a crap ton of eyes on the Ukraine, and the new context of exponentially advancing tech compared to the last kabillion years.

But I believe in the human spirit. Call me a fool. We don't even need to be enlightened to not destroy ourselves. We just need to be what we always fuckin been, what we always fuckin will be.

Stupid endurant.

in all three senses of the shit.

[–] fool@programming.dev 1 points 1 day ago* (last edited 1 day ago)

You probably already know, but scheme artists avoid pure #000000 out of contrast concerns. (e.g. DarkReader can give some headaches if the background is straight black with offwhite text). That makes a #000000 scheme very rare - manual intervention required :P

If you still wanna get crackin', just tweak a preexisting dark theme and change navies/greys to black. And if you're talking about the palette instead of actual themes to install, this still works -- just check the source for whatever colors they're using and tweak those. (grep for hexes then sort uniq? shell exercise is left to the reader)

I'd recommend taking one of vinceliuice's themes and just turning navy blues into blacks. For example, Graphite-gtk (has a matching qt theme) is pretty grey even with a --black tweak, but you could blacken it with some effort. Same with Colloid-gtk (also has a --black tweak).

You could probably even blackify the KDE theme's greys if you so fancied, but then you'd need to tune down the contrast on the other colors in the set. And this and that...

If this is too inexact an answer, then ouch. I wish you luck!

[–] fool@programming.dev 4 points 1 day ago

We have the Venn overlap of people who want privacy and people who dislike enshittification. Then some join Lemmy.

⇒Nonresponse bias by people who scroll by and don't care to read other people's info or post their own. Huge sieve, these comments aren't even seen.

Then we have curious people who are probably curious about tech or tinkering or protecting themselves or more organic forums like Lemmy.

⇒Nonresponse bias by people who check this out by curiosity (e.g. comment/upvote ratio, are people really giving out their info or faking it with jokes?) but then they definitely choose to not comment. They et al. might upvote the above comment or not, and nope out.

We can't even get good Linux user demographics. A large survey sometime back said "Wayland was leading over Xorg, according to users who replied" -- obviously false, take a look at Indian corporate use of Ubuntu Desktop LTS, or the legacyness of X11.

Blah blah, 2.5/mitosis/deep sea geysers

[–] fool@programming.dev 1 points 1 week ago (1 children)
[–] fool@programming.dev 4 points 1 week ago

I assume the envisioned discussion was supposed to be

Q: Thoughts on the Orphan Crushing Machine?

A: The CDC says crushing orphans is bad for our health.

A: The government in Orphania is expanding the definitions of orphans to all seniors, allowing a cascading orphan-crushing effect.

where we all experience the same negative emotion in a fuller, mildly variable way.

But yeah, it's kind of... predictable, isn't it?

~<thread>~ ~FOSS,~ ~big~ ~bad~ ~powerfuls,~ ~companies,~ ~governments,~ ~Stallman~ ~</thread>~

[–] fool@programming.dev 2 points 1 week ago

Too late, I asked algernon. O.O

but yeah I don't think I'll make my OS an absolutely pure mathematical function that I prove the correctness of at every boot ~cool~ ~af~ ~tho~

I do rely on correct dev envs so I'll try my hand at nixos-shell -ing. Thanks for the input

[–] fool@programming.dev 1 points 1 week ago* (last edited 1 week ago) (1 children)

So instead of commenting inside of nix files, you put nix files into .org documents and collate them so you can make your nix files an OS and a website and a zettelkasten-looking set of linked annotated nodes.

That puts a stupid grin on my face (ᐖ )

Dammit I was sure I was just going to stick with Arch until I saw this

Questions:

  • You have home on tmpfs. Isn't that volatile? Where do you put your data/pictures/random git projects? Build outputs? How's your RAM? (Sorry if I'm missing something obv)
  • What's your bootup like?
  • Another commenter mentioned difficulties in setting up specialized tools w/o containerizing, and another mentioned that containers still have issues. Have you run into a sitch where you needed to workaround such a problem? (e.g. something in wine, or something that needs FHS-wrangling)
[–] fool@programming.dev 2 points 1 week ago (3 children)

The "stable unstable" setup is a beautiful concept. Thanks for the dotfiles mention -- I keep hearing "you need to rebuild if you edit a dotfile" but I guess that's a myth encountered by people trying to nix too nixily, falling into said archetypal rabbit hole

Questions:

  1. Does mixing streams "infect" other packages? I remember an old Gentoo thing where ~amd64 unstable packages would want to spread on its own. Since it's nix I assume that an unstable package will require a bunch of unstables but they'd be installed alongside respective stable versions -- i.e. taking up disk space but not "spreading" per se

For packages its basically 0 time.

Is that really true for you? I assume you refer to the length of time it takes to copy paste a flake from online but how reliable is that really? And the other commenters mention that there's still wrestling to be had for certain tools

[–] fool@programming.dev 2 points 1 week ago (1 children)

Thanks for the input!

I'm nervous about faking FHS as well, especially for specialized stuff. I don't know much about steam-run or its caveats -- so I can't debug it (Maybe it turns out to be really simple and solid? Who knows...)

Thanks for mentioning the gpu accel issues in distrobox -- I was considering using containerization to fight off any FHS issues but it seems I can't jump the gun. I'll probably just tighten dev envs by trickling in nix-shell usage; multiple versions of a package at once is an issue I'd def love to solve (in a way that's more than just dockerfile)

Interesting that this is the third comment suggesting just using btrfs snapshots to resist Arch update experiences. I have root and home on two flat btrfs subvols so it shouldn't be that hard to implement. (yeah yeah "What backup?" is bad)

Seems like the simplest way out is those two smallish changes. Wish I could transcend into declarativity but the thread's nix survivor ratio is grim

[–] fool@programming.dev 9 points 1 week ago (1 children)

Yep this is my diagnosis. I had a lot of time at the start to config horns and halos and miniguns and waffle toasters onto my craptop but now everything is constrained

o(╥﹏╥)o

 

Perhaps dumb questions inbound ;)

I use Arch because I'm strapped for time and my system is always moving.

  • 2 minutes to install something? AUR probably has it.

  • Ten minutes of free time to look for a software that fits a new need? Try random AUR things (auditing PKGBUILDs is just twenty seconds or so).

  • If I need a tiny patch, I'll just add a sed or patch file to the PKGBUILD. (Super easy, you barely learn any syntax cuz it's intuitive shell.)

  • make && make install/meson blahblah usually just works.

  • Wiki does the thinking for me if I need something special (e.g. hw video acceleration)

Buuuut update surprises can be a pain (e.g. Pipewire explodes Saturday evening) and declarative rollbackable immutability sounds really freakin' AWESOME, so I'm considering NixOS for my new laptop (old one's webcam broke). So I ask:

  • How much can I grok in a week?
    • I need to know Nixlang, right? I have a ton of dotfiles and random homemade cpp commands in ~/.local/bin that I use daily
  • How quick is it to make a derivation?
    • I make install a lot, do I need to declare that due to non-FHS? Can I boilerplate the whole thing with someone else's make install and ctrl+c ctrl+v? How does genAI fare? (Lemmy hates word guess bots, I know)
  • How quick is it to install something new and random?
    • Do I just use nix-shell if I need something asap? Do I need to make a derivation for all my programs? e.g. do I need to declare a Hyprland plugin I'm test-running?
  • How long do you research a new package for?
    • On Gentoo I always looked up USE flags (NOO my time); on Arch I just audit the PKGBUILD and test-run it (20 seconds); on Ubuntu I had to find the relevant PPA (2 minutes). What's it like for Nix?
  • Can you set up dev environments quickly or do you need to write a ton of configs?
    • I hear python can be annoying. Do C++/Android Studio have header file/etc. issues?
  • What maintenance ouchies do you run into? How long to rectify?
  • Do I need to finagle on my own to have /boot encrypted?
    • I boot via: unencrypted EFI grub asks for LUKS password -> decrypt /boot, which then has a keyfile -> decrypt and mount btrfs root partition. But lots of guides don't do it this way

Thanks for bearing with me ദ്ദി(。•̀ヮ<)~✩‧₊

[–] fool@programming.dev 3 points 1 week ago

When it comes to installing stuff, I'm very trigger-happy. So, from experience...

Installing stuff on Windows (safely)

  • Hope it's on Chocolatey (choco install)
  • If not, search for the website online
  • Scroll past the AI slop and suspicious Softonic downloads
  • Click the website
  • Find the correct download button
  • Download
  • Scan with MalwareBytes (don't want an STI)
  • Run setup.exe
  • Verify PATH and wanted feature set
  • I do not want to bundle Candy Crush or McAfee
  • skim the Privacy Policy to see if they'll grind my bones to dust
  • Install Microsoft C++ Redistributable 2014-2018 (wtf? I already have 4 of these)
  • Wait
  • Sort the installation shortcuts into my folders

Installing stuff on Linux (safely)

  • paru some_software
  • If on AUR, skim PKGBUILD
  • If not packaged at all (rare), git clone it and either skim the install.sh or Makefile
  • Done
 

I know, I know, mostly just undergrads care about undergrad prestige (except resumé bots on LinkedIn scanning for "MIT") but I'm curious about the average Lemming, who might lie less often than Redditors and probably isn't a hyper outlier. Though I still expect selection and response bias :3

Let me start with my own wall of anecdotes.

  1. An old American embedded systems mentor I once had had had like two master's degrees, but in his words,

Just get a Bachelor's and a good internship. If the company will let you do it on their dime, then get the Master's.

So the college-then-job thing wasn't quite cause-then-effect.

  1. Another friend I had said "All of the higher-ups in the chip engineering dept I'm gunning for have a PhD. Wanna contribute meaningfully? Probably gotta have one too" (Somewhere in the entirety of Asia, exacts hidden for privacy). So grad school matters more in that case.

  2. My old econ teacher told me that, if you want a job where undergrad is just a stepping stone, then your undergrad "prestige" mostly doesn't matter (e.g. pre-law, pre-med). And saving 50k in undergrad student loans to then dump into matching the S&P is a cheat code at age 18, worth far more than "initial salary". ~not~ ~financial~ ~advice~ ~lol~ In this case, the "get your job" isn't even that important.

  3. An acquaintance I once had pipelined from Cornell to DeepMind. There, prestige and its opportunities probably/definitely/maybe had an effect.

  4. A second acquaintance says his Canadian public school (iirc) only mildly helped him, so he went all-in on making his own networks outside of school to get into AI (Is he a hustler bro or something?). So he dodged the idea of college choice mattering.

  5. A Harvard acquaintance I knew says both their dad and granddad agreed that going to Harvard played into getting their positions. (No need to believe me. I forgot what position tho -- finance/big business probably)

  6. The managers and manager managers my parents knew often only had community/state school undergrads, sometimes with MBAs.

  7. I don't care about CEOs. All outliers anyway.

So what have you empirically found? And where? (inb4 "American elite school obsession bad" and "CS is skill-based, not school-based, thread over" -- heard all of that already)

You can be vague if needed c:

 

It can be a small skill.

The last thing I learned to do was whistle. Never could whistle my whole life, and tutorials and friends never could help me.

So, for the last month or two, I just sort of made the blow shape then spam-tried different "tongue configurations" so to speak -- whenever I had free time. Monkey-at-a-typewriter type shit. It was more an absentminded thing than a practice investment.

Probably looked dumb as hell making blow noises. Felt dumb too ("what? you can't whistle? just watch"), but I kept at it like a really really low-investment... dare I attract self-help gurus... habit.

Eventually I made a pitch, then I could shift the pitch up a little, then five pitches, then Liebestraum, then the range of a tenth or so. Skadoosh. Still doing it now lol.

(Make of this what you will: If I went the musician route my brain told me to, then I would've gotten bored after 1 minute of major scales. When I was stuck at only having five pitches, I had way more longevity whistle-blowing cartoonish Tom-and-Jerry-running-around chromaticisms than failing the "fa" in "do re mi fa".)

So, Lemmings: What was the last skill you learned? And further, what was the context/way in which you learned it?

44
submitted 1 week ago* (last edited 1 week ago) by fool@programming.dev to c/linux@lemmy.ml
 

I had a teeny pet project using GNU assembly that was going to target two platforms.

Instead of keeping my handwritten worst-practices Makefile I decided to try GNU Autotools for the educated reasons of:

  • Text scrolling by looks pretty
  • Vague memories of ./configure make make install tarballs

I got hit with mysterious macro errors, recompile with -fPIE errors (didn't need this before?), autotools trying to run gcc on a .o file w/ the same options as an .s file, "no rule for all:", and other things a noob would run into. (I don't need a bugfix, since my handspun Makefile is "working on my machine" with uname -m.) So there's a bit of a learning curve here, inhibited by old documentation ~and~ ~more~ ~quietly,~ ~genAI~ ~being~ ~shittier~ ~than~ ~normal~ ~in~ ~this~ ~department~

With this I ask:

Do people still use Autotools for non-legacy stuff? If not, what do people choose for a new project's build system and why?

edit: trimmed an aside

 

A bookmarklet is a bookmark whose URL is JavaScript code instead of a site. It might be, for example,

javascript:document.querySelector('video').playbackRate = Number(prompt("speed")) || 1; void(0)

// formatted version:
javascript:
document
  .querySelector('video')
  .playbackRate = 
  Number(prompt("speed")) || 1; 
void(0)

so that if you click the bookmark, it sets the speed of the video to whatever you want (e.g. 3.7).

You could also run this directly in the URL bar (in some cases -- I think desktop Chrome does that), or you can simply type alert() into the dev console (desktop Firefox prefers this for security reasons).

Is running my own arbitrary JS like this a thing on mobile? I'm on Android but I'm not sure if Brave disabled it -- I vaguely remember it working once, but it doesn't anymore. No luck on Firefox either. Maybe there's a workaround?

 

edit: solved lol

When I run Cheese, the inbuilt webcam light flashes for an instant then stops. Assuming Cheese opens correctly, it never successfully shows the webcam feed. Cheese worked prior to update. ( Zoom webcam fails too D: )

setup

Arch Linux, kernel 6.11.5-arch-11, Hyprland v0.44.1 (pipewire 1.2.6) on a hybrid Nvidia+Intel Lenovo laptop.

$ lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 25a7:fa23 Areson Technology Corp 2.4G Receiver
Bus 001 Device 004: ID 8087:0a2b Intel Corp. Bluetooth wireless interface
Bus 001 Device 005: ID 138a:0094 Validity Sensors, Inc. 
Bus 001 Device 033: ID 13d3:5673 IMC Networks EasyCamera
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub

$ v4l2-ctl --list-devices                                         
EasyCamera: EasyCamera (usb-0000:00:14.0-5):
	/dev/video0
	/dev/video1
	/dev/media0

packages

I'm up-to-date.

$ yay -Q |egrep -i 'gstreamer|video|cam|media|mtp'
fswebcam 20200725-1
gnome-video-effects 1:0.6.0-2
gst-plugin-libcamera 0.3.2-1
gstreamer 1.24.8-1
gstreamer-vaapi 1.24.8-1
guvcview 2.1.0-4
guvcview-common 2.1.0-4
gvfs-mtp 1.56.1-1
haskell-http-media 0.8.1.1-18
intel-media-driver 24.3.3-1
libcamera 0.3.2-1
libcamera-ipa 0.3.2-1
libmtp 1.1.21-2
media-player-info 26-1
perl-lwp-mediatypes 6.04-6
pipewire-libcamera 1:1.2.6-1
# qt omitted
xf86-video-intel 1:2.99.917+923+gb74b67f0-2

tried apps

Tried cheese and fswebcam, among a few others (logs are too long to fit)

$ cheese
cheese

(cheese:53011): Gdk-WARNING **: 11:41:45.977: Native Windows taller than 65535 pixels are not supported
[0:56:26.030577084] [53011] ERROR IPAModule ipa_module.cpp:171 Symbol ipaModuleInfo not found
[0:56:26.030591748] [53011] ERROR IPAModule ipa_module.cpp:291 v4l2-compat.so: IPA module has no valid info
[0:56:26.030607425] [53011]  INFO Camera camera_manager.cpp:325 libcamera v0.3.2

(cheese:53011): GStreamer-CRITICAL **: 11:41:46.096: gst_structure_get_value: assertion 'structure != NULL' failed
[0:57:26.270746293] [53011] ERROR IPAModule ipa_module.cpp:171 Symbol ipaModuleInfo not found
[0:57:26.270790988] [53011] ERROR IPAModule ipa_module.cpp:291 v4l2-compat.so: IPA module has no valid info
[0:57:26.270850259] [53011]  INFO Camera camera_manager.cpp:325 libcamera v0.3.2
[0:57:26.432615229] [53061]  INFO Camera camera.cpp:1197 configuring streams: (0) 640x480-MJPEG
[0:57:26.449271361] [53574] ERROR V4L2 v4l2_videodevice.cpp:1931 /dev/video0[450:cap]: Failed to start streaming: Protocol error
[0:57:26.449379043] [53574] ERROR V4L2 v4l2_videodevice.cpp:1266 /dev/video0[450:cap]: Unable to request 0 buffers: No such device

(cheese:53011): cheese-WARNING **: 11:42:46.537: Failed to start the camera: Protocol error: ../libcamera/src/gstreamer/gstlibcamerasrc.cpp(680): gst_libcamera_src_task_enter (): /GstCameraBin:camerabin/GstWrapperCameraBinSrc:camera_source/GstBin:bin37/GstLibcameraSrc:libcamerasrc0:
Camera.start() failed with error code -71

(cheese:53011): Clutter-CRITICAL **: 11:42:48.119: Unable to create dummy onscreen: No foreign surface, and wl_shell unsupported by the compositor
$ fswebcam -v
***
Opening /dev/video0...
Trying source module v4l2...
/dev/video0 opened.
src_v4l2_get_capability,91: /dev/video0 information:
src_v4l2_get_capability,92: cap.driver: "uvcvideo"
src_v4l2_get_capability,93: cap.card: "EasyCamera: EasyCamera"
src_v4l2_get_capability,94: cap.bus_info: "usb-0000:00:14.0-5"
src_v4l2_get_capability,95: cap.capabilities=0x84A00001
src_v4l2_get_capability,96: - VIDEO_CAPTURE
src_v4l2_get_capability,107: - STREAMING
No input was specified, using the first.
src_v4l2_set_input,185: /dev/video0: Input 0 information:
src_v4l2_set_input,186: name = "Camera 1"
src_v4l2_set_input,187: type = 00000002
src_v4l2_set_input,189: - CAMERA
src_v4l2_set_input,190: audioset = 00000000
src_v4l2_set_input,191: tuner = 00000000
src_v4l2_set_input,192: status = 00000000
src_v4l2_set_pix_format,523: Device offers the following V4L2 pixel formats:
src_v4l2_set_pix_format,532: 0: [0x47504A4D] 'MJPG' (Motion-JPEG)
src_v4l2_set_pix_format,532: 1: [0x56595559] 'YUYV' (YUYV 4:2:2)
Using palette MJPEG
Adjusting resolution from 384x288 to 424x240.
src_v4l2_set_mmap,675: mmap information:
src_v4l2_set_mmap,676: frames=4
src_v4l2_set_mmap,725: 0 length=203520
src_v4l2_set_mmap,725: 1 length=203520
src_v4l2_set_mmap,725: 2 length=203520
src_v4l2_set_mmap,725: 3 length=203520
Error starting stream.
VIDIOC_STREAMON: Protocol error
Unable to use mmap. Using read instead.
Unable to use read.

logs

$ journalctl -b-0
# some stuff removed for post character limit
pipewire[1028]: spa.v4l2: '/dev/video0' VIDIOC_STREAMON: Protocol error
pipewire[1028]: pw.node: (v4l2_input.pci-0000_00_14.0-usb-0_5_1.0-78) suspended -> error (Start error: Protocol error)
kernel: usb 1-5: USB disconnect, device number 50
pipewire[1028]: spa.v4l2: VIDIOC_REQBUFS: No such device
kernel: usb 1-5: new high-speed USB device number 51 using xhci_hcd
kernel: usb 1-5: New USB device found, idVendor=13d3, idProduct=5673, bcdDevice=16.04
kernel: usb 1-5: New USB device strings: Mfr=3, Product=1, SerialNumber=2
kernel: usb 1-5: Product: EasyCamera
kernel: usb 1-5: Manufacturer: AzureWave
kernel: usb 1-5: SerialNumber: 0001
kernel: usb 1-5: Found UVC 1.00 device EasyCamera (13d3:5673)
mtp-probe[66565]: checking bus 1, device 51: "/sys/devices/pci0000:00/0000:00:14.0/usb1/1-5"
mtp-probe[66565]: bus: 1, device: 51 was not an MTP device
mtp-probe[66599]: checking bus 1, device 51: "/sys/devices/pci0000:00/0000:00:14.0/usb1/1-5"
mtp-probe[66599]: bus: 1, device: 51 was not an MTP device
kernel: usb 1-5: USB disconnect, device number 51
kernel: usb 1-5: new high-speed USB device number 52 using xhci_hcd
kernel: usb 1-5: New USB device found, idVendor=13d3, idProduct=5673, bcdDevice=16.04
kernel: usb 1-5: New USB device strings: Mfr=3, Product=1, SerialNumber=2
kernel: usb 1-5: Product: EasyCamera
kernel: usb 1-5: Manufacturer: AzureWave
kernel: usb 1-5: SerialNumber: 0001
kernel: usb 1-5: Found UVC 1.00 device EasyCamera (13d3:5673)
$ sudo dmesg
[ 5248.449913] usb 1-5: USB disconnect, device number 50
[ 5248.842621] usb 1-5: new high-speed USB device number 51 using xhci_hcd
[ 5249.025592] usb 1-5: New USB device found, idVendor=13d3, idProduct=5673, bcdDevice=16.04
[ 5249.025612] usb 1-5: New USB device strings: Mfr=3, Product=1, SerialNumber=2
[ 5249.025620] usb 1-5: Product: EasyCamera
[ 5249.025626] usb 1-5: Manufacturer: AzureWave
[ 5249.025632] usb 1-5: SerialNumber: 0001
[ 5249.030816] usb 1-5: Found UVC 1.00 device EasyCamera (13d3:5673)
[ 5259.873533] usb 1-5: USB disconnect, device number 51
[ 5260.268988] usb 1-5: new high-speed USB device number 52 using xhci_hcd
[ 5260.454354] usb 1-5: New USB device found, idVendor=13d3, idProduct=5673, bcdDevice=16.04
[ 5260.454371] usb 1-5: New USB device strings: Mfr=3, Product=1, SerialNumber=2
[ 5260.454378] usb 1-5: Product: EasyCamera
[ 5260.454384] usb 1-5: Manufacturer: AzureWave
[ 5260.454389] usb 1-5: SerialNumber: 0001
[ 5260.460370] usb 1-5: Found UVC 1.00 device EasyCamera (13d3:5673)

Any help appreciated! ^_^

Solution: It fixed itself after like 15 power cycles. Easy peasy

119
kdesu (programming.dev)
submitted 1 month ago* (last edited 1 month ago) by fool@programming.dev to c/linuxmemes@lemmy.world
 
45
submitted 1 month ago* (last edited 1 month ago) by fool@programming.dev to c/nostupidquestions@lemmy.world
 

This site is so cool!

             />  フ
            |  _ _| 
          /` ミ_xノ 
         /     |
        /  ヽ   ノ
        │  | | |
   / ̄|   | | |
   ( ̄  ヽ__ヽ_)__)
    \二)

But how do people make these? I searched online and the best I could find were small Japanese communities still using MS Gothic (which is metrically incompatible with Arial/more-used fonts) and halfhearted JPG-to-ASCII-bitmap converters.

Further, how do people manage these? I'd imagine an emoji search, but these millionfold emoticons don't have names; and the other alternatives are "I've got a meme for that scrolls down infinite camera roll" or searching them up every time.

⠀/\_/\
(˶ᵔ ᵕ ᵔ˶) thanks lol
/ >🌷<~⁠♡

 

I saw a post recently about someone setting up parental controls -- screentime, blocked sites, etc. -- and it made me wonder.

In my childhood, my free time was very flexible. Within this low-pressure flexibility I was naturally curious, in all directions -- that meant both watching brainteaser videos, and watching Gmod brainrot. I had little exposure to video games other than Minecraft which ran poorly on my machine, so I tended to surf Flash games and YouTube.

Strikingly, while watching a brainteaser video, tiny me had a thought:

I'm glad my dad doesn't make me watch educational videos like the other kids in school have to.

For some reason, I wanted to remember that to "remember what my thought process was as a child" so that memory has stuck with me.

Onto the meat: if I had had a capped screentime, like a timer I could see, and knew that I was being watched in some way, I'd feel pressure. For example,

10 minutes left. Oh no. I didn't have fun yet. I didn't have fun yet!!

Oh no, I'm gonna get in so much trouble for watching another YTP...

and maybe that pressure wouldn't have made me into an independent, curious kid, to the person I am now. Maybe it would've made me fearful or suspicious instead. I was suspicious once, when one of my parents said "I can see what you browse from the other room" -- so I ran the scientific method to verify if they were. (I wrote "HI MOM" on Paint, and tested if her expression changed.)

So what about now? Were we too free, and now it's our job to tighten the next generation? I said "butthead" often. I loved asdfmovie, but my parents probably wouldn't have. I watched SpingeBill YTPs (at least it's not corporatized YouTube Kids).

Or differently: do we watch our kids without them knowing? Write a keylogger? Or just take router logs? Do we prosecute them like some sort of panopticon, for their own good?

Or do we completely forgo this? Take an Adventure Playground approach?

Of course, I don't expect a one-size-fits-all answer. Where do you stand, and why?

 

Git cheat sheets are a dime-a-dozen but I think this one is awfully concise for its scope.

  • Visually covers branching (WITH the commands -- rebasing the current branch can be confusing for the unfamiliar)
  • Covers reflog
  • Literally almost identical to how I use git (most sheets are either Too Much or Too Little)
76
submitted 2 months ago* (last edited 2 months ago) by fool@programming.dev to c/linux@lemmy.ml
 

What was your last RTFM adventure? Tinker this, read that, make something smoother! Or explodier.

As for me, I wanted to see how many videos I could run at once. (Answer: 60 frames per second or 60 frames per second?)

With my sights on GPUizing some ethically sourced motion pictures, I RTFW, graphed, and slapped on environment variables and flags like Lego bricks. I got the Intel VAAPI thingamabob to jaunt by (and found that it butterized my mpv videos)

$ pacman -S blahblahblahblahblahtfm
$ mpv --show-profile=fast
Profile fast: 
 scale=bilinear
 dscale=bilinear
 dither=no
 correct-downscaling=no
 linear-downscaling=no
 sigmoid-upscaling=no
 hdr-compute-peak=no
 allow-delayed-peak-detect=yes
$ mpv --hwdec=auto --profile=fast graphwar-god-4KEDIT.mp4
# fucking silk

But there was no pleasure without pain: Mr. Maxwell F. N. 940MX (the N stands for Nvidia) played hooky. So I employed the longest envvars ever

$ NVD_LOG=1 VDPAU_TRACE=2 VDPAU_NVIDIA_DEBUG=3 NVD_BACKEND=direct NVD_GPU=nvidia LIBVA_DRIVER_NAME=nvidia VDPAU_DRIVER=nvidia prime-run vdpauinfo
GPU at BusId 0x1 doesn't have a supported video decoder
Error creating VDPAU device: 1
# stfu

to try translating Nvidia VDPAU to VAAPI -- of course, here I realized I rtfmed backwards and should've tried to use just VDPAU instead. So I did.

Juice was still not acquired.

Finally, after a voracious DuckDuckGoing (quacking?), I was then blessed with the freeing knowledge that even though post-Kepler is supposed to support H264, Nvidia is full of lies...

 ______
< fudj >
 ------
          \   ‘^----^‘
           \ (◕(‘人‘)◕)
              (  8    )        ô
              (    8  )_______( )
              ( 8      8        )
              (_________________)
                ||          ||
               (||         (||

and then right before posting this, gut feeling: I can't read.

$ lspci | grep -i nvidia
... NVIDIA Corporation GM108M [GeForce 940MX] (rev a2)
# ArchWiki says that GM108 isn't supported.
# Facepalm

SO. What was your last RTFM adventure?

60
submitted 5 months ago* (last edited 5 months ago) by fool@programming.dev to c/linux@lemmy.ml
 

I have a little helper command in ~/.zshrc called stfu.

stfu() {
    if [ -z "$1" ]; then
        echo "Usage: stfu <program> [arguments...]"
        return 1
    fi

    nohup "$@" &>/dev/null &
    disown
}
complete -W "$(ls /usr/bin)" stfu

stfu will run some other command but also detach it from the terminal and make any output shut up. I use it for things such as starting a browser from the terminal without worrying about CTRL+Z, bg, and disown.

$ stfu firefox -safe-mode
# Will not output stuff to the terminal, and
# I can close the terminal too.

Here’s my issue:

On the second argument and above, when I hit tab, how do I let autocomplete suggest me the arguments and command line switches for the command I’m passing in?

e.g. stfu ls -<tab> should show me whatever ls’s completion function is, rather than listing every /usr/bin command again.

# Intended completion
$ stfu cat -<TAB>
-e                      -- equivalent to -vE                                                                                                                                                     
--help                  -- display help and exit                                                                                                                                                 
--number            -n  -- number all output lines                                                                                                                                               
--number-nonblank   -b  -- number nonempty output lines, overrides -n                                                                                                                            
--show-all          -A  -- equivalent to -vET                                                                                                                                                    
--show-ends         -E  -- display $ at end of each line                                                                                                                                         
--show-nonprinting  -v  -- use ^ and M- notation, except for LFD and TAB                                                                                                                         
--show-tabs         -T  -- display TAB characters as ^I                                                                                                                                          
--squeeze-blank     -s  -- suppress repeated empty output lines                                                                                                                                  
-t                      -- equivalent to -vT                                                                                                                                                     
-u                      -- ignored  

# Actual completion
$ stfu cat <tab>
...a list of all /usr/bin commands
$ stfu cat -<tab>
...nothing, since no /usr/bin commands start with -

(repost, prev was removed)

EDIT: Solved.

I needed to set the curcontext to the second word. Below is my (iffily annotated) zsh implementation, enjoy >:)

stfu() {
  if [ -z "$1" ]; then
    echo "Usage: stfu <program> [arguments...]"
    return 1
  fi

  nohup "$@" &>/dev/null &
  disown
}
#complete -W "$(ls /usr/bin)" stfu
_stfu() {
  # Curcontext looks like this:
  #   $ stfu <tab>
  #   :complete:stfu:
  local curcontext="$curcontext" 
  #typeset -A opt_args # idk what this does, i removed it

  _arguments \
    '1: :_command_names -e' \
    '*::args:->args'

  case $state in
    args)
      # idk where CURRENT came from
      if (( CURRENT > 1 )); then
        # $words is magic that splits up the "words" in a shell command.
        #   1. stfu
        #   2. yourSubCommand
        #   3. argument 1 to that subcommand
        local cmd=${words[2]}
        # We update the autocompletion curcontext to
        # pay attention to your subcommand instead
        curcontext="$cmd"

        # Call completion function
        _normal
      fi
      ;;
  esac
}
compdef _stfu stfu

Deduced via docs (look for The Dispatcher), this dude's docs, stackoverflow and overreliance on ChatGPT.

EDIT: Best solution (Andy)

stfu() {
  if [ -z "$1" ]; then
    echo "Usage: stfu <program> [arguments...]"
    return 1
  fi

  nohup "$@" &>/dev/null &
  disown
}
_stfu () {
  # shift autocomplete to right
  shift words
  (( CURRENT-=1 ))
  _normal
}
compdef _stfu stfu
view more: next ›