我是豆豆

吃饭,睡觉,打豆豆

FreshRSS定时规则的坑

使用过FreshRSS的用户就会对它的定时刷新问题头疼,虽然官方推荐了好多的定时刷新方法,但是由于我得vps布局。

目前的vps格局如下:

d__OneDrive_workplace_99typecho_VPS现状

我没办法像它推荐的使用cron命令:

1
2
3

0 * * * * php /path/to/FreshRSS/app/actualize_script.php > /tmp/FreshRSS.log 2>&1

这样我每次更新PHP的docker容器就会覆盖掉,所以我需要采用别的方式进行自动更新订阅。

系统给出了两种方式,都是使用HTTP进行强制刷新订阅源,但是我在实际使用过程中发现了一个坑

按照他给:

1
2
3

https://freshrss.example.net/i/?c=feed&a=actualize&force=1 强制刷新,需要在后台开启允许匿名刷新

但是我实际配置的时候,会提示重定向太多次,最后我查看后台的tokenID

20230328153338

会发现我得网址后面有个/p这个和给出来的example网址有一定的差距,于是我试着重新配置我得网址

1
2
3

https://freshrss.example.net/p/i/?c=feed&a=actualize&token=542345872345734 开启了后台的认证口令

获得了ok返回

20230328153632

至此完美解决这个问题。

后续就青龙增加了一个定时任务,方便每天上班时间自动刷新订阅源,省的自己每次都得登陆网页刷新。

这边说下几个参数

  1. &force=1 强制马上刷新

  2. &ajax=1 会返回一个状态码OK,不会跳转到阅读界面

  3. &maxFeeds=10 刷新10个订阅源,不会把你全部的订阅源都刷新

  4. &token=xxxx 认真口令,如果没有则需要将后台的认证方式中允许匿名刷新文章。

20230328155113

青龙面板定时规则

青龙面板使用的是cron的时间格式,但是它又在上面基础上进行优化,使用的是5-6位的时间表达式:

20230328145315

20230328145545

知道这些之后,看下青龙内部经常使用的通配符

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

,:表示在两个及以上的时间点中都执行。如在月中的值为1,3,则表示1月和3月都触发事件

*:表示匹配该域任意值,可解读为 “每”,如小时的字段为*时,表示每一小时都触发事件

?:表示不指定值,用于日期和星期字段之间进行互斥。通常在日期和星期字段中的一个指定值,另外一个用?表示不指定值。使用的场景为不需要关心当前设置这个字段的值。例如:要在每月的6号触发一个操作,但不关心是周几,我们可以这么设置 0 0 0 6 * ?

-:表示范围,一个连续触发的区间。如:时的值为6-8,则表示6-8小时中的每个小时都触发事件。

/:表示间隔时间触发事件(开始时间/时间间隔)。其中第一部分是起始值,除了秒以外都会降低一个单位,比如在 “秒” 上定义 5/10 表示从 第 5 秒开始 每 10 秒执行一次,而在 “分” 上则表示从 第 5 秒开始 每 10 分钟执行一次。





#:表示该月第n个星期x(x#n),仅用星期域。如:星期:6#3,表示该月的第三个星期六。

L:表示LAST 最后(最后一天或最后一个星期几);仅出现在日和星期的域中。用在日则表示该月的最后一天,用在星期则表示该月的最后一个星期X。如:星期域上的值为5L,则表示该月最后一个星期的星期四。在使用'L'时,不要指定列表','或范围'-',否则易导致出现意料之外的结果。

W:仅用在日的域中,表示距离当月给定日期最近的工作日(周一到周五)。 如:"4W"表示距离4号最近的工作日(当月的)触发事件; (1)当4号就是工作日时,则表示当天触发;当4号为周六时,则表示3号(周五)触发; (2)当4号为周日时,则表示在5号(周一)触发; 再如:"1W"表示距离1号最近的工作日触发事件,但是,该工作日只算当月的。假如当月1号是周六,则”1W“表示在当月3号(周一)触发事件。就算上个月的最后一天是工作日,也不会触发事件。

LW:‘L’和'W'可以一起组合在日字段使用。表示当月的最后一个工作日触发事件。

0 0 7-20 * * * 比如这个0秒0分7-19点内每天每月每周执行,即每天的7-19内0分0秒执行

如果要求在上班日(周一到周五),那么最后一个字符“周”就需要配置:0 0 7-20 * * 1-5

当然如果你不会的话,可以选择使用在线服务,简单方便。

总结

青龙面板是个好东西,可视化的界面降低了开发人员的入门,没必要在部署上花费时间,简单的写个python程序,然后放到青龙上,剩下的就是等待,配合Gotify等通知软件,可以实现实时接收消息。

v2ray配置文件

config基本配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

