欢迎光临
我们一直在努力

PrtScr,强大又不失趣味的 Windows 截屏工具

李 杰阅读(163)

今天介绍一个 Windows 端的截图工具,它朴素的名字叫 PrtScr。我对于效率工具的追求一直没有终结,比如截图工具。众所周知,即使不是用第三方截图应用,macOS 自带的截图工具也够用了。

然而,这在 Windows 系统属于重灾区,每次使用自带的截图工具都会感觉很差劲,也找不到替代工具(懒)。截图工具并不是一个特别日常的需要,但在需要时使用 Windows 原生就一次次增加我一点点心底的「戾气」。当然,很多人是在使用 QQ 截图,呃,finger crossed,怎么说呢,我的宗旨就是能不用国产软件就不用,这纯粹是个人喜好。

后来我发现了这款应用,这是一款每使用一次就心情愉快一次的截图应用,从使用体验到动画效果和音效,即使它是一款 08 年初登场的应用。

这是官网主页的界面,显示了这个开发团对的两个项目,另外一个是一个「燃」向的应用NAPALM,有兴趣的可以去看一下,我们主要就来看一下这款「萌妹」Logo 的 PrtScr。

Screenshot 2016-11-11 20.40.42.png

PrtScr

首先介绍一下官网的说明介绍:

Sure, there are loads of free screen capture tools, but this is not another cheesy, spreadsheet-looking one. This one offers directness, ease of use, and does it with style.

 

是的,有很多乱七八糟的截屏工具,但这绝对小清新!超凡脱俗!它,直接!易用!有自己独特的风格!

 

You may ask, what’s wrong with Microsoft’s own Snipping Tool? It’s great, but unfortunately restricted to the Windows Tablet PC Edition, and some versions of Vista. Also, Snipping Tool fails to capture overlay windows (those translucent windows mostly used by desktop gadgets).

 

你或许会问,Microsoft 自带的截屏工具怎么了。呵呵,挺好,不幸的是对于 Windows 平板电脑和「Vista」的版本有一些问题。而且无法捕捉重叠窗口(桌面小工具主要使用的半透明窗口)。

大家也看出来了,官网的介绍说明很有个性,像极了「中二」少年。接着,它对系统的要求也很有个性:

Windows XP/Vista/7 whatever isn’t by Apple.

 

支持 Window XP/Vista/7 哼,反正什么都行就是不支持 Apple。

这是一款「古老」到不行的软件,它在 2008 年 3 月 20 日上线,维护到 2009 年 5 月 13 日就不再更新。尽管如此,也丝毫不影响用使用的流畅度和逻辑性。

Features

首先介绍最喜欢的几个特点:

  • 自定义热键(Hot Key)/ 截图后工作流(After Capture)/ 图像格式和质量 (Target image)

设置界面如下:

PrtScr setting.jpg

在 Hot key 下你可以使用默认设置,也可以修改为自己习惯的热键。截图后也可以选择「直接保存至桌面」「编辑」或是「后台复制」等选项,甚至还能选择是否截「鼠标指针」选项。

随意确定边界

想知道为什么下面「轨迹」这幅图还有镂空部分吗?它已经「随意」到我开始研究它算法的地步了,这不是简单的拖拽轮廓的左侧或者右侧,是一个跟出发点形成的矢量围成的部分,这一部分将在本文最后讨论(如果还有兴趣的话)。

PrtScr 位移.jpg

圈点标记

有了截图,就会用到标记。然而值得注意的是,即使你标记的地方在截图范围以外,它保存下来的截图依然包括你的标记。

sensor of GT300KAI-0340-D.pdf - Adobe Acrobat Reader DC.jpg

自动识别当前文档名并命名该截图

对于我这种能少一步就愉快一点的人来说,就是良药。

Last but not the least:动画和声音效果

这儿我要声明一下,在我 14 年换 Windows 笔记本后就再也没用过 QQ 截图,当时换笔记本的原因也是只要启动 QQ 就死机,所以也许上述功能「臃肿」的 QQ 截图也能实现吧。但是像这样有「好点子」的「中二」软件,它的动画效果才是起初最吸引我的地方。

附上介绍视频,但仅限 Youtube ,请戳 PrtScr YouTuBe 视频不能看视频的同学,我也用 Live Photo 保存了 GIF 图:当截取图片后,它会「嗖」一下「飞」到屏幕角落,并且晃动着等待下一个操作。

相信我,你会一直玩这款软件。


「飞」

「晃动等待」

使用逻辑

下面介绍一下使用逻辑,分为四个层级:热键唤醒、任意选择需要的轮廓、松开鼠标完成截图、选择需要的方式发送截图或者保存截图。每个层级下也有好几个并列选项,例如保存截图可以直接拖拽桌面,可以后台复制,可以发送邮件,可以打印,当然不满意还可以取消。

  • Step 1:热键唤醒应用
  • Step 2:选择需要的轮廓
  • Step 3:松开鼠标截图
    • Step 3.1:左击鼠标确定截图
    • Step 3.2:右击鼠标圈点截图
    • Step 3.3:Ctrl+ 左击鼠标形成矩形框选择截图 所有截图选定后,会自动从屏幕中央「飞」向右上角。
  • Step 4:保存截图

PrtScr.jpg

