ASCIIFlow – 好玩的画图工具

能够放在代码中的时序图,自然是极好的。

// +----------+                     +-------------+
// |          |                     |             |
// |          |     Code Here       |             |
// |          +--------------------->             |
// |          |                     |             |
// |          |                     |             |
// |          |     XXXXXX          |             |
// |          |  XXXX     XXX       |             |
// |          | XX          XXX     |             |
// |          |XX             XXX   |             |
// |          |X                XX  |             |
// |          <---------------------+             |
// |          |                     |             |
// |          |                     |             |
// |          |         +           |             |
// |          |         |           |             |
// |          |   +------------+    |             |
// |          |         |           |             |
// |          +--------------------->             |
// |          |         |           |             |
// |          |         |           |             |
// +----------+         |           +-------------+
//                      ++
//

 

网站地址:http://asciiflow.com

在进行开发和流程讲解时,时序图是必不可少的组件,良好的时序图可以让读者能够以最快的速度读懂你的业务流程。

虽然,我们可以借助 Visio 和 Omni Graffle 等工具来绘制一个好看的流程图,但是图片只能够独立的存放在代码之外,所以在使用时,读者需要一边看图片,一边看代码,如果有多个时序图来说明产品的流程,找寻起来就更加麻烦。

ASCIIFlow 会生成如上所示的时序图,这样的好处是你可以将你的时序图放在你的代码中,只需要借助注释将其包含起来,即可以没有任何影响的插入流程。这时,读者在读代码前会自然而然的看到这里的时序图,也就可以更好的去了解下方代码的含义了。

再谈在线教育

这次从课程设计、课后交流、结果反馈的层面来聊聊在线教育。

在之前的文章中,我谈到了为什么做课程需要设计大纲,今天想再聊一聊在线教育的其他方面。

[title]好的课程设计可以起到什么样的作用[/title]

在上一篇文章,我提到做课程时,需要安排好课程的每一个部分,做好大纲。这个大纲是为了让学生能够对课程本身产生一种架构感,能够及时的感知课程的体系,明确自己在整个体系中的哪个部分。

我们需要借助种种资料、介绍,让学生建立一个体系的框架,再通过后续的课程,将框架填充完全。这种模式会让学生学的更好,学的更懂。

目前国内的在线教育主要有两种:一种是拿到了投资的大型在线教育机构,比如极客学院、慕课网等,这些机构由于本身有较大的盈利压力,且需要持久的做下去,在内容的把控上需要投入更多的时间。另一类是各种厂商业务建设的教育服务,比如 LeanCloud 的视频公开课,由于课程本身服务于产品,所以缺失了整体的规划,知识点琐碎而零散。

对于在线教育机构来说,课程是他们的核心产品,所以会花费人力物力对每一个课程进行精心打磨。而对于厂商业务来说,课程只是一个附属产品,所以就会偏向让这部分内容自己野蛮成长。随着人们的学习能力不断提高、学习欲望不断加深,未来有设计的课程会更加的受到大家的欢迎。

小步快跑并不适合课程设计

[title]好的课后交流可以起到什么样的作用[/title]

在线教育由于不受时间和空间的限制,使老师和学生的交流被无限的弱化。师生之间的联系弱化导致了学生在学习时出现了很多问题,但是无从获得反馈。虽然很多在线课程机构都提供了对应的问答系统,但是由于时效性和交流的形式朴素,使得效果并不好,老师并不明白学生的确实情况。不过,这个本来也是传统教育的弊端,线下的交流受到地域和空间的限制。不过,随着多媒体技术的不断提升,可以考虑使用多媒体技术,录制视频。面部的表情展现会比冷清的文字展示更多的信息,可以帮助老师更好的明确结果

[title]好的结果反馈可以起到什么样的作用[/title]

在线教育还有一点就是各种状态的反馈不是实时的。不过这个是在线教育的优势,让学习者不受时空限制。那么我们如何来解决这个问题呢?

