不知道是因为什么鬼打墙的原因,GFW把go的官网给禁了,也许因为Go出身Google吧,真是*了狗了。不仅是 golang.org 被墙了,现在Go的包管理站 http://gopkg.in 也被墙了。直接用 go get gopkg.in/package 半天都没反应,只好用代理了。

如果是用http代理能访问的话,可以设置系统变量 http_proxy 就可以让 go get 走代理了,如果你有可以翻墙的http代理,可以用下面的方法:

http_proxy=http://ip:port go get gopkg.ig/package.v1

本地使用 shadowsocks做代理,因为ss是socks5代理,所以不能用上面的方法,go get又没有直接设置代理的地方,所以只好祭出代理利器:Proxifier ,这个工具有30天试用期,在国内也很容易找到破解版本。

打开Proxifier后添加 proxification rule,将 Applications设置为 C:\Go\bin\go.exe,这样重新打开终端(我的git bash),直接

go get gopkg.in/package.v1

就可以把包down下来了,虽然速度可能有点慢。

go相关的很多资源都被墙了,FK

信号是软件中断,是比较底层的机制,这样一章断断续续看完了,但是很多地方都没有理解好。

信号提供了一种处理异步事件的方法,例如中断用户键入中断,会通过信号机制停止一个程序,或及早终止管道的下一个程序。信号机制在Unix的早起版本就提供了,不过早期的信号机制并不可靠,后来信号模型做了更改,增加了可靠信号机制(4.3 BSD、SVR3),POSIX.1对可靠信息号进行了标准化,现在的信号都基于这一标准。

概念

信号都有一个名字,信号的名字都是以 SIG 三个字符开头,信号在<signal.h>中定义为正整数常量(不同的系统可能定义在另外的头文件,不过那些头文件肯定会被 signal.h 包含),当然我们并不要去关心具体的定义是什么。

有多种方法向进程发送信号:

  1. 中断按键,常见 Ctrl+C 发送中断信号(SIGINT)
  2. 硬件异常产生信号,这是硬件检测到发送给内核的,如除数为0,无效的内存引用等
  3. 进程调用 kill 函数可以将任意信号发送给进程/进程组,前提是接收信号的进程和发送信号进程所有者相同。
  4. 用户在终端调用 kill 命令将信号发送给指定进程,常用来结束一个失控的后台进程, kill -9 pid
  5. 当系统检测到某种软件条件已经发生,并应将其通知有关进程时也产生信号。
    阅读全文 »

把一些有用的bash命令记录一下,一做学习,一做备忘。

文件与目录

目录下批量文件重命名

for f in *.jpg; do mv "$f" "${f%.jpg}"; done
for f in *; do mv "$f" "$f.jpg"; done
for f in $(find . -type f -not -name "*.*"); do mv "$f" "${f}.jpg"; done

这是遍历目录下的文件,修改为后缀 jpg,很方便,另一实现:

find . -type f -not -name "*.*" --exec mv "{}" "{}".jpg
find /path -type f -not -name "*.*" -print0 | xargs -0 rename 's/(.)$/$1.jpg/'

解压zip文件的特定目录

unzip <target-zip-file> '<folder-to-extract/*>' -d <destination-path>

这会只对没有后缀的文件重命名,还可以根据需求做修改。

iptables & firewalld

iptables其实还是很有规则的,只是很久不用就忘记了,今天配置新买的主机要打开一个端口,试了半天。。。

# 列出指定 rule chian 的规则
iptables -L INPUT
# 添加一条规则,其中的3表示插入作为表的第三条
iptables -I INPUT 3 -p tcp --dport 80 -j ACCEPT
# 虽然现在用systemctl 替代service的功能
# 但是保存iptables的更改还是只能用service
serbice iptables save
systemctl restart iptables

安卓

去掉CM的感叹号:这个东西真的有点烦,每次都要去搜,不如记一下:

# 使用 local shell 或者 adb
settings put global captive_portal_detection_enabled 0
# 修改验证服务器为 v2ex.com
adb shell "settings put global captive_portal_server v2ex.com"

刷入 Recovery

# 刷入
./fastboot.exe flash recovery recovery.img
# 重启进入recovery
./fastboot.exe boot recovery.img

数据库

# 将一个数据库导入另一个库
mysqldump -u{username} -p{password} db_name | mmysql -u{username} -p{password} New_db_name

待续

参考:

组件是Vue.js的重要部分。

基础

组件可以看作是自定义的完整模块,我们可以使用 Vue.extend({...}) 创建一个组件构造器,该全局调用返回一个可复用的构造器。

extend 方法创建基础Vue构造器的子类,参数是一个对象,包含组件选项,这里要注意的特例是 eldata 选项,在 Vue.extend() 中,它们必须是函数。

要把这个构造器用作组件,需要用 Vue.component(tag, constructor) 注册,这是一种全局注册方式,或者利用该构造器构建一个实例,然后用 Vue.$mount() 将该组件实例添加到DOM树上。一个示例如下:

<div id='comp-ex-1"></div>
<div id="comp-ex">
<Person></Person>
</div>
<script>
var Person = Vue.extend({ // constructor
template: "<div><span>name:</span> {{name}} <span>Age: </span> {{age}}</div>",
data: function() {
return {
name: 'li ming',
age: 22
}
}
});
Vue.component('person', Person) // regist component
var you = new Vue({ // init component, render template
el: '#comp-ex'
})

// 构造组件实例并挂接到DOM
var me = new Person({
data: {
name: 'wuxu',
age: '23'
}
})
me.$mount('#comp-ex-1');
</script>
阅读全文 »

这部分主要是表单处理,动画和组件。

表单处理

在Vue.js的起步教程中就使用过 v-model 指令在表单控件元素上创建双向数据绑定。根据控件类型它自动选取正确的方法更新元素, v-model不过就是语法糖,在用户输入事件中更新数据,以及特别处理一些极端例子。

这里只要注意数据的双向绑定即可,如果输入框绑定的变量在其他地方也使用的话,修改输入框的值,其他的节点的值也是同步更新的。 如:

<span>Message is: {{ message }}</span>
<br>
<input type="text" v-model="message" placeholder="edit me">

这里每修改一次input的输入框内容,span显示的内容和input的值是同步的。

阅读全文 »

Vue.js真是一个好的东西!!!

条件渲染

在前面的例子中,已经使用过条件渲染指令 v-if="var" 了,还可以使用 v-else 实现更复杂的条件渲染,不过没有 v-elif 这样的指令了。

<div id="render">
<h1 v-if="isPass">Yes</h1>
<h1 v-else>No</h1>
<button v-on:click="passit">Change</button>
</div>

<script>
var render = new Vue({
el: '#render',
data: {
isPass: true
},
methods: {
passit: function () { this.isPass = !this.isPass }
}
})
</script>
阅读全文 »

前一篇 讲了为什么要从Jekyll迁移到Hexo,以及将Jekyll文章转换到Hexo风格的实现,这里记录一下迁移的具体过程。

hexo是使用nodejs开发的静态博客生成框架,我经常在Windows下写博客,然后push到github,然后在github.io查看,这里主要介绍Windows下的迁移。

安装node.js 和 hexo

首先要安装Node.js,现在各个平台都支持了,Windows下的安装也很方便,直接去 https://nodejs.org/en/download/stable/ 下载最近的版本,Windows的是一个 msi 文件,就像安装一个软件一样,点点下一步就可以了。

阅读全文 »

博客之前使用jekyll引擎部署在github pages, 由于几个原因一直想迁移到hexo平台:

  • 原来的模板被我修改的比较严重,文章页面在大屏幕上的显示效果无法居中了
  • Jekyll在Windows下编译比较麻烦,每次都要 push 到github才能预览效果
  • 当时使用的Jekyll模板对代码的渲染效果很糟糕,尤其是Vue.js的大括号需要各种转义才好显示

但是迁移也挺麻烦的,主要是Jekyll使用的模板和hexo的markdown解析并不完全兼容,尤其是 Front-matter,也就是文章元数据的格式不太一样,还有就是文档的命名风格也不一样,Jekyll使用日期加标题的方式,hexo一般直接使用标题。原来已经有大概110篇文章,一篇一篇修改太麻烦了,所以用Go写了一个简单的工具去转换。

代码如下:

阅读全文 »

2015年,Vue.js在国内的前端圈子内可是大红大紫了一把,作为国内开发者(尤雨溪)开源的作品,在github上获得众多star与 fork,也成为laravel官方推荐的js框架,大有可取代jQuery的势头。目前前端JS框架比较流行的,jQuery不用说是使用最广泛的,现在随便浏览一个网站都基本都使用了它,jQuery在Web技术发展中可是立下了汗马功劳了,不过jQuery因为时代原因,也越来越被开发者所“嫌弃”,认为jQuery只能算一个类库,而算不上现代的js框架。即使这样,也不可否认,jQuery是非常优秀的。

现在jQuery之外有了更多选择(这些选择不再是ext,ember这些了),那就是 Angular, react等等,虽然它们所要实现的功能并不相同,但是也经常拿他们一起比较。可以参考这个讨论

开头

阅读全文 »

最近没有项目,没有实习,也没有实习的计划,准备这学期认认真真看些书,提升一下自己。把自己正在看的书和准备看的书做个清单。

在读

  1. 《算法 第四版》。 看了一部分了,最近又没看了
  2. 《重构:改善既有代码的设计》。 偶尔看看,记记笔记
  3. 《Go语言网络编程》。看了一半了
  4. 《中国哲学史(上)》。这几天看得多些,虽然看得有点难,但是很有收获
  5. 《蒋勋说红楼梦》 看到了第四本,很好的书
  6. 《觉醒的力量》。睡前看看,一大堆给别人做的序,烂书
  7. 《通往奴役之路》。看了两个月了,翻译实在太难看了,看得很慢,翻译太烂了,奇烂无比
  8. 《CSAPP,深入理解计算机系统》,过了一遍
  9. 《APUE,Unix环境高级编程》,进行中
  10. 《C Primer Plus》,过了一遍

准备看

  1. 《仪式过程》
  2. 《霍乱时期的爱情》
  3. 《日格瓦医生》 这本买了还没动,有时间看看
  4. 《追忆似水年华》 先排上来,估计一时半会没看