> language injection where you write code and later on you inject a different language.
I (still) work with a Classic ASP code base.
I kid you not, that there are VBScript functions, which call JScript (not JavaScript) functions, which in turn call VBScript functions.
It is a terrifying and glorious mess.
edit:
I also worked with a system at one time that used node.js to create C# files on the file system, then use the C# compiler to create an executable and then run it. It was... not great.
The funny thing is that these things may still have been the best solution for the problem within the available time. I have created some things that in hindsight were horrific but at the time they were the best that could be done.
This isn't all on the non-developers. I've walked into two rooms this week, which contained several senior developers, and when I asked them about non-functional requirements, they had to ask what they were, and why they were important.
I've also seen teams where the Defintion of Done doesn't include any steps at all towards deployment. Done is when someone approves the pull request.
Not surprisingly, it takes longer for those teams to 'complete' a change. In the former case, they are continuously surprised, and angered, by 'requirements' that 'no one' told them about. In the later, they stop halfway, and wonder why everyone is waiting on them, because it's 'development complete'.
I agree with your comment about senior devs. it seems as devs climb the ladder many get a superiority complex where they could do things quickly and others cannot.
I was once a tech lead of a team where the architect had been berating and criticizing a team member for weeks over something he thought should take a day.
I suggested he should take over and complete it. It took him weeks to complete.
"I was once a tech lead of a team where the architect had been berating and criticizing a team member for weeks over something he thought should take a day"
As I've gotten more experience as a developer, I've realized that most tasks take longer than I used to estimate..usually because I want to come up with a long-term solution and not just hack something together with no testing.
I'm sure I still have far to go, but currently when I see someone quote a time frame for a change I am more concerned when it is short vs. seems too long. Especially when the dev is questioned and the estimate doesn't include time for documentation, deployment, etc.
To be fair; non-functional requirements as a separate entity are pretty much wank.
If you need a line in a document to tell you that exposing privileged information to the outside world is a bad idea, or that you should make sure the solution you are designing has a reasonable chance of servicing the expected load then you probably shouldn't be a developer.
The last time I seen explicit non-functional requirements the had something like "the solution should have a 99.99% uptime." I realised that our down time for releases (old school I know) was more than that and promptly ignored them.
We're missing a lot of context about this situation to tell if anyone was being unreasonable. A reminder for everyone: unless you're all in on waterfall with complete specs, user stories are placeholders for a conversation. Talk to each other and assume good intent on all sides until proven otherwise. You'll have a much more enjoyable work experience than if you dig in and make things adversarial.
> I asked them about [the non-functional requirements for this project] and they had to ask [please give me details on those requirements]
or is it
> I asked them about [non-functional requirements as a general concept] and they had to ask [what are these new things you speak of, I have never heard of such a thing]
For me, it was more "These things you call NFRs, I do not understand the purpose of them, especially given how they are decided."
Requirements like "The system must be secure.", "The system must not go down.", or "The system must not have performance issues."
I'm lost as to what the purpose of such statements are as they don't let me know where real focus needs to be given. Not every system is mission critical and deserves equal resources devoted to ensure uptime.
As developers, the most useless bug reports we get are "It's broken". The NFRs you describe sound like "The system must not be broken", which probably makes a lot of sense to someone who's likely to submit a useless bug report.
The purpose of those statements are to uphold contracts and compensation clauses when things go wrong and end up in court due to refuse of payment for delivering broken software (which might be debatable if that was indeed the case).
See, that would make sense if it was something like 'our system must have 99.9% uptime'. But to say it cannot have any downtime, at the same time as our releases requiring us to take it down during the release, and at the same time the business contracts allowing for downtime for releases, means that the NFRs do not have any realistic requirements and are thus useless.
It's like saying mobile devices must be supported. Does that mean only top of the line recent releases? Does that mean 8 year old smartphones? Does that mean the internet browser on the Nintendo DS?
Per that study, "This analysis of 5-y weight-loss maintenance indicates, on average, that obese individuals maintained weight losses of 3.0 kg, representing a reduced weight of 3.2% below initial body weight. These individuals were successfully maintaining a weightloss averaging 23.4% of their initial weight loss at 5y"
Put another way, after 5 years, the average weight loss was ~3kg, with an average weight gain of 78.6% of the original lost weight.
Also, in general, an obese person who is obese before, and after 5 years has a weight that is ~3kg is likely still obese.
So this study basically just says that an average person isn't successful at keeping a large amount of weight, and gains most of it back. The specific statistics stated by the commenter above may not be correct, but the sentiment is definitely true.
That said, the study does confirm that very low energy diets (~800 meal replacement) beat out hypoenergetic balanced diet (~1200-1500 normal food) in long term weight maintence. Which is what the article is suggesting being implemented. So it's still not a great long term solution, but it's the better of the two non-exercise based solutions which this study evaluated.
One consideration is that obesity has a snowball effect. I think I remember reading once that the average annual weight gain at midlife is 3 pounds. So over a 5-year period, those who made the attempt may have actually been down 15 pounds, plus the 3kg, from where they might have been if they'd continued on their trajectory.
The load could be zero, it could be infinite, or anywhere in between. Infinite universes sending infinite work is inf/inf. It's not possible to know if that's going to tend towards something like 0 or something like positive infinity without having some way to measure. But it's an error to just assume it's zero.
I completely agree. I was thinking it highly unlikely that other universes would be operating at full efficiency, so the average would more on the zero side. But, yeah, that's not how infinities work I suppose :) Still, I'm enjoying thinking about it.
There are several layers where a registrar has control over DNS resolution.
Terms:
ICANN: The organization responsible for coordinating the maintenance of the domain name system (among other things).
Registrar: A company authorized to update ICANN database on behalf of registrants. Google, GoDadddy, Enom, etc are registrars
Registrants: An entity that wants to register a domain name. In this case, Zoho is a registrant, but it could also be an individual. This is your role if you 'own' a domain.
Authoritative Name Server: A domain name server that is considered authoritative for a specific domain.
Stuff registrars can do (among other things):
1.) They can update the ICANN database to disable a domain completely[1]
2.) They can replace your authoritative name servers with their own or someone else's (ex: botnet domains being reassigned to a security company for dismantling via court order)[2]
3.) If the authoritative name servers for a domain are owned by the registrar, then the registrar can merely change the DNS entries themselves to point to something other than the domain owner's wishes.
It's enough of a gray area to make DynamoDB a poor example in this context, since if I were to claim that it was eventually consistent without additional configuration, then an informed person might reasonably assume I didn't know what I was talking about.
It would be better to state that both eventually consistent and fully consistent reads are available, and consistency can be enforced up front via configuration.
“However, note that Random objects in processes running under different versions of the .NET Framework may return different series of random numbers even if they're instantiated with identical seed values.”
I (still) work with a Classic ASP code base.
I kid you not, that there are VBScript functions, which call JScript (not JavaScript) functions, which in turn call VBScript functions.
It is a terrifying and glorious mess.
edit:
I also worked with a system at one time that used node.js to create C# files on the file system, then use the C# compiler to create an executable and then run it. It was... not great.