服务器的变更历程

首先,我想说,FUCK!!!!!!!!!!!

NND,终于有见到我最爱的WP了,不容易啊。

都快半个月了。

算算日子,回想半个月前,从FC2跳到HG,主要是由于中国大陆访问时速度过慢的问题。

VPS的变更带来了一系列的问题需要解决。。。

最开始的问题,我和二号机都没有VISA卡,所以不能支付美国业务(FC2是日本的,所以可以用我的JCB来支付)。

后来二号机找到了HG,HG支持Paypal支付,总算是解决了问题1。

接着,二号机的我拿到服务器以后,自然是资料的转移以及服务器的再配置了。

到手以后一看,Mysql上不去,一般来说初始化的Mysql要使用Mysqladmin来给Root加个密码,但是我试下来没用,那么立马找了谷歌,看了很多文档,发现了很多很高级的,还有什么跳过验证(skip-gaint)进入Mysql的方法了云云,很是高深。只是大结局是依然没有什么用。。。最后问了HG的老大,老大说,默认是admin,不是root,他帮忙改过了,所以没用。。。一试 mysqladmin admin。。。果然有用,多亏了老大的帮忙,问题2搞定了。。。

问题2之后,碰到了最大的问题,问题3,域名问题!

首先域名从旧的VPS处到新的VPS的时候要经历一次重新配置,由于我的域名是在VPS处购买的,所以我不能直接管理,为了能够直接管理,首先要做一次Domain transfer(DT)。DT,难点不在于技术,在于沟通。核心步骤在于从web keepers那拿到到EEP key,问谁拿?问卖给你域名的人拿。FC2还是很配合的,问了以后立马给了我EEP以及帮我unlock保证了我的转移。接着在whois上找到我的注册商,我是eNom,去到了eNom以后填写一下资料,然后eNom给了封Email、确认,成功。DT问题只要做过一次就明白了,没什么技术含量,只是这个是业务上经验,不是靠学能学出来的。至此问题3搞定。补充一句,其实转移VPS以后,比如HG,可以直接把Domain转移给它,它还会送一年的Domain使用给你,另外每次转移后都会增加一年,要么是送的、要么自己掏钱买的。

接着是问题4和5,这个主要是由于对Domain的理论没有结合实际造成的。

问题4,@etmt1.com的邮件收不到了,很是域名,原以为是转移的关系(其实也有一点关系啦),后来知道,其实是MX Record忘记配置了。。。我很二的在host record里面找了半天没找到,最后发现其实它单独一个选项框。。。添加方法很简单,Host Name:@ ; address: ASPMX.L.GOOGLE.COM. ;Pref:10。这样,企业邮箱就搞定了。。。

问题5,Apache主页不认,这个问题。。。我很二的在服务器上找了半天,想怎么更改了DocumentRoot以后它就是不认呢。。。最后发现原来是Host Record这里写错了。。。原来HG给的服务器有两个IP,我在服务器上配置的和Host Record上面配置的不一样。。。残念。。。。

问题6,SVN联合Apache,最先碰到的是SVN中需要的两个模块在Apache上面没有,我的第一反应是yum list | grep subversion,尼玛没有,这下子我又囧了。。。纠结了两天,研究了很多Apache如何添加模块,发现现在主流的方法是apxs,这个方法需要有httpd-devel的依存。只是这个方法是编译的方法,没有找到合适的.c文件,最后放弃。一怒之下,yum search svn,两个模块出来了。。。

问题7,SVN模块解决后,访问时出现了一个Internal Server Error的问题,这个问题,野路子菜鸟的我依旧在寻找解决方案中。。。

设计模式 初章

今天复习设计模式,在自己写的选课系统里面应用设计模式。
选择了三种最容易上手的。

单例模式:
整个程序中,类的实例只存在一个。
C#里面就是将构造函数的关键字设置为Static,并且申明一个Read Onlay 的对象,相当于作为标志符。Lock这个对象一达到只实例化出一个类。
判断如果存在的话,直接返回声明好的类。
这样的目的是统一程序的代码,方便维护。

