远离负能量

这是一篇来自Facebook上的12张图,她可以让你检测自己或身边人是否属于负面的人。一个人的情绪可以影响到别人,不要把负面情绪带给别人,也不要让别人的负面情绪影响你。要给予别人正能量,不要在抱怨中度过,生活才能更美好。

image
负面的人害怕改变,正面的人则欢迎新的机会到来。

image
负面的人觉得没必要称赞他人所做的事,正面的人却往往会看到并赞赏他人的好。
image
负面的人说话总在讲着自己,正面的人会想到去了解对方的心情。

image
负面的人往往觉得世界应该围着他打转,正面的人却会伸出手扶他人一把。

image
负面的人总将错误怪到他人身上,正面的人懂得为自己的失败负起责任。

image
负面的人就算知错也不愿道歉,正面的人会在任何造成他人不便的时候先说声抱歉。

image
负面的人只会想着个人利益,正面的人却会试着不去伤害到他人的感受。

image
负面的人想看到其他人失败,正面的人则希望看到其他人成功。

image
负面的人讨厌被批评,正面的人则欢迎有建设性的讨论。

image
负面的人认为自己什么都懂,正面的人却总想学习新事物。

image
负面的人放任你悲伤的情绪,正面的人会鼓励你振作起来。

image
负面的人遇到任何事都先退缩,告诉自己不行,正面的人却会想办法改变,让自己活得更好。

在“一念天堂,一念地狱”的抉择中。审视一下自己,是否处于负面的状态。

利用复习对抗遗忘

德国心理学家艾宾浩斯曾经透过实验,研究随着时间的流逝,一个人所能记忆的事物有何变化。他以自己作为实验对象,先把
13 个无意义的单字熟记至能全部正确背出,然后测试自己在经过不同的时段后,能回忆起多少个单字。以下是实验的结果:

时间 (从学习起) 20 分钟 1 小时 9 小时 24 小时 2天 6天 31天
记忆率 % 58 44 36 34 28 25 21
遗忘率 % 42 56 64 66 72 75 79

由上可见,记忆的维持量或记忆率在刚开始记忆后的 9 个小时减少幅度最剧烈,随后的减少幅度则较少。根据以上数据所绘的曲线图像,就是有名的「艾宾浩斯遗忘曲线」。

能有效提升记忆率的複习方法

从艾宾浩斯曲线可见,即使在学习时已记得很熟,如果只学习一次,9
小时后可能已经忘得差不多。遗忘最快的是在学习后最初的一小时之内,所以,为了防止遗忘,必须儘早作第二度学习,也就是我们一般所称的複习。以下是根据遗忘的规律所订的一个複习方法,可供参考:

第 1 次複习:学习后的 1 小时内

第 2 次複习:学习后的第 1 天内

第 3 次複习:学习后的第 3 天内

第 4 次複习:学习后的第 6 天内

第 5 次複习:学习后的第 13 天内

第 6 次複习:学习后的第 27 天内

複习的时间不需太长,重点是透过多次重複学习,让第一次学习的内容转成永久的记忆,以后要回想就很容易了。

iOS8升级,没有5.7G空间,也能升级!

iOS8升级,需要至少5.7G剩余空间,相信天天用iPhone的朋友没有人有这么多的剩余空间,64G的土豪除外。

image

如果非用苦逼的删除App、音乐、视频,直到有了5.7G空间,升级后还要在安装App,复制音乐、视频,这样升级iOS8也太痛苦了。
其实用iTunes升级安装即可,这样更新没有空间要求。如果你觉得在线升级太慢,先使用下载工具下载iOS8固件下载链接,下载链接见下文。下载固件完毕后,在iTunes里按住Option键,点击【更新】(Windows用户按住Shift),在弹出的窗口中选择下载好的固件,几分钟后就完成了升级
iOS 8 固件下载地址:
设备代码:将设备连接 iTunes 查看,点击序列号栏可以查询,如 iPhone 6,2。
型号:查看设备背面 Model 信息,如 A1528。

使用nsenter进入Docker容器

Docker容器运行后,如何进入容器进行操作呢?起初我是用SSH。如果只启动一个容器,用SSH还能应付,只需要将容器的22端口映射到本机的一个端口即可。当我启动了五个容器后,每个容器默认是没有配置SSH Server的,安装配置SSHD,映射容器SSH端口,实在是麻烦。
我发现很多Docker镜像都是没有安装SSHD服务的,难道有其他方法进入Docker容器?
浏览了Docker的文档,我没有找到答案。还是要求助于无所不能的Google,万能的Google告诉我用nsenter吧。
在大多数Linux发行版中,util-linux包中含有nsenter.如果没有,你需要安装它.
cd /tmp
curl https://www.kernel.org/pub/linux/utils/util-linux/v2.24/util-linux-2.24.tar.gz \
| tar -zxf-
cd util-linux-2.24
./configure –without-ncurses
make nsenter
cp nsenter /usr/local/bin
使用shell脚本 docker-enter,将如下代码保存为docker-enter,chomod +x docker-enter

