Jekyll2024-03-17T01:44:01-05:00/feed.xmlVerne in GitHubEin Vernegit@einverne.info绕过付费墙2024-03-16T00:00:00-05:002024-03-16T00:00:00-05:00/post/2024/03/bypass-paywalls<p>今天早上看到一篇 WSJ 的分享,但是点进去发现竟然只能看个开头,所以兴起整理一下这篇文章。</p>
<h2 id="bypass-paywalls">bypass-paywalls</h2>
<p>之前我就知道一个叫做 <a href="https://github.com/iamadamdev/bypass-paywalls-chrome">bypass-paywalls</a> 的插件,但是因为因为<a href="https://blog.einverne.info/post/2023/11/i-bought-mac-mini-and-setup.html">更换电脑</a> 所以 Chrome 上没有配置,所以立即设置起来。</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git clone git@github.com:iamadamdev/bypass-paywalls-chrome.git
cd bypass-paywalls-chrome
cd build && sh build.sh
</code></pre></div></div>
<p>然后将此文件夹拖拽到 <code class="language-plaintext highlighter-rouge">chrome://extensions</code>。</p>
<p>但当我安装完成之后发现,WSJ 可能检测到了该插件,查看 Chrome 的请求,直接返回 401,感觉应该就是检测并且屏蔽了该插件。</p>
<h2 id="bypass-paywalls-chrome-clean">Bypass Paywalls Chrome Clean</h2>
<p>于是我就又找了一个插件 <a href="https://gitlab.com/magnolia1234/bypass-paywalls-chrome-clean">Bypass Paywalls Chrome Clean</a>,这个插件在原来的插件基础上,增加了一个非常独特的功能,那就是当发现内容已经被 archive.is 等内容缓存的时候,就直接将网页内容替换为缓存的内容,间接实现了绕过付费墙的目的。</p>
<p>Bypass Paywalls Chrome Clean 的安装也非常简单,直接 clone 项目,然后拖拽到 Chrome 即可。</p>
<p><img src="https://pic.einverne.info/images/WW38QjvCqg.png" alt="WW38QjvCqg" /></p>Ein Vernegit@einverne.info今天早上看到一篇 WSJ 的分享,但是点进去发现竟然只能看个开头,所以兴起整理一下这篇文章。基于表格的无代码数据库 Teable 介绍2024-03-14T00:00:00-05:002024-03-14T00:00:00-05:00/post/2024/03/teable-introduction<p><a href="https://github.com/teableio/teable">Teable</a> 是一个非常快,实时,专业,开发者友好的 No Code 数据库。Teable 构建在 PostgreSQL 之上,使用一个简介的,表格类似界面,可以基于此构建复杂的企业级别的数据库应用。</p>
<h2 id="功能">功能</h2>
<p>Spreadsheet-like 界面</p>
<ul>
<li>单元格编辑,每一个单元格都可以编辑</li>
<li>公式支持,支持直接在单元格进行公式计算</li>
<li>数据排序和过滤,基于列或者多列的排序过滤</li>
<li>Aggregation Function,聚合方法,根据列,计算,统计 sum, average,count,max,min 等</li>
<li>数据格式化,格式化数字,日期等</li>
<li>分组,行组织成组</li>
<li>固定列,固定表格左侧的列,滚动时可见</li>
<li>导入导出 csv xlsx 格式</li>
<li>行样式和条件格式</li>
<li>图表和可视化工具,从表格数据创建图标,比如条形图,饼图,折线图等(即将推出)</li>
<li>数据验证,限制或验证单元格中的数据(即将推出)</li>
<li>撤销和重做(即将推出)</li>
<li>评论和注释(即将推出)</li>
<li>替换查找(即将推出)</li>
</ul>
<p>多视图</p>
<p>以特定的方式显示数据</p>
<ul>
<li>Grid View,网格视图,默认,电子表格形式展示</li>
<li>Form View,表单格式,用于输入数据</li>
<li>Kanban View,看板显示(即将推出)</li>
<li>Calendar View,日历视图 (即将推出)</li>
<li>Gallery View,图库视图(即将推出)</li>
<li>Gantt View,甘特图,项目进度(即将推出)</li>
<li>Timeline View,时间线视图(即将推出)</li>
</ul>
<p>速度快</p>
<ul>
<li>支持数百万数据</li>
<li>自动索引</li>
<li>批量操作</li>
</ul>
<p>SQL 支持</p>
<ul>
<li>可以与 BI 工具,比如 [[Metabase]],[[PowerBi]] 等工具集成</li>
<li>和 [[Appsmith]] 这样的 No code 工具集成</li>
<li>支持原生 SQL 直接检索数据</li>
</ul>
<p>Privacy First</p>
<ul>
<li>支持自己托管数据</li>
</ul>
<p>实时协作</p>
<ul>
<li>为团队涉及,支持数据实时更新</li>
<li>支持团队协作,成员邀请和管理</li>
<li>完全的权限机制,支持表和列级别</li>
</ul>
<p>扩展性</p>
<ul>
<li>基于 React 的无后端编程能力</li>
<li>极低成本定制自己的应用程序</li>
<li>扩展脚本</li>
</ul>
<p>Automation 自动化</p>
<ul>
<li>使用 AI 或者可视化编程设计工作流</li>
</ul>
<p>Copilot (即将推出)</p>
<ul>
<li>通过聊天创建项目表格</li>
<li>澄城条形图分析</li>
<li>查看日程安排</li>
<li>等等</li>
</ul>
<p>关键词说明:</p>
<ul>
<li>Space,Teable 中所有的内容都通过 Space 来管理,每一个 Space 都是独立的空间,可以邀请协作者单独管理 base</li>
<li>base,是 Database 的缩略语,是存储数据的地方,workflow 也依赖于此</li>
<li>table,用来管理不同的数据集</li>
<li>view,用户可以创建 Grid,Form views,Gallery,Kanban,Calendar views 等等</li>
</ul>
<h2 id="总结">总结</h2>
<p>在 GitHub Trending 上看到这个项目就点开来看了一下,直接拉下来代码,看到当前项目的完成度还不错,直接在服务器上就跑起来了,但看到官方的说明,项目还在构建当中,还有很多功能在慢慢推进,我自己的话还没有来得及每个功能都尝试一遍,但以当前的完成度,还是果断关注一下,这个项目的想象空间还是挺大的,毕竟有了灵活的数据库可视化,很多服务都可以被代替掉。</p>
<h2 id="related">related</h2>
<ul>
<li>[[PostgreSQL]]</li>
<li>[[Airtable]]</li>
</ul>Ein Vernegit@einverne.infoTeable 是一个非常快,实时,专业,开发者友好的 No Code 数据库。Teable 构建在 PostgreSQL 之上,使用一个简介的,表格类似界面,可以基于此构建复杂的企业级别的数据库应用。聊一聊 Devin 第一个完全自主的 AI 工程师2024-03-13T00:00:00-05:002024-03-13T00:00:00-05:00/post/2024/03/devin-first-ai-software-engineer<p>Devin 是 Cognition 发布的一款完全自助的 AI 软件工程师。<sup id="fnref:1" role="doc-noteref"><a href="#fn:1" class="footnote" rel="footnote">1</a></sup></p>
<blockquote>
<p>Fully Autonomous AI Software Engineer Devin
完全自主人工智能软件工程师 Devin</p>
</blockquote>
<p>Devin 主打的就是通过 prompt 自主的学习,编写,调试,甚至可以进行部署。在 Cognition 发布的视频来看,Devin 至少能够</p>
<ul>
<li>进行网页浏览,比如查看并理解 GitHub Issue</li>
<li>自主学习 API 文档</li>
<li>进行编码,根据 Upwork 上的实际问题来编码</li>
<li>调试</li>
<li>修复错误</li>
</ul>
<p>和传统的 AI 对话框不一样,Devin 自带了命令行,编辑器,甚至还自带了一个浏览器。</p>
<h2 id="dhh">DHH</h2>
<p>伴随着 Devin 的发布 DHH 也发布了一篇博文《<a href="https://world.hey.com/dhh/developers-are-on-edge-4dfcf9c1">Developers are on edge</a>》,讲述了 AI 可能对程序员造成的影响,他说到现在软件开发行业遭受着双重打击,一方面科技行业一直在裁员,而另一方面还要面临 AI 带来的巨大威胁。</p>
<blockquote>
<p>That’s the trouble with The Future. It’s awfully difficult to predict when it’ll actually arrive. All we’re doing is making bets and taking guesses.</p>
</blockquote>
<p>文中 DHH 做了一个非常形象的比喻,过去农业需要全球 97% 的人参与其中,而今天只需要 2% 的人口。尽管农业生产总价值上升了很多,但是从事农间生产的人却少了很多很多。归咎其原因就是因为科技发展所带来的自动化进程,使得从事农业生产的人只需要动一动手指就可以管理大面积的农田。</p>
<p>那未来程序员的职业何尝不可能发展成这样呢?或许 AI 的发展会使得软件开发行业面临前所未有的变化,当软件行业不再需要那么多程序员进行手动编程的事后,这一个行业可能就已经达到了顶峰,但 DHH 也说了这并不意味着这个行业的小时,而更可能会让 AI 在社会生活中被更广泛的使用和融合,软件行业可能不需要那么多的手工编码程序员,但是他所产生的价值却还是会给社会带来巨大的福利。长期来看,没有任何职业可以成功抵御因为技术进步所带来的自动化而遭淘汰的命运,积极地拥抱变化,看向未来才是当下我们所能做的最后一件事情。</p>
<div class="footnotes" role="doc-endnotes">
<ol>
<li id="fn:1" role="doc-endnote">
<p><a href="https://www.cognition-labs.com/blog">https://www.cognition-labs.com/blog</a> <a href="#fnref:1" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
</ol>
</div>Ein Vernegit@einverne.infoDevin 是 Cognition 发布的一款完全自助的 AI 软件工程师。1 https://www.cognition-labs.com/blog ↩长桥证券开户及入金介绍2024-03-12T00:00:00-05:002024-03-12T00:00:00-05:00/post/2024/03/longbridge<p><a href="https://gtk.pw/zT9HR">长桥证券</a> 是一家创立于新加坡和香港的证券经纪服务商,创立团队来自阿里巴巴,字节跳动等互联网企业,于 2019 年 3 月正式成立,总部位于新加坡。 集团旗下长桥证券(香港)有限公司(中央编号:BPX066)持有香港证监会第 1、4、9 类牌照。</p>
<h2 id="优点">优点</h2>
<ul>
<li>长桥证券主打的一个营销点在于「终身免佣」,当入金达到一定门槛(当前只需要 10000 HKD)即可申请免佣</li>
<li>基金 0 元申购</li>
<li>期权交易费用低</li>
<li>通过 AI 自动总结行业信息,长桥证券是我用过的第一家能这么快将 AI 纳入到证券 APP 的公司</li>
</ul>
<h2 id="开户奖励">开户奖励</h2>
<p>因为开户奖励在不同的时间都不一样,截止 2024 年 3 月</p>
<ul>
<li>入金 1 万港币,可以获得终身免佣。</li>
<li>入金 2500 美元(2 万港币),可以获得 400 HKD 股票现金卡( 4 张 100 元抵扣卡,可直接抵扣使用),5 美元期权现金卡,达标后 5 个工作日发放</li>
<li>入金 10000 美元,可以获得总计 900 港币(股票现金卡)的奖励。</li>
<li>对于老用户,转仓超过 10000 USD ,港股可以获得 500 港币股票现金卡,如果转仓美股可以获得 1200 港币股票现金卡。</li>
</ul>
<p>点击<a href="https://gtk.pw/zT9HR">这里</a> 在线开户,如果你觉得本文对你有用,也可以填入我的邀请码 V24JAH。</p>
<h2 id="收费">收费</h2>
<p><a href="https://longbridge.hk/zh-CN/rate">港股收费</a></p>
<ul>
<li>佣金,交易金额的 0.03% 最低 3 港元,长桥收取</li>
<li>平台费
<ul>
<li>固定平台费,15 HKD/单,长桥收取</li>
<li>阶梯平台费
<ul>
<li>1~5,30 HKD/单</li>
<li>6~15,15 HKD/单</li>
<li>16~50,10 HKD/单</li>
<li>51~3000,5 HKD/单</li>
<li>3000~, 3 HKD/单</li>
</ul>
</li>
</ul>
</li>
<li>交收费,0.002% * 交易金额,最低 2 港元,最高 100 港元,香港结算所</li>
<li>印花税,0.13% * 成交金额,不足 1 港元作 1 港元计,香港政府</li>
<li>交易费,0.00565% * 成交金额,最低 0.01 港元,香港交易所</li>
<li>交易征费,0.0027% * 成交金额,最低 0.01 港元,香港证监会</li>
<li>财务汇报局交易征费,0.00015% * 交易金额,最低 0.01 港元,香港财务汇报局</li>
</ul>
<p><img src="https://photo.einverne.info/images/2023/04/05/swLH.png" alt="swLH" /></p>
<h2 id="出金收费">出金收费</h2>
<p>根据不同的提款方式和到帐时间收费不同。</p>
<ul>
<li>香港银行 - 银证转账
<ul>
<li>民生香港卡,银证授权成功</li>
<li>HKD,USD</li>
<li>免费</li>
<li>交易日 09:00~15:00 发起出金,最快 2 小时内到帐</li>
<li>其他时间段,下一个交易日 10 点前</li>
</ul>
</li>
<li>香港银行 FPS
<ul>
<li>HKD</li>
<li>免费</li>
<li>交易日 09:00~15:00 发起出金,最快 2 小时内到帐</li>
<li>其他时间段,下一个交易日 10 点前</li>
</ul>
</li>
<li>香港银行 网银转账
<ul>
<li>HKD,USD</li>
<li>预计到帐时间,交易日 11 点前提交出金申请,预计当天出金,交易日 11 点之后的申请,预计下一个交易日出金</li>
<li>手续费,港币免费;美元,长桥不收费,银行可能收费</li>
</ul>
</li>
<li>非香港银行 电汇
<ul>
<li>工银亚洲</li>
<li>HKD,USD</li>
<li>提款申请之后 1 ~ 2 个工作日汇出</li>
<li>涉及到资金跨境中转,具体到帐时间不确定,预计 3~7 个工作日</li>
<li>手续费,长桥不收取,汇出银行,中转银行,收款银行均会另外收取。汇出银行固定收取 140 港币,中转银行收费 25 美元</li>
</ul>
</li>
</ul>
<p>总体评价,作为一个初创公司,在应用的使用体验,以及出入金的友好度上,个人感觉都比[[老虎证券]]方便很多,而费用方面则要比[[富途证券]] 优惠一些,但还是没有 [[华泰证券]] 便宜。</p>
<h2 id="开户">开户</h2>
<p>点击<a href="https://gtk.pw/zT9HR">这里</a> 在线开户,如果你觉得本文对你有用,也可以填入我的邀请码 V24JAH。</p>
<p>开户的过程也比较简单,上传自己的身份信息,根据自己的真实情况填写即可。</p>
<h2 id="入金">入金</h2>
<p>如果有港卡的情况下,非常简单,通过银证转账,[[eDDA 快捷入金]],[[FPS 转数快]],网银转账等方式入金。</p>
<p>长桥证券支持的入金银行非常多,相信从列表里可以直接找到你的银行。</p>
<p><img src="https://photo.einverne.info/images/2024/03/13/SImW.jpg" alt="SImW" /></p>
<h3 id="银证转账">银证转账</h3>
<p>银证转账是指资金在银行账户与证券账户之间的划转服务,可以直接把银行资金转入证券账户,也可以直接把证券账户资金提取到银行账户。无需通过网银汇款,也无需在券商网站发送通知,具有方便、快捷、安全的特点。</p>
<h3 id="edda">eDDA</h3>
<p>eDDA 快捷入金是香港金管局推出的 FPS 转数快系统增值服务,支持客服授权港股证券从指定银行账户将资金存入证券账户。</p>
<p>eDDA 快捷入金是一种高效入金方式,基于 2018 年香港金管局推出的实时转账平台 FPS(Faster Payment System)转数快系统所研发。简单来说就是,客户完成银行账户授权后,后续可直接通过券商端发起入金。</p>
<p>eDDA 快捷入金目前仅支持港元。</p>
<h3 id="fps">FPS</h3>
<p>FPS 中文名「快速支付系统」(FPS 转数快),是香港金融管理局于 2018 年 9 月 30 日推出的全面连接银行的快速支付系统,由香港银行同业结算有限公司负责运作,费用全免,可以做到 365 天 x7x24 小时即时跨行转账。</p>
<h2 id="related">related</h2>
<ul>
<li>[[老虎证券]]</li>
<li>[[富途证券]]</li>
<li>[[华泰证券]]</li>
<li>[[uSMART 盈立证券]]</li>
</ul>Ein Vernegit@einverne.info长桥证券 是一家创立于新加坡和香港的证券经纪服务商,创立团队来自阿里巴巴,字节跳动等互联网企业,于 2019 年 3 月正式成立,总部位于新加坡。 集团旗下长桥证券(香港)有限公司(中央编号:BPX066)持有香港证监会第 1、4、9 类牌照。记录一次令人无语的文件上传限制调试2024-03-10T00:00:00-06:002024-03-10T00:00:00-06:00/post/2024/03/hestiacp-wordpress-file-limit-cloudflare-100mb<p>本文记录一次令我非常无语的文件上传大小限制的问题。之前也提到过我开了一档《暮色时光》的<a href="https://twilight-time.einverne.info">播客</a>,那为了方便,我就直接使用 WordPress 的 Media 来管理我自己的音频文件了,但是最近一期聊《台湾》相关的内容,时长超过了 1 个小时,所以导出的文件有点大(102MB),稍微超过了我预期的 100MB ,这导致我需要调整 WordPress 文件上传的限制。那我一想这个也简单,之前也调整过,无非就是调整一下 Nginx 和 PHP 的配置,重启一下服务就行,谁知道我在这么个简单的事情上竟然又浪费了几个小时。</p>
<p>按照我之前的经验,无非就是调整一下 PHP 的配置文件。</p>
<h2 id="php-配置">PHP 配置</h2>
<p>因为我直接使用的 <a href="https://blog.einverne.info/post/2022/07/web-server-control-panel-hestia-usage.html">HestiaCP</a> ,登录后台之后,点击右上角的齿轮,进入系统设置,然后在其中找到,我使用的 PHP 版本,点击编辑配置,立即就可以看到 PHP 相关的配置,HestiaCP 也非常人性化的将常用的配置列了出来。</p>
<p><img src="https://photo.einverne.info/images/2024/03/11/4H2G.png" alt="4H2G" /></p>
<p>那这个地方只需要修改</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>post_max_size
upload_max_filesize
memory_limit
max_execution_time
max_input_time
</code></pre></div></div>
<p>这几个值。然后点击保存之后, PHP 会自动重启。</p>
<p>这个时候我去后台看,WordPress 已经将文件上传的限制放宽到了 256 MB 大小,我尝试上传,发现上传接口 Pending。</p>
<p><img src="https://pic.einverne.info/images/YdcANSWTDK.png" alt="YdcANSWTDK" /></p>
<h2 id="nginx">Nginx</h2>
<p>于是我想是不是 Nginx 配置里面 <code class="language-plaintext highlighter-rouge">client_max_body_size</code> 配置有限制,于是直接看 HestiaCP 后台的 Nginx 配置,但发现这不是问题啊,现在的大小就已经足够。</p>
<p><img src="https://photo.einverne.info/images/2024/03/11/4mMM.png" alt="4mMM" /></p>
<p>于是我想难道是配置没有生效,在 HestiaCP 后台,通过 SSH 登录服务器,直接重启了 PHP,Nginx。</p>
<p>然后在 PHP 目录里面创建了文件 test.php ,直接放入</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code><?php phpinfo(); ?>
</code></pre></div></div>
<p>访问,发现 PHP 已经生效了上传限制。</p>
<p>重新尝试,接口还是 pending。</p>
<h2 id="wordpress">WordPress</h2>
<p>于是我想难道是 WordPress 自身做了什么限制?但之前也没有遇到过类似的事情?但网上查的时候有人说还需要加上一些配置,那么我也不管了,先加上再说。</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>define('WP_MEMORY_LIMIT', '256M');
define('WP_MAX_UPLOAD_SIZE', '256M');
</code></pre></div></div>
<p>重新尝试上传,接口还是 pending。</p>
<p>这个时候我就不知道问题出现在那里了,然后我就尝试换用 <code class="language-plaintext highlighter-rouge">async-upload.php</code> 为关键字,终于在一个 StackOverflow 的帖子里面看到了一个让我震惊的<a href="https://stackoverflow.com/a/60128885/1820217">回答</a>,说 Cloudflare 的基础套餐有 100 MB 的限制!</p>
<p><img src="https://photo.einverne.info/images/2024/03/11/4eVR.png" alt="4eVR" /></p>
<p>我突然意识到,确实我的站点前面确实增加了一个 Cloudflare CDN,而我的文件刚刚好超过 100MB。于是立即去 Cloudflare 后台关闭了云朵,然后我发现问题解决了!</p>
<p>后来仔细的研究了一下 Cloudflare,发现 Free 和 Pro 的套餐,上传文件大小限制都是 100MB。<sup id="fnref:1" role="doc-noteref"><a href="#fn:1" class="footnote" rel="footnote">1</a></sup> 而 Business 是 200MB 限制,Enterprise 是 500MB 限制。</p>
<p>如果文件大小超过 100MB,会直接返回 413 错误,文件上传也不会到自己的服务器,我就说为什么我上面几次修改,在 PHP 和 Nginx Error 日志里面什么错误信息都没有看到!</p>
<p>至此文件上传的问题就得到了解决。</p>
<div class="footnotes" role="doc-endnotes">
<ol>
<li id="fn:1" role="doc-endnote">
<p><a href="https://community.cloudflare.com/t/maximum-upload-size-is-limit/418490/2">https://community.cloudflare.com/t/maximum-upload-size-is-limit/418490/2</a> <a href="#fnref:1" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
</ol>
</div>Ein Vernegit@einverne.info本文记录一次令我非常无语的文件上传大小限制的问题。之前也提到过我开了一档《暮色时光》的播客,那为了方便,我就直接使用 WordPress 的 Media 来管理我自己的音频文件了,但是最近一期聊《台湾》相关的内容,时长超过了 1 个小时,所以导出的文件有点大(102MB),稍微超过了我预期的 100MB ,这导致我需要调整 WordPress 文件上传的限制。那我一想这个也简单,之前也调整过,无非就是调整一下 Nginx 和 PHP 的配置,重启一下服务就行,谁知道我在这么个简单的事情上竟然又浪费了几个小时。常见的邮件发送错误2024-03-09T00:00:00-06:002024-03-09T00:00:00-06:00/post/2024/03/common-email-error<p>本文总结常见的邮件发送的错误。</p>
<h2 id="450">450</h2>
<blockquote>
<p>450 4.1.8 Sender address rejected: Domain not found</p>
</blockquote>
<p>这个错误提示表明发件人地址被拒绝,因为域名未找到。这通常是由于发件人地址的域名无法在 DNS(域名系统)中找到所致。解决这个问题可能需要以下步骤:</p>
<ul>
<li>检查发件人地址:确保你使用的发件人地址是正确的,并且包含有效的域名。如果你使用的是自定义域名,请确保该域名已正确配置,并且在 DNS 中有相应的记录。</li>
<li>验证域名配置:确保你的域名已经在 DNS 中正确配置。你可以通过使用 DNS 查询工具来验证域名的 MX 记录、SPF 记录和其他必需的记录是否已设置正确。</li>
<li>确认域名注册:如果你使用的是自定义域名,确保该域名已经注册,并且没有过期或被暂停。有时域名注册过期或被暂停会导致域名无法解析。</li>
<li>检查 DNS 服务器设置:如果你使用的是自托管的邮件服务器,确保你的 DNS 设置正确,包括正确配置了邮件服务器的 A 记录、MX 记录等。</li>
<li>联系你的域名注册商或托管提供商:如果以上步骤都无法解决问题,你可以联系你的域名注册商或者托管提供商,向他们寻求帮助解决域名解析问题。</li>
</ul>
<p>表示邮件被拒绝了,因为发件人的邮箱无法正确解析,因为特定的 DNS 记录(A,MX,PTR 记录) 缺失了。</p>
<ul>
<li><a href="https://intodns.com/">Intodns.com</a></li>
<li><a href="https://mxtoolbox.com/">Mxtoolbox.com</a></li>
<li><a href="https://whatsmydns.com/">Whatsmydns.net</a></li>
</ul>
<p><img src="https://photo.einverne.info/images/2023/08/03/DmML.png" alt="DmML" /></p>
<h2 id="50">50</h2>
<blockquote>
<p>50 5.1.1: Recipient address rejected: User unknown in local recipient table</p>
</blockquote>
<p>这个错误表示你尝试发送邮件给一个在本地收件人表中未知的用户。</p>
<h2 id="553">553</h2>
<blockquote>
<p>553 5.7.3 CONTENT REJCT:blockid=xx:URL</p>
</blockquote>
<p>这个错误意味着你尝试发送的邮件包含被拒绝的内容,通常是因为邮件包含了被认为是垃圾邮件或恶意链接的内容。通常是如下的原因:</p>
<ul>
<li>恶意链接或内容:邮件中包含的链接可能被认为是恶意链接,或者邮件内容被认为是垃圾邮件。</li>
<li>邮件服务器策略:邮件服务器可能已经配置了策略,拒绝包含特定类型内容的邮件。</li>
</ul>
<p>遇到此错误一般可以检查一下发送的邮件是否合法,是否包含恶意链接或内容。</p>
<h2 id="550">550</h2>
<p>Recipient address rejected: User unknown in virtual mailbox table</p>
<blockquote>
<p>Net::SMTPFatalError: 550 5.1.1 <a href="mailto:your@email.address">your@email.address</a>: Recipient address rejected: User unknown in virtual mailbox table</p>
</blockquote>
<p>错误表明你尝试发送邮件给一个在邮件服务器的虚拟邮箱表中不存在的用户。</p>
<p>可能是如下的原因:</p>
<ul>
<li>输入的收件人邮箱有错误</li>
<li>收件人的信箱已经被删除或禁用</li>
<li>邮件配置有错误</li>
</ul>Ein Vernegit@einverne.info本文总结常见的邮件发送的错误。EV Hosting 独立开发者套餐2024-03-08T00:00:00-06:002024-03-08T00:00:00-06:00/post/2024/03/indie-tools<p>自从去年 <a href="https://client.einverne.info">EV Hosting</a> 上线以来已经过快一周年了,过去的一年中陆陆续续推出了如下的服务。</p>
<ul>
<li><a href="https://blog.einverne.info/post/2023/04/introducing-ev-hosting.html">共享空间</a> 可以用来托管网站,图片,音频等等内容</li>
<li><a href="https://blog.einverne.info/post/2023/05/ev-hosting-domain-registrar.html">域名注册服务</a> 可以低价注册 life, app, me 等等几十种域名后缀</li>
<li><a href="https://blog.einverne.info/post/2023/05/ev-hosting-shared-mail-hosting.html">域名邮箱服务</a> 给域名提供无限域名邮箱的服务</li>
</ul>
<p>这一些服务也是我开发独立产品的过程中不可缺少的一部分,比如说我可以在一分钟内直接创建一个<a href="https://twilight-time.einverne.info/">博客</a>来发布我的播客,我可以用我自己的域名注册服务来注册我自己的 life 域名,比如我的日本生活 <a href="https://ijp.life">https://ijp.life</a> ,而我自己的域名邮箱服务已经稳定使用超过 3 年,过去我所有的域名邮箱全部都自己维护。</p>
<p>之前在 Twitter 上曾经看到过一篇 0 成本 Build 属于你自己的项目,其中列举了不少我也正在使用的服务,比如说 GitHub,Cloudflare 等等,但是问题的关键就在于当你自己的服务与这样的平台非常紧密地连接在一起的时候,未来带来的潜在风险也会伴随着平台的起伏而波动。</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>代码: @github $0
CDN: @Cloudflare $0
后端: @flydotio $0
域名: @freenomofficial $0
邮件: @Mail_Gun $0
数据库: @PlanetScale $0
日志: @AxiomFM $0 [[AXIOM]]
存储: @Cloudflare R2 $0
CDN: @BunnyCDN $0 [[Bunny CDN]]
统计: @googleanalytics $0 [[Google Analytics]]
</code></pre></div></div>
<p>比如过了半年当再来看这一份清单的时候,就会发现 freenom 提供的免费域名被收回了,之前也曾经推荐的 <a href="https://blog.einverne.info/post/2022/08/planetscale-mysql-service.html">PlanetScale</a> 将在 2024 年 4 月 8 号取消 Hobby 套餐,而 MailGun 也大幅度收窄了免费的额度。如果想要使用 PlanetScale,最低档的就是 39 USD 一个月,那如果你的应用构建于此,那必然要面临一个艰难的选择。我之前有一些自己和朋友的 21 天计划服务就放在了 PlanetScale 上,没有多少流量,所以我也不会为此付费订阅。但好在我的数据不是很多,使用 DataGrip 迁移一下就行了。并且在迁移的过程中我还发现了 PlanetScale 存在的问题,就是它并不支持 mysqldump,必需使用它专属的 cli 才能导出数据。而如果一旦服务数据量比较多,想必迁移起来就麻烦很多了。同样的,上述的所有服务虽然看起来入门是 0 USD,但其实很多服务的收费第一档就非常昂贵。</p>
<p>所以为什么我自己创建了 EV Hosting 的服务,也是因为来自我自己的需求,我有一些小网站需要一些邮件发送服务,比如给注册用户发送邮箱验证,比如我有一些静态或动态的网站需要托管,当然 GitHub Pages,Cloudflare Pages,Vercel,<a href="https://blog.einverne.info/post/2018/03/netlify-to-host-static-website.html">Netlify</a> 等等都是非常不错的服务,托管自己的博客内容也完全没有问题,但同时也需要考虑比如 Vercel 的域名被屏蔽,GitHub Pages,Netlify 的访问速度等等问题。</p>
<p>首先我为了解决自己的托管和发邮件的问题,最早就是自建了 SMTP 和 Nginx 但我发现这个服务也能开放出来给有需求的用户用,然后就是域名的问题,不过域名的问题,我自己都是去 Google Domains(已被收购)和 Spaceship 上购买的,我建议大家先用 <a href="https://tld-list.com/">https://tld-list.com/</a> 进行比价,然后根据自己的情况来选择,现在 Cloudflare 也开放了域名注册,但我还没用起来,如果有使用感受也可以一起来分享。而我提供的域名注册服务通常来说是因为拿到了批量销售的折扣,我自己也会根据具体的促销价格来选择,我自己选择注册 .life 域名其事就是我自己拿到的售卖价格只要十几块人民币一年,已经非常便宜了,所以就直接买了一个。</p>
<h2 id="庆祝一周年">庆祝一周年</h2>
<p>为了庆祝一周年生日,现在针对独立开发者推出如下的套餐。</p>
<p><a href="https://client.einverne.info/order.php?step=1&productGroup=14&product=47">99 套餐</a> 内容包括</p>
<ul>
<li>2GB 独立域名邮箱 1 年</li>
<li>2GB 新加坡共享主机空间 1 年</li>
<li><a href="https://client.einverne.info/order.php?step=1&productGroup=13">域名注册九折优惠</a> 一年</li>
</ul>
<p><a href="https://client.einverne.info/order.php?step=1&productGroup=14&product=48">199 套餐</a>内容包括</p>
<ul>
<li>5GB 独立域名邮箱 1 年</li>
<li>5GB 新加坡共享主机空间 1 年</li>
<li><a href="https://client.einverne.info/order.php?step=1&productGroup=13">域名注册九折优惠</a> 一年</li>
</ul>Ein Vernegit@einverne.info自从去年 EV Hosting 上线以来已经过快一周年了,过去的一年中陆陆续续推出了如下的服务。将 Blogger 备份并转成 Markdown 导入 Obsidian2024-03-05T00:00:00-06:002024-03-05T00:00:00-06:00/post/2024/03/blogger-backup-markdown<p>这两天看到有人分享自己的密码管理方案是通过固定 Pattern 然后根据不同的网站设定一个随机可记忆字串来防止密码泄漏之后影响其他网站,于此同时也一定程度上可以摆脱密码管理器的约束。这也是我这 10 多年来的密码管理方案,虽然我还是会强烈推荐 Bitwarden,当一些重要的网站我还是会选择自己记住密码,并且加上二步验证保护安全,而其他网站则是通过密码管理器来管理。</p>
<p>但是我明明记得我写过一篇关于密码管理的文章,但就是怎么都没有找到,后来一想这已经是十年前写在 Blogger 上面的文章,于是突然想把沉积多年的 Blogger 内容备份出来,并转成 Markdown ,导入到 Obsidian,因为我一直认为只有被反复唤起(搜索)的内容才有价值。</p>
<p>既然有了这个目标,那么说干就干,首先是导出 Blogger 的内容,这一点在设置中,直接可以选择 Backup,下载获取到一个特殊格式的 XML 文件。</p>
<p>然后我用 Google 简单的搜索了一下 Blogger to Markdown,发现原来已经有人使用 NodeJS 实现过了。但代码直接运行有一些异常,打开代码看看,做了一下<a href="https://github.com/einverne/blog2md">修复</a>。</p>
<p>然后再运行命令,不到一分钟的时间就把 2010 年到 2019 年的内容转成了 Markdown。</p>
<p><img src="https://pic.einverne.info/images/Fxo2sAk_OP.png" alt="Fxo2sAk_OP" /></p>
<h2 id="blogger">Blogger</h2>
<p>在这个时间点又不免再感慨一下,Blogger 当年作为一个非常流行的博客平台,如今却半死不活,很多年没有更新,Google 内部可能也放弃维护了,并且非常无语的是,我登录了后台才发现,以前明明发布的内容,却告诉我有一些文章被 Blogger 自动取消发布了,说违反了社区规则,但我仔细地看了一下这几篇文章,是 2014 年发表的一篇《继续折腾 WNDR3800 之 shadowsocks》,这篇文章已经存在互联网上 6 年,但却告诉我在 2020 年违反了社区规则?实在没有搞懂 Google。</p>
<p><img src="https://pic.einverne.info/images/I_V2Ou3VaB.png" alt="I_V2Ou3VaB" /></p>
<p>我仔细的检查了一下文章内容,无非就是几行代码,以及一些 iptables 的配置,完全看不出任何违反社区规则的内容。
<img src="https://pic.einverne.info/images/tgMxnz8HSo.png" alt="tgMxnz8HSo" /></p>
<h2 id="一些感慨">一些感慨</h2>
<p>在把文件导出来之后,也看了几篇当时写的文章,感慨物是人非,那个时候我还是非常喜欢 Google,也会在第一时间去尝试 Google 的所有的服务,当时也写了很多 Google+ 的使用感受,当时也确实在 Google+ 认识了一些朋友,但后来的事情其实大家也都知道,自从 Google+,Google Reader 关闭以来,我就已经开始自主的脱离 Google 的生态,将所有我自己产生的数据慢慢地从 Google 从移走,Google Photo 等等。</p>
<p>而到了 2024 年,Google 突然遇到 OpenAI 的「劲敌」,至于 AI 是否会颠覆传统的搜索引擎,在这个时间还不好说,但可以肯定地说肯定会代替一部分的搜索流量,至于是否会影响到 Google 的广告业务,那也只能让我们拭目以待了。</p>Ein Vernegit@einverne.info这两天看到有人分享自己的密码管理方案是通过固定 Pattern 然后根据不同的网站设定一个随机可记忆字串来防止密码泄漏之后影响其他网站,于此同时也一定程度上可以摆脱密码管理器的约束。这也是我这 10 多年来的密码管理方案,虽然我还是会强烈推荐 Bitwarden,当一些重要的网站我还是会选择自己记住密码,并且加上二步验证保护安全,而其他网站则是通过密码管理器来管理。借助 BLEUnlock 实现 macOS 自动锁定2024-03-02T00:00:00-06:002024-03-02T00:00:00-06:00/post/2024/03/mac-lock-screen-bleunlock<p><a href="https://github.com/ts1/BLEUnlock">BLEUnlock</a> 是一款 macOS 上的自动化锁屏工具,可以通过 iPhone 或者 Apple Watch 和 macOS 的距离来锁定和解锁 macOS。</p>
<p>借助这款开源的工具,就可以非常方便地解决离开 macOS 忘记锁屏的问题。</p>
<h2 id="ble-devices">BLE devices</h2>
<p>BLE devices 指的是低功耗蓝牙设备。</p>
<p>BLEUnlock 的原理就是通过周期性发送信号的 BLE 设备,当蓝牙设备,比如 iPhone 设备,接近 macOS 系统时就会解锁,当发现 iPhone 远离的时候就会自动锁定。</p>
<h2 id="安装">安装</h2>
<p>直接通过 Homebrew 安装</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>brew install bleunlock
</code></pre></div></div>
<p>安装完成之后,可以在状态栏进行设定</p>
<ul>
<li>是否靠近时唤醒</li>
<li>唤醒时是否直接解锁</li>
<li>锁定时是否暂停播放</li>
<li>等等</li>
</ul>
<h2 id="缺点">缺点</h2>
<p>BLEUnlock 毕竟是通过蓝牙来进行通信的,所以可能会存在一定的不精确,尤其是在电脑附近行走时可能会对 macOS 产生干扰。</p>Ein Vernegit@einverne.infoBLEUnlock 是一款 macOS 上的自动化锁屏工具,可以通过 iPhone 或者 Apple Watch 和 macOS 的距离来锁定和解锁 macOS。我制作了一档播客《暮色时光》2024-03-01T00:00:00-06:002024-03-01T00:00:00-06:00/post/2024/03/i-made-a-podcast<p>我终于制作了一档播客《<a href="https://twilight-time.einverne.info/">暮色时光</a>》!</p>
<p>为什么说我终于制作了一档播客呢,这是因为早在 <a href="https://blog.einverne.info/post/2017/10/podcast-channels.html">10 多年前</a>我就已经是播客的听众,并且这么多年以来一直都有一个做一档播客的梦想,研究过如何<a href="https://blog.einverne.info/post/2016/10/podcast-hosting.html">托管 Podcast</a>,也自己尝试部署过一个 Podcast Feed,但过去的时间里一直没有找到一个合适的主题,周围也没有一个对播客感兴趣的朋友,故而一拖再拖。但和我写文章不一样,写文章是我单方面的输出,我也很少有机会得到反馈,博客的评论系统虽然也有一些朋友会给我留言但还是少数。但是播客不一样,它是一个两方面的交流,他是两种思想和声音的碰撞,截止到现在播客已经做了三期,播客的存在让我知道有了一个新的探索方向,也让我能够和很久没有聊天的朋友可以坐下来一起聊聊。</p>
<h2 id="播客的定位">播客的定位</h2>
<p>暮色时光播客在最初的时候,我就给自己起了一个标题,就是朋友之间的闲聊,我会定下来每一期的主题和想要聊的大致方向,让整个播客有一个框架,有一个中心的话题,但交流的过程中也会调整话题的方向。</p>
<p>制作播客的初衷:</p>
<ul>
<li>帮助自己提升表达能力,寻找未来的方向</li>
<li>促进和朋友的关系</li>
<li>寻找更多和我们关注话题相似的朋友</li>
<li>分享我们的想法和见解,与更多人进行交流和互动</li>
</ul>
<h2 id="播客内容">播客内容</h2>
<p>在《暮色时光》播客中,我们会聊一些我们感兴趣的话题,比如科技、文化、旅行、生活经验等等。每一期都会有一个主题,围绕这个主题展开讨论,同时也会有一些杂谈和随想。我希望通过这个播客,能够让大家更了解我们,也能够启发大家的思考,并且希望能够和更多人建立联系。</p>
<h2 id="结语">结语</h2>
<p>这档播客虽然只是刚刚开始,但也是多年之后终于迈出的一步,也希望我可以通过这个节目认识到更多志同道合的朋友,如果你对这个播客感兴趣,欢迎关注我们的 <a href="https://twilight-time.einverne.info/">网站</a> ,也非常欢迎给我们留言反馈和建议。谢谢!</p>
<p>如果有任何小伙伴对播客感兴趣或者愿意一起聊聊天也欢迎来<a href="https://gtk.pw/wechat">找我</a>。</p>Ein Vernegit@einverne.info我终于制作了一档播客《暮色时光》!