Picocom instead of Screen

I’m using screen to read the text from a serial console. The problem is the output seems to only have newline \n but not carriage return \r, so the display looks like this…

Line1
     Line2
          Line3

I wonder if there is any patch to fix this issue?

When I need to read the serial data from some devices in Linux, I used the screen but I’ve found the similar problem above. And it was frustrating that there is almost no solution to solve the problem. So I start to try Picocom, a tiny and easy-use tool like screen. The most importance is that it can map something to avoid the above phenomenon.

you can type command as follows:

picocom -b115200 /dev/ttyUSB0 –imap lfcrlf

where -b represents the baud rate and /dev/ttyUSB0 is the name of device. imap is the input map which means map [LF] to [CRLF]  in input data.

Refer to this for more detail.

make or Sudo make?

Since I has not installed the Chinese input in my ubuntu, what I can do is to record that in English.

Problem: I compiled my Contiki codes (for example, “hello-world”) and upload to the telosB. Generally, we use the instructions as follows:

make hello-world.upload TARGET=sky

But the failed words instead of expected results appeared on the terminal. It said about permission denied for the ttyUSBx ports.

I searched on Google and found most circumstances like me are with higher version of msp430-gcc. If you added sudo the aforementioned command, you well get “make: msp430-gcc: Command not found” something like that. It looks confused and I posted my solution here which is referred to this.

Solution:

sudo adduser $USER dialout

Type the above command to add “user” to the dialout group and log out for this change to take effect next time you start or restart the computer directly. Everything will be ok!

Latex中如何插入matlab的eps图片

用matlab生产一张figure后,用以下命令行可以实现将当前figure保存为eps文件

print log_f_vs_k.eps -depsc2 -r600

在latex中用以下语句插入:

\begin{figure}[!h]
  %\vspace{-0.2cm}
  \centering
   {\epsfig{file = matlab/log_f_vs_k.eps, width = 12cm, angle=-90}}
  \caption{speed of convergence}
  \label{fig speedofconvergence}
\end{figure}

其中,angle参数用来调节图片输出的方位,有时候print输出的eps图片会有90度翻转。当然该语句需要

\usepackage{epsfig}

用上述方式输出的eps有一个好处,就是规避了用save as直接输出可能会出现的坐标轴消失的bug。

stash & stash pop

当你正在写一段代码的时候,突然有其他事请需要打断你编码的过程,此时使用git的正确姿势应该是:

git stash

把当前未提交的改动“复制”到另一个地方暂存起来,使用git status命令可以发现

On branch master
nothing to commit, working directory clean

待要恢复的时候执行:

git stash pop

关于.gitignore

当我们使用vim的时候总会有临时文件产生,例如.swp或者~。在以前粗放型的git使用中(使用git add –all命令),会把这些临时文件或者编译所产生的中间变量都加入到stage中。其实这种并不是一个好的(起码是精致的)git使用习惯。恰当的做法是使用.gitignore文件。

.gitignore文件有自己的格式:

以下转自刘大帅的解读gitignore Manual Page

  • 所有空行或者以注释符号 # 开头的行都会被 Git 忽略。
  • 可以使用标准的 glob 模式匹配。
  • 匹配模式最后跟反斜杠(/)说明要忽略的是目录。
  • 要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!)取反。

所谓的 glob 模式是指 shell 所使用的简化了的正则表达式。星号(*)匹配零个或多个任意字符;[abc]匹配任何一个列在方括号中的字符(这个例子要么匹配一个 a,要么匹配一个 b,要么匹配一个 c);问号(?)只匹配一个任意字符;如果在方括号中使用短划线分隔两个字符,表示所有在这两个字符范围内的都可以匹配(比如[0-9]示匹配所有0到9的数字)。

一个.gitignore例子:

#此为注释-将被git忽略

#忽略所有.a结尾的文件

*.a

#但lib.a除外

!lib.a

#仅仅忽略项目根目录下的TODO文件,不包括subdir/TODO

