dan

joined 2 years ago
[–] dan@upvote.au 6 points 1 day ago* (last edited 9 hours ago) (2 children)

It caters more for a linear workflow, though. So modern large teams won't find joy with SVN

For what it's worth, I work at a FAANG company and we don't use branches at all. Instead, we use feature flags. Source control history is linear with no merges.

All code changes have to go though code review before they can be committed to the main repo. Pull requests are usually not too large (we aim for ~300 lines max), contain a single commit, aren't long-lived (often merged the same day they're submitted unless they're very controversial), can be stacked to handle dependencies between them ("stacked diffs"), and a whole stack can be landed together. When merged, everything is committed directly to the main branch, which all developers are working off of.

I know that both Google and Meta take this approach, and probably other companies too.

[–] dan@upvote.au 11 points 1 day ago (6 children)

The bottom picture should be SVN. I miss incremental revision numbers.

[–] dan@upvote.au 10 points 2 days ago* (last edited 2 days ago) (5 children)

Are any drink manufacturers fully vertically integrated? I think most of them outsource can and bottle manufacturing, even big manufacturers like Coca-Cola. They're in the business of making drinks, not making cans and bottles (which don't have any special features compared to cans and bottles used by other companies), so it makes sense to use a vendor that has experience in that area.

[–] dan@upvote.au 2 points 6 days ago

Generally, if it's just a plain word or something you can read easily, then it's safe to keep it. If it's a jumble of seemingly random letters, it's probably a tracking code of some sort.

[–] dan@upvote.au 21 points 6 days ago* (last edited 6 days ago) (1 children)

This is kinda true but also kinda fear mongering. UTM parameters are just to track where you clicked the link from. They're usually not dynamic, and don't contain anything about you personally. The example in the screenshot utm_source=newsletter is probably added to all links in a company's newsletter email, so they can tell that people get to the page via the newsletter.

[–] dan@upvote.au 18 points 6 days ago* (last edited 6 days ago)

In addition to this, a lot of movies and TV shows are going to use the same DRM mechanisms, whereas with games it's different for every game. The developers (both of the DRM systems and of the game) learn what works and what doesn't work and adjust the system for their next game.

Edit: Also, games often have anti-piracy measures hidden throughout the game, so whoever is cracking the game likely has to play the game quite a bit to ensure they've caught them all.

[–] dan@upvote.au 13 points 6 days ago

This is how I handle it for most software: Read (or at least skim) the changelogs for all minor and major versions between your current version and the latest version.

If you're using Docker, diff your current docker-compose to the latest one for the project. See if any third-party dependencies (like PostgreSQL, Redis, etc) have breaking changes.

If there's any versions with major breaking changes, upgrade to each one separately (eg. 1.0 to 2.0, then 2.0 to 3.0, etc) rather than jumping immediately to the latest one, as a lot of developers don't sufficiently test upgrading across multiple versions.

Take a snapshot before each upgrade (or if your file system doesn't support snapshots, manually take a backup before each upgrade).

...or just don't read anything, YOLO it, and restore a snapshot if that fails. A lot of software is simple enough that all you need to do is change the version number in docker-compose (if you're using Docker).

[–] dan@upvote.au 10 points 6 days ago* (last edited 6 days ago)

In addition to backups, consider using snapshots if your file system supports it (ZFS, Btrfs, or LVM).

I use ZFS and have each of my Docker volumes in a separate ZFS dataset (similar to a Btrfs subvolume). This lets me snapshot each container independently. I take a snapshot before an upgrade. If the upgrade goes badly, I can instantly revert back to the point before I performed the upgrade.

[–] dan@upvote.au 28 points 6 days ago* (last edited 6 days ago)

There's a few groups like this in Australia, unfortunately.

Australia didn't even have an R18+ rating for games until 2013 (R18+ is similar to AO or NC-17 in the USA). Before then, all games with a higher rating than MA15+ were illegal in Australia. Many games had an Australia-specific version with blood/gore reduced, some things edited out, etc. to reduce the rating. The original release of GTA4 in Australia was heavily censored.

[–] dan@upvote.au 50 points 6 days ago

