Remove file from git source control but not delete it from drive

Git学习—-从git移除文件而不删除硬盘文件

从版本库中移除一个文件,停止对该文件的版本控制

The git rm command will allows you to remove a file from git control. The –cached option to git remove allows you to leave it on your hard drive. Every once in awhile a file gets checked into git that isn’t supposed to be there. Common examples are configuration files, project files generated by your IDE with personal settings and even the occasional object file that someone decided to check in. These files are needed, so often you can’t delete them entirely and the process of copying them somewhere else, removing them from git and then replacing is painful, not to mention prone to error. By adding the –cached option to the git rm command, you are able to remote the file file from git control while keeping the file in your working tree. They command syntax is:

git rm --cached file

Git will no longer track this file even though it is still on your hard drive. After running the above command, be sure to add an entry to your .gitignore file so that ‘file’ doesn’t show up in 'git status' and that it can’t accidentally be re-added later.

from : http://www.gitguys.com/how-to-remove-a-file-from-git-source-control-but-not-delete-it/


2013-12-02 git , beginner

Git学习笔记

Git 学习笔记,主要用来记忆常用命令。

.git 目录下文件

$>tree -L 1
.
|-- HEAD 			# git项目当前处在哪个分支里
|-- config 			# 项目的配置信息,git config命令会改动它
|-- description  	# 项目的描述信息
|-- hooks/ 			# 系统默认钩子脚本目录
|-- index 			# 索引文件
|-- logs/ 			# 各个refs的历史信息
|-- objects/ 		# Git本地仓库的所有对象 (commits, trees, blobs, tags) 
|-- refs/ 			# 标识你项目里的每个分支指向了哪个提交(commit)。

Generating SSH keys

生成 SSH keys

ssh-keygen -t rsa -C "youremail@example.com"

一直回车,将自动生成id_rsaid_rsa.pub文件。使用以下命令验证连接是否成功

ssh -T git@github.com

创建Git仓库

创建本地新 Git 仓库

git init

克隆远端仓库

git clone ssh://user@domain.com/repo.git

git commit

提交

  • 修改上次提交 不要修改已经发布的提交记录

      git commit --amend
    
  • 创建签名提交

      git commit -sm "commit msg"
    
  • 撤销本地提交,上一次提交修改内容会添加到暂存区

      git reset --soft HEAD~1
    
  • 回退一个commit版本,就好像这个commit从来没有提交过

      git reset HEAD^
      git reset HEAD~1
    
  • 强制撤销提交, commit-id 之后的提交都会被抛弃

      git reset --hard <commit-id>
    
  • 撤销之前提交的一个commit, revert 命令会创建一个新的 commit

      git revert HEAD
      git revert commitid
    

git checkout

  • 替换本地改动

    此命令会使用 HEAD 中的最新内容替换掉你的工作目录中的文件。已添加到暂存区的改动以及新文件都不会受到影响。

      git checkout -- <filename>
    
  • 分离HEAD

    一般HEAD都是隐藏在master后面,分离HEAD就是让其指向一个提交而不是分支名。使用以下命令可以分离 HEAD。

    git checkout commitID

git push

  • 将本地修改发布到远端

      git push <remote> <local-branch>
    
  • 强制推送本地版本到远端库

    如果想要删除远端仓库不小心提交的commit,可以使用这条命令,远端仓库之后的commit会被抹去

      git push origin HEAD --force
      git push -f origin master  # 将本地 master 分支强行推送到远端并覆盖远端修改内容
    
  • 推送到镜像repo

    例如本地关联的远端仓库是gitlab的,可以使用--mirror参数将本地库提交到github

      git push --mirror https://github.com/einverne/dotfiles.git
    
  • 删除远端分支 delete remote branch 以下命令二选一,个人推荐使用第二种,因为简单方便嘛:

      git push origin --delete <branchname>
      git push origin :<branch name>
    

git branch

分支相关命令

  • 查看远端和本地分支

      git branch -a, -all
    
  • 新建分支

      git branch <new-branch-name>
    
  • 切换到已经存在的分支

      git checkout <branchname>
    
  • 创建分支并切换到该分支

      git checkout -b <branchname>
    
  • 切换到master分支,合并分支

    合并不一定完全成功,可能遇到冲突

      git merge <branchname>
    
  • 删除本地分支

      git branch -d <branchname>
    
  • 强制删除未合并的分支

      git branch -D <branchname>
    
  • 重命名分支,重命名old-name到new-name,如果new-name存在,命令失败

      git branch -m old-name new-name
    
  • 创建新的空分支

    create a New and Empty branch , without any commit. And use git rm -rf . to delete all files in the new working directory. You need to run git version 1.7.2 or higher in order for the –orphan option to be supported.

      git checkout --orphan <branch name>
    

