ibm logo

被忽视的蓝色巨人 IBM

今天聊的话题依旧和技术有关。做技术的,往往都很擅长使用搜索引擎来去查询资讯,借助搜索到的资料来完成自己的工作,所以又有了 “面向 Google 编程” 和 “面向 StackOverFlow 编程”。不过,搜索引擎不一定就能够找到所有有价值的内容。我们且不说暗网(Dark Web),单纯是我们平时可以浏览到的网页,都未必每个都能被搜索到。
[title]为什么你搜索不到有价值的内容[/title]
搜索引擎的工作机理是基于蜘蛛机器人(Spider)的,蜘蛛机器人顺着你网站上一个又一个的链接,访问到一个又一个的页面,并将内容保存在自己的服务器上,进行分词处理,以便于你的搜索查询。但是,蜘蛛的工作也是依赖于网站的配置文件的,如果网站主在配置文件中写明了,那蜘蛛就不再爬取相关的内容。比如,下图中的淘宝网便是如此。
k0e9w
淘宝网当然有非常多的页面,但是在搜索引擎中,你却搜索不到任何关于商品的页面,这便是淘宝网所使用的 robots.txt 定义的。myicy
通过 Disallow ,淘宝网保护了自己网站下的详情页面,使得商户们只能针对淘宝自家的搜索工具来进行优化,并购买付费的推广,
[title]IBM 被隐藏起来的东西[/title]
IBM 作为知名的技术解决方案提供商,自然是有其自己的技术交流社区,那就是 IBM developerWorks
51cr2
在 developWorks 社区内沉淀了大量的优秀的文章,涵盖了语言、云计算、Linux、IOT、安全、移动开发等多个领域。对于大部分开发者来说,只要 IBM 曾经有人研究过这个方面,那么你就有可能在这里找到你所想要的东西。而且,由于这些文章大多出自 IBM 内部团队,所以质量也普遍较高。当你无法通过搜索引擎找到你想要的东西时,不妨来这里看看。
 
当然,互联网上隐藏的东西并不少,同样的网站还有 Intel 的 DeveloperZone ,不妨去看看。

pen 631321 640

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

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

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

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

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

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

当问题被提出来之后,接下来就是将问题给解决掉。有问题自然有对策,这个时候,择选官方针对某个事件的处理意见,将其放在句首以加深读者的印象。往往,这些处理意见会按照重要程度来依次排列,以达到递进的感受。提出了解决方案后,接下来就是我几乎每次都要写的“透过现象看本质”
我在写这句话时,到底想要实现什么样的效果?
这个问题其实很有意思,一方面,这个是我自己的习惯用语,我习惯使用这句话来进行内容的过渡。从关注事件的本身,转移到事件背后的问题;另一方面,其实是我的一些小的技巧:通过这句话,为读者营造了一种感觉“接下来我们要上干货了”,让读者将注意力拉回到文章本身。当完成了读者注意力拉回的操作,接下来就是加一些私货进来了 :)。
其实这句话背后的含义有很多。日后再更。

home office 336377 640

换个风格让自己重新出发

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

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

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

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

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

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

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

ed73070d4238

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

在上一篇文章我提到,好为人师是一种病。这一篇文章,我来说一说为什么做课程需要先做大纲。
 
就我自己而言,我制作课程其实非常不喜欢设计大纲。因为我所能够教授的课程,很多时候都是技术开发类型的。而这些东西可能会因为我在开发过程中的灵机一动,而加入新的功能。这些新的内容就成为大纲之外的东西。如果我想要将新加入的内容放在大纲中,就显得非常麻烦。毕竟,一门新的课程会涉及到非常多的物料和修改。大纲的经常改动,可能会让美工暴走。
 
在去年,我和极客学院合作,推出了两款微信小程序的课程。在和极客学院的合作过程中,我也确实体验到了专业的课程开发团队的规范化。甚至,如果我以后自己也要从事相关的事情,也会参照极客学院的流程来设计我自己的课程。
 
接下来,我们来说一说,为什么做课程需要大纲。大纲对于我们这些变化比较大的课程开发导师来说,确实是一种束缚。但是,问题在于,我们并不是课程的受众,我们做事,需要考虑最终的受众。
 
在线学习和线下的学习不同,线下的学习由于你被限制在一个固定的时间和固定的地点去学习,你对于课程的把控其实并不重要。再加上线下的课程一般都是一些非职业性的专业,没有急迫性,所以,没有对于进度的把控问题并不大。而线上的学习由于极为自主,学生如果不清楚课程的进度,有极大的可能放弃课程的学习,或者及其容易放弃课程。对于一个学生来说,一个有大纲的课程,会更加容易学习。学生也可以对于课程的进度有所把控,无需担心课程的进度。
 
大纲下的课程还有一个好处,可以规范化课程制作。能够流水线化制作就意味着一个产品的制作进入了规范化。对于课程来说,也是同样的。

75c1a34f3aa5

好为人师是一种病

好为人师是一种病

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

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

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

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

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

b29692084bbb

WordPress Slug 中翻英插件

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

 

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

插件备份下载:

cos_slug_translator

使用方法:

sgbin

修改代码中如下两行

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

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

fd4a959f23df

Swift 是一门好语言

为什么 Swift 是一门好语言?

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

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

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

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

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

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

nlf7q

以及各种教育资源


 

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

 
继续阅读

b29692084bbb

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

每次安装完成 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);  
vba

一些用到的 VBA 语法

VBA 入门教程
Office 中的 VBA 入门:https://msdn.microsoft.com/zh-cn/vba/office-shared-vba/articles/getting-started-with-vba-in-office
Excel  VBA 参考:https://msdn.microsoft.com/vba/vba-excel


学习资源
VBA帮助手册


 
 
我的第一个 VBA 程序,会先弹窗,弹窗内容为”NiHao”自动给 A4 设置值”Nihao”

Option Explicit '强制要求所有变量必须定义
Public Sub mysub() ' 定义一个新的 module
Dim Str As String ' 定义一个变量
Const Status As String = "Hi"   ' 定义一个常量,其值必须在定义时给出
' 这里的内容会被注释掉
' 你可以以任意大小写来编写代码,VBE 会自动将其改为正确的格式,比如 end sub -> End Sub
Let Str = "Nihao"
MsgBox Str
Range("A4").Value = Str ' 设置 A4 格的内容为 Str 的内容
End Sub

如何判断字符串内是否有特定单词

instr("abc","c")   '大于0为包含。
"abc" like "*c*"   'TRUE为包含。

For 循环语法

For i = 2 To 10
        MsgBox Cells(i, "A") Like "*抽奖*"
Next i

 
判断是否包含指定字符,随后,执行特定的参数
Sub docheck()


Dim i  As Integer
i = 2
For i = 2 To 10
        If Cells(i, "A") Like "*somtext*" Then
            Cells(i, "D").Value = "other"
        End If
Next i
End Sub