Japan's 105-Hour Workweek - <AUTHOR> http://roadsandkingdoms.com/2015/japans-105-hour-workweek/ <comment><USER2> Ha, ha. What a dystopian country. Except, wait, this is the very country I've been living for decades.

Where to start with? First, the language. The translation of the common phrase, "Otsukare sama desu" isn't "you look tired" (this is already a misleading and insidious tactic to set the whole tone). The phrase is roughly synonymous to "Gokurou sama desu" but with more sympathy. The literal translation would be "it's hardwork-sama (Mr/Ms. hardwork)", and there's a reason that we use honorifics, which is to admire one's effort.

I can't have a word for the gross exaggeration of the work hours in the article, but I'm certain that one of the big reasons for some people to overwork is not loyalty, but fear. It's often said in Japan "incompetent men tend to overwork" and I find it generally true. In this society of lifetime employment, getting fired or demoted at work has very serious consequences. So they often use their long work hours as an excuse or emotional appeal, which can (sadly) still work. But from what I've seen many managements actually hate the employee's over hours because it's costly and inefficient. It's just that it takes a time to change the people's mindset, but I think the situations are slowly getting improved.

It is probably true that we have more perfectionist/anal-retentive kind of people, but again they're generally the result of fear rather than enthusiasm or moral, because their anal-retentiveness doesn't necessarily result in quality work. A lot of lengthy and pointless paperwork, excess bureaucracy, etc, etc. I pity those people, and hope we have more social mobility to dissolve their anxiety.

<comment><USER3> Costly? I was under the impression that this kind of overtime isn't compensated in a lot of cases?

I've heard one reasoning that if they wouldn't do the (free) overtime, then there wouldn't be a company for them to work at, as it couldn't afford to pay their employees then. However, this was a mid-sized local business and not a multi-national corporation.

<comment><USER4> The price of overtime to an employer isn't only (or even mostly) the pay - it's also the impact on the rest of the employee's work. Tom DeMarco and Timothy Lister claim in "Peopleware" that "there will be more or less an hour of undertime for every hour of overtime".

</comment></comment></comment><comment><USER5> I come from a country with the opposite work culture, Norway. We got short days. So does much of northern Europe including Germany. What I don't like about this work hour obsession is the idea that it indicates how hard people work. You can't tell that by hours worked each day. The Greeks work the longest hours in Europe but anybody who has been to Germany and Greece would probably tell you that the Germans probably work harder.

I have a family member who worked in Thailand, which like much of asia has long work hours. But he was far less stressed there than in Norway with his short work hours. In Norway there was no time for anything but work while at work. In Thailand he had lots of time at work to take care of non-work related tasks.

Especially if you got kids in Norway, you end up getting quite stressed even if you work short hours because you don't have the opportunity to dump the whole responsibility of children onto the wife like in Japan. You have to hurry back from work to pick up kids from pre-school/school, help with school work, make dinner, get them ready for bed etc.

Comparing to American work culture which I know best having worked with a lot of Americans I think in Norway we tend to mainly work while at work and socialize after work. While in the US there is a lot more of non-work related activity at work because people spend a lot more time at work. Nothing right or wrong with that. Earlier I worked a lot American style. Spending long hours at work but also socializing more with colleagues.

My point is that I don't think people necessarily should be worshiped for how many hours they spend at work. It is what you do that matters.

<comment><USER6> > The Greeks work the longest hours in Europe but anybody who has been to > Germany and Greece would probably tell you that the Germans probably work > harder.

I don't agree with the "work harder" motive. I'm a Portuguese guy, working for a German company. Half of my team is German and based in Germany, but we visit and are visited very often. As you certainly know, and much like the Greeks, Portuguese rank very high in the amount of hours worked, and very low in productivity. From my experience (and second-hand experience in the company), Germans don't work harder than Portuguese. I also wouldn't say that they work smarter.

I'm not really sure I can point you the exact reason why Germans are more productive (which we know they are, because econometrics et al - but they don't _seem_ to be, working with me on a daily basis). The best I can come up with is systemic advantage. The whole social system seems to be wired for productivity, which isn't true in here (Portugal). It's hard to pinpoint reasons, but I'd say corruption, taking advantage of the state, and all the _small things_. Education doesn't seem to be working here in Portugal; we have an obsessive focus on STEM here, and end up _producing_ very good engineers but very bad citizens. :)

It's the small things, really. Every day you'll notice traffic going slow because someone thought that it's legitimate to park in the road (instead of finding a valid parking place) just to grab some bread or groceries; it really seems a small thing, but embodies (IMHO) the problem: somebody thought that it's valid to make tens or hundreds of people slow down (and risk accidents) just to avoid wasting his personal five minutes to find a parking space.

</comment></comment><comment><USER7> Simply false. It contradicts statistical fact and scientific fact.

