易栈网-膘叔

浏览模式: 标准 | 列表 | 图文
域名注册资料的作用:保障私权而非社会控制

域名注册资料的作用:保障私权而非社会控制

一篇分析的还算不错的文章,可惜我不敢转贴。。

用朋友的话来说:逻辑性很强,可惜现实往往是不讲逻辑的,秀才遇到兵的情况比比皆是。

但是,如果您想看。。。

直接搜索本文标题,在google是排在首位的哦。。。

再次感慨一下,以后没有cn域名注册了。所以。他就算降为1元也好,不要钱也好,续费是免费的也好。以后。。。真没有人敢注册了

netbeans升级到6.8

netbeans升级到6.8

习惯性的打开google reader,发现有位同学的博客更新了,标题为:Netbeans 6.8 发布,首先需要解决的小bug,小小的看了一下。。

大约在几天前我已经开始使用netbeans了,理由嘛我在前两天也提及了:

来一直在用komodo的,也没有注意过使用netbeans的情况。
但最近使用的时候发现有点小问题,所以就临时先转到netbeans下了。
问题情况是,使用komodo增加一个live folder,但是这个live folder里的class和function都不会被自动提示。。。一下子郁闷了。所以才转为netbeans
这次既然它升级了,我总是要用用的喽。不过看上面那位同学说的,升级的注意事项,可能我也要关注一下了。

当然我也做为转帖工,继续转贴一下。这次升级,用netbeans官方的话来说,这次更新中:

Usually the new splash screen is one of the latest changes in the release repository. There is the final design of the splash screen.

其实我最关心的就是他们在RC2出来时,官方博客所说的:

We believe the speed has improved significantly

这次更新,把以前常见的,使用了很久的splash图片变了,觉得很有意思。。。 There is the final design of the splash screen.。。。难道以后还要变?这次仅仅只是为6.8所使用的?

e9490cac88d9936c1c59f633f78a62a1

RC2时的splash图片,以前的netbeans也都是这样。。当然更老的我也没用过,不知道是否是这个了。反正这个图案我见了好多年了。

55a77ffd7b2ff32645173c3233f9db25

新版确实很漂亮。。。

下面就是转贴的那位同学所写的博客内容了。不好意思,不转帖splash screen的图片了啦。。。,原文地址为:Netbeans 6.8 发布,首先需要解决的小bug

Oracle 对 Sun 的收购,还未真正尘埃落定,坊间就流言四起……Netbeans 6.8 的发布,无疑增强了大家对 Netbeans 在带着神谕的阳光下生存下去的信心。于是,还未上班前,趁着大家吃早餐的时间全速下回来了最新的 Netbeeans 6.8 的 j2se 开发版本。赏玩一番……

本来呢,由于工作的原因,Netbeans 我会用来做 PHP、C 的开发(无奈 python 插件还有许多 bug,python 的开发已经迁移到 pyDev 了),java 本身只是做做作业,随便玩以下的。但是完整的 Netbeans 版本体积直逼 Eclipse,下载起来实在让人心焦,所以就按照以往的习惯,下一基本的版本,再安装插件。

新的启动闪屏还是很有感觉的,貌似,能提高编码的兴趣……我是瞎说的……【他也认为splash screen不错】

菜单中文字体过小的这个缺陷看来还没有被修正。或许 Netbeans 的开发人员不觉得菜单字太小是个麻烦吧。

打开了“工具->插件->可用插件”准备安装 PHP、Python、C/C++ 的支持插件。这时发现不对了,插件怎么这么少?只有 21 个?看错了?Bug?搜索了以下,PHP 插件只有“Selenuim Module for PHP”这个 beta 版的插件。正式版的 PHP 插件没有了。Python 这个 Beta 版的插件有。C/C++ 支持这个正式的插件没有。

这实在太诡异了……是不是插件目录加载不完全?点击“重新装入目录”让 Netbeans 重新加载下插件目录,这时出问题了:

bae10ff92ef82a80c004d9937805a978

居然提示我无法连接……难道是给墙了?在浏览器里打开 Netbeans 默认的更新地址:http://dlc.sun.com.edgesuite.net/netbeans/updates/6.8/uc/final/stable/catalog_zh_CN.xml.gz,404 错误,原来是插件目录文件不存在。

访问 http://dlc.sun.com.edgesuite.net/netbeans/updates/6.8/uc/final/stable/ 得到插件目录文件 http://dlc.sun.com.edgesuite.net/netbeans/updates/6.8/uc/final/stable/catalog.xml.gz,通过“工具->插件->设置”添加这个插件目录作为更新中心的源。删除原来不存在的更新中心。PHP、C/C++ 的插件再次出现在可安装的插件列表里。

看来是多语言包出的问题啊!

跟进:https://netbeans.org/bugzilla/show_bug.cgi?id=178459 原来,更新中心的文件是对的,但是他们忘记发布了。

--EOF--

写本博客的时候。netbeans 6.8正在下载中,不知道我会不会出现这位同学存在的问题,总之,我会注意一下。黑黑,希望他们已经更新了。

CodeLobster简单试用

CodeLobster简单试用

昨日下午,QQ群突然群起震动。几乎每个有IT相关的群都弹出消息说verycd重开了。于是激动的打开verycd网站,果然,又能够打开了。。。

随手打开程序下载,发现了一款PHP的IDE,名为CodeLobster,看上面说的天花乱坠的,也就去官方查看了一下。还没听说过呢,就见到版本已经是3.3了。最主要也是我最想试用的就是那些jQuery、Smarty插件。

