原文引用

译文:

1 涂鸦

看起来涂鸦的人似乎没有在关注某件事情,实际上涂鸦帮助他们保持大脑的活跃状态。实验表明在接听无聊的电话信息时,做涂鸦动作,比只是接听电话的多记住29%的信息

2 闻迷迭香

科学发现闻迷迭香可以有效的促进长时记忆和工作记忆。
养一盆迷迭香,每天闻一闻

3 握拳

一项研究表示,握拳至少45秒可以促进回忆信息的能力。
如果习惯使用右手,在记忆的同时握紧右拳,在回忆的时候,握紧左拳。
如果习惯使用左手,在记忆的同时握紧左拳,在回忆的时候,握紧右拳。
研究者认为握拳的变换激活了大脑中负责存储和回忆区域的钥匙

4 玩智力游戏

保持头脑处于良好的状态,就要经常锻炼。经典的数独,十字填字游戏,都能促进记忆,延缓衰老

5 精通一个新技能或语言

研究者发现勤奋的练习任何活动都能促进记忆力。例如:开始每天学习西班牙语,或者做手工针织,然后看看会有什么效果。
每天学点新东西。定期在YouTube上看一些有用的教学视频

6 走出你的舒适区

停留在舒适区中会让大脑懒惰,你会失去那些有过一次的脑力优势。
给自己一个新的挑战项目,不需要很大,你可以从一个新的爱好开始

7 使用不常用的字体

书,报纸,甚至网络,我们都希望可以轻松的阅读。
研究者发现一个最好的记忆的方法是使用一个奇怪的字体来阅读
你被迫更加集中注意力,随之而来的就是更容易记住了

matplotlib

install

# python 3+ 请复制以下在 terminal 中执行
$ pip3 install matplotlib

# python 2+ 请复制以下在 terminal 中执行
$ pip install matplotlib

使用问题:
Python is not installed as a framework…
解决方法:
Problem Cause In mac os image rendering back end of matplotlib (what-is-a-backend to render using the API of Cocoa by default). There is Qt4Agg and GTKAgg and as a back-end is not the default. Set the back end of macosx that is differ compare with other windows or linux os.

安装后有个目录 ~/.matplotlib.
在目录下新建文件 ~/.matplotlib/matplotlibrc 内容为: ”backend: TkAgg“

c++ 11

https://github.com/eglimi/cpptime

CppTime::timer_id timerId = pwnd->m_curInfo.tokenTimer.add(CppTime::clock::now() + std::chrono::hours(24), 
[=](CppTime::timer_id) {
g_logger->info("cmdType_frontend_login: frontend token timeout fired token={},timerId={}", token, timerId);
pwnd->m_mapFrontConnInfo.erase(token);
pwnd->m_curInfo.tokenTimer.remove(timerId);
});

MFC

#define	TIMER_ACTIVE_COUNTDOWN		100

//1s
SetTimer(TIMER_ACTIVE_COUNTDOWN, 1000 * 1, NULL);

//在响应Timer事件并处理时,界面是无响应状态,所以这里要注意,如果处理时间长久不能用Timer,要用线程。
void CMerchantBind::OnTimer(UINT_PTR nIDEvent)
{
if (nIDEvent == TIMER_ACTIVE_COUNTDOWN)
{
...
KillTimer(TIMER_ACTIVE_COUNTDOWN);
}

CDialog::OnTimer(nIDEvent);
}

不需要消息循环的Timer


BOOL WINAPI DeleteTimerQueueTimer(
_In_opt_ HANDLE TimerQueue,
_In_ HANDLE Timer,
_In_opt_ HANDLE CompletionEvent
);

/*
CompletionEvent [in, optional]
A handle to the event object to be signaled when the system has canceled the timer and all callback functions have completed. This parameter can be NULL.

If this parameter is INVALID_HANDLE_VALUE, the function waits for any running timer callback functions to complete before returning.

If this parameter is NULL, the function marks the timer for deletion and returns immediately. If the timer has already expired, the timer callback function will run to completion. However, there is no notification sent when the timer callback function has completed. Most callers should not use this option, and should wait for running timer callback functions to complete so they can perform any needed cleanup.
So if you want to call the API in the timer callback function, please don't set the value of CompletionEvent to INVALID_HANDLE_VALUE.
*/

