Archive for 常用工具

准备玩点高级一点的东西了,xelatex看着不错,搜了一番,感觉texlive比较不错。也下载了Texmacs,那个只支持原生的latex,xelatex的导入导出不支持。现在已经懒得折腾东西,但是想想还是折腾折腾吧。直接apt安装的版本是2017的,感觉有点老,所以还是装个新的玩吧。 安装基本靠官网文档 首先下载一个安装工具,解压,执行perl install-tl 。 这里要看一下安装目录是否有权限,texlive的安装不需要root权限,但是默认安装目录是/usr/local/texlive/2020,最后一级目录是区分不同版本的,所以只要创建texlive目录,然后保证有权限就行了。 然后i开始安装,看着好像要下载四千多个文件,我使用的默认的镜像,速度还挺快的。主要看下载安装工具的时候速度就挺快。 还有gui版本的安装工具,包括安装完成后gui工具的使用,这个需要perl的tk库,sudo apt-get install perl-tk进行安装。比如:tlmgr -gui 更新系统使用命令:tlmgr update -all

Continue

linux内核使用许多likely和unlikely宏,这两个宏的内容为: #define likely(x) (__builtin_expect(!!(x), 1)) #define unlikely(x) (__builtin_expect(!!(x), 0)) 是用来告诉编译器,当前判断条件是否常用或者不常用。编译器根据提示,生成的二进制的代码流程会有相应改变,以达到让cpu尽可能的顺序执行的目的。gcc官方文档里说,使用-fprofile-arcs来进行实际的性能测试,说程序员对自己的程序的预测一般都是错误的。 然后我搜到是用gcov去做,使用了一下确实很直观。编译的时候,参数加上“-fprofile-arcs -ftest-coverage”。然后运行会生成 .gcda .gcno文件。用gcov source.c会生成相应代码的.gcov文件。vim编辑这些文件,就能看到源码形式的,每一行都执行了多少次。 这里说个疑问,前边说预测不准确,我当时看到那里还说真的是不准确。我之前就感觉明明会大概率走这个分支,然后加上提示后,速度却变慢了。但是当我用gcov去做完统计之后,发现确实很大很大概率走的那个分支,但是不知道为啥会变慢。我O2开反汇编发现内容是一样的,也可能是我测试的时候没开O2也许有不同。

Continue

先说一下pyenv的安装方式,只有两步,第一步是将github项目clone到目录,第二步是添加环境变量。所以pyenv完全可以离线安装,比如操作系统版本一致的时候,直接把装好的pyenv环境和virtualenv环境复制到目标系统就可以了。然后添加一下环境变量。 我之前安装过pyenv了,更新pyenv进入pyenv目录后,执行git pull。 然后我复制了一份新的代码,改变环境变量,切换到新pyenv目录。然后卸载之前直接安装的python版本。pyenv uninstall 3.7.3 进入.pyenv_bak,mkdir cache.将源码包放到cache目录下。 进入.pyenv_bak/plugins/python-build/share/python-build目录,编辑3.7.3文件 #require_gcc prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl install_package "readline-8.0" "https://ftpmirror.gnu.org/readline/readline-8.0.tar.gz#e339f51971478d369f8a053a330a190781acb9864cf4c541060f12078948e461" mac_readline --if has_broken_mac_readline if has_tar_xz_support; then install_package "Python-3.7.3" "https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tar.xz#da60b54064d4cfcd9c26576f6df2690e62085123826cff2e667e72a91952d318" ldflags_dirs standard verify_py37 copy_python_gdb ensurepip else install_package "Python-3.7.3" "https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tgz#d62e3015f2f89c970ac52343976b406694931742fbde2fed8d1ce8ebb4e1f8ff" ldflags_dirs standard verify_py37 copy_python_gdb ensurepip fi 改成 install_package "Python-3.7.3" "/root/.pyenv_bak/cache/Python-3.7.3.tar.xz" ldflags_dirs standard verify_py37 copy_python_gdb ensurepip 安装 pyenv install 3.7.3 安装完成后执行pyenv virtualenvwrapper,我发现需要重新安装这个插件,不知道为什么。我之前是安装了的,可能版本问题。 然后基本就可以了。virtualenv也是可以直接复制的,所以基本可以复制分发了。

Continue

远程办公啊,自己笔记本没有配置公司vpn,还要现搞。 系统偏好设置-网络-添加vpn,然后选择L2tp,填写配置后连接提示 共享密钥丢失的问题 网上找到解决方法。 sudo vim /etc/ppp/options 内容: plugin L2TP.ppp l2tpnoipsec 然后连接就可以了

