分类 Tools 下的文章

我的macbook应用清单

关于

要不要买mac

不买:

  • 需要用到仅在windows下才有的工具
  • 玩游戏较多
  • 工作环境里没其它人用mac
  • 没钱

除了上面的几条,建议买mac,一步到位不折腾。

买啥型号

  • 开会多:air或macbook
  • 开发多:mbp13″中配
  • 不差钱:mbp15″顶配

基本环境

  • Homebrew + cask

    mac必装工具之一,类似yum或者apt-get一样快速安装应用的功能。

  • git

    版本控制工具,即使公司用的是svn,自己的一些文档用git做一些简单版本控制也是极好的。

  • iTerm2

    代替terminal,提供了不少扩展功能,我最喜欢的是自动完成和分屏广播。

    iterm2

  • zsh+oh my zsh

    代替bash,样式更美观、提供了一些扩展功能,对git也提供了很好的显示支持。

    zsh

  • Docker

    mac下的docker主要贡献是调试应用更简单了。

  • BetterZip

    压缩包查看和解压工具,把这个也列上的原因是很多人推荐的解压工具没有查看功能只能解压缩让我很不习惯。

    betterzip

  • 妈妈再也不用担心我的macbook发烫了

    mac上看flash会发烫,在各大视频站支持html5先凑合着用这个吧。

Read the rest

我们究竟要用Docker做什么

容器化与轻量

一谈起docker总是会在各种地方看到轻量这个词,甚至会有一种通过docker启动一个服务会节省很多资源的错觉。

但是docker总归不是一个资源优化技术,所谓“轻”也只是相对于传统虚拟机而已。

相对于传统的虚拟技术,docker提供的容器化方案优势在于:

  1. 虚拟化额外的资源占用更少了
  2. 部署、启动和销毁的时间更短了
  3. 部署、启动和销毁的工作量更少了

但相对于不使用容器化方案来说:

  1. 占用的资源更多了(可以忽略)
  2. 启动、销毁的时间增加了(可以忽略)
  3. 部署的时间和工作量变少了

也就是说,相对于不使用容器化的方案,docker在效率方面主要的贡献是可以在不增加性能消耗的情况下,降低部署服务的工作量,提高部署效率。

虚拟化与隔离

这里先抛掉神乎其神的docker,考虑一下传统的虚拟化技术。传统的虚拟化技术在牺牲了性能之后换来了什么?最大收益大概是更好的隔离性。… Read the rest

查找maven工程中循环依赖的脚本

git-pretty

git-pretty

对应的graphviz代码:

使用git与gitlab进行版本管理(2)

在部门内做了一次关于git使用方面的分享,做了一个ppt,准备材料的过程中发现git总是比自己想象的更强大,也更复杂,虽然每天都在用git,但接触到的东西仍然是冰山一角而已。

下面是演示ppt,推荐使用chrome观看,如果iframe显示有问题可以点这里

注:使用空格或方向键翻页。

Read the rest

使用git、git-flow与gitlab工作

安装

下载 git OSX 版
下载 git Windows 版
下载 git Linux 版

Linux下可以直接用apt-get install git或者yum安装。

开始使用

注:这篇教程里所有git操作在命令行下执行,windows下可以右键-git bash打开命令行。

如果有人告诉你某某项目的git地址:
git clone username@host:/path/to/repository

或者是你只想自己折腾一下,建立一个空白的版本库:
git init

版本控制

本地版本库

要提交代码到git仓库需要两个命令:
git add
git commit -m “代码提交信息”

要撤销提交:
git reset HEAD

要从从版本库恢复文件:
git checkout —

在git文件夹中实际存在三个区域:

实际目录:实际修改的文件。
待提交区:暂存准备提交的内容,提交之后被清空。(也叫做index区)
已提交区:提交到本地git版本库的内容,有版本号。

对这三个区域的操作都可以在本地离线完成。

 

完整一些的状态图如下:

查看文件状态:
git status

文件总共四种状态:
与git

Read the rest

试用trello

需求

最近开发环境从windows转到了linux,之前用的正顺手的todo list废掉了,找了半天也没找到一个合适的todo软件,只好凑合着先用便签。

同时,最近在团队开发的时候遇到了一些协作上的问题,最严重的两个表现就是:
1、某个事情开会的时候分配了,被分配的人把这事忘了,然后就没有然后了。
2、某个事情分配了,被分配的人把事情做完了,然后就没有然后了。

所以最近一直筹划着忙过这一阵之后抽空自己写一个的todo软件,最初的设想是:
1、软件要随手打开,添加一个新任务的代价要比写到记事本里还低。
2、要能直接在看到所有要做的事情。
3、要能对任务进行归类和排序。
4、可以看到团队中其他人的状况。

最初设想的软件原型是list&stack,界面就是两个列表:list和stack。list里规划好的要做的事情,stack里是正在做的事情。
后来把list改成了timeline,可以画出几个timeline:todo、watch、wait、unsure……等等。每一件事情抽象成一个… Read the rest

Linux系统使用学习笔记:日常操作

Shell热键

Tab*2
命令补齐

Ctrl+C
中断当前程序

Ctrl+D
=exit

切换终端
文字模式CTRL+ALT+F1-F6
图形模式CTRL+ALT+F7
启动xwindow:startx

命令

关机

shutdown
关机

sync
将数据同步写入硬盘中

reboot
重启

poweroff

halt

系统管理

ls
列目录
参数
-al
列出所有的文件详细的权限与属性
 
    当为[ d ]则是目录,例如上表档名为『.gconf』的那一行;
    当为[ – ]则是文件,例如上表档名为『install.log』那一行;
    若是[ l ]则表示为连结档(link file);
    若是[ b ]则表示为装置文件里面的可供储存的接口设备(可随机存取装置);
    若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。

info
chm版man
快捷键

A B
空格键 向下翻一页
[Page Down] 向下翻一页
[Page Up] 向上翻一页
[tab] 在node 之间移动,有node 的地方,通常会以* 显示。
[Enter] 当光标在node 上面时,按下Enter
Read the rest

Linux系统使用学习笔记:文件系统

分区Pattern

分区基础知识

主要启动记录区(Master Boot Record, MBR)

可以安装启动管理程序的地方,有446 bytes

分割表(partition table)

记录整颗硬盘分割的状态,有64 bytes

每个分区对应的文件
主分区1-4
扩展分区5-n:IDE5-63 SATA5-15

文件系统类型

ext2/ext3
是Linux适用的档案系统类型。

physical volume (LVM)
这是用来弹性调整档案系统容量的一种机制, 可以让你的档案系统容量变大或变小而不改变原有的档案数据内容

software RAID
利用Linux操作系统的特性,用软件模拟出磁盘阵列的功能

swap
就是内存置换空间!由於swap并不会使用到目录树的挂载, 所以用swap就不需要指定挂载点

vfat
同时被Linux与Windows所支援的档案系统类型

目录

目录说明

/ (root, 根目录):
与开机系统有关
 

以下目录不可与根目录分开
/etc:配置文件
/bin:重要执行档
/dev:所需要的装置文件
/lib:执行档所需的函式库与核心所需的模块
/sbin:重要的系统执行文件
Read the rest

分类目录