//这个timer需要消息循环,如果在dll里面使用,可以用 CreateTimerQueueTimer

#define _WIN32_WINNT 0x0500
#include <windows.h>
#include <stdio.h>
 
/* Functions in your dll. */
HANDLE g_hTimer;
 
VOID CALLBACK TimerCallback(PVOID lpParameter, BOOLEAN reserved)
{
    /* Remember this callback is executed in a different thread,
     * so use synchronization if needed. */
 
DeleteTimerQueueTimer(NULL, g_hTimer, NULL);
    printf("Timer called\n");
}
 
void Start(void)
{
    PVOID param    = NULL; /* You can use this to pass a value to the callback. */
    DWORD interval = 100/* Interval in milliseconds. */
 
    CreateTimerQueueTimer(&g_hTimer, NULL, TimerCallback, param, interval, interval, 0);
}
 
void End(void)
{
    DeleteTimerQueueTimer(NULL, g_hTimer, INVALID_HANDLE_VALUE);
}
 
 
/* Calling function. */
int main(void)
{
    Start();
 
    getchar();
 
    End();
 
    getchar();
    return 0;
}

c++ 11

https://github.com/eglimi/cpptime

CppTime::timer_id timerId = pwnd->m_curInfo.tokenTimer.add(CppTime::clock::now() + std::chrono::hours(24), 
[=](CppTime::timer_id) {
g_logger->info("cmdType_frontend_login: frontend token timeout fired token={},timerId={}", token, timerId);
pwnd->m_mapFrontConnInfo.erase(token);
pwnd->m_curInfo.tokenTimer.remove(timerId);
});

MFC

#define	TIMER_ACTIVE_COUNTDOWN		100

//1s
SetTimer(TIMER_ACTIVE_COUNTDOWN, 1000 * 1, NULL);

//在响应Timer事件并处理时,界面是无响应状态,所以这里要注意,如果处理时间长久不能用Timer,要用线程。
void CMerchantBind::OnTimer(UINT_PTR nIDEvent)
{
if (nIDEvent == TIMER_ACTIVE_COUNTDOWN)
{
...
KillTimer(TIMER_ACTIVE_COUNTDOWN);
}

CDialog::OnTimer(nIDEvent);
}

不需要消息循环的Timer


BOOL WINAPI DeleteTimerQueueTimer(
_In_opt_ HANDLE TimerQueue,
_In_ HANDLE Timer,
_In_opt_ HANDLE CompletionEvent
);

/*
CompletionEvent [in, optional]
A handle to the event object to be signaled when the system has canceled the timer and all callback functions have completed. This parameter can be NULL.

If this parameter is INVALID_HANDLE_VALUE, the function waits for any running timer callback functions to complete before returning.

If this parameter is NULL, the function marks the timer for deletion and returns immediately. If the timer has already expired, the timer callback function will run to completion. However, there is no notification sent when the timer callback function has completed. Most callers should not use this option, and should wait for running timer callback functions to complete so they can perform any needed cleanup.
So if you want to call the API in the timer callback function, please don't set the value of CompletionEvent to INVALID_HANDLE_VALUE.
*/

//这个timer需要消息循环,如果在dll里面使用,可以用 CreateTimerQueueTimer

#define _WIN32_WINNT 0x0500
#include <windows.h>
#include <stdio.h>
 
/* Functions in your dll. */
HANDLE g_hTimer;
 
VOID CALLBACK TimerCallback(PVOID lpParameter, BOOLEAN reserved)
{
    /* Remember this callback is executed in a different thread,
     * so use synchronization if needed. */
 
DeleteTimerQueueTimer(NULL, g_hTimer, NULL);
    printf("Timer called\n");
}
 
void Start(void)
{
    PVOID param    = NULL; /* You can use this to pass a value to the callback. */
    DWORD interval = 100/* Interval in milliseconds. */
 
    CreateTimerQueueTimer(&g_hTimer, NULL, TimerCallback, param, interval, interval, 0);
}
 
