Tech Enthusiasts Weekly (Issue 210): Why Software Gets Complicated

Original link: http://www.ruanyifeng.com/blog/2022/06/weekly-issue-210.html

Here is a record of weekly tech content worth sharing, published on Friday.

This magazine is open source (GitHub: ruanyf/weekly ), welcome to submit issues, contributions or recommend scientific and technological content.

Weekly discussion forum post “Who’s Hiring? “ , provides a lot of programmer employment information, welcome to visit or post job/internship positions.

cover picture

The world’s first and most detailed 1:2.5 million full-moon geological map of the moon drawn by Chinese scientists has been released. Statistics show that the moon contains 12,341 impact craters, 17 types of rocks, and 14 types of geological structures. ( via )

Topic of the Week: Why Software Gets Complex

I’ve always believed that the biggest focus of software development is avoiding complexity. The simpler the software design, the better, and too many programmers take pride in building complex solutions.

However, an article this week made me reflect on what I thought was unrealistic: software is bound to get more complex.

(one)

The author of this article is Nolan Lawson, a front-end engineer at Saleforce, and the title is “Crash of Complex Software” (below).

As you probably know, Salesforce is a world-class software company that specializes in enterprise software and is known for its complex products.

So, this thing is ironic. A company that produces complex software whose famous programmers publicly say that complex software will break.

Of course, he doesn’t mention Salesforce by name in the article, but it sounds like he’s writing about his own experience. Below is an excerpt of his original text and accompanying pictures for everyone to enjoy.

“Anyone who has worked long enough in the tech industry, especially in big companies, has seen the following scenario.

There was a legacy system that was so big and complex that no one fully understood how it worked.

Architects were asked to “fix” the system, and they took a big whiteboard and broke the big system down into boxes and arrows. For the problems they encountered, their solution was to… add more boxes and arrows. None can be removed from the system, everyone just adds their part.

Is this paragraph written very vividly, like a description of a daily scene?

According to his article, I sorted it out, and the situation inside Saleforce is probably like this.

  1. Client needs are very complex. To meet these demands, large software inevitably becomes complex.
  2. The real concern of software company managers is not the complexity of the system, but the profit. As long as the software makes money, the executives don’t care that the software gets complicated.
  3. Software complexity falls to a handful of architects and senior programmers. Everyone adds their own solutions (boxes and arrows), making the software more and more complex, and then inevitably, they leave the company after a while.
  4. Complex systems eventually become difficult to understand and maintain, and the only solution is to abandon the old system and write a new system from scratch.

So, Nora Lawson’s conclusion is pessimistic: How do you address software complexity? Can’t solve it. In the end, you leave, and the company knocks down the software and starts over.

This is the real thought of a senior programmer in a big factory. The situation in China is actually similar. The above description is completely applicable to the complex system inside BAT.

(two)

Nora Lawson also made a point. It is generally believed that complex systems tend to collapse during economic booms because there are too many businesses to support, but he believes that this is not the case. System collapses often occur during economic contractions.

In times of economic prosperity, software companies hire a large number of new employees and invest more financial and human resources to support complex systems. When the economy contracts, companies start to cut back on investment, freeze hiring, or lay off staff, and complex systems can break down and become difficult to maintain.

Now is the period of economic contraction, so next, will it be the period of high incidence of software failures, and we will see the collapse of many complex systems?

Front-end high-frequency interview questions (2022 version)

In the past two years, objectively speaking, the popularity of front-end development has declined. The main reason is that the front-end technology has gradually stabilized, and the popularity of smartphones has peaked.

However, the front end remains the most active branch of the IT industry. In the annual GitHub survey , JavaScript has held the No. 1 spot for years, and TypeScript has quickly risen to No. 4 this year, behind only Python and Java.

One consequence of technical stability is that there are fewer new frameworks and new tools, and people pay more attention to the improvement and function addition of existing frameworks/tools.

