Category Archives: 日志

日志

2017~~新的开始

新年伊始,终于把完成了搬家,将blog迁移到腾讯云上来,庆祝一下

烟花

-

3D打印 日志 软硬兼施

将虚拟照进现实—-3D打印初体验

小时候一直梦想有一支神秘马良的笔,后来才懂得,神笔只存在于童话中,想把大脑构思千百遍的东西做出来,只能靠自己的双手和合适的工具
于是开始发掘各种各样的工具:从剪刀、各种改锥,到烙铁、各种钳子扳手,再到电锯、电钻
相信每一个男孩子都或多或少的接触过这些工具,并且用它们来编制自己的梦想

用捡来的小马达、铁皮罐子剪出来的铁皮,做成小风扇
用撑温室大棚用的竹条、废旧的木条,做成弩弓
用拆开的自行车链条、车条、剪成条的内胎皮条,做成的火柴枪
自己在纸箱上画一个表盘,然后配上捡来的机芯、表针,重新拼成挂钟~~初中时做的,一直到我上大学,老妈都拿这个钟看时间

后来,开始接触电脑里的各种建模工具:flash、cad、3dmax,建模、然后几行代码的脚本生成动画
再后来,工作了,偶尔需要做些小游戏,和设计师一起,用更复杂的代码,完成更炫的动画

然而,电脑里建出模型和上面动手做的东西,却有一个不可逾越的鸿沟:虚拟与现实
即便时下流行的AR、VR,也只是把虚拟做的更具现实感
你不可能拿pc软件画出来的杯子喝水,更不可能用画出的大饼来填饱你的肚皮

但是,随着一件事物的出现,这一切似乎有了转机,这就是3D打印
简单来说,3D打印就是可以把虚拟建模出来的东西转变成现实的工具
—-对,它可以部分的完成神笔的功能~~虽然这种能力还很弱

以前的3D打印机价格都挺高,最少的也要三五千,所以限于囊中羞涩,一直没有出手购买
直到偶然在淘宝发现micromake“三角洲”3D打印机,相对于普通的方盒子机,这种打印机结构更简单,成本也更低,淘宝售价低配版¥999,虽然精度较低,但是做入门用也够了
到手的就是上图的这堆散件,把这些东西拼装起来,大约用了我一个下午的时间
现成的各类小玩意的3D模型并不难取得,搜一下一大堆
使用工具软件“cura”来连接打印机,导入“.stl”3d模型文件,直接打印,或者生成“.gcode”文件,放在sd卡再打印
使用3dmax建模,可以导出成stl文件,即可再用curl来完成后续的打印动作
整个过程很简单,但其中也有不少的坑:

1. 提前准备“704硅橡胶”(淘宝买,或者让打印机卖家送,五金店什么的很难找的,更不要用牙膏什么的替代…),新手使用不熟练,喷头、喉管的连接位置都很容易堵,这时就需要拆开清理,然后再组装时就需要特别注意:照教程吐足够的硅橡胶、两个螺口都要拧好晾干以后再做下一步的组装动作,否则打印时会漏的一塌糊涂。。。别问我怎么知道的,这个过程我已经做过五次了,最近一次才算弄利索
2. 3dmax和cura配合,长度单位协调有问题,都是“毫米”单位,3dmax到处的stl模型,导入到cura里,需要放大“25.4”倍~~~对,1英寸=25.4毫米,应该是3dmax到处时单位搞混了
3. 昨天刚刚发现的问题,建好的模型,或者下载的模型到了cura里,打印出可能会有问题,空心的东西莫名其妙会被封口,所以打印前一定要检查Layers分层
4. 打印机校准一次、校准对就行了,不用重复校准
5. 要有耐心,打印速度不要太快,30足够了,否则打印出来会特别粗糙~~这种速度,打印一个杯子预计需要五个小时以上
6. 打印材料方面,同样价钱、同样卖家的PLA材料,白色的最好用,红色的其次,黑色的最差
7. 建模方面,有个45度原则,就是倾斜的部分,不要超过45度,否则就需要加支架
8. 最后一点。。。不要抱太大希望,真的只是入门而已:打印出的东西很粗糙,表面是水波纹的,精度也就0.5mm

