Coding, Web, Hydrology and more.

Latest stories

极路由1S折腾OpenWRT小记

0x01 前言 宿舍的极路由1s买来也快三年了,经过一次搬家之后WIFI变得非常不稳定,刷官方固件后依然无效,故考虑应该是硬件问题,所幸还能凑活用,勉勉强强又撑过一学期。这学期之后小极的状态就每况愈下了,WIFI消失,各种掉线,即使连上网线掉包也很严重。舍友商量了一下,换了个路由,小极便闲置下来供我折腾了。 0x02 获取root 首先需要在路由器后台高级设置中按提示步骤开启开发者模式(会丧失保修),随后在云插件平台安装“开发者模式”插件即可。 0x03 刷写BootLoader 选用的BL是恩山无线论坛H神的Breed,传送门: 极1S有两个版本,一个是H5661,另一个是H5661A,两者由于CPU有差别,所以固件也有差别,下载时需要注意,刷错型号就变砖,路由器具体型号可以在路由器背面查得。H5661对应固件为breed-mt7620-hiwifi-hc5761...

NGINX正确配置HTTP2而浏览器不认?OPENSSL版本的锅!

前言 博客很早之前就已经配置过HTTP2了,但是心血来潮用HTTP/2 and SPDY indicator一测试,才发现NGINX配置HTTP2并没有成功。 故在网上找了找,发现最近Chrome抛弃了NPN的支持,如果想要在Chrome上以HTTP2访问站点,那就需要OPENSSL 1.0.2以上的版本。 看了下VPS上OPENSSL的版本,竟然还停留在1.0.1,估计那时候yum的EPEL没配置好吧,考虑到安全性(还记得那一波HeartBleed),升级看来是势在必行了。 准备步骤 现在OPENSSL官网上找到最新的源: 这篇文章发布前官网上最新版本是1.1.0,考虑到稳定性我还是选择了1.0.2的源。 wget tar xvf openssl-1.0.2l.tar.gz 如果你是军哥LNMP的用户,可以在include/upgrade_nginx.sh中找到 ./configure...

时间序列AR(p)模型在Python中的实现

前言 从60年代初期以来自回归模型就用于水资源规划和设计中,这类模型之所以在水文学中得到重视并有较大的吸引力,其主要原因是它们具有时间相依的非常直观的形式,同时建立模型和具体应用简单。 模型简介 AR模型是一种线性预测,即已知N个数据,可由模型推出第N点前面或后面的数据(设推出P点),所以其本质类似于插值,其目的都是为了增加有效数据,只是AR模型是由N点递推,而插值是由两点(或少数几点)去推导多点,所以AR模型要比插值方法效果更好。 一般自回归模型通常表示为下式: 模型实现 #!/usr/bin/env python # -*- coding: utf-8 -*- # @Date : 2017-05-05 21:31:16 # @Author : Edward Linus ([email protected]) # @Link : # @Version : 0.1 import os...

Purge Varnish Cache插件在收到评论后无法更新页面缓存的解决方法

前言 博客一直用着Purge Varnish Cache这个插件进行Varnish的缓存管理,插件通过Varnish提供的Admin面板进行管理,其功能也相对强大,可以选择在收到新的(修改)评论、发布(编辑)文章、添加(修改)菜单时对指定页面(首页/文章/整个Varnish缓存)进行更新。但实际上上述特性中的第一点并不能实现。 Bug重现及排查 在退出登录后(VCL中设置当登录时Varnish缓存机制不启用),对任意一篇文章进行评论,重新刷新文章页面,发现Response Header中X-Cache的状态依然是Hit 同时评论列表中也没有刚刚发表的评论,后台中该评论显示已经通过,以登录状态重新刷新页面,评论能够正常显示,那么想必是Varnish的缓存没有更新了。 先从Varnish查起,Shell中用varnishstat监视Varnish缓存状态,同时重复上述步骤,发现MAIN...

水文测验学中的数字修约C#实现

