分类目录归档:电脑网络

OmniPlan 使用

基本流程

  • 创建项目
  • 设定开始时间/结束时间
    • 构思阶段用「未确定」日期
    • 普通用「从固定开始时间向前」
    • 倒推用「从固定结束时间后退」
  • 创建里程碑(重要变更或新阶段开始)
  • 创建任务
  • 编辑工作周
  • 设置计划表例外
  • 设置任务持续时间
  • 分组任务
  • 使用关联线连接任务(表示的是任务的依赖关系)
    • 完成->开始(A完成B才能开始)
    • 开始->完成(A开始B才能完成)
    • 开始->开始(A开始B才能开始)
    • 完成->完成(A完成B才能完成)
  • 创建资源
  • 分配资源
  • 个别设置计划表例外
  • 分级资源
  • 设置基线
  • 查看重要路径
  • 更新任务完成情况

其它信息

  • 重要路径
    • 关联性任务
    • 吊床任务(该吊床任务的时间受开始时间和结束时间约束。一般是前一个任务完成后才能开始该任务,且该任务的截止时间也被后面的任务约束了)
  • 分级确定占用资源优先级的顺序
    • 要求在特定时间结束的需求
    • 任务优先级,数字越大越优先
    • 任务大纲中的位置,越高越早

查明 git 中文件被哪条规则 ignore

如果配置了复杂的项目以及全局 ignore 规则,那么在文件被意外 ignore 的时候很难马上查明被哪条规则 ignore 了,这个时候可以用 git check-ignore 来查明。

git check-ignore -v pathname...
$ git check-ignore node_modules
node_modules

$ git check-ignore node_modules -v
.gitignore:4:/node_modules  node_modules

$ git check-ignore a.tmp
a.tmp

$ git check-ignore a.tmp -v
/Users/xx/.gitignore_global:14:*.tmp    a.tmp

References

Git 永久移除文件

Git 基于内容寻址的文件系统及数据对象1等设计,默认情况下,文件每次变更都生成一个副本。如果需要移除已经 push 到远程仓库中的文件,那么仅当前 commit 删除 ignore 并不能完全地移除掉对应的文件,还需要把其从所有的历史记录中移除才行。

这个需求可以通过 git filter-branch 来完成,但这个命令偏底层,具体到删除文件这个场景上,可以使用 bfg-repo-cleaner 这个工具。这个工具功能挺多的,具体参考官网文档或使用时的提示。

下面是一个删除指定目录的流程

git clone --mirror xxRepo   # 需要在 mirror 模式下操作
cd xxRepo
java -jar path/to/bfg.jar --delete-folders "{build, dist}" --no-blob-protection
git reflog expire --expire=now --all && git gc --prune=now --aggressive
git push

参考

Mac LaTeX 基础环境搭建

可以直接安装完整的 MacTeX,但这个会比较大,这里记录的是安装最小 TeX 环境。

# 这里用 Homebrew 安装,也可去 MacTeX 官网下载 BasicTeX
brew tap phinze/cask
brew install brew-cask
brew cask install basictex

添加 PATH

# Fish shell
set -x PATH /Library/TeX/texbin/ $PATH
# bash/zsh 等
export PATH=/Library/TeX/texbin/:$PATH

安装中文 CTeX 宏集

sudo tlmgr update --self --all
sudo tlmgr install ctex environ trimspaces zhnumber

如果编译(参考下方命令)时报类似下面的错误,考虑用 tlmgr 来安装对应的包。