#!/bin/sh

if [ -e $(dirname "$0")/nsenter ]; then
    # with boot2docker, nsenter is not in the PATH but it is in the same folder
    NSENTER=$(dirname "$0")/nsenter
else
    NSENTER=nsenter
fi

if [ -z "$1" ]; then
    echo "Usage: `basename "$0"` CONTAINER [COMMAND [ARG]...]"
    echo ""
    echo "Enters the Docker CONTAINER and executes the specified COMMAND."
    echo "If COMMAND is not specified, runs an interactive shell in CONTAINER."
else
    PID=$(docker inspect --format "{{.State.Pid}}" "$1")
    if [ -z "$PID" ]; then
        exit 1
    fi
    shift

    OPTS="--target $PID --mount --uts --ipc --net --pid --"

    if [ -z "$1" ]; then
        # No command given.
        # Use su to clear all host environment variables except for TERM,
        # initialize the environment variables HOME, SHELL, USER, LOGNAME, PATH,
        # and start a login shell.
        "$NSENTER" $OPTS su - root
    else
        # Use env to clear all host environment variables.
        "$NSENTER" $OPTS env --ignore-environment -- "$@"
    fi
fi

运行 docker-enter <container id>,这样就进入到指定的容器中
关于nsenter更详细的使用方法见这里 https://github.com/jpetazzo/nsenter

Docker 学习笔记 -- 入门

Docker是什么

Docker is a platform for developers and sysadmins to develop, ship, and run applications. Docker lets you quickly assemble applications from components and eliminates the friction that can come when shipping code. Docker lets you get your code tested and deployed into production as fast as possible.

Docker是一个开源平台,在这个平台上开发者和系统管理员可以开发、发布、运行他们的应用。通过Docker
可以快速装配应用程序组件并且消除部署代码时的问题。Docker可以让你快速的测试和发布代码。

Docker的应用场景

  • 自动化打包和发布应用程序
  • 创建轻量的私有PaaS环境
  • 自动化测试和持续集成、发布
  • 部署弹性Web应用程序、数据库和后台服务

    Mac上Docker的安装

  1. 下载 Docker for OS X Installer 并安装
    Mac OS X Docker
  2. 在Applications中运行Boot2Docker ,Boot2Docker自动打开终端,完成Docker的初始化,之后就可以在终端中使用docker

    CentOS7上Docker的安装

    安装Docker

    $ sudo yum install docker

    运行docker

    $ sudo service docker start

    设置启动时运行docker

    $ sudo chkconfig docker on

    下载centos映像

    $ sudo docker pull centos

其他操作系统参考Docker官方文档进行安装

Docker初体验

Docker官网有个交互式的教程,跟着走一遍就基本完成入门了,强烈推荐。
https://www.docker.com/tryit/

使用Dropbox+Justwriting+Markdown搭建个人博客

使用Dropbox+Justwriting+Markdown搭建个人博客,让你真正体会到什么是“化繁为简”。你的所有的博文日志都存在你个人电脑里,即使有一天你的服务器主机挂掉了,你的数据也不会丢失。你完全不需要关注如何发布文章,你只需要在你的电脑里用Markdown书写。
这个方法搭建的博客还有一个优势,就是可以用作团队博客。具体操作是把Dropbox中的文章目录共享给你的团队成员,团队成员的Dropbox中就多了你分享的目录,他只需要在这个目录中添加Markdown文章即可。当然,他也可以修改你的文章,不过这个操作最好不要和你同时进行,否则文件会出现冲突。

安装JustWriting

JustWriting是支持Markdown的极简的开源博客系统,JustWriting不需要数据库支持,只需要把代码上传到web空间即可。点这里下载代码。

Justwriting的创意来自Farbox,在这里向FarBox及其团队致敬。

更详细的使用方法见这里
如果你的Web服务器是Nginx,可以参考这段代码进行配置。

在Linux服务器上安装Dropbox Client

在Linux服务器上安装Dropbox Client,用来完成文章目录的Markdown文档同步。如果你不能在服务器上安装Dropbox Client,可以跳过此段,参考虚拟主机用户的设置方法进行设置,完成Markdown文档同步。
32位系统

$ cd ~ && wget -O - "https://www.dropbox.com/download?plat=lnx.x86" | tar xzf -

64位系统

