Isaac 的个人资料Isaac Montgomery日志列表网络 工具 帮助

日志


11月18日

明天NOIP

  明天就是NOIP,这段时间的计算机组生活也到了该结束的时候了,下周就回班准备高考。这个时候有很多的话想说,毕竟之后将要开始的是一种截然不同的生活。
  去年这个时候的感觉和现在是大不相同的,现在想来大概是一种无所谓的想法吧,那时总想着“以后的机会很多,现在只是试试就可以的”。这个时候,在经历了数学考砸之后,很多都变了。那确实是个很大的打击,从来没想过会考砸的,现在只能接受残酷的现实。
  对于曾经的日子,每一天都是值得怀恋的,那是一生中难得的经历,每一天都充满了欢乐。至于以后的路,虽然有些迷茫,但我对未来充满希冀,我的目标从未因任何事而改变,所以无论怎样我都会努力的。至于能否成功倒不太重要了,因为我努力过,我问心无愧就足矣。。。。。。
     剩下的话就可以略去了,大多是怀念以前的日子。明天还要考试,现在就做些不懂脑子的事,好好休息一下
11月6日

NOIP

  最近一段时间都在准备NOIP中,每天都很辛苦。早上一到机房就做题,下午讲题,晚上则是整理白天的题目,写解题报告。
  日子就这样一天天过去,还有两周就要考试了。虽然每天都很累,但是感觉很好,就像高一来时刚开始学数学一样。毕竟每天都在学习新的东西,能够有所得就是最好的了。
  虽然这样,有时总会有些想法。既然秋天是收获的季节,为什么到现在为止却是颗粒无收?难道付出的努力还不够?我不是个相信命运的人,我相信自己的努力可以使自己成功,但是每次总是在关键时刻失败。。。。。。为什么?? 
  我不想想的太多,毕竟有些问题一辈子都不会明白的。也罢,就这样吧,继续努力,不论还有多少失败在等待着我,我都不会放弃对理想的追求,我会一直坚持下去的。
  现在呢,好好准备NOIP,Go for it!
7月13日

Life

***************************Life.h***********************************************
 
#include <iostream.h>
#include <stdlib.h>
#define MAXROW 20
#define MAXCOL 60
typedef enum state{DEAD,ALIVE} State;
typedef State Grid[MAXROW+2][MAXCOL+2];
void CopyMap(Grid map,Grid newmap);
bool UserSaysYes(void);
void Initialize(Grid map);
int NeighborCount(Grid map,int row,int col);
void WriteMap(Grid map);
void CopyMap(Grid map,Grid newmap)
{
    int row,col;
    for(row=1;row<=MAXROW;row++)
     for(col=1;col<=MAXCOL;col++)map[row][col]=newmap[row][col];
    }
   
bool UserSaysYes(void)
{
    int c;
    cout<<"(y,n)?"<<endl;
    do{
        while((c=getchar())=='\n');
        if(c=='y'||c=='Y'||c=='n'||c=='N')return(c=='y'||c=='Y');
        cout<<"Please respond by typing one if the letters y or n"<<endl;
        }while(1);
    }
void Initialize(Grid map)
{
    int row,col;
    cout<<"This program is a simulation of the game of Life."<<endl;
    cout<<"The grad has a size of "<<MAXROW<<" rows and "<<MAXCOL<<" columns."<<endl;
    for(row=0;row<=MAXROW+1;row++)
     for(col=0;col<=MAXCOL+1;col++)
      map[row][col]=DEAD;
    cout<<"On each line give a pair of coordinates for a living cell."<<endl;
    cout<<"Terminate the list with the special pair 0 0."<<endl; 
    cin>>row>>col;
    while(row!=0||col!=0)
    {
        if(row>=1&&row<=MAXROW&&col>=1&&col<=MAXCOL)map[row][col]=ALIVE;
        else cout<<"Values are not within range."<<endl;
        cin>>row>>col;
        }
    while(getchar()!='\n');
}
int NeighborCount(Grid map,int row,int col)
{
    int i,j;
    int count=0;
    for(i=row-1;i<=row+1;i++)
     for(j=col-1;j<=col+1;j++)
      if(map[i][j]==ALIVE)count++;
    if(map[row][col]==ALIVE)count--;
    return count; 
}
void WriteMap(Grid map)
{
    int row,col;
    putchar('\n');
    putchar('\n');
    for(row=1;row<=MAXROW;row++)
    {
     for(col=1;col<=MAXCOL;col++)
      if(map[row][col]==ALIVE)putchar('*');
      else putchar('-');
     putchar('\n');
     }
}   
 
