Many of the interior shots seem to show an accumulating amount of defective pixels, up to a few dozen; mainly permanent white ones. I'm thinking that the camera's CCDs aren't designed to stand up to the relatively high amount of high-energy radiation in low-earth orbit.
Nexus 5 still works great for me as well (after a battery replacement). The market has struggled to produce another phone with stock Android, Qi charging and less than 140 mm in height (my limit for one-handed use).
The only recent competitor I have found is the Nokia 8 Sirocco, but it's price point is three times what the Nexus 5 was offered at. That's a lot of money just to bump the Android version.
A more pragmatic approach for a project may be to run static code analysis on each commit in order to highlight potential bugs and vulnerabilities. Creating a bot that waits for tests to fail and swoop in with a patch based on such analysis then seems like a mostly redundant addition.
Learning DVORAK and switching between them was the easy part. What eventually forced me back to QWERTY was the inconsistent way programs and OSes handled hotkeys. Some would trigger on the character, while others would trigger on the keyboard's scancode. So is Find triggered by Ctrl+F or Ctrl+E? It depends!
I don't yet meet your arbitrary criteria, but one of my favorite programming authors that I just cited on the subject of maintainable code has been programming since 1969, and dedicates chapters to explaining and demonstrating why code such as that which I linked to is a bad idea, and how easy it is to write much better code.
Get back to me when you have been coding for 50 years, and written Minecraft in Haskell. =)
No, it was another way of expressing this, to someone who does not appear to have any comparable experience leading project with a wide audience, much less one that is commercially successful.
That AC is right in a way; Mojang should do what Mojang wants. But I still think you're gravely overestimating the cost in time and money of setting up e.g. SonarQube into the build pipeline. Granted, I haven't worked on games that sell 150+ million copies, but my experience as a senior developer in various projects and teams -- from security programs installed by ~10 million end-users, to games that at their height were played by ~500,000 yearly -- has taught me some lessons, ones that largely echoes one of my favorite authors on programming, Robert C. Martin, who in the introductory chapter of Clean Code writes:
Over the span of a year or two, teams that
were moving very fast at the beginning of a project can find themselves moving at a snail’s
pace. Every change they make to the code breaks two or three other parts of the code. No
change is trivial. Every addition or modification to the system requires that the tangles,
twists, and knots be “understood” so that more tangles, twists, and knots can be added.
Over time the mess becomes so big and so deep and so tall, they can not clean it up. There
is no way at all.
As the mess builds, the productivity of the team continues to decrease, asymptotically
approaching zero. As productivity decreases, management does the only thing they can;
they add more staff to the project in hopes of increasing productivity. But that new staff is
not versed in the design of the system. They don’t know the difference between a change
that matches the design intent and a change that thwarts the design intent. Furthermore,
they, and everyone else on the team, are under horrific pressure to increase productivity. So
they all make more and more messes, driving the productivity ever further toward zero.
The only ways I've experienced successful long-term projects with happy developers is to introduce an objective code quality measure into the build pipeline, limiting bad code buildup. Checks that e.g. put a limit on nesting and cyclomatic complexity, and demand a certain level of code coverage by tests are relatively easy to follow, and do a tremendous good.
Oh... so the "It's the kind of gobbledygook code that I only see from freshly-graduated programmers and in competitive coding puzzles" quip was merely a gratuitous insult.
Nope, that was comparing what I saw in the examples I posted to what I've experienced in the past. The clarification I mentioned later was directed at you. But if my comment was seen as an insult then I feel bad, as it was intended as snark.
You have no idea what the test coverage is. Your unidimensional vision of "craftsmanship" does not compel the conclusion that their code is "poorly written."
I have some idea. DataFixedUpper and LegacyWrapper have zero percent coverage, and brigadier has an unknown amount of coverage because they don't measure it.
Their code is fit for purpose. They've succeeded wildly beyond your measure. Effortlessly criticizing their gift makes you look arrogant, envious, and cheap.
It's open source now. Fix it yourself.
My effortless criticism for why I thought their code seemed to lack in quality even came bundled with a tip on how to remedy it. The tip was perhaps moreso a cautionary tale for fellow Slashdotters to use static code analysis, as I wasn't expecting Mojang to be reading this story submission anyway. Again, if my snark was seen as a gratuitous insult then I will try to make myself clearer in the future.
I'm not sure if you understand that "not... a re-write" is quite inconsistent with "refactoring" and even "cleaning up existing code." You've run the gamut from nothing to ground-up reconstruction in the space of two sentences.
It seems to me that you are arguing against a position I am not taking, and perhaps vice-versa. Your first post seemed to me to speak of spending years re-implementing their code base, and I disagreed with that approach, instead trying to clarify that the existing code can be progressively cleaned up with the guiding help of a static analyzer.
Craftsmanship is only a principal goal for hobbiests. There are many other concerns and goals in most projects, and craftsmanship can validly be subordinated to them. Especially when you're writing a game and not a general purpose library.
I would instead suggest that craftsmanship should be a discipline for engineers. Hobbyists in my experience tend to forgo tests, documentation and maintainability. A game like Minecraft is a long-term money-making project that needs to be maintained for at least a decade. Working with low test coverage and poorly-written code will inevitably lead to bugs and slow feature progression.
I'm not sure if you're aware of what static code analysis is, but it does not necessitate a re-write. Refactoring is something every developer should do, treating it like the Boy Scout Rule. It's as much about cleaning up existing code as it is about not adding new litter.
I suppose that was a bit of hyperbole. However, the actual issue with that method in particular is that it performs several tasks that can be placed into named concepts -- i.e. methods:
* Fetch nodes to loop through
* Parse a node
* Determine if a node meets some criteria
* Recursively parse sub-nodes
* Sort the resulting nodes
The recursive call complicates refactoring though, but the simple act of learning the "Extract to method" shortcut in their IDE could do tremendous good for readability here.
That seems pretty cool. Thanks for the link. Unfortunately it's annoyingly difficult to figure out how to use it in that repository -- or even if it works -- as there are neither documentation nor unit tests.
These code bases have a serious issue with readability and maintainability. They seem to frequently write massivemethodswithdeepnesting, and not even leaving some API or class documentation for posterity.
It's the kind of gobbledygook code that I only see from freshly-graduated programmers and in competitive coding puzzles. Mojang should spend a few days to set up some static code analyzing tool like SonarQube.
I'm more surprised to learn that battery-powered paper shredders exist. What kind of workaholic super lawyer needs to shred documents while on a beach? It seems about as incriminating to be caught with as a spray can or crowbar would.
Well, the edit history does show that the picture was changed because of an article on vox.com. However, the picture of Gérard Mourou lasted for 13h 24m. The picture of Donna Strickland has as of now only lasted 6h ~50m. As Wikipedia is largely a community effort, any of the administrators could change it to, say, the third guy's picture (which currently isn't available) if there was a reason to, or maybe to whatever subject is interesting tomorrow. You shouldn't speculate so wildly that Wikipedia as an entity has done this.
Fittingly, you got the definition of Occam's Razor wrong. It's about preferring the most parsimonious answer, i.e. the one that makes the fewest assumptions.
Whether the population is growing or shrinking depends on the family size. Once the fertility rate goes below 2.0 children per woman, the population will shrink unless immigration can sustain it.
The point is to continue bringing developing countries up to the more stable populations of developed countries. Then global populations rise may then trail off and stabilize.
Anyways, saving millions of children from malaria is all well and good, but what are we gonna do when the world population is 10 billion? 15 billion? Those numbers are coming up fast and will be here soon, definitely within the lifetime of a lot of people on this forum. How about saving millions of people from malaria, but then giving them vasectomy and hysterectomy? Also how about closing down borders and restricting immigration so the high growth countries are forced to confront their internal problems and improves things, instead of exporting their problems to better-run countries?
There are suggestive correlations between reduced child mortality and reduced family size. Professor Hans Rosling gave some famous talks on this: https://www.youtube.com/watch?... (10m 55s in)
Well, if the advertising platform is capable enough then I would guess that the response rate of the targeted audience would be about the same if one targeted the people with the interests "C++," "Linux" and "Kubernetes," as it would be by throwing in the extra tags "male" and "Asian" there.
Nuclear power has great upfront benefits but has one major issue that has not been addressed, what to do with the waste? Nobody wants it. We need solutions, not blind deregulation.
It was in the summary: "a versatile, reactor-based fast neutron source". Depending on the reaction chosen, the resulting waste could have a half-life as short as 100 years.
Then there's fusion power, which has virtually zero waste products. But that's still under research.
Well, electromagnets could do it, akin to maglev trains. You just need massive amounts of electricity running through every road, preferably using room-temperature superconductors. The electricity required could be supplied by the local fusion plant.
I suppose the gene drive technique could be used for weeds as well as mosquitoes. However, weeds are spread with the wind over vast distances, unlike mosquitoes I know. I imagine bio-engineered pollen would have to be dropped from airplanes over huge areas, which might make the public think of Agent Orange.
Once we figure out artificial gravity I'm sure we will prioritize high ceilings and carpeted floors, just like starships were meant to be designed.
Many of the interior shots seem to show an accumulating amount of defective pixels, up to a few dozen; mainly permanent white ones. I'm thinking that the camera's CCDs aren't designed to stand up to the relatively high amount of high-energy radiation in low-earth orbit.
Nexus 5 still works great for me as well (after a battery replacement). The market has struggled to produce another phone with stock Android, Qi charging and less than 140 mm in height (my limit for one-handed use).
The only recent competitor I have found is the Nokia 8 Sirocco, but it's price point is three times what the Nexus 5 was offered at. That's a lot of money just to bump the Android version.
A more pragmatic approach for a project may be to run static code analysis on each commit in order to highlight potential bugs and vulnerabilities. Creating a bot that waits for tests to fail and swoop in with a patch based on such analysis then seems like a mostly redundant addition.
Learning DVORAK and switching between them was the easy part. What eventually forced me back to QWERTY was the inconsistent way programs and OSes handled hotkeys. Some would trigger on the character, while others would trigger on the keyboard's scancode. So is Find triggered by Ctrl+F or Ctrl+E? It depends!
I don't yet meet your arbitrary criteria, but one of my favorite programming authors that I just cited on the subject of maintainable code has been programming since 1969, and dedicates chapters to explaining and demonstrating why code such as that which I linked to is a bad idea, and how easy it is to write much better code.
Get back to me when you have been coding for 50 years, and written Minecraft in Haskell. =)
No, it was another way of expressing this, to someone who does not appear to have any comparable experience leading project with a wide audience, much less one that is commercially successful.
That AC is right in a way; Mojang should do what Mojang wants. But I still think you're gravely overestimating the cost in time and money of setting up e.g. SonarQube into the build pipeline. Granted, I haven't worked on games that sell 150+ million copies, but my experience as a senior developer in various projects and teams -- from security programs installed by ~10 million end-users, to games that at their height were played by ~500,000 yearly -- has taught me some lessons, ones that largely echoes one of my favorite authors on programming, Robert C. Martin, who in the introductory chapter of Clean Code writes:
The only ways I've experienced successful long-term projects with happy developers is to introduce an objective code quality measure into the build pipeline, limiting bad code buildup. Checks that e.g. put a limit on nesting and cyclomatic complexity, and demand a certain level of code coverage by tests are relatively easy to follow, and do a tremendous good.
Oh... so the "It's the kind of gobbledygook code that I only see from freshly-graduated programmers and in competitive coding puzzles" quip was merely a gratuitous insult.
Nope, that was comparing what I saw in the examples I posted to what I've experienced in the past. The clarification I mentioned later was directed at you. But if my comment was seen as an insult then I feel bad, as it was intended as snark.
You have no idea what the test coverage is. Your unidimensional vision of "craftsmanship" does not compel the conclusion that their code is "poorly written."
I have some idea. DataFixedUpper and LegacyWrapper have zero percent coverage, and brigadier has an unknown amount of coverage because they don't measure it.
Their code is fit for purpose. They've succeeded wildly beyond your measure. Effortlessly criticizing their gift makes you look arrogant, envious, and cheap.
It's open source now. Fix it yourself.
My effortless criticism for why I thought their code seemed to lack in quality even came bundled with a tip on how to remedy it. The tip was perhaps moreso a cautionary tale for fellow Slashdotters to use static code analysis, as I wasn't expecting Mojang to be reading this story submission anyway. Again, if my snark was seen as a gratuitous insult then I will try to make myself clearer in the future.
I'm not sure if you understand that "not... a re-write" is quite inconsistent with "refactoring" and even "cleaning up existing code." You've run the gamut from nothing to ground-up reconstruction in the space of two sentences.
It seems to me that you are arguing against a position I am not taking, and perhaps vice-versa. Your first post seemed to me to speak of spending years re-implementing their code base, and I disagreed with that approach, instead trying to clarify that the existing code can be progressively cleaned up with the guiding help of a static analyzer.
Craftsmanship is only a principal goal for hobbiests. There are many other concerns and goals in most projects, and craftsmanship can validly be subordinated to them. Especially when you're writing a game and not a general purpose library.
I would instead suggest that craftsmanship should be a discipline for engineers. Hobbyists in my experience tend to forgo tests, documentation and maintainability. A game like Minecraft is a long-term money-making project that needs to be maintained for at least a decade. Working with low test coverage and poorly-written code will inevitably lead to bugs and slow feature progression.
I'm not sure if you're aware of what static code analysis is, but it does not necessitate a re-write. Refactoring is something every developer should do, treating it like the Boy Scout Rule. It's as much about cleaning up existing code as it is about not adding new litter.
I suppose that was a bit of hyperbole. However, the actual issue with that method in particular is that it performs several tasks that can be placed into named concepts -- i.e. methods:
* Fetch nodes to loop through
* Parse a node
* Determine if a node meets some criteria
* Recursively parse sub-nodes
* Sort the resulting nodes
The recursive call complicates refactoring though, but the simple act of learning the "Extract to method" shortcut in their IDE could do tremendous good for readability here.
That seems pretty cool. Thanks for the link. Unfortunately it's annoyingly difficult to figure out how to use it in that repository -- or even if it works -- as there are neither documentation nor unit tests.
These code bases have a serious issue with readability and maintainability. They seem to frequently write massive methods with deep nesting, and not even leaving some API or class documentation for posterity.
It's the kind of gobbledygook code that I only see from freshly-graduated programmers and in competitive coding puzzles. Mojang should spend a few days to set up some static code analyzing tool like SonarQube.
That's a lot of speculation. The person who triggered the shredding could have just been tasked to do it by Banksy.
I'm more surprised to learn that battery-powered paper shredders exist. What kind of workaholic super lawyer needs to shred documents while on a beach? It seems about as incriminating to be caught with as a spray can or crowbar would.
Well, the edit history does show that the picture was changed because of an article on vox.com. However, the picture of Gérard Mourou lasted for 13h 24m. The picture of Donna Strickland has as of now only lasted 6h ~50m. As Wikipedia is largely a community effort, any of the administrators could change it to, say, the third guy's picture (which currently isn't available) if there was a reason to, or maybe to whatever subject is interesting tomorrow. You shouldn't speculate so wildly that Wikipedia as an entity has done this.
Fittingly, you got the definition of Occam's Razor wrong. It's about preferring the most parsimonious answer, i.e. the one that makes the fewest assumptions.
Whether the population is growing or shrinking depends on the family size. Once the fertility rate goes below 2.0 children per woman, the population will shrink unless immigration can sustain it.
Japan's declining population is in part due to that fertility rate of 5.10 in 1925 shrinking to 1.43 in 2013 [ref, page 36, but labeled as page 70].
The point is to continue bringing developing countries up to the more stable populations of developed countries. Then global populations rise may then trail off and stabilize.
Anyways, saving millions of children from malaria is all well and good, but what are we gonna do when the world population is 10 billion? 15 billion? Those numbers are coming up fast and will be here soon, definitely within the lifetime of a lot of people on this forum. How about saving millions of people from malaria, but then giving them vasectomy and hysterectomy? Also how about closing down borders and restricting immigration so the high growth countries are forced to confront their internal problems and improves things, instead of exporting their problems to better-run countries?
There are suggestive correlations between reduced child mortality and reduced family size. Professor Hans Rosling gave some famous talks on this: https://www.youtube.com/watch?... (10m 55s in)
I haven't brought it up before. I thought the absurd scenario I described would draw a chuckle from satirizing old-timey thinking.
You know, comedy.
At the end of the day, one of the team members who was a homosexual was given a cyanide pill.
Well, if the advertising platform is capable enough then I would guess that the response rate of the targeted audience would be about the same if one targeted the people with the interests "C++," "Linux" and "Kubernetes," as it would be by throwing in the extra tags "male" and "Asian" there.
Nuclear power has great upfront benefits but has one major issue that has not been addressed, what to do with the waste? Nobody wants it. We need solutions, not blind deregulation.
It was in the summary: "a versatile, reactor-based fast neutron source". Depending on the reaction chosen, the resulting waste could have a half-life as short as 100 years.
Then there's fusion power, which has virtually zero waste products. But that's still under research.
master -> snake charmer
slave -> python
Well, electromagnets could do it, akin to maglev trains. You just need massive amounts of electricity running through every road, preferably using room-temperature superconductors. The electricity required could be supplied by the local fusion plant.
I disagree. If you're restricted to runways then it's not usable as a car.
I suppose the gene drive technique could be used for weeds as well as mosquitoes. However, weeds are spread with the wind over vast distances, unlike mosquitoes I know. I imagine bio-engineered pollen would have to be dropped from airplanes over huge areas, which might make the public think of Agent Orange.