在保存截图的最后一步,我们可以看上面示意图,显示截图后的选项有:

  • 拖拽桌面保存
  • 另存到目标地址
  • 邮件发送
  • 编辑
  • 打印
  • 后台复制
  • 取消

我的用法

在我之前的文章中有提到,在实验的时候会直接将数据或者需要讨论的地方上传到 Google Slides,很多时候需要将某一部分截图圈点后贴到 Google Slides。在使用了 PrtScr 之后更是事半功倍。

  • Step 1:截图
  • Step 2:圈点界面
  • Step 3:确认轮廓并截图
  • Step 4:设置界面中勾选「To clipboard」
  • Step 5:去 Google Slides 粘贴截图
  • All Done

相信有六种保存方式,大家都能找到合适自己的工作流。也可能是我对截图的要求不高,我在 Windows 上最一开始是用快捷键 Ps/Sr,再后来用系统自带截图工具。自带截图工具也就基本满足最低需求,而且这款软件有更多的定制化设置。除此之外还可以右击任务栏图标进行延迟截屏,等等特性等待大家慢慢摸索咯。

从截图轮廓线说起

在仔细把玩了 「Prt Scr」几周后,需要截屏的时候总忍不住多玩几次,画出曲线然后心里会跟着喊一句「There you go」,发现它截图的曲线和轨迹很有意思: 「在自由截图的情况下,它的截图范围是是首尾相连的直线与轮廓内侧所包围成的图形」,比如下图:


黑色阴影表示要截的图

实际截图

这就让我想起来物理量「位移」。位移的定义就是「位置的改变」,简单而言,它是矢量,像这样:

Distancedisplacement1-zh-hans.png

如果要计算该闭区间的微积分的话,还有高等数学中的「格林公式」,其中一部分定义是「边界曲线的正向」,而「格林公式」的物理意义是「沟通了沿闭曲线的积分与二重积分之间的联系」。也就是说,上述阴影的面积可以用「格林公式」计算出来。

因此,我推测它的算法可能跟轮廓内侧和起始和终点的位移矢量有关。希望给大家一个点,在有基本功的编程er 们面前,我就不班门弄斧了。

尾巴 + Bonus

在 iOS 使用的初期,我不断地尝试各种应用,截图的、P 图的、文字处理的等等等等,但渐渐的有了自己喜欢和习惯的软件后,配合自己的工作流,已经很效率的完成了一件件分解的工作。这时候,我已经没有精力和那种心情去尝试一款「更好」的工具了,心底也跟自己说,「行了,就这样吧,现状已经挺好的了」。

这时候我会恐惧,担心,好像这样是「拒绝新鲜事物」的开始。但你知道并不是花了时间就有相应的收获的,这也是我写下这篇文章的原因,我希望这是一款很实用的软件,也希望这款 Windows 上的软件,可以为大家的某个截图动作时增加一点点乐趣,嗯,那个词,如果没记错,应该是来自村上春树的「小确幸」。

最后,如果没法去 Youtube 看的同学,我也用 Evernote 分享一下它的 BGM,来自某个 FreeProject 背景音乐今天听依旧「燃」。

你可以在 PrtScr 官网 免费下载这款软件,让截图也变成一件好玩的事儿。

PHP 杂谈《重构-改善既有代码的设计》之一 重新组织你的函数

李 杰阅读(84)

思维导图
点击下图,可以看大图。

 介绍
我把我比较喜欢的和比较关注的地方写下来和大家分享。上次我写了篇《php 跟老大的对话》。还是有很多疑问,这书帮了我不少的忙。
如果你比较繁忙,或者懒得看文字,建议你直接看截图,也会有很大的收获的。你可以通过比较截图中的代码就能知道孰优孰劣了。
代码部分我为什么用图呢?因为我经常用手机看代码,博客园的代码在手机里乱七八糟的,还是看图比较舒服。
 专业术语
我们毕竟是用英文字母编码,所以用一些英语单词,更能显示出我们的专业性。以下的英文单词,你如果掌握了,与其他coder交流的时候会更直接,更专业。——臭显摆一下吧,呵呵。
“*”表示文中经常提到的
inline:内联
function:函数
*method:方法
finely grained:细粒度的
rename:重命名
query:查询
temp:临时(temporary)——一般指临时变量
*extract:提取——我个人更喜欢翻译成“提炼”
*duplicate:复制
split:剖解
variable:变量
factor:因素,因子
 重构原则