前言 为了更好的记录数据和查找数据,在进行具体数字运算前,需按照一定的规则确定一致的位数,然后舍去某些数字后面多余的尾数。现在被广泛使用的数字修约规则主要有四舍五入规则和四舍六入五留双规则。 我们对于四舍五入修约规则再熟悉不过了,这个规则贯彻了小学中学,甚至大学的数字修约过程。利用这种方法修约简单快捷,但实际上这种规则由于舍去的是“1、2、3、4”,入位的是“5、6、7、8、9”,这样必然会造成结果的系统偏高,误差偏大1/9。 与此相比,四舍六入五留双规则就精确的多得多,但与此同时也会相对麻烦一些。 四舍六入五留双规则的具体使用方法是: (1)当尾数小于或等于4时,直接将尾数舍去; (2)当尾数大于或等于6时,将尾数舍去并向前一位进位; (3)当尾数为 5,而尾数后面的字均为 0时,应看尾数5的前一位:若前一位数字此时为奇数,就应向前进一位;若前一位数字此时为偶数,则应该将尾数舍去。...

马斯京根法流量演算中的参数K及x估计

前言 马斯京根法是由G.T.麦卡锡于1938年提出,在我国河段流量演算中得到了广泛地运用,经过了几十年的发展,马斯京根法已经相当的成熟,但是实际使用中,马斯京根法依然存在许多限制,在二参数马斯京根法中,存在无区间旁侧入流的假定,若需要用在有旁侧入流的河段中,需要根据具体情况对马斯京根法进行修改,如使用三参数马斯京根法。 基本马斯京根方法 马斯京根法(以下简称马法)中河段内入流、出流及槽蓄量之间的关系以连续方程和槽蓄方程表示: I-O=dW/dt                                                            (1) W=K[xI+(1-x)O]                                                  (2) 式中,I为入流;O为出流 ;W为槽蓄量; K 为槽蓄系数 ( 量纲为时间) ; X...

另一种思路实现IDM百度云高速下载

前言
百度网盘三月份一次更新之后,通过PCS API方式下载的速度大不如前,移动50M带宽测试下来只有100KB/s的速度,实在是让人很懊恼。
不过万幸的是,有人发现通过以打包方式下载文件依然能打到高速,经过测试移动50M带宽下载能跑到1.5MB/s,下图是随手截到的一个小文件的下载速度。

方法实现
利用这种下载方式会稍微麻烦一点,如果浏览器没有安装Tampermonkey下先安装插件:,如果已经安装过了可以跳过这一步。
随后安装“百度网盘直接下载助手”这个脚本:
安装完毕脚本,打开网页百度网盘,随便上传一个小文件到待下载文件的文件夹下,随后选择这个上传的文件和待下载的文件,在上方的功能区按钮中找到”下载助手“,选择”直接下载“->”显示链接“,将弹出窗口中的提供的链接复制到IDM中即可实现高速下载。
后记
这种方法能用多久说不清楚,百度应该很快会发现,切用且珍惜

逐步回归的Matlab实现

其实Matlab本身提供了逐步回归的方案也就是stepwise,不过逐步回归的实现其实并不复杂。作为中长期水报的结课作业,三四行代码实现有点太对不起这一门课了,故花了点时间实现了逐步回归的算法。 逐步回归计算流程图如下图所示: 代码如下: clc clear all y=importdata('预报对象.txt');%预报对象 x=importdata('影响因子.txt');%预报因子 M=[x y];%合并预报因子和预报对象 n=size(M,1);%数据总数 XNUM=size(x,2);%预报因子数目 TOTALNUM=size(M,2);%因子和对象总数 MM=roundn(mean(M),-2);%平均值矩阵 R=corrcoef(M);%相关系数矩阵 COVM=cov(M);%协方差 flag=0;%循环次数 INDEXG=[];%引入因子数组 while 1...

三次样条插值及最小二乘法插值的C#实现

前言 在水文预报中,利用1小时单位线计算而来的S曲线可以很方便的完成单位线的时段转换。实际运用中,当目标单位线时段长Δtk是原始单位线时段长Δt0的整数倍,即当Δtk=KΔt0 (K=1,2,…N)时,可以不需要计算出Δt0=1h的S曲线即可完成单位线的时段转换,其方法为由原始单位线计算得S(t) (Δt=Δt0),接着计算得S(t-KΔt),两个S曲线相减再除以K即可得到目标单位线的q(t)曲线,但当Δtk!=KΔt0 (K=1,2,…N)时,就必须得通过三次样条插值得到Δt=1h的S曲线后再进行接下来的时段转换计算。 插值实现 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;...

Coding, Web, Hydrology and more.

Meta