于是下载下来尝试了一下,毕竟他说这是一款免费软件。。。

下载完后安装时提示我是否安装插件,这才注意,原来插件是单独的而且是Trial版本,再去网站一看,得,原来插件是要钱的,默认只给你30天的试用时间,可以看这里了解一下价格:http://codelobster.com/order.html

打开软件后,新建了一个工程,是使用现有项目的,把一个ThinkPHP的测试项目,建为一个project,发现速度挺快。而且只要你写了new ,然后一些class都能够被提示出来。这点让我很吃惊,但仍然不能够对引用的类进行提示。【如果是一个function里返回了一个new出来的class,那么还是可以获取到它的方法的】

然后测试了一下所谓的sql自动完成,其实也就是判断你的输入第一个单词是啥,功能也不是特别强,至少没有象官网上的图片提示那样出众。

最后再测试了一下jQuery的自动完成,只能说还行吧,输入$.后,会弹出一系列的方法列表。同样没有提示。。。。

试用了很简单的一些功能,最后总结一下【由于没有详细试用,所以,可能不太详实】:

1、编辑器,很简单的编辑器,能够缩进、简单的自动完成、代码折叠,在HTML的时候,能够区块高亮【即输入<script>的时候,对于相临的</script>会有高亮显示】

2、关于自动提示,所有的自动提示都没有显示方法提示,即不能象其他的IDE那样读取源码中的phpdoc的注释,也不能提示这个函数是需要几个参数。。

3、sql自动完成其实并不完美,但它的好处是提示你一些方法的存在

4、project。说到这个。其实所谓的自动完成都是基于这个project创建时所生成的文件。用Editplus打开后会发现,项目扫描了所有允许载入的文件,并对其中的function,class做了缓存,这也是为什么编辑器在自动提示的时候速度很快的原因了。但缺点也在这里,如果项目较大,打开后,几乎死掉。同样,如果你添加了一个class,那么他就需要更新这个项目文件,好象又是再扫描一遍。。。哭泣吧

5、debug功能,我没有用上。。。。或者说我没有试用成功。郁闷。。

总体来说,软件功能一般,但如果想替换editplus也是可以考虑的。。。不过第一次使用时需要到网上先注册一下,那就觉得烦了。再加上插件要钱,估计使用的人也不会很多了吧?轻量级的IDE太多了,一些动态提示,做的又不是很完善。

值得一提的是几个小亮点,它在创建工程的时候,有wordpress module工程,即你可以在开发wordpress插件的时候会给你很大的方便,step by step就可以建立起一个空白的module了。。省去手工创建的麻烦。。。

最后,附上官方所介绍的功能【本人意见:偶尔玩玩可以,没必要使用。。。初学者可以试用,毕竟,sql的自动完成还是有点好处的(如果不记得sql命令),但用框架多了之后,都是在使用框架的ORM功能,估计也早就忘光了sql怎么写的了吧?】

The full list of all features of Free PHP IDE:

  • PHP, HTML, JavaScript, CSS code highlighting
  • PHP, HTML, JavaScript, CSS code collapsing
  • HTML autocomplete
  • Autocomplete of tags, attributes for current tag, closing tags.
  • HTML code inspector
  • Inspector makes it simple to find HTML elements buried deep in the page.
  • HTML toolbar
  • CSS autocomplete
  • Autocomplete of style property names and values.
  • JavaScript Advanced autocomplete
  • Autocomplete of keywords, DOM elements and their properties.
  • PHP Advanced autocomplete
  • This feature speeds up writing a code. Autocomplete includes wide selection of code completion listings.
    Lists are formed of both standard PHP and user's classes, variables, functions, constants and keywords. Starting typing new element, lists of all possible variants for its completion are being displaying after $this-> and ClassName::
  • PHP Debugger
  • The Debugger is a package of tools that allows a developer debugging applications during developing process. Before running, you need to configure it. Set necessary values for the following options in Preferences menu (Tools-->Preferences-->Debugger):
    • Virtual folder - path to a virtual project folder
    • Virtual host URL - url of a virtual folder
    • Path to php.ini - path to the php.ini file
    • Server - Apache version running on your computer. You need to select from the list, which displays all Apache versions installed on your machine.
    Features for debugger:
    • Functions Step Into (F11), Step Over (F10), Stop Debug (Shift+F5)
    • Watch window in debugger, displaying only user's variables
    • Local variables window and Call stack windows
    • Expand of objects $this-> while debugging
  • SQL Autocomplete
  • Autocomplete of database objects (tables, fields) and SQL structures.
  • Context and Dynamic Help with search for work with PHP, MySQL, HTML
  • DynamicHelp window automatically lists all possible references for current word. You also can use ContextHelp to get information about shortcut keys.
  • Code folding (collapsing)
  • Pair highlighting
  • Highlighting of paired tags and attributes.
  • Pair selection, tags and attributes selection commands
  • Selects content within current block.
  • Tooltip:
  • The tooltip enables to view values of variables marked with a mouse cursor,
    Tooltips for images and colors.
  • Navigation by holding CTRL key for A, LINK, IMG tags, BACKGROUND attributes and PHP functions
  • Class View
  • (View-->Window-->Class View) contains code elements (classes, functions and variables) of all opened files and of a whole application.
    You can easily navigate through your project and find all declarations for chosen element within it. In case of ambiguity solution dialogue appears.
  • Preview in a browser
  • Project manager
  • The project is connected with a folder on the disc. And its structure remains the same when transfers. Also there is an ability to search project's symbols and files using shortcut keys.
  • Incremental find
  • All standard functionalities for work with a code
  • Drupal plug-in available
  • Smarty plug-in available
  • WordPress plug-in available
  • Joomla plug-in available
  • JQuery plug-in available
  • CodeIgniter plug-in available
