这阵子在研究所做实验,研究所没有购买任何的数据库,因此看文献只能使用sci-hub这个网站了,再一次膜拜这位俄罗斯女程序员,让世界上这么多买不起数据库的科研机构能够做科研。

一般来说,我们使用sci-hub检索论文的步骤如下:首先复制文章标题、网址或者doi,然后输入到sci-hub主页的检索框,最后单击检索按钮跳转到下载页面。不过我总是想简化一些步骤,因此写了一个chrome插件来实现该功能,下载地址:https://chrome.google.com/webstore/detail/menux/mnedbcbaenklnhhfcfdmcmfncjghbhjm?utm_source=chrome-ntp-icon。比如我们使用百度学术或者谷歌学术检索到文献,我希望右键看到的文章,通过菜单直接导向到下载页面,如下图所示。

menux超链接演示

这样是不是省略了复制标题或者网址,然后打开sci-hub,粘贴的步骤了?如果是在数据库的页面中,需要直接打开呢?该插件也提供了方法。

menux页面演示

以上简单演示了menux在sci-hub使用中的简化作用。但是你以为这只是该插件的唯一功能吗?绝对不是的,结合配置文件,该插件可以实现基于上下文为超链接、图像、页面以及复制等的各种操作。当然可能你需要的功能还没有实现,如果你给我建议,我将在未来的版本中选择添加。menux的选项页面如下图所示。

选项页面

该插件在初始安装的情况下是没有任何配置的,也无法实现任何功能,需要导入一些配置。如果仅仅需要使用menux简化sci-hub的搜索,可以下载如下示例配置文件导入。

示例配置文件下载地址:https://jekyll-gen-1251110281.file.myqcloud.com/menux/menu_exported.json

参考链接

  • 传统安装方法

https://phoenixnap.com/kb/how-to-install-lamp-stack-on-ubuntu

  • 一键安装方法

https://blog.csdn.net/qq_27366789/article/details/81990291

https://blog.csdn.net/u013698380/article/details/48788005

  • Thinkphp安装

https://www.kancloud.cn/manual/thinkphp5/118006

  • Composer中国镜像

https://www.cnblogs.com/sirdong/p/12019748.html

安装历史提示工具

