Aussie living in the San Francisco Bay Area.
Coding since 1998.
.NET Foundation member. C# fan
d.sb
Mastodon: @dan

This profile is from a federated server and may be incomplete. Browse more on the original instance.

Is Ubuntu deserving the hate? (lemmy.ml)

Long story short, I have a desktop with Fedora, lovely, fast, sleek and surprisingly reliable for a near rolling distro (it failed me only once back around Fedora 34 or something where it nuked Grub). Tried to install on a 2012 i7 MacBook Air… what a slog!!! Surprisingly Ubuntu runs very smooth on it. I have been bothering all...

dan,
@dan@upvote.au avatar

Testing is the middle ground. Tested for a bit by unstable peeps but thats it.

IIRC packages have to be in unstable with no major bugs for 10 days before migrating to testing. It’s a good middle ground IMO.

Of course, you could always run unstable and be the one to report the bugs :)

dan,
@dan@upvote.au avatar

I used to run Debian testing on my servers. These days I don’t have much free time to mess with them, so they’re all running the stable release with unattended-upgrades.

However, mind that it’s not supported and they do not pay attention to security fixes.

To be clear, it can still get security updates, but it’s the package maintainer’s responsibility to upload them. Some maintainers are very responsive while others take a while. On the other hand, Debian stable has a security team that quickly uploads patches to all officially supported packages (just the “main” repo, not contrib, non-free, or non-free-firmware).

dan,
@dan@upvote.au avatar

How different is it from regular Debian? Like if I’m very experienced with Debian, does that equate to being able to easily use Mint Debian Edition too?

dan,
@dan@upvote.au avatar

Figma is a great product and I was so worried that Adobe would ruin it. This is good news.

Why don't rabies infected humans act like rabies infected animals

This always puzzled me. Why don’t humans act much more aggressive or crazed like its often depicted with animals. Afaik there’s 2 types of rabies, “dumb” and “furious” so my question is more towards the 2nd type. For example, we never hear of rabies causing a human to accidentally bite another human so why is that?

dan,
@dan@upvote.au avatar

Australia is totally rabies-free so I didn’t know rabies even existed until I moved to the USA.

dan,
@dan@upvote.au avatar

Yeah I’d use imapsync or mbsync for this.

Just keep in mind that Gmail has a documented 2.5GB per day limit for IMAP downloads. In reality, the limit is smaller. When I was migrating away from GSuite, it took me 8-9 days to download 14GB of email. I downloaded imapsync and ran it on my server.

dan,
@dan@upvote.au avatar

That’s the employer’s fault for making it so easy to connect to prod with read-write permissions. Not your fault.

dan,
@dan@upvote.au avatar

Changing the port isn’t really much obfuscation though. It doesn’t take long to scan all ports for the entire IPv4 range (see masscan)

dan,
@dan@upvote.au avatar

Looks like your comment posted twice.

dan,
@dan@upvote.au avatar

At least it was only six replies and didn’t fully overload the email server. techcommunity.microsoft.com/t5/…/610643

dan,
@dan@upvote.au avatar

I broke the home page of a big tech (FAANG) company.

I added a call to an API created by another team. I did an initial test with 2% of production traffic + 50% of employee traffic, and it worked fine. After a day or two, I rolled out to 100% of users, and it broke the home page. It was broken for around 3 minutes until the deployment oncall found the killswitch I put in the code and turned it off. They noticed the issue quicker than I did.

What I didn’t realise was that only some of the methods of this class had Memcache caching. The method I was calling did not. It turns out it was running a database query on a DB with a single shard and only 4 replicas, that wasn’t designed for production traffic. As soon as my code rolled out to 100% of users. the DBs immediately fell over from tens of thousands of simultaneous connections.

Always use feature flags for risky work! It would have been broken for a lot longer if I didn’t add one and they had to re-deploy the site. The site was continuously pushed all day, but building and deploying could take 45+ mins.

dan,
@dan@upvote.au avatar

It’s worth it for just having cleaner logs

Those logs are useful to know which IPs to permanently block :)

dan,
@dan@upvote.au avatar

Feature flags are just checks that let you enable or disable code paths at runtime. For example, say you’re rewriting the profile page for your app. Instead of just replacing the old code with the new code, you’d do something like:


<span style="color:#323232;">if (featureIsEnabled('profile_v2')) {
</span><span style="color:#323232;">  // new code
</span><span style="color:#323232;">} else {
</span><span style="color:#323232;">  // old code
</span><span style="color:#323232;">}
</span>

Then you’d have some UI to enable or disable the flag. If anything goes wrong with the new page after launch, flip the flag and it’ll switch back to the old version without having to modify the code or redeploy the site.

Fancier gating systems let you do things like roll out to a subset of users (eg a percentage of all users, or to 50% of a particular country, 20% of people that use the site in English, etc) and also let you create a control group in order to compare metrics between users in the test group and users in the control group.

Larger companies all have custom in-house systems for this, but I’m sure there’s some libraries that make it easy too.