工厂模式:
工厂模式我的理解是,把声明类的实例的操作全部放到Factory这个类里面。需要用到类的实例的时候就调用Factory里面的CreateClass方法。
返回一个实例完成的类。这样做的好处是,程序中有一个统一管理申明的地方。

观察者模式:
今天试验没成功的一个,这个模式也叫订阅发布模式。
将一组观察者对象放置在泛型List中。
当被观察者做出某些动作的时候,调用Subject的Upload方法。以实现观察中的不同操作。
就相当于你发布了微博以后,你的粉丝都会收到一个通知,然后他们各自走自己的功能。
虽然模式没应用成功,但是思想还是很值得借鉴的。

暂时就理解了这3种,非常感谢军粮和墨子的提点。
再接再厉,每天进步一点,离梦想就更近一步。可惜扇贝跨年出了问题,没办法背单词了。呵呵

通过Excel 2007建立直方图/ヒストグラム/Histogram

Step 1. 键入需要的数据以及频度

Step 2.打开Menu(Office按钮)选择右下角的Option(Excel选项)。

Step 3.在Add-Ins(加载项)中找到Analysis ToolPak(分析工具库),然后按下方的Go(转到)。

Step 4.在“数据”中找到“数据分析”,图片的最右侧那个。

Step 5.进入“数据分析”后,找到“直方图”并确认。

Step 6.“输入区域”这里选择“Data/数据”下方数据,“接收区域”这里选择“Class/频度”下方数据,最下面的“图表输入”不要忘记打钩。完成后确认。

Step 7.上面步骤完成后Excel会在新的Sheet中输入效果图,效果图如下。

Step 8.如果要生成带累积百分率的柏拉图(Pareto Chart)可以增加选项并输出。

输出结果:

遇到的和没遇到的面试题

Readonly 和 Const 的区别
一:概念
const 关键字用于定义常量。它在赋初始值后不能被修改。常量字段是隐式静态的。不允许在常数声明中使用 static 修饰符。
readonly 关键字是只读字段数据。和常量相似,不能在赋初始值后改变。和常量不同的是只读字段可以在运行时决定,因此在构造函数作用域中进行赋值时合法的(其他地方不行)。
static readonly 静态只读字段,只读字段不是隐式静态的,所以要在类级别公开,就必须显式使用static关键字。
二:区别
1.const是一个包含不能修改的值的变量,是在编译时可被完全计算的表达式。因此不能从一个变量中提取的值来初始化常量。
如果 const int a = b+1;b是一个变量,显然不能再编译时就计算出结果,所以常量是不可以用变量来初始化的。readonly是在运行时执行的,因此能从一个变量中提取的值来初始化常量。
2.const只能被声明为简单的数据类型(内建的int和浮点型)、枚举或字符串,不能用new关键字初始化一个静态常量,即便是对一个值类型来说。 readonly 可以是任意的数据类型。
//这样是错误的
public const DateTime myDateTime = new DateTime(2006,9,1,0,0,0);
//这样是可以的
public static readonly DateTime myDateTime = new DateTime(2006,9,1,0,0,0);
总结:const外部不能对其赋值,而readonly外部可以(只能在构造函数中)对其赋值。
===============================================================
Static
区别

Static什么地方用到
static三种用法:
1.用于变量前,表示每次重新使用该变量所在方法、类或自定义类时,变量的值为程序这次运行最后一次为变量赋值时的值,这个方法称为静态函数:
private void s()
{
static int a=1;
a++;
}
方法第一次调用结束后a在内存内值为2;
方法第一次调用结束后a在内存内值为3;
2.在方法(函数)前用static修饰,表示此方法为所在类或所在自定义类所有,而不是这个类的实例所有,这个方法称为静态方法:
情况一:非静态方法:
class t
{
t(….(参数,下面同))
{
~~~~(方法内容,下面同)
}
void s(….)
{
~~~~
}
}
当你在其他方法里调用这个类中的方法s,则需先声明这个类的变量如:t sd = new t(….);
再在t里调用方法:sd.s(….);
情况2:静态方法:
class t
{
t(….(参数,下面同))
{
~~~~(方法内容,下面同)
}
static void s(….)
{
~~~~
}
}
当你在其他方法里调用这个类中的方法s,则不用先声明这个类的变量如直接调用方法:t.s(….);
3.用于class前,说明此类型无法新建实例,简单点说这个类型的方法全是静态方法,这个类里的非静态方法是不能使用的,这个类型称为静态类:
static class t
{
~~~~
}
~~~~
class d
{
~~~~
void f(….)
{
~~~~
t v = new t();//此时程序会出现错误
}
}
===============================================================

