[-] harsh3466@lemmy.ml 4 points 4 days ago

Good to know!

23
submitted 2 weeks ago* (last edited 2 weeks ago) by harsh3466@lemmy.ml to c/linux@lemmy.ml

EDIT 2: After learning that aliases aren't really suited for regex, and trying the script, I thought maybe reloading the .bashrc file wasn't enough to refresh the aliases, so I closed my terminal and after reopening the terminal and trying the script again it works just fine.

Okay, I've tried searching for help on this and I can't find anything, and I'm banging my head on my desk trying to figure out how to get this to work.

I routinely have to capitalize the first letter in a series of files that are passed to me. So I'll get:

file01
file02

And so on. I use perl rename (I'm using Fedora) with the following command and regex, and from within the directory it works as expected:

prename 's/(^[a-z]?)/\U$1/' *

I do this a lot. At least once a day, which calls for an alias or script.

I tried adding it as an alias to my .bash_aliases like so:

alias cap="prename 's/(^[a-z]?)/\U$1/' *"

And when I do, instead of capitalizing the first letter of the filenames it removes them. Searching got me nothing, in part because I probably am not asking the right question.

So then thought I'd write a dead simple bash script named cap (after removing the alias and reloading .bashrc)

#! /bin/bash

prename 's/(^[a-z]?)/\U$1/' *

And when I use cap in the directory, the script also cuts off the first letter instead of capitalizing it.

I suspect it's the $1 variable in the regex that's causing the problem, but I can't figure out how to address it so it works correctly in the alias or the script.

EDIT: I just tried some more searching and found that regex won't work in aliases, so it explains that, but I still can't figure out how to get it to work in the script.

90

Hello! I’m looking for book recommendations for learning programming fundamentals.

To be clear, I’m not necessarily looking for a book on learning language(s), but rather, programming, theory I guess you might call it?

For example, I’ve been playing around a lot in my terminal writing bash scripts, and I just implemented my first function. Another example, I know the phrase “Object Oriented programming”, but have no idea what it means.

I learn well by doing, and I’ve learned a lot just writing scripts and reading about bash scripting, but I also realize there’s a lot about programming at a higher level that I know nothing about.

[-] harsh3466@lemmy.ml 171 points 2 months ago

Capitalism.

Healthcare and insurance are for profit industries and the corporations running the healthcare and insurance business don’t give a fuck about the health of the patients. They want all the monies and want to move patients through as quickly and cheaply as possible to maximize their profits.

[-] harsh3466@lemmy.ml 65 points 2 months ago

It’s due to a cryptographic library implementation in a controller used in the yubikey. It’s a third party controller, and this isn’t exclusive to yubikeys either, a shitload of other stuff uses the same controller and is likely vulnerable to the same attack.

Also, the attack requires around $10k worth of equipment and physical access to the yubikey, so while a valid attack vector, it’s also not something to get into a panic about.

[-] harsh3466@lemmy.ml 162 points 3 months ago

Translation:

“Fuck you for not replacing your perfectly fine and still working 10 year old machine and making our line go up more. We’re gonna do our best to brick it because we want all of your money.”

Fuck capitalism. I will (and have been) doing my absolute to avoid buying any kind of physical device that requires an app to function

115
submitted 3 months ago* (last edited 3 months ago) by harsh3466@lemmy.ml to c/linux@lemmy.ml

Am I crazy in thinking that the shop I was in that has CentOS 3 running their self checkouts should have a more up to date and currently supported OS? These are brand new self checkouts (the shop has had them for about a year now, but you get my point.)

It’s a genuine question. Am I wrong in thinking that using this OS on a self checkout is a terrible idea? (FWIW this shop is an international retailer)

I have no stake in the shop or anything. I just happened to be there when they had to reboot a self checkout and I noticed the OS version as I was going by.

9
submitted 4 months ago by harsh3466@lemmy.ml to c/linux@lemmy.ml

First, before this rather large infodump, I want to thank anyone that takes the time to read through this to offer any information or advice on trying to resolve this issue.

Here’s the issue I’ve been struggling with.

I keep getting this error on my server:

INFO: task txg_sync:1615 blocked for more than 241 seconds.
Tainted: P           O      5.15.0-112-generic #122-Ubuntu

Background:

I’ve got a homeserver running Ubuntu server 22.04 (no DE) with an Intel Core i7-6700K CPU @ 4.00GHz, 32GB RAM, and two ZFS pools. The OS is installed on its own 128GB SSD, and the two ZFS pools consist of a 128GB SSD in its own pool for the server’s cache, and a 4x8TB HDD RAIDZ1 pool that is my main data/server storage (much more detailed system info below).

I have a bunch of services running in Docker containers, and overall everything is great, except for when that error rears up.

The error seems random, but occurs most reliably, but not consistently, when I’m trying to write larger media files to the RAIDZ1 pool. I am aware that this an IOPS issue, but so far I have not been able to diagnose it.

Back in February, I was carrying some boxes down to the basement where the server rack is, and I accidentally kicked a stool into the server which knocked the shit out of it (it’s a tower pc that I built back in 2016 or 2017 and repurposed in 2020ish to server use). When I turned on the monitor it was in total panic mode. The screen was gibberish colors and flickering madness.

I had to force shutdown with the power button. I waited a good couple of minutes, and on reboot, everything seemed fine. Until I noticed the new txg_sync error a week or so later when I went down to add some media to the server.

After a lot of searching and reading that didn’t turn up pertinent info, I ran across a comment that said this error is almost always hardware related. Like a loose connection or a failing disk or something. With me having knocked the shit out of the server, I realized I should have opened the case up and checked it all out. I shut it down, opened it up, and found a loose connector on the motherboard. I reseated it, checked everything else (though not thoroughly enough, which we’ll get to), and rebooted hoping I had found the problem.

It seemed fine for a bit, but no luck. The error returned.

More searching with no luck, and then about a month ago, a friend he suggested I check all the SATA connectors by disconnecting each one and reconnecting to insure a good, solid connection. I had previously checked if they were seated when I opened the case, but didn’t disconnect and reconnect. While doing this, I found a SATA cable with a busted clip and thought again I had found the problem. I replaced the cable, and went about a week before the error resurfaced.

It continues to occur, as I mentioned inconsistently. Most reliably, but not always, when writing data to the RAIDZ1 pool.

I have run a thorough memtest, and there were no errors or issue with the RAM, and as far as I can tell, there are no errors/failures with the HDDs.

Below is a lot of system info, and an example of what I find in dmesg for the error.

System Info

OS & Kernel

Ubuntu 22.04.4 LTS
Linux [redacted user] 5.15.0-113-generic #123-Ubuntu SMP Mon Jun 10 08:16:17 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux

CPU

Architecture:           x86_64
  CPU op-mode(s):       32-bit, 64-bit
  Address sizes:        39 bits physical, 48 bits virtual
  Byte Order:           Little Endian
CPU(s):                 8
  On-line CPU(s) list:  0-7
Vendor ID:              GenuineIntel
  Model name:           Intel(R) Core(TM) i7-6700K CPU @ 4.00GHz
    CPU family:         6
    Model:              94
    Thread(s) per core: 2
    Core(s) per socket: 4
    Socket(s):          1
    Stepping:           3
    CPU max MHz:        4200.0000
    CPU min MHz:        800.0000
    BogoMIPS:           7999.96
    Flags:              fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dno wprefetch cpuid_fault invpcid_single pti ssbd ibrs ibpb stibp fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx rdseed adx smap clflushopt intel_pt xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp md_clear flush_l1d arch_capabilities
Caches (sum of all):    
  L1d: 128 KiB (4 instances)
  L1i: 128 KiB (4 instances)
  L2:  1 MiB (4 instances)
  L3:  8 MiB (1 instance)
NUMA:                   
  NUMA node(s):      1
  NUMA node0 CPU(s): 0-7
Vulnerabilities:        
  Gather data sampling: Vulnerable: No microcode
  Itlb multihit:        KVM: Mitigation: VMX unsupported
  L1tf:                 Mitigation; PTE Inversion
  Mds:                  Mitigation; Clear CPU buffers; SMT vulnerable
  Meltdown:             Mitigation; PTI
  Mmio stale data:      Mitigation; Clear CPU buffers; SMT vulnerable
  Retbleed:             Mitigation; IBRS
  Spec rstack overflow: Not affected
  Spec store bypass:    Mitigation; Speculative Store Bypass disabled via prctl and seccomp
  Spectre v1:           Mitigation; usercopy/swapgs barriers and __user pointer sanitization
  Spectre v2:           Mitigation; IBRS; IBPB conditional; STIBP conditional; RSB filling; PBRSB-eIBRS Not
                         affected; BHI Not affected
  Srbds:                Mitigation; Microcode
  Tsx async abort:      Mitigation; TSX disabled

RAM

Memory Device
        Array Handle: 0x004A
        Error Information Handle: Not Provided
        Total Width: 64 bits
        Data Width: 64 bits
        Size: 8 GB
        Form Factor: DIMM
        Set: None
        Locator: DIMM_A2
        Bank Locator: BANK 1
        Type: DDR4
        Type Detail: Synchronous
        Speed: 2133 MT/s
        Manufacturer: Corsair
        Serial Number: 00000000
        Asset Tag: 9876543210
        Part Number: CMK16GX4M2A2400C16  
        Rank: 2
        Configured Memory Speed: 2133 MT/s
        Minimum Voltage: Unknown
        Maximum Voltage: Unknown
        Configured Voltage: 1.2 V
Handle 0x004D, DMI type 17, 40 bytes
Memory Device
        Array Handle: 0x004A
        Error Information Handle: Not Provided
        Total Width: 64 bits
        Data Width: 64 bits
        Size: 8 GB
        Form Factor: DIMM
        Set: None
        Locator: DIMM_B1
        Bank Locator: BANK 2
        Type: DDR4
        Type Detail: Synchronous
        Speed: 2133 MT/s
        Manufacturer: Corsair
        Serial Number: 00000000
        Asset Tag: 9876543210
        Part Number: CMK16GX4M2A2400C16  
        Rank: 1
        Configured Memory Speed: 2133 MT/s
        Minimum Voltage: Unknown
        Maximum Voltage: Unknown
        Configured Voltage: 1.2 V
Handle 0x004E, DMI type 17, 40 bytes
Memory Device
        Array Handle: 0x004A
        Error Information Handle: Not Provided
        Total Width: 64 bits
        Data Width: 64 bits
        Size: 8 GB
        Form Factor: DIMM
        Set: None
        Locator: DIMM_B2
        Bank Locator: BANK 3
        Type: DDR4
        Type Detail: Synchronous
        Speed: 2133 MT/s
        Manufacturer: Corsair
        Serial Number: 00000000
        Asset

Disks

NAME                      MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
loop0                       7:0    0  63.9M  1 loop /snap/core20/2264
loop1                       7:1    0  63.9M  1 loop /snap/core20/2318
loop2                       7:2    0    87M  1 loop /snap/lxd/27948
loop3                       7:3    0    87M  1 loop /snap/lxd/28373
loop4                       7:4    0  38.7M  1 loop /snap/snapd/21465
loop5                       7:5    0  38.8M  1 loop /snap/snapd/21759
sda                         8:0    0 223.6G  0 disk 
├─sda1                      8:1    0     1M  0 part 
├─sda2                      8:2    0     2G  0 part /boot
└─sda3                      8:3    0 221.6G  0 part 
  └─ubuntu--vg-ubuntu--lv 253:0    0   100G  0 lvm  /
sdb                         8:16   0 223.6G  0 disk 
├─sdb1                      8:17   0 223.6G  0 part 
└─sdb9                      8:25   0     8M  0 part 
sdc                         8:32   0   7.3T  0 disk 
├─sdc1                      8:33   0   7.3T  0 part 
└─sdc9                      8:41   0     8M  0 part 
sdd                         8:48   0   7.3T  0 disk 
├─sdd1                      8:49   0   7.3T  0 part 
└─sdd9                      8:57   0     8M  0 part 
sde                         8:64   0   7.3T  0 disk 
├─sde1                      8:65   0   7.3T  0 part 
└─sde9                      8:73   0     8M  0 part 
sdf                         8:80   0   7.3T  0 disk 
├─sdf1                      8:81   0   7.3T  0 part 
└─sdf9                      8:89   0     8M  0 part 

ZFS

version
zfs-2.1.5-1ubuntu6~22.04.4
zfs-kmod-2.1.5-1ubuntu6~22.04.3
list
NAME        SIZE  ALLOC   FREE  CKPOINT  EXPANDSZ   FRAG    CAP  DEDUP    HEALTH  ALTROOT
srvrcache   222G  13.8G   208G        -         -    17%     6%  1.00x    ONLINE  -
srvrpool   29.1T  17.5T  11.6T        -         -     1%    60%  1.00x    ONLINE  -
status
pool: srvrcache
 state: ONLINE
status: Some supported and requested features are not enabled on the pool.
        The pool can still be used, but some features are unavailable.
action: Enable all features using 'zpool upgrade'. Once this is done,
        the pool may no longer be accessible by software that does not support
       the features. See zpool-features(7) for details.
  scan: scrub repaired 0B in 00:00:35 with 0 errors on Sun Jun  9 00:24:36 2024
config:

        NAME        STATE     READ WRITE CKSUM
        srvrcache   ONLINE       0     0     0
          sdb       ONLINE       0     0     0

errors: No known data errors

 pool: srvrpool
 state: ONLINE
status: Some supported and requested features are not enabled on the pool.
        The pool can still be used, but some features are unavailable.
action: Enable all features using 'zpool upgrade'. Once this is done,
        the pool may no longer be accessible by software that does not support
        the features. See zpool-features(7) for details.
  scan: scrub repaired 0B in 11:41:27 with 0 errors on Sun Jun  9 12:05:31 2024
config:

        NAME        STATE     READ WRITE CKSUM
        srvrpool    ONLINE       0     0     0
          raidz1-0  ONLINE       0     0     0
            sdd     ONLINE       0     0     0
            sde     ONLINE       0     0     0
            sdf     ONLINE       0     0     0
            sdc     ONLINE       0     0     0

errors: No known data errors
iostat
capacity     operations     bandwidth 
pool        alloc   free   read  write   read  write
----------  -----  -----  -----  -----  -----  -----
srvrcache   13.8G   208G      0     22  48.0K   291K
  sdb       13.8G   208G      0     22  48.0K   291K
----------  -----  -----  -----  -----  -----  -----
srvrpool    17.5T  11.6T     33     59  2.14M  1.03M
  raidz1-0  17.5T  11.6T     33     59  2.14M  1.03M
    sdd         -      -      8     15   554K   275K
    sde         -      -      7     13   536K   252K
    sdf         -      -      8     15   562K   275K
    sdc         -      -      8     14   539K   252K
----------  -----  -----  -----  -----  -----  -----

PCI

00:00.0 Host bridge: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Host Bridge/DRAM Registers (rev 07)
00:01.0 PCI bridge: Intel Corporation 6th-10th Gen Core Processor PCIe Controller (x16) (rev 07)
00:02.0 VGA compatible controller: Intel Corporation HD Graphics 530 (rev 06)
00:14.0 USB controller: Intel Corporation 100 Series/C230 Series Chipset Family USB 3.0 xHCI Controller (rev 31)
00:16.0 Communication controller: Intel Corporation 100 Series/C230 Series Chipset Family MEI Controller #1 (rev 31)
00:17.0 SATA controller: Intel Corporation Q170/Q150/B150/H170/H110/Z170/CM236 Chipset SATA Controller [AHCI Mode] (rev 31)
00:1b.0 PCI bridge: Intel Corporation 100 Series/C230 Series Chipset Family PCI Express Root Port #17 (rev f1)
00:1c.0 PCI bridge: Intel Corporation 100 Series/C230 Series Chipset Family PCI Express Root Port #1 (rev f1)
00:1d.0 PCI bridge: Intel Corporation 100 Series/C230 Series Chipset Family PCI Express Root Port #9 (rev f1)
00:1f.0 ISA bridge: Intel Corporation Z170 Chipset LPC/eSPI Controller (rev 31)
00:1f.2 Memory controller: Intel Corporation 100 Series/C230 Series Chipset Family Power Management Controller (rev 31)
00:1f.3 Audio device: Intel Corporation 100 Series/C230 Series Chipset Family HD Audio Controller (rev 31)
00:1f.4 SMBus: Intel Corporation 100 Series/C230 Series Chipset Family SMBus (rev 31)
00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (2) I219-V (rev 31)
01:00.0 VGA compatible controller: NVIDIA Corporation GP106 [GeForce GTX 1060 3GB] (rev a1)
01:00.1 Audio device: NVIDIA Corporation GP106 High Definition Audio Controller (rev a1)
03:00.0 USB controller: ASMedia Technology Inc. ASM1142 USB 3.1 Host Controller

dmesg

[321540.060243] INFO: task txg_sync:1615 blocked for more than 120 seconds.
[321540.060330]       Tainted: P           O      5.15.0-112-generic #122-Ubuntu
[321540.060408] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[321540.060495] task:txg_sync        state:D stack:    0 pid: 1615 ppid:     2 flags:0x00004000
[321540.060498] Call Trace:
[321540.060500]  <TASK>
[321540.060502]  __schedule+0x24e/0x590
[321540.060509]  schedule+0x69/0x110
[321540.060512]  schedule_timeout+0x87/0x140
[321540.060515]  ? zio_issue_async+0x12/0x20 [zfs]
[321540.060653]  ? __bpf_trace_tick_stop+0x20/0x20
[321540.060657]  io_schedule_timeout+0x51/0x80
[321540.060661]  __cv_timedwait_common+0x12c/0x170 [spl]
[321540.060669]  ? wait_woken+0x70/0x70
[321540.060672]  __cv_timedwait_io+0x19/0x20 [spl]
[321540.060679]  zio_wait+0x116/0x220 [zfs]
[321540.060799]  dsl_pool_sync+0xb6/0x400 [zfs]
[321540.060890]  ? __mod_timer+0x214/0x400
[321540.060894]  spa_sync_iterate_to_convergence+0xe0/0x1f0 [zfs]
[321540.060997]  spa_sync+0x2dc/0x5b0 [zfs]
[321540.061098]  txg_sync_thread+0x266/0x2f0 [zfs]
[321540.061206]  ? txg_dispatch_callbacks+0x100/0x100 [zfs]
[321540.061314]  thread_generic_wrapper+0x61/0x80 [spl]
[321540.061324]  ? __thread_exit+0x20/0x20 [spl]
[321540.061332]  kthread+0x127/0x150
[321540.061336]  ? set_kthread_struct+0x50/0x50
[321540.061339]  ret_from_fork+0x1f/0x30
[321540.061344]  </TASK>

Thank you again to anyone who takes the time to offer any info or advice on resolving this.

[-] harsh3466@lemmy.ml 68 points 5 months ago

For me, it was A Quiet Place. I found it incredibly dumb and impossible to believe that nobody on the whole of the planet ever considered that these aliens with ultra incredible hearing weren't somehow vulnerable to noise? Just dumb as fuck, especially when you consider that sonic weapons already exist and are used, and sound is routinely used in torture/incarceration scenarios.

[-] harsh3466@lemmy.ml 61 points 6 months ago

Watching sports/sports fandom. I just dont give a fuck about sportsball in any way shape or form.

140
submitted 6 months ago by harsh3466@lemmy.ml to c/linux@lemmy.ml

Most of the switching posts are from frustrated windows users making the jump. I’m already a Linux user on my server (Ubuntu for now, going Debian at some point) and a 2014 iMac for tinkering/testing (KDE Neon), and a couple of raspberry pis (raspberry pi os headless) but our main household computer is an M1 Mac mini that my wife and I both use.

Lately I’ve been super frustrated with macOS.

  • First, macOS just refuses to mount my USB 3 drives. I have a 1T seagate ssd and a 3T WD hdd (both exFat) and it just flat out refuses to see them. The same drives are visible and mount just fine on my server and the KDE iMac. On macOS, they’re invisible. They don’t auto mount, and they don’t show up in disk utility (gui or shell), which is really fucking annoying when I’m trying to move large files between machines
  • I use Cryptomator to encrypt data on macOS, and because of their whole walled garden shtick and how they continue to lock out system extensions, macfuse routinely breaks, rendering it impossible to access my data on macOS. Again, on the KDE iMac, everything just works as it should. On the Mac It’ll throw me the enable the extension warning, so I enable it. Then it tells me I have to re-boot to actually use the extension. I reboot, and it throws the enable extension warning again. Fucking infuriating.

I hadn’t already pulled the trigger on Asahi because my wife uses the m1 more than I do, and I didn’t want to break anything she does. However today was the last straw as a task that should have taken me maybe 15 minutes took two hours of fighting with macOS. After talking with her she gave me the go ahead to install Asahi. It helps that she does most everything in the browser and that the install is a dual boot setup with macOS still available.

I used to love macOS. It felt so intuitive and while it was never flawless, it mostly just got the fuck out of my way so I could do the things I wanted and needed to do. I still love a lot about Apple hardware, but fuck that shit os. I’m happy to be running Linux on all of the computers in the house.

Now I just have to learn the Fedora differences, having used Debian derivatives up until this point.

171
submitted 6 months ago* (last edited 6 months ago) by harsh3466@lemmy.ml to c/foodporn@lemmy.world

Made delicious Moroccan spiced lamb tacos in fresh naan with:

  • onions pickled in apple cider vinegar, white vinegar, lemon juice and a touch of honey
  • thinly sliced cabbage
  • fresh made tzatziki (made this morning so the flavors could marinate)
  • tomatoes roasted with garlic, onion, salt, pepper, and oregano

UPDATE: Recipes and instructions!

These are not all original recipes, but most of them are modified, so I've included the recipes as I made them, but also links to the original recipe source.

Bread

Naan (source) (Naan can be made ahead. I made mine fresh before prepping the meat)

Ingredients:

  • 1 teaspoon sugar
  • 1/2 cup warm water
  • 1/4 oz. active dry yeast (2 1/4 teaspoons)
  • 2 1/4 cups all-purpose flour
  • 1/2 cup plain yogurt (I use whole milk greek)
  • 1/2 teaspoon salt
  • 1 Tablespoon garlic powder (approximate. I didn't measure, just dumped some in)
  • 1 Tablespoon onion powder (approximate. I didn't measure, just dumped some in)
  • 1 Tablespoon chili powder (approximate. I didn't measure, just dumped some in)
  • 1 -3 tablespoons extra virgin olive oil
  • butter for the skillet
  • salt for cooking the naan

Instructions:

  • Heat the water to around 105-110F (approx 40-43C)
  • Add the yeast and sugar to the water and whisk until blended. Let sit for appox 10 minutes to bloom the yeast. It should be foamy
  • Put the flour on a large countertop/work surface and add the spices. Mix together with your hands, and when well mixed, make a well in the middle of the flour mixture.
  • Add the yogurt, yeast mixture, and 1 Tablespoon olive oil to the well
  • Knead the mixture together. If the mixture feels a little dry, add more olive oil as needed, a little at a time until it doesn't feel dry.
  • Knead the dough for 10-15 minutes until it is smooth and shiny
  • Add a Tablespoon of olive oil to a large bowl and coat the sides and bottom of the bowl with the oil
  • Place the dough in the bowl and cover with a damp towel.
  • Place the bowl in a warm spot to rise for a minimum of one hour until doubled in size (I like to let mine rise for 2+ hours)
  • Once risen, turn the dough out onto a cutting board and divide into 8 equal pieces
  • Lightly flour your workspace and your rolling pin
  • Pre heat your skillet and add a teaspoon of butter. (I use a cast iron but any larger skillet will do, I also cook the naan as I'm rolling out the other pieces. If this is too much, roll out all the dough first, and then cook it)
  • Roll out the pieces of dough into around an 8in/20cm diameter. It will be irregularly shaped, which is fine. Flip and turn the dough frequently as you roll it out and dust with additional flour as needed to keep it from sticking to the rolling pin or your work surface
  • When cooking, lightly salt the first side of the dough and place it in the pan, and then sprinkle salt on the other side.
  • Cook for 2-3 minutes per side. The dough should bubble up nicely and brown nicely as it cooks.
  • Stack on a plate for serving.

Garnishes

Note: Highly recommended to make these ahead to allow the flavors to meld. I made all the garnishes in the morning

Pickled Onions (This is part of the Moroccan Spiced Lamb recipe below but I went rogue with this one)

Ingredients:

  • 1/2 red onion thinly sliced
  • 1-2 T white vinegar
  • 1-2 T apple cider vinegar
  • juice of one lemon
  • a touch of honey

Instructions:

  • Mix everything together in a bowl. If making day of, cover and let sit at room temp to marinate. If making day(s) ahead, cover and refrigerate until needed.

Tzatziki Sauce (source)

Ingredients:

  • 1 English cucumber
  • Salt
  • 5 to 10 garlic cloves minced
  • 1 tsp white vinegar
  • 1 tbsp Extra Virgin Olive Oil
  • 2 cups plain Greek yogurt
  • 1/2 - 1 cup dill (my wife LOVES dill, so adjust this to taste. We don't measure, she just adds handfuls of dill)
  • Fresh cracked black pepper to taste

Instructions:

  • In a large enough bowl for all the ingredients, add the vinegar, olive oil and garlic and whisk together
  • Grate the cucumbers on a box grater or with your food processor
  • Using a cheese cloth, in batches, squeeze the water out of the cucumber. There will be a lot of water. They don't need to be perfectly dry, but squeeze out a bunch of the water. Put the squeezed cucumber in the bowl
  • Add the yogurt, dill, and salt to taste (I add around 1 T salt, but I like salt), and mix everything together with a spatula. Cover and refrigerate to allows the flavors to marinate

Roasted Tomatoes (this is an original recipe)

Note: We put them on the tacos cold/room temp

Ingredients:

  • Tomatoes of choice (we sometimes use grape tomatoes, roma, whatever tomatoes we happen to have)
  • Extra virgin olive oil
  • Salt
  • Pepper
  • Dried Parsley
  • Onion powder
  • Garlic powder

Instructions:

Note: None of this is measured, so add everything to taste. If you need a starting point, if using 1 pint grape tomatoes, use approximately 1t garlic powder, 4T parsley, and 1T of the rest, and 1T olive oil to coat. Adjust as necessary depending on the volume of tomatoes you are roasting.

  • Pre heat oven to 400F/205C
  • Line a baking sheet with parchment paper
  • Cut up tomatoes. If using grape or similar, cut in half. If using roma or larger, slice around .25in/2.5cm thick
  • Place tomatoes in large bowl/tupperware that has a lid
  • Drizzle with olive oil for coating.
  • Add in all spices
  • Cover bowl and toss to thoroughly coat tomatoes with oil and spices
  • Spread tomatoes out on baking sheet, use more baking sheets as needed so that the tomatoes aren't layered on top of each other
  • Cook for approximately 50 minutes, but keep an eye on them so they don't burn. I like my tomatoes with some caramelization, so I tend to like to go an hour or longer depending on the tomatoes. (but I'm always watching them so they don't burn)

Sliced Cabbage

Ingredients:

  • small head of cabbage

Instructions:

  • thinly slice

Meat

Moroccan Spiced Lamb (source)

Ingredients:

  • 1 lb ground lamb
  • 1 tsp. sea salt
  • ½ tsp. garlic powder
  • ½ tsp. ground cumin
  • ¼ tsp. ground ginger
  • ¼ tsp. ground cinnamon
  • freshly cracked pepper
  • 1/2 jalapeno pepper de seeded

Instructions:

  • Char the jalapeno over an open flame (I do it over a gas burner). Once it reaches your desired level of char, dice finely and set aside in a small bowl
  • Add the spices to the bowl with the jalapeno
  • Brown the lamb in a skillet
  • Once browned, remove from heat and remove some of the grease (I sop it up with paper towels) so that it's not swimming in the fat
  • Return to heat on low and add the spice and jalapeno mixture to the meat and mix well. Turn off heat and set aside.

Assemble

Instructions:

  • Spread some tzatziki on the naan
  • Add the lamb
  • Add the onions
  • Add the cabbage
  • Top with tomatoes
  • Enjoy!
74
Chicken Gyros (ps.wbcld.com)
submitted 6 months ago* (last edited 6 months ago) by harsh3466@lemmy.ml to c/foodporn@lemmy.world

Made chicken gyros today, made the chicken, tzatziki sauce, and the pita bread. It all tasted fantastic.

[-] harsh3466@lemmy.ml 120 points 6 months ago

If you’re just doing a vanilla Linux install, ext4 is the way to go.

[-] harsh3466@lemmy.ml 123 points 7 months ago

Privacy. That’s iPhone.

Unless the government says otherwise. Because really we don’t give a fuck about you or your privacy.

[-] harsh3466@lemmy.ml 70 points 7 months ago

My immediate reaction was the same. I don’t trust the NSA at all, but I’m certainly not going to trust anything this site says when it’s shilling the article as an NFT.

[-] harsh3466@lemmy.ml 79 points 7 months ago

If only. It’d be a real April fool’s if Canonical announced they were abandoning snap and throwing their supory behind flatpak.

252
submitted 8 months ago by harsh3466@lemmy.ml to c/cat@lemmy.world
269
submitted 8 months ago by harsh3466@lemmy.ml to c/cat@lemmy.world
[-] harsh3466@lemmy.ml 95 points 8 months ago

I’m familiar with a multibillion dollar international corporation that uses an excel spreadsheet to communicate between divisions.

Not email or slack or teams or the telephone. An excel spreadsheet.

The left column is where one division enters a message, and the right column is where the other division responds. For a new message, you start a new row. The file lives on a network drive.

187
submitted 8 months ago by harsh3466@lemmy.ml to c/foodporn@lemmy.world
84
submitted 9 months ago by harsh3466@lemmy.ml to c/foodporn@lemmy.world

Made pineapple coconut curry over roasted cauliflower and a fresh batch of naan. Delicious.

45
submitted 9 months ago by harsh3466@lemmy.ml to c/linux@lemmy.ml

Not as much time to tinker this week, but I still had some fun and learned some things!

How to run a memory test using memtest86+

My error message is back, which means my nuke and pave approach didn’t solve the problem. So, yay to having a record of the error message?

Here’s the error:

echo 0 > / proc/sys/kernel/hung_task_timeout_secs" disables this message.
INFO: task txg_sync: 3557 blocked for more than 241 seconds.
Tainted: P 0 5.15.0-94-generic #104-Ubuntu

I decided to do a little more searching and found that the txg_sync is a zfs task. I know zfs uses a lot of RAM as part of it’s processing. As a result/starting point, I decided to do a memory test to see if I messed up any of my RAM modules when I knocked the shit out of my server.

Running a memory test was really easy. I downloaded the latest memtest86+ ISO, used balena etcher to flash it to a usb stick, booted from that stick, and let the test run.

I let it run for two full passes and got no errors.

So as of right now I know that the error is being caused by zfs writes/activity, but I don’t know why the error is happening, other than that I fucked something up when I knocked the shit out of my server.

How to set up a wireguard tunnel

This also has been on my list of things to figure out for quite awhile, and, turns out, with the wg-easy project, it is exactly as easy as the name implies. I found out about wg-easy through the Awesome Open Source YouTube channel. I’ve learned a lot from the guy that runs that channel, so I always check there when I want to learn more about something. Timing was fortuitous, since he had just dropped his video on wg-easy.

I’ve got wg-easy running on my vps, and I’m planning to connect my playground server to it so I can ssh in and play around during my breaks at work.

Grav CMS is pretty nice

I’ve kind of idly been looking for an alternative to Wordpress. I found out about Grav while bouncing around Linux YouTube looking for things to learn about/try. I’ve already tried 11ty and Hugo ssgs and neither worked for me.

Grav on the other hand was easy to get up and running, is easy to theme, (Theming was the problem I kept running into for both 11ty and Hugo), can be managed through cli or webui, and can have content added through the webui, or, more importantly for me, from markdown files on the server.

Whether or not I’ll actually use it to deploy a site remains to be seen. I’ll continue to tinker with it while I decide if I want to migrate my wordpress site over to it.

[-] harsh3466@lemmy.ml 66 points 9 months ago* (last edited 9 months ago)

Based on how the article is written, it sounds like no one would have noticed if his (now ex) wife hadn’t ratted him out to her bosses.

view more: next ›

harsh3466

joined 9 months ago