$ cd ~ && wget -O - "https://www.dropbox.com/download?plat=lnx.x86_64" | tar xzf -

启动dropbox
$ ~/.dropbox-dist/dropboxd

如果你是第一次在你的服务器上运行Dropbox,复制提示的链接在浏览器中打开,用你的Dropbx用户登录即可完成对服务器的授权。完成授权后,Ctrol+C中断这个脚本。

建议为服务器专门(这里称作副帐号)创建一个Dropbox账号,把主账号的博客文章目录Share给这个用户。上述登录也使用副帐号登录。这样做虽然麻烦,但比较安全,并且不会把你主账号所有的Dropbox文件都同步到服务器上。
启动dropbox
$ wget https://www.dropbox.com/download?dl=packages/dropbox.py
$ python dropbox start

在你的用户根目录中会出现个Dropbox目录,用ln命令将你Dropbox的文章目录链接到Justwriting的posts目录。我的操作如下,供参考
$ cd /data/web/www.justwriting.com/
$ rm -rf posts
$ ln -s ~/Dropbox/JustWriting/ posts

由于用户home目录web用户是不能访问的,所以还需要修改目录的权限
chmod 755 ~
chmod 755 ~/Dropbox

Linux上安装Dropbox更多说明点这里

虚拟主机用户,使用Dropbox Webhook URI

如果你是在虚拟主机上安装Justwriting,你可以使用同步脚本完成Dropbox文档同步

  1. 创建Dropbox App

    • Generated access token
    • Add Webhook URI http://<your_justwriting_site>/sync/dropbox/download

    Dropbox Create App

  2. 配置settings.php中dropbox相关参数:

    $blog_config['dropbox']['key']= '';
    $blog_config['dropbox']['secret'] = '';
    $blog_config['dropbox']['access_token'] ='';
    
  3. 访问 http://your_justwriting_site/sync/dropbox/download 进行文章同步。

  4. 将上面的URL配置到你的定时任务中

大功告成

通过以上的设置,我们完成了个人博客系统的搭建。以后你只需要在个人电脑的Dropbox文章目录中书写Markdown文档,保存后即可完成文章的发布。还有比着更酷的吗?

Justwriting+Markdown+SAE搭建自己的博客系统

Justwriting

Justwriting是一个极简开源博客系统,不同于Wordpress等传统博客系统,Justwriting没有博客后台,你只需要在你的电脑上用Markdown书写,还有比这更简单的吗。同时你不用担心你的文章丢失,因为文章就在你的电脑里。
Justwriting的创意来自Farbox,我自己原本也是Farbox的用户,只是最近Farbox文章同步太慢(也许是用户量太大了),并且访问速度也很慢,自己才写了这个博客系统。
Justwriting同样是用Dropbox来同步文章。如果自己有VPS或者虚拟主机,建议你使用Dropbox+Justwriting,在设置博客系统以后,你只需要用Markdown书写,完全不需要关注其他。
如果你不用Dropbox,目前只能通过FTP、SVN、Git等其他途径发布文章了,这样不能发挥Justwriting最大的功效。
其他网盘的支持我正在推进中,微博微盘(Vdisk)无法支持了。因为Vdisk App沙箱中的文件居然不出现在用户的微盘中的,My God!这是Vdisk的文档
下一个计划支持的网盘是百度网盘。

Markdown

Markdown是一种标记语言,他的目标是成为一种适用于网络的书写语言。 如果你还不了解Markdown,点这里学习Markdown语法,分分钟就学可以会并且会爱上他。

SAE

SAE是Sina App Engine的简称,是新浪研发中心推出的国内首个公有云计算平台,支持PHP,MySQL,Memcached,Mail,TaskQueue,RDC(关系型数据库集群)等服务。SAE通过实名认证及开发者认证,每个月送大量云豆,对于一般的博客站点云豆完全够用,也就是说用SAE搭建博客完全免费,不需要支付费用。同时SAE还支持绑定自己的域名,只是对于没有备案的域名请求走海外中转,流量计费翻倍。

注:BAE(百度应用引擎)已经开始收费了。

