almost 2 years ago

…… 标题一点都没谦虚。


1 - LoveLive and Pony


2 - 或且非

 
over 2 years ago

Head

嘻嘻,记一下昨天(20150221)练钢琴的 log.
工具是手机的秒表,以及小本子:

  • 练习和计时同时开始;
  • 每练完一个阶段(或开始下一个阶段(这里的「或」是 exclusive 的,即「要么 p 真 q 假,要么 p 假 q 真」))时,点一下 lap(记圈儿),然后在小本子上记一下该阶段干了什么。
  • (窝不喜欢写「计划下一阶段要干什么」,因为经常偏离主题,神游物外)

Body

21 点多开始。

阶段(「圈数」) 事项 时长
1 哈农("1312 1312 1656 4534") 01:54
2 哈农("3423 1345 6565 6543") 01:50
3 12 个大调音阶练习 06:55
6 自编的手指练习("3454 5343", 仅用 3-4-5 指, 3 遍) 05:07
7 哈农("1878 6858 4838", 2 遍) 04:08
8 La valse d'Amélie 复习到「自己满意」 14:45
9 某 QM(1~20 小节, 高声部复习) 05:57
11 某 QM(21~47 小节, 高声部右手基本满意, 左手 TODO) 01:16:59
12 某 QM(1~47 小节, 高声部串一遍) 04:05
13 Comptine d'un autre été 复习 03:16
14 One Man's Dream 熟悉 3 遍 07:45

有些「圈数」漏掉,是因为误触了秒表的 lap 键。
秒表显示总时长 2:14:43.35。23 点多结束。
青年小李表示从来没有弹过这么久。
哦不,是在家没弹过这么久。大一大二大三混进宏福珍贵琴房的时候,是一定要弹到时间不允许或生理上受不了的。sigh

Script

NEXT(

  • 要事为先……
  • 练习要更模块化。先单手,放慢 -.-
  • E♭ 音阶的指法看一看……
  • 秒表数据导出 + convert to markdown
  • 「事项」列拆分,列名语义化

)

写作用的 领域符号整理 给自己看的

练习 熟悉 复习 演奏
正确化 感情化
曲目(演奏参数列表) 遵循编程习惯用半角括号逗号引号
曲目编号 太local太private
3-4-5 // 哈农记法

Side Note

昨天还:

  • 练了两小时台球(炸裂!八球桌原价 ¥35/h,美团上 ¥19.9/2h),享受摆球服务w
  • 学习了炒菜花 -。- 试图优化刷锅洗碗流程
  • 开始玩 Jubeat(iOS)
  • 在去打球的路上(15 min)胡思乱想道:

一个工作流程
如果太复杂
窝就不会去用它

一个工作流程
如果不去用它
它就屁用没有

 
over 2 years ago

编辑历史

20141231 init
20150103 merge q 同学的补充,在文末

正文

Stephen Wolfram 博士,2014 年 12 月 29 日在北京师范大学京师学堂第七会议室举行了讲座,主题是 "The Future of Computation & Knowledge".

Stephen Wolfram 是 Wolfram Research 公司的创始人和 CEO。他和他的公司创造了 Mathematica, Wolfram|Alpha 和 Wolfram Language. 他的著作 "A New Kind of Science" 记述了他的基于元胞自动机的系统理论.

这场在北师大的讲座是 Stephen Wolfram 跨年访华之行的第一站,也是他第一次来中国。接下来的行程是 12 月 30 日清华大学,1 月 3 日西安理工大学,1 月 5 日上海交通大学。详见 http://weibo.com/p/100808501780651d8ccbd49a83dd7545ef383e

(啊!这阮一峰先生式的开头……)

好吧,这篇文字的主要目的是,整理我听讲座时的记录,在一定程度上复原讲座现场的 replay,以便让没能到场的 Mathematica / Wolfram|Alpha / Wolfram Language(这三个不妨记作 "w-系列") / NKS 爱好者减少遗憾。(于是,本文的目标读者是对 w-系列 有一定了解的同学。)

由于我词汇量、听力以及相关知识的不足,加上当时记录方式仓促且业余,下文一定有疏漏和错误。将来宣传上有了问题,我是要负责的。
如果有当时在场的同学发现文中有错,或者有要补充的地方,请一定联系我 :)

符号约定

下文的一些简写:mma := Mathematica, alpha := Wolfram|Alpha, wLang := Wolfram Language, NKS := A New Kind of Science, sw := Stephen Wolfram.

Replay

