HelloGitHub open source monthly (issue 55): terminal "hundred war insects", to fight?

Interest is the best teacher. Hello GitHub is to help you find interest!

brief introduction

Share interesting, entry-level open source projects on GitHub.

This is a monthly magazine for novices who love programming and are interested in the open source community. The contents of the monthly magazine include: projects in various programming languages, tools to make life better, books, learning notes, tutorials, etc. most of these open source projects are very easy to use and Cool. I hope you can use it and join the open source community.

  • Those who can program can contribute code
  • If you can't program, you can use the bugs in these tools
  • Help promote projects you think are excellent
  • Star Project ⭐ ️

In the process of browsing and participating in these projects, you will learn more programming knowledge, improve programming skills and find the fun of programming.

🎉 last HelloGitHub This project was born 🎉

The following is the content of this issue | the latest issue is released on the 28th of each month | Click to view previous content

Item C

1,htop : interactive process viewing tool, which can replace the top command. After using this library, I basically don't need the top command

C# project

2,ToolGood.Words : a high-performance illegal word and sensitive word detection library. It also supports the exchange of traditional and simplified Chinese, obtaining the first letter of Pinyin, obtaining Pinyin letters, Pinyin fuzzy search and other functions

string s = "China|countrymen|zg people";
string test = "I am Chinese,";

StringSearch iwords = new StringSearch();
iwords.SetKeywords(s.Split('|'));

var b = iwords.ContainsAny(test);
Assert.AreEqual(true, b);

var f = iwords.FindFirst(test);
Assert.AreEqual("China", f);

var all = iwords.FindAll(test);
Assert.AreEqual("China", all[0]);
Assert.AreEqual("countrymen", all[1]);
Assert.AreEqual(2, all.Count);

var str = iwords.Replace(test, '*');
Assert.AreEqual("I am***", str);

C + + Project

3,workflow : Sogou open source c + + server engine. Support almost all back-end C + + online services of Sogou, including all search services, cloud input methods, advertisements, etc., and handle more than 10 billion requests every day. This is a lightweight and elegant enterprise program engine, which can meet most C + + back-end development needs

CSS project

4,flexboxfroggy : an online game to help learn CSS flexbox knowledge. The game has a total of 24 levels, which easily explains the flex layout. It is suitable for beginners and supports Chinese. You can choose the language in settings. Online trial

Go project

5,go-diagrams : a tool for easel composition in Go language. If you want to draw an architecture diagram, do you know what tool to use? Partners who can Go can try this library and draw the architecture diagram by writing Go code. The interface is easy to use, but the document is too simple. Example code:

d, err := diagram.New(diagram.Filename("app"), diagram.Label("App"), diagram.Direction("LR"))
if err != nil {
    log.Fatal(err)
}

dns := gcp.Network.Dns(diagram.NodeLabel("DNS"))
lb := gcp.Network.LoadBalancing(diagram.NodeLabel("NLB"))
cache := gcp.Database.Memorystore(diagram.NodeLabel("Cache"))
db := gcp.Database.Sql(diagram.NodeLabel("Database"))

dc := diagram.NewGroup("GCP")
dc.NewGroup("services").
    Label("Service Layer").
    Add(
        gcp.Compute.ComputeEngine(diagram.NodeLabel("Server 1")),
        gcp.Compute.ComputeEngine(diagram.NodeLabel("Server 2")),
        gcp.Compute.ComputeEngine(diagram.NodeLabel("Server 3")),
    ).
    ConnectAllFrom(lb.ID(), diagram.Forward()).
    ConnectAllTo(cache.ID(), diagram.Forward())

dc.NewGroup("data").Label("Data Layer").Add(cache, db).Connect(cache, db)

d.Connect(dns, lb, diagram.Forward()).Group(dc)

if err := d.Render(); err != nil {
    log.Fatal(err)
}

6,gorched : Scorched Earth, a terminal game written in Go language. It reminds me of the game "hundred war insects". Do you have any peers? Let's have a aftertaste