bash <(curl -s https://jekyll-gen-1251110281.file.myqcloud.com/shell/history_command.sh)

安装lamp-server

sudo apt install tasksel
sudo tasksel install lamp-server
sudo apt install php-curl
sudo apt install php-gd
sudo systemctl restart apache2
sudo systemctl restart mysql

备份和导入数据库

  • 信息设置
dbname=
username=
userpwd=
  • 备份
mysqldump --default-character-set=utf8 -u${username} -p${userpwd} ${dbname} > ${dbname}.sql

备注:将sql文件转到目标主机上,可以通过python脚本创建站点的功能

python -m SimpleHTTPServer 800
  • 登录MySQL并创建数据库
mysql -uroot -p${userpwd}
  • 创建数据库
CREATE DATABASE `eyoucms` CHARACTER SET utf8 COLLATE utf8_general_ci;
  • 导入数据库
mysql --default-character-set=utf8 -u${username} -p${userpwd} ${dbname} < ${dbname}.sql

更改MySQL密码技巧

重置密码:https://blog.csdn.net/yelllowcong/article/details/79641313

但是使用lamp-server方法添加的MySQL,默认无密码,但是为了安全需要添加密码,方法参考: https://stackoverflow.com/questions/39281594/error-1698-28000-access-denied-for-user-rootlocalhost

具体步骤如下:

  • 使用root用户登录mysql
sudo mysql -uroot -p
  • 修改root用户的密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

SSL证书安装

<VirtualHost 192.168.0.1:443>
    DocumentRoot /var/www/html
    ServerName yourdomain.com

    # SSL
    SSLEngine on
    SSLCertificateFile /path/to/your_domain_name.crt
    SSLCertificateKeyFile /path/to/your_private.key
    SSLCertificateChainFile /path/to/DigiCertCA.crt

    # Log
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
  • http配置
<VirtualHost *:80>
    DocumentRoot /var/www/html
    ServerName yourdomain.com
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost

查看配置文件位置

apachectl -S

重定向配置

Redirect permanent / https://www.yourdomain.com/

据说A股已经连续很多天万亿成交量了,也不知道那么多的资金是哪里来的,只知道上证指数疯涨,创业板指数也是疯涨。作为一枚近一年才入市的小基民,我想把这样的时刻记录下来。我知道大涨之后必有大跌,因为不可能出现一个人人都在赚钱的市场。现在在基金里边,挣钱就如同捡钱,但是最后是谁亏钱谁在挣钱,一切还不可知。

让我现在退出基本是不可能的,但是我也不能再投入更多的钱,因为风险太高了。我必须做好时刻退出的准备,当股市突然下跌的时候,我必须立刻退出来。我猜一下,最后不舍得退出来的人,一定会被深度套牢。很多的人,认为跌了就一定再涨回来。这个就像你认为地球是圆的,就可以南辕北撤走回来,但是这样的代价是极高的,一定会击溃你的防线,最后大亏而退。

所以,这是考虑理智的时刻,让我们等待吧,看看未来是什么样子的。这是目前的指数图片。但是,现在连跌的迹象都没有,怕什么呢?

2020年7月16日

之前认为中美在选举前应该不会有实质的交锋了,科技股涨得又比较疯,所以这两天入了不少。但是现在中美交锋又开始强烈了,从前天开始部分科技基金就出现了下跌的情况,昨天由于部分基金掩盖了科技股的下跌,只是亏损了不到2000,没有留意。结果没想到今天是千股跌停,这个跌幅应该只是比2020年2月3日的小了吧。今天直接亏损了近30%的收益。虽然比较心痛,但是不理性的人只能倾家荡产,今天把科技股全撤了。只要超过止损线就必须全都撤!

2020年7月31日

在7月16日-7月24日之间损失其实已经恢复差不多,不过在2020年7月24日的时候又大跌了一次,最近收益再次差不多恢复了,实在懒得管了,最近我都在努力的科研,嘿嘿。

可视化校正页面

我大概是一个不太用心的底层科研人员吧。小一年购买基金赚了几万元,尤其是最近购买基金的高额利润,使我对基金的研究越来越感兴趣了。

通常来说,购买基金比购买股票的风险会小一些,毕竟是专业的人员打理。但是购买基金,尤其是股票基金风险也是非常高的,特别是一些主题基金,他和基金经理的水平关系不大,而是和当前主题是否有大量资金青睐有关。

购买基金想赚钱无非就是低买高卖,但是此事说起来容易操作起来却是非常麻烦,因为我们并不知道什么时候基金处于高点,什么时候处于低点,如果知道那不就成为神仙了?但是我们还是可以通过牺牲一部分的利润来获得一定概率性的盈利的。一只比较好的基金,必然有涨有跌的。如果有一款软件,在基金的某一段时间窗口内最大盈利高于某个阈值提醒我们进入,而最大亏损大于某个阈值提醒我们退出,那么只要整体时间跨度够大,那么就一定是可以盈利的。

由于大部分基金软件都没有短信提示的功能,而我常常因为科研任务忘记基金的事情,往往错过最佳的行情没有及时买入,或者基金进入了一个亏损境地而没有卖出。因此我最近使用python写了一款具有这样功能的软件,取名fundx。根据配置,该软件将在特定时间窗内基金的最大盈利大于某个阈值时,短信提醒我进入,而亏损大于某个阈值时,提醒我退出。这里,时间窗、盈利阈值以及亏损阈值的设置肯定是根据不同基金来设置的。这些阈值往往是经验所得,如果选择好了一个基金,我们还可以使用该软件提供的可视化方式来校正这些阈值,使得可以充分满足该基金的历史数据,做出正确的提示。

提示:有需要该软件的人,可以联系我哈:1281961491@qq.com

有些时候,我们需要在终端使用表格的形式打印一些文字,如下图所示,怎么实现呢?

表格示意图

如果我们打印的是字母或者数字,那么其实比较简单,可以使用如下的python代码

print('{0:<40s}'.format('Big face.'))

但是如果字符串中包含中文,这样是不行的,因为中文一个字符实际上占用两个字符的空间。假设如下的代码变量中bus_station包含snostationname两个键,其中sno的值为数字,stationname的值为中文字符串。可以使用如下的代码实现打印不同的序号和站名占用相同的空间。

station_no = bus_station['sno']
station_name = bus_station['stationname']
output_station = '{0:<2d}: {1}'.format(station_no, station_name)

# 校正占位符
correct_space = 30 - len(station_name)
# 进一步校正,排除非汉字的情况
if 'S1' in station_name:
    correct_space = correct_space + 2

# 嵌套格式化
print(u'{1:<{0}s}'.format(correct_space, output_station), end="")