*****************************main.cpp**************************************
 
#include <life.h>
using namespace std;
int main(void)
{
   int row,col;
   Grid map,newmap;
   Initialize(map);
   WriteMap(map);
   cout<<"This is the initial configutation you have chosen."<<endl;
   while(getchar()!='\n');
   do{
       for(row=1;row<=MAXROW;row++)
         for(col=1;col<=MAXCOL;col++)
          switch(NeighborCount(map,row,col))
          {
              case 0:
              case 1:
                  newmap[row][col]=map[row][col];
                  break;
              case 3:
                  newmap[row][col]=ALIVE;
                  break;
              case 4:
              case 5:
              case 6:
              case 7:
              case 8:
                  newmap[row][col]=DEAD;
                  break;                          
                  }
      CopyMap(map,newmap);
      WriteMap(map);
      cout<<"Do you wish to continue viewing the new generation?"<<endl;           
       }while(UserSaysYes()); 
}

EightQueens

#include <iostream.h>
#include <stdlib.h>
#include <string.h>
#define BOARDSIZE 8
#define DIAGONAL (2*BOARDSIZE-1)
#define DOWNOFFSET 7

void WriteBoard(void);
void AddQueen(void);

int queencol[BOARDSIZE];
bool colfree[BOARDSIZE];
bool upfree[DIAGONAL];
bool downfree[DIAGONAL];
int queencount=-1,numsol=0;

void WriteBoard(void)
{
   int i;
   for(i=0;i<BOARDSIZE;i++)
    switch(queencol[i])
   {
    case 0:
  cout<<"*-------"<<endl;
 case 1:
  cout<<"-*------"<<endl;
 case 2:
  cout<<"--*-----"<<endl;
    case 3:
  cout<<"---*----"<<endl;
 case 4:
  cout<<"----*---"<<endl;
 case 5:
  cout<<"-----*--"<<endl;
 case 6:
  cout<<"------*-"<<endl;
 case 7:
  cout<<"-------*"<<endl;
   }
   cout<<endl;
   numsol++;
}

void AddQueen(void)
{
  int col;
  queencount++;
  for(col=0;col<BOARDSIZE;col++)
   if(colfree[col]&&upfree[queencount+col]&&downfree[queencount-col+DOWNOFFSET])
   {
     queencol[queencount]=col;
  colfree[col]=false;
  upfree[queencount+col]=false;
  downfree[queencount-col+DOWNOFFSET]=false;
  if(queencount==BOARDSIZE-1)WriteBoard();
  else AddQueen();
  colfree[col]=true;
  upfree[queencount+col]=true;
  downfree[queencount-col+DOWNOFFSET]=true;
   }
  queencount--;
}

void main(void)
{
  memset(colfree,true,sizeof(colfree));
  memset(upfree,true,sizeof(upfree));
  memset(downfree,true,sizeof(downfree));
  AddQueen();
  cout<<numsol<<endl;
}

6月29日

C++

       今天用C++编了一下程序,熟悉了一下编译环境,自我感觉不错,不过题目的通过率值得担忧!当然,以后就从Pascal转型到C++了,继续努力。

tju1010

#include <iostream>
#include <stdlib.h>
#include <fstream.h>

using namespace std;

int main()
{
    short a[1000000];
    long i,j,k,n,m;
    double s;
    ofstream Output("d://temp//Output.txt");
    cin>>m>>n;
    for(i=1;i<n;i++)a[i]=1;
    s=n;
    k=trunc(sqrt(s)); 
    for(i=2;i<=k;i++)
     for(j=2;i*j<=n;j++)a[i*j]=0;
    k=0;
    for(i=m;i<=n;i++)k+=a[i];
    Output<<k;      
    Output.close();
}