The petition is directed at Visa and MasterCard. I'm not sure why the article says it's a petition directed at Steam, because it's not.

[–] dan@upvote.au 2 points 1 week ago

That's what I meant by hiring a self-employed freelancer. I don't know a lot about contracting so maybe I used the wrong phrase.

[–] dan@upvote.au 47 points 1 week ago (7 children)

There's a lot of other expenses with an employee (like payroll taxes, benefits, retirement plans, health plan if they're in the USA, etc), but you could find a self-employed freelancer for example.

Or just get an employee anyways because you'll still likely have a positive ROI. A good developer will take your abstract list of vague requirements and produce something useful and maintainable.

 

I noticed that Spectacle has an option to upload to Imgur and Nextcloud. Is there a way to allow it to upload to an SFTP server?

Ideally I'd like for it to upload the file via SFTP then put the URL on my clipboard, which is what I do with ShareX on Windows.

 

I love Sentry, but it's very heavy. It runs close to 50 Docker containers, some of which use more than 1GB RAM each. I'm running it on a VPS with 10GB RAM and it barely fits on there. They used to say 8GB RAM is required but bumped it to 16GB RAM after I started using it.

It's built for large-scale deployments and has a nice scalable enterprise-ready design using things like Apache Kafka, but I just don't need that since all I'm using it for is tracking bugs in some relatively small C# and JavaScript projects, which may amount to a few hundred events per week if that. I don't use any of the fancier features in Sentry, like the live session recording / replay or the performance analytics.

I could move it to one of my 16GB or 24GB RAM systems, but instead I'm looking to evaluate some lighter-weight systems to replace it. What I need is:

  • Support for C# and JavaScript, including mapping stack traces to original source code using debug symbols for C# and source maps for JavaScript.
    • Ideally supports React component stack traces in JS.
  • Automatically group the same bugs together, if multiple people hit the same issue
    • See how many users are affected by a bug
  • Ignore particular errors
  • Mark a bug as "fixed in next release" and reopen it if it's logged again in a new release
  • Associate bugs with GitHub issues
  • Ideally supports login via OpenID Connect

Any suggestions?

Thanks!

 

On a small form factor PC with an i5-9500, Debian 12, 6.2.16 kernel, running Proxmox, powertop shows the following idle stats:

PowerTOP 2.14     Overview   Idle stats   Frequency stats   Device stats   Tunables   WakeUp


           Pkg(HW)  |            Core(HW) |            CPU(OS) 0
                    |                     | C0 active   2.8%
                    |                     | POLL        0.0%    0.0 ms
                    |                     | C1          1.1%    0.4 ms
C2 (pc2)    7.2%    |                     |
C3 (pc3)    5.5%    | C3 (cc3)    0.0%    | C3          0.1%    0.1 ms
C6 (pc6)    1.5%    | C6 (cc6)    1.9%    | C6          2.2%    0.6 ms
C7 (pc7)   75.2%    | C7 (cc7)   92.8%    | C7s         0.0%    0.0 ms
C8 (pc8)    0.0%    |                     | C8         21.5%    2.5 ms
C9 (pc9)    0.0%    |                     | C9          0.0%    0.0 ms
C10 (pc10)  0.0%    |                     |
                    |                     | C10        72.8%   12.5 ms
                    |                     | C1E         0.4%    0.2 ms

                    |            Core(HW) |            CPU(OS) 1
                    |                     | C0 active   1.4%
                    |                     | POLL        0.0%    0.0 ms
                    |                     | C1          0.7%    0.9 ms
                    |                     |
                    | C3 (cc3)    0.1%    | C3          0.1%    0.2 ms
                    | C6 (cc6)    1.0%    | C6          1.1%    0.8 ms
                    | C7 (cc7)   96.3%    | C7s         0.0%    0.0 ms
                    |                     | C8         18.9%    2.9 ms
                    |                     | C9          0.0%    0.0 ms
                    |                     |
                    |                     | C10        78.3%   24.8 ms
                    |                     | C1E         0.0%    0.0 ms
...