At my workplace, we don’t have any Git feature branches. Instead, all changes are merged directly to trunk/master, and new features are all gated using feature flags.

dan,
@dan@upvote.au avatar

At my workplace, the command-line database tool (which is essentially just a wrapper around the standard MySQL CLI) connects with a read-only role by default, and you need to explicitly pass a flag to it to connect with a read-write role. The two roles use separate ACLs so we can grant someone just read-only access if they don’t need write access.

dan,
@dan@upvote.au avatar

If you’re going to create a desktop app in JS, React Native is better as it can use native UI elements. It does mean that the UI code may differ a bit between platforms, but you can still reuse most of your code between platforms.

Otherwise, C# with Uno Framework or MAUI looks promising for cross-platform dev.

dan,
@dan@upvote.au avatar

of course they only support HTML+JS.

WebAssembly is becoming more popular, which lets you run code written in languages other than JavaScript in a browser. It’s not possible to do everything yet, so you still need some JS code and a bridge between the WASM and JS, but it’s getting there. Emulators that run in the browser often use it.

dan,
@dan@upvote.au avatar

Microsoft use a lot of different technologies. It’s a large company and generally at big tech companies there’s no company-wide mandate about frontend frameworks/libraries. They use React Native in a bunch of things, including in Office, the Xbox app, and some of the apps that ship with Windows. They have a lot of apps written in C++. They have some Electron apps too. They have web apps using React, some using Angular, and some using custom frameworks.

dan,
@dan@upvote.au avatar

Thunderbird isn’t really developed by Mozilla any more. It’s owned by a subsidiary of Mozilla and is mostly community-run.

dan,
@dan@upvote.au avatar

You could create a Github repo for it and store it as an SVG file.

dan,
@dan@upvote.au avatar

The origin is that /usr may be network mounted or otherwise shared across multiple systems, whereas /usr/local is local to a particular PC. That definition is not as relevant with today’s single-user machines, and now it mostly means what you said (/usr is managed by system package manager whereas /usr/local is manually managed).

dan,
@dan@upvote.au avatar

I’ve never seen /etc/opt used. Usually if an app is in /opt, the entire app is there, including its config which is frequently at /opt/appname/etc/.

dan,
@dan@upvote.au avatar

I still put all my standalone apps in there (meaning apps that are often statically compiled and expect the executable, logs, and config to be in the same directory), as well as apps that have their own docker-compose.yml file. Should I be putting them somewhere else? I know /srv exists but I’ve never used it and I don’t think Debian creates it by default.

dan, (edited )
@dan@upvote.au avatar

It’s an old meme but it checks out. Older than some of the people in this community haha

For anyone that hasn’t seen it, it’s a reference to this satirical article from 2001: web.archive.org/web/…/2001.12.2.42056.2147.html

dan, (edited )
@dan@upvote.au avatar

I remember dealing with migrating from LILO to GRUB when I was in high school, maybe 2005ish? It’s been a while. I remember the migration from ipchains to iptables, too (which is happening again now with the iptables to nftables migration)

I used Ubuntu at the time… It was a great distro back then. I only had dial-up so couldn’t download large files easily, and Canonical or one of their local partners would mail you a CD for free regardless of where you lived in the world. I think that helped a LOT of people get into Linux.

dan,
@dan@upvote.au avatar

It’s funny because the first time I read it, I thought it was serious and was just written by a tech-illiterate parent. Saying that Comet Cursor and Bonzi Buddy are hacker software kinda gives away that it’s just satire though.

oh I guess that’s also something that younger people may not know about… In the late 1990s / early 2000s, it wasn’t uncommon for people to install spyware to get things like custom mouse cursors, emoticons, and purple gorillas that help you navigate the web.

dan,
@dan@upvote.au avatar

If you think American Domino’s is bad, you should try Australian Domino’s. It’s way worse.

dan,
@dan@upvote.au avatar

This type of printer exists. It’s called a Brother laser printer.

dan,
@dan@upvote.au avatar

You do lose ink level indication

If you’re talking about the laser printers, the toner level is available in the printer’s web UI and via the network. I have mine integrated into Home Assistant.

dan,
@dan@upvote.au avatar

It’s a built-in integration: www.home-assistant.io/integrations/brother. For me, Home Assistant automatically detected the printer on the network and showed a notification in the app / on the site about a new device being found.

It provides pretty much all the data you’d want… Remaining drum life, toner level, page count, status (sleeping, idle, printing, paper jam, out of paper), and I think a few other things.

dan,
@dan@upvote.au avatar

Huh, that’s strange. Does pressing the power button not work? Are you using wifi or Ethernet?

I think there’s a way to disable the deep sleep mode.

dan, (edited )
@dan@upvote.au avatar
dan,
@dan@upvote.au avatar

Strange. You could try go to its web UI (just go to the printer’s IP in your web browser) and disable both sleep and auto power off, and see if that helps? You can also change those option through the menu on the printer itself.

