Depends what your goal is. If you're trying to "beat" your "enemy" by any means necessary, preferably causing them pain along the way, that might work. Unless it turns out they're better at it than you. But if you're more interested in promoting rationality, encouraging intelligent discourse, and getting people to work together to solve problems, that's not a very good strategy.
I appreciate your sentiment, it doesn't make it any less wishful thinking. Rational discourse only works if all parties involved are engaged solely in rational discourse as a means for conflict resolution. If another player in the game is not engaged in rational discourse they will take advantage of the other players solely relying on rational discourse. The rational discourse exclusive players are assuming this sort of ideological high ground but they tend to get demolished by refusing to engage in the other player's tactics on a matter of principle. Do you really think you personally are better off by "falling on your sword" on matters of principle? That's real rational thinking. Real rational thinking involves a true acceptance of circumstances and basing one's actions on those circumstances AND their principles and morals attempting to achieve a balance. You do care about survival don't you? If you were employed by someone that you disagreed with based on their values and it was the only job available, would you make your family starve by quitting if there were no other job to go to? That choice would be irrational.
It's by design. Don't think so? Try to work with your local public school officials to make it part of the curriculum. Take copious notes and record conversations and meetings so you have data to write a book and your time won't be a total waste.
Want to be really sick? Talk to a private school about it and compare the responses.
It sounds you already are familiar with the "data" otherwise you wouldn't know the details about the means to collect it. Why don't you just share the data you are already aware of and your interpretation of the findings?
Yes, emotionally manipulative language is effective, but it doesn't have to be. Train yourself to look for it, and then choose to reject it. When you see someone appealing to your emotions instead of your reason, recognize what they're doing and call them out for it.
Better yet, learn the mechanics of it and out-play your opponent strategically at every turn without them knowing you're doing it until they are frustrated to no end. Nothing produces more butt hurt than that. It's quite satisfying too.
Yes, emotionally manipulative language is effective, but it doesn't have to be. Train yourself to look for it, and then choose to reject it. When you see someone appealing to your emotions instead of your reason, recognize what they're doing and call them out for it.
They ought to be teaching this to school kids.
Right on! They should teach this right alongside money management and debt which is also missing from the school system oddly.
Did you ever get spanked by a parent and have them say "It hurts me more than you" with a genuine facial expression of empathy? It's kind of the same construct. Humans, especially Americans, do this all the time. For those of you coming late to the party, wait until realize how many people have learned this skill to turn negotiating tables effectively as the expense of you, the uninitiated. Ever wonder why Jordan Belfort was so successful in business? We are all slimy to one degree or another because we are primarily motivated by self interest. Those who don't eventually come to understand that become the fodder of those that do. There is no way to fix "the game". You just have to play.
Because the polar ice caps melting were not enough observable evidence? Slashdot, why are you just recycling the same stories over and over again. When are we going to get something new to talk about instead re-hashing all the same crap?
Using interfaces with a single implementation is MORE code maintenance!
If you have multiple implementations, then refactor into an interface (which is trivial with the right tools), but until then keep it simple, stupid.
Correct! You sir are obviously a seasoned programmer. Cheers! FWIW - back in ye olden days we didn't have refactor tools that allowed us to do it in a few clicks. We had to do this all meticulously by hand but we still did it anyway. And we also had to walk uphill in the snow both ways to school too.:P
Your rant seems to completely neglect the small matter of code maintenance and extension. So yeah, there is a good reason for using interfaces and abstraction even if during your tenure you only expect to have one implementation of a specific thing.
You can say what you want, my system has been running, easy to maintain and has a proven track record of 15 years. What do you have? A bunch of theoretical nonsense. That's what you have. Look when you have a hammer, everything looks like a nail. And that's your problem. Some of us never learn. I hope you do.
Unless I'm misunderstanding the article, it sounds like they want people to split their monolithic applications into smaller components that "just do one thing". However, the most important part of this process is designing the whole thing and splitting it into sets of stable APIs. If your APIs are unstable then you are just going to have an undocumented and difficult to understand system that is impossible to debug for anyone but the fools that built it.
Does a graphics card not do one thing but then when combined with a motherboard, CPU, case, etc. becomes a PC? Composition of smaller components to form a bigger component that works. What it requires is people who can zoom into the details and zoom out to see the big picture. Those people who can do that very well are very rare. Usually most people focus on one or the other too much or exclusively.
You're only describing the fads that stuck. Many have disappeared. You've not been in the business long enough to be able to calculate the ratio and as such are engaged in youthful, wishful thinking. When enough time goes by and you're in this field, you'll see. You might want to label me an old grumpy curmudgeon but I was just like you once, exactly like you and was trying to convince old grumpy curmudgeons the same things you are until I became one myself. Remember this 10-20 years down the read and reflect on where you ended up.:) One thing I would advise don't take too long because otherwise you won't realize what is truly important in life and if you don't see it soon enough, you might miss out. Good luck!
A long time ago, management consultants figured out that changing IT architecture fads every 8-10 years and frightening VPs that they might be "left behind" created a nice stream of growing revenue.
Bingo and what you end up realizing is, writing commercial software isn't about writing good software, it's about making money. So... you shift your goals. If you want to write great software, you write software to make money first, amass wealth, then write whatever software you fancy in whatever way you want. You will never be able to do that working for any company.
No. The problem is that, with time, the company has built a large, unmaintenable ball of hair.
It's called Big Ball of Mud actually. How Big Ball of Mud emerges as an anti-pattern is that most people are unqualified to architect software systems even ones who claim to be architects. When management doesn't have people qualified to build a system but the system must be built anyway, you get... Big Ball of Mud. If the same re-write Big Ball of Mud, you keep getting the same thing over and over again. Very few people can avoid the anti-pattern without very careful thought.
Sounds like you had some nutter that decided to just convert the system into microservices without much thought other than... hey lets put them in different micro services.
Bingo. This is the problem with discussing patterns. Many developers (even architects), even incredibly highly educated and intelligent ones are still stuck in the mindset of the "the one pattern/architecture to rule them all". That, in and of itself, is evidence of lack of sufficient experience and that the person has not achieved seasoned Journeyman status. There is no one magic pattern to rule them all that if we practice it religiously we will always write highly scalable, performant, easy to maintain code. Anyone who says otherwise is a fool and if someone made that statement in a job interview with me, they would not get the job because I know their wishful thinking will generate crappy software most likely. How do I know that? Because when I was younger I did the same thing and I watch people do it all the time.
After I learned from all those mistakes I progressed to Journeyman status and architected a highly available (99.999% update) system that achieved all of the things I mentioned above. Was there any one single pattern or practice followed that achieved that? Well, yes, if you consider using your brain to use the right tools/patterns/etc. for each part of the town map. Otherwise, no.
I've been on job interviews where I didn't progress because of things like "you didn't use enough interfaces". Really? I've written real deployed enterprise level code that processes millions of transactions per day without crashing and processes each transaction in milliseconds and you're going to tell me this? You've never achieved anything in your life. Yes my system used interfaces but it used them where appropriate. In that case, where I wanted polymorphic behavior and wanted to allow a third party to provide an entire implementation if they so chose. You don't use something for the sake of using something as if you get points every time you use [insert thingie here]. That's not how good software is written that stands the test of time.
For example, we moved personal info, HR, benefits, and payroll into separate microservices. What used to be a single join now takes dozens of REST calls. It's slow to run and hard to write and verify. We regret our decision.
And now we should all recall Fred Brook's wisdom "there is no silver bullet". The answer is: it depends. I work at company where we did exactly as you suggest and we have gigantic monolithic algorithms that have reached a level of complexity that no amount of unit test or continuous integration testing can manage the software complexity. In this case, yes we should switch to micro services. Why? Because what good is software that has high performance if it's not stable and doesn't do anything customers are willing to pay for?
Please don't trust that you understand all of the ways this might go wrong. Ensure that every change can be backed out before you make it.
Because we did such a great job of that already? Everything in life is a roll of the dice. The best we can do is calculate a probability and probabilities are not certain. There is no such thing as certainty in life.
There are 3 different statistical models, only the "low" one shows a scenario where there is increased population growth followed by a decline. The other two show a high population increase. In the worst case scenario, the projection is somewhere between 15-18 billion people by 2100. Happy? I aim to please.
Alternately, you could react to what GP actually wrote, which is that current demographical analysis and observation shows that the birth rate drops off to slightly under replacement level, given some conditions we're busy creating over the entire planet.
Ok, post the fucking data then instead of claiming that it exists.
If you carefully read the US Constitution it is the legislature's job to make the laws (with the President's signature or overriding a veto) and the executive's job to enforce the laws.
Then go start a grass roots movement and do something about it. Do you really think whining incessantly about how the government doesn't work properly is going to do anything on slashdot? People have been whining about this for decades on slashdot believe it or not.
I am curious how you inferred my position on the Defense of Marriage Act from what I wrote.
Let's walk through it then, here is your quote:
Obama failing to enforce and vigorously defend the Defense of Marriage Act
What can I logically get from this statement? Let's parse it:
1) "Obama failing" - that means Obama failed at something. Obama did not succeed.
2) " enforce and vigorously defend the Defense of Marriage Act" - Obama failed to enforce the act. Another way we could interpret that action, depending on our point of view is that perhaps Obama succeeded at not upholding the act?
3) "enforce and vigorously" using the word vigorously as if Obama should have with great vigor upheld this act
1 suggests a claim that it was a bad choice. 2 suggests that there is a belief he should have upheld it and the interpretation is that because he did not uphold it, he failed at "something" and 3. He should have done so vigorously, now why would someone add vigorously to this statement for any other reason to emphasize it or to project a sense of importance?
There are only really two possibilities: 1) the statement doesn't reflect your view and you are re-iterating someone else's position or 2) the statement reflects your view and it impossible not to conclude that you have put forth a position on the issue. What am I missing?
$250k is going to cover two full time people for a year if you don't run your startup in Silicon Valley. In that year, you can then start you know... bringing in some money, so you can pay them more, or you can prove that your product is worthwhile and get hold of more funding.
I don't deny that $250k is a small number, but arguing that you can't start a company with quarter of a million dollars is ridiculous. Not all startups have to be unicorns.
Let's go back in history to the 1980's, do you think anyone would have ever thought that they could run a company with two employees and somehow within 5 years be making millions in profit margin? If someone said that in the 1980's they would looked at as if they were out of their freaking minds. You want to talk about a sense of entitlement. This one is astonishing.
Real tech start-ups need millions in funding. This looks more like a way for people to buy immigrant entry to the US.
And attempting to fast-track startups by not having to pay fair market value for the labor. Corporations are completely selfish. That's why they won't repatriate their taxes. That would theoretically support the actual country that afforded them the ability to even have a corporation but no, they'll find clever ways to not give back.
Obama failing to enforce and vigorously defend the Defense of Marriage Act
You lost all non-partisan credibility right there. The Defense of Marriage Act was a special interest proposition by Christians. There is supposed to be a separation of Church and State. Just because you have your beliefs doesn't mean you get to use the government as a vehicle to force your beliefs on everybody. If you think that's the definition of marriage and your community thinks that, great. Support that in your community. Not everyone agrees with you or thinks your belief system is true. Get over it.
It's not about protecting jobs. It's about keeping out foreigners.
You are making a wild ass claim here. Your claim is: because it keeps out foreigners, it can't be about protecting American interests, specifically jobs. That is a HUUUUUUGE logical fallacy. It's about BOTH. It's simple economics, it's the same problem with free trade agreements. Corporations have an interest in the cheapest possible labor. All they care about is the balance sheet. In this particular case, it has a detrimental ripple effect to the ACTUAL American citizens. We get screwed just so a bunch of investors and corporate executives can get more rich.
Let me explain something to you, by adopting a liberal stance here, you are essentially supporting sweat shop labor. Do you think that helps the foreigners that you claim to care about? No. You perpetuate the problem and help them stay POVERTY. You treat them like second class citizens by paying them differently just because they're from a different country. That's discrimination is it not? What are you going to propose to solve that problem? That's what I thought.
...especially because of apps like NipAlert and SeeFood.
Depends what your goal is. If you're trying to "beat" your "enemy" by any means necessary, preferably causing them pain along the way, that might work. Unless it turns out they're better at it than you. But if you're more interested in promoting rationality, encouraging intelligent discourse, and getting people to work together to solve problems, that's not a very good strategy.
I appreciate your sentiment, it doesn't make it any less wishful thinking. Rational discourse only works if all parties involved are engaged solely in rational discourse as a means for conflict resolution. If another player in the game is not engaged in rational discourse they will take advantage of the other players solely relying on rational discourse. The rational discourse exclusive players are assuming this sort of ideological high ground but they tend to get demolished by refusing to engage in the other player's tactics on a matter of principle. Do you really think you personally are better off by "falling on your sword" on matters of principle? That's real rational thinking. Real rational thinking involves a true acceptance of circumstances and basing one's actions on those circumstances AND their principles and morals attempting to achieve a balance. You do care about survival don't you? If you were employed by someone that you disagreed with based on their values and it was the only job available, would you make your family starve by quitting if there were no other job to go to? That choice would be irrational.
Oddly?
It's by design. Don't think so? Try to work with your local public school officials to make it part of the curriculum. Take copious notes and record conversations and meetings so you have data to write a book and your time won't be a total waste.
Want to be really sick? Talk to a private school about it and compare the responses.
It sounds you already are familiar with the "data" otherwise you wouldn't know the details about the means to collect it. Why don't you just share the data you are already aware of and your interpretation of the findings?
Yes, emotionally manipulative language is effective, but it doesn't have to be. Train yourself to look for it, and then choose to reject it. When you see someone appealing to your emotions instead of your reason, recognize what they're doing and call them out for it.
Better yet, learn the mechanics of it and out-play your opponent strategically at every turn without them knowing you're doing it until they are frustrated to no end. Nothing produces more butt hurt than that. It's quite satisfying too.
Yes, emotionally manipulative language is effective, but it doesn't have to be. Train yourself to look for it, and then choose to reject it. When you see someone appealing to your emotions instead of your reason, recognize what they're doing and call them out for it.
They ought to be teaching this to school kids.
Right on! They should teach this right alongside money management and debt which is also missing from the school system oddly.
Did you ever get spanked by a parent and have them say "It hurts me more than you" with a genuine facial expression of empathy? It's kind of the same construct. Humans, especially Americans, do this all the time. For those of you coming late to the party, wait until realize how many people have learned this skill to turn negotiating tables effectively as the expense of you, the uninitiated. Ever wonder why Jordan Belfort was so successful in business? We are all slimy to one degree or another because we are primarily motivated by self interest. Those who don't eventually come to understand that become the fodder of those that do. There is no way to fix "the game". You just have to play.
Because the polar ice caps melting were not enough observable evidence? Slashdot, why are you just recycling the same stories over and over again. When are we going to get something new to talk about instead re-hashing all the same crap?
Using interfaces with a single implementation is MORE code maintenance!
If you have multiple implementations, then refactor into an interface (which is trivial with the right tools), but until then keep it simple, stupid.
Correct! You sir are obviously a seasoned programmer. Cheers! FWIW - back in ye olden days we didn't have refactor tools that allowed us to do it in a few clicks. We had to do this all meticulously by hand but we still did it anyway. And we also had to walk uphill in the snow both ways to school too. :P
Your rant seems to completely neglect the small matter of code maintenance and extension. So yeah, there is a good reason for using interfaces and abstraction even if during your tenure you only expect to have one implementation of a specific thing.
You can say what you want, my system has been running, easy to maintain and has a proven track record of 15 years. What do you have? A bunch of theoretical nonsense. That's what you have. Look when you have a hammer, everything looks like a nail. And that's your problem. Some of us never learn. I hope you do.
Unless I'm misunderstanding the article, it sounds like they want people to split their monolithic applications into smaller components that "just do one thing". However, the most important part of this process is designing the whole thing and splitting it into sets of stable APIs. If your APIs are unstable then you are just going to have an undocumented and difficult to understand system that is impossible to debug for anyone but the fools that built it.
Does a graphics card not do one thing but then when combined with a motherboard, CPU, case, etc. becomes a PC? Composition of smaller components to form a bigger component that works. What it requires is people who can zoom into the details and zoom out to see the big picture. Those people who can do that very well are very rare. Usually most people focus on one or the other too much or exclusively.
And fads work.
You're only describing the fads that stuck. Many have disappeared. You've not been in the business long enough to be able to calculate the ratio and as such are engaged in youthful, wishful thinking. When enough time goes by and you're in this field, you'll see. You might want to label me an old grumpy curmudgeon but I was just like you once, exactly like you and was trying to convince old grumpy curmudgeons the same things you are until I became one myself. Remember this 10-20 years down the read and reflect on where you ended up. :) One thing I would advise don't take too long because otherwise you won't realize what is truly important in life and if you don't see it soon enough, you might miss out. Good luck!
A long time ago, management consultants figured out that changing IT architecture fads every 8-10 years and frightening VPs that they might be "left behind" created a nice stream of growing revenue.
Bingo and what you end up realizing is, writing commercial software isn't about writing good software, it's about making money. So... you shift your goals. If you want to write great software, you write software to make money first, amass wealth, then write whatever software you fancy in whatever way you want. You will never be able to do that working for any company.
No. The problem is that, with time, the company has built a large, unmaintenable ball of hair.
It's called Big Ball of Mud actually. How Big Ball of Mud emerges as an anti-pattern is that most people are unqualified to architect software systems even ones who claim to be architects. When management doesn't have people qualified to build a system but the system must be built anyway, you get... Big Ball of Mud. If the same re-write Big Ball of Mud, you keep getting the same thing over and over again. Very few people can avoid the anti-pattern without very careful thought.
All I heard was, "XML Thin Client Push Services XML Java Workstation Structured NoSQL XML New Free Blah Blah XML Blah"
If none of it is new, it doesn't even need a new word. That just proves it is snake oil bullshit and you really just need to upgrade the BOFH.
If you listen to someone talk about something you are unfamiliar with or don't understand, it will all sound like bullshit and/or gibberish.
Sounds like you had some nutter that decided to just convert the system into microservices without much thought other than ... hey lets put them in different micro services.
Bingo. This is the problem with discussing patterns. Many developers (even architects), even incredibly highly educated and intelligent ones are still stuck in the mindset of the "the one pattern/architecture to rule them all". That, in and of itself, is evidence of lack of sufficient experience and that the person has not achieved seasoned Journeyman status. There is no one magic pattern to rule them all that if we practice it religiously we will always write highly scalable, performant, easy to maintain code. Anyone who says otherwise is a fool and if someone made that statement in a job interview with me, they would not get the job because I know their wishful thinking will generate crappy software most likely. How do I know that? Because when I was younger I did the same thing and I watch people do it all the time.
After I learned from all those mistakes I progressed to Journeyman status and architected a highly available (99.999% update) system that achieved all of the things I mentioned above. Was there any one single pattern or practice followed that achieved that? Well, yes, if you consider using your brain to use the right tools/patterns/etc. for each part of the town map. Otherwise, no.
I've been on job interviews where I didn't progress because of things like "you didn't use enough interfaces". Really? I've written real deployed enterprise level code that processes millions of transactions per day without crashing and processes each transaction in milliseconds and you're going to tell me this? You've never achieved anything in your life. Yes my system used interfaces but it used them where appropriate. In that case, where I wanted polymorphic behavior and wanted to allow a third party to provide an entire implementation if they so chose. You don't use something for the sake of using something as if you get points every time you use [insert thingie here]. That's not how good software is written that stands the test of time.
For example, we moved personal info, HR, benefits, and payroll into separate microservices. What used to be a single join now takes dozens of REST calls. It's slow to run and hard to write and verify. We regret our decision.
And now we should all recall Fred Brook's wisdom "there is no silver bullet". The answer is: it depends. I work at company where we did exactly as you suggest and we have gigantic monolithic algorithms that have reached a level of complexity that no amount of unit test or continuous integration testing can manage the software complexity. In this case, yes we should switch to micro services. Why? Because what good is software that has high performance if it's not stable and doesn't do anything customers are willing to pay for?
Please don't trust that you understand all of the ways this might go wrong. Ensure that every change can be backed out before you make it.
Because we did such a great job of that already? Everything in life is a roll of the dice. The best we can do is calculate a probability and probabilities are not certain. There is no such thing as certainty in life.
Here I'll save you the trouble, here's the data: https://en.wikipedia.org/wiki/...
There are 3 different statistical models, only the "low" one shows a scenario where there is increased population growth followed by a decline. The other two show a high population increase. In the worst case scenario, the projection is somewhere between 15-18 billion people by 2100. Happy? I aim to please.
Alternately, you could react to what GP actually wrote, which is that current demographical analysis and observation shows that the birth rate drops off to slightly under replacement level, given some conditions we're busy creating over the entire planet.
Ok, post the fucking data then instead of claiming that it exists.
If you carefully read the US Constitution it is the legislature's job to make the laws (with the President's signature or overriding a veto) and the executive's job to enforce the laws.
Then go start a grass roots movement and do something about it. Do you really think whining incessantly about how the government doesn't work properly is going to do anything on slashdot? People have been whining about this for decades on slashdot believe it or not.
I am curious how you inferred my position on the Defense of Marriage Act from what I wrote.
Let's walk through it then, here is your quote:
What can I logically get from this statement? Let's parse it:
1 suggests a claim that it was a bad choice. 2 suggests that there is a belief he should have upheld it and the interpretation is that because he did not uphold it, he failed at "something" and 3. He should have done so vigorously, now why would someone add vigorously to this statement for any other reason to emphasize it or to project a sense of importance?
There are only really two possibilities: 1) the statement doesn't reflect your view and you are re-iterating someone else's position or 2) the statement reflects your view and it impossible not to conclude that you have put forth a position on the issue. What am I missing?
$250k is going to cover two full time people for a year if you don't run your startup in Silicon Valley. In that year, you can then start you know... bringing in some money, so you can pay them more, or you can prove that your product is worthwhile and get hold of more funding.
I don't deny that $250k is a small number, but arguing that you can't start a company with quarter of a million dollars is ridiculous. Not all startups have to be unicorns.
Let's go back in history to the 1980's, do you think anyone would have ever thought that they could run a company with two employees and somehow within 5 years be making millions in profit margin? If someone said that in the 1980's they would looked at as if they were out of their freaking minds. You want to talk about a sense of entitlement. This one is astonishing.
Real tech start-ups need millions in funding. This looks more like a way for people to buy immigrant entry to the US.
And attempting to fast-track startups by not having to pay fair market value for the labor. Corporations are completely selfish. That's why they won't repatriate their taxes. That would theoretically support the actual country that afforded them the ability to even have a corporation but no, they'll find clever ways to not give back.
Obama failing to enforce and vigorously defend the Defense of Marriage Act
You lost all non-partisan credibility right there. The Defense of Marriage Act was a special interest proposition by Christians. There is supposed to be a separation of Church and State. Just because you have your beliefs doesn't mean you get to use the government as a vehicle to force your beliefs on everybody. If you think that's the definition of marriage and your community thinks that, great. Support that in your community. Not everyone agrees with you or thinks your belief system is true. Get over it.
It's not about protecting jobs. It's about keeping out foreigners.
You are making a wild ass claim here. Your claim is: because it keeps out foreigners, it can't be about protecting American interests, specifically jobs. That is a HUUUUUUGE logical fallacy. It's about BOTH. It's simple economics, it's the same problem with free trade agreements. Corporations have an interest in the cheapest possible labor. All they care about is the balance sheet. In this particular case, it has a detrimental ripple effect to the ACTUAL American citizens. We get screwed just so a bunch of investors and corporate executives can get more rich.
Let me explain something to you, by adopting a liberal stance here, you are essentially supporting sweat shop labor. Do you think that helps the foreigners that you claim to care about? No. You perpetuate the problem and help them stay POVERTY. You treat them like second class citizens by paying them differently just because they're from a different country. That's discrimination is it not? What are you going to propose to solve that problem? That's what I thought.