一、何谓重构?
     名词形式:对软件内部结构的一种调整,目的是在不改变软件之可察行为前提下,提高其可理解型性,降低其修改成本。
  动词形式:使用一系列重构准则,在不改变软件之可察行为前提下,调整其结构。
 二、为何重构 ?
  1、经常重构可以让代码维持该有的形态。
  2、让代码找到合适的位置。
  3、让软件更易理解。
  4、可以找到bug。
  5、提高我们的编码速度。

 三、重构的难题
  1、修改接口命名
    如果你的类中的方法是public,那么你在rename的时候,冒着很大的风险,你不知道到底有哪些模块在调用你的这个方法(我们经常的做法是在整个项目下做grep操作,然后逐一看各个模块的调用和逻辑)。——所以我们在编写类的时候不管是属性还是方法尽量做到private,避免接口开放。
  2、何时不该重构
    (1)重写所有代码,而且现有代码实在太混乱,重构还不如重写。
    (2)项目临近结束的时候,应该避免重构。我们可以把重构放到二期去解决。

 

 代码的坏味道
  一、Duplicate Code
  1、同一个类,两个方法含有相同表达式。
    解决方法:你可以Extract Method提炼重复代码,然后让这两个方法都调用这个Extract Method。
       2、两个类,有相似的方法。
     解决方法:(1)把两个类的方法提出来,共同构造一个父类。
             (2)把其中一个类的方法删除,调用另一个类的方法。
 二、Long Method
  1、短函数:代码阅读费点力气,因为我们必须经常转换上下文去看看子程序做了什么。但是让small method容易理解的真正关键在于一个好的名字。读者可以通过名字了解函数的作用,根本不必去看其中写了些什么。——早期的编程语言中,调用方法需要额外开销,这使得coder不愿意使用small method。但是现代的OO语言几乎已经完全免除了process内的额外开销(函数调用)。
  2、注释地方提炼信号:每当感觉需要以注释来说明点什么的时候,我们就把需要说明的东西写进一个独立函数中,并以其用途命名。可以对一组或甚至短短一行代码做这件事。——只要函数名称能够解释其用户,我们也该毫不犹豫地那么做。
“函数”理解为”做什么“或”如何做“
  3、条件式和循环常常也是提炼信号。
  4、《代码整洁之道》的一个例子。我们可以想想!

三、Large Class
  1、Class内数个属性变量有相同前缀或者字尾,可使用Extract Class。
  2、Class内并非大多数变量使用属性变量,可使用Extract Class。
  3、有太多代码,可Extract Class。
四、Long Parameter
  做成Introduce Parameter Object。——这个我不太赞同,因为我在使用别人方法的时候,我很少去看代码实践,更不要说去看里面都用到了对象的那些属性或者方法,取我想要的数据了。
五、Switch Statements
  1、少用switch语句。——问题在于duplication。添加新case的时候,你必须找到所有case并修改它们。
  2、用多态来替换它。做法:1.将switch进行Extract Method;2.MoveMethod把case里的实践代码放到多态性的class里。
六、 Comments
  试试用Extract Method,如果还不行,那你试试Rename Method。
当你感觉需要撰写注释,请先尝试重构,试着让所有注释变得多余。
  注释一般用于将来的打算,还可以用于你并无十足把握的区域(为什么做某事)。
 重新组织你的函数
  Long Method往往包含太多信息,这些信息又被错综复杂的逻辑掩盖,不易鉴别。
一、Extract Method
状况:我看见一个过长的函数或者需要一段注释才能让人理解用途的代码,那么将这段代码放进一个独立函数中,并让函数名称解释改函数的用途。

 

动机:

简短而有良好命名的函数:——finely grained

1、复用机会大。

2、函数读起来像读一系列comments。

3、函数覆写容易。

重点:函数长度关键在于函数名称和函数本体之间的语义距离。如果提炼动作可以强化代码的清晰度,那么就去做。

作法:

1、创建新函数,根据函数的意图命名——以它“做什么”命名,而不是以它“怎样做”命名。

=》 即使Extract Function 非常简单,例如只是消息或函数调用,只要新Function能够以更好方式昭示代码意图,你也应该提炼它。但如果你想不出更有意义的名称,就别动它。

2、将Extract的代码从Source Function 中Move到New Function中。

二、Inline Method

Method Body与Method Name一样清晰易懂的时候,请Inline Method。

 

三、Inline Temp

一个临时变量,只被一个简单表达式赋值一次,而且赋值完也只使用了一次。——请Inline Temp

 

四、Replace Temp with Query

如果一个Temp变量,保存一个表达式,将这个表达式Extract Method。——这就是所谓的查询式,query

 

动机:

1、局部变量会使代码难以提炼。

2、临时变量会驱使你写出更长的代码。如果改成query method,那么class下的method,都可以获得这份信息。——将编写出更清晰的代码。

3、Replace Temp with Query往往是你运用Extract Method之前必不可少的步骤。

作法:

1、找出只被赋值一次的临时变量。

=>  如果临时变量赋值超过一次,考虑使用Split Temporary Variable将它分割成多个变量。

2、对Temp Variable赋值的右侧部分,Extract到一个独立函数中。

=>  将Method声明为private,日后如果有其他class用的时候再放开它(public或protected)。

 

如果代码组织良好,那么你往往能发现更有效的优化方案。————如果性能真的很糟糕,那么放回去也很容易。
五、Introduce Explaining Variable
将复杂表达式中(或其中一部分)的结果放进一个临时变量,以此变量名称来解释表达式用途。

动机:
  表达式复杂而且难以阅读。在这种情况下,临时变量可以帮助你将表达式分解为比较容易管理的形式。
 六、Split Temporator Variable
 某个临时变量被赋值超过一次,它既不是循环变量,也不是集合变量。那么针对每次赋值,创造一个独立的,对应的临时变量。

 

 

动机:

1、如果临时变量承担多个责任,它就应该被替换为多个临时变量。每个变量只承担一个责任。

2、同一个临时变量承担两件不同的事情,会令review变得糊涂。

六、Remove Assignments To Parameters
如果你的代码对参数进行赋值,那么以一个临时变量取代该参数的位置

 