git remote

  • 添加远端仓库

    Git 将本地 master 分支内容推动到远程新的 master 分支,并且将本地 master 分支与远程 master 分支关联

      git remote add <name> <url>
      git remote add origin https://github.com/einverne/xxx.git
      git remote add origin git@github.com:einverne/xxx.git
    
  • 将本地分支推送到远端仓库

      git push <remote name> <local-branch-name>
      git push -u origin master
    
  • 显示远端仓库地址

      git remote -v
    
  • 删除远端仓库

      git remote rm <name>
    
  • 设置远端仓库地址,修改远端仓库地址

      git remote set-url origin git@github.com:einverne/repo.git
    
  • 给已存在origin远端添加URL

    如果远端origin存在多个url,使用 git push origin master 可同时将本地库推送到多个远端仓库。

      git remote set-url --add origin https://github.com/einverne/dotfiles.git
    
  • 显示远端信息

      git remote show origin
    

git fetch

下载远端所有改动到本地,不自动合并到当前

git fetch <remote>

git pull

更新与合并,更新本地仓库至最新改动

git pull

git tag

打标签

  • 创建标签

    创建 <tagname> 的标签,9fceb02 为commit id,使用git log可以查看提交的ID,一般可以选用前10位,如果唯一也可少选

      git tag -a <tagname> [9fceb02]
    
  • 显示标签

      git show v1.2
    
  • 推送特定tag

      git push origin [tagname v1.5]
    
  • 推送所有tags

      git push origin --tags  
    

git log

查看提交历史

  • 从最新提交开始显示所有提交历史

      git log
    
  • 显示指定文件的所有修改

      git log -p <file>
    
  • 谁,在什么时间,修改了文件的那些内容

      git blame <file>
    

git aliases

  • 修改config

      git config -e
    
  • 别名

      git config --global alias.co checkout  # 设置之后 git co 就代表 git checkout 了
      git config --global alias.br branch
      git config --global alias.ci commit
      git config --global alias.st status
    
  • unstage 在 smartGit 中经常使用的命令,存入暂存区,从暂存区移出

      git config --global alias.unstage 'reset HEAD --'
    

然后我就可以使用,git add <file> 来将文件加入暂存区,使用 git unstage <file> 来将文件移出暂存。

Tips

从git移除文件而不删除硬盘文件

Remove file from git source control but not delete it from drive 从git移除文件

The git rm command will allows you to remove a file from git control. The -cached option to git remove allows you to leave it on your hard drive. Every once in awhile a file gets checked into git that isn’t supposed to be there. Common examples are configuration files, project files generated by your IDE with personal settings and even the occasional object file that someone decided to check in. These files are needed, so often you can’t delete them entirely and the process of copying them somewhere else, removing them from git and then replacing is painful, not to mention prone to error. By adding the -cached option to the git rm command, you are able to remote the file file from git control while keeping the file in your working tree. They command syntax is:

git rm --cached file

Git will no longer track this file even though it is still on your hard drive. After running the above command, be sure to add an entry to your .gitignore file so that ‘file’ doesn’t show up in git status and that it can’t accidentally be re-added later.

from : gitguys

clone into a empty directory

克隆项目到空文件夹中,在空目录中

git init
git remote add origin PATH/TO/REPO
git fetch
git checkout -t origin/master

NOTE: -t will set the upstream branch for you, if that is what you want, and it usually is.

合并他人分支

查看当前项目下远程
git remote
增加新的分支链接,例如
git remote add other giturl
获取他人的远程更新
git fetch other
将他人的远程更新合并到本地分支
git merge other/master
同样也可用此方法同步更新 fork 的项目

为某一个Git仓库单独配置提交者信息

在需要修改的仓库中运行如下语句,写入当前仓库的 config 中

git config user.name "Your Name"
git config user.email your@email.com

该配置会写入 .git/config 设置中。

网站

强烈推荐项目:https://github.com/einverne/my-git 这是我从 @xirong fork 而来的项目,以后有好的 Git 内容我也会更新到该项目。


2013-12-02 git , ssh , Github , Gitlab

投影仪选购指南

数码投影仪,也称数码投影仪或数位投影仪。这是一种可以通过不同的接口同计算机、VCD、DVD、BD、游戏机、DV相连接播放相应的视频信号的设备。视频投影仪可以播放静态的图像或动态的视频,有些投影仪还自带了音响,具备输出声音的功能。这种设备广泛用于家庭、办公室、学校和小型娱乐场所。根据工作方式不同,视频投影仪有LCD, LCOS及DLP,DMD等不同类型。 投影仪

##几个名词

###分辨率

所谓“分辨率”指的是投影仪能够显示的像素数量。而“像素”是计算机上构成图象的单点。分辨率越高代表图像质量越好,越能表现出更多的细节。投影仪常见的几种分辨率格式:

分辨率模式 水平像素×垂直像素 全部像素数量(单位:万)
SVGA 800×600 48
XGA 1024×768 78.6
高清720p 1280×720 92.1
全高清1080p 1920×1080 207.3
WXGA 1280×800宽屏分辨率 102.4

其他分辨率见维基百科

每台投影仪都有一个“天生”分辨率(native分辨率,有时候也叫真实分辨率),标示了投影仪实际上一次能够投影的最大像素数量。换句话说,SVGA投影仪一次只能够显示48万像素。