一个好的课程课后反馈群会是不错的选择。学生可以通过群里快速联系到老师,了解自己的学习情况,老师也可以根据收集到的数据,给出一定的规划。不过总体来说,还要看课程的类型,并不是每个课程都适合的。

核心思想来源:https://www.zhihu.com/question/20964415/answer/201352092

大师与匠人

现代工业将任何工作都拆分成了流水线作业,再复杂的工作,也不过是不同的流程罢了。

大学要培养大师

大学的培养的目标是希望学生最终能够成为一个科研工作者或者是具备科研实力的工程师。大师需要掌握非常多的技能,来应对繁重的科研任务。

企业需要匠人

企业并不需要那么多的大师,大部分的企业都只需要匠人。匠人不需要很多的技能。匠人只需要在某一个方面能够达到精通,便能够找到一个不错的工作。

 

对于大学生们来说,你们希望自己成为哪一种人?

独辟蹊径的“蜗牛读书”

每天送你一个小时来读书, 你愿意么?

今天来聊聊网易的一个新的读书产品 — “蜗牛阅读”。

这并不是网易的第一款阅读产品,在之前,网易就做过一款阅读产品“网易云阅读”,不过网易云阅读却远没有他的孪生兄弟“网易云音乐”那么流行。

最近发现,网易推出其新的阅读产品,也就是蜗牛阅读。

对于蜗牛阅读,其他的不谈,我只想谈谈他的模式。

我们在移动端的阅读软件有很多种,但是支付模式只有两种,一种是如 Amazon Kindle、微信阅读的电子书软件,主要靠卖电子书的拷贝来赚取利润。书每多卖一份,就能多赚一份钱;另一种就是 蜗牛阅读,主要靠卖给用户时间来赚取利润。

蜗牛阅读的 Slogan 是“每天免费读书一小时”,这和蜗牛读书的付费模式相关。在蜗牛阅读中,书籍本身是免费的,无论你选择哪一本书看,都无需再支付书本的费用,你只需要根据你看书的时长来支付阅读时长费用,而且价格也不高,看一天书也只需要一块钱。除了按天的计费以外,蜗牛阅读每天还会送你一个小时的免费阅读时长,这个也就是其 Slogan 中免费读书一小时的含义。

这种模式很新,但是从个人的角度来说,确实是非常划算的。因为我们大部分时候其实买了书未必会读,而蜗牛阅读中,书本是免费的,只有当你阅读时才会计费,这会让很多人尝试去读完这一个小时,因为一个小时并不长。不过,也要看到其反面,我们很多时候更愿意购买纸质书籍,所追求的除了读书的感觉,还有读书的仪式感。这种仪式感会让我们能够坚持下去继续读书。

被忽视的蓝色巨人 IBM

其实互联网上有很多资源都是被雪藏起来,只为少数人所知道。而这部分的内容,往往都是非常有价值的。

今天聊的话题依旧和技术有关。做技术的,往往都很擅长使用搜索引擎来去查询资讯,借助搜索到的资料来完成自己的工作,所以又有了 “面向 Google 编程” 和 “面向 StackOverFlow 编程”。不过,搜索引擎不一定就能够找到所有有价值的内容。我们且不说暗网(Dark Web),单纯是我们平时可以浏览到的网页,都未必每个都能被搜索到。

[title]为什么你搜索不到有价值的内容[/title]

搜索引擎的工作机理是基于蜘蛛机器人(Spider)的,蜘蛛机器人顺着你网站上一个又一个的链接,访问到一个又一个的页面,并将内容保存在自己的服务器上,进行分词处理,以便于你的搜索查询。但是,蜘蛛的工作也是依赖于网站的配置文件的,如果网站主在配置文件中写明了,那蜘蛛就不再爬取相关的内容。比如,下图中的淘宝网便是如此。

