-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.xml
158 lines (158 loc) · 32.6 KB
/
index.xml
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>跨出界 - 技术分享</title><link>https://fun2ex.com/</link><description>Recent content on 跨出界 - 技术分享</description><generator>Hugo -- gohugo.io</generator><language>zh-cn</language><lastBuildDate>Tue, 31 Jan 2023 15:31:50 +0800</lastBuildDate><atom:link href="https://fun2ex.com/index.xml" rel="self" type="application/rss+xml"/><item><title>在 hugo 中插入游戏信息卡片</title><link>https://fun2ex.com/posts/game-info-show-api/</link><pubDate>Tue, 31 Jan 2023 15:31:50 +0800</pubDate><guid>https://fun2ex.com/posts/game-info-show-api/</guid><description>起因:受到 https://immmmm.com/hugo-shortcodes-douban/ 的启发,看了一下也不是特别复杂,简单仿照了一下,获取游戏数据并展示。
目前支持游研社的链接(数据相对比较全,也比较好获取),后续有空的话可能会考虑一下支持一下 Steam 商店 之类的平台。
代码不复杂,直接开源了:gameinfo-api
框架使用的是 expressjs,使用起来并不复杂,直接看文档吧。
顺便撸了一个免费的 Node 服务:https://gameinfo-api2.onrender.com,限制如下:
每月 100G 流量 每月 750 小时的时候时间 超过 15 分钟没有流量的话,服务会被睡眠,睡眠后如果重新收到请求,服务冷启动的时间可能需要 30s 或者更长的时间 如果不嫌弃的话,可以直接使用以上的 URL。
使用方法和案例如下:
hugo 的 shortcode 和 CSS 在此:https://gist.github.com/bobolo2ex/7ffd163cc99d7891c8c362b19b632b34
&lt;!-- shortcode --&gt; {{ $dbUrl := &#34;https://gameinfo-api2.onrender.com/&#34; }} {{ $dbID := replaceRE `.*yystv.cn/g/([0-9]+)/.*` &#34;$1&#34; (.Get 0) }} {{ $db := getJSON $dbUrl &#34;yys/v1/&#34; $dbID }} {{ $score := div (int $db.score) 10.0 }} &lt;div class=&#34;post-preview game&#34;&gt; &lt;img referrer-policy=&#34;no-referrer&#34; loading=&#34;lazy&#34; class=&#34;post-preview--image&#34; src=&#34;{{ $db.</description></item><item><title>Switch Emulators Guide</title><link>https://fun2ex.com/posts/switch-emulators-guide/</link><pubDate>Wed, 18 Jan 2023 15:30:14 +0800</pubDate><guid>https://fun2ex.com/posts/switch-emulators-guide/</guid><description>Ryujinx 指引 该指南将分为几个部分。您可以使用目录轻松找到您需要的部分。
如果想要更详细的内容,可以直接参考 Ryujinx 的官方文档 here
如果按照本指南进行操作后仍有问题并需要帮助,请加入我们的 Discord 服务器提问.
你可以在这里加入: Discord
下载说明(重要) 您下载的大部分(不是全部)内容都将采用压缩格式 (例如 .7zip, .zip or .rar). 你需要安装解压缩软件才可以使用。例如 7zip 和 WinRAR
目录 一、安装模拟器 二、安装 Keys 和固件(Firmware) Keys Firmware 三、安装游戏、更新以及DLC Loading Games into Ryujinx Loading Updates and DLCs 四、模拟器性能优化 Settings for all GPUs Nvidia GPU settings AMD GPU settings Intel GPU settings 五、安装模组(Mods)、存档(Saves)和着色器(Shaders) Mods Shaders Saves 六、杂项 Fixes for errors 一、安装模拟器 (可选) 你可以在 https://ryujinx.</description></item><item><title>Read and Parse JSON With Rust</title><link>https://fun2ex.com/posts/read-and-parse-json-with-rust/</link><pubDate>Tue, 19 Jul 2022 10:31:22 +0800</pubDate><guid>https://fun2ex.com/posts/read-and-parse-json-with-rust/</guid><description>主要讲讲 Rust 是如何处理 JSON 格式/文件的。
我的需求主要如下:
从一个远程地址下载 JSON 文件,保存到本地 读取这个 JSON 文件 对这个 JSON 文件内容进行搜索匹配 返回搜索结果 本文章的内容主要是集中讲讲第 2 步的内容。 首先需要解析 JSON 格式如下:
{ &#34;0100000011D90000&#34;: { &#34;bannerUrl&#34;: &#34;https://img.../37fdb...f83a.jpg&#34;, &#34;category&#34;: [ &#34;Adventure&#34;, &#34;RPG&#34; ], &#34;description&#34;: &#34;Welcome to the Sinnoh region! &#34;, &#34;developer&#34;: null, &#34;id&#34;: &#34;0100000011D90000&#34;, &#34;isDemo&#34;: false, &#34;language&#34;: &#34;en&#34;, &#34;name&#34;: &#34;Pok\u00e9mon\u2122 Brilliant Diamond&#34;, &#34;nsuId&#34;: 70010000039950, &#34;numberOfPlayers&#34;: 1, &#34;publisher&#34;: &#34;Nintendo&#34;, &#34;rank&#34;: 30712, &#34;ratingContent&#34;: [ &#34;Mild Cartoon Violence&#34;, &#34;Users Interact&#34;, &#34;In-Game Purchases&#34; ], &#34;size&#34;: 7334789120, &#34;version&#34;: 0 }, .</description></item><item><title>Rust 基本知识</title><link>https://fun2ex.com/posts/rust-guide-01/</link><pubDate>Thu, 14 Jul 2022 13:41:53 +0800</pubDate><guid>https://fun2ex.com/posts/rust-guide-01/</guid><description>更多是从一个前端开发者的角度,来比较一下两门语言的区别,以助于更方便的入门。
基本类型(DataType) 多数情况下,基本类型直接代表了最底层的语言实现。
JavaScript 是弱类型,基本数据类型有以下 7 种:
String Number BigInt Boolean Symbol ( ECMAScript 2016 新增 ) null undefined Rust 是 静态类型 ( statically typed ) 语言,也就是说在编译时就必须知道所有变量的类型。每一个值都属于某一个 数据类型 ( data type ),这告诉 Rust 它被指定为何种数据,以便明确数据处理方式。基本都属于两类数据类型子集:标量(scalar)和复合(compound)。
Integer (整数类型)
位长度 有符号 无符号 8-bit i8 u8 16-bit i16 u16 32-bit i32 u32 64-bit i64 u64 128-bit i128 u128 arch isize usize 每一个有符号的变体可以储存包含从 $-(2^{n-1})$ 到 $2^{n-1}-1$ 在内的数字,这里 $n$ 是变体使用的位数。所以 i8可以储存从 $-(2^7)$ 到 $2^7-1$ 在内的数字,也就是从 $-128$ 到 $127$ 。无符号的变体可以储存从 $0$ 到 $2^n-1$ 的数字,所以 u8 可以储存从 $0$ 到 $2^8-1$ 的数字,也就是从 $0$ 到 $255$。</description></item><item><title>WordPress 如何禁止明文传输用户名密码,防止中间人攻击</title><link>https://fun2ex.com/posts/wordpress-login-encryption-user-pass/</link><pubDate>Fri, 15 Apr 2022 13:01:33 +0800</pubDate><guid>https://fun2ex.com/posts/wordpress-login-encryption-user-pass/</guid><description>虽然全站已经 HTTPS 了,但是因为某些原因,不允许明文传输用户名密码,也就意味着需要在客户端做一层加密,然后在服务端解密。 了解下来只能选择 RSA 的方式了。
准备工作,首先需要生成秘钥:
# 生成 1024 位的 RSA 私钥 openssl genrsa -out key.pem 1024 # 导出相对应的公钥 openssl rsa -in key.pem -pubout -out pubkey.pem # 复制出来备用 cat key.pem cat pubkey.pem 打开 wp-login.php 文件,将以下代码补充到 loginform 后面,我是放在 $login_script 后面。 主要是为了捕获登录表单,在 submit 的时候,把 user_login 和 user_pass 各自加密后再发送到服务端。
&lt;script src=&#34;https://cdn.jsdelivr.net/npm/[email protected]/bin/jsencrypt.min.js&#34; type=&#34;text/javascript&#34;&gt;&lt;/script&gt; &lt;script type=&#34;text/javascript&#34;&gt; (function($) { var user_pass = $(&#34;#user_pass&#34;); var user_login = $(&#34;#user_login&#34;); var loginform = $(&#34;#loginform&#34;); var sign = &#39;公钥&#39;; var encrypt = new JSEncrypt(); encrypt.</description></item><item><title>定时检查 unraid 网络情况,并重启</title><link>https://fun2ex.com/posts/corn-check-network-for-unraid/</link><pubDate>Thu, 24 Mar 2022 15:39:11 +0800</pubDate><guid>https://fun2ex.com/posts/corn-check-network-for-unraid/</guid><description>主要是为了解决机器不知道为啥突然掉 ip 的问题,就写了一个简单地监测脚本。
这是一个简单的小技巧,直接使用 unraid CA 的 User Scripts Plugin 即可。
新建一个 Script, 名字简介随便填,Script 内容如下:
#!/bin/bash ping fun2ex.com -c 1 &gt;/dev/null if [ $? -ne 0 ];then # powerdown -r echo `date` powerdown restart &gt;&gt; /tmp/powerdown_logs.txt fi 检查时间选手动,按照 cron 的规则添加即可,考虑到阵列关机的时间,我这里设定了 30 分钟检查一次。
# cron setting */30 * * * * &ndash;EOF&ndash;</description></item><item><title>解决华擎 Z370M-Pro4 主板在 Unraid 无法获取风扇转速</title><link>https://fun2ex.com/posts/fixed-z370m-pro4-unraid-temperature-problem/</link><pubDate>Wed, 16 Mar 2022 10:27:05 +0800</pubDate><guid>https://fun2ex.com/posts/fixed-z370m-pro4-unraid-temperature-problem/</guid><description>主板型号:华擎 Z370M-pro4
安装了「Dynamix System Temperature」却发现怎样也获取不了主板的温度和风扇的转速。
经过一番资料搜索,大致确定问题如下:
Dynamix System Temperature 非商业应用,实际上能够校验的主板不多 coretemp 不支持 ITE IT8686E Super IO Sensors 华擎的部分主板是 nct6683 感应器,只能通过手动加载 mod 处理 知道了问题,那么解决起来也简单,打开终端手工加载一下驱动即可:
$ modprobe coretemp $ modprobe -r nct6683 $ modprobe nct6683 force=1 然后回到 了「Dynamix System Temperature」 看看是不是已经可以正常了。
&ndash;EOF&ndash;
参考资料:
温度检测插件无法检测到主板风扇的转速 Unraid插件篇—重点解决ITE IT8686E芯片驱动无法获取阵列风扇信息</description></item><item><title>解决 Unraid 在关机的之后无法 unmout NFS 的问题</title><link>https://fun2ex.com/posts/fixed-the-unraid-umount-nfs-problem/</link><pubDate>Tue, 08 Mar 2022 11:01:32 +0800</pubDate><guid>https://fun2ex.com/posts/fixed-the-unraid-umount-nfs-problem/</guid><description>先说一下场景:
主机安装了 unraid 6.9.2 开了一个虚拟机跑黑群晖, 并直通了一个网口+两块硬盘 unraid 通过 Unassigned Devices 来挂载黑群晖的硬盘, 使用 NFS 协议 问题: 想更换硬盘的时候, 直接点停止阵列, 等了大半天都没有停止成功。 检查了一下系统日志, 发现一直卡在 Unmounting Remote SMB/NFS Share 不成功, 并且一直在重试。
造成这个问题的原因是因为黑群晖也是跑在 unraid 上面的, 停止阵列的操作会优先把 Docker 和虚拟机服务优先关闭掉, 导致 NFS 链接失去响应无法正常 Unmoun。
搜索了一下发现好多人都碰到过类似的问题:NFS 服务器某些原因断网后, NFS 客户机无法 umount 直到最新的 nfsv4 都是这样子, 所以会造成进程一致卡住在重试。
解决办法有以下两种:
更换成 SAMBA, SMB 无法卸载不影响关机,不会造成假死。 在关机前, 手动在 Unassigned Devices umount 所有已经挂载的 NFS mount, 或者可以打开终端运行 umount -l /mnt/remotes/* 强制卸载所有 NFS umount. 剩下在问题就是如何把方案 2 改成自动化,不需要每次去手工执行,在 unraid forums 看到一个解决方案:</description></item><item><title>How to Install Seafile Pro and Use Caddy Proxy Fronted on Ubuntu 18.04</title><link>https://fun2ex.com/posts/how-to-install-seafile-pro-and-use-caddy-proxy-fronted-on-ubuntu-18-04/</link><pubDate>Fri, 04 Mar 2022 10:43:00 +0800</pubDate><guid>https://fun2ex.com/posts/how-to-install-seafile-pro-and-use-caddy-proxy-fronted-on-ubuntu-18-04/</guid><description><p>读完这篇文章,你应该能完成安装以下软件:</p>
<ul>
<li>python &amp; python-pip</li>
<li>caddy</li>
<li>mysql-server</li>
<li>jre</li>
<li>seafile-pro ```</li>
</ul>
<p>注意:如果你想流程的跑 Seafile,机器配置建议:</p>
<pre tabindex="0"><code>1. 内存 &gt;= 2GB
2. CPU &gt;= 2 Core
</code></pre><h2 id="环境准备">环境准备</h2>
<p>以下只针对 ubuntu 18.04 系统,在下一个 LTS 版本出来之前,应该都不会更新。</p></description></item><item><title>win10 内网下如何开启远程登录</title><link>https://fun2ex.com/posts/open-remote-login-form-win10/</link><pubDate>Thu, 25 Mar 2021 10:39:53 +0800</pubDate><guid>https://fun2ex.com/posts/open-remote-login-form-win10/</guid><description>一开始找到一句这样的命令:
wmic /node:[IP OR Domain] /user:[User] /password:[Password] PATH win32_terminalservicesetting WHERE (__Class!=&#34;&#34;) CALL SetAllowTSConnections 1 一直报错,没想明白是什么原因。
一番搜寻之后大致清楚了,最终的命令如下:
wmic /node:[IP OR Domain] /user:[User] /password:[Password] RDTOGGLE WHERE (__Class!=&#34;&#34;) CALL SetAllowTSConnections 1 查阅资料:
https://www.yuque.com/waiting4/fgq227/gfi4v7 https://blog.csdn.net/Aaron_Miller/article/details/109644865</description></item><item><title>Apple 微信公众号排版效果</title><link>https://fun2ex.com/posts/apple-ipad-for-wechat-article/</link><pubDate>Wed, 25 Mar 2020 10:39:31 +0800</pubDate><guid>https://fun2ex.com/posts/apple-ipad-for-wechat-article/</guid><description><p>近期到处都可以看到这个被刷屏的微信公众号案例。</p>
<p><a href="https://mp.weixin.qq.com/s/ZYfIqwPNbHVepSyJsLFk-w">https://mp.weixin.qq.com/s/ZYfIqwPNbHVepSyJsLFk-w</a></p>
<p>我们就来聊一聊怎么实现的,说起来也不复杂,主要就是利用 SVG 的动画效果 + 创意达到了这么酷炫的效果。</p>
<p>涉及到也只有两个动画元素 <code>opacity</code> 和 <code>height</code> 的变化。</p>
<p>微信图文内容本质上也是一段 HTML 代码,先看一个 demo</p>
<p>这是一篇正常的图片,只不过是全图片排版的。</p></description></item><item><title> 面试题一道</title><link>https://fun2ex.com/posts/change_json_underline_to_camp/</link><pubDate>Fri, 15 Nov 2019 10:39:11 +0800</pubDate><guid>https://fun2ex.com/posts/change_json_underline_to_camp/</guid><description>这是碰到的一道面试题,记录一下。
问题是:如何 json 数据的所有 key 从下划线改为驼峰
下面是答题过程中的实现方法:
const testData = { a_bbb: 123, a_g: [1, 2, 3, 4], a_d: { s: 2, s_d: 3 }, a_f: [1, 2, 3, { a_g: 5 }], a_d_s: 1 } /** * _w 的形式转成 W */ function toCame(str) { return str.replace(/\_(\w)/g, function(a, b) { return b.toUpperCase(); }); } /** * 将一个json数据的所有key从下划线改为驼峰 * * @param {object | array} value 待处理对象或数组 * @returns {object | array} 处理后的对象或数组 */ function mapKeysToCamelCase(data) { if(data instanceof Array) { data.</description></item><item><title>SFTPGo 安装配置指南</title><link>https://fun2ex.com/posts/sftpgo-setting-and-install-guide/</link><pubDate>Mon, 19 Aug 2019 10:38:55 +0800</pubDate><guid>https://fun2ex.com/posts/sftpgo-setting-and-install-guide/</guid><description><blockquote>
<p><a href="https://github.com/drakkan/sftpgo">SFTPGo</a>
Full featured and highly configurable SFTP server software
一个全功能和高度可配置的SFTP服务器软件</p>
</blockquote>
<p>这是 Github 上作者对这个软件的介绍,适用下来也名副其实,符合我的需求。但是因为官网上安装引导文档比较含糊,就记录一下自己折腾的过程。</p>
<p>以下的操作过程均基于一个全新安装的 <a href="http://releases.ubuntu.com/18.04/">Ubuntu 18.04.2 LTS (Bionic Beaver)</a> 操作系统,按道理 Debian 适用。</p>
<p>因为我自己只想配置一个独立的 SFTP 服务器,利用 SFTPGo 来协助管理账号,所以没有适用 MySQL / PostreSQL 之类的数据库,而选用了 SQLite 3.x.</p>
<p><del>版本:0.9.0</del>
版本:0.9.4-dev</p>
<h2 id="安装">安装</h2>
<h3 id="sftpgo-需要的系统环境">SFTPGo 需要的系统环境</h3>
<ol>
<li>需要 Go 1.12 版本以上</li>
<li>需要一个数据库 ( MySQL / PostreSQL / SQLite )</li>
<li>如果需要运行 cli 测试脚本,还需要 Python 环境和 Request 库。</li>
<li>Git 命令</li>
</ol>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">$ sudo add-apt-repository ppa:longsleep/golang-backports
$ sudo apt update
$ sudo apt install golang-go sqlite3 python3 python3-pip git
</code></pre></div><h3 id="sftpgo-安装">SFTPGo 安装</h3>
<p>很简单,只需要执行以下命令:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">$ go get -u github.com/drakkan/sftpgo
</code></pre></div><p>然后在你的 <code>$GOPATH/bin/</code> 下找到 <code>sftpgo</code> 命令,如果你不知道你的 <code>$GOPATH</code> 目录,请执行 <code>go env</code> 查看你的环境变量。</p>
<p>这样就算安装完成了,但是具体要使用的话,还需要简单配置一下。</p></description></item><item><title>Caddy 安装配置指南(LCMP)</title><link>https://fun2ex.com/posts/caddy-install-and-setting-guide/</link><pubDate>Tue, 23 Jul 2019 10:38:29 +0800</pubDate><guid>https://fun2ex.com/posts/caddy-install-and-setting-guide/</guid><description><h2 id="0-什么是-caddy">0. 什么是 Caddy</h2>
<blockquote>
<p>Caddy 服务器是一个开源的,使用 Golang 编写,支持 HTTP/2 的 Web 服务端。它使用 Golang 标准库提供 HTTP 功能。 Caddy 一个显著的特性是默认启用HTTPS。它是第一个无需额外配置即可提供 HTTPS 特性的Web 服务器。</p>
</blockquote>
<p>以下是基于 Ubuntu 18.04 的安装说明:</p>
<h2 id="1-安装">1. 安装</h2>
<p>你可以直接从 <a href="https://caddyserver.com/download">Download Caddy</a> 这里下载,选择好的你平台和插件就可以直接下载运行了。</p>
<p>当然,我比较推崇第二种方式,就是使用 <a href="https://getcaddy.com/">https://getcaddy.com/</a> 的脚本安装。
官方不推进使用 <code>root</code> 权限来安装运行 caddy,所以我们直接使用普通用户权限执行以下命令即可。</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">$ curl https://getcaddy.com | bash -s personal
</code></pre></div></description></item><item><title>读后感 - 01</title><link>https://fun2ex.com/posts/nothing-01/</link><pubDate>Mon, 01 Jul 2019 10:38:11 +0800</pubDate><guid>https://fun2ex.com/posts/nothing-01/</guid><description><h2 id="起源">起源</h2>
<p>「你了解自己吗?」</p>
<p>「你能说出自己的缺点和优点吗?」</p>
<p>这两句话对我的印象很深刻,在某次问题讨论上,某人在发现我存在着某些非常严重缺点的时候提出来问题。</p>
<p>第一个问题我的第一反映回答了:是。</p>
<p>第二个问题,却让我突然间恐惧和不自信起来,因为我发现我自己词穷了。我居然说不出来自己有哪些缺点,有哪些优点。一个人连自己自身的优缺点都没办法清晰的认知,从何谈改进,从何谈承诺,从何谈未来。</p>
<p>何以能说要变成一个更好的人。</p>
<p>举个例子,你一直走在一条布满陷阱和诱惑的路上,一路走来磕磕碰碰,一次再一次的踩入一样的陷阱,被一样的诱惑吸引停留,虽然大部分时候最终也到达了终点,但却是比别人花费了更多的时间与精力,得到了与他人一样甚至于逊于他人的结果,也从来没有总结和分析过这样的原因。那是不是以后走上了一条错路就再也纠不回来了呢?</p>
<p>时间有限,精力有限,世界很精彩,不应该把时间浪费在这些低效和拖累自身的事情上。从自身的角度出发,当前最重要的一点就是:正确的认识自己。</p>
<p>认识自己是一个很痛苦的过程,很多时候你不愿意面对各种你所唾弃的缺点,并且会给自己暗示:这不是真正的我。但是你得尝试接受这样的自己,然后警惕这样的自己,进而改变自己。这些缺点不应该成为你的绊脚石,应该把它作为你的战绩。</p></description></item><item><title>为什么大多数人需要仪式感</title><link>https://fun2ex.com/posts/about-the-sense-of-ceremony/</link><pubDate>Wed, 26 Jun 2019 18:09:38 +0800</pubDate><guid>https://fun2ex.com/posts/about-the-sense-of-ceremony/</guid><description>源起与跟小仙女聊天时候讨论了一下有关「仪式感」的内容,扩展理解了一下,发现挺有趣的。记录一下自己的想法。
PS:不讨论「宗教/文化」层面的「仪式感」,只是想从心理学的角度来讨论一下。
什么是「仪式感」 按照我自己的理解尝试解释一下:「仪式」会赋予某一时间段内发生的特定事件「与众不同」的意义,而仪式感便是在仪式之中产生的体验感。直白的说,就是让你的每一个时刻,都跟以往的时刻不一样。
同理还有一个叫「小资」的概念,我觉得这俩是有区别的。区别在于,「小资」是在自己能力水平范围内,尽量用最好的。而「仪式感」是在你可行的范围中,让自己的每一刻有改变发生。
这几天在读「全情投入」时,看到一个例子:
快速转换工作思维和生活思维 - 魔力台阶
”现在,听好了,虽然你自己不知道,但那些台阶是有魔力的,能把你从冷酷的商人变成顾家的男人,走上第一阶台阶的时候,你就把工作抛到了脑后,它会从你的脑子里面彻底消失。电话、会议、协议、客户、战略,还有必须记住的事情,统统都会消失。&quot;
&ldquo;第二步,你要清空自己。你的大脑会变得空空如也。踏上第二阶台阶的时候,你的脑海会变成流水,什么也不想。&rdquo;
&ldquo;踏上第三阶台阶的时候,你要把全部的注意力转移到这屋里面你关心的人身上,他们都在家里等着你,呯!你那睿智的大脑就只想着屋子里面的人了。你要开始思考下面这个问题:&lsquo;他们今天过的怎样?&rsquo; 对此充满好奇吧!弄清除他们在做什么,然后尽快参与其中。&rdquo;
这就是「仪式感」,把生活中平常的的事件赋予不同的意义。小王子里面也有关类似的说明,就不具体阐述了。
那些在生活中被设计的「仪式感」 在生活中随处可见的一些现象:
路边摘了一朵鲜花送你,你便心生愉悦 宣誓的时候一般都要喊口号,做指定动作 收到的礼物,一定是经过精心包装好的 买到车的时候,销售一定要跟你与车一起合影 我自己的结论是:可以有,但是不能强求,不然就变成了形式。</description></item><item><title>How to fixed VS-code iView x-invalid-end-tag error</title><link>https://fun2ex.com/posts/how-to-fixed-vscode-iview-x-invalid-end-tag-error/</link><pubDate>Sat, 22 Jun 2019 18:09:38 +0800</pubDate><guid>https://fun2ex.com/posts/how-to-fixed-vscode-iview-x-invalid-end-tag-error/</guid><description><p>晚上在快乐的写代码的时候,突然碰到一个 eslint 检查器的错误:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-html" data-lang="html"><span style="color:#75715e">&lt;!-- 这样一段代码 --&gt;</span>
&lt;<span style="color:#f92672">Col</span>&gt;
&lt;<span style="color:#f92672">Button</span>&gt;test&lt;/<span style="color:#f92672">Button</span>&gt;
&lt;/<span style="color:#f92672">Col</span>&gt;
<span style="color:#75715e">&lt;!-- 报了一个这样的错误 --&gt;</span>
`Parsing error: x-invalid-end-tag vue/no-parsing-error`
</code></pre></div><p>一路翻阅了 <a href="https://github.com/vuejs/eslint-plugin-vue/blob/master/docs/rules/no-parsing-error.md">Eslint-Plugin-Vue</a> 和 <a href="https://github.com/vuejs/vetur/blob/master/docs/linting-error.md#linting-for-template">Vetur</a> 的文档,终于找到了一段说明:</p>
<p>![12FEB04B-3756-41EC-9589-0BC3D348F508.png](/resource/usr/uploads/2019/06/1297877056.png]</p></description></item><item><title>iperf 宽带性能测试工具</title><link>https://fun2ex.com/posts/iperf/</link><pubDate>Sun, 06 Jan 2019 18:09:38 +0800</pubDate><guid>https://fun2ex.com/posts/iperf/</guid><description><p>远程主机(服务端):Ubuntu 18.04
本地主机(客户端):Mac(安装了 <a href="https://brew.sh/">HomeBrew</a>)</p>
<p>原因:因为我们的本地机器不能被外网机器访问,所以服务端只能由外网机器承担,不影响性能测试结果。</p>
<h2 id="安装">安装</h2>
<p>实际上安装非常简单,只需要配置好环境就行。</p>
<p>Ubuntu 安装:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">$ sudo apt install iperf3
</code></pre></div><p>Mac 安装:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">$ brew install iperf3
</code></pre></div><p>这样就好了,服务端和客户端只需要配置不同的参数就行。</p>
<h2 id="使用">使用</h2>
<p>服务端:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">$ iperf3 -s -i <span style="color:#ae81ff">2</span>
</code></pre></div><p>客户端</p>
<pre tabindex="0"><code>$ iperf3 -c 192.xxx.xxx.xxx -i 2
</code></pre><p>如果要测试上传速度,那么客户端在执行的时候增加 <code>-R</code> 就可以,如:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">$ iperf3 -c 192.xxx.xxx.xxx -i <span style="color:#ae81ff">2</span> -R
</code></pre></div></description></item><item><title>梅林(Merlin)开启 Entware</title><link>https://fun2ex.com/posts/merlin-enable-the-entware/</link><pubDate>Sun, 06 Jan 2019 18:09:38 +0800</pubDate><guid>https://fun2ex.com/posts/merlin-enable-the-entware/</guid><description><h2 id="什么是-entware">什么是 Entware</h2>
<p>Entware-ng 是一个适用于嵌入式系统的软件包库,使用 opkg 包管理系统进行管理,现在在官方的源上已经有超过 2000 个软件包了。</p>
<p>原先计划用自带的 ipkg,无奈包太古老。</p>
<p>官网地址:<a href="https://entware.net/">Entware</a></p></description></item><item><title>Caddy 泛域名配置指南</title><link>https://fun2ex.com/posts/caddy-automatic-https-by-dns/</link><pubDate>Sat, 29 Sep 2018 12:48:38 +0800</pubDate><guid>https://fun2ex.com/posts/caddy-automatic-https-by-dns/</guid><description>从 Automatic HTTPS - Caddy 文档得知,Caddy 是支持配置 *.fun2ex.com这样的泛域名格式的。
直接参考文档的配置,/etc/caddy/Caddyfile 初始配置如下:
*.fun2ex.com { tls { dns dnspod } root /var/www/html } 我自己用的是 DNSPOD,具体的支持 DNS 服务商可以直接从文档查看。 接下来要设置 DNSPOD Auth Api 的环境变量,具体环境变量值可以从 Automatic HTTPS - Caddy 找到。
因为我用的是 systemd 来管理 caddy 进程,所以直接编辑 caddy 的 service 文件就行:
sudo vim /etc/systemd/system/caddy.service 找到 Environment= 这一行,加上环境变量的值,如要添加多个,使用空格分割:
; Letsencrypt-issued certificates will be written to this directory. Environment=CADDYPATH=/etc/ssl/caddy DNSPOD_API_KEY=&#39;$id,$hash_key&#39; 让我们重启试试:
sudo systemctl restart caddy sudo systemctl status caddy 未完待续…</description></item><item><title>秦殇</title><link>https://fun2ex.com/posts/prince-of-qin/</link><pubDate>Sat, 22 Sep 2018 18:09:38 +0800</pubDate><guid>https://fun2ex.com/posts/prince-of-qin/</guid><description><p><img loading="lazy" src="https://fun2ex.com/resource/usr/uploads/2018/09/2304440361.jpg" alt="秦殇" /></p>
<h2 id="起源">起源</h2>
<p>「秦殇」是我非常喜爱的一款游戏。</p>
<p>它完全改变了我觉得历史很枯燥的观点,那只是因为课本的枯燥,其实历史也可以很有趣。多亏于制作团队对历史忠实还原的执着,秦国前后相关的人物、性格特点以及历史典故,都在游戏里面忠实还原了。随着剧情的推进,你能够在这里面遇到这个时期不同的人物,通过对话和行为就能够了解他们的故事和性格,否之如果你不了解某些历史典故,甚至剧情都没法推进下去。进而能让人激发起对了解这段历史的兴趣。换句话说,本人对秦国历史的所有的知识兴趣和了解都来自于「秦殇」。</p></description></item><item><title>Diving</title><link>https://fun2ex.com/diving/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://fun2ex.com/diving/</guid><description>潜水日志</description></item><item><title>Games</title><link>https://fun2ex.com/game/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://fun2ex.com/game/</guid><description>Playing 女神异闻录5:皇家版 9.6 发售时间: 2019-10-31 产商: Atlus 冒险 角色扮演 少年主人公因為某個理由轉學到「東京」的高中,同時他也開始做起奇異的夢。 ──你正是命運的「囚徒」。 不遠的將來,你將面臨毀滅。 為了達成自己被賦予的『更生』任務,也為了將人們從邪惡的慾望中拯救出來,成為怪盜的主人公與各式各樣的人邂逅,締結了特別的羈絆關係。 度過這寶貴的一年後,等待著你的會是……? 真·女神转生V 8.4 发售时间: 2021-11-11 产商: Atlus 角色扮演 汝啊,成为神吧—— 『真・女神转生』系列25周年纪念作品终于登场! 在本作里,除了保有系列独有的魅力之外,更是活用了最新主机的性能,将高画质影像融入其中,将前所未有的全新恶魔体验呈献给玩家。 主人公原本是过着平凡日常生活的高中生,由于某种契机而闯入异世界「达识」。 与谜般的男子融合成了<禁忌之存在>创毗的主人公,投身到神与恶魔的战争…… 最终你会选择何种未来—— 愿望清单 战神:诸神黄昏 9 发售时间: 2022-11-09 产商: Sony Interactive Entertainment / Santa Monica Studio 动作 Santa Monica Studio倾力制作,为备受赞誉的《God of War》(2018)推出瞩目续作。 诸神黄昏即将来临,与克雷多斯和阿特柔斯同行,踏上神话之旅寻找解答。这对父子必须赌上一切,走遍九界。 探索神话中绮丽景色的路途上,父子将面对上至北欧诸神,下至野兽的可怕敌人,同时为生命中空前绝后的大战做好准备。 克雷多斯将带上信赖的作战武器——利维坦之斧和混沌双刀,接受前所未有的考验,使出浑身解数,拼死保护家人。克雷多斯和阿特柔斯也将习得各种新技力,在这场坚毅无畏的浩大冒险中,自如展现酣畅淋漓的战斗。 同时,阿斯嘉特的大军也蠢蠢欲动…… 2023 星之卡比 探索发现 9.</description></item><item><title>Music</title><link>https://fun2ex.com/music/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://fun2ex.com/music/</guid><description>Favor Song
一双旧皮鞋</description></item><item><title>友链 & 书签</title><link>https://fun2ex.com/link/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://fun2ex.com/link/</guid><description>独家重磅收藏 - 品</description></item></channel></rss>