争渡 争渡
Tags Archives Links
  • 开始使用
  • 我的开源
  • Tags
  • Archives
  • Links
  • Search
  • RSS
数据类型 bool int,int8-64 uint8-64 float32 float64 complex64/128 byte rune string Array,Map,Slice,*,& 关键字 package,import if,else if,else,switch,select,for,while,make struct,interface,func,defer,error,panic,recover 包 目录包说明 bufio实现缓冲的I/Obytes提供了对字节切片操作的函数crypto收集了常见的加密常数errors实现了操作错误的函数Expvar为公共变量提供了一个标准的接口,如服务器中的运算计数器flag实现了命令行标记解析fmt实现了格式化输入输出hash提供了哈希函数接口html实现了一个HTML5兼容的分词器和解析器image实现了一个基本的二维图像库io提供了对I/O原语的基本接口log它是一个简单的记录包,提供最基本的日志功能math提供了一些基本的常量和数学函数mine实现了部分的MIME规范net提供了一个对UNIX网络....

Golang基础总结

Go
1.Linux-CPU 我们先看一下 Linux 系统的整体结构,这里插入搜集的两张图 从图上可知,Linux 组成分为 User Space,Kernel Space,Hardware Space 用户层,内核层,硬件层 用户层: 比如我们看到的命令行界面,我们的浏览器,执行的 Shell,或者 gcc 编译器,这些能够直接看到,使用的称之为用户层,个人理解,就是软件层。 内核层:由 Linux 内核实现的 进程管理,内存管理,虚拟化,网络管理,文件管理,等等等一个操作系统基本必备的功能,组合起来变成了内核。 硬件层:CPU,内存,网卡,声卡,IO 设备等等等 再来看一下内核 内核调用错综复杂,我们只看 threads 一列, 用户层的线程由内核中的调度器来进行调度,最后走到硬件层的CPU,去争抢CPU的时间片 时间片:举个不恰当的例子,在单核计算机中我们如何做到同时做两件事儿了,就涉及到,两个进程争抢时间片或者说 CPU 分配时间片给两个进程, 浏览器拿到时间片就渲染一会儿,网易云拿到时间片就加载一会儿音乐,但是 CPU 调度切换时间非常快,以至于你的感受就是一边在看网页一边听......

从Linux体系到GPM

Go
起因 今天日常连接上 VPN,上 GitLab 私服,对离职人员进行 block,3 个月无更新的项目进行 archive 操作,将新项目分好组,并通知其余负责人。 然后!然后我想到了最近三个月都没有更新 GitLab 了,12.5.1 版本,最新的是 12.8 版本,想着更新一下,然后问题就来了。 经过 按照常规操作,https://packages.gitlab.com/gitlab/gitlab-ce,从这个网站 wget 下最新的 GitLab Rpm 包,准备更新。 首先进行了版本查看(由于 GitLab 在数据恢复的时候必须保持版本一致),并记录了当前的 GitLab 全版本号 gitlab-ce-12.5.3-ce.0.el7.x86_64 然后进行了数据备份操作gitlab-rake gitlab:backup:create并将备份后的文件本地保留一份到~目录下,scp出去一份到自己的服务器上 最后感觉万无一失的开始搞 yum install -y gitlab-ce-12.8xxxxx,然后看着日志滚动刷屏,我淡然的感觉应该没什么问题,因为更了不下5个版本了,就出去抽....

记一次令人心悸的GITLAB升级经历

运维
1.Go 环境 # GO export GO111MODULE=on export GOPROXY=https://goproxy.io export GOBIN=$HOME/go/bin export PATH=$PATH:$GOPROXY:$GOBIN 2.包每个程序都是包,包入口为 main 包,包名与导入路径的最后一个目录一致。例如, "math/rand" 包由 package rand 3.导入 import "package name"import( "packagename""packagename") 4.导出首字母为大写是导出的函数/变量等 5.函数可以没有参数或者接收多个参数,返回单个/多个或不返回值 func swap(x int, y int) (int, int) { return y, x } func swap(x,y int)(int,int){ return y,x} 6.函数返回值可以被命名 func swap(x,y int)(a,b int){a = y; b = x} 7.var 变量可以定义在不同域,并给予初始化值 package ....

GO指南Scroll

Goland
0.要搞个东西呀所以不得不解析一下代码.一行一行走 1.开始 点击开始使用时调用 @RequestProcessing(value = "/login/redirect", method = HttpMethod.GET) public void redirectAuth(final RequestContext context) { // 从当前域里拿到站点地址 String referer = context.param("referer"); if (StringUtils.isBlank(referer)) { referer = Latkes.getServePath(); } // 生成一个16位随机的东西然后跟入站点地址 String state = RandomStringUtils.randomAlphanumeric(16) + referer; // 放到集合里 STATES.add(state); // 构造 请求url 请求hacpai,回调/login/callback final String loginAuthURL = "https://hacpai.....

解刨SOLO认证流程

SOLO
queue.h #ifndef QUEUE_H #define QUEUE_H #include <stdbool.h> typedef int Item; #define MAXQUEUE 10 typedef struct node { Item item; struct node *next; } Node; typedef struct queue { // 队列首项 Node *front; // 队列尾项 Node *rear; // 队列长度 int items; } Queue; // 初始化队列 void InitializeQueue(Queue *pq); // 队列是否满了 bool QueueIsFull(const Queue *pq); // 队列是否空了 bool QueueIsEmpty(const Queue *pq); // 队列项数 int QueueItemCount(const Queue *pq); // 入队 bool EnQueue(Item item, Queue *pq); // 出队 bool DeQueue(....

C Queue Demo

C
list.h head头类,定义接口 // 如果没有定义 LIST_H_宏 #ifndef LIST_H_ // 定义LIST_H宏 #define LIST_H_ // 布尔 #include <stdbool.h> // 标题长度 #define TSIZE 45 // 电影 结构体 struct film { // 电影名称 char title[TSIZE]; // 评分 int rating; }; // 将 struct film 用 Item类型代替 typedef struct film Item; // 将 struct node 使用 Node代替 typedef struct node{ Item item; struct node *next; } Node; // 链表结构和Node类相同 typedef Node *List; // 初始化链表 void InitalizeList(List *plist); // 链表是否为空 bool ListIsEmpty(const List *plist); // 是否还可以创建新的next节点 boo....

C LinkList Demo

C
C Primer Plus手记一 C Primer Plus手记二 13.位操作 编号 0 0 0 0 0 0 0 0 ^ ^ ^ ^ ^ ^ ^ ^ 7 6 5 4 3 2 1 0 7为最高位,0为最低位' 7-0 每个位置为1分别代表为 128 64 32 16 8 4 2 1 所以一个bytes最大为 128+64+32+16+8+4+2+1 = 255 最小为 0000000 = 0 一个 byte 8位 [] [] [] [] [] [] [] [] 11111111 = 255 00000000 = 0 所以 单字节 取值范围为 0-255 高阶位存储符号 1000 0001 = -1 1111 1111 = -127 1000 0000 = -0 0000 0001 = 1 0111 1111 = +127 0000 0000 = +0 正负0的问题可以用二进制补码来解决 正数的反码和补码都与原码相同。 负数的反码为对该数的原码除符号位外各位取反。 负数的补码为对该数的原码除符号位外各位取反,然后在最后一位加1 二进制运算符 // 取反 ~(10011010) -&....

《C Primer Plus》手记三

C
#!/usr/bin/env bash echo -n "0.请输入你的Github Access Token:" read token echo -n "1.请输入项目的id:" read id echo -n "2.请输入项目release的名称:" read name echo -n "3.请输入即将创建release版本的tag:" read tag_name echo -n "4.请输入release的描述:" read description curl --header 'Content-Type: application/json' --header "PRIVATE-TOKEN: $token" \ --data '{ "name": "'$name'", "tag_name": "'$tag_name'", "ref":"'$tag_name'" ,"description": "'$description'" }' \ --request POST http://gitlab_url/api/v4/projects/$id/releases

Gitlab简易Release脚本

Git
手记一 11.文件 // 标准文件 // C会自动打开三个文件 standard input 标准输入 standard output 标准输出 standard // error output 标准错误输出 standard input 通常为键盘 standard output // 通常为显示器 通常标准输入为程序提供输入 getchar() scanf() 标准输出 // putchar(),puts(),printf() #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { // 读取文件时存储每个字符 int ch; // 文件指针 FILE *fp; // 记录文件行数 unsigned long count = 0; // 效验传入参数 if (argc == 0) { printf("Usage: %s filename\n", argv[0]); exit(EXIT_FAILURE); } // 效验是否有文件,如果没有,指针就指不上 if ((fp....

《C Primer Plus》手记二

C
0.槽 现在的书大都太啰嗦,把读书的人当作傻子。这本书也不例外。 或许详细的API手册才是我所需要的吧。。。 1.变量 1.1Int //1.16位计算机 int 区间 为 -32678 - 32677所以ISO C 规定int的取值范围最小为 -32678 - 32677 // erns,dogs 并没有初始化; int erns; int cows = 32,goats = 14; int dogs,cats = 69; //打印 printf("%d",cats); //八进制 printf("%o",0144); // 十六进制 printf("%x",0x64); //显示前缀 printf("%#o, %#x",0144,0x64); 1.2修饰符 // short 短 比int范围短 // long 长 比int多 // long long 非常长 至少要64位机器比long长 // unsigned 无符号 非负数情况 unsigned int 0 ~ 65535 // signed 有符号 signed int - 32638 - 32637 long int es.....

《C Primer Plus》手记一

C
《设计模式》作者之一:John Vlissides Vlissides 曾就读于弗吉尼亚大学和斯坦福大学电气工程。自 1986 年以来,他在斯坦福大学担任软件工程师,顾问,助理研究员和学者。从 1991 年开始,他留在 IBM T.J. Hawthorne 的沃森研究中心作研究员。他是许多书的作者,许多杂志文章和会议论文的撰写者,并荣获多项专利。他的工作集中于面向对象技术,设计模式和软件建模。 他也曾为我最喜爱的书籍《敏捷软件开发》写过书评:“这大概是第一本将敏捷方法、模式和当代软件开发基础糅合在一起的书。当 Bob Martin 发言的时候,我们最好洗耳恭听。” John Vlissides 在 2005 年感恩节(2005 年11 月 24 日)逝世(脑肿瘤并发症),享年 44 岁。 谢谢你,为我们带来了 OO 的理念和无数规范化软件工程的思考。 ZIP 算法发明者:Phil Katz Phil Katz(菲尔·卡茨)出生于 1962 年 11 月 3 日。1986 年他编写了共享软件 PKARC,这是一款压缩软件,通过他个人高超的优化技术完胜了 SEA 公司的商业压缩软件 ARC....

纪念逝去的软件先驱

开源
.SpaceVim.d/init.toml 的lsp配置 [[layers]] name = "lsp" filetypes=['c','go','lua','javascript','dart','python','typescript','vue','html','cpp','objc','objcapp'] dart 环境变量 #DART export PUB_HOSTED_URL=https://pub.flutter-io.cn export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn export DART_HOME=/Users/ferried/Sdks/flutter export PATH=$PATH:$DART_HOME/bin export PATH=$PATH:$HOME/.pub-cache/bin # language Server pub global activate dart_language_server go # GO export GO111MODULE=on export .......

SpaceVim lsp 配置

SpaceVim
记vscod配置golang的坑 1.安装go brew install go 2. bash_profile 设置mod开启+代理+bin就够了 export GO111MODULE=on export GOPROXY=https://goproxy.io export GOBIN=/Users/ferried/go/bin export PATH=$PATH:$GOPROXY:$GOBIN 3.vscode 安装插件 不要点右下角弹出来的install 输入command 最后喝茶到安装完毕

我曾经跨过VSCODE和GO

Go
Electron js 写 windows/mac app 的框架 typescript react antd 创建项目 安装脚手架:yarn global add create-react-app 创建 react antd 项目:create-react-app my-project --scripts-version=react-scripts-ts-antd 以下是完整的 package.json { // 项目名称 "name": "typescript-sonar-client", // 版本 "version": "1.0.3-alpha", "description": "null", // 入口 "main": "main.js", // 作者 "author": "ferried <harlancui@outlook.com>", "license": "MIT", // 环境(开发/部署) "DEV": true, // 主页 "homepage": ".", // 脚本 "scripts": { // 启动react "start": "reac....

ElectronDemo

Client
Babel babel 是一个转化 js 语法的转译工具 为了浏览器兼容 基本包 // 1.core-内建包(代码引入) // 2.cli-command包(命令执行) yarn add -D @babel/core @babel/cli @babel/preset-env // 3.垫片 yarn add @babel/polyfill 配置 demo // 建立babel.config.js touch root/babel.config.js // 配置 echo "const presets = [ ["@babel/env", { targets: { edge: "17", firefox: "60", chrome: "67" safari: "11.1" }, useBuiltIns: "usage" }] ];" >> root/babel.config.js // 转译 ./node_modules/.bin/babel src --out-dir lib 插件 // 转译function ()->{} function(){} yarn ad......

Babel

Babel
前言  适合有 js 基础的同学学习,概述 nodejs 的各方面应用 Hello World // 引用http模块 const http = require(" http"); // http 端口 const port = 8080; // 创建一个Http服务 const server = http.createServer((req, res) => { // response(响应) res.end(" Hello, world."); }); // 在端口监听服务 server.listen(port, () => { console.log(" Server listening on: http:// localhost:% s", port); }); 基础 ... 模块 // 创建模块 const canadianDollar = 0. 91; function roundTwo( amount) { return Math.round( amount * 100) / 100; } // 导出模块 exports.canadianToUS = ca.....

Nodejs

Nodejs
介绍 typescript是javascript的超集,最终也要编译成javascript,有一定的编程基础再来看吧 编译器 安装 npm install -g tsc 配置 tsc通过项目中的tsconfig.json来配置,先来看一个demo { "compilerOptions": { "allowJs": true, "allowSyntheticDefaultImports": true, "allowUnreachableCode": true, "allowUnusedLabels": true, "alwaysStrict": true, "baseUrl": "../asdf.ts", "charset": "utf-8", "checkJs": true, "declaration": true, "declarationDir": "../out", "diagnostics": true, "disableSizeLimit": true, "emitBOM": true, "emitDecoratorMetadata": true, "experimental....

Typescript

Typescript
Git git 会用一点, 这篇来深究一下原理 三种状态 已提交(committed):存在本地数据库中 已修改(modified):修改了还没存到数据库中 已暂存(staged):对一个已修改文件做了标记,包含在下次提交的快照中 三个工作区 仓库,工作目录,暂存区 本地仓库 初始化仓库:git init 追踪:git add 克隆线上:git clone http://... 检查状态:git status 检查状态(easy):git status --short 未暂存文件更新的部分:git diff 已暂存文件下次提交部分:git diff --staged 提交暂存到仓库:git commit 提交暂存到仓库并加入描述:git commit -m 'desc' 跳过暂存直接提交:git commit -a 移除文件:git rm part 移除暂存的文件:git rm -f part 移除但不删除:git rm --cached part 移动文件:git mv part part 历史记录:git log 历史记录差异:git log -p 2 历史记录简略统计:git ....

Git

Git
简介 写一份自定义的angular脚手架吧 写之前我们先解析一下antd的脚手架 前提 先把 Angular Schematic这篇文章读一遍,确保了解了collection等基础 antd脚手架 克隆项目 git clone https://github.com/NG-ZORRO/ng-zorro-antd.git 开始 打开项目 在schematics下的collection.json为入口,查看内容 一共定了了4个schematic,每个schema分别指向了各文件夹的子schema.json,factory指向了函数入口,index.ts ng-add/schema.json { // 指定schema.json的验证模式 "$schema": "http://json-schema.org/schema", "id": "nz-ng-add", "title": "Ant Design of Angular(NG-ZORRO) ng-add schematic", "type": "object", // 包含的属性 "properties": { "project": ......

AngularCli

Angular
1 2 3 4
我的开源 RSS 开始使用
fe - 一切都是最好的安排

65 文章
0 浏览     0 当前访客
© 2021 争渡 冀ICP备19033183号