{

"log": {}, #日志文件路径

"api": {}, #api路径配置

"dns": {}, #dns配置

"stats": {}, #如果有开启全局统计会出现在这

"routing": {}, #路由配置用来多个跨服务器商议

"policy": {} #政策,定义等级,可以分等级给配置

"reverse": {}, #全局统计开关

"inbounds": [] #进站配置

"outbounds": [], #出战配置

"transport": { #底层传输配置,全局设置

}

协议

V2Ray 支持以下协议:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

Blackhole #出战专用,黑洞,可以达到禁止访问某些网站的效果

Dokodemo-door #Dokodemo door #(任意门)是一个入站数据协议,它可以监听一个本地端口,并把所有进入此端口的数据发送至指定服务器的一个端口,从而达到端口映射的效果

Freedom # Freedom 是一个出站协议,可以用来向任意网络发送(正常的) TCP 或 UDP 数据。

HTTP #出入站协议,模仿http

MTProto #MTProto 是一个 Telegram 专用的代理协议,不建议使用

Shadowsocks #Shadowsocks 协议,包含入站和出站两部分,兼容大部分其它版本的实现。老牌经典但是风险高

Socks # 标准 Socks 协议实现,兼容 Socks 4、Socks 4a 和 Socks 5。容易被查

VMess # VMess 是一个加密传输协议

除开那些用来阻止访问,特殊的转或者监听端口的,剩下的可以用的协议就是VMess,Shadowsocks,Socks,HTTP四个个协议。

如果是新版还有vless,trojan这两个。我们主要用VMess,Shadowsocks之前被爆出过有漏洞,可以准确的被GFW侦测到,确实之前我服务器也因此被封,最新的2022的Shadowsocks已经改善和解决了这个问题。

20230328144407

但是这个需要使用Xray才可以支持。

协议的配置既可以在"transport",也可以在"inbounds"下进行单独的配置。如果在在前者,那么就是全局配置,如果是后者,可以针对不同用户进行配置。但是全局传输方式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35

{

"port": 1080, #监听的端口

"listen": "127.0.0.1", #监听的地址,如果在docker内网可以修改为docker的地址

"protocol": "协议名称", #使用协议列表内入站的协议

"settings": {}, # 具体的配置内容,视协议不同而不同。详见每个协议中的InboundConfigurationObject。

"streamSettings": {}, # 这个就是之前说的"transport"在不同协议下的配置,实现一个协议下多个传输配置

"tag": "标识", # 就是拿来标记的

"sniffing": { # 尝试探测流量的类型,用来探测流量类型,然后

"enabled": false, #开关

"destOverride": ["http", "tls"] #当流量为指定类型时,按其中包括的目标地址重置当前连接的目标。

},

"allocate": { #端口分配策略。"always"表示总是分配所有已指定的端口,port中指定了多少个端口,V2Ray 就会监听这些端口。"random"表示随机开放端口,每隔refresh分钟在port范围中随机选取concurrency个端口来监听。

"strategy": "always",

"refresh": 5, #随机端口刷新间隔,单位为分钟。最小值为2,建议值为5。这个属性仅当strategy = random时有效。

"concurrency": 3 #随机端口数量。最小值为1,最大值为port范围的三分之一。建议值为3。

}

}

传输方式

这"streamSettings"下配置传输方式,一般而言,使用vmess协议,当然如果你是使用Shadowsocks软件可以是用用对应的协议。

接下来就传输方式,即你们经常见到的Websocket,Tcp,这些配置,这些决定了传输的速度,如果你对速度有要求,可以在这些方面上进行配置,已知的配置种类有:

1
2
3
4
5
6
7
8
9
10
11
12
13

TCP

mKCP

WebSocket

HTTP/2

DomainSocket

QUIC

TCP传输方式

HTTP伪装:如果你没有增加TLS,即你没有为你的域名增加SSL证书的话,就是HTTP伪装,将你和服务器的流量伪装成网站流量,但是由于没有加密证书,所以不安全,大家也不推荐。

TLS:而TLS则需要你有一个域名,然后将你和服务器的流量伪装成一个正规网站的访问,安全性很高,而且不怕被检测,但是需要你申请ssl证书配置和路径,还需要打开tls。

TCP+TLS+其他:这种的就是,我v2ray使用tcp配置,但是不主动访问我得端口,前面访问一个正经的网站服务,可以得到回应,而且还能访问,只有在特殊路径或者特定情况下,前面的web服务器才会将流量转发过来,前端web服务器可以使用nginx,caddy,appache,如果不需要web服务器的话,直接来个TLS分流器也是可以的。这是一种可以跟web服务器共存的方式。

mKCP传输方式

V2Ray 引入了 KCP 传输协议,并且做了一些不同的优化,称为 mKCP。如果你发现你的网络环境丢包严重,可以考虑一下使用 mKCP。由于快速重传的机制,相对于常规的 TCP 来说,mKCP 在高丢包率的网络下具有更大的优势,也正是因为此, mKCP 明显会比 TCP 耗费更多的流量,所以请酌情使用。要了解的一点是,mKCP 与 KCPTUN 同样是 KCP 协议,但两者并不兼容。

这个就是经常说的KCP。

DomainSocket传输方式

Domain Socket 使用标准的 Unix domain socket 来传输数据。它的优势是使用了操作系统内建的传输通道,而不会占用网络缓存。相比起本地环回网络(local loopback)来说,Domain socket 速度略快一些。所以如果TCP+TLS+其他,其中TLS和web服务器都处理好了数据,剩下的就是系统内部端口的转发,这时候可以考虑使用DomainSocket,速度会更快,尤其速度超过 50Mbps 时,通常会有较明显的性能差距。但是需要注意 如果指定了 domain socket 作为传输方式,在入站出站代理中配置的端口和 IP 地址将会失效,所有的传输由 domain socket 取代。毕竟内部传输不需要ip地址和监听这些的。

WebSocket传输方式

WebSocket是一种网络传输协议,可在单个TCP连接上进行全双工通信,位于OSI模型的应用层。而之前大火的WebSocket+TLS+CDN,就是三者的互相连接,我v2ray用WebSocket,然后用web服务器申请SSL证书,然后再套上一个CDN。其实没有什么难的,主要是涉及三个环节,所以大家会比较复杂,这种的类似TCP+TLS+其他,安全性是一样的,在网络上都是属于探查不到的,毕竟有CDN掩护,可以救那些被封锁的IP,其他倒是没有什么作用。

HTTP/2传输方式

简单地说 HTTP/2 是 HTTP/1.1 的升级版(目前大多数网页还是 HTTP/1.1)。其中HTTP/2+TLS+WEB, H2流量理论上跟 ws 一样可以被 CDN 转发。 但是遗憾的是, Cloudflare 只支持与源服务器进行 HTTP/1.x 通信。

QUIC 传输方式

QUIC 全称 Quick UDP Internet Connection,是由 Google 提出的使用 UDP 进行多路并发传输的协议。其主要优势是:

  1. 减少了握手的延迟(1-RTT 或 0-RTT)

  2. 多路复用,并且没有 TCP 的阻塞问题

  3. 连接迁移,(主要是在客户端)当由 Wifi 转移到 4G 时,连接不会被断开。

QUIC 目前处于实验期,使用了正在标准化过程中的 IETF 实现,不能保证与最终版本的兼容性。

最后来说说CDN:

目前和 V2Ray 兼容的 CDN 国外有 Cloudflare,国内阿里云和腾讯云,这三家的 CDN 是支持 WebSocket 的。剩下的几家不支持 WebSocket,也不会 keep TCP connection。因此 HTTP/2 回源也不支持(访问支持 HTTP/2 和回源支持 HTTP/2 是两回事)。 另外,使用国内 CDN 需要域名备案并服务商实名认证。使用有风险,入坑需谨慎。

所以这也是为什么必须使用WebSocket+TLS+CDN才会大火,毕竟他在拯救被墙IP上无所替代。根据最新的Cloudflare文档,应该是支持HTTP/2回源的,但是还不支持多路复用。

20230327124619

至于CDN加速问题,这个见仁见智,毕竟它对我的最大作用在于解封IP,加速反正我是没感觉到,因为CDN是边缘算法,但是并不是每次都能找到你最近的一个服务群。

总结:

说了这么多,现在来总结一下:

如果IP被墙:那么只有套CDN一条路子:WebSocket+TLS+CDN

如果IP是正常的,那么建议HTTP/2+TLS或者TCP+TLS,没必要在前面套上一个CDN。

至于最近大火的Xray,相较于v2ray,它更加简便,没必要再tls加密之下,再加密一层,也可以增加响应速度。但是如果你的服务器像我一样,还有其他服务的话,那么不是很建议你更换,xray创新的xtls协议,需要接管全部端口,按照正常的话是web服务器分流,然后转发给xray。但是xray完全接管了服务器,把所有流量排查了之后,再转给后端的web服务器,让他去处理,所以如果你有在服务器上搭建网站,那么就会出现这个问题。

《结构性改革》

结构性改革的作者是黄奇帆,重庆市前市长,进入过中央经济委员会的,就资历来说,是接触国家内部的一些政见,虽然不敢说他说的都是对的,但是很大程度上可以看出我们国家未来发展的方向。这本书是纯粹的从经济学角度对我国供给侧改革进行一番说明和畅想吧。

国家的供给侧改革后面的经济学理论之一是供给理论:即供给会自己创造需求。而如果我们参照这个理论。那么大多数行业会死亡,国内的经济形式和外面的不一样,所以提出了供给侧改革,本质是铲除过剩产能。理是这么一个理,也给出了很多的举措,比如清除僵尸企业,不要笼统的去除产能,减费减税。讲的是利国利民的,当然这个位置写的东西也只能是利国利民。

先说供给侧:供给侧改革提出去除过剩产能,但是怎么定义过剩?谁是过剩?从钢铁和煤炭领域来看,各种中小企业合并的合并,关闭的关闭,煤炭和钢铁行业只剩下几家国资委或者地方国资委参与的企业,从结果来看,确实去除了不少产能,将产能集中到了大企业,但是它没解决的问题是:剩下的大企业有没有产能过剩?

产能是否过剩的问题暂且放一边。目前的局势是:几大钢厂默契操作价格,在钢筋行业,钢筋是分型号的,于是几大钢厂就默契的在某一段时间内不排产某一个型号,于是乎,在其他型号钢筋价格4000的时候,某些特殊型号会达到4200,甚至4300,而这种型号往往是必需品,想要要么加价买库存,要么给钱提前订货,因为一次生产万一产量不足的化,你还要等到下个排产周期。所以很多时候就某些型号来说产能是不足的。说这些话的问题不在于想要嘲讽或者说明什么,是想要试图回答那个问题:什么是过剩?如果在市场经济形式下过剩的产能是需要降价出售,不足的则需要加价购买,而生产者看到价格高就会提前多生产,然后让价格降低下来。但是现在这些生产者给人的感觉是拆东墙补西墙,当他们全力生产某一个型号之后,又会出现另外一个型号的不足,导致另外型号的涨价。

任何的改革都是会有伤亡的。改革也不一定是越改越好。企业的本质是为利润服务,政治任务除外,其他的时候还是赚钱为主。在产能这块黄奇帆说了很多,但是很多都是似是而非,类似:“但局部的加杠杆必须服从、服务于全局的去杠杆”,局部,全局这种词汇,简而言之就是地方政府要顾全局。

然后是地产:按照作者的想法,地产的不足,在于供需关系,你多卖点地,房价就下来了,供需关系怎么定,作者给出了一个公式,多少的人口需要多少平米的住宅,然后多少的产值需要多少的商业。最后还提到,最近几年卖的地很多是工业用地,和欧美等发达国家相比,我们卖的住宅用地太少了,这是价格高的原因。

1
2
3

这就要求城市管理者做到心中有“数”。比如,城市建成区面积,土地配置一般是每人100平方米、每万人1平方千米,100万人口的城市建成区面积就是100平方千米。再如,住房面积,人均大约40平方米,1 000万人口的城市建设4亿平方米住房是合理的。又如,商业设施面积,一般每2万~3万元的商业零售额可配置1平方米的商铺,每2万元GDP可配置1平方米写字楼。在城市土地房屋资源配置中,如果大手大脚,房地产总量供过于求,势必出现“空城”“鬼城”;如果土地长期供应不足,则会造成土地稀缺、房价畸高。推进智慧城市建设,一定要把握好这个基本面需求的“度”。

我大致估算了一下天津的情况:天津2021年生产总值:15695.05亿元,全市人口:1373万人,按照上面的要求,现在天津的城市面积才1079公顷,还有接近20%的涨幅,然后按照住房面积,还有40%的涨幅,商业就更加遑论。

20230221101813

20230221102035

地产的问题在中国是一个根深蒂固的问题。但是作者从供需关系来说,那么我也就供需关系来说:我老家农村有套房子,当初我在厦门上班,我天天做的梦就是,如果我老家的房子放在厦门多好啊,那么大,怎么住都舒服。这里就体现了我得需求,我需要在厦门上班,但是我的房子却在老家,我需要一套厦门的房子。这才是需求。天津1000多万人口,多少人和我做的一样的梦,在郊区的房子,但是在市区内上班,多想有个走两步就到的家,而不是每天通勤几个小时。作为普通人一天上班8小时,一周5天,大多数时间只能绕着公司附近,所以他们的需求就是一套在公司附近的房子。那么一栋几万人的大厦周边,他的房子需求可以有多大?所以房地产不是简单的供需关系,很多人需要的是某某位置,某某学区,某某地铁口附近的房子。而不是房子。这涉及到城市规划和交通规划的问题。太深奥了,所以从任何一方面去解释房价的高企都是错误的。你只能说某个位置房价高的原因,但是没办法应用在全国。

其中特别指出:作者认为之前几波的房产受益人是那些上车买房的人,中国房产从几千变成了几万,那么收到好处的正是那些买了房子的人,这叫与民分利。我觉得他说的很对,特别指出来。

黄奇帆在重庆市时使用了地票制度:农村复垦面积,出售给城市,中间差价由集体和农民个人按照15:85分享,美其名曰分享城市化收益。这个政策的本质还是政治任务。我国为了防止大多数耕地被拿来建成房地产,所以人为设置了耕地红线。红线是条政治线,所以他需要绕过它甚至通过它创造需求。如果真实的深入农村,现在农业不是没有土地问题,是没有人耕种的问题。农村有农村的问题,农村的问题是种地养不活人,所以需要壮年出去打工,留下一群人在家种地作为大本营,在经济形势好的情况下,打工好过种地。在经济形势不好的情况下,人家也可以回家种地等待危机过去。地票将他们的后路退去,然后给城市送来仅剩的劳动人口和住房需求。这是加速城镇化。

剩下的比较重要的是:金融。金融业的结构性改革,一个字概括,学美国。作者很多都是以美国的现有政策举例:比如美国的养老金,社保,基金等等。成立成基金,然后固定投资股票市场上的一些优质股票,随着大量的资金进入,让A股成为一个新的资金蓄水池,以改善房价问题。而这个资金蓄水池后面的玩家将都是大资本家和全国百姓。可以的话可以成立一个新的华尔街,来决定未来的国运。

股票市场的问题他也指出来了:垃圾股票太多,群众钱太少。这两个推不上去股票。所以提出了两个方案:退市和开放外资。股票市场的本质是融资然后服务实体,但是他的一系列举措是将股票成为第二个房地产市场,然后继续绑架全部人。股票会一直升高,最后成为普通人无法购买的价格,然后小散户出清,剩下的就是大资本家和养老基金等。大家趁着这股风,将气球吹大,养老金也乘积收益,以弥补不足。

如果真的按照他设想的,那么就又是一个造富神话,然后是又一群人富裕,再与民分一波利。

最后他也提到最近比较流行的供应链金融:供应链金融不是什么新玩意,之前是商业承兑汇票,现在只不过是换了个名字,本质还是下游利用上游的信誉和双方交易的应收款给银行,银行提前将款项融资给下游,让下游的资金运转起来,上游也减轻了资金压力,银行也收能收到利息差和费用。三方共赢的局面。这应该是商业承兑正常运转的样子,只不过那些年商承被企业给玩坏了,只能另外起一个炉灶,然后加强监管。

那么代价是什么呢?

我们来分析一下这个三角模型:下游给上游货物,上游给下游票据,下游需要周转就把票据提前贴息(损失点利息)给银行,银行赚到利息差,等票据到期之后去找上游拿钱,还能防止贷款资金乱窜到别的地方。除了下游得高额贴息费和有时候无法融资。银行不可能给上游无限得额度,很多时候会给予1-2倍得杠杆,比如定期存款1w,给你2w得可开票额度,用完额度要么增加资金,要么等兑付一些额度。这看起来是一个良性且正确得循环,但是如果公司亏本,或者项目款得周期大于1年,那么就会出现死亡加速螺旋,额度不够,无法开工,无法开工,没有资金。当然后续可以通过债转股得问题解决,毕竟都是国企好说话,但是如果大面积爆发,这是一个自己内部的金融性风险,需要更大得资金来掩盖,会陷入另一个死亡螺旋。

总结

虽然作者得很多东西都被我说的很不堪,但是这就是经济,这就是科学,你要经得起别人得批判,你要经得起别人得考核。作者得方向和思路不能说是错,就好像作者说的是一个好的极端,而我反驳得就是将它拨转到另一个极端,两个极端对比起来就觉得谁高谁低。但是其实不然,现实很多时候往往在这两者之间,我们只要踩好这个平衡木,就能防止自己进入另一个极端,这件事不难,但也不简单,只能说需要更多人更长时间的努力,而作为其中的一员我也只能在自己的角度说出一点观点,这正是我得努力。

本文是我写的一篇趣文,我喜欢江湖,也喜欢武侠。我希望能够找到一个比较合理,甚至于科学的解释来解释这些千奇百怪的武功。当然这里面的逻辑仅仅是我一个一知半解的知识下解释的;纯当一笑,不要当真。

阅读全文 »

人类和魔鬼的攻讦

人:“我召唤你,来自地狱的恶魔,听到我的声音,来到我的身边,我愿意为你献上祭品,来满足你那深不见底的贪欲,阿嘞”

魔鬼:“谁在召唤我”

人:是我

魔鬼:哦,你好,你有什么事情么?

人(好有礼貌哦!):我希望你能够给我一个胸大的女友

魔鬼:对不起,我没办法创造人类,那是上帝干的事。

人:唉

魔鬼:亲爱的,创造一个人是一件巨大的工程,不仅涉及生物学还有基因,伦理,我只不过是在虚空的一只小鬼而已

人:那让校花和他男友分手,和我啪啪

魔鬼:哦,自由意志不可侵犯,我可没那么堕落,我不能改变他人的意志,只不过我可以在他们纠结的时候给予一点恶魔的低语

人:恶魔的低语?

魔鬼:是的,就是在他们耳边说话,如果他意志不坚定的话,会觉得这是他们的心里话。

人:那我需要拿什么来交换?

魔鬼:这就要看你有什么了,在所罗门那时候,我一般会要几百只羊,几百只牛,几百个儿童。

人:什么就为了几句话?

魔鬼:嘿,兄弟,商品的价格不是由我决定的,是由你决定的,你觉得这件事越重要你不应该为它付出更多的价值?

人:哦,你这贪婪的魔鬼!

魔鬼:好过分的话语,我并不贪婪和邪恶,我只是只魔鬼,我又不是人类,只有人类才那样,我只不过是遵守契约精神的魔鬼而已。

人:寓言中记录过你的故事,你假意拯救村民,然后要求将村民回家后的碰到后的第一个生物献给你,村民以为你想要的是他那可爱的小狗,最后你夺走了他的女儿,你还说你不贪婪。

魔鬼:我想要的是他的小狗,但是没办法,他的小女儿那天格外的兴奋,最后我也只能收下,毕竟我们已经谈好了,那个孩子我最后抚养到18岁就让她自己独立了。

人:唉?那你为啥不直接要求一只可爱的小狗呢?

魔鬼:不合适吧,如果我大费周章的就为了一条小狗,那样就会有更多的人来打扰我得生活。

人:那所谓的代价或者祭品就不需要等价交换?

魔鬼:不是很需要,主要看我喜欢什么,毕竟对你们来说,很多事对我来说就是低语而已,过程是一样的

人:那你为何还要那么多价格?

魔鬼:祭品从来都不是由我订的,这件事在你心中如果价值很高,你主动会为我提供丰厚的祭品,我只不过按照你给的笑纳而已?

人:那如果我只提供一瓶可乐作为报酬呢

魔鬼:可以,但是我一般不会同意,毕竟过低的价格会导致我忙碌的不可开交,所以我不会接受

人:那那些被因为祭品被魔鬼报复的人呢?

魔鬼:那是因为他们欺骗了我,不遵守契约,没有按照当初说好的提供报酬。

人:那等价交换呢?

魔鬼:人和人的价值观都有差距更何况你我的呢?只不过大家按照自己的价值观进行判断罢了。

人:那如果我可以延长自己的寿命么?

魔鬼:不要宿命论,宿命论是最糟糕的,没有未来可以交易。

人:那我可以要求自己拥有永远的运气么?

魔鬼:不能,那也是未来,而且我的交易都是可交付的,一次性的,不会有长期的,后期运维太麻烦了,我一个人忙不过来。

人:比如?

魔鬼:给我一千美元,我可以给你看下飞机的方向舵。

人:我要看那玩意作甚?

魔鬼:谁知道,也许有人需要呢?

人:那你们存在的意义是?

魔鬼:我们并不存在,我之所以在这只是为了嘲讽你。

《菜单》——困境

总有一天,我们不用吃饭也能饱腹——————牛顿表弟


20230106204514

在看电影之前也听过这部剧的简介,一片讲述美味的电影。我比较喜欢美食,也愿意尝试,平时在B站看的也是那种美食的复刻或者探店。知道noma,知道米其林三星,知道分子料理。恰如我的观影体验一样,我们的味觉上限在那,我们的感受上限在那,如果我们要超越感觉带给我们的限制,那么就需要更多的刺激,更多不同方面的刺激:无论是故事,理念,演技还是哗众取宠,我们对电影就像对事物一样,一旦满足了我们饱腹的欲望之后,我们就会追求稀有,追求更高的境界。

现在的美食带来的味觉上的享受已达到顶点,所以接下来就是要在故事,要在外观,要在感受上给人予新奇。电影如果抛弃那个突如其来的女人,那么就是一道完美的晚宴。有始有终,有故事的连续,有感官的冲击,有让人回味无穷的思想。这就是现代美食想给人们带来的,这片电影带来了,而且也满足了,那么他就是一道美食,一道不需要品尝的美食。唯一美中不足的是这片它还认为i自己是一部电影,它需要惊心动魄,它需要跌宕起伏,如果,假设如果,我们完全抛弃他的电影性,单纯的从上菜的仪式感,从主厨的故事,从副主厨的殉道,再到其他的一切点点滴滴,让我们品尝或观看一场菜单的晚宴,也不失为一种更好的体验。

我并不是一个老饕,对于食物,我只要他能果腹即可。但这不意味着我不喜欢美食,我也会尝试不同地方的食品,去感受不同的食物带来的不同的口感,但是即便如此我还是选择它最基础的属性:果腹。很多时候我不停的吃,有时候是因为饿,有时候仅仅是因为无聊,或者是天生对糖分的无法自拔。我经历过太多次的吃撑,经历过太多次的不为果腹的暴食。在看过这一切之后,我选择了回到他的原点:填饱肚子。我认为食物仅仅是刺激你的味觉,最多再加上视觉,这两种感觉带来的体验是有上限的,所以再美好的,再美味的食物,对你来说其实收益没有增加多少,相反你为了它历尽千辛万苦,花费真金白银,我不喜欢,也不愿意,我讨厌将一件日常的小事弄得大张旗鼓,那就是食物,只是吃个饭而已。

我看过很多美食的纪录片,他们浓缩汤汁,他们摘取嫩芽,他们打破外形的限制,甚至费劲心机创造了可以使用的塑料。那时的我除了新奇,内心却没有一丝想吃的欲望,也没有一点想体验的想法。我更多时候是看,然后听取他们为了收取更高的价格编造的一个个故事。我知道他们浓缩起来的味道有多香甜,有多浓郁,我知道他们食材有多珍贵,多么难得,但是就是不觉得那会好吃,也许我还在食物链的底层,我想要的仅仅是汉堡那样两片面包夹着一块满是汁水的肉馅,配上甜甜的可乐,那是我肚子所想要的。但是如今的高端餐厅已经放弃了食物最基本的属性,他们想要更多,更多的钱和更多的内涵,他们想要话语权,他们想要在都是人的世界里说出一些自己的话,他们甚至想要影响他的食客,他会创造一些菜肴,给他带来故事,创造一些仪式,为了让食客闻到春天的味道,让食客思考一些哲理,然后让他们心甘情愿的为之买单。食物已经抛弃了他的本质,所以它不需要肉,可以是某种合成物,果汁也不在甜蜜,也许是仅仅取它的味道,然后注入到清水一般,清水是最干净的。食物可以是象征,可以是感情,但是不一定是好吃的。喜好人人不同,但是总是有一种潮流或者正确在人群之中,而这个是容易满足。

从中我们可以看出高中低或者目前人类的划分标准吧:最底下的是满足欲望,是生存,中间的则是稀有,是珍贵,最顶端的故事,是精神,是某些玄之又玄的东西,是一种正确,是情感上的共鸣。从这个角度看,《菜单》在顶端。剧情不重要,因为它不需要剧情,它的仪式感,它的菜品,它始终如一的坚持就是给观看者最好的共鸣,曾几何时我们也在这“困境”之中无法自拔,在热情耗尽之后,陷入深深的怀疑,最后的火焰如果可以,也能净化掉这世界吧。菜单的故事是人生。

我想批判,但是事实就是如此,说的话再大声也不会改变一点。我想改变,发现目标太大,路途太远,时常想要歇脚,一歇下来就有驼蹉了好几天,我慢慢前行,但是日子并不总顺心意,我只能磕磕碰碰,坚持着早已被我忘掉的初心,甚至怀疑它是否还是初心,前路漫漫不知途,心有不甘不敢行。这就是我得困境

先订个基调:2023年还是以房地产为主要驱动。这是毋庸置疑的,也是不得已的。

主要原因在于:

  1. 各地财务状况没有好转,反而下跌,如果少了地产这个空缺,全国都有可能出现问题。

  2. 房企暴雷的太多了,不管不行,会硬着陆,上下游相关和从业人员是一个大问题。

  3. 房企残留太多未完成的项目,这些不仅是一个已投入资本问题,还有一个民生问题。

  4. 已经有政策支持出台,现在看市场反应,是加大还是点到为止。

所以,我明年大致确定明年还是会以房地产行业为主。和过去一样,但又不一样。首先:

  1. 地产商会以地方城投和国企为主:从这次的政策就可以看出,他们不想重蹈覆辙,所以出点政策看市场反应,也为了能够把握整体速度,防止再次过热,所以这次地产市场的主力会是国企为主。

  2. 地产主要是以收购烂尾项目和城市改造为主:收购暂停的项目1,为了民生;2,烂尾项目可以节约成本。而新开项目则主要是以城市改造为主:城市改造是地产溢价最高也是最可靠的项目,周边环境设施齐全,周围房价稳定,不需要投入大量基础设施,只要造好就行,价格可以参照周围楼盘,所以风险小。国企都进场了肯定给一些好赚稳定有收益的项目。

  3. 住房市场将会以改善型住房为主。今年全国人民存了1万亿,居民储蓄达到15万亿人民币,与之相对应的一条新闻是今年奢侈品消费创造新高。所以,明年的买房市场会以大户型,改善型为主。高净值用户一直是财政上的大问题,财政不希望它们在银行吃利息,或者进去金融领域套利,他们希望这些钱进入实体市场,促进经济。所以,国企开发+好学区+大户型+周边便利等加持的房子,会让这些高净值用户或投资或搬家。如果能带动楼市起色,再加上明年信贷宽松明年信贷宽松,高净值客户可以买一套再贷款,对他的现金流不会有太多伤害。

说完整体基调再说一些别的:

  1. 汇率:美联储明年确定加息,那么中国肯定会继续宽松管理,远期汇率7.5,近期汇率7.0。从最近的汇率表现可以看出,在内循环还未建立的情况下,还是需要一定的外贸。

  2. 半导体:半导体大基金出现丑闻,抓了一堆人。但是不会改变这个基金的主旨基调,主要是半导体算是钦定的下个接班人,不仅社会需要,国家发展需要,产业升级也是需要的,所以大基金换个人继续搞,后续管理上估计会加强。

  3. 行业大基金:大基金可以说让上面尝到甜头:由国家出基本金民间资本补足。这样可以使那些民间资本有序的参与,同时也能减少国家负担,毕竟现在普通人已经没有多少油水,那些存1万亿的高净值居民会是下一个韭菜。后续会出现各种大基金,用基金的形式出款,不仅可以防止暗箱操作,还能够当甩手掌柜,又能让百姓心甘情愿的掏钱,一举多得。坏处就是太看基金的操盘人。

  4. 电动汽车:电动汽车估计明年会有一波政策支持,可以考虑买点比亚迪。汽车能出口,能赚外汇,现阶段所有能赚外汇的东西都是好东西,都要支持的。至少当初你们从我这骗了多少补贴,我都要你们给我赚回来。

  5. 消费:居民消费肯定使要促进的,消费券,消费贷,甚至P2P都有可能,再看蚂蚁最近获得国企增资,只能说,明年也许会有一拨新的消费促进吧。

最后综上总结一下明年自己的投资方向吧:

有钱人有一百种方法理财,没钱的最贴近自己的投资还是股票:

首先债市不用考虑了,大量的信贷宽松,估计企业债市不会有太多的起伏,国债则就看各国之间应对的政策。

而汇市也不用说,人民币还是会承受压力,现阶段升值没有任何好处,难得开放,配合一波下跌,促进外贸。长期还是7.5以下

最后是股市:

半导体是未来,但地产会是主角,需要地产继续发展来给半导体争取空间,但是地产入局大多国企,所以建议买相关服务的股票,如装修材料,施工,销售房子等等。但是由于国企欠款,这些企业不少有可能暴雷。不想太大风险就买新能源和半导体,这块涨幅不会太大,主要大家都心知肚明,有些人今年就入局了。最后是消费相关的:民以食为天,可以看下食品和调味料,这些之前跌的比较多。然后需要注意文旅这块,如果真心经济起来,那么文旅消费会是大头。之所以之前万达要搞东方迪士尼,确实是,这东西在经济好的时候,带来的消费又高又稳。你就想象天天爆满的迪士尼就明白了,不仅有吃和玩的,还有住的,工艺品等等,涉及面广,但是消费高。所以经济下行的情况下没有太多出路。所以很多时候你看那些大佬的一些举动以为不着边际,甚至有点可笑,其实有时候是他看的太多太远,但是步子迈大了。

python 线性回归-最小二乘法

数学基础

说起线性回归,大多数人的反馈就如同下面2张图片一样,通过一些数据点的拟合,选取出一个最简单的y=ax+by=ax+b,来最接近所有数据截距最短。

线性回归1

线性回归2

这里就要提出一个问题,我们要如何取舍a,ba,b使得这条直线最接近大多数的点,使得这条直线能够最好的满足大多数点的位置,使我们达到模拟的目的。

假设数据集为(即对应的x,yx,y的实际合计):

D=(x1,y1),(x2,y2),,(xN,yN)\mathcal{D}={(x_1, y_1),(x_2, y_2),\cdots,(x_N, y_N)}

后面我们记(这里将x,yx,y单独独立出来成一个矩阵,方便后续计算计算,且注意,这里的xx可以是一个多元矩阵,但是必须注意需要将其转置成纵列,每一行都是多元x的数据集,方便后续计算,且在python的sklearn里面也是需要将x转置成纵列。):

X=(x1,x2,,xN)T=(x1Tx2TxNT)=(x11x12x1px21x22x2pxn1xn2xnp)N×pY=(y1,y2,,yN)T=(y1y2yN)N×1 X=(x_1,x_2,\cdots,x_N)^T=\begin{pmatrix} x_1^T\\x_2^T\\\vdots\\x_N^T \end{pmatrix}=\begin{pmatrix} x_{11}& x_{12}&\cdots&x_{1p}\\ x_{21}&x_{22}&\cdots&x_{2p}\\ \vdots&\vdots&&\vdots\\ x_{n1}&x_{n2}&\cdots&x_{np} \end{pmatrix}_{N\times p}\\ Y=(y_1,y_2,\cdots,y_N)^T=\begin{pmatrix} y_1\\y_2\\\vdots\\y_N \end{pmatrix}_{N\times1}

其中N代表的是xx的数据集长度,而pp代表xx的多元性。

线性回归假设:

f(w)=wTxf(w)=w^Tx

注意这里后面有个b,但是为了方便表示,全部归结到前面

这里,我们将线性回归函数产生的点和实际点的差距记为损失,我们可以使用最小二乘法来定义损失函数。

L(w)=i=1NwTxiyi2L(w)=\sum\limits_{i=1}^N||w^Tx_i-y_i||^2

这里双竖线代表的是矩阵的绝对值符号

展开得到涉及到矩阵的计算法则,不懂去补,不过不会影响到理解

\begin{align} L(w)&=(w^Tx_1-y_1,\cdots,w^Tx_N-y_N)\cdot (w^Tx_1-y_1,\cdots,w^Tx_N-y_N)^T\\ &=(w^TX^T-Y^T)\cdot (Xw-Y)\\&=w^TX^TXw-Y^TXw-w^TX^TY+Y^TY\\ &=w^TX^TXw-2w^TX^TY+Y^TY \end{align}

最小化这个值的,即对ww进行求导继续矩阵的求导

\begin{align} \hat{w}=\mathop{argmin}\limits_wL(w)&\longrightarrow\frac{\partial}{\partial w}L(w)=0\\ &\longrightarrow2X^TX\hat{w}-2X^TY=0\\ &\longrightarrow \hat{w}=(X^TX)^{-1}X^TY\\&\longrightarrow \hat{w}=X^+Y \\&X^+为伪逆 \end{align}

总结:最小二乘法:我们通过计算所有截距的乘积的最小值来计算出最合适的一条直线,这同时也是最小二乘法在二维平面内的几何意义。

如果将xx看作多维空间,会变成是一条直线对xx维空间内的投影距离最小,理解就行这里涉及到向量空间:

f(w)=wTx=xTβf(w)=w^Tx = x^T\beta

python应用

上面说明了数学原理,现在到了实际的python应用,具体代码如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

%matplotlib inline

import matplotlib.pyplot as plt

import seaborn as sns;sns.set()

import numpy as np



#导入必须的包

rng=np.random.RandomState(1) #设定随机种子,保证每次执行的结果都意志

x=10*rng.rand(50) #随机生成50个数值

y=2*x-5+rng.randn(50) #随机产生50个标准正态分布的随机数的函数



plt.scatter(x,y) #简单的描绘一下

得到如下的图片

线性回归1

接下来就是对这份数据进行预测:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

from sklearn.linear_model import LinearRegression #导入线性代数的包

model=LinearRegression(fit_intercept=True) #创建一个模型

model.fit(x[:,np.newaxis],y) #这里需要注意我们使用x[:,np.newaxis],将x进行转置,至于为啥,可以看上面数学基础,我们将这个作为一个y=ax+b的,所以N=50,p=1,需要设定成50行1列的矩阵输入进行预测,

xfit=np.linspace(0,10,1000) #这里创建了一个0到10,之间1000个相邻的数据

yfit=model.predict(xfit[:,np.newaxis])#用1000个数据输入到预测模型,输出新的y



plt.scatter(x,y)

plt.plot(xfit,yfit)#剩下的就是看预测的y和实际的差距

线性回归2

到此算是一个简单的模型搭建完毕,那么有些人如果说,我得数据是2元的,甚至是多元的,那么该如何:

还是一样,我们需要创建一个数据,这次是2元的,即2个未知数,并且设定一个方程给他。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

rng=np.random.RandomState(2)

x1=10*rng.rand(50)

x2=20*rng.rand(50)

y=4*x1+5*x2-10+rng.randn(50) #一个简单的二元一次方程

x_new=np.stack([x1, x2], axis=1) #我们需要输入一个N=50,p=2的50行2列的矩阵,其中50行代表数据量,2列代表的是2个未知数

#然后还是继续训练模型

model2=LinearRegression(fit_intercept=True) #注意命名新的模型

model2.fit(x_new,y)



print(model2.coef_[0],model2.coef_[1],model2.intercept_) #由于2元一次方程没有比较好的图片呈现形式,我们可以直接输出对应的斜率和截距,即y=ax+b的a和b,进行和原本数据对比。

20221228161724

所以数据精度还是可以的,但是前提这个是一个一次方程。

总结:最小二乘法可以说的上是最基础也是最简单的数据拟合,但是其中原理可一点都不简单,所以还是需要多加应用和学习。

遇见的问题

之前docker化遇见的问题:

  1. caddy配置如图\

2022_11_29_12_28_26

  1. v2ray配置config文件其中listen需要使用当前IP地址,使用127.0.0.1会发生"dial tcp 172.0.2:8888: connect:connnection refuse"de 问题.

2022_11_29_13_57_47

这个是v2ray得config配置里面得listen使用“127.0.0.1”监听导致得,将其改为对应得容器IP地址即可:

20221130093652

  1. 在连接之后,会出现:“rejected common/drain: common/drain: drained connection > proxy/vmess/encoding: invalid user: VMessAEAD is enforced and a non VMessAEAD connection is received. You can still disable this security feature with environment variable v2ray.vmess.aead.forced = false . You will not be able to enable legacy header workaround in the future.”

2022_11_29_21_33_49

如果你跟我一样使用docker的话,直接增加“command: /usr/bin/env v2ray.vmess.aead.forced=false /usr/bin/v2ray run -config /etc/v2ray/config.json” 覆盖容器原有得命令,简单粗暴,其他的可以看v2ray配置环境变量的GitHub方法,我就不班门弄斧了。

直接使用上面的docker-composer文件就可以解决所有问题。

  1. typecho的博客建议使用博客内部的备份还原来备份数据,不需要复制整个文档,复制完成后,直接解压新的typecho重新安装一遍之后再还原,这样可以节省很多时间,而且不会出现一些数据库读取的bug,我这边图片用的是GitHub的图床,所以不会出现文件问题,如果你文件需要备份的话,建议也要复制对应的文件夹。

参考文档

v2rayMD5验证问题

0%