这个数字听起来非常巨大,但是如果你使用的是一个常见的2米宽幅的投影屏幕,那么投影在屏幕上的每个像素将占用1/4厘米的宽度,而如果使用XGA投影仪的话,这一数字将会控制在1/5厘米以下,这样就可以比SVGA投影仪多显示60%的像素。用XGA投影仪放映,显示的影像将更加锐利清晰,并缓解了马赛克效应。

参考:维基 ty360 标准分辨率/最大分辨率

###流明 投影仪亮度表示的单位。“light out” 是投影机主要的技术指标, “light out”通常以光通量来表示,光通量是描述单位时间内光源辐射产生视觉响应强弱的能力,单位是流明。投影机表示光通量的国际标准单位是ANSI流明,ANSI流明是美国国家标准化协会制定的测量投影机光通量的方法,测定环境如下:

  1. 投影机与幕之间距离:2.4米。
  2. 幕为60英寸。
  3. 用测光笔测量屏幕“田”字形九个交叉点上的各点照度,乘以面积,得到投影画面的9个点的亮度。
  4. 求出9个点亮度的平均值,就是ANSI流明。

LCD投影机属于透射式投影方式,主要依靠提高光源效率、减少光学组件能量损耗、提高液晶面板开口率和加装微透镜等技术手段来提高亮度。DLP技术属于反射式投影方式,其主要通过改进色轮技术、改变微镜倾角和减少光路损耗等手段提高亮度指标。

参考:投影机标称光亮度

##投影仪投影成像原理

###CRT三枪投影仪 不多介绍,目前已被市场淘汰,更多详见百科

###LCD液晶投影仪 全称:Liquid Crystal Display,液晶投影仪,可以分成液晶板投影机和液晶光阀投影机。液晶是介于液体和固体之间的物质,本身不发光,工作性质受温度影响很大,其工作温度为-55℃~+77℃。投影机利用液晶的光电效应,即液晶分子的排列在电场作用下发生变化,影响其液晶单元的透光率或反射率,从而影响它的光学性质,产生具有不同灰度层次及颜色的图像。由于LCD投影机色彩还原较好、分辨率可达SXGA标准,体积小,重量轻,携带起来也非常方便,是投影机市场上的主流产品。

###DLP数字投影机 全称:Digital Light Porsessor,数字光处理器。DLP是一项使用在投影仪和背投电视中的显像技术。DLP技术最早是由德州仪器开发的。它至今仍然是此项技术的主要供应商。现在,DLP技术被很多许可制造商所采用,他们销售的产品都是基于德州仪器芯片组的。DLP以DMD(Digital Micromirror Device)数字微反射器作为光阀成像器件。一个DLP电脑板由模数解码器、内存芯片、一个影象处理器及几个数字信号处理器(DSP)组成,所有文字图象就是经过这块板产生一个数字信号,经过处理,数字信号转到DLP系统的心脏–DMD。而光束通过一高速旋转的三色透镜后,被投射在DMD上,然后通过光学透镜投射在大屏幕上完成图像投影。一片DMD是由许多个微小的正方形反射镜片(简称微镜)按行列紧密排列在一起贴在一块硅晶片的电子节点上形成的,每一个微镜都对应着生成图像的一个像素。因此,DMD装置的微镜数目决定了一台DLP投影仪的物理分辨率,例如一台投影仪的分辨率为600X800,所指的就是DMD装置上的微镜数目就有600x800=480000个。

参考:光处理器维基百科 投影技术 投影仪百度百科

###3LCD投影技术 3LCD投影技术是一种透射式投影技术,将灯泡发出的光分解成红、绿、蓝三种颜色的光,每种颜色分别透过各自的液晶板,最后通过棱镜显现出明亮清晰的图像。目前,3LCD技术由爱普生与索尼两家公司持有,并推出了多个尺寸与分辨率的液晶面板。

3LCD是一种三片式技术,通过分离三原色实现了自然、柔和的色彩,而单片式DLP投影系统在色彩表现上则更依赖于色轮设计,因此几年前曾有DLP投影机的色彩不如3LCD的说法。目前,两种技术在色彩上的差距已经大大缩小,但是色轮设计仍没有统一标准,不排除低价DLP投影机会出现降低色彩以换取高亮度的做法。

当然,3LCD技术也存在一些弊端,作为一种非数字化的技术,液晶板的寿命不及DLP芯片,为此上游厂商推出了无机液晶面板,相比有机液晶面板在寿命、对比度等方面有不小的提升。但是,在商教市场,很少有厂商与产品会明确标称采用哪种液晶面板。

参考:泡泡网

##选购 在了解这一些参数之后,进入电商网站,看投影仪的参数。有几个参数是必看的,像分辨率,流明,投影成像技术,因为我也是初看投影仪这种设备,对其他一些东西也不是很了解,所以以这些为参考以及我参考网上一些人的经验来谈谈一些想法。