1) Average annual hours worked: [https://en.wikipedia.org/wiki/Working_time#Average_annual_ho...](https://en.wikipedia.org/wiki/Working_time#Average_annual_hours_actually_worked_per_worker)

2) The vast majority of humans cannot survive with average sleep length of 4-5h per night on a consistent basis: We will literally, physically die. In reality, the Japanese sleep between 7 and 8 hours on average: [http://www.nhk.or.jp/bunken/english/reports/summary/201104/0...](http://www.nhk.or.jp/bunken/english/reports/summary/201104/01.html)

<comment><USER8> That wikipedia data for Japan is artifically low either because (1) overtime is often unreported and unpaid in Japan (more common in small companies but also true in highly profitable places, including my own former employer) and (2) much of the young workforce is underemployed much like in the States.

It is true also that the numbers will differ from industry to industry, tier to tier. The worst is probably the smaller System Integration "SI" shops. The Mizuho Bank System Integration work going on right now is one much project that will be a multi-year "death march". And yes, people do actually die in these projects. You don't get terms like Karoshi entering Western vernacular without cause. [https://en.wikipedia.org/wiki/Kar%C5%8Dshi](https://en.wikipedia.org/wiki/Kar%C5%8Dshi)

Even at my former gig, there was a building occupied by the Integrated Circuits team that was called "The Castle with no Night" because the motion detection enabled lights never went out.

</comment></comment><comment><USER9> In NYC I worked at a firm where they had to lock the doors and do a security sweep at midnight to prevent people from sleeping under the desks so they could work more. This was a during a training class--not even real work! This wasn't even an investment bank or law firm--the two places in NYC most noted for such extreme "work ethic."

In Singapore there is a well-known phenomenon where employees will not leave the office until (just) after the boss leaves. It doesn't matter if there is nothing left to do--you must never be seen leaving first. For a year I arrived to work 1-2 hours earlier than everyone else, and you know what appeared on my year-end review? "Leaves the office too early."

</comment><comment><USER10> > In 2007, Mitsubishi UFJ Trust & Banking initiated a program to allow > employees to go home up to three hours early to care for children or elderly > relatives. _After two years, only 34 of the company's 7,000 employees had > signed up for the program_.

After two years, only 34 people were willing to be officially identified as people who go home early.

<comment><USER11> Sounds like the 'unlimited vacation' that's getting quite popular in the Valley

<comment><USER12> Unlimited vacation is an accounting trick. If a company is acquired, promised yet unclaimed vacation is a liability reducing valuation. Unlimited vacation means the company has not promised a set amount for the year and thus is not liable for it, paradoxically.

</comment></comment></comment><comment><USER13> I still find it really, _REALLY_ bizarre and totalitarian that there are corporations that sing The Company Song at morning meetings.

That kind of thing just disturbs the ever-living shit out of me, and seems beyond abnormal.

Does that kind of thing still happen? It feels like a certain, painful breed of brainwashing, or B.F. Skinner-style operant conditioning, is needed to command behavior like that.

<comment><USER14> You're gonna _love_ this (from Samsung): [https://www.youtube.com/watch?v=_DFtWPn3aBA](https://www.youtube.com/watch?v=_DFtWPn3aBA)

(Safe for work, though pretty depressing)

<comment><USER15> Samsung is the worst company to work for. Once you leave the company you can not join later. That is illegal but they do it anyway, because they are the boss.

</comment></comment></comment><comment><USER16> This is solely based on my personal experience working in Japan. Reasons why people at my work place work over time:

1\. For more pay. We don't get paid a lot (roughly 1,000 yen an hour for full time contracted lifetime employee), so overtime (2,000 per hour) helps. 2\. Peer pressure. People generally look down on others who leave early. They will mockingly say things like, "wow I'm so envious that you don't have any work." Unless you have some "legitimate" reason (children, illness).

</comment><comment><USER17> I lived one year or so in Japan and could not stand it, after living in Korea for some time and China for 5 years or so. I am European.

When talking with European friends about Japan, they joke about the religion of Japan not being Shinto, but Shigoto(work).

Being alien in the country, with knowledge they did not have, gave me freedom that locals could not dream but I suffered a lot for them. Working to a certain point and your productivity becomes negative in an objective way.

But you can't change it because you have to fight against society. The worst thing is that in lots of ways the US is increasingly going down the same path.

It used to be that this was common in Soviet Russia, the output of your work did not matter as much as your input. A tank was "two times better" if it required double quantity of materials, or double assembly hours. So "acting like they were doing a good job" was more important that doing a good job.

It looks like the natural consequence of central planning.

</comment><comment><USER18> This article about the Japanese workplace culture through the lens of an anglo-saxon person working there somehow echoes my experience as a Frenchman living and working in North America.

Long hours, not necessarily done efficiently, a culture of pride in the long hours you're putting in and a total disregard for the fact that the human brain needs rest to go full speed without burning out.

Balancing personal life, rest, family and physical activity just becomes unfeasible past 40 hours a week, ain't it?

</comment><comment><USER19> As someone who lives in Japan, I thought I'd give some background information about the pictures included in the article. They're (edit: the pictures AND the captions) clearly chosen to give credence to the "Japanese salaryman"[1] who's always busy and "works to death."[2]

I'll go over the pictures in order displayed in the article, using their captions as a guide.

> Salarymen resting midmeal.

A common theme in the selected pictures is that the people in them are relaxing and I think the implication is supposed to be that they're working 105-hour weeks and they're trying to grab rest where they can.

This is not an unusual sight in Japan or America. You go out to eat with coworkers you like, then you sit back and chat. The Japanese image of someone who's really busy is someone who eats a lunch box or rice ball at his desk while working.

Edit: They're sitting on the floor because they're in a Japanese-style restaurant, so it's easier to lean back on your elbows because there's no chair.

> Staring into nothingness in Hakodate.

This guy isn't staring off into nothingness because he's depressed or so tired he can't think; he's smoking. People tend to stare off into the distance if they're smoking alone and not using their phones or something.

> Standing salarymen eating.

Crowded cities mean strangely-shaped shops with little room for seating. Sushi and noodle bars lend themselves especially well to this kind of standing restaurant since both can be prepared quickly and eaten while standing. All kinds of people eat at these places, not just salarymen. One of the best udon restaurants in my neighborhood is like this.

> Passed out on the train

Looks like a special express, almost definitely not a bullet train given the decor. If you're riding one of those, you're probably traveling for at least an hour. You don't have to be working 105-hour weeks to want to take a nap on a trip where you have nothing to do for an hour.

[1] The idea that there's a generic "Japanese salaryman" is ridiculous. The word itself just means someone who works in an office. Imagine if you gave a single label to every full-time employee in an office in America -- that's how it comes across when Western media uses it.

[2] Another popular "exotic, overworked Japan" meme that comes up is the fact that there's a compound word (過労死, karoushi) for "death by overwork." This is no more exciting than the fact that you can say "death by overwork" in English.

<comment><USER20> I wonder if I'll ever see a picture of myself napping on the subway in an article about overworked NYC residents?

</comment></comment><comment><USER21> I like the author's writing style. However, it's misleading to make such sweeping generalizations about Japan. I lived in Kyoto for six years. My children went to the local school, and I knew many of the fathers. Nobody I knew was in the situation described here.

The subway at 5-6pm was crowded with salarymen returning from their jobs.

The life of a salaryman lawyer in downtown Tokyo does not extend to the entire country. The author himself, to his credit, might not fully realize this yet.

I also concur with the comments I've read here from other residents of Japan.

</comment><comment><USER22> I know this is supposedly just lawyers and other specialists, although it sounds like it's not much better for other "salarymen." I'm having trouble corroborating the actual numbers, though. And if so many men are getting so little sleep, how is life expectancy still so high in Japan? Any other sources for this?

<comment><USER23> Yeah, I would be really interested in knowing what the statistics are like for IT related careers such as Software Development.

</comment></comment><comment><USER24> How can you be working just as efficiently as Western counterparts when you're napping? I don't know about being a lawyer, but in my own experience it is impossible for me to program effectively after about 10 hours. Wouldn't surprise me if there are rare exceptions, but generally the human body just does not handle that well.

</comment><comment><USER25> This guardian article makes the consequences of this overwork clear: Japan's birth rate is lower than its death rate. ( [http://www.theguardian.com/world/2013/oct/20/young-people- ja...](http://www.theguardian.com/world/2013/oct/20/young-people-japan- stopped-having-sex) )

</comment><comment><USER26> There are early Apple/Jobs stories about working "90 hours a week and loving it". I know people that put in 80 hours a week here in the U.S. The most I have ever put in was 65-70 hours for a job that I really liked.

</comment><comment><USER27> This is mainly second-hand information. I haven't worked at a Japanese company, the closest I've gotten was interviews and a sort of off the record job offer. I have lived in the country for 1 year though, so I definitely saw the actual hours friends were at work or busy because of work.

1\. Japanese business culture sees labor laws as guidelines.

2\. Being overworked (meaning enduring or working extra hours) is seen as a "good" thing.

3\. Doing anything to sabotage the team effort (including working fewer hours, not being available, not asking to help others) is seen as the worst thing you could do.

4\. Being granted a week off by your company is seen as generous (even though you may be allocated 2 or more weeks a year). The corollary to this is not taking your allocated vacation hours is seen as a good thing.

5\. You don't miss work due to a cold, you put on a mask and show up anyway.

6\. Punctuality is in some ways more important than doing the actual job. This is why people go through great efforts to jam into a single train in order to not be late by even 5 minutes.

7\. Apologies are expected, more than reasons or explanations. The message your superior wants to hear isn't that you screwed up, it is that you are inferior and have no excuse and he is superior to you (hence an apology). This is a legacy of Japan's feudal days; Japanese large corporations are essentially the transformation of what used to be feudal powers.

8\. Confrontation is avoided at great lengths. This is why Japanese have a hard time of saying "no". This implies that if your boss asks for work to be done, you will undoubtedly agree without complaint.

9\. Women are paid significantly less than men, but the trade off is a woman can quit her job to rear children and not be "penalized" from a social standpoint. Men get paid more than women but Japanese culture expects that the man of the family will pay for his wife and children in full through retirement even if the woman doesn't work a single day.

10\. Since men are the de facto breadwinner, and women often don't work to take care of the household/children, men are expected (even by their own families) to work longer hours in order to advance the entire family. It is not uncommon for the father of a family to live/work in a city 2-3 hours away from where his family resides.

11\. "Black" company (in Japanese) is a term that refers to businesses that have mandatory overtime (12+ hour days). I guesstimate roughly half of all companies in Japan are Black companies.

12\. Companies often have "Nomikai" (drinking parties). They are not mandatory per se, but like everything in Japan, social pressure is often used to force people to attend. This is considered a work function even though no actual work takes place.

13\. Most employees in Japan are part of "sales". This doesn't imply selling a product, rather it means wining and dining to the customer (Business to Business). This includes things like taking the customer on dinners, karaoke, golf, etc all "on the house". Failure to do this mean strain on the customer relationship. Strain on the relationship implies loss of business.

14\. There's a "right" way of doing everything. Japan is a society that values process and manners. For example when you, a Japanese national, go on an interview, and must enter an interview room, you first knock exactly 3 times, yell "excuse me", wait for an invitation, open the door, yell again "pardon me", then enter the room, promptly close the door, wait to be invited again to take a seat, then proceed to take the seat. Failure to do this correctly exactly as listed looks bad.

15\. Japanese (the language) continues to require honorific/humble language _in addition_ to polite language. In school, children must address students senior to themselves using _polite_ language. In the workplace, employees must be able to address superiors and customers using honorific/humble language (a step above polite language, imagine talking to a king in the old days with English). Distant acquaintances and strangers must also be addressed with at a minimum polite language. Casual language is reserved for friends and family only. To be fair, this isn't just unique to Japan but is common in many East- Asian and nearby cultures.

16\. If you want to avoid this hellish landscape and remain in Japan and still be respected, you do have one and only one option. Do well on your college entrance exams in high school, get into the top tier schools, then apply to the top companies and highly desired positions. This will spare you of regular mandatory overtime during your adult life, allow you to have better than average salary, and still be highly respected in society despite only working may an average 10 hours a weekday. Doing something else (like going abroad) is not seen as the "normal" way. Not being normal is not good. The only exceptions are English teachers, translators, and obviously affluent families (that would have been fine anyway). University students can also get away with study abroad, assuming they don't go more than a year and join the rest of their peers in the same job hunting style at the end of it. But these students may have already accepted that they are unlikely to land a good job so study abroad is seen as a way to delay the inevitable.

17\. More and more Japanese are slowly just beginning to say "fuck it". This is leading to interesting subcultures. For example the term called "freeters" (shortening of English free-timers) is a culture of young Japanese that refuse to work standard salary jobs and instead work multiple part time jobs often taking breaks in employment to enjoy free time. More 20s and 30s Japanese are taking advantage of working holiday visa arrangements with other countries as an attempt to expatriate. More and more Japanese are negotiating or purposely deciding to only take jobs where they are allowed a fixed number of hours (often the cost is a reduction in pay or a not so great work assignment). But these groups are still very much the minority and there are definite sacrifices these people have made (or they're just mentally crazy) in the eyes of the typical Japanese.

</comment><comment> bro-stick Work-life "balance" isn't... there's a finite budget of seconds that goes to this or that; so it's how you spend them, how impactful are their results... whether it's enjoyed / "success" by whatever is your interpretation of it's meaning. That said, maybe some people find some reward while simultaneously killing themselves to fit in like Walmart executives (whom jockey to arrive earliest) and newbie startup founders (hopefully they keep enough equity and retain/sustain passion to ship something people love and don't shut/meltdown when they succeed out of fear of the unknown) ... the two former conditions aren't necc. mutex. (It's only lack of self-awareness anticipating likely outcomes that would be a failure.)