开始的时候

  • 会议室人满为患。容量约 100 人,到场约 150 人。绝大多数是学生模样。

  • sw 问有谁用过 alpha,举手者大半;问有谁用过 mma,举手者小半。sw 说 thank you.

演示 alpha

  • sw 开始演示 alpha 的功能。


  • 速度稍有些慢呢。sw 解释到,计算请求发到美国服务器,再传回来,所以比较慢。

  • 有的计算结果半天都出不来。组织方工作人员解释说,访问国外网络会受到些阻碍,同学们会心笑。

  • 太机智了!sw 在讲座之前缓存了一些计算结果,以保存网页的形式。

演示 mma

  • 计算 1+2. 计算三位数^三位数。计算三位数^四位数。计算结果充满一屏,观众 "wow~"。 Plot[]+Sin[] 画图像. Plot[]+Sin[]+Manipulate[] 画可用滑块调参数的图像. 观众 "wow~"。

  • 使用 CurrentImage[] 开启摄像头自拍。用 EdgeDetect[] 边缘检测,配合 Dynamic[] 对摄像头捕捉内容动态边缘检测。

  • 用 ImagePartition[] 切割,配合 Manipulate[] 和 Rotate[] 旋转切开的小图。

演示 wLang

  • sw 打开本地应用 Wolfram Desktop. 然后似乎去开了一个 VPN……

  • 用一个 Movie 什么的函数找到 top 多少的电影。用 DominantColor[] 找出这些电影的海报里的主要颜色。

  • GeoGraphics[], 展示以埃菲尔铁塔为圆心的、不同半径的区域能覆盖地图上的什么范围。

  • DictionaryLookup[], 以及英语单词长度的分布直方图。

  • 用 Import[] 获取联合国官网的首页多国文字,用 StringSplit[] 按行划分,用 Classify[] 识别出每行是什么语言。

  • 用 CloudDeploy[] 和 FormFunction[],光速且 one-line 地部署了一个 “输入猫的品种名,找出猫的图片” 的网页应用。

  • 打开网页版的 Wolfram Cloud,连接顺利,可喜可贺。sw 指出 Wolfram Desktop 和 Wolfram Cloud 是 wLang 的两个前端,用来在不同的使用场景做类似的事情。

  • sw 又指出,wLang 会很重视自然语言处理(NLP)。似乎 alpha 还没支持中文自然语言搜索吧。不过 sw 展示了 Wolfram Desktop(还是 mma?忘了)的某种意义上的中文支持:开启某个选项之后,Notebook 里的部分代码旁边会标注中文翻译,譬如把 Sin 加一个“正弦”的标注。sw 似乎说,这表明对中文 NLP 的支持正在进行中。

观众提问

  • 这时开始了第一轮观众提问。在下的听力完全不够用辣……

  • Q1: 怎么看 IPython?

  • A1: 大概意思是说,那玩意还 too simple;Python 是模块化的通用语言,IPython 是借鉴了 mma notebook 思想的 Python+科学计算库 的前端;而 Wolfram Language 的目标是高度集成的知识引擎,两者目标截然不同。

  • Q2: alpha 的功能这么复杂,bla bla,Can't imagine 它的后端会有多复杂。

  • A2: 我忘掉 sw 说什么了 (`・ω・)

  • Q3: 怎么保证 alpha 给出结果的正确性?

  • A3: sw 先明确了一下,对 mma / alpha 这种系统,有两种正确性要保障:正确计算三位数^四位数的那种正确性,以及正确查找纽约市人口数的那种正确性。

    • 对第一种正确性,因为很多系统都依赖 mma 的计算内核,所以会严格测试 bla bla。
    • 对第二种正确性,sw 指出:他们尽量从官方源找数据;多个消息源是好的,但很多情况下确实只有一个源;多个源还有 choose from 的工作量;等等。(基本上听懂了这些……
  • Q4: Wolfram Language 和其他语言的互通?

  • A4: sw 先强行插入了一些对 symbolic 特性的介绍……

    • 介绍了 EmbedCode[], 似乎是生成一段其他语言(python,java 什么的)代码,使得能在以这些语言做服务器后端的网页中嵌入已经 CloudDeploy[] 好的应用…
    • 介绍了 InstallJava[]。我没用过,投影上帮助文档字又小,所以不知道干嘛的…

介绍 NKS

  • 介绍刚才漏掉的 Wolfram Connected Devices Project.

  • (同去的 q 同学:物联网相关的协议出现得蛮早的

  • 开始讲 A New Kind of Science 了!sw 说,这对他很重要。

  • sw 提到,他为了研究物理而制造了 mma,一造就是若干年。他觉得,后来还能用自己的工具研究若干年物理,是很幸运的。

  • sw 似乎说,若干(二三十?)年前,基于数学公式的自然科学模型式微,基于计算机程序的模型兴起。

  • 元胞自动机,图灵机,bla bla。我没看过 NKS 所以完全不明白……(这部分的 presentation 是“已经懂了的人才能懂”的节奏哇……

又一轮观众提问

  • Q5: 用 mma 科学计算,太慢怎么办?提问者是北师大物院搞暗物质的,长发帅哥,说他天天用 mma 计算,但是有时确实慢,经常一算一天什么的。

  • A5: 我又忘了 sw 回答了啥了,或许是根本没听懂=。= 但是由此引发了非常有意义的事情:

    • 和我同去的 q 同学跟我说,mma:
    • 1. 缺少迭代器的机制,总是要整个列表展开算,有时为了内存不爆掉不得不写For[]。
    • 2. 有些(全部?)尾递归不能优化掉
    • 3. 惰性求值机制有时成了对第一点的弥补(?)
    • 散会之后,q 和该物理小哥交流,小哥说很多时候确实要写 For 提高效率。另外,小哥有一次用 mma 做矩阵的某种运算实在等不及,自己怒用 C 写一天写了出来。
    • 前面三点,窝会再和 q 交流一下… 窝作为新闻工作者还需要学习一个(`・ω・)
  • Q6: mma 的中国市场政策?提问的观众看起来不是学生。

  • A6: sw 说,中国的 mma 销售份额(不懂术语…)很小。比芬兰大一些。bla bla。sw 说这次中国之行也有商业推广意图。