###分辨率720P还是1080P 当然在钱包鼓鼓的情况下,分辨率能有多高就选多高了。目前市场上最高的1080P分辨率应该能够满足绝大多数人的需求,但考虑到价格问题,对于分辨率的问题可以稍微降低一些要求,据我观察,1080P的投影仪在京东上不下6000RMB。如果限于钱包问题,以及家用需求,退而求其次,我会选择分辨率可以接受但是价格也可以接受的720P或者WXGA。以上是我的情况,而下面是网上的经验之谈,因为1080P比720P分辨率多出2.25倍像素,高解析度是他的优势,配合相应的高清片源,将获得更加细腻的影响画面,特别适合对画质要求较高的用户。如果预算充足选购1080P是必须的。

如果手头的视频资源以720p为主,相信以6000元以下价格,720p投影机与WXGA投影机依然能够吸引不少用户的目光。但是,目前很多厂商已经将主要精力投入到全高清投影机的研发,这一市场很可能逐步萎缩。

关于720P投影仪市场萎缩的情况,网上也有相应介绍,因为在性能上,受到分辨率的限制,投影画面可以很大,但是无法让使用者感受到真正的高清,高画质,适合于对画质要求不高的用户,玩Wii游戏、看大屏幕电视或者DVD电影还是不错的。

###多少流明才算合适 流明越高,亮度也越大,但并不是亮度越大越好,对家用来说,我觉得2000以上的流明应该能够满足我的需求了。而我观察了在买的投影仪基本上都在2000以上了。以下是网上的一些介绍:起初,高清投影机主要定位高端用户,仅用于专业的影音间里,而且在使用时需要达到如同电影院般的全黑环境,因此投影机的亮度指标通常在1000流明左右即可。随后,家用投影机开始走入普通家庭,由于使用习惯与实际环境无法实现影音室的全黑效果,如今主流家用机的亮度已经接近2000流明。亮度不是唯一的标准,也不是越亮越好,1000流明的亮度足够普通家庭使用,除非你喜欢开着灯看大片。此外,如果居室面积很大,且投影距离超过5米,建议选择高亮产品。

###DLP还是3LCD?投影技术谁优谁劣? 对于这两项成像技术,在此之前我一点概念也没有,而了解之后对这两个成像技术也一点概念也没有。不过根据我浏览了很多商品参数之后,我发现目前市场上还是DLP的产品比较多。可能这个技术成熟了吧。貌似这项技术还涉及到支不支持3D成像。而网上是怎么说的:DLP与3LCD是当今两大主流投影技术,占有投影机市场绝大份额,而LCOS技术目前还处于发展阶段,其产品制造成本与售价相对较高。同时,随着投影技术不断进步,采用DLP或3LCD技术的家用高清投影机都拥有很好的画面显示效果。 首先在色彩方面,DLP高清投影机通过搭配6段高速色轮与极致色彩技术,让您不必再为色彩效果与彩虹问题担心。而在寿命与对比度方面,3LCD投影机通过应用无机液晶面板与自动虹膜技术,大大提升了液晶板使用寿命与画面动态对比度。所以说,目前已经不能简单的从色彩与对比度方面区别两大主流投影技术。

选购建议:虽然投影技术已经非常成熟,但是基于DLP与3LCD技术的高清投影机的画面风格并不相同,最好通过亲身体验来选择符合个人口味的产品。

参考:投影仪更多参数 选购指南


2013-12-01 投影仪 , 购物

InoReader使用感受--绝佳Google Reader代替品

这两天突然又莫名的怀念起Google Reader来,用到如今代替品,没有一个能让我有使用Reader的那种爽的感觉,想当时Reader是我所有Google产品中第一个记住快捷键的,在Reader界面我可以完全使用键盘浏览我想阅读的内容,这个感觉已丢失很久了.

我怀念Google Reader的快捷键, 怀念Google Reader的速度, 怀念Google Reader的分享,怀念Google Reader的搜索。尽管今天Google发布Newsstand整合了Play Magazines和Currents,可我依然找不到但是使用Google Reader的感觉,没有Web版更是让人无法接受。而让我感觉Google Reader又回来的是inoreader这款阅读器。清爽的界面,简洁的操作,丝毫不乱的快捷键让我找回了怀念很久的感觉。 Read more...


2013-11-26 InoReader , RSS , Feedly , Google Reader

LastPass New Design 新设计

From:LastPass官方博客

正如我之前在密码管理一文中提到的LastPass,现在已经成为我必不可少的一个生活工具LastPass甚至可以用来分享密码.最近LastPass 3.0发布,看看更新了什么.同样如果你需要注册LastPass,可以通过我的邀请链接这样大家都可以得到一个月的高级账户

lastpass 3.0

##干净设计不刺眼的感觉

官方的用词是这样的clean designandunobtrusive feel

lastpass chrome new design

Chrome插件界面更新变的小清新了.现在LastPass会自动在用户名密码栏填入密码,并且用户名密码栏最后添加LastPass可交互的按钮让你可选择多用户与密码填入,或者切换你想填入的其他功能,而这一功能在上一版中是在这个网页顶部弹出一栏选择操作.

如果保存过密码就会看到如下界面

