北京冬季清晨

最近天气很好,天很蓝,没有雾霾。

早十分钟出门,可以去附近商场麦当劳吃早餐。办了一张月卡可以打折。

这几次都能碰到骑手聚在麦当劳,不知是闲聊还是互相交流工作。挺好奇他们在说些什么。

问ai:时间加权回报率和货币加权回报率的区别

时间加权回报率(Time-Weighted Rate of Return, TWRR)和货币加权回报率(Money-Weighted Rate of Return, MWRR,也称为内部收益率或IRR)是衡量投资表现的两种不同方法,它们各自对投资者的资金流动进行不同的处理。时间加权回报率(TWRR):- 时间加权回报率是一种衡量投资组合绩效的方法,它消除了投资者资金流入流出对回报率的影响。- TWRR将整个投资期间分成多个子期间,每个子期间的起点是资金的流入或流出发生后。- 每个子期间的回报率被计算出来,然后连乘以得到整个投资期间的综合回报率。- TWRR是一种更适合评估基金经理绩效的方法,因为它不考虑投资者的资金流动对绩效的影响。货币加权回报率(MWRR):- 货币加权回报率考虑了所有的现金流(投资和提取)及其时间点对整体回报的影响。- MWRR实际上是解决内部收益率(IRR)的问题,即在哪个折现率下,现金流入的现值等于现金流出的现值。- 这个方法对于个别投资者来说更有意义,因为它反映了实际的金钱增长,考虑了个人的资金投入和撤资行为对投资回报的影响。- MWRR可以被认为是投资者个人投资表现的真实指标,因为它反映了他们的资金投入时间和金额。两者的主要区别在于对投资者资金流动的处理方式。如果投资者在投资期间没有频繁的资金流动,那么TWRR和MWRR可能会给出相似的结果。但是,如果投资者在投资期间有大量资金的流入或流出,两者可能会有显著不同的结果。简单来说,如果你想评估一个基金经理的表现,不受投资者资金流动的影响,那么应该使用时间加权回报率。如果你想要评估你个人的投资表现,包括你何时投入或撤出资金的影响,那么应该使用货币加权回报率。

网站迁移成功

新购v.ps的荷兰大盘鸡,4核8g内存,比原来2核1g内存的入门级性能服务器好很多。

新服务器安装宝塔面板后,在旧vps使用一键迁移功能,选择要迁移的网站目录和数据库就可以了。然后改下dns解析的ip地址,就可以正常访问了。比其他方法方便很多。

在宝塔面板下,为docker部署的网页程序配置ssl

1 开启宝塔自带的面板ssl,获得宝塔的自签证书

2 在宝塔面板-网站选项中,填写ip+端口,新建网站。

3 在配置文件中,增加以下代码

  location / {
  proxy_pass http://127.0.0.1:端口号/;
  rewrite ^/(.*)$ /$1 break;
  proxy_redirect off;
  proxy_set_header Host $host;
  proxy_set_header X-Forwarded-Proto $scheme;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header Upgrade-Insecure-Requests 1;
  proxy_set_header X-Forwarded-Proto https;
}

4 在配置中,注释掉前两个含有location的代码,防止冲突。

location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$
{}
location ~ .*.(js|css)?$
{}

并注释掉以下代码
#禁止在证书验证目录放入敏感文件
if ( $uri ~ "^/.well-known/.*.(php|jsp|py|js|css|lua|ts|go|zip|tar.gz|rar|7z|sql|bak)$" ) {return 403;}

5 在配置文件下方的SSL中,选择证书夹,找到以ip命名的网站进行部署。部署后在当前证书选项卡中开启强制https

6 重启Nigx,然后访问ip地址(不加端口号)

VPS搭建VPN

刚刚接触ChatGPT的热情过后,开始考虑长期成本的问题