tju1011

#include <iostream>
#include <stdlib.h>
#include <fstream.h>
using namespace std;
int main()
{
  int a[25000];
  int n,i;
  long s;
  ifstream Input("D://Temp//Input.txt");
  ofstream Output("D://Temp//Output.txt");
  while (Input>>n)
  {
      for(i=1;i<=n;i++)a[i]=0;
      a[1]=1;
      for(i=2;i<=n;i++)
        {
          a[i]=a[i-1]*i;
          while(a[i]%10==0) a[i]/=10;
          a[i]%=10;
         }
      s=0;
      for(i=1;i<=n;i++)s+=a[i];
      Output<<s<<endl;
      }
  Output.close();   
}

tju1076

#include <iostream>
#include <stdlib.h>
using namespace std;
int main()
{
  int a,b,i;
  int c[100000];
  long n;
  cin>>a>>b>>n;
  while(not(a==0&&b==0&n==0))
  {
      a%=7;b%=7;
      c[1]=1;c[2]=1;c[3]=(a+b)%7;
      i=3;
      while (not(c[i]==1&&c[i-1]==1))
        {
          i++;
          c[i]=(c[i-1]*a+c[i-2]*b)%7;
          };
      n%=i-1;
      cout<<c[n]<<endl;
      cin>>a>>b>>n;
      }
}

Simpson Formula

#include <iostream>
#include <stdlib.h>
#include <math.h>
using namespace std;
double c[100];
double Poly(double x,int n){
    int i;
    double ans=0;
    for(i=n;i>=0;i--)
     if (c[i]==0);else ans+=pow(x,i)*c[i];
    return ans;
    }
   
int main()
{
  int n;
  int i,j;
  double k,a,b;
  double s=0;
  cin>>n;
  for(i=n;i>=0;i--)cin>>c[i];
  cin>>a>>b;
  k=(b-a)/10000;
  for(i=1;i<10000;i++)s+=Poly(a+double(i)*k,n);
  s*=2;
  s+=Poly(a,n);s+=Poly(b,n);
  s=s*k*0.5;
  cout<<s;
  cin>>a;
}
6月19日

共享空间进阶教程

MSN Space进阶技巧

本文转自原创作者Loadmemory的共享空间
由于原文是分为多个页面的,为阅读方便,我把内容合并在一起。

第一讲 初期准备

不少朋友已经发现,MSN Space对HTML语言具有相当强大的支持能力。虽然处理日志时,MSN Space只提供给大家简单的几个文字处理功能,但如果你事先在网页编辑器中对文字图片作预先处理,那么通过简单的拷贝粘贴后便能让你的日志看上去更生动活泼。其实这些都是通过相应的页面语言实现的。大家也许觉得每次都得用网页编辑器处理这些简单的文字有点大材小用,而且在不同页面间转来转去颇有些费神,那么我告诉你一个好的方法,为你的MSN Space添加更多的文字编辑功能,同时也让你拥有直接在日志编辑页面中处理HTML语言的能力。可以说这是为以后诸如添加计数器等功能作一良好铺垫。如何添加?请往下看:

首先确认你的IE浏览器工具栏中是否有“链接(Link)”这一项,如果没有,那么点击“查看”菜单,在“工具栏”选项中将“链接(Link)”挑上勾。然后访问下面这个网站:

http://www.siteexperts.com/blogging/editit.htm

你会发现页面中有一个“Edit It”链接,用鼠标右键点击这个链接,然后将其添加到收藏夹内,记着一定要放到“链接(Link)”这个文件夹中。按照上述操作后,你会在你的“链接(Link)”工具栏内看到一个“Edit It”的链接图标。

Ok,到你的MSN Space中新添加一篇日志,输入文字前,点击“Edit It”,看一看编辑工具栏是不是多出了几个图标,剪切、复制、粘贴、字形、字号都有了,再配合原来的加粗、斜体、文字颜色等,处理文本应该绰绰有余了。

