Linux 常用命令记录
发现每次需要在Centos里干什么事的时候,都要搜索一把对应的命令是啥,一次又一次( ̄﹏ ̄;)。这次下决心把我用到的命令慢慢全记录下来。免得查来查去浪费时间。
查看端口被谁占用,然后干掉它。
lsof -i:4000 # 查看4000端口是由哪个进程占用,获取进程号PIDps -ef|grep 43254 # 查找进程号对应的程序kill -9 43254 # 干掉它
查看所有端口
netstat -ntlp
压缩
tar –czvf xxx.tar.gz xxxtar -xzvf xxx.tar.gz
firewall
# 列出规则sudo firewall-cmd --list-port# 添加规则sudo firewall-cmd --zone=public --add-port=6022/tcp --permanent# 移除规则sudo firewall-cmd --zone=public --remove-port=6022/tcp --permanent# 向指定网段开放指定端口sudo firewall-cmd --permanent --add ...
跨浏览器调用总结
在行业软件的环境中,客户方通常拥有很多套B/S软件系统,可能各自对浏览器有着特殊的要求,比如必须用chrome访问,必须用IE访问等。当去做一个集成类的B/S系统时,就出现了需要唤起特定的浏览器去打开特定的url的场景,笔者根据自己的经验对可以采取的方案进行了总结。
方案一、使用插件及引擎
IE->Chrome
通过安装google-chrome-frame框架,然后使用gcf://协议去指定IE调用google-chrome-frame去渲染。但需要注意的是,谷歌浏览器内嵌框架从2014年2月25日起已经停止维护更新。
Chrome->IE
通过安装Chrome扩展组件,如IETab,Open IE等,然后在js中调用。由于行软环境通常无法访问外网,而且谷歌应用商店在墙外,所以开发者需要直接提供.extension文件供客户安装。有一定的实施难度。
方案二、通过ActiveX控件
IE->Chrome
通过js的ActiveXObject对象来调用Chrome。需要注意的是这种方法需要修改浏览器的安全级别允 ...
设计模式演绎-单例模式
定义
Ensure a class has only one instance, and provide a global point of access to it.
确保某一个类只有一个实例,而且自行实例化并向整个系统提供整个实例。
通用类图
单例模式类的构造方法是一个私有构造方法
单例模式类的属性包含自身,并限制为private static final类型,默认调用自身的构造函数
单例模式类提供static的getSingleton()方法供外部引用
通用代码public class Singleton(){ private static final Singleton singleton = new Singleton(); //私有静态属性 private Singleton(){} //私有构造方法 public static Singleton getSingleton(){} //引用者必须通过该方法获得实例对象 public static void doSomething(){} ...
读《简约之美 软件设计之道》
书籍信息
中文书名: 简约之美:软件设计之道英文书名: Code Simplicity: The Science of Software Design作者: [美]Max Kanat-Alexander译者: 余晟
阅读感悟
软件是必然要变化的,变化是常态;有变化就需要维护,随着时间的推移,维护成本会远远超过初期开发的成本,占据成本的大头;因此,在软件开发中,最重要的是要降低维护成本;维护成本正比于系统的复杂程度,所以要降低维护成本,系统的设计就应当追求简单清晰。维护成本应包含实施成本
好程序员与差程序员的区别在于理解能力,差程序员不理解自己做的事情,优秀的程序员则相反。信不信由你,道理就是这么简单。
在设计决策中,实现成本通常并不是重要的因素,所以基本可以忽略。相比降低实现成本,降低维护成本更重要。
软件设计的三大误区
编写不必要的代码。总以为将来会用到,实际上只会带来困惑与BUG。
代码难以修改。首要追求简洁,不能简洁则保证一致。
过分追求通用。通用则带来复杂。
避免重复。理想情况下,任何系统里的任何信息,应当只存在一次。
需要避免的八件事
扩展软件的用途。软件应明确 ...
开启GZIP为网站加速
首先推荐百度统计-优化分析-网站速度诊断,这个用来分析站点的速度问题还蛮好的。chrome浏览器的插件yslow也是一个很好的诊断工具。启用新站点后,始终感觉速度不如意,于是在百度上一诊断,得分86分,建议我启用gzip。于是开始折腾,配置gzip,我使用的http服务器是nginx。具体步骤如下。
开启Gzip开启全局如果想开启全局可以在nginx.conf上配置。配置方式与在二级站点上的配置是一样的。我本人此次只想在二级站点上开启。所以这里就不操作了。
/etc/nginx/nginx.conf
开启二级站点cd /etc/nginx/conf.d # 转到站点的配置文件目录vim blog.conf # 修改对应的站点配置文件
在server{}里配置以下项目
gzip on; // 开启 gzipgzip_disable "msie6"; //禁用 ie6 的 gzip 选项,由于 ie6 的性能差,启用 gzip 容易导致页面假死gzip_vary on; //http 头部,意在对于不支持 gzip 压缩的浏览器不进行压缩.gzip_co ...
Spring Boot RESTful 在线API文档
使用Spring Boot 去开发一个RESTful API是一件简单的事情,而且Spring Boot结合Swagger后,使用注解就能简单的实现在线API文档,这样能实现修改代码和修改文档二合一,降低开发人员造成文档和接口的不一致的几率。以下为具体实现。
引入swagger的相关依赖<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.2.2</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> ...
网站迁移结束
花了2天事件,搭建了hexo静态网站,然后把原本在wordpress里写的文章有选择的迁移到了hexo,po完这一篇就正式关闭我的wordpress服务,将www入口指向hexo。
原本使用wordpress的框架去写博客,需要打开网站后台去编辑文章,是一件很刻意的事。而我其实平时喜欢在个人电脑上用typora记录一些事情。为了将一些内容post到网上,还需要刻意去粘一遍到wordpress里去,这很不酷。wordpress也提供了桌面程序,但写完的东西直接就post上去了,我本地又没有留存。而且在服务端存在mysql里,我如果想查看,必须打开网站,如果哪一天我的服务器被黑了,是一件很麻烦的事。所以一直希望有一个解决的办法,直接写完就能提交到网站里,而且是文本样式保存的,而且是Markdown的。刚好就是hexo。
这次翻翻拣拣,不知不觉自己也写了这么多东西,虽然大部分都是学习笔记。但也成就满满。
继续加油吧!
Best Practices for Designing a Pragmatic RESTful API
Your data model has started to stabilize and you’re in a position to create a public API for your web app. You realize it’s hard to make significant changes to your API once it’s released and want to get as much right as possible up front. Now, the internet has no shortage on opinions on API design. But, since there’s no one widely adopted standard that works in all cases, you’re left with a bunch of choices: What formats should you accept? How should you authenticate? Should your API be version ...
CentOS 升级 Git 最新版
由于CentOS用yum安装的版本只有1.x,故需要手动编译安装。
首先,下载git安装包。
从github上下载一个最新版(撰写文章时的最新版为:2.5.0)。
cd /usr/local/srcwget https://github.com/git/git/archive/master.zipunzip master.zip
由于系统中已存在git,所以先备份现有git。
mv /usr/bin/git{,.bak}
编译安装
cd /usr/local/src/git-master make configure ./configure --prefix=/usr/local/ --with-curl --with-expat make make install
拷贝到原有Git所在位置
cp /usr/local/src/git-master/git /usr/bin
在编译过程中可能会遇到错误,主要原因是minimal版的centos没有相应的工具,可以手动安装一下。
yum -y install gcc automake aut ...
CentOS下用pyenv 和 virtualenv 搭建单机多版本python 虚拟开发环境
安装系统环境:CentOS 6.5
安装依赖yum -y install gcc gcc-c++ make git patch openssl-devel zlib-devel readline-devel sqlite-devel bzip2-devel bzip2-libs
安装pyenvcurl -L https://raw.github.com/yyuu/pyenv-installer/master/bin/pyenv-installer | bash
配置环境变量官方提供方法:
echo -e '\n#pyenv' >>~/.bashrcecho 'export PATH="$HOME/.pyenv/bin:$PATH"' >> ~/.bashrcecho 'eval "$(pyenv init -)"' >> ~/.bashrcecho 'eval "$(pyenv virtualenv-init -)" ...