I call it "business as usual".
Jaime
@Jaime
Best posts made by Jaime
-
RE: How do you call this fairly common anti-pattern?
-
RE: In Log4J WTF news today…
@Carnage said in In Log4J WTF news today…:
And even more, why the fuck is it running code that is returned?
Here is the exact why... https://issues.apache.org/jira/browse/LOG4J2-313
These things are always cases of components using other components and then those other component gets new functionality that has unintended consequences.
This is the opposite of "secure by design".
-
RE: Why is programming complicated?
@jinpa Here's a quote from Fred Brooks in "The Mythical Man-Month":
I believe the hard part of building software to be the specification, design, and testing of this conceptual construct, not the labor of representing it and testing the fidelity of the representation. We still make syntax errors, to be sure; but they are fuzz compared to the conceptual errors in most systems
So, fifty years ago we knew that programming wasn't conceptually simple. Why do you believe it is?
-
RE: Nope
@boomzilla That flame is there to burn off the excess gas. Without it, it would be a safety hazard.
-
RE: How not to CV
How hard is it to join MENSA?
I would never join an organization who's standards are so low that they'd accept me.
-
More Driving Stuff
Here we go again with people equating speed limits with safety.
Unfortunately, one child was killed and another injured when a car drove off the highway and into a park.
The facts:
- The accident was caused by driver of the car falling asleep.
- The park being so close to a highway has been a concern for many years.
- Fifteen years ago, a survey was done that recommended that a barrier be placed between the highway and the park.
- Neighbors have been bitching regularly to get the barrier installed, but the city has been slow figuring out who would be responsible for paying for it.
The response:
- Lower the speed limit of the highway.
- Place speed-check signs.
- Place four cops permanently along the park edge to write tickets.
All this ignores the fact that if they did exactly this last week, the kid would still have been killed. The sleeping driver ran a stop light, he wouldn't have obeyed the speed limit sign. I'm pissed for two reasons. First, that they didn't actually do something effective, like put in temporary barriers as the first remediation. Second, that lowering the speed limit is seen as any part of the solution. It's a stupid design to have a naked park border next to a highway. Fix the border, don't destroy the highway by turning it into a city street.
-
RE: Just... I don't know anymore man.
Who let the piss-poor C programmer use Java?
-
Why, oh why, do we return empty things on error
I reviewed another commit today and saw this pattern repeat for the zillionth time:
public SomeType SomeMethod (int arg1, int arg2) { var retval = new SomeType(); try { // use the arguments and attempt to fill the properties of retval } catch (Exception ex) { LogError(ex); } return retval; }
Nothing ever errors, every call succeeds. Sometimes, it succeeds and you get an empty object... if so, the actual problem (probably) got logged. If you forget to take a deep look at the return value, you'll probably get an NPE at some point later in the code when you've assumed that you have an object in a valid state.
The worst part about this particular bug is that the code would be better if it simply "didn't". Take out the try/catch, take out the bogus new on top. Our programmers spend a lot of time writing code that makes our lives harder.
-
RE: Supermarket Self-Checkout
My local supermarket just replaced their self-checkout kiosks. The new new version has two similar voice prompts:
-
Please wait for attendant. This means that you need to wait for the person at the little station overlooking all of the kiosks. Typically this is for something like an ID check for alcoholic beverages.
-
Please wait for cashier. This is you. It's a self-checkout kiosk, so you're the cashier. It does this when there is a problem with the card and it wants you to do it again. The card reader says "please try again", but it has already sent a reject signal to the kiosk. At this point, the card reader is ready, but the kiosk has gone back to "select payment method". Nothing you do on the card reader gets you beyond "please try again". It is literally telling you to wait for yourself to choose the payment method.
-
-
RE: Beyond CodeSOD
@BernieTheBernie I'll bet my phone team is worse than yours.
A few days ago I attended a meeting where the manager of the call center was presenting ideas of how we could improve the "reset password" feature of our site. During the meeting, I found out we are here because the most common cause of a call is that someone needs help resetting their password.
Within five minutes, I discovered that the "text me a password reset code" part of our system stopped working in November of 2020.
So, we are in a meeting where the call center isn't aware that no one, and I mean no one, is getting a code to continue with the reset process. They are actually out there doing usability research to find out how to make a "better process" while being oblivious to the fact that the current problem isn't a bad process - it's a broken process.
BTW, we never get log files as well. We also get problems reported days or weeks after they happen with no time or even date of occurrence to go look in a log file.
Latest posts made by Jaime
-
RE: Authorize button not appearing in Swagger
@jinpa Have you implemented an IOperationFilter? Some working code here: https://stackoverflow.com/questions/73047505/operationfilter-for-swagger-not-working-properly-it-shows-authorize-option-on
-
RE: Story Details and Acceptance Criteria
@Arantor said in Story Details and Acceptance Criteria:
“they have power and I can do nothing” being vastly more common than not
You won't get an argument from me about this. I've seen countless groups get almost nothing done because of problems exactly like this.
However, this does not mean that the solution isn't simple, obvious, and straightforward. Often, those in power don't want to change. That's OK, they can live in their world, but I'm not living there with them.
I don't work in Nirvana and I do see this sort of thing with some regularity. When it happens, I recognize that the person with power has made a decision and I know what the result will be. I offer them guidance and advice, which they usually don't accept. I either accept that or I remove myself from the situation. I don't go to some Internet board and hope that someone there will tell me how to fix them.
-
RE: Story Details and Acceptance Criteria
@jinpa If you are the intelligent and are being dominated by the powerful, then I suggest you go find another job. It's not like that everywhere.
Everything I say isn't simply "party line", it's simple human interaction. If someone writes a story that's unintelligible and constantly changes it as you are working, don't put up with it. If your answer is "they have power and I can do nothing"... then leave. Your workplace will be like this until they give power to those who know what they are doing.
-
RE: Story Details and Acceptance Criteria
@nerd4sale said in Story Details and Acceptance Criteria:
So you don't do refinements?
I'm not saying what we do, I'm saying what he should do in his situation. In a sane world, no story would get on a sprint until it's a good story.
Given @jinpa's original post, that obviously isn't happening. It's more helpful to give suggestions about what he can do rather then tell him what the people upstream of him could do.
-
RE: Story Details and Acceptance Criteria
There's a few fixes to some of your problems.
First, when you are assigned (or when you pick up) the story, read it and determine if you are clear what the end result should be. If not, send it back to the person responsible, call a meeting, or fix it yourself - whichever is the accepted practice where you work.
As for the ever-expanding scope. One of the simpler methods is to never re-work a story. If it isn't what the user wanted, that's OK.... but it's still done. For the next round of changes, a new story is required. It helps in this step to have a third party do QA. The main cause of this type of problem is when the requester does testing.
Testing should be someone reading the story (not the comments) and verifying that the delivered product does what's said there. If you do something that is in the comments, but not in the story, the tester should fail it.
If the tester can't figure out what the story means - then you are back to your story writing problem. A standard practice to handle this is to have a "Three Amigos" meeting. The requester, developer, and tester all get together and make sure they all understand what the work entails.
-
RE: What, exactly is the basic unit of an api?
@Arantor said in What, exactly is the basic unit of an api?:
at least in the SOAP days a single API published its WSDL
The web world caught up and now has an equivalent: an OpenAPI specification - often generated with Swagger. True to both of their histories, WSDL was an XML file and OpenAPI uses json.
So, you can still use the same metric - if it's documented in a single OpenAPI spec, then it's a single API. Most commonly, these are built from a single pile of source code (referred to as a project in all of the technologies I use, but I'm sure someone uses different terminology).
Usually when people bother to say "We have three APIs", they either means that they support three generations of doing the same thing, but have kept the old ones around because APIs are used for application-to-application communication and you have to give the consumers time to transition. Or they mean that their back end has consumers from three different perspectives (i.e. Customers, Vendors, and internal code) that have different levels of access and different needs and it was decided to make independent APIs for the three.
A big implementation detail that is usually true for "an API" is that it uses one method of authentication across all endpoints. Go here, get a token, and tack that token to the header of all calls. The scope of "all calls" would be an API.
-
RE: SQL Server transaction deadlocking with itself?
@Bulb If this weren't Azure, I'd have just said "Turn on trace flag 1222", because that's been the standard way to get to the bottom of deadlocks since forever. However, trace flags are system-wide and you don't own the system on Azure... so that's not an option.
In short... the cloud sucks.
-
RE: SQL Server transaction deadlocking with itself?
@Bulb The last paragraph is titled "The system_health session in Azure SQL"
-
RE: SQL Server transaction deadlocking with itself?
@Bulb BTW, I see that you already found the cause, but here's how to get SQL Server to tell you the cause:
-
RE: What's happening with VMWare?
@BernieTheBernie said in What's happening with VMWare?:
Broadcom says it is terminating all of its partner agreements with VMware resellers and service providers, killing VMware’s partner program and sales incentives, and then forcing existing partners to reapply for their roles
I'm sure Broadcom will ruin much about VMware, but this doesn't make me sad.
Currently, if you ever talk to a single reseller about VMware and they register themselves as your reseller, there's nothing you can do to buy from anyone else.
We ran into this when we couldn't get a reseller to understand what we were asking of them and they kept giving us inflated quotes (likely on purpose). We tried the whole "listen and sell us what we asked for or we'll buy from someone else". They simply said... no and it took us six months to get the project off the ground.