最后

  • 不得了的东西!(^o^)ノ “钨狼”,这是 Wolfram Lanuage 的吉祥物中文名首发吗?

  • (q 同学:像刘看山呢。)


  • (w-系列 的粉丝,以后会叫“钨丝”吗?ww

  • q 同学帮照的合影…… Thank q!

真最后

还是开头说的那样:如果有哪位(特别是当时在场的观众)发现文中有错,或者有要补充的地方,请一定联系我~

新年快乐 :)

图床 powered by 七牛云存储。

事后的补充

  • q 同学:wolfram language(在我看来),简单来说就是 NLP->ML->可视化,从头 hot 到尾。=-=
 
almost 3 years ago
  1. 如果你对 Java Annotation (就是形如 @Xxx, 但并不写在注释块里的语法结构) 熟悉的话, 也许你已经知道, Java 标准库内置了四种用于修饰自定义的 Annotation 的 Meta Annotation:

(

2016-04-24 补丁:

原先写的时候不知道. 其实从 Java 8 开始, java.lang.annotation 包中加入了 @Native@Repeatable.

  • @Repeatable 是个 "Meta Annotation" (即 @Target(value=ANNOTATION_TYPE)).
  • @Native 不是. 它 @Target(value=FIELD).

)

  • @Documented (功能 = "若 @Documented 修饰 Annotation A, 则 @A 将在生成的 Javadoc 中出现, 就像 Javadoc 内置的 @return 什么的.")

  • @Inherited (功能 = "若 @Inherited 修饰 Annotation A; 而 @A 又修饰类 C1 或修饰{类 C2 的方法 M}; 且 CC1 继承 C1, CC2 继承 C2, 则 @A 将影响 CC1 或 {CC2 中未被 override 的方法 M}. 否则 @A 不影响子类或其中的方法.")
    ( ref http://wangyu.iteye.com/blog/210818 )

  • @Retention (功能 = "决定 @Retention 所修饰的 Annotation 是仅存在于代码中 (但不参与编译), 还是保持到编译后的 class 文件 (但不被 JVM 解释), 还是保持到运行时 (被 JVM 解释; 能被反射获取)."

  • @Target (功能 = "约束 @Target 所修饰的 Annotation 能修饰哪些语法结构, 如 PACKAGE, ANNOTATION_TYPE, etc.")

它们被定义在 java.lang.annotation 包里. 前几天学 Annotation 的时候, 我的 Meta-欲勃发, 想到 "Meta annotation 也是 annotation, 也会被 meta annotation 修饰"...
于是看了一下它们的定义. 四个写在一起是这样的:

package java.lang.annotation;

# @Target

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.ANNOTATION_TYPE)
public @interface Target {
    ElementType[] value();
}

# @Retention

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.ANNOTATION_TYPE)
public @interface Retention {
    RetentionPolicy value();
}

