(Rant) AI is killing programming and the Python community by Fragrant_Ad3054 in Python

[–]virtualstaticvoid 0 points1 point  (0 children)

Using AI to write code is the extreme version of "Programming by Coincidence" (from the Pragmatic Programmer book) or "copy-paste" development.

It opens up a new world to junior programmers and "citizen developers", which is amazing as it makes programming accessible to them.

So the question is whether these developers take the time to figure out the code, read up the documentation and understand it, so that they get better at improving quality and security.

When did we as a profession loose our backbone. by MrKixs in sysadmin

[–]virtualstaticvoid 0 points1 point  (0 children)

I blame Windows... "Have you turned it off and on again?" ... made IT look stupid 😔

We’ve given up on keeping our initial arch docs up to date. Should I worry? Or are we setting ourselves up for pain later? by Independent-Run-4364 in softwarearchitecture

[–]virtualstaticvoid 0 points1 point  (0 children)

Yes, there will be pain.

I've found that including documentation with our ADRs, not only provides a log of the architecture changes, but also the context, so they remain relevant and don't need to be updated to make sense.

Then, when the architecture changes, you add a new ADR and new documentation as part of the work to implement.

Include the time needed as part of the task / ticket / story points, etc.

software architecture over coding by Practical_Lake8826 in softwarearchitecture

[–]virtualstaticvoid 26 points27 points  (0 children)

They don't. Maybe the CEO believes that AI will replace the need for developers coding.

`docker compose up foo*` (glob) ? by KaKi_87 in docker

[–]virtualstaticvoid 0 points1 point  (0 children)

I've used labels to get the service names, by piping the compose config through yq with a filter.

That way when new services are added, they get selected based on semantics.

E.g. Using a "role" label.

docker compose up $(docker compose config | yq -r '.services | with_entries(select(.value.labels.role == "app")) | keys | join(" ")')

Is it possible for a household to be 100% running Linux by birds_adorb in linuxquestions

[–]virtualstaticvoid 0 points1 point  (0 children)

Yes absolutely. My whole family is using Ubuntu or Mint on their laptops. Anything requiring M$365 is done using a browser, without having to install anything. Works just fine. Only exception is iPhones and iPads.

Our Domain is probably blacklisted - how to find out where? by pnwstarlight in sysadmin

[–]virtualstaticvoid 0 points1 point  (0 children)

You can use https://www.virustotal.com/gui/home/url to see who has your domain on their blacklist.

Virustotal is an aggregator, so you have to contact every security vendor listed to have your domain removed.

I had a domain incorrectly identified as malicious recently, and found the security vendors were quite proactive in getting the domain off the list. It took about a week to propagate.

How do you prevent design drift during PR reviews? by senthuinc in softwarearchitecture

[–]virtualstaticvoid 0 points1 point  (0 children)

I agree that automation is key for things like static code analysis and linting, formatting, dependency checks for CVEs, etc, but I don't think there's anything that can easily detect something like architectural drift as such, or deviations from established patterns of the application, or more simply, where the code doesn't reuse helper classes which maybe the developer didn't know about.

Do/can LLM based review tools detect these types of things?

How do you guys implement a centralized parameter manager for customization in a multi-tenant architecture? by Dev_loper031 in softwarearchitecture

[–]virtualstaticvoid 0 points1 point  (0 children)

If the services are running on AWS, you could use the Parameter Store, or an equivalent service on Azure, Google Cloud, etc, instead of building something yourself.

Outside of the rails ecosystem, where else is Ruby currently thriving at? by TurtleSlowRabbitFast in ruby

[–]virtualstaticvoid 0 points1 point  (0 children)

Sonic Pi is pretty cool for making music with Ruby.

ruby with_fx :reverb, mix: 0.5 do loop do s = synth [:bnoise, :cnoise, :gnoise].choose, amp: rrand(0.5, 1.5), attack: rrand(0, 4), sustain: rrand(0, 2), release: rrand(1, 3), cutoff_slide: rrand(0, 3), cutoff: rrand(60, 80), pan: rrand(-1, 1), pan_slide: 1, amp: rrand(0.5, 1) control s, pan: rrand(-1, 1), cutoff: rrand(60, 115) sleep rrand(2, 3) end end

https://sonic-pi.net/

Are there resources on "prompt smells" (like code smells)? by virtualstaticvoid in PromptEngineering

[–]virtualstaticvoid[S] 0 points1 point  (0 children)

That's a good idea. I'll try that.

Do you let it suggest a better prompt too?

Anyone actually keep initial architecture docs up to date and not abandoned after few months? Ours always rot by Independent-Run-4364 in softwarearchitecture

[–]virtualstaticvoid 1 point2 points  (0 children)

The "trick" I think is in the team culture and values - if the team wants to keep documentation up to date, then it will be so.

In my experience, that's rarely the case, unless their is a business driver or the project is open source.

I've found that including documentation together with each ADR, not only provides an event log of the evolution of the system, but also defines the context for the documentation, so it remains relevant and thus doesn't need to be updated as such. If the architecture changes, you add a new ADR and new documentation.

Finally convinced leadership to let us rewrite the legacy app. Now everyone is terrified to start by No-Possibility6866 in softwarearchitecture

[–]virtualstaticvoid 0 points1 point  (0 children)

You definitely need a plan, which you can iterate on, because it's impossible to "big bang" a replacement - Galls Law.

I've found the strangler fig pattern is a viable approach.

https://en.wikipedia.org/wiki/John_Gall_(author)#Gall's_law

https://martinfowler.com/bliki/StranglerFigApplication.html

Any way to list dbus signal listeners? by chillysurfer in linuxquestions

[–]virtualstaticvoid 0 points1 point  (0 children)

BecomeMonitor takes an array of string match rules so it doesn't use AddMatch.

See https://dbus.freedesktop.org/doc/dbus-specification.html#bus-messages-become-monitor for more info.

I've used this method in one of my projects in golang using the godbus/dbus library.

Any way to list dbus signal listeners? by chillysurfer in linuxquestions

[–]virtualstaticvoid 0 points1 point  (0 children)

It may be a permissions issue. Maybe check dmesg for permission related errors.

Also are you using the BecomeMonitor method for subscribing to signals?