/TODO

#忽略build/目录下的所有文件

build/

#会忽略doc/notes.txt,但不包括doc/server/arch.txt

doc/*.txt

#ignore all .txt files in the doc/ directory

doc/**/*.txt

两个星号连在一起在路径中有特殊的含义:

  1. **/foo表示的是任意路径下的foo文件或路径;**/foo/bar表示的是任意路径下在foo里面的bar文件或路径。
  2. abc/**表示的是abc下的所有文件,具有无限深度。
  3. a/**/b表示a/b,a/x/b或者a/x/y/b等等。
  4. 除上述三种情形之外的连续星号视为非法。

另外,gitignore.io可以帮你自动生成常规的.gitignore文件。

git config –global, system or local?

一般情况下,git配置过程中第一步就是配置用户名和邮箱:

git config –global user.name “sean MA”

git config –global user.mail “ma.xiaoyuan.mail@gmail.com”

但以前一直没有深究为什么要用global参数。

[以下引用自git-scm]

git 使用一系列的配置文件来存储你定义的偏好,它首先会查找/etc/gitconfig文件,该文件含有对系统上所有用户及他们所拥有的仓库都生效的配置值,如果传递system参数给git config命令,git会读写这个文件。

接下来git会查找每个用户的~/.gitconfig文件,你能传递global项让git读写该文件。

最后git会查找由用户定义的各个库中git目录下的配置文件(.git/config),该文件中的值只对属主库有效。 以上阐述的三层配置从一般到特殊层层推进,如果定义的值有冲突,以后面层中定义的为准,例如:在.git/config与/etc/gitconfig的较量中,.git/config得了胜利。当然你也可以直接手动编辑这些配置文件。

产品设计的行为方法 -设计一款令人印象深刻的产品的四个步骤

原文作者:Aaron Otani | , 2015

原文链接:https://medium.com/swlh/a-behavioral-approach-to-product-design-166d22628970#.uqy8cqb9i

改变行为很难。我们每天都会看到——新年计划没能实现,健身房会员卡还没用,计划吃得更少,或是省下钱来,结果都从未实现。

有许多产品与服务推着我们朝目标前进——无论是使我们的饮食更健康,养成一个更好的理财习惯或是更积极的生活习惯。但是创造产品来完全实现这些目标会变得几乎无限困难。设计者意识到传统的设计方法已经永远无法有效地处理这些复杂的行为挑战。

在 Opower,我们的团队采取了独特的产品设计的行为方法,利用最新的行为科学研究创造使用的、令人愉快的用户体验使地球上的每个人来节约能源。理解人们 是如何解释信息、作出决策以及采取行动背后的心理学与自然科学使我们产生了更有效的设计——在我们的设计中,我们已经成功改变了人们的习惯并帮助消费者节省了超10亿美元的能源账单。

行为设计的四个阶段

最近,我们的团队开发了一个简单的四步框架来引导我们的设计过程并评估我们产品行为的有效性。本文将介绍该框架并描绘所有的设计者可以使用的技巧来确保他们的产品尽可能的吸引人、具有说服力、可执行。

1 UiEKdbGj3IujlbFfgCVS4A

第一步:获得关注(Grab Attention)

人们想要知道的第一件事是——为什么我们要关心?作为设计者,我们可能用有一个很棒的产品,但是没人知道人们会不会关注我们的消息并且考虑使用我们的产品。

1 N24C8dWT9XUUxq5Rw_GrWw

技巧

  • 让它变得引人注目。用吸引眼球的美学、引人入胜的故事或者炫目的动画设计。
  • 产生情感上的反应。通过诉诸人们的情感——可以是惊喜、好奇或者紧急(例如产品稀缺或者损失规避等技巧)——创造出众而令人难忘的设计。
  • 展现个性化内容。人们会对定制化的、基于他们的行为、兴趣以及价值观相关的消息给予及时的响应。