淘宝网当然有非常多的页面,但是在搜索引擎中,你却搜索不到任何关于商品的页面,这便是淘宝网所使用的 robots.txt 定义的。

通过 Disallow ,淘宝网保护了自己网站下的详情页面,使得商户们只能针对淘宝自家的搜索工具来进行优化,并购买付费的推广,

[title]IBM 被隐藏起来的东西[/title]

IBM 作为知名的技术解决方案提供商,自然是有其自己的技术交流社区,那就是 IBM developerWorks

在 developWorks 社区内沉淀了大量的优秀的文章,涵盖了语言、云计算、Linux、IOT、安全、移动开发等多个领域。对于大部分开发者来说,只要 IBM 曾经有人研究过这个方面,那么你就有可能在这里找到你所想要的东西。而且,由于这些文章大多出自 IBM 内部团队,所以质量也普遍较高。当你无法通过搜索引擎找到你想要的东西时,不妨来这里看看。

 

当然,互联网上隐藏的东西并不少,同样的网站还有 Intel 的 DeveloperZone ,不妨去看看。

当我说“透过现象看本质”时,我在说什么?

透过现象看本质,我们来看看这篇文章到底能够分析多么深刻的内容?

我除了日常的工作学习以外,偶尔也会写一些商业性质的稿子。

在写稿子时,我常常使用一句话:透过现象看本质

今天来聊一聊我为什么要说这句话。

我在写文章时有个习惯,便是从事实写起。这个习惯是自小写命题作文留下来的。除了从事实写起,小时候作文课留给我的也只剩下三段论了,好在现在的我明白三段论只是形式,也不拘泥于只写三段。唯独从事实写起这个习惯保留了下来。

在拿到一个约稿信息时,我都会先寻找和这个主题相关、目前还有一定热度的事件来进行描述。通过一件事情来引起读者的兴趣。随着事件的铺开,我会在事件的叙述中埋下几个炸弹:关键冲突点、容易引起人们共情心里的话。在叙述的最后,将这几个炸弹点出来,让读者明白这里是有问题的。

当问题被提出来之后,接下来就是将问题给解决掉。有问题自然有对策,这个时候,择选官方针对某个事件的处理意见,将其放在句首以加深读者的印象。往往,这些处理意见会按照重要程度来依次排列,以达到递进的感受。提出了解决方案后,接下来就是我几乎每次都要写的“透过现象看本质”

我在写这句话时,到底想要实现什么样的效果?

这个问题其实很有意思,一方面,这个是我自己的习惯用语,我习惯使用这句话来进行内容的过渡。从关注事件的本身,转移到事件背后的问题;另一方面,其实是我的一些小的技巧:通过这句话,为读者营造了一种感觉“接下来我们要上干货了”,让读者将注意力拉回到文章本身。当完成了读者注意力拉回的操作,接下来就是加一些私货进来了 :)。

其实这句话背后的含义有很多。日后再更。

换个风格让自己重新出发

既有所感,何不写出来,与诸君共享。

做为一个程序员,我的博客近期的几篇文章不太像我自己的以往风格。这个是我自己有意而为之的。在过去很久,我多次创建博客、失去兴趣、再次创建博客、再次失去兴趣,循环往复。我自己都有些厌倦。这一次我希望我能坚持写下去。所以也会在博客中去尝试不同的风格。

技术类型的文章也会写一些,不过会有意识的控制质量和数量,尽量不让自己的思维被一个方面的内容所占据。

随笔的内容会比较多,毕竟是双鱼座,在学习之余,会有很多胡思乱想。在过去的时光里,胡思乱想都只是在脑中一闪而过,以后这些信息也都会保留下来,学习之余,做为写作的练习来发布。

更新不固定,因为每天时间都安排的非常满,不过,我如果真的心中有所思所想。便一定会抽空更新。

现在,随着时间安排的越满,就越明白时间的紧迫和时间合理利用的好处。比如这篇文章,便是我在出门取东西时,在 WordPress 移动端客户端上所写,晚上回到家中添加头图后重新发布。