官方网址:http://codelobster.com/

膝盖老化?

不知道从何时起,膝盖总有点隐隐作痛的感觉 ,有的时候下楼也会感觉到象针刺的痛觉。一直以为自己算是缺钙,但其实还真不知道到底是啥原因。
去年夏天,由于疼的厉害,最后由岳父帮忙扎了几针,并同时使用艾绒熏了几天,大约一周左右,一天隔一天扎针、熏膝关节。最后,还真的是恢复了。

用岳父的话来说,是把里面的寒气逼出来了。估计我是关节炎了。

前两天,腿又突然疼了起来,这回是胀疼,下楼的时候根本就无法一步一步走。但因为是冬天了,扎针也不太方便,毕竟小孩睡在岳父他们那边,再扎针、熏艾绒,都不太方便,于是自己拿了点艾绒,回家自己熏了一下。

今天是第四天,昨天和大前天,我都熏了将近20分钟,现在感觉好多了。

反正,说不出是心里原因还是真的是有药效。总归是舒服多了啦。呵呵。不希望现犯这种病了。真的不舒服。NND

上google、百度搜一下“艾绒”吧,结果会显示【其实应该算是艾条,岳父他是经常去苏州的厂家直接购买的】:

艾、艾绒及艾炷艾条

1 艾的作用

  艾为菊科多年生灌木 状草本植物,自然生长于山野之中,我国各地均有生长,古时以蕲州产者为佳,特称蕲艾。艾在春天抽茎生长,茎直立,高60~120cm,具有白色细软毛,上 部有分枝。茎中部的叶呈卵状三角形或椭圆形,有柄,羽状分裂,裂片椭圆形至椭圆状披针形,边缘具有不规则的锯齿,表面深绿色,有腺点和极细的白色软毛,背 面布有灰白色绒毛;顶端叶全绿,椭圆形、披针形或绒形。头状花序,无梗,有苞片,略有白色细软丝状毛,7~10月开花。瘦果呈椭圆形,艾叶有芳香型气味。

   在农历的4~5月间,当叶盛花未开时采收。采收时将艾叶摘下或连枝割下,晒干或阴干后备用。艾叶中纤维质较多,水分较少,同时还有许多可燃的有机物,故 艾叶是理想的灸疗原料。关于艾叶的性能,《本草纲目》载:"艾叶能灸百病",用艾叶做施灸材料,有通经活络、祛除阴寒、回阳救逆等多方面的作用。(见图 ) 现代研究:蕲(祈)艾含挥发油约0.002%,主要成分为苦艾醇、苦艾酮。此外尚含胆素钾盐以及维生素甲、乙、丙、丁等。苦艾醇、苦艾酮有兴奋中枢作用。 苦艾中含有钾类、柔酸,氯化钾等,故有解热、止血、镇痛的作用。

2 艾绒的制备

   采集肥厚新鲜的艾叶,放置日光下曝晒干燥,然后放在石臼中,用木杵捣碎,筛去杂梗和泥砂,再晒再捣再筛,如此反复多次,就成为淡黄色洁净细软的艾绒。艾 绒按加工(捣筛)程度不同,分粗细几种等级,临床根据病情的需要而选用。一般若作直接灸,可用细艾绒;若作间接灸,可采用粗艾绒。

3 艾炷和艾条

  ①艾炷:以艾炷灸施灸时,所燃烧的锥形艾团,称为艾炷。每燃尽一个艾炷,称为一壮。 制作方法 制作艾炷的方法,一般用手捻。取纯净陈久的艾绒置于平板上,用拇、食、中三指边捏边旋转,把艾绒捏成上尖下平的圆锥形小体,不但放置方便平稳,而且燃烧时 火力由弱到强,患者易于耐受。手工制作艾炷要求搓捻紧实,耐燃而不易爆。此外,有条件的可用艾炷器制作。艾炷器中铸中锥形空洞,洞下留一小孔,将艾绒放入 艾炷器的空洞中,另用金属制成下端适于压入洞孔的圆棒,直插孔内紧压,即成为圆锥形小体,倒出即成艾炷。用艾炷器制作的艾炷,艾绒紧密,大小一致,更便于 应用。根据临床的需要,艾炷的大小常分为三种规格,小炷如麦粒大,可直接放于穴位上燃烧(直接灸);中炷如半截枣核大;大炷如半截橄榄大,常用于间接灸 (隔物灸)一般临床常用中型艾炷,炷高1cm,炷底直径约0.8cm,炷重约0.1g,可燃烧3~5min。

  ② 艾条:指用艾绒卷成的圆柱形长条。根据内含药物之有无,又分为纯艾条(清艾灸)和药艾条两种。一般长20cm,直径1.2cm。因其使用简便,不起泡,不发疮,无痛苦,患者还可以自灸,故临床应用更为广泛。

  纯艾条:取制好的陈久艾绒24g,平铺在8寸(26cm)长、8寸(26cm)宽,质地柔软疏松而又坚韧的桑皮纸上,将其卷成直径约0.35寸(1.5cm)的圆柱形,越紧越好,用胶水或浆糊封口而成

  药艾条:主要包括普通药艾条,太乙针,雷火针三种。 普通药艾条 取肉桂、干姜、木香、独活、细辛、白芷、雄黄、苍术、没药、乳香、川椒各等份,研成细末。将药末混入艾绒中,每支艾条加药末6g。制法同纯艾条。

   太乙针 其药物配方历代各家记载各异。近代处方为:人参250g,参三七250g,山羊血62.5g,千年健500g,钻地风500g,肉桂500g,川椒 500g,乳香500g,没药500g,穿山甲(土炮)250g,小茴香500g,蕲艾2000g,甘草1000g,防风2000g,麝香少许,共研为 末.取纸(纸宽41cm,长40cm),内置药末约25g左右,卷紧成爆竹状,越紧越好,外用桑皮纸厚糊6~7层,阴干待用。

  雷火针 用艾绒94g,沉香、木香、乳香、茵陈、羌活、干姜、穿山甲各9g,研为细末,过筛后,加入麝香少许。取棉皮纸二方,一方平置桌上,一方双折重复于上。铺 洁净艾绒于其上,拿木尺等轻轻叩打使均匀成一平方形,然后将药料匀辅于艾绒上,卷成爆竹状,外涂鸡蛋清,以桑皮纸厚糊6~7层,阴干勿令泄气待用。(注: 比艾条要粗大的多)