7,ali : a stress testing tool that can display and analyze in real time. Now there are many pressure measurement tools. The highlight of this one is that it can display the curve of pressure measurement process in real time on the terminal. Start with a command: ali address

8,ferry : a work order system based on the separation of front and rear ends of Gin + Vue + Element UI. The system integrates the functions of work order statistics, task hook, permission management, flexible configuration of process and template, etc. to help reduce cross departmental communication, improve work efficiency and quality, and reduce unnecessary workload and human error rate

Java project

9,retrofit-spring-boot-starter : a lightweight HTTP Web framework for Spring Boot projects. It is easy to use and supports sending HTTP requests in an interface way. The bottom layer is implemented by Retrofit, and supports many enhancements of functions and features, which greatly simplifies the development

/**
* Define interface
**/
@RetrofitClient(baseUrl = "${test.baseUrl}")
public interface HttpApi {

    @GET("person")
    Result<Person> getPerson(@Query("id") Long id);
}

/**
* Injection use
**/
@Service
public class TestService {
    @Autowired
    private HttpApi httpApi;

    public void test() {
        // Initiate http request through httpApi
    }
}

10,jmeter : Apache open source stress testing tool. Providing GUI operation interface means that you can operate bit by bit or write scripts to improve the automation of testing. It is not limited to Web testing and supports more stress testing scenarios. Around me, 97% of people engaged in testing related work have used it. Do you want to take a look at its source code? Pure Java implementation

11,mybatis-plus : an easy-to-use Java operation database framework. MyBatis enhancement toolkit provides some efficient, practical and fast functions. Using it can effectively save your development time. For example, to switch data sources, you only need to modify the configuration file

List<User> userList = userMapper.selectList(
        new QueryWrapper<User>()
                .lambda()
                .ge(User::getAge, 18)
);

12,BilibiliTask : beep beep beep beep beep beep beep beep beep beep beep beep beep beep beep beep beep beep beep beep beep beep beep beep beep beep beep beep beep beep beep. The project is automatically completed with the help of GitHub Action: daily tasks, coin investment, live check-in, etc. it can also push the operation results to wechat. It is an interesting project to solve repetitive work. According to the tutorial on the front page of the project, it can be configured in a little time, once and for all

JavaScript project

13,zooming : the pure JS implementation supports the image scaling Library of the mobile terminal

14,AnotherRedisDesktopManager : a redis desktop management tool that supports multiple languages and platforms. Compared with other similar tools at present, it has richer functions, higher stability and performance, and supports clustering and other functions

15,beeplay : a library that allows you to write a "song" in JS. Try online , instance code:

var beeplay = require('beeplay')

beeplay()
  .play(null, 2)
  .play('D#5', 1/4).play('E5', 1/4).play('F#5', 1/2)
  .play('B5', 1/2).play('D#5', 1/4).play('E5', 1/4)
  .play('F#5', 1/4).play('B5', 1/4).play('C#6', 1/4).play('D#6', 1/4)
  .play('C#6', 1/4).play('A#5', 1/4).play('B5', 1/2)
  .play('F#5', 1/2).play('D#5', 1/4).play('E5', 1/4)
  .play('F#5', 1/2).play('B5', 1/2)
  .play('C#6', 1/4).play('A#5', 1/4).play('B5', 1/4).play('C#6', 1/4)
  .play('E6', 1/4).play('D#6', 1/4).play('E6', 1/4).play('C#6', 1/4);

16,vant : open source mobile terminal component library by youzan front-end team. At present, Vue version and wechat applet version are officially provided, and the community team maintains the React version. There are perfect Chinese and English documents and examples, 60 + high-quality components, 90% + unit test coverage, and continuous maintenance for more than 4 years

17,Bilibili-Evolved : Bili Bili enhanced browser plug-in. After installing the plug-in, it can support: downloading videos, deleting advertisements, night mode, etc

Python project

