Animation shows the temperature change by country from year 1880 to 2019 - <AUTHOR> https://twitter.com/anttilip/status/1217529718938820610 <comment><USER2> Very cool.

Also, see this: [https://i.redd.it/h6annrws3qa41.png](https://i.redd.it/h6annrws3qa41.png)

<comment><USER3> Er, you meant, very warm?

<comment><USER2> ...duh.

</comment></comment></comment><comment><USER4> Very nice animation! Data is suspect, though -- US 1937 should be bright red, not pale yellow. 1937 had record heat wave in US.

<comment><USER5> ...which followed one of the coldest winters on record, which brings the average down.

</comment></comment><comment><USER6> The visualization makes it look a little terrifying. Maybe that's an understatement...

<comment><USER7> You can make anything look terrifying with an appropriate choice of palette.

(That's not to say the data aren't also terrifying, of course.)

</comment></comment><comment><USER8> Is it practical to have giant nuclear powered facilities that either pump cooled air or artificially cool surface ocean water? Or just use the electricity to break down water for O2 production and use the hydrogen to power other things?

<comment><USER9> > or artificially cool surface ocean water

Good curiosity, but they would have to put out atleast an equal amount of heat into the atmosphere! (2nd law of thermodynamics).

<comment><USER10> People are still trying to work out if we can make black bodies that are biased to radiate more heat in frequencies that the atmosphere is permeable to.

We have some materials that are much more thermally conductive in one direction than the other. Pair the two, and it might just be possible to shed some heat into space at night.

Entropy always wins. It's the heat trapped in the atmosphere that's killing us. The universe is a mighty big heat sink though.

<comment><USER11> Interesting. Do you have resources/keywords I can use to know more about such research?

<comment><USER10> Search for radiating heat into space. There were some reports about 8-10 years back. Occasionally you will see people working on materials that have narrow emissions spectra, but I think they may have other things in mind, like combining them with photovoltaics to make solid state heat engines. Which has the potential to be much more efficient than thermocouples. Thermocouples are so far from their theoretical limits that boosting the conversion rate by single digit percentage points is more than doubling efficiency, which is how we ended up with a new thromocouple material on the front page of HN a month ago.

</comment></comment></comment></comment></comment><comment><USER12> In 28 August 1981, the mean surface temperature is 288K = 15 degree C:

[http://climate-dynamics.org/wp- content/uploads/2016/06/hanse...](http://climate-dynamics.org/wp- content/uploads/2016/06/hansen81a.pdf)

\</comment><comment>----

In 1988, it was claimed that the global avg temperature was 59 deg F = 15 degree C

Multiple sources:

[https://www.nytimes.com/1988/03/29/science/temperature- for-w...](https://www.nytimes.com/1988/03/29/science/temperature-for-world- rises-sharply-in-the-1980-s.html)

[https://news.google.com/newspapers?nid=1915&dat=19880705&id=...](https://news.google.com/newspapers?nid=1915&dat=19880705&id=kKMtAAAAIBAJ&sjid=9HEFAAAAIBAJ&pg=4970,774657&hl=en)

\</comment><comment>----

IPCC's First Assessment Report in 1990, table on page xxxvii of the report listed the "Observed Surface Temperature" of Earth as 15 degrees Celsius:

[https://www.ipcc.ch/site/assets/uploads/2018/03/ipcc_far_wg_...](https://www.ipcc.ch/site/assets/uploads/2018/03/ipcc_far_wg_I_introduction-1.pdf)

\</comment><comment>----

In Jan 12 1992, it's 15 degree C:

[https://news.google.com/newspapers?id=S2xGAAAAIBAJ&sjid=7ugM...](https://news.google.com/newspapers?id=S2xGAAAAIBAJ&sjid=7ugMAAAAIBAJ&pg=4134,2440761&dq=helene+wilson+59+fahrenheit+hansen&hl=en)

\</comment><comment>----

############## SOMETHING CHANGED IN 1997:

"Global Temperature Down Slightly":

[https://books.google.ca/books?id=VyFpAwAAQBAJ&pg=PA62&lpg=PA...](https://books.google.ca/books?id=VyFpAwAAQBAJ&pg=PA62&lpg=PA62&dq=%22Global+Temperature+Down+Slightly%22&source=bl&ots=mLv2gwmG4l&sig=ACfU3U0qk- nM4FnLgI7jNAGbl9c0xQyiCg&hl=en&sa=X&ved=2ahUKEwjclpLCsbTlAhUJVN8KHV1sCsUQ6AEwBXoECAkQAQ#v=onepage&q=%22Global%20Temperature%20Down%20Slightly%22&f=false)

\</comment><comment>----

December 14, 2002: They magically started using 14C as the long term average instead of 15C without any explanation:

[https://www.smh.com.au/world/global-warming-blamed-for- heat-...](https://www.smh.com.au/world/global-warming-blamed-for- heat-20021214-gdfyre.html)

> This year the Earth's average temperature was 14.64C, compared with the > long-term average of 14C, said James Hansen, of NASA's Goddard Institute for > Space Studies, who analyses the data collected from thousands of weather > stations around the world. The meteorological year runs from December to > November. During that period, 2001 temperatures were 14.51C. The record > remains with 1998, when global temperature rose to 14.67C - the highest > since records were first compiled in the late 1800s. The warm temperatures > of 2001 and 2002 are especially significant when they are considered in the > light of El Nino weather patterns that alter global climate, Mr Hansen said. > "The fact that 2002 is almost as warm as the unusual warmth of 1998 is > confirmation that the underlying global warming trend is continuing," Mr > Hansen said.

\</comment><comment>----

August 25, 2011:

> But Hansen and colleagues have estimated that Earth's actual average surface > air temperature between 1951 and 1980 was approximately 287 K (14 degrees > Celsius) (Hansen et al. 2010). The difference in temperature is attributed > to greenhouse gases that trap thermal radiation, warming Earth as depicted > in figure 2.1.

[https://www.gao.gov/assets/330/322216.html](https://www.gao.gov/assets/330/322216.html)

##########

Sometime between 1997 and 1998, they magically started claiming the avg to be 14 degree C instead of 15.

18 January 1998's "Vital Signs 1998: The Environmental Trends that are Shaping Our Future" magazine made this magical change with a small footnote:

[https://books.google.ca/books?id=EfZRAwAAQBAJ&pg=PA174&lpg=P...](https://books.google.ca/books?id=EfZRAwAAQBAJ&pg=PA174&lpg=PA174&dq=In+earlier+versions+of+Vital+Signs,+Worldwatch+added+the+temperature+change+reported+by+the+Goddard+Institute+to+an+estimated+global+temperature+of+15+degrees+Celsius,+but+the+institute+has+since+informed+Worldwatch+that+a+better+base+number+would+be+14+degrees+Celsius.+James+Hansen,+Goddard+Institute+for+Space+Studies,+New+York,+email+to+author,+18+January+1998.%E2%80%9D&source=bl&ots=2ZyDz- pRJg&sig=ACfU3U0Dwas7rcxUuEt3Ef03BGVN6FN8Rw&hl=en&sa=X&ved=2ahUKEwj-4KHKoYrnAhVMCc0KHRkFBtsQ6AEwAHoECAoQAQ#v=onepage&q=In%20earlier%20versions%20of%20Vital%20Signs%2C%20Worldwatch%20added%20the%20temperature%20change%20reported%20by%20the%20Goddard%20Institute%20to%20an%20estimated%20global%20temperature%20of%2015%20degrees%20Celsius%2C%20but%20the%20institute%20has%20since%20informed%20Worldwatch%20that%20a%20better%20base%20number%20would%20be%2014%20degrees%20Celsius.%20James%20Hansen%2C%20Goddard%20Institute%20for%20Space%20Studies%2C%20New%20York%2C%20email%20to%20author%2C%2018%20January%201998.%E2%80%9D&f=false)

> In earlier versions of Vital Signs, Worldwatch added the temperature change > reported by the Goddard Institute to an estimated global temperature of 15 > degrees Celsius, but the institute has since informed Worldwatch that a > better base number would be 14 degrees Celsius. James Hansen, Goddard > Institute for Space Studies, New York, email to author, 18 January 1998."

Can someone please explain this unexplained change on how avg surface temperature between 1951 and 1980 went from claims that it was 15C to now being claimed it was 14C?

Edited: changed magic to unexplained change

<comment><USER13> The research is done in terms of a temperature anomaly from a reference that is chosen. The absolute mean temperature is an estimate based on the specific technique chosen using the data as input. The delta values are more important because they are calculated with a consistent method for a given model, whereas from model to model the value may change.

from [https://www.pnas.org/content/94/16/8314](https://www.pnas.org/content/94/16/8314)

""" The two main marine data sets are those of Jones et al. (ref. 9; see also ref. 11) and the U.K. Meteorological Office (UKMO) (12, 13). These two data sets have overlapping primary source material but differ in the way that they are corrected for instrumentation changes. """

[https://pubs.giss.nasa.gov/docs/2007/2007_Hansen_ha09210n.pd...](https://pubs.giss.nasa.gov/docs/2007/2007_Hansen_ha09210n.pdf) (mentions the particular model in section 1, along with a discussion of the data sources).

You basically want to be looking at the temperature anomaly not the absolute temperature.

<comment><USER12> That doesn't answer the sudden change from 15C claims to 14C for the 1950-1980 period.

For example, in the following data, for 2016, they say the average global temperature as 14.8C:

[https://www.ncdc.noaa.gov/sotc/global/201613](https://www.ncdc.noaa.gov/sotc/global/201613)

If the average global temp used to be claimed to be 15C but since 2000, they claim it was 14C, then somebody is making false claims about the avg temp.

<comment><USER13> The larger point I'm trying to make is that average global temperature is something that is calculated as a result of the specific method the people doing the study use. It's not a simple average of a list of numbers. It tries to account for missing and spotty data, instrument biases, location biases, etc.

So if they find a better way to do it the calculated value will change.

<comment><USER12> That's a fair point and others have mentioned that before. However, all the sources I have used in my original comment are from the same person - Dr James Hansen who served as the director of NASA Goddard institute for 35 years. He used the 15C claim for many years until he suddenly decided to switch to 14C. In any scientific claim, especially when such small changes could impact major things, a scientist shouldn't simply be allowed to change their data claims without any explanation, especially when it suddenly doesn't fit their claim.

Also in this source:

[https://books.google.ca/books?id=VyFpAwAAQBAJ&pg=PA62&lpg=PA...](https://books.google.ca/books?id=VyFpAwAAQBAJ&pg=PA62&lpg=PA62&dq=%22Global+Temperature+Down+Slightly%22&source=bl&ots=mLv2gwmG4l&sig=ACfU3U0qk- nM4FnLgI7jNAGbl9c0xQyiCg&hl=en&sa=X&ved=2ahUKEwjclpLCsbTlAhUJVN8KHV1sCsUQ6AEwBXoECAkQAQ#v=onepage&q=%22Global%20Temperature%20Down%20Slightly%22&f=false)

in 1997, the scientific community knew that the temperature was actually going down and not up:

> "Global Temperature Down Slightly"

<comment><USER14> Fortunately there are an awful lot of other proxy variables which can be used to show a long-term change in climate. One example of thousands is the Japanese cherry blossom season: [https://www.economist.com/graphic- detail/2017/04/07/japans-c...](https://www.economist.com/graphic- detail/2017/04/07/japans-cherry-blossoms-are-emerging-increasingly-early)

And yes, there have been reversals in some years. But overall you can see the industrialisation "hockey stick" quite clearly in that calendar data.

<comment><USER12> That graph seems to have opposing data for the global Medieval Warm Period and Little Ice Age. Medieval Warm Period (MWP) from about 900 A.D. to 1300 A.D. and the Little Ice Age (LIA) from about 1300 A.D. to 1915 A.D.

<comment><USER14> The MWP was a local phenomenon; per wikipedia

> The Medieval Warm Period (MWP) also known as the Medieval Climate Optimum, > or Medieval Climatic Anomaly was a time of warm climate in the North > Atlantic region lasting from c. 950 to c. 1250.[1] It was likely[2] related > to warming elsewhere[3][4][5] while some other regions were colder, such as > the tropical Pacific

.. which implies that Japan may have been slightly colder at the time.

(Neatly illustrates that computing _global_ average temperature from a set of local measurements is not as simple as it sounds, because there may also be local climate phenomena)

<comment><USER12> Wikipedia contradicts IPCC's reports from the past. Even the thing about Japan contradicts the IPCC report.

Until 2000, it was claimed that the MWP was global.

IPCC's 1990s report Page 8 of 44 (PDF page number, not the one on the text)

[https://www.ipcc.ch/site/assets/uploads/2018/03/ipcc_far_wg_...](https://www.ipcc.ch/site/assets/uploads/2018/03/ipcc_far_wg_I_chapter_07-1.pdf)

Look at the bottom graph and the text.

> Schematic diagrams of global temperature variations since the Pleistocene on > three time scales > There is giowing evidence that worldwide temperatures > were higher than at present during the mid-Holocene (especially 5 000-6 000 > BP), at least in summer, though carbon dioxide levels appear to have been > quite similar to those of the pre-mdustnal era at this time (Section 1 i > Thus parts <si western Euiope China, Japan, the eastern USA were a few > degrees warmer in July during the midHolocene than in recent decades > (Yoshino and Urushibara, 1978, Webb ct al 1987, Huntley and Prentice, 1988, > Zhang and Wang 1990) Parts of Australasia and Chile were also waimei The > late tenth to early thirteenth centuries (about AD 950-1250) appear to have > been exceptionally warm in western Europe, Iceland and Greenland (Alexandre > 1987, Lamb, 1988) This period is known as the Medieval Climatic Optimum > China was, however, cold at this time (mainly in winter) but South Japan was > warm (Yoshino, 1978) This period of widespread warmth is notable in that > there is no evidence that it was accompanied by an increase of greenhouse > gases

Sorry about the spelling issues in the copied text, the PDF's OCR isn't the best.

\</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment>-

Also here in another report, graph b) on page 2/16 shows the same MWP and little ice age as "Global temperature trend for millennium"

[https://web.archive.org/web/20070404001809/http://www.epa.go...](https://web.archive.org/web/20070404001809/http://www.epa.gov/climatechange/effects/downloads/Challenge_chapter2.pdf)

The graph c) also shows that in the past 25,000 years, it first used to be much colder, then got much hotter and then cooler and then warmer. It is pretty much impossible for it to be a local phenomenon if the variation was that much in that many areas.

\</comment><comment>-

[https://www.epw.senate.gov/public/index.cfm/hearings?Id=BFE4...](https://www.epw.senate.gov/public/index.cfm/hearings?Id=BFE4D91D-802A-23AD-4306-B4121BF7ECED&Statement_id=361256C4-11DC-4E5D-8D1D-9FEDF082D081)

Dr. David Deming, geologist and geophysicist, College of Earth and Energy, University of Oklahoma, senate testimony from December 6, 2006:

> I had another interesting experience around the time my paper in Science was > published. I received an astonishing email from a major researcher in the > area of climate change. He said, "We have to get rid of the Medieval Warm > Period." The Medieval Warm Period (MWP) was a time of unusually warm weather > that began around 1000 AD and persisted until a cold period known as the > "Little Ice Age" took hold in the 14th century. Warmer climate brought a > remarkable flowering of prosperity, knowledge, and art to Europe during the > High Middle Ages. The existence of the MWP had been recognized in the > scientific literature for decades. But now it was a major embarrassment to > those maintaining that the 20th century warming was truly anomalous. It had > to be "gotten rid of."

\</comment><comment>--

Edit:

I read the wikipedia citation:

[https://en.wikipedia.org/wiki/Medieval_Warm_Period#cite_note...](https://en.wikipedia.org/wiki/Medieval_Warm_Period#cite_note-2)

The citation seems to contradict what's said in the wikipedia.

[http://ruby.fgcu.edu/courses/twimberley/EnviroPhilo/Glacial....](http://ruby.fgcu.edu/courses/twimberley/EnviroPhilo/Glacial.pdf)

> The first phase of the LIA began around the thirteenth century in all the > regions for which there is evidence. The glacial phase preceding the MWP > seems to have begun between the seventh and ninth centuries A.D. but is > generally less securely dated and not dated at all in Canada. There are at > least some indications of fluctuations in ice position in the course of the > MWP in Norway, Alaska, and perhaps in extratropical South America and New > Zealand, indicating that recession may have been interrupted by advances, > perhaps of limited extent, as in the European Alps. The available evidence > suggests that the MWP was global in extent and not uniform climatically. The > glacial data needs to be considered in relation to that from other sources, > but is of value in obtaining a more complete understanding of both the > environment in the later medieval period and the possible causes of climatic > change on the century time scale.

> The available evidence suggests that the MWP was global in extent and not > uniform climatically.

<comment><USER12> Reading the wikipedia, every single citation they used contradicts what the wikipedia says:

[https://en.wikipedia.org/wiki/Medieval_Warm_Period#cite_note...](https://en.wikipedia.org/wiki/Medieval_Warm_Period#cite_note- Grove94-3)

[http://ruby.fgcu.edu/courses/twimberley/EnviroPhilo/Glacial....](http://ruby.fgcu.edu/courses/twimberley/EnviroPhilo/Glacial.pdf)

> The first phase of the LIA began around the thirteenth century in all the > regions for which there is evidence. The glacial phase preceding the MWP > seems to have begun between the seventh and ninth centuries A.D. but is > generally less securely dated and not dated at all in Canada. There are at > least some indications of fluctuations in ice position in the course of the > MWP in Norway, Alaska, and perhaps in extratropical South America and New > Zealand, indicating that recession may have been interrupted by advances, > perhaps of limited extent, as in the European Alps. The available evidence > suggests that the MWP was global in extent and not uniform climatically. The > glacial data needs to be considered in relation to that from other sources, > but is of value in obtaining a more complete understanding of both the > environment in the later medieval period and the possible causes of climatic > change on the century time scale.

> The available evidence suggests that the MWP was global in extent and not > uniform climatically.

[https://link.springer.com/article/10.1007%2FBF01092411](https://link.springer.com/article/10.1007%2FBF01092411)

> Dating of organic material closely associated with moraines in many montane > regions has reached the point where it is possible to survey available > information concerning the timing of the medieval warm period. The results > suggest that it was a global event occurring between about 900 and 1250 > A.D., possibly interrupted by a minor readvance of ice between about 1050 > and 1150 A.D.

The other citation they used is:

[https://en.wikipedia.org/wiki/Medieval_Warm_Period#cite_note...](https://en.wikipedia.org/wiki/Medieval_Warm_Period#cite_note-2)

[https://science.sciencemag.org/content/342/6158/617](https://science.sciencemag.org/content/342/6158/617)

> The findings support the view that the Holocene Thermal Maximum, the > Medieval Warm Period, and the Little Ice Age were global events, and they > provide a long-term perspective for evaluating the role of ocean heat > content in various warming scenarios for the future.

[https://en.wikipedia.org/wiki/Medieval_Warm_Period#cite_ref-...](https://en.wikipedia.org/wiki/Medieval_Warm_Period#cite_ref-4)

[https://books.google.ca/books?id=z-BWE4iCrfYC&pg=PA134&redir...](https://books.google.ca/books?id=z-BWE4iCrfYC&pg=PA134&redir_esc=y#v=onepage&q&f=false)

> "They conclude that the Medieval Warm Period was a global event"

</comment></comment><comment><USER15> Is it fair to say the temperatures in tropical areas change slowly?

<comment><USER16> It is alarming to say that temperatures around polar areas increased a lot. That is where a couple of positive reinforcement loops are located (less reflective surface because ice melted, and the release of frozen greenhouse gases).

In fact, animations that show the average global temperature increase, or local, but by (alphabetically sorted) countries like this one don't let us see that trend.

Another mostly hidden temperature trend (that may have regional component too) is the sea temperature, as water is capturing most of the heat. And in part that is what is fueling extreme weather events.

</comment></comment><comment><USER17> So why are we to draw any conclusions one way or the other based off a data set that's statistically insignificant compared to the age of the earth?

<comment><USER18> Does the dataset before the dawn of agriculture and permanent settlements matter that much?

The conversation largely revolves around flooding and food production.

The earth will be fine, itll bounce back. Billions of people however, could be displaced from their homes as their land floods, or starve if food production and distribution is destroyed. The Earth had maybe 1 billion people 200 years ago. Now its at 7.5. Unprecedented doesnt begin to describe the migration that would occur if the Earth lost its coastal cities.

What I dont like about this animation is that giant land masses like the USA and Russia get the same treatment as tiny countries. The average temperature of the USA is a lot less useful than if it were broken down by region.</comment></comment>


Google – A Study In Scalability And A Little Systems Horse Sense - <AUTHOR> https://doubleclix.wordpress.com/2010/11/11/google-a-study-in-scalability-and-a-little-systems-horse-sense/

<comment><USER2> Absolutely fantastic notes, the standout ones to me:

"They have had 7 significant revisions in 11 years" - This echos something I've learned in my own career. You'll never ever ever ever get it right the first time. If you spend all of your time trying to get it right the first time, you'll never produce anything. BUILD! (but plan well to eliminate obvious mistakes).

"All their systems work well inside a datacenter, but have no way f spanning datacenters." - This was a real surprise. I guess I had mistakenly assumed that all of Google's distributed resources lived as one giant meta-machine. I never realized how disconnected the datacenters were.

"Don't design to scale infinitely – consider 5X – 50X growth. But > 100X requires redesign << very insightful" - quote says it all.

<comment><USER3> If you care about latency, you can't abstract away the existence of data centers. The round trip speed of light means that that abstraction leaks too much.

<comment><USER4> Such a system could, in theory, abstract away the existence of data centers by _optimizing_ for latency. Wherever the user is, perform the computation by using the copies of data that result in the lowest time spent hopping between DCs. And shard the data between DCs so that data that's frequently used together stays together, and data lives near its likely point of use, and replicas give good coverage of possible access points.

Performing this calculation in a way that's faster than just going and fetching the data is left as an exercise to the reader. And Jeff Dean.

</comment></comment></comment><comment><USER3> For those who don't know, Jeff Dean is probably the most respected developer within Google. See <http://research.google.com/people/jeff/index.html> for some of what he has done.

<comment><USER5> Internally there's a "Jeff Dean Facts" page in the spirit of Chuck Norris Jokes. It includes things such as "Once, in early 2002, when the index servers went down, Jeff Dean answered user queries manually for two hours. Evals showed a quality improvement of 5 points."

<comment><USER6> Is there any chance of this being released to the public?

...or even a chance of you sending me a copy (which of course I would keep to myself!)

<comment><USER5> It references too many internal things for that, but as a consolation prize, here's my second favorite:

"Jeff Dean puts his pants on one leg at a time, but if he had more than two legs, you would see that his approach is actually O(log n)."</comment></comment></comment></comment>


Exercises in Emulation: Xbox 360's FMA Instruction - <AUTHOR> https://randomascii.wordpress.com/2019/03/20/exercises-in-emulation-xbox-360s-fma-instruction/ <comment><USER2> _> I left the Xbox team long before the Xbox One shipped and I haven't paid any attention to it since then, so I don't know what they decided to do._

From experience trying to play 360 games on an Xbox One, the console reads nothing from the DVD and instead downloads the game from the Internet. It also only works for specific games. I therefore assume they gave up with emulation and simply recompiled certain 360 games for x64.

<comment><USER3> [https://www.eurogamer.net/articles/digitalfoundry-2017-xbox-...](https://www.eurogamer.net/articles/digitalfoundry-2017-xbox- one-x-back-compat-how-does-it-actually-work)

<comment><USER4> This makes me wonder if the Halo Master Chief Collection release on PC will be based on emulation.

<comment><USER5> The Xbox One is x86/64, so emulation shouldn't be necessary for the MCC. The remaining questions are how much it is a "port" from what was released on the Xbox One.

\- Supposedly the early Xbox One games used a fork/version of DirectX that wasn't ever quite released in that form in Windows 10. Rumors are that has been corrected in the upcoming April Release.

\- Also, the early Xbox One games used very different Microsoft Store asset servers/etc. The State of Decay Insider tests seem to indicate that April Release of Windows 10's Microsoft Store can now speak to Xbox asset servers/etc directly. (Indications that the State of Decay game installed from possibly the exact same assets in the April Release as it would on an Xbox One.)

\- Finally, early Xbox One games sometimes made assumptions that they ran in lightweight VMs with almost no multitasking (except for Kinect-related restrictions when that was mandatory) and some very specific performance characteristics versus the wild west of available PC hardware. Rumors abound that Hyper-V improvements in Windows 10 solve some of the VM/multitasking issues. Leaving only, perhaps, the need to test on a variety of PC hardware configurations.

Obviously, a lot of speculation there. Presumably a lot more information will surface as the April Release happens and as E3 approaches.

<comment><USER5> Also, to point out it doesn't appear that the MCC itself uses 360 emulation. It predates the 360 emulation, for one thing, and you can easily contrast how the MCC runs to Rare Replay which does clearly boot up the 360 VM for some of its games (and which show up outside of the combined Replay launcher in the Games Library as back compat 360 games).

Supposedly a true x64 port of the multiple generations of the Halo engines was an important goal of the 343 team to feel that they knew the engines inside and out, and had a good handle on using that engine for Halo 5 to give a longer lead time on their next engine. (Halo Infinite [6] supposedly will use a brand new engine codenamed "Slipspace".)

Other signs that MCC was most likely a very "proper" port of the engines to x64 include some of the ways bugs riddled the early post-launch phases, especially in multiplayer code.

</comment></comment></comment></comment></comment><comment><USER6> Personally found this article overly dramatic and a bit dumb. All this wall of text just to point out that FMA needs to be emulated... ok.. but it's a solved problem. This is also not a new problem.. fmaf is defined in C99 standard so There are multiple open source library implementations of FMA using round to odd for years.

You can just read that code and see how it's done. Despite the ridiculous ending there was no mystery to begin with.

[https://www.lri.fr/~melquion/doc/08-tc.pdf](https://www.lri.fr/~melquion/doc/08-tc.pdf)

<comment><USER7> That is weird. The paper was published in 2009 by Microsoft Research, and the Xbox One entered development in early 2011 according to Wikipedia ([https://en.wikipedia.org/wiki/Xbox_One](https://en.wikipedia.org/wiki/Xbox_One)). So when the author started working on the problem for Microsoft, Microsoft already knew how to solve the problem.

<comment><USER8> Author here: I don't remember exactly when I did my investigation but I left the Xbox team in early 2009, so it would have been some time before that.

The 2011 date from Wikipedia is for when hardware development began. Investigations into what hardware would be used would obviously predate that so there's no contradiction.

Anyway, I'll have to digest that FMA emulation article and see what sort of performance their algorithm achieves. A branchless and vector-math compatible implementation would be important for performance.

<comment><USER7> Thank you for response/clarifying the timeline. I didn't realize that development on non-hardware parts of the system would happen so much earlier, but it makes sense that you'd want to know if changing archs made your catalog unplayable!

</comment></comment></comment></comment><comment><USER9> As far as I know, a correct emulation of FMA involves the double-double approach [1], that is to split a logical mantissa potentially larger than the native mantissa and merge them later. This is of course expensive and probably not a good fit for the OP's purpose anyway.

[1] [https://hal-ens-lyon.archives- ouvertes.fr/inria-00080427v2/d...](https://hal-ens-lyon.archives- ouvertes.fr/inria-00080427v2/document) has a verified proof.

<comment><USER10> double-double or quad precision is necessary to emulate double-precision FMA. The article is talking about emulating single-precision FMA with double- precision. The relevant paragraph is:

> Luckily the vast majority of floating-point math in games is done to float > (32-bit) precision, and I was quite happy to use double (64-bit precision) > instructions in the emulation of FMA.

One big difference between quad-precision and double-double is that quad- precision has a much wider exponent range. If you use double-double, you need to worry that the result of the multiplication may underflow a double. In the article you cited:

> First, the value ul has to be the error term of the multiplication a · b, in > order to avoid some degenerate underflow cases: the error term becomes so > small that its exponent falls outside the admitted range. […] The algorithm > will behave correctly even if some computed values are not normal numbers, > as long as ul is representable.

… implying that the algorithm may not compute the FMA if the error of the multiplication is not representable, which can happen when it is below the normal range.

<comment><USER9> Probably I was not as careful in the choice of a word "double-double". My point was that the error recovery (or, as the paper refers, the error-free transformation) seems crucial for FMA emulation in general. You are entirely right that double-double has many pitfalls.

My thinking was that, in this particular case we need around 24 × 3 = 72 bits of mantissa (I haven't verified the exact number, but it clearly exceeds 60 bits) to avoid the double rounding---which double precision cannot provide. The verified algorithm gives a lot more than enough headroom for this particular setting: ExactMult is just a normal double multiply and ExactAdd will recover the error out of double addition. It might even be possible to optimize later cases. But it seems to me that you can't really get rid of the error recovery procedure itself. Well, I may be wrong.

EDIT: Oh, I see your neighboring replies. So I _was_ wrong! The glibc solution however looks pretty expensive and it is unfortunate that there exists no faster alternatives known.

<comment><USER10> There is no reason to estimate the required precision as 3 times the original precision, because floating-point addition does not work like that.

If you want to compute the exact result of a floating-point addition, you need approximately emax - emin bits of precision. Floating-point addition is never computed this way.

On the other hand, multiplication does have the property that the required precision for representing the result of multiplying numbers with precisions p and q is p+q.

<comment><USER9> We don't compute the exact sum, we just need enough precision to ignore the double rounding. The most pathological cases are therefore either:

\- the product is _just_ above the ULP of the addend, or

\- the addend is _just_ above half the ULP of the product.

I'm not sure about the latter (the possible bit patterns of the product are constrained) but the former clearly requires 3 times the original precision, and beyond that there is no possibility of double rounding. The same thing can be said for the latter.

Of course all these points are moot when it is known that rounding-to-odd can be used to avoid error recovery at all.

</comment></comment></comment></comment></comment><comment><USER11> > If you apply for a mortgage when your job title is emulation ninja then you > are in a quandary. If you write that on the mortgage application then you > look like a lunatic. If you write "software engineer" then you get in > trouble when the mortgage broker calls your employer. You know. > Hypothetically.

<comment><USER12> Do mortgage brokers call your employer? What's your mortgage got to do with your employer?

<comment><USER13> Verifying the things you put on your mortgage application are true, like employment details.

<comment><USER12> I've never had that happen - they just looked at my bank account. I wouldn't want a mortgage provider talking to my employer.

<comment><USER14> As an employer, I have had mortgage brokers call our HR lead quite often to verify loan applications.

For those who are concerned about privacy: I have found that those loan providers are then selling that data to websites that offer aggregated salary data.

<comment><USER15> Just wanted to add another data point and confirm that I've also had to do this as an employer (in the UK). Salary, length of employment and job title at least.

Edit: Also for rental contracts.

</comment></comment></comment></comment></comment></comment><comment><USER16> The whole time I was reading I was interested in what they chose to do... a lot of build up and no solution :/

Maybe they did recompile the games for backwards compatibility, maybe they do have an emulator, IDK, but I want to know how they would have fixed this issue.

<comment><USER17> They ended up shipping processors that support FMA on the xbone, so they probably just used that.

<comment><USER18> everywhere i looked said jaguar doesn't though

<comment><USER17> Oh weird, you're totally right.

Looks like the removed FMA4 on the bobcat to jaguar transition.

</comment></comment></comment></comment><comment><USER19> Do games really rely on the rounding behaviors of floats to not break? Seems like there should always be plenty of margin around that. But maybe something does a loop with these instructions over and over and the error compounds?

And wouldn't the solution on x86 be to use the more than double precision floats that are available in the platform?

[https://en.wikipedia.org/wiki/Extended_precision](https://en.wikipedia.org/wiki/Extended_precision)

<comment><USER20> They do. Slight problems with floating point behavior are the cause of many historical problems with GameCube and Wii games in the Dolphin emulator (which also has to emulate PPC on x86/x64)

For a simpler example from personal experience, I had a textbook implementation of triangulation via ear clipping to turn polygons into a list of triangles I could send to the GPU. On Windows it worked great but when I ran it on an XBox 360 it looped infinitely. This turned out to be because the rounding behavior on the 360 was different and the algorithm is fundamentally unstable using floats.

<comment><USER19> > This turned out to be because the rounding behavior on the 360 was different > and the algorithm is fundamentally unstable using floats.

That sounds like a bug though but I guess that's the point. Unless you're bug for bug compatible a reasonable amount of code will fail a significant amount of time...

<comment><USER21> Performance is often a critical feature in games.

Nobody will play a janky game and go "yeah, it's a bit rough but I'm sure the floating-point operations are done sensibly if it were to run under emulation, two console generations in the future".

Console games are not like ordinary/business applications where being 15 ms late is almost always better than tying the code to the hardware.

</comment></comment></comment></comment><comment><USER10> Bruce Dawson always does an excellent job of explaining subtle floating-point behaviors simply, but there is one sentence I do not agree with in this particular post:

> However, for any rounding rule that you might come up with there is a case > where the double rounding will give you a different answer from a true FMA.

For every "directed" rounding (up, down, towards zero), rounding the result of one operation first to higher precision and then to the intended precision is identical to rounding directly to the intended precision. For this reason, computing the FMA as "first compute the multiplication in higher precision so that no rounding happens in this step, then add the third operand at the same precision, then round to the nominal precision" does not suffer from double- rounding issues in all these rounding modes (which are all the rounding modes defined by IEEE 754 other than "round to nearest").

So you do not even need to "come up with" them. They already exist, they are all the standardized rounding modes other than "round to nearest".

Note: the reasoning above assumes the result of the multiplication is representable as a normal number in the higher-precision format. It is a property of IEEE 754 formats that the next more precise one can always represent the result of the multiplications of two finite numbers from the format below it as a normal number.</comment>


Does Anyone Find Joy in Programming - <AUTHOR> I've been programming for twenty years, and looking back on it all, I can't think of anytime when programming was fun.
Really I gotta ask, and this is an honest question: does anyone find programming fun?  Can anyone find joy in an activity so full of frustration?
Programming seems like arguing with a petty opponent that won't give you even an inch.  Every damn little thing from a semicolon to a typo results in a big bzzzt!  Hundreds of times a day I get told I am wrong in the most petty, pedantic way by a dead lifeless piece of metal.
Also, I think it's not hard to argue that a lot of code out there is crap.  Over the years I must have seen gigabytes of horrible corporate code.
And in the open source world it's hardly better. There was the Openssl fiasco we had a few years ago, and now that we know about  Spectre and Meltdown we're not even safe on the hardware level!
Doesn't it make you wonder: what the heck have we built?  Does any of this have any value?  Aren't we just producing codified frustration and pain =for another programmer to slog though after us?
On the physical side, programming is a sedentary activity that over time moulds your body into the shape of a chair.  Twenty years spent squirming on a rack and worried about nonsense that I can't even remember the day after.
When I walk past a roomful of programmers, I don't see too many smiles.  Instead what I mostly see are expressions that are at best blank, but more often confused, frustrated or angry.
I envy musicians, fiction writers, at least their work gives people joy, and maybe gives them joy as well. <comment><USER2> I've been programming for 47 years and I love it. There have been bad times, like the 3 times I fought compiler errors, or the 2 times the hardware bugs made life difficult. But it's been a constant learning experience. I've done everything from building a computer and operating system from scratch to creating expert systems to programming FPGAs and creating really complex software.

I tell everyone who has ever asked "Should I learn to program?" that they need to know if they can handle being constantly frustrated, puzzled, and confused. Do they know that they'll spend a week on a bug, fix it with a rush of success, only to be on to the next problem minutes later? Can they handle losing a weeks worth of work because the hard drive crashed?

It really isn't about programming, It's about facing yourself in the mirror that programming represents. Are you happy being alone with your own thoughts and facing your own limitations and flaws? Writers face the same problem, alone in a room with blank paper.

Mirrors are terrible things. The joy is in the struggle.

<comment><USER3> Beautifully said.

</comment></comment><comment><USER4> Oh god I love programming. I love it to death. I can't think of anything else that has given me more joy than programming.

Instead of thinking like "arguing with a petty opponent" I would say to me it's more like physics where there are rules that can bend but not break and you have to figure out how to do it within those constrains and when you do, it's pure just bliss.

Fortunately I've never had to do it in a job. Started my own thing after college and only worked in languages I liked. Turned down a huge project once just because it was Java and I hated Java at that time.

I guess the only time I didn't like it is when I was freelancing at the start of my career. Working on other people's idea is certainly not fun.

</comment><comment><USER5> The grass is always greener, hoss. It's not just you. It's not just programming.

As a professional artist (18+ years and trained since childhood) and dabbler in every discipline (and friends in most) I can tell you, without a doubt, that every session musician, visual effects artist, writer (of every stripe) that does it for a living has to deal with endless streams of tedious bullshit. Creativity isn't a panacea for the existential blues.

If it's not a compiler it's a producer, art director, editor or studio being the petty opponent.

So, like every master since antiquity I'm going to ring that familiar bell... "It's all in your head, dude. It's all perspective. It's all in how you look at it. Chop wood, carry water."

</comment><comment><USER6> Yes. But there's a big difference between 'have to' programming, and 'fun' programming.

Just like a man who earns his living being an airline pilot might relax by being a train driver with a community's tourist railway at the weekends.

You'd probably be able to find lots of musicians who don't particularly enjoy playing their instruments every night.

</comment><comment><USER7> I find joy in solving problems with computers. Sometimes a lot. The frustration around dealing with core tools (like your semicolon example) has never particularly bothered me. After all, the rules are learnable, and are usually there for a reason. I like working on my own problems, but doing stuff for someone else is good too. Even if I'm being asked to solve not-quite-the- right problem (I'll speak up about this, but at the end of the day: paid to hide in a corner and program? Hell yeah.)

That said, if you see me in the office, "confused, frustrated, or angry" is a real possibility, and I do something find myself seriously wondering whether it's a career where I have much of a future. Thing is, it's never the _programming_ that's the issue. Rather, it's management approaches which downplay the one-on-one person-versus-computer aspect, and instead maintain that software should be the result of a team following a somewhat-defined process. Collective ownership, pairing, and big piles of standards to follow completely destroy the individual, almost-artisanal side of programming. That's when it starts to look like a slog.

</comment><comment> j-pb I completely agree with the sentiment. To me we are destroying society for ads and likes. We value moving homescreen backdrops more than long lasting batteries, useless web games more than reliable medical applications, mining crypto currencies more than curing cancer with scientific computing. Our tools are boring and lack imagination, our hardware architectures and the way we program them are the same dead horse beaten to death.

We branched off somewhere in the 80s and forgot that there is a timeline where things just work, where they serve a purpose for the greater good and where form follows function.

Programming right now is 90% wasting everybodies time by creating stuff that nobody really needs in a way that nobody really deserves.

But it's a hole we dug ourselves.

Afterthought-

I find it telling that everybody in this thread exclaims that they love "the puzzle" or "facing themselves in times of hardship", but nobody talks about creating stuff. Programming shouldn't be a crossword puzzle that you do for it's own sake, it should be a means to reach a goal, and produce something meaningfull. And as with every means the less you have to do of it, the better.

The best line of code is the one never written.

</comment><comment><USER8> For me the joy has been fading over the years. I was super excited about it as a kid learning BASIC, and C later in high school. College was exciting but the frustration started there.

I'm frustrated most of the time working in the industry. I find a certain amount of joy when I have ownership of a piece of a system and can mold it according to my wishes. The joy instantly fades away when I have to collaborate with people that I know don't give a damn, just want to get a ticket completed, and will totally crap on the code to get there.

I used to find joy in my personal projects. But that has faded away too since I started switching to more modern stuff so I stay up to date. Everything these days seem to require a humongous amount of environment set up.

<comment><USER9> you may be interested in [https://nixos.org/nix/](https://nixos.org/nix/) [https://nixos.org/](https://nixos.org/)

</comment></comment><comment><USER10> It's like anything: if you do the same thing over and over, you're going to get bored. If you're a cookie cutter Java web developer then the way you're feeling is understandable.

I get my enjoyment out of learning and applying what I've learnt to create something that others find useful. The true satisfaction comes from architectural design that is creative and inspirational. The more I learn about supporting technologies that I then apply to enhance the design of a system or tool, the more I love working with code.

For me, the key is in making a difference.

</comment><comment><USER11> Oh I know EXACTLY how you feel. I also happen to agree a lot with what you say.

I do also think things have got worse. There was a time when with a copy of TurboBasic, a list of BIOS and DOS interrupts, you could do ANYTHING. I once wrote a complete oil rig data acquisition system in TurboBasic with nothing more than a copy of Peter Norton's guide to the IBM PC and the F1 key. And it _was_ fun. But then software became a real thing and lots of money was at stake and everything became so much more bloated and so much more complex, and less fun too.

I remember the software company I worked for, some years ago now, had a "charity in the community day" when we went out and chopped down invasive trees and burned them, and in five years working there it was the best day I'd had. I went home sunburnt and physically tired, but mentally fired up and happy.

Once I gave an impromptu English class in a primary school in Thailand back in 2003 where a friend was a teacher, and it was one of the most unforgettable experiences I've ever had. I envied my friend who'd escaped the stale grey corporate world and was living under blue skies and surrounded by happy children day after day. I once asked him if he'd ever go back to his old life. He told me he'd only go back there in a box.

I still code, and sometimes it's fun, and sometimes it's not, but I try to have long breaks between coding, and working, and just do other things.

</comment><comment><USER12> >I envy musicians, fiction writers, at least their work gives people joy, and maybe gives them joy as well.

Ask yourself this - what qualities do you see in this work that you admire? Are they things like autonomy, creativity? Which of those are you missing from your work? Do you work with/for people you like and respect?

Imagine this scenario.

You work as a writer for a huge company called International Book Manufacturing. An exec has just decided the company wants to launch 9 book series on romantic vampire-pandas and they have got funding. This is what happens next.

1). A group of execs and strategy researchers sit down and decide the major themes of these books 2). A group of senior managers narrow down which book get which themes 3). A group of book managers are assigned to each book. They write the major plot requirements for each book 4). A group of principal book architects write out the major plot points 5). A group of book architects define what goes into each chapter and do the outline for each chapter 6). A group of principal book engineers further refine the outlines and define the paragraphs 7). The writers finally get all of this and are assigned paragraphs. You only get to interact with your team, which is people who are writing the same chapter. You have a style guide for what you can and can't do. 8). Halfway through the project, book scientists uncover vampire-pandas are on the way out and ware-koala bears are the new hot things. Major parts of the books are rescoped. 9). When your team is 80% done with your chapter, an editor realizes an important portion of your chapter was not done properly but the person who worked on that has left the company. They scramble to get a new person, don't train them, and have them fix that portion in a completely half- cooked way, which causes major problems when book 4 is started. 8). The company realizes that a competitor is going to publish a 10 book series and the first one is coming out 3 months before yours gets to market. The scope is changed to get your book out the door sooner.

Would you enjoy being a writer in this situation? Do any of the qualities you imagine a happy writer/musician has in their work exist in this scenario? Sadly, I imagine there are people who churn out stuff like this (e.g. Mills and Boon Romance Novels, Top 40 Songs) because they have to.

<comment><USER7> Any idea why the expectation of autonomy for professional programmers seems to be so much lower than for professional novelists?

<comment><USER13> Because novelists who don't already have a proven track record of producing marketable work are producing the work on their own dime and only get paid after they have already produced a financially successful novel.

Programmers have the same option, but most choose a guaranteed paycheck over autonomy.

<comment><USER12> I also wonder if the autonomy novelists have changes when they get famous. Suddenly the success of the book has a direct impact on sales of future books, movies, toys, games, cartoons, the Disney Rides, etc. When there is more risk there are going to be more people trying to mitigate that risk.

I think that's true of software as well. When V1.0 of your software has a large install base, lots of things are going to be put into place to make sure 2.0 doesn't cause your customers to run. That decreases autonomy, especially when some of the "management" is really just political nonsense and ladder climbing.

</comment></comment></comment></comment><comment><USER14> I love programming for private causes. You build something from scratch, all you see is what you build. And what you build can grow exponentially (object oriented ftw!).

Within the realm of the digital I can build nearly everything I can imagine. Most of my personal programing is about finding something out I couldn't without building a tool for it.

\---

Programming for bread and butter: meh. I did a lot of front-end stuff, I now hate browsers (love my FF still), clients (remained diplomatic though), bad specifications (now writing them myself, hopefully doing a much better job) etc. But I also never dug in arguably more interesting scientific and "back- end" stuff. I transitioned to product/project manager and I'm quite happy with that.

I'm now seeking for a path towards 20h/week to get some personal programming done; advice welcome. This should be much easier in a non-manager position, maybe that could work for you, too.

Oh and artists: Some few lucky ones can live from _their_ art, some fortunate where able to bend themselves to make their art likeable (or where in the game to be liked in the first place). All the others are doing contract work (especially musicians) or don't earn anything...

</comment><comment><USER15> I do. I seldom find frustration when I am programming. It's very rare that I come across an error that isn't entirely my fault. A flaw in my understanding is a learning experience. A mistake in my typing takes a simple correction, and perhaps an improvement in my tools to highlight or even automatically correct the mistake in future. I don't find this annoying.

Occasionally an issue presents itself that requires more than a simple tweak to fix. Sometimes these issues require totally rethinking my view of the problem. I find enjoyment in problem-solving.

On the rare occasion that a problem lies within a tool or library I'm using, at the very least I can usually raise it as an issue somewhere. In some cases I have been able to fix the problem myself and submit a pull request for it.

Sometimes frustration happens. I find it helps a lot to walk away from my desk for a few minutes, and come back later with fresh eyes and a clear head. Talking through a problem with someone else often highlights flaws in my logic.

<comment><USER16> Have you ever worked in an organization where you were strongly discouraged from refactoring, or otherwise touching, the code without a change request? And if the answer is yes how did you deal with that?

<comment><USER15> Thankfully I have not. I currently work in a small team (<10 developers). We try not to change things just for the sake of changing them, but when there is a good reason to do so then we can. Our code base is far from perfect but I am content with our ability to fix issues that would make it painful to work with.

I don't think I would be happy in a job where I didn't have this freedom.

</comment></comment></comment><comment><USER17> Yes, but I've been super skeptical of the latest fad for most of my career.

Nowadays, I'm working on improving areas that I have neglected, and following my instincts of trying to program with as little 'baggage' as possible.

My project of the last week or so has been a program to generate colorbars according to the cubehelix technique, and I'm using this as a UI testbed for doing all the latest hi-dpi hi-jinks to support nice screens in Windows 10.

I'm also programming in the Petzold-98 style, with nothing much more than the Windows headers, using VS Code with MSYS2, g++, gdb and the stl.

It is certainly refreshing, and relatively joyful to be free of the various layers of crap that are usually pasted into your programming life, obscuring the relatively simple Windows API.

The Advent of Code also has been a total high spot of the year. I completed it, and whilst not getting any actually leaderboard point, I did write code for all the challenges, and managed to develop as programmer whilst doing it.

<comment><USER15> Advent of Code is great. I've not actually finished it yet, but I keep doing a challenge here and there when I feel like it. I might go back and do some of the earlier years when I'm done with 2017.

</comment></comment><comment><USER18> When I started off, I used to enjoy all programming regardless of whom I did it for.

Now, 20 years later, I enjoy only the programming that I do for my own ideas/projects/business, and don't enjoy the programming I sometimes have to do for others.

Another aspect that impacts the enjoyment for me is the part of the architecture I'm programming. I enjoy everything server-side or analytics related, especially if it's in Python / Java / C++. But I don't enjoy front- end activities like HTML/CSS web designs, javascript, or android front-end. I find front-end coding frustrating because doing it well sucks up too much time for little value and not much learning I can use in future, but cutting corners is also not an option because it's glaringly obvious and off-putting to users.

So it's a mixed bag. In my case, I'd say I enjoy 80 percent of all the programming I do.

</comment><comment><USER19> Yes, though not as a professional programmer, but as someone who's used programming to help with tasks in my actual jobs (such as journalism). Or for personal interests, like writing a simple scraper to gather and organize Craigslist apartment listings when looking for places to live.

As I've gotten more experienced in programming I've learned to accept that lack of permanence is the tradeoff for the dynamic and adaptable power of programming. I do take joy in increasing and perfecting my software engineering capabilities -- it's good intellectual work, and it further improves my abilities in hacking for personal purposes.

But when I've had to build and maintain apps and software for public use, I've been much less happy, for the reasons you've mentioned, and particularly because of the constant breakage and maintenance work.

</comment><comment><USER20> Yes, oh yes. When I actually get to work with code, it's sublime. I had a quiet day today, and I got to fix a buggy module, refactoring out into cleaner pieces, building out a test suite to verify its correctness, shaping and molding a hairy, slapped-together piece of trash into something I may never have to touch again. On the best days, it's like code is clay in my hands, and I just sculpt it.

It makes all the rest of the time I spend frigging around with customers, tracking down environmental weirdness, ttading emails, herding cats, frustrating ops work, and fighting to be allowed to actually _do_ anything worth it. Sometimes all that overhead overwhelms me, but the fleeting moments of solitude in the IDE, bringing form out of the elemental chaos, restores me.

</comment><comment><USER21> I am having trouble relating. As an engineering manager, not jumping in and doing what the team should do is a major challenge for me. It turns out that as a manager I've greatly increased team productivity, been able to stop them working every other weekend as a result, and the team skills and happiness are visibly improving. But I just have a constant temptation to code instead of work on all that because I love it to the point where it is almost compulsive.

To satisfy that I get up early 3 days a week to work on side projects to satisfy that desire.

</comment><comment><USER22> I enjoy programming. I do not work on huge, complex systems though. Not directly, anyway. I mainly work to automate things and on integrations. But just yesterday for instance I wrote a small script that downloaded and organized several hundred files for our analysts and they were so happy. I guess I just like helping people even if it's in small, seemingly trivial ways. And the little programs and scripts I write are my way of doing that.

</comment><comment><USER23> It's honestly _the_ thing in life I get the most joy from, and it has been that way for almost 30 years. That's why I do it so much. Now, I despise having to write code for a company, because they compel me to write code that I wouldn't choose to write. Like a patron handing a fine artist a paint-by- numbers. Sometimes I have to eat that shit for the money. But at home, I code for pleasure, and it is pleasure.

</comment><comment><USER24> I love it, it is like playing with Lego but with infinite blocks and for free. And you have cool modules already built on GitHUB for free again.

It's the neverending joy :)

</comment><comment><USER25> You might be suffering from burnout or depression. If you think you started to have such feeling a lot recently, you might want to talk to a doctor, or at least reduce the amount of work you do and just walk outside more (or find some other stuff to relax your mind). Regular exercise would definitely help.

Feel free to disregard this if I was widely off the mark.

</comment><comment><USER26> I'm in the "love it" camp. Most of the time, anyway. I guess everyone has a bad day every now and then. To me, it seems like getting paid to solve puzzles.

Writing new code is way more fun that maintaining old code. Creating a new application is almost like a form of art.

</comment><comment><USER27> >Doesn't it make you wonder: what the heck have we built? Does any of this have any value? Aren't we just producing codified frustration and pain =for another programmer to slog though after us?

This is rather insightful. Does it ever end?

</comment><comment><USER28> >Does any of this have any value?

What's 'this'? The programming you've done?

Q. What programming have you done? What have you spent 20 years doing?

or you mean, all the programming all programmers have done?

<comment><AUTHOR> I meant all the programs we collectively have done, to me its all a bunch of vexations.

<comment><USER28> Ah ok. In your comments on this page, you are mostly talking about your own lack of satisfaction in programming as a career. Maybe that's infecting your feeling about the whole computery enterprise.

Personally, I've been an amateur programmer for 35+ years, I've always loved it. I read about stuff, then write a program to do it, and experiment with my own ideas, from fractals to neural nets, anything.

I started a computer science degree once, so I could get programming work I guess. But I went to a programmer friend's place of work - he was working on the accounts software for some company - and it was all so awfully depressing I quit my course. Maybe most programmers' work is like that, I don't know.

</comment></comment></comment><comment><USER29> Valuable work is often not easy. If it were so easy that you could do it with a genuine smile then a lot more people would be doing it and then those smiles would be fake.

</comment><comment><USER16> I do, primarily in the things I am able to do with the programs that I have written. Also occasionally by refactoring old code or by finding and fixing bugs.

</comment><comment><USER30> I love the designing most, and the programming second; brainstorming is also fun. Debugging is okay. I'd say I dread marketing... but its necessary.

</comment><comment><USER31> When I'm programming, a lot of the time it's in order to make easier something that's definitely more boring than programming.

Most programming might not directly give _joy_ to people, but most people who work in accounting are probably happy they can use spreadsheet software instead of spending hours per day doing their own arithmetic.

Musicians might be enviable—well, at least those that are sufficiently successful to work on their own terms and have a good income, which isn't easy to attain. Touring probably isn't for everyone. And fiction writers... I'm not sure they're so cheery and satisfied in general.

Here's David Foster Wallace about writing Infinite Jest:

 _The best metaphor I know of for being a fiction-writer in the middle of writing a long book is Don DeLillo 's "Mao II," where he describes the book- in-progress as a kind of hideously damaged infant that follows the writer around, forever crawling after the writer (i.e. dragging itself across the floor of restaurants where the writer's trying to eat, appearing at the foot of the bed first thing in the morning, etc.), hideously defective, hydrocephalic and noseless and flipper-armed and incontinent and retarded and dribbling cerebro-spinal fluid out of its mouth as it mewls and blurbles and cries out to the writer, wanting love, wanting the very thing its hideousness guarantees it'll get: the writer's complete attention._

 _The damaged-infant trope is perfect because it captures the mix of repulsion and love the fiction-writer feels for something he 's working on. The fiction always comes out so horrifically defective, so hideous a betrayal of all your hopes for it—a cruel and repellent caricature of the perfection of its conception—yes, understand: grotesque because imperfect. And yet it's yours, the infant is, it's you, and you love it and dandle it and wipe the cerebro- spinal fluid off its slack chin with the cuff of the only clean shirt you have left (you have only one clean shirt left because you haven't done laundry in like three weeks because finally this one chapter or character seems like it's finally trembling on the edge of coming together and working and you're terrified to spend any time on anything other than working on it because if you look away for a second you'll lose it, dooming the whole infant to continued hideousness). And but so you love the damaged infant and pity it and care for it; but also you hate it—hate it—because it's deformed, repellent, because something grotesque has happened to it in the parturition from head to page; hate it because its deformity is your deformity (since if you were a better fiction-writer your infant would of course look like one of those babies in catalogue-ads for infantwear, perfect and pink and cerebro-spinally continent) and its every hideous incontinent breath is a devastating indictment of you,on all levels . . . and so you want it dead, even as you dote and wipe it and dandle it and sometimes even apply CPR when it seems like its own grotesqueness has blocked its breath and it might die altogether._

 _The whole thing 's all very messed up and sad, but simultaneously it's also tender and moving and noble and cool—it's a genuine relationship, of a sort—and even at the height of its hideousness the damaged infant somehow touches and awakens what you suspect are some of the very best parts of you: maternal parts, dark ones. You love your infant very much. And you want others to love it, too, when the time finally comes for the damaged infant to go out and face the world._

 _But wanting other people to love it, now, means hoping that others somehow won 't see the hideous infant as you see it—as a grotesque, malformed betrayal of the very possibilities that spawned it. You hope very much they'll look at it and pick it up and dandle and coo and fall in love with something they see as pink and whole, as the sort of transcendent miracle that only whole babies and unwritten books are._

 _So you 're in a bit of a dicey position: you love the infant and you want others to love it, but that means that you hope others don't see it correctly. You want to sort of fool people: you want them to see as perfect what you in your heart know is a betrayal of all perfection._

</comment><comment><USER32> Yes I do. I enjoy the frustration and the feeling of overcoming it. That strange sense of disbelief when your program finally actually works. It's the same reason I like old video games. I find programming to be very similar to playing music. Putting a program together from functions or objects built from primitives is very similar to building chords and bars out of notes.</comment>


Open Source's Cult Of Personality Is Dying – Thankfully - <AUTHOR> http://readwrite.com/2014/05/02/open-source-magento-roy-rubin-bdfl

<comment><AUTHOR> I'm not sure how projects would get started without BDFL. When the project gets enough uptake, more and more people pitch in, but at the beginning?

Anyone has an example of a popular good BDFL-free project that was this way from the start?</comment>