0%

1. 操作

1. 1 自动格式化和导入包

go fmt + go imports

go to preferences ->Tools ->File Watchers and enable go fmt . This way on each save it will format the file.

goland tools->filewatchers->go fmt| go imports

阅读全文 »

1. http 基础

1.1 method

HTTP1.0 定义了三种请求方法: GET, POST 和 HEAD方法。

HTTP1.1 新增了六种请求方法:OPTIONS、PUT、PATCH、DELETE、TRACE 和 CONNECT 方法。

阅读全文 »

1. XSS (跨站脚本攻击,落在脚本)

XSS,即 Cross Site Script,中译是跨站脚本攻击;其原本缩写是 CSS,但为了和层叠样式表(Cascading Style Sheet)有所区分,因而在安全领域叫做 XSS。

1
2
3
4
<script>alert('xss攻击开始')</script>
<script>alert('1')</script>
<script>alert('2')</script>
<script>alert('3"')</script>
阅读全文 »

  • 在mac上生成密钥

    生成两个文件vultr vultr.pub

    ssh-keygen -t rsa //passphrase可以为空

  • 发送到远程服务器

    第一种方式:

    scp ~/.ssh/vultr.pub root@207.246.80.69:/root/.ssh/authorized_keys

    第二种方式:

    ssh-copy-id -i ~/.ssh/vultr.pub root@207.246.80.69

阅读全文 »

通过ssh文件上传到服务器

1
scp -i /Users/liuwei/.ssh/aws.pem -C -r /Users/liuwei/golang/src/web ubuntu@ec2-54-191-9-26.us-west-2.compute.amazonaws.com:/home/ubuntu

aws.pem chmod 400

scp -C 加一个可能会更快

发行部署

Go 语言的应用最后编译之后是一个二进制文件,你只需要 copy 这个应用到服务器上,运行起来就行。beego 由于带有几个静态文件、配置文件、模板文件三个目录,所以用户部署的时候需要同时 copy 这三个目录到相应的部署应用之下,下面以我实际的应用部署为例:

阅读全文 »

区块链

区块链属于一种去中心化的记录技术。参与到系统上的节点,可能不属于同一组织、彼此无需信任;区块链数据由所有节点共同维护,每个参与维护节点都能复制获得一份完整记录的拷贝。

特点

跟传统的记账技术相比,其特点应该包括:

  • 维护一条不断增长的链,只可能添加记录,而发生过的记录都不可篡改;
  • 去中心化,或者说多中心化,无需集中的控制而能达成共识,实现上尽量分布式;
  • 通过密码学的机制来确保交易无法抵赖和破坏,并尽量保护用户信息和记录的隐私性。

基本原理

区块链的基本原理理解起来并不难。基本概念包括:

  • 交易(Transaction):一次操作,导致账本状态的一次改变,如添加一条记录;
  • 区块(Block):记录一段时间内发生的交易和状态结果,是对当前账本状态的一次共识;
  • 链(Chain):由一个个区块按照发生顺序串联而成,是整个状态变化的日志记录。
阅读全文 »

音频基础

当前,我们所说的音频,都是数字音频。数字音频由采样频率、采样精度、声音通道数三个部分组成。

采样频率:既采样率,指记录声音时每秒的采样个数,它用赫兹(Hz)来表示。
采样精度:指记录声音的动态范围,它以位(Bit)为单位。
声音通道:既声道数(1-8个)。

采样率根据使用类型不同大概有以下几种(k既千位符号,1khz=1000hz):
8khz:电话等使用,对于记录人声已经足够使用。
22.05khz:广播使用频率。
44.1kb:音频CD。
48khz:DVD、数字电视中使用。
96khz-192khz:DVD-Audio、蓝光高清等使用。

采样精度常用范围为8bit-32bit,而CD中一般都使用16bit。

阅读全文 »

ASCII码

ASCII码的取值范围是0~127,可以用7个bit表示。C语言中char型变量的大小规定为一字节,如果存放ASCII码则只用到低7位,高位为0。以下是ASCII码表:

绝大多数计算机的一个字节是8位,取值范围是0255,而ASCII码并没有规定编号为128255的字符,为了能表示更多字符,各厂商制定了很多种ASCII码的扩展规范。注意,虽然通常把这些规范称为扩展ASCII码(Extended ASCII),但其实它们并不属于ASCII码标准。

阅读全文 »

1. interface struct 能否相互嵌套

  1. struct struct //继承(不能多态), 如果内部struct实现了接口, 它也相当于实现了接口
  2. struct interface //可以内部用interface多态
  3. interface interface //单纯的导入
  4. interface struct //不允许
阅读全文 »

cannot execute binary file exec format error

是因为mac和ubuntu的二进制格式不一致

问题

Go是一门编译型语言,所以在不同平台上,需要编译生成不同格式的二进制包。
由于Go 1.5对跨平台编译有了一些改进,包括统一了编译器、链接器等。
编译时候只需要指定两个参数:GOOS和GOARCH即可。

阅读全文 »