时间:25min 公里数:2.1km 方式:跑步机 体重:69.15kg

备注:两次8速,1次2分钟,1次1分钟,5分钟6.6速(特意增加0.1),其它是3-5.5速用于过度。跑步的过程想,之前几次没有坚持下来的原因,一是早上起床脚后跟痛,二是看朋友不是号称跑了十公里就是一个小时之类的,把那个当成目标很沮丧。接下来调整,先以20-30分钟为限,不追求达不到的目标,一点一点提升运动量,哪怕用的时间长一点都行,反正这辈子不会以运动员为职业了,以健身为主要目标。

早年间做管理系统和ERP,因为厌烦甲方不停的需求变动,反正界面多数也无外乎是新增改查,于是常常有这样的表结构设计:

表一、定义字段

field_id field_name 1 name 2 code 3 company

表二、字段值

field_id field_value 1 张三 1 李四 2 ZHS 3 木楼科技

当时在不考虑性能、并发数以及界面多样性的时候,这种方式解决了不少问题,我经历过的两个公司都以这种方式来设计表结构,每次我碰到有看不明白的同事,就告诉他们『你就当是把数据表逆时针旋转90度来看』,但后来情况发生了一些变化,06、07年起从B/S管理系统转入互联网开发,数据表的字段往往不发生大的改变但是程序经常改变,有时候是界面,有时候是新的业务逻辑,有时候甚至是终端。。。比如后面的PC互联网转到移动互联网。

重构www.luckylight.cn的时候,又发现了这种表结构设计。。。也难怪,这是7、8年前的网站。

这里面是不是隐藏着这么两种不同的架构哲学?

1、程序不变,表结构经常变(ERP购买或外包给开发团队开发完之后,要改软件程序相对要麻烦)。

时间:26min 公里数:2.1km 方式:跑步机 体重:69.6kg

备注:两次8速,1次2分钟,1次1分钟,5分钟6.5速,其它是3-5速用于过度。今天感觉气息一直没有调整好,跑5分钟6.5速的时候有点吃力。

时间:25min 公里数:2.1km 方式:跑步机 体重:69.4kg

备注:两次8速,1次2分钟,1次1分钟,5分钟6.5速,其它是3-5速用于过度。因为看了那个BBC记录片,说短时间冲刺然后停下来休息,恢复后继续,效果也很好,试了下,果然轻松了不少。

时间:26min 公里数:2.1km 方式:跑步机 体重:69.05kg

备注:两次8速,1次2分钟,1次1分钟,以前在健身房好像8速连续跑最高记录超过20分钟。5分钟6.5速,其它是3-5速用于过度。貌似这次重启跑步脚后跟不痛了,但愿能保持,跑8速的时候不自觉用前脚掌落地了,不知道是什么原因,以前是脚后跟落地。

时间:25min 公里数:1.94km 方式:跑步机 体重:68.8kg

备注:昨天骑了40分钟摩拜单车,被谢土豪叫去宝安看厂了,回来很晚,所以昨天没跑,但是,以后要减少此类借口。1分钟8速,6分钟6.5速,其它是3-5.5速用于过度。

时间:20min 公里数:2km 方式:跑步机 体重:69.3kg

备注:一两年没跑了,第一次,5分钟4速,5分钟6速,5分钟3速,3分钟6.5速,2分钟慢慢降下来。

这几年关注重心在移动互联网和智能硬件上,一直没时间来关注前端,转回头来看好像万紫千红的样子,正好要重新开发集团官网luckylight.cn和重构公司网站moorol.com,于是打算把前端整理一下。

以前一直用jquery,并且引入js脚本都是用古老的script标签方式,js文件多了确实相当的乱。

对比了requirejs和sea.js,最后决定使用requirejs,主要原因是文档比后者全,并且在英文世界里可以找到很多资料,这里简单说一下思路,并不提具体实现。

原来旧的js文件组织方式大约如下:

static css img js a.js plugins plug.js

用了requirejs之后,只有一个script标签导入,html页面看起来是干净了很多,但是这样还不够,事实上浏览器还是通过requirejs一个http请求也不少,要解决这个问题,就要打包了,网上讲了很多怎么打包,怎么编码。但是很少有讲在django里应该怎么样组织目录结构,经过考虑,我使用了如下简单结构,src放开发代码,dist里放r.js打包之后的文件:

static src dist

打包在dist目录里,生产环境上只有dist目录,在settings.py里修改静态文件配置方便开发:

if DEBUG: STATIC_URL = '/static/src/' STATICFILES_DIRS = ( os.path.join(BASE_DIR, 'static/src'), ) …
/media/upic/2017/02/25/20170225.jpg

小雨,天气阴冷,传张晴朗的图片罢。

执行如下命令即可:

cd /usr/local/lib rm libcurl.so.4 ln -s /usr/lib64/libcurl.so.4.1.1 libcurl.so.4 ldd /usr/lib64/python2.6/site-packages/pycurl.so

参考:http://kb.sau.net.au/article/fatal-python-error-pycurl-libcurl-link-time-version-is-older-than-compile-time-version-325.html

用django-rest-framework-jwt来验证微信调用,情况很复杂,先过api应用,再从api服务器调用数据中心rest api,不细说。

取得token之后验证一直报:{“detail”:”Error decoding signature.”}

原来是看范例上

curl -H "Authorization: JWT <your_token>" http://localhost:8000/protected-url/ 没去掉尖括号一直,一直报如上错误,去掉之后就好了。。。这好比当年写文档千强调万强调『去掉中括号』,结果老都老了还犯错。

为了用Facebook能登录公司网站,安装python-social-auth,但在生产环境上migrate时报如下错:

 

django.db.utils.OperationalError: (1071, 'Specified key was too long; max key length is 1000 bytes')

试了python-social-auth内的设置:

 

SOCIAL_AUTH_UID_LENGTH = 222 SOCIAL_AUTH_NONCE_SERVER_URL_LENGTH = 200 SOCIAL_AUTH_ASSOCIATION_SERVER_URL_LENGTH = 135 SOCIAL_AUTH_ASSOCIATION_HANDLE_LENGTH = …

在服务器上安装scrapy,几年不玩这个框架,报ImportError: No module named _sqlite3,按网上重装来重装去的方法,未果。

另外有些资料甚至要重新源码编译python,想想太麻烦,又没做python虚拟环境。

有位仁兄提出一个暴力方法,可能不太优雅,但简单搞定之,

查找_sqlite3.so文件:

[root@localhost ~]# find / -name _sqlite3.so /usr/lib/python2.6/lib-dynload/_sqlite3.so

查找python位置:

[root@localhost ~]# whereis python python: /usr/bin/python /usr/bin/python2.6 /usr/bin/python2.6-config /usr/lib/python2.6 /usr/local/bin/python /usr/local/bin/python2.7 …

哥铎新书要出版,帮他建一个独立博客(www.gaoduo.name),用我自己用Django写的,他觉得不习惯,没办法,给他弄了个WordPress,今天一早发来抠抠说发布不了文章云云。

果不其然,编辑器用不了。

先更新最新版本,不行。

后试了中文互联网上的那个修改wp-config.php最后一行的方法,也不行。

用Chrome的代码审查发现/wp-admin/post-new.php页面一直报 ERR_INCOMPLETE_CHUNKED_ENCODING,再查看nginx 日志如下:

 

open() "/var/lib/nginx/tmp/fastcgi/3/00/0000000003" failed (13: Permission denied) while reading upstream

 

跑到nginx配置去一看,以前建了一个用户给某小兄弟玩微信API,他早就不用了,改回user = nobody,搞定。

朋友圈一个叫蒋华的小兄弟直播青藏线骑行,八年前大叔我也相当青春,2008, 西行

到拉萨一定要去新华社对面那个叫平措康桑的青年旅社住下 已经忘了楼顶酒吧的名字 好像叫418 老板很瘦 养两条大狗 还有 如果当年那个前台姑娘已经当妈

转告一声 说我的兄弟贵阳老杨很想念她

/media/upic/2016/07/08/new_journey.jpg

2016年5月5日,木楼科技成立。其实当天该打个记号的,像我这种没啥仪式感的人,趁没忘记,先记下。

/media/upic/2016/04/14/img_5368_1.JPG

小范同志说:

打竹笋,步步高升啊

 

/media/upic/2016/03/24/blog_siji.jpg

发布了一个大屏远程分享照片的Android App,使用微信把照片不限时间和地点传到某个屏幕上。

做了个官网:http://www.sijiphoto.com,感谢http://html5up.net/提供的免费响应式Web模板。

点这里直接下载, 也可以在沙发管家电视应用市场 -- 实用工具里下载。

教程:点这里

来来来,听首歌:《春夏秋冬》-- 张国荣

用到了以下开源框架及第三方服务: 1、fresco. 2、volley. 3、django. 4、django …

1、在urls.py里,不要直接用字符串来描述方法、要用引用来配置(越来越向OOP看齐?),比如,再这么配置的话,

url(r'^$', 'portal.views.index', {'template_name': 'index.html'}, name='index'),

会得到一个警告:

RemovedInDjango110Warning: Support for string view arguments to url() is deprecated and will be removed in Django 1.10 (got portal.views.index). Pass the callable …

/media/upic/2016/01/04/beatles_crossing_road.jpg

关于工作

智能家居来得没那么快,智能硬件暂时也还是大公司的天下,敲代码、融资、人来、人往,跟有些人意气相投、跟有些人意气不相投。因政治观点严重相左而跟老潘吵翻的杨博士说:我觉得,单独做生意,合伙做生意,人品相当重要,要真诚,别忽悠。

我跟杨博士政治观点也不一样,但关于这条言论,深以为然,可惜不是所有人都以为然,叹。

关于生活

上梅林、平湖华南城、欢乐海岸、香蜜湖沃尔玛、福田花鸟市场、华强北、大鹏和西涌,就这么几个地方。 有一搭没一搭的健身,每次饭局被谢土豪拿来奚落。

钓了4、5次鱼,大鹏空气真好,我被一种叫泥猛的鱼扎破手指,钻心一样的痛。

经常去看电影,淘宝电影APP有8.8元特惠抢座。

关于家庭

我妈专注催婚催子几十年,婚都结了两次,孩子却没有一个,老婆和我因大龄未育,这方面成两家人及若干亲朋好友重点关注对象。

谢土豪鬼鬼祟祟猜测我有不育症,我只好把孕前检查报告给他看,然后抢了他两支户外电筒。

关于政治

失去了年轻时认真讨论政治的热情,时常内心愤懑,却充当无节操段子转发手。越来越向我所鄙视的某侗族著名作家靠拢,默默当个无耻的犬儒主义者。

以前我会很认真地跟人讨论政治,现在我要么内心说“你不懂”婉拒,要么以黄暴段子敷衍之。。。我都看不起我自己这表现。

其实政治是美好的,逻辑是优雅的,深度思考是让人上瘾欲罢不能的,现在通通变成“你懂的”。

关于金钱