├── .gitignore ├── LICENSE ├── README.md ├── code ├── AI │ └── README.md ├── Algorithms │ └── README.md ├── BigData │ └── README.md ├── Cloud │ └── README.md ├── Git │ └── README.md ├── JavaProgramming │ └── README.md ├── Linux │ └── README.md ├── Network │ └── README.md ├── OperatingSystem │ └── README.md ├── PythonProgramming │ └── README.md └── Web │ └── README.md └── doc ├── AI └── README.md ├── Algorithms ├── LeetCode229 ├── README.md ├── leetcode103.md ├── leetcode130.md ├── 快速排序.md └── 树的遍历.md ├── BigData └── README.md ├── Cloud └── README.md ├── Fabric ├── 1900022730-Hyperledger Fabric1.4 建立联盟链.md ├── 1900022795.md ├── 1901210501_kcoins_fabric.pdf ├── 1901210678.md ├── 1901210725.md ├── 1901220052_区块链搭建过程.docx ├── FABRIC入门.pdf ├── README.md ├── kcoin_智能合约_fabric环境搭建及样例技术博客.md └── pic │ ├── image-20191105232729034.png │ ├── image-20191106000153385.png │ ├── image-20191106012119007.png │ ├── image-20191106012134469.png │ └── image-20191107160433498.png ├── Git ├── ClearCommit.md ├── Git团队协作常用术语.md ├── HowToUseUpstream.md └── README.md ├── GoLang ├── 1901210501 ├── 0408_20191102_Go语言学习报告.md ├── 1800022815.md ├── 1800022851.md ├── 1900022730.md ├── 1900022750.md ├── 1900022752.md ├── 1900022763.md ├── 1900022795.md ├── 1901210269.md ├── 1901210270.md ├── 1901210273.md ├── 1901210293golang.md ├── 1901210377.md ├── 1901210384.md ├── 1901210389.md ├── 1901210432.md ├── 1901210432_LeetCode 202&1122.md ├── 1901210447.md ├── 1901210466.md ├── 1901210556.md ├── 1901210560.md ├── 1901210581.md ├── 1901210645.md ├── 1901210649.md ├── 1901210657.md ├── 1901210678.md ├── 1901210698.md ├── 1901210725.md ├── 1901210749.md ├── 1901210782.md ├── 1901220052.md ├── README.md └── images │ ├── LeetCode127.png │ ├── LeetCode127题目.png │ ├── LeetCode129.png │ ├── LeetCode129题目.png │ ├── LeetCode299.jpg │ └── LeetCode313.jpg ├── HomeWork ├── 1900022763.md ├── AICoder │ ├── 1900022720.md │ ├── 1900022768.md │ ├── 1900022772.md │ ├── 1900022802.md │ ├── 1900022829.md │ ├── 1900022836.md │ ├── 1901210264.md │ ├── 1901210275.md │ ├── 1901210282.md │ ├── 1901210287.md │ ├── 1901210330.md │ ├── 1901210380.md │ ├── 1901210388.md │ ├── 1901210401.md │ ├── 1901210451.md │ ├── 1901210498.md │ ├── 1901210501.md │ ├── 1901210515.md │ ├── 1901210520.md │ ├── 1901210536.md │ ├── 1901210539.md │ ├── 1901210557.md │ ├── 1901210568.md │ ├── 1901210577.md │ ├── 1901210580.md │ ├── 1901210618.md │ ├── 1901210625.md │ ├── 1901210675.md │ ├── 1901210694.md │ ├── 1901210729.md │ ├── 1901210733.md │ ├── 1901210745.md │ ├── 1901210752.md │ ├── 1901210755.md │ ├── 1901210756.md │ ├── 1901210779.md │ ├── 1901210818.md │ └── README.md ├── DevUI │ ├── 1800022828.md │ ├── 1900022733.md │ ├── 1900022753.md │ ├── 1900022754(1).md │ ├── 1900022754.md │ ├── 1900022799.md │ ├── 1900022808.md │ ├── 1900022816.md │ ├── 1900022817.md │ ├── 1900022846.md │ ├── 1901210386.md │ ├── 1901210421.md │ ├── 1901210467.md │ ├── 1901210481.md │ ├── 1901210747.md │ ├── 1901210777.md │ └── README.md ├── KCoin │ ├── 1800022815.md │ ├── 1800022851.md │ ├── 1900022730.md │ ├── 1900022750.md │ ├── 1900022752.md │ ├── 1900022763.md │ ├── 1900022795.md │ ├── 1901210269.md │ ├── 1901210270.md │ ├── 1901210273.md │ ├── 1901210293.md │ ├── 1901210377.md │ ├── 1901210384.md │ ├── 1901210389.md │ ├── 1901210408.md │ ├── 1901210432.md │ ├── 1901210447.md │ ├── 1901210454.md │ ├── 1901210466.md │ ├── 1901210501.md │ ├── 1901210556.md │ ├── 1901210560.md │ ├── 1901210581.md │ ├── 1901210645.md │ ├── 1901210649.md │ ├── 1901210654.md │ ├── 1901210657.md │ ├── 1901210678.md │ ├── 1901210698.md │ ├── 1901210720.md │ ├── 1901210725.md │ ├── 1901210749.md │ ├── 1901210782.md │ ├── 1901220052.md │ ├── README.md │ ├── review-report │ │ ├── 1900022730.md │ │ ├── 1900022750.md │ │ ├── 1900022763.md │ │ ├── 190002295.md │ │ ├── 1901210000.md │ │ ├── 1901210269.md │ │ ├── 1901210377.md │ │ ├── 1901210384.md │ │ ├── 1901210389.md │ │ ├── 1901210408.md │ │ ├── 1901210447.md │ │ ├── 1901210466.md │ │ ├── 1901210501.md │ │ ├── 1901210649.md │ │ ├── 1901210678.md │ │ ├── 1901210725.md │ │ ├── 1901210749.md │ │ └── 1901220052.md │ └── 周报-Kcoin-1900022763.md ├── OSScan │ ├── 1800022830.md │ ├── 1900022708.md │ ├── 1900022718.md │ ├── 1900022720.md │ ├── 1900022735.md │ ├── 1900022737.md │ ├── 1900022773.md │ ├── 1900022784.md │ ├── 1900022785.md │ ├── 1900022791.md │ ├── 1900022803.md │ ├── 1900022824.md │ ├── 1900022842.md │ ├── 1900022843.md │ ├── 1900022844.md │ ├── 1900022850.md │ ├── 1901210279.md │ ├── 1901210351.md │ ├── 1901210362.md │ ├── 1901210405.md │ ├── 1901210410.md │ ├── 1901210420.md │ ├── 1901210431.md │ ├── 1901210484.md │ ├── 1901210486.md │ ├── 1901210498.md │ ├── 1901210502.md │ ├── 1901210514.md │ ├── 1901210518.md │ ├── 1901210584.md │ ├── 1901210607.md │ ├── 1901210650.md │ ├── 1901210694.md │ ├── 1901210724.md │ ├── 1901210736.md │ ├── 1901210742.md │ └── README.md └── README.md ├── JavaProgramming └── README.md ├── Linux └── README.md ├── ML └── README.md ├── ML_Python └── README.md ├── ML_TensorFlow └── README.md ├── Network └── README.md ├── OperatingSystem └── README.md ├── PythonProgramming └── README.md ├── Start ├── README.md └── images │ ├── README.md │ ├── fork.png │ ├── pr-01.png │ ├── use-ssh-01.png │ ├── use-ssh-02.png │ └── use-ssh-03.png ├── Web └── README.md └── blog /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | */.DS_Store 3 | .idea 4 | 5 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 OS-ABC 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 欢迎来到OS-ABC/HelloWorld开源项目 2 | 3 | **OS-ABC/HelloWorld是一个帮助大家学习开源技术的「入门级项目」** 4 | 任何一门IT技术或编程语言都是从HelloWorld开始学起,如果你想学习开源技术或通过开源项目学习软件开发技术,必定也要先从HelloWorld开始,以帮助你少走弯路。 5 | 6 | 7 | 8 | ## OS-ABC/HelloWorld项目包含哪些内容 9 | <<<<<<< HEAD 10 | + 如何快速参与及使用本项目 11 | ======= 12 | + [如何快速参与及使用本项目](/doc/Start/README.md) 13 | >>>>>>> c1836851ee05217374676fedbee34ec7017819c2 14 | + 第一部分 基础知识 15 | + Linux基本命令使用 16 | + git基本使用 17 | + Markdown文档编辑 18 | + 开源社区基本概念 19 | + 第二部分 编程语言实践 20 | * C++语言基础实践 21 | * JAVA语言基础实践 22 | * Python语言基础实践 23 | * Go语言基础实践 24 | * Html+CSS语言基础实践 25 | * JavaScript语言基础实践 26 | * SQL语言基础实践 27 | + 第三部分 框架及平台实践 28 | * 云计算平台 29 | * 大数据平台 30 | * 前端框架 31 | * 后端框架 32 | * iOS平台 33 | * Android平台 34 | * TensorFlow框架 35 | <<<<<<< HEAD 36 | + 第四部分 子模块开发实践 37 | ======= 38 | + 第四部分 机器学习原理与实践 39 | * [机器学习原理](doc/ML/README.md) 40 | * [机器学习_Python实践](doc/ML_Python/README.md) 41 | * [机器学习_TensorFlow实践](doc/ML_TensorFlow/README.md) 42 | * 手写数字识别系统_Python实践 43 | * 手写数字识别系统_TensorFlow实践 44 | + 第五部分 子模块开发实践 45 | >>>>>>> c1836851ee05217374676fedbee34ec7017819c2 46 | * 爬虫模块 47 | * 用户注册登录模块 48 | * Excel导入导出模块 49 | * PDF导出模块 50 | <<<<<<< HEAD 51 | + 第五部分 开源项目学习 52 | ======= 53 | + 第六部分 开源项目学习 54 | >>>>>>> c1836851ee05217374676fedbee34ec7017819c2 55 | * ServiceComb 56 | * SkyWalking 57 | * DolphinScheduler 58 | * Wechaty 59 | * DevUI 60 | <<<<<<< HEAD 61 | + 第六部分 理论知识 62 | * 操作系统 63 | * 计算机网路 64 | * 数据结构与算法 65 | 66 | ======= 67 | + 第七部分 理论知识 68 | * 操作系统 69 | * 计算机网路 70 | * 数据库 71 | * [数据结构与算法](/doc/Algorithms/README.md) 72 | 73 | 74 | ## 学习记录与总结 75 | + 【[周报](/doc/HomeWork/)】 76 | 77 | 78 | 79 | 80 | # 著作权申明 81 | License: CC BY-NC-SA 4.0 82 | 83 | Creative Commons License 84 | - 本作品选择采用:署名-非商业性使用-相同方式共享 的CC协议。 85 | - 您可以:复制、发行、展览、表演、放映、广播或通过信息网络传播本作品。以及创作演绎作品。 86 | - 惟须遵守下列条件: 87 | - 署名 — 您必须按照作者或者许可人指定的方式对作品进行署名。 88 | - 署名方式为:在转载或新作品开头的显著位置,注明原作者的姓名、来源及其采用的知识共享协议,与本作品在Github上的原发地址建立链接 89 | - 非商业性使用 — 您不得将本作品用于商业目的。 90 | - 相同方式共享 — 如果您改变、转换本作品或者以本作品为基础进行创作,您只能采用与本协议相同的许可协议发布基于本作品的演绎作品。 91 | >>>>>>> c1836851ee05217374676fedbee34ec7017819c2 92 | -------------------------------------------------------------------------------- /code/AI/README.md: -------------------------------------------------------------------------------- 1 | <<<<<<< HEAD 2 | # HelloWorld 3 | ======= 4 | # HelloWorld 5 | 6 | hello everyone! 7 | I am here to learn github. 8 | I like music ,art and games. I will try my best to overcome all problem. 9 | >>>>>>> c1836851ee05217374676fedbee34ec7017819c2 10 | -------------------------------------------------------------------------------- /code/Algorithms/README.md: -------------------------------------------------------------------------------- 1 | # HelloWorld -------------------------------------------------------------------------------- /code/BigData/README.md: -------------------------------------------------------------------------------- 1 | # HelloWorld -------------------------------------------------------------------------------- /code/Cloud/README.md: -------------------------------------------------------------------------------- 1 | # HelloWorld -------------------------------------------------------------------------------- /code/Git/README.md: -------------------------------------------------------------------------------- 1 | # HelloWorld -------------------------------------------------------------------------------- /code/JavaProgramming/README.md: -------------------------------------------------------------------------------- 1 | # HelloWorld -------------------------------------------------------------------------------- /code/Linux/README.md: -------------------------------------------------------------------------------- 1 | # HelloWorld -------------------------------------------------------------------------------- /code/Network/README.md: -------------------------------------------------------------------------------- 1 | # HelloWorld -------------------------------------------------------------------------------- /code/OperatingSystem/README.md: -------------------------------------------------------------------------------- 1 | # HelloWorld -------------------------------------------------------------------------------- /code/PythonProgramming/README.md: -------------------------------------------------------------------------------- 1 | # HelloWorld -------------------------------------------------------------------------------- /code/Web/README.md: -------------------------------------------------------------------------------- 1 | # HelloWorld -------------------------------------------------------------------------------- /doc/AI/README.md: -------------------------------------------------------------------------------- 1 | # HelloWorld -------------------------------------------------------------------------------- /doc/Algorithms/LeetCode229: -------------------------------------------------------------------------------- 1 | 给定一个大小为 n 的数组,找出其中所有出现超过 ⌊ n/3 ⌋ 次的元素。 2 | 说明: 要求算法的时间复杂度为 O(n),空间复杂度为 O(1)。 3 | 4 | 解法: 5 | func majorityElement(nums []int) []int { 6 | out := []int{} 7 | a, b, c1, c2, l := 0, 0, 0, 0, len(nums) 8 | for _, num := range nums { 9 | if num == a { 10 | c1++ 11 | } else if num == b { 12 | c2++ 13 | } else if c1 == 0 { 14 | a, c1 = num, 1 15 | } else if c2 == 0 { 16 | b, c2 = num, 1 17 | } else { 18 | c1, c2 = c1-1, c2-1 19 | } 20 | } 21 | c1, c2 = 0, 0 22 | for _, num := range nums { 23 | if num == a { 24 | c1++ 25 | } else if num == b { 26 | c2++ 27 | } 28 | } 29 | if c1 > l/3 { 30 | out = append(out, a) 31 | } 32 | if c2 > l/3 { 33 | out = append(out, b) 34 | } 35 | return out 36 | } 37 | -------------------------------------------------------------------------------- /doc/Algorithms/README.md: -------------------------------------------------------------------------------- 1 | <<<<<<< HEAD 2 | # HelloWorld 3 | ======= 4 | 5 | - 算法分析基础 6 | - 时间复杂性 7 | - 空间复杂性 8 | - 伪码描述 9 | - 基础数据结构 10 | - 链表 11 | - 堆和栈 12 | - 哈希表 13 | - 字符串 14 | - 二叉树 15 | - 图 16 | - 算法设计思想 17 | - 穷举 18 | - 分治 19 | - 动态规划 20 | - 贪心 21 | - 回溯 22 | - 分支限界 23 | - 线性规划 24 | - NP完全性 25 | - 排序问题 26 | - 插入排序 27 | - 冒泡排序 28 | - 选择排序 29 | - 希尔排序 30 | - 快速排序 31 | - 归并排序 32 | - 堆排序 33 | - 桶排序 34 | - 基数排序 35 | - 查找问题 36 | - 顺序表查找 37 | - 有序表查找 38 | - 分块查找 39 | - 动态查找 40 | - 哈希表 41 | - 海量数据处理 42 | - Hash映射 43 | - Bitmap 44 | - Bloom filter 45 | - Trie树 46 | - 数据库索引 47 | - 倒排索引 48 | - 双层桶划分 49 | - 外排序 50 | - simhash算法 51 | - Mapreduce 52 | >>>>>>> c1836851ee05217374676fedbee34ec7017819c2 53 | -------------------------------------------------------------------------------- /doc/Algorithms/leetcode103.md: -------------------------------------------------------------------------------- 1 | Leetcode 中等难度 篇 2 | 3 | [103. 二叉树的锯齿形层次遍历](https://leetcode-cn.com/problems/binary-tree-zigzag-level-order-traversal/submissions/) 4 | 5 | 题目描述:给定一个二叉树,返回其节点值的锯齿形层次遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。 6 | 7 | 解题思路;基于层序遍历,外加每层遍历时,设置一个变量,实现每两次翻转一次数据。 重点还是层序遍历。 8 | 9 | 基于python 实现的代码如下: 10 | ```python 11 | # Definition for a binary tree node. 12 | # class TreeNode: 13 | # def __init__(self, x): 14 | # self.val = x 15 | # self.left = None 16 | # self.right = None 17 | 18 | class Solution: 19 | def zigzagLevelOrder(self, root: TreeNode) -> List[List[int]]: 20 | # 判空处理 21 | if not root: 22 | return 23 | 24 | vals = [] 25 | nodes = [root] 26 | flag = False 27 | while len(nodes): 28 | lev = [] 29 | size = len(nodes) 30 | for i in range(size): 31 | node = nodes.pop(0) 32 | lev.append(node.val) 33 | if node.left: 34 | nodes.append(node.left) 35 | if node.right: 36 | nodes.append(node.right) 37 | # 每两次转置一次数据 38 | if flag: 39 | lev.reverse() 40 | vals.append(lev) 41 | flag = not flag 42 | return vals 43 | ``` 44 | **时间复杂度为 O(n), 空间复杂度为 O(n)** 45 | 46 | 自己只实现了python 版本, 欢迎各位修改不足,或者给出其他版本的实现。 47 | 48 | 添加 C++ 版本的代码如下: 49 | ``` c++ 50 | /** 51 | * Definition for a binary tree node. 52 | * struct TreeNode { 53 | * int val; 54 | * TreeNode *left; 55 | * TreeNode *right; 56 | * TreeNode(int x) : val(x), left(NULL), right(NULL) {} 57 | * }; 58 | */ 59 | class Solution { 60 | public: 61 | vector> zigzagLevelOrder(TreeNode* root) { 62 | queue q; 63 | vector> res; 64 | if (root == NULL) return res; 65 | q.push(root); 66 | int flag = 1; 67 | while (!q.empty()){ 68 | int len = q.size(); 69 | vector temp; 70 | for (int i = 0; i < len; i ++){ 71 | TreeNode *t = q.front(); 72 | if (t->left != NULL) q.push(t->left); 73 | if (t->right != NULL) q.push(t->right); 74 | temp.push_back(t->val); 75 | q.pop(); 76 | } 77 | if (flag == 1) { 78 | res.push_back(temp); 79 | } 80 | else { 81 | reverse(temp.begin(), temp.end()); 82 | res.push_back(temp); 83 | } 84 | flag *= -1; 85 | } 86 | return res; 87 | } 88 | }; 89 | ``` -------------------------------------------------------------------------------- /doc/Algorithms/leetcode130.md: -------------------------------------------------------------------------------- 1 | ###leetcoe 130 2 | [130. 被围绕的区域](https://leetcode-cn.com/problems/surrounded-regions/submissions/) 3 | 4 | **题目描述**:给定一个二维的矩阵,包含 'X' 和 'O'(字母 O)。 5 | 找到所有被 'X' 围绕的区域,并将这些区域里所有的 'O' 用 'X' 填充。 6 | 7 | **示例**: 8 | ``` 9 | X X X X 10 | X O O X 11 | X X O X 12 | X O X X 13 | ``` 14 | 15 | 运行你的函数后,矩阵变为: 16 | ``` 17 | X X X X 18 | X X X X 19 | X X X X 20 | X O X X 21 | ``` 22 | 23 | **解释**: 24 | 25 | 被围绕的区间不会存在于边界上,换句话说,任何边界上的 'O' 都不会被填充为 'X'。 任何不在边界上,或不与边界上的 'O' 相连的 'O' 最终都会被填充为 'X'。如果两个元素在水平或垂直方向相邻,则称它们是“相连”的。 26 | 27 | **解题思路**:首先理解题目后,感觉要用深搜,在矩阵中存在两类元素,一类是要被改变的,即被包围的'O';一类是不需要改变的,即'X'和处于边缘的'O'。那么应该关注哪一部分呢? 借鉴[文章](https://github.com/azl397985856/leetcode/blob/master/problems/130.surrounded-regions.md0),选择后者,扫描二维数组时,对于不会改变的'O'做好标记,之后再扫描一次,对没有标记的且要改变的数值进行改变。 28 | 29 | ```python 30 | class Solution: 31 | # 标记与board[i][j]相邻的不需要改变的'O' 32 | def mark(self, board, rows, cols, i, j): 33 | if i < 0 or i >= rows or j < 0 or j >= cols or board[i][j] != 'O': 34 | return 35 | board[i][j] = 'A' 36 | self.mark(board, rows, cols, i + 1, j) 37 | self.mark(board, rows, cols, i - 1, j) 38 | self.mark(board, rows, cols, i, j + 1) 39 | self.mark(board, rows, cols, i, j - 1) 40 | 41 | def solve(self, board: List[List[str]]) -> None: 42 | """ 43 | Do not return anything, modify board in-place instead. 44 | """ 45 | rows = len(board) 46 | if rows < 2: 47 | return 48 | cols = len(board[0]) 49 | 50 | for i in range(rows): 51 | for j in range(cols): 52 | if 0 == i or rows - 1 == i or 0 == j or cols - 1 == j: 53 | self.mark(board, rows, cols, i, j) 54 | 55 | for i in range(rows): 56 | for j in range(cols): 57 | if board[i][j] == 'O': 58 | board[i][j] = 'X' 59 | elif board[i][j] == 'A': 60 | board[i][j] = 'O' 61 | ``` 62 | 63 | c++ 版本: 64 | ``` c++ 65 | class Solution { 66 | public: 67 | int mx[4] = {0, 0, 1, -1}; 68 | int my[4] = {1, -1, 0, 0}; 69 | void solve(vector>& board) { 70 | if (board.size() == 0) return; 71 | int n = board.size(), m = board[0].size(); 72 | 73 | vector> visited(n, vector(m, 0)); 74 | queue> q; 75 | for (int i = 0; i < m; i++) { 76 | if (board[0][i] == 'O') q.push({0, i}); 77 | if (board[n-1][i] == 'O') q.push({n-1, i}); 78 | } 79 | for (int i = 1; i < n-1; i++){ 80 | if (board[i][0] == 'O') q.push({i, 0}); 81 | if (board[i][m-1] == 'O') q.push({i, m-1}); 82 | } 83 | while (!q.empty()){ 84 | pair temp = q.front(); 85 | q.pop(); 86 | int x = temp.first, y = temp.second; 87 | visited[x][y] = 1; 88 | for (int i = 0; i < 4; i++){ 89 | int tx = x + mx[i], ty = y + my[i]; 90 | if (tx >= 0 && tx < n && ty >= 0 && ty < m && !visited[tx][ty] && board[tx][ty] == 'O'){ 91 | q.push({tx, ty}); 92 | } 93 | } 94 | } 95 | for (int i = 0; i < n; i++){ 96 | for (int j = 0; j < m; j++){ 97 | if (board[i][j] == 'O' && visited[i][j]) 98 | continue; 99 | else board[i][j] = 'X'; 100 | } 101 | } 102 | 103 | } 104 | }; 105 | ``` -------------------------------------------------------------------------------- /doc/Algorithms/快速排序.md: -------------------------------------------------------------------------------- 1 | # 快速排序 2 | 时间复杂度(平均)$O(nlogn)$: 3 | 4 | ``` c++ 5 | void quick (int nums[], int l, int r) { 6 | if (l >= r) return; 7 | int pivot = nums[r-1]; 8 | int index = l; 9 | for (int i = l; i < r-1; i++) { 10 | if (nums[i] < pivot) swap(nums[index++], nums[i]); 11 | } 12 | swap(nums[r-1], nums[index]); 13 | quick(nums, l, index); 14 | quick(nums, index+1, r); 15 | } 16 | ``` 17 | 18 | ## 应用:[找第k大的数](https://leetcode.com/problems/kth-largest-element-in-an-array/)(快速选择算法) 19 | 20 | 时间复杂度(平均)$O(n)$: 21 | ``` c++ 22 | class Solution { 23 | public: 24 | int quick_sort(vector& nums, int l, int r, int k) { 25 | if (l == r-1) return nums[l]; 26 | int pivot = nums[r-1]; 27 | int cur = l; 28 | for (int i = l; i < r-1; i++) { 29 | if (nums[i] > pivot) { 30 | swap(nums[cur++], nums[i]); 31 | } 32 | } 33 | swap(nums[cur], nums[r-1]); 34 | int sl = cur - l + 1; 35 | if (sl > k) { 36 | return quick_sort(nums, l, cur, k); 37 | } 38 | else if (sl < k) { 39 | return quick_sort(nums, cur+1, r, k-sl); 40 | } 41 | else { 42 | return nums[cur]; 43 | } 44 | return -1; 45 | } 46 | 47 | int findKthLargest(vector& nums, int k) { 48 | int n = nums.size(); 49 | return quick_sort(nums, 0, n, k); 50 | } 51 | }; 52 | ``` -------------------------------------------------------------------------------- /doc/BigData/README.md: -------------------------------------------------------------------------------- 1 | # HelloWorld -------------------------------------------------------------------------------- /doc/Cloud/README.md: -------------------------------------------------------------------------------- 1 | # HelloWorld -------------------------------------------------------------------------------- /doc/Fabric/1900022795.md: -------------------------------------------------------------------------------- 1 | #2019.11.01-2019.11.07 2 | fabric 环境搭建 3 | 1. 安装 go 及环境变量配置 4 | (1) 下载最新版本的 go 二进制文件 5 | wget https://dl.google.com/go/go1.9.2.linux-amd64.tar.gz 6 | 7 | (2) 解压文件 8 | sudo tar -C /usr/local -xzf go1.9.2.linux-amd64.tar.gz 9 | 10 | (3) 配置环境变量 11 | 打开左侧栏profile 12 | 13 | 添加以下内容: 14 | 15 | export PATH=$PATH:/usr/local/go/bin 16 | export GOROOT=/usr/local/go 17 | export GOPATH=$HOME/go 18 | export PATH=$PATH:$HOME/go/bin 19 | 20 | 21 | 保存退出 22 | (4)使文件生效 23 | 24 | 25 | 26 | 27 | 2. 安装 Docker 28 | Fabric 的 chaincode 是运行在 docker 里的。 29 | (1) 由于 apt 官方库里的 docker 版本可能比较旧,所以先卸载可能存在的旧版本: 30 | sudo apt-get remove docker docker-engine docker-ce docker.io 31 | 32 | 33 | (2) 更新 apt 包索引: 34 | sudo apt-get update 35 | 36 | (3) 安装以下包以使 apt 可以通过 HTTPS 使用存储库(repository): 37 | sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common 38 | 39 | 40 | (4) 添加 Docker 官方的 GPG 密钥: 41 | curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - 42 | 备注:可验证秘钥指纹 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88 43 | 使用如下命令验证: 44 | sudo apt-key fingerprint 0EBFCD88 45 | 46 | 47 | (5) 使用下面的命令来设置 stable 存储库: 48 | sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" 49 | 50 | (6) 再更新一下 apt 包索引: 51 | sudo apt-get update 52 | (7) 安装最新版本的 Docker CE: 53 | sudo apt-get install -y docker-ce 54 | 注意:在生产系统上,可能会需要应该安装一个特定版本的Docker CE,而不是总是使用最新版本: 55 | 列出可用的版本:apt-cache madison docker-ce 56 | 选择要安装的特定版本,第二列是版本字符串,第三列是存储库名称,它指示包来自哪个存储库,以及扩展它的稳定性级别。要安装一个特定的版本,将版本字符串附加到包名中,并通过等号(=)分隔它们: 57 | sudo apt-get install docker-ce= 58 | 59 | 60 | (8) 测试是否安装成功 61 | docker --version 62 | 63 | (9) 找到etc 目录创建docker 文件夹,创建文件 daemon.json,输入下面的内容: 64 | { 65 | "registry-mirrors": ["https://obou6wyb.mirror.aliyuncs.com"] 66 | } 67 | 68 | 保存并退出 69 | sudo systemctl daemon-reload 70 | sudo systemctl restart docker 71 | 72 | (10) 查看 docker 服务是否启动: 73 | systemctl status docker 74 | 75 | 76 | 3. 安装最新版本的 Docker-compose 77 | (1) Docker-compose 是支持通过模板脚本批量创建 Docker 容器的一个组件。在安装 Docker-Compose 之前,需要安装 Python-pip,运行脚本: 78 | sudo apt-get install python-pip 79 | 80 | (2) 安装 Docker-compose: 81 | 82 | pip install docker-compose 83 | 84 | 遇到错误 85 | 86 | 87 | 解决办法:升级pip和setup 88 | pip install --upgrade pip 89 | 90 | 91 | pip install --upgrade setuptools 92 | 93 | 94 | (3)验证是否安装成功 95 | sudo docker-compose –version 96 | 97 | 98 | 4.Fabric 源码下载 99 | (1) 新建存放测试、部署代码的目录。 100 | mkdir -p ~/go/src/github.com/hyperledger/ 101 | (2) cd 到刚创建的目录 102 | cd ~/go/src/github.com/hyperledger 103 | (3) 下载 Fabric, 这里使用使用 git 命令下载源码: 104 | git clone https://github.com/hyperledger/fabric.git 105 | 106 | 107 | (4) 由于 Fabric 一直在更新,新版本的并不稳定,所有我们并不需要最新的源码,需要切换到 v1.0.0 版本的源码: 108 | git checkout v1.0.0 109 | 110 | 111 | 5. 下载 Fabric Docker 镜像 112 | (1) 前面步骤 4 下载完成后,我们可以看到当前工作目录 (~/go/src/github.com/hyperledger/) 下多了一个 fabric 的文件夹, 113 | 接下来我们 cd 到~/go/src/github.com/hyperledger/fabric/examples/e2e_cli 目录下执行: 114 | 115 | source download-dockerimages.sh -c x86_64-1.0.0 -f x86_64-1.0.0 116 | 117 | (2) 重启 Docker 118 | 119 | service docker restart 120 | 121 | 122 | 123 | 6. 测试 Fabric 环境是否成功 124 | 在~/go/src/github.com/hyperledger/fabric/examples/e2e_cli 下执行如下命令启动测试 125 | 126 | ./network_setup.sh up 127 | 128 | 遇到错误 129 | 130 | -------------------------------------------------------------------------------- /doc/Fabric/1901210501_kcoins_fabric.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OS-ABC/HelloWorld/d003d9f0943635abe5c99d88f47913feba0631f9/doc/Fabric/1901210501_kcoins_fabric.pdf -------------------------------------------------------------------------------- /doc/Fabric/1901210678.md: -------------------------------------------------------------------------------- 1 | # Fabirc 2 | Q: 安装遇到错误Error: Error endorsing chaincode: rpc error: code = Unknown desc = Error starting container: API error (404): {"message":"network e2ecli_default not found"} 3 | A: 编辑文件go/src/github.com/hyperledger/fabric/examples/e2e_cli/base/peer-base.yaml 文件。将其中的CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=e2ecli_default 4 | 修改为CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=e2e_cli_default 5 | 6 | Q: 无法通过-C mychannel -n devincc -v 1.0 -c ‘{“Args”:[“init”,”a”, “100”, “b”,”200”]}’ -P “OR (‘Org1MSP.member’,’Org2MSP.member’)”后缀来进行转账 7 | A: -cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem是证书选项,必须使用 8 | 9 | Q: linux环境下fabric的基础操作 10 | A: 通过docker exec -it cli bash进入,exit退出,mychannel,mysc是默认开启的频道。 11 | 12 | Q: 重启服务 13 | A: 在e2e_cli_default中./network_setup.sh down 将之前启动的多个peer服务关闭掉 14 | 再次执行 ./network_setup.sh up。关闭后每个peer中的余额会重置。 15 | 16 | ## 基础教程 17 | IBM教程https://www.ibm.com/developerworks/cn/cloud/library/cl-lo-hyperledger-fabric-study-notes1/index.html 18 | 中文文档https://learnblockchain.cn/2018/11/21/fabric_introduction/ 19 | https://blog.csdn.net/vivian_ll/article/details/79966210 20 | ## 安装错误 21 | 不能找到文件https://blog.csdn.net/wxb880114/article/details/79674823 22 | 23 | 24 | # Fabric_ca 25 | 26 | Fabric CA是Hyperledger Fbric的证书认证中心,提供以下功能:用户信息的登记与注册,数字证书的颁发与管理。 27 | 我们应该为每个Org建立一个CA,由CA来管理其中的用户。下面我们就试着讲Fabric CA集成到整个Fabric网络中,并用CA Client生成新用户,最终使用新用户调用ChainCode,验证新用户的合法性。不同的组织管理自己的admin账号,并创建新的peer,而官方负责orderer节点 28 | 结构如下,需要创建MSP放到对应的位置上 29 | 主节点的msp 30 | Order的msp 31 | user下的admin的msp 32 | Org1 的msp 33 | Peer0的msp 34 | Peer1的msp 35 | User的admin的msp 36 | Org2的msp 37 | Peer0的msp 38 | Peer1的msp 39 | user的admin的msp 40 | 41 | 42 | 首先可以通过fabric-ca-server init进行初始化,创建证书和私钥以及配置文件,也可以直接进行start,第一次start时会自动执行init的操作。这种操作产生的根证书是自签的。可以进行验证:(openssl verify -CAfile ca-cert.pem ca-cert.pem 返回ok) 43 | -------------------------------------------------------------------------------- /doc/Fabric/1901220052_区块链搭建过程.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OS-ABC/HelloWorld/d003d9f0943635abe5c99d88f47913feba0631f9/doc/Fabric/1901220052_区块链搭建过程.docx -------------------------------------------------------------------------------- /doc/Fabric/FABRIC入门.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OS-ABC/HelloWorld/d003d9f0943635abe5c99d88f47913feba0631f9/doc/Fabric/FABRIC入门.pdf -------------------------------------------------------------------------------- /doc/Fabric/README.md: -------------------------------------------------------------------------------- 1 | 智能合约组技术博客。 2 | -------------------------------------------------------------------------------- /doc/Fabric/pic/image-20191105232729034.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OS-ABC/HelloWorld/d003d9f0943635abe5c99d88f47913feba0631f9/doc/Fabric/pic/image-20191105232729034.png -------------------------------------------------------------------------------- /doc/Fabric/pic/image-20191106000153385.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OS-ABC/HelloWorld/d003d9f0943635abe5c99d88f47913feba0631f9/doc/Fabric/pic/image-20191106000153385.png -------------------------------------------------------------------------------- /doc/Fabric/pic/image-20191106012119007.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OS-ABC/HelloWorld/d003d9f0943635abe5c99d88f47913feba0631f9/doc/Fabric/pic/image-20191106012119007.png -------------------------------------------------------------------------------- /doc/Fabric/pic/image-20191106012134469.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OS-ABC/HelloWorld/d003d9f0943635abe5c99d88f47913feba0631f9/doc/Fabric/pic/image-20191106012134469.png -------------------------------------------------------------------------------- /doc/Fabric/pic/image-20191107160433498.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OS-ABC/HelloWorld/d003d9f0943635abe5c99d88f47913feba0631f9/doc/Fabric/pic/image-20191107160433498.png -------------------------------------------------------------------------------- /doc/Git/ClearCommit.md: -------------------------------------------------------------------------------- 1 | 有时候当不小心上传了一个很大的文件到github上时,后面在git clone的时候需要等很长的时间(这是因为git克隆代码库时会将所有历史的文件都保存下来),即使你删除了这个文件,但是为了实现正常的分支切换,这个文件的信息依然保存在代码库里。或者有时将一些私密的文件不小心上传了(会泄露个人隐私),所以为了解决这个问题,可以考虑重置代码库,即将所有的历史提交信息删除。 2 | 3 | - 尝试 运行 git checkout --orphan latest_branch (拉分支) 4 | - 添加所有文件git add -A 5 | - 提交更改git commit -am "commit message"(提交) 6 | - 删除分支git branch -D master(删除主分支) 7 | - 将当前分支重命名git branch -m master 8 | - 最后,强制更新存储库。git push -f origin master 9 | 10 | ———————————————— 11 | 版权声明:本文为CSDN博主「Sleep_god」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。 12 | 原文链接:https://blog.csdn.net/Sleep_god/article/details/87870174 13 | -------------------------------------------------------------------------------- /doc/Git/Git团队协作常用术语.md: -------------------------------------------------------------------------------- 1 | # Git 团队协作中常用术语 2 | 0. WIP: Work in progress, do not merge yet. 3 | // 开发中,传说中提 PR 的最佳实践是,如果你有个改动很大的 PR,可以在写了一部分的情况下先提交,但是在标题里写上 WIP, 4 | //以告诉项目维护者这个功能还未完成,方便维护者提前 review 部分提交的代码。 5 | 1. LGTM: Looks good to me. // Riview 完别人的 PR ,没有问题(朕知道了 代码已经过 review,可以合并) 6 | 2. SGTM: Sounds Good To Me. //和上面那句意思差不多,也是已经通过了 review 的意思 7 | 3. PTAL: Please take a look. // 帮我看下,一般都是请别人 review 自己的 PR 8 | 4. CC: Carbon copy // 一般代表抄送别人的意思 9 | 5. RFC:  request for comments. // 我觉得这个想法很好, 我们来一起讨论下 10 | 6. IIRC: if I recall correctly. // 如果我没记错 11 | 7. ACK: acknowledgement. // 我确认了或者我接受了,我承认了 12 | 8. NACK/NAK: negative acknowledgement. // 我不同意 13 | 9. PR: Pull Request. 拉取请求,给其他项目提交代码 14 | 10. TBR: To Be Reviewed. 提示维护者进行 review 15 | 11. TL,DR: Too Long,Didn't Read. 太长懒得看。也有很多文档在做简略描述之前会写这么一句 16 | 12. TBD: To Be Done(or Defined/Discussed/Decided/Determined). 根据语境不同意义有所区别,但一般都是还没搞定的意思 17 | 13. PRD: Product Requirement Document. 产品需求文档 18 | -------------------------------------------------------------------------------- /doc/Git/HowToUseUpstream.md: -------------------------------------------------------------------------------- 1 | # Git 如何使用upstream进行同步 2 | --- 3 | 背景:我们在fork源仓库后可能会面对如下状况: 4 | - 远程仓库更新了,自己的本地仓库没有更新,导致无法导致无法上传 5 | - 不知道怎么将本地文件更新到和源仓库一样 6 | 7 | 总而言之本文的宗旨是教会大家如何使用upstream,使本地仓库、源仓库、本地文件保持同步 8 | 9 | --- 10 | upstream是什么? 11 | 12 | 举个例子大家就可以知道,当你clone了自己的仓库到本地(git clone “自己的仓库” 13 | ,你会得到一个在本地得到托管该仓库的拷贝(也就是origin),也就是说origin指向你自己fork的 14 | 那份远程仓库。 15 | 知道origin是什么以后,upstream是什么也就很容易理解了,upstream就是指向源仓库的本地托管 16 | --- 17 | 如何创建upstream? 18 | 19 | git remote add upstream 原作者源仓库的URL(不是自己fork的) 20 | 这样就创建好了upstream,可以使用git remote -v查看 21 | 22 | --- 23 | 如何使用upstream? 24 | 通常我们在开发的时候仓库会有两个分支master和dev,我们通常需要对dev分支进行操作 25 | ,所以我以dev分支为例,教大家如何操作(如果想对master分支进行操作,只需要把一下的操作中dev改成master就行了) 26 | 27 | - 首先我们要在origin创建dev分支,使用命令git checkout -b dev 28 | - 然后我们要从upstream将源分支搞到本地,使用命令 29 | git fetch upstream 30 | git merge upstream/dev 31 | 这个时候本地已经更新为dev分支的内容了。 32 | - 然后我们要将本地的内容同步到自己项目的dev分支上,使用命令 33 | git push origin dev 34 | 35 | 这个时候所有的内容就保持同步了。 36 | --- 37 | 希望大家继续补充内容。 38 | -------------------------------------------------------------------------------- /doc/Git/README.md: -------------------------------------------------------------------------------- 1 | # HelloWorld -------------------------------------------------------------------------------- /doc/GoLang/1800022815.md: -------------------------------------------------------------------------------- 1 | # Golang算法题 2 | 3 | ## 第01周:11月03日打卡 4 | 5 | 1. 6 | 题目描述:输入一个int型的正整数,计算出该int型数据在内存中存储时1的个数。 7 | 输入描述:输入一个整数(int类型) 8 | 输出描述:这个数转换成2进制后,输出1的个数 9 | 10 | 题解: 11 | 12 | package main 13 | import "fmt" 14 | func main() { 15 | var num int 16 | fmt.Scanf("%d",&num) 17 | counter := 0 18 | for num>0{ 19 | num=num&(num-1) 20 | counter++ 21 | } 22 | fmt.Println(counter) 23 | } 24 | 25 | 2. 26 | 题目描述: 27 | 小明有26种游戏海报,用小写字母"a"到"z"表示。小明会把游戏海报装订成册(可能有重复的海报),册子可以用一个字符串来表示,每个字符就表示对应的海报,例如abcdea。小明现在想做一些“特别版”,然后卖掉。特别版就是会从所有海报(26种)中随机选一张,加入到册子的任意一个位置。 28 | 那现在小明手里已经有一种海报册子,再插入一张新的海报后,他一共可以组成多少不同的海报册子呢? 29 | 输入描述:海报册子的字符串表示,1 <= 字符串长度<= 20 30 | 输出描述:一个整数,表示可以组成的不同的海报册子种类数 31 | 32 | 题解: 33 | 34 | package main 35 | import "fmt" 36 | func main() { 37 | var s string 38 | fmt.Scan(&s) 39 | fmt.Println(postKinds(s)) 40 | } 41 | 42 | func postKinds(s string) int { 43 | return (len(s) + 1) * 26 - len(s) 44 | } 45 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /doc/GoLang/1800022851.md: -------------------------------------------------------------------------------- 1 | 2 | # LeetCode1 Two Sum 3 | Given an array of integers, return indices of the two numbers such that they add up to a specific target. 4 | 5 | You may assume that each input would have exactly one solution, and you may not use the same element twice. 6 | Example: 7 | 8 | Given nums = [2, 7, 11, 15], target = 9, 9 | 10 | Because nums[0] + nums[1] = 2 + 7 = 9, 11 | return [0, 1]. 12 | 13 | 算法解析:用把元素和坐标都存入到map集合中,用目标值减去每个元素,如果得到的结果存在于map中,就生成一个新的数组,元素为对应的下标值 14 | ``` 15 | func twoSum(nums []int, target int) []int { 16 | //使用make函数来创建切片(动态数组) 17 | //此处的m数组是键值对 18 | m := make(map[int]int) 19 | 20 | //for 循环的 range 格式可以对 slice、map、数组、字符串等进行迭代循环 21 | for i, n := range nums { 22 | //_表示忽略该变量,此处忽略第一个变量 23 | _, prs := m[n] 24 | //如果n已经在map集合中,就生成一个新的数组,m[n]是该元素的下标 25 | //此处如果存在,则prs为true,不存在则为false 26 | if prs { 27 | return []int{m[n], i} 28 | } else { 29 | m[target-n] = i 30 | } 31 | } 32 | //nil表示空值 33 | return nil 34 | } 35 | ``` 36 | 37 | # LeetCode 66 Plus One 38 | 39 | Given a non-empty array of digits representing a non-negative integer, plus one to the integer. 40 | 41 | The digits are stored such that the most significant digit is at the head of the list, and each element in the array contain a single digit. 42 | 43 | You may assume the integer does not contain any leading zero, except the number 0 itself. 44 | 45 | Example 1: 46 | 47 | Input: [1,2,3] 48 | Output: [1,2,4] 49 | Explanation: The array represents the integer 123. 50 | Example 2: 51 | 52 | Input: [4,3,2,1] 53 | Output: [4,3,2,2] 54 | Explanation: The array represents the integer 4321. 55 | 56 | 算法分析如下: 57 | ``` 58 | func plusOne(digits []int) []int { 59 | //求数组的长度 60 | var n int = len(digits) 61 | //从最后一个元素开始遍历 62 | for i:= n-1; i>=0; i--{ 63 | //如果该元素不等于9,就直接加1,并返回数组 64 | if digits[i] != 9 { 65 | digits[i]+=1 66 | return digits 67 | } else { 68 | //如果等于9,就置为0 69 | digits[i] = 0 70 | } 71 | } 72 | //极端情况,如果值为999,则上面得出的digits为000 73 | //此时新建一个数组,使其长度比digits的长度大1,并令第一个元素的值为1 74 | var a = make([]int,n+1) 75 | a[0] = 1 76 | return a 77 | } 78 | ``` 79 | -------------------------------------------------------------------------------- /doc/GoLang/1900022750.md: -------------------------------------------------------------------------------- 1 | ## GoLang学习笔记+算法题解 2 | 3 | 4 | 5 | ### 字符串中的第一个唯一字符LeetCode.387 6 | 7 | #### 题目描述 8 | 9 | 给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。 10 | 11 | **注意事项:**您可以假定该字符串只包含小写字母。 12 | 13 | **案例:** 14 | 15 | ``` 16 | s = "leetcode" 17 | 返回 0. 18 | 19 | s = "loveleetcode", 20 | 返回 2. 21 | ``` 22 | 23 | #### 题解 24 | 25 | - 思路: 26 | 27 | Go语言中的map(映射、字典)是一种内置的数据结构,它是一个无序的key—value对的集合,比如以身份证号作为唯一键来标识一个人的信息。 此题可建立map字典,遍历字符串,统计每种字符出现的次数。第二次遍历map,遇到的第一个出现次数为1的字符时返回位置即可。 28 | 29 | - 代码: 30 | 31 | ```go 32 | package main 33 | 34 | import "fmt" 35 | 36 | func main() { 37 | s := "loveleetcode" 38 | a := firstUniqChar(s) 39 | fmt.Println(a) 40 | } 41 | func firstUniqChar(s string) int { 42 | if len(s) <= 0 { 43 | return -1 44 | } 45 | //建立map字典,字符对应出现次数 46 | m := make(map[uint8]int) 47 | for i := range s { 48 | m[s[i]]++ 49 | } 50 | //第二次遍历,当遇到第一个出现次数为1的字符时输出所在位置 51 | for i := range s { 52 | if m[s[i]] == 1 { 53 | return i 54 | } 55 | } 56 | return -1 57 | } 58 | ``` 59 | 60 | 61 | 62 | ### 找到字符串中所有字母异位词LeetCode.438 63 | 64 | #### 题目描述 65 | 66 | 给定一个字符串 s 和一个非空字符串 p,找到 s 中所有是 p 的字母异位词的子串,返回这些子串的起始索引。 67 | 68 | 字符串只包含小写英文字母,并且字符串 s 和 p 的长度都不超过 20100。 69 | 70 | **说明:** 71 | 72 | - 字母异位词指字母相同,但排列不同的字符串。 73 | - 不考虑答案输出的顺序。 74 | 75 | **示例 1:** 76 | 77 | ``` 78 | 输入: 79 | s: "cbaebabacd" p: "abc" 80 | 81 | 输出: 82 | [0, 6] 83 | 84 | 解释: 85 | 起始索引等于 0 的子串是 "cba", 它是 "abc" 的字母异位词。 86 | 起始索引等于 6 的子串是 "bac", 它是 "abc" 的字母异位词。 87 | ``` 88 | 89 | **示例 2:** 90 | 91 | ``` 92 | 输入: 93 | s: "abab" p: "ab" 94 | 95 | 输出: 96 | [0, 1, 2] 97 | 98 | 解释: 99 | 起始索引等于 0 的子串是 "ab", 它是 "ab" 的字母异位词。 100 | 起始索引等于 1 的子串是 "ba", 它是 "ab" 的字母异位词。 101 | 起始索引等于 2 的子串是 "ab", 它是 "ab" 的字母异位词。 102 | ``` 103 | 104 | #### 题解 105 | 106 | - 思路: 107 | 108 | 因为不要求顺序相同,可以用字符串每个字符的累乘结果唯一标识这个字符串。两层循环判断s切片与p的累乘结果是否相等即可。 109 | 110 | - 代码: 111 | 112 | ~~~go 113 | package main 114 | 115 | import "fmt" 116 | 117 | func main() { 118 | s := "cbaebabacd" 119 | p := "abc" 120 | ret := findAnagrams(s, p) 121 | for i := 0; i < len(ret); i++ { 122 | fmt.Print(ret[i] , " ") 123 | } 124 | } 125 | 126 | func findAnagrams(s string, p string) []int { 127 | slen := len(s) 128 | plen := len(p) 129 | ans := []int{} 130 | psum := 1 131 | // 计算p的字符累乘结果 132 | for i := 0; i < plen; i++ { 133 | psum *= int(p[i]) 134 | } 135 | for i := 0; i <= slen - plen; i++ { 136 | ssum := 1 137 | // 计算与p相同长度的s的切片字符累乘结果 138 | for j := i; j < i + plen; j++ { 139 | ssum *= int(s[j]) 140 | } 141 | //判断累乘结果是否相等 142 | if ssum == psum { 143 | ans = append(ans, i) 144 | } 145 | } 146 | return ans 147 | } 148 | 149 | ~~~ 150 | 151 | -------------------------------------------------------------------------------- /doc/GoLang/1900022752.md: -------------------------------------------------------------------------------- 1 | # go学习笔记+算法案例 2 | 3 | ## go学习笔记 4 | 5 | ### 相关配置教程笔记 6 | 7 | #### 安装go 8 | 9 | ##### 安装 10 | 11 | [官网下载](https://golang.org/dl/)正常安装即可(windows); 12 | 13 | 命令行输入go检验是否配置完成: 14 | 15 | ![image-20191103180939598](C:\Users\11392\AppData\Roaming\Typora\typora-user-images\image-20191103180939598.png) 16 | 17 | ##### 环境变量配置 18 | 19 | 命令行输入go env查看环境配置,若为配置环境变量,需要把GOROOT和GOPATH地址保存到用户和系统环境变量中,将GOROOT和GOPATH的bin地址保存到用户和系统环境path变量中; 20 | 21 | 运行go env查看配置信息。 22 | 23 | #### vscode编辑器 24 | 25 | 安装go插件,在GOPATH-src中新建文件并运行; 26 | 27 | #### beego配置 28 | 29 | [教程](https://beego.me/quickstart) 30 | 31 | ### go语言笔记 32 | 33 | #### 语法结构 34 | 35 | [链接](https://www.runoob.com/go/go-program-structure.html) 36 | 37 | #### 数据类型 38 | 39 | [链接](https://www.runoob.com/go/go-data-types.html) 40 | 41 | #### 控制语句 42 | 43 | [链接](https://www.runoob.com/go/go-decision-making.html) 44 | 45 | #### 函数 46 | 47 | [链接](https://www.runoob.com/go/go-functions.html) 48 | 49 | ## 算法案例 50 | 51 | #### 算法练习1 52 | 53 | > 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 54 | > 55 | > 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 56 | > 57 | > 来源:力扣(LeetCode) 58 | > 链接:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array 59 | > 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 60 | 61 | ```go 62 | func removeDuplicates(nums []int) int { 63 | i := 0 64 | for j:=1;j 给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。 78 | > 79 | > 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 80 | > 81 | > 元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。 82 | > 83 | > 来源:力扣(LeetCode) 84 | > 链接:https://leetcode-cn.com/problems/remove-element 85 | > 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 86 | 87 | ```go 88 | func removeElement(nums []int, val int) int { 89 | i := 0 90 | for j:=0;j=target){ 30 | return i 31 | } 32 | 33 | i++ 34 | } 35 | return i 36 | } 37 | 38 | 39 | 40 | 2.实现strStr() 41 | 42 | 2.1题目描述: 43 | 给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回  -1。 44 | 45 | 示例 1: 46 | 输入: haystack = "hello", needle = "ll" 47 | 输出: 2 48 | 49 | 示例 2: 50 | 输入: haystack = "aaaaa", needle = "bba" 51 | 输出: -1 52 | 53 | 说明: 54 | 当 needle 是空字符串时,我们应当返回什么值呢?这是一个在面试中很好的问题。 55 | 对于本题而言,当 needle 是空字符串时我们应当返回 0 。这与C语言的 strstr() 以及 Java的 indexOf() 定义相符。 56 | 57 | 来源:力扣(LeetCode) 58 | 链接:https://leetcode-cn.com/problems/implement-strstr 59 | 60 | 2.2解题思路: 61 | 将原字符串按照要匹配的字符串的长度截断,从原字符串的开头截断,直到原字符串与目标字符串长度的差值位置。 62 | 通过截断获得的字符串和目标字符串作比较,若相同,则返回当前的遍历开始值,若没有则在结束位置返回-1. 63 | 64 | 2.3源代码: 65 | func strStr(haystack string, needle string) int { 66 | var n int=len(needle) 67 | for i:=0;i<=len(haystack)-n;i++ { 68 | var str string = haystack[i : i+n] 69 | if (strings.Compare(str,needle)==0) { 70 | return i 71 | } 72 | } 73 | return -1 74 | } 75 | -------------------------------------------------------------------------------- /doc/GoLang/1900022795.md: -------------------------------------------------------------------------------- 1 | ###第一题 2 | 题目描述: 3 | 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 4 | 5 | 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 6 | 7 | 注意:给定 n 是一个正整数。 8 | 9 | 示例 1: 10 | 11 | 输入: 2 12 | 输出: 2 13 | 解释: 有两种方法可以爬到楼顶。 14 | 1. 1 阶 + 1 阶 15 | 2. 2 阶 16 | 示例 2: 17 | 18 | 输入: 3 19 | 输出: 3 20 | 解释: 有三种方法可以爬到楼顶。 21 | 1. 1 阶 + 1 阶 + 1 阶 22 | 2. 1 阶 + 2 阶 23 | 3. 2 阶 + 1 阶 24 | 25 | 26 | 代码: 27 | func climbStairs(n int) int { 28 | m := make(map[int]int) 29 | return recursionHandler(n, m) 30 | } 31 | func recursionHandler(n int, m map[int]int) int { 32 | if n == 1 { 33 | m[n] = 1 34 | return 1 35 | } 36 | if n == 2 { 37 | m[n] = 2 38 | return 2 39 | } 40 | 41 | var x, y int 42 | var ok bool 43 | x, ok = m[n-1] 44 | if !ok { 45 | x = recursionHandler(n-1, m) 46 | } 47 | 解题思路: 48 | 斐波那契数列: 49 | 递推公式f(n) = f(n-1) + f(n-2) 50 | 51 | 由于一次可以走一级或者两级台阶,所以到某个台阶n的走法等于:走到台阶n-1的走法(最后一次走一级台阶上到n),加上走到台阶n-2的走法(最后一次走两级台阶上到n)。 52 | 53 | 54 | 55 | ###第二题 56 | 题目描述:报数序列是一个整数序列,按照其中的整数的顺序进行报数,得到下一个数。其前五项如下: 57 | 58 | 1. 1 59 | 2. 11 60 | 3. 21 61 | 4. 1211 62 | 5. 111221 63 | 1 被读作  "one 1"  ("一个一") , 即 11。 64 | 11 被读作 "two 1s" ("两个一"), 即 21。 65 | 21 被读作 "one 2",  "one 1" ("一个二" ,  "一个一") , 即 1211。 66 | 67 | 给定一个正整数 n(1 ≤ n ≤ 30),输出报数序列的第 n 项。 68 | 69 | 注意:整数顺序将表示为一个字符串。 70 | 71 |   72 | 73 | 示例 1: 74 | 75 | 输入: 1 76 | 输出: "1" 77 | 示例 2: 78 | 79 | 输入: 4 80 | 输出: "1211" 81 | 82 | 代码: 83 | func countAndSay(n int) string { 84 | var result string 85 | result = "1" 86 | for i:=1; i 1 11 | B -> 2 12 | C -> 3 13 | ... 14 | Z -> 26 15 | AA -> 27 16 | AB -> 28 17 | ... 18 | 示例 1: 19 | 输入: "AB" 20 | 输出: 28 21 | 示例 3: 22 | 输入: "ZY" 23 | 输出: 701 24 | 25 | 代码: 26 | func titleToNumber(s string) int { 27 | 28 | sum := 0 29 | 30 | for i := 0; i < utf8.RuneCountInString(s); i++ { 31 | sum *= 26 32 | sum += (int(s[i]) - 64) 33 | 34 | } 35 | return sum 36 | } 37 | 38 | 分析:因为有26个字母,所以相当于26进制,每26个数则向前进一位,所以每遍历一位前,sum*26,求字符串长度时len容易出错,使用RuneCountInString(s)。 39 | 40 | 41 | ###9题:回文数 42 | 43 | 题目描述:判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 44 | 45 | 示例 1: 46 | 输入: -121 47 | 输出: false 48 | 解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。 49 | 示例 2: 50 | 输入: 10 51 | 输出: false 52 | 解释: 从右向左读, 为 01 。因此它不是一个回文数。 53 | 54 | 55 | 代码: 56 | func isPalindrome(x int) bool { 57 | if x < 0 { 58 | return false 59 | } 60 | a := 0 61 | b := 0 62 | y := x 63 | for y > 0 { 64 | a = y % 10 65 | y = y / 10 66 | b = b * 10 + a 67 | } 68 | if b == x { 69 | return true 70 | } else { 71 | return false 72 | } 73 | } 74 | 75 | 分析:本题思路是先将x反转再与原数比较,如果是java,需要考虑反转后超出int32位范围的问题,另外就是go的格式容易出现的问题。 -------------------------------------------------------------------------------- /doc/GoLang/1901210273.md: -------------------------------------------------------------------------------- 1 | GoLang学习笔记+算法题解 2 | 3 | 两数之和1 Leetcode.1 4 | 题目:给定一个整数数组nums和一个目标值target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。 5 | 示例: 6 | 给定 nums = [2, 7, 11, 15], target = 9,因为 nums[0] + nums[1] = 2 + 7 = 9 7 | 所以返回 [0, 1] 8 | 9 | 思路:先从数组nums的某元素nums[i]开始查找满足nums[i] + nums[j] =target 的元素nums[j],i的取值范围为[0,n-1],j的取值范围为[i,n-1],将该操作遍历整个数组。因为对于数组某元素需要遍历数组剩余部分来查找另一个元素,所以时间复杂度为O(n^2),而空间复杂度为O(1), 10 | 11 | Go程序: 12 | 13 | func twoSum(nums []int, target int) []int { 14 | res := make([]int, 2) 15 | for key, value := range nums { 16 | res[0] = key 17 | v := target - value 18 | for i := key + 1; i < len(nums); i++ { 19 | if nums[i] == v { 20 | res[1] = i 21 | return res 22 | } 23 | } 24 | } 25 | return nil 26 | 27 | } 28 | 29 | 运行结果: 30 | 已完成 31 | 执行用时: 0 ms 32 | 输入 33 | [2,7,11,15] 34 | 9 35 | 输出 36 | [0,1] 37 | 差别 38 | 预期结果 39 | [0,1] 40 | 41 | 42 | 43 | 整数反转Leetcode.7: 44 | 题目:给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。 45 | 示例 1: 输入: 123, 输出: 321, 46 | 示例 2: 输入: -123,输出: -321 47 | 示例 3: 输入: 120, 输出: 21 48 | 注意: 假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。 49 | 50 | 思路:首先对变量y赋0,然后进入for循环后判断变量x是否为0,若不为0执行for循环内的语句,y = y*10 + x%10将y乘10加上x对10取余的和存入y中,再判断y值是否溢出,溢出返回0,否则将x除以10继续循环。 51 | 例子: 52 | 初值:x=123,y=0; 53 | 第一次运算:y=3,x=12; 54 | 第二次运算:y=32,x=1; 55 | 第三次运算:y=321,x=0; 56 | 57 | Go程序: 58 | func reverse(x int) int { 59 | y := 0 60 | for x!=0 { 61 | y = y*10 + x%10 62 | if !( -(1<<31) <= y && y <= (1<<31)-1) { 63 | return 0 64 | } 65 | x /= 10 66 | } 67 | return y 68 | } 69 | 70 | 运行结果: 71 | 已完成 72 | 执行用时: 0 ms 73 | 输入 74 | 123 75 | 输出 76 | 321 77 | 差别 78 | 预期结果 79 | 321 80 | -------------------------------------------------------------------------------- /doc/GoLang/1901210293golang.md: -------------------------------------------------------------------------------- 1 | # Go算法题报告 2 | 3 | ## 2019年10月28日-2019年10月31日 4 | 5 | ### LeetCode 6 | 7 | 1.两数之和go解法 8 | 9 | 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 10 | 11 | 你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。 12 | 13 | 14 | func twoSum(nums []int, target int) []int{ 15 | 16 | var numMap map[int]int 17 | numMap = make(map[int]int) 18 | for i := 0; i < len(nums); i++ { 19 | var difference = target - nums[i] 20 | if v, ok := numMap[difference]; ok { 21 | return []int{v,i} 22 | } else { 23 | numMap[nums[i]]=i 24 | } 25 | } 26 | return []int{} 27 | } 28 | 29 | 2.两数相加 30 | 给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。 31 | 32 | 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。 33 | 34 | 您可以假设除了数字 0 之外,这两个数都不会以 0 开头。 35 | 36 | public ListNode addTwoNumbers(ListNode l1, ListNode l2) { 37 | ListNode dummyHead = new ListNode(0); 38 | ListNode p = l1, q = l2, curr = dummyHead; 39 | int carry = 0; 40 | while (p != null || q != null) { 41 | int x = (p != null) ? p.val : 0; 42 | int y = (q != null) ? q.val : 0; 43 | int sum = carry + x + y; 44 | carry = sum / 10; 45 | curr.next = new ListNode(sum % 10); 46 | curr = curr.next; 47 | if (p != null) p = p.next; 48 | if (q != null) q = q.next; 49 | } 50 | if (carry > 0) { 51 | curr.next = new ListNode(carry); 52 | } 53 | return dummyHead.next; 54 | } 55 | 56 | -------------------------------------------------------------------------------- /doc/GoLang/1901210377.md: -------------------------------------------------------------------------------- 1 | **Go语言算法练习** 2 | 3 | 1. 判断一个整数是否是回文数。 4 | 5 | 算法思路:利用整数除法和取余数来遍历,时间和空间开销都小于字符串处理。每次x取10的余数就得到最后一位,x除于10就得到处理过最后一位以后剩下的。循环处理直到当前x小于或等于处理后值的拼接。 6 | 7 | ```go 8 | func isPalindrome(x int) bool { 9 | if x<0 { 10 | return false 11 | } 12 | if x==0 { 13 | return true 14 | } 15 | if x%10==0 { 16 | return false 17 | } 18 | reserve :=0 19 | for { 20 | var remainder int= x%10 21 | reserve = reserve+remainder 22 | if x==reserve { 23 | return true 24 | } 25 | x = x/10 26 | if x==reserve { 27 | return true 28 | } 29 | reserve = reserve*10 30 | if x==reserve { 31 | return true 32 | } 33 | if x0 && i<13{ 55 | if num>=nums[i] { 56 | buffer.WriteString(romans[i]) 57 | num = num-nums[i] 58 | } else { 59 | i++ 60 | } 61 | } 62 | return buffer.String() 63 | } 64 | ``` 65 | 66 | -------------------------------------------------------------------------------- /doc/GoLang/1901210384.md: -------------------------------------------------------------------------------- 1 | 2 | ### 两道算法 3 | Go语法练习-leetcode1 4 | 5 | 题目:给定一个整数数组nums和一个目标值target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。 6 | 7 | 使用方法:遍历一遍数组,使用map存储nums值的映射,用来反映是否已经遍历过。 8 | 9 | 举个例子nums=2,6,10,7,8 target=9 10 | Map值初始为nil,当遍历到7的时候此时map中的值如下:map[2]=1,map[6]=1,map[10]=1,map[7]=1,此时target-7=2并且map[2]=1,可以判断出来找到了匹配的元素,然后我们从0到i遍历一次,找到该值即可。 11 | 12 | 代码如下 13 | func twoSum(nums []int, target int) []int { 14 | 15 | var res [] int 16 | var temp= make(map[int]int) 17 | for i:=0;i nums[mid] { // 去右区间找 42 | l = mid + 1 43 | } else if target < nums[mid] { // 去左区间找 44 | r = mid - 1 45 | } else { // 找到了 46 | return mid 47 | } 48 | } 49 | return l 50 | } 51 | 52 | 53 | 54 | 55 | 算法题2 56 | 57 | 给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。 58 | 59 | 最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。 60 | 61 | 你可以假设除了整数 0 之外,这个整数不会以零开头。 62 | 63 | 示例 1: 64 | 65 | 输入: [1,2,3] 66 | 输出: [1,2,4] 67 | 解释: 输入数组表示数字 123。 68 | 示例 2: 69 | 70 | 输入: [4,3,2,1] 71 | 输出: [4,3,2,2] 72 | 解释: 输入数组表示数字 4321。 73 | 74 | 来源:力扣(LeetCode) 75 | 链接:https://leetcode-cn.com/problems/plus-one 76 | 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 77 | 78 | 79 | 80 | 81 | func plusOne(digits []int) []int { 82 | 83 | for i := len(digits) - 1; i >= 0; i-- { 84 | digits[i]++ 85 | digits[i] = digits[i] % 10 86 | if digits[i] != 0 { 87 | return digits 88 | } 89 | } 90 | 91 | digits = make([]int, len(digits) + 1) 92 | digits[0] = 1 93 | 94 | return digits 95 | } 96 | 97 | 98 | 99 | 100 | -------------------------------------------------------------------------------- /doc/GoLang/1901210432.md: -------------------------------------------------------------------------------- 1 | ### 1901210432 golang算法题 2019.10.28~2019.11.3 2 | #### leetcode 202. 快乐数 3 | 4 | **题目描述:** 编写一个算法来判断一个数是不是“快乐数”。一个“快乐数”定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字 5 | 的平方和,然后重复这个过程直到这个数变为 1,也可能是无限循环但始终变不到 1。如果可以变为 1,那么这个数就是快乐数。 6 | 7 | **思路:** 不是快乐数会进行无限循环,关键是记录是否发生了循环以及循环数是否为1 8 | 9 | **解法1:** 用map来记录,判断是否有循环 10 | ```` 11 | func isHappy(n int) bool { 12 | hasher := make(map[int]int) //建立一个映射用于记录是否计算过 13 | for n != 1{ 14 | _, ok := hasher[n] 15 | if ok{ 16 | return false // 出现循环 17 | } 18 | hasher[n] = 1 19 | nextnum := 0 20 | for n != 0{ // 计算下一个n值 21 | nextnum += (n%10)*(n%10) 22 | n /= 10 23 | } 24 | n = nextnum 25 | } 26 | return true 27 | } 28 | ```` 29 | **解法2** 快慢数 30 | ```` 31 | func findNext(n int) int { // 计算下一个数 32 | nextnum := 0 33 | for n != 0{ 34 | nextnum += (n%10)*(n%10) 35 | n /= 10 36 | } 37 | return nextnum 38 | } 39 | func isHappy(n int) bool { 40 | fastnum, slownum := n, n 41 | for { // 快数每次走两步,慢数走一步 42 | fastnum = findNext(fastnum) 43 | fastnum = findNext(fastnum) 44 | slownum = findNext(slownum) 45 | if slownum == fastnum{ 46 | break 47 | } 48 | } 49 | return slownum == 1 50 | } 51 | ```` 52 | #### leetcode 1122. 数组的相对排序 53 | 54 | **题目描述:** 给你两个数组,arr1 和 arr2,arr2 中的元素各不相同arr2 中的每个元素都出现在 arr1 中 55 | 对 arr1 中的元素进行排序,使 arr1 中项的相对顺序和 arr2 中的相对顺序相同。未在 arr2 中出现过的元素需要按照升序放在 arr1 的末尾。 56 | 57 | **提示:** 58 | 59 | * arr1.length, arr2.length <= 1000 60 | 61 | * 0 <= arr1[i], arr2[i] <= 1000 62 | 63 | * arr2 中的元素 arr2[i] 各不相同 64 | 65 | * arr2 中的每个元素 arr2[i] 都出现在 arr1 中 66 | 67 | **思路:** 68 | * 题目对数组长度做了限制,可以使用桶排序. 69 | 70 | * 统计arr1中每个数出现的次数;按照arr2的顺序进行排序;对剩下不属于arr2的数进行排序 . 71 | ```` 72 | func relativeSortArray(arr1 []int, arr2 []int) []int { 73 | var tmp [1001]int // 定义一个1000大小的数组用来存储每个数字在arr1中出现的次数 74 | res := make([]int, 0, len(arr1)) 75 | for _, num := range(arr1){ 76 | tmp[num] += 1 77 | } 78 | for _, num := range(arr2){ // 根据arr2中的顺序和tmp中的数量进行排序 79 | for tmp[num] != 0{ 80 | res = append(res, num) 81 | tmp[num] -= 1 82 | } 83 | } 84 | for i, num := range(tmp){ // 遍历tmp将剩余不为0的数按顺序append到res 85 | for num != 0{ 86 | res = append(res, i) 87 | num -= 1 88 | } 89 | } 90 | return res 91 | } 92 | ```` 93 | 94 | -------------------------------------------------------------------------------- /doc/GoLang/1901210432_LeetCode 202&1122.md: -------------------------------------------------------------------------------- 1 | ### 1901210432 golang算法题 2019.10.28~2019.11.3 2 | #### leetcode 202. 快乐数 3 | 4 | **题目描述:** 编写一个算法来判断一个数是不是“快乐数”。一个“快乐数”定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字 5 | 的平方和,然后重复这个过程直到这个数变为 1,也可能是无限循环但始终变不到 1。如果可以变为 1,那么这个数就是快乐数。 6 | 7 | **思路:** 不是快乐数会进行无限循环,关键是记录是否发生了循环以及循环数是否为1 8 | 9 | **解法1:** 用map来记录,判断是否有循环 10 | ```` 11 | func isHappy(n int) bool { 12 | hasher := make(map[int]int) //建立一个映射用于记录是否计算过 13 | for n != 1{ 14 | _, ok := hasher[n] 15 | if ok{ 16 | return false // 出现循环 17 | } 18 | hasher[n] = 1 19 | nextnum := 0 20 | for n != 0{ // 计算下一个n值 21 | nextnum += (n%10)*(n%10) 22 | n /= 10 23 | } 24 | n = nextnum 25 | } 26 | return true 27 | } 28 | ```` 29 | **解法2** 快慢数 30 | ```` 31 | func findNext(n int) int { // 计算下一个数 32 | nextnum := 0 33 | for n != 0{ 34 | nextnum += (n%10)*(n%10) 35 | n /= 10 36 | } 37 | return nextnum 38 | } 39 | func isHappy(n int) bool { 40 | fastnum, slownum := n, n 41 | for { // 快数每次走两步,慢数走一步 42 | fastnum = findNext(fastnum) 43 | fastnum = findNext(fastnum) 44 | slownum = findNext(slownum) 45 | if slownum == fastnum{ 46 | break 47 | } 48 | } 49 | return slownum == 1 50 | } 51 | ```` 52 | #### leetcode 1122. 数组的相对排序 53 | 54 | **题目描述:** 给你两个数组,arr1 和 arr2,arr2 中的元素各不相同arr2 中的每个元素都出现在 arr1 中 55 | 对 arr1 中的元素进行排序,使 arr1 中项的相对顺序和 arr2 中的相对顺序相同。未在 arr2 中出现过的元素需要按照升序放在 arr1 的末尾。 56 | 57 | **提示:** 58 | *arr1.length, arr2.length <= 1000 59 | 60 | *0 <= arr1[i], arr2[i] <= 1000 61 | 62 | *arr2 中的元素 arr2[i] 各不相同 63 | 64 | *arr2 中的每个元素 arr2[i] 都出现在 arr1 中 65 | 66 | **思路:** 67 | * 题目对数组长度做了限制,可以使用桶排序. 68 | 69 | * 统计arr1中每个数出现的次数;按照arr2的顺序进行排序;对剩下没有不属于arr2的数进行排序 . 70 | ```` 71 | func relativeSortArray(arr1 []int, arr2 []int) []int { 72 | var tmp [1001]int // 定义一个1000大小的数组用来存储每个数字在arr1中出现的次数 73 | res := make([]int, 0, len(arr1)) 74 | for _, num := range(arr1){ 75 | tmp[num] += 1 76 | } 77 | for _, num := range(arr2){ // 根据arr2中的顺序和tmp中的数量进行排序 78 | for tmp[num] != 0{ 79 | res = append(res, num) 80 | tmp[num] -= 1 81 | } 82 | } 83 | for i, num := range(tmp){ // 遍历tmp将剩余不为0的数按顺序append到res 84 | for num != 0{ 85 | res = append(res, i) 86 | num -= 1 87 | } 88 | } 89 | return res 90 | } 91 | ```` 92 | -------------------------------------------------------------------------------- /doc/GoLang/1901210447.md: -------------------------------------------------------------------------------- 1 | ### GoLang学习——leetcode(10.27-11.2) 2 | 3 | #### 66.加一 4 | 5 | 给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。 6 | 7 | 最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。 8 | 9 | 你可以假设除了整数 0 之外,这个整数不会以零开头。 10 | 11 | *示例 1:* 12 | 13 | *输入: [1,2,3]* 14 | 15 | *输出: [1,2,4]* 16 | 17 | *解释: 输入数组表示数字 123。* 18 | 19 | ** 20 | 21 | *示例 2:* 22 | 23 | *输入: [4,3,2,1]* 24 | 25 | *输出: [4,3,2,2]* 26 | 27 | *解释: 输入数组表示数字 4321。* 28 | 29 | 思路:该题主要就是判断,当数组各位都为9时,将要产生数组整体加1位的时候,解决方法是利用go语言中的切片,当第一位数也要产生进位时,将其置位为0,再将该全为0的数与一个只有1的切片组合。 30 | 31 | ``` 32 | func plusOne(digits []int) []int { 33 | for i:=len(digits)-1;i>=0;i--{ 34 | ​ if digits[i] != 9 { 35 | ​ digits[i]++ 36 | ​ return digits 37 | ​ }else{ 38 | ​ digits[i] = 0 39 | ​ } 40 | } 41 | return append([]int{1},digits...) 42 | } 43 | ``` 44 | 45 | 46 | 47 | #### 1089.复写零 48 | 49 | 给你一个长度固定的整数数组 arr,请你将该数组中出现的每个零都复写一遍,并将其余的元素向右平移。 50 | 51 | 注意:请不要在超过该数组长度的位置写入元素。 52 | 53 | 要求:请对输入的数组 就地 进行上述修改,不要从函数返回任何东西。 54 | 55 | *示例 1:* 56 | 57 | *输入:[1,0,2,3,0,4,5,0]* 58 | 59 | *输出:null* 60 | 61 | *解释:调用函数后,输入的数组将被修改为:[1,0,0,2,3,0,0,4]* 62 | 63 | ** 64 | 65 | *示例 2:* 66 | 67 | *输入:[1,2,3]* 68 | 69 | *输出:null* 70 | 71 | *解释:调用函数后,输入的数组将被修改为:[1,2,3]* 72 | 73 | 思路:本题同样是利用go语言的切片,可以方便的在为0 的元素后边复写一个0. 74 | 75 | 76 | 77 | ``` 78 | func duplicateZeros(arr []int) { 79 | var list []int 80 | for i := 0;iGiven a valid (IPv4) IP address, return a defanged version of that IP address.A defanged IP address replaces every period "." with "[.]". 5 | 6 | 思路:传入的参数是字符串address,返回的参数是字符串res。先初始化字符串res为"",遍历一遍字符串address中的每一个字符,若为".",则用"[.]"替换。否则,不用替换。将替换后的字符追加到字符串res后,最终返回字符串res即可得到结果。通过完成本题,把golang中的for循环、类型转换、字符串操作复习一遍。整个过程的时间复杂度是O(n)。 7 | 8 | (```) 9 | func defangIPaddr(address string) string { 10 | res := "" 11 | a := "." 12 | b := "[.]" 13 | for _, s := range address { 14 | if string(s) == a { 15 | res += b 16 | continue 17 | } 18 | res += string(s) 19 | } 20 | return res 21 | } 22 | (```) 23 | 24 | [Leetcode 905Sort Array By Parity](https://leetcode.com/problems/sort-array-by-parity/) 25 | >Given an array A of non-negative integers, return an array consisting of all the even elements of A, followed by all the odd elements of A. 26 | 27 | 思路:传入一个数组A,要求将A重新排序,将A中的所有奇数放到所有偶数后面。定义两个动态(大小不确定)的数组odd和even,分别存偶数和奇数。遍历一遍数组A,判断数组A中的每一元素的奇偶性,并根据它们的奇偶性将它们放到指定的数组中。遍历完后,将数组odd和数组even合并并返回。其中,合并的方法是直接将even数组的元素打散后追加到odd数组后面。 28 | 29 | (```) 30 | func sortArrayByParity(A []int) []int { 31 | var odd []int 32 | var even []int 33 | for _, i := range A { 34 | if i%2 != 0 { 35 | even = append(even, i) 36 | } else { 37 | odd = append(odd, i) 38 | } 39 | } 40 | A = append(odd, even[:]...) 41 | //even[:]... even[:]的元素被打散一个个append进odd中 42 | //"..."其实是go的一种语法糖 43 | return A 44 | } 45 | (```) 46 | 47 | 总结:这两天很简单,没涉及到过多的数据结构和算法,但是可以帮助巩固golang的基础知识。第一次使用golang语言还有很多不习惯,还需要多练习。 48 | -------------------------------------------------------------------------------- /doc/GoLang/1901210501: -------------------------------------------------------------------------------- 1 | # Leetcode 169.求众数 2 | 3 | 定一个大小为 n 的数组,找到其中的众数。众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在众数。 4 | 5 | 示例 1: 6 | 7 | 输入: [3,2,3] 8 | 9 | 输出: 3 10 | 11 | 示例 2: 12 | 13 | 输入: [2,2,1,1,1,2,2] 14 | 15 | 输出: 2 16 | 17 | **解:** 18 | 19 | ``` 20 | func majorityElement(nums []int) int { 21 | var ret int 22 | var majorityMap map[int]int 23 | majorityMap = make(map[int]int) 24 | 25 | len1 := len(nums) 26 | for i := 0; i < len1; i++{ 27 | num := nums[i] 28 | majorityMap[num]++ 29 | if majorityMap[num] > len1/2 { 30 | ret = num 31 | break 32 | } 33 | } 34 | return ret 35 | } 36 | ``` 37 | 38 | 39 | 40 | 41 | 42 | # Leetcode 100.相同的树 43 | 44 | 45 | 46 | 给定两个二叉树,编写一个函数来检验它们是否相同。 47 | 48 | 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。 49 | 50 | 示例 1: 51 | 52 | 输入: 1 1 53 | / \ / \ 54 | 2 3 2 3 55 | 56 | ``` 57 | [1,2,3], [1,2,3] 58 | ``` 59 | 60 | 输出: true 61 | 62 | 示例 2: 63 | 64 | 输入: 1 1 65 | / \ 66 | 2 2 67 | 68 | ``` 69 | [1,2], [1,null,2] 70 | ``` 71 | 72 | 输出: false 73 | 74 | 示例 3: 75 | 76 | 输入: 1 1 77 | / \ / \ 78 | 2 1 1 2 79 | 80 | ``` 81 | [1,2,1], [1,1,2] 82 | ``` 83 | 84 | 输出: false 85 | 86 | **解:** 87 | 88 | ``` 89 | /** 90 | * Definition for a binary tree node. 91 | * type TreeNode struct { 92 | * Val int 93 | * Left *TreeNode 94 | * Right *TreeNode 95 | * } 96 | */ 97 | func isSameTree(p *TreeNode, q *TreeNode) bool { 98 | if nil == p && nil == q { 99 | return true 100 | } else if nil == p { 101 | return false 102 | } else if nil == q { 103 | return false 104 | } 105 | 106 | if p.Val != q.Val { 107 | return false 108 | } 109 | 110 | if false == isSameTree(p.Left, q.Left) { 111 | return false 112 | } 113 | if false == isSameTree(p.Right, q.Right) { 114 | return false 115 | } 116 | 117 | return true 118 | } 119 | ``` 120 | 121 | 122 | 123 | 124 | 125 | -------------------------------------------------------------------------------- /doc/GoLang/1901210556.md: -------------------------------------------------------------------------------- 1 | # leetcode算法题-go语言 2 | 3 | [leetcode66.加一](https://leetcode-cn.com/problems/plus-one/) 4 | 5 | ```go 6 | func plusOne(digits []int) []int { 7 | var plus int = 1 8 | var p int = len(digits)-1 9 | var sum int = 0 10 | for ;p>=0 && plus>0; { 11 | sum = digits[p]+plus 12 | plus = sum / 10 13 | digits[p] = sum % 10 14 | p-- 15 | } 16 | if plus!=0 { 17 | ans := make([]int, len(digits)+1) 18 | ans[0]=1 19 | for i:=1;i<=len(digits);i++ { 20 | ans[i]=digits[i-1] 21 | } 22 | return ans 23 | } 24 | return digits 25 | } 26 | ``` 27 | 28 | [leetcode67.二进制求和](https://leetcode-cn.com/problems/add-binary/) 29 | 30 | ```go 31 | func addBinary(a string, b string) string { 32 | i := len(a) - 1 33 | j := len(b) - 1 34 | res := "" 35 | flag := 0 36 | current := 0 37 | for i >= 0 || j>= 0 { 38 | Inta,Intb := 0,0 39 | if (i >= 0){ 40 | Inta = int (a[i] - '0') 41 | } 42 | if (j >= 0){ 43 | Intb = int (b[j] - '0') 44 | } 45 | current = Inta + Intb + flag 46 | flag = 0 47 | if current >= 2 { 48 | flag = 1 49 | current = current - 2 50 | } 51 | cur := strconv.Itoa(current) 52 | res = cur + res 53 | i-- 54 | j-- 55 | } 56 | if flag == 1 { 57 | res = "1" + res 58 | } 59 | return res 60 | } 61 | ``` -------------------------------------------------------------------------------- /doc/GoLang/1901210560.md: -------------------------------------------------------------------------------- 1 | ## Go语言算法题 2 | 3 | #### 2019.10.28 -- 2019.11.03 4 | 5 | ###### 1)leetcode001:两数之和([题目链接](https://leetcode-cn.com/problems/two-sum/)) 6 | 7 |     8 | 9 | **题目描述:** 10 | 11 | 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 12 | 13 | 你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。 14 | 15 | > 示例 16 | > 17 | > 输入:nums = [2, 7, 11, 15], target = 9 18 | > 19 | > 输出:[0,1]. 因为nums[0] + nums[1] = 2 + 7 = 9. 20 | 21 | 思路:  22 | 23 | 用两重循环的暴力法实现一遍。第二重重循环用到了数组的切片。 24 | 25 | 代码:  26 | 27 | ```go 28 | func twoSum(nums []int, target int) []int { 29 | for i, vi := range nums { 30 | for j, vj := range nums[i+1:] { 31 | if vi + vj == target { 32 | return []int{i, i+1+j} 33 | } 34 | } 35 | } 36 | return nil 37 | } 38 | ``` 39 | 40 | ###### 2)leetcode0007:整数反转([题目链接](https://leetcode-cn.com/problems/reverse-integer/))    41 | 42 | **题目描述:** 43 | 44 | 给出一个 32 位的有符号整数,将这个整数中每位上的数字进行反转 。 45 | 46 | > 示例1: 47 | 48 | > 输入:123 49 | > 50 | > 输出:321 51 | 52 |   53 | 54 | > 示例2: 55 | 56 | > 输入:-123 57 | > 58 | > 输出:-321 59 | 60 | 另外,假设程序运行环境只能存储32位整数,所以反转后的整数范围应在[-2^31, 2^31 - 1]之间,超出这个范围,则返回0. 61 | 62 |   63 | 64 | **思路:** 65 | 66 | 不使用类型转换,而是从后往前,依次取下所给整数的最后一位,添加到结果的末尾。 67 | 68 | 取最后一位:求所给整数(记为x)对10的余数。取完后将x赋值为其对10的商的整数部分。 69 | 70 | 添加到结果的后面:将结果乘以10,在加上商民所求余数即可。 71 | 72 |   73 | 74 | **代码:** 75 | 76 | ```go 77 | func reverse(x int) int { 78 | temp := 0 79 | for x != 0 { 80 | temp = temp*10 + x%10 81 | x = x/10 82 | } 83 | if (temp > 1<<31 - 1)||(temp < -1 * 1<<31){ 84 | return 0 85 | } 86 | return temp 87 | } 88 | ``` 89 | 90 | 91 | 92 | 93 | 94 | -------------------------------------------------------------------------------- /doc/GoLang/1901210581.md: -------------------------------------------------------------------------------- 1 | # 1028-1103算法报告 2 | 3 | 张剑飞 4 | 5 | 172. 给定一个整数 *n*,返回 *n*! 结果尾数中零的数量 6 | 7 | 1. 题目分析 8 | 9 | 结尾有0,把阶乘数分解质因数,只有因子5与2相乘会得到0。5数量大于2,计算因子5数量即可。 10 | 11 | 2. 算法设计 12 | 13 | 递归处理:n/5取整,累积。 14 | 15 | 边界处理:n/5=0,结束 16 | 17 | 3. 时间复杂度分析 18 | 19 | T(n)=log n 20 | 21 | 22 | 23 | 204. 计数质数 24 | 25 | 统计所有小于非负整数 *n* 的质数的数量。 26 | 27 | 1. 题目分析 28 | 29 | 题目要求一次,不需考虑复用 30 | 31 | 对小于n整数依次验证是否为质数,累积。 32 | 33 | 2. 算法设计 34 | 35 | 遍历小于n整数验证,累积 36 | 37 | 验证算法:遍历小于K整数,看是否能整除。 38 | 39 | 优化:除1和本身必然有大于等于2个因子,分布于根号K周围。故检查一边即可。 40 | 41 | 3. 时间复杂度分析 42 | 43 | 积分法,得出n^1.5 -------------------------------------------------------------------------------- /doc/GoLang/1901210645.md: -------------------------------------------------------------------------------- 1 | # Go算法题报告 2 | 3 | ## 2019年10月28日-2019年10月31日 4 | 5 | ### LeetCode127 6 | 7 | ![LeetCode127题目](./images/LeetCode127题目.png) 8 | 9 | 这个题目思路很直观,就是BFS即可。但是直接BFS会发现:寻找和一个单词编辑距离为1的单词需要遍历wordList,并且还每次都需要遍历每个单词,这个开销非常大。 10 | 11 | 因此查看解答,发现它用了一个比较巧妙的预处理方式,采用辅助节点,比如`hot`,添加辅助节点`*ot`, `h*t`, `ho*`,用map存储它们能匹配的所有单词——比如`*ot`会存储`hot`和`dot`,而不是存储和`hot`编辑距离为1的单词,比如`hot`->`dog`,`dog`->`hot`,这种预处理方式是O($n^2L$)的复杂度,而采用辅助节点复杂度则是O($nL$)。 12 | 13 | 做BFS需要发现邻近节点可以多考虑,降低复杂度。 14 | 15 | 预处理代码如下: 16 | 17 | ```go 18 | length := len(beginWord) 19 | // Pre-Processing 20 | wordNodes := make(map[string]*list.List) 21 | for _, word := range wordList { 22 | for i := 0; i < length; i++ { 23 | wordNode := word[:i] + "*" + word[i + 1:] 24 | if wordNodeList, ok := wordNodes[wordNode]; ok { 25 | wordNodeList.PushBack(word) 26 | } else { 27 | wordNodes[wordNode] = list.New() 28 | wordNodes[wordNode].PushBack(word) 29 | } 30 | } 31 | } 32 | ``` 33 | 34 | 整个代码如下,利用BFS和level来搞这道题: 35 | 36 | ```go 37 | type Pair struct { 38 | value string 39 | level int 40 | } 41 | 42 | func ladderLength(beginWord string, endWord string, wordList []string) int { 43 | length := len(beginWord) 44 | // Pre-Processing 45 | wordNodes := make(map[string]*list.List) 46 | for _, word := range wordList { 47 | for i := 0; i < length; i++ { 48 | wordNode := word[:i] + "*" + word[i + 1:] 49 | if wordNodeList, ok := wordNodes[wordNode]; ok { 50 | wordNodeList.PushBack(word) 51 | } else { 52 | wordNodes[wordNode] = list.New() 53 | wordNodes[wordNode].PushBack(word) 54 | } 55 | } 56 | } 57 | 58 | // Queue 59 | queue := list.New() 60 | queue.PushBack(&Pair{beginWord, 1}) 61 | visit := make(map[string]bool) 62 | for queue.Len() != 0 { 63 | elem := queue.Front() 64 | pair := elem.Value.(*Pair) 65 | queue.Remove(elem) 66 | word := pair.value 67 | level := pair.level 68 | if word == endWord { 69 | return level 70 | } 71 | if _, ok := visit[word]; ok { 72 | continue 73 | } else { 74 | visit[word] = true 75 | } 76 | 77 | for i := 0; i < length; i++ { 78 | wordNode := word[:i] + "*" + word[i + 1:] 79 | if wordNodeList, ok := wordNodes[wordNode]; ok { 80 | for listIter := wordNodeList.Front(); listIter != nil; listIter = listIter.Next() { 81 | nextWord := listIter.Value.(string) 82 | if _, ok := visit[nextWord]; ok { 83 | continue 84 | } 85 | queue.PushBack(&Pair{nextWord, level + 1}) 86 | } 87 | } 88 | } 89 | } 90 | return 0 91 | } 92 | ``` 93 | 94 | 结果如图![提交结果](./images/LeetCode127.png) 95 | 96 | 97 | 98 | ### LeetCode129 99 | 100 | ![LeetCode129](./images/LeetCode129题目.png) 101 | 102 | 这题用python写并不太难,但是不够优雅。简单的思路就是DFS,用一个函数,函数接受两个参数,第一个参数是根节点,第二个参数是累计值,每次把累计值×10再加上当前根节点的值就得到下次搜索需要的累计值,但是最后需要把累计值加到全局变量sum上,全局变量的出现会导致程序不够优雅。 103 | 104 | 用go写这个比较难想,不使用全局变量,优雅地解决这道题,需要使用函数对象和匿名函数!代码还是很清晰的,直接看代码即可。 105 | 106 | ```go 107 | /** 108 | * Definition for a binary tree node. 109 | * type TreeNode struct { 110 | * Val int 111 | * Left *TreeNode 112 | * Right *TreeNode 113 | * } 114 | */ 115 | func sumNumbers(root *TreeNode) int { 116 | sum := 0 117 | var helper func(*TreeNode, int) 118 | helper = func (root *TreeNode, acc int) { 119 | if root == nil { 120 | return 121 | } 122 | curAcc := acc * 10 + root.Val 123 | if (root.Left == nil) && (root.Right == nil) { 124 | sum += curAcc 125 | return 126 | } 127 | if root.Left != nil { 128 | helper(root.Left, curAcc) 129 | } 130 | if root.Right != nil { 131 | helper(root.Right, curAcc) 132 | } 133 | } 134 | helper(root, 0) 135 | return sum 136 | } 137 | ``` 138 | 139 | 这题没有几个人用go写,LeetCode统计都不好统计…… 140 | 141 | ![结果](./images/LeetCode129.png) -------------------------------------------------------------------------------- /doc/GoLang/1901210649.md: -------------------------------------------------------------------------------- 1 | ### 2019年10月27日-2019年11月02日 2 | 3 | #### [LeetCode 1. Two Sum](https://leetcode.com/problems/two-sum/) 4 | ``` c++ 5 | func twoSum(nums []int, target int) []int { 6 | m := make(map[int]int) 7 | for i, v := range nums { 8 | idx, ok := m[target - v] 9 | if ok { 10 | return []int{i, idx} 11 | } 12 | m[v] = i 13 | } 14 | return nil 15 | } 16 | ``` 17 | 18 | #### [LeetCode 283. Move Zeroes](https://leetcode.com/problems/move-zeroes/) 19 | 20 | ``` c++ 21 | func moveZeroes(nums []int) { 22 | slow, fast := 0, 0 23 | for fast < len(nums) { 24 | if nums[fast] != 0 { 25 | nums[slow], nums[fast] = nums[fast], nums[slow] 26 | slow++ 27 | } 28 | fast++ 29 | } 30 | } 31 | ``` -------------------------------------------------------------------------------- /doc/GoLang/1901210657.md: -------------------------------------------------------------------------------- 1 | ### 2019年10月27日-2019年11月02日 2 | 3 | #### [LeetCode 1. Two Sum](https://leetcode-cn.com/problems/two-sum/) 4 | ``` go 5 | func twoSum(nums []int, target int) []int { 6 | res:= make([]int,0) 7 | mMap:=make(map[int]int) 8 | for i,num:=range nums{ 9 | _, found:=mMap[target-num] 10 | if found{ 11 | res=append(res,mMap[target-num]) 12 | res=append(res,i) 13 | return res 14 | } 15 | mMap[num]=i 16 | } 17 | return res 18 | } 19 | ``` 20 | 21 | #### [LeetCode 172. Factorial Trailing Zeroes](https://leetcode-cn.com/problems/factorial-trailing-zeroes/) 22 | 23 | ``` go 24 | func trailingZeroes(n int) int { 25 | five:=0 26 | for n>0{ 27 | five+=n/5 28 | n/=5 29 | } 30 | return five 31 | } 32 | ``` -------------------------------------------------------------------------------- /doc/GoLang/1901210678.md: -------------------------------------------------------------------------------- 1 | 声明二维动态数组时,需要在外层使用 2 | Array := make([][]int, dx) 3 | 在内层只能使用 4 | Array=make([]int, dy) 5 | ,因为并不需要再对内层进行类型声明。所以直接使用=而非:= 6 | 7 | 通过简单的题目来使用go语言 8 | switch{ 9 | case i%15==0:ret = append(ret,"FizzBuzz"); 10 | case i%3==0:ret = append(ret,"Fizz"); 11 | case i%5==0:ret = append(ret, "Buzz"); 12 | default:ret = append(ret, strconv.Itoa(i)); 13 | } 14 | 利用了go语言中switch的默认特性,使if else语句更有条理,同时使用strconv.Itoa完成int对string的类型转换(string()的强制类型转换会输出形如“\u0001”的输出) 15 | https://leetcode-cn.com/problems/fizz-buzz/ 16 | 17 | 此题利用原数组的第一行和第一列做标记,来标记是否该行或该列有0,此外使用两个数记录是否第一行或第一列存在0。所以空间复杂度为0(1),时间复杂度上,该题只需要遍历一维数组对二维数组执行置0操作,时间复杂度为O(n)。但该题目在使用GO语言解题中没有用到Go语言的独特的性质。 18 | https://leetcode-cn.com/problems/set-matrix-zeroes/ 19 | -------------------------------------------------------------------------------- /doc/GoLang/1901210698.md: -------------------------------------------------------------------------------- 1 | ## 2019.10.27 - 2019.11.02 2 | ### Leetcode 299. Bulls and Cows 3 | ![LeetCode299题目](./images/LeetCode299.jpg) 4 | 5 | Go代码实现如下: 6 | ```go 7 | func getHint(secret string, guess string) string { 8 | b := 0 9 | c := 0 10 | tmp := make([]int, 10) 11 | for i := 0; i < len(secret); i++ { 12 | s := secret[i] - '0' 13 | g := guess[i] - '0' 14 | if s == g { 15 | b++ 16 | continue 17 | } 18 | if tmp[s] < 0 { 19 | c++ 20 | } 21 | if tmp[g] > 0 { 22 | c++ 23 | } 24 | tmp[s]++ 25 | tmp[g]-- 26 | } 27 | return fmt.Sprintf("%dA%dB", b, c) 28 | } 29 | ``` 30 | 31 | ### Leetcode 313. Super Ugly Number 32 | ![LeetCode313题目](./images/LeetCode313.jpg) 33 | Go代码实现如下: 34 | ```go 35 | func nthSuperUglyNumber(n int, primes []int) int { 36 | if n==1{ 37 | return 1 38 | } 39 | var results []int 40 | start:=make([]int,len(primes)) 41 | to_be:=make([]int,len(primes)) 42 | for i:=0;ito_be[i]{ 61 | minn=to_be[i] 62 | } 63 | } 64 | return minn 65 | } 66 | ``` -------------------------------------------------------------------------------- /doc/GoLang/1901210725.md: -------------------------------------------------------------------------------- 1 | # Leetcode 刷题记录 2 | ## 2019.10.28—2019.11.4 3 | ### [Leetcode 73 矩阵置零]("https://leetcode-cn.com/problems/set-matrix-zeroes/") 4 | **题目描述** 5 | 6 | 给定一个 m x n 的矩阵,如果一个元素为 0,则将其所在行和列的所有元素都设为 0。请使用原地算法。 7 | 8 | **样例输入输出** 9 | 10 | Input 1:[[1,1,1],[1,0,1],[1,1,1]] 11 | 12 | Output 1:[[1,0,1],[0,0,0],[1,0,1]] 13 | 14 | Input 2:[[0,1,2,0],[3,4,5,2],[1,3,1,5]] 15 | 16 | Output 2:[[0,0,0,0],[0,4,5,0],[0,3,1,0]] 17 | 18 | **解题思路** 19 | 20 | 1、遍历初始矩阵,如果发现如果某个元素 matrix[i][j] 为 0,我们将第 i 行和第 j 列的所有非零元素设成很大的负虚拟值MODIFIED。 21 | 22 | 2、遍历整个矩阵,将所有等于MODIFIED的元素设为0。 23 | 24 | **golang代码** 25 | 26 | func setZeroes(matrix [][]int) { 27 | MODIFIED := -100000 28 | row := len(matrix) 29 | column := len(matrix[0]) 30 | for r := 0; r < row; r++ { 31 | for c := 0; c < column; c++ { 32 | if matrix[r][c] == 0 { 33 | for m := 0; m < column; m++ { 34 | if matrix[r][m] != 0 { 35 | matrix[r][m] = MODIFIED 36 | }else { 37 | matrix[r][m] = 0 38 | } 39 | } 40 | for k := 0; k < row; k++ { 41 | if matrix[k][c] != 0 { 42 | matrix[k][c] = MODIFIED 43 | }else { 44 | matrix[k][c] = 0 45 | } 46 | } 47 | } 48 | } 49 | } 50 | for r := 0; r < row; r++ { 51 | for c := 0; c < column; c++ { 52 | if matrix[r][c] == MODIFIED { 53 | matrix[r][c] = 0 54 | } 55 | } 56 | } 57 | } 58 | 59 | ### [Leetcode 74 搜索二维矩阵]("https://leetcode-cn.com/problems/search-a-2d-matrix/") 60 | **题目描述** 61 | 62 | 编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性: 63 | 64 | * 每行中的整数从左到右按升序排列。 65 | * 每行的第一个整数大于前一行的最后一个整数。 66 | 67 | **样例输入输出** 68 | 69 | Input 1:[[1,3,5,7],[10,11,16,20],[23,30,34,50]]  3 70 | 71 | Output 1:true 72 | 73 | Input 2:[[1,3,5,7],[10,11,16,20],[23,30,34,50]]  13 74 | 75 | Output 2:false 76 | 77 | **解题思路** 78 | 79 | 1、首先用二分法找到第一次最后一个数大于target的那一行 80 | 81 | 2、在该行寻找target,若找到则输出ture,否则输出false 82 | 83 | **golang代码** 84 | 85 | func searchMatrix(matrix [][]int, target int) bool { 86 | if len(matrix) == 0 || len(matrix[0]) == 0{ 87 | return false 88 | } 89 | 90 | columnID := firstGreaterThanTarget(matrix, target) 91 | return halfSearch(matrix[columnID], target) 92 | 93 | } 94 | 95 | func firstGreaterThanTarget(matrix [][]int, target int) int{ 96 | row_len := len(matrix[0]) 97 | left, right := 0, len(matrix) - 1 98 | mid := left + (right - left) >> 1 99 | for left <= right { 100 | mid = left + (right - left) >> 1 101 | midNum := matrix[mid][row_len - 1] 102 | if midNum >= target { 103 | if mid == 0 || matrix[mid - 1][row_len - 1] < target { 104 | return mid 105 | } 106 | right = mid -1 107 | } else { 108 | left = mid + 1 109 | } 110 | } 111 | return mid 112 | } 113 | 114 | func halfSearch(k []int, target int) bool { 115 | left, right := 0, len(k) - 1 116 | for left <= right { 117 | mid := left + (right - left) >> 1 118 | if k[mid] == target { 119 | return true 120 | } else if k[mid] < target { 121 | left = mid + 1 122 | } else { 123 | right = mid - 1 124 | } 125 | } 126 | return false 127 | } 128 | -------------------------------------------------------------------------------- /doc/GoLang/1901210749.md: -------------------------------------------------------------------------------- 1 | # Go语言刷题笔记 2 | 3 | ### 1 4 | 5 | **题目描述:** 6 | 7 | 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 8 | 9 | 你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。 10 | 11 | 示例: 12 | 13 | 给定 nums = [2, 7, 11, 15], target = 9 14 | 15 | 因为 nums[0] + nums[1] = 2 + 7 = 9 16 | 所以返回 [0, 1] 17 | 18 | 来源:力扣(LeetCode) 19 | 链接:https://leetcode-cn.com/problems/two-sum 20 | 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 21 | 22 | 23 | 24 | **解题思路:** 25 | 26 | 这是leetcode上著名的twosum问题,现在用Go语言重新做一下。首先很容易想到暴力算法,思路如下: 27 | 28 | 暴力算法:使用两重循环遍历数组,对于第一重循环中的每个数,都与数组中的其他数相加并与target比较,如果找到答案就返回答案。这种方法的时间复杂度是O(n2)。 29 | 30 | 还有两种复杂度更少的方法 31 | 32 | 双指针法:先把数组排序,然后用指向数组首尾的两个指针遍历数组,如果首尾指针所指元素之和大于target,尾指针前移;否则头指针后移;直到找到答案或者两指针相为止。双指针遍历数组时间复杂度为O(n),排序时间复杂度为O(nlogn),所以这种算法总的时间复杂度是O(nlogn)。 33 | 34 | 哈希法:建立一个哈希表,遍历一次数组,对于数组中每个元素value,查找哈希表中target - value是否存在,如果存在则找到了答案;否则把当前元素value加入哈希表。 35 | 36 | 37 | 38 | **代码:** 39 | 40 | ```go 41 | func twoSum(nums []int, target int) []int { 42 | h := make(map[int]int) 43 | for i, value := range nums { 44 | if wanted, ok := h[value]; ok { 45 | return []int{wanted, i} 46 | } else { 47 | h[target-value] = i 48 | } 49 | } 50 | return nil 51 | } 52 | ``` 53 | 54 | 55 | 56 | ### 2 57 | 58 | **题目描述:** 59 | 60 | 判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 61 | 62 | 示例 1: 63 | 64 | 输入: 121 65 | 输出: true 66 | 示例 2: 67 | 68 | 输入: -121 69 | 输出: false 70 | 解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。 71 | 示例 3: 72 | 73 | 输入: 10 74 | 输出: false 75 | 解释: 从右向左读, 为 01 。因此它不是一个回文数。 76 | 77 | 来源:力扣(LeetCode) 78 | 链接:https://leetcode-cn.com/problems/palindrome-number 79 | 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 80 | 81 | 82 | 83 | **解题思路:** 84 | 85 | 对于本题有一种非常简单的思路,就是把整形转化为字符串类型,然后一一比较首尾对应字符,比如第一个和倒数第一个、第二个和倒数第二个,直到所有成对元素都比较完。Golang中为我们提供了整形转字符串的函数 strconv.Itoa (),所以这种思路实现起来也很容易。 86 | 87 | 88 | 89 | **代码:** 90 | 91 | ```go 92 | func isPalindrome(x int) bool { 93 | str:=strconv.Itoa(x) 94 | j:=len(str)-1 95 | for i:=0;i 0 { 68 | nc++ 69 | } 70 | m[s]++ 71 | m[guess[i]]-- 72 | } 73 | } 74 | return fmt.Sprintf("%dA%dB", nb, nc) 75 | } 76 | 77 | 78 | -------------------------------------------------------------------------------- /doc/GoLang/README.md: -------------------------------------------------------------------------------- 1 | Go语言 2 | -------------------------------------------------------------------------------- /doc/GoLang/images/LeetCode127.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OS-ABC/HelloWorld/d003d9f0943635abe5c99d88f47913feba0631f9/doc/GoLang/images/LeetCode127.png -------------------------------------------------------------------------------- /doc/GoLang/images/LeetCode127题目.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OS-ABC/HelloWorld/d003d9f0943635abe5c99d88f47913feba0631f9/doc/GoLang/images/LeetCode127题目.png -------------------------------------------------------------------------------- /doc/GoLang/images/LeetCode129.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OS-ABC/HelloWorld/d003d9f0943635abe5c99d88f47913feba0631f9/doc/GoLang/images/LeetCode129.png -------------------------------------------------------------------------------- /doc/GoLang/images/LeetCode129题目.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OS-ABC/HelloWorld/d003d9f0943635abe5c99d88f47913feba0631f9/doc/GoLang/images/LeetCode129题目.png -------------------------------------------------------------------------------- /doc/GoLang/images/LeetCode299.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OS-ABC/HelloWorld/d003d9f0943635abe5c99d88f47913feba0631f9/doc/GoLang/images/LeetCode299.jpg -------------------------------------------------------------------------------- /doc/GoLang/images/LeetCode313.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OS-ABC/HelloWorld/d003d9f0943635abe5c99d88f47913feba0631f9/doc/GoLang/images/LeetCode313.jpg -------------------------------------------------------------------------------- /doc/HomeWork/1900022763.md: -------------------------------------------------------------------------------- 1 | 2019.10.21——2019.10.27 2 | 3 | 1.在learn-With-open-source中提交了自己的第一个PR,将HelloWorld中的一处成语错误修改。PR的地址为:https://github.com/zhuangbiaowei/learn-with-open-source/pull/83[merged]。 4 | 5 | 2.在htttp://tour.go-zh.org/welcome/1中学习了GO语言的基础知识,为参与后续开源项目打下语言的基础。 6 | 7 | 总结:迈出了参与开源项目实践的第一步,激发了自己对于开源项目参与的浓厚兴趣。 8 | -------------------------------------------------------------------------------- /doc/HomeWork/AICoder/1900022720.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | ##
实验班学习周报 2019.10.21_2019.10.27
4 | 5 | ###
刘刚建 1900022720
6 | 7 | 8 | 9 | 1. 学习markdown基本语法; 10 | 11 | 2. 在learn-with-open-source中提交了第一个PR,修正了`progit中文版`和`hginit.com中文版`过期链接:[点此查看详情](https://github.com/zhuangbiaowei/learn-with-open-source/pull/49) 12 | 13 | 总结:在这过程中学会了git的基本命令如:clone,add,commit,push,并且熟悉了PR提交的流程。 14 | 15 | ##
实验班学习周报 2019.10.27_2019.10.31
16 | 17 | 1. 搭建pyhton开发环境,熟悉基本语法,了解爬虫原理; 18 | 2. 学习mysql: 19 | - 安装与卸载 20 | - DDL,DML,DQL基本命令; 21 | - 三大范式; 22 | - 多表操作. -------------------------------------------------------------------------------- /doc/HomeWork/AICoder/1900022768.md: -------------------------------------------------------------------------------- 1 | 2019年11月7日-2019年11月14日 2 | 3 | 主要学习了Scarpy爬虫框架,并成功爬取csdn网页数据,为AIcoder做代码数据爬取准备 4 | 5 | 6 | 7 | 8 | 2019年10月28日-2019年11月3日 9 | 10 | 1、学习了skywalking的基本原理,在Windows虚拟机上安装了skywalking 11 | 12 | 2、学习了卷积神经网络CNN的搭建,可以有效提取图像特征;运用全零填充、批归一化(Batch Normalization)、池化、数据增强等技术改善CNN在小数据量时的训练效果 13 | 14 | 15 | 16 | 17 | 1900022768_彭观生_20191021-20191027 18 | 19 | 1、在learn-with-open-source提交一个pr,把learn-with-open-source/zh/Start.md路径下一个http访问链接异常,改成了https,解决了页面显示异常的情况。pr链接https://github.com/zhuangbiaowei/learn-with-open-source/commit/9946b044c4e12f6cd4fd2cabe004378c8ed7ebf2 20 | 21 | 2、在mac上安装了nodejs 22 | 23 | 3、学习tensorflow的模型搭建、激活函数、损失函数、优化器,已经断点续传、保存训练好的模型参数到txt文件等等,用mnist数据集进行了测试,后面会用来训练seqtoseq模型。 -------------------------------------------------------------------------------- /doc/HomeWork/AICoder/1900022772.md: -------------------------------------------------------------------------------- 1 | # 1900022772张之逸周报 2 | ## 2019-10-31 周报 3 | 本周完成了以下几个事项: 4 | 1. 试用了一个开源的python的lsp开发框架, 在vscode上测试了代码补全 5 | 2. TiDB提交了一个pr 6 | 3. 尝试阅读TiDB Executor模块代码 7 | 8 | ## 2019-10-27 周报 9 | 本周完成了以下几项事项: 10 | 1. 调研了Language Server Protocol以及调试了TypeScript实现的LSP官方demo 11 | 2. 调研了semantic并尝试本地编译安装(失败) 12 | 3. 制作了AI代码补全小组会议的ppt 13 | 4. 编写了HelloWorld中git使用指引并提交pr 14 | 5. 跑通了SpringBoot的helloworld 15 | 6. TiDB提交了两个pr 16 | 17 | -------------------------------------------------------------------------------- /doc/HomeWork/AICoder/1900022802.md: -------------------------------------------------------------------------------- 1 | #张智源1900022802 2 | ###2019.11.08 - 2019.11.14 3 | 1.了解pyspider爬虫框架以及scrapy爬虫框架的优缺点以及特性,并且形成报告。 4 | 5 | 总结:在两种框架的选择中,我认为scrapy框架的优点更加符合我们的需求。它有完善且活跃的社区,这对我们在爬取任务的过程中解决问题有重要的意义。 6 | ###2019.11.01 - 2019.11.07 7 | 1.学习scrapy框架的爬虫,了解其中模块之间的数据流向,以及了解html的构成。 8 | 9 | 2.学习SkyWalking的工作原理,安装SkyWalking。 10 | 11 | 总结:因为小组中选的是爬虫部分,所以了解了爬虫中基于scrapy框架下的爬虫的原理。同时学习了SkyWalking的大致工作原理,以及安装过程。 12 | 13 | ###2019.10.28 - 2019.10.31 14 | 15 | 1.完成TensorFlow中文社区中的新手入门教程,安装好tensorflow,并且对照教程使用tensorflow完成基础运算。 16 | 17 | 2.学习MNIST机器学习入门。大致了解了机器学习的工作原理。MNIST是一个机器视觉数据集,分为训练集和测试集,通过每个像素点的与其所占的比重来形成“证据”,然后将证据通过softmax函数转换成概率。用这个概率去预测一个图片所对应的数字。分为构建回归模型、训练模型和评估模型几个大块。试着用tensorflow在自己的电脑上运行已有的代码。 18 | 19 | 总结:这一周初步接触了TensorFlow开源软件库,这是一个用于机器学习的软件库。通过入门教程和MNIST对于tensorflow和机器学习有更感性的认知。但是在安装tensorflow,以及运行教程中的代码时,我都遇到了大大小小的问题。比如安装文件的下载地址或是由于开始安装的tensorflow的版本太新,导致教程中的许多指令都无法直接使用,在安装较低版本后得以解决。 20 | 21 | 建议:从这几天的自我学习的体验来看,我感觉我总是会在一些细枝末节的问题上被困住,然后花大量时间在互联网上寻找答案,效率不高,成就感也不强。我相信选择这个作业的其他同学多多少少也会遇到类似的问题。这样单打独斗的方式我想可能可以有更好的方式来替代。比如能够有学习能力强的同学带着其他同学们一起学习等。 22 | 23 | ###2019.11.01 - 2019.11.07 24 | 1.学习scrapy框架的爬虫,了解其中模块之间的数据流向,以及了解html的构成。 25 | 26 | 2.学习SkyWalking的工作原理,安装SkyWalking。 27 | 28 | 总结:因为小组中选的是爬虫部分,所以了解了爬虫中基于scrapy框架下的爬虫的原理。同时学习了SkyWalking的大致工作原理,以及安装过程。 29 | 30 | ###2019.10.28 - 2019.10.31 31 | 32 | 1.完成TensorFlow中文社区中的新手入门教程,安装好tensorflow,并且对照教程使用tensorflow完成基础运算。 33 | 34 | 2.学习MNIST机器学习入门。大致了解了机器学习的工作原理。MNIST是一个机器视觉数据集,分为训练集和测试集,通过每个像素点的与其所占的比重来形成“证据”,然后将证据通过softmax函数转换成概率。用这个概率去预测一个图片所对应的数字。分为构建回归模型、训练模型和评估模型几个大块。试着用tensorflow在自己的电脑上运行已有的代码。 35 | 36 | 总结:这一周初步接触了TensorFlow开源软件库,这是一个用于机器学习的软件库。通过入门教程和MNIST对于tensorflow和机器学习有更感性的认知。但是在安装tensorflow,以及运行教程中的代码时,我都遇到了大大小小的问题。比如安装文件的下载地址或是由于开始安装的tensorflow的版本太新,导致教程中的许多指令都无法直接使用,在安装较低版本后得以解决。 37 | 38 | 建议:从这几天的自我学习的体验来看,我感觉我总是会在一些细枝末节的问题上被困住,然后花大量时间在互联网上寻找答案,效率不高,成就感也不强。我相信选择这个作业的其他同学多多少少也会遇到类似的问题。这样单打独斗的方式我想可能可以有更好的方式来替代。比如能够有学习能力强的同学带着其他同学们一起学习等。 39 | 40 | ###2019.10.21 - 2019.10.27 41 | 42 | 1.在learn-with-open-source中提交了第一个PR,修改了README.md中的一处专业名词的表达形式。但是修改过程中出现其他错误,在老师的建议下进行了第二次的修改。 43 | 44 | 2.在learn-with-open-source中提交了第二个PR,修改了READEME.md中的一处专业名词的表达形式。同时修改了Select-an-open-source-project.md 中的一处表达不流畅。PR地址为:https://github.com/zhuangbiaowei/learn-with-open-source/pull/133 [Merged]。 45 | 46 | 总结:第一次接触PR提交的过程,初步体会到参与一个开源项目的过程,从中学会了如何让Github和本地终端连接的过程,git中的clone、commit、push、status、add .、log等操作指令,掌握了提交PR的流程。 47 | -------------------------------------------------------------------------------- /doc/HomeWork/AICoder/1900022829.md: -------------------------------------------------------------------------------- 1 | # 201年11月1日-2019年11月7日 2 | 1.学习了SkyWorking的基本知识 3 | 4 | 2.开始学习Vue,目前已经配置好了环境在学习语法。 5 | 6 | 3.AI代码补全项目,爬虫框架我觉得Scripy框架,数据库使用Manggodb比较好。这两个目前我已经配置好了,接下来准备爬取代码。 7 | 8 | # 201年10月28日-2019年10月31日 9 | 1.为了实现爬虫后的存储,我使用了homebrew安装MongoDB(MACOS) 10 | 一开始一直用以下命令安装MongoDB,但是一直安装不上 11 | >brew install mongodb 12 | 13 | 然后看了官网,安装方法如下,这个方法亲测可行。 14 | >brew tap mongodb/brew 15 | brew install mongodb-community@4.2 16 | 17 | 想要在Navicat Premium中使用Mongodb数据库,需要现在终端配置并启动。 18 | 启动关闭MongoDB有两种方法,可以都试一下。 19 | 方法一:使用brew 20 | >//启动 21 | brew services start mongodb-community@4.2 22 | //关闭 23 | brew services stop mongodb-community@4.2 24 | 25 | 方法二:使用环境变量 26 | 在终端输入 27 | >sudo open .bash_profile 28 | 29 | 打开配置文件后,添加如下变量 30 | >export PATH=/usr/local/Cellar/mongodb-community/4.2.0/bin:${PATH}} 31 | 32 | 启动MongoDB服务 33 | >sudo mongod 34 | 35 | 启动MongoDB的shell 36 | >mongo 37 | 38 | 启动成功后,即可使用Navicat Premium新建一个MongoDB的连接了,配置全部默认即可。在这里为数据库起名为SARS。 39 | 40 | 2.爬github的stars数量 41 | 实现了用API搜索GitHub中star数最多的前10个库以及在控制台打印 42 | (语言:Python) 43 | 44 | 待完成:还没有将爬到的数据存放在数据库中 45 | 46 | # 2019年10月20日-2019年10月27日 47 | 1、在learn-with-open-source项目中提交了一个PR,修改了一个Start.md章节的错误的标点符号,PR地址为:https://github.com/zhuangbiaowei/learn-with-open-source/pull/97 【Merged】 48 | 总结:本周熟悉了提交PR的过程,掌握了Git基本命令的使用。 -------------------------------------------------------------------------------- /doc/HomeWork/AICoder/1900022836.md: -------------------------------------------------------------------------------- 1 | 2019年10月20日-2019年10月27日 2 | 1、在learn-with-open-source项目中提交了一个PR,增加了useful-websites-to-learn-how-to-code-quickly文件翻译,修改了显示的乱码,删除了中文顿号 3 | PR地址为:https://github.com/zhuangbiaowei/learn-with-open-source/pull/213 4 | 总结:本周熟悉了提交PR的过程,掌握了Git基本命令的使用 5 | -------------------------------------------------------------------------------- /doc/HomeWork/AICoder/1901210264.md: -------------------------------------------------------------------------------- 1 | 2019年10月20日-2019年10月27日 2 | 3 | 在learn-with-open-source提交一个PR,修改了zh/HellowWorld.md中一些较为不通顺的语句,即#188完善语句 4 | PR地址为: 5 | https://github.com/zhuangbiaowei/learn-with-open-source/commit/13f4ca512382ef668bed885c197a2d9473416193#diff-81ec760683fd5d83f1468339d5b257ec 6 | 7 | 参与了AI代码补全项目小组的组内会议,了解了整个项目的目的、内容和任务。 8 | 第一周的组内实验,选择了算法项目中的Tensorflow中训练SeqtoSeq模型。 9 | 10 | 本周总结: 11 | 开始正式的在Github上进行学习,熟悉PR的提交流程,了解了接下来的项目任务和项目内容。 12 | 需要学习的地方仍有很多,希望能不断锻炼提高。 13 | 14 | 2019年10月24日-2019年10月31日 15 | 16 | 第一周小组任务: 17 | 完成AICoder小组的tensorflow实验,即新手教程部分。 18 | 完成平面拟合三维数据, 并显示出来。 19 | 选取minst进行入门训练,理解简单的Softmax Regression数学模型。 20 | 21 | 了解Seq2Seq模型的原理,并记录。 22 | 了解循环神经网络(RNN),针对其n-m结构即Encoder-Decoder模型中进行“文本-文本”的原理分析。 23 | 了解attention模型。 24 | 25 | 本周总结: 26 | 根据选修课及tensorflow中文手册,进行基础入门和简单训练。 27 | 在GitHub上找到一些seq2seq的开源项目,准备从简单的字符级语言模型训练开始学习。 28 | 需要学习的地方仍有好多好多,希望能不断锻炼提高。 29 | 30 | 2019年11月1日-2019年11月7日 31 | 第二周小组任务:算法组 32 | 了解一些RNN算法补全的项目,包括自然语言按字拼接、英文单词的提示补全等 33 | 自学模型训练过程,了解包括前向传播、后向传播的原理及过程。 34 | 35 | 本周总结: 36 | RNN项目较多,需要与本项目合适的算法结合,多多进行了解 37 | 还未从github上找到合适的代码补全项目进行学习,拟定作为下周的自学内容。 38 | 需要学习的地方很多 39 | 40 | 2019年11月8日-2019年11月14日 41 | 第三周小组任务(算法组): 42 | 汇总四组代码补全插件的体验报告,并进行分析总结、查缺补漏,并将所有的安装流程总结在附件中供大家使用。 43 | 将四种代码补全插件就补全功能、适用语言环境及IDE、有无学习模式等特点进行横向对比 44 | 对比四种现存的插件,提出本组拟定目标插件的初步的需求列表 45 | 46 | 本周总结: 47 | 在体验其他代码补全插件时,发现很多插件都已经各具自己的优势,如果能综合发展成为本组的开源项目,应该有很大进步,但也有很大难度 48 | 很多插件的功能,在付费版中已十分成熟,本组并无前例可循,自己探索的时候,难度应该不小。 49 | 有的插件学习过程都在云端GPU,限于本地的插件基本上都会多少有一些局限。 50 | 本周根据本组提供的算法学习路径,和平时的人工智能课继续学习算法相关。 51 | 但是需要学习的地方还是有很多。 52 | 53 | -------------------------------------------------------------------------------- /doc/HomeWork/AICoder/1901210275.md: -------------------------------------------------------------------------------- 1 | 1. 在github上进行了首次的helloworld的PR提交。 2 | 链接地址:https://github.com/qwer68588877/HelloWorld/tree/pr-test 3 | 了解了PR的操作流程。 4 | 其中出现了一些问题 5 | master分支同步失败:需要先进行commit才能够建立分支 6 | 无法默认找到邮箱,需要显示隐藏文件在工程文件同一目录找到.git并对设置进行更改 7 | 8 | agine -------------------------------------------------------------------------------- /doc/HomeWork/AICoder/1901210282.md: -------------------------------------------------------------------------------- 1 | ### 2019年10月20日-2019年10月27日 2 | - [x] 在learn-with-open-source的Before-start.md文档中修改了语法和标点错误,成功提交了PR。[链接][1] 3 | - [x] 在learn-with-open-source的Select-an-open-source-project.md文档中修改了语法和标点错误,成功提交了PR。[链接][2] 4 | - [x] 本周总结:安装git,学习并熟悉git命令,运用其实现了PR的提交。 5 | 6 | [1]:https://github.com/zhuangbiaowei/learn-with-open-source/commit/049b74d6b16d0870de7f4da208b35a607da86e71 7 | [2]:https://github.com/zhuangbiaowei/learn-with-open-source/commit/1b59d6ea9da434c37a3c974a8edcfd16f0fa7595 8 | 9 | ### 2019年10月28日-2019年10月31日 10 | - [x] 通过anaconda和pycharm软件安装了python与tensorflow环境,版本python=3.5.0,tensorflow=1.4.0 11 | - [x] 配置了运行sequence-to-sequence模型所需的nltk、tqdm等一系列包 12 | - [x] 运行了[seq2seq代码][3]程序,成功实现了一个简单的聊天机器人的功能 13 | - [x] 本周总结:配置好了运行seq2seq模型所需的一切软件环境,并运行了一个实例代码。 14 | - 实践过程中发现,版本的对应非常重要,tensorflow只支持python3.6以下的版本,运行github上的源码时,尝试了tensorflow从1.1.0到2.0的各个版本,发现版本不同会导致源码运行出现各种问题,这主要可能是因为不同版本之间的差距太大,导致代码也要随之变化。 15 | - 实现了简单的机器人聊天功能,如输入"hello",机器人会自动回复"hi.",功能很简陋,目的是通过该例子尝试并使用seq2seq模型,代码内部具体实现还有待进一步学习 16 | - 功能展示图: 17 | - ![功能展示图](https://github.com/Detect-er/pics-docs/blob/master/robot.PNG?raw=true) 18 | 19 | [3]:https://github.com/lc222/seq2seq_chatbot/ 20 | 21 | ### 2019年11月1日-2019年11月7日 22 | - [x] 根据循环神经网络LSTM的原理,编写了其网络结构前向传播代码 23 | - [x] 结合实例,分析原理和代码,实践了自动生成古诗应用代码 [链接][4] 24 | - [x] 该实例代码的前向传播和训练过程可以执行,但移植训练好的模型无法跑通,报了模型无法加载的错误,目前还未解决 25 | - [x] 本周总结:运行了LSTM的一个实例代码,但移植模型并未成功,需要进一步研究。 26 | 27 | [4]:https://blog.csdn.net/u014232627/article/details/71189078 28 | 29 | ### 2019年11月8日-2019年11月14日 30 | - [x] 体验了TabNine、Kite、Visual Studio IntelliCode和AIXcoder四款竞品的功能 31 | - [x] 总结了各产品的功能、优缺点、安装和开发模型等,进行了横向与纵向对比 32 | - [x] 总结了本项目的需求分析报告 33 | - [x] 本周总结:撰写了竞品调研汇总报告和项目需求分析报告 34 | 35 | -------------------------------------------------------------------------------- /doc/HomeWork/AICoder/1901210287.md: -------------------------------------------------------------------------------- 1 | 日期:2019.10.20-2019.10.27 2 | 工作列表: 3 | 1.学会用github更改仓库里的内容,提交pr 4 | 2.学习了用git bash的相关指令并提交pr 5 | 总结:还没用过issue 6 | 7 | -------------------------------------------------------------------------------- /doc/HomeWork/AICoder/1901210330.md: -------------------------------------------------------------------------------- 1 | 2019年10月20日-2019年10月27日 2 | 3 | 1.在learn-with-open-source中提交了自己的第一个PR,PR地址为https://github.com/zhuangbiaowei/learn-with-open-source/pull/144 4 | 5 | 2.利用python写了一个简单的爬虫程序,可以爬取符合特定格式的数据 6 | 7 | 总结:本周尝试使用github,并学习了爬虫的基本知识 8 | 9 | 10 | 2019年10月28日-2019年10月31日 11 | 12 | 1.学习python教程https://www.icourse163.org/learn/NJU-1001571005?tid=1206020206#/learn/announce,并学习网络爬虫的相关知识 13 | 14 | 总结:更加深入的学习了python和爬虫 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /doc/HomeWork/AICoder/1901210380.md: -------------------------------------------------------------------------------- 1 | 2 | # 北大-华为云新工科实验班周报 3 | 4 | --- 5 | ### **Content** 6 | 7 | - [2019.11.1-2019.11.7](#2019111-2019117) 8 | - [2019.10.27-2019.10.31](#20191027-20191031) 9 | - [2019.10.20-2019.10.26](#20191020-20191026) 10 | 11 | ## 2019.11.8-2019.11.15 12 | **工作列表** 13 | - [x] 学习Scrapy和Scrapy-splash,实现一个可以爬取js动态渲染的界面的爬虫。 14 | - [x] 学习解析html代码中常用的css选择器,xpath规则,正则表达式相关知识。 15 | 16 | **总结** 17 | - 能够实现对简单的静态和动态界面的爬虫编写;之前已经学习过github提供的开发者文档,下一步利用刚学的scrapy框架应用到github的爬取中。 18 | 19 | ## 2019.11.1-2019.11.7 20 | **工作列表** 21 | - [x] 项目小组任务分工后,选择数据部分的工作,并学习爬虫框架Scrapy。 22 | - [x] 开始学习开源项目Skywalking,了解基本原理并完成部署,安装了相关要用到的Maven,ElasticSearch。 23 | - [x] 开始学习Docker的相关知识并安装部署,运行hello world镜像。并学习和了解相关的k8s平台。 24 | - [x] 学习了java中一些关于并发和stream的知识。 25 | 26 | **总结** 27 | 28 | 在很多同学的推荐下,将java IDE从eclipse换成IntelliJ IDEA,使用体验很棒。安装各种工具和软件的过程中遇到很多意料之中的麻烦(毕竟部署和调试环境如果不出问题那就不叫程序员了),但久病成医,问题遇到的多了,耐心和经验也都大大提升,遇到报错,那就百度&Google;Docker不支持Windows家庭版,那就重装一个专业版;新东西不知道怎么入手,那就先搜一个最简单的入门教程,先把hello world运行起来再说。不用怕错误,大不了remove。实在不行,还能重装系统。其实这些各种开发工具都挺好玩的,所以,这周最大的经验:勇于尝试。 29 | 30 | 另,希望以后能慢慢开始多用Docker(虽然我还不知道它的作用是不是我理解的那样),免去各种软件工具部署的麻烦。 31 | 32 | ## 2019.11.1-2019.11.7 33 | **工作列表** 34 | - [x] 项目小组任务分工后,选择数据部分的工作,并学习爬虫框架Scrapy。 35 | - [x] 开始学习开源项目Skywalking,了解基本原理并完成部署,安装了相关要用到的Maven,ElasticSearch。 36 | - [x] 开始学习Docker的相关知识并安装部署,运行hello world镜像。并学习和了解相关的k8s平台。 37 | - [x] 学习了java中一些关于并发和stream的知识。 38 | 39 | **总结** 40 | 41 | 在很多同学的推荐下,将java IDE从eclipse换成IntelliJ IDEA,使用体验很棒。安装各种工具和软件的过程中遇到很多意料之中的麻烦(毕竟部署和调试环境如果不出问题那就不叫程序员了),但久病成医,问题遇到的多了,耐心和经验也都大大提升,遇到报错,那就百度&Google;Docker不支持Windows家庭版,那就重装一个专业版;新东西不知道怎么入手,那就先搜一个最简单的入门教程,先把hello world运行起来再说。不用怕错误,大不了remove。实在不行,还能重装系统。其实这些各种开发工具都挺好玩的,所以,这周最大的经验:勇于尝试。 42 | 43 | 另,希望以后能慢慢开始多用Docker(虽然我还不知道它的作用是不是我理解的那样),免去各种软件工具部署的麻烦。 44 | 45 | ## 2019.10.27-2019.10.31 46 | **工作列表** 47 | - [x] 阅读了github提供的开发者文档,了解爬取github中各类数据需要访问的接口; 48 | - [x] 用Python写了一个爬取github中用户信息的爬虫demo,作为初学练习; 49 | - [x] 下载Postman并了解了基础的使用方法,作为网页调试和编写爬虫的辅助工具。 50 | 51 | **总结** 52 | 53 | 本周未完成的内容:阅读了vscode中使用lsp的demo文档,但是还没有自己运行起来;爬虫能够根据用户名获得他的仓库列表以及与之关联的用户列表,如此迭代,但还没有爬取仓库中的文件内容。 54 | 55 | ## 2019.10.20-2019.10.26 56 | 57 | **工作列表** 58 | - [x] 在[【learn-with-open-source】](https://github.com/zhuangbiaowei/learn-with-open-source)项目中提交了第一个[Pull Request](https://github.com/zhuangbiaowei/learn-with-open-source/pull/55),并依照老师的建议进行完善后得到合并。 59 | - [x] 选择参与基于AI的代码补全项目,开始进行相关的学习。 60 | - [x] 在自己的Github下创建一个保存学习笔记的仓库。本周将学习提交PR过程中遇到的问题和总结的经验添加到[笔记](https://github.com/YangShaw/LearningNotes/blob/master/notes/git.md)中。 61 | - [x] 在[【OS-ABC/HelloWorld】](https://github.com/OS-ABC/HelloWorld)项目中创建自己的[周报文件](https://github.com/OS-ABC/HelloWorld/blob/master/doc/HomeWork/1901210380.md)(/doc/HomeWork/1901210380.md),用来每周提交工作和学习报告。 62 | 63 | **总结** 64 | 65 | 本周开始学习参与开源项目,了解了提交PR的相关流程、需要用到的git操作以及在这个过程中遇到的各种关于版本、分支、冲突等问题的错误经验和解决方法。将遇到的问题总结成笔记是一种好习惯,应该坚持。 66 | 67 | 68 | 69 | 70 | 71 | 72 | -------------------------------------------------------------------------------- /doc/HomeWork/AICoder/1901210388.md: -------------------------------------------------------------------------------- 1 | # 戈通 1901210388 2 | ## 2019.11.08——2019.11.15 3 | 4 | - [x] 了解TiDB架构,阅读源码 5 | 6 | - [x] 调研lsp的python实现,撰写调研报告 7 | 8 | - [x] 本周总结:lsp公开的资料和应用博客没有太多,所以还是想要真的弄清楚怎么用还是需要花点时间,现在只是初步可以跑起来,之后的修改并且和项目对接,还是需要深入理解。 9 | 10 | ## 2019.11.01——2019.11.07 11 | 12 | - [x] 学习SkyWalking,安装elasticsearch和SkyWalking 13 | 14 | - [x] 调研lsp的其他语言实现服务器 python Java 15 | 16 | - [x] 本周总结:本周了解了Sky Walking,和Elasticsearch,尤其是elasticsearch,对数据查询和搜索有了另外的选择方式. 17 | 18 | ## 2019.10.28——2019.10.31 19 | 20 | - [x] 按照微软lsp的部署教程,成功在Windows的vscode上运行出language server,并实现简单的插件提示功能 21 | 22 | - [x] 对git的一些命令操作进行实际操作 23 | 24 | - [x] 本周总结:本周成功运行language server,但是提交pr不够,下周考虑提交大数据相关的pr 25 | 26 | ## 2019.10.21——2019.10.27 27 | 28 | - [x] 在庄老师的learn-with-open-source项目中,添加学堂在线图片,并修改了图片引用地址。[https://github.com/zhuangbiaowei/learn-with-open-source/pull/145](https://github.com/zhuangbiaowei/learn-with-open-source/pull/145) 29 | - [x] 本周总结:本周git和github的关联和命令使用,并了解和试用爬虫框架。 30 | -------------------------------------------------------------------------------- /doc/HomeWork/AICoder/1901210401.md: -------------------------------------------------------------------------------- 1 | 2019年11月1日-2019年11月7日 2 | 1、学习了SkyWalking的基本概念和安装步骤 3 | 2、学习了Linux的基本命令使用 4 | 3、在Linux平台安装了nodejs、yo和generator-code 5 | 总结:本周的学习较为分散,但是各方面都有所收获 6 | 7 | 2019年10月28日-2019年10月31日 8 | 1、根据官方文档完成了一个简单的vscode插件:HelloWorld 9 | 2、尝试利用官网提供的代码实现一个LSP实例,但是由于编程环境原因未能成功,初步判断为一个名为vscode-install的组件未能安装成功 10 | 总结:本周只实现了一个简单的插件demo,效率较低 11 | 12 | 2019年10月20日-2019年10月27日 13 | 1、在zhuangbiaowei/learn-with-open-source项目中提交了一个PR,修改了Before-start.md文件中的错别字,PR地址为:https://github.com/zhuangbiaowei/learn-with-open-source/pull/60 14 | 2、在OS-ABC/HelloWorld项目中提价PR,创建了自己的作业文档,PR地址为:https://github.com/OS-ABC/HelloWorld/pull/46 15 | 总结:本周熟悉了提交PR的过程,掌握了Git基本命令的使用 16 | -------------------------------------------------------------------------------- /doc/HomeWork/AICoder/1901210451.md: -------------------------------------------------------------------------------- 1 | AI代码补全小组第二周周报 2019年10月28日-2019年10月31日 2 | 一、学习总结 3 | 这一周主要是系统性学习了爬虫知识Requests,robots.txt,Beautiful Soup,Re,Scrapy 4 | 二、总结 5 | 最开始学爬虫程序的时候,想的就是学一个简单的就行了,后面才发现,还是进行系统性学习,才能更有收获。 6 | -------------------------------------------------------------------------------- /doc/HomeWork/AICoder/1901210498.md: -------------------------------------------------------------------------------- 1 | 学号:1901210498 姓名 陶宇清 2 | 3 | 来AI组的第一周: 4 | 组长将大项目拆解成几个部分,按照成员的能力与喜好给每个人暂时安排了任务; 5 | 我选的是数据分析组; 6 | 第一周先熟悉python和scrapy,实现了用scrapy爬取猫眼电影网的热门电影的数据。 7 | -------------------------------------------------------------------------------- /doc/HomeWork/AICoder/1901210501.md: -------------------------------------------------------------------------------- 1 | 在learn-with-open-source项目中提交了一个PR, 2 | 修改了learn-with-open-source\en\Before-start文件中的语法错误, 3 | PR地址为https://github.com/zhuangbiaowei/learn-with-open-source/pull/165(Merged) 4 | 5 | 总结:本周熟悉了提交PR的过程,掌握了Git基本命令的使用。 6 | 7 | -------------------------------------------------------------------------------- /doc/HomeWork/AICoder/1901210515.md: -------------------------------------------------------------------------------- 1 | ## 11.1 - 11.7 2 | ------ 3 | 4 | - 用三种激活函数,五种优化器等进行神经网络的优化,mnist图片数据集的训练 5 | 6 | - 阅读Java实现的LSP源码进行编译和学习,没有完全弄懂 7 | 8 | - 总结:本周学习了神经网络的优化和LSP源码,后续进行LSP的分析和调用,或做其更改等 9 | 10 | ## 10.28 - 10.31 11 | ------ 12 | 13 | - 使用tensorflow搭建一个简单的神经网络,利用鸢尾花数据集实现神经网络的前向传播、反向传播,实现loss的下降,accuracy的上升,以及对loss的可视化等操作,最终达到0.98准确率 14 | 15 | - 总结:本周学习了tensorflow的使用,后续会进行神经网络的优化,图片数据集的训练等 16 | 17 | 18 | ## 10.20 - 10.27 19 | ------ 20 | 21 | - 在learn-with-open-source项目中提交了一个PR,修改了en/Before-start.md章节的错别字,PR地址为:https://github.com/zhuangbiaowei/learn-with-open-source/pull/163【Merged】 22 | 23 | - 总结:本周熟悉了提交PR的过程,掌握了Git基本命令的使用 24 | 25 | -------------------------------------------------------------------------------- /doc/HomeWork/AICoder/1901210520.md: -------------------------------------------------------------------------------- 1 | 2019年10月20日-2019年10月27日 2 | 3 | 1.在learn-with-open-source中提交了自己的第一个PR,具体修改内容为zh/Hello-world.md文件中的一处语句不够通顺的地方, 4 | PR地址为https://github.com/zhuangbiaowei/learn-with-open-source/pull/116 5 | 6 | 2.在HelloWorld中提交了一个PR,汇报了本周的学习内容。 7 | 8 | 总结:在本周的学习过程中,最大的收获是清楚了向项目提交PR的流程,同时也熟悉了git一部分基本命令的使用。 9 | -------------------------------------------------------------------------------- /doc/HomeWork/AICoder/1901210536.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OS-ABC/HelloWorld/d003d9f0943635abe5c99d88f47913feba0631f9/doc/HomeWork/AICoder/1901210536.md -------------------------------------------------------------------------------- /doc/HomeWork/AICoder/1901210539.md: -------------------------------------------------------------------------------- 1 | ### 2019年11月8日-2019年11月14日 2 | - [x] 学习了解了xpath语法和正则表达式语法 3 | - [x] 尝试爬取了tensorflow项目中的python类别的代码,由于反爬机制的原因目前只爬取了部分 4 | 5 | 总结:本周的主要工作是学习了爬虫所需要的一些正则语法和xpath语法,在实际爬取的过程中遇到了很多问题,后续需要整理出来。下一步的主要工作是学习一下防止反爬虫的策略,尝试将整个tensorflow项目中的python代码爬取下来。 6 | 7 | 8 | 9 | ### 2019年11月1日-2019年11月7日 10 | - [x] 学习了SkyWalking项目的基本原理,并下载安装SkyWalking测试监测tomcat的运行情况 11 | - [x] 继续学习scrapy爬虫框架 12 | - [x] 在爬取tensorflow的仓库地址后,使用urllib库的request模块下载了tensorflow的代码仓库,使用pygit2这个库下载github仓库没有成功。 13 | 14 | 总结:本周的主要工作是学习了SkyWalking的基本原理和对其进行了安装测试;继续学习scrapy爬虫框架,并尝试利用python下载github仓库代码;后续的工作是考虑采用下载整个github仓库的方式下载代码,还是采用爬虫的方式爬取每个仓库代码页面的代码。最后,要提高效率! 15 | 16 | ### 2019年10月28日-2019年10月31日 17 | - [x] 学习了解scrapy框架,了解其工作原理并运行其demo程序 18 | - [x] 了解github提供的开发接口,并利用scrapy框架和github提供的api爬取了部分github仓库地址 19 | 20 | 总结:本周的主要工作是学习scrapy框架的使用(但熟悉程度还不够,后续继续加深理解),同时当前测试的小demo爬取的仅是github的仓库地址,具体仓库代码如何爬取还需要进一步研究 21 | 22 | 23 | 24 | ### 2019年10月20日-2019年10月27日 25 | - [x] 在learn-with-open-source项目中提交了第一个PR,修改了start.md中的一个词语错误。PR地址为 [#32](https://github.com/zhuangbiaowei/learn-with-open-source/pull/32) [merged] 26 | - [x] 在HelloWorld项目中提交了一个PR,在HomeWork中创建了一个作业文件。PR地址为 [#30](https://github.com/OS-ABC/HelloWorld/pull/30) [merged] 27 | 28 | 总结:在庄老师和张老师的项目中练习提交PR,帮助我掌握了一些常用的git命令以及如何利用Pull Request去和大家一起交流学习 -------------------------------------------------------------------------------- /doc/HomeWork/AICoder/1901210557.md: -------------------------------------------------------------------------------- 1 | ## 2019.10.27-2019.10.31 2 | **工作列表** 3 | - [x] 阅读学习vscode中使用lsp文档:https://code.visualstudio.com/api/language-extensions/language-server-extension-guide 4 | - [x] 运行出demo:vscode-extension-samples/lsp-sample,不过因为只是个sample,所以好像只能检测出JavaScript和TypeScript两个单词。 5 | - [x] 根据一个总结博客学习了一部分关于lsp具体相关内容:https://blog.csdn.net/lusing/article/list/2? 6 | 7 | 本周主要对lsp进行了基础学习,接下来一方面会继续对lsp进行深入分析和学习,还有很多原理部分都不懂,另外希望也能摸索一下semantic和爬虫相关学习。 8 | 9 | ## 2019.10.21 — 2019.10.27 10 | - [x] 在learn-with-open-source中提交了一个PR,change "某一部" to "每一步" in Understanding-the-source-code.md #139。 PR地址为: https://github.com/zhuangbiaowei/learn-with-open-source/pull/139 [Merged]。 11 | 12 | 在给庄老师的项目提交PR的过程中,我学会了git基本命令的使用,也掌握了提交PR的流程。 13 | -------------------------------------------------------------------------------- /doc/HomeWork/AICoder/1901210568.md: -------------------------------------------------------------------------------- 1 | # 第一周作业总结 2 | - [x] 1、完成了庄老师learn-with-open-source Project的两个简单的PR 3 | * 链接:https://github.com/zhuangbiaowei/learn-with-open-source/pull/94 4 | * 链接:https://github.com/zhuangbiaowei/learn-with-open-source/pull/114 5 | 6 | - [x] 2、由庄老师的回复“LGTM”查询资料完成了HelloWorld/doc/Git/Git团队协作常用术语.md 7 | * 链接:[Git团队协作常用术语](https://github.com/OS-ABC/HelloWorld/blob/master/doc/Git/Git%E5%9B%A2%E9%98%9F%E5%8D%8F%E4%BD%9C%E5%B8%B8%E7%94%A8%E6%9C%AF%E8%AF%AD.md) 8 | 9 | - [x] 3、学习markdown的基本语法并完成了本文档的写作。 10 | 11 | - [x] 4、为同学们的作业[PR教程共享](https://github.com/OS-ABC/HelloWorld/tree/master/doc/Start)贡献了一点力量,提交了一个PR 12 | 13 | -------------------------------------------------------------------------------- /doc/HomeWork/AICoder/1901210577.md: -------------------------------------------------------------------------------- 1 | # 2019年10月20日-2019年10月27日 2 | 3 | 在learn-with-open-source项目提交了一个pr并被合并,推荐了一个比较好的英文MOOC平台。[pr地址](https://github.com/zhuangbiaowei/learn-with-open-source/pull/112) 4 | 5 | 本周总结: 学习了在github上fork项目,使用git的一些基本命令克隆、修改并推送项目到github,提交pull request。 6 | 7 | # 2019年10月28日-2019年11月3日 8 | 9 | 安装了tensorflow2GPU版本和CUDA,初步熟悉了机器学习框架。 10 | 总结:对于tensorflow有了初步的认识,开始入门。 11 | -------------------------------------------------------------------------------- /doc/HomeWork/AICoder/1901210580.md: -------------------------------------------------------------------------------- 1 | # 实验班学习周报 # 2 | ## Week1 2019.10.25-2019.10.31 ## 3 | 1. 学习markdown基本语法,使用markdown书写周报等文件 4 | 2. 安装git,使用git命令在learn-with-open-source的Before-start.md文档中修改了语法和标点错误,成功提交了PR并被merge。链接:[https://github.com/JarChang/learn-with-open-source/tree/LearnGit/zh](https://github.com/JarChang/learn-with-open-source/tree/LearnGit/zh) 5 | 3. 安装python及tensorflow软件,配置其运行环境 -------------------------------------------------------------------------------- /doc/HomeWork/AICoder/1901210618.md: -------------------------------------------------------------------------------- 1 | 2019年10月20日-2019年10月27日 2 | 1 参与了learn-with-open-source项目的review,修改了/zh/Before-Start 中的两处疑问词,地址:https://github.com/zhuangbiaowei/learn-with-open-source/pull/168 3 | 2 参与了learn-with-open-source项目的review,修改了/en/Before-Start中的一处词汇用法和一处动词短语搭配问题,地址:https://github.com/zhuangbiaowei/learn-with-open-source/pull/190 4 | 总结:通过本次实践,我掌握了gitbash命令行的使用方法,了解了利用gitbash拷贝他人项目,修改后再进行pullrequest的操作。 5 | 6 | 2019年10月28日-2019年11月3日 7 | 1 学习了semanic库的使用,了解了该工具解析得到的语义树的含义,并且 8 | 尝试下载安装了使用该工具所必须的GHC8.6.4和cabal, 9 | 2 在北大提供的Ubantu服务器上安装了cuda 和cudnn,并安装了gpu版本的tensorflow,搭建了服务器端的开发环境。 10 | 总结:通过本次实践,我学习了在AI项目补全中可能会用到的一些工具,解决了在安装过程中遇到的一些问题,提高了自己的实践能力。 11 | -------------------------------------------------------------------------------- /doc/HomeWork/AICoder/1901210625.md: -------------------------------------------------------------------------------- 1 | # 戴启宇1901210625 2 | ## 2019.10.31 — 2019.11.7 3 | - [x] 学习理解了SkyWalking的基本架构、工作原理和安装配置。 4 | - [x] 学习研究了LSTM等模型,为AICoder项目做准备。 5 | 6 | 总结:本周主要工作集中在SkyWalking和深度学习算法的学习上。 7 | 8 | ## 2019.10.27 — 2019.10.31 9 | - [x] 进一步学习和整理了TensorFlow框架的基础知识,提高使用该框架编程的熟练程度。 10 | - [x] 通过阅读论文和博客,初步了解了Seq2Seq模型。 11 | 12 | 总结:本周是代码补全项目的入门,主要学习了核心算法模型,熟练了框架的使用。 13 | 14 | ## 2019.10.21 — 2019.10.27 15 | - [x] 在learn-with-open-source项目中提交了首个PR,修改了文档Hello-world.md部分存在问题的字词和标点,PR地址为:https://github.com/zhuangbiaowei/learn-with-open-source/pull/40 【Merged】 16 | 17 | 总结:本周学习掌握了如何正确地提交一个PR,初步了解和实践了Git的基础命令。 18 | 19 | 20 | -------------------------------------------------------------------------------- /doc/HomeWork/AICoder/1901210675.md: -------------------------------------------------------------------------------- 1 | # 开源周报 2 | 3 | ### 2019年11月1日-2019年11月7日 4 | - [x] 1、完成了竞品调研并输出报告 5 | - [x] 2、学习了SkyWalking并输出报告 6 | - [x] 3、收集了算法相关的论文 7 | - [x] 4、学会了使用upstream 8 | 9 | ### 2019年10月28日-2019年10月31日 10 | - [x] 1、完成tensorflow官网新手入门教程 11 | - [x] 2、学习seq2seq模型并做笔记 12 | - [x] 本周总结:掌握了tensorflow的基本使用,了解了seq2seq模型的原理 13 | 14 | ### 2019年10月20日-2019年10月27日 15 | 16 | - [x] 1、为OS-ABC/Helloworld项目Homework第一次提交PR,创建自己的文件。 17 | - [x] 2、在learn-with-open-source项目中提交了一个PR,修改了zh/Start.md中的一些错别字和语病,PR地址为: https://github.com/zhuangbiaowei/learn-with-open-source/pull/125 【Merged】 18 | - [x] 本周总结:掌握了git的基本使用,学习了如何提交PR。 -------------------------------------------------------------------------------- /doc/HomeWork/AICoder/1901210694.md: -------------------------------------------------------------------------------- 1 | # 2019年10月20日-2019年11月3日 2 | SpringBoot建立HelloWorld项目 3 | Mybatis对MySQL进行操作 4 | 本周总结:入门SpringBoot 5 | 6 | 7 | # 2019年10月20日-2019年10月27日 8 | 9 | 在learn-with-open-source项目提交了一个pr并被合并,更改了zh\Understanding-the-source-code.md里面的标点。[pr地址](https://github.com/zhuangbiaowei/learn-with-open-source/pull/111) 10 | 11 | 本周总结: 学习了在github上fork项目,使用git的一些基本命令克隆、修改并推送项目到github,提交pull request。 12 | 13 | 14 | -------------------------------------------------------------------------------- /doc/HomeWork/AICoder/1901210729.md: -------------------------------------------------------------------------------- 1 | # 陆泽瑞1901210729 2 | 3 | ### 2019.11.8 — 2019.11.14 4 | 5 | 1.找到LSP协议的java实现:Eclipse LSP4J 6 | 2.找到Ballerina语言的基于LSP4J实现的language Server的教程 7 | 8 | 总结:对用java实现server有一个大概的方向,但是具体怎么操作还要继续探索学习。 9 | 10 | ### 2019.11.1 — 2019.11.7 11 | 12 | 1.阅读了vscode LSP插件开发教程中的demo代码 13 | 2.修改一些参数后查看效果 14 | 15 | 总结:基本了解了LSP的client,server的结构,对一些具体的参数初步了解,为开发奠定基础。 16 | 17 | ### 2019.10.28 — 2019.10.31 18 | 19 | 1.爬取google在github上的源代码地址 20 | 2.用源代码地址下载谷歌开源项目 21 | 22 | 总结:了解了python爬虫的写法,下载的方法,读写文件等操作,并对pr流程更加熟悉。 23 | 24 | ### 2019.10.21 — 2019.10.27 25 | 26 | 1. 在learn-with-open-source中提交了第一个PR,增加了Before-start.md中一个句子的易读性。PR地址为: https://github.com/zhuangbiaowei/learn-with-open-source/pull/58 [Merged]。 27 | 28 | 总结:在给庄老师的项目提交PR的过程中,我的操作不太规范,没有使用到git命令,但是在交作业的过程中我学会了git中的clone、commit、push等命令的使用,也掌握了提交PR的流程。 29 | 30 | -------------------------------------------------------------------------------- /doc/HomeWork/AICoder/1901210733.md: -------------------------------------------------------------------------------- 1 | 王冲 1901210733 周报 2 | ==================== 3 | 2019年10月20日-2019年10月27日 4 | 1.基本学完了go语言 5 | 2.为tidb的向量化实现了builtinArithmeticIntDivideIntSig功能、提交了PR,并且代码被reviewer通过。 6 | 3.发现了tidb测试框架的一个bug(不能识别输入样例中的unsigned int 类型),但是很难改,所以在社区里交给了reviewer(由于这个bug,我的PR测试不能通过,所以暂时还未merge)。 7 | -------------------------------------------------------------------------------- /doc/HomeWork/AICoder/1901210745.md: -------------------------------------------------------------------------------- 1 | ### 2019年11月8日-2019年11月14日 2 | --------------------- 3 | 4 | - 研究lsp协议使用java实现的一些项目 5 | 6 | ### 2019年11月1日-2019年11月7日 7 | --------------------- 8 | 9 | - 了解skywalking的一些基本原理 10 | 11 | - 了解lsp协议在vscode以外项目的使用 12 | 13 | ### 2019年10月28日-2019年10月31日 14 | --------------------- 15 | 16 | - 学习了vscode中language server protocol,了解了LSP协议 17 | 18 | - 进行了demo实验 19 | 20 | 21 | ### 2019年10月20日-2019年10月27日 22 | --------------------- 23 | 24 | - 在learn-with-open-source项目中提交了一个pull request,主要增加了start.md文件的部分英文版内容, 25 | 26 | 地址:https://github.com/zhuangbiaowei/learn-with-open-source/pull/199 27 | 28 | - 在learn-with-open-source项目中提交了一个pull request,主要修改一部分语法错误,由于跟其他修改冲突,被closed 29 | 30 | 地址:https://github.com/zhuangbiaowei/learn-with-open-source/pull/151 31 | 32 | - 从中学习了如何pull request 33 | -------------------------------------------------------------------------------- /doc/HomeWork/AICoder/1901210752.md: -------------------------------------------------------------------------------- 1 | ### 个人周报 2 | 3 | ### 2019年10月20日-2019年10月27日 4 | 5 | - [x] 对庄老师的项目(https://github.com/zhuangbiaowei/learn-with-open-source )进行开源项目学习与实战,在learn-with-open-source项目中提交了一个PR,其中修改的文档内容包括将一些专有名词开头的小写字母修订成大写字母,并且将一个状语中的“的”改正为“地”,PR地址为:https://github.com/zhuangbiaowei/learn-with-open-source/pull/101 【Merged】 6 | - [x] Fork了DevUI项目(https://github.com/DevCloudFE/ng-devui ),阅读文档和源码;在DevUI项目组会的项目介绍中了解本学期和本学年项目组需要完成的工作,据此进行个人进度规划;鉴于有个人选择的前端任务,我初步选定为博客界面设计。 7 | 8 | 总结:本周熟悉了Github基础操作和Git基本命令的使用,开始DevUI项目的初步准备工作。 9 | 10 | 11 | ### 2019年10月28日-2019年10月31日 12 | 13 | - [x] 在菜鸟教程的HTML教程(https://www.runoob.com/html/html-tutorial.html )进行HTML语言学习与实验,完成了HTML教程的全部25个模块的学习。 14 | - [x] 安装了PHPstorm并且配置好环境作为前端代码编写IDE。 15 | 16 | 总结:本周阅读了菜鸟教程HTML教程,并完成了相应实验,并且安装了PHPstorm。 17 | 18 | ### 2019年11月1日-2019年11月7日 19 | 20 | - [x] 阅读了SkyWalking项目(https://github.com/apache/skywalking/ )的概念设计文档(https://github.com/apache/skywalking/blob/v6.4.0/docs/en/concepts-and-designs/README.md )。 21 | - [x] 依据安装说明文档(https://github.com/apache/skywalking/blob/v6.4.0/docs/en/setup/README.md ),安装配置了SkyWalking,并且完成试运行。 22 | - [x] 更改了所参与的项目。 23 | 24 | 总结:本周阅读了SkyWalking项目的概念设计文档,同时依据安装说明文档安装配置了SkyWalking,并且完成试运行。 25 | 26 | ### 2019年11月8日-2019年11月14日 27 | 28 | - [x] 了解了Kite代码补全工具(https://www.kite.com/ )的功能和特点,下载并安装在pycharm IDE中,尝试使用并撰写了Kite项目的调研报告。 29 | - [x] 阅读了其他竞品的调研报告,为项目打基础。 30 | 31 | 总结:本周了解和使用了Kite工具,撰写了调研报告,同时阅读了其他竞品的调研报告。 32 | -------------------------------------------------------------------------------- /doc/HomeWork/AICoder/1901210755.md: -------------------------------------------------------------------------------- 1 | ### 个人周报 2 | 3 | ### 2019年10月20日-2019年10月27日 4 | 5 | - [x] 完成pr任务,了解pr,在learn-with-open-source项目中提交了一个PR,修改了zh文件夹中**Select-an-open-source-project.md**中标点符号和描述,PR地址为:https://github.com/zhuangbiaowei/learn-with-open-source/pull/61 【Merged】 6 | - [x] fork DevUI并进行学习 7 | 8 | 总结:本周熟悉了提交PR的过程,掌握了Git基本命令的使用 9 | 10 | ### 2019年10月28日-2019年10月30日 11 | 12 | - [x] 复习HTML/CSS等基本知识,读菜鸟教程、w3s/w3c等网站 13 | - [x] 复习Bootstrap框架 14 | - [x] 继续熟悉git知识,fork、pull、merge等 15 | - [x] 读DevUI文档,读完前两部分,下周读后面的 16 | 17 | 总结:继续学习git,并且熟悉前端知识 18 | 19 | ### 2019年11月1日-2019年11月7日 20 | 21 | - [x] 了解学习SkyWalking 22 | - [x] 熟悉TensorFlow,熟悉深度学习算法 23 | - [x] 了解任务分工,选择任务分工。 24 | 25 | 总结:接触学习开源项目SkyWalking,熟悉深度学习算法。 26 | 27 | ### 2019年11月8日-2019年11月14日 28 | 29 | - [x] 了解学习Kite,下载并写产品调研报告 30 | - [x] 读群里的学习路线,看相关学习视频 31 | 32 | 总结:写调研报告,学习机器学习、深度学习视频。 33 | 34 | -------------------------------------------------------------------------------- /doc/HomeWork/AICoder/1901210756.md: -------------------------------------------------------------------------------- 1 | ### 开源周报 2 | 3 | ### 2019年11月8日-2019年11月14日 4 | 5 | - [x] 1、整理了算法组的算法学习路径和资料作为本周的工作。 6 | - [x] 本周总结:对AI代码补全可能需要用到的算法及模型有了基本认识。 7 | 8 | ### 2019年11月1日-2019年11月7日 9 | 10 | - [x] 1、从skywalking的github了解了其原理与框架,尝试进行部署与运行。 11 | - [x] 2、利用keras搭建CNN练手,并学习了如何利用深度学习进行自然语言处理及代码补全的相关理论。 12 | - [x] 本周总结:对skywalking有了基本了解,并学习了CNN在代码补全方面的相关理论。 13 | 14 | ### 2019年10月28日-2019年10月31日 15 | 16 | - [x] 1、在本地跑了LSP的demo,了解了基本的框架。demo地址:https://github.com/js00070/code-extension 17 | - [x] 2、由于OS-ABC的repo与我的repo冲突,尝试解决冲突。 18 | - [x] 本周总结:加深了对git的使用方法理解,跑了LSP demo,对AICoder的插件实现框架有了认识。 19 | 20 | ### 2019年10月20日-2019年10月27日 21 | 22 | - [x] 1、为OS-ABC/Helloworld项目Homework第一次提交PR,创建自己的文件。 23 | - [x] 2、在learn-with-open-source项目中提交了一个PR,修改了zh/Understanding-the-source-code.md中一个文字重复的错误,PR地址为: https://github.com/zhuangbiaowei/learn-with-open-source/pull/41 【Merged】 24 | - [x] 本周总结:掌握了git的基本使用,学习了如何提交PR。 25 | 26 | -------------------------------------------------------------------------------- /doc/HomeWork/AICoder/1901210779.md: -------------------------------------------------------------------------------- 1 | ### 2019.10.20-10.27第一周周报 2 | 3 | **工作列表** 4 | - [x] 在学习的基础上实践操作相关Git基本命令。 5 | - [x] 在[learn-with-open-source](https://github.com/zhuangbiaowei/learn-with-open-source)项目中成功提交了第一个[Pull Request](https://github.com/zhuangbiaowei/learn-with-open-source/pull/191)。 6 | - [x] 选择参与基于AI的代码补全项目,并开始针对爬虫技术进行初步认识。 7 | - [x] 在[OS-ABC/HelloWorld](https://github.com/OS-ABC/HelloWorld)项目中创建自己的[第一周周报](https://github.com/OS-ABC/HelloWorld/blob/master/doc/HomeWork/AICoder/1901210779.md),作为每周的小结笔记。 8 | 9 | **总结** 10 | - [x] 学习了Git基本知识,并成功提交了人生中第一个Pull Request,同时开始了解爬虫相关知识。 11 | 12 | ### 2019.10.28-10.30第二周周报 13 | 14 | **工作列表** 15 | - [x] 开始学习python的基本函数和面向对象。 16 | - [x] 在开源项目中了解python的基本框架。 17 | - [x] 在mac电脑上安装scrapy框架,上网搜索爬虫相关知识进行入门学习。 18 | 19 | **总结** 20 | - [x] 学习python基础知识,进行爬虫环境搭建。 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /doc/HomeWork/AICoder/1901210818.md: -------------------------------------------------------------------------------- 1 | 在learn-with-open-source 中提交了第一个pr被关闭了,因为没有及时review; 在learn-with-open-source 中提交了第二个pr,修改了Understanding-the-source-code.md模块的标点符号内容, pr地址为:https://github.com/zhuangbiaowei/learn-with-open-source/pull/203 总结:在给庄老师提交PR过程中,学会了三种方法提交pr,1、在自己的库中点击铅笔✏️的标志,在文章末编辑需要修改的内容,然后点击commit提交; 2 | 2、在迅雷上安装Github Desktop可以提交pr; 3 | 3、练习用git提交pr,使用git中add\commit\push提交 4 | -------------------------------------------------------------------------------- /doc/HomeWork/AICoder/README.md: -------------------------------------------------------------------------------- 1 | 基于AI代码补全插件 2 | -------------------------------------------------------------------------------- /doc/HomeWork/DevUI/1800022828.md: -------------------------------------------------------------------------------- 1 | 2 | # 19.10.27 第一周总结 3 | 4 | ### 本周项目没有实质进展 5 | 6 | - [x] 了解了 DevUI 项目 7 | - [ ] ~~查看项目源码~~ , :smile: 8 | - [x] 初步了解 git 操作并提交了 pr 9 | -------------------------------------------------------------------------------- /doc/HomeWork/DevUI/1900022733.md: -------------------------------------------------------------------------------- 1 | ### 2019年10月20日-2019年10月27日 2 | - [x] 与仓库建立ssh连接密匙,并保存至账号端 3 | - [x] fork庄老师的项目并clone http下载至本地 4 | - [x] 寻找出错的地方,修改Summary.md中的层级序号 5 | - [x] 建立并进入分支,add需要添加的文件,commit并附上说明信息 6 | - [x] 创建.gitignore文件来隐藏自动生成的.DS_Store文件,push至云端仓库,提交pr 7 | - [x] 本周总结:学会了git的简单使用,了解DEVUI的项目确定下周学习内容 8 | 9 | ### 2019年10月24日-2019年10月31日 10 | - [x] 完成了一个简单的静态网站界面 11 | - [x] html实现了页面整体布局 12 | - [x] css实现了简单样式 13 | - [x] 本周总结:这周课程任务较多,未能分配足够时间在前端学习上,下周开始学习js。 14 | 15 | ### 2019年10月31日-2019年11月7日 16 | - [x] 加入git class 17 | - [x] 成功安装angular,解决安装时部分包被墙无法,解决文件权限问题 18 | - [x] 新建my-app项目,实现本地访问 19 | - [x] 在项目中使用devui组件添加button 20 | - [x] 本周总结:这周看教程了解了前端主要包括哪些方面,各部分包含哪些内容,明确了之后学习的路径。再主要完成了环境配置,学会了框架和组件的初步使用,下周动手实现模拟设计图做出一个界面来。 21 | 22 | ### 2019年11月7日-2019年11月14日 23 | - [x] 实现angular教程实例项目heros 24 | - [x] 粗糙实现模拟设计图 25 | - [x] 本周总结:最开始没有看教程,直接开始写代码,所有组件也直接放在同样的组件中,最后语法错误,文件组织也有误,运行时一片空白。浪费了许多时间,好在算是加深了对设计图的规划思考。 26 | 27 | ### 2019年11月14日-2019年11月21日 28 | - [x] 实现Angular购物车实例教程 29 | - [x] 优化上周实现的模拟设计图 30 | - [x] 简单使用devui组件 31 | - [x] 本周总结:对angular框架特性、文件组织和命名方式的理解更进了一步,使得自己的模拟设计图代码更清晰了一点 32 | 33 | ### 2019年11月21日-2019年11月28日 34 | - [x] 学习vscode插件官方教程 35 | - [x] 完成helloworld第一个插件 36 | - [x] 本周总结:开发主要使用typescript语言,所以花了挺多时间在学习语言特性上,但是感觉效果不太好,对泛型、接口等概念似懂非懂,语法与之前学的java、python等不太相似,感觉有些吃力,还是要在实践中慢慢学习。 37 | 38 | ### 2019年11月28日-2019年12月5日 39 | - [x] 完成插件实现定义跳转、高亮显示、悬停提示功能 40 | - [x] 本周总结:学习了vscode API的一些使用,加深对TS语言的理解,但实现过程中有一些错误的解决方法并不理解,仅仅是纠正了而已 41 | -------------------------------------------------------------------------------- /doc/HomeWork/DevUI/1900022753.md: -------------------------------------------------------------------------------- 1 | # 20191020-20191027 2 | --- 3 | 1. 在learn-with-open-source项目中提交了一个[PR](https://github.com/zhuangbiaowei/learn-with-open-source/pull/95),增加了一个徽章并使得书名更加规范化,如图: 4 | 5 | ![](https://i.loli.net/2019/10/26/Gv2aQNISY5XVxub.png) 6 | 7 | 2. 成为了learn-with-open-source的collaborator: 8 | 9 | ![](https://i.loli.net/2019/10/26/wIPMDnQLz49j61e.png) 10 | 11 | 总结:本周熟悉了提交PR的过程,掌握了Git基本命令的使用 12 | 13 | --- 14 | # 20191027-20191103 15 | 16 | - [ ] 在devui项目中提交了一个[PR](https://github.com/DevCloudFE/ng-devui/commit/9cde6c49061fdfbeb9a071303db9558bc93c8213),修改了readme.md的一点语法显示错误,并被merge 17 | - [ ] 按照华为Devui的自学教程进行到第5步,启动了一个angualr项目,如下图: 18 | 19 | ![](https://i.loli.net/2019/11/03/H4iePNTwclFLxav.png) 20 | 21 | 总结: 本周初步了解了前端html,css和js的一些知识,并安装好angualr,初步写了一点页面,下一步继续实践 22 | -------------------------------------------------------------------------------- /doc/HomeWork/DevUI/1900022754(1).md: -------------------------------------------------------------------------------- 1 | 周报_DevUI_2019/10/28-2019/10/31 2 | 3 | 学习内容: 4 | 1. 学习了HTML教程、HTML5语义化标签、CSS教程、CSS盒子模型、CSS position属性。 5 | 2. 学习了前端中的JavaScript教程。 6 | 7 | 总结:了解了开源项目课程中关于HTML和CSS的知识点,学习了JavaScript的语法和使用方式。 8 | -------------------------------------------------------------------------------- /doc/HomeWork/DevUI/1900022754.md: -------------------------------------------------------------------------------- 1 | 1900022754 李理 2 | 2019年10月20日-2019年10月27日 开源周报 3 | 4 | 1. 在zhuangbiaowei/learn-with-open-source项目中开始了一个PR,修改了错别字,但未点击create a pull request,提交失败; 5 | 2. 在zhuangbiaowei/learn-with-open-source项目中开始了一个PR,修改了语法问题,pr地址为:https://github.com/zhuangbiaowei/learn-with-open-source/pull/210#event-2746656465; 6 | 总结:本周掌握了Git基本命令的使用,熟悉了提交pr的流程。 7 | -------------------------------------------------------------------------------- /doc/HomeWork/DevUI/1900022799.md: -------------------------------------------------------------------------------- 1 | # 开源周报 2 | 3 | ## 2019.10.21-2019.10.27 4 | 5 | 1、在learn-with-open-source中提交了第一个PR,修改了一些错别字和不通顺的地方。PR地址为 https://github.com/zhuangbiaowei/learn-with-open-source/pull/73 【Merged】 6 | 7 | 2、在HelloWorld项目的Homework文件夹中创建了自己的开源周报。 8 | 9 | 总结:本周熟悉了提交PR的过程,并学习了Git基本命令的使用 10 | 11 | ## 2019.11.01-2019.11.07 12 | 13 | 1、学习了SkyWalking的基本原理和安装步骤 14 | 15 | 2、比较了SQL和NoSQL各自的优缺点和适用范围 16 | 17 | 3、了解了数据存储格式 18 | 19 | ## 2019.11.08-2019.11.14 20 | 21 | 1、学习了Scrapy爬虫框架,了解了其基本原理,并实现了对一个页面数据的爬取 22 | -------------------------------------------------------------------------------- /doc/HomeWork/DevUI/1900022808.md: -------------------------------------------------------------------------------- 1 | 跟组继续做devui项目 2 | 测试并且看看别人犯错的地方,自己能不能解答! -------------------------------------------------------------------------------- /doc/HomeWork/DevUI/1900022816.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | # 20191022 4 | * 学习git使用,doc文件上传至课堂派。 5 | * 简单的了解了html,实现了一个网页 6 | * 网页源码格式问题展示删除,之后会传到网站上 7 | 8 | * 提交的PR 地址如下:https://github.com/zhuangbiaowei/learn-with-open-source/pull/50 9 | 10 | 11 | # 20191031 12 | * 学习了基本的JS语法,完成了function,数组,sort,remove,Date模块的学习,了解了一些正则表达式的语法。 13 | 14 | * angular方面,学习了构造和使用component,了解了angular的文件目录与结构。 15 | 16 | * angular语法方面,使用不同的css文件完成三种不同的构造方式。并使用ngmodle完成了双向数据绑定,并且完成了一个表单组件。 17 | 18 | *开发了两个demo ,分别是网页布局demo与表单demo,代码量在500行左右 19 | 20 | 21 | # 20191107 22 | * 学习了路由知识,尝试着通过路由完成了单页面下的tabs标签 23 | 24 | * 练习使用DevUI组件库中的按钮,tabs,tag等等组件,并将flex布局应用到页面上。 25 | 26 | * 完成了一个页面,已提交到DevUI的学习仓库。 27 | 28 | # 20191114 29 | * 家里老人进了ICU 回老家照顾了一周,因此完成的任务较少。 30 | 31 | * 理解了angular中api的概念,使用ng-deep完成样式穿透,将单页面拆分为多个组件。 32 | 33 | #20191128 34 | * 组内导师安排了一个类似于开发文档的新手项目,he组员讨论确定了项目原型 35 | 36 | * 学习了其他一些devui组件的应用,并计划使用devUi制作学校课程项目的前端 37 | -------------------------------------------------------------------------------- /doc/HomeWork/DevUI/1900022817.md: -------------------------------------------------------------------------------- 1 | ## 倪凯悦1900022817 2 | 3 | #### 2019.10.21——2019.10.27 4 | 5 | 1、在learn-with-open-source中提交了一个PR,修改了文件Select-an-open-source-project中的一些错别字和语句不通顺的地方。PR地址为:https://github.com/zhuangbiaowei/learn-with-open-source/pull/77[Merged]。 6 | 7 | 总结:这周主要学习了如何在Github上给一个开源项目提交PR,熟悉了git的一些常用操作指令。 8 | 9 | #### 2019.10.28——2019.10.31 10 | 11 | 1、学习了DevUI开源项目课程中HTML 教程、HTML5 语义化标签、CSS 教程、CSS 盒子模型、CSS position 属性 12 | 13 | 2、在Angular 教程:https://angular.cn/start 中学习了Angular 模板语法的五个常用特性:`*ngFor`、`*ngIf`、插值表达式、属性绑定和事件绑定 14 | 15 | 总结:主要学习了前端的一些基础知识以及了解了Angular的一些基本特性。 16 | 17 | #### 2019.11.1——2019.11.7 18 | 19 | 1、加入了课堂,完成了git任务,[github地址][https://github.com/DevUIStudy/devui-study-101-KaiyueNi] 20 | 21 | 2、学会了angular cli 新建工程 22 | 23 | 3、学会了使用DevUI组件 24 | 25 | 4、根据设计图实现了绝大部分界面 26 | 27 | 总结:这周主要学习了angular cli和使用DevUI组件开发页面。 28 | 29 | #### 2019.11.8——2019.11.14 30 | 31 | 1、根据设计图实现了界面 32 | 33 | 2、理解了路由的使用,构建了项目路由 34 | 35 | 3、完成了DevUI体验报告 36 | 37 | 总结:这周主要学习了angular项目的路由构建,完成了设计图界面。 38 | 39 | #### 2019.11.15——2019.11.21 40 | 41 | 1、根据老师的点评意见对项目进行了修改 42 | 43 | 2、对四个待选课题进行了简单的调研 44 | 45 | 总结:这周主要修改完善了项目代码。 -------------------------------------------------------------------------------- /doc/HomeWork/DevUI/1900022846.md: -------------------------------------------------------------------------------- 1 | # 2019北大-华为云新工科实验班学习记录 2 | ## 2019年11月15日-2019年11月21日 3 | - [x] 在ABC项目组安装了老师推荐的Windows平台相应工具。 4 | - [x] 租用了阿里云的轻量级应用服务器,安装了JDK,Tomcat和Python3等软件。 5 | 6 | 总结:认识到自己的缺陷,希望可以通过广泛接触确定自己的未来发展方向。 7 | 8 | ## 2019年11月08日-2019年11月14日 9 | - [x] 利用Angular创建了自己的第一个项目,完成了Angular的基础教程。 10 | - [x] 在DevUIStudy Gitclass中提交了第一个Angular项目,并对于老师所提出的任务进行了探索和完成。 11 | 12 | 总结:个人对于DevUI项目的前端知识还处于学习阶段,本周进度未完全达成计划,后续会加油赶上进度。 13 | 14 | ## 2019年11月01日-2019年11月07日 15 | - [x] 在DevCloudFE/ng-devui项目中加入了DevUIStudy Gitclass,创建了自己的仓库,地址为:https://github.com/DevUIStudy/devui-study-101-ClausYang。 16 | - [x] 在DevCloudFE/ng-devui项目中,跟随指导老师所发布的学习文档,完成了第一和第二个任务,并开始第三个任务的学习。 17 | - [x] 下载并安装了VMware Workstation和Ubuntu18.04.3版本,在系统端进行了简单的Linux指令摸索。 18 | 19 | 总结:本周DevUI项目进度较慢,前期的准备和基础学习较耗时间,且自身课业本周较为繁重,下一周也将按照自己的承诺完成DevUI学习文件的学习,平衡自己的时间。 20 | 21 | ## 2019年10月27日-2019年10月31日 22 | - [x] 在DevCloudFE/ng-devui项目中查看了CONTRIBUTING和README中英文文档,学习了提交PR规范以及DevUI的基本信息。 23 | - [x] 在DevCloudFE/ng-devui项目中,提交了一个PR,commit为:docs(CONTRIBUTING): modify grammar and punctuation errors,修改了CONTRIBUTING文档中的语法和标点错误,PR地址为:[https://github.com/DevCloudFE/ng-devui/pull/9](https://github.com/DevCloudFE/ng-devui/pull/9)【Merged】 24 | - [x] 在[W3school](https://www.w3school.com.cn/index.html)中完成了了关于HTML教程学习,包括基础简介和CSS等,并在其网站的TIY环境中进行了编写。 25 | 26 | 总结:本周开始正式接触DevUI项目并且开始学习前端相关语言,通过提交PR进一步巩固了Git的相关知识点。下一周准备完成HTML的基本学习,并开启Angular的基本学习。 27 | 28 | ## 2019年10月20日-2019年10月26日 29 | - [x] 在learn-with-open-source项目中提交了一个PR,更新了Useful-Websites-to-Learn-How-to-Code-Quickly章节的失效网址,PR地址为:[https://github.com/zhuangbiaowei/learn-with-open-source/pull/78](https://github.com/zhuangbiaowei/learn-with-open-source/pull/78) 【Merged】 30 | - [x] 在OS-ABC/HelloWorld项目中,提交了自己学号命名的markdown文件,PR地址为:[https://github.com/OS-ABC/HelloWorld/pull/37](https://github.com/OS-ABC/HelloWorld/pull/37)【Merged】 31 | - [x] 在OS-ABC/HelloWorld项目中,更新了“git以及提交PR的指引”文档中的目录和部分单词,PR地址:[https://github.com/OS-ABC/HelloWorld/pull/39](https://github.com/OS-ABC/HelloWorld/pull/39)【Merged】 32 | 33 | 总结:本周学习了git的基本适用操作,提交了自己的第一个PR,并简要学习了Markdown的基本操作,尝试使用Visual Studio Code中的Extension模块,并使用Markdown TOC工具给OS-ABC/HelloWorld项目中的文档添加了目录。 34 | -------------------------------------------------------------------------------- /doc/HomeWork/DevUI/1901210386.md: -------------------------------------------------------------------------------- 1 | 2 | # 北大-华为云新工科实验班周报 3 | 4 | #1901210386-高哲玲-DevUI 5 | 6 | ## 2019.10.21-2019.10.27 7 | 8 | **工作列表** 9 | - [1] 在[【learn-with-open-source】](https://github.com/zhuangbiaowei/learn-with-open-source)项目中提交了第一个[Pull Request](https://github.com/zhuangbiaowei/learn-with-open-source/pull/57),并得到合并。 10 | - [2] 选择参与DevUI项目,开始进行相关的学习,学习过程记录可见我的CSDN博客https://blog.csdn.net/qq_38440725。 11 | - [3] fork了DevUI项目https://github.com/Amber-gzl/ng-devui。 12 | -------------------------------------------------------------------------------- /doc/HomeWork/DevUI/1901210421.md: -------------------------------------------------------------------------------- 1 | 2019年10月20日-2019年10月27日 2 | 3 | 在learn-with-open-source项目中提交了一个PR,增加了一个学习资源,PR地址为: https://github.com/zhuangbiaowei/learn-with-open-source/pull/65 已经merged 4 | 5 | 总结:本周完成了PR的作业,掌握了git的使用,并开始了解前端devUI。 6 | -------------------------------------------------------------------------------- /doc/HomeWork/DevUI/1901210467.md: -------------------------------------------------------------------------------- 1 | ## 2019.10.21 - 2019.10.27 2 | #### 1.在learn-with-open-source中提交了一个pr,在Understand-the-open-source中添加了一条理解开源源代码的方法:输出变量。https://github.com/zhuangbiaowei/learn-with-open-source/pull/120#issue-330772652 3 | -------------------------------------------------------------------------------- /doc/HomeWork/DevUI/1901210481.md: -------------------------------------------------------------------------------- 1 | 秦迅1901210481 2 | ================== 3 | 4 | ## 2019.10.21-10.27 5 | 6 | 在learn-with-open-source中提交了第一个PR,修改了readme.md中四处英语单词错误和语法错误。PR地址为:https://github.com/zhuangbiaowei/learn-with-open-source/pull/45[Merged] 7 | 8 | **总结** 9 | 10 | 在给庄老师提交PR的过程中,我学习到有关git的相关知识如下: 11 | 1. PR的流程和相关操作 12 | 2. 如何fork仓库,了解了自己的仓库和源仓库的区别 13 | 3. 如何发起PR,在别的开发者的PR下操作。 14 | 15 | 还有要继续探究的地方,如:如何使用邮件列表? 16 | 17 | -------------------------------------------------------------------------------- /doc/HomeWork/DevUI/1901210747.md: -------------------------------------------------------------------------------- 1 | ### 2019.11.01 — 2019.11.07 2 | 3 | 1. 完成了start-with-devui的前三章内容和第五章内容,第四章内容已经完成了大半,我的仓库可见 https://github.com/isanbel/angular-your-first-app。 4 | 2. 熟悉了vscode的使用,开始使用一些强大的插件。 5 | 3. 本周总结:我的前端开发正在变得更专业,更规范,这令我感到开心,很感谢老师们提供的学习机会。 6 | 7 | ### 2019.10.28 — 2019.10.31 8 | 9 | 1. 跟着angular官网教程完成了第一个应用的现阶段主要部分,我的仓库可见 https://github.com/isanbel/angular-your-first-app。 10 | 2. 跟着老师的项目文档,在项目中引入了angular和devui。 11 | 3. 本周总结:在学习angular基础知识,之后会快一点。 12 | 13 | ### 2019.10.21 — 2019.10.27 14 | 15 | 1. 在learn-with-open-source中提交了第一个PR,修改了For developers中的一处大小写错误和空白符的地方。PR地址为: https://github.com/zhuangbiaowei/learn-with-open-source/pull/39 [Merged]。 16 | 17 | 2. 本周总结:在给庄老师的项目提交PR的过程中,我学会了git中的clone、add、commit、push等命令的使用,也掌握了提交PR的流程。 18 | -------------------------------------------------------------------------------- /doc/HomeWork/DevUI/1901210777.md: -------------------------------------------------------------------------------- 1 | 2 | 2019.12.06 3 | 学习前端基础知识,学习了es6,节流防抖函数,明白了基础的重要性 4 | 5 | 2019.11.28 6 | 7 | 思考组件怎么扩展,查阅相关资料 8 | 9 | 2019.11.21 10 | 11 | 优化之前的项目 12 | 13 | 2019.11.14 14 | 15 | 利用Angular创建了自己的第一个项目,完成了Angular的基础教程。 16 | 在DevUIStudy Gitclass中提交了第一个Angular项目,并对于老师所提出的任务进行了探索和完成。 17 | 18 | 2019.11.01 19 | 20 | 在DevCloudFE/ng-devui项目中加入了DevUIStudy Gitclass,创建了自己的仓库。 21 | 在DevCloudFE/ng-devui项目中,跟随指导老师所发布的学习文档,完成了第一和第二个任务,并开始第三个任务的学习。 22 | 23 | 2019.10.27 24 | 学习github基本操作 25 | 学习开源项目 26 | 学习devUI基础 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /doc/HomeWork/DevUI/README.md: -------------------------------------------------------------------------------- 1 | DevUI组周报 2 | -------------------------------------------------------------------------------- /doc/HomeWork/KCoin/1800022815.md: -------------------------------------------------------------------------------- 1 | ## 2019.11.28-2019.12.05 第06周周报 2 | - [x] 为自己的后端代码加上注释 3 | - [x] 学习如何部署项目 4 | ### 总结:继续学习 5 | 6 | ## 2019.11.22-2019.11.28 第06周周报 7 | - [x] 实现了获取项目的star数信息 8 | ### 总结:继续学习 9 | 10 | ## 2019.11.15-2019.11.21 第05周周报 11 | - [x] 实现了获取项目的contributor信息 12 | - [x] 了解了tidb的项目信息 13 | ### 总结:希望下周完成登录权限验证 14 | 15 | ## 2019.11.08-2019.11.14 第04周周报 16 | - [x] 实现了授权登录和前端页面的对接 17 | - [x] 进行代码review 18 | ### 总结:还需要学习如何使用git 19 | 20 | ## 2019.11.01-2019.11.07 第03周周报 21 | - [x] 完成Mac上go和beego的安装和配置 22 | - [x] 完成从登录功能中获取GitHub授权,并返回相关数据 23 | ### 总结:学习了如何用go语言获取github授权 24 | 25 | ## 2019.10.28-2019.10.31 第02周周报 26 | - [x] 小组讨论Kcoin区块链项目的基本流程 27 | - [x] 学习了markdown语法 28 | - [x] 学习go-tour教程流程 29 | - [x] 在leetcode上使用Go语言完成两道算法题 30 | ### 总结:通过学习go的基本教程,并亲自实践,了解了go语言的基本语法 31 | 32 | ## 2019.10.21-2019.10.27 第01周周报 33 | - [x] 在Learn-with-open-source中提交了第一个PR,在Start.md中补充了一个常用的程序员学习网站,PR地址为: 34 | https://github.com/zhuangbiaowei/learn-with-open-source/pull/135 35 | 36 | - [x] 在Learn-with-open-source中提交了第二个PR,在Hello-World中修改了一处输出与源代码不匹配的问题,PR地址为: 37 | https://github.com/zhuangbiaowei/learn-with-open-source/pull/157 38 | ### 总结:知道了如何在开源项目中进行PR,掌握基本的Git指令。 39 | -------------------------------------------------------------------------------- /doc/HomeWork/KCoin/1800022851.md: -------------------------------------------------------------------------------- 1 | # 2019年12月13日-2019年12月19日 2 | - [x] 将个人中心的cs记录返回前端 3 | 4 | 本周总结:前后端交互不够熟悉,还需继续学习 5 | *** 6 | 7 | # 2019年12月6日-2019年12月12日 8 | - [x] 统计个人中心个人所有cs记录 9 | 10 | 本周总结:对数据库返回结果的存取不够熟悉,需要继续学习 11 | *** 12 | 13 | # 2019年11月29日-2019年12月5日 14 | - [x] 更改用户授权登录接口,添加更新登录时间功能 15 | - [x] 进行代码review 16 | 本周总结:需要弄懂项目逻辑,看懂其他同学提交的代码 17 | *** 18 | 19 | # 2019年11月22日-2019年11月28日 20 | - [x] 修复所提的关于获取授权用户信息的接口的bug 21 | - [x] 实现统计所有贡献者人数的接口 22 | - [x] 进行代码review 23 | 本周总结:需要继续学习数据库的基本操作 24 | *** 25 | 26 | # 2019年11月15日-2019年11月21日 27 | - [x] 完成了用户信息的存入数据库并补充更改 28 | - [x] 完成查询表中的cs和cc的方法 29 | - [x] 进行代码review 30 | 本周总结:需要继续学习数据库的基本操作 31 | *** 32 | 33 | # 2019年11月8日-2019年11月14日 34 | - [x] 学习了如何在git分支上提交代码,以及下载非master分支的代码 35 | - [x] 学习了beego连接数据库的方法 36 | - [x] 进行代码review 37 | 本周总结:需要继续学习orm框架 38 | *** 39 | 40 | # 2019年11月1日-2019年11月7日 41 | - [x] 完成Mac上go和beego的安装和配置 42 | - [x] 安装goland,创建简单的helloworld项目 43 | - [x] 完成从登录功能中获取GitHub授权,并返回相关数据 44 | - [x] 用go实现mysql和postgresql的连接 45 | 本周总结:学习了如何用go语言获取github授权,以及如何连接并创建数据库 46 | *** 47 | 48 | # 2019年10月28日-2019年10月31日 49 | - [x] 完成Mac上go和beego的安装和配置 50 | - [x] 安装goland,创建简单的helloworld项目 51 | - [x] 完成从登录功能中获取GitHub授权,并返回相关数据 52 | - [x] 用go实现mysql和postgresql的连接 53 | - [x] 学习skywalking的基本内容 54 | 本周总结:学习了如何用go语言获取github授权,以及如何连接并创建数据库 55 | *** 56 | 57 | # 2019年10月28日-2019年10月31日 58 | - [x] 小组讨论Kcoin区块链项目的基本流程 59 | - [x] 阅读并亲自实现了go-tour教程流程 https://tour.go-zh.org/concurrency/11 60 | - [x] 在电脑上安装go和GoLand 61 | - [x] 在leetcode上使用Go语言完成两道算法题 62 | 本周总结:通过学习go的基本教程,并亲自实践,了解了go语言的基本语法 63 | *** 64 | # 2019年10月21日-2019年10月27日 65 | 66 | - [x] 在Learn-with-open-source中提交了第一个PR,在Start.md中补充了一个常用的程序员学习网站,PR地址为: 67 | https://github.com/zhuangbiaowei/learn-with-open-source/pull/187 68 | - [x] 在Learn-with-open-source中提交了第二个PR,在Hello-World中修改了一处文件写法的问题,PR地址为: 69 | https://github.com/zhuangbiaowei/learn-with-open-source/pull/148 70 | 71 | 总结:知道了如何在开源项目中进行PR,掌握基本的Git指令。 72 | 73 | 74 | -------------------------------------------------------------------------------- /doc/HomeWork/KCoin/1900022730.md: -------------------------------------------------------------------------------- 1 | # 华为云实验班周报总结 2 | 3 | ## 1. 20191020-20191027 第一周 4 | 5 | - [x] 1.在[learn-with-open-source](https://github.com/zhuangbiaowei/learn-with-open-source)项目中提交了一个pull requests,在zh/Modify-the-open-source-project.md里增加了javascript代码样式,使其支持语法高亮。 6 | 7 | PR地址为 https://github.com/zhuangbiaowei/learn-with-open-source/pull/193[merged] 8 | 9 | 10 | 11 | ![](https://github.com/univerone/image/raw/master/2019-10-25_23-23.png) 12 | 13 | 总结:学习了一些基本的git命令行操作,使用命令行来提交commit并push到远程仓库中,以及同步fork的仓库并进行合并(解决冲突) 14 | 15 | ## 2. 20191028-20191103 第二周 16 | - [x] 1.完成https://tour.go-zh.org go语言之旅的基本学习 17 | - [x] 2.使用go语言完成两道leetcode题目 18 | - [x] 3.完成beego框架的安装以及官网文档(https://beego.me/quickstart) 上的简单示例 19 | 20 | 总结:在go tour上的很多部分还不太能理解(接口以及并发),还需要进一步消化以及和其它同学进行讨论。 21 | 22 | ## 3. 20191104-20191110 第三周 23 | - [x] 1.看skywalking的文档,在ubuntu服务器上进行基本部署实践 24 | - [x] 2.在ubuntu服务器上部署Hyperledger Fabric 2.0.0-alpha版本 ,按照官方文档搭建一个基本的网络 25 | 26 | 总结:skywalking 的原理还未能完全理解,而对于Hyperledger Fabric的具体使用也需要进一步阅读文档来熟练,在配置Hyperledger Fabric的过程中遇到很多错误信息,花费了很多时间在解决问题上,需要增强检索英文信息的能力。 27 | 28 | ## 4. 20191111-20191117 第四周 29 | 30 | - [x] 1.继续部署Hyperledger Fabric 2.0.0-alpha版本,尝试写和完善一个安装所需软件的bash脚本。 31 | - [x] 2.进行代码review 32 | - [x] 3.学习在git分支上提交修改,来维持master分支的稳定。 33 | 34 | 总结:2.0.0-alpha这个版本有点新,安装过程中出现的问题也没有靠谱的回答,多次尝试重装都出现了问题,如果再不能完成就尝试稳定的其它版本。 35 | 36 | ## 5.20191118-20191124 第五周 37 | - [x] 1.完成部署Hyperledger Fabric 1.4.4版本,写了一个安装所需前提软件的bash脚本。 38 | - [x] 2.部署第一个网络成功。 39 | 40 | 总结:接下来需要尽快学习搭建网络的具体细节,补充相关背景知识。 41 | 42 | ## 6. 20191125-20191201 第六周 43 | - [x] 1.整理fabric 1.4.4 简易安装流程 44 | - [x] 2.运行官方文档上的案例 45 | - [x] 3.阅读部分chaincode代码 46 | 47 | 总结:下一周一定要开始自己写链码开始实践了 48 | 49 | ## 7.20191202-20191208 第七周 50 | - [x] 1.完成简单的hyperledger fabric网络物理结构的部署 51 | 52 | 总结:下一周一定要完成简易链码的node.js实现以及对应的node.js应用。 53 | 54 | ## 8. 20191209-20191216 第八周 55 | - [x] 1.进行node.js链码的修改(还未完成) 56 | 57 | 总结:尽快完成node.js应用的实现 58 | 59 | ## 9. 20191216-201922 第九周 60 | - [x] 1.进行node.js链码的修改(还未完成) 61 | - [x] 2.整理hyperledger fabric笔记以及文档 62 | 63 | 总结:进度迟迟不能推进,自己需要投入更多的时间。 64 | -------------------------------------------------------------------------------- /doc/HomeWork/KCoin/1900022750.md: -------------------------------------------------------------------------------- 1 | ## 开源周报 2 | ##### **2019年11月16日-2019年11月23日** 3 | 4 | 1. 参与产品组讨论 5 | 2. 完善细化用户故事,提交PR 6 | 本周总结:加入ABC小组,未参与实际开发内容,希望能尽快学习基本开发知识,之后再参与开发 7 | 8 | ##### **2019年11月8日-2019年11月15日** 9 | 10 | 1. 在kcoin项目中参与开发github授权登录模块,并进行经验分享 11 | 2. kcoin项目尝试编写用户故事 12 | 3. 一边review代码一边学习基础知识,前端语言、web服务等内容 13 | 14 | ##### **2019年11月1日-2019年11月7日** 15 | 16 | 1. 在github上申请OAuth App,学习github第三方授权登录教程 17 | 2. 参项目集中讨论 18 | 3. 学习skywalking,搭建运行环境 19 | 20 | ##### **2019年10月28日-2019年10月31日** 21 | 22 | 1. 完成了go-tour教程 https://tour.go-zh.org/welcome/1 23 | 2. Beego安装完成,配置好环境变量,并能运行程序 24 | 25 | 3. 用GO语言完成两道算法题并总结 26 | 27 | 本周总结:初次接触GO语言,跟随教程熟悉语言特性,配置GO语言开发环境 28 | 29 | ##### 2019年10月20日-2019年10月27日 30 | 31 | 1. 在learn-with-open-source项目中提交了一个PR,在《开始——为什么借助开源学习是最有效的》这一章节中做了句子补充,PR地址为: https://github.com/zhuangbiaowei/learn-with-open-source/pull/37 【Merged】 32 | 33 | 2. 对HelloWorld项目Homework版块第一次提交PR,创建自己的开源周报。 【Merged】 34 | 35 | 本周总结:本周熟悉了提交PR的过程,掌握了Git基本命令的使用 36 | -------------------------------------------------------------------------------- /doc/HomeWork/KCoin/1900022752.md: -------------------------------------------------------------------------------- 1 | ### 2019年12月13日-2019年12月19日 2 | 3 | (1)完善数据库注释内容,修正一些数据库的小错误; 4 | 5 | (2)Linux SSH远程操作、teamview图像界面错操,scp文件传输、vim; 6 | 7 | (3)kcoin汇报; 8 | 9 | 总结:代码能力不够,需要每天刷算法题。 10 | 11 | 12 | 13 | ### 2019年12月6日-2019年12月12日 14 | 15 | (1)完成数据库注释、字段信息和属性查询; 16 | (2)Linux文本操作、权限设置、通配符、环境变量; 17 | (3)fix a issue in TiDB 18 | (4)beego 19 | 总结:对KCoin代码了解不够,需快速学习,了解各模块结构 20 | 21 | ### 2019年11月28日-2019年12月5日 22 | 23 | - [x] docker、maven、activeMQ、tomcat安装及使用; 24 | - [x] 了解环境变量配置; 25 | - [x] beego 框架、数据库操作; 26 | 27 | 28 | 29 | ### 2019年11月15日-2019年11月27日 30 | 31 | - [x] 熟悉数据库与后端的连接代码 32 | - [x] 了解代码框架 33 | - [x] 继续学习 beego框架 34 | - [x] 本周总结:自己还不能对项目整体做到心中有数,只了解数据库方向的知识是不能跟上项目节奏的,尽快学会 beego框架,承担更多任务。 35 | 36 | 37 | 38 | ### 2019年11月8日-2019年11月14日 39 | 40 | - [x] 为K_User表增加删除项:is_delete; 41 | - [x] 为K_User表增加社区币记录项:user_cc; 42 | - [x] 修改K_User、K_Project 表id为自增id; 43 | - [x] 为K_User_in_Project 表增加自增ID:item_id; 44 | - [x] 完成K_User_in_Project与K_User的触发器关联,K_User中user_cc自动更新; 45 | - [ ] 本周总结:对数据库进一步掌握和使用。 46 | 47 | 48 | 49 | ### 2019年11月1日-2019年11月7日 50 | 51 | - [x] 掌握sql基本使用,并为Kcoin搭建基本数据表; 52 | - [x] 完成skywalking基础学习; 53 | - [x] 本周总结:重点掌握数据库的学习和熟练,为后面项目工作打好基础。 54 | 55 | 56 | 57 | ### 2019年10月28日-2019年10月31日 58 | 59 | - [x] 了解go基本知识,包括环境安装、语言结构、基础语法、数据类型、运算符、控制语句; 60 | - [x] 安装配置完beego,并了解MVC框架结构; 61 | - [x] 本周总结:初次接触学习Go语言,掌握基本语法和语言结构,并安装配置完beego框架和MVC框架概念。 62 | 63 | 64 | 65 | 66 | 67 | ### 2019年10月20日-2019年10月27日 68 | 69 | - [x] 在learn-with-open-source项目中提交了一个PR,增加 “Windows下的开发环境准备” 这一章节内容,PR地址为: https://github.com/zhuangbiaowei/learn-with-open-source/pull/109 70 | - [x] 在learn-with-open-source项目中提交了一个PR,修改了一个词语错误,PR地址为: https://github.com/zhuangbiaowei/learn-with-open-source/pull/132 71 | - [x] 本周总结:基本掌握了Github的简单使用,第一次学会利用git处理开源项目,并成功在GitHub上完成两个项目PR。 -------------------------------------------------------------------------------- /doc/HomeWork/KCoin/1900022763.md: -------------------------------------------------------------------------------- 1 | 2 | 2019.10.21——2019.10.27 3 | 4 | 1.在learn-With-open-source中提交了自己的第一个PR,将HelloWorld中的一处成语错误修改。PR的地址为:https://github.com/zhuangbiaowei/learn-with-open-source/pull/83[merged]。 5 | 6 | 2.在htttp://tour.go-zh.org/welcome/1中学习了GO语言的基础知识,为参与后续开源项目打下语言的基础。 7 | 8 | 总结:迈出了参与开源项目实践的第一步,激发了自己对于开源项目参与的浓厚兴趣。 9 | 10 | 11 | 2019.11.2-2019.11.7 12 | 13 | 1.继续GO语言语法的学习和复习,在力leetcode上使用GO语言完成了2道算法题。 14 | 2.学习了Fabric的基础概念,根据教程在服务器上搭建了Fabric的环境,并做了记录。 15 | 3.使用Fabric尝试创建自己的第一个联盟链 16 | 17 | 总结: 18 | GO语言的语法结构与以前学习的语言有一定的冲突,且再最后的使用上会发生错用的情况,后期要注意语法的区别,多练习。 19 | 在环境搭建中,对LINUX命令和服务器的使用不熟悉,需要在后期弥补这方面的短板。 20 | 21 | 22 | 2019.11.7-2019.11.14 23 | 24 | 1.在letcode上使用GO语言练习算法题。 25 | 2.阅读了其它项目小组成员的代码。 26 | 3.复习了上周的LINUX命令。 27 | 4.初步搭成了联盟链。 28 | 29 | 总结:本周主要以学习为主,学习了linux命令的使用,学习了前端开发的框架。 30 | -------------------------------------------------------------------------------- /doc/HomeWork/KCoin/1900022795.md: -------------------------------------------------------------------------------- 1 | 2019.11.15-2019.11.21 2 | 1.安装Linux虚拟机,熟悉基本命令 3 | 2..安装开发软件 4 | 总结:电脑需要升级了 5 | 6 | 2019.11.08-2019.11.14 7 | 1.代码review 8 | 2.fabric环境搭建 9 | 总结:在看代码时候还是有些吃力 10 | 11 | 12 | 13 | 2019.11.01-2019.11.07 14 | 1.fabric环境搭建 15 | 2.撰写技术博客 16 | 3.skyworking学习 17 | 总结:需要继续深入学 18 | 19 | 20 | 2019.10.28——2019.10.31 21 | 1.学习go tour 学习地址:https://tour.go-zh.org/welcome/1 22 | 23 | 本周总结:学习了go语言基础,将继续学习beego 24 | 25 | 26 | 2019.10.21——2019.10.27 27 | 1.在learn-with-open-source 中提交了一个PR,修改了Modify-the-open-source-project 中的 一处词语运用不当,PR地址为:https://github.com/zhuangbiaowei/learn-with-open-source/pull/127 [Merged] 28 | 总结:学会了在vscode中使用git,和pr 的提交流程 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /doc/HomeWork/KCoin/1901210269.md: -------------------------------------------------------------------------------- 1 | ### 2019年12月13日-2019年12月19日 2 | 3 | 1.完成我管理的项目 4 | 总结:还需学习 5 | 6 | ### 2019年12月6日-2019年12月12日 7 | 8 | 1.完成我参加的项目 9 | 总结:还需学习 10 | 11 | ### 2019年11月29日-2019年12月5日 12 | 13 | 1.添加textfield 14 | 2.实现session 15 | 总结:还需学习 16 | 17 | ### 2019年11月22日-2019年11月28日 18 | 19 | 1.个人项目页面改进 20 | 21 | 总结:还需学习 22 | 23 | ### 2019年11月15日-2019年11月21日 24 | 25 | 1.个人项目-导入项目模块继续改进 26 | 27 | 2.页面合并后部分bug修复 28 | 29 | 总结:还需学习 30 | 31 | 32 | ### 2019年11月8日-2019年11月14日 33 | 34 | 1.个人项目页面controller 35 | 36 | 2.个人项目-导入项目模块改进 37 | 38 | 3.代码review 39 | 40 | 总结:还需学习 41 | 42 | 43 | 44 | ### 2019年11月1日-2019年11月7日 45 | 46 | 1.简要学习HTML和CSS语法 47 | 48 | 2.开发出项目中我的项目-导入窗口静态页面 49 | 50 | 总结:稍微了解了些网页开发的知识 51 | 52 | 53 | 54 | ### 2019年10月28日-2019年10月31日 55 | 56 | 1.学习完go-tour教程 57 | 58 | 2.用go语言练习leetcode中234,445两题 59 | 60 | 总结:本周学习了go语言的基本语法 61 | 62 | 63 | 64 | ### 2019年10月20日-2019年10月27日 65 | 66 | 1.在learn-with-open-source项目中提交了一个PR,修改了Before-start.md的错别标点,PR地址为: https://github.com/zhuangbiaowei/learn-with-open-source/pull/42 【Merged】 67 | 68 | 2.学习完go-tour基础语法部分学习 69 | 70 | 总结:本周熟悉了提交PR的过程,掌握了Git基本命令的使用,了解了些go语言的基本语法 71 | -------------------------------------------------------------------------------- /doc/HomeWork/KCoin/1901210270.md: -------------------------------------------------------------------------------- 1 | ### 2019.12.13 — 2019.12.19 2 | 1.fix267增加js自动解析项目url中的项目名称,预填到项目名称栏 3 | 2.fix220项目成员列表 4 | 3.数据库表命名改成小写和数据库统一 5 | 总结:还需学习 6 | 7 | ### 2019.12.6 — 2019.12.12 8 | 1.增加memberWork页面的返回按钮 9 | 2.修复一个缺少time包的bug 10 | 总结:实现读取指定项目的用户难度较大,还需研究 11 | 12 | ### 2019年11月21日-2019年11月28日 13 | 1.fix #183 & 188 增加工作列表页面和项目贡献度评定规则 14 | 总结:之后工作尽量不只停留在页面,多了解前后端交互的知识 15 | 16 | ### 2019年11月21日-2019年11月28日 17 | 1.新增页面projectfunding用于显示基金会向项目的注资历史。 18 | 总结:还需进一步完善实现分页功能。 19 | 20 | ### 2019年11月15日-2019年11月21日 21 | 1.修改了personalpage,增加了进行kcoin记录的查询的功能 22 | 2.添加了cc查询页面(ccsearchpage),目前使用自定义的数据检测,之后要实现从数据库中读取,并增加动态分页的功能 23 | 24 | 总结:添加了cc查询功能 25 | 26 | ### 2019年11月8日-2019年11月14日 27 | 1.学习了beego框架 28 | 2.修改了join页面 29 | 3.代码review,学习其他小组的代码 30 | 31 | 32 | 总结:学习了controller的使用和beego框架。 33 | 34 | ### 2019年11月1日-2019年11月7日 35 | 36 | 1.完成了html,css教程的学习 37 | 2.完成了登录页面的设计 38 | 3.了解了skywalking 39 | 40 | 41 | 总结:本周学习了html,CSS和skywalking。 42 | 43 | ### 2019年10月27日-2019年11月2日 44 | 45 | 1.完成了go-tour教程的学习 46 | 2.熟悉了PR的操作流程 47 | 3.用go完成了两道简单的leetcode算法题 48 | 49 | 50 | 总结:本周进行了go语言的学习,但使用不熟练,接下来准备学习beego。 51 | 52 | 53 | ### 2019年10月20日-2019年10月27日 54 | 55 | 1.在learn-with-open-source项目中提交了一个PR,修改了语句不通的地方,PR地址为: https://github.com/zhuangbiaowei/learn-with-open-source/pull/63 【Merged】 56 | 57 | 58 | 总结:本周熟悉了提交PR的过程,掌握了Git基本命令的使用 59 | 60 | 61 | -------------------------------------------------------------------------------- /doc/HomeWork/KCoin/1901210273.md: -------------------------------------------------------------------------------- 1 | ### 个人周报 2 | 3 | ### 2019年10月20日-2019年10月27日 4 | 5 | 1.在learn-with-open-source项目中提交了一个PR,修改了Before-start.md的用词,但是除了的→地 的修改其他部分已经由其他同学改正,庄老师将我的PR关闭了后我重新提交了一个PR,PR地址为: https://github.com/zhuangbiaowei/learn-with-open-source/pull/66 【Closed】 6 | 2.在learn-with-open-source项目中提交了一个PR,修改Start.md中的用词,被成功merged了,PR地址为: https://github.com/zhuangbiaowei/learn-with-open-source/pull/81 【Merged】 7 | 8 | 总结:本周熟悉了提交PR的过程,掌握了Git基本命令的使用 9 | 10 | ### 2019年10月27日-2019年11月02日 11 | 1. 完成了庄老师发布的go-tour教程 12 | 2.用go语言完成了两道leetcode算法题 13 | 总结:本周学习了go语言,并且练习了相关题目。 14 | ### 2019年11月1日-2019年11月7日 15 | 16 | 1.完成了html,css教程的学习 17 | 2.完成了kcoin主页面的设计 18 | 3.完成了两道go语言的算法题 19 | 4.安装并学习了beego框架 20 | 5.了解了skywalking 21 | 总结:本周学习了前端开发相关知识,并完成了部分工作,继续学习了go算法题。 22 | 23 | ### 2019年11月8日-2019年11月14日 24 | 1.和小组成员讨论商量了不懂的问题 25 | 2.review组内成员代码 26 | 3.学习并熟悉了beego的框架 27 | 总结:还需要多项目实践和基础知识学习 28 | 29 | ### 2019年11月15日-2019年11月21日 30 | 1.完成kcoin项目设置页面 31 | 2.review组内成员代码 32 | 总结:通过本周学习发现自己还有很多不足 33 | ### 2019年11月22日-2019年11月28日 34 | 1.完善上周projectsetting页面。 35 | 2.新增页platforminformation用于显示平台cc数和项目总数。 36 | 总结:还需继续完善和学习 37 | ### 2019年11月29日-2019年12月05日 38 | 1.完成了projectFunding和personalpage的分页。 39 | 总结:还需继续完善和学习 40 | ### 2019年12月06日-2019年12月12日 41 | 1.在项目设置页面增加了提交功能以及在controller中添加了post()函数 42 | 总结:后端和数据库还需要多加学习。 43 | ### 2019年12月13日-2019年12月19日 44 | 1.完成了导入项目页面的项目列表的分页功能 45 | 2.优化了分页函数 46 | 总结:还需要多加学习。 47 | -------------------------------------------------------------------------------- /doc/HomeWork/KCoin/1901210293.md: -------------------------------------------------------------------------------- 1 | 2019年10月20日-2019年10月27日 2 | 在庄老师的learn-with-open-source首次提交了一次PR,将“更好的管理”改为“更好地管理“。 3 | 学习了Go语言的一些知识。 4 | 本周总结:很多东西其实多做多接触就会了,并没有想象的那么困难,继续加油。 5 | 1901210293-李思钦 6 | ss 7 | -------------------------------------------------------------------------------- /doc/HomeWork/KCoin/1901210377.md: -------------------------------------------------------------------------------- 1 | # 范文浩 1901210377 2 | 3 | **2019.11.29—2019.12.05** 4 | 5 | 1. 构建fabic网络结构。 6 | 2. 编写链码和Application。 7 | 8 | 总结:钻研fabric。 9 | 10 | **2019.11.22—2019.11.28** 11 | 12 | 1. 研读HyperLedger Fabric文档,学习联盟链。 13 | 2. 在Linux中搭建Fabric环境。 14 | 15 | 总结:深入了解联盟链细节,思考针对Kcoin的联盟链网络结构。 16 | 17 | **2019.11.15—2019.11.21** 18 | 19 | 1. 完成了projectInfo页面的设计和代码编写。 20 | 2. 参加产品组会议,完善用户故事。 21 | 3. 完成了3个用户故事的验收标准的编写。 22 | 4. 参与讨论了CS,CC,token规则制定。 23 | 24 | 总结:对项目核心功能理解更加清晰了,明确了第一个里程碑的需求。 25 | 26 | **2019.11.08—2019.11.14** 27 | 28 | 1. 完成了homepage根据用户登录状态显示不同内容的功能,修复了homepage项目显示的居中问题。 29 | 2. 删除了GitHub源仓库的历史记录大文件,维护仓库。 30 | 3. 审阅了一些PR,提出意见,Merge了一些PR。 31 | 4. 在源仓库提出了两个issue。 32 | 5. 自学了skywalking的安装部署。 33 | 34 | 总结:对项目有了更加宏观的理解,对维护GitHub社区有了一些理解和尝试。 35 | 36 | **2019.11.02—2019.11.07** 37 | 38 | 1. 完成了项目主页的代码编写。包括一个html文件,一个CSS文件。 39 | 2. 完成了beego框架中使用controller控制前端静态页面的动态数据显示。包括一个go文件。 40 | 3. skywalking学习与安装。 41 | 42 | 总结:熟悉了html,CSS的语法,进一步了解了beego框架;初步了解了skywalking。 43 | 44 | 45 | 46 | **2019.10.28—2019.11.02** 47 | 48 | 1. 在自己账户Fork的HelloWorld中提交了一个PR,把原作者的改动merge到自己的项目中,更新了本地仓库,PR地址为: https://github.com/Fanwh325/HelloWorld/pull/1 49 | 2. 完成了go-tour的学习,熟悉go语法。 50 | 3. 在自己的电脑上装了Deepin操作系统的虚拟机,在Deepin中安装了beego并且成功运行了入门示例程序。 51 | 52 | 总结:学到了新的GitHub命令,完成了go语言学习任务。 53 | 54 | **2019.10.21—2019.10.27** 55 | 56 | 1. 在learn-with-open-source项目中提交了一个PR,更改了一个标点符号,更改了一个词语的语序,PR地址为:https://github.com/zhuangbiaowei/learn-with-open-source/pull/76 【Merged】 57 | 58 | 总结:熟悉了GitHub命令行操作,学会了Fork项目并且做出自己修改提交PR的流程。 59 | 60 | -------------------------------------------------------------------------------- /doc/HomeWork/KCoin/1901210384.md: -------------------------------------------------------------------------------- 1 | ### 2019年11月22日-2019年11月28日 2 | - 完成了项目注资页面的开发 3 | - 在unbuntu上基本上搭建完成fabric的环境 4 | ### 2019年11月14日-2019年11月21日 5 | - 修复三个bug,issue编号分别是#62 #72 #96 6 | - 提交了一个用户故事 7 | - 提交了三个用户故事的检验标准 8 | ### 2019年11月8日-2019年11月13日 9 | - 与同组成员一起将前端所有页面合并 10 | - 修改了个人页面的浏览器适配问题 11 | - 修改了点击字体后颜色变紫的问题 12 | - 在doc/Git下提交了一份教程“HowToUseUpstream”,并且被合入主分支 13 | ### 2019年11月1日-2019年11月7日 14 | - 对分配给自己的前端任务(个人初始页面),完成了其原型 15 | - 完成beego框架中controler部分的个人页面部分的相应内容内容 16 | ### 2019年10月28日-2019年10月31日 17 | - 完成GoTour教程 18 | - 在leetcode上使用Go语言完成两道算法题,基本掌握Go语言常规使用方法 19 | ### 2019年10月20日-2019年10月27日 20 | - [x] 为learn-with-open-source提交一次PR:“Before-start.md:change 正负1-2年 to 前后1-2年”【merged】 21 | - [x] 本周总结:本周进展顺利,没有特别的难点。 22 | -------------------------------------------------------------------------------- /doc/HomeWork/KCoin/1901210389.md: -------------------------------------------------------------------------------- 1 | 龚俊琦 1901210389 2 | 2019年10月20日-2019年10月27日 3 | • 在learn-with-open-source项目中提交了一个PR,发现了一处语病修改后并提交了一份PR,https://github.com/zhuangbiaowei/learn-with-open-source/pull/154【Merged】 4 | 总结:本周学习了git的基本操作并提交了一份PR。 5 | 6 | 7 | 2019年10月29日-11月3日 8 | 完成了go-tour 并刷了两到LeetCode的算法题。 9 | 10 | 11 | 2019年11月7日 12 | 初步了解skywalking原理 以及安装了skywalking 13 | 14 | 15 | 2019年11月14日 16 | (1)review了小组的全部代码,并向组员请教了不懂得知识点 17 | (2)熟悉了beego的框架,学会了一些SQL原理。 18 | 19 | 20 | 2019年11月19日 21 | 学习了区块链技术以及一些数据库的内容!在努力看同学们的代码! 22 | 23 | 2019年11月28日 24 | 正在努力试图看懂组员的代码 25 | 26 | 2019年12月6日-12月12日 27 | 一直再整数据库可视化工作 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /doc/HomeWork/KCoin/1901210408.md: -------------------------------------------------------------------------------- 1 | ### 个人周报 2 | 3 | ### 2019年11月29日-2019年12月5日 4 | - [x] 修复issue用github userName作为用户标示,更改为用户id 5 | - [x] 以issue形式发布本周任务。 6 | - [x] 讨论下周各周任务。 7 | ##### 总结:整体情况较好。 8 | 9 | ### 2019年11月22日-2019年11月28日 10 | - [x] 修改平台管理端公共部分和跳转链接 11 | - [x] 对接前后端,规范统一模块url 12 | - [x] 以issue形式发布本周任务。 13 | - [x] 讨论下周各周任务。 14 | ##### 总结:整体情况较好。 15 | 16 | ### 2019年11月15日-2019年11月21日 17 | - [x] 对接登陆模块中前端和后端接口,规范后端结构体 18 | - [x] 成立产品组,整理1.0版本的用户故事,并编写两条验收标准 19 | - [x] 以issue形式发布本周任务。 20 | - [x] 讨论下周各周任务。 21 | ##### 总结:本周任务完成情况良好,下一步考虑如何分配任务使组员能够跟上进度且任务饱满 22 | 23 | ### 2019年11月8日-2019年11月14日 24 | - [x] 完善原型设计 25 | - [x] review总体代码 26 | - [x] 发现issue并提交到项目中 27 | - [x] 编写viewModels.go,实现结构体和controller解藕方便合作和重用。 28 | - [x] 收集和整合用户故事。 29 | ##### 总结:本周任务完成情况良好,下一步考虑如何分配任务使组员能够跟上进度且任务饱满 30 | 31 | ### 2019年11月1日-2019年11月7日 32 | - [x] 用beego框架完成controller和前端界面交互。 33 | - [x] 用mockplus初步设计完成前端原型。包括有:登录界面、平台项目首页、个人项目托管页面、个人中心页面。 34 | - [x] 熟悉skywalking基本原理,安装配置skywalking。 35 | 总结:本周主要完成了原型设计,给组内成员分配了前端任务,组织一次前端集中开发。在这个过程中,自身的技术能力也得到了锻炼,进一步熟悉了beego框架。 36 | 37 | ### 2019年10月28日-2019年10月31日 38 | - [x] 完成go-tour任务。 39 | - [x] 搭建go语言开发环境。 40 | - [x] 熟悉git同步更新等操作。 41 | 42 | ##### 总结:本周开始了解和y使用了go语言,进一步熟练Git基本命令的使用。 43 | 44 | ### 2019年10月20日-2019年10月27日 45 | 46 | - [x] 完成pr任务,了解pr,在learn-with-open-source项目中提交了一个PR,修改了zh文件夹中**Start.md**中错别字的问题,PR地址为:https://github.com/zhuangbiaowei/learn-with-open-source/pull/86 【Merged】 47 | - [x] fork kcoin 并进行项目分析 48 | - [x] 完成go语言配置安装,进行了部分go语言学习 49 | 50 | ##### 总结:本周熟悉了提交PR的过程,掌握了Git基本命令的使用;开始了解项目,并开始熟悉语言。 51 | 52 | 53 | -------------------------------------------------------------------------------- /doc/HomeWork/KCoin/1901210432.md: -------------------------------------------------------------------------------- 1 | ## 1901210432 李泽琛 2 | 3 | ### 2019年12月13日-2019年12月19日 4 | 5 | * 增加获取用户所属组织下repos的函数 6 | * 总结:对前后端数据传输不清楚,需要继续学习 7 | 8 | ### 2019年12月6日-2019年12月12日 9 | 10 | * 编写获取平台注资历史的接口 11 | * 对前端了解不够,需要学习 12 | 13 | ### 2019年11月29日-2019年12月5日 14 | 15 | * 完成#issue181,为webserver部分函数增加测试用例 16 | * 本周总结:工作比较简单,但是也需要注意代码规范 17 | 18 | ### 2019年11月22日-2019年11月28日 19 | 20 | * 学习github api,完成获取一个用户在github上所有公开repository接口的开发 21 | * 了解智能合约,学习前端小组代码 22 | * 本周总结:对github api有了初步的了解,在代码的编写上需要更加规范 23 | 24 | ### 2019年11月15日-2019年11月21日 25 | 26 | * 学习github webhooks原理,进行实时获取commit的开发 27 | * 学习其他小组代码 28 | * 开始了解学习TiDB项目 29 | * 本周总结:对于如何实现为每个github项目创建webhooks不清楚,需要讨论解决 30 | 31 | ### 2019年11月8日-2019年11月14日 32 | 33 | * 学习beego框架的数据库操作,实现从数据库中读取数据以json格式返回给前端 34 | * 代码review,学习其他小组的代码 35 | * 本周总结:对git的使用更加熟练了;对于用beego操作数据库还不熟悉 36 | ### 2019年11月1日-2019年11月7日 37 | 38 | * 安装了beego框架,学习beego的基本原理,进行webserver接口的开发。 39 | * 继续巩固go语言语法知识,在LeetCode上用go做了两道算法题。 40 | * 学习skywalking,根据文档在本地安装了skywalking 41 | * 本周总结:对go语法有了进一步的了解,对于用beego进行web开发还较为生疏。skywalking只是简单阅读了一下文档,还需要进行深入的了解 42 | ### 2019年10月28日-2019年11月3日 43 | 44 | * 根据go tour教程,学习了go语言的基本语法。在电脑上下载GoLand,建立go开发环境。 45 | * 在LeetCode上用go语言做了两道算法题。 46 | * 本周总结:对go的特点和基本语法有了一定了解,但是在实际运用中还不够熟练。 47 | ### 2019年10月20日-2019年10月27日 48 | 49 | * 在learn-with-open-source项目提交了一个pr并被合并,修改了Modify-the-open-source-project.md中的一处语法错误。[pr地址](https://github.com/zhuangbiaowei/learn-with-open-source/pull/100) 50 | * 本周总结: 学习了在github上fork项目,使用git的一些基本命令克隆、修改并推送项目到github,提交pull request。 51 | 52 | -------------------------------------------------------------------------------- /doc/HomeWork/KCoin/1901210447.md: -------------------------------------------------------------------------------- 1 | ### 2019年10月20日-2019年10月27日 2 | 3 | 1、在learn-with-open-source项目中提交了一个PR,修改了Understanding-the-source-code.md中一段不通顺且存在错别字的段落,PR地址为:https://github.com/zhuangbiaowei/learn-with-open-source/pull/124【Merged】 4 | 5 | 总结:本周熟悉了提交PR的过程,掌握了Git基本命令的使用 6 | 7 | ### 2019年10月27日-2019年10月31日 8 | 9 | 1. 完成go-tour 10 | 2. 用go语言完成leetcode两道简单的算法题 11 | 12 | 总结:本周学习了go语言,但是对接口部分的使用还不太熟练,使用go语言做leetcode题也非常不熟练。 13 | 14 | ### 2019年11月1日-2019年11月7日 15 | 16 | 1. 在服务器上配置了Fabric环境,且用官方例子测试了fabric网络 17 | 2. 撰写了在Ubuntu搭建fabric环境的技术博客 18 | 3. 阅读了SkyWalking的文档,对于这个项目有了大致的了解 19 | 4. 在Ubuntu搭建SkyWaling,最后一步显示成功但是登录不上UI 20 | 21 | 总结: 22 | 1.对于fabric的配置,只是按照教程搭了一遍,但是整体的概念和原理并不是很清楚。对于样例的实现原理也不理解。还有待学习。2.对于两个项目的配置,运行过程中因为对于linux系统的不熟悉,导致出现了很多问题,只能一层层的去查。 23 | 24 | ### 2019年11月8日-2019年11月14日 25 | 26 | 1. 代码review,学习了前端的一些代码 27 | 2. 学习一些区块链相关知识,尝试理解联盟链的一些原理,而不是照着教程搭。 28 | 29 | 总结:代码review完成情况较差,对于beego框架还有待学习。 30 | 31 | ### 2019年11月15日-2019年11月21日 32 | 33 | 1. 学习区块链相关技术 34 | 2. 学习Fabric框架 35 | 3. 汇总相关知识点,完成技术博客 36 | 37 | 总结:本周依然在Fabric的框架和一些深层次的理解方面徘徊不前。大部分时间都感觉在硬啃。 38 | 39 | ### 2019年11月22日-2019年11月28日 40 | 41 | 1. 搭建fabrci的web项目 42 | 43 | 本周总结:这周因为考试和课程的作业,时间花费较少,下周需要赶一波进度。此外仍然无法很好的理解fabric。 44 | 45 | ### 2019年11月29日-2019年12月5日 46 | 47 | 1.4环境部署并开始链码的开发 48 | 49 | ### 2019年12月06日-2019年12月12日 50 | 51 | 这周看了用go将链码对接web项目,未成功。 52 | 53 | 逐渐自闭,上链艰辛 54 | 55 | 56 | 57 | -------------------------------------------------------------------------------- /doc/HomeWork/KCoin/1901210454.md: -------------------------------------------------------------------------------- 1 | # 1901210454 刘珣 2 | ## 2019.10.21 - 2019.10.27 3 | 1. 学习了如何在GitHub上提交pr 4 | 2. 在learn-with-open-source项目中提交了一个PR,修改了英文中的单复数错误和介词错误,PR地址为:https://github.com/zhuangbiaowei/learn-with-open-source/pull/196 5 | 3. 参加了Kcoin区块链项目第一次组会 6 | 总结:学会了git clone, git branch, git push等命令,还需多多学习 7 | 8 | 9 | -------------------------------------------------------------------------------- /doc/HomeWork/KCoin/1901210466.md: -------------------------------------------------------------------------------- 1 | # 北大-华为云新工科实验班 2 | ## 1901210466-陆奎元-周报 3 | ### 2019年11月29日-2019年12月5日 4 | - [x] 整理css文件。将到目前为止前端组所写的css文件按照页面类别进行整合,并解决整合过程中产生的冲突。 5 | - [x] 本周总结:在整理界面的时候,我还抱怨着这页面是谁写的啊?可读性好差,怎么那么烂啊。仔细一看,咦,这不就是自己之前写的页面吗?哭了T﹏T 6 | ### 2019年11月22日-2019年11月28日 7 | - [x] 首页增加“平台管理”入口。 8 | - [x] 增加“判断一个用户是不是平台管理员”的逻辑。 9 | - [x] 实现平台管理页面公共部分。 10 | - [x] 本周总结:本周有很多ddl,所以在这里反思一下自己,本周花在项目上的时间不够多。所以,现在开始加大投入力度。 11 | ### 2019年11月15日-2019年11月21日 12 | - [x] 在personalprojects页面里用JavaScript来控制import页面的弹出。 13 | - [x] 修复头像显示方形问题。 14 | - [x] 提交三个用户故事的验证标准。 15 | - [x] 本周总结:本周的开发过程中遇到了一些技术上的问题,感觉要学的东西还有很多,有点挫败感。要调整心态,继续学习。 16 | ### 2019年11月8日-2019年11月14日 17 | - [x] 登录和注册页面的controller。 18 | - [x] 修复登录和注册页面特效位置偏移的问题 19 | - [x] 学习其他人的controller,看他们是怎么解析json数据的,尝试进行两个页面的数据传输(键值对和结构体)。 20 | - [x] 提交三个用户故事。 21 | - [x] 进行代码review。 22 | - [x] 本周总结:beego框架要学的东西还很多,还得坚持学习。git的操作还要多实践才能熟练起来。 23 | ### 2019年11月2日-2019年11月7日 24 | - [x] 学习html、css的基础教程。 25 | - [x] 学习部分JavaScript的基础教程。 26 | - [x] 设计并重写kcoin的登录和注册界面。 27 | - [x] 学习Skywalking的基本原理,了解它的架构。 28 | - [x] 本周总结:这周要学习的知识很多,并且都是带着任务去学习。都说前端上手快,但是真正实际操作并没有那么容易,甚至对一个小小布局的定位都要捣鼓很久(为什么它不能在我所想的位置显示出来),整个过程很“痛苦”,希望能够坚持下来! 29 | ### 2019年10月27日-2019年11月2日 30 | - [x] 已完成go-tour教程的学习。 31 | - [x] 本周总结:本周主要学习golang的基础知识。本人将在11月2日前用golang完成两道leetcode的编程题,并撰写解题报告。 32 | ### 2019年10月20日-2019年10月27日 33 | - [x] 向learn-with-open-source项目提交一个PullRequest并被Merge。其中,修改了zh/Hello-world.md文件的某一处(在文件中进一步解释git clone命令的GitRepoURL地址)。PR地址为:https://github.com/zhuangbiaowei/learn-with-open-source/pull/138 34 | - [x] 在HelloWorld项目的doc/HomeWork/目录下创建新文件1901210466.md,并在该文件中记录本人第一周的工作记录和总结。 35 | - [x] 了解基于区块链的kcoin项目,知道项目是干什么,明确下一步的计划。 36 | - [x] 本周总结:本周主要学习git的基本命令和操作,了解本小组项目的基本情况。 37 | 38 | -------------------------------------------------------------------------------- /doc/HomeWork/KCoin/1901210501.md: -------------------------------------------------------------------------------- 1 | 周报2019.11.26-2019.12.2: 2 | 学习了vue 3 | 学习了skywalking的项目源码 4 | 尝试在skywalking中新增页面 5 | 6 | 7 | 周报2019.11.19-2019.11.25: 8 | 加入了ABC小分队,按照要求在windows平台上安装了各种软件 9 | 学习区块链相关技术 10 | 11 | 12 | 周报2019.11.12-2019.11.18: 13 | 尝试在服务器上部署联盟链,暂时fabric安装未成功 14 | 学习了kcoins项目其他小组的代码 15 | 16 | 17 | 周报2019.11.4-2019.11.11: 18 | 尝试在服务器上部署联盟链,暂时fabric安装未成功 19 | 学习了skywalking 20 | 21 | 22 | 周报2019.10.28-2019.11.3: 23 | 完成了庄老师布置的go-tour教程流程(熟悉了基础用法、方法接口、并发),周末将继续完成beego的学习 24 | 25 | 26 | 27 | 周报2019.10.20-2019.10.27: 28 | 在learn-with-open-source项目中提交了一个PR, 29 | 修改了learn-with-open-source\en\Before-start文件中的语法错误, 30 | PR地址为https://github.com/zhuangbiaowei/learn-with-open-source/pull/165(Merged) 31 | 总结:本周熟悉了提交PR的过程,掌握了Git基本命令的使用。 32 | -------------------------------------------------------------------------------- /doc/HomeWork/KCoin/1901210556.md: -------------------------------------------------------------------------------- 1 | # 2019年11月1日-2019年11月7日 2 | 3 | - [x] 看skywalking的原理并安装skywalking 4 | 5 | - [x] 学习李文塔的go语言核心编程,3章 6 | 7 | - [x] 边看教程边照着写beego项目,看到beego的mvc架构 8 | 9 | 总结:要尽快将go的书和beego看完 10 | 11 | 12 | 13 | # 2019年10月27日-2019年10月31日 14 | 15 | - [x] 完成了[go-tour](https://tour.go-zh.org/list)教程 16 | 17 | - [x] 用go完成了两道算法题 18 | 19 | - [x] go语言核心编程看了三章 20 | 21 | 22 | 23 | [leetcode66.加一](https://leetcode-cn.com/problems/plus-one/) 24 | 25 | ```go 26 | func plusOne(digits []int) []int { 27 | var plus int = 1 28 | var p int = len(digits)-1 29 | var sum int = 0 30 | for ;p>=0 && plus>0; { 31 | sum = digits[p]+plus 32 | plus = sum / 10 33 | digits[p] = sum % 10 34 | p-- 35 | } 36 | if plus!=0 { 37 | ans := make([]int, len(digits)+1) 38 | ans[0]=1 39 | for i:=1;i<=len(digits);i++ { 40 | ans[i]=digits[i-1] 41 | } 42 | return ans 43 | } 44 | return digits 45 | } 46 | ``` 47 | 48 | [leetcode67.二进制求和](https://leetcode-cn.com/problems/add-binary/) 49 | 50 | ```go 51 | func addBinary(a string, b string) string { 52 | i := len(a) - 1 53 | j := len(b) - 1 54 | res := "" 55 | flag := 0 56 | current := 0 57 | for i >= 0 || j>= 0 { 58 | Inta,Intb := 0,0 59 | if (i >= 0){ 60 | Inta = int (a[i] - '0') 61 | } 62 | if (j >= 0){ 63 | Intb = int (b[j] - '0') 64 | } 65 | current = Inta + Intb + flag 66 | flag = 0 67 | if current >= 2 { 68 | flag = 1 69 | current = current - 2 70 | } 71 | cur := strconv.Itoa(current) 72 | res = cur + res 73 | i-- 74 | j-- 75 | } 76 | if flag == 1 { 77 | res = "1" + res 78 | } 79 | return res 80 | } 81 | ``` 82 | 83 | # 2019年10月20日-2019年10月27日 84 | 85 | - [x] 阅读**[learn-with-open-source](https://github.com/zhuangbiaowei/learn-with-open-source)**的内容 86 | - [x] 在github上fork了**[learn-with-open-source](https://github.com/zhuangbiaowei/learn-with-open-source)**,提交了一个pr并被接收 87 | -------------------------------------------------------------------------------- /doc/HomeWork/KCoin/1901210560.md: -------------------------------------------------------------------------------- 1 | ## 姚贵斌 1901210560 2 | 3 | ##### 2019/10/21 -- 2019/10/27 4 | 5 | - [x] 在 **learn-with-open-sourse** 项目中提交了一个PR,改正了语法错误,原句中将“软件开发”对应“高薪白领”, 不恰当。PR地址:https://github.com/zhuangbiaowei/learn-with-open-source/pull/59**[Merged]**。 6 | 7 | - [x] 在 **OS-ABC/HelloWorld** 项目中,利用git工具提交了第一个PR(即周报),地址为:https://github.com/OS-ABC/HelloWorld/pull/93。随后修改了格式问题,在写完此篇后将提交第二次PR。 8 |   9 | 总结:学会了如何从远程仓库克隆代码、创建分支等的命令。 10 | --- 11 | 12 | 13 | ##### 2019/10/27 -- 2019/11/02 14 | 15 | - [x] 完成庄老师布置的go-tour教程流程,学有余力的同学继续完成beego学习。 16 | - [x] 用go语言完成leetcode至少两道算法题 **(已完成)** 17 | - [x] 将上述过程整理成学习报告使用git长传至HelloWorld项目。 **(已完成)** 18 |   19 | 总结:有一门编程语言的基础之后,再转换到其他语言,障碍会小一点。 20 | 21 | --- 22 | 23 |   24 | 25 | ##### 2019/11/03 -- 2019/11/07 26 | 27 | - [x] 完成前端任务:开发项目展示页面。 28 | 29 | 页面按照给出的设计原图大致做了出来,但是内部仍比较粗糙,没有实现对内容的动态存取。 30 | 31 | 而且网页排版还是要多看一下。 32 | 33 | --- 34 | 35 |   36 | 37 | ##### 2019/11/08 -- 2019/11/14 38 | 39 | (1) 理解controller的作用和原理 40 | 41 | (2) 给项目展示页面加上controller,使其能动态获取数据并更新。 42 | 43 | 总结:还需要修改添加项目的交互方式,目前仍未能页面跳转,需要实现业内弹窗的效果。 44 | 45 | --- 46 | 47 |   48 | 49 | ##### 2019/11/15 -- 2019/11/21 50 | 51 | (1)通过Github的issue领取任务——开发项目动态页面,并基本完成静态方法的开发。 52 | 53 | (2)现在页面做到了月份和日期的展示,还需要完成年份的信息展示。 54 | 55 | --- 56 | 57 |   58 | 59 | ##### 2019/11/22 -- 2019/11/27 60 | 61 | (1)修复项目动态页面(projectNotice)宽度和顶部导航栏宽度不一致的问题; 62 | 63 | (2)完善projectNotice页面,实现年份显示。 64 | 65 | 总结:自己实现一个小元素,感觉不错;计划学习model相关操作,实现页面动态获取数据。 -------------------------------------------------------------------------------- /doc/HomeWork/KCoin/1901210581.md: -------------------------------------------------------------------------------- 1 | # 周报 2 | 3 | 张剑飞 4 | 5 | 2019年11月11日-2019年11月17日 6 | 7 | 1. 数据库的连接与交互 8 | 2. 熟悉git操作,go,beego操作,数据库增删改查与基本连接 9 | 3. review代码进度非常一般 10 | 11 | 2019年11月4日-2019年11月10日 12 | 13 | 1. 合作基本完成了本周beego任务,主要负责,json格式的重写与代码完善。尚未解决的问题留于周五讨论 14 | 2. skywalking初步学习与报告 15 | 3. 前端入门了解时下流行技术,静待周五听课 16 | 17 | 2019年10月28日-2019年11月3日 18 | 19 | + 学习go tour教程,跟随做同步练习 20 | + 用go lang刷leetcode题目,逐步掌握go基础使用 21 | + 了解老师发的区块链相关知识,为开始项目做铺垫 22 | + 本周总结:熟悉了go语言基础,业务基础,初步进行go实践 23 | 24 | 10.21-10.27周报 25 | 26 | + 在OS-ABC项目中练习了git工具基本使用 27 | + 在庄老师项目中改正了英文文档约十处语法错误,并熟练了git与github命令行的使用,一次merge成功 28 | + 感想:作为基本工具,要在使用中熟悉 29 | 30 | init homework report -------------------------------------------------------------------------------- /doc/HomeWork/KCoin/1901210645.md: -------------------------------------------------------------------------------- 1 | # 个人周报 2 | 3 | ## 2019年11月1日-2019年11月7日 4 | 5 | - [x] 完成Web Server方面小组开发任务 6 | - [x] 组长开会,总结本周任务并分配下周任务 7 | - [x] 完成Dapper论文阅读 8 | - [x] 做一次技术分享 9 | 10 | 总结:本周完成小组作业,并且开会总结了本周任务,并需要做一次技术分享,同时完成Dapper论文阅读。 11 | 12 | ## 2019年10月28日-2019年10月31日 13 | 14 | - [x] 完成go-tour 15 | - [x] [小组作业](../../GoLang/1901210645_10_31.md)(用go完成两题算法题)完成 16 | - [x] Beego完成安装 17 | 18 | 总结:本周完成小组作业,可以用go写`medium`难度的算法题,也用到了很多go语言的特性,感觉算是基本熟悉go的常用操作。Beego安装完成,并跑了一下helloworld,了解了下helloworld做了什么事儿。 19 | 20 | ## 2019年10月20日-2019年10月27日 21 | 22 | - [x] fork kcoin 并进行项目分析 23 | - [x] 技术小组讨论,探讨可行方案并给小组成员开了一次会 24 | - [x] 完成PR任务,在learn-with-open-source项目中提交了一个PR,修改了zh文件夹中`Before-start.md`中的标点符号问题,[PR](https://github.com/zhuangbiaowei/learn-with-open-source/pull/34)已Merged. 25 | - [x] 完成go语言配置安装,进行了部分go语言学习 26 | 27 | 总结:本周完成了PR的作业,开始了解项目,熟悉组员,熟悉业务流程,并开始熟悉语言。 -------------------------------------------------------------------------------- /doc/HomeWork/KCoin/1901210649.md: -------------------------------------------------------------------------------- 1 | ### 2019年11月22日-2019年11月28日 2 | - [x] 仿照教程进行基于SKD-go的fabric[应用](https://github.com/kevin-hf/kongyixueyuan)实现 3 | - [x] 解决了go get无法获取deb的问题 4 | - [x] 教程的进行卡在了deb ensure无反应 5 | ### 2019年11月15日-2019年11月21日 6 | - [x] 跟着fabirc官方教程中smartcontract以及write first app的内容实现了一遍 7 | - [x] 对fabric架构进行了简单了解 8 | ### 2019年10月08日-2019年11月14日 9 | - [x] 完成了fabric的服务器配置 10 | - [x] 学习区块链相关知识(使用何种数据结构,有何作用) 11 | - [x] 为算法中LeeCode题目添加C++解答 12 | ### 2019年10月02日-2019年11月07日 13 | - [x] 在本地完成了fabric1.4的安装和使用 14 | - [x] 阅读了SkyWalking相关文章 15 | ### 2019年10月27日-2019年11月02日 16 | - [x] 完成go-tour教程 17 | - [x] 在OS-ABC/HelloWorld/doc/Algorithms中提交了快速排序.md [#110](https://github.com/OS-ABC/HelloWorld/pull/110) 18 | 19 | ### 2019年10月20日-2019年10月27日 20 | - [x] 在OS-ABC/HelloWorld项目中,提交一个PR并被成功合并 [#5](https://github.com/OS-ABC/HelloWorld/pull/5) 21 | - [x] 学习了git的基本命令行操作, 如何commit以及同步fork的仓库 -------------------------------------------------------------------------------- /doc/HomeWork/KCoin/1901210654.md: -------------------------------------------------------------------------------- 1 | 2019年10月20日-2019年10月27日 2 | 3 | 在learn-with-open-source项目中提交了一个PR,修改了hello world.md章节的错别字,PR地址为: 4 | https://github.com/zhuangbiaowei/learn-with-open-source/pull/110 已经merged 5 | 6 | 总结:本周完成了PR的作业,掌握了git的使用,并开始了解go语言。 7 | 8 | -------------------------------------------------------------------------------- /doc/HomeWork/KCoin/1901210657.md: -------------------------------------------------------------------------------- 1 | # 华为云实验班周报总结 2 | 3 | ## 1. 20191020-20191027 第一周 4 | 5 | - [x] 1.在OS-ABC/HelloWorld项目中,提交一个PR并被成功合并,PR地址为:https://github.com/OS-ABC/HelloWorld/pull/18 6 | 7 | - [x] 2. 学习了基本的git命令行操作,使用命令行来clone,修改文件后再通过命令提交commit并push到远程仓库中,以及同步fork的仓库 8 | 9 | ## 1. 20191028-20191031 第二周 10 | 11 | - [x] 1.完成了go-tour教程的学习 12 | 13 | - [x] 2. 用go完成了两道简单的leetcode算法题 14 | 15 | ## 1. 20191029-20191107 第三周 16 | 17 | - [x] 1.学习了skywalking的基本原理与安装配置 18 | 19 | - [x] 2. 学了beego的基本框架,熟悉了ORM的使用。实现了数据库用户个人项目托管信息的查询与写入操作接口。 20 | -------------------------------------------------------------------------------- /doc/HomeWork/KCoin/1901210678.md: -------------------------------------------------------------------------------- 1 | ## 2019.12.6——2019.12.11 周报 2 | # 主题:智能合约明确需求和架构 3 | * 参与Fabric中peer,organization,和channel的网络与账本格式的讨论与设计和实现 4 | 5 | ## 2019.11.29——2019.12.5 周报 6 | # 主题:智能合约明确需求和架构 7 | * 参与并完成Fabric中peer,organization,和channel的网络与账本格式的讨论与设计 8 | 9 | ## 2019.11.22——2019.11.28 周报 10 | # 主题:智能合约证书颁发与认证 11 | * 搭建起Fabric-ca环境 12 | * 尝试进行符合Kcoin情况的证书认证 13 | 14 | ## 2019.11.15——2019.11.22 周报 15 | # 主题:智能合约阅读与开发 16 | * 完成Fabric e2e_cli 案例流程分析,和docker基础知识 17 | 18 | ## 2019.11.08——2019.11.14周报 19 | # 主题:Kcoin智能合约和整体框架 20 | * 完成merged代码的review 21 | * 安装测试Fabric,完成基本环境 22 | * 本周总结:进一步了解整个项目和智能合约的工作 23 | 24 | ## 2019.11.01——2019.11.07周报 25 | # 主题:Kcoin智能合约和Skywalking 26 | * 安装测试Fabric,完成基本转账操作 27 | * 学习Skywalking整体概念, 28 | * 编译安装Skywalking源码,正在进行probe中service mesh(Istio)的安装调试 29 | * 本周总结:通过md文档阅读和安装及实践了解熟悉了Kcoin智能合约和Skywalking 30 | 31 | ## 2019.10.28——2019.11.4周报 32 | # 主题:Go语言学习 33 | * 完成了go-tour教程流程 https://tour.go-zh.org/concurrency/11 34 | * 安装beego 35 | * 在leetcode上使用Go语言完成两道算法题 36 | * 本周总结:通过教程了解了go语言的基本语法 37 | 38 | ## 2019.10.20——2019.10.27周报 39 | # 主题:pr操作流程及技术总结 40 | * 在learn-with-open-source项目中提交了一个PR,将,PR地址为:https://github.com/zhuangbiaowei/learn-with-open-source/pull/113 【Merged】 41 | * 在learn-with-open-source项目中针对PR进行了review,地址为:https://github.com/zhuangbiaowei/learn-with-open-source/pull/69 【Merged】 42 | * 总结:本周熟悉了提交PR的过程,掌握了Git基本命令的使用 43 | -------------------------------------------------------------------------------- /doc/HomeWork/KCoin/1901210698.md: -------------------------------------------------------------------------------- 1 | ### 2019.11.03 - 2019.11.08 2 | - [x] 完成beego基础学习 3 | - [x] 开始着手后端开发 - 获取个人项目托管信息 4 | - [x] 用go语言实现两道算法题 5 | 6 | ### 2019.10.27 - 2019.11.02 7 | - [x] 完成go-tour教程 8 | - [x] 用go语言实现两道算法题 9 | 10 | ### 2019.10.21 - 2019.10.27 11 | - [x] 在OS-ABC/HelloWorld项目中,提交一个PR并被成功合并,PR地址为:https://github.com/OS-ABC/HelloWorld/pull/16 12 | - [x] 总结:本周熟悉了提交PR过程,掌握了Git基本命令的使用。 -------------------------------------------------------------------------------- /doc/HomeWork/KCoin/1901210720.md: -------------------------------------------------------------------------------- 1 | 2019年10月20日-2019年10月27日周报 2 | 了解PR的过程,在learn-with-open-source项目中提交了一个PR,PR地址为:https://github.com/zhuangbiaowei/learn-with-open-source/pull/102 3 | PR被已经合并 4 | 个人的总结:本周了解PR的过程,掌握了Git基本命令的使用 5 | 6 | -------------------------------------------------------------------------------- /doc/HomeWork/KCoin/1901210725.md: -------------------------------------------------------------------------------- 1 | # 北大-华为云新工科实验班周报总结 2 | ## 2019.12.6——2019.12.12周报 3 | * 阅读了前后端代码 4 | * 继续学习fabric教程 5 | ## 2019.11.29——2019.12.5周报 6 | * 了解了fabric上node. js运行的原理 7 | * 参与设计了联盟链中peer,organization,channel的网络与账本格式 8 | * 本周总结:上午听了IBM的区块链讲座才发现原来fabric是IBM的项目…以前竟然没注意,希望我不是最后一个发现的 9 | ## 2019.11.22——2019.11.28周报 10 | * 在本地运行了fabcar 11 | * 尝试修改已有的别人的链码 12 | * 本周总结:通过运行教程案例,已经慢慢找到门路,但是对fabric的机制还是不是很了解,争取下周能够写出自己的链码 13 | ## 2019.11.15——2019.11.21周报 14 | * 尝试运行了在联盟链上调用链码进行转账 15 | * 在本地虚拟机上将原先搭建的fabric1.0.0更新为fabric1.4.0 16 | * 本周总结:进一步了解了联盟链和fabric,熟悉了相关操作 17 | ## 2019.11.8——2019.11.14周报 18 | * review了fabric源码中解析配置文件部分 19 | * 在虚拟机中搭建了例子中的联盟链 20 | * 本周总结:开始了解fabric的原理和应用。 21 | ## 2019.11.1——2019.11.7周报 22 | * 在服务器和虚拟机上分别配置了智能合约fabric的运行环境 23 | * 撰写了描述在Ubuntu搭建fabric运行环境的技术博客 24 | * 阅读了SkyWalking的文档,在虚拟机配置了SkyWalking运行环境 25 | * 本周总结:全新领域,踩了不少坑,仍在填坑中 26 | ## 2019.10.28——2019.10.31周报 27 | * 完成了庄老师布置的go-tour教程流程 28 | * 尚未开始beego的学习 29 | * 完成了leetcode两道算法题 30 | * 本周总结:通过教程了解了go语言的基本语法,通过做算法题简单地加深了对go语言的掌握 31 | ## 2019.10.20——2019.10.27周报 32 | * 在庄老师的learn-with-open-source项目中,修改了zh/Before-start.md中的一句话:将“只有以上三类目标用户”修改为“只有以上四类目标用户”。[https://github.com/zhuangbiaowei/learn-with-open-source/pull/67](https://github.com/zhuangbiaowei/learn-with-open-source/pull/67) 33 | * 将庄老师的earn-with-open-source项目中的zh/Before-start.md翻译成英文,在同学的建议下进行了几次修改,最后建立了en文件夹用于存放英文文件,并将翻译后的文件移入en文件夹。[https://github.com/zhuangbiaowei/learn-with-open-source/pull/69](https://github.com/zhuangbiaowei/learn-with-open-source/pull/69) 34 | * 本周总结:本周熟悉了提交PR流程,练习了git命令的基本使用。 35 | -------------------------------------------------------------------------------- /doc/HomeWork/KCoin/1901210749.md: -------------------------------------------------------------------------------- 1 | # 张喆1901210749 2 | 3 | ### 2019.12.6 — 2019.12.12 4 | 5 | 1. 实现了从数据库中获取项目CC数量并展示到项目详情页面中。 6 | 2. 修复了一些bug。 7 | 8 | 总结:这周的任务让我对Go语言有了更深入的学习。 9 | 10 | ### 2019.11.29 — 2019.12.5 11 | 12 | 1. 在kcoin后端中实现了解析url功能。 13 | 2. 分配了前端任务issue。 14 | 15 | 总结:这周在后端的工作让我学习到了很多新的后端知识。 16 | 17 | ### 2019.11.22 — 2019.11.28 18 | 19 | 1. 在kcoin首页添加了从项目跳转到项目详情的连接。 20 | 2. 在项目详情页中添加了投资按钮。 21 | 3. 对别人的代码进行了CodeReview。 22 | 23 | 总结:这周的学习和开发过程让我对前后端交互有了更深入的了解。 24 | 25 | ### 2019.11.15 — 2019.11.21 26 | 27 | 1. 将kcoin中个人中心的左侧导航栏抽出为单独的html文件 28 | 2. 将kcoin项目信息页面顶部导航栏和底部footer抽出为单独的html文件 29 | 3. 创建了projectMemberList页面和相应Controller 30 | 4. 继续阅读并改进了Kcoin中的代码 31 | 32 | 总结:在这周的合作开发中,我对前端的各种技能掌握的更加熟练了。 33 | 34 | ### 2019.11.8 — 2019.11.14 35 | 36 | 1. 完善了Kcoin的用户个人中心页面。 37 | 2. 将用户个人中心页面上传整合到了Kcoin在Github上的项目的dev分支中。 38 | 3. 对kcoin中的其他代码进行了Code Review。 39 | 40 | 总结:在完成这周任务的过程中,我对git命令的掌握更加熟练了;同时在对其他人的代码进行Code Review的过程中我也学到了很多技巧,提高了自己的编码能力。 41 | 42 | ### 2019.11.1 — 2019.11.7 43 | 44 | 1. 完成了Kcoin的用户个人中心界面的静态页面编写。 45 | 2. 在controller中实现了解析json数据获取用户名和头像并传到上述页面中。 46 | 3. 在本地安装了SkyWalking。 47 | 48 | 总结:在Kcoin的前端页面制作的过程中我学到了很多HTML、CSS的知识,同时也对Go语言和Beego框架有了更深入的了解。 49 | 50 | ### 2019.10.28 — 2019.10.31 51 | 52 | 1. 在本地搭建了Golang环境,配置了VScode的Golang插件。 53 | 2. 安装了Beego框架,并尝试运行了Beego的HelloWorld程序。 54 | 55 | 总结:在配置环境的过程中,我遇到了许多诸如go get命令无法下载这样的问题,并通过查阅资料解决了,锻炼了自己解决问题的能力。 56 | 57 | ### 2019.10.21 — 2019.10.27 58 | 59 | 1. 在learn-with-open-source中提交了第一个PR,修改了Before-start中的一处错字和不通顺的地方。PR地址为: https://github.com/zhuangbiaowei/learn-with-open-source/pull/38 [Merged]。 60 | 2. 在learn-with-open-source中提交了第二个PR,修改了 Understanding-the-source-code 中的冒号范围和不通顺语句。PR地址为: https://github.com/zhuangbiaowei/learn-with-open-source/pull/123 [Merged]。 61 | 62 | 总结:在给庄老师的项目提交PR的过程中,我学会了git中的clone、commit、push等命令的使用,也掌握了提交PR的流程。 63 | 64 | 65 | -------------------------------------------------------------------------------- /doc/HomeWork/KCoin/1901210782.md: -------------------------------------------------------------------------------- 1 | 陈程 1901210782 2 | 3 | 2019-10-21 ~ 2019-10-27 周报 4 | 5 | 1、在learn -with -open source 中,提交一个pr,在 Understanding-the-source-code.md 中,修改部分错别字,及部分标点符号,被成功merge。 地址为:https://github.com/zhuangbiaowei/learn-with-open-source/pull/201 6 | 7 | 2、同Kcoin 技术组小伙伴,梳理项目技术及业务线,确定开发语言及数据库选型,拆分相关需求。 8 | 9 | 10 | 陈程 1901210782 11 | 2019-10-27 ~ 2019-10-31 周报 12 | 本周由于提交周报相关时间变更,及工程管理专业迎来期中考试周,对于项目的推进并无直接在git上的提现。 13 | 但形成的工作内容如下: 14 | 1、思考之前关于项目的用户模块中,数据库部分相关设计,目前核心需要开发的表为,用户注册表,用户登录登出日志表,用户积分汇总表,用户积分变动日志表,用户模块中存在权限管控,故需要有不同的权限角色表。 15 | 相关ER图未绘制,小组会议确定方案后,开始推进。 16 | 17 | 18 | 2019-11-1 ~ 2019-11-7 周报 19 | 1、完成项目公有服务器配置,重置其密码 20 | 21 | 2、同时完成服务器端数据库安装,技术选型为postgre sql ,版本为 9.5;账号密码已分发给项目小伙伴 22 | 23 | 3、按照之前构建结果完成对表的新建,分别是用户表,项目表,用户X项目表。 24 | 25 | 26 | 27 | 28 | 2019-11-8 ~ 2019- 11- 14 周报 29 | 1、配合后端完成已知成员,查询 该项目所有 成员信息的查询,具体 sql 如下 30 | WITH attend_project AS 31 | ( 32 | SELECT DISTINCT(project_id) AS attended_pro_id from "K_User_in_Project" 33 | where user_id in( 34 | SELECT User_id from "K_User" 35 | where user_name='@@@@@' 36 | ) 37 | ) 38 | 39 | 40 | SELECT a.project_name,a.project_url,a.project_cover_url,b.user_name,b.head_shot_url FROM 41 | 42 | (SELECT project_id, project_name,project_url,project_cover_url FROM "K_Project" kpro 43 | where kpro.project_id in 44 | (SELECT attended_pro_id FROM attend_project) 45 | ) a 46 | 47 | LEFT JOIN 48 | 49 | (SELECT kuip.project_id,ku.user_name,ku.head_shot_url FROM "K_User_in_Project" kuip INNER JOIN "K_User" ku ON kuip.user_id=ku.user_id 50 | where kuip.project_id in 51 | (SELECT attended_pro_id FROM attend_project) 52 | ) b 53 | 54 | ON a.project_id=b.project_id 55 | 56 | 2、 对数据库部分表进行修改, 57 | (1)完成表 id 的自增 58 | (2)完成 注册时间 从字符串变更成 datetime 的修复 59 | 60 | 61 | 62 | 63 | 2019-11-14~2019-11-21 工作内容总结 64 | 1、更新ER图,增加project 与user 表中,相关列的信息 65 | 2、参与集中开发,并将各表增加自增序列 66 | 3、按照本周需求进行开发推进 67 | 68 | 69 | 2019-11-22~2019-11-28 工作内容 70 | 1、按照更新后的ER图,更新project 表添加列项目治理方式(project_institution),用户表增加用户cc余额(user_cc),创建角色表表(K_Role),权限表(K_Permission),项目中用户角色表(k_user_role_in_project) 71 | 72 | 2、增加触发器,user_cc由 K_User_in_Project中cc汇总得来 73 | 74 | 2019-11-28~2019-12-5 工作内容: 75 | 1、创建 CC流动表 及 购买CC记录表 76 | 77 | 2、创建 临时用户信息表 78 | 79 | 3、据此根据ER图 80 | 81 | 82 | 2019-12-6~2019-12-12 工作内容: 83 | 84 | 1、完成临时用户表与超管表的创建 85 | 86 | 2、配合后端,对部分表格数据进行填充 87 | 88 | 3、完成表格注释、约束、触发器检查与升级工作 89 | 90 | 91 | 2019-12-13~2019-12-19 工作内容: 92 | 1、根据需求,用触发器替代区块链体系,完成用户CC、项目CC ,用户cs ,项目cs,在有变动记录时,自动更新其cc、cs的余额,完成相应触发器函数的设计,及触发器的部署。 93 | 2、推进表注释相关工作 94 | 95 | -------------------------------------------------------------------------------- /doc/HomeWork/KCoin/1901220052.md: -------------------------------------------------------------------------------- 1 | 2019年10月20日-2019年10月27日 2 | 在庄老师的learn-with-open-source首次提交了一次PR 3 | 本周总结:首次提交了一次PR,感觉开源项目没有自己想像的那么难,以后还是要跟紧课程,不断前进。 4 | 2019年10月28日-2019年11月03日 5 | 1.完成go tour的学习 6 | 2.使用golang完成两道leetcode的算法2019年10月28日-2019年11月03日 7 | 2019年11月4日-2019年11月10日 8 | (1)完成开源项目SkyWalking的基本原理的学习,并成功部署。 9 | (2)完成智能合约组的安装fabric任务。 10 | 总结:SkyWalking是个强大的工具,以后可以继续学习和使用。区块链是个挺有意思的事情,好像也没有传说中的那么神秘,值得继续探究。 11 | 2019年11月11日-2019年11月17日 12 | 1.完成Kcoin——Golang代码的review任务 13 | 总结:go能力不足,尚不足发现问题,需要进一步提升 14 | 2019年11月18日-2019年11月24日 15 | 1.完成联盟链的搭建 16 | 2.更新自己的技术博客 17 | 总结:智能合约的知识还需进一步掌握,下一步正确可以进行合约的编写 18 | 2019年11月22日-2019年11月28日 19 | 1.对照网上案例,尝试编写智能合约 20 | 总结:需要更多的实践案例,来熟悉智能合约的开发。 21 | 2019年11月29日-2019年12月5日 22 | 1.对照网上案例,编写智能合约 23 | 总结:进一步智能合约的开发。 24 | 25 | -------------------------------------------------------------------------------- /doc/HomeWork/KCoin/README.md: -------------------------------------------------------------------------------- 1 | Kcoin周报总结 2 | -------------------------------------------------------------------------------- /doc/HomeWork/KCoin/review-report/1900022730.md: -------------------------------------------------------------------------------- 1 | # kcoin代码review 2 | 3 | ## 2019年11月8日-2019年11月14日 4 | 5 | ### 审查对象:main.go以及routers/router.go 6 | 7 | - [x] 发现问题/审查结果 8 | 本地运行`go run main.go` 时显示` main.go:4:2:cannot find package "Kcoin-Goloang/src/routers" ` 9 | 10 | - [x] 修改过程 11 | 将main.go以及routers/router.go中包路径的`Kcoin-Goloang`替换成`"Kcoin-Golang` 12 | 13 | - [x] 总结 14 | 15 | 除了这个小问题之外并没有其它的问题,运行正常。 16 | 17 | -------------------------------------------------------------------------------- /doc/HomeWork/KCoin/review-report/1900022750.md: -------------------------------------------------------------------------------- 1 | # kcoin代码review 2 | 3 | ## 2019年11月8日-2019年11月14日 4 | 5 | ### 审查对象:login.html 6 | 7 | - [x] 发现问题:#47行中直接将client_id写入超链接标签中 8 | - [x] 修改过程:连接后端,由后端获取client_id并向github发出请求 9 | - [x] 总结: 应使前后端分离 10 | 11 | ### 审查对象:controllers 12 | 13 | - [x] 发现问题:缺少将授权信息存入数据库的模块 14 | - [x] 修改过程:创建authorize.go,获取到text后存数据库,保存cookie,获取登录状态,返回页面 15 | - [x] 总结: 仍在开发中 16 | 17 | ### 审查对象:getJson.go 18 | 19 | - [x] 发现问题:缺少注释信息 20 | - [x] 修改过程:增加注释 21 | - [x] 总结: 增加注释,增强可读性便于以后开发 22 | -------------------------------------------------------------------------------- /doc/HomeWork/KCoin/review-report/1900022763.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OS-ABC/HelloWorld/d003d9f0943635abe5c99d88f47913feba0631f9/doc/HomeWork/KCoin/review-report/1900022763.md -------------------------------------------------------------------------------- /doc/HomeWork/KCoin/review-report/190002295.md: -------------------------------------------------------------------------------- 1 | ### 审查对象: 2 | 3 | - [x] 总结:更加深入了解了beego框架 需要进一步学习 -------------------------------------------------------------------------------- /doc/HomeWork/KCoin/review-report/1901210000.md: -------------------------------------------------------------------------------- 1 | # kcoin代码review 2 | 3 | ## 2019年11月8日-2019年11月14日 4 | 5 | ### 审查对象:xxx 6 | - [x] 发现问题/审查结果 7 | //发现问题指代码审查过程中发现的不符合逻辑、代码规范以及其他规则的问题; 8 | //审查结果指review他人代码,理解他人代码中的逻辑调用关系、明确接口原型以供自己调用 9 | - [x] 修改过程 10 | //根据上步修改审查对象或自己的代码 11 | - [x] 总结 12 | 13 | ### 审查对象:xxx 14 | - [x] 发现问题/审查结果 15 | - [x] 修改过程 16 | - [x] 总结 17 | 18 | ### 审查对象:xxx 19 | - [x] 发现问题/审查结果 20 | - [x] 修改过程 21 | - [x] 总结 22 | -------------------------------------------------------------------------------- /doc/HomeWork/KCoin/review-report/1901210269.md: -------------------------------------------------------------------------------- 1 | kcoin代码review 2 | 3 | ## 2019年11月8日-2019年11月14日 4 | 5 | ### 审查对象:xxx 6 | 7 | - [x] 审查结果 8 | 理解homepage页面controller书写 9 | 10 | - [x] 修改过程 11 | 书写个人项目页面controller 12 | 13 | - [x] 总结 14 | 15 | 了解controller和view之间的联系 16 | 17 | ### 审查对象:xxx 18 | 19 | - [x] 审查结果 20 | 21 | 理解homepage页面根据controller内容生成页面信息的方法 22 | 23 | - [x] 修改过程 24 | 25 | 成功根据controller的内容改变导入页面信息 26 | 27 | - [x] 总结 28 | 29 | 进一步了解controller和view之间的联系 -------------------------------------------------------------------------------- /doc/HomeWork/KCoin/review-report/1901210377.md: -------------------------------------------------------------------------------- 1 | # kcoin代码review 2 | 3 | ## 2019年11月8日-2019年11月14日 4 | 5 | ### 审查对象:homepage.go 6 | - [x] 发现问题/审查结果 7 | 8 | 结构体有重复定义,解析JSON到结构体的过程中有无意义的变量,代码缺少注释。 9 | 10 | - [x] 修改过程 11 | 12 | 删除了重复定义的结构体MemberList,删除了无意义的变量tmp的声明,增加了代码注释。 13 | 14 | - [x] 总结 15 | 16 | 修改后的代码可读性更高,逻辑更加清晰。 17 | 18 | ### 审查对象:homepage.tpl 19 | - [x] 发现问题/审查结果 20 | 21 | 主页项目的居中显示有bug,换行后不应该是项目卡片在整个页面居中,而是父元素在整个页面居中。 22 | 23 | - [x] 修改过程 24 | 25 | 不再使用float参数来作为样式,使用inline-block,不脱离文档流,然后用margin:auto来实现居中显示。 26 | 27 | - [x] 总结 28 | 29 | 修改让主页显示更加符合逻辑,更加美观。 -------------------------------------------------------------------------------- /doc/HomeWork/KCoin/review-report/1901210384.md: -------------------------------------------------------------------------------- 1 | ### 审查对象:views/homepage.tpl、controllers/homepage.go 2 | ---- 3 | #### 发现问题 4 | 该文件中定义了一个结构体类型ProjectMember,用于存储同一个项目下的成员的姓名和头像等信息, 5 | 但是我们知道项目成员其本质也是一个User,并且ProjectMember结构体中的成员与import.go中的UserData完全一致 6 | 因此,我认为将ProjectMember结构体删除,直接使用UserData替代更好。 7 | #### 修改过程 8 | 修改这个过程有两种思路, 9 | - 第一个就是直接删除ProjectMember。 10 | - 第二个是将ProjectMember中包一个UserData结构体,就像不同Controler里面都包裹一个beego.Controller(类似于c++中的继承) 11 | 这里我选择的是第一种方法,直接删除。并且还需要更改homepage.tpl中的一些代码。 12 | #### 总结 13 | 结构体定义的越少越好,定义的越少就越抽象。 14 | -------------------------------------------------------------------------------- /doc/HomeWork/KCoin/review-report/1901210389.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | - [x] 总结 4 | 5 | 在观看代码的过程中,通过阅读组员的代码学习了很多技术;进一步的理解了beego框架。 6 | -------------------------------------------------------------------------------- /doc/HomeWork/KCoin/review-report/1901210408.md: -------------------------------------------------------------------------------- 1 | # kcoin代码review 2 | 3 | ## 2019年11月8日-2019年11月14日 4 | 5 | ### 审查对象:controller包下的所有go文件 6 | - [x] 发现问题/审查结果 \ 7 | homepage.go和import.go中的struct定义冗余。\ 8 | 出现原因:分别开发造成的接口不统一;结构体和controller耦合度高,可读性差。 9 | - [x] 修改过程 \ 10 | (1)去掉controller里的struct\ 11 | (2)单独将它们放在一个controller包里的viewModel.go中。\ 12 | (3)重命名homepage中的Result结构体为projectListInfo。\ 13 | (4)修改原controller中有调用结构体的名称部分。\ 14 | (5)提交pr#44 15 | - [x] 总结 \ 16 | 在代码review修改提pr的过程中有很多不规范和没注意到的点,在提交pr的过程中与commiter交涉了很多次。也初步体会到提交和修改项目pr的感觉。还是要对项目整体有一个概念和了解。 17 | -------------------------------------------------------------------------------- /doc/HomeWork/KCoin/review-report/1901210447.md: -------------------------------------------------------------------------------- 1 | # kcoin代码review 2 | 3 | ## 2019年11月8日-2019年11月14日 4 | 5 | 主要学习了一些前端的代码,有一些界面觉得不是很友好,但是好像已经改了,对于beego框架还不熟练。 6 | 7 | -------------------------------------------------------------------------------- /doc/HomeWork/KCoin/review-report/1901210466.md: -------------------------------------------------------------------------------- 1 | # kcoin代码review 2 | 3 | ## 2019年11月8日-2019年11月14日 4 | 5 | ### 审查对象:import.go 6 | - [x] 发现问题/审查结果 7 | 当用户发起请求“/import”时,就会请求对应的控制器controllers.ImportController{},它在controller目录下的import.go文件下。在import.go文件中,还导入了和go语言解析json数据有关的包"encoding/json"。根据实际需要,定义UserInfo和UserData两个结构体(注意到代码里结构体中的成员名都是大写字母开头,因为只有大写字母的变量名才可导入。还用了tag方式进行数据对接,这样json格式中的数据对象的键的首字母就可以不用大写了),用于接收从后端传来的Json数据中的有效信息。但是从代码里能看出现阶段还没有和后端连一块,而是用jsonBuf模拟后端传来的Json数据,用于解析数据。 8 | - [x] 修改过程 9 | 等后端的Json数据,现阶段没什么要改的。 10 | - [x] 总结:import.go代码结构清晰,简单易懂。还要多学习其他人的代码,因为只有多看项目中其他人的代码才能对项目理解得更深。 11 | -------------------------------------------------------------------------------- /doc/HomeWork/KCoin/review-report/1901210649.md: -------------------------------------------------------------------------------- 1 | # kcoin代码review 2 | 3 | ## 2019年11月8日-2019年11月14日 4 | 这周组内没有代码添加,别的组的代码没有查看完,未进行代码review。自己阅读了区块链相关数据结构知识。 5 | ### 审查对象: 6 | - [x] 发现问题/审查结果 7 | 8 | - [x] 修改过程 9 | 10 | - [x] 总结 11 | 12 | -------------------------------------------------------------------------------- /doc/HomeWork/KCoin/review-report/1901210678.md: -------------------------------------------------------------------------------- 1 | # kcoin代码review 2 | 3 | ## 2019年11月8日-2019年11月14日 4 | 5 | ### 审查对象:default.go 6 | - [x] 发现问题/审查结果 7 | 无问题 8 | 直接跳转对应html 9 | - [x] 修改过程 10 | 无 11 | - [x] 总结 12 | 定义了mainController,LoginController和JoinController三个文件 13 | 14 | ### 审查对象:HomePage.go 15 | - [x] 发现问题/审查结果 16 | 未写查询数据库和Data数据结构 17 | 查询Data数据结构到homePage.tpl的传递 18 | - [x] 修改过程 19 | 无 20 | - [x] 总结 21 | 是登录进入的主页,可以通过tplname跳转到homepage 22 | 23 | ### 审查对象:Personal page.go/Personal project.go 24 | - [x] 发现问题/审查结果 25 | - [x] 修改过程 26 | - [x] 总结 27 | 会使用用户信息(用户Json尚未填写,要通过k_user查询数据库)跳转到用户的个人主页 28 | Personal project同理,是使用用户项目信息(项目json尚未填写,要通过K_project)跳到项目主页 29 | -------------------------------------------------------------------------------- /doc/HomeWork/KCoin/review-report/1901210725.md: -------------------------------------------------------------------------------- 1 | # Kcoin代码review 2 | 3 | ## 2019年11月8日—2019年11月14日 4 | 5 | ### 审查对象:Fabric源码 6 | 7 | * 审查结果: 8 | 9 | *源码下载* 10 | 11 | 在GitHub上获得fabric的源码 12 | 13 | gti clone https://github.com/hyperledger/fabric.git 14 | 15 | 在GoLand中打开项目 16 | 17 | *生成配置文件* 18 | 19 | 1、首先,运行**cryptogen**工具,我们的二进制文件在bin目录中,因此需要提供工具所在的相对路径 20 | 21 | ../bin/cryptogen generate --config=./crypto-config.yaml 22 | 23 | 找到fabric>>common>>tools>>cryptogen这个目录,这个文件夹包括ca、csp、metadata、msp、idemixgen、protolator这几个文件夹。 24 | 25 | 所有的模块的起步都是main方法,找到main.go文件,找到main方法。 26 | 27 | func main() { 28 | kingpin.Version("0.0.1") 29 | switch kingpin.MustParse(app.Parse(os.Args[1:])) { 30 | 31 | // "generate" command 32 | case gen.FullCommand(): 33 | generate() 34 | 35 | case ext.FullCommand(): 36 | extend() 37 | 38 | // "showtemplate" command 39 | case showtemplate.FullCommand(): 40 | fmt.Print(defaultConfig) 41 | os.Exit(0) 42 | 43 | // "version" command 44 | case version.FullCommand(): 45 | printVersion() 46 | } 47 | } 48 | 49 | kingpin是一个第三方的包,主要是用于生成cmd 命令。这个mian方法里面包含 generate、extend、 showtemplate、vesion等方法。 50 | 51 | var ( 52 | app = kingpin.New("cryptogen", "Utility for generating Hyperledger Fabric key material") 53 | 54 | gen = app.Command("generate", "Generate key material") 55 | outputDir = gen.Flag("output", "The output directory in which to place artifacts").Default("crypto-config").String() 56 | genConfigFile = gen.Flag("config", "The configuration template to use").File() 57 | 58 | showtemplate = app.Command("showtemplate", "Show the default configuration template") 59 | 60 | version = app.Command("version", "Show version information") 61 | ext = app.Command("extend", "Extend existing network") 62 | inputDir = ext.Flag("input", "The input directory in which existing network place").Default("crypto-config").String() 63 | extConfigFile = ext.Flag("config", "The configuration template to use").File() 64 | ) 65 | 66 | 2、generate方法的具体实现(所有配置文件生成的方法) 67 | 68 | func generate() { 69 | 70 | config, err := getConfig() 71 | if err != nil { 72 | fmt.Printf("Error reading config: %s", err) 73 | os.Exit(-1) 74 | } 75 | 76 | for _, orgSpec := range config.PeerOrgs { 77 | err = renderOrgSpec(&orgSpec, "peer") 78 | if err != nil { 79 | fmt.Printf("Error processing peer configuration: %s", err) 80 | os.Exit(-1) 81 | } 82 | generatePeerOrg(*outputDir, orgSpec) 83 | } 84 | 85 | for _, orgSpec := range config.OrdererOrgs { 86 | err = renderOrgSpec(&orgSpec, "orderer") 87 | if err != nil { 88 | fmt.Printf("Error processing orderer configuration: %s", err) 89 | os.Exit(-1) 90 | } 91 | generateOrdererOrg(*outputDir, orgSpec) 92 | } 93 | } 94 | 95 | * 修改过程: 96 | 97 | 无 98 | 99 | * 总结: 100 | 101 | 学习了fabric源码中解析配置文件部分的代码,开始理解fabric的原理。 102 | -------------------------------------------------------------------------------- /doc/HomeWork/KCoin/review-report/1901210749.md: -------------------------------------------------------------------------------- 1 | # Kcoin代码review 2 | 3 | ### 2019.11.8 - 2019.11.14 4 | 5 | ### 审查对象:personalProjects.html 6 | 7 | - [x] 发现问题 8 | 9 | 1. 从personalPage到personalProjects的跳转失效。 10 | 2. personalProjects页面打开为空。 11 | 3. personalProjects.css与personalPage.css中有重复部分。 12 | 4. personalProjects的左侧导航栏与personalPage的不一致。 13 | 14 | - [x] 修改过程 15 | 16 | 各条与上述问题对应: 17 | 18 | 1. 按照router.go修改了personalPage.html中的连接,从直接连接到文件改为了通过路由跳转。 19 | 2. 修改了personalProjects.html中的部分变量名称,使得其与viewModel中结构体中变量的名称相同。 20 | 3. 在personalProjects.html中引入了personalPage.css,并删除了personalProjects.css中的重复部分。 21 | 4. 修改了personalProjects.html导航栏的按钮底色。 22 | 23 | - [x] 总结 24 | 25 | 在Code review的过程中,我通过阅读其他人的代码学到了许多技巧;同时对其他部分代码的阅读也让我对Beego框架理解更深入了。 26 | 27 | -------------------------------------------------------------------------------- /doc/HomeWork/KCoin/review-report/1901220052.md: -------------------------------------------------------------------------------- 1 | # kcoin代码review 2 | 3 | ## 2019年11月8日-2019年11月14日 4 | 5 | ### 审查对象:代码的总体结构 6 | - [x] 发现问题/审查结果 7 | 没有发现问题,自己Go语言能力尚不足发现解决问题 8 | - [x] 修改过程 9 | 无 10 | - [x] 总结 11 | 整体上是MVC结构,只不过是Go语言版的,与php版的java版的结构类似: 12 | 13 | 其中各个文件夹下的含义是: 14 | conf:配置文件 15 | controllers:控制器 16 | models:数据 17 | routers:url路由 18 | static:img,js,css等资源文件 19 | tests:测试代码 20 | views:前端页面 21 | 22 | 开发的时候,按照需要到每个文件夹下修改就行了。 23 | 24 | 需要进一步提升自己的Go的代码能力,力求可以进行代码修改。 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /doc/HomeWork/KCoin/周报-Kcoin-1900022763.md: -------------------------------------------------------------------------------- 1 | 2019.10.28-2019.11.01 2 | 1. 在https://tour.go-zh.org/welcome/1在线完成了GO-tour的教程 3 | 2. 在https://beego.me上学习了GO的开源框架BEEGO的使用,并开始了BEEGO的第一个项目。 4 | 3. 在力扣上尝试用GO语言去写以前写过的算法题,用GO替代JAVA。 5 | 4. 学习了区块链的基本概念。 6 | 7 | 总结:学会了GO语言的基本语法,开始使用GO写一些函数,为参与项目实际开发打下了基础。 8 | -------------------------------------------------------------------------------- /doc/HomeWork/OSScan/1800022830.md: -------------------------------------------------------------------------------- 1 | 2019年11月4日-2019年11月10日 2 | 3 | 1.本周确定了项目初期的分组,选择加入了产品组来对自己接下来要做的东西有一个整体把握; 4 | 5 | 2.跟朱同学一起参与开源组件健康扫描关于发展趋势方面的资料搜集以及文档撰写。 6 | 7 | 8 | 9 | 10 | 2019年10月23日-2019年11月3日 11 | 12 | 1.学习并安装了Springboot,配置了软件系统环境; 13 | 14 | 2.完成了小组作业:使用Springboot打印HelloWorld和学号。 15 | 16 | 17 | 2019年10月20日-2019年10月27日 18 | 19 | 1、在learn-with-open-source项目中提交了一个PR,删除了zh/Hello-world.md章节的某些字,PR地址为: 20 | https://github.com/zhuangbiaowei/learn-with-open-source/pull/164 21 | 22 | 但没有及时看到邮箱提示的pr被关闭信息,已重新提交新的pr 23 | 总结:本周熟悉了提交PR的过程,掌握了Git基本命令的使用,但是在作业提交上出现疏漏,下次应当避免。 24 | -------------------------------------------------------------------------------- /doc/HomeWork/OSScan/1900022708.md: -------------------------------------------------------------------------------- 1 | ### 2019年10月20日-2019年10月27日 2 | - [x] 在learn-with-open-source中完成了第一次的pr提交和merge,根据庄老师的要求删除了一段英文版中不需要的段落 3 | - [x] 总结:熟悉了Git 的基本操作,练习了git add commit push log 等命令 4 | 5 | ### 2019年10月28日-2019年10月31日 6 | - [x] 1. 完成了Maven和Springboot的配置,在localhost中打印输出“hello world”。 7 | - [x] 总结:没有完成进阶任务,对Springboot和Maven了解太少,要学习的东西还很多。 8 | -------------------------------------------------------------------------------- /doc/HomeWork/OSScan/1900022718.md: -------------------------------------------------------------------------------- 1 | ### 2019年10月20日-2019年10月27日 2 | - [x] 参与了 Learn Coding with Open Source 项目 README 文档撰写 3 | [#43](https://github.com/zhuangbiaowei/learn-with-open-source/pull/43) 4 | 5 | - [x] 修复了 Learn Coding with Open Source 项目不能正确构建的 Bug 6 | [#106](https://github.com/zhuangbiaowei/learn-with-open-source/pull/106) 7 | 8 | - [x] 实现了 Learn Coding with Open Source 项目自动化构建功能 9 | [#44](https://github.com/zhuangbiaowei/learn-with-open-source/issues/44) 10 | [#93](https://github.com/zhuangbiaowei/learn-with-open-source/issues/93) 11 | [#106](https://github.com/zhuangbiaowei/learn-with-open-source/pull/106) 12 | [#121](https://github.com/zhuangbiaowei/learn-with-open-source/pull/121) 13 | [#129](https://github.com/zhuangbiaowei/learn-with-open-source/pull/129) 14 | 15 | - [x] 本周总结:通过实现项目的自动化构建加深了对 CI/CD 的了解,同时通过错误使用 git force 命令加深了对 git 操作规范的理解。 16 | 17 | ### 2019年10月28日-2019年10月31日 18 | - [x] 参与了技术攻坚组技术讨论 19 | 20 | - [x] 参与了开源组件健康扫描 DEMO 开发 21 | 22 | ### 2019年11月1日-2019年11月7日 23 | - [x] 参与技术组项目技术选型与分析 24 | 25 | ### 2019年11月8日-2019年11月14日 26 | - [x] 参与第三小组 User Story 编写 27 | 28 | - [x] 参与基于 Spring Cloud 的 Demo 开发 29 | -------------------------------------------------------------------------------- /doc/HomeWork/OSScan/1900022720.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | ##
实验班学习周报 2019.10.21_2019.10.27
4 | 5 | ###
刘刚建 1900022720
6 | 7 | 8 | 9 | 1. 学习markdown基本语法; 10 | 11 | 2. 在learn-with-open-source中提交了第一个PR,修正了`progit中文版`和`hginit.com中文版`过期链接:[点此查看详情](https://github.com/zhuangbiaowei/learn-with-open-source/pull/49) 12 | 13 | 总结:在这过程中学会了git的基本命令如:clone,add,commit,push,并且熟悉了PR提交的流程。 14 | 15 | ##
实验班学习周报 2019.10.27_2019.10.31
16 | 17 | 1. 搭建pyhton开发环境,熟悉基本语法,了解爬虫原理; 18 | 2. 学习mysql: 19 | - 安装与卸载 20 | - DDL,DML,DQL基本命令; 21 | - 三大范式; 22 | - 多表操作. 23 | 24 | ##
实验班学习周报 2019.11.01_2019.11.07
25 | 26 | 1. git代码管理方式和协作方式 27 | 2. Git基本操作:git权威指南 28 | - 远程仓库 29 | - 添加远程仓库 30 | - clone 31 | 32 | - 版本管理 33 | - 版本回退 34 | - 工作区与暂存区 35 | - 管理修改 36 | - 撤销修改 37 | - 删除文件 38 | - 分支管理 39 | - 创建与合并 40 | - 解决冲突 41 | - 分支管理策略 42 | - 多人协作 43 | 44 | -------------------------------------------------------------------------------- /doc/HomeWork/OSScan/1900022735.md: -------------------------------------------------------------------------------- 1 | 2 | center 实验班学习周报 3 | --- 4 | 开源组件健康扫描小组 1900022735 吴腾达 5 | 6 | --- 7 | 8 | >*2019.11.03 - 2019.11.07* 9 | 10 | 1、学习Spring boot 框架,学会连接数据库的方法。 11 | 12 | 2、参与课堂作业的完成,学习前端框架。 13 | 14 | 3、学习SkyWalking项目的基础知识点 15 | 16 | 17 | 18 | >*2019.11.01课堂报告* 19 | 20 | 班级学习 21 | 22 | 1、PR提交时候,注意标题表明的是修改的内容提要,应当简洁明了。 23 | 24 | 2、单词提交的PR修改内容不易过多。 25 | 26 | 3、保持邮箱能够及时收到消息。及时回复review. 27 | 28 | 4、注意LINUX和WINDOWS下的区别。 29 | 30 | 5、传输问题 31 | 32 | 小组报告 33 | 34 | 1、企业里面项目的流程 35 | 36 | 产品价值 业界情况 竞品分析 自身分析 方案(策略) 37 | 38 | 2、管理多种语言的WEB应用程序 39 | 40 | 3、敏捷需求管理 41 | 42 | 4、GIT代码管理 43 | 44 | 5、持续交付进行自动化构建 45 | 46 | 6、Azure Devops 47 | 48 | 技术 49 | 50 | 容器化、云化、微服务化(springcloud、代码模版)、概要方案设计 51 | 52 | --- 53 | 54 | >*2019.10.27-2019.11.02* 55 | 56 | 1、在上周基础上继续学习Spring boot 相关的知识。 57 | 58 | 2、将learn-open-source当中的2048项目fork到本地按照老师的操作方法学习。 59 | 60 | --- 61 | 62 | >*2019.10.21-2019.10.27* 63 | 64 | 1、学习编辑markdown文件编辑方法。 65 | 66 | 2、本周在自己创建测试文件的过程中学习了Github上生成SSH文件本地配置,CLONE项目到本地进行修改,本地修改请求PR等方法。 67 | 68 | 3、学习小组任务中Spring boot的配置。配置好了TOMCAT、Maven等可能需要用到的环境。 69 | 70 | 71 | 72 | 73 | 74 | -------------------------------------------------------------------------------- /doc/HomeWork/OSScan/1900022737.md: -------------------------------------------------------------------------------- 1 | # 1027 weekly from Yifeng 2 | 3 | ## 1. Settings for Multi ssh key pair 4 | 通过config文件设置了多个密钥映射 5 | ![Setting](https://raw.githubusercontent.com/hyf1223/Rainbow-Rocket/master/doc/img/0103configforMultiSSH.png) 6 | 7 | ## 2. submit PR 8 | * 通过web直接修改项目仓库(learn-with-open-source)中的文件。这里我修改了readme文件的标点符号:将错误的序号ii改为iii。随后手动创建PR。 9 | **状态:merged** 10 | 如下图所示: 11 | ![pr1](https://raw.githubusercontent.com/hyf1223/Rainbow-Rocket/master/doc/img/0101homeworkpr.png) 12 | 13 | * 通过终端输入git指令的方式修改了项目仓库(learn-with-open-source)中的文件(/zh/Useful-Websites-to-Learn-How-to-Code-Quickly.md),在其中添加了一个练习打字的网站。在img文件夹中上传了该网站的介绍图。 14 | **状态:merged** 15 | 如下图所示: 16 | ![pr2](https://raw.githubusercontent.com/hyf1223/Rainbow-Rocket/master/doc/img/0102homeworkpr.png) 17 | 18 | 19 | # 1031 weekly from Yifeng 20 | 21 | ## 1. Group of Product 22 | 对市面上的各类开源软件扫描软件以及漏洞扫描进行了调研,提出以下几个需求点: 23 | * 代码层面: 24 | * 依赖包扫描:版本、license、代码质量、活力(开源社区是否活跃); 25 | * 依赖包与主框架关系:是否被使用、版本是否合适、建议更新与更换; 26 | * 自动化测试; 27 | * 服务层面: 28 | * 安全提醒; 29 | * 漏洞发现; 30 | 31 | 相关参考文献: 32 | * 概述性质 33 | * 1. https://techbeacon.com/app-dev-testing/13-tools-checking-security-risk-open-source-dependencies 34 | * 2. https://docs.microsoft.com/en-us/learn/modules/scan-open-source/2-choose-a-scanning-tool 35 | * 3. 开源软件扫描一般问题: https://resources.whitesourcesoftware.com/blog-whitesource/still-using-a-scanner-to-identify-your-open-source-it-s-2017-you-can-do-much-better 36 | * 现有的相似工具: 37 | * 1. https://www.owasp.org/index.php/Free_for_Open_Source_Application_Security_Tools 38 | * 2. safety组件:https://github.com/pyupio/safety 39 | * 3. npm:https://docs.npmjs.com/about-npm/ 40 | * 4. SYNOPSYS:https://scan.coverity.com/ 41 | * 5. 最相似的软件fossid:https://fossid.com/open-source-audits/ 42 | 43 | ## 2. Group of Technical 44 | 45 | * 搭建了Springboot项目,并且在控制台输出Helloworld; 46 | * 练习了Springboot的各种注解。 47 | 48 | -------------------------------------------------------------------------------- /doc/HomeWork/OSScan/1900022773.md: -------------------------------------------------------------------------------- 1 | # **刘雪瑶1900022773** 2 | 3 | ## 2019.10.21-10.27 4 | 5 | - 在learn-with-open-source中提交了第一个PR,修改了zh/Hello-world.md中的一处语法错误,“出于...的原因。”提交地址为 https://github.com/zhuangbiaowei/learn-with-open-source/pull/181,最后被merge了,PR也随之关闭。 6 | - 本周总结:熟悉了提交PR的一些具体操作和Git的相关命令,如commit ,remote,push等等。 7 | 8 | 9 | ## 2019.10.27-10.31 10 | 11 | - 熟悉了一下Springboot框架,配置了开发环境,利用Intellidea professional进行了第一次尝试。 12 | 13 | - 阅读了一下Springboot的文档,进一步增加了对Springboot的了解。 14 | 15 | - 尝试了用Springboot写了一个helloworld的demo,打印了学号和姓名。一开始想在localhost:8080显示页面,发现8080端口被占用,于是将端口号改为8899,并在localhost:8899上面看到了一个有helloworld和学号的页面。 16 | 17 | 18 | ## 2019.11.1-11.7 19 | 20 | - 尝试配置了skywalking的collector 21 | - 安装docker,学习docker使用 22 | -------------------------------------------------------------------------------- /doc/HomeWork/OSScan/1900022784.md: -------------------------------------------------------------------------------- 1 | # 黄佳威1900022784 2 | 3 | ### 2019.10.21-2019.10.27 4 | 5 | 6 | 7 | ### 1.在devui仓库中提交了两个pr并且被merge 8 | 9 | * 重新排版了README.md文件,加了github徽章,并且增加了中文版本,pr地址为:https://github.com/DevCloudFE/ng-devui/pull/5[Merged] 10 | * 增加贡献指南英文版本文档,pr地址为:https://github.com/DevCloudFE/ng-devui/pull/6[Merged] 11 | 12 | ### 2.成为devui的collaborator 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | ### 2019.10.28-2019.10.31 23 | 24 | 25 | 26 | ### 1.作为组长和其他组长和技术组员一起完成了项目的初步架构,完成了项目组内的分工还有作业的分发 27 | 28 | ### 2.完成了开源组件健康扫描的demo 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | ### 2019.11.01-2019.11.07 39 | 40 | 41 | 42 | ### 1.作为组长与组员协调分组,并加入产品组一起完成需求分析与文档,主要负责调查业界竞品 43 | 44 | ### 2.学习了springboot,完成了一个用户登录注册简单页面 45 | 46 | ### 3.了解SkyWalking -------------------------------------------------------------------------------- /doc/HomeWork/OSScan/1900022785.md: -------------------------------------------------------------------------------- 1 | ### 2019.11.07 2 | 1.敏捷宣言及十二原则; 3 | 2.敏捷VS瀑布模式的不同; 4 | 3.Scrum敏捷实践框架; 5 | 总结:学习了最主流的敏捷开发框架,对企业开发流程有了一定的了解 6 | 7 | 8 | 9 | 10 | 11 | 12 | ### 2019.10.28-2019.10.31 13 | 1.使用springboot打印了 hello world 14 | 2.使用 Springboot打印了html页面 15 | 3.使用Spring-data-jpa和Hibernate实现了和mysql交互 16 | 总结:本周对springboot,idea和maven有了一些了解对框架开发有了一定的概念 17 | 18 | 19 | 20 | 21 | 22 | ### 2019.10.21-2019.10.27 23 | 1.网上寻找到了一个图书馆管理系统 24 | 2.为了将系统跑起来,将JDK1.7换成了JDK1.8,更换了eclipse版本 25 | 3.为了将系统跑起来 学习了java JDBC的语法,设计创建了数据库及图表 26 | 4.将系统跑了起来,并修改了一部分 bug 27 | 5.学习了git 命令,利用同学的账号多次尝试 git命令操作 28 | 6.在learn-with-open-source项目中提交了一个PR,修改了第一章的一句话,PR地址为:【Merged】 29 | 总结:本周熟悉了提交PR的过程,掌握了Git基本命令的使用,学习了一些知识。 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /doc/HomeWork/OSScan/1900022791.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | 2019年10月20日 - 2019年10月27日 : 4 | 5 | 在learn-with-open-source项目中提交了一个PR,修改了章节#修改一个开源项目#中的一个标点符号,PR地址是https://github.com/zhuangbiaowei/learn-with-open-source/pull/172 6 | 7 | 总结:比较完整地走了一遍提交PR的流程,对基本操作和命令有了了解;不小心把自己本地的文件带到PR中去了,不知道操作失误于何处. 8 | 9 | -------------------------------------------------------------------------------- /doc/HomeWork/OSScan/1900022803.md: -------------------------------------------------------------------------------- 1 | ## 张兵_1900022803 2 | 3 | ### 2019.10.21——2019.10.27 4 | 5 | - 在learn-with-open-source中提交了第一个PR,修改了Hello world.md文件里连接词和标点符号的使用问题。PR地址为:https://github.com/zhuangbiaowei/learn-with-open-source/pull/197 [Merged]. 6 | - 总结:本周通过初次使用git,从安装到使用,学会了git一些基本词的含义和在终端上操作使用git命令,并掌握了向git中提交PR的方法,同时对开源项目的合作和学习方法有了更深认识 7 | 8 | ### 2019.11.1——2019.11.7 9 | 10 | 从devUI组换到开源项目健康扫描组 11 | 12 | - 加入到新的小组,学习新项目的基本知识和内容,包括初步了解整体的小组计划安排,框架结构,版本优选,License和漏洞检测与修复方面 13 | - 学习了解了一些微服务框架的知识,下载安装了之后技术要用到的docker软件/容器平台,初步熟悉了docker的一些基本命令,包括部署pull项目到docker上,创建/删除镜像和容器,以及一些对容器的基本操作 14 | - 学习使用Spring boot,初步使用Spring boot完成Hello world项目,了解Spring boot基本框架结构 15 | - 总结:本周其他任务偏多,学习进度较慢,下周加油抓紧时间,努力快速跟上小组项目进度 16 | -------------------------------------------------------------------------------- /doc/HomeWork/OSScan/1900022824.md: -------------------------------------------------------------------------------- 1 | ### 2019年10月20日-2019年10月27日 2 | 3 | 1、在learn-with-open-source项目中提交了一个PR,修改了[zh/Hello-world.md](https://github.com/zhuangbiaowei/learn-with-open-source/pull/189/files#diff-81ec760683fd5d83f1468339d5b257ec)章节的错别字,PR地址为: 【Merged】 4 | 5 | 总结:本周熟悉了提交PR的过程,掌握了Git基本命令的使用 6 | 7 | 8 | -------------------------------------------------------------------------------- /doc/HomeWork/OSScan/1900022842.md: -------------------------------------------------------------------------------- 1 | ## 2019年11月8日-2019年11月14日 2 | - 在开源组件健康扫描项目中,作为第二组成员,与其他成员讨论了User Story的具体划分,并且针对License合规部分的需求编写了User Story,参与审核了小组的所有User Story。 3 | 4 | 5 | ## 2019年11月1日-2019年11月7日 6 | 1. 在开源组件健康扫描项目中,作为产品组成员,分析产品需求,编写了需求文档的功能模块中的版本优选与license合规两个部分。 7 | 2. 安装了notable这个markdown工具,利用markdown写了这周的学习报告,熟悉了相关语法。 8 | 3. 对SkyWalking项目进行研究,整理了它的基本业务流程,并且上交了学习报告。 9 | 10 | ## 2019年10月24日-2019年10月31日 11 | 1. 下载并安装了InteliJ IDEA,配置了本地的java环境; 12 | 2. 配置了本地的maven和spring boot; 13 | 3. 建立了一个小型的spring boot 应用,输出了helloworld与我的学号。 14 | 总结:本周配置了小组项目接下来所需要的环境,并且建立了一些基本的练习项目。 15 | 16 | ## 2019年10月20日-2019年10月27日 17 | - 在learn-with-open-source项目中提交了一个PR,修改了Select-an-open-source-project章节的标点符号,PR地址为:https://github.com/zhuangbiaowei/learn-with-open-source/pull/131 【Merged】 18 | - 总结:本周熟悉了提交PR的过程,掌握了Git基本命令的使用 19 | -------------------------------------------------------------------------------- /doc/HomeWork/OSScan/1900022843.md: -------------------------------------------------------------------------------- 1 | 2019年10月20日-2019年10月27日 2 | 工作列表: 3 | 在learn-with-open-source项目中提交了一个PR,修改了zh/Before-start.md的语法错误 4 | PR地址为:https://github.com/zhuangbiaowei/learn-with-open-source/pull/192 5 | 本周总结: 6 | 本周熟悉了github的基本操作,能够使用git修改文档并提交PR。 7 | 8 | 2019年10月28日-2019年10月31日 9 | 10 | 工作列表: 11 | 12 | 使用spring boot打印HelloWord 13 | 输出结果截图:![](https://i.loli.net/2019/10/31/mV8Q7bn1O2KR9G6.png) 14 | 15 | 16 | 本周总结: 17 | 18 | 本周熟悉了spring boot,并能够进行一些简单的操作。 19 | -------------------------------------------------------------------------------- /doc/HomeWork/OSScan/1900022844.md: -------------------------------------------------------------------------------- 1 | # 10/20/2019-10/27/2019 2 | 1. 在learn-with-open-source项目中提交了一个PR,修改了learn-with-open-source/zh/Hello-world中一个失效链接,PR地址为 3 | https://github.com/zhuangbiaowei/learn-with-open-source/commit/3792dc99de34167333a81ee18c32e38662f1feb6. 4 | 2. 学习了Git基本操作,动手实现了GitHub上远程仓库fork至本地,修改文件内容并且上传至GitHub个人仓库,再PR。同时学习了 5 | Git其他比如解决分支冲突等基本操作。 6 | 总结:本周熟悉了提交PR过程,掌握了Git基本命令的使用。 7 | # 10/28/2019-10/31/2019 8 | 1. 完成用springboot打印出HelloWorld+1900022844,熟悉springboot一些基本操作。 9 | 2. 继续学习Git操作。 10 | # 11/1/2019-11/7/2019 11 | 1. Scrum-短迭代 12 | 2. Scrum-Stroy描述方法,拆分原则,验收方式 13 | 3. Scrum-每日站会做法 14 | 4. 做好以上任务,并在周五组会向全体组员进行输出 15 | -------------------------------------------------------------------------------- /doc/HomeWork/OSScan/1900022850.md: -------------------------------------------------------------------------------- 1 | # 姓名:赵前 学号:1900022850 2 | # 2019年10月21~2019年10月27日 3 | 4 | ## (1)完成项目初步设想架构 5 | 6 | ​ 在和技术组同学以及队长的讨论下完成了项目的初步架构 7 | 8 | ## (2)项目整体向队友的展示 9 | 10 | ​ 10月25日向队友展示,讨论项目的架构 11 | 12 | ## (3)springboot在idea上完成HelloWorldyueyue 13 | 14 | # 2019年10月27日~2019年10月31日 15 | ## (1)demo 16 | 17 |         与同学一起商讨demo演示 18 | 19 | ## (2) jenkins 20 | 21 |         运行一个简单的jenkins脚本 22 | 23 | ## (3)工作总结 24 | 25 |         由于本周任务较轻,暂时没参加更多的任务。 26 | -------------------------------------------------------------------------------- /doc/HomeWork/OSScan/1901210279.md: -------------------------------------------------------------------------------- 1 | # 1901210279 雷玉泉 2 | 3 | ## 2019.11.8-2019.11.14 4 | 5 | 本周工作如下: 6 | 7 | 1. 学习了Maven项目构建工具; 8 | 9 | 2. 完成了小组内部user story的编写; 10 | 11 | 3. 继续学习springboot; 12 | 13 | 总结: 要加快提升技术水平,后面就要进入开发阶段了,争取不拖后腿。 14 | 15 | 16 | ## 2019.11.1-2019.11.7 17 | 18 | 本周工作如下: 19 | 20 | 1. 在learn-with-opensource下提交了修改上次文件格式的PR; 21 | 22 | 2、OSScan项目,完成了有关scrum回顾会议以及成员职责有关内容的整理。 23 | 24 | 总结:各门课程压力逐渐上来,要开始紧张了。 25 | 26 | 27 | # 1901210279 雷玉泉 28 | 29 | ## 2019.10.28-2019.10.31 30 | 31 | 本周工作如下: 32 | 33 | 1、 完成了小组基本任务spring boot打印学号,进阶任务Mybatis还没完成; 34 | 35 | 2、 在HelloWorld项目下算法模块中提交了关于两个链表合并的pr; 36 | 37 | 总结: springboot 很不熟悉,要尽快入门,同时做任务效率太慢,码代码的速度要提高! 38 | 39 | 40 | ## 2019.10.21-2019.10.27 41 | 42 | 本周工作如下: 43 | 44 | 1、在learn-with-open-source项目中翻译了start.md中的第一部分,并提交pr; 45 | 46 | 2、学习 springboot 相关配置,以期完成小组任务; 47 | 48 | 总结:进一步熟悉了相关的pr操作,以及新建文件操作; 同时开始入门spring boot; 49 | 50 | 同时,周日上午在目录下新建文件,编辑完内容之后,忘记了提交pr直接就走了。以后不能再犯这样的低级失误了。 51 | 52 | 53 | 54 | 55 | 56 | 57 | -------------------------------------------------------------------------------- /doc/HomeWork/OSScan/1901210351.md: -------------------------------------------------------------------------------- 1 | ## 2019年11月8日-2019年11月14日 2 | 3 | - [x] 搭建了spring cloud环境。 4 | - [x] 针对所负责的模块写了几个story。 5 | - [x] 本周总结:完成了对项目的前期分析和准备工作。 6 | 7 | ## 2019年11月1日-2019年11月7日 8 | 9 | - [x] 阅读了skywalking的文档,在自己的电脑上安装了skywalking。 10 | - [x] 阅读了maven的相关资料。 11 | - [x] 本周总结:通过文档对要进行的项目的相关知识进行了初步的了解。 12 | 13 | ## 2019年10月28日-2019年10月31日 14 | 15 | - [x] 熟悉了SpringBoot的使用,使用 SpringBoot搭建了HelloWorld项目 。 16 | - [x] git配置多账户。 17 | - [x] 本周总结:主要是学习了框架的使用。 18 | 19 | ## 2019年10月21日-2019年10月27日 20 | 21 | - [x] 在learn-with-open-source项目中提交了两个PR,修改了Modify-the-open-source-project.md和Start.md文件中的错别字,PR地址分别为:https://github.com/zhuangbiaowei/learn-with-open-source/pull/52 和 https://github.com/zhuangbiaowei/learn-with-open-source/pull/64 【Merged】 22 | - [x] 本周总结:本周熟悉了提交PR的过程,掌握了Git基本命令的使用。 23 | 24 | 25 | -------------------------------------------------------------------------------- /doc/HomeWork/OSScan/1901210362.md: -------------------------------------------------------------------------------- 1 | 2 | # 第一周周报_开源组件健康扫描小组_1901210362_程智雅 3 | * 1、在learn-with-open-source项目中提交了一个PR,修改了en/Before-start章节的英语语法错误和标题格式的问题,PR地址为:https://github.com/zhuangbiaowei/learn-with-open-source/pull/177 【Merged】 4 | * 2、成为了learn-with-open-source项目的committer,负责英语部分的review和approve 5 | * 3、在OS-ABC/HelloWorld项目中,撰写了“提交作业”文档,链接地址:https://github.com/OS-ABC/HelloWorld/blob/master/doc/Homework/1901210362.md 6 | 7 | 8 | 9 | # 第二周周报_开源组件健康扫描小组_1901210362_程智雅 10 | * 1.作业(后端)—— 利用Springboot 打印出helloWorld +学号 11 | (1).创建项目 12 | (2).写Controller 13 | ![Image text](https://github.com/change970401/learngit/blob/master/img/图片1.png) 14 | (3).写SpringbootApplication 15 | ![Image text](https://github.com/change970401/learngit/blob/master/img/图片2.png) 16 | (4).运行结果 17 | ![Image text](https://github.com/change970401/learngit/blob/master/img/图片3.png) 18 | ![Image text](https://github.com/change970401/learngit/blob/master/img/图片4.png) 19 | 20 | * 2.demo实现:暂定扫描Maven文件,扫描pom.xml中的dependency。 21 | 学习SpringBoot里的pom.xml文件 22 | 23 | pom.xml:Maven构建说明文件 24 | ![Image text](https://github.com/change970401/learngit/blob/master/img/5.png) 25 | 其中,... spring-boot-starter-parent是一个特殊的 starter ,它用来提供相关的 Maven 默认依赖,使用它之后,常用的包依赖就可以省去 version 标签。 26 | 关于具体 Spring Boot 提供了哪些 jar 包的依赖,我们可以查看本地 Maven 仓库下:\repository\org\springframework\boot\spring-boot-dependencies\2.0.1.RELEASE\spring-boot-dependencies-2.0.1.RELEASE.pom 文件来查看,打开文件可以看到很多1.18.4这样的<包名.version>版本号。 27 | 28 | 29 | # 第三周周报_开源组件健康扫描小组_1901210362_程智雅 30 | * 1.完成了微服务框架和数据库选型分析; 31 | * 2.学习了Skywalking开源项目。 32 | -------------------------------------------------------------------------------- /doc/HomeWork/OSScan/1901210405.md: -------------------------------------------------------------------------------- 1 | ### 1901210405-黄乐一捷-个人周报 2 | 3 | ### 2019年10月29日-2019年11月7日 4 | 5 | - [x] 完成了产品文档材料的编写。 6 | - [x] 学习了SkyWalking的一些基本原理并完成了安装。 7 | 8 | 总结:本周的主要任务是经过几次开会完成了关于产品的各种讨论与分析并完成了文档的编写,其次是学习了SkyWalking项目的一些基本原理,并完成了基础的安装。 9 | 10 | ### 2019年10月28日-2019年10月31日 11 | 12 | - [x] 完成了采用springboot并输出hello world的任务。 13 | - [x] 协助完成了第一次demo,并组织了技术组会议对项目进行了进一步讨论。 14 | 15 | 总结:本周对于springboot的基础进行了学习。组长与技术组一同完成了第一次的demo,并且对于项目接下来的一些问题和想法进行了汇总,准备周五与老师进行深度的交流。 16 | 17 | ### 2019年10月20日-2019年10月27日 18 | 19 | - [x] 在learn-with-open-source项目中提交了一个PR,修改了Start.md中的一些错别字和语病,PR地址为:https://github.com/zhuangbiaowei/learn-with-open-source/pull/75 【Merged】 20 | - [x] 组织并完成了对于开源组件健康扫描项目的前期架构和技术栈的分析 21 | 22 | 总结:本周熟悉了git的一些相关操作,对于pr操作进行了深入学习,并且对于开源组件健康扫描项目也进行了一个基本的分析与架构。 23 | 24 | -------------------------------------------------------------------------------- /doc/HomeWork/OSScan/1901210410.md: -------------------------------------------------------------------------------- 1 | # 开源周报 2 | ## **2019-10-21~2019-10-27** 3 | 1.向庄表伟老师开源项目提交了一次PR,地址为 (https://github.com/zhuangbiaowei/learn-with-open-source/pull/85) 4 | 5 | 2.实际开始使用Github,将自己的作业和项目提交到了github,并且实时更新。 6 | 7 | ## **2019-10-28~2019-10-31** 8 | 1.与小组成员一起完成了demo,读取了包的版本号,爬下了最新版本号和热度最高版号。 9 | 10 | 2.首次接触java爬虫,demo上用上了此技术。 11 | 12 | ## **2019-11-01~2019-11-07** 13 | 1.分析了docker,微服务框架,并整合为markdown笔记。 14 | 15 | 2.着手开发个人博客系统。 16 | 17 | ## **2019-11-07~2019-11-14** 18 | 1.撰写了开源组件下载部分的用户故事 19 | 20 | 2.继续开发个人博客系统。 -------------------------------------------------------------------------------- /doc/HomeWork/OSScan/1901210420.md: -------------------------------------------------------------------------------- 1 | 周报_OSScan_20191108-20191114 2 | 3 | 1. 参与用户故事的编写 4 | 2. 使用墨刀完成了应用程序的原型开发 5 | 3. 尝试开发一个微信小程序,但获取数据的bug还未修复 6 | 4. 做了CTF 比赛的题目, 7 | 5. 本周总结:最开始使用Trello安排工作流,但之后没有坚持,一周的事情安排失去优先级后显得很混乱,还是要坚持按照优先级做事; 本周对于开源的学习较少,从现在起务必改进 8 | 9 | --- 10 | 11 | 周报_OSScan_20191101-20191107 12 | 13 | 1. 参与开源组件健康组件需求文档的撰写 14 | 2. linux 关于DAC命令的介绍文档 15 | 16 | 本周总结: 17 | 自己事情的安排没有及时安排好,下周应当更有计划性。 18 | 19 | --- 20 | 21 | 周报_OSScan_20191025-20191031 22 | 23 | 1. 开源组件的健康扫描,市场调研,产品功能设计 24 | 2. Algorithm 模块的文档添加 25 | 3. 使用git bash更新本地仓库的方法 -------------------------------------------------------------------------------- /doc/HomeWork/OSScan/1901210431.md: -------------------------------------------------------------------------------- 1 | # 10.21-10.27 实验班周报 2 | 3 | ## 李云健 1901210431 开源组件健康扫描组 4 | 5 | ### 本周学习内容小结: 6 | 7 | 1. Markdown语言的常用语法和Typora的使用 8 | 2. Git常用命令的使用 9 | 3. GitHub上的相关概念,比如pull request、branch、merge等 10 | 4. 人工神经网络中的四种优化方法:带动量的随机梯度下降、不带动量的随机梯度下降、Adam算法、Adagrad算法 11 | 5. C语言中函数指针的用法学习 12 | 13 | ### 本周做了什么: 14 | 15 | 1. 使用Markdown语言和Typora编辑器完成了本次文档编辑 16 | 2. 即将使用git将这份周报从本地仓库提交到GitHub仓库中 17 | 3. 在庄表伟老师的项目learn-with-open-source中完成了一次pull request 18 | 4. 将上述的四种优化方法分别使用tensorflow和python搭建出来,替换掉自己神经网络中原有的普通梯度下降优化器,绘制随着训练轮数的增加损失函数值和模型准确率的变化曲线,对四种方法分别搭配不同的激活函数进行横向对比 19 | 5. 使用纯C语言模拟实现了C++或者Java等面向对象语言中的类、对象、封装、继承、多态等特性 20 | 6. 参加实验班小组学习,初步确定了项目的框架和技术栈 21 | 7. 对知识图谱领域展开调研,明白了知识图谱的基本概念和应用,以及其和自然语言处理相关的联系 -------------------------------------------------------------------------------- /doc/HomeWork/OSScan/1901210484.md: -------------------------------------------------------------------------------- 1 | # 任晶1901210484 2 | ## 2019.10.27-11.03 3 | 搭建了SpringBoot,完成了HelloWorld项目; 4 | 使用SpringBoot与Mybatis框架实现对MySQL的基本操作。 5 | ## 2019.10.21-10.27 6 | 在learn-with-open-source中提交了第一个PR,修改了
**Modify-the-open-source-project.md**文件中的一处语病。PR地址为:[https://github.com/zhuangbiaowei/learn-with-open-source/pull/167[Merged]](https://github.com/zhuangbiaowei/learn-with-open-source/pull/45%5BMerged%5D)
总结:
我在github上fork了仓库,使用git操作clone到了本地,在本地进行了修改,使用git的add、commit命令上传到本地仓库,再通过git的push命令上传到自己的github远程仓库,也就是实现了一次更新。然后创建并发起pull request,最终经作者审核后merge到了主分支。 7 | -------------------------------------------------------------------------------- /doc/HomeWork/OSScan/1901210486.md: -------------------------------------------------------------------------------- 1 | 10.20-10.27周报 2 | 3 | 1.在learn-with-open-source项目中提交了一个PR,修改了Useful-Websites-to-Learn-How-to-Code-Quickly章节中的一些表述不准确的地方,PR地址为https://github.com/zhuangbiaowei/learn-with-open-source/pull/71 4 | 5 | 2.本周熟悉了提交PR的过程,掌握了Git基本命令的使用 6 | 7 | 3.调研现有的代码扫描产品,思考需求功能点及技术点 8 | 9 | 4.与产品组成员讨论需求功能点,画出需求功能模块图 10 | 11 | 5.下周计划:与技术组统一确定功能点,设计数据库 12 | 13 | 14 | 10.28-11.7周报 15 | 16 | 1.与产品组成员完成需求部分修改,编写需求描述文档 17 | 18 | 2.重新画了一幅业务功能模块图 19 | 20 | 3.学习skywalking原理与使用方法 21 | 22 | 4.下周计划:与成员对全组进行产品部分宣讲,与技术组对接形成技术方案,学习axure -------------------------------------------------------------------------------- /doc/HomeWork/OSScan/1901210498.md: -------------------------------------------------------------------------------- 1 | 第一周周报 2 | 学习如何使用GitHub,如何提交pr。 3 | 修改了Start.md文件,在其中添加了一个句号。 4 | 第二周周报 5 | 学习了springboot并尝试打印出自己的学号姓名。 6 | 掌握当fork源更新时,如何更新到自己的项目下。 7 | 8 | -------------------------------------------------------------------------------- /doc/HomeWork/OSScan/1901210502.md: -------------------------------------------------------------------------------- 1 | 2019年10月20日-2019年10月27日 2 | 1.在learn-with-open-source项目中提交了一个PR,修改了Start.md的错别标点,PR地址为: https://github.com/zhuangbiaowei/learn-with-open-source/pull/134【Merged】 3 | 4 | 2.学习完python基础语法部分学习 5 | 6 | 3.将SpringBoot跑了起来 7 | 8 | 总结:本周熟悉了提交PR的过程,掌握了Git基本命令的使用,学习了python基础语法,SpringBoot跑了起来 9 | -------------------------------------------------------------------------------- /doc/HomeWork/OSScan/1901210514.md: -------------------------------------------------------------------------------- 1 | ## 2019.11.1-2019.11.7 2 | 1. 技术概述对比微服务框架和前端框架 3 | 4 | ## 2019.10.27-2019.11.1 5 | 1. 参与demo制作 6 | 2. 编写爬虫 7 | ## 2019.10.21-2019.10.27 8 | 1. 在learn-with-open-source项目中提交了一个PR,修改了一个错别字。PR地址为:https://github.com/zhuangbiaowei/learn-with-open-source/pull/96 9 | 2. 在自己的github项目中创建了每日总结仓库,用于提交每日总结。 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /doc/HomeWork/OSScan/1901210518.md: -------------------------------------------------------------------------------- 1 | # 1901210518 王泽昱 个人周报 2 | ## 2019年11月1日-11月7日 3 | * 完成了本周小组分配的个人任务:学会使用Azure pipelines搭建开源项目的自动构建、部署和交付流水线,制作ppt,周五给小组成员讲这部分内容 4 | * 按照张老师的要求学习了SkyWalking的基本原理和安装步骤 5 | ## 2019年10月28日-10月31日 6 | * 重装了IntelliJ IDEA企业版,新建了一个springboot项目,配置好了包和库,新建一个了HelloController,成功打印出HelloWorld + 学号 7 | * 本周总结:按照项目小组的要求完成了小组作业,学习了springboot的快速搭建 8 | ## 2019年10月20日-10月27日 9 | * 给庄表伟老师的开源项目提交了一个pr并被merge 10 | * 本周总结:在实验班的驱动下学会了git的基本操作并成功提交了pr。周五晚的项目讨论也让我对项目的框架和需要学习的技术有了初步的认识,接下来的一周会开始学习这些技术。 -------------------------------------------------------------------------------- /doc/HomeWork/OSScan/1901210584.md: -------------------------------------------------------------------------------- 1 | ## Week07周总结报告_2019.10.20.-2019.10.27. 2 | 3 | ### 完成工作 4 | 1. 在learn-with-open-source项目中提交了一个PR,修改了README.md中的拼写错误【Merged】,[PR链接地址](https://github.com/zhuangbiaowei/learn-with-open-source/pull/74) 。 5 | 6 | 7 | ### 总结 8 | 本周掌握了git的clone, commit, checkout等操作方法,掌握了提交PR的基本流程,并提交了自己的第一个PR。 9 | 10 | -------------------------------------------------------------------------------- /doc/HomeWork/OSScan/1901210607.md: -------------------------------------------------------------------------------- 1 | # 2019/11/08 - 2019/11/14 2 | 3 | ## Task list 4 | 5 | - Write the story of private package management. 6 | 7 | - Deploy the Spring cloud and start to learn it. 8 | 9 | ## Summary 10 | 11 | Have a basic understanding about scrum agile development. Have a preliminary overview about Spring cloud. 12 | 13 | 14 | # 2019/11/04 - 2019/11/07 15 | 16 | ## Task list 17 | 18 | - Take part in the technology selection of micro services framework and container. 19 | 20 | - Deploy the Skywalking project and start to learn it. 21 | 22 | ## Summary 23 | 24 | Have a basic understanding about micro service and technologies on it. Have a preliminary overview about Skywalking. 25 | 26 | 27 | # 2019/10/28 - 2019/11/03 28 | 29 | ## Task list 30 | 31 | - Complete a submodule demo of this OSScan project, which is to find jar package information about version and popularity in the given pom.xml file. 32 | 33 | - Complete a "hello world" Java Web project using Spring Boot as a back end framework. 34 | 35 | ## Summary 36 | 37 | Have a basic understanding about Spring Boot. It did simplify the building and development of a spring project in compared with SSM framework that I used before. On the other hand, I have a deeper understanding about Maven that it has many APIs about the dependencies information. 38 | 39 | 40 | # 2019/10/21 - 2019/10/27 41 | 42 | ## Task list 43 | 44 | - Submit a Pull Request to the learn-with-open-source project relating to update some expired URLs. 45 |
*PR URL: https://github.com/zhuangbiaowei/learn-with-open-source/pull/84* 46 | 47 | - Raise an Issue relating to how to fix some expired URLs with content lost. 48 |
*Issue URL: https://github.com/zhuangbiaowei/learn-with-open-source/issues/98* 49 | 50 | - Have some Reviews on other's pull requests relating to some translation errors 51 |
*Review URL: https://github.com/zhuangbiaowei/learn-with-open-source/pull/113* 52 | 53 | ## Summary 54 | 55 | Have a deeper understanding about the use of git. Know well on operations on Github such as pull request, issue and review. 56 | -------------------------------------------------------------------------------- /doc/HomeWork/OSScan/1901210650.md: -------------------------------------------------------------------------------- 1 | ### 周报 20191108-20191114 2 | 完成了开源组件健康扫描的组件管理和下载模块的story; 3 | 总结:本周主要了解了敏捷开发模式和story的概念。 4 | 5 | ### 周报 20191101-20191107 6 | 对比了七大关系型数据库的优缺点,针对项目特点选定最为合适的数据库MySQL; 7 | 根据各模块之间即独立又协作,选定容器化工具docker; 8 | 总结:本周根据技术组的方向,通过比对选型开发工具。 9 | 10 | ### 周报 20191024-20191031 11 | 下载并安装了InteliJ IDEA,成功创建maven工程和普通java工程; 12 | 用java实现了找到一个工程目录中的所有pom.xml文件并输出当中的版本信息; 13 | 和技术组的其他同学讨论总结项目进程和方向。 14 | 总结:本周熟悉了IDEA开发环境和maven中央仓库,按照现有思路写demo。 15 | 16 | ### 周报 20191021-20191027 17 | 在learn-with-open-source项目中提交了一个PR,修改了zh/Before-start.md、zh/Start.md文档中的个别错别字和意思重复的地方,[PR地址](https://github.com/zhuangbiaowei/learn-with-open-source/pull/155【Merged】) 18 | 在OS-ABC/HelloWorld项目中创建了自己的周报文档,[链接地址](https://github.com/OS-ABC/HelloWorld/blob/master/doc/HomeWork/OSScan/1901210650.md) 19 | 总结:本周熟悉了git的基本指令和提交PR的过程。 20 | -------------------------------------------------------------------------------- /doc/HomeWork/OSScan/1901210694.md: -------------------------------------------------------------------------------- 1 | # 2019年10月20日-2019年11月3日 2 | SpringBoot建立HelloWorld项目 3 | Mybatis对MySQL进行操作 4 | 本周总结:入门SpringBoot 5 | 6 | 7 | # 2019年10月20日-2019年10月27日 8 | 9 | 在learn-with-open-source项目提交了一个pr并被合并,更改了zh\Understanding-the-source-code.md里面的标点。[pr地址](https://github.com/zhuangbiaowei/learn-with-open-source/pull/111) 10 | 11 | 本周总结: 学习了在github上fork项目,使用git的一些基本命令克隆、修改并推送项目到github,提交pull request。 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /doc/HomeWork/OSScan/1901210724.md: -------------------------------------------------------------------------------- 1 | # 李庆1901210724 2 | 3 | ## 2019.10.21-2019.10.27 4 | 1.下载配置了Git仓库,并且在github上使用北大邮箱注册了一个账户;
 在自己的仓库下创建了第一个仓库,在网上实现了创建分支和合并分支。
2.通过fork庄老师的learn-with-open仓库,然后clone到本地,在本地修改了其中的一些语病和
 语法错误后,push到远程仓库,然后提交了PR,已经被Merge了:
[https://github.com/zhuangbiaowei/learn-with-open-source/pull/142](https://github.com/zhuangbiaowei/learn-with-open-source/pull/142)
   本周的主要收获是学会了github和Git的简单操作。 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /doc/HomeWork/OSScan/1901210736.md: -------------------------------------------------------------------------------- 1 | ## 10.27 - 11.03 2 | ------ 3 | 4 | - SpringBoot快速搭建HelloWorld项目 5 | 6 | - SpringBoot+Mybatis对MySQL增删改查 7 | 8 | - 总结:大致了解了SpringBoot的工作流程 9 | 10 | 11 | 12 | 13 | ## 10.20 - 10.27 14 | ------ 15 | 16 | - 在[learn-with-open-source](https://github.com/zhuangbiaowei/learn-with-open-source)项目中提交了一个[PR](https://github.com/zhuangbiaowei/learn-with-open-source/pull/35),修改了[zh/Start.md](https://github.com/zhuangbiaowei/learn-with-open-source/blob/master/zh/Start.md)文件中的错别字。 17 | 18 | - 总结:熟悉了提交PR的过程,掌握了Git基本命令的使用。 19 | -------------------------------------------------------------------------------- /doc/HomeWork/OSScan/1901210742.md: -------------------------------------------------------------------------------- 1 | **第一周周报(10.21-10.27)**
2 | 1、提交了第一次PR,在learn-with-open-source项目中。具体是在修改了Before-start章节的错别字,PR地址为:https://github.com/zhuangbiaowei/learn-with-open-source/pull/30【Merged】 3 | 4 | **总结:**本周熟悉了提交PR的过程,温习并掌握了Git基本命令的使用。 5 | 6 | **第二周周报(10.28-10.31)**
7 | 8 | 1、仔细调研了开源组件扫描方面的需求分析,主要参考如下链接: 9 | 10 | [ Black Duck ](https://www.synopsys.com/zh-cn/software-integrity/security-testing/software-composition-analysis.html )、[GitHub](About security alerts for vulnerable dependencies)、[开源的漏洞扫描工具](https://www.cnblogs.com/mouseleo/p/8579128.html) 11 | 12 | 2、需求分析小组进行了讨论,统筹出如下需求点( 任兆希整理): 13 | 14 | (1) 代码质量:复杂度、注释率etc 15 | 16 | (2) 框架结构:第三方jar包版本及更新提示、包与包直接的依赖关系、许可证合规性审计、知识产权管理报告 17 | 18 | (3) 代码漏洞:SQL注入、缓冲区溢出、用户越权操作等 19 | 20 | **第三周周报(11.1-11.7)**
21 | 22 | 1、了解和学习了[Docker和Kubernetes](https://my.oschina.net/jamesview/blog/2994112) 23 | 24 | 2、SkyWalking的概念和模块组成 25 | 26 | 3、Linux基本命令的学习
27 | 28 | **第四周周报(11.8-11.14)**
29 | 30 | 1、了解到Scrum这一种用于开发、交付he持续支持复杂产品的框架 31 | 32 | 2、对敏捷开发和用户Story有了一定认识,并写了一个Story:“我作为一个开发人员,需要知道我所下载构件的具体信息” 33 | 34 | 3、了解了一部分关于maven这一跨平台的项目管理工具的概念,如坐标和依赖、仓库以及使用Nexus创建私服 35 | -------------------------------------------------------------------------------- /doc/HomeWork/OSScan/README.md: -------------------------------------------------------------------------------- 1 | 开源组件健康扫描周报汇总 2 | -------------------------------------------------------------------------------- /doc/HomeWork/README.md: -------------------------------------------------------------------------------- 1 | <<<<<<< HEAD 2 | # 此处用于记录本人的学习过程和收获 3 | 4 | ------ 5 | 6 | 基本要求 7 | 8 | > * 每位同学在/doc/HomeWork/目录下创建一个文件,学号命名,*****.md 9 | > * 在该文件中记录日常的工作总结 10 | > * 在自己的仓库中完成后,提交PR,每周至少提交一次PR 11 | 12 | 格式要求 13 | 1. 日期 14 | 2. 任务列表 15 | 16 | 示例如下: 17 | ### 2019年10月20日 18 | - [x] 撰写了一份****技术文档 19 | - [x] 修复了****项目中 Bug 20 | - [x] 开发了****模块中 功能 21 | ======= 22 | # 此处用于记录个人的学习过程和收获 23 | 24 | ------ 25 | 26 | 27 | 基本要求 28 | 29 | > * 每位同学在/doc/HomeWork/组名/目录下创建一个文件,学号命名,*****.md 30 | > * 在该文件中记录日常的工作记录和总结 31 | > * 每周四之前提交一次PR,组长负责merge自己组员的周报 32 | > * 每周五中午前组长更新本周周报总结 33 | 34 | 格式要求 35 | 1 PR Title:周报_组名_日期,例如:周报_DevUI_20191020-20191027 36 | 1. 日期(每周一次,记录具体时间) 37 | 2. 工作列表(禁止有学习****技术的内容,务必是具体的工作task) 38 | 3. 本周总结 39 | 40 | 示例如下: 41 | ### 2019年10月20日-2019年10月27日 42 | - [x] 参与****技术文档部分的撰写 43 | - [x] 修复了****Bug 44 | - [x] 开发了****功能 45 | - [x] 本周总结:...... 46 | >>>>>>> c1836851ee05217374676fedbee34ec7017819c2 47 | 48 | 最新日期的内容在最前面 49 | -------------------------------------------------------------------------------- /doc/JavaProgramming/README.md: -------------------------------------------------------------------------------- 1 | # HelloWorld -------------------------------------------------------------------------------- /doc/Linux/README.md: -------------------------------------------------------------------------------- 1 | # HelloWorld -------------------------------------------------------------------------------- /doc/ML/README.md: -------------------------------------------------------------------------------- 1 | 机器学习原理 2 | 3 | 机器学习概论 4 | 线性回归 5 | 降维技术 6 | 线性分类器 7 | 决策树 8 | 支持向量机 9 | 神经网络 10 | 集成学习 11 | 聚类 12 | -------------------------------------------------------------------------------- /doc/ML_Python/README.md: -------------------------------------------------------------------------------- 1 | 机器学习算法Python实现 2 | -------------------------------------------------------------------------------- /doc/ML_TensorFlow/README.md: -------------------------------------------------------------------------------- 1 | 机器学习 TensorFlow 2 | -------------------------------------------------------------------------------- /doc/Network/README.md: -------------------------------------------------------------------------------- 1 | # HelloWorld -------------------------------------------------------------------------------- /doc/OperatingSystem/README.md: -------------------------------------------------------------------------------- 1 | # HelloWorld -------------------------------------------------------------------------------- /doc/PythonProgramming/README.md: -------------------------------------------------------------------------------- 1 | # HelloWorld -------------------------------------------------------------------------------- /doc/Start/README.md: -------------------------------------------------------------------------------- 1 | # git以及提交PR的指引 2 | 3 | 4 | - [安装Git](#安装git) 5 | - [Windows](#windows) 6 | - [MacOS](#macos) 7 | - [Linux](#linux) 8 | - [创建一个github账户](#创建一个github账户) 9 | - [在本机上设置邮箱和用户名](#在本机上设置邮箱和用户名) 10 | - [配置SSH key](#配置ssh-key) 11 | - [检出仓库](#检出仓库) 12 | - [修改内容](#修改内容) 13 | - [提交PR](#提交pr) 14 | - [PR步骤总结](#pr步骤总结) 15 | 16 | 17 | ## 安装Git 18 | 19 | ### Windows 20 | 21 | 在链接 https://git-scm.com/downloads 下载git并安装, 安装过程中记得要勾选git bash工具, 默认编辑器推荐使用vscode 22 | 23 | ### MacOS 24 | 25 | 一般在mac中是自带git的, 若无git, 则可通过包管理器homebrew安装git, 具体见MacOS系统使用指引章节(TODO) 26 | 27 | ### Linux 28 | 29 | Linux各发行版一般是自带git的, 若无git, 则用各发行版特定的包管理器安装, 具体见Linux各发行版使用指引章节(TODO) 30 | 31 | ## 创建一个github账户 32 | 33 | 使用邮箱注册https://github.com/ 34 | 35 | ## 在本机上设置邮箱和用户名 36 | 37 | git bash中执行 38 | ``` 39 | # 设置github账户名 40 | git config --global user.name "你的github账户名" 41 | 42 | # 设置github注册时的邮箱 43 | git config --global user.email "你的邮箱" 44 | 45 | ``` 46 | 47 | ## 配置SSH key 48 | 49 | git bash中执行 50 | 51 | ``` 52 | 53 | ssh-keygen -t rsa -C “你的邮箱” 54 | # 按回车均采取默认配置 55 | 56 | cd ~/.ssh 57 | cat id_rsa.pub 58 | # 复制公钥内容 59 | (cat ~/.ssh/id_rsa.pub复制输出内容到github(windows在用户/用户/.ssh/id_rsa.pub)) 60 | ``` 61 | 62 | 打开github设置秘钥的界面 https://github.com/settings/keys 63 | 64 | 65 | 点击"New SSH key", 将公钥内容粘贴进去, 标题自己起一个. 之后就可以使用ssh进行clone/pull/push等操作了, 省去了繁琐的账号密码输入流程. 66 | 67 | 68 | ## 检出仓库 69 | 1. 将原仓库fork一份到自己账号下, 打开自己fork后的仓库页面 70 | 71 | ![fork](images/fork.png) 72 | 73 | 2、打开命令行窗口,输入 git clone 复制地址(使用ssh地址, 注意, **得是自己fork后的仓库地址, 下图中的地址是笔者自己的仓库地址, 每个人fork后的仓库地址都是不一样的**) 74 | 75 | ![使用ssh地址](images/use-ssh-03.png) 76 | 77 | ```bash 78 | git clone git@github.com:js00070/HelloWorld.git 79 | ``` 80 | 81 | 82 | 3、git命令执行结束后,在当前目录下出现了github上的工程项目源码 83 | 84 | ```bash 85 | $ ls 86 | HelloWorld 87 | $ cd HelloWorld/ 88 | $ ls 89 | code doc LICENSE README.md 90 | 91 | ``` 92 | 93 | 94 | ## 修改内容 95 | 1. 创建并切换分支 96 | 97 | ```bash 98 | git status # 查看当前git仓库状态, 确认处于master分支中 99 | 100 | git branch pr-test # 从master分支分出为pr-test的分支 101 | 102 | git checkout pr-test # 切换至pr-test分支 103 | 104 | ``` 105 | 106 | 2. 修改内容 107 | 108 | 使用任何自己喜欢用的编辑器/IDE修改内容 109 | 110 | 3. add commit push 111 | 112 | ```bash 113 | git status # 查看当前做了哪些修改 114 | 115 | git add . # . 表示当前目录 git add . 是把当前目录的所有修改添加到暂存区里 116 | 117 | git status # 确认下修改 118 | 119 | git commit -m 'this is a commit' # 输入commit信息, 简要概括下本次修改 120 | 121 | git log # 查看commit历史 122 | 123 | git push # 提交到自己的远程仓库 124 | 125 | ``` 126 | 127 | ## 提交PR 128 | 129 | 到github自己的仓库主页, 发现会有一个`Compare&Pull Request`选项, 点击即可填写PR说明. 130 | 131 | PR的标题最好以自己修改的模块文件路径开头, 方便维护者辨识(如本文件是`doc/Start:`), 然后简要说明下自己为什么做这部分修改, 以及做了什么修改, 达到了怎样的效果. 132 | 133 | ![](images/pr-01.png) 134 | 135 | 136 | 137 | ## PR步骤总结 138 | 1、将他人的仓库Fork成自己的仓库(访问该仓库页面,点击fork) 139 | 2、将自己的仓库clone到本地(git clone 自己仓库的URL) 140 | 3、创建特性分支(在GitHub上发送Pull Request时,一般都是发送特性分支。这样一来,Pull Request就拥有了更明确的特性[主题],让对方了解自己修改代码的意图,有助于提高代码的审查效率) 141 | 4、做出自己需要的修改(可以用自己喜欢的编辑器修改) 142 | 5、提交修改(git add… & git commit -m “…”) 143 | 6、创建远程分支(要从GitHub发送Pull Request,GitHub端的仓库中必须有一个包含了修改后代码的分支。git push origin 远程分支名) 144 | 7、发送Pull Request(登陆GitHub,切换到相应分支,点击Compare可查看分支之间的差别。点击New Pull Request,在随后显示的表单中填写本次进行Pull Request的理由,并提交即可) 145 | 146 | 更多git使用方法详见git章节(TODO) 147 | 或者参考https://git-scm.com/book/zh/v2 148 | -------------------------------------------------------------------------------- /doc/Start/images/README.md: -------------------------------------------------------------------------------- 1 | # HelloWorld -------------------------------------------------------------------------------- /doc/Start/images/fork.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OS-ABC/HelloWorld/d003d9f0943635abe5c99d88f47913feba0631f9/doc/Start/images/fork.png -------------------------------------------------------------------------------- /doc/Start/images/pr-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OS-ABC/HelloWorld/d003d9f0943635abe5c99d88f47913feba0631f9/doc/Start/images/pr-01.png -------------------------------------------------------------------------------- /doc/Start/images/use-ssh-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OS-ABC/HelloWorld/d003d9f0943635abe5c99d88f47913feba0631f9/doc/Start/images/use-ssh-01.png -------------------------------------------------------------------------------- /doc/Start/images/use-ssh-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OS-ABC/HelloWorld/d003d9f0943635abe5c99d88f47913feba0631f9/doc/Start/images/use-ssh-02.png -------------------------------------------------------------------------------- /doc/Start/images/use-ssh-03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OS-ABC/HelloWorld/d003d9f0943635abe5c99d88f47913feba0631f9/doc/Start/images/use-ssh-03.png -------------------------------------------------------------------------------- /doc/Web/README.md: -------------------------------------------------------------------------------- 1 | # HelloWorld -------------------------------------------------------------------------------- /doc/blog: -------------------------------------------------------------------------------- 1 | 2 | --------------------------------------------------------------------------------