> 2021年04月08日信息消化 ### 每天学点算法 #### 幂集 | Power Set 一个集合的幂集是它所有子集的集合。写一个函数,给定一个集合,生成它的幂集。 The power set of a set is the set of all its subsets. Write a function that, given a set, generates its power set. For example, given the set `{1, 2, 3}`, it should return `{{}, {1}, {2}, {3}, {1, 2}, {1, 3}, {2, 3}, {1, 2, 3}}`. ```python # https://tutorialspoint.dev/algorithm/mathematical-algorithms/power-set # python3 program for power set import math; def printPowerSet(set,set_size): # set_size of power set of a set # with set_size n is (2**n -1) pow_set_size = (int) (math.pow(2, set_size)); counter = 0; j = 0; # Run from counter 000..0 to 111..1 for counter in range(0, pow_set_size): for j in range(0, set_size): # Check if jth bit in the # counter is set If set then # print jth element from set if((counter & (1 << j)) > 0): print(set[j], end = ""); print(""); # Driver program to test printPowerSet set = ['a', 'b', 'c']; printPowerSet(set, 3); # This code is contributed by mits. ``` ## 每天学点Golang #### 使用GORM和GIN在Golang中实现简单分页功能 原文:[Implement Pagination In Golang Using GORM and GIN](https://medium.com/wesionary-team/implement-pagination-in-golang-using-gorm-and-gin-b4ad8e2932a6) The packages you need to install in our project is: ```bash go get github.com/go-sql-driver/mysql go get github.com/gin-gonic/gin go get github.com/jinzhu/gorm ``` 目录结构 ``` - /first-api - /Config - /Controllers - /Model - /Routes - go.mod - go.sum - main.go ``` 核心分页部分。 - config.go: DB实例 - repo.go ```go import ( "first/src/first-api/Config" models "first/src/first-api/Model" ) func GetAllUsers(user *models.User, pagination *models.Pagination) (*[]models.User, error) { var users []models.User offset := (pagination.Page - 1) * pagination.Limit queryBuider := Config.DB.Limit(pagination.Limit).Offset(offset).Order(pagination.Sort) result := queryBuider.Model(&models.User{}).Where(user).Find(&users) if result.Error != nil { msg := result.Error return nil, msg } return &users, nil } ``` ### 其他值得阅读 #### 一个startup架构概览 原文:[Architecture for a startup](https://itnext.io/architecture-for-a-startup-86651962bc99) - 静态前台(Static web app): - S3 + CloudFront CDN + Route53 - 后台(Backend production system) - EC2(auto-scaling group)+ AWS ElasticCache + MySQL (RDS) + ALB + Cognito - 分析(Analytics system) - Metabase + ALB + Cognito - 监视(Monitoring) - NewRelic free tier + self-hosted Sentry server - 部署(deployment) - Jenkins - Terraform is used for infrastructure as code - Ansible is used as configuration management. #### 我的妈妈在用Arch Linux 原文:[My Mom Uses Arch Linux](https://medium.com/gdg-vit/my-mom-uses-archlinux-e678f29b0df7) [This gist](https://gist.github.com/L04DB4L4NC3R/90c63f222620758cc069f36ae7354375) covers the whole step-by-step procedure I followed to get it up and running. - Desktop Environment: *Cinnamon* - Window Manager: *Mutter* - File Manager: *Nemo* - Video Player: mpv - Image Viewer: *feh* - Browser: *Firefox* #### 大规模Vue.js应用的4个最佳实践 原文:[4 Best Practices for Large Scale Vue.js Projects](https://blog.bitsrc.io/4-best-practices-for-large-scale-vue-js-projects-9a533450bdb2) - Use Vue Slots - F.I.R.S.T principle: Build & share independent components - [Bit](https://bit.dev/) - well organized VUEX Store ``` └── store ├── index.js ├── actions.js ├── mutations.js └── modules ``` - Unit Tests - Jest, Karma, or Mocha ## 一点收获 - 人生是一场没有赛道的长跑。持续比强度重要。 - GPT-3 learning corpus consists of the common-craw dataset. The dataset includes 45TB of textual data or most of the internet. GPT-3 is 175 Billion parameter models as compared to 10–100 Trillion parameters in a human brain. -- [GPT-3 Explained to a 5-year-old](https://pub.towardsai.net/gpt-3-explained-to-a-5-year-old-1f3cb9fa030b)