18,asciinema : terminal recording tool. Forget the screen recording software, a tool for plain text recording terminal operation. It is easy to install and use, and the generated record file is very small, but it needs to be played with JS file

19,playwright-python : Microsoft's open source browser automation tool can operate the browser in Python language. Support chrome, Firefox and WebKit browsers under Linux, macOS and Windows

20,wagtail : one of the most powerful open source Django CMS (content management system). I seldom use the word "most". Save time and talk about it. It's amazing to me. Firstly, the project is updated and iterated actively. Secondly, the functions mentioned on the front page of the project are free, and there is no paid unlocking operation. wagtail focuses on content management and does not restrict the front-end implementation. The interesting StreamField technology makes your content flexible and structured. It even supports A/B testing. Finally, Google and NASA are using this project

21,redis-memory-analyzer : redis real-time memory analysis tool. I'm curious about how it can get the key information and information in redis in real time, so I'll look at the source code scanner Py file. The discovery is based on scan_iter method, which controls the amount returned by scanning the key. Then reduce the memory consumption by yield, and finally add register_script method calls Lua script or pipeline method to improve the efficiency of obtaining key information. After analysis, I feel that this tool can be used in situations with large amount of data and real-time requirements in seconds or minutes

22,practical-python : David Beazley is an open source Python free entry-level tutorial. He is the author of the third edition of Python Cookbook and python reference manual. The tutorial has been through practical teaching practice and includes after-school exercises. Online learning , the tutorial directory is as follows:

Swift project

23,stats : monitoring tools on the macOS menu bar. Support CPU, GPU, memory, network and other monitoring and multilingualism

other

24,ZY-Player : Free Desktop Video Resource player without advertisement, high appearance value + multi platform. The functions are as follows:

  • Full platform support for Windows, Mac and Linux
  • The video source supports customization and import / export
  • Play history and automatically jump to the historical progress
  • Support streamlined mode, fishing and rowing
  • Show watercress score

25,keysim : keyboard color preview tool. The operation of "customization" is very expensive. See the effect of this tool before placing an order to avoid wasting money. Try online

26,tabler-icons : a set of free and open source icons. At present, there are 850 + icons. I think they are very good-looking. What do you think?

27,socialify : automatically generate GitHub warehouse header with one click. Many authors of GitHub open source projects don't use PS. it's difficult to make a project promotion map. Socialify is to help you solve this headache. Try online

Open source books

28,Mastering_Go_ZH_CN : the Chinese translation of Mastering Go. Online reading

29,A-Philosophy-of-Software-Design-zh : Chinese translation of philosophy of software design. Online reading

machine learning

30,video-object-removal : draw a bounding box through pytoch to delete the object to be deleted in the video. The following figure shows the demonstration operation. The red part in the box is the erased part. The effect comparison diagram before and after deletion can be viewed on the front page of the project

31,mlflow : a platform to simplify machine learning development, supporting tracking experiments, code packaging, deployment models, etc. It provides a set of lightweight API s, which can be easily integrated with the current mainstream machine learning libraries such as TensorFlow, PyTorch and XGBoost

# Installation: $pip install mlflow
# Start: $mlflow ui
# Sample code
import mlflow
mlflow.keras.autolog()
# other keras code
...

32,snownlp : a natural language processing library written in Python. Simple to use and powerful, it supports Chinese word segmentation, part of speech tagging, emotion analysis, etc

from snownlp import SnowNLP

s = SnowNLP(u'This thing is really great')
s.words         # [u 'this', u' thing ', u' sincerity ',
                #  U 'very', u 'like']
s.tags          # [(u'this', u'r'), (u'thing', u'n '),
                #  (U 'sincere', u'd'), (u' very ', u'd'),
                #  (u'like ', u'Vg')]
s.sentiments    # 0.9769663402895832 positive probability

last

If you find an interesting project on GitHub, you are welcome to mention it in the Hello GitHub project issues Tell us.

Tags: HelloGitHub

Posted by Billett on Mon, 09 May 2022 15:51:21 +0300