void End(void)
{
    DeleteTimerQueueTimer(NULL, g_hTimer, INVALID_HANDLE_VALUE);
}
 
 
/* Calling function. */
int main(void)
{
    Start();
 
    getchar();
 
    End();
 
    getchar();
    return 0;
}

nxlog4go

log4go

[log4go](go get github.com/jeanphorn/log4go)

  • Log to console
  • Log to file, support rotate by size or time
  • log to network, support tcp and udp
  • Support Json style configuration
  • Add Category for log
  • Classify your logs for different output and different usage.
  • Compatible with the old
阅读全文 »

go 会先调用 package main 里面 main 方法,这个是程序入口,然后初始化引入包的变量,执行引入包的 init 函数,执行 main 的 init 函数

同包下的函数引用

编译的时候,编译目录,不是单个文件,就会全都编译了。

导入包

常规方式,通过包名lib调用SayHello方法。lib.SayHello()
import "xxx/lib"

这里的 m 是包名 lib 的别名,m.SyayHello() 。该方式合适的场景:包名复杂,包名冲突
import m "xxx/lib"

import . "xxx/lib"
这里的点.符号表示,对包 lib 的调用直接省略包名,例如调用lib.SayHello方法

package main

import . "xxx/lib"

func main() {
SayHello()
}


improt _ "xxx/lib"
特殊符号"_"仅仅会导致 lib 执行初始化工作,如初始化全局变量,调用 init 函数。

init函数

先初始化变量,然后执行包的init函数
一个包可以有0-n个init函数,安装出现的顺序执行。

不知不觉在得到上也泡了许久。刚开始对得到印象挺好的,也在上面买了好多东西。直到发生了一件事,让我看清了得到的真实一面。

我于2017.05.21花了365元购买“得到app”的每天听一本书VIP年卡服务,其中有一项功能是可以分享给一个朋友一起听。大约是在8-9月份左右的时候,这个已经付过费的功能被应用提供者擅自取消了。主动联系客服之后石沉大海,将近两个月毫无音信,再次联系客服得到的答复就是等。面对这样的文化流氓,消费者该如何保护自己。这种预售卡类的消费,国家是否有明确的法律规定来规范?同时劝告各位购买年费产品的时候,得到可能会随时终止服务。
从我的亲身遭遇可以看出得到的产品观是什么,付费用户在交钱的一瞬间就变成了待宰的羔羊,随时可以收割,付费用户完全没有价值,快刀青衣果然厉害,我买了两个人可以用的产品,一刀下去一个人就不能用了。
得到的品控手册应该增加一条就是已经卖出去的功能可以随时取消。
针对这种侵害消费者权益,无视法律法规的流氓行为,需要持续的曝光,让更多人看到得到的真实面目。
下面是另一个相关事件
罗永浩“得到”停更事件,我看见“知识付费”的三个坑
备注:经过几个月最后把钱退回了。

得到在用实际行动来教育我,而不仅仅是读书,我表示心领神会了。

CEO资格证

b7a879a6.png

终身学习III-学习时间超过500小时

0cd16425.png

不知不觉花了2000多了

f7484ef7.png

听书VIP,狗屁VIP,完全不尊重用户的合法权益,更别说服务了。

939416b4.png

终身学习者

acf12488.png

尤加利(Eucalyptus)

从尤加利植物中萃取而来,属于桃金娘科盛产于澳大利亚。价格便宜,效果显著。

尤加利品種在市面上相當多約有五百種以上,常見有澳洲尤加利、藍膠尤加利、檸檬尤加利、薄荷尤加利和史密斯尤加利等等.

阅读全文 »

数学是个好东西,需要加强。

转载wikihow

矩阵是一组排列成矩形的或者排列成行成列的数字或符号。要计算矩阵的乘法,你需要用第一个矩阵行上的元素(或数字)乘以第二个矩阵中列上的元素,再计算它们的和。矩阵乘法的步骤很简单,需要用到加法运算和乘法运算,并且还要正确的摆出最终结果。

阅读全文 »

美国now foods

