iovxw

给博客添加了代码高亮

Google Code Prettify

使用的是Google Code Prettify

因为这个js是google code用的,所以各种语言支持比较全面(当然主要是因为Golang才用的)

直接用的默认css

所以和博客主题不是很搭

准备有时间自己修改一下(目测这几个月内是不行了)

来一段测试一下:

package main

import (
	"fmt"
	"math/rand"
	"sync/atomic"
	"time"
)

type readOp struct {
	key  int
	resp chan int
}
type writeOp struct {
	key  int
	val  int
	resp chan bool
}

func main() {

	var ops int64

	reads := make(chan *readOp)
	writes := make(chan *writeOp)

	go func() {
		var state = make(map[int]int)
		for {
			select {
			case read := <-reads:
				read.resp <- state[read.key]
			case write := <-writes:
				state[write.key] = write.val
				write.resp <- true
			}
		}
	}()

	for r := 0; r < 100; r++ {
		go func() {
			for {
				read := &readOp{
					key:  rand.Intn(5),
					resp: make(chan int)}
				reads <- read
				<-read.resp
				atomic.AddInt64(&ops, 1)
			}
		}()
	}

	for w := 0; w < 10; w++ {
		go func() {
			for {
				write := &writeOp{
					key:  rand.Intn(5),
					val:  rand.Intn(100),
					resp: make(chan bool)}
				writes <- write
				<-write.resp
				atomic.AddInt64(&ops, 1)
			}
		}()
	}

	time.Sleep(time.Second)

	opsFinal := atomic.LoadInt64(&ops)
	fmt.Println("ops:", opsFinal)
}

上面这段源码来自于:

Go by Example 中文:Go 状态协程

Coding活动送的月饼收到

下午茶的东西全了

上面还附带一个开箱工具

外加一包铁观音

顺便在博客css里面加上了一段

.container img {
	max-width: 100%;
}

这样图片就自动缩放了

Twister 去中心化的 Twitter

FREEDOM!!

在36氪看见的文章

http://www.36kr.com/p/214845.html

于是就下载使用了一下

发现Arch的aur源里已经可以安装了

yaourt -S twister-core-git twister-html-git

然后配置一下

~/.twister/twister.conf

里面填入

rpcuser=user
rpcpassword=pwd
rpcallowip=127.0.0.1

上面的用户名和密码改成你自定义的就行了

这个用户名和密码只不过是用来识别本地管理员身份的,不是twister帐号

然后移动twister-html到~/.twister/html(twister-html的位置我忘了,搜索下吧)

su切换到root运行systemctl start twister开启服务

切换到普通用户运行twisterd开启主程序

打开网页http://127.0.0.1:28332/index.html输入你上面的用户名密码然后等待区块同步完成修改个人信息即可

官网:http://twister.net.co

参考信息:http://wiki.twister.net.co/w/using:howto:compiling_twister_on_ubuntu_12.04

近期的计划

懒啊………

又好久没写博客了

这次不是因为太忙

纯粹是懒

果然天一热就什么也不想干啊……

因为懒,所以也就有了一大堆代办事项

现在列出来备忘一下

  1. 学好js和css,然后修改一下博客的图片显示缩放等等
  2. 把上次写的那个梯子的坑填完,做一个网页管理系统和代理服务器群组的自动配置
  3. 填好2个Minecraft服务器的坑
  4. 攒钱租服务器
  5. 修改一下这个博客的生成器hugo,加强一下markdown解析什么的
  6. 攒钱给域名续费&&攒钱买游戏

一直想wine星际2,结果就是不成功,一直卡在检查更新中

看了一下应该是wine网络问题,如果始终不行的话还是去Steam买《Planetary Annihilation》吧,不过49刀太贵了(不知有没有土豪愿意送我 :D)

估计得慢慢等打折,上次打折后仅需5刀结果错过了,悲伤啊悲伤

感觉好懒……

[备用]Arch安装后的配置

个人备用笔记

个人备用笔记,以防下次玩脱了结果忘了怎么配置

当然要先安装图形界面了,这里我使用的是KDE

pacman -S xorg kde

设置KDM自动启动

systemctl enable kdm

开启KDM

systemctl start kdm

安装KDE中文语言包

pacman -S kde-l10n-zh_cn

