Samson's Blog

  • Home

  • About

  • Archives

From Sublime Text 2 to Sublime Text 3

Posted on 2015-05-01 | Edited on 2018-11-29 | In Share , Sublime Text 2 , Sublime Text 3 , Technique
Symbols count in article: 2.3k | Reading time ≈ 4 mins.

首先不要问我为啥还在用sublime text 2,这是个有点历史且形而上学的问题,为此我还特地去查看了 sublimeTask 的initial commit date,发现这个历史已经至少3年了;擦,这时间过得还真叫人无法察觉的快,转眼就是三年,不想说什么时光荏苒岁月如梭物是人非时过境迁,虽然这些词语都他喵的条件反射的直接进入了脑海,既然已经不经过大脑都敲了出来,我也懒得删掉了,就这样吧; 所以本博文可以说是outdated的令人发指,基本没有任何值得分享的必要,放此纯粹是作为个人的一个记录;不过话说回来,也许还真有人比我还out也说不定呢,缘分这东西谁又说的清楚呢呵呵; ok,让我们闲话少说,直奔主题; [Install Sublime Text 3] 第一步,没啥好说的,你懂得;唯一值得一提的是如果之前不知道何时装过ST3的话(比如笔者),请更新sublime并把其data目录里的内容删掉,os x下该目录在~/Library/Application\ Support/Sublime\ Text\ 3/,对没有看错,里面东西都清了,重动sublime会重新generate新的data进来; [Migrate Packages] 如果没有以前一堆精心设置调教过的plugin就没有那么多事,当初ST3刚出来的时候没有第一时间migrate过来的原因也是因为大部分plugin/package都还没migrate好;这一晃三年,大部分critical的plugin肯定已经都完事了,这件事情如今竟然变得如此简单,直接copy所有的package过来……

ST2的Package目录是 ~/Library/Application\ Support/Sublime\ Text\ 2/Packages/ 相应的,ST3的是 ~/Library/Application\ Support/Sublime\ Text\ 3/Packages/