七、Replace Method with Method Object

大型函数对局部变量的使用无法采用Extract Method。那么将这个Method放进一个单独对象中,如此一来,让局部变量成为对象的filed,然后在同一个对象中将大型函数分解为数个小型Method。

 

动机:

1、将相对独立的代码从大型Method中Extract出来,就可以大大提高代码的可读性。

2、一个Method中,局部变量泛滥成灾,分解这个函数将会非常困难。

3、Replace Method with Method Object 会将所有局部变量变成对象的值域。然后对这个新对象进行Extract Method了。

八、Substitute Algorithm
如果你想把某个算法替换为另一个更清晰的算法,那么将Method Body替换为另一个算法。——就是直接修改原来的Method Body。
动机:随着对问题有了更多的了解,你发现一件事可以有更清晰的方式,就应该以较清晰的方式取代复杂方式。
 总结
这只是本书的一部分内容,我知道会有很多的coder应该有不同的观点,我自己也是,有的很赞同,有的我也是不太赞同的。所以要“则其善之而从之,其不善之而改之”。
欢迎大家发表下自己的看法。

PHP 杂谈《重构-改善既有代码的设计》之三 重新组织数据

李 杰阅读(100)

 思维导图

 介绍
这章主要针对数据的重构。
1、争论的声音——直接访问Field还是通过函数(Accessor)访问Field

 2.修改Array为Object:当你看到一个Array很像一个数据结构,你可以使用Replace Array with Object,把Array变成一个对象。——数据结构更清晰。

 专业术语

accessor:访问者,存储器——在本文翻译为“函数”

dumb:哑

domain class:用以处理业务逻辑

presentation class:用以处理”数据表现形式“

business logic:业务逻辑

unidirectional:单向的

bidirectional:双向的

collection:群集

 Self Encapsulate Field
状况:如果Client直接访问值域,会造成Client与值域之间的耦合关系逐渐变得笨拙,那么为这个值域建立取值/设置函数,并且只以这些函数来访问。

 

动机:

“间接访问变量”:支持更灵活的数据获取方式,如lazy Initialization(意思是只有用到值时,才对它进行初始化。)

“直接访问变量”:代码比较容易阅读,不需要停下来说:“啊,这只是个取值函数”。

选择:1、代码规范,按照团队中大多数人的做法去做。

2、个人比较喜欢“直接访问变量”,直到这种方式带来麻烦为止。

martin(作者)的例子:你想获取superclass中的field,却又想在subclass中将该field改为计算后的值,这就最该使用Self Encapsulate Field。

我自己的例子:我一般会把field设置成private,如果外部变量,需要用到此field的时候,我就会用Self Encapsulate Field。或者field的值有变化的时候,用Self Encapsulate Field。

 Replace Data Value with Object
 状况:如果你的某个基本类型的field,需要额外的数据和行为,那么将此field变成对象。

  动机:

开发初期,我们也许会使用基本数据类型表示简单的行为。例如:你可能会用一个字符串表示电话号码,但是随后可能会出现电话号码的“格式化“,”验证“,”抽取区号“之类的特殊行为。——这时候我们就需要一个新类。

 Replace Array with Object
状况:你有一个数组,数组中的元素各自代表不同的东西,那么以对象替换数组,对于数组中的每个元素,以一个值域表示之。

 动机:

数组常用于一组相似对象。如果数组中的元素不同,很难明白数组中的第一个元素是人名这样的约定。对象就不同了,可以通过值域名称和函数名称传达这样的信息。——这样无须死记,无须注释。

 Encapsulate Field
状况:如果你的class中有一个public值域,那么将它声明为pirvate,并提供相应的访问函数。

 

动机:

面向对象的原则之一就是封装(Encapsulate)或者称为”数据隐藏“。按照此原测,你绝不应该把数据声明为public。
  ——public 数据被看成是一种不好的做法。
  ——如果封装了,代码的修改就会比较简单,因为都集中在一个地方。
 一个函数除了访问函数(getting/setting)外,不提供其他行为,它终究只是一个dumb class(哑类)。这类class不能获得对象技术的优势。——解决哑类的方法是Move Method轻快的将它们移到新对象去。
 conclusion
我希望能把我理解的东西与大家分享,欢迎大家提出宝贵意见。

PHP 杂谈《重构-改善既有代码的设计》之二 对象之间搬移特性

李 杰阅读(94)

思维导图

 

索引:

Ø Move Method(搬移函数)
Ø Move Field (搬移值域)
Ø Extract Class (提炼类)
Ø Inline Class (将类内联化,就是把当前的类合并到其他类中)
Ø Hide Delegate (隐藏委托关系)
Ø Remove Middle Man ( 移除中间人)
Ø Introduce Foreign Method (引入外加函数)
Ø Introduce Local Extension (引入本地扩展)
 介绍
 专业术语
delegate:委托
encapsulate:封装
introduce:引入
wrapper:覆盖
 前言
”决定把责任放在哪里“——运用重构改变原先的设计。

解释:

1、Class承担过多而臃肿不堪——Extract Class将一部分责任分离出去。

2、Class没有承担足够多的责任,不再有单独存在的理由——Inline Class将它融入另一个Class。

3、Class使用另一个Class——Hide Delegate隐藏关系。