安装文泉驿微米黑中文字体

pacman -S wqy-microhei wqy-microhei-lite

安装Yaourt

/etc/pacman.conf里添加

[archlinuxcn]
#The Chinese Arch Linux communities packages.
SigLevel = Optional TrustAll
Server = http://repo.archlinuxcn.org/$arch

然后pacman -Syu yaourt

安装字体渲染工具

yaourt -S freetype2-infinality lib32-freetype2-infinality fontconfig-infinality

设置字体渲染

infctl setstyle选择linux

安装网络管理器

yaourt -S networkmanager kdeplasma-applets-networkmanagement

安装KDE的GTK主题管理工具

yaourt -S kde-gtk-config

安装fcitx和中州韵输入法

yaourt -S fcitx fcitx-qt4 fcitx-rime

使fcitx成为默认输入法

nano ~/.xprofile

添加

export LANG=zh_CN.UTF8
export XMODIFIERS=@im=fcitx
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx

安装Java JDK

yaourt -S jdk

安装WineQQ

yaourt -S wineqq

还有一大堆解码器和压缩格式支持就懒得写了

去翻Arch Wiki把

扔一张配置好的图,左边那个时钟的栏是可以自动隐藏的面板

图片

装上了Arch

生命不息,折腾不止

安装的原因是前几天捣鼓KDE5,虽然安装成功了

结果系统却是32位的,强迫症各种伤不起

于是乎还是果断重装了

ubuntu每日构建版下载2遍MD5依旧不正确,发现是迅雷离线下载的问题

于是用百度离线重下了

U盘刻录成功

结果安装程序缺失部件

验证了好几遍然后确定是ISO本身问题

然后已经到了夜里2点

遂不折腾了

早上起床想到可以试一下Arch,于是下载刻盘安装

安装基本顺利

除了刚开始忘了分EFI分区导致只能用BIOS启动

还有手滑习惯性的把/dev/sdb1输入成了/dev/sda1导致1T的数据盘被格以外

其他基本没啥问题(感谢我那良好的备份习惯啊……)

还有发现中州韵输入法Smartgithg挺不错的

图片 图片 图片 图片 图片 图片

用Golang写了一个梯子

梯子,当然是用来翻墙的

无聊的作品

其实就是一个通过tls的socks5代理

然后中间传输用了点Golang的gob而已

没啥好介绍的

直接扔github地址:https://github.com/iovxw/Stepladder

在README里有详细使用教程

话说发现一个新东西:Coding

看起来不错

于是也上传了一份

https://coding.net/u/iovxw/p/Stepladder/git

Neovim的Golang开发环境配置

强迫症强迫症强迫症强迫……

"No warp───┐
set nowrap"│
"──────────┘
"Line number─┐
set number  "│
"────────────┘
"Plugin Manager────────────────────┐
set rtp+=~/.nvim/bundle/Vundle.vim"│
"──────────────────────────────────┘
"Plugin load begin───────────────────┐
set nocompatible                    "│
filetype off                        "│
call vundle#begin()                 "│
                                    "│
"Airline───────────────────┐         │
Plugin 'bling/vim-airline'"│         │
set laststatus=2          "│         │
"──────────────────────────┘         │
"TagBar─────────────────────────────┐│
Plugin 'majutsushi/tagbar'         "││
nmap <F8> :TagbarToggle<CR>        "││
let g:tagbar_type_go = {
    \ 'ctagstype' : 'go',
    \ 'kinds'     : [
        \ 'p:package',             
        \ 'i:imports:1',           
        \ 'c:constants',           
        \ 'v:variables',           
        \ 't:types',               
        \ 'n:interfaces',         
        \ 'w:fields',             
        \ 'e:embedded',           
        \ 'm:methods',             
        \ 'r:constructor',         
        \ 'f:functions'           
    \ ],
    \ 'sro' : '.',
    \ 'kind2scope' : {
        \ 't' : 'ctype',           
        \ 'n' : 'ntype'           
    \ },
    \ 'scope2kind' : {
        \ 'ctype' : 't',           
        \ 'ntype' : 'n'           
    \ },
    \ 'ctagsbin'  : 'gotags',
    \ 'ctagsargs' : '-sort -silent'
\ }                                "││
"───────────────────────────────────┘│
"NerdTree────────────────────┐       │
Plugin 'scrooloose/nerdtree'"│       │
map <C-n> :NERDTree<CR>     "│       │
"────────────────────────────┘       │
"Golang Plugin────────────────┐      │
Plugin 'dgryski/vim-godef'   "│      │
Plugin 'cespare/vim-golang'  "│      │
Plugin 'Blackrush/vim-gocode'"│      │
"─────────────────────────────┘      │
"Autocompletion─────────────────┐    │
Plugin 'Valloric/YouCompleteMe'"│    │
"───────────────────────────────┘    │
"Plugin load end──────────┐          │
call vundle#end()        "│          │
filetype plugin indent on"│          │
"─────────────────────────┘          │
"────────────────────────────────────┘
"Highlight─┐
syntax on "│
"──────────┘
"Golang compiler plugin─────────┐
autocmd FileType go compiler go"│
"───────────────────────────────┘
"Automatic format────────────────────────────────────┐
autocmd FileType go autocmd BufWritePre <buffer> Fmt"│
"────────────────────────────────────────────────────┘

