Likes from 29 October 2025

Back to /kind/likes/, 2025, October 2025.

 Like

Liked Normalize Identifying Corporate Devices in Your Software
Post details
If you dual-license your software in such a way that it requires a paid license for commercial use, here are two code blobs for you. macOS pub fn mdm_enrollment() -> eyre::Result<(bool, Option<String>)> { let mut command = Command::new("/usr/bin/profiles"); command.args(["status", "-type", "enrollment"]); let stdout = command.output()?.stdout; let output = std::str::from_utf8(&stdout)?; if output.contains("MDM enrollment: No") { return Ok((false, None)); } let mut server = None; for line in output.lines() { if line.starts_with("MDM server") { server = Some(line.trim_start_matches("MDM server: ").to_string()) } } Ok((true, server)) } Windows pub fn mdm_enrollment() -> eyre::Result<(bool, Option<String>)> { let mut command = Command::new("dsregcmd"); command.args(["/status"]); let stdout = command.output()?.stdout; let output = std::str::from_utf8(&stdout)?; if !output.contains("MdmUrl") { return Ok((false, None)); } let mut server = None; for line in output.lines() { if line.contains("MdmUrl") { let line = line.trim().to_string(); server = Some(line.trim_start_matches("MdmUrl : ").to_string()) } } Ok((true, server)) } Looking at mobile device management (MDM) enrollment is not a silver bullet for identifying corporate devices running your software, but it is a good start.

 Like

Liked Hazel Weakly (@hazelweakly.me)
Post details
This is why I have a website. It’s also why everything I’ve ever written has appeared on my website with *very* few exceptions Having a single domain name that’s YOU is invaluable. My website gets lots of compliments on its branding and appearance. My slides borrow that appearance, too It matters! [contains quote post or other embedded content]

← 26 October 2025 30 October 2025 →

October
  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31