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 # project
1. Csredis: C# Redis client library recommended by Redis. IO, support Redis 2.8-5.0 version of all commands, and include sentinels, clustering and other functions. The project has been continuously iterated since 2016, realizing advanced gameplay such as low threshold, high performance and partitioning. Author: 2881099, open source C# project on GitHub. You are welcome to follow him, participate in his projects and contribute to the open source community. Sample code:
var csredis = new CSRedis.CSRedisClient("127.0.0.1:6379, password = 123");
RedisHelper.Initialization(csredis);
RedisHelper.Set("test1"."123123".60);
RedisHelper.Get("test1");
/ /... The function name is the same as the command in redis-cli
// Regular subscription
RedisHelper.Subscribe(
("chan1", msg => Console.WriteLine(msg.Body)),
("chan2", msg => Console.WriteLine(msg.Body)));
// Pipeline operation
RedisHelper.StartPipe().Set("a"."1").Get("a").EndPipe();
Copy the code
C + + project
FMT: this is an open source C++ format library. It serves as a secure and fast alternative to (s)printf and iostreams, and is an implementation of STD ::format in C++ 20. Its formatted string syntax is similar to str.format in Python, supports user-defined types, and is faster than the common standard library implementations of printf and Iostreams! FMT is also secure enough that errors in format strings can be reported at compile time and buffer overflow errors can be prevented. Sample code:
fmt::print("Hello, {}!"."world"); // Python-like syntax style
fmt::printf("Hello, %s!"."world");
Copy the code
Awesome -modern-cpp: Wow Awesome! Do you want to make Modern CPP work? Then check out awesome-modern-CPp! Here’s a list of modern C++ best practices, books, conferences, talks, podcasts, blogs, websites, libraries, and tools to make you Wow Awesome. Your moment
Go project
Simple-computer: a project to simulate a simple computer CPU with Go language. There are only Go functions, no hardware modules, from nand gates to a mini-virtual computer that can do addition and subtraction and display. These are the lowest, most basic things in a computer, although they are modeled in Go rather than built out of hardware. But the basic structure of the computer, the basic principles of how it works, are laid out very clearly. For starters, you’ll both learn how the CPU works and find programming languages that have interesting uses beyond writing software. Installation command:
make # Build the project
make test # test
./bin/simulator -bin _programs/brush.bin Run the virtual machine
Copy the code
Gridstudio: a spreadsheet Web application with Go backend that supports The Python programming language to process data and see the results as they run. It is designed to provide an integrated workflow for loading, cleaning, manipulating, and visualizing data. Available online, it’s a great tool for data engineers who use Python and other tools to process data. I was curious about how to make graphite documents before, and now I can learn. E-form is a relatively complex problem, and there are many places to learn from this project. Installation:
git clone https://github.com/ricklamers/gridstudio # clone project
cd gridstudio && ./run.sh # direct run
# Then visit http://127.0.0.1:8080 username: admin Password: admin
Copy the code
6. Go-github: Github API go language version produced by Google If you need to do a gihHub-related product backend, this can save a lot of effort, and you can learn from the Go project, design interface ideas written by Google engineers. Sample code:
import "github.com/google/go-github/v27/github" // Enable go module (GO111MODULE=on or not in GOPATH)
import "github.com/google/go-github/github" // Go module is not enabled
client := github.NewClient(nil)
// get all the organizations where the user "willnorris" belongs
orgs, _, err := client.Organizations.List(context.Background(), "willnorris".nil)
Copy the code
Java project
7. VHR: A human resource management system with separate front and back ends. The project uses the SpringBoot + Vue architecture, both of which are popular frameworks in recent years. The project covers a number of scenarios that can serve as an introductory practice for full stack engineers
SmartSwipe: A sideslip framework, not a specific sideslip implementation. Its internal package of more than a dozen sideslip effects, including sideslip back, sideslip delete, blinds, open doors and other effects, there are always a few can make your eyes shine. Sample code:
// Add MIUI elastic stretching effect to the control:
// When you can't scroll vertically (or scroll to the top/bottom), if you continue to drag, the UI will appear elastic stretch effect, and smooth recovery after release
SmartSwipe.wrap(view)
.addConsumer(new StretchConsumer())
.enableVertical();
SmartSwipe.wrap(view)
.addConsumer(new StretchConsumer())
.enableVertical() // The direction of MIUI stretching effect is: up and down two directions
.addConsumer(new SpaceConsumer())
.enableHorizontal() // The directions for imitating the iOS elastic white space effect are left and right
;
SmartSwipeBack.activityBezierBack(application, null); // Return the bezier curve from MIUI
SmartSwipeBack.activityStayBack(application, null); // Copy the mobile QQ gesture slide back
SmartSwipeBack.activitySlidingBack(application, null); // A transparent slip-back that mimics the wechat band linkage effect
SmartSwipeBack.activityDoorBack(application, null); // Side sliding door style closes the activity
SmartSwipeBack.activityShuttersBack(application, null); // Side slide shutter style closes the activity
//xxxMode the second parameter is false, indicating that the work direction is portrait: pull down refresh & pull up load more
// If the second parameter is set to true, the work direction is landscape: right to refresh and left to load more
SmartSwipeRefresh.drawerMode(view, false).setDataLoader(loader);
SmartSwipeRefresh.behindMode(view, false).setDataLoader(loader);
SmartSwipeRefresh.scaleMode(view, false).setDataLoader(loader);
SmartSwipeRefresh.translateMode(view, false).setDataLoader(loader);
Copy the code
9. SoloPi: a non-invasive Android automation tool that doesn’t require a computer connection. The public test version has three main functions of recording playback, performance testing and multi-control, which can save valuable time for test developers. There are many Android versions and terminal models. The launch of a mature Android application requires a lot of tests, and many tests are repeated operations. This tool can greatly simplify the workload of testers
XUI: A simple and elegant Android native UI framework. Let native Android developers have the same convenient UI libraries as Web developers. The project is intended for developers with some Android development experience
JavaScript project
Chart.xkcd: JS chart library with hand-drawn style. The hand-drawn style of design gives a lovely feeling, and looking at these charts you will find that data can also be presented in a lovely form
Fullpage.js: You can easily create a full-screen scrolling website (also known as a single-page website) by calling fullPage. FullPage allows you to create a full-screen scrolling web site, as well as add a horizontal scroll bar to the site. Suitable for quickly build full screen scrolling or have poor vision of the site, making the site looks more high-end, atmosphere, grade, example code:
<div id="fullpage">
<div class="section">Some section</div>
<div class="section">Some section</div>
<div class="section">Some section</div>
<div class="section">Some section</div>
</div>
Copy the code
PicGo: desktop drawing bed tool based on electron- Vue. This tool allows you to upload your images efficiently and easily to webbed, including Weibo, Qiniu, Tencent COS, Youpeyun, GitHub, SM.ms, Ali Cloud OSS, Imgur, etc. Just use the shortcut key or drag to upload, and the successful image link will be automatically copied to your clipboard, support macOS, Windows, Linux three major systems
14. Valine: a fast, simple and efficient JS comment plug-in without a back end. The library uses the LeanCloud API to store data and is beautifully designed, small, and supports Markdown and Emoji. It’s a boon for static web bloggers like Hexo and Hugo. You can quickly add comments to your blog with a few simple steps
15. Webtorrent: JS-BASED streaming media seed client. You can play the content in the seed without waiting for it to finish downloading, and there are desktop clients for Windows, Mac, and Linux operating systems. Still suffering from waiting for the download? With it can copy the seed link to watch the corresponding video content
Python project
Jtyoui: a collection of code to help you learn Python. Contains more than 20 easy-to-use common methods and mathematical functions, most of which are around 100 lines long, and each class has a corresponding test case for its use. Very convenient for beginners to learn, but also to help experienced developers quickly implement some functions. Sample code:
# This is a solar calendar into the lunar calendar program
from jtyoui.plunar import SC
if __name__ == '__main__':
lun = SC(year=2018, month=1, day=2) # Solar calendar to lunar calendar
print(lun.y) # The year of the Lunar calendar, Chinese characters
print(lun.year) # Lunar year, Arabic numerals 2019. print(lun)# July 14th, 2019 Thursday none
Copy the code
Bullet: A Python library that supports terminal input and menu selection. It allows users to move, radio, check, password input, etc., and supports customized formats and colors. See the renderings below to see what it does
DaPy: An easy-to-use Python library for data analysis. By providing sound data structures and rich machine learning models, it can help you quickly implement data analysis ideas. In short, DaPy helps you complete every step of data mining tasks, including importing and exporting data, preprocessing data, feature engineering, model training and model evaluation
Ruby project
Rest-client: a Ruby HTTP client library. The library has been used by 100,000 people in total. It is easy to use, has elegant API design, supports common HTTP methods, file download, proxy setting, etc. Each method basically has sample code:
require 'rest_client'
RestClient.get 'http://example.com/resource'
RestClient.get 'http://example.com/resource', {:params= > {:id= >50.'foo'= >'bar'}}
RestClient.get 'https://user:[email protected]/private/resource', {:accept= >:json}
RestClient.post 'http://example.com/resource'.:param1= >'one'.:nested= > {:param2= >'two' }
RestClient.post "http://example.com/resource", { 'x'= >1 }.to_json, :content_type= >:json.:accept= >:json
RestClient.delete 'http://example.com/resource'
response = RestClient.get 'http://example.com/resource'The response code ➔200The response. Cookies ➔ {"Foo"= >"BAR"."QUUX"= >"QUUUUX"}. The response headers ➔ {:content_type=>"text/html; charset=utf-8".:cache_control=>"private". The response. To_str ➔ \ n <! DOCTYPE html PUBLIC \"- / / / / W3C DTD HTML 4.01 / / EN \" \ n \ "http://www.w3.org/TR/html4/strict.dtd\" > \ n \ n < HTML... RestClient.post( url, { :transfer => { :path => '/foo/bar', :owner => 'that_guy', :group => 'those_guys' }, :upload => { :file => File.new(path, 'rb') } })Copy the code
20, Overcommit: a configurable Git hook management tool. Git hook is a powerful function of Git. When a Git event, such as add, commit, and push, is triggered, the corresponding hook will be executed. It can be used to check code quality, commit description style, control code quality, and so on. Overcommit allows you to customize what the hook does without writing a line of code (configuration does not count as code). It’s easy to use, well documented, full of examples, and has a lively community
Swift project
21. AppearancesSwitcher: Quick toggling of ‘Light/Dark’ themed widgets in the macOS notification Center
other
22, awesome- ADB: ADB usage set (Android Debug Bridge)
Git-tips: a collection of common git commands
Open source books
OnJava8: OnJava8 Chinese version also known as “Java Programming Ideas”
Machine learning
25, numpy-cn: this is the numpy Chinese translation document. It is suitable for anyone who wants to learn about NumPy and can also be used as a manual. If you are new to Numpy, you are recommended to read the basic article: Understanding Numpy, Numpy easy to get started, Numpy array creation different ways, reference article will be updated from time to time in the international and excellent Numpy related content. If you want to implement the neural network freehand see NumPy and neural network, NumPy implementation DNC, RNN and LSTM neural network algorithms
26. Awesome_Multimodal_Research: This project is a selected list of multimodal related research and is being continuously updated. Information in the real world usually comes in different modes. For example, images are often associated with labels and text explanations; The text contains images to better express the main idea of the article. Different modes are characterized by different statistical properties. For example, an image is typically represented as the pixel intensity or output of a feature extractor, while text is represented as a discrete word vector. Because of the different statistical characteristics of different information resources, it is very important to discover the relationship between different modes
27. Rasa: A framework designed for multiple rounds of human-machine dialogue. It mainly contains Rasa Core and Rasa NLU modules, which provide the functions of dialogue scene, intention understanding, entity extraction and so on. Users only need to construct their own corpus according to the corpus format of the platform, so that they can carry out the training of intention understanding and entity extraction conveniently. At present, users of Rasa platform have gradually increased, and it is easy to find relevant projects on the official document network, which is easy to learn and get started
28. Non-local_pytorch: The project recommended today is a third party implementation of Nonlocal Net, implemented as PyTorch. The project is straightforward, but performance has not been tested on large open data sets. However, a sample MNIST is attached for readers’ reference. Nonlocal Net is a paper of Kaiming He research group introducing Attention mechanism in image field. The proposal of Nonlocal Net leads a wave of application of attention mechanism in the field of image, and papers in this direction emerge in endlessly in the last two years. Facebook also open source a Nonlocal Net project in the video category, but the framework is based on their caffe2, so readers can browse and read according to their actual situation
“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 public,
Recently, the public account was opened. The subsequent public account will select and sort out the contents recommended by the monthly magazine and publish a series of articles. The monthly magazine will also be published on the official account for immediate reading.
Welcome to follow the HelloGitHub official account for more information and content of open source projects.
The statement
This work adoptsAttribution – Non-commercial use – No deduction 4.0 internationalGrant permission.