Srain's profileSrain的共享空间PhotosBlogLists Tools Help

Blog


    June 13

    重装系统

    重装系统,把电脑里面的资料再整理一下,乱的连我自己都受不了啦。等移动硬盘再便宜点,买个移动硬盘存资料好了,120G的硬盘太小了。
    June 12

    6月份开发语言排行

     

    TIOBE Programming Community Index for June 2008

    June Headline: ActionScript enters top 20

    The TIOBE Programming Community index gives an indication of the popularity of programming languages. The index is updated once a month. The ratings are based on the number of skilled engineers world-wide, courses and third party vendors. The popular search engines Google, MSN, Yahoo!, and YouTube are used to calculate the ratings. Observe that the TIOBE index is not about the best programming language or the language in which most lines of code have been written.

    The index can be used to check whether your programming skills are still up to date or to make a strategic decision about what programming language should be adopted when starting to build a new software system. The definition of the TIOBE index can be found here.

    Position
    Jun 2008
    Position
    Jun 2007
    Delta in Position Programming Language Ratings
    Jun 2008
    Delta
    Jun 2007
    Status
    1 1 Java 20.890% +0.86%   A
    2 2 C 15.513% -0.45%   A
    3 3 C++ 10.806% -0.31%   A
    4 5 PHP 10.206% +1.33%   A
    5 4 (Visual) Basic 9.787% +0.46%   A
    6 6 Perl 5.548% -0.63%   A
    7 8 Python 4.899% +1.74%   A
    8 7 C# 4.058% +0.57%   A
    9 9 JavaScript 2.927% +0.31%   A
    10 10 Ruby 2.640% +0.51%   A
    11 13 Delphi 2.022% +0.45%   A
    12 14 D 1.445% +0.19%   A
    13 12 SAS 0.923% -0.84%   A
    14 11 PL/SQL 0.759% -1.26%   A-
    15 23 Pascal 0.596% +0.11%   B
    16 15 Lisp/Scheme 0.436% -0.23%   B
    17 17 Ada 0.421% -0.21%   B
    18 19 COBOL 0.379% -0.21%   B
    19 21 Lua 0.366% -0.21%   B
    20 24 ActionScript 0.341% -0.05%   B

    Long term trends

    The long term trends for the top 10 programming languages can be found in the line diagram below.


    Other programming languages

    The complete top 50 of programming languages is listed below. This overview is published unofficially, because it could be the case that we missed a language. If you have the impression there is a programming language lacking, please notify us at tpci@tiobe.com.

    Position Programming Language Ratings
    21 Logo 0.336%
    22 Fortran 0.329%
    23 MATLAB 0.263%
    24 FoxPro/xBase 0.262%
    25 Transact-SQL 0.249%
    26 RPG (OS/400) 0.244%
    27 ABAP 0.237%
    28 Prolog 0.220%
    29 Awk 0.209%
    30 LabVIEW 0.179%
    31 Haskell 0.143%
    32 Smalltalk 0.126%
    33 PowerShell 0.125%
    34 Bourne shell 0.122%
    35 Erlang 0.121%
    36 Groovy 0.120%
    37 APL 0.116%
    38 Tcl/Tk 0.115%
    39 ML 0.112%
    40 Forth 0.107%
    41 CL (OS/400) 0.102%
    42 Objective-C 0.096%
    43 S-lang 0.096%
    44 Scala 0.095%
    45 R 0.094%
    46 Caml 0.092%
    47 REXX 0.091%
    48 Lingo 0.090%
    49 Euphoria 0.084%
    50 Natural 0.082%


    June 10

    在同一页面显示搜索结果

    //Srain
     
    接着用Dreamweaver做个简单的站内搜索页说,怎样在同一页面显示搜索结果呢?很简单,其实无需说一下的,只是为了凑篇博文,所以写写,顺便说说怎样解决刷新表单重新提交的问题,我用的版本是Dreamweaver CS3。
     
    先前我们的搜索页面为SearchPage.asp,搜索结果页面为SearchList.asp,详细信息页为info.asp,现在为了在SearchPage.asp页面显示搜索结果,我们做如下的改变:
     
    1.在SearchPage.asp页面链接数据库并绑定记录集,在搜索表单属性面板动作选项中填入SearchPage.asp(也就是本页面),详细看第4步骤的图。
    2.同样的,在SearchPage.asp页面插入主详细页集,具体操作是“插入记录”-数据对象-主详细页集,当然,你也可以通过拖拽的方式把需要的记录集字段拖进来。
    3.双击“应用程序-绑定”面板的记录集,做如下的设置,目的是搜索出标题中含有输入的关键字的新闻出来,这里包含的意思是,只要news_subject(新闻标题)中含有searchbox这个关键字就会显示出来,属于模糊搜索,排序是按照新闻的标号(news_id)升序排列。
    4.为了在刷新本搜索页面的时候不会重复提交表单,设置表单方法为Get,目标选_parent(刷新还转到本窗口,_blank则是转到新窗口)
    5.保存,用浏览器看一下效果吧
    搜索前:
    搜索后:(关键词为“新闻”)
     
    基本上就是这样了。
     
    June 09

    还是要争取

    昨天端午节放假,公休移到了今天,这是国家明文规定的,但是可以看到很多的公司并没有这样做,今天继续上班,不知道是Boss们不知道有这样的一个规定,还是故意有意为之。
     
    同你们说,对于很多不合理的东西,还是要争取,要反抗的,不要以为说了也没用还不如不说,发出声音不一定有效果,但不发出声音肯定是没效果,把希望寄托在别人用良心做事的假设上是错误的,是不切实际的。
    June 06

    今天你enjoy work了吗?

    昨天发工资(广东人谓之“出粮”),boss说“Today you get salary. Hope u enjoy the work and give the best.”。

    我想,那也要看这salary多还是少,给我的承诺是否都得到了兑现,还是忘记了,比如进工资的时候说的一年调两次工资,我都进公司1年快1个月了,第8个月调了一次工资,而且只只调了一本裤子的钱(100大洋),这次的调工资呢?不管是调低了还是调高了,都没有一个说法,我若问这是为啥,得到的答案肯定是"sorry,i forget it",也或许再加100大洋,然后再说“hope u enjoy your work”。

    当然,我可以努力的利用自己的电脑、网费、电费、水费为公司工作,也可以利用我晚上的时间去学习网页制作、编程、策划这方面的东西,提高工作技能,进而提高工作质量,但当看到周围的人的工资都比我高,而且还有其他福利待遇的时候,还是有些不平衡的,我想,我还不如把工作之外的时间奉献给我自己的兴趣,寻找另外一种获利的方式,而不是想想网站怎样推广、这些功能好不好用,哪些错误需要修正的问题,这就是人势力的一面,这就是传说中的工资要和工作对等。

    未来?boss们,特别是it的boss们特别会描绘一个美好的未来,但作为员工已经不再满足这些虚无渺茫的东西,狡兔死,走狗烹,美好的未来来到的时候,我们或许已经被fire掉了,商业是没有同情心的,难道要等到那一刻才梦醒?

    最近越来越对中国的那些所谓传统美德产生怀疑,就拿干一行爱一行来说吧,有时候并不适合,现在的人找个工作都困难,即使找到工作也会不断的换啊换,要干一行爱一行的话,总是没有目标的,最后变的广泛而无深度,无一技之长,这句话boss应该中听的,boss要的就是你做这一行的时候能爱上他,最好是毫无条件的热爱,enjoy your work。 我最近做的工作就不是很令人enjoy,单调枯燥,甚至有些无聊,真的很不想去做。

    希望你能enjoy your work,也希望这work是能给你带来快乐带来收益的work。

     

     

    June 04

    明主是个神话

    如果你觉得上面都是好的,只是下面太坏了,才造成了今天的局面,那么你错了,明主是个神话,不存在于中国的历史和现在,别再去幻想从上而下的自我改革、自我监督了,民主才是个好东西。

    CSS3介绍 第四章 用户界面

     
    本教程将来看看在CSS3中操作用户界面的一些新的方法。那么,我们说的“用户界面”究竟是指什么呢?CSS3带来了一些新的伟大的性能,涉及改变大小,光标定位,轮廓,方框布局等。在这个教程中,我们将注意力放在用户界面的三个重要改善上面。在我们的CSS3例子页面可以看到下面的例子,当然,多是只能在最新的浏览器下实现:
     
    查看在线例子页面
     
    改变大小
     
    最新的版本的Safari浏览器有一个功能,可以调整文本域的大小。这是非常的改进,也是我几乎每天都会用到的。CSS3可以让你在任何与案件中很轻易的使用这个功能,最终实现跨平台兼容。它的代码是resize:both; line:(resize是调整大小的意思):
     
    .ui_resizable {
    padding: 20px;
    border: 1px solid;
    resize: both;
    overflow: auto;
    }
    CSS3 Resizing
     
    盒子尺寸调整
     
    “盒子模型”是CSS3应用更广泛的一个领域,在正式的规范里面,有充分的信息可以证明这一点。盒子尺寸调整可以让你定义某些内容,以一种特殊的方式扩充一个区块。举个例子,如果你想要两个有边框的盒子并排排列,就可以通过设置“border-box”(盒子边框)来实现。强制浏览器使边框与指定的宽度和高度相同,并把边框和间距距填充在盒子里面。
     
    目前,所有的浏览器都要求支持额外的标点符号-你可以查看完整的例子页面代码列表,这是一些基本的可能:

    .area {
    width: 300px;
    border: 10px solid #ddccb5;
    height: 60px;
    }

     
    .boxes {
    box-sizing: border-box;
    width:50%;
    height: 60px;
    text-align: center;
    border: 5px solid #897048;
    padding: 2px;
    float:left;
    }
    CSS3 Box Sizing

    轮廓
     
    在CSS2里面已经可以看到可以设置一个元素的轮廓了,但是在CSS3里面,包括了可以使元素远离轮廓的方法-用你定义的一个值,不同于从边框定义的两个地方:
     
      1轮廓不占用空间
      2轮廓可以不是矩形
     
    可以以以下的方式创建:
     
    .ui_outline {
    width: 150px;
    padding: 10px;
    height: 70px;
    border: 2px solid black;
    outline: 2px solid #897048;
    outline-offset: 15px;
    }
    CSS3 Outline Offset
    总结:
     
    在设计社区,这些功能不是革命性的,而且不可能引起轰动。不可否认的是,他们是有用的,尤其是给读者用来调整内容。
     
    在这个系列接下来的文章里面,将会探索CSS3更深入的一个革命性的功能-文本分栏。请记住,看看这些功能在线的例子。
     
     
    本章翻译完了,想和同学们探讨一下下面的词翻译是否准确,是否有更合适的翻译方法?
    Outline  轮廓
    element 内容 元素
    cursors 光标定位
    box layout 盒子布局
    resizing 调整大小
    sizing 尺寸调整
    padding 间距(?)
     
     
     
    June 03

    真是新鲜 关于5毛党

    居然还有网络舆论评论员这种职业存在的,真是闻所未闻,开眼界了,据说发一个和谐的帖子可以收到5毛钱,算起来,还蛮好赚的,点击这里看搜索结果
     
    点此在新窗口浏览图片
    点此在新窗口浏览图片
    点此在新窗口浏览图片
     
     
     
     
     

    马太福音 论报复

    “你们听见有话说:‘以眼还眼,以牙还牙。’只是我告诉你们:不要与恶人作对。有人打你的右脸,连左脸也转过来由他打;有人想要告你,要拿你的里衣,连外衣也由他拿去;有人强逼你走一里路,你就同他走二里;有求你的,就给他;有向你借贷的,不可推辞。”
     
    针对这段话,今天在Skype上问了一下林总怎样解读,意料之外的是,他要我键入这段话搜索一下,晕了,这种方法我好似也会,只是想听听他的看法而已,这段话该怎样解读倒是变的次要了。好吧,搜了一下,把别人的解读贴在下面,有点长,耐心读下去,你会有收获的。

    公 平 与 爱 心
     
     “以眼还眼,以牙还牙”这句经文已经被广泛引用与熟知。“以牙还牙,以眼还眼”的经文记载在旧约,出埃及记的21章第24至25节记录得最为详细:“若有别害,就要以命偿命,以眼还眼,以牙还牙,以手还手,以脚还脚,以烙还烙,以伤还伤,以打还打。”另外,利未记第24章第20节也有记载:“以伤还伤,以眼还眼,以牙还牙。他怎么叫人的身体有残疾,也要照样向他行。” 在远古时代,惩罚的概念以对等的补偿为主要的根据。不止旧约时代的希伯来人如此,当时文明比较发达的社会都遵守这样的原则,大约在公元前1750年的巴比伦“汉摩拉比法典”里也有这样的记载,它是我们所知道的“以眼还眼”的最早纪录:“一个人如果毁掉别人的眼,则应以毁掉他自己的眼为惩罚。”
     
      有人因为这样的经文而误认为在旧约神是提倡报复的,那就大错而特错了。其实这节经文看起来虽是野蛮与残忍的法律,实际上却是恩典的萌芽,是上帝爱的体现。因为那时是一个非常落后,也没有什么社会文明的时代,是一个完全不懂得什么是爱、什么是怜悯,只会动刀动枪,杀人放火,报复无度的时代。我们也会从圣经中看到许多这样的例子。创世记34章就曾经记载了这种滥杀与报复的行为,因为雅各的女儿底拿受辱,于是雅各的儿子西缅和利未,用欺骗的手法使对方行割礼,众人正在疼痛的时候,他们“各拿刀剑,趁着众人想不到的时候,来到城中,把一切男丁都杀了,又用刀杀了哈抹和他儿子示剑……掳掠那城,夺了他们的羊群、牛群和驴,并城里田间所有的,又把他们一切货财、孩子、妇女,并各房中所有的,都掳掠去了”(创34∶25-29)。士师记19-21章也有这样的记载,一个利未人的妾在基比亚被便雅悯人凌辱致死后,利未人为寻求报复纠集以色列各支派攻打便雅悯人,便雅悯人失败,其中有两万五千一百人被杀。其实在旧约时代类似的事件经常发生,强者在复仇的时候常常是滥杀无辜,报复无度。上帝颁布律法,用“以眼还眼,以牙还牙”这有限的报复来约束无休止的杀戮,是对没有反抗能力的弱者的保护,这正是体现了上帝的大爱。更重要的是我们要知道这项条例并非纵容个人私报冤仇,“以眼还眼,以牙还牙”是引自旧约圣经的三处经文,分别是出埃及记21章22-25节,利未记24章17-22节,申命记19章16-21节,但旧约圣经每次提到“以眼还眼,以牙还牙”,都要在审判官的判断下进行,以免报复过头,以致引起家族之间的冤仇。它被列在给审判官的段落中,因此这些律例的功用是为民事及刑事官员定下先例,为裁决纷争和处理行政事务上的公平依据,但在应用上绝非一成不变,墨守成规的。审判官依据它来定夺赔偿,但并不能由此认为圣经提倡身体的伤害,因为紧接下文,圣经反对及排斥这种个人仇杀的行径“人若打坏了他奴仆或是婢女的一只眼,就要因他的眼放他去得自由。若打掉了他奴仆或是婢女的一个牙,就要因他的牙放他去得以自由。” (出21∶26-27)民数记35章31节:“故杀人犯死罪的,你们不可收赎价代替他的命,他必被治死。”言下之意,除谋杀罪外,其它伤害均容许一种等值的赔偿。希伯来原文的“以眼还眼,以牙还牙”的动词“以”许多的地方译为“给”, 这个动词也指金钱的赔偿(出21∶19、22、30、32),有时指赔偿原物,但更多的是等值赔偿。因为在那时法律不像现在健全,将刑法和民法划分得非常清楚,其实在出埃及记21章23-25节中,只有“以命还命”是刑法的准则,不能用赎价去替代。但这项律例却演变成了一种依此类推的句法,“以眼还眼,以牙还牙,以脚还脚,以烙还烙,以伤还伤,以打还打”这样的句法纯粹是指赔偿要和伤害等值,是给人们提供一种法律的依据。
     
      在新约中主耶稣对我们提出了更高的要求,登山宝训的教导就超越了律法的规定,“你们听见有话说:‘以眼还眼,以牙还牙。’只是我告诉你们:不要与恶人作对。有人打你的右脸,连左脸也转过来由他打;有人想要告你,要拿你的里衣,连外衣也由他拿去;有人强逼你走一里路,你就同他走二里;有求你的,就给他;有向你借贷的,不可推辞。”太5∶38-42)耶稣并非要我们做逆来顺受,软弱可欺的人。这几节经文是用了一种重叠的句法,其实表达的是同一个精神。笔者试着解释其中的一节以便我们更好地明白其中的意义。“有人强逼你走一里路,你就同他走二里。”主耶稣所说的是众人皆知的波斯人的习惯,原来波斯帝国的信差携带帝国的信件时,他们常常背着很重的包裹行路,所以法律规定,信差有权力让别人为他背起包裹走一里的路程,任何人不得拒绝这样的要求。主耶稣在这里要求我们不仅仅是别人要你走一里,你就走一里,而是要超出他所要求的陪他走二里。我们对别人的需要不仅仅是被动的回应,而是主动的付出。第一里路是别人要求我们去做的,我们这样做是被动的,第二里路就是我们主动回应的,我们愿意多付出一点,多帮他一点。律法对我们提出最基本的道德要求,而主耶稣的登山宝训却要求我们从
    爱的动机出发,用爱心对待周围的人。对人不要只停留在被动的程度,而是一种主动的回应与爱心
     
      耶稣所说的“以眼还眼,以牙还牙”是指“文士和法利赛人的义”, 文士和法利赛人的义是只爱那些爱他们的人:“你们若单爱那爱你们的人,有什么赏赐呢?就是税吏不也是这样行吗?你们若单请弟兄的安,比人有什么长处呢?就是外邦人不也是这样行吗?”(太∶46-47)主耶稣告诉我们“基督徒的义”必须胜于文士和法利赛人的义,“要爱你们的仇敌,为那逼迫你们的祷告。”(太5∶44)即使对于仇敌,他也希望我们用爱心去感化他们,而不是针锋相对,这段教训的重点就是“不要与恶人作对,要以善胜恶”。 耶稣自己也是这样实践他的教训,当他被钉在十字架上时,他心中有的不是报复和仇恨,而是饶恕与赦免。“父啊!赦免他们,因为他们所做的,他们不晓得。”保罗就是延续耶稣这样的教训,在当时的环境中,基督徒面临着许多的艰难与逼迫,但是使徒的劝勉却是“逼迫你们的,要给他们祝福,只要祝福,不
    可咒诅……你的仇敌若饿了,就给他吃;若渴了,就给他喝。因为你这样行,就是把炭火堆在他头上。”(罗12∶14,20) 这是指古埃及的一种仪式,一个人要当众表明悔改时,就在头上顶着一盘烧着的炭火,表明自己的悔改之心。初期教父俄利根、奥古斯丁,以及许多近代的解经家认为,这个“炭火”是指人极端羞辱、懊悔时,心中像火烧那么痛苦,用这样的比喻形容人的悔改。保罗的意思是,人若以爱心对待仇敌,那仇敌也许就懊悔、羞愧,不再和他作仇敌,换句话说,除去仇敌最好的方法,是化敌为友,如此便是“以善胜恶”。
     
      从旧约中的“以眼还眼,以牙还牙”到新约中的“要爱你们的仇敌,为那逼迫你们的祷告”这是一个不小的飞跃,上帝对我们的要求已不仅仅停留在最基本的伦理道德的遵守与控制方面。耶稣来了,给我们带来了更超越的爱的律法与行动。从这样的变化我们也看出上帝启示的渐进性,因为在旧约那样落后野蛮的时代,他们无法达到更高的要求,只能用最基本的伦理道德来要求和约束他们,但是随着社会的进步,文明的发展,以及主耶稣基督的道成肉身,使我们进入到一个更高的层次,就是凡事都要从“爱心”出发。
    June 02

    前几天写的公司的介绍

    就文字来说,基本上是阿里巴巴+HC360+EC21+made-in-china的合成品,看看吧。

    亿贸网(
    EasyTrade.com)是全球企业间(B2B)电子商务的国际知名品牌,是全球国际贸易领域内最大、最活跃的网上贸易市场和商人社区之一,专注于外贸B2B平台建设。公司总部位于世界金融中心之一的香港,在全球各地拥有多家销售和服务部门,在深圳和美国设有分公司。亿贸网(EasyTrade.com)电子商务网站,目前在全球的会员数量超过10万家,遍布220多个国家和地区,每天向全球各地企业及商家提供大量商业供求信息。  
    我们的历史  


    亿贸网由拥有
    MBA学位并从事IT行业超过12年的Joubert Yaoo创建于1995年,致力于为全球的贸易企业提供一个展示、推广和销售的电子商务平台。并在2006年开始在大中华区加大推广力度,为更好的服务于中国国内的企业。  
    我们的服务对象
      


    亿贸网关注世界企业特别是中国众多中小企业的发展,
    因为我们深信,只有在中小企业发展的基础上全球经济才能更健康地成长。凭借巨大而翔实的商业信息数据库,便捷而高效的功能和服务,亿贸网成功地帮助了众多供应商和采购商建立联系、提供商业机会,为中国产品进入国内和国际市场开启了一扇方便的电子商务之门。  
    我们的服务内容 
    §  网上贸易市场,包括网上展览馆、供求配对、询价、报价等等
    §  多语言信息展示、推广和管理平台
    §  企业在线商务交流活动
    §  强大信息搜索引擎
    §  全球商业法律和物流等后勤服务
    §  专业商业策划和建议
    §  商人社区论坛
    §  全球采购商买家库  
    我们的目标  
    亿贸网的目标是创建最好的B2B电子商务平台,满足客户各方面的需求并提供最好的服务,成为大中华区,甚至世界市场的领导者和开拓者。  
    我们的宗旨  
    亿贸网旨在促进全球买家和供应商之间的贸易活动和合作,提供优质可靠的中国产品和供应商信息,帮助买家和卖家实现高效而便捷的在线商务活动,也正如我们的网址EasyTrade.com所寓意:容易的贸易。

    June 01

    马太福音 论宽恕

    “你们宽恕人的过犯。你们的天父也必宽恕你们的过犯;你们不宽恕人的过犯,你们的天父也必不饶恕你们的过犯。”


    突然想起了她

    突然又想起了女朋友,又有几天没有联系了,不知道电话修好了没有呢。有个人可以去想念,也还真的好,蛮喜欢这样的感觉,牵挂与被牵挂,想念与被想念.....,虽然没到爱你的地步,但我想我这一生是要和你在一起了。





    May 31

    用Dreamweaver做个简单的站内搜索页

    //Srain
     
    本文用的网页为asp动态页面,Dreamweaver的本版为CS3,access数据库版本为2003,我们将来做一个简单的站内搜索页,即在在页面搜索在数据库已经存在的数据,本文只讲标题的搜索,有兴趣的同学可以利用数据库的SQL语句设计出一些诸如搜索文本内容或者作者的功能出来。
     
    1.准备工作:
    在HowToSearch目录下面新建两个asp页面:搜索页SearchPage.asp和搜索结果页SearchList.asp;再新建一个access数据库,数据库内容如下:
     
     
     注意表的字段名。
     
    2.在Dreamweaver中打开SearchPage.asp页面,新建一个包含文本框和提交按钮的表单,如下图所示
     
     
    修改文本域的名称为searchbox,表单属性中的动作选项填上SearchList.asp,目标选_blank(新窗口打开链接)
    3.打开页面SearchList.asp创建数据库链接(用自定义链接字符串的方法链接,"Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& Server.MapPath("/HowToSearch/news.mdb")
     
     
    4.绑定记录集,各项设置如下图所示
    seardkd
     
    筛选选项中,填入news_sbuject的目的是搜索包含有关键字的新闻标题,searchbox即是我们在前面设置好的文本框的名字,搜索结果按照新闻日期降序排列
     
    5.绑定数据集以后就可以进行准确的搜索了,不过要输入标题的全部内容才可以搜索到,譬如只能输入“一条新闻”才可以搜索到标题是“一条新闻”的新闻,而不可以用“新闻”来搜索到,我们需要用模糊搜索的方法来实现他。
     
    在设置绑定记录集的时候,点选高级,进入高级设置,把其中的SQL语句部分的内容:
     
    SELECT *
    FROM newsCenter
    WHERE news_subject = MMColParam
    ORDER BY news_date DESC
    修改为:
    SELECT *
    FROM newsCenter
    WHERE news_subject LIKE %MMColParam%
    ORDER BY news_date DESC
     6.在SearchList.asp插入主详细页集。方法是依次选择 插入记录—数据对象-主详细页集,如下图设置,注意,详细页名称我填的是info.asp,这个名字是随意的,你可以选择一个已经建好的asp页面。
     
    7.单击确定后就会建好一个搜索结果页(SearchList.asp)和详细页(info.asp),这个时候我们全部保存,在浏览器下操作一下试试效果吧。譬如我在搜索框中输入“新闻”,便会得到下面的搜索结果(分页的部分没有截图):
     
    可以看的出来news_subject下面的句子里面全部含有“新闻”这个关键字,实际制作页面的时候,需要把news_id,news_type...这些改为自己想要的文字,还可以美化一下页面的显示效果。点击新闻的ID数字,如14,就会转到这条新闻的详细页。
     
    总结:OK了,这样,一个简单的搜索页就做好了,其实做这样的一个搜索页对技术的要求不高,会基本的access操作,懂动态页面怎样连接数据库,怎样绑定记录集,看懂基本的SQL语句就可以了。另外,你做好了这样的搜索页以后,每次刷新都会弹出是否重新提交的提示,如果出现这样的情况的话,把SearchPage.asp里面的搜索表单的提交方法由post改为get,再修改一下Searchpage.asp和Searchlist.asp里面的表单数据读取方法就可以了,例如把 Request.Form("searchbox")修改为Request("searchbox"),说的轻松,操作起来可能有些不甚明了,没关系,一步一步来。
     
    下一篇文章里面会讲一下比这个搜索稍微复杂一点的搜索页的制作方法。
     

    让层出现下拉滚动条

    //iwind  原文地址http://tips.4kiki.net/t/3e387833d4c4848868eb6c05c933afef

    • 有时候div内内容很多的时候,会把div撑破,用下面样式就可以让层的右边出现下拉滚动条

    • width:100px;
      height:100px;
      overflow-y:auto;
      overflow-x:hidden

      示例:
      <style type="text/css">
      div {
          width:100px;
          height:100px;
          overflow-y:auto;
          overflow-x:hidden;
      }
      </style>

      <div>Sraiin翻译:CSS3系列文章的第三章将会深入探讨新的文字特效。毫无疑问,排版技术是设计一个布局最重要的部分之一。透过一个网页的字体可以吸引浏览者,以一种特别的表达方式,在不同的内容里面提供有冲击力、微妙的或辅助性的效果。CSS已经有很多的方法去设计文字,但仍局限于少数的领域里面,CSS3会提供一些途径去解除这些限制。</div>

      cenggund

    环保是个好事情

    今天又去大福源买些食品回来,看到有购物袋就买了一个回来,据说6.1以后就全面禁用塑料袋了。

    这是个好事情,虽然顾客们需要购买购物袋,改革的成本又一次由我们承担了,但是我觉得还是是应该支持的,毕竟塑料袋的使用既浪费又不环保。

    这么大的购物袋只需要4.8元,当然,你也可以选择贵一些时尚一些的,价格多在20元一下,还是可以接受的。

    点击图片看大图。

    IMG0499A


    May 30

    sql常用语句速查手册

     
    SQL语句先前写的时候,很容易把一些特殊的用法忘记,特此整理了一下SQL语句操作,方便写SQL时方便一点!


    一、基础

    1、说明:创建数据库
    CREATE DATABASE database-name
    2、说明:删除数据库
    drop database dbname
    3、说明:备份sql server
    --- 创建 备份数据的 device
    USE master
    EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat'
    --- 开始 备份
    BACKUP DATABASE pubs TO testBack
    4、说明:创建新表
    create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)
    根据已有的表创建新表:
    A:create table tab_new like tab_old (使用旧表创建新表)
    B:create table tab_new as select col1,col2… from tab_old definition only
    5、说明:删除新表
    drop table tabname
    6、说明:增加一个列
    Alter table tabname add column col type
    注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。
    7、说明:添加主键: Alter table tabname add primary key(col)
    说明:删除主键: Alter table tabname drop primary key(col)
    8、说明:创建索引:create [unique] index idxname on tabname(col….)
    删除索引:drop index idxname
    注:索引是不可更改的,想更改必须删除重新建。
    9、说明:创建视图:create view viewname as select statement
    删除视图:drop view viewname
    10、说明:几个简单的基本的sql语句
    选择:select * from table1 where 范围
    插入:insert into table1(field1,field2) values(value1,value2)
    删除:delete from table1 where 范围
    更新:update table1 set field1=value1 where 范围
    查找:select * from table1 where field1 like ’%value1%’ ---like的语法很精妙,查资料!
    排序:select * from table1 order by field1,field2 [desc]
    总数:select count as totalcount from table1
    求和:select sum(field1) as sumvalue from table1
    平均:select avg(field1) as avgvalue from table1
    最大:select max(field1) as maxvalue from table1
    最小:select min(field1) as minvalue from table1
    11、说明:几个高级查询运算词
    A: UNION 运算符
    UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个结果表。当 ALL 随 UNION 一起使用时(即 UNION ALL),不消除重复行。两种情况下,派生表的每一行不是来自 TABLE1 就是来自 TABLE2。
    B: EXCEPT 运算符
    EXCEPT 运算符通过包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重复行而派生出一个结果表。当 ALL 随 EXCEPT 一起使用时 (EXCEPT ALL),不消除重复行。
    C: INTERSECT 运算符
    INTERSECT 运算符通过只包括 TABLE1 和 TABLE2 中都有的行并消除所有重复行而派生出一个结果表。当 ALL 随 INTERSECT 一起使用时 (INTERSECT ALL),不消除重复行。
    注:使用运算词的几个查询结果行必须是一致的。
    12、说明:使用外连接
    A、left outer join:
    左外连接(左连接):结果集几包括连接表的匹配行,也包括左连接表的所有行。
    SQL: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c
    B:right outer join:
    右外连接(右连接):结果集既包括连接表的匹配连接行,也包括右连接表的所有行。
    C:full outer join:
    全外连接:不仅包括符号连接表的匹配行,还包括两个连接表中的所有记录。

    二、提升

    1、说明:复制表(只复制结构,源表名:a 新表名:b) (Access可用)
    法一:select * into b from a where 1<>1
    法二:select top 0 * into b from a
    2、说明:拷贝表(拷贝数据,源表名:a 目标表名:b) (Access可用)
    insert into b(a, b, c) select d,e,f from b;

    3、说明:跨数据库之间表的拷贝(具体数据使用绝对路径) (Access可用)
    insert into b(a, b, c) select d,e,f from b in ‘具体数据库’ where 条件
    例子:..from b in '"&Server.MapPath(".")&"\data.mdb" &"' where..

    4、说明:子查询(表名1:a 表名2:b)
    select a,b,c from a where a IN (select d from b ) 或者: select a,b,c from a where a IN (1,2,3)

    5、说明:显示文章、提交人和最后回复时间
    select a.title,a.username,b.adddate from table a,(select max(adddate) adddate from table where table.title=a.title) b

    6、说明:外连接查询(表名1:a 表名2:b)
    select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c

    7、说明:在线视图查询(表名1:a )
    select * from (SELECT a,b,c FROM a) T where t.a > 1;

    8、说明:between的用法,between限制查询数据范围时包括了边界值,not between不包括
    select * from table1 where time between time1 and time2
    select a,b,c, from table1 where a not between 数值1 and 数值2

    9、说明:in 的使用方法
    select * from table1 where a [not] in (‘值1’,’值2’,’值4’,’值6’)

    10、说明:两张关联表,删除主表中已经在副表中没有的信息
    delete from table1 where not exists ( select * from table2 where table1.field1=table2.field1 )

    11、说明:四表联查问题:
    select * from a left inner join b on a.a=b.b right inner join c on a.a=c.c inner join d on a.a=d.d where .....

    12、说明:日程安排提前五分钟提醒
    SQL: select * from 日程安排 where datediff('minute',f开始时间,getdate())>5

    13、说明:一条sql 语句搞定数据库分页
    select top 10 b.* from (select top 20 主键字段,排序字段 from 表名 order by 排序字段 desc) a,表名 b where b.主键字段 = a.主键字段 order by a.排序字段

    14、说明:前10条记录
    select top 10 * form table1 where 范围

    15、说明:选择在每一组b值相同的数据中对应的a最大的记录的所有信息(类似这样的用法可以用于论坛每月排行榜,每月热销产品分析,按科目成绩排名,等等.)
    select a,b,c from tablename ta where a=(select max(a) from tablename tb where tb.b=ta.b)

    16、说明:包括所有在 TableA 中但不在 TableB和TableC 中的行并消除所有重复行而派生出一个结果表
    (select a from tableA ) except (select a from tableB) except (select a from tableC)

    17、说明:随机取出10条数据
    select top 10 * from tablename order by newid()

    18、说明:随机选择记录
    select newid()

    19、说明:删除重复记录
    Delete from tablename where id not in (select max(id) from tablename group by col1,col2,...)

    20、说明:列出数据库里所有的表名
    select name from sysobjects where type='U'

    21、说明:列出表里的所有的
    select name from syscolumns where id=object_id('TableName')

    22、说明:列示type、vender、pcs字段,以type字段排列,case可以方便地实现多重选择,类似select 中的case。
    select type,sum(case vender when 'A' then pcs else 0 end),sum(case vender when 'C' then pcs else 0 end),sum(case vender when 'B' then pcs else 0 end) FROM tablename group by type
    显示结果:
    type vender pcs
    电脑 A 1
    电脑 A 1
    光盘 B 2
    光盘 A 2
    手机 B 3
    手机 C 3

    23、说明:初始化表table1

    TRUNCATE TABLE table1

    24、说明:选择从10到15的记录
    select top 5 * from (select top 15 * from table order by id asc) table_别名 order by id desc

    三、技巧

    1、1=1,1=2的使用,在SQL语句组合时用的较多

    “where 1=1” 是表示选择全部   “where 1=2”全部不选,
    如:
    if @strWhere !=''
    begin
    set @strSQL = 'select count(*) as Total from [' + @tblName + '] where ' + @strWhere
    end
    else
    begin
    set @strSQL = 'select count(*) as Total from [' + @tblName + ']'
    end

    我们可以直接写成
    set @strSQL = 'select count(*) as Total from [' + @tblName + '] where 1=1 安定 '+ @strWhere

    2、收缩数据库
    --重建索引
    DBCC REINDEX
    DBCC INDEXDEFRAG
    --收缩数据和日志
    DBCC SHRINKDB
    DBCC SHRINKFILE

    3、压缩数据库
    dbcc shrinkdatabase(dbname)

    4、转移数据库给新用户以已存在用户权限
    exec sp_change_users_login 'update_one','newname','oldname'
    go

    5、检查备份集
    RESTORE VERIFYONLY from disk='E:\dvbbs.bak'

    6、修复数据库
    ALTER DATABASE [dvbbs] SET SINGLE_USER
    GO
    DBCC CHECKDB('dvbbs',repair_allow_data_loss) WITH TABLOCK
    GO
    ALTER DATABASE [dvbbs] SET MULTI_USER
    GO

    7、日志清除
    SET NOCOUNT ON
    DECLARE @LogicalFileName sysname,
            @MaxMinutes INT,
            @NewSize INT


    USE     tablename             -- 要操作的数据库名
    SELECT  @LogicalFileName = 'tablename_log',  -- 日志文件名
    @MaxMinutes = 10,               -- Limit on time allowed to wrap log.
            @NewSize = 1                  -- 你想设定的日志文件的大小(M)

    -- Setup / initialize
    DECLARE @OriginalSize int
    SELECT @OriginalSize = size
      FROM sysfiles
      WHERE name = @LogicalFileName
    SELECT 'Original Size of ' + db_name() + ' LOG is ' +
            CONVERT(VARCHAR(30),@OriginalSize) + ' 8K pages or ' +
            CONVERT(VARCHAR(30),(@OriginalSize*8/1024)) + 'MB'
      FROM sysfiles
      WHERE name = @LogicalFileName
    CREATE TABLE DummyTrans
      (DummyColumn char (8000) not null)


    DECLARE @Counter   INT,
            @StartTime DATETIME,
            @TruncLog  VARCHAR(255)
    SELECT  @StartTime = GETDATE(),
            @TruncLog = 'BACKUP LOG ' + db_name() + ' WITH TRUNCATE_ONLY'

    DBCC SHRINKFILE (@LogicalFileName, @NewSize)
    EXEC (@TruncLog)
    -- Wrap the log if necessary.
    WHILE     @MaxMinutes > DATEDIFF (mi, @StartTime, GETDATE()) -- time has not expired
          AND @OriginalSize = (SELECT size FROM sysfiles WHERE name = @LogicalFileName) 
          AND (@OriginalSize * 8 /1024) > @NewSize 
      BEGIN -- Outer loop.
        SELECT @Counter = 0
        WHILE  ((@Counter < @OriginalSize / 16) AND (@Counter < 50000))
          BEGIN -- update
            INSERT DummyTrans VALUES ('Fill Log') 
            DELETE DummyTrans
            SELECT @Counter = @Counter + 1
          END  
        EXEC (@TruncLog) 
      END  
    SELECT 'Final Size of ' + db_name() + ' LOG is ' +
            CONVERT(VARCHAR(30),size) + ' 8K pages or ' +
            CONVERT(VARCHAR(30),(size*8/1024)) + 'MB'
      FROM sysfiles
      WHERE name = @LogicalFileName
    DROP TABLE DummyTrans
    SET NOCOUNT OFF

    8、说明:更改某个表
    exec sp_changeobjectowner 'tablename','dbo'

    9、存储更改全部表

    CREATE PROCEDURE dbo.User_ChangeObjectOwnerBatch
     @OldOwner as NVARCHAR(128),
     @NewOwner as NVARCHAR(128)
    AS

    DECLARE @Name   as NVARCHAR(128)
    DECLARE @Owner  as NVARCHAR(128)
    DECLARE @OwnerName  as NVARCHAR(128)

    DECLARE curObject CURSOR FOR
     select 'Name'   = name,
      'Owner'   = user_name(uid)
     from sysobjects
     where user_name(uid)=@OldOwner
     order by name

    OPEN  curObject
    FETCH NEXT FROM curObject INTO @Name, @Owner
    WHILE(@@FETCH_STATUS=0)
    BEGIN    
     if @Owner=@OldOwner
     begin
      set @OwnerName = @OldOwner + '.' + rtrim(@Name)
      exec sp_changeobjectowner @OwnerName, @NewOwner
     end
    -- select @name,@NewOwner,@OldOwner

     FETCH NEXT FROM curObject INTO @Name, @Owner
    END

    close curObject
    deallocate curObject
    GO


    10、SQL SERVER中直接循环写入数据
    declare @i int
    set @i=1
    while @i<30
    begin
       insert into test (userid) values(@i)
       set @i=@i+1
    end
     

    CSS3介绍 第三章 文字特效

    //Srain翻译 
     
    CSS3系列文章的第三章将会深入探讨新的文字特效。毫无疑问,排版技术是设计一个布局最重要的部分之一。透过一个网页的字体可以吸引浏览者,以一种特别的表达方式,在不同的内容里面提供有冲击力、微妙的或辅助性的效果。
     
    CSS已经有很多的方法去设计文字,但仍局限于少数的领域里面,CSS3会提供一些途径去解除这些限制。
     
    所有的例子如下所示,可以在我们的CSS3例子页面找到。当然,很多的效果只能在最新的各种浏览器中呈现:
     
     
    文字阴影
     
    文字阴影听起来可能有点简单,但这完全取决于你怎样实现他们。当为这篇文章做实验的时候,我发现一些组合看起来比较可怕,有一些可以实现比较有吸引力的、奇妙的特效。阴影特效可以很好的用于标题,Matthias Kretschmann 的博客上面有一些非常好的例子。
    .text_shadow {
    color: #897048;
    background-color: #fff;
    text-shadow: 2px 2px 2px #ddccb5;
    font-size: 15px;
    }
    CSS3 Text Shadow
    自动换行
     
    目前,如果一行里面语句太长的话,会自动延伸到这个区域的外面,这种事情不是经常发生,但偶尔也会以外出现。新的语句包含能力允许你强制将文字包起来:即使这意味着把这个语句分开。这段代码难以置信的直接:
    .text_wrap {
    word-wrap:  break-word;
    }
    CSS3 Text Wrapping
     
    网页字体
     
    虽然这些不能都被列在“文字效果”里面,但我们还是简略的介绍一下。在你的页面里面应用任何字体,一个网页字体是一个简单的方法都会被浏览器自动下载。对于设计来说,这是一个革命性的变化,以前被广发支持的文字限制在10-15。当然,这些新功能也带来了版权方面的争论,因为只有经过授权的字体才可以使用。
     
    目前位置,只有最新版本的Safari(3.1)的浏览器才可以支持网页文字特效,Opera浏览器是另外一个将要能够支持的浏览器,毫无疑问的是,其他的也会紧跟其后,如果实现的一个例子:
     
    @font-face {
    font-family: 'Name of the new font';
    src: url('http://www.designshack.co.uk/fonts/font.ttf');
    }
    举几个页面已经仿照这种技术的几个例子。下面的例子,可以在CSS禅意花园的名单里面找到,所链接的版本只能在特定的浏览器中运行:
    CSS3 Web Fonts CSS3 Web Fonts
     
    结论
     
    很多CSS2欠缺的特征已经在这次升级中被弥补,这篇文章没有覆盖增加的文字特效的方方面面,如果你有兴趣的话,可以阅读关于文字模块的更多东西,所有这些补充都很不错,如果用的巧妙的话,可以大大加强页面的排版布局。
     
    这个系列接下来的文章将扩展到一些在CSS3中用户界面效果的增强,不要忘记看在线的例子。
     
     

    重返金山词霸的怀抱

    如果你知道现在有一种桌面翻译软件叫谷歌金山词霸的话,就去下载回来用用吧,比有道更好用一些,占用空间差不多,才20多M,界面也比有道设计的好。谷歌金山词霸不像金山词霸2007一样,不需要注册,块头也小了很多,还增加了网络解释等功能,也可以按ctrl+enter进行google搜索。
     
     
     
     
    jinshanciba
     
    顺便赞一下谷歌的博客搜索,写完文章才34分钟就可以搜到了。
     
     

    马云来了,我们该怎么办?

    //Srain
     
    本来公司的前途和命运不是我们这些作为员工所需要担心的,这是CEO们要做的事情,但毕竟公司的的发展同自己的前途还是有些关系的,而且一旦踏进这个行业,对互联网产生了兴趣,也不免时常会思考相关的问题,
     
    看到一条新闻马云:阿里巴巴将投入5000万美元建华南总部,广州的市长朱小丹亲自接见,可见重视之程度,阿里巴巴答应会在广州投资5000万美元建立华南总部,对于阿里巴巴来说,无疑又前进了一大步,这样就可以把整个网络市场从北到南贯穿起来了,我怀疑在不久的将来,阿里巴巴亦会在西部建立西部总部,我们相信,这只是时间问题,这样的话,阿里巴巴就完成了全国的布局,慧聪的发展空间还有吗?生意宝的发展空间还剩下多少?如若阿里巴巴再在它的国际站上做些功夫,价格再合理化一些,信用制度再完善一些,国外的推广再猛烈一些,它是有这个能力的,到时候ec21、中国制造网、环球资源网都会更加紧张了,至少现在来说,阿里巴巴的高收费还是给其余的B2B网站制造了一些机会,比如说我们的网站。
     
    在此我暂时不说我工作的是哪个网站,我们的网站也算是综合性的国际B2B网站了。如果说当年淘宝打败易趣是因为易趣收费,淘宝免费,如果说当年UC能有喘息的机会是因为QQ曾一度收费,那么我们现在几乎在走以免费来对抗收费的老路,至少从表明上看起来是。小的企业一般都会谈差异化竞争,但实施起来确实有些困难,没有钱就没人,没有人就没有好的创业好的思想,没有钱也没办法去实施这些啊,那么是不是有了钱就能解决问题,没钱就是等死呢?也不尽然!
     
    难度很大,但也不是没有机会,不然CEO也不会坚持这么久,中国也不会如雨后春笋般的出现这么多的B2B网站。资源的不断集中是大势,看看现在的世界就知道,其实是为数不多的大公司在控制着这世界的经济命脉,产业如是,大的企业如阿里巴巴只要少犯错甚至不犯错就会越来越大,其他的则逐渐走向消亡,但是终究不会死光光的。为什么?因为生存下来的找到了他们生存的方式和空间,虽然有时候这方式和空间是不稳定的。
     
    生存的方式?盈利的模式也,所有的商业行为中,盈利应该算是最重要的目的吧,但盈利的模式并不好找,而且是越来越不好找,但也不至于没有,甚至有时候会很多,就看你能否抓的到他,至于盈利的模式有哪些?就不是本文探讨的问题了。
     
    说了这么多,我想说的是,阿里巴巴来了,作为南方小公司的我们还是有机会生存下去的,只是这空间又被挤去了一些,如若不赶快发展的话,可能再无机会了。
     
     
    May 29

    水平细线制作方法

    //Srain
     
    做这些技术性不是太强的设计,方法在精不在多,一般掌握一种比较好的方法并能灵活应用就可以了,当我们知道了细边框的制作方法以后,就可以利用同样的方法再稍加变化后做类如水平细线的设计了,现在就拿水平细线来说明一下。
     
    首先,没有看过利用CSS定义制作细边框的同学先看一下这篇文章,因为下面将用到前面定义好的.border样式表。
     
    1.新建一条水平线(<hr/>)
    2.将这条线的高度设为0像素(size="0"),这跟前面用的表格边框都是0像素是一样的。
    3.去除水平线的阴影效果(noshade="noshade")
    4.应用前面定义好的CSS样式表.border(class="border")
     
    综合起来的代码就是
    <hr size="0" noshade="noshade" class="border"  />
    是不是很简单呢?赶快预览看看吧。如果你用的是Dreamweaver CS3网页制作工具的话,就可以在点选水平线后,在属性面板设置水平线的高度和去掉阴影的选框,然后在“类”里面选择border就可以了。
     
    别忘记了.border是我们已经定义好的:
    <style type="text/css">
    <!--
    .border {
     border: 1px solid #FF0000;

    }
    -->
    </style>
     这个时候的水平细线的颜色是红色的,可以通过改变#FF0000来改变它。