MENU

程序

使用WinForm实现无边框窗口

虽说新项目还没有提上议程,甚至第一次策划会议也一直没有召开,但是准备工作多多少少是有一点点了。项目难度最大的,就是开发桌面应用程序。这几乎是一个大家都没有多少了解的问题,所以下手比较困难。2013年初我们从TFDi Design处采购了smartCARS,同年7月Hans使用Visual Basic .Net开发了iTracker 2.0,这大概是我们选用.Net的原因吧。

2013年底(真正的年底),我开始使用Visual Studio 2013了。与Hans,不一样的是,我使用的是C#。我长期使用各种类C的程序语言,所以C#很快就能上手了。期间写过一些测试性的东西,写过一个即时通讯(上一篇日志提到过,服务端使用PHP with Swoole Extension)。VS的控件样式实话实说是很难看的;较新的VS,提供一些Flat的属性,磕磕巴巴地出来一些效果。如下图:

当然,我要寻求更好的解决方案。我找到了一篇文章Designing GitHub for Windows。自己向来非常认同GitHub的理念,便也想使用WPF尝试尝试。尝试的过程很艰辛,毕竟接触微软家的VS才一个月,Blend更是从来没有上过手。折腾了一个晚上,最后觉得太困难,还是暂时放弃了。我将目光转向WinForm。WinForm开发难度小得多,我刚开始使用VS便能顺利写出诸如“计算器”之类的小玩意儿;此时我甚至已有使用WinForm实现无边框窗口的想法。尝试了一下,确实可以。接下来我讲一讲我的做法。

Read More

基于php框架的多国语言思路

不难知道,想使网站多国语言化,最简单的方法便是直接调用在线翻译。傻子都知道这种做法是做了等于没做,体验一定是非常不佳的。直接机翻,不可行。

在网上查了一下,最正统的解决方法是使用gettext扩展,然而我没有接触过,这里就不提它了。本文中的方案,我们从一个请求开始。

请求执行到调度器之前,使用一段代码判断cookie中有无语言项并判断其合法性(是否有这个语言)。若cookie中无而已登录账户,则将本账户指定的语言写入cookie。若仍无,跳转至语言选择页面。有的情况下,将语种写入常量LANG。程序继续执行到控制器,View层模版均需为不同的语言编写不同文件,如某路径为"Tpl/cn/index_index.tpl"。动态输出的内容也需要处理。为了避免空间复杂度太大,我们为每个控制器(必要时为某些方法)单独编写语言文件。形如:

<?php
return array(
    'key'=>'value'
);

Read More

对emlog的小调整

博客一直积着几个小问题没有解决,上周一并处理掉了。现在写出来,也许某些点会对大家有所帮助。

Read More

我又被坑了之百度云网盘再次坑爹

昨天被某货呼叫说VA China下载中心中下载内容点击后出现下载百度云管家客户端的情况。毫无疑问——又坑了。VA China下载中心调用了我VPS上的直连接口进行分流,既然那边坑了,那么肯定使用了相同代码的ANN也坑了。事不宜迟,各种常用开发工具伺候,拿到代码,开工调试。

第一步:访问一个下载页面,分析js变化。结论:dlink中混入了大量百度云管家客户端的下载链接,原匹配无效;但云管家客户端的expire time是10000小时,而真实文件为8小时。

Read More