操作数据集

哈希表
一,哈希表(Hashtable)简述
在.NET Framework中,Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似keyvalue的键值对,其中key通常可用来快速查找,同时key是区分大小写;value用于存储对应于key的值。Hashtable中keyvalue键值对均为object类型,所以Hashtable可以支持任何类型的keyvalue键值对.
二,哈希表的简单操作
在哈希表中添加一个keyvalue键值对:HashtableObject.Add(key,value);
在哈希表中去除某个keyvalue键值对:HashtableObject.Remove(key);
从哈希表中移除所有元素: HashtableObject.Clear();
判断哈希表是否包含特定键key: HashtableObject.Contains(key);
下面控制台程序将包含以上所有操作:
using System;
using System.Collections; file使用Hashtable时,必须引入这个命名空间
class hashtable
{
public static void Main()
{
Hashtable ht=new Hashtable(); file创建一个Hashtable实例
ht.Add(E,e);添加keyvalue键值对
ht.Add(A,a);
ht.Add(C,c);
ht.Add(B,b);
string s=(string)ht[A];
if(ht.Contains(E)) file判断哈希表是否包含特定键,其返回值为true或false
Console.WriteLine(the E keyexist);
ht.Remove(C);移除一个keyvalue键值对
Console.WriteLine(ht[A]);此处输出a
ht.Clear();移除所有元素
Console.WriteLine(ht[A]); file此处将不会有任何输出
}
}
三,遍历哈希表
遍历哈希表需要用到DictionaryEntry Object,代码如下:
for(DictionaryEntry de in ht) fileht为一个Hashtable实例
{
Console.WriteLine(de.Key);de.Key对应于keyvalue键值对key
Console.WriteLine(de.Value);de.Key对应于keyvalue键值对value
}
四,对哈希表进行排序
对哈希表进行排序在这里的定义是对keyvalue键值对中的key按一定规则重新排列,但是实际上这个定义是不能实现的,因为我们无法直接在Hashtable进行对key进行重新排列,如果需要Hashtable提供某种规则的输出,可以采用一种变通的做法:
ArrayList akeys=new ArrayList(ht.Keys); file别忘了导入System.Collections
akeys.Sort(); file按字母顺序进行排序
for(string skey in akeys)
{
Console.Write(skey + );
Console.WriteLine(ht[skey]);排序后输出
}

===============================================================

抽象类和接口的区别
什么地方会用到

===============================================================
Application 全局的变量
session
cookis
server.transfrom

===============================================================
重写和重载

以上这些问题感觉经常会问道。

一面的时候有些题目没搞懂,别留疑点
XML,
面向对象的三大特征,
构造函数,
死锁的代码题,
子类父类间构造函数和方法调用的顺序,
asp.net隐藏文件,
HTML代码错误时需要跳转到自定义页面,
事务的概念,
范式和函数依赖关系

二面
首先自我介绍,然后进入正题
你现在的工作单位,用到一些什么技术,大概设计模式是什么?
做过什么项目,用了哪些技术?
学习了哪些课程?
你做的最成功和最失败的项目是什么?
你3年后想做什么?
你认为软件开发的流程是怎么样的?
你认为一个项目失败有什么原因造成?
你认为中国的软件行业是怎么样的?
当你和你的组长发生冲突时怎么解决?
你设想的工作环境是怎么样的?
用三个词来形容你自己?
别人对你的工作的看法是如何的?