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. Linq4c: If you want to use the linQ method in C# next door, use this project! This is the C version of it. Implement most of linQ’s methods (60+). Now it is still in continuous improvement, welcome more partners to join the joint maintenance

bool WhereCallback(void *item) {
    char *str= (char *)item;
    return str[0] = ='h';
}

void *SelectCallback(void *item) {
    return newStr("%s_1", (char *)item);
}

char *str1 = "huang", *str2 = "hai", *str3 = "feng";

ArrayList array = arrlist_new();
arrlist_append(array, str1);
arrlist_append(array, str2);
arrlist_append(array, str3);

Linq *lq = From(array);
ArrayList result = 
    lq
    ->Where(lq, WhereCallback)
    ->Select(lq, SelectCallback)
    ->ToArray(lq);

for(int i = 0; i < arrlist_size(result); i++) {
    printf("%s\n", arrlist_get(result, i));
}
Copy the code

C + + project

Nebula: Nebula Graph is an open source Graph database designed to provide high-concurrency, low-latency read, write, and compute services for large scale Graph data. It is currently the world’s only graph database solution capable of holding hundreds of billion vertices and trillions of edges and providing millisecond query latency. Features:

  • Fully symmetric distributed architecture
  • extensible
  • High availability
  • Strong data consistency
  • Sql-like query language

The CSS project

3. ICSS: This project focuses on THE topic of CSS, and tells the skills and animation implementation related to CSS

Go project

4. Kubesphere: An enterprise-level distributed multi-tenant container management platform built on the mainstream container scheduling platform Kubernetes. It provides easy-to-use operation interface and wizard operation mode, which not only reduces the learning cost of users using the container scheduling platform, but also greatly reduces the complexity of daily work of development, testing, operation and maintenance. Chinese document

5. Starcharts: GitHub star Chart generating project

6. Ultimate go: This project is the author’s experience and summary of go source code and related basic computer knowledge in the process of learning GO. Suitable for Go learners to read and learn. Come with the author to understand the Go source code, understand the computer theory behind the Go design ideas

Java project

7, EasyExcel: easy to use, quick to get started, small memory and avoid memory overflow Java processing Excel tools. Sample code:

/** ** <p>1. Create excel corresponding entity object reference {@linkDemoData} * <p>2. Create excel row - by - line callback listener, see {@linkDemoDataListener} * <p>3
@Test
public void simpleRead(a) {
    String fileName = TestFileUtil.getPath() + "demo" + File.separator + "demo.xlsx";
    // We need to specify which class is used to read the sheet, and then the first read stream is automatically closed
    EasyExcel.read(fileName, DemoData.class, new DemoDataListener()).sheet().doRead();
}
Copy the code

Lila: A fully free, open source, ad-free, multilingual online chess game based on Scala. The online demo

Tablesaw: A Java utility that includes data boxes and visual libraries for loading, converting, filtering, and summarizing data. It saves you time and effort to process data with Tablesaw, which also supports descriptive statistics and integrates perfectly with the Smile machine learning library. In the last two years, data analyst occupation fire, do a good job of data analysis, can not do without data visualization framework. Java engineers must master a data visualization library, sample code:

public class BoxExample {

  public static void main(String[] args) throws Exception {
    Table table = Table.read().csv(".. /data/tornadoes_1950-2014.csv");

    Layout layout = Layout.builder().title("Tornado Injuries by Scale").build();

    BoxTrace trace =
        BoxTrace.builder(table.categoricalColumn("scale"), table.nCol("injuries")).build();
    Plot.show(newFigure(layout, trace)); }}Copy the code

Simple-java-mail: a lightweight Java mail framework that supports complex, customized email sending services. Includes authenticated proxies, attachments, embedded images, custom headers and attributes, powerful address authentication, and more. Highlights include support for identity proxies and other features that prevent other mail services from intercepting mail

11. XUpdate: a full version update solution based on Android. In addition to providing Android SDK, it also comes with the background service built by Spring Boot and the background management interface written by vue.js. It provides customizable solutions to the confusion of Android version management in small and medium-sized enterprises. The framework offers a fully pluggable version update and, for ease of use, a back-end service and an administrative interface using the most popular technologies available today. It is completely flexible, convenient, and provides a large amount of rich documentation for everyone to refer to

XUpdate.newBuild(getActivity())
.updateUrl(mUpdateUrl)
.isAutoMode(true) // You need root permission if you want completely unaided and automatic update.
.update();
Copy the code

JavaScript project

12. Star-battle: a ship shooter game developed using JavaScript ES6 and Canvas. The online demo

13. Markdown-nice: Markdown editor that can customize styles. Support content and custom style browser real-time save, upload pictures, footnotes, formulas, etc., output content can be copied to a series of platforms such as wechat public number, Zhihu, Gold, blog park and CSDN. Greatly reduced the wechat public number article typesetting and editing work

Marktext: a simple and elegant open source Markdown editor that supports Linux, macOS and Windows download addresses. Function:

  • Live preview (what you see is what you get) and clean interface
  • Markdown extensions, such as mathematical expressions and emojis
  • Output HTML and PDF files
  • Various editing modes: source code mode, typewriter mode, focus mode
  • , etc.

Leonsans: This is a Sans Serif semi-serif font written in JS. Leon Sans allows you to dynamically change font thickness and create custom animations, effects, or shapes in the Canvas element of HTML 5. Click to view animations. PS: This font is for the author to celebrate his new baby Leon

16. Taro-music: NetEase Cloud Music small program developed based on Taro and NetEase Cloud Music API. Taro is a typescript+taro+ UI + Redux technology stack. Taro is a typescript+taro+ UI +redux technology stack. Taro is a typescript+taro+ UI + Redux technology stack.

  • The user login
  • My watch list
  • Recent playlist
  • Song Playing page
  • , etc.

Objective – C project

17. JHBlog: This project organizes the author’s knowledge collection on the path from basic iOS development to intermediate level

Python project

Healthchecks: A Cron periodic task monitoring tool based on Python3 and Django2. It also supports multiple alarm modes when periodic tasks fail

The GeneralNewsExtractor is a Python body extractor designed to extract text, author, and title from HTML text. I read this paper before and also wanted to implement this extraction tool, but I lay down because of terminal lazy cancer, thanks to Kingname ‘lead trip’ ✌️

Bokeh: An interactive Python library for data visualization focused on beautiful, straightforward data visualization in Web browsers. It allows you to quickly and easily create interactive charts, dashboards, and data visualization programs. The visualization of the streaming data set is shown below:

Ruby project

21. Ruby-pinyin: A library that can convert Chinese characters into the corresponding pinyin and handle polyphonic characters better. Example code for correct handling of polyphonic characters is as follows:

PinYin.of_string(Nanjing Yangtze River Bridge.:unicode)
return ["nán".J: and "ng"."shì"."cháng"."Ji ā ng"."dà"."qiáo"] can correctly convert "long" to "chang2" instead of "zhang3"Copy the code

Swift project

22, EFQRCode: a lightweight, used to generate and identify two-dimensional code pure Swift library, according to the input watermark image and icon to generate art two-dimensional code

other

Reverse -interview: If the interviewer asks, “Do you have any questions for me?” If you don’t have a clue, then this project is exactly what you need. Chinese

24. Pull: a GitHub App that automatically synchronizes the fork repository and keeps the artifacts in sync with the original repository. Many students fork projects when participating in open source, but cannot get the latest update of the original project. This Github App can solve this problem well. Up to now, tens of thousands of warehouses have been used, and 700,000 PR have been automatically generated so far, and the number is still increasing. Note: If the master has changes that need to be backed up for later use, see the English document for details

Chinese-colors: Online manual of Traditional Chinese colors, online experience

26, Navi: command line assistance tool, with it no longer have to worry about finding the history of the input command, forget the command and so on many troubles

The tutorial

Advanced-java: a collection of advanced knowledge points for Java engineers, covering: high concurrency, distributed, high availability, microservices and other fields of knowledge. This knowledge is not limited to the Java language, but you can also learn a lot from it on the back end. Read it online

Node.js Best Practices

Nodejs-roadmap: Node.js technology stack learning Guide The content focuses on Node.js server, including: Basic Knowledge of Node.js, core modules of Node.js, mainstream framework practice, cache, database, message middleware, DevOps, HTTP protocol and Node.js in micro services, etc., online reading

30. C9-python-geting-started: Python is a basic python tutorial. Includes sample code, powerpoint presentation, and accompanying Youtube video

Machine learning

ChineseNLPCorpus: Chinese natural language processing data set

Albert_zh: Massive Chinese pre-training ALBERT model

Cherry: Easy to use text classifier. Suitable for multiple languages, with two pre-training models, using the pre-training model to classify only one line of code. Custom training with your own data set requires only ten lines of code. Easy to achieve high precision, recall rate. At the same time, the library supports custom word segmentation algorithm, classification algorithm and so on. Sample code:

>>> res = cherry.classify(model='harmful', text=['They are passionate about computers and want to learn about data analytics, web crawlers, artificial intelligence and so on to apply to their work.'])
>>> res.word_list
[(2, 'they'), (1, 'network'), (1, 'passion'), (1, '方面'), (1, 'Data analysis'), (1, 'hope'), (1, 'work'), (1, 'learning'), (1, '从而')]
>>> res.probability
The return result corresponds to the probability of gambling, normal, politics and pornography respectivelyE-03 array ([[4.43336608, 9.95215198 e-01 e-04 3.51419231, 1.68657851 e-08]])Copy the code

“Finished, not enough? “Past content > | don’t satisfy, then look at the front end of the updated daily journal < front > today” if you find the fun and meaningful open source project Click here to share you feel interesting projects.

The last

If you find something interesting on GitHub, feel free to mention issues at HelloGitHub.