----

艾绒
几千年来,灸法一直使用艾叶,认为这是最好的灸疗材料,艾叶全国各地均有,以湖北蕲州李时珍的家乡所产的艾质量最好,称为蕲艾。采集的季节是五月。过端午节的时候,人们以菖蒲,艾蒿作为端午节的点缀,“家家蒲艾过端阳”这是人们由来已久的风俗习惯。
关于艾叶的性能,《本草》载:“艾叶能灸百病。”《本草从新》说:“艾叶苦辛,生温,熟热,纯阳之性,能回垂绝之阳,通十二经,走三阴,理气血,逐寒 湿,暖子宫,……以之灸火,能透诸经而除百病。”说明用艾叶作施灸材料,有通经活络,祛除阴寒,消肿散结,回阳救逆等作用。现代药理发现,艾叶挥发油含量 多,1.8-桉叶素(占50%以上),其他有α-侧柏酮、倍半萜烯醇及其酯。风干叶含矿物质10.13%,脂肪2.59%,蛋白质 25.85%,以及维生素A、B1、B2、C等。灸用艾叶,一般以越陈越好,故有“七年之病,求三年之艾”(《孟子》)的说法。
艾绒是用干燥 的艾叶捣研后除去杂质而成,柔软如绒,故称艾绒。艾绒按加工(捣筛)程度不同,分粗细几种等级,一般可根据治疗的需要选用。如直接灸要用细艾绒,间接灸可 用粗艾绒;劣质的艾绒生硬而不易团聚,燃烧时常易爆散落而灼伤皮肤,须加注意。艾叶经过加工,制成细软的艾绒,更具优点。其一,便于搓捏成大小不同的艾 炷,易于燃烧,气味芳香;其二,燃烧时热力温和,能穿透皮肤,直达深部。
艾绒要注意储存保管,平时可放在干燥的容器内,注意防止潮湿和霉烂。每年当天气晴朗时要反复曝晒几次。

dbanotes.net:数据分片(Sharding)设计问题一例

dbanotes.net:数据分片(Sharding)设计问题一例

正如本文的最后一句话:对于数据量不大的站点,首选如何利用好 Cache 吧,分片只是手段,不是目的。事实上,如果不是涉及到每天上万的交易量,Cache才是更好的处理方案。当然象文中回答的对象来自腾讯,那当然,对于拍拍网、Q币等交易,几乎每天都是过万的交易量,这时候他们才会考虑使用所谓的数据分片。不过,了解一下这种技术或者说是手段,出去IB一下的时候也可以吹吹啊。。

原文来自:http://www.dbanotes.net/database/sharding.html,全文如下【未作删节】:

Question: 假设一家 C2C 网站,数据库中某表存储买卖双方交易的数据信息,对于一条交易来说,买卖双方数据具有一定程度的耦合性,比如卖家的状态更新对应买家的状态也会更新,对于 一个中大规模的电子商务网站,架构师在设计中如何考虑数据分片的问题(假定该表随着数据的膨胀必须拆分)?

Answer:对于一个中大规模的电子商务网站,随着网站的不断发展,其相应的数据规模会不断膨胀。数据分片技术是使网站得于实现可扩展性的一种常用解决方案。对于 C2C 类型的网站,由于交易记录不容易进行水平的数据分割,因此对于这样的应用处理要再进行细分:

  • 买卖双方交易的信息,具备较高的时效性,即交易全部完成后就不会再有更新,因此这部分数据可以与正在交易中的数据区分开来,并可以单独分 表,定时归纳。具体的做法可以采用水平分割的数据分片技术,比如可以根据用户号码段范围进行切片,把不同的群体划分到不同的 DB 上,这样可以很好的进行横向水平扩展(Scale Out)。它可以很好的突破单节点数据库服务器的 I/O 能力限制,解决数据库扩展性问题。
  • 对于正在交易中的数据,主要根据时间进行分表。如果分的更细,则可以分三个表,但是这样在事务保证方面则要复杂很多,不建议这样做。

这个问答是《程序员》杂志架构师接龙栏目的第一期的内容。提问者是我,回答者是腾讯研发总监王速瑜先 生。其实我抛出问题后当时还真不知道接龙的是哪位,只是知道会是百度或是腾讯的朋友来回答,当然我也对这两家的数据处理方式都是比较感兴趣的。最后刊登的 内容或许让很多人觉得不过瘾 -- 如果能更详细一点就好了(毕竟还有其他问题呢)。不过能够引发思考就好,这也是这个栏目的初衷吧。