lastpass fill

而如果没有保存过用户名密码,LastPass会询问你是否需要保存

lastpass save

如果该栏是创建地址栏,则询问你是否需要自动产生密码(Password Generator)

Password Generator

如果是购物表单,会出现你自定义的Profiles

profile

点击按钮展开可以快速选择想要的功能,如禁用此网站密码填入,生成密码,填入密码等等

menu

而点击Chrome展开LastPass可以快速搜索密码库,以前是只能打开密码库才能搜索密码的

icon

展开密码库的界面也同样重新设计了

design

##Android iOS版重新设计 官方用语:Enjoy updated Android and iOS apps, with a more powerful browser experience for easier navigating, site saving, and password generating. PS.只有高级版LastPass才能使用

android

高级版LastPass Android和iOS直接将LastPass集成到了浏览器能在浏览器中自动填入密码.

##LastPass Family Feature 可以多至五个人共享一个文件夹

share 五个人中任何一个人都能在同一文件夹中管理密码,LastPass将文档的协同工作搬到了密码管理

LastPass Team感谢原文: We’re Thrilled to Reach Another Milestone!

We are so thrilled to share LastPass 3.0 with our community. We hope you enjoy the clean design and less intrusive experience. As always, we owe a big “thank you” to our community for your continued support. We’re committed to the ongoing improvement of our service, and strive to provide a great experience for our users. Let us know what you think in the comments below!


2013-11-11 LastPass

CM10.2

我使用cyanogenmod(之后简称CM)也已经快一个礼拜了,而之前我一直都是原生ROM的忠实使用者,在使用了很长时间的原生ROM之后转而使用CM的ROM,才感觉的CM团队在背后的刻苦用心. 下面就谈谈CM相较于原生系统,几个比较贴心细节优化

##短信通知(弹出窗口,通知栏提示)

相较于原生系统中的短信,CM中短信在下拉通知栏中提供了Read,Call等直接操作短信的动作.别人的短信回复如果不需要回复,在原生系统中只有你点击通知栏中通知跳转到短信应用中去才会将此条短信状态变成已读,否则你的呼吸灯会一直处于有短信状态,而CM在通知栏的人性化处理,能够在通知栏读完短信之后直接将短信标注已读(这样就不会让呼吸灯一直亮了)或者Call Back直接打电话给短信发送者或者跳转到短信应用回复短信.而在短信应用的设置界面里面还能设置弹出短信窗口,在使用手机时遇到收到短信是非常方便的,省去了下拉通知在点击进入应用内部回复的过程,直接在弹出窗口就能够做应用内所作的所有事情,包括标注已读,回复.

##Quick Setting Panel中体验的一致性 在原生ROM中在设置WLAN时,点击其实是进入WLAN设置的一个”快捷方式”,长按才是开关WLAN,而蓝牙和飞行模式点击却是一个Toggle,直接能够开关蓝牙和飞行模式.在CM的ROM中将所有的操作点击变成Toggle,长按才进入复杂的内部设置,统一了操作的一致性.对于一个新手来说,如果使用原生的Quick Setting Panel一开始一定会摸不着头脑的.

##Quick launch shortcuts 这个是触发Google Now功能的扩展,从HOME键往上滑动能够触发Google Now,而CM的ROM能够提供更多的功能来扩充这个Quick launch shortcuts,我在Google Now右边添加了截屏,在左边添加了关闭屏幕,避免了过多的使用电源和音量实体键,延长使用寿命.

##Lock Screen 在之前版本的Android中slide解锁是能够进入相机的,而在之后更新的版本中锁屏界面从屏幕右侧滑动能够调用出相机,CM更是把这个功能扩展了,锁屏界面能够快速的进入你设定的任意五个应用,并且保留了原生ROM从右侧滑动调用相机的功能,默认情况下,CM的五个应用是浏览器,电话,音乐,短信,解锁.而你能够自定义任何操作.

##Profile 这是一个我非常喜欢的功能,在系统设置中可以设定相应的Profile,比如我经常玩Ingress,在打开Ingress之前我一定会打开GPS,打开流量,3G模式,关闭WLAN,那么我可以将以上内容设定成一个Profile名叫Ingress,下一次你只要切换到相应的Profile,所有的设置就已经是你设置好的了,一键免除所有烦恼.并且切换入口非常方便,你可以将切换Profile的按钮添加到Quick Setting Panel中,只有下拉通知就能够切换,或者系统已经默认集成到长按电源键中.其实很多第三方应用已经能够做这些了,原生ROM,我就用tasker做这一切,当时当这一切和系统集成,就让我倍感完美.当然你也可以设置HOME profile,在这个Profile中设定自动打开WLAN,同步,然后到家开启这个模式,抑或是设置上课模式,静音模式,然后就随意使用了.但是唯一让我感到遗憾的是貌似这个Profile只能手动的切换,不能自动切换,不过这已经能够满足我的需求了.

