2015年2月

work-think框架介绍及可行性分析

名称由来:
基于thinkphp的php-work框架,理念,路由等都基于thinkphp,而且计划可跟随thinkphp升级。

要解决的问题:
websocket、work-php的一直以来的路由问题,架构规范问题。

实现目标:
php-work方式的websocket server(后期可能兼容cgi方式的php)
JavaScript的前端框架,不仅仅是通讯层面,而是数据模型。
前端后端的兼容,包括php的cgi,前端的轮询,实现非理想环境的优雅降级兼容。

实现步骤:
1、后端使用开源websocket server配合thinkphp框架实现服务端的运行
2、前端使用开源的websocket client实现通讯。
3、制定通讯协议,包括客户端与服务端双向异步同步通讯,服务端与服务端同步通讯协议。
4、约定application层编码规范(预计后端完全参照thinkphp,前端待定)

- 阅读剩余部分 -

什么是“对用户友好”

当我提到一个工具“对用户不友好”(user-unfriendly)的时候,我总是被人“鄙视”。难道这就叫“以其人之道还治其人之身”?想当年有人对我抱怨 Linux 或者 TeX 对用户不友好的时候,我貌似也差不多的态度吧。现在当我指出 TeX 的各种缺点,提出新的解决方案的时候,往往会有美国同学眼角一抬,说:“菜鸟们抱怨工具不好用,那是因为他们不会用。LaTeX 是‘所想即所得’,所以不像 Word 之类的上手。”

殊不知他面前这个“菜鸟”,其实早已把 TeX 的配置搞得滚瓜烂熟,把 TeXbook 翻来覆去看了两遍,"double bend" 的习题都全部完成,可以用 TeX 的语言来写宏包。而他被叫做“菜鸟”,这是一个非常有趣的问题。所以现在抛开个人感情不谈,我们来探讨一下这种“鄙视”现象产生的原因,以及什么叫做“对用户友好”。

- 阅读剩余部分 -

提问的智慧

 在黑客世界里,当提出一个技术问题时,你能得到怎样的回答?这取决于挖出答案的难度,同样取决于你提问的方法。本指南旨在帮助你提高发问技巧,以获取你最想要的答案。

  首先你必须明白,黑客们只偏爱艰巨的任务,或者能激发他们思维的好问题。 如若不然,我们还来干吗?如果你有值得我们反复咀嚼玩味的好问题,我们自会对你感激不尽。好问题是激励,是厚礼,可以提高我们的理解力,而且通常会暴露我们以前从没意识到或者思考过的问题。对黑客而言,“问得好!”是发自内心的大力称赞。

  尽管黑客们有蔑视简单问题和不友善的坏名声,有时看起来似乎我们对新手,对知识贫乏者怀有敌意,但其实不是那样的。

- 阅读剩余部分 -

linux 配置smb文件共享

vi /etc/samba/smb.conf

[D]
path = /mnt/d
comment = Home Directories
browseable = yes
writable = yes
valid users = root
[E]
path = /mnt/e
comment = Home Directories
browseable = yes
writable = yes
valid users = root

[F]
path = /mnt/f
comment = Home Directories
browseable = yes
writable = yes
valid users = root

SQL,NoSQL 以及数据库的实质

在之前的一些博文里(比如这篇),我多次提到关系式数据库和 SQL 的缺陷。我觉得它们是制造了问题又自己来解决,而且没有解决好。现在有了点时间,我就把这里面的细节稍微说一下,希望有一定的启发作用。

描述性语言的局限性

当我指出 SQL 的问题时,总是避免不了有人反驳说:“SQL 是描述性的语言。你只告诉它 What,而不是告诉它 How。”我发现总是有人对一些我多年前就听腻了,看透了的“广告词”执迷不悟,而现在这同样的事又发生在 SQL 身上。他们没有发现,我不但能实现 SQL,而且已经实现过比 SQL 强大很多的语言(逻辑式语言),所以我其实早已看透了所有这些语言的实质,我知道那些广告词在很大程度上是误导。

现在我就来分析一下 SQL 与逻辑式语言之间的关系,并且找出这类“描述性语言”共同的弱点。

- 阅读剩余部分 -