4、承接(3),如果Client通过Middle Man 调用很多的Delegate Class的函数(这里只是简单调用,只做跳转,而Middle Man没有做太多的业务逻辑,如10个Delegate Class中的Method对应10个Middle Man的Method)——Remove Middle Man,直接使用Delegate Class,可以部分使用Delegate Method。

 

 Move Method
如果一个类中的方法与另一个类有很多的交流,那么我们就在另一个类中建立一个有类似功能的新函数,将旧函数变成一个单纯的Delegating Method, 或是将旧函数移除。

 

类图:

 

动机:

1、如果一个类与另一个类有高度耦合,我就会Move Method。——class更简单,更干净利落的实现系统交付的任务。

2、移动一些值域,就要检查是否使用另一个类的次数必使用所驻对象的次数还多。

 Move Field
状况:你的class中的field被另一个class更多的用到。那么在另一个class里建立new field,修改旧的field。

 Extract Class
状况:一个类做了两个类做的事,那么建立一个新Class,将相关的Field和Method从旧Class移到新Class。

 

 Inline Class
状况:你的某个Class没有做太多事情(没有承担足够责任),那么将Class的所有特性搬移到另一个Class中,然后移除原Class。
动机:Inline Class与Extract Class相反。——把Extract Class例子反过去,因为PhoneNumber只用作读取code和number。
 Hide Delegate
状况:客户直接调用Server Object的Delegate Class的Method,那么在Server端建立客户所需的函数Method,用以隐藏委托关系。
 学过对象技术的人都知道,虽然php允许你将field声明为public,但你还应该隐藏field(private)。随着经验日渐丰富,有更多值得封装的东西。
看下面一个例子:

 $person->getDepartment()->getManager()明显揭露了,要想找到Xiaocai的领导,必须要经过department,所以我们要做的事隐藏department。——可以减少耦合性。

 

 Remove Middle Man
状况:如果某个Class做了过多的Simple Delegate,那么我们就直接调用Delegate Class。
动机:在Hide Delegate中的例子里当Department有更多新方法的时候,我们为了Hide Delegate,就要必须在Person里添加相应的方法做Delegate之用。这时候的Person完全变成了一个Middle Man,此时我们就应该直接调用Delegate Class——Department。
 重构的意义就在于:你永远不必说对不起,只要你把出问题的地方修补好就行了。
 

 

 Introduce Foreign Method
状况:有一个类Client需要使用的类PreviousEnd中一个额外函数,但你无法修改这个类PreviousEnd,那么你就在Client中建立一个函数,并以一个PreviousEnd实体做为参数。

 

 Introduce Local Extention
状况:你的Class需要一些额外函数,但你不能修改当前的类,那么建立一个新Class,使它包含这些函数。使用Subclass 或 Wrapper。——这个一般用于你无法修改源码的情况下使用。
 拿上面Introduce Foreign Method例子来说

使用Subclass方法

或使用Wrapper

 

 总结
需要注意一下,“Extract Class”和“Inline Class”,”Hide Delegate“和”Remove Middle Man”,都是相反的过程,具体理解,可以看前言中的那张流程图。
“Hide Delegate”我们常用于使用少量的”Delegate Method“的时候,而”Remove Middle Man“,用于调用很多”Delegate Method“的时候,我们可以直接使用Delegate Class,进行调用,而有的Delegate Method我们视情况保留一部分。
“Extract Class”和“Inline Class”,”Extract Class”经常用于承担那过多责任而变得臃肿不堪的Class中,而“Inline Class”经常用于当前的这个类”太不负责的“时候使用。——我个人是宁愿“Extract Class”,也不愿“Inline Class”。

微信公众号运营那些事 16条运营技巧要牢记

shensao阅读(97)

微信公众号的体量已经超过2000万个,但是现在公众号的阅读量和运营问题的难度在持续加大,有些只能落寞离开这个圈子,其实想要让自己的公众号运营好其实方法有多种,掌握其中一种有利于自己的就是最好的。

第一多和同行业的人交流,运营微信公众号的肯定会有非常多的各种小圈子,多在这些小圈子里混混,编辑经验、互动经验、维护经验都可以得到很好的交流。

第二,微信认证是保证品牌不被乱用的良好方法,同时认证之后还能获得更多的开放接口,还能获得某些特权,若不小心被别人抢注了,以后会比较麻烦。

第三,很多微信公众号运营新手,喜欢将自己的微信公众号到处推送,希望引起别人的关注,这种做法既降低了自己微信公众号的逼格,又会给别人造成厌烦心理,且效果还不好,微信公众号诞生的初衷就是由别人主动去关注,而非推送,微信公众号的用户,讲究的就是自我、独立,我需要的,我想关注的。

第四,推送是比较讲究技巧的,很多人都认为要有明确的时间点推送,选择大家都空闲的时间当然重要,不过也没必要非得每天在某个特定的时间段里面推送,别高估粉丝的忠诚度。另外,也没必要为了推送而推送,不少企业微信公众号都是为了推送而推送,强推用户也不一定会看。

第五,粉丝质量比粉丝数量重要,很多人都追求绝对的粉丝基数,可现在微信公众号那么多,就算粉丝基数大有什么用呢?真正讲究的是粉丝质量,比如“超先声”、“郝闻郝看”这些号,主要关注用户都是科技行业从业者,媒体人、记者、公关、互联网行业从业者,这些用户的质量,肯定要比心灵鸡汤里面用户的质量要高的多。