Continue

rootkit hunter能检查一下系统是否被安装后门,听说很厉害。 去官网下载一个tar包,解压 安装 ./installer.sh --layout custom /opt/temp/rkhunter --install 这个是指定安装目录,日志都会打到/var/log/rkhunter.log 更新rootkit hunter的数据库 /opt/temp/rkhunter/bin/rkhunter --update 进行检查 /opt/temp/rkhunter/bin/rkhunter --checkall 然后查看结果 cat /var/log/rkhunter.log|grep "Warning\|Vulnerable" cat /var/log/rkhunter.log|grep -A 30 "System checks summary" 这个关键字可能不准确,具体看看总结,再细看检查的过程。

Continue

本来没想在mac上搭建开发环境,但是我搜索php安装的时候。发现有mac安装就看一下麻不麻烦。然后发现自带php5,并且自带Apache,卧槽那还用啥虚拟机。   安装方法和官网还是有出入的。我大体看了一下配置,没有盲目修改。 sudo vim /private/etc/apache2/httpd.conf 将LoadModule php5_module libexec/apache2/libphp5.so注释去掉。另一个,没搜到。 Include /private/etc/apache2/other/*.conf这个里边有个php5 的conf,将下边的也插入进去了,所以不用添加。 项目的根目录是/Library/WebServer/Documents. 插入个<?php phpinfo(); ?>,成功。 重启apache, sudo apachectl restart   rewrite_module模块开启 LoadModule rewrite_module libexec/apache2/mod_rewrite.so AllowOverride All

Continue

下载代码并构建jar包。
git clone https://github.com/medcl/elasticsearch-analysis-ik
cd elasticsearch-analysis-ik
mvn package

复制到es目录里
mkdir -p ~/elasticsearch-2.3.3/plugins/ik
unzip target/releases/elasticsearch-analysis-ik-1.9.3.zip -d ~/elasticsearch-2.3.3/plugins/ik/


启动elasticsearch,
然后发现不能用root启动,只好换用户重新设置。。
默认es监听的127.0.0.1.修改config/elasticsearch.yml
network.host: 0.0.0.0 
我这是在虚拟机里改的。

测试中文分词

参考github上的提示执行了玩了一下。

我只能说目前比sphinx简单多了。

Continue

之前用过sphinx,不选择sphinx的原因是用过,配置过太麻烦了,增量也不友好。之前用的场景也简单,对种子title和内容的检索。 现在决定用个别的试试学习一下,大体查了一下资料elasticsearch安装配置简单,需要安装java,提供http api调用。语言不是问题。 不用solr的原因是不走大流,没意思 哈哈,es的高端用户也挺多。 1 去Elasticsearch官网下载个包,解压。 2 执行./bin/elasticsearch启动,-d参数可以daemon启动 3 执行curl -X GET http://localhost:9200/ { "name" : "Vance Astrovik", "cluster_name" : "elasticsearch", "version" : { "number" : "2.3.3", "build_hash" : "218bdf10790eef486ff2c41a3df5cfa32dadcfde", "build_timestamp" : "2016-05-17T15:40:04Z", "build_snapshot" : false, "lucene_version" : "5.5.0" }, "tagline" : "You Know, for Search" }

Continue

jenkins有好的方面,只有一个war包,目录基本兼容版本,迁移方便,可以在不同机器上编译。 今天打的包突然说代码没上去,然后查发现真没上去,啥都没改就出问题了。看jenkins打包日志没报错,checkout的分支也是对的。然后查workspace,svn log命令还执行不了,说版本不一致的啥问题,之前从一台机器迁移到另一台机器,两台机器的版本不一样就折腾了好久。但是也没再动,然后执行svn upgrade可以看log,一看没有新代码版本。卧槽急了一身汗,办公室也热。 然后跟同事一起分析,然后又看了一遍jenkins打包日志,在checkout代码完了之后,发现有个警告。。

WARNING: clock of the subversion server appears to be out of sync. This can result in inconsistent check out behavior.
同步了一下服务器时间就好了。网上说 在jenkins job的 svn地址后边加个 @HEAD 也行。
之后的项目等加上@head

Continue

清除vim搜索历史 :call histdel('/') 寄存器文档 :help registers ,少输入了一个然后文档没查到。用google直接搜文档找到了,,

Continue