ok,基本就这么多,这个打印机做“神笔”确实有些吃力,也就是入门,打印一些精度不需要太高的东西,或者,搁家里做摆设也不错



↓↓–2016年05月28日 新加–↓↓
之前一直在试着用3dmax做建模工具,除了上面的单位问题,发现3dmax建模最大的问题是,稍微复杂一点的模型,打出来就会乱,变形、或分层错误
无奈,只能使用更专业的工具,solidWorks
最近一周在学solidWorks,很棒的工具

Hello World 日志

微信支付的又一个坑

    从前年微信支付刚公测开始,前后接了三次微信支付。。。这次再接,居然还是磕磕绊绊,今天半个下午,都被一个下面这个错误提示误导了:
         getBrandWCPayRequest:fail_no permission to execute
    而且还不是总是出这个错误,有时是能正常支付的
    一般,出现这个错误,是因为微信支付授权地址不对,可是检查了n次,支付授权地址、js授权域名、oauth授权地址,都没发现问题
    然后怀疑签名错误,于是对比公钥,修改公钥,重新上传证书
    。。。总之,折腾了N次,还是不行
    ~~软件开发就是这样,如果一个问题,所有可能的原因都不是原因,那就剩下最后一个不可能的原因了:
    因为业务需要,这个项目要接入两个微信公众号,为了开发方便,两个公众号的代码是一起的,支付授权的url地址也就是一起的~~或许这就是原因
    设法将支付授权url地址区分开~~~问题解决!!
    猜测微信的“支付授权地址”是这样工作的,在微信客户端内,存在一个“支付授权地址–微信公众号”的缓存,而非“微信公众号–支付授权地址”,缓存更新不及时,就会出现上面的错误表现
——
btw:
    由于微信并未修改内置浏览器的内核,所以内置浏览器的很多特殊特性,都是微信webview通过外围的ios、android程序加入的
    比如新出的摇一摇页面获取openid/跳转关注页面,其实不过是再摇一摇出来的页面里种了一个cookie标记,如果你从摇一摇的页面退出来,再通过url直接进入这个页面,还可能调摇一摇的jsapi
    再比如oauth授权,如果A帐号进过你得站点,切换到B帐号后在,再进你得站点,用户身份还是A…因为cookie还在
    不过,实事求是的说,微信的jsapi确实很NB,将大量的原生应用的权限授权给了webview,大大扩展了web开发的可能性
    相对于微信的webview,phonegap这类专业号称使用webview做出原生应用的东西,就是个渣渣~~

幻界杂谈 日志

冰火志

《冰与火之歌》,史诗级的魔幻巨著,已出版的五部、15本,总共应该有五千余页~~~~~历时九个月,终于读完了

上班不读,在家不读,只在上下班的地铁里,每天不到一小时~~已经用这种方式读完了基地系列和冰与火系列,下一步要读哪个,还没目标,或许会把阿瑟克拉克的再读一遍,或者远望系列、沙丘系列

还是回来说冰与火吧,整部书的发生在一个虚构的世界里,社会形态类似中世纪的欧洲,大部分是“人间”的故事,魔法的成分很少

 

骑士、领主、封臣、奴隶、国王、学士

城堡、王国、草原、荒漠、大海、自由贸易城邦

铁卫、海盗、马帮、佣兵、野人、守夜人

心树、光之王、魔龙、冰原狼、异鬼、尸鬼、魔法

长矛、匕首、长剑、弯刀、战锤、野火、龙晶、瓦雷利亚钢

爱与恨、情与怨,忠诚与背叛、聪明与愚蠢、坚强与懦弱、仁爱与残忍、诺言与谎言、欲望、无耻

诸多关键字,勾勒出了一个庞杂的故事背景,让各色人等争相表现自己的爱恨情仇与喜怒哀乐

 

史塔克、坦格利安、拜拉席恩、兰尼斯特、提利尔、佛雷、波顿、马泰尔、徒利、葛雷乔伊……

一个家族就是一支力量、一段历史,若干家族,一起演义维斯特洛几千年的历史

 

丹妮莉丝、琼恩、提利昂、艾丽娅、凯瑟琳、布蕾妮、詹姆、瑟曦……