第六,微信公众号卖货并不是一条好路子,不要轻易去尝试,一旦走上卖货的道路,粉丝们很可能就离你而去,毕竟用户真正要购买产品的话,自己会有自己的购买渠道,并不需要微信公众号来推荐。

第七,微信公众号的互动也非常重要,很多人都只知道天天推送、不和用户互动,别人的留言,别人的评论,都是隔了好几天才去回复,用户内心的疑问得不到解决,肯定就会放弃订阅这个账号了。用户与账号之间的信任度,与互动度相关性很强,千万不能忽视。

第八,微信公众号卖货并不是一条好路子,不要轻易去尝试,一旦走上卖货的道路,粉丝们很可能就离你而去,毕竟用户真正要购买产品的话,自己会有自己的购买渠道,并不需要微信公众号来推荐。

第九,重视渠道的力量,可以和一些第三方进行合作,通过第三方的帮助来获取更多粉丝,渠道如此重要的今天,谁都不能忽视它的存在,既然微信公众号是封闭的,依靠外部的推荐,自然是一个好方法。

第十,可以尝试做一些专题/合集,将这些专题整理出来,放在一些电子书平台上,这些合集的内容要比单篇的内容更有可读性。

第十一,多平台多维度也很重要,微信公众号是一个封闭的环境,所有内容都只是在微信公众号内部流转,相对于全网来说,微信公众号还差的太远,多维度多平台能够保证内容扩散最大化,将内容的影响力扩大到最。互联网上,内容本身是不值钱的,千万别把内容给捂死,越捂越难做出来。另外,互联网变化的速度如此之快,指不定微信公众号以后会变成什么样子,多做一首准备还是有好处的。

第十二,原创是根本,互联网向来就喜好原创的内容,搜索引擎如此,微信公众号同样如此,尽管每个微信公众号之间是封闭的,也有不少草根大号擅长洗互联网的内容,但原创的定位会让用户从最初就喜欢上你,而不是一开始就觉得这个号很low。

第十三,多看微信公众平台的相关规则,微信公众平台每段时间都会推出相关规则的推送,有些人看都不看,就自己瞎鼓捣,这样肯定容易出问题的,微信公众平台才是最终的“审判者”。

第十四,每一次推送,都要严肃认真对待,不能仅仅是为了领导完成的任务,为了完成KPI,这种推送想必也不会好到哪里去,要认真、走心,不生搬硬套。

第十五,坚持很重要。很多人做了半年几个月就放弃了,认为微信公众号不值得做,或者不更新了,这种人大有人在,真正要想做的好,就必须要坚持下去,“郭静的互联网圈”、“超先声”、“郝闻郝看”这些号都做了三年以上。

第十六,不要被某些标题党给忽悠了,什么三天十万粉丝,一个月百万粉丝这类,看多了只会误入歧途,微信公众号还是将就循序渐进、脚踏实地的,粉丝来的快,去的也快,只有脚踏实地慢慢做起来的粉丝,才是自己的拥簇者。

高效工作—快捷键整理

李 杰阅读(131)

写在前面


快捷键是一种可以非常有效的提高工作效率的方法,本篇整理了一下自己平时经常使用的快捷键(略过了非常基础的,例如Ctrl+C|V|Y|Z),持续更新,欢迎补充。

Windows系统


Win+T 轮换任务栏

Win+向上键/向下键 最大化/还原

Win+向左键/向右键 将窗口最大化到屏幕的左侧/右侧

Win+数字键 启动锁定到任务栏中的由该数字所表示位置处的程序,如果该程序已在运行,则切换到该程序

Win+Q 搜索应用

Alt+Space 呼出窗口控制的菜单

Alt+加下划线的字母 执行与该字母匹配的命令(或选择选项)

Alt+F4 关闭应用程序

Ctrl+W 关闭当前窗口

Ctrl+Tab 在选项卡上向前移动

Ctrl+Shift+Tab 在选项卡上向后移动

Alt+向左键 查看上一个文件夹

Alt+向右键 查看下一个文件夹

Alt+向上键 查看父文件夹

Alt+D 选择地址栏

Alt+Enter 打开所选项目的“属性”对话框

Ctrl+向右键 将光标移动到下一个字词的起始处

Ctrl+向左键 将光标移动到上一个字词的起始处

Chrome


Ctrl+Shift+T 恢复刚关闭的网页

Ctrl+Shift+O 快速打开书签管理器

Ctrl+数字 打开对应的标签

Ctrl+9 打开最后的那个标签

Ctrl+Tab 切换到下一个标签

Ctrl+Shift+Tab 切换到上一个标签

Ctrl+R 重新加载当前页

Ctrl+D 加入书签

Ctrl+T 新建标签

Ctrl+H 历史纪录

Ctrl+N 新窗口

Ctrl+J 下载列表

推荐在Chrome下安装Vimium插件,可以更为方便的使用键盘操作浏览器,安装后键入?可查看快捷键操作。

Sublime Text


Ctrl+Shift+P 打开命令面板

Ctrl+P 搜索项目中的文件

Ctrl+G 调到某一行