再看下面,还多出了这么一个选项

Use HTML to create your page. - Edit the HTML formatting commands directly

点选后你就能进行页面语言编辑了,诸如添加背景颜色,设置背景样式等都可以通过它来完成了。

注:这里要感谢一位叫Scott的美国朋友,是他开发了这个非常实用的工具,在上面提供的页面中有他在Space空间的链接,大家可以经常去访问。

--------------------------------------------------------------------------------
 
第二讲 缤纷背景
 
MSN Space中日志的背景颜色随不同的模版类型而有所变化,但并不提供给用户自定义背景颜色的功能,但我们可以通过编辑HTML语言的方式来实现这一目的,让日志随我们的心情而变换不同的色彩。

编辑日志之前,先点击上一讲提到的那个“Edit It”按钮,然后选取编辑区域下方的HTML语法编辑选项,即将Use HTML to create your page选项挑上勾,此时即进入HTML编辑状态,你会看到页面上有如下标记<p></p>。将下列语句放置到编辑页面中:

<div style="width:100%;height:100%;background-color:#990000;"></div>

注意,这里需要你略微调整一下,将<p></p>嵌套在这一语句中,即如下形式:

<div style="width:100%;height:100%;background-color:#990000;"><p></p></div>

在<p>和</p>之间试着打几个字,然后点击预览日志,可以看到日志的背景颜色已经改变。当你想更改不同色彩的时候,只需将#990000这个颜色编码的数值加以调整就行了(注意不要丢了这个符号#)。如何获取自己心仪的色彩的数值呢?如果你手头有图形处理软件或网页编辑软件,使用里面的调整色彩功能,都会获取相应的数值。另外你也可以参考我提供色版。

在HTML编辑状态你会发现,文本编辑按钮都消失了,这种情况下处理起文字来可是有些困难,当然对高手来说,区区几个语句就能解决问题,但我们普通大众可没这本事和耐心。怎么办?好办!将Use HTML to create your page选项前的勾勾挑下去,即取消HTML语法编辑状态就可以了。这时你会发现,我们重新进入了文本编辑模式,但这里已不是一片空白,而是多了一个色块,在色块内双击鼠标,下面对文字的编辑就是轻车熟路了。

一个色彩还不够丰富,我想要五颜六色的生活!没问题,重新回到HTML语法编辑状态,在你想使用其他色彩的文字前再加入上面HTML语句,然后调整色彩值。这里还需注意两点:一是仍然注意要把文字部分嵌套在上述语句中,二是为达到最佳效果必须调整提供不同色彩的HTML语句中的高度比值,至于什么值比较合适,就得根据文字内容的长短了,你可以边调整,边预览之。

--------------------------------------------------------------------------------

第三讲 立体彩色边框

拥有了背景色彩的日志显得生动活泼了许多,那么如何让她更具特色呢?在这一章里我将向大家讲述如何定制具有立体效果的背景样式。

我们先从为日志文字添加带有色彩的边框说起,因为其涉及到的CSS边框属性语法是以后制作立体效果边框的基础形式。请记住下面这段语法:

<div STYLE="border-style:solid;border-width:5pt; border-color:red">日志文字</div>

它会在你的文字外围生成一个红色边框,border-width控制边框的粗细,border-color调整边框的颜色,这里你仍然何以使用前文提到的形式如#xxxxxx的颜色数值,而border-style则控制边框的效果,当使用“solid”则为单一颜色的线形简单边框。

接下来我们再将上述语法扩展一下,就可以获得具有立体效果的彩色边框。那么从何下手呢?其实就是在border-style后面使用不同的语法描述:

Solid 简单线形边框   Double 简单双线边框   Groove 沟线立体效果边框 Ridge 脊线立体效果边框   Inset 嵌入线立体效果边框  Outset 浮出线立体效果边框

你可以在MSN Space日志中尝试一下上面不同的语法,然后在预览中观看效果。