##通知栏中拍照 这个是让我比较意外的发现,竟然能够在通知栏开启相机,并且将相机缩小在一个很小的范围,点击那很小的区域就能够拍照,这个不是偷拍利器嘛,神了.并且相机启动速度也是很快,不会让你错过任何瞬间.

至于其他安全管理中的Privacy Guard,主题切换,Pie Controls,DSP….有的我也不懂,有的我也不会用,就我使用的感受来看以上已经是我觉得非常不错的优化了.

而唯一让我不满意的事情就是竟然数据连接信号不稳定.(PS.这是误解,数据连接是正常的,只是那段时间手机卡欠费了)

2013/11/11更新

##开启status bar左右滑动调节亮度 这个功能也是非常人性化的一个功能,我非常喜欢.


2013-11-11 Android , CM

Android 4.4 Kitkat

From:Developer Android站在开发这角度,消费者角度请看for consumer

  • 可供512M内存手机使用
  • Host Card Emulation(HCE),NFC相关
  • 打印

    • 打印机厂商可以用API打造自己的打印程序,用户可以在任何地方操作自己的打印机(Android@Home时代的到来啊~~)
    • 转化成PDF打印
    • 4.4预装Google Cloud Print,预装APP,如Chrome,Drive,Gallery,QuickOffice可以使用云端打印
  • Storage access framework 用图片比较容易说明问题
saf2 saf1
  • 低能耗感应器
    • hardware sensor batching,你的App在屏幕关闭或者系统休眠时依然能够使用感应器 目前只有Nexus 5有效,Android正和其他芯片厂商合作,争取将这个功能带给更多的设备
    • Step Detector and Step Counter ,步数检测与步数计数新API,同样目前只适用于Nexus 5
  • SMS provider , 这个不用解释,新短信API,以前没有API能够write入短信的provider,现在可以了.
  • 全屏模式 Full-screen Immersive mode , 隐藏状态栏(status bar),导航栏(navigation bar),即使有屏幕交互情况也不调出状态栏和导航栏,之前版本Android也是可以全屏的,但是只有点击就会显示状态栏和导航栏
    • 新手势,从屏幕上边缘滑下,或者下边缘向上滑可调出系统UI(状态栏和导航栏)
  • Transitions framework for animating scenes ,高质量的动画场景,TransitionManager
  • 半透明系统UI(translucent system UI styling),这个不用解释
  • 通知栏增强,能够显示文本,图标,图片,进度,计时等等
  • Chromium WebView
  • 屏幕录像(Screen recording)
    • 使用SurfaceView.setSecure()阻止录像,保证内容安全性
    • 通过Android SDK中adb tool使用adb shell screenrecord录像功能,或者在Android Studio DDMS面板使用
  • Resolution switching through adaptive playback
  • Common Encryption for DASH
  • HTTP Live Streaming
  • Audio Tunneling to DSP , Nexus 5 offers a total off-network audio playback time of up to 60 hours, an increase of over 50% over non-tunneled audio.这句话不用翻译吧,也就是离线关闭屏幕听歌可以将续航能力提高一倍
  • Audio monitoring
  • Loudness enhancer
  • Audio timestamps for improved AV sync
  • Wi-Fi CERTIFIED Miracast™
  • RenderScript Compute
    • GPU acceleration
    • RenderScript in Android NDK
  • Graphics
    • GLES2.0 SurfaceFinger
    • New Hardware Composer support for virtual displays
  • New Types of Connectivity
    • New Bluetooth profiles HOGP, MAP, and AVRCP
    • IR Blasters
    • Wi-Fi TDLS support
  • Accessibility
    • System-wide settings for closed captioning 使用VideoView的App可以使用一个新的API将字幕传送给视频
  • Support for international Users
    • Drawable mirroring for RTL locales 从右先左显示

kitkat


2013-11-11 Android , Kitkat , Google

Visual Studio文件扩展名作用

.ncb—- 无编译浏览文件(no compile browser)。当自动完成功能出问题时可以删除此文件。build后会自动生成.

.dsw—- 这种类型的文件在VC中是级别最高的,称为Workspace文件

.dsp—- 在VC中,应用程序是以Project的形式存在的,Project文件的扩展名为.dsp,在Workspace文件中可以包含多个Project,由Workspace文件对它们进行统一的协调和管理,每个工程都对应一个dsp文件

.opt—- 与dsw类型的Workspace文件像配合的一个重要的文件类型是以opt为扩展名的文件,这个文件中包含的是Workspace文件中要用到本地计算机的有关配置信息,所以这个文件不能在不同的计算机上共享。当我们打开一个Workspace文件时,如果系统找不到需要的opt类型文件,就会自动的创建一个与之配合的包含本地计算机信息的opt文件。

.clw—- 以clw为扩展名的文件是用来存放应用程序中用到的类和资源的信息,这些信息是VC中的ClassWizard工具管理和使用类的信息来源

readme.txt—- 这个文件每个应用程序都有一个,这个文件中列出了应用程序中用到的所有文件的信息,打开并查看其中的内容就可以对应用程序的文件结构有一个基本的知识

.h—– 这种文件为头文件,包含的主要是类的定义