It's not how early one comes in or late, how may hours, ... these are all "process people" behaviors that aren't focused on the content impact of their effort.

Finally, inspired by Sir Branson's take on work-life... it's the same thing, act in a globally-consistent manner. Much easier than the insecure, naïve person trying to wear "boss" or "worker" costumes... it's value-subtract business theater.

I could just be old or completely full of shit, either is fine.</comment>


Neanderthal 0.8.0: CPU and GPU support on Linux, Windows, and OS X - <AUTHOR> http://neanderthal.uncomplicate.org/articles/news/release-0.8.0.html <comment><USER2> Hello, Windows 10 user here. How can I be sure I'm using optimized atlas? I tried building it earlier, but with no success. I found some info on atlas forum for older versions, but couldn't get it to work.

<comment><AUTHOR> Easy: if it works, it uses the ATLAS version that is installed on the system, which means that when it works, it will use the optimized ATLAS that you provided. That means that you have to build it itself, which is problematic on Windows, BUT, the author recently released version 3.10.3, and one of major improvements is that builds fine on Windows with cygwin and mingw.

</comment></comment><comment><AUTHOR> Author here, feel free to ask me anything.

</comment><comment><USER3> Not knowing what this was I pressed the "Neanderthal" link at the top left, but this got me a 404 at [http://neanderthal.uncomplicate.org/articles/](http://neanderthal.uncomplicate.org/articles/)

Apart from that, looks good!

<comment><AUTHOR> Fortunately, that link should only lead to the main page of the site. I'll repair that immediately.

</comment></comment><comment><USER4> Sweet! Did you consider using AutoGEMM.py from clBLAS instead of a static GEMM kernel ?

I was considering using a polyhedral compiler macro (like PPCG), for writing OpenCL kernels in matlisp, but it's not clear how optimal this would be.

<comment><AUTHOR> clBLAS is, in my opinion, hard to build AND hard to integrate.

On top of it, this approach gives better performance in most cases even on AMD, and especially on Nvidia. Now, I have AMD hardware, but it is better to create an overall more encompassing library, thus I avoided clBLAS :)

When I need to write my own OpenCL kernels, I use ClojureCL - it gives me easy management while still retaining full control of the kernels and their performance.

<comment><USER4> I found the latest version of clBLAS on Fiji achieves a fantastic ~4 Tflops (on 2^n matrices). NVblas has probably had more resources allocated to it that clBLAS. I'd be positively surprised if the kernels in Neantherdal beat those. Do you plan on adding benchmarks for the GPU calls ? I can help running the clBLAS benchmarks, if you like, since I have a tuned setup.

If you want to take a look at it, the AutoGemm generator seems to be a simple python script written in order to overcome the limitations of the C preprocessor. I was considering using its tiling structure, since I already have a Lisp->OpenCL compiler in place (and have had no luck beating it). See, for instance,

