come back
我想家了,从大学开始,我距离家跨好几个省,在外边过的还算适应,一切也还好。工作后每年回一次家,可是就回这一次家,火车票买不到,我不得不考虑下在家附近工作了…
Compare
最近陷入深深的矛盾中,平时休息离家太远压根不可能想回家,过年一般也就七八天假,难得有一次要回家,可恶的12306,我没用任何刷票软件,我只是没有用IE罢了。我做好了一切准备,或许只是因为我准备了,换来了12306的“非法提交”,然后没然后了,我只是有点儿再也不想抢长途火车票的想法了…
无可否认上海很不错,但我决定回家了,回家是不需要理由的,但:
- 过年时节,再也不用受12306的气了
- 到家那天,算好的是母亲生日
- 让父母享受下现代科技,和远嫁连云港的姐姐视频聊天
- 放假时节,想回家就到家了…
总结
短短一年时间,辞职两次,一次为了Linux,一次为了回家。裸辞两次,裸辞是一种态度——心无旁骛
learn linux
许多尝试过Linux过的,说起Linux总是一堆问题,外加一堆不习惯。我厌倦了Windows,尤其是中国特色下的 Windows,厌倦了杀毒软件,厌倦了盗版软件,所以决定换Linux。在换Linux的过程中,不能说没有问题,但基本是一帆风顺的,所以计划写本文。
How to learn Linux?
说实话,我学Linux(Ubuntu)并不久,不敢妄言怎么去学Linux,只是分享下我是怎么学Linux的。
No VMs
不要用虚拟机,也不建议刚装Linux,在Linux下装虚拟机装Windows。虚拟机的性能会大打折扣,虚拟机下优盘挂载、共享文件、屏幕大小等也不是一开始就合适的,所以不建议使用虚拟机。
Ubuntu支持wubi.exe,但我推荐最好是全新安装,安装一个系统最好,双系统也还好。
Habit
不要说什么不习惯,我想说和Windows不一样就对了,本身就不是Windows。声明下,不要提到Linux就是命令行,图形界面已经很成熟了。Linux下可以说没有不能改的,同时Linux发行版众多,和Windows习惯相同的也是有的。
Install
我推荐全新安装Linux,但是安装盘有时候并不是那么好制作,Windows下有名的工具UltraISO,并不能制作可用的Ubuntu启动U盘。不过制作好的Linux LiveCD功能可是相当强大的,Windows下工具也是有的:UNetbootin && Live USB Creator
看到这里,我建议有机会搞个LiveCD启动下玩玩。(注意备份资料,误操作全新安装会丢失硬盘数据),进入Linux后很多安装都是图形化的(如Ubuntu,SUSE,Debaian,Fedora,LinuxMint…),保留以前系统的,务必选择高级,自定义分区,不会破坏现有系统和引导的。
Guide
学习Linux,最好有本书作为指导,指导方向。版本选择可以选和书一致的,不过新几个版本也没有问题。建议:用长期支持的稳定版本!
SoftWare
软件安装尽量直接用软件中心的图形话界面,初学请避免编译安装。编译安装很好很强大,但是有不少人死在了无尽的编译中。
Linux下软件很丰富,可是你用的不一定有,有些游戏真的不能玩,但是Linux下有游戏,有不少游戏。举个例子,迅雷没有,可是同类的下载软件有一堆…
很多没有QQ就活不了的,我想说:你想用的QQ真不怎么有,虽说Linux下有解决方案,可是问题不是Linux,问题是永远不会是第一腾讯!!!
Linux下最直接的是WebQQ, 然后是Pidgin+lwqq插件,然后还有Wine和收费版的Wine:CrossOver
总结
想学Linux的就勇敢去学,失败的人总是在找借口,成功的人总是在找方法。
slice
“不会slice,绝不能说会python”,slice的重要性不言而喻。
Basis
- index start with 0
- support negtive index
- [included:excluded:step] eg:
[:]
,[::-1]
- work with list, tuple and string
step
1 | In [1]: e = range(6) |
- e[::-1] == e[-1:-7:-1]
- slice切片中索引可以超出实际范围
- 带有步长的切片,索引顺序和步长方向一致
- 切片总是新产生一个对象,而不是改变原有对象
总结
Just do IT
mailcap
Tencent === Trash
,微云下载的文件总是用gedit打开,firefox如是说。有谁能想到,腾讯微云下载的文件有着一样错误的Content-Type: "application/octet-stream"
The Way to fix it
Ubuntu 下,命令行执行:
1 | echo 'application/octet-stream; nautilus --no-default-window --no-desktop %s; test=test -n "$DISPLAY"' >> ~/.mailcap |
其实就是向家目录下.mailcap
文件追加上述命令单引号内中的内容。(文件不存在则新建)
reason
微云下载文件时,HTTP Response headers,中使用了不是Trash不可能使用的Content-Type: "application/octet-stream"
,这是什么鬼文件,系统说他不认识,你试试gedit吧。
上面的解决方法是,application/octet-stream
类型的文件用nautilus打开(在文件夹中显示),之所以没有定义到确定的应用,因为我常用的有zip和pdf两种,只好折中使用nautilus了。
总结
firefox中下载的文件总是用gedit打开,我气愤不止一次了。我用Linux,为什么用QQ,因为有人用QQ,为什么是微云,因为有用QQ发的文件,我只好借用微云,然后浏览器下载下来。
感谢IRC: Cork
tuple change?
在python中元组tuple是不能改变的,列表和字典是可以改变的。
change
1 | In [1]: l = [1, 2] |
总结
上述,元组的项目是列表,改变了列表。元组有没有改变,自己掂量吧…
push -f
不要用root用户,不要用force参数,这都是老生常谈的话题了。
权利越大,责任越大,可是总是有人使用…
git push -f
实话是说,使用force闯祸了…
git提交的多了,难免有些错误想要去掉,干净的提交履历确实好看,也更容易表明做了些什么。
一行代码,第一次改错了,push到master分支了,就一行。(就一行,唯一的一行,所以唯一的一次没有另开分支。)
所以我就回退了一个版本,重新修改force提交了,按说也没有多少问题,可是CI(持续集成),拉到了那个错误提交的版本,然后无法拉到其它更新的版本了…
FiX IT
首先我想的是,恢复出那个版本。习惯性的新开分支,锁定到第一次错误提交后的那个版本,然后修改,然后pull request。那个版本出现了,不是孤立的了,可是CI仍然不能拉到更新的版本。。。
reset
重新来,新开分支,reset
一堆修改,然后pull request。“改或者不改,CI的版本就在那里,不增不减。”
哎
最后,我大师出马了。。。危难时刻还是有大师好啊…
总结
自我总结,本次Fix失败,主要原因是一直新开分支,采用了错误的方法。丢失了原本该有的胆识,不过话说回来,master分支搞错是会死人的。(虽说git仓库还是容易恢复,不易于被恶意破坏)解铃还须系铃人,force闯的祸,应该用force去修复
,最后感谢大师。
Which fm
身为程序猿,带耳机早已成为习惯,什么歌曲真心无所谓,只是带耳机的同时,和外界相对隔离起来。
Radio/fm
Linux 下有款软件:Guayadeque,自带好多电台,我的是1.2W+,如果不够我再提供个网址shoutcast,如此多的电台,不怕没有我爱听的。
jing.fm
jing 据说是一款小众的电台,据说刚要发展就被抄袭的电台。所以我还是觉得支持下小众。
jing 传说的强项之一就是,自然 话语言搜索,我尝试了下工作
,编程
之类的没有结果,然后试了下coding
和debug
这两个奇葩分别对应一两首奇葩歌曲,这是耍我么???
jing有个很严重的毛病,至少我是这么认为,经常性自己暂停!
kugou.com
- kugou.fm 打开内容是奇葩的 douban.fm (此处指 kugou.com –> 电台)
电台就那么99个,同样的电台同样是重复,只有99个电台,总是重复。
你重复,我只好换了。
douban.fm
经常莫名的插播广告,声音广告那种。点击不再播放,会误杀一首歌曲。
我评价:垃圾货一个!整个douban都是。
fm.baidu.com
我是骨粉,从来没觉得百度好过。百度的电台实在不咋地,给你看一个品质设置,故意给你看个低品质。
一副自以为很牛的样子,牛到谷歌搜的都是百度搜索的自页面,牛到打开页面都是百度转码的符合手机的版本。
俺浏览器支持手机,也是俺的错么。百度统计,会在左上角爆出百度的ico。
借用我家大师的话:百度===垃圾中的战斗机
@2014-11-03,用百度音乐盒听几首新歌,然后弹窗了个百度音乐人广告,点击空白不消失,点击ESC也不行,丫的想去地狱么?你当我不会关闭标签页么!
@2014-11-03,MD fm也来广告了,能嵌入弹窗推广,你丫还有什么不能,终生不用!!!
另,百度的一键存到百度云没有了,默认都在云音乐,so批量下载没有了,不是会员别想来。。。
总结
戴上耳机,听着Radio,Coding…
bash
my bash
声明
本文不是介绍bash的,当然也不含有bash历史,本文写的很随意,如果你不喜欢这些,请移步。
有高见,欢迎来IRC: /join #zh-cn
PS1
整一个个性的提示符PS1
,我的提示符:^_^:~$
export PS1=”[\e[00;37m]\n[\e[0m][\e[00;34m]^_^[\e[0m][\e[01;31m]:[\e[0m][\e[00;36m]\w[\e[0m][\e[01;33m]\$[\e[0m][\e[00;37m] [\e[0m]“
点击上面的提示符 or bashrcgenerator,定制一个属于自己的提示符吧。
使用该提示符,将生成的代码复制粘贴到~/.bashrc
文件即可。(其实是export
一个常量PS1
,所以有必要放在PS1
赋值的后边,以便生效。)
唤醒历史命令补全
将下述代码复制粘贴到~/.bashrc
文件,然后输入部分命令再使用上下键试试。
bind ‘“\e[A”: history-search-backward’
bind ‘“\e[B”: history-search-forward’
控制命令$?
;
: 组合多个命令,按循序执行。&
: 使命令开启一个子Shelll并在后台执行。&&
: 前面命令成功后,执行后边命令。||
: 前面命令执行失败后,执行后边的命令。
重定向
>
: 重定向输出。(新建,会覆盖)>>
: 重定向追加输出。(追加,会新建)<
: 重定向输入,一般从文件读入等。<<
:<< "str"
,重定向输入,遇到str
自动结束。|
: 管道,不解释了。*****
五星级。
- 标准输入(stdin):代码为0,
0< or 0<<
- 标准输出(stdout):代码为1,
1> or 1>>
- 错误输出(stderr):代码为2,
2> or 2>>
- eg:
COMMAND &>/dev/null &
orCOMMAND 1>/dev/null 2>&1 &
# 重定向输入,并后台运行。
.bashrc at Ubuntu
1 | alias ga='git add' |
经过一番折腾,激活了git的自动完成,有自动完成的别名才有意义。