! LaTeX Error: File `environ.sty' not found.

继续阅读

Mac 下 vim 无法复制到系统剪切板的问题

Mac 下,如果在 VISUAL 模式下选择了内容,然后 "+y 没法复制到系统剪切板,先用 vim --version | grep clip 来查看 vim 的 clip 功能支持情况。如果没开启 clipboard 模块,那么考虑用 MacVim 来替代。

编译安装 MacVim,替换掉系统自带的

brew install macvim --with-override-system-vim

如果编译报类似下面的错,尝试启动 XCode 看看是否有提示需要安装必要工具或同意协议等,参考此 issue

** BUILD FAILED **


The following build commands failed:
    StripNIB English.lproj/Preferences.nib
(1 failure)
make[1]: *** [macvim] Error 65
make: *** [first] Error 2

或者直接安装 MacVim 后 alias

alias vim="/Applications/MacVim.app/Contents/MacOS/Vim"

参考

Vim 编辑 fish 文件启动慢

使用 fish shell,尽管不需要经常编写 fish 脚本,但偶尔可能更新下 fish 配置。但在使用集成了 vim-fish 插件的 Vim 时,打开 fish 文件非常慢,以前一直也没细究,今天找了下解决方案。解决后,虽然还是会比打开别的文件慢,但已在接受范围内。

解决方案:在 vim 配置文件中尽可能地前面添加

if &shell =~# 'fish$'
    set shell=sh
endif

参考

排查 Mac 不能自动睡眠的问题

最近发现工作的 MBP 不能在一段时间后自动睡眠了,根据官方资料以及其它资料确认了开启了自动睡眠的电源设置,关闭了共享、关闭了蓝牙后还是没生效。

后来看到了 pmset(power management) 这个命令,在 pmset -g 命令结果中看到了一个软件名字,在其对应的设置中翻看了一下,关掉其中一个选项后就能正常自动睡眠了。
继续阅读

git pull 与 rebase

最初使用独立的工具 git-up,后来 git 支持了同样的功能,通过配置 git config --global alias.up 'pull --rebase --autostash 即可达到同样的效果。

如果希望在 pull 的时候直接使用 rebase 机制,可以像下面这样配置

git config --global pull.rebase true
git config --global rebase.autoStash true

git pull 效果

git pull 效果

git pull —rebase 效果

git pull --rebase 效果

MacOS 中切换 JDK

倘若装有多个版本,特别是从 8 跨到 9 这个分界线,如果是基于 IDE,那么一般使用 IDE 提供的 JDK 设置来指定就可以了。但如果是直接命令执行,那就需要来个方便切换版本的方法。

对于 MacOS,只需要设定 JAVA_HOME 这个环境变量就可以了,甚至不必要把这个路径添加到 PATH 中。

同时,在 MacOS 中,JAVA 相关有个好用的内置工具:/usr/libexec/java_home

$ /usr/libexec/java_home -h
Usage: java_home [options...]
    Returns the path to a Java home directory from the current user's settings.

Options:
    [-v/--version   <version>]       Filter Java versions in the "JVMVersion" form 1.X(+ or *).
    [-a/--arch      <architecture>]  Filter JVMs matching architecture (i386, x86_64, etc).
    [-d/--datamodel <datamodel>]     Filter JVMs capable of -d32 or -d64
    [-t/--task      <task>]          Use the JVM list for a specific task (Applets, WebStart, BundledApp, JNI, or CommandLine)
    [-F/--failfast]                  Fail when filters return no JVMs, do not continue with default.
    [   --exec      <command> ...]   Execute the $JAVA_HOME/bin/<command> with the remaining arguments.
    [-R/--request]                   Request installation of a Java Runtime if not installed.
    [-X/--xml]                       Print full JVM list and additional data as XML plist.
    [-V/--verbose]                   Print full JVM list with architectures.
    [-h/--help]                      This usage information.

所以,通过 /usr/libexec/java_home -v 1.8 这样的形式即可把 JDK 切到指定版本(这里是 8,当然,需要先安装对应的版本)。

然后给 bash/zsh 等 shell 添加上一个 function 就可以简单地来切换了,我用的是 fish,在 ~/.config/fish/functions/ 下添加一个 setjdk.fish,填写以下内容,那么就可以在终端中使用 setjdk 1.8 / setjdk 9 的形式来切换到 JDK8 和 JDK9 了。

继续阅读