The front-end team of the big factory has also turned to refined exploration, focusing on how to do it more finely and better, and vertical technical fields (such as visualization, engineering, etc.) have received more attention. Enterprises’ requirements for employing people are also getting higher and higher. From being able to start work, you can ask for people, to requiring you to go deep into a certain field.

In general, The current front-end development is in the ellipse on the right side of the figure below, which is more difficult than the previous stage .

If you already have a certain foundation in front-end development and plan to apply for a front-end position in the near future, here is a useful resource to help you prepare for interviews.

This information is “High-Frequency Interview Questions of Front-end Manufacturers (2022 Edition)” , which has a total of 174 pages and collects the latest interview questions.

All questions are classified and arranged from shallow to deep. Each question is accompanied by a detailed explanation of the answer, which is convenient for everyone to sort out their knowledge and prepare for the interview.

In addition, “Three Senior Programmers’ Interview and Job-hopping Experience Sharing” will be given as an additional gift to share the preparation of job-hopping, resume preparation, and interview response outside of technology.

Scan the QR code above on WeChat to receive this front-end interview material for free . After adding customer service, please wait patiently, the background is manually passed.

As a final reminder, This information is not suitable for students who are just learning front-end, but more suitable for practitioners with front-end development foundation and programming experience.

Technology trends

1. Virtual kiss

Carnegie Mellon University has developed a new technology that allows the wearer of a VR headset to experience a virtual kiss. Specifically, the helmet emits ultrasonic waves at the lips, which contain tiny particles that make lips, teeth and even the tongue feel tactile.

As you can see in the picture above, a row of ultrasonic generators is installed under the VR helmet, aiming at the position of the red dot to emit. Scientists joke that they can use it to develop a “kissing machine”.

In addition to producing the tactile sensation of lips, this technology can also allow users to feel the virtual feeling of wind blowing across their face, spider webs touching their faces, and even food and drinks entering their mouths in games.

The image above shows a huge virtual spider pouring a large amount of poison onto the user, and the user can feel the poison splashing on the lips.

2. LED basketball court

On May 30, FIBA ​​officially announced that LED basketball courts are allowed to be used in competitions such as the Basketball World Cup.

Traditional basketball courts have wooden floors. The wood is elastic and can absorb shocks and protect players. Now, the latest LED glass has also been able to provide sufficient flexibility.

The LED court has many advantages, saves the trouble of marking, and can quickly switch to basketball court, handball court, volleyball court, badminton court.

Moreover, it can emit light by itself, and can be used as a display screen to display game data in real time, and cooperate with stadium activities to create an atmosphere. In the dark, the boundaries remain visible.

3. Bark font

Five years ago, a Danish artist carved the typeface into a tree to see what the typeface would look like as the tree grew, that is, how nature would present the typeface.

Here’s how the letters a and o have changed over five years.

These fonts are applied to the print, and it looks like the following.

He found that the letters grew mainly horizontally, becoming wider and thicker, with little change in height. This shows that after the tree is formed, the height of the trunk basically no longer changes, and it starts to grow thicker.

4. Ban incandescent light bulbs

The Biden administration has announced that the U.S. will ban the sale of light bulbs that produce less than 45 lumens per watt. This effectively bans incandescent light bulbs.

This decision was made to improve the energy efficiency of the lighting. Generally speaking, incandescent bulbs emit about 10 lumens per watt, and LED bulbs can reach more than 100 lumens per watt.

article

1. Why did I sign and break up with a Chinese game publisher (Chinese)

This is an article by a Japanese indie game developer, translated into Chinese. The author explained the current distribution system and status quo of independent games with personal experience.

2. Intel 4 Process Announcement (Chinese)

Last week, Intel officially announced the Intel 4 process. This is the first time Intel has used EUV technology for CPU production, realizing a 7-nanometer process and starting to catch up with TSMC. This article describes some aspects of this process.

3. How do I build a home NAS (Chinese)