举例

  • Airbnb用它的首页,引人入胜的图片与视频,给人留下了深刻的第一印象。温暖的语言吸引用户进入并继续浏览。

1 l482aIEHefWaznMhDT7J1g

 

  • Mint发送电子邮件提醒顾客那些不寻常的支出模式。这些电子邮件有效地引起了我们的注意。因为它们既个性化也引起我们的情感上的反应——这些消息通常很出乎人们的意料(可能很紧急),这会迫使我们进一步查看下去。

1 rsbtj6nLfhleF5KJiOmHmw

第二步:影响决策(Influence Decisions)

一旦人们被吸引,感兴趣,我们需要呈现一个清晰明了的、令人信服的理由使他们采取行动。

1 Fl6CH4UjCL8DpcxvFWkoTA

技巧

  • 提供清晰、直接的内容。避免专业术语,使你的消息具体、简单易懂。提供的内容应该回答人们的问题并且帮助他们做出选择。
  • 提供建议。当提供了清晰的下一步或选项的时候,人们会被迫的做某些事。用户会从专家或者可信来源(包含社交网络)评估建议与个性化建议。
  • 描述益处。人们想知道自己能从中得到什么好处。这可能包括外部奖励(金钱、折扣),生活方式的好处(舒适),或者对人们的内在动机和价值观具有吸引力。
  • 重组信息。使用行为科学信息来改变观念和鼓励行动。将人们锁定到一个具体的选择,通过稀缺性来说服他们,或者使用社会激励因素,例如社交比较社会认同来说服他们。

举例

  • Opower使用的社交比较向用户展示他们会用了多少能耗并与该地区类似家庭相比较。该应用已经通过使用社交比较的方式使数百万的家庭减少了的用能。尽管人们通常不会考虑他们的用能,但这个信息影响力很大,迫使人们考虑他们他们自己的用能习惯并且想办法减少用能。

1 mmA0Nk2sRofIjPxPwfP5ZQ

  • Kickstarter以及其他众筹网站使用不同的方法来影响我们投资的决策。项目通常提供外在利益(例如,更早的使用产品)与内在利益(例如自豪地支持 意向你所关心的事业)。投资推荐通常用诸如社会认同(有多少人同样看好该项目)以及饥饿营销(限时限购)这样的行为科学技巧得到更多的支持。

1 GkhHvkztu_RSh2XgKRAHjQ

第三部:帮助实现(Facilitate Action)

在一个人已经做出行动的决定后,下一步就是帮助他们实现,使行动尽可能的容易、没有障碍。

1 EfbV0Ch-IbEM8W_ECiV_iA

技巧

  • 简化行动。将目标行动分解为一个个小的、可行的步骤。通过简化界面、将信息分块、或者逐级显示等减少用户的认知负担。识别并处理那些阻止人们采取行动的常见阻碍。
  • 引导体验。形成有助于行动的体验。常见的技巧包括攻略、标注或者预设默认
  • 帮助用户创建一个计划。鼓励人们设置目标并承诺行动。发送提醒并持续跟踪他们的进展。
  • 在正确的时间触发。定时触发很关键——确保在他们最容易激发、最容易采取行动的时候向人们触发。

举例

  • Brigade,一个鼓励人们针对新闻与政治问题讨论自己的观点的初创公司,最近制作了几个工具便于投票。就在选举日之前,该软件帮人们找到他们当地的投票点并基于用户对一些问题的回答为他们做出投票推荐。

1 xxdo7XkVgavM-apE4sy7pg

  • ZenPayroll Giving通过减少摩擦使慈善募捐变得简单。该软件允许员工直接从他们的工资中通过常规、自动取款来捐款。随后,在年末,捐款会被自动记录在员工W-2表格中。

1 C4o5K8llT2dsNelMf1zTvQ

第四步:保持行为(Sustain Behavior)

采取一次行动是不够的。为了使产品真正拥有长期的影响,我们的设计需要激励人们继续他们的行为并能随着时间的推移感受到进步。

