跳到主要内容

茶壶断水分析

· 阅读需 1 分钟
xuenhua

茶壶断水利索取决于水流急缓,水流快,断水利索,水流缓则容易流口水。因此要想断水利索可以从以下两点加快流速:

  • 茶壶出水口和壶身比例

茶壶出水口和壶身大小成一定比例,方可保证水流速度。若茶壶口大,而壶身相对小,手持倾斜角度小时,水压不足,流速慢,易流口水,倒水迅速倾斜方可形成较大水压才能形成较大水压,所以要求倒水时要手法要快。

  • 壶口的角度

壶口的角度平或者下弯不易流口水,上翘的壶口需要更大的水压,需要更大的倾角,更快的转动速度,因此对手法要求也更高。角速度快,口则难以对准杯口,水撒桌面。

读书札记

· 阅读需 4 分钟
xuenhua

Think Different

仗义每当屠狗辈,负心多是读书人。

天下熙熙皆为利来,天下攘攘皆为利往。

自古茅屋出公卿。

富不忘本,常将有日思无日,莫待无时思有时。

君子使物,不为物使。--管子·内业

小修在深山,大修在人间。

先示劣货,然后示真货,怎能拿真货沿街叫卖。必经三顾茅庐,才肯出山,遇到识货的才拿出真货。懂的人不说也懂,不懂的多说无益。

驳存在即合理:产生于合理,存在于局限,如果存在即合理,也就不会再有发展了。

人生不是下棋,不要被落棋无悔所拘,大不了掀桌子再来。

帝纣资辨捷疾,闻见甚敏;材力过人,手格猛兽。知足以距谏,言足以饰非。矜人臣以能,高天下以声,以为皆出己之下。好酒淫乐,嬖于妇人。

上有所好,下必甚焉。

劳心者治人,劳力者治于人。

得意浓时易接济,受恩深处胜亲朋。

能轻易被人拿走的东西,它根本就没真正属于过你。

人一辈子1/3的时间在床上度过,还有重要的事情在床上完成。

世界由男人和女人组成,男人爱女人就是爱世界、爱和平、爱生活。

改写历史的都是疯子。

女人未必漂亮,但一定要善良。

翻炒是情感的升温,糖醋是情感的蜜意,做一碗面条,何尝不是一种柔情。

身贵而愈恭,家富而愈俭,胜敌而愈戒。--孟子·儒效

百姓钱多了不是什么坏事,国家钱多了不是什么好事。

权利是最好的春药。基辛格

时间是一位伟大的作者,它必将写出完美的答案。

人们所遭受的最大不幸,不在于恶人的暴力,而在于杰出人物的软弱-- 罗曼罗兰

最是那一低头的温柔,恰是水莲花不胜凉风的娇羞。

求其上者,得其中,求其中者得其下。

胜负不在疆场,强敌不在阵前。

兴之所在,败之所因。

我爱他似乎就只是他不理我那份骄傲处,我爱那点骄傲。

神同魔鬼合作创造了这样一个女人,也得用伺候神同对付魔鬼的两种方法来伺候她,才不委屈这个生物。

人生大病只是一个傲字。为子而傲必不孝,为臣而傲必不忠,为父而傲必不慈,为友而傲必不信。

世上最值钱的是面子,最不值钱的也是面子,放下面子和尊严坚持什么都不是问题,放下,海阔天空。

男儿膝下有黄金,只要你肯跪下。

不管时代怎么更替,世人得不到满足的欲望总是那么多,只能寄希望于神佛。谁都有求而不得的痛苦,如果相信,能让你比较快乐的话,那就当做是让自己快乐一点也好。

美言可以市尊,美行可以加人。君子相送以言,小人相送以财。

置之死地而后生。

夫民不可虑始,而可与乐成。论至德者不和于俗,成大功者不谋于众。是以圣人苟可以强国,不法其故。

虎兕出于柙,龟玉毁于椟中,是谁之过与?

uniapp发布H5后PC file协议打开,禁用模拟移动端显示

· 阅读需 1 分钟
xuenhua

uniapp发布H5后PC file协议打开,禁用模拟移动端显示

"h5" : {
"template" : "template.h5.html",//PC预览时提示扫码二维码查看,删除后直接显示
"devServer" : {
"https" : false
},
"router" : {
"base" : "/h5/"
// "base" : "",//file协议
// "mode" : "hash"//file协议
}
// "publicPath" : "./"//file协议
},

