好久没更新这里的博客了, 实在抱歉, 也一直在研究DNN, 也有些心得和经验可供分享,不过困于自己的懒惰和懈怠, 有时想着想着就忘了,哈哈 :) 今天在此声明一下, 以后可能本博客将稍微改变一下方向, 就是不再只关注技术,有时也不妨分享一些自己的生活感想和其他非技术的, 将有点杂七杂八。生活本该丰富多彩嘛 :)
其实这段时间都在折腾twitter来着, 因为这些好东东都被国内和谐了, 无奈有些翻墙或代理也不怎么管用, 有时也罢工来着, 终于在昨日找到一个目前觉得最合适的方式,通过Google AppEngine搭建代理(不妨参考这篇文章Google AppEngine搭建代理,我都是照猫画虎给整上的),速度不错,而且长期有效并有可控性(都是自己的东西)。不过唯一缺陷是没法直接登录Twitter, 权宜之计就是借助一些国外可以直接访问的第三方客户端,比如ShareBox, 手机也是可以直接上twitter。通过Google AppEngine搭建的代理服务器,你还可以在博客里边部署一些关于twitter的插件,比如实时的Twitter消息, Retweet按钮等等。全力推荐,值得信赖。
好了,今天就聊聊几笔,算是重新开始博客的征程了。随便推荐一下这篇关于如何写博客, 特别是技术的文章博客二三事, 本人基本同意其观点。 还有这篇有点炒作但有些看点的文章腾讯做互联网之水:从马化腾多元化遇挫说起,看看想想,保留意见 :)