好吧其实原版VIM也通用

只是需要把上面的.nvim文件夹改成.vim就行

这里面需要用到Golang的官方插件,把go源码里的misc/vim全部扔到相应的文件夹即可(或者做个链接)

别问我为什么写成这样……我有强迫症

不过因为\接上一行的问题,所以有些地方没法注释(逼死强迫症啊)

然后这个是适用于初学者的,因为我才开始用vim不到一周。有什么问题欢迎指出哈

使用方法:

  1. 有一个Neovim(原版vim请自行把.nvim脑补成.vim,Neovim编译安装可以看<@/p/neovim.md>)

  2. 安装Vundle插件管理器 git clone https://github.com/gmarik/Vundle.vim.git ~/.nvim/bundle/Vundle.vim 然后打开~/.nvim/bundle/Vundle.vim/autoload/vundle.vim,把里面的文件夹路径.vim替换成.nvim(原版vim无需此步骤,这是让插件管理器安装插件到Neovim的文件夹)

  3. 把上面的配置文件保存到用户目录的.nvimrc文件

  4. 终端输入nvim然后输入:BundleInstall安装插件

  5. 完成~

ubuntu编译安装Neovim

21世纪的VIM?

介绍:

巴西程序员Thiago de Arruda Padilha(aka tarruda)向Vim开源编辑器项目递交了两大补丁,对Vim的架构进行了大幅调整,结果遭到了Vim作者Bram Moolenaar的拒绝,因为对于Vim这样一个成熟的项目进行如此大的改变风险太高。于是tarruda发起了Vim fork项目Neovim,集资1万美元打造出21世纪的编辑器,提供更好的脚本、插件支持,整合现代的图形界面。

该项目超额完成集资,已筹集到3.25万美元。Moolenaar本人对该项目持有异议,认为需要大量工作,会引入新的bug,而终端用户获益不多。

主页:http://neovim.org

官方wiki里的安装方法:https://github.com/neovim/neovim/wiki/Installing

我用brew安装竟然提示需要pkgutil,我用的是ubuntu哪来的pkgutil?

于是乎还是果断手动编译安装了

先安装所需要的工具:sudo apt-get install libtool autoconf automake cmake libncurses5-dev g++ pkg-config

clone到本地git clone https://github.com/neovim/neovim.git然后cd neovim+make就编译完成了

这里主要是说一下编译过程中出现的error解决方法

libtoolize: not foundsudo apt-get install libtool

aclocal: not foundsudo apt-get install autoconf

安装过程中会下载几个包,网站都是国外的,所以比较慢,而且没有进度显示。耐心等待就行(如果相关网站被墙请手动设置代理)

安装:

cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr/
make install

再次换回GNOME

换啊换,换啊换

桌面环境又换到了GNOME

发行版也顺便换了好几遍

当然最后的结果还是GNOME+Deepin

中间还顺便尝试了仿Chrome OS的Budgie Desktop和仿Windows的Zorn OS

发现貌似没什么特点

这次的GNOME的配置是:

GTK主题:Zukitwo Dark Shell
shell主题:Moskva
开启的扩展:
Alternatetab
Applications menu
User themes
使用:GNOME Next PPA

扔图: