Rvm和rbenv环境变量冲突导致无法安装gem包

背景

root环境用rvm安装了ruby,但我需要在用户环境重装ruby,而且个人喜欢用rbenv,这就导致了我安装了rbenv的gem后,没有权限安装gem包。

Read on →

创建递归菜单

如果菜单的数据模型是这样的,在angularjs中怎样比较漂亮地递归渲染出所有菜单项呢?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
menuItems = [
  {
    "label": "level1",
    "link": "/A",
    "menuItems": [
      {
        "label": "level2",
        "link": "/A/a1"
      }
    ]
  },
  {
    "label": "level1",
    "link": "/B",
    "menuItems": [
      {
        "label": "level2",
        "link": "/B/b1"
      }
    ]
  }
]
Read on →

angularJS路由框架ui-router

简介

AngularUI Router是AngularJS的路由框架,和默认的$route不同,它将所有路由包装成可划分层级的状态机状态,路由路径在ui-router中不是必须的。由于ui-router的路由状态机是分层级的,所以使用ui-router可以非常方便地创建包含多个嵌入的子模板。

Read on →

新建angular项目

需要的工具

  • bower 前端包管理器
  • grunt javascript的makefile工具
  • yeoman webapp的流行脚手架
  • karma 测试套件

这里我使用了yeoman的一个angularJS的生成器yo,方便生成需要的全部零部件

Read on →

Tmux

基本操作

1
2
3
4
tmux new -s SESSION_NAME  # 新建会话
tmux new -s SESSION_NAME -d # 新建会话并放入后台
tmux ls # 列出所有会话
tmux attach -t SESSION_NAME # 进入某会话
Read on →

初识hadoop及map-reduce

搭建hadoop环境

hadoop环境搭建具体可以参考官方文档

搭建配置maven

map-reduce任务支持多种语言,但对java支持是最好的,所以这里说一下怎么搭建java的编译环境。

首先编译安装maven,并将MAVEN_HOME/bin加入PATH环境变量,这样就可以直接使用mvn命令了。这里说一下怎么利用maven编译生成我们后续示例中的jar包。

1. 使用maven新建一个工程

下面的命令创建一个包含java类org.myorg.WordCount的工程WordCount.

1
mvn archetype:create -DgroupId=org.myorg -DartifactId=WordCount
Read on →

使用octopress搭建github Pages

安装git,ruby

安装octopress并搭建博客

1
2
3
4
git clone git://github.com/imathis/octopress.git octopress
cd octopress
bundle install
rake install
Read on →

Mysql常用命令

1.远程链接mysql

1
2
3
mysql -h主机地址 -u用户名 -p用户密码 -P 端口号
grant all on *.* to ‘用户名’@’主机地址’ identified by ‘密码’
grant select on 数据库.* to 用户名@登录主机 identified by \"密码\"

2.修改密码

1
mysqladmin -u用户名 -p旧密码 password 新密码

3.显示数据库列表。

1
show databases

4.显示库中的数据表

1
show tables

5.显示数据表的结构

1
describe 表名
Read on →

Golang远程调用

go语言的远程调用包net/rpc非常简单,而且由于go不支持动态链接,如果想要获得程序的动态性,那么就只好依赖于远程调用。

Read on →
go

Js异步回调与闭包

很多地方讲解CoffeeScript/JavaScript都用了这么一个例子:

example.coffee 异步回调中的陷阱
1
2
3
4
5
chars = ['A', 'B', 'C']
for ch in chars
  setTimeout(->
    console.log ch
  ,10)
Read on →