dan,
@dan@upvote.au avatar

That makes sense. Too bad the sleep mode isn’t working well for you :(

dan,
@dan@upvote.au avatar

Unfortunately, WinDirStat is essentially abandoned… The latest version 1.1.2 was released in 2005. Wiztree is my favourite alternative, but it’s not open-source.

dan, (edited )
@dan@upvote.au avatar

There’s an easy solution to that. If you donate, it’ll remove the button.

It’s a good deal. The money saved from not having to buy new drives / not having to manually calculate usage yourself would be far greater than any donation.

dan,
@dan@upvote.au avatar

It also hasn’t been updated in nearly 20 years (last release was in 2005) so I doubt it’s going to get faster any time soon :(

dan, (edited )
@dan@upvote.au avatar

“cross-platform” but it’s not available for the most popular developer OS (Windows) 🤔

Edit: most popular OS as per the Stack Overflow dev survey: survey.stackoverflow.co/2023/#section-most-popula…

dan,
@dan@upvote.au avatar

You don’t need to make it an Electron app to have AI integration.

dan,
@dan@upvote.au avatar

I don’t understand why desktop JS apps don’t use React Native at least. It’s still JavaScript but doesn’t use a browser, and renders to native UI widgets. Far lighter than Electron.

dan,
@dan@upvote.au avatar

Across all devs that fill out the Stack Overflow survey: survey.stackoverflow.co/2023/#section-most-popula…

dan,
@dan@upvote.au avatar

Business/application logic can be 80-90% of an app’s code, and all of it can be reused across platforms. The actual UI rendering is just a small part of it.

In the UI code, some of it does have to differ across platforms but it’s mostly the lower level components like buttons, text fields, etc. Some product UI code built on top of those abstractions can be reused across platforms.

What distro would you recommend for a 32-bit old Acer One laptop? (kbin.social)

It's an old model (Acer One D257) Processor is Intel Atom. Memory is 1GB DDR3 with 320 GB of HDD. I currently Have MX 21 running on it, but I need to reinstall because I forgot the root password. Since I'm reinstalling the OS, I thought I'd ask here for recommendations for an OS that makes the most of this oldie.

dan,
@dan@upvote.au avatar

The Linux kernel already has OOM killing… Do you mean something like Facebook’s oomd where you can more easily control it from userspace?

dan,
@dan@upvote.au avatar

I’ve seen a few companies here where ChatGPT is blocked and they use the Microsoft Azure version of it, often since they’re already using Azure or Office 365 and Microsoft can probably just add it to the same contract.

dan,
@dan@upvote.au avatar

This service really shouldn’t have used “Twitter” in its domain name… Twitter/X would easily win a UDRP dispute if they decided to file one, since it contains their trademark.

This may seem kind of stupid but I am kind of stupid, is there a list somewhere of phrases that are stupid or insensitive racially or gender biased?

I just got up from conversation with a couple of older black men, that I said “well I got to go back to work and start cracking the whip.” And it occurred to me then that it was probably a really insensitive stupid thing to say....

dan,
@dan@upvote.au avatar

List of every day Australian expressions

dan, (edited )
@dan@upvote.au avatar

If you want the lowest latency, you could try NBD. It’s a block protocol but with less overhead compared to iSCSI. github.com/NetworkBlockDevice/nbd/tree/master

Like iSCSI, it exposes a disk image file, or a raw partition if you’d like (by using something like /dev/sda3 or /dev/mapper/foo as the file name). Unlike iSCSI, it’s a fairly basic protocol (the API is literally only 9 commands). iSCSI is essentially just regular SCSI over the network.

NFS and SMB have to deal with file locks, multiple readers and writers concurrently accessing the same file, permissions, etc. That can add a little bit of overhead. With iSCSI and NBD, it assumes only one client is using the file (because it’s impossible for two clients to use the same disk image at the same time - it’ll get corrupted) and it’s just reading and writing raw data.

dan,
@dan@upvote.au avatar

If you do this, make sure you use snapshots, ideally taken automatically. You wouldn’t want ransomware to overwrite the files on your NAS.

dan,
@dan@upvote.au avatar

There’s a huge modding scene for Mario Kart Wii, and lots of custom tracks. There’s also several track compilations. One of the most well-known is Wiimms Mario Kart Fun which currently has 449 custom tracks. It runs on a real Wii as well as in emulators. My wife and I used to play it a lot.

The tracks are made by various community members, but the compilation itself is made by Wiimm, the same guy that made the Wiimmfi service that lets you race people online even after Nintendo shut down the official servers.

  • All
  • Subscribed
  • Moderated
  • Favorites
  • random
  • uselessserver093
  • Food
  • aaaaaaacccccccce
  • test
  • CafeMeta
  • testmag
  • MUD
  • RhythmGameZone
  • RSS
  • dabs
  • KamenRider
  • TheResearchGuardian
  • KbinCafe
  • Socialism
  • oklahoma
  • SuperSentai
  • feritale
  • All magazines