Putin on the Ritz - <AUTHOR> http://www.hackerfactor.com/blog/index.php?/archives/595-Putin-on-the-Ritz.html <comment><USER2> Haha, the modified photo appeared in a satirical post on Index.hu, there's nothing to see here people, move on. :)

[http://index.hu/szarvas/2014/02/11/ader_alair/](http://index.hu/szarvas/2014/02/11/ader_alair/)

Here're the other posts from the same series: [http://index.hu/szarvas/](http://index.hu/szarvas/)

All entries are simple montages, they're only funny for people who know Hungarian politics, but for them they're quite obvious.

Edit: the man in the middle of the photo is the Hungarian President of the State, and well, he probably won't kneel when signing an agreement -- even if Putin's there. :)

<comment><USER3> PRESIDENT OBAMA ON PUTIN:

      I don't have a bad personal relationship with Putin. When we have
      conversations, they're candid, they're blunt, oftentimes they're
      constructive. I know the press likes to focus on body language and
      he's got that kind of slouch, looking like the bored kid in the back
      of the classroom. [1]

Putting Russia-United States relations aside, I thought that was a spot-on description of Vladimir Putin's body posture, that he uses to great effect, when he wants to be perceived as not being terribly interested in what's going on.

It is quite funny.

[1]

[http://www.youtube.com/watch?v=ewUXm_gqzrU](http://www.youtube.com/watch?v=ewUXm_gqzrU)

[http://www.reuters.com/article/2013/08/09/us-usa-russia- obam...](http://www.reuters.com/article/2013/08/09/us-usa-russia-obama- idUSBRE9780XS20130809)

<comment><USER4> This article offers an interesting look at Russia-US relations:

 _" Diagnosing Sochi Media Coverage: Virulent Russophobia...

The water, the toilets, the hotels – nothing pleases our pampered media divas, whose hatred of all things Russian oozes from between the lines of their "reporting" like pus from an old wound."

All the antipathy we saw aimed at Russia during the cold war years is now being revomited up by the political class, albeit in a new flavor: instead of genuine martyrs like Andrei Sakharov and Alexandr Solzhenitsyn being lionized, we see the professional provocateurs of "Pussy Riot" elevated by Western media to the status of "dissident" stars._

[http://original.antiwar.com/justin/2014/02/09/diagnosing- soc...](http://original.antiwar.com/justin/2014/02/09/diagnosing-sochi-media- virulent-russophobia/)

</comment></comment></comment><comment><USER5> The main angle of the post (dressing exactly the same all the time) is a very interesting one, but the end points are somewhat scary.

Think of it: if it's so easy to fake color photos so that people won't notice, isn't it easier to fake black&white photos? How do you know this is real: [http://upload.wikimedia.org/wikipedia/commons/0/05/Yalta_Con...](http://upload.wikimedia.org/wikipedia/commons/0/05/Yalta_Conference_%28Churchill%2C_Roosevelt%2C_Stalin%29_%28B%26W%29.jpg)? I don't. If we routinely don't trust colour pictures in newspapers, why should we trust historic photographs?

We've reached a point in time when we can start actually faking history. The only way to check if something happened now would be to find original copies of old photographs and books. But it's only matter of time before they'll be gone forever, or stuck deep in museum vaults, to be accessed by selected few. We could rewrite the history for next generation and no one would likely notice it.

<comment><USER6> > We've reached a point in time when we can start actually faking history.

It has always been possible to fake history, inadvertently or intentionally. There was a narrow stretch of time when photography became widespread which made it a bit harder to fake history, but photographs were being faked and staged long before we had computers to do digital editing of them. And before we had photographs, it was possible to fake manuscripts, etc.

<comment><USER7> There is an interesting thoery called Phantom Time [http://en.wikipedia.org/wiki/Phantom_time_hypothesis](http://en.wikipedia.org/wiki/Phantom_time_hypothesis) related to a preiod in the middle ages that may not have existed. supposedly a king wanted to be on the throne during the millennium so faked a few hundred years of history.

If true we would only be in the 17th or 18th century. Which may explain why the world didn't end in 2012, or why there still aren't hover boards.

<comment><USER8> Your last sentence makes it clear you are joking, but just so no one is confused: Without even reading the Wikipedia article, it's trivial to imagine how that hypothesis could be readily disproven. Recorded astronomical phenomena, correspondence of cross-cultural events—even carbon dating is accurate enough to catch a discrepancy of several centuries like that.

<comment><USER7> Yes I think Halley's comet appears in the Bayeux Tapestry which I assume has been linked to an appearance in the 12th century. Better check the stitching on that to make sure it wasn't modified ;)

[EDIT] Halley's comet apparitions are roughly every century so not that conclusive... cue twilight zone music

</comment></comment></comment></comment></comment><comment><USER9> Trust is something hard to come by and when dealing with foreign sources you have to rely on translators and their issues. What is worse, even if the translators are reliable, alterations can be made after the fact, but verification is difficult because of language barriers.

Here is an example that my father found about Putin's person of the year interview with Time. Time published a full transcript [1] in English and Kremlin published the full transcript [2] in Russian. The very first question is different! Kremlin's version includes a question where the reported bungled the Putin's birthday and though he was born in 1946 instead of 1952, but Time omits it. It wasn't a very substantive question, but it did set the tone for the interview and the difference is upsetting. As far as I know this particular issue has not been widely discussed for the past 7 years.

If media and/or governments alter the smallest records for reasons of incompetence, what do they do to hide larger errors?

[1] [http://content.time.com/time/specials/2007/personoftheyear/a...](http://content.time.com/time/specials/2007/personoftheyear/article/0,28804,1690753_1690757_1695787,00.html) [2] [http://translate.google.com/translate?hl=en&sl=ru&tl=en&u=ht...](http://translate.google.com/translate?hl=en&sl=ru&tl=en&u=http%3A%2F%2Farchive.kremlin.ru%2Fappears%2F2007%2F12%2F19%2F1607_type63379_154772.shtml&sandbox=1)

<comment><USER10> Truth is hard come by with non foreign sources as well, we just comfort ourselves by thinking its foreigners who seek to deceive us.

<comment><USER11> This is why I really like the points Glenn Greenwald made in his debate with Bill Keller from the NYTimes. His meta point was that there is no such thing as being objective in reporting and any attempts to be objective just functions to obfuscate the bias that is unavoidable. At least when sources are openly biased and wear that bias on their sleeve, it becomes much easier to separate fact from opinion.

[http://www.nytimes.com/2013/10/28/opinion/a-conversation- in-...](http://www.nytimes.com/2013/10/28/opinion/a-conversation-in-lieu-of-a- column.html)

</comment></comment></comment><comment><USER12> The cool digital analysis aside, what if people who do this aren't pulling a Kim Jong Il, but rather are pulling a Steve Jobs?

[http://gawker.com/5848754/steve-jobs-on-why-he-wore- turtlene...](http://gawker.com/5848754/steve-jobs-on-why-he-wore-turtlenecks)

No need to feed conspiracy theorists unnecessarily. Always look for the story behind the story too. Now of course, all of that evidence of digital alteration is another thing. And it may very well have been simply a newspaper who wanted some kind of photo, but didn't have the photographer to get a real one (or the opportunity didn't exist). Maybe Putin ordered it. Maybe he didn't. Maybe his people did. Maybe they didn't. Likewise on the Hungary side.

</comment><comment><USER13> "... with some guy in the middle signing papers."

His name is in the tags with the photo. He's the president of the country. All that effort but can't be bothered to identify the president.

</comment><comment><USER14> I think the storywriter's distortion lens is always more powerful than some altered digital photos.

</comment><comment><USER15> Daniel Radcliffe annoyed paparazzi by wearing the same outfit every day. They couldn't sell the photos since it looked like they were all taken the same day. [http://www.imdb.com/news/ni0051271/](http://www.imdb.com/news/ni0051271/) Video of the interview [https://www.youtube.com/watch?v=TJT0hq3lHDE](https://www.youtube.com/watch?v=TJT0hq3lHDE)

</comment><comment><USER16> The middle figure in the picture is János Áder, president of Hungary. The image was created by a Hungarian blogger/artist named szarvas: [http://szarvas.tumblr.com/image/76316693473](http://szarvas.tumblr.com/image/76316693473)

The news portal index.hu regularly republishes his work, this is where the confusion may have originated from: [http://index.hu/szarvas/2014/02/11/ader_alair/](http://index.hu/szarvas/2014/02/11/ader_alair/) you can see the post among other posts here: [http://index.hu/szarvas/](http://index.hu/szarvas/)

Here is a thread where a commenter points out how photo manipulation is frowned upon by professional photographers on their forum, and they can't believe "how a political journalist can do this while a war correspondent can't draw smoke near an explosion.", linking to his republished image on index.hu.

Of course szarvas is not a political journalist, he is a funny guy with a tumblr: [http://szarvas.tumblr.com/post/76316693473/nyomomneki- lvnte-...](http://szarvas.tumblr.com/post/76316693473/nyomomneki-lvnte- regisztralva-vagyok-egy)

I wonder how the article talks about clues detectable only by applying filters to the image, yet misses the most obvious sign of retouching: the middle figure's knees, the blur around them can be seen with the naked eye, not to mention the irregular shape.

Regarding the other conclusion of the article (the outline around Orban and Putin seen in the histogram image), to me it simply looks like sharpening. I may be wrong.

</comment><comment><USER17> Huh, I live in Russia and I never noticed that Putin always wears the same clothes. Fascinating. I certainly wouldn't put using Communist-era photo-op tactics past him.

<comment><USER18> Putin admires the USSR and used to be part of the KGB. More likely than unlikely!

</comment></comment><comment><USER19> _However, the biggest clue appears when we apply a basic color histogram to the picture_

Can anyone explain what this means? It doesn't match my understanding of what a histogram is (i.e., a graph of values vs frequency of occurrence).

<comment><USER20> I can't see the images in the article but you have it right - the histogram is color values against frequency.

You can then use the histogram to identify and highlight particular color values in the image. This would identify the simple artefact described in the text.

Link to Photoshop example use: [http://www.ephotozine.com/article/using-the- histogram-in-ado...](http://www.ephotozine.com/article/using-the-histogram-in- adobe-photoshop-lightroom-4-21589)

</comment></comment><comment><USER21> I'm not sure about that rainbow colour-scheme used.

[http://www.research.ibm.com/people/l/lloydt/color/color.HTM](http://www.research.ibm.com/people/l/lloydt/color/color.HTM)

</comment><comment><USER22> ` PCA measures JPEG artifacts.`

Just for some clarification - how does that work, exactly? If you decompose an image using PCA/SVD and find a cliff in the spectrum, is that a fingerprint of JPEG compression?

<comment><USER23> The name doesn't ring a bell, but judging by the pic its this stuff:

[http://29a.ch/2012/4/15/image-error-level-analysis-with- html...](http://29a.ch/2012/4/15/image-error-level-analysis-with-html5)

</comment></comment><comment><USER24> Interestingly, Steve Jobs was also known for wearing the same outfit year-by- year.

[http://www.mediabistro.com/fishbowlny/steve-jobs-is-too- busy...](http://www.mediabistro.com/fishbowlny/steve-jobs-is-too-busy-to- change-clothes_b119688)

</comment><comment><USER25> > _Kim Jong Il rarely appeared in digitally altered photos. Instead, he did a > different type of misdirection. In almost every photo of him, KJI wore the > same clothing. It 's as if he only owned one set of clothing (or a closet > full of the same discount gray suits). This wasn't because KJI had no taste. > Instead, it allowed his counter-intelligence people to publish any photo of > him over the decades as if it were a recent photo. People couldn't just look > at a photo and identify when it was taken._

And that's a feature we intended to get by wearing the same clothes because?

How is the ability to publish any old photo as recent relavent at all?

<comment><USER26> As the author said "counter-intelligence". It allows Kim to post pictures of him visiting a factory in one city when he is really at a completely different one. The less any one knows with certitude about him the safer he is.

<comment><USER25> OK, this makes more sense I guess. Or, you know, he just likes the outfit. After all it worked for Steve Jobs.

</comment></comment></comment><comment><USER27> Russian contemporary novelist Victor Pelevin explored a similar theme in his "Generation P" book (1999). The idea was that there were no "real" politicians, because all of them were fabricated digital images to sell more ads. Quite an entertaining read.

On goodreads: [http://www.goodreads.com/book/show/9667484-generation](http://www.goodreads.com/book/show/9667484-generation) / [http://www.goodreads.com/book/show/337672.Homo_Zapiens](http://www.goodreads.com/book/show/337672.Homo_Zapiens) (translated version)

</comment><comment><AUTHOR> The author has up a website [1] that gives an overview of what forensics can do with photos.

[1] [http://fotoforensics.com/](http://fotoforensics.com/)

</comment><comment><USER7> Didn't Steve Jobs always wear the same outfit? Perhaps that's so if he's in a photo now they could say it was taken years ago!

</comment><comment><USER28> The one table leg being longer can be easily be attributed the lens distortion.

One would expect that, being in a room, a fisheye lens has been used in the original picture. But that would have led to a barrel distortion. Instead, a zoom lens was used. This has an interesting side effect: Putin, sitting at the border of the photo, then appears larger.

</comment><comment><USER29> If you enjoy conspiracies theory about Putin, I heard about two.

First is very realistic, that in 2013 he fabricated fishing in Tyva:

[http://avmalgin.livejournal.com/3926168.html](http://avmalgin.livejournal.com/3926168.html)

Second is that he has multiple doubles, including one mongoloid.

</comment><comment><USER30> Searching for 'putin heineken' gives me images of Putin dressed as an astronaut drinking beer:

[https://www.google.nl/search?q=putin+heineken&tbm=isch](https://www.google.nl/search?q=putin+heineken&tbm=isch)

So there are your pics and it did happen

</comment><comment><USER31> What never cease to amaze me is how secret services around the globe waste so much time on trivial things like that.

I read somewhere that the US president always traveled with its own toilets in fear of spies analyzing his "production" oO

Meanwhile people are still dying of hunger ...

<comment><USER32> Some of these security reasons make sense. I've heard whenever a US embassy needs equipment (e.g. a photocopier), they get it delivered from the USA, rather than use a local supplier. The USA used to set up fake local suppliers and was able to get a compromised photocopier in a Soviet embassy.

<comment><USER33> And the USA snuck a printer into Iraq in the first Gulf War with a virus on it, or was that a hoax?

<comment><USER34> Some hackers p0wn3d printers at the Navy and sent duplicates of all print jobs overseas. Seems like a great hack.

</comment></comment></comment></comment><comment><USER35> Hello, Generatin "П". [http://en.wikipedia.org/wiki/Generation_%22%D0%9F%22#Conspir...](http://en.wikipedia.org/wiki/Generation_%22%D0%9F%22#Conspiracy_theory)

<comment><USER36> Huh. So, reincarnation exists, and Robert A. Wilson's spirit speaks Russian now. Who knew?

</comment></comment><comment><USER37> Totally offtopic, but the title reminded me of: [http://putintheritzon.ytmnd.com/](http://putintheritzon.ytmnd.com/) (has audio)

</comment><comment><USER38> On a very long list of Russian transparency problems, faking photos of diplomatic meetings is one of the least objectionable.

Not everyone can take a selfie with Obama!

</comment><comment><USER39> The whole pose looked off to me. It seemed odd that important papers would be signed kneeling. Is that customary anywhere?

</comment><comment><USER40> I am currently reading Orwell's 1984 to my daughter. I am able to tell her that it is _mostly_ fiction ...

</comment><comment><USER41> IMHO even the one with Gheddafi could be a fake, the light is not the same on the subjects..

</comment><comment><USER42> Are the photos appearing for anyone? Or are we all getting unable to load?

</comment><comment> artumi-richard Putin died three years ago, fact.

Maybe.

</comment><comment><USER43> Obligatory: [http://www.ifmelranthezoo.com/wp- content/uploads/2013/09/put...](http://www.ifmelranthezoo.com/wp- content/uploads/2013/09/putin_on_the_ritz.jpg)

</comment><comment><USER44> ras-Putin: [http://www.youtube.com/watch?v=SRWiqjgOyX0](http://www.youtube.com/watch?v=SRWiqjgOyX0)

You can thank me later.

</comment><comment><USER45> I don't get the connection between Putin wearing the same clothes and the photo manipulation explained at the end.

Looks like he wanted to write about two different things but smashed them into just one without coherence...

<comment><USER46> I think the implication he failed to properly address is that Putin wears the same suit specifically so it's easier to photoshop him in to other pictures. That was my interpretation.

Another interpretation that requires less guesswork on my part is that his interest was piqued by noticing that Putin wears the same suit, and that was what led him to start investigating other pictures of Putin, culminating in his analysis of this doctored photo.</comment></comment>


Understanding CPU caching and performance - <AUTHOR> http://arstechnica.com/gadgets/2002/07/caching/ <comment><USER2> Really wish Jon Stokes had not left Ars. His articles were my introduction to hardware, and even though this article is from 2002 it still very much applies to every CPU.</comment>


10,000 passwords are 99.8% of all user passwords in 6m username/pwd database - <AUTHOR> http://xato.net/passwords/more-top-worst-passwords#.TgAZYDj5lr8;hackernews <comment><AUTHOR> The 6 million username/password database was collected by Mark Burnett, author of Perfect Passwords, over the course of many years. Given that most people use a password strategy that involves stronger and more unique passwords for finance and ecommerce sites, I'm guessing that the vast majority of these username/password pairs were obtained from less important sites. Perhaps Mark will pipe in to clarify this point.

<comment><USER2> I wrote a recent blog post that explains the sources: <http://xato.net/passwords/how-i-collect-passwords>

</comment></comment><comment><USER3> This is interesting but I don't think passwords gathered as he has constitutes a very representative sample of what normal people might use for normal services.

<comment><USER2> It may not be a representative example, especially when you consider corporate and banking password policies, but it does show how lame people will be if allowed to set passwords without restrictions.</comment></comment>


Futhark: APL on the GPU - <AUTHOR> https://futhark-lang.org/index.html <comment><AUTHOR> I found this while trying to remember the other APL derivative that was posted here: [http://arcfide.github.io/Co-dfns/](http://arcfide.github.io/Co-dfns/)</comment>


Ivory Language: an eDSL for safe systems programming in Haskell - <AUTHOR> http://ivorylang.org/

<comment><USER2> "A sample ivory program decorated with an ensures clause, checking the return value against a specification. This is a trivial case where the specification and implementation are identical."

Funny, I had a formal specification and verification course at uni, and I always felt I was writing Haskell when I was writing specifications. When you're writing Haskell to specify your Java, why not write Haskell instead and be done with it? Of course supposedly at some point it breaks down and specification won't be so trivial, but I'm not fully convinced.

</comment><comment><USER3> The reddit thread: [http://www.reddit.com/r/haskell/comments/2epdwp/ivory_langua...](http://www.reddit.com/r/haskell/comments/2epdwp/ivory_language/)</comment>


The DDoS Mafia. And why the Internet should be regulated. - <AUTHOR> https://medium.com/devops-programming/84896837a960

<comment><USER2> Article conflates privacy with network neutrality. I fail to see how they are the same thing.</comment>


Please Excuse my Grammar - <AUTHOR> http://austingwalters.com/please-excuse-my-grammar/

<comment><USER2> An Objectivist complaining about fairness. That's rich.

"I hold to several key ideals, I hold that I am a man. I believe that there is nothing higher than myself, no god, I am a god, I can make the world into what I wish. I hold that I have no right to impede another human being and no one has a right to impede me. I aspire to be the best I can be and attempt to only deal with others who believe as I do. I work hard for everything I own and I intend to keep all I can. I am against taxes, I am against a welfare state, I am against anything which forces me to help others that I do not wish to help. What I am is an Objectivist of sorts. I never wish my freedom to be taken from me and will always be willing to fight for it if there is a battle I can win. I believe in reason, logic, and that greed is good." [1]

[1] [http://austingwalters.com/about/](http://austingwalters.com/about/)

</comment><comment><USER3> The problem here is simple: working hard isn't enough. If you can't pull all A's, get good test scores, and great recommendations, then you can't have graduate school. Obviously it's unfair, in large part because someone wealthier won't have to work to survive and can concentrate on his or her studies. The converse of that, though, is when things get hard and the rubber hits the road the student will have some margin of error. The author of this piece has none, as he admits. That makes him a liability to an academic system that requires professors to make many of their graduate students slave labor hours so that they can publish at an appropriate level.

I've been to the highest levels of grad school and had to leave because of personal problems. There's nothing quite so painful as being told that your spouse's terminal illness has little to no bearing on your examining committee's opinion of you. (n.b., I was in a European school, so I couldn't take more than a three year leave of absence before presenting and defending my thesis. My examiners could have given me another year, but they refused, saying that my spouse wasn't exactly going to get _better_ during that span)

This is all utterly unfair, but the sad fact of the matter is that graduate school isn't for the author. I don't mean that it's an unrealistic dream, I mean that it's not going to give a rat's ass about the author's life situation and grad school will treat him like shit when he has to take time to deal with very real life problems that academics tend to gloss over. The author would be better served by avoiding grad school for now and establishing himself financially. Good professional experience will counteract many of his GPA shortcomings (and most schools will ignore those if he has professional experience). When he's in a position to get a _fully-funded_ position in grad school, only then should he go, because only then will he be able to commit himself 100% to his studies.

</comment><comment><USER4> The author argues that he is "smart" due to his performance on standardized tests ("I feel smart, my tests showed I'm smart"), but then turns around and argues that a standardized measurement of performance (the GPA) does not measure "smart" ("does a 3.5+ GPA really mean that? To me it seems more like they played it safe, they didn't push themselves hard enough").

His takeaway is that the tests are right (because he feels they are right) and that the system and the GPA have failed him.

My takeaway is that there really isn't a good metric for measuring "smart" or whether someone really groks the material offered in class... and that the education system really needs to have more of an emphasis flexibility and really grooming teachers to look at students' abilities and performances holistically.

I want to say that a "good" counselor would have looked at the author and said "Ok -- you've done well on your tests and I understand that the environment is disruptive for you. Why don't we set up a meeting with an AP teacher and let them gauge you?"

Relying on "good" teachers and "good" counselors is scary, though. It means you have to trust human beings and not objective metrics where you can say "this is a pass" or "this is a fail."

</comment><comment><USER5> I empathize with you! I enrolled in community college after leaving school in 1st grade (yes, first grade. I was six). No high school diploma, no GED. After 2 years I transferred to a top 50 university, and it's a miserable system. I'm taking grad classes at the same time as undergrad to try to spice up what I'm learning, but the complete lack of interest-driven education is absolutely despicable. I would drop out and work as a freelance coder full time (it's crazy how much that pays), but I only have a year left, supposedly. My grades are only good in the classes I've enjoyed and have been interested in, and the rest are Cs and low Bs. Even an F. I just can't bring myself to mundane, boring work. I know that people say I should learn to live with that, because life is filled with mundane work. But I've always been able to make money coding, etc. and loved every minute of it. I honestly feel like Uni is "harshing on my vibe, man" if you know what I mean. I could be learning so much more if I could spend less time with my Uni work :(

Aha, well that was as relevant to this post as I thought it would be when I started writing it. C'est la vie. HN is getting my rant anyways...

<comment><USER6> wait, what? you were at university as an 8 year old?

<comment><USER5> Nope :P started community college at 15, transferred to uni a few years later. Bit of an alternative educational history.

</comment></comment></comment><comment><USER7> Our high school, Niskayuna High School in Upstate NY, has a policy (from what I've heard, it's fairly rare) called 'Open Enrollment'.

By this policy, any student can, in spite of the wishes of any teacher or department director, decide to take a class at a different level than recommended. Essentially, if you want to take the AP class, you can, even if your teacher tells you to take the remedial one. Nobody can force you not to.

I think its incredibly empowering. It makes school seem like a place of opportunity instead of a place of discouragement. As far as I know, 'Open Enrollment' (aka 'Self Selection') is not very widespread in high schools. I wish it was.

<comment><USER8> While I appreciate the sentiment behind this, I have to disagree. It is very important to maintain a certain level in advanced classes, or the classes become a farce. I am at a mid-tier state university right now and I feel like it's some sort of nightmare with all the nearly illiterate students.

<comment><USER9> If students elect to take classes far beyond their level then they can simply have no idea what is going on and fail. That should be enough of a natural consequence to discourage a flood of under-performing students to high level classes.

<comment><USER10> Dunning-Kruger explains why that can't be relied on to discourage the flood -- the people that ought to be discouraged may well agree that unprepared students shouldn't register for the high-level classes, but won't realize that they are unprepared.

</comment></comment></comment></comment><comment><USER11> Frankly, I couldn't get past the grammar. And spelling. And blatant typos. You so lack an attention to detail that I wonder if you might have a learning disorder.

Or you don't read. Please read. Read everything you can. Read fiction, non- fiction, cereal boxes, "newspapers", graphic novels, the internet. Read anything. It's kata for communication. If you can't or won't read, you'll forever suffer from an inability to communicate effectively. You will feel this most acutely when communicating in written form, but incomplete or incorrect sharing of your context in any form will contribute to your perceived disease.

<comment><USER12> You would see that your advice is misplaced if you had finished reading his essay.

</comment></comment><comment><USER13> I liked your article, your persistence, and your confidence. Keep it up!

You should do some more editing (straight vs. strait, their vs. there, etc.), but that's an ancillary concern.

Some comments from another STEM undergraduate in the US: You're clearly someone who's a bigger fan of doing things via your own system versus flowing through others' systems. There's, of course, nothing wrong with that. Lots of hacker types have that tendency. Feynman used his own notation for trigonometric functions in high school because he thought the existing one was stupid. It's a handicap in many situations, but an advantage in many others. The world needs both kinds of people.

Anyway, point is, the traditional pathways to success are based on certain metrics, and people flowing through that pathway will optimize toward those metrics to the exclusion of others, inflating them (that's Goodhart's Law). You're someone with an aversion to traditional pathways who's trying to reach life goals through those pathways. The system wasn't made for people like you. This automatically puts you at a disadvantage, as your time and effort is spread out between a lot of things, only some of which help up the metric the grad school people are looking for.

So take a look at yourself and gauge your skills: you're obviously competent, you're intrinsically motivated, you're persistent, but you're bad at (or your life conditions preclude you from) optimizing to certain metrics. Given this information, if you want to do better, you can either give yourself a handicap (take less credit hours or easier classes) or change the game to something you're better at (look for less GPA-centric grad school programs, consider other future possibilities -- also see etrevino's comment!).

In the further future, look for smaller places and higher risk/reward scenarios. Working in those kinds of environments will let you take on challenges on your own terms. Finally, many of the problems you mentioned at college would be nonexistent at a smaller school. At a smaller place, people are more willing to bend rules and to make exceptions given extenuating circumstances. Keep that in mind when making future decisions.

Oh, and, yeah, the system is incredibly broken. So are a lot of things in life. the best we can do is often to work around them and push to change them, usually in that order.

</comment><comment><USER14> Some places can be flexible about their entry requirements. If you're not against coming to the UK, try some places here, like Cambridge (much cheaper than ~all US schools). Don't just apply - contact specific supervisors about joining their groups. I can help guide you through this if you (or anyone) want to drop me an email.

As someone who bucked the traditional route to get here I can assure you it's feasible. I didn't go to university until I was 21 - and then I did a weird subject at an unheard of university. Now I'm a grad at Cambridge. If you don't like the system which is set up to select people who are likely to be good, then you have to work around it, not try to run straight through it. By applying the normal route you're guaranteeing yourself to get stuck. People are always the way around institutional rules - get to know some of them, help them to like you, then help them to help you.

Also, if you want to change the world with your skills, very few academic projects will let you do that. We're building a site that lets you find those projects and give your skills: [http://solvers.io](http://solvers.io)

</comment><comment><USER15> I completely understand. What did I do? Got a job for someone who cares more about accomplishments than about some ridiculous method of measuring that meant nothing in any context but authoritarian measurement systems(do what we say to pass).

Upsides? If we make money, I am lauded and respected, and getting things done is the highest achievement. Downsides? Way too much time spent optimizing problems and dealing with bullshit that is unrelated to your interests.

Conclusion: no matter what path you choose, you have to yoke yourself to someone's wagon, whether it be academic or business. Otherwise hope you are born rich or have a billion dollar idea.

</comment><comment><USER12> I also feel frustrated with and betrayed by the academic system, and while my reasons for feeling that way are somewhat different, the big picture is similar. I've worked hard and learned a lot and by some measures I am intelligent and educated, but I don't have the academic history to back it up. But... none of that matters, because I got a job where my actual skills and knowledge are valued, rather than my credentials. Is that a path you can take?

Oh and by the way... I see people picking on your grammar and spelling mistakes, but I really don't think they're any worse than what I see regularly elsewhere. I've read plenty of papers published by engineering and computer science graduate students that have been worse.

</comment><comment><USER16> I graduated 2 years ago from the same school as OP. I had better GPA, simply because I learned to game the system and to be better at taking tests. When you realize the system (college now and graduate school soon) is not benefiting you, you might want to come to a different system (industry). I moved to SF after college. My day job keeps me interested in distributed system, while I spent my free time learning my favorite subject, combinatorics

</comment><comment><USER17> School is not everything.

</comment><comment><USER18> You are delusional and incredibly vain.

</comment><comment><USER19> I use [http://spellcheckplus.com/](http://spellcheckplus.com/)

"I'm commenting in Hacker News which means I have a minimum IQ of 120. But in no way my above statement proves my above average intellect which can be personified in this comment. But then some may say I'm arrogant or just trolling neither of which, this sentence is too long I'm gonna end it now."

</comment><comment><USER20> Sorry, but I find it very difficult to understand how someone who can't even spell the word "straight" correctly could have gotten an A in English his senior year of high school. I'm pretty sure I knew how to spell that word correctly by the time I was 5 or 6.

<comment><USER21> * The author is not perfect.

* You are not perfect.

* You missed the point of the article entirely.

* You responded to this story just to be smug.

* You are very rude.

<comment><USER20> Actually, you're the one who missed the point entirely (of my comment). I'm questioning the factual accuracy of an article in which the author claims to have gotten an A in his AP English class the senior year of high school, despite the fact that he still can't spell the word "straight" correctly. Either he's lying, or his teacher had very low standards. The former is much more likely.

I also question his interest in writing correctly, as all he would have had to do was to paste his article into Word and it would have told him that he was spelling "straight" incorrectly. The fact that he didn't even bother to do that is an even bigger concern.

There's also the fact that, rather than bothering to come up with a proper response to my initial point, you decided to attack me by calling me "very rude" and making (incorrect) assumptions about why I responded to this article. That also makes you very difficult to take seriously. Don't bother to respond until you can do so in a civilized tone.

<comment><AUTHOR> Just going to go ahead and say it, strait is a word as is straight. The article was titled "Please Excuse my Grammar" and misusing a word is a grammar (not spelling mistake). That also seems to be part of the point of the article, did you read the last line?

The author wanted to misuse grammar to bring attention to the fact that the education system doesn't support learning. Instead the system labels individuals and attempts to keep them in those labels, rather than helping them improve.</comment></comment></comment></comment>


Ask HN: Working two jobs - <AUTHOR> I am fortunate in that I have two jobs. I work 3 days a week as a sysadmin and two days a week on my  SaaS product. My income works out roughly the same as if I were full time sysadmin.<p>Having painted a picture I'd be keen to hear from anyone who knows about the mental gymnastics and motivation required to work two jobs? What have you learned and how do you stay on task? <comment><USER2> Honestly I never felt like I had to do any mental gymnastics.

To me it's more or less the same as going home and putting on the dad hat for the rest of the day, but easier.</comment>


How Not to Make Coffee - <AUTHOR> https://adequateman.deadspin.com/how-not-to-make-coffee-1820399614 <comment><USER2> The only positive thing I can say about a Keurig machine is that it is better than a Flavia machine, which is the Worst Coffee Thing ever.

I've got an electric kettle and one of those plastic Melitta filter holders that sit on top of the coffee cup. Costs me altogether maybe $25 and works great.</comment>


The dying platform: .Net - <AUTHOR> http://roundcrisis.com/2013/05/15/the-dying-platform-net/ <comment><USER3> .NET, like practically all tolls by Microsoft, is good for one thing - <USER2> scale enterprise development for Windows. It plays well with Office, Access, Sharepoint, Active Directory, IIS etc. and it's the best around at what it's doing. You can also do webdev or solve highly concurrent problems with .NET and it's great at that as well (I'm very fond of the Nancy framework and C#'s async/await are a godsend) but it's not inherently better at these than any other language. So no, .NET isn't dying nor do I feel it has lost momentum. It's not really doing anything crazy or new (ahem go ahem) but it's still as good as ever in what it was meant to do - general purpose programming language for Windows.

<comment><USER4> Don't forget the desktop sector, which isn't entirely dead yet. Pretty much everything is better than MFC, and with Delphi going nowhere (for obvious reasons), a lot of people writing relatively small custom software apps transitioned to .NET, either with C# or VB. Don't think that will change that much with WinRT. (JavaScript seems mostly an angle to get some web developers to do small Metro apps)

<comment><USER5> I think MS have lost a lot of support on the desktop after deprecating Windows Forms (which is all a lot of enterprise apps need), followed by WPF/Silverlight's poor penetration leaving no hardware accelerated graphics for non-WPF (bit blitting excluded), and then the confusing messages around WinRT which at one point looked like they were deprecating WPF as well.

While the front end flashy stuff isn't there compared in .net compared to the better Javascript libraries (I love d3!) MS have really progressed the non- sexy .net improvements e.g. C# evolution, F#, WebAPI.

</comment></comment></comment><comment><USER6> Microsoft has too many developers and not enough innovation. They encourage a design attitude that everything has to operate like the flight deck of a 747. Their culture has been incestuous so long that any change is terribly unlikely.

There are some really, really sharp guys at Microsoft. Not only does the community deserve better products from such a great company, the developers in many cases have an very unpleasant work experience.

Google is not too far behind. I think they're pushing a lot of the things they are simply to keep momentum building. In another 20 years, unless they start building time machines, it'll catch up to them, too.

Apple is a strange case. They passed the "I wouldn't work for them for a million bucks" point many years ago, but they're just better at slapping a better marketing image on it than the rest of them.

Having said all of that, I like .NET, and I think combining it with Mono makes probably the most full-featured free platform for development anywhere in the world. The effective targeting of the business market by .NET may be waning, but the platform is nowhere near dying off.

<comment><USER7> >They encourage a design attitude that everything has to operate like the flight deck of a 747

I agree. If you have ever done any development using SharePoint or Dynamics CRM API's and SDK's you will know how much of an overengineered mess these applications are. The unnecessary complexity of these applications does however create demand for thousands of developers to untangle the mess.

<comment><USER6> I feel very sorry for my friends who are actively writing projects in the latest .NET Whiz-Bangedness.

They're all so optimistic, with regurgitated Microsoft marketing-speak about how this bell or whistle is going to magically solve this or that problem, and how easy everything is to do now. They've been eagerly awaiting a new customer to try this stuff out on.

Then, sometimes just within days, I start hearing the pain. It's always the same -- the damned development ecosystem is a freaking nightmare and some little gotcha somewhere is killing hours (or days) of time.

I used to teach .NET. Everything is awesome as long as you go down 7 or 8 pre- defined paths. But nothing ever works like that in the real world. There's nothing like watching a new developer drag a control onto a form, take a look a the properties page with it's 40-thousand item madness, and be utterly and completely at sea. Lost. Bewildered and rendered ineffectual. Their stuff is full of experiences like that.

<comment><USER7> Absolutely spot on, and I have exactly the same experience.

What completely baffled me when I did quite a bit of SharePoint development of late is, that you are essentially doing web application development, except _everything you know_ about web development is somehow not valid anymore because it has been buried under layers and layers of abstraction.

So you have to go on at least one SharePoint development course, to re-learn web development as you know it.

<comment><USER6> Several years back I had a friend with a small business who wanted to do some SharePoint stuff, so I picked up 3 or 4 books on it and read them all.

Oh. My. God. That tool will solve world hunger, land a fighter on a carrier deck at night in a storm, and compute the answer to life, the universe, and everything. It does frickin' _everything_.

So it also does nothing. You end up having to digest a huge learning curve, creating all these specialty libraries to handle workflows, understanding that you need a view for this, a link for that. It's like having to learn Klingon just to get a cup of water.

Whenever I hear SharePoint any more, I just smile. It's a great tool, and it can do an incredible ton of stuff. I just know the pain that's involved with it, and unless I have no choice I want no part in it -- except for maybe using it as a document repository, and even then Dropbox does all I want with zero learning curve.

Microsoft is constantly distracting me with the coolness of their tools instead of enabling me to quickly solve somebody else's problem. The developer has become the market for them -- and that's really bad for both developers and end users.

<comment><USER7> Thank you very much, those comments made my day :). I very much share the sentiment. I am developing in SharePoint and I am sometimes impressed at what it can do; however lately I have been thinking of jumping ship and start developing small business applications (in Golang) that solve user problems quickly and iteratively.

</comment></comment></comment></comment></comment></comment><comment><USER8> Java isn't looking too good, either, at least in the desktop. You know your platform has jumped the shark when it comes bundled with a toolbar.

The question is, where to next? I've been watching Go for a while, but it looks like a tool from Googlers, for Googlers. Pulling all my dependencies from HEAD? No, thank you. Ironically, Javascript looks very promising right now, compared with the alternatives.

<comment><USER9> I find it strange that people are hung up on this remote dependency "issue." It's a convenience for small projects and quick samples. There is absolutely nothing stopping you from checking out a Go package locally and importing it just like any other dependency in any other language.

<comment><USER10> I'd have to agree here. There is no difference between Go's way of managing external dependencies, compared to any other language/platform where you use external packages. Whether they are manually downloaded and built, or pulled from some kind of source-control repo. The `go get ...` approach is just a convenience tool you can use /IF/ you want to.

I get the impression that much of the complaints stem from not really understanding what is actually happening. It's a shame really. People taking a first look at Go, and running into these kind of rants will get an entirely incorrect impression of the Go tool chain.

<comment><USER11> The real shame is that so many people are willing to outsource their opinion- building to random ranters on random message boards.

<comment><USER12> Which is pretty much why people think .Net is dying in the first place.

</comment></comment></comment></comment></comment><comment><USER13> .NET has a long life ahead of itself in the enterprise, where companies on "the Microsoft stack" typically won't even use 3rd party libraries where there is a Microsoft sanctioned alternative. Until Microsoft comes out with a replacement for things like Windows services and web application development, .NET will be around.

I don't see there being an alternative even on the horizon. Presumably they could create a Node.js type of platform backed by Chakra but there aren't any signs that they are even working on such a thing.

(Also, throwing out .NET would mean throwing out F# which gives them a lot of cred in certain circles).

<comment><USER14> Keep in mind that .NET is relatively new to the enterprise and lots of those companies didn't even get out of cobol yet.

Opinion:

Timing is a important factor here. My bet is those enterprise companies skipped the .NET/JavaEE era and will jump right into what is coming next.

I know a couple of banks that are heavy Adabas/Natural users for decades. When .NET/JavaEE boomed they opted to just wait. Now, no single framework can really solve most of your problems. In fact, the problems are so heterogeneous that using frameworks at all is becoming completely irrelevant.

That said, .NET, JavaEE, Rails, Django, they are all dead to a certain point. What we will see is the rise of the non-frameworks. People will start doing their own stuff on Go (or anything else) and maybe will start open sourcing parts of it. You will have a lot of mini libraries that you will put together to fit your needs.

<comment><USER13> I disagree, many if not most cities in the East coast have been dominated by .NET since at least .NET 2.0. There are cities where it is hard to find a programming job in anything else. And the holdouts are mostly old Windows- centric tools like Delphi and VB6.

I also disagree with your outlook for the future. Enterprise loves frameworks only slightly less than they love expensive proprietary software packages where support is built-in. I'd love to see non-Microsoft tech like Go move into the enterprise in a serious way but I don't see it happening. For most of these companies their developers have no experience in anything but the Microsoft stack and a good portion of them either can't or won't learn something else. So you're immediately talking about losing a large chunk of your staff. And good luck finding Go developers.

I can't see Microsoft abandoning this segment so it doesn't make sense to even talk about alternatives.

</comment></comment></comment><comment><USER15> I've been programming .NET since 1.1 and love the platform. It just works. But, I pick my technologies carefully. I called silverlight not working out. I've been staying away from WCF/WPF. No one writes in the news when something goes right, only wrong. This article is more rabble rousing than anything. You can focus on the things that are going wrong. If you are putting out new technologies, some are going to fail. That's the nature of the game.

<comment><USER16> I agree - Silverlight was obviously a tactical response to the threat of Flash. When Flash went into (steep) decline, there was no reason to keep Silverlight around. Both of us called this one correctly.

WCF, on the other hand, is doing really well and is a decent approach to a framework around enterprise communications. But I admit that more often than not, I'm hand-coding my proxies to avoid code-bloat from generated DTOs (I'd rather use a reference to a shared DLL so the compiler alerts me to breaking changes)

<comment><USER15> There's something about WCF that rubs me the wrong way. I like coding Web Services. WCF just feels like bloat on top of web services. And traditional web services can be used cross-platform. I'm not sure WCF can. Maybe I'm just sticking with not fixing something that's not broken.

<comment><USER17> I think the sweet spot for WCF (for us at least) is for our internal APIs. The ability to easily expose the same service over a binary TCP stream or over HTTP makes a fantastic tool when you're trying to get a lot of different systems to talk to each other.

For external or HTTP-only APIs I completely agree that it's often overkill. Frameworks like servicestack are much easier to work with in those cases.

</comment></comment></comment></comment><comment><USER18> According to a lot of job sites .NET isn't dying at all...

Maybe the author has the feeling it is dying because other platforms are in the news more often?

<comment><USER19> Yeah - I can tell you as a C# developer, I get contacted on Linked in several times a week. I'm not looking at all. And if they look at my history, they can see I've been at my current job just 6 weeks. That doesn't slow them down.

As mentioned above, enterprise solutions are huge. There's a lot of money there, and they rely on Microsoft solutions. Sharepoint 2010 has hooks into Dynamics CRM (accounting and CRM), data workflow and reporting (SSIS/SSRS), etc. I've only seen glimpses of 2013, and I think it'll be slow to catch on (as is typical in the corporate cycle) but it will likely be huge in the future.

</comment></comment><comment><USER20> A few weeks back I spent a weekend playing around with .NET and Visual Studio, I was very surprised by how pleasant the language (C#) and the IDE was to use. Also, I went into it with virtually no C# experience (only Java), and I pretty much picked it up immediately, I'm sure there are many differences but I was able to figure out the syntax immediately.

I found the IDE really nice, and the debugging tools really powerful...Also desktop app creation felt super easy. I probably won't use C# for prime time since I develop almost exclusively for Linux, but it's always nice to peek over the fence :)

<comment><USER21> The dev tools for the .NET ecosystem are bar none. It's one of the only things I miss about working with C# when I switched over to Ruby. That and Linq. :P

Give me a visual debugger over some terminal crap any day.

In this regard RubyMine is a very good solution to debugging Rails applications and Ruby code.

<comment><USER22> It's kind of been that way since VisualStudio 6 I think, the MS debugger in VS6 was quite neat. The visual debugging tools were always pretty good.

Hmm, this has got me wondering if there's anything like this available for vim, this looks like it might be neat:

<http://vim.sourceforge.net/scripts/script.php?script_id=663>

But no C/C++ support. Could be useful for Ruby though.

</comment></comment></comment><comment><USER23> From what perspective are you coming from that you think .NET is dying (student, education, corporate, open source)?

MS has never been a technology leader as they tend to let others make the early mistakes then charge in, ask Netware, OS2/IBM, Sony, Netscape.

Early bird gets the worm but the second mouse gets the cheese!

<comment><USER24> All of the above?

A little background: some of my earliest bits of programming were on VB5, then VB6, and then .NET 1.0 when that first showed up. I spent most of my early years on MS platforms, and for the most part I liked them.

I picked up a Surface RT to hack on last year, after a long absence from .NET. The state of .NET shocked me.

For one thing, the subset of .NET that's available on WinRT vs. "real" Win8 vs. WinPhone is really poorly defined. The documentation is incredibly fragmented, and it was _very_ frustrating the even some relatively basic utility classes weren't available on some platforms. It was a struggle trying to cobble even a basic WinRT app together because of how much trial and error there is ("does this class exist? oh shit, no, okay... what's the equivalent class that's named slightly differently in a slightly different namespace...")

There's also a tremendous lack of open source. I develop iOS apps for a living nowadays, and open source is a huge part of that community. .NET has a _huge_ lack of it - everything substantial is proprietary and commercial. Where I can Google for a bit and slap together some libs in an hour on iOS, on .NET it's downloading the trial libs of some commercial libraries, trying them out, adding the totals, and realizing that the same feature set will cost you $10K a year for these licenses. The alternative on Android/iOS is _free_.

A more general complaint is MS's schizophrenic support of .NET. When .NET 1.0 first came about it was touted as Microsoft's long-term direction. _This_ was the new platform, and we can count on it being supported as a first-class citizen on all MS platforms for a long-long time. That didn't pan out exactly. Microsoft has a _really_ bad habit of making 90-degree turns every so often that destroys any developer trust. You can't rely on anything on a MS platform because in 3 month's time they could pull the rug out from under you with little to no warning.

<comment><USER23> Some of the things MS pulled the plug on needed it. I can't vouch for WinRT development but the .NET 4.5 is rock solid and predictable for WinPhone & Win7/8 from my desk. Have you used NuGet yet with over 1100 packages?

Microsoft is a public company that makes software and sells it for a profit, what is wrong with this business model?

All the free open source software you use to make a product, do you then give your product away?

<comment><USER24> > _"Some of the things MS pulled the plug on needed it."_

Sure, the complaint isn't about pulling the plug on things in general, but rather how fragmented and difficult the documentation has become.

If class Foo has been deprecated in favor of class Bar in a different namespace, say so on Foo's page. If class Foo is a basic utility class, it would _greatly_ help if the documentation could point to Bar, if Bar was the supported equivalent in WinRT.

Things like that. Considering how sparse the community support can be (I find .NET discussion on StackOverflow to be substantially less voluminous than, say, iOS/Cocoa dev), the reliance on first-party docs is not really optional.

> _"Have you used NuGet yet with over 1100 packages?"_

Yes.

> _"Microsoft is a public company that makes software and sells it for a > profit, what is wrong with this business model?"_

You seem to be under the impression I'm railing against Microsoft. I honestly couldn't care less about Microsoft's business model. I'm strictly speaking from the perspective of an app developer - a demographic Microsoft seems to be keen to court. My experiences so far seems to indicate 3 choices:

\- Develop on Android/iOS, gain access to enormous volume of free (as in beer) libraries that will speed my work along and make my life easier.

\- Develop on WinRT (and WinPhone? my exposure on that side is limited) and home-brew a _lot_ of core utility functionality because it doesn't exist in free (as in beer) form.

\- Develop on WinRT and pay astronomical licensing costs for core utility functionality, which is an easier pill to swallow if the profitability of the Windows Store is more reliable.

This isn't a philosophical argument about profiting off of code, about the freedom of knowledge, or anything like that. This is a plainly pragmatic argument about developing for Microsoft's latest-and-greatest platform, and how there are very large consequences that make their platform _much_ less attractive to developers as a consequence of both their business model as well as their approach to support and documentation.

<comment><USER23> I agree with you on the lack of iOS & Android support in .NET so far (i'm using Xamarin to bridge this now).

But I am personally confident MS will attack this market with full steam and deliver native tools to their developers sooner rather than later.

</comment></comment></comment></comment></comment><comment><USER25> One of the things that I've often thought MS could do to attract more developers to this platform, is to release the brilliant piece of software that is Visual Studio, for FREE. Not just the "Express" edition...the full blown "Ultimate" edition.

They should also buy Red Gate and Jet Brains and bake their products into VS and SSMS themselves, while happily releasing updates and enhancements for FREE.

Bah...what do I know?

<comment><USER26> The problem is Microsoft is into the business of selling software licenses to make their billions. They don't have a billion dollar hardware business like Apple or a billion dollar ad business like Google that allows them to license their software for free/cheap. So if MS start licensing their software for free, they would stop making money (they do have the xbox and a few services but they're not enoough).

<comment><USER27> I think the middle ground would be to give away Professional. This would cost them 1.5k or so in license, but would get a lot of people in the door. The fact that I can't easily unit test in an integrated way with Express makes me not use .NET even though C#/F# are better languages than Java.

</comment></comment></comment><comment><USER28> > Inherent hatred for Microsoft and anything it does, even if it is good. I > think is pretty sad since I see this attitude from people that should be > objective from a technical standpoint, licensing can't always be an issue.

Actually, yes it can. I think Microsoft (especially Microsoft Research) is amazing and have been one of the most innovative companies of the last 30 years. But I'm not gonna pay them for the right to use a language. I'm also not going to lock myself into a system which requires me to pay them for other things as well (Windows Server, SQLServer, etc). I know there is Mono, but it is not the same. Its a shame, cause F# is one of the coolest languages out there right now.

<comment><USER29> Seconded. You know what? Licensing wasn't a technical issue, until companies like Microsoft made it one. It's kind of hard to guarantee five nines when the EULA says they can shut you down at any time to make sure you are in compliance. Copyleft and GPL wouldn't even need to exist except for assholes who want to control what others do.

</comment></comment><comment><USER30> > "Inherent hatred for Microsoft and anything it does, even if it is good. I > think is pretty sad since I see this attitude from people that should be > objective from a technical standpoint"

I have the inverse feeling: recently, just because at MS some people got a catch on a new fashionistas UI, and gave it a sexy name (flat UI), I have read a lot of praise for this company, as if it was something someone could wish that their tablet or mobile OS would get back on the front of the scene.

This just shows how shallow are the memories of us, developpers. So let's restate it vigorously:

MicroSoft is deservedly hated for extremely grave sins against the industry commited not so long ago.

They regularly force OS upgrades nobody wants even when the failure is patent, and their software is so unmanageable that most PC users have become like beaten dogs begging for the minimal working setup, admiring those who know how to ctrl-tab to another window, fearful of any changes in their software installation, inculated from viruses by rootkits that even more harmful than what they are supposed to protect you against, and the only action they dare take beside reading email is to reboot, and take a coffee break.

They, MicroSoft, also imposed a central crappy software (IE 6) on their monopolistic OS, and used this position to try to smother the big waves we are all surfing on: the Internet itself. They purposedly tried to strangulate the distributed network, because it was not going to bow and contribute to the church tax.

No, Internet's fate was not granted, it could have become a TV-like network of a few content providers like AOL feeding users through the nose. Actually, it is still under attack, also from other threats, many of them having grown on its roots.

MicroSoft is a mammoth, she will endure a very long death, but let's have the minimal pity, and let's not make this agony longer by unduly praising their latest relative PR success.

End of the rant.

<comment><USER31> Note that IE6 was not crappy when released. It was it's stagnation that made it became crappy over time.

</comment></comment><comment><USER32> .Net is one of our workhorses in desktop app development. Maybe it's not the latest trend but there are still a lot of utility apps written in .Net. If your corporate PCs run Windows, as almost all still are, then .Net is your most convenient choice.

<comment><USER33> Not if you factor in Windows and SQL Server licensing costs. Most people are using ASP.NET (one of the many incarnations, at least).

.NET on individual workstations is... irrelevant. Largely.

<comment><USER32> Not sure what you mean. Ignoring the server side for a moment, are people not using .Net or do you just not like it? And once you've paid for Visual Studio, what other costs are there, assuming your workstation already runs Windows?

<comment><USER33> You present a false dichotomy. I neither said that people aren't using .NET or that I dislike it. I'm saying that having .NET installed on the desktop doesn't sell copies of their latest operating system, and for most corporates they are deploying web apps via ASP.NET.

I see no reason why I should be ignoring the server marketplace, because IMHO frankly that's where the corporate dollar is.

<comment><USER32> Got it, thanks for clarifying. My original point was just that .Net isn't dying as the article said. It may not be making a lot more dollars for MS, though, agree with that.

</comment></comment></comment></comment></comment><comment><USER34> Perhaps I'm thinking too narrowly, but I don't see how these points apply to ASP.Net (whether it's MVC or web forms). I've always thought of ASP.Net as the most successful section of the .net framework, with native application capabilities running a good amount behind.

And all the technologies/hardware he mentions here are agnostic to the web/network portion of a system.

</comment><comment><USER35> I would agree with the headline but I find the reasons given to be off target.

The web frameworks have become too complex and bloated. Every major release of Visual Studio seems to bring another layer or way of doing things as well as denser configuration files. A decade or so into it there is just too much there there.

I've used Mono but I'm starting to get concerned that Xamarin is concentrating more and more on mobile tools and less and less on the base .Net libraries. As an example I would point to version 3 still being in beta and the documentation on mono-project falling behind.

</comment><comment><USER36> I wouldn't say it is dying, but I would agree that there are many better alternatives out there for any type of project you would be considering. I think the old allure was that you could be virtually sure that there would be a pool of talented developers to draw upon, but now there are talented developers on many different platforms that offer efficiencies by working well modularly: there is no need for a single behemoth like .net

</comment><comment><USER37> I am disappointed in the near-abandonment of IronPython and IronRuby.

<comment><USER33> But hey, you can use a tablet now that Microsoft's management have switched focus... to a market they have not much share in, almost no mindshare, little developer incentive to work on, that only contributes to a fraction of their revenue and with tools and an operating system that shoe-horns the much larger workstation market into a tablet interface that is neither intuitive or pleasant to work with.

Hats off to Microsoft, clearly someone in management knows more than their own marketplace. Sometimes to be a market leader you must ignore the needs and wants of the market, after all leaders need to make the market go where you want it, right?

</comment></comment><comment><USER38> I guess all that MS software such as office and sharepoint which many a business has deeply integrated into their day to day life, and also extended by using .Net to automate or improve it for their particular needs will be really disappointed that .Net is dying.

I'd imagine they will have a clean and easy migration planned in the next 3 years.

</comment><comment><USER39> Enterprise standardized on Java and won't change anytime soon (i.e. in the next century or so). Seriously, COBOL is still well and alive at many places. Consumer market is on Objective-C (iOS) or Java (Android). Games are written (mostly) in C++ (and this will stay this way to enable cross-console portability). OSS uses any number of languages that have an openly developed compiler (c, c++, python, ruby, JS, go, you name it), but most certainly not .net. So, who is left? There are isolated silos here and there, but it's really a niche language and there are no use cases that will change this.

</comment><comment><USER40> .Net is not just for desktop, mobile/tablet and xbox. In these areas it definitely has lost some momentum but ASP.Net and Xamarin (not from MS but still .Net) seem to be doing good.

</comment><comment><USER41> Personally I couldn't be more in love with MSFT tools (granted they're expensive and I'm using whatever free version they give us). I've worked with Java way back but can't help switching back (WPF, Silverlight for a short while, MVC). When people ask me why on Earth I prefer this, I always give them the same explanation: "MSFT development products for a straight-up developer are what Apple products to an average consumer. Things integrate together instantly and just... work!"

</comment><comment><USER42> Some good arguments, but isn't .NET still the best platform for making truly native looking Windows desktop apps with a simple, high level language? Qt and wxWidgets are decent, but it's a lot trickier to get a native look and feel with those. There's a reason so many apps maintain separate versions for Windows and Mac rather than try to get by with a cross platform GUI toolkit.

</comment><comment><USER43> The most interesting web-based future of .NET is out of Microsoft's control. Xamarin allow you to make iPhone and Android apps in C#, Nancy.FX is the simple web framework MS never made, Moq allows you to greatly improve TDD...

I'm still glad I know C#, but I haven't had a use for .NET in a long time, and have little reason to. Desktop apps are something else entirely, of course.

</comment><comment><USER44> At the server side it simply gives no choice but proprietary and unreliable ms systems and a weak app/web server (iis). The desktop client side is only good for ms clients. For the devices realm there is nothing to talk about really and regarding windows phone it's a bit early. I've worked with .net in the past but now i usually avoid it as much as i can.

<comment><USER21> "Weak" Hah! I'd like to see some references to that claim.

Oh wait, here it is: [1] - melc's ass.

</comment></comment><comment></comment><comment>

IIS has given me a TON of performance right out of the box with a fantastic GUI editor for settings. StackOverflow a website with MILLIONS of monthly hits runs fine with IIS.

<comment><USER44> Even though i don't like your attitude i will try to give a little info that may assist other people. The reference i have is a couple of enterprise level projects (information systems for the public sector) built with c#, iis6 for the server side parts, sql server 2005 and win2003 R2 servers. Also sharepoint which was quickly replaced due to slowness and high resource consumption.

\- Win2003 servers had a limit on the amount of RAM so that was a bit of a problem along with the sluggish performance compared to linux based servers that we are used to work on. Did we have a choice to switch operating system? hm.. not really

\- sql server was pretty good it did much better than i expected and i really enjoyed all the functionality out of the box, but that was until we reached more than 10 millions of records in some tables, then it was no more fun but that could obviously happen with any database. Did we have a choice to switch database? hm.. not really

\- iis6 whether you like it or not you have no other choice. Having a background with jee application servers of different vendors where i could configure and customize them in any level, switch them with other vendor solutions and do plenty of architectural tricks.... i did find iis situation a bit weak

\- programming with c# was great, but if we needed any good libraries/APIs did not exist or we had to pay, not many choices here either and as with all other parts targeted only to ms platforms

Stackoverflow is really great, and i was sure that in the past i had stumbled upon a post about stackoverlfow architecture i.e. [http://highscalability.com/blog/2009/8/5/stack-overflow- arch...](http://highscalability.com/blog/2009/8/5/stack-overflow- architecture.html) to be honest i was a bit suprised that they were using ms technologies. To me the bottom line is that for large scale projects based on ms technologies you will eventually need to invest money and time to proprietary solutions without many architectural choices, at least not as many as other platforms provide. Of course that is certainly not a problem if one works only on ms platforms.

</comment></comment><comment><USER45> Ok... let's believe for a moment that .NET is dying, so what platform you think it's ready to take it's place?

</comment><comment><USER46> I always wonder if it's a better strategy for Microsoft to introduce the Windows AppStore in Windows 7 first and grow the eco-system there, just like what Apple did MacAppStore to Lion, heck, even 10.6.6 (Snow Leopard) has access to it.

Oh, well, perhaps the higher-ups in MSFT need to have a clue first.

<comment><USER31> Unfortunately, they decided to tie it to Metro, which would be too much to backport to Win7.

</comment></comment><comment><USER47> I'm apt to agree. I have used .net before in a large desktop app and it was brilliant but I'm sure I will never use it again - deskwhat?

Only thing I can think of that might save the day is if MS properly open sourced it. Chances of that have to be pretty much identically zero though.

<comment><USER48> They'd need more than to open source it, I think. For .NET to make it, they would need some kind of killer app -- something that makes people use .NET despite whatever natural inclinations they may have. I don't see that happening.

I mean, ten years ago, did you think lots of people would be coding in Objective C? It's funny how things change.

<comment><USER49> > For .NET to make it, they would need some kind of killer app -- something > that makes people use .NET despite whatever natural inclinations they may > have. I don't see that happening.

By "people" do you mean developers or end users? Because if you mean end users, every end user of Windows uses some program that's built in .Net every day. End users don't care, as long as it works.

If you mean developers, developers go where the people are, for better or worse. There are a lot of people using i-devices, so Objective C lives and will continue to live. There are a lot of people and companies using Windows machines, so .Net lives and will continue to live.

</comment></comment></comment><comment><USER50> It better not, C# with .NET is I think one of the best programming languages out there.

</comment><comment><USER51> C# is a great language. It takes things from java and improves simple things like passing by reference, setter, getters etc. It has great features like linq and it had things like generics before java. VS is by far the best IDE. I feel it is much faster than eclipse. Other than the not being free part it is my favorite language to program since I started out with c++.</comment>


Google HTML/CSS style guide suggests omitting head and body tags - <AUTHOR> https://google.github.io/styleguide/htmlcssguide.html#Optional_Tags <comment><USER2> "Omit head and body tags, & type attributes to reduce filesize..."

I'm pretty sure you could remove all the head and body tags from the entire internet and it would still make less of a performance impact than if every WordPress blog stopped using Google fonts.

<comment><USER3> A single analytics loading script and the tracking payload is larger than the gains from the removal of these tags. Most pages have more than one script and payload too.

<comment><USER4> Firefox has a tracker blocking mode that shows you all of the trackers. I counted 25 different tracker services being blocked on a single news article yesterday.

<comment><USER3> Below is the recommended Google Analytics loader

That's 455 bytes, even if you have an adblocker and don't load the external javascript. No amount of removing html, head, and body tags will overcome this.

</comment></comment></comment></comment><comment><USER5> Removing ads and tracking scripts will be more effective in reducing page size.

<comment><USER6> Removing a fuel tank from a plane would be an efficient way to save fuel.

<comment><USER7> Removing ads is more like removing the power-hungry android tablets and wifi systems from the plane.

<comment><USER8> Tablets and wifi systems don't pay for the plane's flight, so that analogy doesn't hold.

</comment></comment></comment></comment><comment><USER9> I'll consider following that advice the day [https://google.com](https://google.com) obeys.

<comment><USER10> Do as we say, not as we do. all the more reason not to trust them.

<comment><USER11> This is an internal style guide, not external recommendations, as the title would suggest. Comments like these are really making me wary of the level of groupthink on here.

<comment><USER10> Are you referring to the group think that Google is full of evil hypocrites?

<comment><USER12> >Do as we say, not as we do. all the more reason not to trust them.

\---

>Are you referring to the group think that Google is full of evil hypocrites?

I'm confused, what are you trying to say?

</comment></comment></comment></comment></comment><comment><USER13> Previous discussion of this from 2016: [https://news.ycombinator.com/item?id=12520674](https://news.ycombinator.com/item?id=12520674)

(Seems like a terrible idea to me - complex rules to follow for a really minimal saving...)

<comment><USER14> True, for source code it might be better to leave those in. However, the fact that omitting them is standard-compliant is interesting for automated minimizers.

</comment></comment><comment><USER15> In my reading of this, I wouldn't say they "recommend" it, but that they recommend considering it. Their link is quite clear that HTML 5 makes these tags optional and gives an unambiguous mapping onto the traditional structure.

<comment><USER16> It's optional under certain conditions but those conditions are given as you correctly point out in the link to the HTML standard. While many seem to be focused on what Google says, it's nothing that those of us who read the actual spec didn't already know.

And every web developer references the spec when they have questions...don't they?

</comment></comment><comment><USER17> This seems like insane advice. Even if it's technically permitted, the HTML5 spec page they themselves link to shows a bunch of caveats and exceptions that make it risky.

And for what - to save literally 10 bytes?

<comment><USER18> times that 10 bytes by all the pages googlebot spiders and that's significant savings on bandwidth & storage for big G

<comment><USER19> We're talking about the folks who host YouTube, right?

The savings from this won't be the slightest bit significant to them.

<comment><USER18> ok thanks Warren buffet

</comment></comment></comment></comment><comment><USER20> Omitting tags is something we can get used to, but just by looking at the spec I'm kinda scratching my head.

Eg. why can't the closing tag for title be omitted? Tags are not allowed inside it.

I guess it's because you should be able to type tags as the title, but having to think about stuff like that makes ommiting more of a hassle than it's worth to me.

And what if templates are used and put together? Then you suddenly need to know how every combination of templates is going to be in the future to avoid unintended side effects.

Saving a bit of data on HTML isn't my top priority, and why would it? Just by not using a bunch of css/js-libs/fonts I'm able to have a smaller footprint than 99 percent of all pages.

</comment><comment><USER21> I don't understand: since when are those structure tags optional, and in what browsers and browser versions would this work in?

<comment><USER22> I believe they've been optional in every version of HTML.

The example document in the HTML+ spec (1993) did not use them: [https://www.w3.org/MarkUp/HTMLPlus/htmlplus_7.html](https://www.w3.org/MarkUp/HTMLPlus/htmlplus_7.html)

The HTML 2.0 spec gives this as its first example:

        <!DOCTYPE html PUBLIC "-//IETF//DTD HTML 2.0//EN">
        <title>Parsing Example</title>

Some text. *wow*

<comment><USER23> The very first draft HTML spec, [https://www.w3.org/MarkUp/draft-ietf-iiir- html-01.txt](https://www.w3.org/MarkUp/draft-ietf-iiir-html-01.txt) (June 1993), is somewhat interesting here, because the only element with optional start and end tags is the html element (head and body require both start and end tags, per that spec).

Certainly by the point of HTML 2.0 (November 1995; the first non-draft spec for HTML) all three elements have start and end tags all optional.

The more general ability to omit start/end tags from given elements is a feature of SGML (October 1986), and HTML 2.0 to HTML 4.01 were defined as SGML applications (though approximately nothing ever used an SGML parser for HTML).

</comment></comment></comment><comment><USER24> Good. I hate writing those useless tags over and over and having all the actual content deeply indented from the start. (seriously).

<comment><USER25> I disagree, having these tags give the document a structure that makes it easier for machines to understand. As for indenting, I usually break the consistency and put html, head and body at column 1, starting the indenting for anything inside head and body.

<comment><USER24> I can't think of why it would be easier to write software to parse

        <title>foobar</title>
Hi

vs

        <title>foobar</title>

Hi

Number two looks way easier. If you were to write code to parse #1 you would just need extra code to ignore the useless tags.

Anyway, parsing HTML is a nightmare, and HTML documents are usually broken in the wild, and browsers still, amazingly, manage to render almost anything you throw at them. I'm sure they all already handle it.

<comment><USER26> _> I can't think of why it would be easier to write software to parse_

Maybe you haven't considered it closely enough?

If you look at the specifications, there is a complex set of rules governing the conditions under which a tag may be omitted. These naturally complicate the syntax. Consistency is preferable because it typically results in a simpler syntax.

Consider the following language:

        document ::= tags
        tags     ::= tag { tag }
        tag      ::= '(' symbol [ tags ] ')'
        symbol   ::= 'x' | 'y' | 'z' | 'w'

It encodes a document like the following:

        (x (y) (z) (y (w (x))))
        (z (w (z) (y)))

i.e. a list of trees of tags named by symbols.

Now, try to describe the language that's identical except that the closing bracket is optional if it belongs to a 'w' tag that precedes an 'x' tag. Try even to describe a language where they are not optional, but must be omitted. They'll both be more complex than the language I described above. Now imagine that there are about a hundred such exceptions, as in HTML. Chances are that rather than encoding them as syntax for the parser, you'll complicate the lexer to automagically insert the optional tags, fuzzying the boundary between the lexer and parser.

 _> Anyway, parsing HTML is a nightmare, and HTML documents are usually broken in the wild_

Exactly because the syntax is needlessly complicated.

</comment></comment></comment></comment><comment><USER26> It's funny that the company that tries to "accelerate" web pages by directing webmasters to build their websites using a 270k AMP script internally guides its developers to size optimize by omitting the spoonfuls of bytes for optional tags—in a document that in itself doesn't follow these guidelines and is possibly the simplest page that Google has ever produced. What an absurd state of affairs.

</comment><comment><USER27> To be clear, for anyone confused about the "main HTML tag" in the title, this recommendation is essentially to eliminate .

<comment><USER28> I was slightly confused.

I thought it was referring to the  tag.

[https://developer.mozilla.org/en- US/docs/Web/HTML/Element/ma...](https://developer.mozilla.org/en- US/docs/Web/HTML/Element/main)

</comment></comment><comment><USER29> From [https://google.github.io/styleguide/](https://google.github.io/styleguide/):

> This project (google/styleguide) links to the style guidelines we use for > Google code. If you are modifying a project that originated at Google, you > may be pointed to this page to see the style guides that apply to that > project.

These are just Google's style guides for their own code. They're not saying you should do this in your own code.

<comment><USER26> Of course they don't put their money where their mouth is and the document that describes this guideline itself doesn't follow it:

        <!DOCTYPE html>

        <meta charset="utf-8">
        <title>Google HTML/CSS Style Guide</title>
        <link rel="stylesheet" href="javaguide.css">

        <link rel="shortcut icon" href="https://www.google.com/favicon.ico">

        [...]

</comment></comment><comment><USER12> >For file size optimization and scannability purposes, consider omitting optional tags.

Is there much savings omitting body and head tags?

This seems like excessive optimization where having them there sometimes because someone left them in, but omitted the next because someone else removed them seems like it could be confusing, a few brain cycles might be more valuable than the possible savings.

Granted I'm not Google so maybe there are some great savings to be had there, I'd like to know what they are.

</comment><comment><USER30> > This approach may require a grace period to be established as a wider > guideline as it's significantly different from what web developers are > typically taught.

<comment><USER31> Note that the guidelines, including this note, are at least 5 years old now.

</comment></comment><comment><USER32> Interesting... I have never done this except on small test/toy projects at home. I think the main downside today is probably just that the structure of the document is sort of implied, and it may be unclear to new developers why its possible to style html/body when they don't exist. It does work consistently across browsers last I checked, though.

<comment><USER33> That problem already exists with tables, doesn't it?

<comment><USER32> Yes, it certainly does. I wouldn't view it as a huge positive, though; it certainly confused me for a while, especially since synthetic nodes actually exist in the DOM.

</comment></comment></comment><comment><USER31> Note that this is decidedly not new; there are references to this advice from Google at least back to 2014.

</comment><comment><USER34> What about meta tags (viewport, description, robots), Open Graph tags, and inline styles?

Is it correct to put a title element outside of a head element?

"Permitted parents: A  element that contains no other <title> element."

"The <title> element is always used within a page's  block."

[https://developer.mozilla.org/en- US/docs/Web/HTML/Element/ti...](https://developer.mozilla.org/en- US/docs/Web/HTML/Element/title)

Google's style guides aren't very good in general, including Python, which doesn't follow PEP8.

<comment><USER35> Put them before the start of the body and they'll go into the head. In

        <!DOCTYPE html>
        <title>title</title>

content

the title and style elements are both inside the head element.

<comment><USER34> It doesn't seem like a good idea to make HTML more complicated just to save 13 characters per page. It's just one more unclear thing that beginners would have to understand. "These elements go in the " is easier to learn than "Here's a list of elements that have to be put in a specific order, but there is no visual indication that they are different." They will tend get copied/pasted out of tutorials in the wrong order.

</comment></comment></comment><comment><USER36> They did get this correct:

> Use UTF-8 (no BOM).

I was mystified the first time I read about "byte order mark" and I'm still confused. I mean, I know that if you want to waste space on 16-bit characters, it might make some very small amount of sense to have a byte-order mark, but for crying out loud, just standardize that order and live with it. We don't need more parts of text file that are interpretable, and cause both usability problems and security problems.

</comment><comment><USER37> Aren't there lots of scripts that depend on the head, body, and even html tags? The HTML tag in particular is used for a lot of feature detection, and the body is used as the root element for a lot of SPAs.

That's not to say that abolishing those tags isn't a great idea, but it would be harder than it looks for projects with an appreciable number of dependencies. I'm definitely in support of never writing that stupid  tag again.

<comment><USER38> I think those elements still end up in the DOM regardless of whether you type them out explicitly. I might be mid-remembering though.

<comment><USER39> You are correct. Browser fills in missing tags, closes elements, etc. Try opening blank page in any browser and inspect it: you'll find html, head and body tags already placed in DOM.

</comment></comment></comment><comment><USER40> From the article:

      <!DOCTYPE html>

          <title>Spending money, spending bytes</title>

Sic.

      <!DOCTYPE html>
      <title>Saving money, saving bytes</title>

Qed.

</comment><comment><USER41> > In addition, keep the contact area as small as possible by linking as few > style sheets and scripts as possible from documents and templates.

Good to know that Google recommends HTTP/1.1 optimization practices. It seems like everyone is ready to spew dozens/hundreds of tiny files over HTTP/2, though the performance rationale is dubious at best.

</comment><comment><USER35> I don't use body or head tags, but I use the html tag so there's a place to put the lang attribute.

</comment><comment><USER42> I think this sort of things should be done by some html minifier, not by a human. Because the omission rules are not trivial, and removing these tags doesn't really help readability.

<comment><USER43> It helps a tiny bit sometimes. The tag clutter does make it messier. It is not enough to justify the memory burden of the edge cases is all, imho

</comment></comment><comment><USER44> Do all other browsers behave the same way when dealing with the omission of these basic tags?

Because if not, then by following Google's advice here we are creating the new Internet Explorer.

<comment><USER16> It's written in the specification going back to HTML 2.0

</comment></comment><comment><USER45> Would love to see someone ask how you integrate Google Analytics or GTM with this, given they both have instructions relative to  and  tags...

</comment><comment><USER46> I can't stop looking at the missing
 tag in the recommended example.

</comment><comment><USER47> How much of a difference would this really make?

<comment><USER48> It's like not using semicolons in Javascript: it doesn't necessarily need to be about shaving bytes but opting out of optional things that you don't need, especially when the machine adds them back for you.

For example, it keeps your indentation level flat here.

</comment></comment><comment><USER49> Confusing title; I assumed it meant they were recommending avoiding the  tag, which seems weird but OK, it's a new one and we've seen document outline tags get deprecated before. But no — they're recommending avoiding the  and  tags! These are literally the first things you are taught when you learn HTML. This seems like a pretty fundamental change to have slipped in here without further explanation. What's the reasoning?

<comment><USER50> It's explained.

> For file size optimization and scannability purposes

Omitting tags means less transfered bytes means faster websites. If the browser can forgivingly parse HTML like this, why not take advantage of it?

Of course, it doesn't sit well with me either. This'll take some time to digest, but it is interesting to consider.

<comment><USER51> I know it all adds up, but stripping  seems like a miniscule saving compared to the huge amounts of cruft stuffed into most websites.

<comment><USER50> That's true. Presumably this is for extreme cases when you really need that extra bit of performance.

Perhaps HTML could have been better designed with performance in mind. Every tag you open (i.e. <foo>) you're supposed to close (i.e. </foo>) which is quite redundant in terms of bytes when you think about it. It is easy to imagine markup languages that minimize the number of bytes the client has to transfer.

</comment></comment></comment></comment><comment><USER52> TL;DR

HTML has been deprecated in favor of Google Markup Language (GML).

<comment><USER33> This is all standard HTML5.

</comment></comment><comment><USER53> > _For file size optimization and scannability purposes, consider omitting > optional tags_

They're seriously going to say that removing `<html></html>` is a file size optimization? Why does this make it easier to scan?

<comment> yoz-y For visual inspection removing html, head and body also gives you 2 additional indentation levels (of course this depends on your indentation style).

</comment></comment><comment><USER54> Funny that the page recommending that we not use  still uses . "Do as we say. Not as we do."

You can view source, and they post it to GitHub.

[https://github.com/google/styleguide/blob/gh- pages/htmlcssgu...](https://github.com/google/styleguide/blob/gh- pages/htmlcssguide.html)

</comment><comment><USER55> Google has been anti-Web for a long time. So I couldn't care less about their "ideas" other than being informed of what populates the head of these people.

On a more objective note, if you need omit the head and body tags to get more performance, something is very wrong with your page/tech whatever.

Maybe consider removing all those Google Fonts, all that Google tracking scripts, FB too and since you are at it, consider deleted Google Adsense if you can, since those $4.84 per month are costing you and us a whole more than the Billions in revenue Google gets.

Sorry for the saltiness, but I'm really getting fed-up with the arrogance of these childish oligarchies.</comment>