1 YheVwTULg3jcRk7ovRBMZA

技巧

  • 庆祝进步。通过正面积极的反馈奖励人们,并随着时间的推移将这种进步展示出来。考虑用一个变化的激励进度表来增进用户与产品的关系,促使行为的改变。
  • 建立长期的关系。设计一种体验,这种体验是持久的,并随着我们对人们使用我们的产品的进一步了解而完善,而不是一次性的沟通。
  • 强调内在的动机。要改表长期的行为,内在的动机是最强的驱动力。研究表明,人们总能被那些给他们带来目的感、社交感、地位感、自我表达意识、统治感与自主感的体验所吸引。

举例

  • Nest每个月将过去一段时间用户的用能情况形成报告发送给用户。对于那些不会天天去调节温控器设置的人们来说,这些相关的图标提供了一种向用户展示Nest是如何帮助节省能耗与开销的机会。另外,用类似“树叶”与“荣誉”的徽章来使人们关注内在的地位感与竞争意识。

1 NOWu-geGDN18ULIYSJpQxw.png

  • Runkeeper和其他健身应用使用不同的技巧来帮助我们长期保持我们的行为。用户可以设置运动目标并跟踪他们的进展,这可以是个人的也可以是社交的一部分。个人最好成绩、排行榜以及正在进行的正面反馈帮助激发我们自我管理、社交联络以及保持状态的内在动力。

1 3E_z8LDh4m2yjux-uwnp-w

最后的思考

作为设计者,我们需要思考当人们使用我们的产品时所经历的一系列体验,理解是什么迫使他们开始在乎、采取行动、一直保持积极性于参与性。用行为的眼镜来看待我们的工作有助于了解当前工作在哪个阶段、哪些东西可以更好,最终改进我们的设计,减少产品快速被忽略或遗忘的风险。

我们希望这个框架能够对其他正在寻求如何将行为思考与其设计过程相结合的人带来帮助。如果你已经发现这个很有帮助或者有更好的改进补充,我们愿意聆听。

想要了解更多关于行为涉及的内容?

Opower设计团队已经给出了将行为科学融入设计过程的演讲与文章:

IxDA’ 15演讲:行为年龄

TEDx演讲:改变人们,而不是改变产品

文章:问的越少,得到的越多:限制用户行为的行为科学

文章:设计中的数字心理学

音乐是如何影响生产力的

原文作者:GREGORY CIOTTI | AUGUST 27, 2015

原文链接:http://www.helpscout.net/blog/music-productivity/

音乐被视为人类创造胜利之一。但是音乐本身能对人们创造产生什么帮助吗?

这是一个值得思考的问题,因为音乐已经不知不觉地成为现代日常办公场所的一部分了。正如 Sean Rose 注意到的那样,音乐有一种奇特的时间持续性;正如美术能够装饰空间一样,音乐能够修饰时间

随着我们用越来越多的时间投入工作,用计算机完成越来越多的任务,对于日复一日的工作来说,当你面对电脑屏幕时,音乐已经成为了一种不可或缺的“赶走无聊”方式。

为了更好的理解音乐与生产力,让我们来看一项研究。

音乐使重复的任务更快乐

音乐的有效性取决于一项工作有多“沉浸”。

研究表明,当工作定义得明确且具有一定的重复性时,音乐往往是有效的。

已经有一系列实验对在重复性工作下背景音乐的播放与工作效率开展了研究。实验结果强有力地表明了在生产过程中利用音乐能提升经济效益。

比如,流水线的装配工人在听到音乐后会明显变得快乐。

更多当代研究认为提高生产力的根源是美妙的音乐所带来的好的情绪,而不是音乐本身。

那些不太和谐、刺耳的音乐对生产力并没有什么积极的影响,而大调的旋律则通常会产生更好的效果:“当主体听到的背景音乐是大调或者是基调的时候会得到更高的生产率”

在充满噪音的工作场所,音乐是一种解脱