.cpp—- 这种文件为实现文件,该种文件包含的主要是类成员函数的实现代码。一般来说,h为扩展名的文件和cpp为扩展名的文件是一一对应配合使用的

以下为详细列表:

.APS:存放二进制资源的中间文件,VC把当前资源文件转换成二进制格式,并存放在APS文件中,以加快资源装载速度。资源辅助文件。

.BMP:位图资源文件。

.BSC:浏览信息文件,由浏览信息维护工具(BSCMAKE)从原始浏览信息文件(.SBR)中生成,BSC文件可以用来在源代码编辑窗口中进行快速定位。用于浏览项目信息的,如果用source brower的话就必须有这个文件。可以在project options里去掉Generate Browse Info File,这样可以加快编译进度。

.C:用C语言编写的源代码文件。

.CLW:ClassWizard生成的用来存放类信息的文件。classwizard信息文件,ini文件的格式。

.CNT:用来定义帮助文件中“Contents”的结构。

.CPP或.CXX:用C++语言编写的源代码文件。

.CUR:光标资源文件。

.DEF:模块定义文件,供生成动态链接库时使用。

.DLG:定义对话框资源的独立文件。这种文件对于VC工程来说并非必需,因为VC一般把对话框资源放在.RC资源定义文件中。

.DSP:VC开发环境生成的工程文件,VC4及以前版本使用MAK文件来定义工程。项目文件,文本格式。

.DSW:VC开发环境生成的WorkSpace文件,用来把多个工程组织到一个WorkSpace中。工作区文件,与.dsp差不多。

.EXP:由LIB工具从DEF文件生成的输出文件,其中包含了函数和数据项目的输出信息,LINK工具将使用EXP文件来创建动态链接库。只有在编译DLL时才会生成,记录了DLL文件中的一些信息。

.H、.HPP或.HXX:用C/C++语言编写的头文件,通常用来定义数据类型,声明变量、函数、结构和类。 .HLP:Windows帮助文件。

.HM:在Help工程中,该文件定义了帮助文件与对话框、菜单或其它资源之间ID值的对应关系。

.HPJ:由Help Workshop生成的Help工程文件,用来控制Help文件的生成过程。

.HPG,生成帮助的文件的工程。

.ICO:图标资源文件。

.ILK:连接过程中生成的一种中间文件,只供LINK工具使用。

.INI:配置文件。

.LIB:库文件,LINK工具将使用它来连接各种输入库,以便最终生成EXE文件。

.LIC:用户许可证书文件,使用某些ActiveX控件时需要该文件。

.MAK:即MAKE文件,VC4及以前版本使用的工程文件,用来指定如何建立一个工程,VC6把MAK文件转换成DSP文件来处理。

.MAP:由LINK工具生成的一种文本文件,其中包含有被连接的程序的某些信息,例如程序中的组信息和公共符号信息等。执行文件的映像信息记录文件。

.MDP:旧版本的项目文件,相当于.dsp

.NCB:NCB是“No Compile Browser”的缩写,其中存放了供ClassView、WizardBar和Component Gallery使用的信息,由VC开发环境自动生成。无编译浏览文件。当自动完成功能出问题时可以删除此文件。编译工程后会自动生成。

.OBJ:由编译器或汇编工具生成的目标文件,是模块的二进制中间文件。

.ODL:用对象描述语言编写的源代码文件,VC用它来生成TLB文件。

.OLB:带有类型库资源的一种特殊的动态链接库,也叫对象库文件。

.OPT:VC开发环境自动生成的用来存放WorkSpace中各种选项的文件。工程关于开发环境的参数文件。如工具条位置信息等。

.PBI、.PBO和.PBT:由VC的性能分析工具PROFILE生成并使用的三种文件。

.PCH:预编译头文件,比较大,由编译器在建立工程时自动生成,其中存放有工程中已经编译的部分代码,在以后建立工程时不再重新编译这些代码,以便加快整个编译过程的速度。

.PDB:程序数据库文件,在建立工程时自动生成,其中存放程序的各种信息,用来加快调试过程的速度。记录了程序有关的一些数据和调试信息。

.PLG:编译信息文件,编译时的error和warning信息文件。

.RC:资源定义文件。

.RC2:资源定义文件,供一些特殊情况下使用。

.REG:注册表信息文件。

.RES:二进制资源文件,资源编译器编译资源定义文件后即生成RES文件。

.RTF:Rich Text Format(丰富文本格式)文档,可由Word或写字板来创建,常被用来生成Help文件。

.SBR:VC编译器为每个OBJ文件生成的原始浏览信息文件,浏览信息维护工具(BSCMAKE)将利用SBR文件来生成BSC文件。

.TLB:OLE库文件,其中存放了OLE自动化对象的数据类型、模块和接口定义,自动化服务器通过TLB文件就能了解自动化对象的使用方法。

.WAV:声音资源文件.


2013-11-09 VS , Microsoft , Knowledge

Markdown online Editor