几个月前,为了能够注册账号,听了抖音上”赵哥说3D”的推荐,买了V.PS的VPS,从此入坑,目前的博客也是搭建在这台VPS上。开始用SSR搭建了VPN,第二天ip就被墙了,虽然一个星期后解锁了,但对此一直心有余悸。后来用便宜的Racknerd,利用X-UI搭建服务,几个月一直在稳定运行,因此又折腾试验了下其他VPS的效果。
先说V.PS,它的优点是访问速度快,我利用它搭建ChatGPT-On-NextWeb访问速度优于Azure北美服务器、Vercel的免费CDN代理,利用X-UI搭建的VPN用V2ray测速约25M/s。
缺点是价格高,34.95欧/半年的价格,只能买到1核1G内存20G硬盘,运行服务多了就容易崩,刚刚在写这篇博文时,为了测速,导致内存不够数据库报错文章无法保存。

此后是10美元一年的Racknerd,虽然便宜,但无法访问Openai、奈飞,因为超卖,晚高峰时会降速到0.1-0.2M/s,只能浏览网页。白天的时候,测速可以达到17M/s,此时可以看4K的YouTube。

NorthFlank(谷歌服务器)免费,只支持轻量级服务,我选的欧洲节点速度1~2M,可以搭建2个节点,但无法解锁奈飞和Openai

今天试了下阿里云、腾讯云在新加坡,还有Azure的West Europe地区VPS。

阿里云新加坡地区轻量云服务器2核2G40G硬盘30M带宽,3年864元,可以按月付费。可解锁奈飞,但无法访问Openai

腾讯云新加坡服务器,在与阿里云同等配置情况下,包年要1600,香港地区的服务器要稍微便宜些。如果只购买1核1G的新加坡服务器,按量付费每小时0.13元外加0.8元/G流量费用。但同样无法访问Openai

Azure注册后,有一年的免费使用期,可以选择美国中部和西欧的服务器,1核1G内存60G硬盘。延迟稍高,但速度快,且可解锁Openai、奈飞。感觉是新手建站和搭建VPN目前最好的选择了。

后面让谷歌Bard评价了下,因为政治原因,Openai封锁中国地区用户和相关公司,阿里云和腾讯云都在此列,而Racknerd可能由于门槛太低,且审核机制不够严格,也无法访问。Azure虽然是免费账户,但用户认证较为严格(需要绑定信用卡)。

问了下Bard便宜的服务器,回复说akkocloud,看了下介绍还可以,可以备用。

总结下来,用来访问Openai,不建议选择大陆运营商来搭建VPN;前期成本最低,最适合上手的是Azure可以同时实现搭建代理和建站的需求,唯一门槛是注册需要美元信用卡(不必是美国地址),另外azure openai的ChatGPT4.0的api接口已经开放,可以利用前一个月的200美元额度尽快体验。

ps:VPS对于大多数人仍然只是个纯粹的投入,所以降低长期成本只能将博客等放到国内,但又无法绕过审查等问题。最后贴一个VPS选购参考地址最近一年-IP地址归属地查询-全球小鸡监控平台 (ping0.cc)

【转】用Cloudflare Workers提供一个翻译API后端

本文有小的修改和细节说明,主要说明和代码的原文地址:

用Cloudflare Workers提供一个翻译API后端 – Minaduki’s Blog

地铁上班路上,刷到文章:使用Cloudflare Workers AI搭建一个翻译服务,搜索实践了下。

准备工作:

  • Cloudflare账号注册
  • 简约翻译(浏览器插件)
  • 注册域名(中国网络环境必选项)

主要步骤

前面两个链接的主要步骤已经写得很详细了,这里只简单补充。
  • Cloudflare主页-侧边栏AI(beta)-侧边栏Workers AI-Workers AI模板-翻译应用-部署-编辑代码-替换为以下代码(首行代码改为引用’./vendor/@cloudflare/ai.js’),右上角保存并部署