通过定制边框的方法再将上一教程添加色彩的语法嵌套其中,你就可以创造出具有立体效果的彩色日志背景。

例如:
<div STYLE="border-style:outset;border-width:2pt; border-color: red">
<div style="width:100%;height:100%;background-color:#ffff00;">日志文字
</div></div>

使用上述语法将会为你呈现一个黄底色红边框的浮出线效果背景,其实上述语法还有其他形式的简化写法,这里不再赘述,只采用上述较直接易理解形式。

对于背景边框的四个边你也可以按自己的需要进行调整,以左边框为例,你可以使用下述语法:

Border-left-style:solid (double, groove, ridge, inset, outset)定制边框样式
Border-left-color: #xxxxxx定制边框颜色
Border-left-width: xpt 定制边框粗细

其他三个边框只要分别使用Right, Top, Bottom就可以了。将下面的语法放到你的日志中预览一下,看一看是什么效果:

<div style= "border-top-style:outset;border-right-style:outset;border-left-style:outset;
border-bottom-style:outset;background-color:#cc3366">

你可以按照自己的想法随意调整四个边框的式样,以便创造与众不同的效果,记住一点,不同的属性描述之间用 ; 隔开。另外,你可能会注意到,当你设置完边框返回到日志文本编辑模式,在键入文字过程中如果使用回车键,就会又出现一个边框,从而影响文字的连贯性,这是因为HTML语法中不支持硬回车。要解决这个问题,必须返回到HTML编辑模式,在需要回车的地方键入<br>,需要几次回车就键入几个<br>,然后再返回到文本编辑模式,你就会发现边框背景内已经为你加入了回车后的效果。

--------------------------------------------------------------------------------

第四讲 如何添加背景音乐
 
如何在自己MSN Space的日志中加入音频和视频是目前许多朋友关注的问题,毕竟拥有声光效果的页面即能娱人也能悦己。记得刚入Space的时候,一方面为它的简单实用而折服,另一方面又为它提供的少得可怜的个性化设置而烦恼,初期只是简单地写写字,上传些照片,后来学会了贴图都觉得兴奋不已。看看其他Blog空间五彩缤纷的样子,真的是羡慕不已。Space留给我们的发挥空间就真的如此有限吗?事实当然并非如此,无论微软是有意还是无意,她仍然在这里给了我们展示个性的可能,只是这种可能要靠大家自己去发现。好了,废话少说,进入正题!

先介绍如何添加音频,也就是为我们的日志加入背景音乐。目前Space上比较流行的做法是利用MS Frontpage,这对于手头没有该款网页编辑软件的朋友当然不是一个好消息。通过分析其语法格式,我发现了更为简便的办法,不需动用上述软件即可实现音频的加入。考虑到有些朋友对第一种方式可能也会感兴趣,因此一并将两种方法介绍如下:

1. MS Frontpage方式

首先在网上搜索你需要的音乐,这里推荐使用WMA格式的文件,因为它体积相对较小,因此会获得比较快的载入速度。你需要获取该文件的确切链接地址,格式形如:
http://www.xxx.com/xxx.wma,某些在线播放的音乐不会直接显示链接地址,如何获取之,请通过Google等搜索引擎查询相关技巧。当然最满意的是你自己拥有主页空间,这样你就可以把心仪的歌曲上传到那里,而且不用担心以后会出现因为链接失效而造成Space背景音乐无法载入的情况。有了链接地址后,运行MS Frontpage,新建一个文件,然后在页面中插入图片,图片建议越小越好。然后用鼠标右键单击该图片,选择“图片属性”,在弹出的对话框中选择“视频”选项,将刚刚获取的音频文件的链接粘贴到“视频源”一栏,然后设置“重复”选项中的“循环次数”,这里依你自己的喜好加以选择。“开始”选项中的设置不用管它,留空即可,最后点击“确定”。Frontpage会用一段时间获取你的视频源,时间长短依据你的音频文件的大小。这时你会发现原来插入的图片缩成了一个小图标,用鼠标右键单击它,然后点击“复制”。回到你的Space空间,新建一篇日志,或打开你想添加背景音乐的日志,将光标移至空白处,然后用IE浏览器“编辑”菜单里的“粘贴”命令或CTRL+V快捷键,将你刚才复制的内容粘贴于此。正常的话,你不会看到任何粘贴的内容,再稍等一些时间,无须打开日志预览,你就可以听到背景音乐了。剩下的事,当然就是发布你的大作了。