对这个问题或许可以补充的是,切分或许还算是容易的事情,但是切分后用户对数据的查询多少是有点麻烦。一旦要查询历史交易信息,则必须考虑跨多个数 据分片获取数据并排序的问题。交易中的数据与交易完成的数据是否做切分,是有必要根据自己的实际情况仔细衡量。要注意如对交易中的活动数据单独存放的一个 表中,则还是不可避免的要产生 I/O 热点问题,而且,这个表实际上变成了一个数据队列(新的瓶颈)--新生成的交易进来,完成的交易删除或归档。这样产生的双重 I/O 压力不容忽视。

当然,这个问题的前提限制了回答的发挥,其实在设计初期也可以考虑买家信息与卖家信息分别放入不同的表中,然后对这两种属性的表再进行切分,这也是 可选的途径,这样的开销是每笔交易会重复存储一条记录,而记录的变化也要在两个表中更新。对数据的一致性维护有一定的挑战。这似乎是个只带来额外开销的办 法?其实也有益处--索引的设计起码会更简单一些,而用户对交易记录的定制查询也会更加方便。

数据分片(或 Sharding) 现在几乎是每个网站架构师都必须要考虑的基础问题。多数情况下,分片的粒度和方式取决于业务,慢慢地快变成可意会不可言说的话题了,你有什么建议或意见不妨留言说说。

--EOF--

为了避免误导,对于数据量不大的站点,首选如何利用好 Cache 吧,分片只是手段,不是目的。【这句话也是dbanotes.net所提出的。不是我说的,虽然我也是这个想法。。。黑黑】

netbeans 包含路径乱码解决方案

netbeans 包含路径乱码解决方案

本来一直在用komodo的,也没有注意过使用netbeans的情况。
但最近使用的时候发现有点小问题,所以就临时先转到netbeans下了。
问题情况是,使用komodo增加一个live folder,但是这个live folder里的class和function都不会被自动提示。。。一下子郁闷了。所以才转为netbeans

netbeans有一个全局包含,很爽的。。当然也可以 项目中包含路径。可惜,包含的文件一直乱码。我已经设置了netbeans的程序语言编码为UTF-8了。。最后没办法 ,只能询问google了。。还好,google是很大方的。他告诉了我一个链接:http://www.java2000.net/p12904,让我了解了解决方法

一直在网上找这个问题的解决方法,可是都是只有Netbenas5.5的解决方案,而且并没有根本的解决,今天上官方看了下,原来官方就有解决方法~哈哈~这招可以解决目前所有的版本,全部文件将用UTF-8解码.所以转移工作平台就更加简单咯~
这是原文:
For those who need to use international and multibyte characters, NetBeans can support UTF-8 editing. To enable it, go to your NetBeans installation directory and find the etc folder. There will be a file there called netbeans.conf.

This file keeps some configuration for NetBeans, including the default command line arguments. These are parameters that will be sent to a new starting Netbeans IDE.

Every argument lives inside a double-quoted variable called netbeans_default_options, and each one is separated from another by a space.

To enable UTF-8 in NetBeans, just place this parameter anywhere on the list of netbeans_default_options:-J-Dfile.encoding=UTF-8