import { Ai } from './vendor/@cloudflare/ai.js';// 此处有小的变化
export default {
  async fetch(request, env) {

    /**
     * readRequestBody reads in the incoming request body
     * Use await readRequestBody(..) in an async function to get the string
     * @param {Request} request the incoming request to read from
     */
    async function readRequestBody(request) {
      const contentType = request.headers.get("content-type");
      const Authorization = request.headers.get("Authorization");
      const expected_token = env.BEARER_TOKEN;
      if (Authorization === `Bearer ${expected_token}`) {
        if (contentType.includes("application/json")) {
          return await request.json();
        } else {
          throw new Error("Request's content-type is not supported. Please use application/json.");
        }
      } else {
        throw new Error("Authentication failed. Please check your access token.");
      }
    }

    if (request.method === "POST") {
      try {
        const reqBody = await readRequestBody(request);

        const ai = new Ai(env.AI);
        const inputs = {
          text: reqBody['text'],
          source_lang: '',
          target_lang: 'chinese'
        };
        const response = await ai.run('@cf/meta/m2m100-1.2b', inputs);

        const translated_text = response['translated_text'];
        const ret = {
          text: translated_text,
          from: "", // 识别的源语言,Cloudflare目前似乎并不支持
          to: "zh-CN"
        };
        return Response.json(ret);

      } catch (e) {
        return new Response(e.message);
      }
    } else if (request.method === "GET") {
      return new Response("Please use POST.");
    }

  }
};
  • 复制下面的链接创建key,aip创建模板选择Workers AI (Beta):https://dash.cloudflare.com/profile/api-tokens
  • 点击左侧边栏选项》Workers 和 Pages,找到刚刚建立的项目点击,设置》变量》编辑变量。变量名称BEARER_TOKEN,值为上一步获取到的key
  • 浏览器打开简约翻译的配置页面,接口设置》Custom,URL处填入项目预览地址(格式为https:\\worker-xxx-xxxx-xxx.账号名.workers.dev\translate),还有key,点击测试。
  • 如在国内网络环境使用,回到Cloudflare刚刚的Workers 和 Page,点击项目名称》触发器》填入自定义域名(如DNS未在Cloudflare配置需要在域名服务商进行配置)

最终效果取决于访问的网页结构,翻译速度很快,但可能漏掉部分文字

学习Python——在本地安装anaconda,使用jupyternotebook

虽然已经开始尝试使用百度飞桨和谷歌的colab了,但对本地使用python的环境要求还是一头雾水。今天跟着视频尝试安装anaconda,利用jupytor notebook来在电脑本地运行python,抄写之前大数据软体公司的代码,来转写YouTube视频。ps:用户名需要用英文,不然notebook的内核总是在忙!!!

下面是<意公子>-youtube视频链接和调用whisper转写的文字

蘇東坡對命運有很多的「放過」,但是李白,從不放過。【意公子講李白】 – YouTube

中文转写有很多错别字需要注意分辨。

