"I used 72 hours to recreate a ClubHouse"

Author | Bai Huancheng

Exhibit | CSDN (ID: CSDNnews)

2021, the first "battle" of the new social software, Clubhouse is popular overseas.

Behind the rapid popularity of this voice social app, Elon Musk, a tech tycoon and Tesla CEO, personally stood on the platform, and recently created a chat room called "Elon Musk on Good Time" on the Clubhouse (Room ), under the premise that it can accommodate 5000 users, the live broadcast "room" is instantly full.

ClubHouse has therefore become the focus of discussion and analysis by many people. However, many of you may not have played this app yet, because it is hard to find a "registration invitation code". So, 72 hours ago, a developer volunteered to imitate ClubHouse to develop an NESHouse and open source the code.

  • Open source address: https://github.com/bestony/neshouse

  • Experience address: https://neshouse.com/admin.html

Bai Huancheng, the author of NESHouse, is an engineer who plays podcasts and is also the technical leader of the Linux Chinese open source community. We found him and talked to him about the process of re-engraving ClubHouse and how to view such applications from a professional podcast perspective.

Behind the 72-hour development challenge

Q: How did you think of doing a 72-hour development challenge? Have you participated in Hackathon-type activities before?

Bai Huacheng: I myself like to research new products. When ClubHouse has become popular these days, I myself got the invitation code and started using it. In the process of using it, I feel that ClubHouse seems to be like this. The problem that the explosion of the past few days has brought to ClubHouse is that it is always unable to board. Since you can't board it, just make one yourself! In addition, my friends who talk about podcasts and I also want to use this "performance art" to prove that in today's cloud services are very common, operational capabilities may be more important than technical capabilities, as long as you have One idea, although it can be boldly implemented: use reliable cloud services to build a minimal model to verify.

The entrepreneurial joke of "just one programmer left" may not be applicable today.

In order to put some pressure on myself, I chose to book myself a 72-hour Flag (why not 24 hours? Because I am not sure about 24 hours), so that I can make sure that I can finish the development within a given time.

I often have the habit of Hackathon. When I was still in the company, I would choose to give myself a Hackathon Time every Friday night to do some Side Projects. However, due to time and location, I did not participate in any Hackathon activities. I am more of a person by myself at a certain time (such as Friday night or Saturday night), take one from my inspiration library, as the theme of this Hackathon, and then implement the project overnight.

Q: What factors will be considered in the process of technology selection?

Bai Huacheng: In terms of technology selection, I mainly consider two factors:

  • Must be fast: What I want to do is to quickly achieve & from 0 to 1, which determines that one of my core factors is fast enough, otherwise I spend half a month to finish it, this thing will be meaningless.

  • Must be new: I like to use some technology stacks that I have never used in Side Project / Hackathon, so that I can force myself to learn a new thing in the fastest time and provide energy for my subsequent development.

Other aspects are not my point of consideration, because the consumption of resources during Hackathon development is actually limited, and the cost is not too problematic. It is more important to consider how to implement it quickly and well.

Q: In the NESHouse project, how is the realization of the audio interactive function considered? What kind of problems did you encounter?

Bai Huacheng: I chose the fastest method for the audio interaction function. After all, I want to implement it in a short time. I have investigated some third-party real-time audio SDKs before, and I found that the API of Soundnet is relatively simple and clear, and the learning cost is not that high.

In the application process, to make an analogy, suppose we need to drink water (real-time audio) in any of our projects, and that sound network provides tap water. The tap is turned, and the water comes. If you don't have the SDK, then you need to dig the well yourself and install the pump yourself. It's not that you can't drink water, but it's more troublesome. It's better to connect to the existing SDK directly.

This will also allow me to complete the connection faster and focus on logic.

For example, the code for accessing audio listening in NESHouse only has 7 lines of code.

In fact, the realization of audio interaction did not encounter too many difficulties. The main difficulty was the adaptation of different browsers and devices. Because what I am doing is the implementation of the Web side, and I rely on the browser's compatibility with WebRTC. For example, during the development process, I found that when the WeChat browser was connected to audio playback, the user had to actively click on the page. For this reason, I made a special interface to connect to the WeChat device. Into.

Podcasting and audio socialization in my eyes

Q: What is the difference between ClubHouse and traditional podcasting? Is it an evolution of podcasting?

Bai Huacheng: My own feeling about ClubHouse is that its original intention may be to extend the offline scene. For example, at the moment of the epidemic, I could go to an offline salon, but now there is no way to listen. Then I can listen in ClubHouse. It has a time limit, so I must come to this House at a fixed time to listen to the content shared by this Club. But podcasts are different. Podcasts have no time limit and I can listen to them at any time.

This time limit determines that ClubHouse has a very strong sense of presence, and you will need to be more involved in using it. Unlike podcasts, there are not so many restrictions. However, ClubHouse can actually be used as a podcast, but the theme may change frequently. If you don’t mind, ClubHouse can also be a podcast.

Q: Some people think that "ClubHouse does not have technical barriers, but mainly its success in operational communication." After 72 hours of development, how do you see the success of this application?

Bai Huancheng: Is it difficult to develop ClubHouse? difficult. Are there any barriers to audio social networking? There are no barriers. Because it can be realized based on the service of the sound network.

The real barrier lies in the early stage of product development. You need to weigh the pros and cons of the product. What do you want? What not? After your product is developed, how do you get enough KOLs, such as Elon Musk, join the community to share? How to get more people in to play? How to obtain sufficient funds to support the operation and maintenance and cost issues after a large number of users enter.

In contrast, I think these latter things are more difficult.

Q: As a senior podcast anchor and freelance developer, ClubHouse-style audio social networking, do you think it will become a trend in China?

Bai Huacheng: I think it's still relatively difficult. ClubHouse has higher requirements for everyone's time synchronization. It may gradually turn into a tool. When you need to open an online salon, then ClubHouse will be a good tool.

Author introduction: Bai Huancheng, the author of NESHouse, is an engineer who plays podcasts and is also the technical leader of the Linux Chinese open source community. GitHub ID: bestony.

How do programmers avoid falling into "involution", what technology to choose the most promising, and what is the status quo and technological trend of Chinese developers? Come and participate in the "2020 Chinese Developers Survey", and more prizes will be given away!



☞小米澄清「手机不再支持GMS」;虾米音乐正式关停;《质量效应1》DLC 因源代码损坏而移除 | 极客头条☞一行代码没写,凭啥被尊为“第一位程序员”?
☞程序员硬核“年终大扫除”,清理了数据库 70GB 空间

Guess you like

Origin blog.csdn.net/csdnnews/article/details/113696411