2. Loadmemory自创的简单语法方式

通过上述方法插入背景音乐,总的来说并不繁琐,但对于没有MS Frontpage以及对MS系列产品过敏的朋友该怎么解决这个问题呢。通过分析上述操作的源代码及语法格式,我发现了更为简便的方法,只需插入一个极简单的语法句子,就可快速实现背景音乐的加入。请大家记住下面这个语法:

<P><IMG height=0 loop=infinite dynsrc=音频文件链接地址 width=0 border=0></P>

此段语法中唯一需要你更改的就是Loop,它控制循环播放的次数,当为infinite时是无限循环,为0时是不循环,其他循环次数只需键入相应数字即可。

在你的日志编辑页面,首先点击前文提到的“Edit It”按钮,进入HTML语法编辑模式,然后勾选Use HTML to Create Your Page,在空白处插入上述语法就可以了。由于需要载入时间,因此当你点击日志预览的时候,可能需要等待一会才能听到音乐。

--------------------------------------------------------------------------------

第五讲 如何添加视频
 
我要我的日志有声有色,不少在MSN Space安家的朋友都有这个想法。毕竟“声情并茂”的页面会吸引不少关注。上一章里我们了解了如何加入背景音乐,接下来我们看看怎样在日志中放入视频片断。

也是偶然的机会,我发现某些网站提供所谓的Music Video Code,选中自己需要的视频,再设定几个简单参数,网站就会即时为你生成一段代码,这段代码可用于自己的网页或Blog,从而实现实时播放的效果。当时我就产生了要在MSN Space中尝试的念头,但几经试验都不成功。后来我将一段视频拷贝到Dreamweaver网页编辑器中,查看了一下它的源代码,稍微做了一下修改,然后在IE中预览,再将预览页面里的视频加以复制,粘贴到日志里,没想到竟然成功了!不过这种做法比较繁琐,在此不再详述了。

我要为大家介绍的是一种更为简便的方法,它的灵感也来自于背景音乐的语法格式。实际通过上一个教程大家就可以了解到,图片“属性设置”里的“视频源”选项起到了关键作用,那么既然它叫做“视频”源,我们又成功地用它实现了音乐的载入,那理所当然就可以加入视频了。本着这个思路,我将语法中的音乐文件改为asf流媒体文件的链接,然后又调整了语法中IMG的宽度和高度,在Space的日志中一试即告成功,同时利用Loop参数也解决了以往不能循还播放的问题。

看到这你会恍然大悟,原来这么简单!是啊,其实就是这么简单!所以,如何加入视频,就和上一章介绍的加入背景音乐一样可以通过两种方式实现,一是利用MS Frontpage,二是使用我提供给你的下面这段语法:

<P><IMG height=150px width=150px loop=infinite dynsrc=流媒体文件链接></P>

IMG后的Height和Width分别控制视频画面的高度和宽度,你可以根据需要自行调整,如果这里你都设置成0的话,那么就只有音乐看不到图像,这也等同于插入背景音乐的效果。Loop控制循环次数,用法可参见上一章的描述。

对于页面中视频位置的控制,可以使用日志编辑器里简单命令,另外也可通过加入下述语法实现视频与文字的完美结合。举例如下:

align=left 文字置于视频的右边,并与其紧密结合
align=right文字置于视频的右边,并与其紧密结合
align=top 文字队齐视频顶端
align=middle 文字队齐视频中部
align=bottom 文字队齐视频底端