Ctrl+P 快速切换到想找的文件,@函数

Ctrl+K+B 开关侧栏

Ctrl+X 删除当前行

Alt+F3 选择所有相同的词

Ctrl+L 选择行,重复可依次增加选择下一行

Ctrl+D 选择字

Ctrl+Shift+上下键 可替换行

Ctrl+Enter 插入下一行

Ctrl+Shift+Enter 插入前一行

Ctrl+Shift+向上键 网上移动一行

Ctrl+Shift+向下键 网下移动一行

Ctrl+PgUp 換到上一個分页

Ctrl+PgDown 換到下一個分页

Ctrl+Tab 切換上一個分页

Alt+数字 切換到第数字个分页

Ctrl+K+U 转换为大写

Ctrl+K+L 转换为小写

Ctrl+Shift+D 复制行

Ctrl+\ 注释与解注释

Ctrl+Shift+\ 区域注释

Ctrl+] 向内缩排(类似Tab

Ctrl+[ 向外缩排(类似Shift+Tab

Ctrl+Shift+[ 选中代码,按下快捷键,折叠代码

Ctrl+Shift+] 选中代码,按下快捷键,展开代码

Ctrl+K+0 展开所有折叠代码

Ctrl+Alt+向上键 向上添加多行光标,可同时编辑多行

Ctrl+Alt+向下键 向下添加多行光标,可同时编辑多行

Ctrl+F2 设置书签

Ctrl+P 打开搜索框:1、输入当前项目中的文件名,快速搜索文件,2、输入@和关键字,查找文件中函数名,3、输入:和数字,跳转到文件中该行代码,4、输入#和关键字,查找变量名

Alt+Shift+数字 窗口分屏,恢复默认1屏(非小键盘的数字)

Ctrl+O 侧边栏获得焦点

Ctrl+` 呼出Python控制台

F11 全屏模式

Visual Studio


F12 跟进到函数或变量的定义

Alt+F12 Peak函数或变量的定义

Ctrl+K,Ctrl+C 注释

Ctrl+K,Ctrl+U 取消注释

Ctrl+K,Ctrl+K 创建或取消书签

Ctrl+K,Ctrl+N 到下一个书签

Ctrl+K,Ctrl+P 到上一个书签

Ctrl+M,Ctrl+M 展开或折叠代码

Vim


Oculus 开了个年度发布会,认为社交是 VR 的未来

李 杰阅读(105)

正如马克 · 扎克伯格出现在眼眼老板连接 3 刚刚举行了年度开发者大会。

作为目前只有两个批量生产的高性能虚拟现实 (VR) 设备,HTC 万岁和眼裂谷采取不同的路线。过去,眼已坚持要坐在一张桌子玩在前面,但在昨天的新闻发布会上,眼裂谷终于在 7 月,额外的两个外围设备的价格和交货时间交货承诺落实︰ 动作捕捉处理眼触摸为 199 美元,12 月 6 日航运和房间传感器必须添加以实现经验成本 79 美元。

这似乎是一种妥协︰ 当在 7 月推出,599 美元价格眼裂谷声称自己比 HTC 万岁 799 美元更有竞争力。但现在,与两个外设价格已经超过了美国 $ 799,并将取得上 HTC 万岁的功能。

扎克伯格的眼主要是平台和其他两件事︰ 体验和内容。其中,解决方案是 Facebook 商业网络。

Oculus 开了个年度发布会,认为社交是 VR 的未来

扎克伯格显示虚拟现实社会

图片/格伦 · 查普曼

Oculus 开了个年度发布会,认为社交是 VR 的未来

扎克伯格展示虚拟现实社会经验。他把放在眼裂谷,捡起眼触摸屏幕出现在一个虚拟的房间里,他和两位同事的化身互动正坐在这个房间里。室的场景之后,几个转换,三名男子去海、 Facebook 办事处和火星,最后给他的妻子普里西拉视频聊天对虚拟场景中的 zhakebuge。

Zhakebuge 说︰ 100 万人,世界各地每月现在使用 VR,在这个虚拟的社会网络演示文稿中也带来了四个核心社会软件 Facebook Facebook 和 Instagram,和 WhatsApp 和 FB 信使。总体而言,Facebook 在棚下的认为社交网络是 VR 的核心应用之一。

但扎克伯格说 100 万的数字,并没有说什么 VR 设备︰ 目前 HTC 万岁和眼裂谷出货,大部分的 100 万可能有类似谷歌纸板手机加纸板眼镜的组合。但裂谷和万岁的价格太高,是和纸板眼镜,包括三星高端齿轮,VR 纸质眼镜是性能太差。眼上 VR 经验解决方案是,制造中的中间产物。

Oculus 开了个年度发布会,认为社交是 VR 的未来

天新 VR 设备原型/视频截图

眼的视频显示的原型。这种眼裂谷和原型眼镜看起来像,但不是被拖到计算机电缆。看到这幅画看起来略好于 VR 电话纸板眼镜。扎克伯格说,Facebook 将拿出更多的钱做更多,由三个高、 中、 低产品混合额外 10 亿在未来的 10 到 15 年内 VR 用户。

但作为一个人买了万岁或裂谷的用户,他们更担心约可能不为下一个 10 年,但因为没什么可玩的买回”高端”VR 设备多久也会吃灰?现在,即使有传说如约翰 · 卡马克,首席技术官,但作为德国军队总部的 3D 虚拟现实设备和革命性的产品,如雷神之锤,眼是仍然没有得到答复。

美国运营商看上无人机,要有专门的 4G 套餐了

李 杰阅读(140)

为了有一个无人值守的机器连接到互联网,美国电信运营商 Verizon 已决定到专门为它推出包数据流。

威瑞森,此服务可以访问网络中飞行的无人机,视频、 图片和其他上传感器收集的信息在智能设备上回到了地面。据悉,这划分为月度数据计划成本 $ 25 1 GB 和 $ 80 10 GB 两。

Verizon 公司首席执行官洛厄尔 McAdam 物联网已被视为该公司明年的增长。未来的无人机将成为重要的设备,用于收集用户数据。它可以应用于许多领域,如用于石油管道检测被用于能源产业,在农业试验农场领域或等待在森林防火工作。

但绝大多数的商业无人机飞行必须在经营者的视野中,和在没有获得特殊批准的不高于 400 英尺的高度。

无人驾驶的飞行器访问 4g 网络并非只能够远程操作的无人机,也带领的政策制定者应该考虑放宽对无人机的限制。

看到这个潜在的市场更多比 Verizon 无人驾驶的飞行器网络作为一种载体。在 9 月初,美国是 at&t 与高通合作,另一家电讯公司,他们也被测试无人驾驶飞行器与移动 4g 网络服务。

此外,运营商还打算作出使用无人机在其网络建设。

他们使用无人机作为一个单元格的网站,当发生紧急情况,如由于暴风雨造成的网络服务中断他们可以使用无人驾驶飞机来弥补网络覆盖方面的差距。目前在这样紧急的情况下,威瑞森用于卡车和拖车提供临时细胞网站,和板凳将来会更比一架无人驾驶飞机。

类似的尝试,美国的两个 t-移动运营商和美国电话电报公司正在做。在去年 3 月,t 手机将开始应用于无人机在地面天线设备检查。上个月月底,AT & T 测试与无人机健身房中用来提高场馆内的无线信号覆盖。

给新手机打广告,Google 在电视上花的钱比苹果还多

李 杰阅读(67)

北京时间 10 月 5 日,谷歌发布了传闻已久的像素手机。

谷歌发布两天才能促进他们自己的手机,在已投入 $ 320 万对电视广告,广告的成本几乎相同的时间,三星和苹果和电视广告。

虽然谷歌是世界知名品牌,其 Android 操作系统正在利用大多数的 Android 智能手机,包括三星。

但在消费者市场中,其品牌不这么受欢迎之前它不是以消费者为导向的广告。

那很好高铬电视棒是谷歌为消费市场,但规模试一试,这是完全不同的销售。

虽然谷歌并没有透露多少钱会花在促进像素,然而,产品管理马里奥奎罗斯的谷歌副总裁说,在采访路透通讯社:”这是一个非常重要的销售活动。

下一步,谷歌可能会继续投资数百万美元的广告和其竞争对手三星和苹果抢占智能手机市场。

 

谷歌可能买美国还拥有 100 万人观看超级碗广告,这将花费数以百万计的美元。

此外,谷歌还来到美国与四个主要运营商,之一威瑞森做推广。作为专属产品的像素移动电话运营商 Verizon 在电视、 数字营销和社会媒体推广。

像素广告,谷歌会把它从 2011 年到硬件业务投入市场营销的第一次。设计你自己的硬件、 专有软件和运营商,转到线下零售渠道,广告……谷歌硬件业务是严重的。

 

需要在网页上摘录词句?推荐这款 Chrome 工具

李 杰阅读(106)

  • 糖果是 Chrome 浏览器扩展,主要用于在 Web 页中,标记单词的集合的一个工具可以找到在官方网站下载。
  • 只要选择 Web 页上的文本,单击收藏夹按钮暂停。
  • 是否它是找到网络上的信息和想引用一句话︰ 微博所以合格裁剪工具。

我们建议它多次在 iPhone 剪贴板工具针,体积小、 复制和粘贴,也可以用来搜索、 捕获、 等等,在 Chrome 浏览器也有很好的剪贴板工具上糖果。

用法很简单,你打开网页后,选择单词的集合,由悬浮按钮点集合。提取物糖果的工具集合可以下更多的糖果有故事情节,这是收藏夹列表。

暂停后单击绿色一侧,可以打电话给糖果按钮功能小组,包括搜索所有集合的摘录、 社会共享,等等。

需要在网页上摘录词句?推荐这款 Chrome 工具

选中词句后,点按词句附近一个小的白色悬浮按钮
需要在网页上摘录词句?推荐这款 Chrome 工具

可以方便复制粘贴,或者直接分享到社交网站

除了集合的简单事情,份额、 阅读,搜索,糖果,也花了大量精力来创建函数。例如,在摘录单词卡,用户可以修改原始页面名称和添加您自己的注释。

对于那些经常需要收集信息,收集用户信息的 Web 页,糖果是一个不错的选择,不必反复切换 Chrome 浏览器和协作工具。直接复制和粘贴的方法,或者你可以保留原始链接的源文件。

糖果背后的团队最近也正在移动,你可以申请内测体验。