之前不久我接触过Markdown,还写了一篇博客介绍MarkDown ,同时也找到了不少在线的Markdown编辑器.不过最近由赛恩推荐的Stackedit在线编辑器确实好用,而我之前是一直使用scribefire Chrome插件来发布Blogger文章,偶尔也使用Blogger后台,而最近Chrome下Blogger后台完全上不去,发生”There was an error while fetching stats. Please reload page.”错误,而scribefire最近在我启用二步验证之后也失效,幸而找到StackEdit这个现在编辑工具.用过一段时间才发现是如此的好用.下面就讲讲这款在线编辑器.

##网址 https://stackedit.io

##什么是Stack Edit Stack Edit 是爱尔兰人 Benoit Schweblin 创立的在线 Markdown 应用,支持发布内容到 Google Blogger,具备离线撰写和编辑功能。

##StackEdit 可以:

  • 管理多个 MarkDown 文档在线或脱机
  • 通过模板导出 MarkDown 或 HTML 格式文件
  • 云同步 MarkDown 文档
  • 支持 Google Drive, Dropbox 和本地硬盘驱动器
  • Post MarkDown 文档到 Blogger 、Blogspot、WordPress和Tumblr
  • 发布 MarkDown 文档在GitHub,GIST,Google Drive,Dropbox或任何SSH服务器
  • 分享一个及时渲染的 MarkDown 文档链接
  • 文档信息统计显示
  • 转换HTML到 MarkDown

##StackEdit支持:

  • 实时编辑、HTML预览并自动滚动定位到编辑处
  • Markdown Extra 支持 Prettify/Highlight.js 的语法高亮
  • LaTeX 数学表达式使用MathJax
  • 所见即所得的控制按钮
  • 可配置的布局
  • 支持多个主题
  • A la carte extensions
  • 离线编辑
  • Google Drive和Dropbox在线同步
  • 一键发布支持 Blogger,Dropbox,GIST,GitHub,Google Drive,SSH server,Tumblr,WordPress

##同类型在线编辑器 在介绍MarkDown这篇文章中提到的:

  • http://mahua.jser.me/
  • http://dillinger.io/
  • http://jianshu.io/
  • https://draftin.com/

但是这些都没有这个StackEdit功能强大.

##几个小技巧

  • 更新某一篇Blogger文章,需找到post id,也就是你打开需修改的文章,查看网页源代码,在<div class="post hentry">这个div第一个a标记中name属性的值就是post id.
  • 现在我已经养成了在Dropbox中新建md文件,有stackedit打开,编辑发布的习惯

参考:1 2


2013-11-01 MardDown , Blogger

学习使用MarkDown语言进行写作

##MarkDown语言是什么 MarkDown语言发明的初衷就是让互联网发布内容易读易编写,它用一种简单的语法将文字内容组织,转变成HTML语言发布在互联网上 官网

使用MarkDown这种语言的契机是想要给极客公园投稿,在回复的邮件中他们提到了这种语言。在简单了解之后简单的看了下它的语法。在他们的回复邮件中他们还给出了一个文章的模板—-可能吧。大家应该还记得可能吧每篇文章的排版模式吧!想当初禅叔应该就是用这种方式去写作的吧。使用MarkDown 写作让你全心全意的专注在写作的过程中,不必关注格式,排版,这就是这门语言发明的初衷。其他具体的内容可以参考:维基百科和我给出来的其他链接,上面都有非常详细的介绍。

##意外的收获 在查询MarkDown内容的时候,我还意外的知道了“简书”这样的一个网站。网站外观制作精美,通过网站的关于知道网站还在内测中,这个网站专注于写作,所以他的编辑器就是支持MarkDown的。在现在这样一个浮躁的社会没有多少人愿意静下来读一篇很长的文章,当然也少有人愿意写一篇很长的文章,不过我庆幸还有那么一群人能够做出这样的产品,还能有许多人在这个平台上写作,或许我们的社会需要那样的一批人才能更加丰富多彩。

##收集到的一些网站 小众软件 MarkDown工具

##在线编辑器

##MarkDown语法

  • http://markdown.tw/
  • http://wowubuntu.com/markdown/
  • http://jianshu.io/p/q81RER

2013-11-01 MarkDown

Google+

最近文章

  • vim presentation 大纲
  • Vim 寄存器 Vim 的寄存器可以看成 Vim 中额外用来存储信息的区域,虽然看不见,但是如果使用 x, s, y, p 等等命令的时候都无意识的使用到了 Vim 的寄存器(register).
  • vim normal 命令 替换::%s/^/#/g visual block:ggI# 注释第一行后用.重复执行每一行 我们可以在第三种方法之上用normal命令实现上述需求,步骤:
  • Vim 中的宏命令 Vim 的设计哲学中有这样一句话:”if you write a thing once, it is okay. However if you’re writing it twice or more times, then you should find a better way to do it”.
  • headless chrome puppeteer Headless 最早的时候在 PhantomJS 听说过这个概念,后来在 GitHub 各种项目中总有人不断提起这个概念,而最新看到的新闻便是 Chrome 开始支持 Headless,也正激起了我了解的欲望。