This article records in detail the author’s process of purchasing hardware, installing software, and building a 22TB home NAS (network storage) server, which can be used as a reference for setting up your own NAS. Here is the Chinese translation and the English original . (Contributed by @yangchuansheng )

4. The simplest task management system (English)

This article introduces the simplest task management system invented by the author himself, which is to write the daily tasks on a card, put it on a shelf in front of you, and cross out one after completing one.

5. Build a free image CDN with Cloudflare + Backblaze B2 (English)

This article is a detailed tutorial on how to host images on Backblaze B2 Object Storage and then connect to Cloudflare’s CDN service. Both have free quotas. For small websites, the storage and bandwidth problems of images can be solved without spending money.

6. How to use iOS shortcuts to prevent addiction? (English)

Authors find themselves on social media, wasting a lot of time. He came up with a way to create an iOS shortcut (shortcuts), as long as you open the social app, it will pop up the prompt “please concentrate on your work”.

7.My Free Photography Software Workflow (English)

The author is a professional photographer who processes digital photos entirely using free software. This article presents his solution.

8.I host dozens of websites on a single server (English)

The author details how he hosts dozens of websites on a single server, mostly API calls. The biggest challenge here is not yet getting the services up and running, but how to maintain and manage them at the same time.

9. How to estimate funds flowing into cryptocurrencies (English)

How much money has flowed into the cryptocurrency market? This is obviously impossible to calculate accurately, and the author has thought of a way to estimate it indirectly. That is to look at the monthly increase in the issuance of stablecoins. The above chart is the growth percentage of stablecoins each month for the past two years.

tool

1. CloudMP3.cc

A cloud service that can convert the audio on SoundCloud into mp3 for download.

2. ToolJet

A low-code framework for developing internal tools. After being deployed to the server, it has a web interface, and by dragging and dropping, you can connect to various data sources and generate various applications or management panels.

3. i WeChat reading

Chrome browser plug-in, used with the web version of WeChat reading, supports functions such as underlining and excerpting sentences, underlining to generate shared pictures, and one-click exporting notes. (Contributed by @secreter )

4. Sogou C++ Workflow

Sogou’s open source C++ server engine supports almost all of Sogou’s back-end C++ online services and provides a large number of asynchronous service functions. (Contributed by @Barenboim )

5. FastGit

GitHub is sometimes not easy to open in China. Here is a service that is GitHub’s mirror accelerator. As a reminder, if you want to log in to GitHub, there will be security concerns in using this service, and everyone should weigh it. (Contributed by @dllen )

6. Go-Ldap-Admin

A domestic software, based on the openLDAP management background implemented by Go+Vue, can be used as a bridge between IM (DingTalk, Enterprise WeChat, Feishu) and applications that support ldap authentication. (Contributed by @eryajf )

7. Japa

A testing framework for Node.js, which is simple, fast, and has many functions, and can run test scripts directly without going through the testing framework.

8. @xata.io/screenshot

This web script can generate a screenshot of the current page.

9. GitLens

A VSCode plug-in that greatly enhances Git integration and can perform many Git operations in the editor, especially suitable for multi-person projects.

Deno Framework

Deno is a server runtime environment for the JavaScript language, which is in competition with Node.js.

The development of Deno itself is almost stable, and as long as there is a useful framework in the next step, it can be promoted.

1. Fresh Framework

Last week, a preview of the Deno-based Fresh framework was released.

The framework directly uses TypeScript scripts, known as zero configuration and zero construction. The page is rendered by the server, and the client does not need JS to generate content, and there is no redundant JS script. The pursuit of small and fast is worthy of attention.

2. Aleph.js

Aleph.js is another Deno-based full-stack framework, similar to Next.js, which is currently in early development and can also be followed.

3. Express

By the way, the old Node.js framework Express is about to release version 5.0 recently. This is a big deal because version 4.0 was released eight years ago. This article describes the new features in version 5.0 .

Visualization

1. Global submarine cable