官网:https://www.nowfoods.com/
在iherb上有时候也有比较好的折扣。
美国Now Foods公司位于美国伊利诺州, 创立于1968年,至今已有四十多年历史,为美国最大最全的天然保健食品生产商之一。
1998年,Now Foods于美国伊利诺伊州开办了占地203,000平方公尺的厂房,极大地扩大了公司规模。经营营养保健食品生产四十年来,
公司一直保持零违规记录,成为美国保健食品生产行业的领导者。是美国保健品市场上名列三甲的国际知名的天然保健品牌,
其生产的保健食品种类达1800多种,均通过美国GMP认证,远销世界63个国家。品牌下精油是便宜又好用的有机芳香精油!

AMPHORA AROMATICS

购买网站:www.amphora-aromatics.com/
也就是传说中的英国AA网 大家要分清楚哦 某宝上流行的另外一种AA 可能是假冒的哦。
AMPHORA AROMATICS 成立于1984年, 是英国最好,最大的精油和芳疗产品的供应商之一。历经30年的考验, AA网旗下已经拥有数百款高品质精油、基础护肤品以及芳香疗法全系列产品。
AA公司除了一般品牌有的纯精油,花水外,还有多个系列的有机精油成品,精油皂,木盒,精油瓶等。公司将芳疗产品细分为女士,男士和儿童系列,所以每个消费者都可以在这个品牌中找到合适自己的产品。
AA网的芳疗精油主要包括单方精油、基础油、香薰油、滚珠精油棒等产品。单方精油种类齐全,从耳熟能详的玫瑰精油、薰衣草精油到知者甚少的桂花精油、鸢尾草精油,总数可达数百款之多。

F家

购物网站:http://www.florihana.com

堪称“世界上最好的纯露”!
来自法国精油品牌,获得医疗级认证。Florial(又叫Florihana),公司设立在法国的南部,于国家级自然保护区内的科斯高山上。 那里百年来未曾有过化学农药、人工合成肥料、除草剂等人为的污染,一个10 公顷的有机农场和一个800 英亩的植物园,里面长满了纯种野生小叶薰衣草、百里香、香薄荷等芳香药用物。该网站主要经营天然精油、天然纯露、天然植物油、浸泡油、有机按摩油等产品。得益于特殊的蒸馏技术和包装瓶,Florihana家的产品保持了纯净和清新,无防腐剂/添加剂,成分安全。支持VISA/MASTERcard信用卡,可以直邮,但运费不便宜,还是转运更划算一些。
值得购买的产品:
1、Florihana Arnica Montana 100ml(Florihana牌美白保湿纯露100ml)
2、Florihana Jasminum Grandiflora 2g(Florihana牌茉莉丰胸原精2g)

德国Oshadhi

购物网站:www.oshadhi.de/
中文名称:奥莎迪!简称O家,非常著名的顶级精油品牌,来自德国。一直坚持着使用植物疗法来修复人体功能以及追求心灵的和谐,
且植物的采集皆具有卓越的医疗效果,为了追求高品质的精油,他与全世界提供原料的1000家农场签订了”保证书 “,
规定只能提供不含杂质的植物原料,并且农场的挑选也只选定纯净、原始的、高海拔的农场,也因此获得了欧洲精油协会的最高荣誉认证。
值得买的产品:
Oshadhi 橙花花水(5205)控油去痘:适合干性(缺水)、敏感及成熟型肌肤,对于其它的皮肤问题也都有帮助。温和的美白效果使肌肤明亮,淡化斑点,改善肤色不匀和暗沉,净化收敛的效果可治疗粉刺和青春痘,减少油脂分泌,缩小毛孔。适用各种肤质!
Oshadhi特级高地薰衣草花水:可镇定及疏解长痘痘时不安的情绪,同时具 有平衡油脂分泌之效果,对油性皮肤及敏感皮肤有收敛及安抚之功效。
Oshadhi 瘦脸提升轮廓配方:(瘦脸提升轮廓配方—迷迭香3滴+天竺葵3滴+高地薰衣草2滴+甜杏仁油20ml)专门针对各种“胖胖脸”的配方,适合脸部“肥胖”型(全部及局部)、双下巴、面部浮肿等,同时红润活化肌肤。