安装JustWriting

  1. 下载Justwriting
  2. 修改settings.php,配置你的博客参数
  3. 把你的博客文章(文件的扩展名是.md),放到posts目录中
  4. 上传源代码到SAE
    另外还有一种快捷的安装方式:
  5. 访问Justwriting应用仓库的页面,点击安装框架
  6. 在SAE后台在线代码编辑器里修改博客参数

    下载SAE代码到本地目录

    svn co https://svn.sinaapp.com/helloworld
    helloworld需要换成你自己的sae二级域名。
    Windows用户可使用TortoiseSVN完成代码同步,使用方法见[SAE官方文档](http://sae.sina.com.cn/doc/tutorial/code-deploy.html#tortoisesvn

    写文章

    文章头部放置头信息,Justwriting采用的Farbox头部信息的格式,同时也支持Jekyll的头信息格式。
    Date: 2014-08-09
    Title: Justwriting+Markdown+SAE搭建自己的博客系统
    Tags: Justwriting Markdown
    Status: public
    
这里写正文

文章完成之前status可以设置为draft,这样这篇文章不会出现在你的博客列表中。
在posts目录中用Markdown书写,保存为.md文件。

发布文章

由于SAE服务器不能访问dropbox,所以我们只能用svn来发布文章了。
cd myhello
svn add * –force
svn ci -m “submit code”

参考资料

微信公众平台开发 - 客服接口

发送客服消息

当用户主动发消息给公众号的时候(包括发送信息、点击自定义菜单、订阅事件、扫描二维码事件、支付成功事件、用户维权),微信将会把消息数据推送给开发者,开发者在一段时间内(目前修改为48小时)可以调用客服消息接口,通过POST一个JSON数据包来发送消息给普通用户, 在48小时内不限制发送次数。此接口主要用于客服等有人工消息处理环节的功能,方便开发者为用户提供更加优质的服务。

接口调用请求说明

http请求方式: POST
https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=ACCESS_TOKEN

若发送对象在48小时内没有给公众号发送消息,系统会返回错误。注意Http Status依然返回200,这点不符合Restful精神啊

image

发送文本消息

{
    “touser”:”OPENID”,
    “msgtype”:”text”,
    “text”:
    {
         “content”:”Hello World”
    }
}

发送图片消息,其他媒体类型发送同图片

发送图片消息前先调用文件上传接口获得mediaId。图片格式必须为jpg类型
{
“touser”:”OPENID”,
“msgtype”:”image”,
“image”:
{
“media_id”:”MEDIA_ID”
}
}
注意事项:

  • 只有认证服务号才可以上传多媒体文件到微信服务器
  • 多媒体文件会在发送到微信服务器后3天后自动删除
  • 上传的多媒体文件有格式和大小限制
    1. 图片(image): 1M,支持JPG格式
    2. 语音(voice):2M,播放长度不超过60s,支持AMR\MP3格式
    3. 视频(video):10MB,支持MP4格式
    4. 缩略图(thumb):64KB,支持JPG格式

参考文档:微信公众平台开发文档

JustWritting 使用指南

JustWritting是支持Markdown的极简的博客系统

Requirements

  • PHP 5.3.6+

Features

  • 极简博客
  • 不需要数据库
  • 不需要管理后台
  • 用Markdown写博客
  • Twig Templates

Install

  1. 上传源代码到你的PHP空间
  2. 将Markdown文档放到posts目录中

Justwriting 支持SAE云空间。SAE是Sina App Engine的简称,是新浪研发中心推出的国内首个公有云计算平台,支持PHP,MySQL,Memcached,Mail,TaskQueue,RDC(关系型数据库集群)等服务。SAE通过实名认证及开发者认证,每个月送大量云豆,对于一般的博客站点云豆完全够用,也就是说用SAE搭建博客完全免费,不需要支付费用。同时SAE还支持绑定自己的域名,只是对于没有备案的域名请求走海外中转,流量计费翻倍。

文章信息

文章头部放置头信息
Date: 2014-08-09
Title: Compile Zeal on Mac OS X
Tags: Zeal Mac
Status: public

文章发布

  • 如果是在自己的VPS上搭建Justwriting,建议使用Dropbox来同步文章

    1. Create App
    2. Generated access token
    3. Configure params in settings.php: $blog_config['dropbox']['key'],$blog_config['dropbox']['secret'],$blog_config['dropbox']['access_token']
    4. access http://your_justwriting_site/sync/dropbox/download for syncing posts
  • 如果在SAE上搭建Justwriting,建议使用SVN来更新文章
    Windows下SVN的使用方法点这里
    Mac & Linux 下还是习惯用命令行:

    svn co https://svn.sinaapp.com/you_sae_name
    svn add 1/
    svn ci -m "submit code"
    

    详情使用方法点这里

ToDo List

  • [ ] 文章列表分页
  • [x] 支持微盘同步(Sina网盘)
    Vdisk暂时无法支持了,除非申请basic访问权限。Vdisk的App沙箱中的文件居然不出现在用户的微盘中,微盘为什么要这么设计?多学学Dropbox的设计吧。
    Vdisk文档参见这里

  • [ ] 百度网盘

谁在用

如果你使用了Justwriting,你将出现在这里。点这里告诉我

Contributors

Online Demo

Online Demo

License

MIT