This webpage provides an interactive globe with the locations of submarine cables and backbone computer rooms around the world.

2. Aurora

This web page constructs a polar background that lets you hand-paint dynamic aurora effects.

3. Persepolis

Persepolis, the capital of the ancient Persian Empire in what is now Iran, is in ruins. This page restores this majestic imperial capital, recreating a 3D street view for you to roam.

picture

1. Aral Sea

Kazakhstan once had a huge lake called the Aral Sea, with an area of ​​680 million square kilometers, equivalent to two Hainan Island, and the fourth largest lake in the world.

However, since the 1960s, the former Soviet Union has built a lot of irrigation projects, diverting water from the Aral Sea in large quantities without replenishing it, causing the Aral Sea to dry up rapidly, and is now close to disappearing.

The Aral Sea in 1985.

The Aral Sea in 1997.

The Aral Sea in 2014.

2. Residential Wall

There is a small town in Canada, close to the North Pole, with strong northerly winds all year round.

In order to block the wind, a 50-meter-high and 1.3-kilometer-long wind-blocking wall was built locally. At the same time, this wall is also used for residential, commercial and educational settings, where people can live.

Because of this residential wall, the townspeople have a windless, warm microclimate.

abstract

1. How to increase the sales of toothpaste

In the 1950s, a foreign toothpaste company asked the public for ideas that would dramatically increase sales.

A few days later, someone came in and claimed that he had a way to increase sales by 40% quickly, and it didn’t cost a lot to implement. He asked for $100,000.

The company management hesitated for weeks before finally agreeing to give the money.

After the legal formalities and payment process were completed, the man presented an envelope with a small note with only four English words:

“Make The Hole Bigger”

Translated into Chinese, this sentence is “to make the toothpaste open a little bigger”.

Previously, the opening of the tube-shaped toothpaste was generally 5 mm in diameter. A little calculation shows that when the diameter is increased from 5 mm to 6 mm, assuming the same length of toothpaste extruded, the extrusion volume will increase by 44%.

The original time for customers to use one tube of toothpaste is now 1.4 tubes of toothpaste to meet their needs. Seemingly small changes, but refreshed the company’s sales records and made history.

speech

1,

The scariest moment of a thing is always before you start doing it.

Stephen King

2,

For those without imagination, normalcy is their ideal.

Jung

3.

An important difference between the IT industry and traditional manufacturing is that the IT industry has a serious monopoly.

There are 7 billion smartphones in the world, five times more than cars (1.4 billion). However, smartphone makers are orders of magnitude fewer than car makers. Search engines, social networks, operating systems are all like this, and a few giants have monopolized the entire market.

Hacker News reader

4.

Although electric vehicles are expensive, the driving cost per kilometer is low, so the longer they are used, the more cost-effective they are. This requires automakers to build durable electric vehicles.

Hacker News reader

5.

There are only two kinds of people blogging in 2021, those who are trying to build and monetize an audience, and those who just want to write ideas without any purpose.

Both of these people behave very well. Choose to do what you love, stick with it, and they can all ultimately be of value to others.

“What I Learned From Blogging”

this week in history

2021 (Issue 162): Life is like a Pac-Man game

2020 (Issue 111): Myths about Smart TVs

2019 (Issue 60): An academic autobiography on the origins of mankind

2018 (issue 9): ID cards can be implanted in the human body

subscription

This weekly magazine is published every Friday, and is updated simultaneously on Ruan Yifeng’s web log and WeChat public account.

Search for “Yifeng Ruan’s web log” on WeChat or scan the QR code to subscribe.

(Finish)

document information

  • Copyright statement: Free to reprint – non-commercial – non-derivative – keep attribution ( Creative Commons 3.0 license )
  • Date published: June 17, 2022

This article is reproduced from: http://www.ruanyifeng.com/blog/2022/06/weekly-issue-210.html
This site is for inclusion only, and the copyright belongs to the original author.

Leave a Comment