中文解释一下:
1.找到你的Netbeans安装目录下的etc文件夹,如C:\Program Files\NetBeans 6.0 M9\etc
2.用记事本打开netbeans.conf
3.找到netbeans_default_options这一句(没带#号的,带#号的是注释)
4.在最后面加上一个空格,再加入-J-Dfile.encoding=UTF-8
如我现在的设置:
netbeans_default_options="-J-DAM_CONFIG_FILE=\"C:\Sun\AppServer\domains\domain1\config\AMConfig.properties\" -J-Dcom.sun.aas.installRoot=\"C:\Sun\AppServer\" -J-Xms128m -J-Xmx512m -J-XX:PermSize=32m -J-XX:MaxPermSize=160m -J-Dapple.laf.useScreenMenuBar=true -J-XX:+UseConcMarkSweepGC -J-XX:+CMSClassUnloadingEnabled -J-XX:+CMSPermGenSweepingEnabled -J-Dfile.encoding=UTF-8"
这样,打开的文件所有都用UTF-8解码了~哈哈,不再有乱码咯~

--EOF--
文中的意思是看官网才知道的,可惜我不认识英文啊。。不过,幸好解决了。打开netbeans一看,果然不再乱码。。激动了。

附上全局包含的图片,避免有同学误解:

f7046d02bf07e950c9ecc8a9d084843a

看【博客园首页优化心得】

看【博客园首页优化心得】

关注博客园那还是很早时候的事了。从博客园没几个人开始,到现在博客园的访问量超大,我都一直在看着,虽然我是用PHP进行开发,但并不妨碍我学习和关注.net的世界。

我不知道博客园是不是还在用那个什么text-blog【好象是这个,记得好象是开源的?】的系统了。反正博客园的页面是一改再改,当然我现在都是纯RSS订阅的,可能关注的也就少了一点。不过,对于博客园的大访问量,我还是依稀有印象,有一次dudu发博客说被百度的爬虫爬死的。

下面这篇文章是博客园团队关于首页优化的心得:

  周末,我们对博客园首页进行了优化,将其中的一些心得与大家分享。

  背景图片的优化

  博客园首页主导航的背景图片之前存在这样的问题:在IE和Chrome中第一次打开页面时,背景图片加载延迟比较明显,如果刷新页面,背景图片 所在位置会闪一下,即使图片是304状态(在FireFox中未出现这样问题,可能是FireFox加载背景图片的机制不同)。由于导航文字用的是淡灰色 (#EEEEEE),在没有背景图片的白色背景色下看起来很不舒服。

  开始我们使用两种优化方法,并没有产生效果。

  1. 背景图片的预加载

<script type="text/javascript">
jQuery.preloadImages = function() {
for (var i = 0; i < arguments.length; i++) {
jQuery("<img>").attr("src", arguments[i]);
}
}
var staticImgUrl ="http://static.cnblogs.com/images/";
$.preloadImages(staticImgUrl + "bg_menu_nav.png");
</script>

  参考文章:了解jQuery技巧来提高你的代码

  2. 背景图片的压缩

  所用工具:Pngcrush

  操作命令:pngcrush -reduce -brute bg_menu_nav.png bg_menu_nav2.png

  参考文章:Best Practices for Speeding Up Your Web Site

  接着,我们就想不用背景图,但用CSS不能实现背景图中的渐变色(filter只支持IE),于是试着用多个1px高的div拼渐变色效果,也没成功。

  后来,我们用了一个欺骗式的方法缓解了这个问题,给导航栏加一个与背景图片最接近的背景色,这样从无背景图片到有背景图片的加载过程中,颜色上的变化不会很大,从我们的体验,感觉还是可以接受的。

  HTML代码中的空格、空行处理

  使用下面的ASP.NET代码对页面输出进行清理

private static readonly Regex REGEX_LINE_BREAKS = new Regex(@"\n\s*", RegexOptions.Compiled);
private static readonly Regex REGEX_LINE_SPACE = new Regex(@"\n\s*\r", RegexOptions.Compiled);
private static readonly Regex REGEX_SPACE = new Regex(@"( )+", RegexOptions.Compiled);

protected override void Render(HtmlTextWriter writer)
{
using (HtmlTextWriter htmlwriter = new HtmlTextWriter(new System.IO.StringWriter()))
{
base.Render(htmlwriter);
string html = htmlwriter.InnerWriter.ToString();
html = REGEX_LINE_BREAKS.Replace(html, string.Empty);
html = REGEX_LINE_SPACE.Replace(html, string.Empty);
html = REGEX_SPACE.Replace(html, " ");
writer.Write(html.Trim());
}
}

  更进一步的需要清理回车换行符。

  js文件压缩

  工具:JSMin

  命令:jsmin <site.src.js >site.js

  CSS命名缩短

  抱着省一个字节是一个字节的原则,将CSS的class命名缩短。

  部分内容采用脚本加载

  比如网站二级分类,改为jQuery调用WebService加载,不仅减小了页面大小,而且减小了服务器端显示首页时的处理负担。

  小结

  这次的首页优化,从我们的使用体验上看效果是比较明显的,当然首页的优化还有很大的空间,我们会继续优化。

  如果您对博客园首页优化有什么建议,期待您的分享!

原文地址:http://www.cnblogs.com/cmt/archive/2009/12/07/1618301.html

不过看样子,这样的优化效果应该不会太明显,主要还是由于大部分作者在发布博客的时候,都不使用摘要,所以,对于页面的压缩其实并没有起到什么作用。。【强制截取摘要,或许还是有点作用的吧?否则几十篇上万字的文章贴在首页,怎么着也快不了】

thinksns部分更新记录【自己更改的】

thinksns部分更新记录【自己更改的】

由于自己更改了thinksns的部分核心内容,不得己,先记录下来,如果以后被thinksns官方所更改,那么,我就从其中去掉,否则。。。每次TS一更新,我都要重新更新这些地方

1、关于Ucenter的整合【主要是添加了API等,还有就是用户登录和退出那块,暂时不更换】

2、修改了/thinkphp/api/Model/AttachLWModel.class.php的upload方法【约 line:69】,在foreach($uploadinfo as $u)这个循环中,添加了

$map['key'] = $u['key'];

主要原因是,这个api只能针对页面中的FILE上传表单处理,而且,都是同名字段的表单,这对我来说有点不方便,比如我的表单里有<input type="ffile" name="a"><input type="file" name="b">,这个API就不能工作,所以添加了这个变量处理: $u['key']这个键值在thinkPHP的upload里是存在的,所以直接添加就可以了。

而且这个变量的赋值,相信在以后的thinksns上传附件有多个不同字段的时候,应该是会用得到的。。。

Google 公共 DNS 解析服务器

Google 公共 DNS 解析服务器

上周五,传闻新网的DNS服务解析出问题,很多人的网站都不能访问,包括我访问我们公司的网站。
后来,换上了OPENDNS,再后来在群里面知道了一些google的DNS,8.8.8.8,和8.8.4.4,结果今天一看张宴的网页,才发现,原来还有这些多的DNS服务器啊。。

---以下内容来自张宴的博客

Google 推出了公共的 DNS 解析服务器(Google Public DNS),可以用来代替 OpenDNS。Google承诺将严格遵循DNS协议,即不阻挡、不劫持和不过滤用户查询。Google Public DNS服务器IP非常好记,过目难忘:

引用
8.8.8.8        google-public-dns-a.google.com
8.8.4.4        google-public-dns-b.google.com

当然,短IP的DNS服务器还有以下这些:
引用
4.3.2.1
4.2.2.1
4.2.2.2
4.2.2.3
4.2.2.4
4.2.2.5
4.2.2.6

---原文地址:http://blog.s135.com/google_public_dns/

估计好记一点的,也就上面的8.8.8.8,和4.3.2.1了。。
真不错,不过。再怎么样也没用,如果你的客户不知道这些DNS,那商业网站再健康也没用啊。。。
Using PHP As A Shell Scripting Language

Using PHP As A Shell Scripting Language

这是一篇有点老的文章了,但是因为它带有译文,所以我就转摘一下。
命令行下的PHP,以前也是经常用的,现在用的少了。毕竟命令下行,效果更好,以前都是用来循环处理订单和检测无效信息的。。。
前两天我写了博客说bluehost的命令行不支持yii框架呢。。

以下是原文:

Author:Darrell Brogdon

As most of us already know, PHP is the best language for developing dynamic web pages available today. Not many people are aware that it can be used as a shell scripting language as well. While PHP as a shell script isn't as robust as Bash or Perl it does have definite advantages, especially if you're like me and are more proficient in PHP than you are in Perl.
The requirements for using PHP as a shell language is that you must compile PHP as a CGI binary instead of as an Apache module. There are certain security issues related to this so please refer to the PHP Manual when doing so.
Where the code is concerned, the only difference between a PHP shell script and a regular PHP web page is the existence of the standard shell call at the top of the script:
#!/usr/local/bin/php -q
We're using the '-q' switch so that the HTTP headers are suppressed. Also, you're still required to begin and end the script with the standard PHP tags:
<?php ?>
So let's delve into the standard code sample we all know and love:
#!/usr/local/bin/php -q
<?php

print("Hello, world!\n"
);

?>

This, as most of you know already (about a billion times over) will simply output to the screen "Hello, world!".

Passing arguments to the shell script

Commonly with a shell script you need to pass arguments to the script. This is easily done using the built-in '$argv' array as show in the following example:
#!/usr/local/bin/php -q
<?php
$first_name
= $argv[1
];
$last_name = $argv[2
];

print(
"Hello, $first_name $last_name! How are you today?\n"
);

?>

So in the above script we're printing out the first two arguments to the script which would be called like this:
[dbrogdon@artemis dbrogdon]$ scriptname.ph Darrell Brogdon
Which would print out:
Hello, Darrell Brogdon! How are you today?
[dbrogdon@artemis dbrogdon]$


The only major difference with the '$argv' array between a shell script and a web page is that in a shell script, '$argv[0]' is the name of your script. In a web page it is the first argument in your query string.
Making a script more interactive
But how do we wait for user input? How do we create a truly interactive script? Well, PHP has no native functions like the 'read' command in shell but we can always emulate it using the following PHP function:
*Note that this function will only work for Unix.

<?php

function read
() {
$fp=fopen("/dev/stdin", "r"
);
$input=fgets($fp, 255
);
fclose($fp
);

return
$input
;
}

?>

This function opens a file pointer to Standard In (/dev/stdin on Linux) and reads anything from this pointer up to 255 bytes, newline, or EOF. In this case a newline is most likely to occur. It then closes the file pointer and returns the data.

So now let's modify our previous script to wait for user input using the newly created 'read()' function:
#!/usr/local/bin/php -q
<?php

function read
() {
$fp=fopen("/dev/stdin", "r"
);
$input=fgets($fp, 255
);
fclose($fp
);

return
$input
;
}

print(
"What is your first name? "
);
$first_name = read
();

print(
"What is your last name? "
);
$last_name = read
();

print(
"\nHello, $first_name $last_name! Nice to meet you!\n"
);

?>

You may notice, however, that when you execute this script the last line to be printed is broken into three lines instead of one as it should be. This is because our 'read()' function also takes in the newline character. This is easily fixed by stripping off the newline before we return the data:

<?php

function read
() {
$fp=fopen("/dev/stdin", "r"
);
$input=fgets($fp, 255
);
fclose($fp
);

return
str_replace("\n", "", $input
);
}

?>
Embedding PHP shell scripts within a regular shell script
Sometimes it might be handy to embed a PHP shell script within a script written in Bash or other shell. This is fairly simple but can get a tad tricky.
First, how to embed the PHP code:
#!/bin/bash
echo This is the Bash section of the code.

/usr/local/bin/php -q << EOF
<?php
print("This is the PHP section of the code\n"
);
?>
EOF

Pretty simple huh? Until you add a variable that is. This is the tricky part. Try running the following code segment:
#!/bin/bash
echo This is the Bash section of the code.

/usr/local/bin/php -q << EOF
<?php
$myVar
= "PHP"
;
print(
"This is the $myVar section of the code.\n"
);
?>
EOF

You'll get the following error:
<b>Parse error</b>: parse error in <b>-</b> on line <b>2</b><br>
To fix this you have to escape all of the '$' characters in your PHP code:
#!/bin/bashecho This is the Bash section of the code./usr/local/bin/php -q << EOF<?php \$myVar = "PHP"; print("This is the \$myVar section of the code.\n");?>EOF
So that should get you started on creating your own shell scripts using PHP!


译文:
可能很多人都想过使用PHP编写一些定时发信之类的程序,但是却没有办法定时执行PHP;一次去PHPBuilder的时候,发现了这一篇文章,于是想给大家翻译一下(同时做了一些修改),希望对大家有用。第一次翻译文章,不好请多多见谅。

我们都知道,PHP是一种非常好的动态网页开发语言(速度飞快,开发周期短……)。但是只有很少数的人意识到PHP也可以很好的作为编写Shell脚本的 语言,当PHP作为编写Shell脚本的语言时,他并没有Perl或者Bash那么强大,但是他却有着很好的优势,特别是对于我这种熟悉PHP但是不怎么 熟悉Perl的人。
要使用PHP作为Shell脚本语言,你必须将PHP作为二进制的CGI编译,而不是Apache模式;编译成为二进制CGI模式运行的PHP有一些安全性的问题,关于解决的方法可以参见PHP手册(http://www.php.net)。
一开始你可能会对于编写Shell脚本感到不适应,但是会慢慢好起来的:将PHP作为一般的动态网页编写语言和作为Shell脚本语言的唯一不同就在于一个Shell脚本需要在第一行生命解释本脚本的程序路径:
#!/usr/local/bin/php -q
我们在PHP执行文件后面加入了参数“-1”,这样子PHP就不会输出HTTPHeader(如果仍需要作为Web的动态网页,那么你需要自己使用header函数输出HTTPHeader)。当然,在Shell脚本的里面你还是需要使用PHP的开始和结束标记:
<?php 代码 ?>
现在让我们看一个例子,以便于更好的了解用PHP作为Shell脚本语言的使用:
#!/usr/local/bin/php -q
<?php
print("Hello, world!\n");
?>
上面这个程序会简单的输出“Hello, world!”到显示器上。

一、传递Shell脚本运行参数给PHP:
作为一个Shell脚本,经常会在运行程序时候加入一些参数,PHP作为Shell脚本时有一个内嵌的数组“$argv”,使用“$argv”数组可以很 方便的读取Shell脚本运行时候的参数(“$argv[1]”对应的是第一个参数,“$argv[2]”对应的是第二个参数,依此类推)。比如下面这个 程序:
#!/usr/local/bin/php -q
<?php
$first_name = $argv[1];
$last_name = $argv[2];
printf("Hello, %s %s! How are you today?\n", $first_name, $last_name);
?>
上面的代码在运行的时候需要两个参数,分别是姓和名,比如这样子运行:
[dbrogdon@artemis dbrogdon]$ scriptname.ph Darrell Brogdon
Shell脚本在显示器上面会输出:
Hello, Darrell Brogdon! How are you today?
[dbrogdon@artemis dbrogdon]$
在PHP作为动态网页编写语言的时候也含有“$argv”这个数组,不过和这里有一些不同:当PHP作为Shell脚本语言的时候“$argv[0]”对 应的是脚本的文件名,而当用于动态网页编写的时候,“$argv[1]”对应的是QueryString的第一个参数。

二、编写一个具有交互式的Shell脚本:
如果一个Shell脚本仅仅是自己运行,失去了交互性,那么也没有什么意思了。当PHP用于Shell脚本的编写的时候,怎么读取用户输入的信息呢?很不 幸的是PHP自身没有读取用户输入信息的函数或者方法,但是我们可以效仿其他语言编写一个读取用户输入信息的函数“read”:
<?php
function read() {
$fp = fopen('/dev/stdin', 'r');
$input = fgets($fp, 255);
fclose($fp);
return $input;
}
?>
需要注意的是上面这个函数只能用于Unix系统(其他系统需要作相应的改变)。上面的函数会打开一个文件指针,然后读取一个不超过255字节的行(就是fgets的作用),然后会关闭文件指针,返回读取的信息。
现在我们可以使用函数“read”将我们前面编写的程序1修改一下,使他更加具有“交互性”了:
#!/usr/local/bin/php -q
<?php
function read() {
$fp = fopen('/dev/stdin', 'r');
$input = fgets($fp, 255);
fclose($fp);
return $input;
}
print("What is your first name? ");
$first_name = read();
print("What is your last name? ");
$last_name = read();
print("\nHello, $first_name $last_name! Nice to meet you!\n");
?>
将上面的程序保存下来,运行一下,你可能会看到一件预料之外的事情:最后一行的输入变成了三行!这是因为“read”函数返回的信息还包括了用户每一行的结尾换行符“\n”,保留到了姓和名中,要去掉结尾的换行符,需要把“read”函数修改一下:
<?php
function read() {
$fp = fopen('/dev/stdin', 'r');
$input = fgets($fp, 255);
fclose($fp);
$input = chop($input); // 去除尾部空白
return $input;
}
?>

三、在其他语言编写的Shell脚本中包含PHP编写的Shell脚本:
有时候我们可能需要在其他语言编写的Shell脚本中包含PHP编写的Shell脚本。其实非常简单,下面是一个简单的例子:
#!/bin/bash
echo This is the Bash section of the code.

/usr/local/bin/php -q << EOF
<?php
print("This is the PHP section of the code\n");
?>
EOF
其实就是调用PHP来解析下面的代码,然后输出;那么,再试试下面的代码:
#!/bin/bash
echo This is the Bash section of the code.

/usr/local/bin/php -q << EOF
<?php
$myVar = 'PHP';
print("This is the $myVar section of the code\n");
?>
EOF
可以看出两次的代码唯一的不同就是第二次使用了一个变量“$myVar”,试试运行,PHP竟然给出出错的信息:“Parse error: parse error in - on line 2”!这是因为Bash中的变量也是“$myVar”,而Bash解析器先将变量给替换掉了,要想解决这个问题,你需要在每个PHP的变量前面加上“\” 转义符,那么刚才的代码修改如下:
#!/bin/bash
echo This is the Bash section of the code.

/usr/local/bin/php -q << EOF
<?php
\$myVar = 'PHP';
print("This is the \$myVar section of the code\n");
?>
EOF

好了,现在你可以用PHP编写你自己的Shell脚本了,希望你一切顺利。如果有什么问题,可以去http://www.PHPBuilder.com或者http://www.zPHP.com上面讨论。

---EOF---

仔细看上面的一段, fopen("/dev/stdin"),如果你看过yii的框架,你会发现,现在很多人都在使用php://stdin,其实,这只是PHP把这种封装成了一个协议,更方便而己。。可以参考yiiframework.com