On a custom-built server with an i5-13500, Asus Pro WS W680M-ACE SE motherboard, Unraid (which uses Slackware), 6.1.38 kernel, it shows the following output:

PowerTOP 2.15     Overview   Idle stats   Frequency stats   Device stats   Tunables   WakeUp


           Pkg(HW)  |            Core(HW) |            CPU(OS) 0   CPU(OS) 1
                    |                     | C0 active   5.9%        0.9%
                    |                     | POLL        0.1%    0.0 ms  0.0%    0.0 ms
                    |                     | C1_ACPI    14.2%    0.2 ms  1.0%    0.1 ms
C2 (pc2)    0.0%    |                     | C2_ACPI    39.2%    0.8 ms 27.0%    0.9 ms
C3 (pc3)    0.0%    | C3 (cc3)    0.0%    | C3_ACPI    33.6%    1.2 ms 69.7%    3.0 ms
C6 (pc6)    0.0%    | C6 (cc6)    1.1%    |
C7 (pc7)    0.0%    | C7 (cc7)    0.0%    |
C8 (pc8)    0.0%    |                     |
C9 (pc9)    0.0%    |                     |
C10 (pc10)  0.0%    |                     |

                    |            Core(HW) |            CPU(OS) 2   CPU(OS) 3
                    |                     | C0 active  10.4%        0.5%
                    |                     | POLL        0.0%    0.0 ms  0.0%    0.0 ms
                    |                     | C1_ACPI    17.4%    0.2 ms  0.4%    0.2 ms
                    |                     | C2_ACPI    14.3%    0.8 ms  4.9%    0.6 ms
                    | C3 (cc3)    0.0%    | C3_ACPI    41.8%    5.4 ms 93.5%    5.5 ms
                    | C6 (cc6)    5.9%    |
                    | C7 (cc7)   26.7%    |
                    |                     |
                    |                     |
                    |                     |

                    |            Core(HW) |            CPU(OS) 4   CPU(OS) 5
                    |                     | C0 active  11.7%        0.2%
                    |                     | POLL        0.0%    0.1 ms  0.0%    0.0 ms
                    |                     | C1_ACPI    19.0%    0.1 ms  0.0%    0.0 ms
                    |                     | C2_ACPI    11.3%    0.7 ms  0.0%    0.0 ms
                    | C3 (cc3)    0.0%    | C3_ACPI    39.6%    7.7 ms 99.6%    7.0 ms
                    | C6 (cc6)    1.3%    |
                    | C7 (cc7)   25.4%    |
...

Both systems have C-states enabled in the BIOS.

I have a few questions I'm hoping someone can help with:

  • Why does the older system show more C-states in the right-most "CPU(OS)" column?
  • What does it mean when they're suffixed with "_ACPI" like in the output from the new system?
  • How do I debug the new system not hitting any CPU package C-states?

