Why Zuckerberg Wears the Same Thing Every Day - <AUTHOR> https://medium.com/startup-grind/choice-minimalism-why-mark-zuckerberg-wears-the-same-thing-every-day-2f132f1b5706#.6vwh35o42 <comment><USER2> Men can reduce their decision making without attracting attention as the person who always wears the same clothing.

* Pick a color palette for your shirts. Four is enough. Buy multiples of those.

* Get khakis and jeans. Multiples, again.

All of your shirts will go with all of your pants. In the winter, wear jeans. In the summer, wear khakis. When you decide to cross over, put the other ones away.

Women, however, seem to have much more pressure to consider fashion. Sorry; it's a societal construct. If you don't feel bad about it, exactly the same choices can work for you: pick a blouse in four colors, pick comfortable pants and jeans, be done with it.

<comment><USER3> > Women, however, seem to have much more pressure to consider fashion.

As an MtF trans person, the blandness and lack of choice available in male clothing, especially professional male clothing, always felt like a straightjacket to me. The lack of options drove me up a wall, and I was either unenthused about or actively repulsed by the few options that were available. I think I ended up wearing a polo shirt and cargo pants most days, just because I couldn't muster up the effort to give a shit.

Before I transitioned, I crossdressed in private just so I could wear something that I actually _liked_ , even if it was just by myself in my house. Unfortunately, that actually delayed my accepting I was trans... for years, I told myself I was "just a crossdresser" because I thought "Well duh, who _doesn 't_ prefer women's clothes over men's? _Of course_ every guy wants to be a girl because being a girl is just obviously better." Of course, that turned out to be a bunch of bupkiss, and cis guys just don't think that way, but it took me so many years to realize that.

I didn't start giving a shit about how I looked in public until I transitioned. Finally, I could wear things that I thought _looked good_ , and I actually had _meaningful options_.

<comment><USER2> Well... this is a thread about reducing options in order to not make decisions. Men actually have lots of options, but are frequently limited by the same social pressures that cause women to have to make more choices.

For example: a UtiliKilt, or actual kilt. Bermuda shorts. A sarong or laplap -- that will cause comment in most of the US, but is perfectly normal in much of the Asian Pacific. A guayabera or a Hawaiian print shirt; vests and sweaters and cardigans and jackets.

Your point about "professional male clothing" is very well-taken, though. Women have many more options.

</comment></comment></comment><comment><USER4> I really doubt it's about choice and willpower. It's about giving out a constant image as a public icon.

Everyone knows Zukerberg wears grey shirts. Everyone knew that Steve Jobs wore black turtle neck. If they were to change their looks, there would be news articles about it. It would make a lot of noise for nothing.

It's an uniform. They wear it to work.

<comment><USER5> My memory may be failing, but I think Jobs even said as much in an interview.

<comment><USER6> This is the relevant excerpt from Isaacson's biography:

>> On a trip to Japan in the early 1980s, Jobs asked Sony's chairman Akio Morita why everyone in the company's factories wore uniforms. He told Jobs that after the war, no one had any clothes, and companies like Sony had to give their workers something to wear each day. Over the years, the uniforms developed their own signatures styles, especially at companies such as Sony, and it became a way of bonding workers to the company. "I decided that I wanted that type of bonding for Apple," Jobs recalled.

>> Sony, with its appreciation for style, had gotten the famous designer Issey Miyake to create its uniform. It was a jacket made of rip-stop nylon with sleeves that could unzip to make it a vest. So Jobs called Issey Miyake and asked him to design a vest for Apple, Jobs recalled, "I came back with some samples and told everyone it would great if we would all wear these vests. Oh man, did I get booed off the stage. Everybody hated the idea."

>> In the process, however, he became friends with Miyake and would visit him regularly. He also came to like the idea of having a uniform for himself, both because of its daily convenience (the rationale he claimed) and its ability to convey a signature style. "So I asked Issey to make me some of his black turtlenecks that I liked, and he made me like a hundred of them." Jobs noticed my surprise when he told this story, so he showed them stacked up in the closet. "That's what I wear," he said. "I have enough to last for the rest of my life."

<comment><USER7> Interesting. Previous Hacker News discussion failed to turn up any pictures of the Sony uniforms:

[https://news.ycombinator.com/item?id=3101265](https://news.ycombinator.com/item?id=3101265)

</comment></comment></comment></comment><comment><USER8> "Each decision makes us less creative, less in control and less focused."

Sounds hip but it's also ridiculous. Each morning I select a necktie from an array of choices. That's not making me less "focused" later on.

So Obama and Zuckerburg don't want to decide what to wear because they don't like making that decision. That's understandable and fine. But it doesn't mean that someone who does make that decision every day (because he actually likes to) has somehow depleted his limited reservoir of decision-making ability.

<comment><USER9> Given how well accepted fact decision fatigue is, I would like to have a source for the claim that it does not apply to certain kind of decisions.

<comment><USER10> Well accepted by whom?

<comment><USER9> Sorry, "well accepted fact" was probably too strong wording. "Well known" might have been more appropriate. Wikipedia has some sources[1]

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

</comment></comment></comment></comment><comment><USER11> Don't most people do this? Especially the kind of people here on Hacker News? I have like 10 plaid shirts, and 4 pairs of dark blue jeans and every day i pick one of each and wear it. The big advantage of my system is that I don't look like a weirdo because I wear an identical outfit every day.

<comment><USER12> I have lots of shirts and pants but just take from the bottom of the pile, put back on the top of the pile. Or left of the closet, put back on the right of the closet. I don't look like I have only one outfit but never obsess over what to wear.

It also sounds kind of silly as decisions take only as much brain power as you put into them. Does Zuck eat only one kind of food ever? (otherwise he'd have to choose :O). Does he only have one of everything? Seems unlikely...

It seems much more likely to concern having a signature look (aka Jobs) and to minimize paparazzi since all the pictures look the same and are therefore less valuable.

<comment><USER13> Yeah, same here. Just don't care which shirt I pick out, but have some number of different ones. I don't buy that having only identical clothes really makes a big difference here, but maybe for some people?

</comment></comment></comment><comment><USER14> Summary: Choosing what to wear has a willpower cost, since willpower is depleted by the choices we make during a day. Therefore, you should reduce the number of unimportant choices, like what to eat and what clothes to wear focus on decisions that make an impact.

My take on this:

1\. Eating the same meal over and over again and wearing the same clothes every day is a sad and overly utilitarian way to live your life. Eating can be sensual and joyful, picking clothes can be expressive, fun and make you feel good. And in fact you need not miss out on these joys of life to spend time deciding JS framwork to use for your next starup or whatever, because:

2\. The theory of willpower/ego depletion is probably wrong and cannot be reproduced ([http://www.slate.com/articles/health_and_science/cover_story...](http://www.slate.com/articles/health_and_science/cover_story/2016/03/ego_depletion_an_influential_theory_in_psychology_may_have_just_been_debunked.html)).

</comment><comment><USER15> Daniel Radcliffe war the same thing every day ([http://www.imdb.com/news/ni0051271/](http://www.imdb.com/news/ni0051271/)) in order to prevent paparazzi getting useful pictures of the ongoing filming of Harry Potter and the Order of the Phoenix

<comment><USER16> Kim Jong-Il wore the same thing every day so the regime could release photos without leaking information on _when_ the photo was taken.

[http://www.hackerfactor.com/blog/index.php?/archives/286-No-...](http://www.hackerfactor.com/blog/index.php?/archives/286-No- Shirt,-No-Shoes,-No-Shopping.html)

</comment></comment><comment><USER17> I used to do this for years, just because I realized it didn't matter (to me). It drove my colleagues nuts though and they tried to pressure me into "changing my shirt" or making fun of me because I could care less about wearing jeans on Friday. I told them I took a shower once a month whether I needed it or not, so let me be.

Anyway, I no longer do it because I just grew tired of the same look, but I have been considering going back because I found the plain white shirts I used to wear turned out to be very high quality and lasted forever. I can't seem to find a variety of colored shirts with the same longevity. It seems the mix of cotton/polyester and weave is different depending on the color die, but the white shirts with a 60/40 (cotton/poly) were really a good deal in the long run. Coincidentally, I'm wearing one right now :).

<comment><USER18> "I told them I took a shower once a month"

That is disgusting.

<comment><USER17> Haha! If only it were true. I think it was more like once every 2 months.

(I'm kidding of course, just in case anyone else is offended by my lame attempt at humor)

<comment><USER19> We can't really tell because our industry is so messed up wrt personal optimization and unhealthy work practices that showering once every two month sounds kinda probable.

</comment></comment></comment></comment><comment><USER20> I wear one of the same few models of black shirt (I have 5-10 each of a tshirt, a sweater, and a polo) and one of the same few models of jeans every day (I have one or two each of those).

For me, it's less about the decision making process than it is about feeling confident in what I wear. Before I started building a more uniform-like wardrobe, I had anxiety about whether I looked good, whether my clothes fit well, whether what I was wearing matched. I found that I felt more confident in black.

Now, I know I look good (or at least I feel that I do), and I'm never concerned. Sure, it can at times be tiresome to have the "yes, I wear this all the time" conversation, but for me the tradeoff is worth it: I have zero anxiety in the morning and confidence all day.

</comment><comment><USER21> The author's argument about willpower and the limited capacity for choice is definitely true, but I'd like to push back a little and point out that if you let yourself get into it, clothes can be _fun_. Your outfits can be an opportunity to express your personality and creativity, even if only in small ways. I get a lot of pleasure from dressing in a way that I think looks good and feels "right" to me, and if you're not familiar with that feeling, you may want to experiment a little and see if it has a positive effect on your life.

</comment><comment><USER22> I first got the logic of wearing the same clothes from Jeff Goldblum in the 1986 remake of "The Fly":

[https://www.youtube.com/watch?v=ktYrYErBN-0&t=27m25s](https://www.youtube.com/watch?v=ktYrYErBN-0&t=27m25s)

</comment><comment><USER23> He tries to be special, whereas in reality he is just lucky. That's about it.

<comment><USER24> This is a good summary. If grabbing a shirt and a pair of pants that somewhat go together requires too much brainpower to do on a daily basis, maybe you don't have much to begin with.

I especially like this part:

 _Eat the same few meals. This is in part due to decision fatigue, but it's also a powerful dieting tool. For example, Tim Ferris's Slow Carb Diet suggests eating the same few meals to boost adherence._

Yes, it's also very unhealthy to have a one-sided diet. That's why you're losing weight, your missing our on the nutrients a balanced diet offers.

</comment></comment><comment><USER25> The only thing in this article I could never subscribe to is this:

> Set "key objectives" before bed. I decide what I want to do BEFORE I go to > sleep. This saves time in the morning when I want to jump right into doing > focused work.

Going to sleep is my disconnect from the world. I do my best to let go of all worries or thoughts and embrace what an active brain really needs: shutting down for a while.

<comment><USER26> Making some decisions before going to bed helps reduce the time to mental shutdown once you're in bed.

If you go to sleep and know you have tasks the next day, you need to let go of them somehow. One way is to make those decisions now, have a plan or a list of things that will be done tomorrow (even if it's just basic). For instance, look at the calendar and see that you have an 8am appointment the next day. Better to know before going to bed than to realize it as you're halfway asleep and suddenly jolted awake by the memory.

<comment><USER25> Old thread but that's a very good point. Kudos!

</comment></comment></comment><comment><USER27> Alternative opinion: the character trait not talked about is focus & drive. Obama is focused on doing his job the best way he thinks possible. So is Zuck. That means they don't have time for playing the "what should we eat tonight?" game with their SOs. And they simply don't care what they wear.

I'm aware of studies suggesting a set amount of decisions each day and that does make sense. However I don't think removing the choice of what you're wearing (and other menial decisions) measurably impacts your performance. It's a symptom of your ambition and drive for efficiency.

I recently went to a startup weekend. A group of young men started wearing the same shirts each day after reading the Zuck story. I think that is missing the point entirely.

<comment><USER28> That's literally what the article says...

 _> Here's Obama in a Vanity Fair article:_

 _> > "I'm trying to pare down decisions. I don't want to make decisions about what I'm eating or wearing. Because I have too many other decisions to make."_

<comment><USER27> I agree with you that Obama's quote is similar to what I stated (although not explicitly).

The article goes into detail on how to setup a full-blown plan of cutting down decision count. I think _they_ missed the point entirely.

</comment></comment></comment><comment><USER29> The idea is that willpower is depleted through use ("ego depletion"), but the research seems to be divided on whether this is actually true. Some recent studies have found "a growing body of evidence suggesting ego-depletion is not a reliable phenomenon."

[http://nymag.com/scienceofus/2016/03/psychologys-favorite- th...](http://nymag.com/scienceofus/2016/03/psychologys-favorite-theory-about- willpower-may-be-totally-wrong.html)

</comment><comment><USER30> Didn't someone already debunked this? or was it proven right?

"Our daily willpower is limited"

<comment><USER31> Neither proven nor debunked. Conflicting studies. Still being scrutinized.

</comment></comment><comment><USER16> I didn't set out to do this, but I wear _effectively_ the same thing every day (jeans, button-up, topsiders, north face). The biggest choice in getting dressed is which socks I'll wear, but that's _fun_.

I love variety in my food, and cooking is my "relaxation" time every day. I would (and do) get depressed eating even the same thing for lunch every day. Similarly, I like wandering the aisles for the grocery story (when I go—my wife does most of the shopping) to find interesting ingredients that inspire food ideas.

</comment><comment><USER32> For over a decade I wore blue jeans and black t-shirts ( The previous decade I just wore black ). It becomes a self reinforcing habit; I once wore a red t-shirt, and everyone commented on it as if it were the most hilarious and bizarre thing I had ever done. I didn't wear it again to avoid the humiliation. On top of this, it becomes especially difficult to find clothes that genuinely suit you - especially when you know that you will come under such critical scrutiny for any deviation from your standard uniform.

</comment><comment><USER33> Wasn't the whole thing about "willpower depletion" shown to be an exaggeration some time ago?

Oh by the way, I do want to chose. Because there are some days where I want to dress down, some days up, because I do have stuff after work to attend (sometimes). Some days are cold, some are hot (and I don't take an air- conditioned car from an air-conditioned house to an air-conditioned office)

Same thing with having lunch.

</comment><comment><USER34> I can't speak to the motive behind why Zuck actually does this, but I can applaud the fallout if this gains traction. No more being held prisoner by the fashion houses. I once attended a school that made us wear the same thing everyday (cleaned multiple sets). Two days a week we got to switch to Kaki color or whatever. I loved it.

</comment><comment><USER35> For people like presidents, it's that they can be easily photoshopped in order to make more flattering pictures, or even completely fake pictures. In fact, you don't even need photoshop, Soviet leaders used this trick constantly.

</comment><comment><USER36> The summary on will power is interesting: it's a limited, required resource for making good decisions.

I'd guess the effects of the use of will power can be additive or compounded, like choosing not to have to choose clothes.

</comment><comment><USER37> I also do this. I rotate a few different styles of jeans but always buy the same ones. I have 20 of a specific black t-shirt and wear the same hoodie. I mix it up a bit with my shoes though.

</comment><comment><USER38> I actually started doing this about a year ago and it was the best thing I've ever done for me mentally. I purchased 12 of the same shirts, three pairs of the same jeans and two pairs of the same shoes.

I found that, not only am I not worrying about what to wear in the mornings and focusing more on important problems, I'm more confident around others. I forgot how influenced our wardrobe choices are by our peers. I used to dress while dwelling in the future, which is a recipe for anxiety. Now, I put on the same thing every morning, on autopilot, and think about a problem I'm trying to solve.

It's really working great for me.

</comment><comment><USER39> I don't know if Mark is doing any coding now a days, but if you do, you you are making tons of decision's every day. Does that count?

</comment><comment><USER40> I do the same thing; specific model of Levi jeans and grey Mossimo shirts I buy in bulk. It really is liberating.

</comment><comment><USER41> "Eat the same few meals" \- This would make life very sad and boring.

</comment><comment><USER42> they made a choice to chose the same everyday.

</comment><comment><USER43> Maybe it's comfortable and they don't care?

</comment><comment><USER44> Because he LIKEs it. Sorry, today is Monday.</comment>


Windows Azure West Europe Offline - <AUTHOR> https://www.windowsazure.com/en-us/support/service-dashboard/

<comment><USER2> I don't know how widespread this is or what the impact is. I have a couple of services running in West Europe haven't noticed any issues.</comment>


Don't worry, use Happy. The new Ruby web framework. - <AUTHOR> http://moeffju.net/blog/dont-worry-be-happy

<comment><USER2> How does this compare with the existing, tested and awesome framework Ramaze? Have you tried it? More info: <http://ramaze.net/>

<comment><AUTHOR> I haven't tried Ramaze, but from a cursory look I find the whole `map ...` thing harder to follow than Happy's route method. It also looks like Ramaze makes you write out more things explicitly, like:

        Ramaze.start(:root => Ramaze.options.roots, :started => true)

or

        Ramaze.options.roots = [__DIR__]
        require __DIR__('controller/tutorial')

Also, the URL to method mapping is done with yet another separate method 'trait'? Ramaze doesn't really jive with me right now. I'll have a closer look at it over the weekend.

</comment></comment><comment><USER3> How does it compare to Padrino? Which also fills the gap between sinatra and rails.

<comment><AUTHOR> Padrino is nice, too. It's definitely more mature than Happy, and a little more complex I guess. Now I'm thinking about trying to port the `def route` style dispatch to Padrino, because I still feel that it's superior to the `method url, options do` pattern. That might just be the Happy excitement talking, however.

<comment><USER4> Why do you feel it's superior? It feels distinctly clunkier to me. I'm not opposed to new things, but powerful DSLs are one of Ruby's best perks.

<comment><AUTHOR> Because then you have to handle things like route precedence, method routing, "resource" mapping, etc. The `def route` way is very linear, you have one point of entry and that's it, the code just flows from there. With a bunch of `match /xyz` statements, or even a routing layer, the connection is less direct and potentially more prone to bugs.

</comment></comment></comment></comment><comment><USER5> I'm interested in this but your introduction is a little lacking. "Hello, World" isn't really enough to get a feel for a framework, how about "Hello, To-Do App" or "Hello, Blog"?

Regardless, congrats on your release!

<comment><USER6> Hi, author of Happy here. A Todo or Blog app as a basic example is a great idea! I'm planning on adding more example apps to the source distribution and will make sure they'll be part of that.

I'm also the author of Schnitzelpress, a Ruby-based blog engine built with Sinatra (and optimized for hosting on Heroku and similar cloud providers), and I will be porting it from Sinatra to Happy some time soon.

</comment></comment><comment><USER7> First pet project created in it (<https://github.com/prograils/css2ap>), framework looks really promising for tiny webapps. What I really like is this simple and straightforward flow control.

<comment><USER6> Thanks for giving it a go, and I'm really glad that you like it!

However, whenever someone says that Happy is a nice framework "for tiny webapps", I like to chime in and add that the goal for Happy is to be as simple (and thus fit for tiny apps) as Sinatra, but also a great fit for large applications as it allows for a kind of modular development style that may feel a whole lot more natural to some people than what Rails is doing (and Padrino is sadly trying to mimick): controllers actually describing behavior - no matter how simple or complex - and not URLs or individual resources.

I'm very much looking forward to finding out how much this resonates with other Rubyists. Upwards and onwards :)</comment></comment>


The Verge shows different titles to different visitors - <AUTHOR> http://imgur.com/a/lcOPk <comment><USER2> Vox Media (which owns Verge) uses A/B testing for its headlines: [http://knightlab.northwestern.edu/2013/08/15/designing- from-...](http://knightlab.northwestern.edu/2013/08/15/designing-from-data- how-news-organizations-use-ab-testing-to-increase-user-engagement/)

<comment><USER3> Yea, this just looks like standard A/B testing.. Though, it's interesting to see the variations in headlines side by side like this.</comment></comment>


A Good Year for "A Programmer's Introduction to Mathematics" - <AUTHOR> https://jeremykun.com/2019/12/01/a-good-year-for-a-programmers-introduction-to-mathematics/ <comment><USER2> I picked up this book, wasn't a huge fan.

The idea is great: teach mathematics in a way a computer programmer would understand.

But the title is misleading. The premise that this book will teach you maths using your already existing programming knowledge as a metaphor to build against is false.

It is literally a programmer introducing you to mathematics. Not an introduction to mathematics using programming as a foundation.

The title is catchy. The book had no editor.

<comment><USER3> I recommend you check out the minireference No Bullshit books.

[https://minireference.com/](https://minireference.com/)

I own both. They're not aimed specifically at programmers, which I don't see as a downside.

<comment><USER4> Thank you for the link. I am at a juncture where I need to relearn some of the basics to help my higher school going daughter. The book on math and physics was exactly something I was looking for.

I would also like to get my hands on Resnick and Halliday books that I studied back in India during 11th and 12th.

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

</comment></comment></comment><comment><USER5> I finished this recently, and ended up with a mixed-but-overall-negative view.

As someone who had a reasonable aptitude for mathematics in the past but essentially no practice in the last 10 years, it seemed like the content varied wildly in how well it built on previous chapters, or more generally adhered to the "introduction" label. The programming-based content was thin to the point of being pretty much irrelevant, leaving the whole as something more like a scatter-brained textbook for an odd curriculum rather than a refocused version of a sensible one.

</comment><comment><USER6> Kun misquoted my review, stating "As the Amazon reviewer 'SCB' put it, 'the book feels more like a refresher than an introduction.' User 'zach' concurred, calling it 'not a kind introduction'..." In fact, I am not qualified to describe the book as a refresher, because I have no background to be refreshed.

Moving on, it's disappointing that Kun didn't see any value in improving his product based on common feedback. It seems like negative reviews would be an opportunity for the author to better understand the audience he marketed his book toward.

At the same time, it's disorienting to see a real person acknowledge one of my reviews. I'm sure if I knew Kun in person I would be far more appreciative and impressed with his dedication and work than I allowed myself to be as a paying customer. I want to thank him for taking the high road and not lashing out at me for the unproductive snark that peppered my review.

</comment><comment><USER7> I have this book. I did not take a ton of math in college and it was pretty good to refresh and get better understanding on some topics I missed out on. Would recommend for someone with a similar background (undergrad in business college not math or engineering).

I'm sure you can easily find all these lessons online or in videos but I like having the physical book. Partially to hold it and read it in my hands, and partially to have a consistent format and tone over a lot of topics.

</comment><comment><USER8> I didn't read this book, I tried reading books like this though [1].

Because of my experience [1], I have an entirely different approach to learning mathematics as a developer. The "do the normal track and suck it up approach."

This should be a blog post, but I don't have a blog and don't have the time to edit a story _that_ nicely.

1.5 years before graduation, I couldn't handle advanced math anymore and I flunked the year. The next year I transferred to an easier math curriculum and have been coasting ever since. Even in my CS degree courses they never taught us linear algebra and calculus (I did learn graph theory, that was hard).

I didn't regret this decision of not studying maths for more than a decade, until a few months ago. I am noticing that my solid fundamental progress of mathematics has stopped in high school, learning graph theory was more about passing the course.

But now I want to join the conversation in math. So time to change that.

My method:

I am using the book of Haese & Harris IB HL. It's the most advanced high school math book for international students. I am now up to chapter 6 (complex numbers).

And Wow! THIS IS AWESOME! :D

Maths is just like software engineering, or at least algebra is.

I'm having tons of fun, who knew? I really didn't. I think it's because my approach to math is really different than when I was young.

Every time when I freak out, I use my programmer instincts to treat math as a 'best practices software system for numbers' and that mentality really helps.

A couple of examples:

1\. I found ways to 'debug' algebraic applications (rewrite them in R and see if the evaluated value stays correct) which means I always know at which step I went wrong with my thinking,

2\. I can use variables/abstract things away for a little while (grouping math expressions to letters),

3\. My understanding about looping is useful (summations).

It's insane how much programmer instincts maps to mathematics. It's not fully 1 to 1, but it helps a lot more than it harms.

\---

I'm still looking for a math tutor/coach. So if someone feels bored, or if you just want to discuss math and software engineering. Hit me up (my email is in my profile)!

[1] I tried to read the no bullshit guide to linear algebra. That was not a nice experience at all. Reading an actual high school textbook is a much better experience.

<comment><USER9> I agree completely. The only risk is that once you get to real analysis, your prof will yell at you for mixing notions of complexity and computability into your ideas of what a function is (happened to me).

<comment><USER8> Of that sounds harsh. What do you mean by complexity? I understand computability (having made a Turing machine from a mostly XML based language :D).

<comment><USER9> A function is (at least formally) a relationship between two sets of things. It doesn't matter whether there's any sort of algorithm that lets you input an object from the domain and calculate the corresponding image under the function, or even an approximation. This came up when we were talking about Dedekind cuts or something like that so it's very much not pedantry at all in that sort of context.

<comment><USER10> The main difference between pure math and computer science is that mathematicians assume uncountable sets exist and then use that to prove all sorts of nonsense that are not true in the physical or computable Universe.

<comment><USER11> Many CS papers, at least in machine learning, state an algorithm in terms of real numbers and use results from real analysis to prove properties of the algorithm.

</comment></comment></comment></comment></comment></comment><comment><USER12> Does anyone know any good books for someone who wants to re-learn (and in some places learn for the first time) highschool math as an adult?

I tried Khan academy but I honestly find I get impatient watching videos.

I did well in my Discrete Mathematics class at university because I found it to be intuitive, but if I'm honest I am not as proficient with even basic algebra as I should be

<comment><USER13> I wrote a book that is exactly what you describe (high school math review for adults), which you can check here: [https://www.amazon.com/dp/099200103X/noBSmath](https://www.amazon.com/dp/099200103X/noBSmath) (~200 pages = compact review of high school math topics with lots of exercises and practice problems)

The green book is a subset of the longer book that also covers mechanics and calculus [https://www.amazon.com/dp/0992001005/noBSmathMechCalc](https://www.amazon.com/dp/0992001005/noBSmathMechCalc) (see preview here [https://minireference.com/static/excerpts/noBSguide_v5_previ...](https://minireference.com/static/excerpts/noBSguide_v5_preview.pdf) )

High school math is very deep, so I will not claim to cover _all_ topics, but I present the most useful parts (equations, algebra, functions and inverses, math modelling), so it would be a good starting point.

Independent and in addition to the above, you can check out this printable tutorial on SymPy that can also be helpful as a review of lots of high school math material: [https://minireference.com/static/tutorials/sympy_tutorial.pd...](https://minireference.com/static/tutorials/sympy_tutorial.pdf)

<comment><USER12> Awesome thanks, I'll check those out too. A very brief skim of the preview pdf makes me think The NoBS guide would be a good fit for me

</comment></comment></comment><comment><USER14> "If you want your career to grow beyond shuffling data around to meet arbitrary business goals, you should learn the tools that enable you to write programs that captivate and delight you. Mathematics is one of those tools."

His quote from the introduction of his book rings kind of true to me. I kind of hit a wall in my CS education. It's like I'm learning and building different flavors of the same thing over and over again with no deeper insight. New frameworks and new languages but the same concepts on an endless loop.

At my old age I've come to realize that the deeper insight is located in mathematics... and programming was just a small aspect of what was ultimately a larger structure. If you stay in the programming field, the only thing that's going to happen is you're going to travel in circles, you need to move to math or move part of your learning into something more mathematics based in order to gain that "deeper insight".

</comment><comment><USER15> I've been reading this on and off over the last few months. I just want to say that the linear algebra material is excellent and really helpful. It's conversational and yet it's pitched at the style/standard of linear algebra you'd get if you were taking it as an introductory course in a pure math sequence (i.e. abstract vector spaces and linear transformations, matrices and vectors of coordinates only enter when you have a basis, etc), and yet it stays focused on the core important topics; other linear algebra courses I've been working on have got a bit too theoretical/fancy too early (e.g. quotient spaces and rings and ideals and vector spaces over finite fields), when I felt like I should be focusing more on eigenvectors and orthonormal bases and more basic stuff like that, as PIM does.

</comment><comment> solaris- >I didn't provide solutions, and I didn't make a Kindle version. I have no plans to change that as of now.

This hurts those that are self-studying without access to other mathematicians. I'm not buying his book for this reason, so are there any other introductory math books people recommend that include solutions?

<comment><USER10> If you are in the Internet you have access to the math sectiom of Stack Exchange and Reddit, both loaded with volunteer math tutors.

<comment> solaris- While this is true I tend to solve problems in bulk. I do not want to post 16 questions all at once for people to check my proofs. Sometimes people think you are a student and are trying to get answers for homework assignments.

It would be better if authors would write textbooks aimed at beginners that are self-studying and thus provide solutions. The author of this textbook has a missed opportunity by ignoring to provide solutions. I don't recommend this book to anyone for this reason.

<comment> dan-robertson People think you are a student trying to cheat if you just post the problem (or worse, a photograph of it). People will be more receptive if you post the problem, your attempted proof, and ask for some review/verification. Certainly it doesn't look like you're trying to cheat (I don't know about other universities but at mine you weren't marked for correct problem sheet answers; the purpose was to improve understanding so this kind of posting online for help would be quite reasonable)

The tricky case is with a problem where you don't know where to start, it's hard to ask a question like "here's a problem and I don't know where to start. Can you try to give me a hint?" But certainly explicitly asking for a hint will reflect better on you and adding some ideas you had (and why you couldn't make them work or didn't think they would work) would improve it more.

The other tricky case would be if you were missing something you never thought about, eg never thinking to check that your functions were well-defined. These systematic errors are hard but could hopefully be found by asking for help with verification with a subset of your solutions.

Posting solutions for verification/reading would hopefully also help you improve the clarity of the argument and your thought (and I guess it might help with style too).

Hopefully over time, you would find that your confidence in your own verification abilities increases and that your rate of errors if you do ask for verification decreases.

A final issue you might see is that if a question is elementary for those whom you are asking for verification (and this will happen a lot however advanced the topic), you may get a reply like "why not just say <some short solution>?" This is about as useful as an author-provided solution but not so great for proof verification. (The reason for these answers is that often exercises are hinting at some higher-level structure/theorem which you don't yet know about and if you did know about it, you could use that knowledge to much more easily solve the problem)

————

I wonder how useful author-provided solutions really are. If the exercise is to prove something (as many good exercises are) then your solution is never going to be the same as the author's and looking at the author's proof won't tell you if yours is any good.

<comment> solaris- I'm not talking about posting a question online and asking "how do I solve this" but posting bulk proofs (that you did) and asking someone to verify them all at once. This can be side-stepped if the author provided solutions. Yes, the author's solutions may be different than yours, but that isn't a good reason to not include solutions.

>Hopefully over time, you would find that your confidence in your own verification abilities increases and that your rate of errors if you do ask for verification decreases.

Yes, but without feedback this is hard to do.

This book is not for self-studiers, least not in current form. It seems like there is a disconnect between authors and self-studiers. I can understand if the textbook is written so solutions aren't provided such that universities will buy the book, but there is a market for those no longer in classrooms that want to learn and an author that takes the time to provide solutions helps tremendously.

</comment></comment></comment></comment></comment><comment><USER16> Seems like translation rights for a popular book would be really easy money, plus helpful to folks who don't know English. What am I missing?

</comment><comment><USER17> I read the book and loved it. I hope there will be a follow-up book with more advanced topics.</comment>


Nintendo Confirms Wii U Has Flopped, Slashes Sales Forecast By ~70% - <AUTHOR> http://techcrunch.com/2014/01/17/wii-u-not-selling/

<comment><USER2> Nobody wanted the etch-a-sketch screen. It shouldn't have been a core feature of the device. I get why they liked the idea - it unified the 3DS and U interfaces into a single common set of controls/screens.

But honestly, the Wii was such a smash hit, they probably would've been fine to just provide an HD refresh of it. Stick on a few more buttons so it's better for cross-platform gaming and make rechargeable controllers standard, stuff like that. The Wii was a solid console with a few flaws. Instead of "hey, there's a new HD Wii" the reaction was "Nintendo released this weird freaking tablet Wii thing - is it a new console or a peripheral? What?

Their experiments with the etch-a-sketch controller would've been better handled with 3DS integration - provide the etch-a-sketch as an optional alternative to the 3DS-as-controller. Normally optional peripherals are a dead-end but wireless 3DS integration wouldn't be as cumbersome as previous generations where you had to buy a special dedicated piece of hardware for the purpose (at the very least a special cable for GBA/GC integration).

<comment><USER3> Culturally, Nintendo _hates_ cross-platform gaming, or used to anyway. Things like the U screen are part of various ploys to force developers to take advantage of Nintendos unique features (like dual screens on the DS, and the motion control on the Wii). Not all of them have worked...</comment></comment>


San Francisco bookstore explains why they are boycotting a book - <AUTHOR> http://www.booksmith.com/regarding-simon-schuster-milo-y-and-booksmith <comment><USER2> According to their book search page, however, they have no problem with selling "Mein Kampf".

<comment><USER3> That's an atypically facile comparison from you. Book stores routinely sell Mein Kampf because it's studied today due to its historical context. The Jesuits made me read big chunks of Mein Kampf in high school. Hopefully, 50 years from now, they won't have cause to force teenagers to read Milo Yiannapoulos.</comment></comment>


Mosquitoes have been almost completely wiped out on two Chinese islands - <AUTHOR> https://edition.cnn.com/2019/07/18/health/asian-tiger-mosquitoes-guangzhou-intl-hnk/index.html <comment><USER2> Grew up in central China (Wuhan), a notoriously swampy region, we were always taught about two types of mosquitos: the regular ones and the "poisonous" ones (tiger mosquito). I remember avoiding these tiger mosquitos like plague. To this day I still hate mosquitos with a passion.

These little buggers are so adaptive, they are like the stealth jets of mosquito world: They are smaller, quieter, swifter. When they land on your skin you wouldn't feel a thing even in plain sight. They've even learned to avoid blue lights (traps) and became resistant to various bug repellant that we used. It was an endless arms race. Worst of all, its bite would leave you itchy for days. I still remember in some of my elementary school photo, my legs looked like they were the surface of moon.

If there is one thing I learned is that if you want to get rid them, you would have to do it 100%, because even if you leave 0.1% alive, they will adapt and come out stronger than ever.

<comment><USER3> a generous amount of body hair can provide some early-detection capabilities.

<comment><USER4> Its more of a curse, than it is a blessing. The amount of false positives from small breezes is quite large.

</comment></comment></comment><comment><USER5> Interesting but an isolated environment. I'm sure you could wipe out most any disease or disease vector if that area was completely isolated from the rest of the world.</comment>


Hundreds of US cities are killing or scaling back their recycling programs - <AUTHOR> https://www.vox.com/the-goods/2019/3/18/18271470/us-cities-stop-recycling-china-ban-on-recycles <comment><USER2> Honestly, in terms of house hold waste, aluminum is the material that makes sense to recycle.

<comment><USER3> Read recently only about 30% of aluminum can sheet aluminum is from recycled aluminum cans. So recycled cans are piling up waiting for prices to go back up.

<comment><USER4> Aluminum has more applications than cans. How many cans are recycled into aircraft or cars?

<comment><USER3> That's the thing, aircraft mfgs (and possibly car) prefer new aluminum to Al made from recycled cans (maybe getting impurities out is too expensive?)

<comment><USER5> Aluminum cans are poor quality metal. The tabs to open them however, are much better. DIY people that melt down metals avoid aluminum cans because of all the slag produced when melting.

<comment><USER6> I doubt there's anything wrong with the metal; the problem with cans is that they have a coating on the inside to keep the liquid out of contact with bare aluminum. Obviously, it's pretty hard to separate the two without melting the can completely.

The outside of the can, of course, has paint on it.

The tabs are pure aluminum without any protective coating or paint.

</comment></comment></comment></comment></comment></comment><comment><USER7> This will sound like it's made up but it's not. When I lived in Seattle a couple years ago (Belltown), my apartment building had a policy of no recyclables or things that are harmful to the environment in the trash.

It was somehow enforced by the city. I didn't think too much of it until they fined all the tenants because someone was putting stuff in the trash they weren't supposed to. The city actually hired people to dig in the trash and figure out where it came from.

<comment><USER8> I lived in Seattle. I know they did this when composting became required, and if they saw recyclables or compost materials through your trash bag they could fine you. They were not supposed to be opening your trash bags though.</comment></comment>


Real or Fake? - 11,400% Generator Efficiency - <AUTHOR> http://www.josephnewman.com/

<comment><USER2> Fake, see 'laws of thermodynamics' [1]

Although its even easier to understand why its fake when you consider the claim 'pumped 300,000 gallons of water with 44 watts of power'. A gallon of water weighs approximately 3,6 Kg. Lets say the pump changes the elevation of the water by one foot or .304 meters. We can compute the potential energy [2] in that water as W = mgh where m is the mass, g the nominal gravitational constant, and h is the height difference. So 3.6 kg/gal * 300,000 gal * .3 meters * 9.81 m/s is 3,178,440 joules. One joule per second it also a 'watt second.'

Hydro-electric generation is roughly 40% efficient a small pico-hydro [3] unit that drained those 300,000 gallons in an hour would convert that 3,178,440 joules into slightly more than 1.25 million joules of electrical energy over an hour or about 353 watt-hrs. Removing the 44 watts needed to power it you would have 300 watts of "free" energy. Build 10 of these and you would get 3KW of free energy which you could start selling to the power company at 5 cents a kW-Hr. Every time you had enough money to build a new engine you could add that to the power plant. Each engine adds $.005/hr of income, Once you've got a thousand engines build you're making $5/hr, all day and all night, at 10,000 engines you're making $50/hr and at 100,000 engines you're making $500/hr. At a million engines you're making $5,000/hr while they recirculate a few hundred thousand gallons of water amongst them selves and generate endless profit for you.

Except Mr Newman not only isn't a billionare he's pandering for money. It's fake. QED.

[1] <http://en.wikipedia.org/wiki/Laws_of_thermodynamics>

[2] <http://en.wikipedia.org/wiki/Potential_energy>

[3] <http://en.wikipedia.org/wiki/Pico_hydro></comment>


Patreon Continues to Have Trouble Processing Payments - <AUTHOR> https://status.patreon.com/incidents/1jgwbthlf133?u=w5xqzn4qr8mf <comment><AUTHOR> In fact, their website is currently down in maintenance mode.</comment>


Why are there no loops in FP? - <AUTHOR>

I'm trying to learn Haskell and more generally FP and can't help but notice the lack of loops. While I realize you can accomplish the same thing with recursion, I feel like I am missing something because I dont see why loops are an inherently imperative idea. <comment><USER2> Would you expect to see a for loop in a mathematical equation? You're correct in noticing that a lot of the reasons why you'd use a for loop are taken care of with basic functions such as map (to perform some action on different elements in a list), reduce (to do some sort of aggregation).

So you kinda just don't need for loops anymore and they're inherently imperative because you need to setup some sort of condition to say keep performing this sequence of actions (which is the main idea behind imperative programming) until this condition is no longer satisfied.

<comment><AUTHOR> Ah I guess that is true! There's no reason to have them unless you need them since it would make the language simpler. Also I am beginning to see that loops actually can lead to programs which are hard to reason with, so if anything I guess they would want to not include them unless absolutely necessary.

<comment><USER3> Maybe think about it this way:

Loops are not _expressions_.

(Where I assume that you are talking about for-loops and the like.)

</comment></comment></comment><comment><USER4> Recursion is looping. Some iterative loops can be expressed recursively - these are the ones that can be tail call optimized. _SICP_ has a good explanation:

[https://mitpress.mit.edu/sicp/full- text/sicp/book/node15.htm...](https://mitpress.mit.edu/sicp/full- text/sicp/book/node15.html)

The advantage of using recursive definitions for loops is that it avoids modifying places in favor of returning values. Rich Hickey gives a good talk on the subject in _The Value of Values_ :

[http://www.infoq.com/presentations/Value- Values](http://www.infoq.com/presentations/Value-Values)

</comment><comment><USER5> You can use forM. As for why for loops are imperative or if they are... Not sure. A few thoughts come to mind:

For loops dont return a value, whereas forM and even forM_ both return values. They are normal functions rather than just control structures.

</comment><comment><USER5> Also, if you can post some code examples where you "feel you are missing something" I (or others) might be able to provide the functional examples.

<comment><AUTHOR> I feel like I'm missing something not in the sense of not understanding how to use the language but not fully understanding what the principles of functional programming are.

At least, what makes one language imperative vs functional?

I always thought functional languages were about describing what things should do whereas imperative languages were about telling the computer what to do. I suppose in that sense loops are not really functional because they are not very descriptive, but I was wondering if there was more to it than that.

</comment></comment><comment><USER6> Checkout the clojure loop form.

</comment><comment><USER7> So, it's not like loops are an inherently imperative idea, so much as that they typically are something that only make obvious sense in an imperative world.

Let's start with a simple function that counts down from five in Javascript:

        var countDownFromFive = function() {
            console.log(5);
            console.log(4);
            console.log(3);
            console.log(2);
            console.log(1);
            console.log(0);
        }

So, that's the purely imperative way of doing things. We notice a pattern, though: the numbers are just a list from [5,4,3,2,1,0]. So, we could just describe them as the series _S(n) = n + S(n-1), where n >= 0_. So, we write it in that form:

        var countDownFrom = function(num) {
            console.log( num );
            if (num >= 0) {
                countDownFrom(num - 1);
            }
        }

And then our count down from five becomes:

        var countDownFromFive = function() {
            countDownFrom(5);
        }

So, that's great, and that's a nice recursive definition of the problem. The problem is, though, that for a really big number, say 2^32, we've got to store a stack of results, and that blows everything up. We can fix this with tail call optimization, because we know we can reuse the same stack frames, but that's an optimization many low-level languages don't have.

Indeed, until we've invented them, we don't even have the necessary concepts of a stack with function frames. So, let's look at our problem again.

Let's pretend we're in a very limited assembly language, with just registers:

        LOAD registerA 5
        PRINT registerA
        LOAD registerA 4
        PRINT registerA
        LOAD registerA 3
        PRINT registerA
        LOAD registerA 2
        PRINT registerA
        LOAD registerA 1
        PRINT registerA
        LOAD registerA 0
        PRINT registerA

So, that mirrors our pure imperative case. Aha, but let's say we're smarter than that, and we have a branch instruction and a decrement operator:

        start:
            LOAD registerA 5
        doPrint:
            PRINT registerA
            DECREMENT registerA
            JUMP_IF_NOT_NEGATIVE registerA doPrint
        finish:
            HALT

So, even without the notion of a function stack, we can still print a list of numbers. We are now experts at counting down from five.

~

The thing we see, though, is that the difference in implementation comes from basically whether or not you can compose functions: if you can, you use the functional approach. If you can't, you refactor the problem to have an explicit accumulator (your loop variable).

Loops can be considered an inherently imperative idea because you have this changing context wrapping the function being invoked (a mutating accumulator, if you will)--in the functional world, you merely wrap another function which itself creates a new context with the desired mutation, and that function in turn calls another function setting up its own context and so on and so forth. It's somewhat handier to prove correctness and behavior of these recursive functions compared with their mutating accumulator imperative solutions; at the same time, they are slower without compiler support.

<comment><AUTHOR> That last paragraph really helped make this clear. Thanks!

I guess I never thought about it that way but the logic in the loops could be considered their own functions, except they actually can reference and alter variables outside the loop which is kind of against the ideas of functional programming.

Awesome! Thanks again

<comment><USER7> Glad I could help!

One last thing: the core idea of functional programming is mapping state to state, the same way a transform matrix maps a vector to another vector. So, to accomplish something, you string together functions to map you from the state you have to an ultimate state that you want.

For something like calculating the average of a set of numbers, this would be:

[ set of numbers ] -> function maps from the "set of numbers space" to the "sum of all numbers in a set space" \--> function that maps from the "number space" to the "number space scaled by a value (here being the number of original numbers in the set)" \--> your final mean

</comment></comment></comment><comment><USER8> It's not necessarily that the two concepts never shall meet; Racket, Heresy, and F# all contain for loops, but there are crucial differences in how the former two handle them vs. how for loops are usually used in other languages.

In most languages, the usefulness of for loops is almost entirely contingent upon either mutability (in the form of some accumulating variable and/or explicit alteration of program state) or on side effects like I/O routines. Partly, these things are often only necessary because the language itself doesn't handle recursion well; why use a for loop to generate a factorial, for example, when I can simply call the function again?

However, you can get something an awful lot like a traditional for loop, while still staying relatively functional pure: in Racket and Heresy, for loops are actually just some familiar syntax sugar layered on top of what's actually a recursive function. They actually become an abstraction over a very common pattern in Lisp languages: the let loop.

In Racket, often times I still need to accumulate some value over successive computations, but I don't necessarily need to build a whole named function to do it. In those scenarios I can make a let loop, which looks like this:

      (let foo ([var 0]
                [l '()])
        (if (> var 10)
          l
          (foo (+ 1 var) (cons var l))))

If that looks a lot like a for loop, well, that's because it basically is! It's just the recursive, functional method of writing a similar pattern. Rather than having to rewrite that pattern over and over again in our code, Racket provides a whole range of built-in for loop styles, so that the same pattern can more simply be written:

      (for/list ([x (in-range 10)])
        x)

Underneath, it's still the same functional code (well, with a lot of other toys to allow things like breaking on a condition, skipping entries, etc.). Heresy goes a step further towards simplifying the huge breadth of specialized for/functions that Racket uses, allowing you to write a for loop in a functional style while explicitly defining your carrying values. So you can write stuff like this:

      (for (x in (range 1 to 10) with '())
        (carry (join x cry)))

Which seems more complicated, except that you can use that 'with' keyword to define any starting point for the 'cry' variable you like, meaning you can easily write all manner of different patterns with the same basic syntax.

There are of course complications with this; the functional for loop is great in dynamically typed languages but it can be tricky to correctly type-check, which is why in Haskell it's a monad-y thing, and in Typed Racket there's a number of bugs still being worked out for handling the for loops.

Still, the two aren't necessarily mortal enemies, or explicitly imperative or functional, it just takes some thinking about what you wish to do.</comment>


How child porn killed my app called YayNay - <AUTHOR> https://medium.com/p/c0ccea6d8b2c

<comment><USER2> I don't get it, this app was clearly doomed and he says so:

"Two weeks after our re-launch we only had 1100 total users, 1079 of whom I'm sure were people I personally invited, bribed or guilt tripped into downloading the app."

"Prior to the child porn incident we were seeing significant drops in user acquisition and usage"

So how did a single incident with a perv (or more likely a troll) "kill" it?</comment>


The Why of Y (2001) [pdf] - <AUTHOR> https://www.dreamsongs.com/Files/WhyOfY.pdf <comment><USER2> The article is called "The Why of Y", but there is no discussion of "why", just a derivation of the Y combinator. Pun aside, it should really be called "The How of Y". In fact, "how" is used four times in the first two sentences:

> Did you ever wonder how Y works and how anyone could ever have thought of > it? In this note I'll try to explain to you not only how it works, but how > someone could have invented it.

Is there a "why"? That is, why would anyone care about the Y combinator? There's theoretical interest, of course, if you're into that kind of thing. It's also a great party trick, particularly if you're able to quickly reproduce it in Python or Javascript. Beyond that there is just one real-life, practical use I have ever found for the Y combinator. I was messing around with Smalltalk and I wanted to write a basic recursive factorial function. But Smalltalk requires some keyword to be able to do recursion, and I didn't know it. However, I did know how to use anonymous functions (I think they call them _blocks_ ), and I also knew the Y combinator, so I was successfully able to implement my recursive function without actually using recursion.

</comment><comment><USER3> Another great exposition on the applicative-order Y combinator can be found at the end of Chapter 9 of _The Little Schemer_.

It is interesting to contrast with how in Haskell, one can simply define Y as

      Y f = f (Y f)

owing to the fact that it is lazily evaluated.

<comment><USER4> I'm not proficient in Haskell, but how would the compiler be able to statically type that expression?

<comment><USER5>
      Prelude> y f = f (y f)
      Prelude> :type y
      y :: (t -> t) -> t

Because _f_ is applied to an argument, it must be a function of generic type t -> u. Because _y_ is applied to _f_ , it must be a function of type (t -> u) -> v. Then the type of _y f_ is v. Because _f_ is applied to _y f_ , t = v. Then the type of _f (y f)_ is u. Because _y f_ is defined as _f (y f)_ , the two expressions need to have the same type, t = u. Therefore _f_ is of type t -> t and _y_ is of type (t -> t) -> t.

<comment><USER6> It's true that the original non-recursive definition of Y doesn't typecheck in Haskell:

      Prelude> \f->(\x->f(x x))(\x->f(x x))

      <interactive>:5:14:
        Occurs check: cannot construct the infinite type: r0 ~ r0 -> t
        ...</comment></comment></comment></comment>


Startup Gives People What They've Always Wanted: Ads to Wipe Your Butt With - <AUTHOR> http://betabeat.com/2012/08/startup-gives-people-what-theyve-always-wanted-ads-to-wipe-your-butt-with/

<comment><USER2> Any of that soybased-ink come off?</comment>


Eliminate paper, not jobs - <AUTHOR> https://blog.citygro.ws/eliminate-paper-not-jobs-a98b607d63b1#.eta9j9kdz <comment><USER2> It is difficult to convey in plain text how repugnant I find suggestions that people _need to be assigned work_ even if their labor is completely obsoleted by machines. It's like the worst of Keynesian stimulus combined with the worst of Puritanism.

Everyone needs goods and services. Not everyone needs work. Not everyone needs a teacher/supervisor/nanny to keep boredom at bay. People who need _to be assigned_ tasks and bosses to feel a sense of purpose should have safe, legal access to that form of domination, of course. In general it does not seem like a good default to build theme-park imitations of antiquated labor patterns using the general public as cast members. Is Wayward Pines what everyone wants? Because that's how you get Wayward Pines. It's a creepy Disneyland where people are damned to forever repeat the motions of 20th century life instead of learning to think differently.

I'm all for software that allows people to spend more time on the interesting parts of their jobs, but the one paragraph about how CityGrows can reduce job drudgery feels out of place after so much praise of work.

<comment><USER3> You did a pretty good job conveying your passion in plain text! I think we agree on the key issue of software being good for eliminating drudgery and paperwork -- I disagree that work is meaningless.

I maintain that getting things for free, without having to earn them yourself, can feel good in the short run but is corrosive in the long term. When I think of a work-free dystopia I think of Wall-E.

I'm a huge proponent of people like Mr Money Mustache and the FIRE community who free themselves from the need to work, but still are engaged in purposeful pursuits whether it's soap making, house flipping or care-taking (what I mean when I talk about 'good work'). The thing is: MMM and other early retirees earned their freedom through years of labor (and smart investing).

Yes, there are limits and exceptions and all of this notion of raising yourself up by the bootstraps is predicated on a level playing field (aka perfect market) that has never existed, but the end notion is, people who don't have to earn what they have suffer.

The challenge is distributing opportunity so that people have access to work that enables them to progress according to their merits, with a strong safety net to catch those who through a lack of luck or ability are not able to make it. We have become unbalanced with too much of the opportunity (and money) being hoarded into a small slice of the population. I don't think automation will fix that - if anything, automation will exacerbate the trend and leave many caught in the kind of draining, involuntary, paycheck-to-paycheck work that I think you are arguing against (and which I also called out).

In either case, I appreciate you reading and taking the time to comment.

<comment><USER2> I believe that people who don't need to work for income will generally be happier if they keep using their bodies, keep interacting in person with other humans, keep some mix of routine and variety in their lives. (But the means to those ends don't need to resemble activities we used to have to _pay people_ to do.) I think that it's a good idea to offer guidance to people who don't need to work but can't figure out what they really want to do with all their free time. I think that it's a _bad_ idea to plan pseudowork employment for people who haven't yet requested any make-believe jobs to go to.

If all productive labor can be done better by machines, then making soap with your own human labor is just as much a game as playing paintball is. It doesn't really matter that one of those activities provided income for large numbers of people, historically, and the other did not. Not everyone needs a job-like activity assigned by others to avoid becoming a Wall-E blob of boredom. (Just as there are a lot of options for young adults with trust funds in between the extremes of "get hired for a job like other 22 year olds" and "suffer endless ennui.") Possessing material security without trading waged labor for it is "dystopian" the way that being a child in the summertime is dystopian. (And yes, some children are going to whine "I'm bored!" until someone gives them chores to do, but don't start planning needless chores for the children who aren't even bored...)</comment></comment></comment>


Checking Frame Damage on the GPU - <AUTHOR> https://andri.yngvason.is/checking-frame-damage.html <comment><USER2> Most of your time is likely waiting for the GPU to complete rendering in glReadPixels. To avoid this, use glSyncFence to know when rendering has completed, and optionally use PBOs to set up the transfer ahead of time. Obviously if you have no important work to do on the CPU in the meantime then it won't help, but if you have other work to be doing you won't be waiting on the GPU. This is extra true if you're using it to get DMA-BUF contents to send across the wire.

There are other tricks you could be using as well (especially if the client gives you a damage rect already), like using a hash for tiles, and doing the vectorization manually on the CPU, but the VNC protocol makes it difficult to work with. Good luck!

<comment><AUTHOR> Hey, thanks for the tips! I've been trying to keep to GL ES 2.0, so PBOs are sadly out of reach at the moment. I might reconsider the version limitation. Maybe there are extensions for sync. If so, I guess I could do things on a worker thread instead.

</comment></comment><comment><USER3> The logical place to use this damage data is in a video encoder (since even the damaged areas of a video frame are probably similar to the previous frame, especially in the case of animations).

Are there any video encoder libraries which allow a damage map to be input, to save encoding time when only a small non-rectangular part of the frame has been changed?

<comment><AUTHOR> Excellent question. I don't know of any video encoder libraries that support damage hints. My own VNC encoder supports it of course, but ZRLE isn't exactly a video codec.

</comment></comment><comment><USER4> Couldnt you use hardware h264 encoder to do it for you for free in neat 8x8 blocks?</comment>