# @Documented

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.ANNOTATION_TYPE)
public @interface Documented {
}

# @Inherited

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.ANNOTATION_TYPE)
public @interface Inherited {
}

OK! 得到一个结论...
四个 Meta Annotation 都被修饰成:

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.ANNOTATION_TYPE)

用简写 (譬如 R 表示 @Retention(RetentionPolicy.RUNTIME)) 和箭头表示四个 Meta Annotation 的依赖关系, 形如下图:

      ↙↖
      ↘↗
       D
    ↗ ↑ ↖
  ↗   │ ↘ ↖  ↙↖
I←----┼----→R  |
  ↘   ↓ ↗ ↙  ↘↗
     ↘│ ↙
       T
      ↙↖
      ↘↗
#ASCII Crap

第一节完...

To be continued...

 
almost 3 years ago

7 月 28 号周一入职. 环球金融中心 ( WFC ) .
阿里云 OS 事业部, 云安全, 服务器端.

Mon

签协议, 听培训, 见主管, 逛办公室, 领电脑.
六点多吃饭, 吃完回来呆一会就跟少将走了.

Tue

早上从 WFC 旁边的金台夕照站走着去办工资卡. CBD 银行林立, 很方便.
主管跟我讲了讲 near future 要干的事情.
team 有 6 个人.

主管给了我一份放在 Git 仓库里的某服务器端工程的 Wiki 页里的 API 文档看.
仓库用 Gitlab 搭建. 文档是 ( Gitlab flavored ) markdown 写的.

又给我 assign 了一位嗯... mentor. 他在写实现这些 API 的服务端代码.
API 是 RESTful 的.

下午跟 team 里其他人去 ( 旁 ) 听了 ODPS 小培训.
ODPS 是那个 飞天 分布式系统的一部分.
主讲人指出 Hadoop 仅是软件, 而飞天是包括软件, 硬件, 管理流程的一套数据处理系统.
主管说我们 team 做的东西暂时用不到 ODPS.

Wed

一边看文档一边改些格式错误, 并标注一些 inconsisitent 的地方...
Atom Editor 的 Markdown 实时预览真不错.
mentor 让我部署服务端代码.

工程管理用 Maven; 架构技术是 SpringMVC; IDE 用 Intellij IDEA; 应用服务器本地开发用 Tomcat 不知道线上用什么; 数据库直接连数据中心 (?) 的远程数据库, 因为端口是 3306 所以大概是 MySQL; 单元测试用 JUnit.
( 好些只听说过的东西要真的去用了吗...( ゚∀。) )
因为 Maven 版本以及 Tomcat 版本的原因耽误很长一会.

少将去另一个厂区培训了今天.

Thr

想仔细学 SpringMVC, Maven 甚至 Java Annotation 的基础=.=
mentor 说不用这么干, Spring 知道流程就行...
mentor 给我用断点大法演示了:
接收 Request - 根据 url 匹配到不同 Controller - 解析 json 格式的 parameter - 根据 parameter 来调用不同的业务层里的处理类. ( 貌似是"策略模式". )
的流程.
Intellij IDEA 的调试挺好用.

第一次用 Navicat 连接非本地的数据库.

Fri

十点多 team 开例会. 总结近期工作, 展望下一步工作.
生产率蛮高的啊...

单步调试慢慢看, 记下不懂的 Annotation ( Spring 用得那些 ) 然后去查...

涉及 json object - java bean 转化的时候, 不可避免地要 "根据类名找类", 以及 "根据字段名赋值". 这时候反射就一片一片的...

看到项目里有一些 util 类, 我问主管和 mentor 公司里有没有通用类库的共享和管理机制.
他们说现在阿里以小 team 作业为主, 通用类库の仓库有一些, 但很多无人维护.
有些做得好的开源出来了, 比如 fastjson, 以及改造过的 nginx.
fastjson 库据说是最快的 json 解析库. https://github.com/alibaba/fastjson/
tengine 是改造过的 nginx. https://github.com/alibaba/tengine

看到 DAO 层的时候, 注意到 sql 查询语句写在 sqlmap*.xml 里...
在 Controller 的 execute 返回之后, 蛋疼地单步跟踪, 看 Spring 框架那部分的函数调用一个一个退出.

team 里的同事好认真好负责的说=.=
六点下班, 基本上七点半都不走, 当然我是吃完免费晚餐后在休闲区玩到七点多才走.
认识了一些打台球和乒乓球的=.=

logdown

卧槽! 自动生成标题的翻译作为 url! Amazing...
谢 qiukun 大神( ゚∀。)