随着开放办公室的争论激烈地进行,有一点是明确的:一个吵杂的工作场所会使人停下手头的工作。

也许,正如一些公司认为的那样,一副耳机可能会使大家不容易分心:

Lesiuk博士的研究聚焦于音乐是如何影响工作成绩的。在一项有信息技术专家参与的研究中,她发现,与那些不听音乐工作的人相比,听着音乐工作的人完成任务更快、提出的想法更好,原因就在于音乐改善了他们的情绪。

我们再一次看到,情绪的改善才是主要原因。

尽管开放的空间能够促进员工之间的合作,对于一些需要专心工作的人们来说,周围的噪声可能变得无法忍受。如果他们没有其他地方可以避免噪音,譬如私人工作室,那么在头上戴一副耳机可能是最好的选择。

环境噪声是创造的最佳点

对于那些在创造过程中喜欢听音乐的人来说,环境音乐似乎能发挥到最佳状态。

研究人员已经展示了适当的噪音等级能使创新之泉不断涌现,但是这个等级很容易越过;较响的噪音使人很难专注。当人们沉浸工作时,低沉的吼叫与尖叫带来的只有坏处。

一项2015年的研究发现“大自然的声音”,例如海滩边海浪的声音,可以屏蔽周围环境噪声,改善主体的专注能力。

无论是否有意创造或者自然存在,柔和的背景噪声是你应该关注的。

歌词往往会使人分散注意力

对于低沉浸或者纯体力的工作来说,带有歌词的音乐能带来巨大的好处。但是对于那些精细的工作来说,歌词特别能够破坏人们的专注力。

研究表明“可被理解的”闲聊——谈话能容能够被清晰地听到与理解——能产生令人转移注意的环境。人们会转移注意力来弄清楚别人到底说了些什么,这就是为什么 在一个嘈杂的办公室里谈话被视最麻烦的因素。在一项研究中,48%的参与者指出可被理解的谈话是最能转移他们注意力的声音。

在听歌词的时候,尝试从事与语言相关的工作,比如写作,这就跟你在交谈的时候别人跟你说话一样,还弹着吉他。通常情况下,歌词是不可取的。

歌词可能不会对那些并不直接处理“语言组织”的工作有同样的效果。研究发现带歌词的音乐能对软件开发者的工作产出有很大的帮助。

熟悉的歌曲有助于专注

听一段你熟悉的音乐有助于你专注于一项工作。

原因就是新的音乐往往会令人惊喜;因为你不知道你所期望的是什么,你就会有意去关注音乐。

对于熟悉的音乐,你对它们有事先的了解。此时,就不会对它们如此关注。

尽管新音乐的“旅程”在很多方面都有好处,但如果你要用音乐完成任务那就选择那条熟悉的“路”(旋律)。

对于沉浸式工作:什么音乐能起作用?

尽管“你喜欢的音乐”应该作为首选,但是大多数人对音乐有很广泛的品味,所以使用某种仅仅用于工作的音乐并不是完全没有意义。

下面,我们将介绍一些被证实的风格,它们为什么能有效,以及在哪你能找到更多例子。

经典音乐(巴洛克风格)

为什么有效

没有歌词,并且往往被认为是最好的艺术形式,经典音乐是一个流行的选择。研究表明,巴洛克的旋律对生产力有可量化的影响。

然而,不是所有的古典音乐都是一样的。相比委婉的《致爱丽丝》,托卡塔与赋格曲在D小调中的急剧扭曲与转折就显得不很合适。

在哪可以听到

Reddit的帖子,I’m new to classical music, where should I begin?

维基百科的免费文件

Reddit的巴洛克音乐

Spotify上的古典音乐测试

Pandora的巴洛克站

举例

下面是两段很长的专辑,明显还有很多其他的。

电子音乐

为什么有效

环境电子音乐能不起眼地适应我们眼前的需要。尽管曲式重复,但却是一种不错的方式。