外语中的中国

· 阅读需 1 分钟
xuenhua

外语中的中国

俄语称中国为契丹,而契丹原意为镔铁,形容意志坚不可摧。现在的西方许多国家,俄国、白俄罗斯、乌克兰、哈萨克、阿尔巴尼亚等以契丹称呼中国。而另外一些受英语影响的国家,如荷兰、斯洛伐克、捷克、西班牙、卢森堡称中国的发音都类似China,因瓷器而得名。而支那一词来源于China的音译,本来无恶意,日本本有对中国的正式称呼,为了蔑视中国,跟西方人一样称呼中国为China。印度支那Indochina一词是西方人称呼印度中国之间的区域,印度尼西亚Indonesia是荷兰人起的名字,nesia表示岛国。

unicloud云函数操作数据库

· 阅读需 2 分钟
xuenhua

创建数据库

db_init.json

{
"temperature": {
"data": []
}
}

添加记录

'use strict';
exports.main = async (event, context) => {
//event为客户端上传的参数
console.log('event : ' + event)
const mydb = uniCloud.database();
const userCollection = mydb.collection('temperature');
let temperature=event.temperature;

const currentTime=new Date();

//const currentTime = new Date().toISOString();
let month=currentTime.getMonth()+1;
let riqi=currentTime.getFullYear() + '-' + month + '-' + currentTime.getDate();
let hours=currentTime.getHours()+8;
let minutes=currentTime.getMinutes();
let seconds=currentTime.getSeconds();
let currentTimeStr = riqi+" "+hours+":"+minutes+":"+seconds;

let AM_PM = "" +((hours >= 12) ? "PM " : "AM " );

let checkRecorded = await userCollection.where({
riqi: riqi,
ampm:AM_PM
}).get();
const recordInfo = {
riqi:riqi,
ampm:AM_PM,
time:currentTimeStr,
temperature:temperature
};
if (checkRecorded.data && checkRecorded.data.length > 0) {
return {
code: -1,
errCode: 'Recorded',
msg: '今天已经记录'
}
}else{
let updateResult = await userCollection.add(recordInfo);
return {
code: 0,
msg: '记录添加成功'
}
}
};

获取数据列表

'use strict';
exports.main = async (event, context) => {
//event为客户端上传的参数
console.log('event : ' + event)
const mydb = uniCloud.database();
const userCollection = mydb.collection('temperature');

let res = await userCollection.orderBy("riqi", "desc").get();

console.log(res);
//返回数据给客户端
return res;
};

按照id查询

'use strict';
exports.main = async (event, context) => {
//event为客户端上传的参数
console.log('event : ' + event)
const mydb = uniCloud.database();
const userCollection = mydb.collection('temperature');
let id=event._id;

let res = await userCollection.where({"_id":id}).get();

console.log(res);
//返回数据给客户端
return res;
};

删除数据

'use strict';
exports.main = async (event, context) => {
//event为客户端上传的参数
console.log('event : ' + event)
const mydb = uniCloud.database();
const userCollection = mydb.collection('temperature');
let id = event._id;
console.log("-------"+id)
let res = await userCollection.where({"_id": id}).remove();
//返回数据给客户端
return {
code: 0,
msg: '记录删除成功'
};
};

ubuntu 安装jekyll

· 阅读需 2 分钟
xuenhua

安装ruby

# sudo apt-get update
# sudo apt-get install ruby
或者
# sudo apt-get install ruby2.0
#不安装dev安装jekyll会报错
apt-get intall ruby-dev

安装jekyll是提示需要ruby >2.4,apt安装为2.3,需要从源码安装

$ tar zxvf ruby-2.4.0.tar.gz
$ cd ruby-2.4.0
$ ./configure
$ make
$ sudo make install

查看版本ruby -v如果还是旧版,删除旧版重新安装或者修改链接

如果已经安装了低版本的ruby,默认安装在/usr/bin目录下,若此时执行ruby -v,还是会显示低版本的ruby,若默认使其执行2.4版本的ruby,则可通过软链接的方式实现

ruby -v
find /usr -name "ruby"
sudo rm /usr/bin/ruby
sudo ln -s /usr/local/bin/ruby /usr/bin/ruby
ruby -v

更新国内镜像

https://gems.ruby-china.com

$ gem update --system # 这里请翻墙一下
$ gem -v
2.6.3
$ gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/
$ gem sources -l
https://gems.ruby-china.com
# 确保只有 gems.ruby-china.com

