Thursday, February 20, 2020

MacBook Pro 16: the good, the bad, and the ugly

Late December 2019, I replaced my 2015 model MacBook Pro 13 inch laptop with a 2019 model MacBook Pro 16 inch laptop. The MBP16 laptop provided a long awaited fix to the keyboard Apple broke in 2016. I needed a laptop after 5 years, so I thought this was a good time to hop back on board.

After two months of using it, I am only partially happy with my choice. Let me explain the good, the bad, and the ugly parts.


Big screen: In terms of screen real estate the MBP16 is a big upgrade over my old MBP13. This was very similar to going to a big-screen iPhone: initially the big screen iPhone feels outrageously huge at your hand, but after a week, you look at your old small-screen iPhone surprised how you were able to use that stupidly tiny child-toy. After a week of MBP16, trying to use the MBP13 felt exactly that way.

Keyboard: The keyboard is good. I didn't like the keyboard too much in the beginning because I was switching from 2015 MBP13 which had a good keyboard. But after a couple days of using MBP16, I concluded that its keyboard is better than my old MBP13 keyboard. The keyboard feels more sturdy and solid than the MBP13 keyboard.

Speakers: Oh my... The speakers in MBP16 are amazing, they feel like surround sound. Deep bass, and great experience. (If you are in an open office environment, you won't get to enjoy this feature much.)


Touchbar: The touchbar is a gimmick. I don't really have any good use for it. I would be happy to trade the touchbar with physical Function keys any time. I have several assigned Emacs macros for the Function keys. Since the function keys are displayed at the touchbar, there is no haptic feedback when you press on them. As a result I don't realize it when my finger remains on the key more than the normal time, and this causes the macro to execute repeatedly, which is very annoying. Well, you know, at least the escape key is a physical key, so we have that going for us. (By the way, this was one of the big selling point for MBP16! "We give you back the Escape key, worship us again!")

Build quality: I had to get my first MBP16 replaced after the first week due to issues (see the ugly section below for the issues). My replacement laptop arrived, and it had uneven footing. I patched the problem by adding stickers to the foot which was a couple mms shorter than the others. I didn't want to start another return to Apple. As another issue with build quality, last week, I discovered a ding on the aluminum back cover of the screen. I never got a ding in the back cover of my old MBP13 in 5 years, and I have no idea how this one occurred.


External display problem:  Initially, I had only one power adapter for my MBP16, which I kept at home. MBP16 is advertised as having 11 hours battery life, so I thought I could be OK without a power adapter at my office for a while. But I  was flabbergasted when I saw that the battery drained within 3 hours! I thought there was something very wrong with the battery and I started a return/replacement. It took me another week to realize that my problem was the external display; when I used the MBP16 without the external display (which I don't do often), the battery indeed lasted for 11 hours. I was unable to make the connection before that because this never happened with my MBP13: my MBP13 would not have any noticeable increase in battery drainage even when used with the external display.

The reason this happens is because MBP16 has dual graphics: Intel UHD Graphics 630 1536 MB, and AMD Radeon Pro 5300M 4 GB. The more powerful AMD Radeon Pro kicks in when an external display is connected, and drains the battery quickly. It also heats up the laptop; the part above the touchbar gets very hot and the fans start to scream when you are using an external display. Om Malik recently reported that MBP16 has a fan problem. No it has an external display problem. I hope Apple can create a software patch to alleviate the problem.

I carried on with the return/replacement, because the first MBP16 had random crush/restart issue. It would have random restarts almost every night and a couple times while I was using it, with some weird kernel panic message (some involving the GPU/graphics card). The replacement MBP16 indeed solved the crash/restart problem. But it still suffers from the external display battery drainage problem, and I ended up buying another power adapter for my office. I also make sure I go to my lectures with full battery, because I need to hook up to the external display/projector.

Even with the adaptor


The MacBook Pro went from a product I adored to a product I tolerate due to lack of options. I am still partially happy with my choice, because the other laptops are not any better, and I am so used to Macs after 15 years of using them.

The way Moore's law seem to be doing nothing for laptops is amazing! Objectively they should be a couple order of magnitude better than laptops from 20 years ago. But I feel like my first laptop, the Thinkpad laptop I bought in 2001 with its FreeBSD+XFCE setup, has been the laptop that felt the fastest. Yes, the switch to SSDs provided a big boost around 2012, but excepting that I don't feel like I see a 20 years worth improvement over my 2001 Thinkpad.

This laptop should take me for another 5 years (let's cross our fingers). I hope 2025 will finally be the year of Linux desktop. I want to switch to a Linux (or FreeBSD) laptop, and I hope I won't need to allocate 1 week from my schedule to get it setup.

Monday, February 17, 2020

The art of powerful questions: catalyzing insight, innovation, and action

This is a 14 page booklet by David Isaacs Eric E. Vogt, Juanita Brown, available online at

I am fond of questioning. My 2018 resolution was to add MAD questions to each blog post. I also wrote about how to ask better questions a couple of times in this blog.
+ Master your questioning skills
+ How to ask better questions

This booklet is a pretty nice addition to my collection. Below I include my highlights, with my italicized commentary in-lined.

Speaking of questions and collections, you should definitely check this comic. 

Highlights from the book 

The usefulness of the knowledge we acquire and the effectiveness of the actions we take depend on the quality of the questions we ask. Questions open the door to dialogue and discovery. They are an invitation to creativity and breakthrough thinking.
“If I had an hour to solve a problem and my life depended on the solution, I would spend the first 55 minutes determining the proper question to ask, for once I know the proper question, I could solve the problem in less than five minutes.”
--Albert Einstein
Many Nobel laureates describe the “Eureka!” moment of their discovery as when the “right” question finally revealed itself—even if it took them considerable time to come up with the final answers. For example, Einstein’s theory of relativity resulted from a question that he had wondered about when still a teenager: “What would the universe look like if I were riding on the end of a light beam at the speed of light?” Einstein regularly practiced this kind of “thought experiment.”

Another Nobel-prize winner, physicist Arno Penzias, when asked what accounted for his success, replied,“I went for the jugular question.”

Even for ordinary folks, asking a question as simple as, “What does all this mean?” or “What can we do that could help shift this situation?” or “What haven’t we thought of that could make a difference?” can have a startling impact on creating new knowledge and insight.

Why Don’t We Ask Better Questions?

If asking good questions is so critical, why don’t most of us spend more of our time and energy on discovering and framing them? One reason may be that much of Western culture, and North American society in particular, focuses on having the “right answer” rather than discovering the “right question.” Our educational system focuses more on memorization and rote answers than on the art of seeking new possibilities.

## It is not better in other cultures, especially Middle East and Eastern cultures are not any better. 

Between our deep attachment to the answer--any answer-- and our anxiety about not knowing, we have inadvertently thwarted our collective capacity for deep creativity and fresh perspectives.

## I think another big reason is that many people are offended by questions. In particular, people in power and insecure people take questions as doubting and undermining of their authority. 

What Makes a Question Powerful?

“Questions can be like a lever you use to pry open the stuck lid on a paint can. If we have a short lever, we can only just crack open the lid on the can. But if we have a longer lever, or a more dynamic question, we can open that can up much wider and really stir things up. If the right question is applied, and it digs deep enough, then we can stir up all the creative solutions.”
“A paradigm shift occurs when a question is asked inside the current paradigm that can only be answered from outside it.”
Marilee Goldberg, The Art Of The Question
The question has to catch people where they are, to meet them where there is the most energy and relevance for them, and then use that energy to go deeper. Action will flow naturally from that energy.

The Architecture of Powerful Questions

There are three dimensions to powerful questions: construction, scope, and assumptions. Each contributes to the quality of learning and knowledge creation that emerges as we engage with others in a generative inquiry.

## There is a sweet point in each dimension. The question should not be too ambitious that it prevents any solution attempts, and not too weak that the solution is not useful. The question should just on the realm of being answered. Questioning is an act of changing the frame, adjusting perspective, shifting the paradigm. The hard part of doing research is to figure out the right questions to ask!

To formulate powerful questions, it’s important to become aware of assumptions and use them appropriately. So, contrast the question, “What did we do wrong and who is responsible?” with “What can we learn from what’s happened and what possibilities do we now see?” The first question assumes error and blame; it is a safe bet that whoever is responding will feel defensive. The second question encourages reflection and is much more likely than the first query to stimulate learning and collaboration among those involved.

In advance of an important meeting or conversation, spend a few minutes with a colleague and write down several questions that are relevant to the topic. Rate them in terms of their power.

## We use questions to prime our thinking in our paper reading group. 
“Questioning breaks open the stagnant, hardened shells of the present, opening up options to be explored.” Fran Peavey
## Here is one trick I use. I take it as an axiom that "There is a better question we haven't asked yet on this topic". Then I ask: What is the best question we can ask here?

Thursday, February 13, 2020

Book review. Tiny Habits (2020)

I had mentioned about the Tiny Habits technique by BJ Fogg back in 2014. And now Dr. Fogg wrote an entire book on Tiny Habits. He also provides resources for the Tiny Habits technique freely at

Here you can read more about Dr. Fogg and his career on captology, the study of computers as persuasive technologies, and some controversy about his work on captology. Interesting stuff.

Coming back to the book, to me the book felt longer than needed. Some people may still find this long-form immersive experience useful, but I mostly skimmed through the slow text to get to the visuals and take-aways. Below are some of my highlights from Kindle, and some important visuals from the book.

This is a very useful book. As I wrote earlier, "Instilling useful "habits" is a great trick to conserve energy. When you make something a habit, you don't need to waste your energy for remembering to do it and more importantly for finding the willpower to do it. Habits make inertia work for you. The key to instilling habits is to start with baby steps." This book gives you the toolkit to instill useful new habits and to uninstall bad habits. No doubt, important primitives for upgrading your personal operating system.

Quotations from the Tiny Habits book

Building habits and creating positive change can be easy—if you have the right approach.

To design successful habits and change your behaviors, you should do three things.
+ Stop judging yourself.
+ Take your aspirations and break them down into tiny behaviors.
+ Embrace mistakes as discoveries and use them to move forward.

Self-criticism is its own kind of habit. For some people, blaming yourself is just where your brain goes—it's like a sled in the snow, slipping into a well-worn path down the hill.

Once you remove any hint of judgment, your behavior becomes a science experiment. A sense of exploration and discovery is a prerequisite to success, not just an added bonus.

Even though I was a behavior scientist, I had to learn how to create habits in my own life.

There are only three things we can do that will create lasting change:
+ Have an epiphany,
+ change our environment, or
+ change our habits in tiny ways.
Tiny Habits gives us a new way to tap the power of environment and baby steps.

Over the last twenty years, I’ve found that the only consistent, sustainable way to grow big is to start small.

With the Tiny Habits method, you focus on small actions that you can do in less than thirty seconds. You will quickly wire in new habits, and then they will grow naturally. Starting tiny means you can begin creating a big change without worrying about the time involved.

When something is tiny, it’s easy to do—which means you don’t need to rely on the unreliable nature of motivation.

Tiny can also be undercover. You can start to change without making a big scene. No one will sabotage you. This reduces the pressure on you.

One tiny action, one small bite, might feel insignificant at first, but it allows you to gain the momentum you need to ramp up to bigger challenges and faster progress. The next thing you know, you’ve eaten the whole whale.

With the Tiny Habits method, you celebrate successes no matter how small they are. This is how we take advantage of our neurochemistry and quickly turn deliberate actions into automatic habits. Feeling successful helps us wire in new habits, and it motivates us to do more.

*I change best by feeling good, not by feeling bad.*

In my research, I’ve found that adults have many ways to tell themselves, “I did a bad job,” and very few ways of saying, “I did a good job.” We rarely recognize our successes and feel good about what we’ve done.

Think of the Maui Habit as a simple practice you do each morning in about three seconds.
Every morning, she woke up, put her feet on the floor, and said seven words out loud: “It’s going to be a great day.”
*Emotions create habits. Not repetition. Not frequency. Not fairy dust. Emotions.*

Saturday, February 8, 2020

Canopus: A scalable and massively parallel consensus protocol

This paper is by Sajjad Rizvi, Bernard Wong, and Srinivasan Keshav, and appeared in CoNext17.

The goal in Canopus is to achieve high throughput and scalability with respect to the number of participants. It achieves high throughput mainly by batching, and achieves scalability by parallelizing communication along a virtual overlay leaf only tree (LOT).

Canopus trades off latency for throughput. It also trades off fault-tolerance for throughput.

The protocol

Canopus divides the nodes into a  number of super-leaves. In the figure there are 9 super-leaves, each super-leaf with 3 physical nodes (pnodes). A LOT is overlayed on these 27 pnodes so that the pnode N emulates all of its ancestor vnodes 1.1.1, 1.1, and 1. The root node 1 is emulated by all of the pnodes in the tree.

Canopus divides execution into a sequence of consensus cycles. In the first cycle, each node within the super-leaf exchanges the list of proposed commands with other super-leaf peers. Every node then orders these commands in same deterministic order, coming to a decentralized consensus (in a manner very similar to this synchronous consensus algorithm) at this super-leaf. This creates a virtual node that combines the information of the entire super-leaf. In consecutive cycles, the virtual nodes exchange their commands with each other. At the top level, for the emulation of the root of the LOT tree, every physical node has all commands in the same order and consensus has been reached.

Instead of directly broadcasting requests to every node in the group, Canopus uses the LOT overlay for message dissemination, and this helps reduce network traffic across oversubscribed links. It looks bad to have multiple cycles for consensus across wide area network (WAN) deployments. Moreover, even if some super-leaves have no requests to get consensus currently, they still need to participate at all the cycles of the consensus. There is some consolation that the lower-level cycles are done with nearby datacenters first, and only at the top level, nodes talk to nodes across the entire WAN.


Canopus assumes that an entire rack of servers (where each super-leaf resides) never fails, and that the network is never partitioned. If these happen, the entire system loses progress. For example, two node failures in the same super-leaf makes the entire twenty-seven nodes in the system become unavailable.

The reason distributed consensus is hard is because the parties involved don't have access to the same knowledge (the same point of view) of the system state. To solve that problem in the base level, Canopus assumes that a reliable broadcast functionality is available within a super-leaf (thanks to ToR switches). This reliable broadcast ensures that all the live nodes in a super-leaf receive the same set of messages. (In 2015, I had suggested a more general way of implementing all-or-nothing broadcasts without assuming the reliable broadcast functionality assumed here.)

This atomic reliable broadcast assumption takes care of the information asymmetry problem where a physical node A in a super-leaf crashes right after it sends a message to node B but before it could send it to node C. However, I think it is still possible to run into that problem due to slight misalignment in timeouts of the nodes B and C. Let's say A's broadcast delayed significantly ---maybe A was suffering from a long garbage collection stall. Node B times out and move to the next cycle declaring A crashed. Node C receives A's message just before its timeout and adds A's proposals to its consensus cycle. Even with closely synchronized timeouts at B and C, and with reliable broadcast by A, this problem is still bound to occur.

The higher level cycles exploit that the super-leaf level is reliable, so consensus is just implemented by reaching out to one node from each super-leaf to fetch their state. The node fetching the states from other super-leaves then share them with the other physical nodes in this super-leaf. The paper does not discuss this but if the node fetching state dies, another node from the super-leaf should take over to complete the task. While the paper claims that the design of Canopus is simple, I really don't like all these cornercases that creep up.

Canopus is said to operate in loosely-synchronized cycles but the synchronization protocol is not explained well in the paper. So I am unsure about how well they could work in practice. The paper also mentions pipelining of consensus rounds and it is unclear whether there could be other synchronization problems in maintaining these pipelining. The evaluation section does not provide any experiments where faults are present. The code is not available, so it is unclear how much fault-tolerance is implemented.

Local reads

To provide linearizability to read request, Canopus just delays answering the read request for the next consensus round to make sure that all concurrently received update requests are ordered through the consensus process. This allows Canopus to always read from the local replica. While the read delaying achieves linearizability, but it also kills the SLAs and is not very practical/useful.

Thursday, February 6, 2020

Traveling across the US

This post is me reminiscing of our travel across the US in Summer of 2018. It feels good to remember about the summer in these cold winter days.

In order to move to Seattle for a sabbatical at Microsoft, we drove across the US and made this in to a family trip. This was not easy undertaking. Our neighbor called us "brave" when we announced our plan ---her tone suggested that she meant it to mean "crazy". But we did it, and the kids loved it and they wanted to do it again.

We traveled from Buffalo to Seattle, not quite the entire coast to coast travel. We traveled through I90 and it was easy and comfortable drive. It comes to more than 2800 miles, and means 40 hours of driving. We had planned to drive 10 hours a day, take a break on the third day to see three national parks on I90, and finish the trip in 5 days. We had three kids, 11yo boy, 7yo girl, and 3 yo girl. We drove with a Toyota Camry 2010. My old faithful already had 128K miles before the drive.

We had packed the trunk with 5 very heavy luggages, and smaller bags where we can fit in between them. Space was used very efficiently, because I had planned this with empty luggages first. The car got very heavy, but it didn't complain.

First day

We rented 3 redbox movies for the kids the first day. And we had some Netflix movies downloaded on the iPad. We didn't know how well the kids would take a 10 hour drive. They did surprisingly well and didn't complain. When we discussed about our options for the travel, they wanted to do the car trip, so I guess part of it is they wanted to stand by their choice.

We passed through NY, Pennsilvania (very briefly), Ohio, Indiana, Illinois, and entered Wisconsin. We started at around 10am. We ran into traffic at passing Chicago downtown, but the kids turned that into fun by waving at other cars stuck in the traffic.

After the 10 hour drive and one hour lunch break, we arrived at Milwaukee WI at 8pm instead of 9pm, because of the 1 hour time shift between east coast EST and Chicago time. We met with our friends, they had kids the same age as ours. We had a picnic dinner at a nice playground park, went to a cafe at night, and had a great time. Since we finished the day with fun, it felt like the entire day was fun.

Second day

We planned to drive 10 hours and get as close to Badlands national park. We didn't rush it, the kids got their sleep well at the hotel before we started driving again. It was an easy drive. We watched the lush green full of trees landscape of the first day to change into the prairie. This second day was very dry, very flat driving. Road side towns were scarce. The urban-rural divide is real.

We didn't buy hotels in advance. My wife used Hotwire on the phone to arrange our hotel on the drive. She took her time reading about hotels, crosschecking reviews with tripadvisor etc. She bought us good hotels. We preferred hotels with swimming pools, because kids enjoy it, and those that serve breakfast because that gave us a good way start to the day.

Well, good hotels except this second day. We decided to stop at Murdo, South Dakota. This is just one hour before the Badlands park. Murdo was a very very small town. The reviews for the hotels and restaurants misled my wife: maybe the town people added those reviews, because it looks like the only business in town was the 4-5 small hotels they had there. A better choice for stopping would be the "Wall Drug" town which is very close. Wall, South Dakota, is a tourist attraction town and has more hotel selections.

Third day

On the third day, we had a lot of fun visiting the Badlands park. The rock formations there is similar to those in the Cappadocia region in Turkey. Badlands had some Fairy Chimney's formation as in Cappadocia, but not as developed and pronounced.

After Bad Lands, we drove to the Mount Rushmore  national memorial at South Dakota. It was awesome, the kids liked the park a lot. We took a lot of pictures.

The third day provided for great scenic driving. We got into mountains territory starting with Mount Rushmore. We saw mountain goats along the road at Mount Rushmore. I had two audiobooks downloaded for this trip, alongside with many podcasts. But I could only finish one audiobook and get to the half of the second one. I was just driving and watching the landscape for the 3rd, 4th, and 5th days, without any need for audio entertainment.

Fourth day

We wanted to have a quick visit at the Yellowstone park. Instead of the East entrance, I chose the North East entrance, because I read that that was the most scenic entrance. It turned out that the North East entrance was very very steep and scary driving. No wonder that entrance was only open in summer. My wife is scared of heights. So we cut our climbing this huge scary mountain at the halfway. Instead we spent time at the Rich Lodge at the creek and hiked there.

We drove some more and stopped at Butte for the hotel, mostly because the kids found the name interesting. At the end of fourth day, my 3yo daughter got tired of driving and staying at different hotels, and insisted we stay at this hotel from now on.

Fifth day

This was a very comfortable drive to Seattle. It was very scenic as we drove through the mountains. At a rest stop, we played with ground squirrels. They were so cute.

Conclusions and future work 

After the trip, the US map doesn't look so foreign to us. We have been to those states, those are not no-where-lands for us. I knew I liked driving, but it turns out driving longer distances is even more fun (when taken in moderation). The kids liked seeing new places, eating at restaurants, and staying at hotels. It was good time spent together. We should do another long trip like this soon, they grow up so fast, and we don't have many years left enjoying time together.

Tuesday, February 4, 2020

Book Review. Made to stick: why some ideas survive and others die

This book from 2007 was an easy and fun book to read. The book gives tactics for making ideas/concept stick in peoples minds. This is not just useful for marketing purposes, but also for teaching, presenting, and research exposition.

The book gives the following formula for stickiness: tell Simple, Unexpected, Concrete, Credible, and Emotional Stories.

SUCCESS! Acronyms help for stickiness.

Notice how close the advice in the "Talk like TED" book mirrors the advice here.

For me this is what stuck from the book. (Note that this follows the SUCCESS formula.)
Nora Ephron is a screenwriter whose scripts for Silkwood, When Harry Met Sally, and Sleepless in Seattle have all been nominated for Academy Awards. Ephron started her career as a journalist for the New York Post and Esquire. She became a journalist because of her high school journalism teacher. 
Ephron still remembers the first day of her journalism class. Although the students had no journalism experience, they walked into their first class with a sense of what a journalist does: A journalist gets the facts and reports them. To get the facts, you track down the five Ws--- who, what, where, when, and why. 
As students sat in front of their manual typewriters, Ephron's teacher announced the first assignment. They would write the lead of a newspaper story. The teacher reeled off the facts: "Kenneth L. Peters, the principal of Beverly Hills High School, announced today that the entire high school faculty will travel to Sacramento next Thursday for a colloquium in new teaching methods. Among the speakers will be anthropologist Margaret Mead, college president Dr. Robert Maynard Hutchins, and California governor Edmund 'Pat' Brown." 
The budding journalists pecked away at the first lead of their careers. Most of them reordered the facts and condensed them into a single sentence like:
"Governor Pat Brown, Margaret Mead, and Robert Maynard Hutchins will address the Beverly Hills High School faculty Thursday in Sacramento"... 
The teacher collected the leads, scanned them and set them down. Then he laid them aside and paused for a moment. Finally, he said "The lead to the story is ‘There will be no school next Thursday." 
"It was a breathtaking moment," Ephron recalls. "In that instant I realized that journalism was not just about regurgitating the facts but about figuring out the point. It wasn't enough to know the who, what, when, and where; you had to understand what it meant. And why it mattered." For the rest of the year, she says, every assignment had a secret-- a hidden point that the students had to figure out in order to produce a good story.

This is very much the same for writing research papers. In case you missed, this is very relevant to the topic: How to write papers so they get accepted!

Here are some other related posts on presenting.

Sunday, February 2, 2020

How to write papers so they get accepted

This is a very bold and *valuable* talk: The craft of writing effectively. It introduces a no-bullshit approach to academic publishing that will change/upgrade your perspective to writing. This talk may offend you, you may want to reject these ideas initially, but you will eventually realize that this is the reality we live in and you must come to terms with it.
  1. Since you are a researcher, and deal with complicated topics, you need to use your writing for thinking. Writing and thinking feed off of each other, and you need to write to help your thinking. But ultimately writing is not about you or your thinking, it is about the *reader*. After your initial drafts are done, you should reframe your writing to be reader-centric. The reader doesn't care about your work, he cares about what useful things he can learn from it. (In marketing, they have a good saying about this: The customer doesn't want a power drill, he wants a hole in the wall to hang a photo.)
  2. Provide value to your readers. The value of a paper does not come from being new or original. A work can be new or original but still not provide any value, if the readers didn't care about the problem. A sure way to provide value is to show that your work changes the status quo: the community was wrong about a certain thing, and your paper gets things right. (There are polite ways to say "you were all wrong" and if "wrong" is a strong word, you may see this as the "surprise" component in Winston's star.
  3. The function of academic writing is NOT to communicate your ideas, but to change the ideas of an existing community. The readers should be able to gain a new understanding of the world through the lens of your writing. Thus, your writing should argue why it is valuable. Its goal should be to persuade not just explain. 
  4. Know your readers. You can't please different type of readers at once. Even under the same field, different communities have widely different taste. This is part of the reason why a PhD takes 5+ years: you learn about your community and the "code words" that are precious to your community. Identify the people that have power, and give them what they want. (The speaker says tongue-in-cheek that this is why University of Chicago writing program is deemed fascist by some.) 
  5. The writing should be structured as problem and solution. The problem should be motivated by showing that there is an instability (the community is wrong on this), and that by resolving this instability we avoid certain costs and get certain benefits. The literature review should be used for enriching the problem. 

You may get offended with the brash and contentious opinions in item 4, but the diagnosis is not wrong. The quicker you upgrade your perspective on writing to match this approach, the easier it will get for your papers to be accepted.

As for item 4, I think this is the unromantic reality: In academic publishing, you should speak truth to the power, but only those truths that the power is interested in hearing about, and only in a style they endorse. 

I have seen people artificially make their papers more formal and abstruse because that is how you impress the PC of some theory conferences. This is horrible as it makes the papers less accessible, but these are the types of papers that get accepted in those communities. The systems community is not blameless either. Valuing algorithmic contributions more than extensive evaluation and application will likely kill your submission. Some communities expect and enforce a "style" so strong that, even with double-blind reviewing it is not possible to trick reviewers to think you are with the "in-crowd". In elitist conferences, you need to signal your value/style even through your references. If a work appeared in a lesser conference, there is no need to bring it up in related work discussion.

Not all elements of "style" and sense of "community" is bad. Style serves a useful function. Formalism is important for precision. Formal proofs are important to avoid sloppiness and hand-waving. Evaluations keep authors honest. But style can also be used enforced in excessiveness, and that is harmful.

This sense of community and style can be so strong that we have a saying for it in academia. The same course taught by two different instructors could be more different than two different courses taught by the same instructor.

Some of my selected posts on writing:

Two-phase commit and beyond

In this post, we model and explore the two-phase commit protocol using TLA+. The two-phase commit protocol is practical and is used in man...