不像交响乐章的起起伏伏,有些厂商旨在营造“音景”(还记得The Office中的Gabe么),突出一些相互交织在一起的旋律。

乐曲的专注能帮助你专注,因为重复的旋律将不会破坏你的专注力。

在哪可以听到

Reddit的Chillmusic

Reddit的Futurebeats

Majestic Casual

你所需要的音乐

举例

两个来自Vanilla和Ambinate的例子

游戏音乐

为什么有效

游戏音乐的作曲者知道对很多场景来说理想的音乐是能够在不分散玩家注意力的情况下提高游戏体验。

一直以来,“最有助于提升专注力的是”《模拟城市》的游戏音乐,这显然已经是Reddit上一个很火的帖子了。Maxis所涉及的这段音乐很好听,但相当缓和以至于不会使玩家在经营城市的时候分心。

在哪可以听到

OverClocked Remix(流行主题的混音)

VGMusic.com

Reddit的游戏音乐GameMusic

举例

我从《上古卷轴5:天际》与《模拟城市5》抓取了两段示例。

 

“其他任何音乐”

为什么有效

任何足够柔和、不会转移注意力的音乐都可能成为工作播放列表中的一首,因人而异。

如果音乐没有在你工作的时候打扰到你,那就让其继续。

爵士、嘻哈、独立摇滚、蓝调以及其他任何音乐都可以,记住这些音乐是使你沉浸工作的“环境”。

在哪可以听到

Reddit的用来专注的音乐

编程音乐

Spotify

Pandora

举例

在我工作的时候,我真的很喜欢听老歌,因为他们通常旋律柔和。

 

没有音乐(环境噪声)

如果你已经厌倦了这些以及这些“新颖的配乐方法”,不用怕,有时候安静的声音最适合。

但是,对很多人来说,完全安静也是难以忍受的。有两个有用的工具能帮助你:

  • SimplyNoise——如果你的环境中有难以控制的响声(例如建筑装修声音),那播放一段低沉的白噪声可能会有所帮助。
  • RainyMood——就算室外是华氏90°、阳光明媚,它也会给你一种细雨绵绵的感觉。这个工具循环播放一段柔和的风雨;打开壁炉的视频,你会觉得很舒服。

你所创造的环境会影响你的行为。当要决定今天工作听什么的时候,你应该不断调整直到发现最完美的和谐。持续专注完成工作的能力是生产力的关键,所以在按下播放按钮之前先思考一下。

在Ubuntu14.04下安装MSP430-gcc

第一步:解压缩文件msp430-toolchain-linux-i386-2.1.tar.bz2,并将其放到/opt目录下。

tar jxvf msp430-toolchain-linux-i386-2.1.tar.bz2

sudo mv msp430-toolchain-linux-i386-2.1 /opt/msp430-toolchain/msp430-toolchain-linux-i386-2.1

第二步:修改环境变量

在~/.bashrc中的最后加上以下语句:

export PATH=/opt/msp430-toolchain/msp430-toolchain-linux-i386-2.1/bin:/opt/msp430-toolchain/msp430-toolchain-linux-i386-2.1/lib:/opt/msp430-toolchain/msp430-toolchain-linux-i386-2.1/include:$PATH

并且使其生效:

source ~/.bashrc

第三步:在/etc/ld.so.conf.d/目录下添加msp430-toolchain.conf文件,

sudo vim /etc/ld.so.conf.d/msp430-toolchain.conf

并在其中增加如下语句:

/opt/msp430-toolchain/msp430-toolchain-linux-i386-2.1/lib
/opt/msp430-toolchain/msp430-toolchain-linux-i386-2.1/libexec

保存退出,并且通过以下指令使其生效:

sudo ldconfig

 

此时,输入命令

msp430-gcc -v

会有版本返回:

gcc version 4.7.0 20120302 (mspgcc internal 20120716) (GCC)msp430-gcc 4.7.0(32位版本)压缩包下载地址:

http://pan.baidu.com/s/1o6vkWDc