It’s always difficult because technical people always seem to know so much, but it’s interesting, again, to look at what is actually being done in the world under the name of OOP. I’ve been shown some very, very strange-looking pieces of code over the years by various people, including people in universities, that they have said is OOP code, and written in an OOP language—and actually, I made up the term object-oriented, and I can tell you I did not have C++ in mind.

[…]

Those popcorn things are protein molecules that have about five thousand atoms in them. As you can see on the slide, when you get rid of the small molecules, like water and calcium ions, and potassium ions, and so forth, which constitute about 70 percent of the mass of this thing, the 30 percent that remains has about a 120 million components that interact with each other in an informational way. Each one of these components carries quite a bit of information. The simple-minded way of thinking of these things is that it works kind of like OOPS 5. There is a pattern matcher, and then there are things that happen if patterns are matched successfully.

You are never dedicated to something you have complete confidence in. (No one is fanatically shouting that the sun is going to rise tomorrow. They know it’s going to rise tomorrow.) When people are fanatically dedicated to political or religious faiths or any other kinds of dogmas or goals, it’s always because these dogmas or goals are in doubt.

Nikita about today’s programmers who don’t care about performance or user experience.

Windows 95 was 30Mb. Today we have web pages heavier than that! Windows 10 is 4Gb, which is 133 times as big. But is it 133 times as superior? I mean, functionally they are basically the same. Yes, we have Cortana, but I doubt it takes 3970 Mb. But whatever Windows 10 is, is Android really 150% of that?

[….]

iPhone 4s was released with iOS 5, but can barely run iOS 9. And it’s not because iOS 9 is that much superior—it’s basically the same. But their new hardware is faster, so they made software slower. Don’t worry—you got exciting new capabilities like…running the same apps with the same speed! I dunno.

[….]

It just seems that nobody is interested in building quality, fast, efficient, lasting, foundational stuff anymore. Even when efficient solutions have been known for ages, we still struggle with the same problems: package management, build systems, compilers, language design, IDEs.

Personally, after the emergence of cloud, it has become a common theme to just throw another instance to the existing pool rather than investigate why tomcat server’s throughput is just 10/s . I am not joking. The application accepts input, performs some validations and pushes the change to RDMS and its throughtput was limited to serving only 10 requests. Apache webserver is not restarting, no problem, since we have a snapshot of the image, let’s bring it up and see if the issue is persisting still.

In an enterprise I worked, where machines were shared between products, we used to see all kinds of questions like, wouldn’t HashSet serve here better than the ArrayList you have used? Why are you launching a separate thread, is the request completion time so high that you need to launch another thread to process the functionality so and so? This kind of incremental improvement has been lost in today’s cloud environment and we are stuck with Medium loading a 2MB footer banner for every request.

The cat is out of the bag and unlike these guys, I don’t believe this situation can be improved by individuals.

If there’s a common thread to these factors in reducing risk, it is to shift responsibility and power from the individual to the corporate entity. If you’re a regulated, systemically-significant enterprise, then the last thing you or the public wants is for one person to wield too much power, either through knowledge of a system, or ability to alter that system in their own interests.

The corollary of this is that it is very hard for one person to make change by themselves. And, as we all know, if a task is given to multiple people to achieve together, then things get complicated and change slows up pretty fast as everyone must keep each other informed as to what everyone else is doing.

Once this principle of corporate responsibility is understood, then many other processes start to make sense. An example of one of these is sourcing (aka procurement: the process of buying software or other IT services).

I have always admired slow moving, don’t break things in production environment of Enterprises but the ability to keep one-self motivated and not get discouraged because your changes were rejected is something that I failed miserably in. His experience atleast allows him to change things but not everyone is lucky in that way. When I joined an enterprise, I was forced on a mandated 1 week leave for a year. The idea, as was explained to me is that the company should not become dependent on a single person so that if he leaves, the product grinds to a halt. Minimizing risk is what Enterprises go about.

Reading the entire post will give you an idea of how new technology stack are procured, why things are the way they are and so on.

Greg Knauss gives a fun alternative comparison of a neurotic person to others who have the look of do-not-care.

TCP people — people with the TCP personality type — consume everything in their feeds. Every tweet, every e-mail, every photo. They’re completists, and neurotic completists at that.

[….]

UDP people think TCP people are bonkers. They’ll dip in and out of whatever data happens to be sluicing towards them at any particular moment, without giving the slightest thought to what might have come before and what might come after. If it’s important, they think, it will probably come around again. Missing something, by definition, makes it unimportant.

This post brought a lot of memories of my early professional career. I was a TCP person then with thousands of bookmarks, unread books at home, 100+ subscriptions in my feed reader. All of it lead to me being unhappy with not doing enough to reduce the count of these. I did not transition into a UDP person as you might expect but rather I set myself a goal of owning/using only that I absolutely needed and curated the hell out of my collection. I threw/gave away books that I am not going to read multiple times, deleted bookmarks that looked interesting and fun but helps me in no way either professionally or personally. Curated my feed subscriptions and removed those that I don’t need eventhough they were great.

I suppose I am still a TCP person but I have gotten better at managing things and keeping myself happy. I will always be a TCP person and that is something I have made peace with. Remember “Constraint is Liberation” and “Unlimited Freedom is a disaster for humanity”.

I believe in addition to postulates, a wealth of experience lets you steer the discussion and win the argument using logical reasoning. My father does this all the time. No matter where we start a topic, in the end, the story is the same. I am forced to agree with him because the arguments are rational and said in a logical way.

This license applies to the Visual Studio Code product. The source code is available under the MIT license agreement.

First sentence of the license. The difference between the license of the source code and the « product », meaning the binary you’re going to use, is clearly stated.

Data Collection. The software may collect information about you and your use of the software, and send that to Microsoft.

Yeah right, no kidding. Big Surprise from Microsoft.

The license is as restrictive as they come.

Fortunately, there are work underway where the source code is built without Microsoft branding over at https://github.com/VSCodium/vscodium. If you are on Mac, running brew cask install vscodium is all you need to get the free software.