哦,只有俩个例外,一个是Default,这个copy过来会出错因为毕竟是ST2特有的Core,另外一个是Package Control,这个我们接下来会另外安装;所以finder里面copy的时候全选后专门deselect这俩个目录就行了;这件事如今变得如此轻松是我所始料未及的; [Install Package Control] 这玩意说实话应该直接built-in,如今用sublime不用它的基本可以忽略不计,不用它你还敢称你在用sublime?当初记得没错的话其只支持ST2,3 beta出来的时候它也是慢慢跟进,如今不在话下肯定是做好了,不过其分开了俩分支,一分支继续支持ST2,另外出一分支支持ST3,所以我们要另外安装它而不能直接copy原有的; 安装它的for ST3的版本,不在话下;安装完后重启sublime,package control会尽其所能帮你更新你刚刚copy过来的package,当初是git clone装的就git pull一下,是直接package install的就package upgrade一下,打开sublime的console (ctrl + `),你能看到所有它背后的辛勤和默默无闻; [Update Terminal Command] 接下来要更新terminal的subl命令,其原来是一个symbol link,指向ST2,删掉它,重新创建一个指向应该指向的东西: [cc lang=”bash” nowrap=”false”] $ which subl /usr/local/bin/subl $ ls -l /usr/local/bin/subl lrwxr-xr-x 1 samson wheel 64B Jan 30 2012 /usr/local/bin/subl -> /Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl $ sudo rm /usr/local/bin/subl $ sudo ln -s /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl /usr/local/bin/subl $ ls -l /usr/local/bin/subl lrwxr-xr-x 1 root wheel 62B May 1 16:01 /usr/local/bin/subl -> /Applications/Sublime Text.app/Contents/SharedSupport/bin/subl [/cc] [Disable/Remove incompatible packages] 大功即将告成,虽然migrate过来的大部分package经过更新后都是work的,但林子大了总有漏网之鱼,有的直接报错的,就需要用package control来disable掉,不行的也可以直接remove掉,笔者只遇到一个不可调和的矛盾(package “Better CoffeeScript”),disable还是报错,于是小手一抖package移除(事后发现其其实出了个for ST3的branch,两个branch互不兼容,所以删掉后再装一下就ok了);还有的不会报错,但其实已经悄悄的不work了,比如鄙人的sublimeTask,这个部分我会在接下来的几天里展开,是时候更新ST3的版本了,虽然貌似好像可能也许确实大概是晚了那么一丢丢…… 不过聊胜于无嘛~

意识流

Posted on 2015-04-27 | Edited on 2018-11-29 | In Life , Minds , Music , Share
Symbols count in article: 716 | Reading time ≈ 1 mins.

不知道如何开始叙述最近一段的update,有或无,都是如此平静,速度与激情过后其实也是see you again般的恬静与回忆; 某人说不要因为负担太重或没有负担而使自己扭曲了现实的事实,觉得挺有文采便若有所思的想了想,虽然最后也没有想明白,但句子我是记下来了,发现装逼的句子都是那么故弄玄虚般晦涩的相似; 也没打算非要理解任何东西,那样该有多累,生活本来就应该给一些空间,留一些空白,那样才有所谓遐想抑或瞎想的空间; 记得以前有位姑娘跟我讲过“这世界本来就不公平”,当时还小,不更事,盯着那条短信看了半天后得出结论,女孩们都是那么天真;若干年长大后突然发现他妈女孩们原来都是那么早熟,原来当初天真的是自己,图样图森破; 朋友说人老了的一个迹象是喜欢回忆过去,以此来说明他已经老了;其实他也没多老啦,虽然睡觉确实比我早好几个小时;鄙人其实一直也是个特别怀旧的人,所以要么就是该理论不大广泛适用要么就是我其实很早之前也“老”了,无论何种情况其实都无妨; 很喜欢速度与激情系列里面经常出现的一句台词,“just like old times”,台词过后脑海总能闪出过往各种片段,才使see you again变得如此弥足珍贵; It’s been a long day, without you, my friend; I’ll tell you all about it when I see you again; [audio mp3=”http://blog.samsonis.me/wp-content/uploads/2015/04/valder-fields.mp3" autoplay=”y”][/audio]

AngularJS Tutorial - Learn AngularJS in 30 minutes (Part 2)

Posted on 2015-04-13 | Edited on 2018-11-29 | In AngularJS , Front-end , Technique
Symbols count in article: 3.6k | Reading time ≈ 6 mins.

由于篇幅过长,所以人为强行分成两篇,望见谅。 接上篇,AngularJS Tutorial - Learn AngularJS in 30 minutes (Part 1)

隐藏和显示elements

AngularJS另外还提供了一套指令(directive),允许用户根据一些条件或者表达式来隐藏或者显示某个DOM element。这些指令有ngHide,ngShow,ngSwitch和ngIf。这些指令提供了相类似的结果,不过在不同的情况下它们分别会很有用。当你遇到一些类似case switch的情况下ngSwitch指令会很有用,比如一些单选按钮开关(radio switch toggle)。ngHide,ngShow和ngIf有些本质上的不同,虽然表面十分相似。ngIf会将受影响的element从DOM里面移除,而ngHide和ngShow只是加了一个 display:none 的css属性来隐藏它。 因此因尽量可能的使用ngIf,因为这样可以为已经忍受杂乱不堪DOM的浏览器省掉一部分内存。ngHide和ngShow在显示动画效果的时候会特别有用,因为ngIf会由于牵涉到DOM的创建和删除这类比较消耗资源的操作通常会影响到动画的展示效果。 在我们这个简单的例子里,我想在每个我最喜欢的TV show的边上加上一个星星。可以使用ngIf来达到这个效果,让我们来修改index.html。 [cc lang=”html”]

A list of TV shows

  • { {show.title}} { {show.year}}

[/cc] 这样在show.favorite这个属性是true的时候,页面DOM就会被简单的加上一个星星。这里还另外支持表达式,所以像 show.favorite == true 或者 show.favorite != false这样的表达式在这里也同样可行。

在ngRepeat里使用过滤器 (filter)

AngularJS提供了在迭代重复的内容里从容的进行过滤的功能。让我们使用之前创建的用户搜索输入来让用户可以过滤自己的TV show列表。 [cc lang=”html”]

A list of TV shows

  • { {show.title}} { {show.year}}

[/cc] 就这么简单!想象一下用jQuery来做同样的事情会怎样。来,下面试试这个实现的效果。

See the Pen AngularJS Filter Example by Leon Revill (@RevillWeb) on CodePen.

让我们来把事情变的复杂一些,加入一个选项来改变这些列表条目显示的顺序。修改main.ctrl.js,加入一个用来表示所有可用排列顺序的对象。 [cc lang=”javascript” nowrap=”false” height=”450”] vm.orders = [ { id: 1, title: ‘Year Ascending’, key: ‘year’, reverse: false }, { id: 2, title: ‘Year Descending’, key: ‘year’, reverse: true }, { id: 3, title: ‘Title Ascending’, key: ‘title’, reverse: false }, { id: 4, title: ‘Title Descending’, key: ‘title’, reverse: true } ]; vm.order = vm.orders[0]; [/cc] 在index.html里加上一个select选项,这样用户就可以选择列表排列顺序,然后在我们之前在ngRepeat上加的filter后面再加上一个filter。 [cc lang=”html”]

{ {main.title}}

A list of TV shows

  • { {show.title}} { {show.year}}

[/cc] 上面我们在ngRepeat加上了一个 orderBy 的过滤器来指定我们用来排列顺序的key,在这里是title。然后我们指定是顺序还是逆序排列,这个属性被存储在orders对象里面并被命名为reverse。然后为了填充select目录我们用到了ngOption指令,在这里你能看到更多关于ngOption的信息。 修改一下排列顺序,看一下实际的效果。

See the Pen AngularJS order by example by Leon Revill (@RevillWeb) on CodePen.

表单验证

web应用的一大块部分是收集接受用户的输入和数据。AngularJS让表单验证的工作变的简单,确保数据在被传入到应用程序里处理前已被验证过。在这个简单的例子里我们将会创建一个表单来允许用户加入一个新的TV show到列表里来。打开index.html,加入下面的HTML来创建一个简单的form表单。 [cc lang=”html”] AngularJS Tutorial

{ {main.title}}

A list of TV shows

  • { {show.title}} { {show.year}}

Add a new TV Show

Title

Year

Favorite:

Add

[/cc] 这个简单的form表单会允许用户输入一个show的名称,年份还有指定其是否是自己的favorite。在title和year的input上我们加上了一个required的属性,这样这两个值就是必须的。另外我们指定year的input属性为数字,并加上了min和max的属性。AngularJS自带了form表单验证的功能,当用户点击Add按钮的时候会自动提供反馈。如果用户没有在那些必须的fields上填写内容,就将会被系统提示错误信息。同样的,如果用户没有输入了一个介于1900到2030之间的数字,他们也会被要求修改。试一下实际的效果。

See the Pen AngularJS simple form validation by Leon Revill (@RevillWeb) on CodePen.

更多关于AngularJS form表单的信息请参见这里。

响应简单事件

本AngularJS教程的最后一部分将向您展示在这个框架里面事件event是怎样使用的。事件机制一直是JavaScript框架和库的重要部分,这里也不例外,即便Angular有它的双向数据绑定。 如果用户不能实际提交数据并加入到TV show的列表,刚刚创建的表单其实并没有实际的用处。在MainController的底下加入如下的代码。 [cc lang=”javascript”] vm.new = {}; vm.addShow = function() { vm.shows.push(vm.new); vm.new = {}; }; [/cc] 上面的代码声明了一个称作new的对象,这个对象在form表单里被用来存储被标记为ngModel值的输入数据(比如,ng-model=”main.new.year”)。另外一个被称为 addShow 的函数也同时被创建,用来给show数组添加新对象从而在页面的列表里添加新条目。 AngularJS提供了不同的事件指令,例如ngClick,ngChange,ngFocus,等等,我们可以根据实际需要来做相应的响应操作。在我们简单例子里,我们将使用ngSubmit指令在form表单成功提交后,去触发 addShow 函数。打开index.html,修改表单的声明来包含这个指令,如下。 [cc lang=”javascript”]

[/cc] 现在,当表单成功验证并且用户点击Add按钮后,这个addShow函数便会被调用,从而添加一个新的show到列表里来。试一下效果吧!

See the Pen AngularJS ngSubmit example by Leon Revill (@RevillWeb) on CodePen.

这是一个在众多AngularJS事件指令中极其简单一个例子。欲知更多详情,请移步文档页面,那里有更为详细的内容。

总结

在完成这个快速的教程后您应该对很多AngularJS的理念和处理方式有了大致了解,它们将会方便您以后创建单页面应用程序。AngularJS提供了太多的内容,我不可能在30分钟内全覆盖到。如果您喜欢本教程,请在下面订阅,如果将来有高级的AngularJS教程您将会第一时间收到通知。(订阅请移步原文地址,文章结尾处可以订阅,译者注)

AngularJS Tutorial - Learn AngularJS in 30 minutes (Part 1)

Posted on 2015-04-09 | Edited on 2018-11-29 | In AngularJS , Front-end , Technique
Symbols count in article: 5.3k | Reading time ≈ 9 mins.

每当我要逼自己去学习点新东西的时候,我总是强迫自己去认真读完一系列关于此类知识或是技术的一看上去就不错的文章,所谓开卷有益;但鄙人有个坏习惯就是喜欢一目十行断章取义,可能互联网的快餐式节奏让我和我的小伙伴们都渐渐趋于浮躁了,当然也许趋于浮躁的只有鄙人也说不定,小伙伴们可能都很淡定,无故拉上不明真相的群众垫背纯属鄙人以小人之心度君子之腹; 于是,本文就在这样的大背景下诞生了; 本文为译文,翻译自原文:http://www.revillweb.com/tutorials/angularjs-in-30-minutes-angularjs-tutorial/ 同理按我以前翻(xue)译(xi) )其他文章的尿性,标题通常保留原文标题,属于不被待见的范畴,标题君默默哭晕在厕所; ============================== 我是分割线 ==============================

摘要

本AngularJS教程将会在30分钟里以一套合理优化过的知识介绍带你浏览整个AngularJS的世界,带你装逼带你飞(译者注)。当看完本篇篇幅不长但内容细致的教程后,您将能快速的创建强大且直观的web应用程序。 观看演示 查看源代码

简介

我从三年前开始使用AngularJS,那时Angular属于新兴技术且相对不为世人所知。从那时起,AngularJS便慢慢变成最流行的JavaScript开发框架。AngularJS的开发小组为了让Angular处于它所能够处于的最好的状态付出了极大地努力和专注。 本AngularJS教程将会使用Angular版本1.3.4(截止本文发布,Angular最新的稳定版本是1.3.15,译者注),将会覆盖Angular相关基础知识,且实现方式会符合google推荐的最佳实践和本人自己的相关经验。

准备

首先创建一个文件夹angularjs-tutorial,并且按照下面的目录结构创建文件: [cc lang=”javascript”] - angularjs-tutorial | - main.ctrl.js | - app.js | - index.html [/cc] 打开index.html,用下面简单的HTML代码创建一个包含AngularJS和Twitter Bootstrap的简单web页面,其中AngularJS和BootStrap都是从CDN上拿到的。我们将使用Twitter Bootstrap作为本教程的CSS框架,这样我们能够快速的创建layout并且集中注意力到AngularJS本身上。如果你想学习更多关于Twitter Bootstrap的知识可以参考我另外一篇关于Twitter Bootstrap的教程。 [cc lang=”html” nowrap=”false”] AngularJS Tutorial [/cc] 这份HTML文档也加入了对app.js和main.ctrl.js的引用,这两个文件就是我们上面刚刚创建的。

Angular化你的网页

在app.js文件里面我们需要实例化一个AngularJS模块以便在应用程序里面使用。拷贝下面的代码进入app.js [cc lang=”javascript”] angular.module(‘app’, []); [/cc] angular.module()方法会充当angular模块的getter和setter角色。其中第一个参数是这个模块的名字,第二个参数我们传递了一个array数组。如果第二个参数传递了数组,那么angular会创建一个app模块而不是去取回这个模块,您将会在下面我们创建controller的时候看到。 [cc nowrap=”false”] [信息] 在更复杂的应用程序里面,您可能需要提供一份包含这个模块所有依赖的模块的列表数组,而不是像这里的空数组。 [/cc] 现在我们需要告诉angular哪里将会使用到这个模块,打开index.html,在标签加入ng-app=’app’,如下: [cc lang=”html” nowrap=”false”] AngularJS Tutorial [/cc] 这会告诉angular所有在body下的DOM将是我们AngularJS应用程序的一部分,其名称就叫做app。

控制器

AngularJS提供了一份更为宽松的MVC架构,准确的讲,其应该被称为MVVM架构。业务逻辑应该被放置在控制器里面完成,控制器本质上应该“控制”数据并且提供数据给view去显示。打开main.ctrl.js,添加如下的javascript代码来声明我们的主控制器。 [cc lang=”javascript” nowrap=”false”] angular.module(‘app’).controller(“MainController”, function(){ var vm = this; }); [/cc] 在上面的代码中,我们首先去取回了那个我们之前创建的app模块,然后使用controller方法实例化了一个新的控制器。这个controller方法接受两个参数,第一个参数是这个控制器的名字,第二个参数则是一个函数,在这个函数里面我们能放置我们的控制代码。 在我们使用这个控制器之前,我们需要先告诉angular这个控制器可以控制哪部分的html文档。在一份文档里面可以有很多不同的控制器,不同的控制器可以控制相同部分的html片段,也可以控制不同部分的html片段,嵌套的控制器也是支持的。在我们这个异常简单的例子里面我们将只会有一个控制器控制整个页面,我们使用controllerAs这个语法来声明它(后面还会提到),打开index.html并且在body标签加入下面的代码。 [cc lang=”html” nowrap=”false”] AngularJS Tutorial [/cc]

理解scope

通常人们会把$scope注入到控制器里,然后把所有的控制器变量赋值到这个scope对象上,然后所有这些变量便会在view里面可以访问。然而,AngularJS团队推荐另外一种更好的办法,那就是使用controllerAs语法。这提供了一种更语义化的方法来定义控制器,并且规避了一些诸如在多个嵌套控制器存在的时候会出现scope bleed问题(不知道其确切含义,待译者来日深入研究后再议)。 我们把这个控制器的实例赋值给了一个叫vm的变量,这个vm是指ViewModel(页面model),John Papa的style guide里面也是这么推荐的。然后我们将所有需要在view里面能访问的变量赋值到这个对象上,这样angular就可以开始施展它的魔法,比如双向数据绑定(two-way data binding)。 为了更好的理解scope,我们定义一个简单的变量title用来保存我们想在页面上显示的标题文字。打开main.ctrl.js并加入如下代码: [cc lang=”javascript” nowrap=”false”] angular.module(‘app’).controller(“MainController”, function(){ var vm = this; vm.title = ‘AngularJS Tutorial Example’; }); [/cc] 用下面的语法形式来显示这个标题文字: [cc lang=”html” nowrap=”false”] AngularJS Tutorial

{ {main.title}}

[/cc] 在上面的例子中,h1标签里面的标题文字是用一对双大括号来显示的,这样angular就知道这是个变量。我们访问控制器scope的前缀也和我们之前用ControllerAs语法定义的变量相符。现在想象一下在同一个文档里面有多个控制器,而你还在以传统的方法引用多个变量,比如 { {title}}。这样就很难看出这个变量究竟是属于哪个scope。另外,这样也更容易导致很多不同的变量却意外的拥有相同的名字的问题(比如 scope bleed)(大概明白scope bleed啥意思了,译者注) 如果用网页的形式打开index.html,应该就能看到看到标题文字,虽然这网页目前还极其无聊。

See the Pen AngularJS Tutorial Example by Leon Revill (@RevillWeb) on CodePen.

理解绑定

双向数据绑定是AngularJS的一大主要卖点,所有就让我们来看看它到底是什么。在main.ctrl.js里面加上另外一个变量searchInput,就像下面这样: [cc lang=”javascript” nowrap=”false”] angular.module(‘app’).controller(“MainController”, function(){ var vm = this; vm.title = ‘AngularJS Tutorial Example’; vm.searchInput = ‘’; }); [/cc] 打开index.html并加入一些简单的可以让用户输入搜索条件的代码。 [cc lang=”html” nowrap=”false” height=”450”] AngularJS Tutorial

{ {main.title}}

{ {main.searchInput}}

[/cc] 除了加了一个搜索输入框之外,我们又一次使用大括号把变量searchInput的值输出到页面上。在text input的html标签上我们加上了ng-model的指令(directive),并用主控制器的searchInput变量进行赋值。这样这个input输入框就和我们的变量绑定了,这个input输入值不仅会在这个controller代码里可用而且所有该controller控制的html文档内部也可以访问到该input值。如果现在在浏览器里面打开index.html,在搜索框输入一些搜索条件之后你将会在搜索框下面立刻看到你所输入的搜索条件。您可以在下面的live预览里面亲自试试。

See the Pen QwjpdP by Leon Revill (@RevillWeb) on CodePen.

使用ngRepeat

AngularJS提供了广泛的内置指令(directive)来帮助我们完成一些平时常用的工作。ngRepeat指令允许你在一个列表里面迭代并且显示在页面上。让我们创建一个包含一些对象的数组,从而我们可以对其进行迭代。更新main.ctrl.js文件让其拥有下面的数组。 [cc lang=”javascript”] angular.module(‘app’).controller(“MainController”, function(){ var vm = this; vm.title = ‘AngularJS Tutorial Example’; vm.searchInput = ‘’; vm.shows = [ { title: ‘Game of Thrones’, year: 2011, favorite: true }, { title: ‘Walking Dead’, year: 2010, favorite: false }, { title: ‘Firefly’, year: 2002, favorite: true }, { title: ‘Banshee’, year: 2013, favorite: true }, { title: ‘Greys Anatomy’, year: 2005, favorite: false } ]; }); [/cc] [cc nowrap=”false”] [信息] 在现实情景下,像这样的数据通常会通过一些API服务的调用而得多,并且得到后会将其存于本地。 [/cc] 现在我们有了一个可以用ngRepeat进行迭代循环的数组,循环遍历其中的每部TV show从而可以在页面上创建一个无序列表。打开index.html并加入如下代码。 [cc lang=”html”] AngularJS Tutorial

{ {main.title}}

A list of TV shows

  • { {show.title}} { {show.year}}

[/cc] 在这个例子里,ngRepeat会为我们TV shows数组里面的每份内容做一份

  • 标签内容的拷贝。然后我们就可以用{ {show.[property]}}的形式来访问数组里面每个元素的属性,他们显示的时候会被包含到相对应的到每个
  • 标签里面。 未完待续……
  • 笑颜

    Posted on 2015-03-30 | Edited on 2018-11-29 | In Life , Minds , Share
    Symbols count in article: 821 | Reading time ≈ 1 mins.

    好久没更新,也没心思搭理博客,直到某年某月的某天不小心点错speed dial点到了自己博客地址,赫然一块红布挂到了我的显示屏上: [caption id=”attachment_5506” align=”alignnone” width=”300”](抱歉,鄙人的tab开的有点多,密集恐惧症的朋友不好意思了……)(抱歉,鄙人的tab开的有点多,密集恐惧症的朋友对不住了……)[/caption] 直接吓尿,心急如焚气急败坏之余手贱把后台一堆本不该update的plugin来了个彻底大更新,然后东西开始break了,然后某些plugin开始被disable了,然后发现原来某些plugin其实并没有问题又开始enable了,然后就没有然后了,哦… 然后blog又似乎开始恢复正常了; 算是一个不小的小插曲,只不过目前blog的状态并不是最佳,比如上面图片浏览的插件显然已经break抑或disable了,鄙人已经记不清也懒得记清了;目前已知的若干问题虽然一开始其实我是拒绝的,但它们并不可怕,真正可怕的是那些并不知道但真正存在的潜在问题,即所谓unknown unknowns;你永远不知道它们会有啥特效,在特定的时间特定的地点; 既然是好久不见的重逢,那无论过的好与不好,开心还是悲伤,至少要以笑颜相见,这是起码的礼仪,所有的心酸抑或香甜尽在不言中,纵然千言万语波涛汹涌,也要表现的小桥流水细语涟漪 ((鄙人成语一向乱用且断章取义,切勿考究)),毕竟这儿能呈现出的,始终是单薄而又平淡的文字而已,不是吗; 哦,还有声音……;歌曲很好听,名字就叫笑颜,所以也借以在此作为标题,想跑题也难 :) 笑いながら泣くような日々を 泣きながら笑うような日々を そうやって生きていこう だから仆は强くなりたい [audio mp3=”http://blog.samsonis.me/wp-content/uploads/2015/03/smile.mp3" autoplay=”y”][/audio]

    万一奥特曼打不赢小怪兽

    Posted on 2015-01-29 | Edited on 2018-11-29 | In Life , Share , Update
    Symbols count in article: 25 | Reading time ≈ 1 mins.

    万一奥特曼打不赢小怪兽,那就扶他逃回到小小星球~

    Update 91: Winter is coming

    Posted on 2014-12-10 | Edited on 2018-11-29 | In Life , Minds , Share
    Symbols count in article: 702 | Reading time ≈ 1 mins.

    1. 最近好读书,但不求甚解;虽嗜睡如命,但又绝不贪睡,实乃没有勇气结束这绚烂的一天又没有勇气开始崭新之一天的纠结;总结一下发现很符合某剧里面的某句台词 “多读书,多看报;少吃零食,多睡觉”; 2. 电影一部部过,书一本本看,每次的投入都是一次脱离现实环境的过程;很多人喜欢电影或是看书的本质应该是喜欢那种逃离现实环境然后融入一个崭新的意境的感觉;很多时候艺术加工之后的“现实”环境总比真正现实的环境要来的更加完美更加丰满,而现实中大部分的时间其实都是在平凡中度过,禁不住受不了一个地方的平凡之后,大不了换个地方继续平凡而已; 3. 最近很喜欢姜文,翻出很多以前看过的电影又去看了一遍;不是以前不喜欢,只是最近特别喜欢而已;也讲不清楚为什么,但这不重要,很多时候原因甚至本质是最最最最不需要考虑的; 4. 同样的原理也适用于老罗锤子手机出现一系列问题的事情上,摆在台面上讲的永远是可以被摆在台面上讲的,真正的问题出在哪老罗自己肯定最清楚,相信他们也在着手解决,下面就是见证现实版的闻过而终礼、知耻而后勇抑或闻过而终了、知耻而后弃了,鄙人翘首以盼拭目以待; 5. 年底流行总结,我向来不总结成绩,只总结问题,问题的总结已在前篇有过较为详细的罗列,此不再赘述;总而言之,言而总之,革命尚未成功,同志尚需努力;莫散了團體,休灰了志氣; 6. 冬天来了,春天还会远吗? 答:远。 但太阳照常升起。 [audio mp3=”http://blog.samsonis.me/wp-content/uploads/2014/12/21-the-sun-also-rises.mp3"\]\[/audio\]

    那么问题来了

    Posted on 2014-11-20 | Edited on 2018-11-29 | In Life , Minds , Share
    Symbols count in article: 827 | Reading time ≈ 1 mins.

    好久不写已经都不知道怎么开头,blog是个渐渐慢慢累积积累的过程,是个pick up缓慢give up却异常迅速的差事,不过话说回来做什么事情又不是这样呢,说永远比做容易,而放弃,也永远比坚持来的容易; 既然本文是来剖析问题的(标题indicated),我们就follow主题来一个divide and conquer,虽然follow标题显得有点出人意外且与本人以往一贯的风格略微有点格格不入; 本文主要负责列出问题,问题的解决并不属于本文所要考虑的范畴; [拖延症] 这是个现代人或多或少拥有的问题,其root cause其实不是拖延本身,而是其实内心不是很想或者压根不想干;如果发现每天的事情80%以上都是在被拖延的,那么是时候停下来好好思考一下下一步了; 不过鄙人拖延症似乎更厉害一些,目前正拖延着思考下一步的事情…… 突然很有种道高一尺魔高一丈的赶脚; [玩物丧志] 这里的“物”特指 Clash of Clans,“志”特指上面拖延症正在拖延思考的事情;其实玩物丧志最高的境界应该是丧志的过程中根本不会意识到自己正在丧志,即其是一个无色无味透明无形的非侵入状态,鄙人还远不到如此的境界;就像温水煮青蛙,青蛙其实比谁都来的清楚…… [不够知足常乐] 不知足有时候不一定是坏事,但不快乐却一定不是好事; [福不双至 祸不单行] 确切一点讲这不是问题,只是最近比较背而已,两张ticket和一次弯道急转弯让鄙人付出了不菲的学费;手机摔坏屏幕则让不喜欢巨丑无比的iPhone 6的我重新陷入选择性困难;这就引出了下面这个老生常谈根深蒂固的问题; [选择性障碍] 选择的背后总是带着各种或多或少或彼或此的妥协,很多有选择性障碍的人其实背后都带着不想妥协的心理,但毕竟这世界并不完美,学会减法学会放弃接受妥协接受不完美才是解决此问题的根本所在; 意识到问题是解决问题的第一步,接下里便是直面问题而不是选择逃避,就像心花路放里面的描述的故事一样; 以上。

    晚来天欲雪 能饮一杯无

    Posted on 2014-10-28 | Edited on 2018-11-29 | In Life , Minds , Share
    Symbols count in article: 452 | Reading time ≈ 1 mins.

    首先,本篇无关旅行,本来其实也可叫旅游,但旅游明显感觉low好多,没有逼格,这年代讲究一个字,装;“装”的后面则可根据需要自行添加补充完整,看官可随意发挥想象力; 最近更新频率陡降,几乎到了每月一更的程度,也许大概可能的原因是,每个月总有那么几天吧~ 好久不更新的后果就是纵然此间有如此这般多的事情可以下笔,但真正面对屏幕准备下笔的时候却发现已经全然不知道如何下笔;或许有些事情keep在心永远比表达出来来得刻骨铭心,沉默有时候就是胜于雄辩; 不过还是有些事情可以并值得记录,比如最近每次去超市买啤酒几乎总会被要求看ID,以至于后面几次人家还没问但已经明显在端详我的时候,我就主动把早就准备好的ID奉上…… 这种行为犹如门户网站自删敏感文章一样毫无节操可言,放到革命战争年代,鄙人大概一定是个叛徒…… 当然话说回来,人也只是尽职尽责罢了,所有的问题都是我的问题,无关他人; 那么问题来了 ((挖掘机技术哪家强)),晚来天欲雪,能饮一杯无? 举目天若白,千杯又何妨; 历史上的今天,三年前啊三年前,啧啧;

    不是我不知道 这世界太奇妙

    Posted on 2014-09-16 | Edited on 2018-11-29 | In Life , Minds , Share
    Symbols count in article: 498 | Reading time ≈ 1 mins.

    又无可救药的在office里面奋起了键盘疾起了书…… 即便前篇已然不知道什么时候的更新就曾提到何可为何不可为(此举显然已经被定性为不可为),纵使office里面最近空调开到低到冷血,角落一个昏暗的日光灯继续着在它正式没落前的职责持续着在发光发热,却无法阻挡人们感受到强烈的霜之哀伤; 好吧,我知道我前段写了“即便”和“纵使”,但我确实是忘记我想写什么关于“但是”的内容了…… 也许很多事情本来就没有“但是”; 标题源于今日中午linkedin上的一段奇妙旅程,奇妙的本质在于无法预料和不期而遇,倒并不是事情本身;好比魔术看似奇妙,但其对于懂魔术的人而言并不奇妙,反而还丧失了魔术所带来的最原生态的愉悦,所以魔术师看魔术想必应该有种哑巴吃黄连的尴尬,吧; 顿时语塞,难得的冷场; ((其实是被拽去开会了……)) 回来没事顺便查了下上次更新的时间,确实是已经好久不更新,上手是确实已经略感生疏,但似乎标题和底下内容风马牛不相及的能力俨然是不会生疏的,这好似是一种与生俱来的天赋,任何时候任何地点都是 召之即来 来之能战 战之能胜; 对了,关于这个奇妙不奇妙知道不知道,话说回来,也许我还真是不知道;

    123…35
    Samson Wu

    Samson Wu

    天与弗取,反受其咎;时至不行,反受其殃

    347 posts
    148 categories
    140 tags
    GitHub
    Creative Commons
    Links
    • Portfolio
    • Resume
    © 2007 – 2018 Samson Wu | 309k | 8:35
    0%