[https://github.com/matlisp/matlisp- opencl/blob/master/tests/...](https://github.com/matlisp/matlisp- opencl/blob/master/tests/blocked-gemm.lisp#L25)

[https://github.com/matlisp/matlisp- opencl/blob/master/src/te...](https://github.com/matlisp/matlisp- opencl/blob/master/src/tensor/copy.lisp#L15)

<comment><AUTHOR> What is the theoretical MAX flops on that Fiji card? I achieve 3.75 TFLOPS on Hawaii, which has much less power than Fiji...

<comment><USER4> I think it's about 5.6 Tflops. Wow, 3.75 Tflops on Hawaii is very good indeed; I agree this is not something that clBLAS would beat by a wide-margin if at all.

<comment><AUTHOR> Judging by this page, [https://en.wikipedia.org/wiki/List_of_AMD_graphics_processin...](https://en.wikipedia.org/wiki/List_of_AMD_graphics_processin...), Fiji has more than 8 TFLOPS.

<comment><USER4> Ah, is this [https://github.com/CNugteren/CLBlast](https://github.com/CNugteren/CLBlast) ?

I was looking at, [https://github.com/uncomplicate/neanderthal/blob/master/src/...](https://github.com/uncomplicate/neanderthal/blob/master/src/opencl/uncomplicate/neanderthal/opencl/kernels/amd_gcn/blas.cl)

<comment><AUTHOR> Yep, CLBlast. My old kernels are from the pre-CLBlast era. Now they are deprecated.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER5> Looks cool! Is there any chance of getting sparse operations, at some point?

<comment><AUTHOR> Of course. Sparse operations are on the TO DO list. I would have already added them if I needed them, so there are two options:

1) Wait until I need them. 1a) Become active in the community and bug me often enough that I realize how important it is :) 2) Contribute sparse library integrations (I'll help).</comment></comment>


Create your own Game Engine but don't use it - <AUTHOR> http://www.zeroequalsfalse.press/2017/07/12/engine/ <comment><USER3> This can be said about plenty of things. Encryption is probably the most obvious; there's a lot of benefit from reading about and implementing various encryption methods, and absolutely foolish to use any of that work in a setting where it might actually be attacked.

The article is pointing out something that should be obvious; if you're making a widget as part of a larger task, your implementation will probably be lacking compared to one developed by a team solely focused on making the best widget they can. I could write an HTTP server or a threadpool or a database connection layer if I really wanted to, but thousands of talented people have invested millions of hours in those tasks already, and I'm not likely to do better than them on my own.

Getting over the "not invented here" mentality allows us to focus on doing things that are novel, or things that are custom. In my day job, I'm working on a (relatively) trivial problem that's never been done before, because there are about ten people in the world that need it. As a hobby I work on a text editor that is completely customized to my personal workflow, and which will probably never be used by anyone else.

<comment><USER4> >Getting over the "not invented here" mentality allows us to focus on doing things that are novel, or things that are custom.

I remember gradually coming to accept this as an intermediate programmer. Once you do, it's incredibly freeing. You can stop thinking in terms of "I'm gonna write SOOO much complex code to solve this problem!" to "I bet I can pipe together 5 different CLI programs and not write a single line of code".

You learn that it's all about layers of abstraction, and understanding that the human brain is far more useful and efficient at problem sets higher and higher on that scale of abstraction than it is at twiddling bits.

<comment><USER5> Except for some of us, it isn't actually that fun to spend 5 minutes gluing together 6 libraries with no documentation, and 4 hours figuring out an undocumented bug deep in the source code. We would rather write someone from scratch :)

Not that you can really afford to do that in a paid position, but for a side hobby like making a game? Absolutely. If you are making a game for fun, do what is fun to you.

<comment><USER6> > 4 hours figuring out an undocumented bug deep in the source code

For me at least, this is the real issue. Gluing together random libraries isn't fun, but it's fast and productive and lets me spend my energy and attention building something bigger than I could have solo.

Gluing together _broken_ libraries, though... Well, I thought encapsulation and black boxing were genius from the day I learned about them until the day I actually tried to build something nontrivial. Now I just think of Douglas Adams: "The major difference between a thing that might go wrong and a thing that cannot possibly go wrong is that when a thing that cannot possibly go wrong goes wrong it usually turns out to be impossible to get at or repair."

Finding myself 5 pages deep in Google trying to fix a fundamentally broken Android API is way less pleasant, and ultimately slower, than working around the API altogether. It's also why all the people I know maintaining long- standing Rails projects have heartburn - using someone else's tools only saves time when those tools are trustworthy.

<comment><USER5> Everything is broken at some level. Your own code will have bugs just like the lib you import will.

Usually what is nice is your own code has a lot less lines of code, so you SHOULD be able to find the bug sooner.

<comment><USER6> Yep, I certainly don't mean to imply my code is right. But it's usually shorter, and it's _mine_. So when I find the bug, I can make the sane fix on the schedule I need.

For particularly good OSS libraries, I guess providing a PR would only be a little slower than fixing internal code. But for anything poorly maintained, or with closed development, discovering those bugs often means writing an enormous workaround or switching libraries entirely - they just won't be fixed any time soon.

</comment></comment></comment></comment></comment></comment><comment><USER7> There's no absolute answer to the "build vs buy" conundrum. A lot of us are biased towards "build" and its useful to recognize that bias in our decision making. But the "buy" side often has hidden costs. In the author's case, which involves targeting multiple platforms, the "buy" side gets more attractive. In general you are deciding whether to code on platform X or on platform Y built on top of X.

Fashions come and go, and if you invest heavily on top of Y it may become "obsolete". Will you be willing to stay on Y when the developer/community has abandoned it? You may have to reinvest to port onto Y', while X remained somewhat stable.

The higher level the platform, the more likely you are to hit surprising limitations late in the process. Your role gradually transitions from technology producer to technology consumer.

Programming an AVR chip in C gives you a great feeling of space and power because the platform is so clean, while using Arduino you rapidly hit limitations and spend your time getting around them. Higher level platforms tend to make the easy things easier and the hard things very hard.

I wouldn't rule out the subjective factors. For many of us building is more fun than sorting through what others have built. The brain works a lot better when having fun, which is why MBA-style decisions about programming don't always work.

</comment><comment><USER8> This blogpost gives the other point of view:

[http://www.spacesofplay.com/blog/why-we-built-our-own- tech-f...](http://www.spacesofplay.com/blog/why-we-built-our-own-tech-for- future-unfolding/)

Essentially that the engine you use can constrain what you create, so write your own.

<comment><USER9> I've considered a stack like that myself for less exotic looking games. It's nice to know someone who actually has gotten farther than I have is making similar choices and that those choices are working for them.

I think the choice boils down to project scope and the relative size and skill of the team. If a game of your scope is already well served by an existing engine, it makes sense to use it. If you have a large team with a particular skill set, it makes sense to cater to their skill set by picking the engine they know. For any other case, rolling your own makes sense, provided you know what the scope of the project is in advance.

The common mistake (that maybe the guys in the parent article also made) is that they assume "game engine" is some necessary prerequisite to making games, so they spend time working on all of these technical problems that are not actually their game they want to make.

</comment></comment><comment><USER10> There's two big hindrances for success right off the bat:

1\. Refusing to just use C/C++

2\. Attempting to support most of the platforms

Both problems compound each other.

All platforms (even Android at this point) have C APIs for everything you need. Creating another layer of abstraction here causes more work and overhead.

Trying to get Java running on iOS with 3D APIs is a huge task in and of itself. The same goes for C# (a task which Unity does for you). Languages that require JIT for performance don't work on mobile (unless supplied by the OS, e.g. JavaScriptCore). Debugging becomes extra-difficult.

C/C++ are not convenient to use, but not _hard_ to use either. It causes discomfort at first, but you get used to it. Being forced to do memory management manually also helps with learning how to structure programs, with a bonus of not having to wrestle GC pauses.

Having said all that, using a commercial engine is totally fine, of course.

<comment><USER11> I refuse to use C/C++. If that's what I _have_ to use to make games, I just won't make games. Fortunately, there are other languages available with a C FFI.

I don't think forced memory management teaches anyone much of anything besides how to manage memory manually. It doesn't make programs better. I'm very grateful for garbage collection so that I can spend my cycles thinking about the problem I'm actually trying to solve.

edit: I think this came off a bit too dismissive, but I guess what I was after is that what technology you choose depends on what you value. Personally, I value using programming languages that are pleasant to work with, and I don't personally find C/C++ to be pleasant. I enjoy dabbling in game development, but it's not so important to me that I would use tools that I don't like to do it.

<comment><USER10> First of all, I'm talking about game _engines_ , not games. Both Unity and the earlier Unreal Engine (afaik) used GC-ed languages for scripting.

However, if you want to make a quality game, you _can not_ afford long GC pauses. I know that lots of people make games with GC pauses in them anyway. It is a value judgement, for sure.

It's certainly possible to work around GC pauses, but that effectively means you are manually managing your memory manager (instead of the memory), which can be surprisingly difficult.

It's also possible that whatever you do is so "small" that GC pauses never affect you. Enjoy your free lunch then.

<comment><USER12> Some of the work done to work around GC feels similar to the work you'd do in C/C++ to work around memory fragmentation issues. Also, depending on the language/runtime, you might be able to influence the GC algorithm, or at least the frequency with which it runs. If you can e.g. run a GC every second for not longer than ~1 frame, then pauses won't be noticeable.

<comment><USER10> A dropped frame is always noticable. What you can do is keep a budget for GC and then force-collect every frame.

</comment></comment></comment></comment></comment><comment><USER13> I really don't think the issue was with "creating x from scratch", but from the purpose it was built for.

Game engines like Unity are general-purpose engines, they are not made for a specific type of game, and can be used for basically anything. The trade-off is flexibility and performance.

What they tried to do was to basically create a "clone" of Unity, that is, they tried to create a general purpose engine, and that does not make any sense at all for an indie developer.

If you're going to create a game engine + editor, then do it for a specific genre of games (e.g. FPS), and do it only if you're planning to create a series of games that belong to that genre only.

Unless you want to create a business out of selling game engines, then have a specific game in mind before creating a game engine, and tweak it for that purpose only.

</comment><comment><USER14> Having a broader understanding of your domain at a different level of abstraction is always extremely valuable.

For anyone interested in the detail of _how_ to create a game engine from scratch, I'd recommend checking out Handmade Hero [https://handmadehero.org/](https://handmadehero.org/)

<comment><USER15> Handmade Hero is over 380, hour or two long videos last i saw. How far are you into it?

Regardless, it's an amazing effort.

<comment><USER16> I've watched pretty much every episode, mostly live. It is pretty amazing. It also pretty much single-handedly reinvigorated my love of programming.

But there are definitely entire weeks (or weekends these days) of video that aren't all that useful unless you're trying to build exactly what Casey is trying to build.

[https://hero.handmade.network/episodes](https://hero.handmade.network/episodes) is a must if you want to cut some corners on what you watch.

Off the top of my head, here's my suggestions:

* Weeks 1-15 are all useful - it's really a great introduction and kool-aid provisioning system

* Week 20 and 21 has some introductory lighting stuff.

* Week 23 and 24 has some good performance profiling stuff.

* Week 25 and 26 has some multithreading job queue stuff.

* Week 28 and 29 has SIMD/SSE sound mixing implementation

* Weeks 36-38 has debug/performance infrastructure

* Day 235 and weeks 48 and 49 are the start of OpenGL initialization.

* Week 74 discusses particle systems

* Weekend 3 discusses compression

* Weekends 6-14 are the core software-renderer-to-OpenGL days

* Weekend 23 is a re-implementation of lighting

The other stuff is exploration of concepts that are either specific to Handmade Hero, or are much deeper implementation detail type stuff - <USER2> entirely necessary if you're skimming.

<comment><USER17> >But there are definitely entire weeks (or weekends these days) of video that aren't all that useful unless you're trying to build exactly what Casey is trying to build.

That's been one of my biggest problems with Handmade Hero - Casey isn't teaching people how to write C/C++ and build a game engine, he's teaching them how he builds _one specific game_ and mixing his personal habits (and idiosyncratic prejudices) along with some very useful programming knowledge.

And he also shut down comments on the Youtube feed at some point, which I find very unfortunate. The commenters helped me gauge the BS factor for any particular episode before jumping in.

<comment><USER18> 'he's teaching them how he builds one specific game '

While I would agree that there may perhaps exist a better alternative, most of us have learned a difficult concept or two by finding a working example. This is that, but taken up to 11. Assuming you actually follow on and try to make -small- variations to ensure you understand whats going on, you will probably be in a great position

</comment></comment></comment></comment></comment><comment><USER19> On the other hand, I find my game engines, particularly (unfortunately) open source ones, are in a terrible state.

They often try to support many platforms, then it turns out they usually support one platform well, and the others are various degrees of broken. Then, when you want to get your game working on Android, the engine is too massive and complex for me to have any chance of figuring out how to fix it.

<comment><USER20> This is why i prefer frameworks like LÖVE 2d. it's so simple that I can keep everything I need in my head. I like just staying in the text editor.

<comment><USER19> I really wanted to like love 2d, but I found the community very unfriendly, and there were some fairly simple old bugs that have been around a long time.

Also, I was looking for something to teach children, and they seem to like "hilarious" library names like anal. (This is not one of the problems I asked about, I knew better than to ask someone to rename something).

<comment><USER21> They recently (about a year ago at least) changed nearly all of the library names.

They also had the friendliest community I had ever been in on IRC, besides maybe #haskell. Sorry to hear you had a poor experience, I'm shocked to hear things had changed on that front.

<comment><USER19> I'll have a look, because I am still on the lookout for something after scratch -- I currently use pygame but I love the idea of love2d.

Maybe I just caught the IRC channel on a really bad day, or asked some particularly offensive question, without knowing what I was doing.

</comment></comment></comment></comment></comment><comment><USER22> Interesting contrast to the Carmack school of thought: _do_ build your own game engine and don't even reuse anything you made before, because you'll know better this time.

<comment><USER23> Also remember that id Software wrote an engine specific to the game they were creating (it's debatable whether you can call them engines at all, really). Things are a lot more streamlined if you take this approach because you rarely, if ever, have to answer the question "would this work for some other title?". Or worse, "would this work for any future title that may not even be in the same genre?"!

That, I think, is the mistake many game devs (who write their own engines) make. They make an engine for all possible games, then try to use it for their 2D match-3 puzzler, which uses about 5% of the code they've written, and even then they have to cludge some bits.

<comment><USER24> They (id tech 2-4+) definitely are considered full on world class engines, FPS specific but still. They each have a renderer, physics, scripting, asset pipeline, map and data formats, tooling, etc. and were used to make other games. They are too big, unified, oppressive (as in - they control the main loop, their elements are all together, you can't mix and match easily, your game code is on a level of a plugin for the engine code to call, not the other way around) and multi domain to be considered libraries/frameworks.

</comment></comment></comment><comment><USER25> I think a lot can be said for someone trying to go their way, and learning the value of a prebuilt solution. A lot of people would stubbornly keep trying to build their own "because they could build better" rather than focusing on the end outcome of a playable product.

</comment><comment><USER9> The mistake that most people make is thinking about whether or not they should make a "game engine" when what they really want to do is _make a game._

If you want to make a game, make it. If it makes sense to use somebody else's engine to make it, then by all means do so. If you aren't going use someone else's game engine (which is a perfectly valid choice), skip straight to making your game. After you've made a game or two, you'll know whether making a "game engine" out of what you've written previously is a worthwhile effort for your next game.

</comment><comment><USER26> I've worked with Unity from the beginning of my career as a developer. (Used to be a game designer and producer before that). I haven't quite understood what's so special about it before I tried other solutions, including open- source (Cocos) and in-house ones; turns out, a LOT of things that Unity devs take for granted (like asset pipeline and management) are lacking elsewhere.

Sure, a senior developer should be able to write his own game engine from the lowest level - but he almost never should actually do it on a real project.

</comment><comment><USER27> This is good knowledge for whatever your field is. I've created a few ORMs. I don't use any of the ones I wrote, but I learned a lot in doing so. I've created a few web routing systems. Again, you can learn a lot, but unless you actually want to spend a lot of time writing and extending one, just use what you learned to help you pick a good one.

</comment><comment><USER28> Developing indie games is hard enough. Starting off by building your own engine is crazy (unless there are _very_ good reasons). They unnecessarily and gravely harmed their chances of success in a very competitive niche.

</comment><comment><USER29> This blog post and the comments here are amazing. In no other software field but indie game dev does spending a year trying to build your own toolset instead of $ACTUAL_PRODUCT_THAT_MAKES_MONEY draw praise.

<comment><USER9> It's cargo-cult word-thinking. "Game engine" is associated with "game" because of the success of id Software, Epic Games, Valve, CryTek, et al. So people who don't think the way programmers do, have the impression that a game engine is a required step in the software development process to have a successful game.

</comment></comment><comment><USER17> This is apparently what I've been doing for about two years.

Except I still haven't gotten to the "engine" part, it's more "a bunch of wrappers around Lua and SDL2 and some random stuff that seems useful, and probably the worst ECS ever."

I actually did almost get to an actual game, though. But I was so disgusted with it that I gave up and started everything over from scratch. Mind you, everything _worked fine,_ I just hated every thing about the code.

And _this_ is why I am an amateur programmer and a professional box-pusher.

<comment><USER30> I'm interested in pushing boxes. It sounds relaxing. Well, relatively. Have you heard of webpack?

<comment><USER17> I have heard of it, but I've never used it. I'm far, far behind the curve when it comes to anything involving web development. It's on my list of things to look at.

</comment></comment></comment><comment><USER31> It seems like you can learn a lot of that by building a game without using a game engine at all.

</comment><comment><USER32> Working on low level engine things for 15+ years lets me wield Unity like a sword now. It's a mid-level sword, but my technique makes up for that.

</comment><comment><USER4> I think a lot of developers who come into game dev have a mistaken view of Unity as the "budget" choice based on the poor quality of many of the indie titles shovleled out with it. But Unity is probably the most advanced game engine in existence today. Far beyond Unreal 4 in terms of both performance and tooling.

The reason the average quality is so low with Unity titles is because of just how _easy_ the technical aspect of making a video game has become with modern engines. The barrier to entry for creating a game with AAA graphics is now a $20 shader pack and the ability to hack together some C# scripts.

<comment><USER33> I have pretty much no experience with game development, but why is UE4 such a popular choice for commercial games if that's the case?

<comment><USER4> Most big studios are still on UE as a matter of momentum and the aforementioned biases. Unity really only became viable in the past 3 years, which is shorter than the average AAA game development cycle. Also certain games such as FPS are still better off with UE, as that's what it was designed for.

<comment><USER34> > Also certain games such as FPS are still better off with UE, as that's what > it was designed for.

What game types would you consider Unity to have better performance and/or tooling for? Also, if you're feeling generous, why?

<comment><USER4> >What game types would you consider Unity to have better performance and/or tooling for? Also, if you're feeling generous, why?

The main difference IMO is that Unity has become the de facto standard for anything VR related. UE is doing a good job with their VR support too, but it's really clear which engine is favored by SteamVR, the Oculus SDK, and the community at large.

Unity also has a first class asset store which can save you months of development time when it comes to things like networking or doing complex shaders.

Other than that it really comes down to personal preference. Scripting with Unity vs. Blueprints with UE, C++ vs C#, etc.

</comment></comment></comment></comment></comment><comment> aaron-lebo A year is nothing in the grand scheme of things. If you can't invest a year into building tools that could be your foundation for the next 3 decades, then what you are building is just a quick-rich scheme that doesn't matter. Use whatever you want because it doesn't matter...and your game probably isn't going to sell anyway. Those are the odds.

But as they've pointed out, you kind of need to know that stuff anyway, so it's time well spent.

I don't have a ton of gamedev experience, but at least graphically that game isn't doing anything you can't do in a few hundred lines of C++. Maybe that's part of their problem. Why use Java if you want to make a mobile game and it isn't well supported on one of your primary platforms? That sounds like a bad fit.

Unity and Unreal are super cool but they are also bloated with features that you don't need and lacking in others you do. For the longest Unity required you to use 3rd party modules for a camera. A camera....something that takes a few lines of code for a basic implementation. Why didn't that come standard?

If you really want to hurry to market yet another game by all means use one of the existing engines. It might even work really well. But if you want to do anything interesting, you're gonna be doing custom stuff anyway.

<comment><USER35> >For the longest Unity required you to use 3rd party modules for a camera.

What do you mean? How can there not be cameras? How then can you view a scene without that 3rd party module?

<comment> aaron-lebo Google "unity camera scripts" for an idea of the kind of functionality that people were grafting onto Unity a few years back.</comment></comment></comment>


Redesigning Search at Airbnb - <AUTHOR> http://nerds.airbnb.com/redesigning-search/

<comment><USER2> The article had a few good insights in the first few paragraphs about the problems they were looking to solve: "pogosticking", structuring of search results, steering users toward the features that their data showed mattered most, etc.</comment>


Pro and contra of images encoded as data URI for performance purpose - Undead-SEO http://undead-seo.blogspot.com/2014/09/images-as-base64-encoded-data-uri-pro-and-contra.html

<comment><AUTHOR> I've always loved this method. I think partly because I went through a phase where I was obsessed with those waterfalls which illustrate your webpage loading (like the one here: [http://tools.pingdom.com/fpt/#!/c3jfDt/http://tumbledry.org/...](http://tools.pingdom.com/fpt/#!/c3jfDt/http://tumbledry.org/alex/) ); used to take a look at what goes on when I load a page of my website.

I'm of two minds on this, part of me thinks that 88.8kB is an enormous page for the three paragraphs of text on that "about" page, and the other half gave up and loads giant 2x images by default on my homepage because I didn't want to deal with two copies of every size of an image (I know, I know). Also, my site gets very little traffic, so nobody cares.

Anyhow, two minds.

</comment><comment><USER2> At least two of these 'Contras' seem naively addressable (that browsers don't cache them and that crawlers don't decode them).

If we continue to put low value images in these base64 encoded images we won't encourage crawlers to take them seriously.</comment>


How to build a Kubernetes Horizontal Pod Autoscaler using custom metrics - <AUTHOR> https://sysdig.com/blog/kubernetes-scaler/ <comment><USER2> FWIW the official Kubernetes Horizontal Pod autoscaler supports custom metrics. Relevant doc: [https://kubernetes.io/docs/tasks/run- application/horizontal-...](https://kubernetes.io/docs/tasks/run- application/horizontal-pod-autoscale/#support-for-custom-metrics) I'm not expert enough to assess whether yours is a reimplementation but I'm curious if you used the existing support and built on top of it.

<comment><AUTHOR> Yes, I used the method they describe in that page, particularly:

"Register your resource metrics API and your custom metrics API with the API aggregation layer. Both of these API servers must be running on your cluster."

The blogpost goes through the implementation of the required "custom-metrics- api" and how to plug this new API server in your existing Kubernetes environment.</comment></comment>


Free (Creative Commons) Book on How To Do Proofs - <AUTHOR> http://www.people.vcu.edu/~rhammack/BookOfProof/index.html

<comment><USER2> I had to look at the domain twice to make sure I was seeing it correctly. I grew up in Richmond and VCU (Virginia Commonwealth University) is overwhelmingly known as a great art school; its other disciplines are seen as average at best.

To see a mathematics textbook from VCU appear on Hacker News was a welcome sight indeed!

<comment><USER3> I was also excited to see VCU on HN. VCU has come a long way from were it was 20 or 30 yrs ago.

Though, it's still a great art school.

</comment></comment><comment><USER4> Not free, but don't forget Polya: [http://www.amazon.com/How-Solve- Mathematical-Princeton-Scien...](http://www.amazon.com/How-Solve-Mathematical- Princeton-Science/dp/069111966X/)

</comment><comment><USER5> This is a very nice book.

</comment><comment><USER6> Useful resource. It doesn't stress enough the value of direct proofs for intuition enough to my liking.

Example: in section 6.4, it is easy to prove that 6a^2-2a+7 is even iff a is odd, and the direct proof gives a better intuition that the proof by contradiction and contrapositive proofs described.

</comment><comment><USER7> Also, "Mathemathics for Computer Science" course from the MIT has a very nice introduction on proofs. Excellent book: <http://news.ycombinator.com/item?id=1935049></comment>


Hacking Around with AirSerbia's InFlight WiFi - <AUTHOR> https://networksaremadeofstring.com/blog/2016/09/28/hacking-around-with-air-serbia-wifi/ <comment><AUTHOR> Same system on a WestJet flight I just took (and was poking around in).</comment>


Ask HN: How are touch app demo videos (best) made? - <AUTHOR>

<comment><USER2> Most of them using the simulator. There are also some good apps that can help you like <http://soundstageapp.com></comment>


Normality must return, as we cannot our lives on hold until Covid-19 goes away - <AUTHOR> https://www.telegraph.co.uk/politics/2020/06/24/normality-must-return-cannot-put-lives-hold-covid-19-goes-away/ <comment><AUTHOR> Final paragraph:

> And, to repeat, waiting for a vaccine is not an option. Doing nothing is not > a plan. Being cautious with the virus is being reckless with our education, > jobs and mental health. Our existence since mid-March has not been life. > Covid-19 is not going away. Wash your hands, keep your distance and don't do > anything stupid. Life is returning.</comment>


Why doesn't Microsoft understand tablets? - <AUTHOR> http://www.quora.com/Microsoft/Why-doesnt-Microsoft-understand-tablets

<comment><USER2> Read the top two answers (Bill Bliss, Robert Scoble), and it seems they're missing what I see as the most obvious and comprehensive answer. Bliss touches on it in passing, but not as a main theme...

The real reason MS doesn't get tablets is that it's a new product category, and MS pretty much always thinks in terms of how to extend who they are (Desktop) into any new market. XBox hardly counts; while it's a great product they did not have to define the market in any way, they moved in and made a solid product in a well defined market. With Kinect they really did something outrageously cool, but this isn't usual for them.

Apple, on the other hand, has shown the ability to look at niche markets and see the bigger picture, turning it mainstream. iPod, iPhone, iPad: all of these areas had existing companies with somewhat successful products, but definitely niche.

Sometimes MS reminds me of Xerox's lack of foresight with PARC.

<comment><USER3> Kinect is not Microsoft's in-house technology. It is licensed from PrimeSense, an Israeli company: <http://www.primesense.com/>

<comment><USER4> That's only the hardware. The software was developed internally.

</comment></comment></comment><comment><USER5> > _"While the iPad is selling like multi-touch hotcakes, Microsoft is > significantly lagging behind with its tablet offerings"_

There is a category mistake underlying the article. Microsoft does not sell tablets. Furthermore, their operating systems have dominated the tablet segment for more than a decade and been the OS of choice for leading tablet manufacturer's such as Fujitsu for nearly 20 years.[[http://www.fpc.fujitsu.com/www/content/products/Tablet- PCS/H...](http://www.fpc.fujitsu.com/www/content/products/Tablet- PCS/History/tablet-pc-history_07.php)]

The iPad is successful mainly because of Apple's ability to market it to consumers rather than the businesses which have traditionally used tablets and are always the centerline of Microsoft's roadmap. But the tablet market did not spring into being last April - NASA put tablets running Windows 95 in orbit aboard the Space Shuttle in 1997. [[http://www.fpc.fujitsu.com/www/content/products/Tablet- PCS/H...](http://www.fpc.fujitsu.com/www/content/products/Tablet- PCS/History/tablet-pc-history_09.php)]

</comment><comment><USER6> A great quote from Robert Scoble: "I remember talking with [Microsoft executives] on the mobile team when I worked there in 2005. They said they were going after enterprises only and didn't care about consumers. Apple knew that wouldn't work. Enterprises don't like new things. Consumers do."

<comment><USER7> The mobile team was right... in 2005. In 2005 even subsidized smartphones were at $399 and capacitive displays were still a tad too expensive.

Even in 2007 when Apple shipped the iPhone, MS probably couldn't do the same thing with the exact same device. Apple was buoyed by their consumer hardcore base, which MS doesn't really have. And given that MS already had another mobile OS that seemed more feature-rich, I think the msPhone would have had trouble in the marketplace.

The thing that Jobs has seemed to have nailed is timing. Maybe his experience with Newton left a great impression on him, but he seems much more cautious in bringing things to market (I know that it almost seems like the opposite). He put the iPad on hold and moved it to a phone form factor. That was genius. An iPad in 2007 flops. In iPad, after 3 years of the iPhone, redefines the market (in part because the phone requires you to make a consumption device -- which then feeds into your tablet strategy).

I don't think this is so much a question of what did MS miss, but rather what did Apple get right. Because frankly, no one else other than Apple got it right either.

</comment></comment><comment><USER8> Microsoft simply doesn't need to "understand tablets", at least not right now. Microsoft's key products, Windows and Office, are the de facto standards of the office. Tablets won't change that.

<comment><USER9> True, but I'm not sure about your last sentence, I think that there's a possibility that Tablets could change that.

</comment></comment><comment><USER10> The article also has something factually wrong (attributed to MS): in the corporate world, the Ipad is useful for discussing documents o presentations around a table, between two or three people, when undocking a notebook takes way more than the time you need to set up an Ipad.

I also made that mistake in the begining, I had to see the Ipad in action to valuate it as the right tool for that job.

</comment><comment><USER11> When talking about Microsoft and tablets, two other companies spring to mind: Apple (of course) and Amazon.

I'm reminded of the command, infantry and police quote (via [1]). Small startups are typically nimble. They're commandos. At some point the beachhead is established and you need an army. Once you've won the war you need the police.

At some point in a company's history it will switch from an attacking posture to a defensive posture. Microsoft has almost all of the desktop OS and office software market. There's nothing really left to attack there. So now they're chasing shadows, afraid of the golden goose dying. Everything is seen as either a threat to Windows/Office or a means to sell more licenses.

Microsoft bought the (then very successful) Sidekick, tried to do a followup, for political reasons had the entire thing rewritten in a Windows OS (that delayed things 2 years) and you ended up with the Kin.

Windows/Office are so big (in terms of MS revenue) that nothing else matters.

Ultimately Microsoft is about selling Windows/Office licenses to large enterprises and OEMs. Everything else is a distraction (including the consumer).

Now compare this to (the quite brilliant) Jeff Bezos. When he came out with the Kindle I was rather surprised to see two teams working on this: the software team and the hardware team. This entered the public eye really with the iPhone/iPad when the software was ported there. At first I thought "that's going to kill the Kindle hardware" and it might, but that's kind of the point.

If the Kindle hardware is good enough to stand up on it's own merits then it will survive. If not, Amazon is already invested in the tablet/smartphone segment. So both teams are motivated to succeed. This is an object lesson in having the right incentives.

Apple springs to mind for the obvious reasons: they completely reinvented the phone and now the tablet. Now every phone looks like an iPhone and every tablet looks like the iPad.

Apple, unlike Microsoft, are a consumer hardware and digital content company. Their OS exists to sell hardware. A lot of people see iOS and think that OS X is doomed and eventually all Apple hardware will be in Apple's walled garden.

This is a very Microsoft way of thinking.

Under the covers there are a lot of similarities between iOS and OS X but iOS is still very different. Where Microsoft simply tried (and continues to try) to sell Windows computers in the form of tablets, Apple made the right tool for the job. What that does to the future of OS X, if anything, is irrelevant. The experience is what matters.

Oh and for the record, I don't think OS X is doomed. It's probably not as important as it once was but it will still power the "trucks" Steve Jobs talked about last year. If anything, OS X will simply be made to look more like iOS and you see this in the Lion developer preview.

The problem with Microsoft is they have a business wonk as a leader (who is no visionary of any kind) and they have no courage for the kind of risky decisions they'd need to make to reinvent themselves.

[1]: [http://www.codinghorror.com/blog/2004/06/commandos- infantry-...](http://www.codinghorror.com/blog/2004/06/commandos-infantry-and- police.html)

<comment><USER6> > A lot of people see iOS and think that OS X is doomed and eventually all > Apple hardware will be in Apple's walled garden

I think this is precisely the logic behind most of the Apple hate you see online. What these people (ones who dislike Apple for this reason) don't realize is that there are so many advanced users (content production, education, science) for whom OS X is essential that it is never going away, and that Apple understands that.

<comment><USER12> Plus all the people who build apps for the walled garden.

If you need OSX to make iOS apps, then you better not gimp OSX. Or all the indy devs will look at Android.

</comment></comment></comment><comment><USER13> It would be nice if tablets could interface with printers and other peripherals and come with a functioning Office suite. Flash and copy/paste won't hurt either.

<comment><USER14> "Functioning" can be a tricky word when it comes to Office suites. I don't think Microsoft Office is particularly "functioning" and consider mandating the use of Outlook (not to say Exchange) for office communication a form of sadistic punishment imposed by clueless corporate IT drones.

BTW, the iPad has copy/paste since ever, as does every Android device. Most newer Androids also support Flash. At home, I print about a page per month on average. Do you need printing so much? What do you intend to do with the printout? Fax it?

Are you using something derived from Windows Phone 7? Last time I heard, it didn't support either.

<comment><USER15> And, actually, printing from iPad works great now, too. There are ways to get AirPrint working with any Windows or Mac shared printer, so even if you don't have a newer wireless printer, you can still use it.

As far as Office suites go, the iWork apps on iPad definitely cover everything most users need. I've had no problems creating documents in Pages on iPad and submitting them to my college which requires everything in Word format. The first couple times, I doubled checked and made sure the exported file looked fine on a computer, but now I just send them in directly from iPad. It's worked great for me, and I think it'd cover what most need from home and even business use of Office. The iWork apps are easily some of the most feature- rich on iPad.

<comment><USER16> > There are ways to get AirPrint working with any Windows or Mac shared > printer

This is my main beef with the current tablets; it can't be your only computer, you have to have another to update it from/print from (if you don't have a wireless printer) etc. I would love a tablet that was powerful enough to run a full blown OS, be it Windows or OSX, but run with a tablet specific skin over the top. 95% of the time I would use it just as one would use an iPad now, but in those 5% of times allow me to use the full OS, load up Word and edit a document, run some random Windows program, connect to a VPN etc.

<comment><USER17> If Apple have any sense (and I'm fairly confident they do), they'll beef up their Airport/Time Capsule wifi base stations to include printer drivers rather than just accepting raw printer commands from a computer with the driver installed. While they're at it, backing up iOS devices wirelessly to a time capsule wouldn't hurt either.

<comment><USER15> I figure they'll eventually include AirPrint in iTunes for OS X and Windows so it will automatically share any connected printers for iOS devices. They haven't yet, though...

<comment><USER17> There's a simple hack for enabling it on OSX (it worked by default in some iOS 4.2 betas but got disabled). In fact, I think this works for anything running a CUPS server (i.e. Linux, BSD, etc.), so doing this in an embedded box should be pretty straightforward. Windows is probably trickier.

Tangent:

Of course I say that, yet I've seen plenty of Linux-based consumer grade routers fuck up printer sharing despite using CUPS. I suspect most of the usual suspects (router makers) won't get in there before Apple. (plus they'll completely fail at marketing that aspect if they do)

I often wonder if there would be a sufficient market for a "better Timp Capsule", i.e. a well-done, pimped-out NAS/Wifi AP/router/printserver, specifically targeted at iPad/Smartphone users (but which works fine for other computers as well). The user experience of all the devices out there (apart from Apple's) is absolute shite, and Apple's are kind of limited.</comment></comment></comment></comment></comment></comment></comment>


AWS has 45% share of public cloud infrastructure market - <AUTHOR> http://www.geekwire.com/2016/study-aws-45-share-public-cloud-infrastructure-market-microsoft-google-ibm-combined/ <comment><USER2> It is hilarious to me to read an analyst report that ignores App Engine (or even Heroku! Or is that what they meant by "Salesforce"?) in the PaaS space. Snapchat is primarily an App Engine (plus Datastore) customer. They have more daily active users than Twitter. Unless Beanstalk is way bigger than I think it is, App Engine has the lion's share of the PaaS market.

We're all tight lipped on purpose. People guessing from the outside will basically be wrong until results become public (I applaud the folks at AWS for breaking out their segment publicly; you may have noticed how much their stock spiked when they did so as analyst consensus was way off).

Disclosure: I work on Google Cloud, but not specifically on App Engine.

</comment><comment><USER3> How about OVH, online, GoDaddy, Digital Ocean, Linode???

That's a naughty article ignoring all the old players.

<comment><USER4> > How about OVH, online, GoDaddy, Digital Ocean, Linode???

None of them really are AWS competitors. The competition is Azure and Google Cloud (and a few other enterprise oriented IAAS but not really opened to the public). And frankly, Google Cloud is actually getting really good. Just compare Google Cloud interface with AWS ... it's day and night. And I was extremely critical of App Engine PAAS before and its stupid limitations (and the joke datastore is) so I'm not a Google fan boy at all, quite the contrary.

It wouldn't surprise me if, by the end of 2020, Google Cloud takes a significant size of the market. Right now it has still a few problems though, but nothing that cannot be fixed on the long run. I'm personally thinking about recommending GCloud over AWS to my clients, especially if they end up fixing 1 or 2 few stuff ASAP.

Azure of course it better for anything Windows and .Net related.

<comment><USER3> They are not competing directly but their numbers is still important to know the market(s). They are big companies with many customers, they shouldn't be dismissed.

<comment><USER2> I agree that it's important to size the VPS market, as it directly competes with one of the primary things people come to AWS or GCP for ("How do I host my site?"). As a side comment mentions, I might also include GoDaddy as well as DreamHost and the underlying brands of Endurance, since again so much of the "cloud" is really just people running WordPress "brochure ware" sites.

Having said that, you should realize that some of those companies (GoDaddy, Endurance) are public and even indicate how large they are from an infrastructure sense. Ultimately, VPS and/or website hosting comes down to charging customers $5/month for approximately $0 in infrastructure. The "real" infrastructure money is in either large compute, or "serious" sites. So it is important, but ultimately they'll round towards 0.

Disclaimer: I work on Google Cloud, and have never worked for any of the other companies mentioned.

</comment></comment></comment></comment><comment><USER5> They have ~nothing in China.

<comment><USER6> I suspect that you're probably correct but I wasn't able to find cloud providers by market share in China. Do you know of any studies?

<comment><USER5> China's market is fragmented through regulation, so there are small-scale providers in all provinces. I guess the largest player is Alibaba's Aliyun ("Ali cloud") @ [https://intl.aliyun.com/](https://intl.aliyun.com/) who also have a startup support program @ [https://intl.aliyun.com/startup](https://intl.aliyun.com/startup)

<comment><USER7> Depends on if a cloud server in China counts as publishing content. If so, China's massive dragnet of regulation because of their information suppression laws probably gives foreign companies pause at putting up infrastructure in china. I can imagine a DMCA-like law that has no safe harbor and just has liability for accidentally hosting information that is deemed to be needing suppression.

<comment><USER5> China makes you register your site and who operates it, which is fairly straightforward, but in reality everything is pretty light touch really. If the government found something they weren't happy with, they'd give you a call or pay you a visit and explain. You don't argue, take it down, don't make a mess again. It's no big deal. Just don't go hosting Free Tibet or Tiananmen tell-alls and you're fine. It's no different to the west, really. One could even say here they're more transparent.

<comment><USER8> You have to register your site and your details with a government that has shown a heavy hand when it comes to censorship.

Definitely no different than the west. Definitely more transparent.

People host all sorts of stuff that decries their governments in the West, talks about how awful their actions are, etc etc etc, all without being taken down. You're REALLY sipping the kool-aid if you think that what you're describing is remotely similar to the west.

<comment><USER5> Really, the policing _is_ very light touch. Just because you have to register, doesn't mean the information is used or checked. You don't have to register if your site is overseas, but then if the government doesn't like it they will block it for those without VPNs... but everyone has a VPN. People here talk plenty about politics, and always in the negative. It's just that publishing serious criticism is generally off-limits. Academics and motivated journalists can do it, but they know where the line is. Normal people don't, because they know it won't do any good. That, to my eyes, is more transparent.</comment></comment></comment></comment></comment></comment></comment>