I can't find any documentation about this, neither on the man page nor on Intel's site (the official powertop URL https://01.org/powertop doesn't go anywhere useful any more).

Thanks!

 

Google Analytics is broken on a bunch of my sites thanks to the GA4 migration. Since I have to update everything anyways, I'm looking at the possibility of replacing Google Analytics with something I self-host that's more privacy-focused.

I've tried Plausible, Umami and Swetrix (the latter of which I like the most). They're all very lightweight and most are pretty efficient due to their use of a column-oriented database (Clickhouse) for storing the analytics data - makes way more sense than a row-oriented database like MySQL for this use case.

However, these systems are all cookie-less. This is usually fine, however one of my sites is commonly used in schools on their computers. Cookieless analytics works by tracking sessions based on IP address and user-agent, so in places like schools with one external IP and the same browser on every computer, it just looks like one user in the analytics. I'd like to know the actual number of users.

I'm looking for a similarly lightweight analytics system that does use cookies (first-party cookies only) to handle this particular use case. Does anyone know of one?

Thanks!

Edit: it doesn't have to actually be a cookie - just being able to explicitly specify a session ID instead of inferring one based on IP and user-agent would suffice.

 

I'm replacing an SFF PC (HP ProDesk 600 G5 SFF) I'm using as a server with a larger one that'll function as a server and a NAS, and all I want is a case that would have been commonplace 10-15 years ago:

  • Fits an ATX motherboard.
  • Fits at least 4-5 hard drives.
  • Is okay sitting on its side instead of upright (or even better, is built to be horizontal) since it'll be sitting on a wire shelving unit (replacing the SFF PC here: https://upvote.au/post/11946)
  • No glass side panel, since it'll be sitting horizontally.
  • Ideally space for a fan on the left panel

It seems like cases like this are hard to find these days. The two I see recommended are the Fractal Design Define R5 and the Cooler Master N400, both of which are quite old. The Streacom F12C was really nice but it's long gone now, having been discontinued many years ago.

Unfortunately I don't have enough depth for a full-depth rackmount server; I've got a very shallow rack just for networking equipment.

Does anyone have recommendations for any cases that fit these requirements?

My desktop PC has a Fractal Design Define R4 that I bought close to 10 years ago... I'm tempted to just buy a new case for it and repurpose the Define R4 for the server.

 

Sorry for the long post. tl;dr: I've already got a small home server and need more storage. Do I replace an existing server with one that has more hard drive bays, or do I get a separate NAS device?


I've got some storage VPSes "in the cloud":

  • 10TB disk / 2GB RAM with HostHatch in LA
  • 100GB NVMe / 16GB RAM with HostHatch in LA
  • 3.5TB disk / 2GB RAM with Servarica in Canada

The 10TB VPS has various files on it - offsite storage of alert clips from my cameras, photos, music (which I use with Plex on the NVMe VPS via NFS), other miscellaneous files (using Seafile), backups from all my other VPSes, etc. The 3.5TB one is for a backup of the most important files from that.

The issue I have with the VPSes is that since they're shared servers, there's limits in terms of how much CPU I can use. For example, I want to run PhotoStructure for all my photos, but it needs to analyze all the files initially. I limit Plex to maximum 50% of one CPU, but limiting things like PhotoStructure would make them way slower.

I've had these for a few years. I got them when I had an apartment with no space for a NAS, expensive power, and unreliable Comcast internet. Times change... Now I've got a house with space for home servers, solar panels so running a server is "free", and 10Gbps symmetric internet thanks to a local ISP, Sonic.

Currently, at home I've got one server: A HP ProDesk SFF PC with a Core i5-9500, 32GB RAM, 1TB NVMe, and a single 14TB WD Purple Pro drive. It records my security cameras (using Blue Iris) and runs home automation stuff (Home Assistant, etc). It pulls around 41 watts with its regular load: 3 VMs, ~12% CPU usage, constant ~34Mbps traffic from the security cameras, all being written to disk.

So, I want to move a lot of these files from the 10TB VPS into my house. 10TB is a good amount of space for me, maybe in RAID5 or whatever is recommended instead these days. I'd keep the 10TB VPS for offsite backups and camera alerts, and cancel the other two.

Trying to work out the best approach:

  1. Buy a NAS. Something like a QNAP TS-464 or Synology DS923+. Ideally 10GbE since my network and internet connection are both 10Gbps.
  2. Replace my current server with a bigger one. I'm happy with my current one; all I really need is something with more hard drive bays. The SFF PC only has a single drive bay, its motherboard only has a single 6Gbps SATA port, and the only PCIe slots are taken by a 10Gbps network adapter and a Google Coral TPU.
  3. Build a NAS PC and use it alongside my current server. TrueNAS seems interesting now that they have a Linux version (TrueNAS Scale). Unraid looks nice too.

Any thoughts? I'm leaning towards option 2 since it'll use less space and power compared to having two separate systems, but maybe I should keep security camera stuff separate? Not sure.

 

I have a 10Gbps internet connection. On a system with a 10Gbps Ethernet card, I can get ~8Gbps down and ~6Gbps up:

I'd expect this to easily max out a 2.5Gbps network connection. However, while the upload is maxed (or close to it), I can only ever get ~1.0 to 1.5Gbps down:

Both tests were performed on the same system. The only difference is that the first one uses a TRENDnet 10Gbps PCIe network card (which uses an Aquantia AQC107 chipset) whereas the second one uses the onboard NIC on my motherboard (Intel I225-V chipset).

This is consistent across two devices that have 10Gbps ports and two devices that have 2.5Gbps ports.

I'm using an AdTran 622v ONT provided by my internet provider, a TP-Link ER8411 router, and a MikroTik CRS312-4C+8XG-RM switch. I'm using CAT6 cabling, except for the connection between the router and the switch which uses an SFP+ DAC cable.

I haven't been able to figure it out. The 'slower' speeds are still great, I just don't understand why it can't achieve more than 1.5Gbps down over a 2.5Gbps network connection.

Any ideas?

74
submitted 2 years ago* (last edited 2 years ago) by dan@upvote.au to c/selfhosted@lemmy.world
 

I couldn't find a "Home Networking" community, so this seemed like the best place to post :)

My house has this small closet in the hallway and thought it'd make a perfect place to put networking equipment. I got an electrician to install power outlets in it, ran some CAT6 myself (through the wall, down into the crawlspace, to several rooms), and now I finally have a proper networking setup that isn't just cables running across the floor.

The rack is a basic StarTech two-post rack (https://www.amazon.com/gp/product/B001U14MO8/) and the shelving unit is an AmazonBasics one that ended up perfectly fitting the space (https://www.amazon.com/gp/product/B09W2X5Y8F/).

In the rack, from top to bottom (prices in US dollars):

  • TP-Link ER8411 10Gbps router. My main complaint about it is that the eight 'RJ45' ports are all Gigabit, and there's only two 10Gbps ports (one SFP+ for WAN, and one SFP+ for LAN). It can definitely reach 10Gbps NAT throughput though. $350
  • Wiitek SFP+ to RJ45 module for connecting Sonic's ONT (which only has an RJ45 port), and 10Gtek SFP+ DAC cable to connect router to switch.
  • MikroTik CRS312-4C+8XG-RM managed switch (runs RouterOS). 12 x 10Gbps ports. I bought it online from Europe, so it ended up being ~$520 all-in, including shipping.
  • Cable Matters 24-port keystone patch panel.
  • TP-Link TL-SG1218MPE 16-port Gigabit PoE switch. 250 W PoE power budget. Used for security cameras - three cameras installed so far.
  • Tripp Lite 14 outlet PDU.

Other stuff:

  • AdTran 622v ONT provided by my internet provider (Sonic), mounted to the wall.
  • HP ProDesk 600 G5 SFF PC with Core i5-9500. Using it for a home server running Home Assistant, Blue Iris, Node-RED, Zigbee2MQTT, and a few other things. Bought it off eBay for $200.
    • Sonoff Zigbee dongle plugged in to the front USB port
  • (next to the PC) Raspberry Pi 4B with SATA SSD plugged in to it. Not doing anything at the moment, as I migrated everything to the PC.
  • (not pictured) Wireless access point is just a basic Netgear one I bought from Costco a few years ago. It's sitting on the top shelf. I'm going to replace it with a TP-Link Omada ceiling-mounted one once their wifi 7 access points have been released.

Speed test: https://www.speedtest.net/my-result/d/3740ce8b-bba5-486f-9aad-beb187bd1cdc

Edit: Sorry, I don't know why the image is rotated :/ The file looks fine on my computer.

 

Hi!

I just created a Lemmy server at https://upvote.au/ for my personal use. I created a test community with a test post, but searching for it in Mastodon doesn't work. I tried searching for both @dan@upvote.au and @[!dan@upvote.au](/c/dan@upvote.au). I see the requests in the Nginx log:

172.19.0.5 - - [13/Jun/2023:22:57:06 -0700] "GET /.well-known/webfinger?resource=acct:test@upvote.au HTTP/1.1" 200 312 "-" "http.rb/5.1.1 (Mastodon/4.1.2; +https://toot.d.sb/)"
172.19.0.5 - - [13/Jun/2023:22:57:06 -0700] "GET /c/test HTTP/1.1" 200 10033 "-" "http.rb/5.1.1 (Mastodon/4.1.2; +https://toot.d.sb/)"

However, no results appear in Mastodon.

Any ideas?

view more: next ›