马丁老爷子借助他们的眼睛和视角,将故事为我们娓娓道来

 

同样作为国王,罗柏与丹妮对婚姻的选择,向我们展示什么叫不成熟

同样作为女王,瑟曦与丹妮对属下的态度,向我们展示什么叫大愚若智

所以,故事的解决似乎很明显,丹妮会一统天下,然而,马丁老爷子有不是按套路出牌的人,故事的解决究竟会怎样,或许只有他老人家自己知道

“欲知后事,且听下回”,第五部的结尾,为我们留下了一个无比开放的场面:

北方

正准备南下对付波顿的琼恩被捅了一刀,已经进入长城的野人和黑衣人之间脆弱的和平会被打破吗?

拉姆斯给琼恩的信里说,斯坦尼斯死了,是真的吗?

冯凯兰尼斯特死了,君临的烂摊子如何收拾,提利尔会彻底把兰尼斯特干掉吗?

奴隶湾

维克塔利昂率领的铁舰队对奴隶湾的战局会有什么影响?

贾科卡奥会帮助丹妮莉丝吗?

无畏的巴利斯坦能掌控弥林的局面吗?能打破渊凯的围困吗?

最后,最大的疑问,龙之号角能顺利到达丹妮莉丝手里吗?

 

日志

新东西

接手一个小项目,本来,想用go语言来做的,于是前半周便开始临阵磨枪的疯狂学习go语言
go真的是个好玩的东西,语法简单,又支持许多高级特性,package管理超方便,集动态语言的灵活、快速开发,与静态语言的高效于一身
语言编码格式神马的常见问题都好解决,eclipse就搞定了
然而,windows安装go环境却颇费了一番周折,开始是8g,后来是go run,最后也没找到合适的调试web程序的方式,只能在linux的测试服务器上做部署调试
虽然是小项目,但仍然要包含各种元素,需要一个一个搞定才能正式做项目
web框架,go有beego和webgo,都是很好用的MVC框架
mysql神马的也都不是问题
最后卡在了thrift上
thrift本身是支持go的,可以生成go的client,但是却找不到完整的例子,thrift文档里的example里没有go,按生成的client里的小例子做,根本走不通。gifhub里的两个go-thrift插件也都没走通。最关键的是,不管是百度还是google,相关的资料几乎都没有。折腾了一天,到周三下午的时候,眼看项目时间周期就要受此影响,最后不得不暂时放弃

放弃了,转向另一个早就想跃跃欲试的东西:nodejs
第一次用nodejs/express做项目也并不顺畅,选什么模板/怎么连mysql/thrift,以及怎么做权限过滤,还好,都解决了,但是最后险些卡在了图片验证码上
搜到的的资料,nodejs的验证码大部分都是基于node-canvas做的。canvas是nodejs的一个图形库,大概类似php所用的GD库。canvas和操作系统结合比较紧密,windows安装再次遇到了问题。要装npm-gyp来编译c++,进而需要安装Visual C++,还要装Python,可是最后“npm install canvas”的时候,还是TM不停的失败
还好,改了一下思路,找到了另外一个可以生成验证码的nodejs小插件:node-ccap,实现了需要的效果

已经很久没真正尝试过后端的新东西了~~~近三年以来,不再用java,也不用很久之前就开始研究的nodejs,而一直使用php,甚至几乎只使用cakephp~~~~鄙视
直到近期,发现cakephp一个很SB,却很关键,会造成整个系统无法工作的bug,才突然意识到,应该学点后端的新东西了

开始的时候没选nodejs,是因为个人其实并不看好nodejs在后端的作为。听过很多nodejs的经验介绍和分享,但几乎无一例外的,使用nodejs做项目的公司,开始时都是前端开发资源过剩,于是让前端团队去承担后端工作。
对于传统的后端开发,nodejs的缺点明显:单进程,与异步
多核时代的今天,nodejs的默认启动模式居然还不支持多核,让人很纳闷
大部分人都不习惯nodejs的异步模式,这也是其使用的一个巨大障碍
另外,基于js的后端程序,其效率可能只能与php相比,与java、go等静态编译型语言相比,先天不足