分享一些在项目用到的jQuery小技巧, 对自己做个记录,对别人也许有些帮助, 比如判断所获取的文档节点(element)是否存在, 如何判断Checkbox是否选中, 如何进行下拉框或下拉菜单(dropDown, select)等的相关操作等等。
Read the rest of entry »
何谓CSS hack ? 由于不同的浏览器,比如IE6,IE7,Mozilla Firefox等,对CSS的解析原理不一致导致生成的页面效果千差万别,此时我们需要生成不同的样式让其兼容不同的浏览器,并得到理想的效果。在此分享一些CSS Hack,希望对大家有所帮助。
Read the rest of entry »
如今DNN的版本很多, 4.x 仍是很普遍, 但5.x也是大势所趋, 让我们吹响DNN 5.x的号角吧, 在此跟大家一块分享最近的活动和情况, 如何优化DNN性能及其速度, 如何找回失去的ModuleConfiguration对象等等.
Read the rest of entry »
作为开发人员,我们的首要任务是写出能够工作的代码。但是,仅仅“能够工作”还不足矣,为了能够持续提供真正的价值,代码一定要简洁。
什么是简洁代码?
简洁代码不仅仅是人们所希望的,并且是必须的。如果代码不简洁,开发的速度就会越来越慢。直到有一天,修改代码所引发的不确定性、痛苦感和挫败感会使团队宁愿重写所有代码。但是,如果重写的代码不能比原来的代码更简洁,那么同样的问题还会存在,几年后整个团队依然会在开始的地方打转。
每个人对简洁代码的理解会有些许不同。但其中仍有共通之处:简单、无重复、易读、优雅。具有这些特征的代码易于维护,可以打破开发速度下降然后重写的怪圈,并能够持续提供真正的价值。
简洁代码哲学
“问题不在于代码是否简单,而在于代码能够在多大程度上脱离上下文仍能表达意图。”
“作为代码的作者,我们的目的是让代码尽可能的易于理解。我们希望读者能够快速阅读我们的代码,而不是细细地研究。我们希望读者能够通过代码直接理解我们的想法,而不是辛苦的挖掘代码背后的含义。”
“编写函数的第一个原则是,函数要短小;第二个原则是函数要更短小。”
“不要害怕使用较长的命名,有意义的长命名要好于莫名其妙的短命名,同时也好于冗长的注释。”
“好名字的价值如何估计都不为过,记住Ward原则:当每一个子程序都只做它应该做的,你就拥有了简洁代码。编写简洁代码过程中,有一半的任务是为短小的函数选择正确的命名,函数越短小、越内聚,就越容易给它起一个有意义的好名字。”
“副作用其实就是说谎,你的函数本来要做一件事,但是却偷偷做了其他的事”
“编程的艺术一直就是语言设计的艺术,编程大师将系统看成是故事而不是程序,他们使用他们选择的编程语言来创建一个更复杂更具有表达性的语言,来讲述这个故事。”
对于JavaScript的学习,可能最重要的还是要从思想上认识到JavaScript不是玩具语言。JavaScript的作用远不止增加点表单验证,我们可以看看GMail、看看Google Maps,如果开发者们没有对JavaScript足够尊敬,是不大可能写出如此优秀的Web应用的。
Read the rest of entry »
在开发web应用中, 自从我们抛弃了基于Table的页面布局后, 创建同等高度栏目或内容盒子的视觉效果(多是处于UI美观的考虑)已然是一个挑战, 在此推荐一个jQuery插件, 使得在同一个容器里“平衡”盒子的高度成为一件很简单的事情,从而修正了浏览器之间的差异, 还一个漂亮的UI.
Read the rest of entry »
如果你用过WordPress的博客应该都知道有一个很著名的插件WP-Cumulus WordPress plugin, 这也是一个3D Tag Coulds插件, 它通过Flash+js来展现Tag或目录的标签云效果, 超炫且极为实用, 而这也是我偶然发现, 觉得效果不错并对SunBlog有借鉴意义, 因为之前我也曾有JQuery来实现有些动画效果的标签云插件, 故现在手痒把Flash也整合进来, 如此用户就有更多的选择和效果呈现了, 经过一个晚上的努力终于把这一插件开发出来, 无缝的整合到SunBlog里边, 目前发布了Beta版本做个Demo, 即将开发的功能包括:
1) 用户可设置标签云呈现相关选项, 比如宽度, 高度, Tag颜色等等 (已完成, 更新于2009-02-15)
2) 整合JQuery Flash Plugin, 不用默认的SWF Object脚本, 简洁方便.
3) 独立成一个控件组件, 也许DNN其他模块也可以用到.
4) 更好的支持中文Tag呈现
SunBlog 3D Tag Coulds插件 Demo
相关链接:
Wordpress标签云插件: WP Cumulus
3D Flash 标签云插件 WP-Cumulus
3D Tag Clould 插件的实现技术描述:http://www.roytanck.com/2008/05/19/how-to-repurpose-my-tag-cloud-flash-movie/
如何使WP-Cumulus插件支持显示中文标签云
在Asp.Net开发过程, 缓存是我们经常遇到的问题, 同样在DNN模块开发中利用好缓存无疑对我们开发的模块是有显著性能提升的效果的。本文将介绍DNN核心API自带的缓存机制及其一些使用方法.
Read the rest of entry »
众所周知, C#或其他一些纯粹的面向对象编程语言都存在StringBuilder这一类型, 这是因为字符串在内存中是不可变的。这意味着, 如果为了得到第三个字符串而连接两个字符串时, 在一个短暂的时间内, CLR将会在内存中维护三个字符串的实例。为了缓解这种因字符串连接而带来的性能问题, 同时为了给字符串连接操作给予编程工具支持, .NET框架提供了一个名为StringBuilder的类。通过使用StringBuilder类来动态创建可变长字符串, 可以避免因CLR中的字符串的不可变性而带来的问题, 如此编写的代码通常会更容易阅读。而今天我们要提到的是解释型语言javascript下的StringBuilder, 大家都应该知道javascript只有原生类型String, 而并没有StringBuilder, 在此我想分享的就是扩展的StringBuilder版本。
Read the rest of entry »
最近一直在开发Asp.Net MVC项目, 对DNN稍有松懈, 不过由于所有技术都有相通和借鉴之处, 故在学习MVC框架的同时也对DNN有了更深的认识, 由于MVC模式对UI和前端界面的交互有更多的掌握, 需要你更多控制界面上的HTML元素, 包括布局控制和如何呈现等等. 在此想分享一点JQuery在MVC模式下(当然你在其他项目也是可以用到的, 比如DNN或传统的Asp.Net form)如何操作HTML SELECT元素。
Read the rest of entry »