随笔分类 - 02.后端开发
摘要: 之前的“文档在线预览:总体思路”受到很多朋友的欢迎,为此我继续讲一下文档在线预览两个步骤的一些技术细节。以下我以C#语言和Windows平台为例展开做一些介绍。
请记住,本文讲的是文档转化为pdf再转化为其他格式的方法,不讨论转化成的flash如何展示的问题(暂且假设用FlexPaper来展示吧)。文章后面附带本文讲到的相关操作的源码和软件下载,有些软件需要购买授权才能使用。
阅读全文
摘要:近两年出现了许多以“经验交易”为核心的文档平台,如豆丁网、百度文库、星期八等网站。这些网站将文档(知识)存放在网站(平台)上,供用户浏览、讨论、下载,配以良好的积分体系和金钱激励(运营),完美的协调好知识分享与知识传播之间的微妙关系。这样即有Web2.0的用户互动,也有Web3.0的价值分配,对社会也是非常好的资源重用,是非常棒的一种运营模式。
从技术层面讲,这类网站的创新主要有文档预览、知识商城和SNS三个块。今年初公司也决定在公司内部引入这种模式,以实现公司内部文档特别是售前方案的分享,很荣幸,我被安排为此项目的技术经理,也专门研究了文档在线预览的技术。如今项目已经上线将近百天,也是时候整理一下思路,这篇博客主要就是分析一些文档在线预览的技术细节,其实网上已经有很多类似的文章,但大多没有说得很清楚,也比较零乱,所以我想整理一个完整的文章来。文章内容将会涉及:总体思路、预览实现细节、缩略图实现、百度阅读器使用等。
阅读全文
摘要:8月20日,就在iSolution上线的第二天,本来想好好整整开发网服务器的我,却被服务器给整了。
记录
8月20日下午,拿着一块1T的硬盘,到数据中心给开发网服务器加上,自此,该服务器就再也起不来了。
此服务器上运行着开发网的AD、Exchange、DNS、SVN、VSS、SQLServer、artifactory、Memcached、文件共享等众多服务,服务的停止直接导致开发网的兄弟们无法开发、无法访问网站,纷纷罢工。
阅读全文
摘要: 前段时间,给部门的电脑及网络整理了一下,产生了若干台的“操作机”、“测试机”、“测试数据库服务器”,这些机器上班时间必须开着,根据公司规定或者节能要求,晚上又必须关机。管理起来非常麻烦,想来想去,搞了个自动开关机,甚是好用,分享如下:
自动开机
自动开机功能依赖于计算机BIOS设置的电源管理,现在的大部分机器都支持自动开机功能,只要仔细找一下,便可以看到。例如Dell的机器,在“Power Management”里面有个“Auto on mode”里,就可以设置开机启动的时间与及是每天都启动,还是只在工作日启动;再如,Lenovo的机器,在“Power”里的“resume on RTC Alarm”里,也可以进行类似设置。
阅读全文
摘要:金蝶软件招聘多名网站架构师、网站规划师、互联网开发工程师、网站设计师、网站策划师,工作地点:广东深圳,更多信息:http://4fu.net/kingdeejob。
阅读全文
摘要:
作为微博平台,支持通过IM发布、接收信息是基本功能之一,今天讲的就是如何让StatusNet支持Jabber/Gtalk。
Jabber服务器可以使用Openfire等开源项目自行搭建或者使用现成的平台(如:Gtalk)。Jabber客户端,用PHP的开源项目XMPPHP实现。这里将以Gtalk及XMPPHP为例讲解StatusNet中Jabber/Gtalk的配置。
1、注册Gtalk账号
2、下载XMPPHP
3、修改配置文件
4、安装PHP扩展
5、修改部分代码
6、支持接收消息
可能碰到的问题
1、验证时提示错误:Warning: stream_socket_enable_crypto() [streams.crypto]: this stream does not support SSL/crypto in H:\13.PHP\04.WorkSpaces\X
阅读全文
作为微博平台,支持通过IM发布、接收信息是基本功能之一,今天讲的就是如何让StatusNet支持Jabber/Gtalk。
Jabber服务器可以使用Openfire等开源项目自行搭建或者使用现成的平台(如:Gtalk)。Jabber客户端,用PHP的开源项目XMPPHP实现。这里将以Gtalk及XMPPHP为例讲解StatusNet中Jabber/Gtalk的配置。
1、注册Gtalk账号
2、下载XMPPHP
3、修改配置文件
4、安装PHP扩展
5、修改部分代码
6、支持接收消息
可能碰到的问题
1、验证时提示错误:Warning: stream_socket_enable_crypto() [streams.crypto]: this stream does not support SSL/crypto in H:\13.PHP\04.WorkSpaces\X
阅读全文
摘要:
之前在“系列(2)基本安装”和“系列(3)友好URL与OpenID支持”中都曾提到过一个ext目录,目的是为了更好的理解StatusNet到底使用了哪些库,这些库可以在哪里下载。
事实上,StatusNet的源码中已经包含了这些开源库,甚至连需要用到的PEAR库都已经准备好,他们存放在StatusNet根目录下一个叫做“extlib”的目录里。
这样,“系列(2)基本安装”中提到的“准备相关开源项目代码”这一步就可以完全省略掉
阅读全文
之前在“系列(2)基本安装”和“系列(3)友好URL与OpenID支持”中都曾提到过一个ext目录,目的是为了更好的理解StatusNet到底使用了哪些库,这些库可以在哪里下载。
事实上,StatusNet的源码中已经包含了这些开源库,甚至连需要用到的PEAR库都已经准备好,他们存放在StatusNet根目录下一个叫做“extlib”的目录里。
这样,“系列(2)基本安装”中提到的“准备相关开源项目代码”这一步就可以完全省略掉
阅读全文
摘要:
友好URL又称为Pretty Url或Fancy Url,目的是给客户端提供简洁、漂亮的URL地址以提高易用性及搜索引擎优化。在这里是使用Apache的Rewrite来实现StatusNet的URL友好化。
OpenID渐渐流行,使用OpenID使得网站的注册和登录方便了许多。StatusNet启用对OpenID的支持非常简单。
阅读全文
友好URL又称为Pretty Url或Fancy Url,目的是给客户端提供简洁、漂亮的URL地址以提高易用性及搜索引擎优化。在这里是使用Apache的Rewrite来实现StatusNet的URL友好化。
OpenID渐渐流行,使用OpenID使得网站的注册和登录方便了许多。StatusNet启用对OpenID的支持非常简单。
阅读全文
摘要:
由于StatusNet引用大量的开源项目,加上在中文环境中有点水土不服,导致StatusNet的安装过程会出现许多的不好处理问题,在此我记录下我的安装过程及碰到的问题和解决方式。1、启用PHP的PEAR,具体启用方式请自己搜索解决方案。
2、在PEAR中使用如下命令,下载相关源码
3.1、在StatusNet程序目录创建“ext”文件夹;
3.2、下载XMPHP,并解压到ext目录;
3.3、下载OAuth.php,保存到ext目录;
3.4、下载PHP OpenID Library,解压Auth目录到ext目录;
3.5、下载PHP Mark down,解压markdown.php到Ext目录;
阅读全文
由于StatusNet引用大量的开源项目,加上在中文环境中有点水土不服,导致StatusNet的安装过程会出现许多的不好处理问题,在此我记录下我的安装过程及碰到的问题和解决方式。1、启用PHP的PEAR,具体启用方式请自己搜索解决方案。
2、在PEAR中使用如下命令,下载相关源码
3.1、在StatusNet程序目录创建“ext”文件夹;
3.2、下载XMPHP,并解压到ext目录;
3.3、下载OAuth.php,保存到ext目录;
3.4、下载PHP OpenID Library,解压Auth目录到ext目录;
3.5、下载PHP Mark down,解压markdown.php到Ext目录;
阅读全文
摘要:
StatusNet是一个使用PHP语言开发的开源微博平台,此平台可以用于构建一个基于自己的分享与即时联系平台。StatusNet可以使您的网站的更加互动和社区化,提升网站口碑。
StatusNet支持文件分享、用户群组、自定义皮肤、与其它社会网络(如Twitter、facebook等)互联互通、从手机端和PC桌面发起访问、浏览器插件、短信接口、即时通信接口、多国语言包,还有很多的插件和应用。
StatusNet兼容Twitter的API,大部分的Twitter客户端可以容易就支持StatusNet,这使得StatusNet显得非常灵活。
StatusNet使用了包括Pear、OAuth、XMPPHP、openid、markdown、Yadis在内的大量开源程序,也使用了许多在线服务(如:snapshot、tinyurl),这使得系统的研究StatusNet可以学习大量开源程序
阅读全文
StatusNet是一个使用PHP语言开发的开源微博平台,此平台可以用于构建一个基于自己的分享与即时联系平台。StatusNet可以使您的网站的更加互动和社区化,提升网站口碑。
StatusNet支持文件分享、用户群组、自定义皮肤、与其它社会网络(如Twitter、facebook等)互联互通、从手机端和PC桌面发起访问、浏览器插件、短信接口、即时通信接口、多国语言包,还有很多的插件和应用。
StatusNet兼容Twitter的API,大部分的Twitter客户端可以容易就支持StatusNet,这使得StatusNet显得非常灵活。
StatusNet使用了包括Pear、OAuth、XMPPHP、openid、markdown、Yadis在内的大量开源程序,也使用了许多在线服务(如:snapshot、tinyurl),这使得系统的研究StatusNet可以学习大量开源程序
阅读全文
摘要:
昨天给同事们做了个“Linux使用入门与服务器管理交流”的分享,PPT如下
阅读全文
昨天给同事们做了个“Linux使用入门与服务器管理交流”的分享,PPT如下
阅读全文
摘要:之前在博文“从PHP安全讲DedeCms的安全加固”中说过在PHP安全中保护“可写目录下的文件不允许被访问到的重要性,还提出了改名文件夹的方式来保护该目录。
如果用的是Apache服务器,还可以通过配置来禁止该目录下的PHP文件的访问,有两种方式:
方式一:.htaccess控制,适用于没有服务器管理权限。
在可写文件夹的目录下,建一个.htaccess文件,内容为:
方式二:修改Apache配置文件,适用于有服务器管理权限。
配置中增加如下内容:
阅读全文
摘要:先来看看原因吧,为什么PHP程序经常出漏洞,其实是由PHP程序本身决定的。PHP可复用性低,导致程序结构错综复杂,到处是冗余代码,这样不仅利于漏洞的产生,还影响漏洞的修得;PHP程序入门简单且普遍开源,导致很多人都可直接阅读代码,搜寻漏洞;这样便有源源不断的漏洞被发现、被修复、被发现……。而当前流行的PHP系统习惯用以文件形式做为缓存,这样就需要开放文件的写权限,这无疑成为PHP系统的软肋。目前针对PHP系统的攻击方式,除了已经很少出现的“注入”攻击外,大部分攻击都是通过系统的某个漏洞,向可写文件里插入一句话木马,以此方式获得shell。
网站安全从来都是服务器配置、文件权限控制和网站程序三者的相互配合,今天主要看看如果对DedeCms网站程序的改进来提高安全性。“可执行的文件不允许被修改,可写文件不允许被访问”这是网站权限控制的根本原则,网站程序在“可写文件不允许被访问”方面可做许多工作。就拿DedeCMS来说,我们可以在如下几个方式做好保护。
阅读全文
摘要:在编写或者修改用UTF-8编码保存的PHP文件时,有时会莫名其妙出现一些问题:
页面显示一个“锘”字,其他一片空白;
不能登入或者不能登出;
页顶出现一条空白;
页顶出现错误警告;
其它不正常的情况;
生成的图片浏览器无法识别。
分析原因:
文件以UTF-8编码保存时,有两种情情况:带Unicode签名(BOM)和不带Unicode签名。BOM信息是文件开头的一串隐藏的字符,用于让某些编辑器识别这是个UTF-8编码的文件。
类似WINDOWS自带的记事本等软件,在保存一个以UTF-8编码的文件时,会在文件开始的地方插入三个不可见的字符(0xEF 0xBB 0xBF,即BOM——Byte Order Mark)。它是一串隐藏的字符,用于让记事本等编辑器识别这个文件是否以UTF-8编码。对于一般的文件,这样并不会产生什么麻烦。
阅读全文
摘要:作为Web2.0的一大代表,Wiki不仅可以产生“维基经济学”的惊人成绩,而且在项目团队或者公司内部,Wiki已经成为团队协作、知识整理、创作、积累的重要工具。正好同事徐向我咨询互联网上有哪些好用的系统WIKI系统,于是我就写了此文,现在贴出来,有错误的地方还望大家指点,也期待大家提提自己的观点。
需求:
1. 所见即所得
传统的wiki编辑方式,太过于麻烦,所见即所得的编辑方式,可以大大提高wiki的使用率。
2.搜索便捷、准确
作为知识积累的宝库,如果没有便捷的搜索,再多的知识也很难被利用。
3.条目清晰
条目清晰,可以把知识结构梳理清楚,也方便寻找知识。
阅读全文
摘要:了解Cookie的同学应该知道,浏览器客户端是以domain,path,name作为Cookie的唯一标识的,只要Name、Domain、Path中的任何一项不同,Cookie就是不能同的。由此便产生的同名Cookie。
例如有四个cookie如下:
d=1; expires=Sat, 23 May 2009 03:48:22 GMT; path=/; domain=.dny.com
d=2; expires=Sat, 23 May 2009 03:48:46 GMT; path=/; domain=.test.dny.com
d=3; expires=Sat, 23 May 2009 03:48:46 GMT; path=/test/; domain=.dny.com
d=4; expires=Sat, 23 May 2009 03:48:46 GMT; path=/test/; domain=.test.dny.com
他们是可以共存的。
了解Cookie的同学也应该知道,cookie的domain、path在服务器端都是只写的,也就是说在服务器端不能读取
阅读全文
摘要:最近在等待CS2009的发版,等待之余抽时间做了些提前准备的工作,将CS2008.5 SP1本地化了一番。
特在此分享我本地化的过程,并提供相关语言包下载,翻译得不好的地方还请多多指正。
步骤一:
翻译Languages下的中文语文包,用CS Localization Ultra(http://www.ruri.com.tw/product/cslu/)。
附件里有我基于deerchao的语言包(CS2008)再做的翻译,版本是CS2008.5(SP1)。
将语言包到/Languages/目录下后,将/Languages/languages.xml里这行:
去掉注释,并改成:
再在web.config的节点里修改:
步骤二:
编辑
阅读全文
摘要:上周同事陈说朋友想建一个论坛,是一个服装商店的,负责人对网站一点都不懂,让我写点论坛选型的东西做参考,于是我就写了此文,现在贴出来,有错误的地方还望大家指点,也期待大家提提自己的观点。
PHP平台
支持此类型的虚拟主机最为普遍,并且价格便宜。
1.Discuz!(http://comsenz.com/products/discuz)
使用MySQL数据库,功能强大,用户体验好,后续可以朝SNS方向扩展,目前发展形式相当强悍,是国内使用最为普遍的PHP论坛。
2.PHPWind(http://www.phpwind.com/product.php?product=forums)
与Discuz!类似,曾经与Discuz!争得不分上下,目前已经降趋弱势。
3.CTB文本论坛(http://ctb.isyi.com/)
一个使用文本文件做为数据库的论坛,比较小巧,功能也较为简单。
国外可选PHP论坛
国外大部分论坛功能非常的强大,不大适合国人使用习惯:
vBulletin(http://www.vbulletin.com/)
phpBB(http://
阅读全文
摘要:昨天,谢老师说他的个人知识管理网站不支持中文搜索,随着内容的丰富,现在没有搜索显得非常麻烦,希望我能帮忙解决。
我看了一下他的CommunityServer是2007.1(3.1.20917.1142)的,从网上找来CS2007.1的源代码和相关支持中文的文档,便产生这两个dll,可以支持中文搜索。
这两个包是在2007.1官方发布的SDK上仅做了中文搜索相关的修改的,所以如果你用的是2007.1版本,而且自己没有做任何修改代码,则可以直接覆盖。
如果你用的是2007.1 SP1或者SP2,那么请下载2007.1的SDK,并分次升级到SP1或者SP2版本,然后参考我提供的两个文件的源代码来修改即可。
这两个源文件一个是CommunityServerComponents20项目Search目录下的SearchTerms.cs和CommunityServerSearchBarrel20项目下的SearchBarrelProvider.cs。
PS:这个dll不适合使用Enterprise Search的搜索。
阅读全文
摘要:记得去年NetFocus在群上说CommunityServer2.0的分页控件存在性能问题,当时没有留意,想不到最近就被我就碰上了,拿Pager类来说,出现问题的代码如下:
从代码中可以看出,程序直接实例化总页数多个的HyperLink,这样如果总页数过多时,必然会导致内存溢出。
可惜当时没有好好听netfocus说,没有记下他的解决方案,只好自己想就去来实现。
我采用的是对原代码影响最小的方式,只要改变原来的两个方法即可,解决的方法如下:
修改AddPageLinks方法:
修改RenderButtonRange方法:
阅读全文

浙公网安备 33010602011771号