最后这首歌推荐给大家。这首歌是我和前女友分手的时候,她推荐给我听的。

http://music.163.com/#/song?id=444323371

为什么做课程需要先做大纲

大纲下的课程还有一个好处,可以规范化课程制作。能够流水线化制作就意味着一个产品的制作进入了规范化。对于课程来说,也是同样的。

在上一篇文章我提到,好为人师是一种病。这一篇文章,我来说一说为什么做课程需要先做大纲。

 

就我自己而言,我制作课程其实非常不喜欢设计大纲。因为我所能够教授的课程,很多时候都是技术开发类型的。而这些东西可能会因为我在开发过程中的灵机一动,而加入新的功能。这些新的内容就成为大纲之外的东西。如果我想要将新加入的内容放在大纲中,就显得非常麻烦。毕竟,一门新的课程会涉及到非常多的物料和修改。大纲的经常改动,可能会让美工暴走。

 

在去年,我和极客学院合作,推出了两款微信小程序的课程。在和极客学院的合作过程中,我也确实体验到了专业的课程开发团队的规范化。甚至,如果我以后自己也要从事相关的事情,也会参照极客学院的流程来设计我自己的课程。

 

接下来,我们来说一说,为什么做课程需要大纲。大纲对于我们这些变化比较大的课程开发导师来说,确实是一种束缚。但是,问题在于,我们并不是课程的受众,我们做事,需要考虑最终的受众。

 

在线学习和线下的学习不同,线下的学习由于你被限制在一个固定的时间和固定的地点去学习,你对于课程的把控其实并不重要。再加上线下的课程一般都是一些非职业性的专业,没有急迫性,所以,没有对于进度的把控问题并不大。而线上的学习由于极为自主,学生如果不清楚课程的进度,有极大的可能放弃课程的学习,或者及其容易放弃课程。对于一个学生来说,一个有大纲的课程,会更加容易学习。学生也可以对于课程的进度有所把控,无需担心课程的进度。

 

大纲下的课程还有一个好处,可以规范化课程制作。能够流水线化制作就意味着一个产品的制作进入了规范化。对于课程来说,也是同样的。

好为人师是一种病

好为人师到底是好是坏,这里给你一个观点。

好为人师是一种病

为什么说好为人师是一种病?这要从我自己说起,事实上,最近写的很多东西都是对我自己的思考。

我从小便有个习惯,便是帮助别人。当然,这是个好事,互相帮助使得我们整个族群可以更好的生存。当这个习惯,到了学习上之后,就变成了好为人师。

好为人师,从某些方面来看,是在进行自我身份的提升,在心理上将自己提升到一个相对较高的层面(源自中华传统的尊师重道的文化):我是你的老师,那么,我便比你更加的优秀。这种心理暗示,会让我在面对我的那些“学生”时,有一种强烈的优越感。久而久之,就容易让我养成狂妄自大的毛病。因此,我应该经常性的针对自己和其他人的关系进行矫正。应该明确,大多数时候,我们都是平等的。

除了这个方面意外,也会有另外一种因素会导致好为人师,那就是自卑。在上面我提到,好为人师会让我们产生一种心理暗示,我比对方优秀。对于自卑者来说,当他在教授别人之后,就会发现,自己内心其实是比别人优秀的,那么久而久之也会爱上这种感觉,不断的去教别人东西,以获得心理上的满足。

好为人师算不上坏事,但是我们应该警惕因此而产生的心理优越感,这种心理优越感会让我们看轻他人。然而,每个人都是平等的。

WordPress Slug 中翻英插件

写了这么多篇文章,我还是喜欢用插件来翻译 slug 。无他,省事耳。

我大部分时间都是在使用中文写作,而很多时候,由于性格中感性成分非常多,所以我写的文章的标题并不好写成对应的英文,这里我用的是生活点滴开发的cos_slug_translator插件。这里也推荐给你

 