MRH

官网:https://www.mountainroseherbs.com/
这家基础油和精油是非常流行非常不错的。想必这个大家都是非常熟悉啦。由于国人的购买,他家的产品已经涨价几次,
并且也不支持国卡和美国转运地址啦。我最近一次购买是使用的私人地址和美卡。

Aura Cacia

官网:http://www.auracacia.com/
Aura Cacia始建于1982年,在美国加利福尼亚州的Weaverville地区。它的创始人掌握了精油的精神,并开始传播关于芳香疗法说法。越来越多的人了解到,他们需要更多的精油,也更喜欢天然的芳香疗法,这个过程一直持续到今天。Aura Cacia因为产品的天然原料来源,成为芳香疗法的质量代言人。我们的理论和可持续采集的天然材料,以及内部精密的测试能力,使我们能够保证精油纯度和天然性。在面临今天的质量夸张和添加物质的精油市场,这也成为我们安心为客户服务的基础。个人感觉可能要比now foods 要好一点。
推荐产品:Aura Cacia100%天然有机纯茶树精油
Aura Cacia天然有机宝宝牛奶燕麦香薰泡澡粉

shirley price

官网:http://www.shirleyprice.co.uk/
shirley price精油被国内的资深精油玩家给予5颗星的最高评价,被称作世界三大顶级品牌之一。
Shirley Price的所有产品都不含任何人工香料,动物成分,羊毛脂,是过敏皮肤和极度敏感皮肤的最佳选择。其生产的洋甘菊滴眼液号称是Shirley Price产品系列中的镇牌之宝。特别适合需要长时间用眼的现代上班一族。
值得一提的是他家的洋甘菊滴眼液,芳疗应用于眼部的极少数产品之一。是一款非常温和的眼部产品,号称是Shirley Price产品系列中的镇牌之宝。主要致力于改善眼部疲劳,干涩,沙砾感,痒感,酸涨等症状,还你一双清澈舒适的明眸。特别适合需要长时间用眼的现代上班一族,可以明显改善用眼过度的所造成的眼部诸多问题。

Q家也是英国的一家非常有名的精油网站

官网:http://www.quinessence.com/
QUINESSENCE公司成立于1984年,是全球芳香业界的权威机构ATC的创立成员之一,也是英国芳疗贸易协会ATC的001号会员,做精油的品牌都以加入这个协会为自己品质优秀的象征。QuinEssence在世界各地拥有相当多非常忠实的客户,已故戴妃就是Quinessence的忠实爱好者和支持者,这家网

green valley

购物网站:https://www.57aromas.com/
Green Valley 是加拿大排名第一的精油品牌,简称:GV!在全世界也是排名前十,提供世界各地所生产的100%纯正、优质的精油,性价比很高,是很实惠的品牌,一般大众都可以买得起。所以它也是国际上评价较高的平价精油之一。
GV最大的优点就是有多种容量包装,最小包装是2ml,对于一些价格昂贵,但是需要量不大的精油种类来说,这样的包装实在是很不错的。GV的系列产品包括: 单方精油、复方精油、纯露、天然保养品、芳疗书籍、熏香器、扩散仪、按摩油、基底油、脉轮复方精油等。所有的商品均是纯天然、环保及不以动物做实验。
值得买的产品:柑橘类的精油产品!

Base Formula

购物网站:www.baseformula-us.com/
Base Formula中文名芳程式,1996年创立于英国,是英国芳香精油的著名品牌,一直致力向全球的专业芳疗师提供顶级的精油以及芳疗用品。与此同时芳程式承诺所有用品都有可靠来源,公平贸易的原材料以及环保的包装。
所有用品由英国制造、没有动物测试、不含苯甲酸酯类和人造成分、适合素食主义、符合伦理道德的原料和生产以及可循环利用的包装材料。
值得买的产品:精油种类很多,基地油和浸泡油的质量很不错,品种也相当齐全。价格很便宜,但是运费高,适合大批量购买或拼单!除了精油以外,他家的的花水跟芦荟胶热度很高,Base Formula家还有很多其他产品,比入无香产品,胶类、扩香石等。