Interest is the best teacher, HelloGitHub is to help you find interest!
Introduction to the
Share interesting, entry-level open source projects on GitHub.
This is a monthly magazine for people who are new to programming, passionate about programming, and interested in the open source community. The contents of the monthly include: various programming language projects, tools to make life better, books, study notes, tutorials, etc. Most of these open source projects are very easy to use, and very Cool. The main hope is for you to get your hands dirty and join the open source community.
- Those who can program can contribute code
- Those who cannot program can report bugs in using these tools
- Help promote projects that you think are great
- Star project ⭐ ️
As you browse and participate in these projects, you will learn more about programming, improve your programming skills, and find the fun of programming.
🎉 And the project HelloGitHub was born at 🎉
Below is the content of this issue | the latest issue will be published on the 28th of each month | click to view the content of previous issues
C program
1, hTOP: interactive process view tool, can replace the top command. After using this library, I rarely use the top command
C # project
2. Toolgood. Words: a high-performance detection library for illegal and sensitive Words. It also supports the exchange of traditional and simplified Chinese characters, obtaining the first letter of pinyin, obtaining the alphabet of Pinyin, fuzzy search and other functions
string s = "China | | compatriots mid-december,";
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("Chinese people", all[1]);
Assert.AreEqual(2, all.Count);
var str = iwords.Replace(test, The '*');
Assert.AreEqual("I am * * *", str);
Copy the code
C + + project
Workflow: a C++ server engine. It supports nearly all of sogou’s back-end C++ online services, including all search services, cloud input methods, advertising, etc., and handles more than 10 billion requests every day. This is a lightweight and elegant enterprise engine that meets most C++ back-end development needs
The CSS project
Flexboxfroggy: an online game that helps you learn CSS Flexbox. There are 24 levels in the game that explain the Flex layout in an easy-to-understand way. Suitable for beginners, and support Chinese, you can choose the language in Settings. The online demo
Go project
Go Diagrams: A tool for mapping an easel in the GO language. Want to easel composition do not know what tool to use? Go friends can try this library, by writing Go code to draw the architecture diagram, the interface is easy to use, but the documentation is too simple. Sample code:
d, err := diagram.New(diagram.Filename("app"), diagram.Label("App"), diagram.Direction("LR"))
iferr ! =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)
iferr := d.Render(); err ! =nil {
log.Fatal(err)
}
Copy the code
6, Gorched: Go language written terminal game Scorched Earth. It reminds me of worms. Anyone your age? Let’s savor it
7. Ali: A stress test tool that displays analysis in real time. There are a lot of tools out there, but the highlight of this one is that you can display the curve of the process in real time on the terminal. One command gets started: Ali address
8. Ferry: Work order system based on Gin + Vue + Element UI. The system is a collection of work order statistics, task hooks, authority management, flexible configuration processes and templates and other functions, to help reduce cross-department communication, improve work efficiency and work quality, reduce unnecessary workload and human error rate
Java project
Retrofit-spring-boot-starter: a lightweight HTTP Web framework for Spring Boot projects. It is easy to send HTTP requests through interfaces. The underlying implementation is implemented using Retrofit and supports many feature enhancements that greatly simplify development
/** * defines the interface **/
@RetrofitClient(baseUrl = "${test.baseUrl}")
public interface HttpApi {
@GET("person")
Result<Person> getPerson(@Query("id") Long id);
}
/** * injection uses **/
@Service
public class TestService {
@Autowired
private HttpApi httpApi;
public void test(a) {
// Initiate an HTTP request using httpApi}}Copy the code
Jmeter: Apache open source stress testing tool. Providing a GUI interface allows for point-and-click operations and scripting to improve test automation. It is not limited to Web testing and supports more stress testing scenarios. 97% of the people I work with in testing have used it. Would you like to take a look at the source code? Pure Java implementation
11, Mybatis – Plus: a user-friendly Java operation database framework. MyBatis enhancement kit, provides some efficient, practical, 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));Copy the code
12, BilibiliTask: Bilibili automatic completion of task projects. This project is completed automatically by GitHub Action: daily tasks, coins, live check-in, etc., and the results can also be pushed to wechat. It is an interesting project to solve repetitive labor. According to the project home page tutorial, it takes a little time to configure, once and for all
JavaScript project
Zooming: The pure JS implementation supports the mobile image zooming library
14, AnotherRedisDesktopManager: support a multi-language, multi-platform redis desktop management tools. Compared with other tools of the same type, it has richer functions, higher stability and performance, and supports clustering and other functions
Beeplay: A library that allows you to write a “song” in JS. Try online, example 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);
Copy the code
16. Vant: A mobile component library open source by the Uzan front end team. Vue version and wechat applet version are officially available, and React version is maintained by the community team. Complete Documentation and examples in Both Chinese and English, 60+ high-quality components, 90%+ unit test coverage, continuous maintenance for more than 4 years
Bilibili-Evolved: Bilibili-Evolved: Bilibili-Evolved: Bilibili-Evolved: Bilibili-Evolved After installing the plug-in, you can download videos, delete ads, and perform night mode
Python project
Asciinema: Terminal logging tool. Forget recordscreen software, plain text recording terminal operation tool. It is easy to install and use, and the generated record file is very small, but it needs to play with JS files
19. Offender Python: Microsoft’s open-source browser automation tool, which can operate the browser in Python. Supports Chromium, Firefox, and WebKit browsers on Linux, macOS, Windows, and Windows
20. Wagtail: One of the most powerful open source Django CMS (content management system) available today. I rarely use the word “most,” so let’s save time by talking about what amazes me about it. First of all, the project is updated and iterated actively. Secondly, the functions mentioned on the first page of the project are free, and there is no such operation as inexplicable lock. Wagtail focuses on content management without tying up front-end implementations. StreamField is an interesting technology that makes your content flexible and structured. It even supports A/B testing, and eventually Google, NASA, and others are using it
Redis-memory-analyzer: Redis real-time memory analysis tool. I am curious about how it is real-time access to redis key situation and information, look at the source scanner. Py file. The scan_iter method is used to control the amount returned by the scan key. Yield is then used to reduce memory usage, and finally the register_script method calls Lua scripts or pipeline methods to improve the efficiency of obtaining key information. After analysis, it is found that this tool can be used in the case of large amount of data, and the real-time requirement is in the second or minute level
Practical Python: A free introductory tutorial on Python from David Beazley He is the author of the Python Cookbook, Third Edition, and the Python Reference Manual, which includes hands-on teaching and after-school practice problems. Online learning, the tutorial directory is as follows:
Swift project
Stats: A monitoring tool on the macOS menu bar. Supports CPU, GPU, memory, network monitoring and multiple languages
other
24. Zy-player: a free, ad-free, high appearance and multi-platform desktop video resource Player. The functions are as follows:
- The full platform supports Windows, Mac, and Linux
- Video sources support customization and import/export
- Playing history automatically jumps to the historical progress
- Support streamlined mode, fish in water
- Show douban score
25. Keysim: Keyboard color preview tool. “Customize” sounds expensive, so use this tool to see what it looks like before you place an order to avoid wasting money. Try online
Tabler-icons: A group of free, open source ICONS. So far there are 850+ ICONS, I think they are all pretty good, what do you think?
27. Socialify: Automatically generate GitHub warehouse headers with one click. Many GitHub open source project authors don’t know how to use Photoshop, making it difficult to create a promotional image for your project. Socialify is here to help you solve this headache. Try online
Open source books
28. Mastering_Go_ZH_CN: Chinese translation of Mastering Go. Read online
29, Philosophy of Software-design-zh: The Philosophy of Software Design Read online
Machine learning
Video-object-removal: The Pytorch implementation draws a boundary box to remove the object from the video. The following figure shows the demonstration operation, and the red in the box is the deleted part. The comparison picture of the effect before and after deletion can be viewed on the home page of the project
Mlflow: a platform for simplifying machine learning development, enabling tracking experiments, code packaging, deployment models, and more. It provides a lightweight API that can be easily integrated with mainstream machine learning libraries such as TensorFlow, PyTorch, and XGBoost
$PIP install mlflow
# start: $mlFlow UI
# sample code
import mlflow
mlflow.keras.autolog()
# other keras code.Copy the code
Snownlp: a natural language processing library written in Python. Simple to use, powerful, supporting Chinese word segmentation, part-of-speech tagging, sentiment analysis, etc
from snownlp import SnowNLP
s = SnowNLP(U 'This thing is really cool.')
s.words # [u' this ', u' thing ', u' heart ',
# u' very ', u' like ']
s.tags # [(u' this ', u'r'), (u' thing ', u'n'),
# (u' sincerely ', u'd'), (u' very ', u'd'),
# (u' like ', u'Vg')]
s.sentiments The probability of positive
Copy the code
The last
If you find something interesting on GitHub, feel free to mention issues at HelloGitHub.