这里关键是流媒体文件的获取,正常的流媒体文件以asf,wmv,或mov等为后缀,这是最直接的形式;也有以asx为后缀的,这种文件格式隐藏了流媒体的真正地址,但没有关系,你一样可以将带有asx后缀的链接放到你的语法中。目前网上多数流媒体文件都隐藏了其链接,很难通过直接的方法来查看,有关这方面的破解技巧网上多有提供,大家可以试试。

--------------------------------------------------------------------------------
 
第六讲 添加计数器和MSN在线状态指示器
 
计数器和MSN在线状态指示器是两个比较实用的工具,通过前者你可以了解自己空间的受欢迎程度,而后者又为来访者提供了你目前的在线信息,方便好友与你及时联系。为日志加入这两项功能的前提是你必须已经安装了HTML语法扩展编辑工具,也就是你的IE浏览器工具栏里已经拥有了“Edit It”按钮。如何获取此项功能,我已经在教程的你一章作了详细介绍,这里不再赘述。

先说说添加计数器。如果只是在日志中显示来访总数,那么申请一个简单的计数器即可,提供这种服务的网站很多,你在搜索引擎中键入“Free Web Counter”会查找到很多结果,这里我个人推荐http://www.amazingcounters.com/。这个网站提供350多种计数器,款式繁杂,花色多样,绝对满足你的需要。申请时需要注册,但过程很简单,一般只需要提供少量的个人信息即可。注册成功后你就可以选择心仪的计数器了,然后再输入你个人网站的信息,你将获得一段在线生成的HTML页面的代码。某些网站还会提供给你简单的在线编辑功能,让你进一步对计数器的外观作简单的修改,以更好的适合你的需要。将获取的代码拷贝,然后转到你需要插入计数器的MSN Space日志,点击“Edit It”按钮,进入HTML语法编辑状态,将刚才获取的代码粘贴到空白处,再退出HTML编辑状态,在日志文本处理模式下调整计数器的位置。由于MSN Space空间没有提供置顶功能,因此你必须经常调整计数器的位置,将它始终放置在首页的日志中(最好是第一篇日志)。方便起见,你可以将计数器的源代码拷贝到文本文件中,以后调整时将它简单粘贴过来就可以了。

如果你想获得有关你的空间流量的具体信息,诸如单位时间内的访问量,来访者停留时间,来访者IP及所在国家等等众多专业统计结果,上述网站就不能满足你的需要了。推荐你到这个网站申请此项服务:http://www.statcounter.com/,它提供了极其强大且稳定可靠的统计功能,几乎面面俱到(至少对于我们这个水平是足够了),而且众多信息均以图形或表格的方式予以呈现,直观明了(Tucow五星推荐)。所有这些服务均为免费,除非你的月访问量超过20万。唯一的缺点就是提供的计数器样式过于简单,可供选择的余地也不大。。它的申请过程很简单,成功后会先让你选择计数器样式(你可以进行简单的定值),然后设定某些参数,诸如通过Cookie功能将你自己的登陆排除在统计数字之外等,之后你可以在Install Code页面获取HTML代码,需要注意的是,它会为不同类型的页面生成不同的代码,因此你要在“Statcounter Code Option”里选择“Html Only Code”,通过这个命令生成的代码才可用于MSN Space,获取代码后的操作就和上面已降解的方式一样了。由于是海外的服务商,所以页面信息全部是英文,这对于不谙E文的朋友可能有些麻烦。

申请MSN在线状态指示器也很简单,到下面这个网站http://snind.gotdns.com:8080/ 在“Messenger”下拉菜单里选择MSN,当然如果你有Yahoo,或AOL等提供的及时通讯工具,也可以为其申请相应的指示器。输入你的MSN Messenger用户名,网站很快会为你生成一段代码,这段代码显示的是一个图标,通过其颜色的变化来显示你的Messenger的不同状态,直接将此代码按上述方法添加到日志中就可以了。有两个问题需要注意:该状态指示不会实时更新,它显示的状态是访问者登陆你的空间时你的在线状态,如果你在此期间上线或离线,指示器不会实时同步做出反应,除非刷新页面才会看出变化。另外显示的状态和真实状态可能会有稍许延迟,但不严重。还有一种情况也可能会发生,就是服务商的Server关机,那么指示器就无法正确显示任何状态了。