还是要勇敢一点,这是我最近读完李白以后最大的一个感受。小时候读李白,总觉得他是诗仙。你看他写的这些诗,什么君不见黄河之水天上来,那个龟楼高百尺,桃花潭水深千尺,什么飞流直下三千尺。这些风景哪里是人间的风景,所以我们才觉得他仙,能写出这样诗句的人,那种非凡想象力的人,他应该就是那种豪迈的、自由的、洒脱的灵魂吧。但是我最近重读李白之后最大的一个感受,就是他的这些印象全碎了。但是当我去触摸到一个可能是更真实的李白的时候,我被他感动得一塌糊涂。我觉得他好像在告诉我,人生还是要勇敢一点。于是我为李白写下了这一篇。我从来都没有写过这么长的一篇短视频的文稿,八千七百三十四个字。我想半天我说,大家怎么能看得下去呢?会不会看到一半就跳出去?所以我就想前面能不能删掉。后来我发现我一个字都删不了,因为他真的很感动我。所以希望今天大家有耐心,能够看完这篇比较长的文章。 我们知道李白在一生当中,在政治上是很不得志的。但你知道他有多么渴望成为纪事之才吗?当我们如果能够了解李白的那种”打不死,我就要继续爬起来,再战斗”的那种职场经历,我相信我们都会为他而感到唏嘘的。 其实在唐朝那个相对开明的年代里,想做官有好几种形式的。一种就叫门因入室,就是说咱祖上是官,那咱多少还能沾点光。另外一种就是科举,家里不抢官员没问题,寒门子弟也是有机会的。而且科举还分常科和智科,常科就是每年分科举行的考试,有好几个科目,万一你要是哪一门考得特别优秀,还有机会让你去参加某一些特别的考试。而智科就是怕常科考试埋没人才,皇帝专门特赦的考试,所以我们也可以把它理解为特招生。当然啦,唐朝科举的这个录取比例还是比较低的,但是你想那么全面的选才方式,如果你真的有一身才华的话,你完全可以有机会走这条路的。然而李白一生都没有参加科举,为什么呢?其实不是因为他看不上,而是因为他连考试的资格都没有。 这就要讲到李白的出生了。我们之前其实讲过,关于李白的出生有好几种说法,其实李白自己在他的那个文章里面就写的自相矛盾,一会儿说自己是金陵世家,一会儿又说自己是陇西平民。其实关于他的出生,有几个比较详细的记载。一个是他的祖书李阳兵,他受李白之托在给他编文集的时候给他写了一个序文里有提到。另外一个是李白死了以后,他有一个粉丝叫范传政,他去寻找李白的后代,找到了他两个孙女,然后按照李白的遗愿给他改葬。改葬时候立的那块碑,碑文里也有提到。 还有一个史料来自《新唐书》,所以综合起来看,我们大致可以推测出李白的祖上也许真的是贤赫的,但是在隋朝末年因为一个罪名被流放到西域去,被迫更名改姓。到武则天时期,他才悄悄潜回四川。罪人之后有很多事情是难以启齿的,所以其实从某种意义上来讲,李白很有可能是黑户。唐朝的什么考试他都需要你带着身份证户口本去登记,你得要证明自己的户籍和家世。而李白这一关就过不了,所以政审不通过,你什么考试都没辙。那上天对于这个五岁送六甲,十岁观其书,十五好剑术,满腔才华的李白,在功名这条路上连先天条件都不具备,那怎么办呢?还好这个开明的时代里给诗人留了另外一条路,那就是肝业。肝业就是写自荐信,它是带着非常强烈的功利性的,就是我要把我的才华展示给你看,而且你的地位肯定比我高多了,所以我才要求你,求你看见我,求你举荐我。我们去翻看李白的作品,从他20岁向当时的他的父母官一州长史苏挺递上他自己的文章《大猎妇》开始,一直到他59岁流放夜郎回来,在将近40年的时间里,他从来没有停止过自荐。他向各级各类官员,他能见到的不能见到的人不停地变着各种花样来自荐。有的时候是像苏挺这种递上自己最近写的文章,有的时候是直接就写一封自荐信。而且,我们如果把这个李白的自荐信集中起来读,真的会有一种不忍足读的感觉。你会看到一个心气如此之高的大诗人在这40年的时间里是怎么一点一点被打到滴入尘埃里的。30岁的时候,他给安州长史裴宽写信自荐,一开始还很拽,说自己是金陵世家,还是前丞相的孙女婿,多少有点背景,而且我很会读书,从小就是这样,好多大V都给我点过赞。那谁谁说我的文采堪比司马相如,大家都听见了。还有那个谁谁对你的前任长官说,说我的文章句句动人,就这话。我那个好朋友袁丹秋,他也听见了,不信你可以问他。然后他又花了很长的篇幅,说了两个故事,主要就是为了体现自己忠仪交友的优良品德和不屈权贵的高尚人格,最后把对方夸了一通,说十年前我就特别仰慕你,一直想跟您报告来着,老是没有机会。现在我听说有人在您面前说我的坏话,让您远离我,我多冤哪,希望您宽大为怀,再次器重我。您如果不器重我的话,那我可就要走了,我要黄湖高飞去长安了。您如果不能纳贤,那王公大人那么多,我为什么不可以去转头别人呢。你想我们以前是站在李白的角度去看这件事情的,我们可能觉得李白很冤。但如果我们换一个角度,今天你是用人单位。 你单位收到了一个年轻人写来的自荐信,读完后你有什么感觉?你可能会觉得这个年轻人可能是有才华的,但有点自负。嗯,陪长官们估计也是这么觉得的。所以他其实也没有推荐李白,就这样转转转了四年,李白还在找工作。这个时候他遇见了当时的荆州长官韩朝宗,于是就写下了这篇后来被收录到古文官志里千古文明的自荐信《禹韩荆州书》。这封信看了就真的是五味杂陈。其实我之前说过一次,请原谅我今天还是要再重复一遍,因为我真的没有见过这样子的李白。第一大段先是极尽所能的拍马屁,拍得又浮夸又让人难以拒绝。我听说天下人都在讲,生不用封万户侯,只愿结识一下韩荆州。天哪,你是怎样让人仰慕到如此程度的?难道不是因为你有周公之风,徒步之心,才让天下的豪杰名士都要奔走到您的名下吗?只要入了您的法眼,他们身价十倍了。第二段低调地介绍一下自己,我只是一个陇西平民。嗯,你要记得,四年前他说自己是精灵世家的,现在是平民,低调。我十五岁爱好建树,见过很多的地方长官。三十岁我的文章已经名满天下了。虽然我个子不高,但是我的志气高啊,好多大V都给我点个赞。好,夸自己的部分到这里就结束了。你看啊,相比于四年前,他用这四大段的篇幅来夸自己,现在反而非常低调,四句话而已。而且,他居然还接受试用,他说如果您让我写文章,就算日复万年,不带假眼的,马上给您搞定。然后他又用两大段的篇幅大规模地给韩金周戴帽子,把人架到道德的至高点上,嚇不來。您的著作堪与神明相比,您的德行感天动地,您的文章与自然同造化,学问与天道同等级,您就是决定文章命运与衡量人物的权威啊。您看,古往今来的这些圣贤们就是因为推荐了有才能的人而被后世称赞,您也推荐了好多人呢,比如那谁谁谁,谁谁谁,我每每看见他们的时候,都觉得感动和激励。所以,我谁都不归,就仰仗您了。您要是有什么紧急艰难的时候,要用我,我一定为您献身效命。最后,我就一个卑微的请求,求您见见我吧。我觉得,这篇文章之所以被收录到古文观止里,有可能真的是因为它的确有文采吧,层层递进你的逻辑,而且又很清晰、谦虚又很诚恳,然后还把对方夸得下不来台。最后的请求也特别微小而具体。但是,你要说,写下这些文字的李白是真诚的,是快乐的,那些赞美的句子是满怀希望与生命力的,原谅在下有眼无珠,真的看不出来。我反而觉得很悲哀,就是一个心比天高的李白,他要一次一次地去写自荐信给一些人。 他可能内心都不一定看得上的人,却去谋求一个被赏识的机会。我真的是忍不住要问你,你到底图什么呀?其实,如果我们去看李白的作品,他内心所表达的,他想要的那个政治理想,根本不是一个繁琐的官场。他希望自己像战国时期的谋略家鲁仲廉一样,能横空出世,拯救时局,制定大计,惠及众生,然后隐姓埋名,深藏功与名。这是一种英雄的浪漫主义,太浪漫,也太不实际了。但是李白不相信,他浪漫至死,他觉得他可以。于是在四十年的时间里,我们就看到李白不停地自荐,甚至到什么程度呢,他晚年被当成叛军关起来,差点就要丢掉性命了。好不容易被人救出来,他发现那个救他的人,可能可以向新皇帝举荐自己的时候,那个五十七岁的李白又坐不住了。这一次他不是写自荐信,而是用对方的口吻,写一封推荐自己的信。你看,考虑得多周到,就信我都替你写好了,你只要网上订就可以了。为了能实现自己的理想和抱负,李白是一次次被打垮,然后又一次次站起来。我们要说这个老天爷,终究还是长眼的,可能真的是因为李白太想要了,于是上天真的给了他一次机会。那李白是怎么把握住这个机会的呢,这就要说到,唐朝除了科举和干页之外,给诗人开出的最后一条路,修道。我们知道李白是道教徒,正儿八经受过录的,也就是说他是官方登记在册的道士。如果他愿意,他是可以去当个道士赚钱的。可以说不管是道教还是道家思想,他都在很大程度上影响到了李白。但是李白修道,不仅仅是为了滋养身心,他还有一个很隐密的目的,就是为了牧师。当时在唐朝的上层社会,修道之风盛行。嗯,你这么想吧,就很像是说,我跟你虽然有巨大的阶层差距,但是在修道这条路上,我们同是道友啊。所以呢,这条路也被称为是中南捷径。它就有点像,嗯,老板喜欢灌蛋,我陪老板灌蛋。当然这么比喻可能有点不太准确啊,但意思你懂的。其实在李白的修道路上,真的是有两个道友对他帮助非常大。一个叫袁丹秋,另外一个叫玉珍公主。袁丹秋向玉珍公主推荐了李白,然后玉珍公主又向玄宗推荐了。那玄宗短时间内听完贺之章夸,然后又听玉珍公主夸,他就想要见见这个人了。于是就有了李白,所谓啊,他职业生涯的华彩尽头,玄宗亲自下台阶迎接他,就像是见到了商山寺后,这些大隐士一样。他用七宝床,也就是皇帝专用的床,让李白坐在上面,请他吃饭,而且还亲手调和羹汤来给他。皇帝对李白说,你虽然是平民,但是你的名声大到连我都知道了,难道不是因为你平日道德太显著的缘故吗?然后玄宗对他大为赞赏,不仅问他治国方略 是一个文学家而不是激世之才,这个问题很难确定。无论如何,李白的职位是翰林供奉,他在翰林院上班,但与翰林学士的职位有所不同。翰林供奉的工作职能是每天等待皇帝召见,陪伴皇帝在身边,包括御用文人、算卦的、游戏的、念佛的、画画的、吹拉弹唱的等。范传政曾在给李白写碑文时说过李白的才华,但关于李白能否一气呵成写作,甚至在写作时能否因为太过出色而惊退其他挑战者,这一点后世有很多争论。总体来说,我们在李白的自荐信或对朝政的讨论中,很少看到实质性的建议或逻辑严谨的意见,但看到了很多文学上的才华。这就像是领导希望得到一个策划案,但你却给他念了一首诗。所以,错过李白,是集体失明还是李白本身不是激世之才,这个问题很难确定。 就不适合呢,即便给了他这个机会,你觉得李白能够成为一个优秀的政治家或者优秀的职场人吗?我想大概率不能,因为职场需要的是理性,是效率,是克制自己的,随心所欲,甚至有的时候要牺牲自己的情绪。但李白显然不是这样的人。他一生的执念就是成为济世之才,他想入世,但是却始终无法适应主流的规则。当人生有一个巨大的错位的时候,悲剧就产生了。其实当我们跳出李白之外,相对冷静和客观地去看李白,你就会发现,他的个性早已经决定了他命运的走向。这条路他就是不适合,所以变成这种结果很合理啊。可是我们为什么还是会被李白感动呢?我想就是因为他身上有我们那种已经丢失了很久的幼稚,纯粹,傻傻的勇敢。他就好像一个孩子一样的,孩子会给自己构建一个理想的世界,在那个世界里面他是大英雄,是奥特曼。奥特利姆光线放出来的时候,他就觉得他已经打败你了,你死了。然后作为成年人,你会觉得好好笑啊。可是在孩子的世界里面,他真的觉得他就打败你了呀。而李白终其一生,就活在这种幼稚的天真的世界里。他为什么一次次的失败?就是因为他的那个世界和现实世界是如此的不兼容。可是他还就不信,他在球曲中一次次被打趴下,然后又一次次站起来。这是一种与命运对抗的勇气,有一股傻劲,但是特别生猛,特别痴情。苏东坡对命运有很多的放过,但是李白从不放过。他像一个骑士一样,勇敢地去探索,去追求,飞蛾扑火地往一个注定会失败的方向。于是这个悲剧就越滚越大了。而值得回味的是,命运给你这个悲剧,居然就是为了来成就你文章锤千古的才华。如果不是这样,哪有人生在世不如意,明朝散发弄天舟;哪有且乐生前一杯酒,何须身后千载名;哪有仰天大笑出门去,我辈岂是蓬蒿人;哪有五花马千金求,呼儿嗆出换美酒;与儿同笑万古愁。