你可以用 Bundler 的 Gem 源代码镜像命令。

$ bundle config mirror.https://rubygems.org https://gems.ruby-china.com
这样你不用改你的 Gemfile 的 source。
source 'https://rubygems.org/'
gem 'rails', '4.2.5'
...

安装jekyll

$ gem install jekyll bundler
~ $ jekyll new my-awesome-site
~ $ cd my-awesome-site
~/my-awesome-site $ bundle install
~/my-awesome-site $ bundle exec jekyll serve
# => 打开浏览器 http://localhost:4000

解决本地调试Github Page报错

· 阅读需 1 分钟
xuenhua

本地调试HX Blog报错解决方法

 Dependency Error: Yikes! It looks like you don't have jekyll-paginate or one of its dependencies installed. In order to use Jekyll as currently configured, you'll need to install this gem. If you've run Jekyll with `bundle exec`, ensure that you have included the jekyll-paginate gem in your Gemfile as well. The full error message from Ruby is: 'cannot load such file -- jekyll-paginate' If you run into trouble, you can find helpful resources at https://jekyllrb.com/help/! 
------------------------------------------------
Jekyll 4.0.0 Please append `--trace` to the `serve` command
for any additional information or backtrace.
------------------------------------------------

修改Gemfile,添加

source "https://rubygems.org"

gem "jekyll"
gem "jekyll-paginate"

第一篇Github Page/Gitee Page 文章

· 阅读需 1 分钟
xuenhua

前言

很多新同学觉得github不就是一个代码托管所吗,如何能展示项目呢?其实完全可以借助Github的gh-pages打造出自己的一个作品集,无论是对自己的提升整合还是日后的面试都大有裨益。 互联网从诞生发展至今日,每天有无数的人在上面留下自己的足迹,他们用它记录生活、抒发情感、分享见解,这一切都离不开一个可以承载文字的平台,一个独立的、由自己掌控的平台,而 GitHub Pages 就是这么一个平台。 在这个平台里你可以使用自己的个性域名;可以在海量的主题里挑选最适合你的那一款,如果你技术极客,也可以根据自己的喜好,设计属于自己的个性化页面;你既可以在线创建和发布网站,也可以在本地通过客户端工具或者命令行进行网站和内容的管理。

把「终端下的 Vim」作为 macOS Finder 的打开方式

· 阅读需 2 分钟
Hux

我的日常主力编辑器主要是:

  • (Neo)Vim
  • Spacemacs (via Emacs-plus)
  • Visual Studio Code
  • IntelliJ IDEA

这里面只有 (Neo)Vim 是存活在终端中的(我并不在终端内使用 Emacs),而由于我日常主要是从终端(via iTerm)来使用电脑,所以会把他们都加入到 $PATH 里以方便从终端中唤起,VSCode 和 IDEA 都有一键加入的功能, Emacs 我在 ~/.zshrc 中放了一个 alias emacs='open -n -a Emacs.app .' 解决。

但是,偶尔也会有从 Finder 中打开文件的需求,这时候如果通常会打开拓展名所绑定的 Open with... 应用,在大部分时候我的默认绑定是 VSCode,但是今天心血来潮觉得有没有办法直接打开 Vim 呢?搜了一下还真有基于 AppleScript 的解决方案:

  1. 打开 Automator.app
  2. 选择 New Document
  3. 找到 Run AppleScript 的 action 双击添加
  4. 编写 AppleScript 脚本来唤起终端与 vim (下文给出了我的脚本你可以直接稍作修改使用)
  5. 保存为 Applications/iTermVim.app (你可以自己随便取)
  6. 找到你想要以这种方式打开的文件,比如 <随便>.markdown⌘ i 获取信息然后修改 Open with 为这个应用然后 Change All...

效果超爽 ;)

on run {input, parameters}
set filename to POSIX path of input
set cmd to "clear; cd `dirname " & filename & "`;vim " & quote & filename & quote
tell application "iTerm"
activate
tell the current window
create tab with default profile
tell the current session
write text cmd
end tell
end tell
end tell
end run

我这里的代码是采取是用 iTerm 与唤起 vim、窗口置前、在新窗口中打开、同时 cd 到目录。你也可以改成用 macOS 自带的 Terminal.app、在新窗口而非新 tab 打开、应用不同的 profile、或是执行其他 executable 等……任你发挥啦。

References