原博主地址:http://www.storyday.com/html/y2007/1202_auto-slug-translate-plugin.html

插件备份下载:

cos_slug_translator

使用方法:

修改代码中如下两行

  1. define(“TRANS_KEY”,“1234567”);
  2. define(“TRANS_FROM”,“zhtis”);

事实上这篇文章的slug也是自动生成的。

Swift 是一门好语言

Swift 之所以是个好语言,归根结底还是因为他有个好爹。一个商业公司驱动的产品,必然是目标明确的。同时 Apple 的艺术家气息也让 Swift 变的更加容易被人们所接受。

为什么 Swift 是一门好语言?

这样一个想法源自我花了两到三个小时跟着 Apple 官方提供的教程学习后得出的结论。Swift 是一门极易入门的语言,并不是他的语法有多么的简单,而是 Apple 为 Swift 变得更好提供了非常棒的说明。

编程语言一直都是 Geek 们的专属技能,掌握了编程仿佛就可以睥睨众人。所以在某些程度上, Geek 们让编程语言变的难学, Geek 们总是假设所有的使用者都如同它们一样拥有高超的领悟能力。但是,我们也都知道,高智商(120以上)的人总是少数的。对于大多数人来说,Geek 们那晦涩难懂的文档是非常难以理解的。虽然,到了现在,各个语言的文档都有了很棒的 guide ,但是大多数的时候,文档都是非常难以理解的。

编程语言的初衷便是降低人操作计算机难度,虽然这些年来,编程语言的简化确实是趋势(Golang 是个奇葩),但是大多数语言都没有做好自己的 guide。文档的编写者默认把读者放在了和自己一个层面上,然而,你懂的。

我之所以说 Swift 是一门好语言,便是 Apple 在降低 Swift 的学习难度上,做出了自己的努力。移动端的 PlayGround,文档的教程无一不是为了降低语言学习难度而提出的。对于很多初学者来说,他们可以借助这些资源来入门编程。

Apple 在其官网有个 “人人能编程”的页面,在这个页面, Apple 放置了一些用于学习的资源,包括了课程的图书、课程配套软件、以及视频课程。

甚至是引入教学中所需的教案也为你提供

以及各种教育资源

 

Apple 在推广 Swift 上不遗余力,为学习者提供了完善的学习方案和资源,可以加快学习者学习完成的速度。也正是因为如此,在我看来 Swift 将会成为日后人们走入编程技术殿堂的最适合的敲门砖。Apple 引以为傲的用户设计也体现在其制作的图书和课程中,简单易懂,简洁明了。

 

如果你想要入门 Swift ,我建议你从《使用 Swift 开发 App 入门课程》开始。

课程配套的源码下载地址:https://developer.apple.com/go/?id=app-dev-curriculum-cn

 

备份

教程:https://postimg.aliavv.com/WordPress/Intro-to-App-Development-with-Swift.ibooks

配套示例代码:https://postimg.aliavv.com/WordPress/App-Development-Curriculum.zip

 

继续阅读“Swift 是一门好语言”

WordPress 文件名 MD5 解决中文乱码问题

事实上,我每次重新安装 WordPress 时,都会默认添加这个函数,来方便我的使用。所以,无论我重建了多少次,这个函数一般情况下,都会是我默认的第一篇文章。

每次安装完成 WordPress,都会先添加这个函数,来确保我上传的文件不至于乱码,也分享给诸位。

  1. function new_filename($filename) {  
  2.     $info = pathinfo($filename);  
  3.     $ext = emptyempty($info[‘extension’]) ?  : ‘.’ . $info[‘extension’];  
  4.     $name = basename($filename$ext);  
  5.     return substr(md5($name), 0, 12) . $ext//截取长度12  
  6. }  
  7.   
  8. add_filter(‘sanitize_file_name’, ‘new_filename’, 10);