--------------------------------------------------------------------------------
 
第七讲 文字光影效果及滚动文本框(外加文字竖排版)
 
有关文字方面的处理,MSN Space提供了最基本的几个格式化命令,再加上我们的扩展编辑工具,在应付一般的文字编排上应该是绰绰有余了。如果还想获得更多的效果,尤其是在文字排版方面,大家可以参考相应的HTML及CSS中有关文字处理的介绍,在这里就不做讲解了,毕竟我的教程只是给大家提供一些简单实用的小技巧,而并非网页制作方面的专业讲座。不过对于一些比较特殊的文字效果或编排方式,我还是会及时将有关语法和代码提供给大家。

(注:下述语法的使用,仍然是通过HTML语言编辑模式来实现,有关如何获取HTML扩展功能,请参见本教程第一章)

下面就给大家介绍我在日志中展示过的三种彩色文字效果的相关语法:

阴影:<FONT style="COLOR: #xxxxxx; FILTER: shadow(color=black); FONT-FAMILY: 华文彩云; FONT-SIZE: 20pt; WIDTH: 100%"><B>日志文字</B></FONT>

发光:<FONT style="COLOR: #xxxxxx; FILTER: glow(color=black); FONT-FAMILY: 华文彩云; FONT-SIZE: 20pt; WIDTH: 100%"><B>日志文字</B></FONT>

模糊:<FONT color=#xxxxxx style="FILTER: blur(add=1, direction=40,strength=10); FONT-SIZE: 30px; FONT-WEIGHT: bolder; WIDTH: 200px">日志文字</FONT>

三种效果的语法格式基本相同,只不过使用了不同的滤镜属性。Color控制文字的颜色;Filter控制不同的滤镜效果,其内部的具体参数,诸如阴影及发光的色彩、模糊的方向及强度都可以按照需要自由调整;注意各效果语法中Width这个参数,当你的字号大小有所变化的时候,你也需要相应调整此项值,否则会造成文字无法正常排列的结果。另外,模糊效果中的Add 意为是否保留原效果,取值为0 or 1,一般设为1即可。其他方面的参数没有太多需要强调的,这里之所以采用华文彩云字体同时加粗,是为了达到更好的效果,你完全可以按照自己的喜好加以调整。需要说明的是,这几种效果只适用于标题或少量文字上,否则后造成阅读上的困难。

大篇幅的日志会占据页面的大部分空间,从而影响整体的美观性,而通过为其添加一个带有滚动条的文本框,则能够很好地解决上述问题。下面就是相关语法:

<DIV align=center
style='
color: #ffffff;
background-color: #000000;
border: solid 2px black;
width: 120px;
height: 200px;
overflow: scroll;
scrollbar-face-color: #889B9F;
scrollbar-shadow-color: #3D5054;
scrollbar-highlight-color: #C3D6DA;
scrollbar-3dlight-color: #3D5054;
scrollbar-darkshadow-color: #85989C;
scrollbar-track-color: #95A6AA;
scrollbar-arrow-color: #FFD6DA;
'>日志文字</DIV>

上述语法生成一个带有黑色背景及灰蓝色边框的文本滚动框。语法里的参数相当简单,主要是控制不同部分的色彩,你可以做相应变化并在预览中观看实际效果。至于调整文本框的大小,你可以在插入此语法后退出HTML编辑模式,然后在日志编辑页面使用鼠标直接进行调整。

接下来说说文字竖排是如何实现的。除了制造特殊效果,我在Space空间展示的文字竖排没有什么真正的实用性,只会给阅读者造成麻烦,不过本着尽可能挖掘Space潜力的原则,我还是尝试了如下的语法:

<DIV style="FONT-SIZE: 9pt; WRITING-MODE: tb-rl; TEXT-ALIGN: left"><p>日志文字</P></DIV>

这个语法中唯一的亮点就是Writing-Mode这个参数,其后的tb代表文字排列从上到下,rl代表从右到左。