C# 5.0入门经典配套源代码

自学的头三章还算顺利,基本上课后练习什么的靠自己就能搞定。第四章的课后练习突然冒出来让修改示例代码(p.77),搞得我一头雾水。猜测应该有配套光盘或者配套下载什么的,最终在封底找到一行小字:
读者可通过www.ptpress.com.cnhttp://vdisk.weibo.com/s/zp3n73NBke3A5下载本书的所有源代码。
第一个链接是人民邮电出版社的网址,在资源下载栏目根本找不到。第二个链接是新浪微盘。点了下载按钮却没有反应,似乎是赶上了这波网盘关闭对外分享的大潮,下载功能被停止了。在网上搜了半天也没搜到相同的文件,同名文件大都是原书的扫描PDF。最终还是下载成功了,考虑到未来可能还会有人购买这本书,在这里分享一下可以下载得到的位置。

  1. 这是我自己下载并转存到Evernote上的:
    C# 5.0入门经典
    ISBN 9787115344236
    http://www.evernote.com/l/AARAz55RmdFLr7cZTx-bux2dP27WTzaaTCI/
  2. 或者也可以到这本书的英文原版出版社官网下载,下载链接在页面下方的Downloads标签内,内容是一样的:
    Sams Teach Yourself C# 5.0 in 24 Hours
    http://www.informit.com/store/sams-teach-yourself-c-sharp-5.0-in-24-hours-9780672336843

 

CSharp学习笔记1:属性和方法

拖延了半年时间终于再度拾起之前的C#,埋头自学起来。
跟着中文版的Sams Teach Yourself C#5.0的教程 慢慢学下来,虽然没有书上说的24小时就能成功那样神速,倒也学得不亦乐乎。
书中第4章里的属性和方法小节有道题目(p.67),一开始无论如何不知道是如何实现(去年在MVA上自学的课程基本上算还给那个老外了)。还好有Google,在我耐着性子(其实快想掀桌了(╯-_-)╯╧╧)尝试各种搜索之后,居然找到了CSDN上有人跟我看同一本书,并把实现的方法写了出来。方法并不复杂,可见我的编程素养还近乎是零啊。
代码如下
Program.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Numerics;
namespace ConsoleHelloWorld
{
class Program
{
static void Main(string[] args)
{
Contact c = new Contact();
Console.WriteLine(c.ToString());
c.FirstName = "Jim";
c.LastName = "Morrison";
c.DateOfBirth = new DateTime(1943, 12, 8);
Console.WriteLine(c.ToString());
c.Search(37.479444f, -122.450278f);
c.Search(37.479444f, -122.450278f, 50);
c.Search(37.479444f, -122.450278f, 50, "en");
Console.WriteLine(c.VerifyEmailAddress("[email protected]com"));
Console.WriteLine(c.VerifyEmailAddress("[email protected]"));
}
}
}

Contact.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleHelloWorld
{
class Contact
{
private DateTime dateOfBirth;
public DateTime DateOfBirth
{
get
{
return this.dateOfBirth;
}
set
{
this.dateOfBirth = value;
}
}
public string FirstName  //自动实现的属性
{
get;
set;
}
public string LastName
{
get;
set;
}
public string FullName  //计算得到的属性
{
get
{
return FirstName + " " + LastName;
}
}
public override string ToString()
{
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.AppendFormat("Name: {0}rn", FullName);  //使用计算得到的属性
stringBuilder.AppendFormat("Date of Birth: {0}rn", this.dateOfBirth);
return stringBuilder.ToString();
}
public bool VerifyEmailAddress(string emailAddress)
{
return emailAddress == "[email protected]";
}
public void Search(float latitude, float longitude)
{
Search(latitude, longitude, 10, "en-US");
}
public void Search(float latitude, float longitude, int distance)
{
Search(latitude, longitude, distance, "en-US");
}
public void Search(float latitude, float longitude, int distance, string culture)
{
Console.WriteLine("latitude {0} longitude {1} distance {2} culture {3}", latitude, longitude, distance, culture);
}
}
}

 

调用Gears Desktop API

注意:Google已终止了Gears的支持,并且全面转向HTML5,请不要再尝试过时的技术。

原文:

好吧,我承认,在我研究清楚Gears Desktop API的使用方法并给自己的Blog增加“Shortcut”按钮之后,我发现原本是一个“添加到收藏夹”就能完成的功能,竟让我搞的如此复杂……这篇文章原本计划叫做“通过Gears Desktop API给你的Blog添加生成桌面快捷方式的按钮”,后来想想还是算了,太二了。

但不管怎么说,这也算是我的学习成果吧,所以思前想后,还是决定将其记录下来。

继续阅读“调用Gears Desktop API”

用手机在饭否上获得我的最新消息

这篇文章主要是写给我的可爱的同学们,让他们不必在某些关键时刻发短信给我,而我自己也可以一对多的发布某些关键信息。
所以,如果你不是我的同学,或你已完全掌握方法,请你忽略本文。
其实步骤很简单,由于我说话比较啰嗦,所以看起来很麻烦的样子。请耐心往下看。文章中但凡注明为重点的步骤,请仔细阅读。
首先,你需要一个电子邮箱,如果你没有,就注册一个吧!推荐使用Gmail。如果你已经拥有一个有效的电子邮箱(163、126之类的都行。记得去年计算机课考试的时候大家都曾用过),请接着看下一步。
然后,点击以下网址,打开饭否的首页:

http://fanfou.com/

点击页面右侧橘红色的“立即注册”,即可进入注册界面。
在饭否的注册界面上的Email栏里输入你的有效的电子邮箱地址,姓名栏里输入你平常上网用的昵称(比如“大头”、“神童”之类的 🙂 ),密码和重复密码栏就不用我多说了吧。
全部输入完后点击下方蓝色的“注册”按钮,随后会进入到“注册成功”的页面。页面内容分两部分:上面的是告诉你饭否发送了一封验证邮件到你刚才填写的电子邮箱,下面的是让你为自己设置一个个人页面的网址。先说下面的这个(注意!这是一个重点)。由于饭否官方提示如下:可以使用汉字、字母、数字、下划线或小数点,必须以汉字或字母开头,
最少 2 个汉字或 4 个字符,如“http://fanfou.com/饭否”,所以很容易让人在那个空格里填写中文内容(比如你刚才注册时填写的昵称)。我要说的是,这样填写是很不明智的。举个例子来说,尽管官方给出的样本是“http://fanfou.com/饭否”,但当你输入到浏览器的地址栏内并按下回车后,中文内容将会被转意为字符,即“http://fanfou.com/%B7%B9%B7%F1”,不信你可以试试看。所以,我在这里给出的建议是,请尽量用字母和数字构成自己的个人页面网址。这样一来较为美观(自己看着也舒服些),二来也比较方便把自己的页面地址告诉给别人。比如你刚才输入的电子邮箱地址的用户名就是一个很好的选择。
输入好后点击“保存”将会完成地址设置。接下来再打开一个浏览器窗口,到你的邮箱里看看,饭否的验证邮件应该已经到了。按照邮件内容的提示,打开邮件中的链接地址,你的电子邮箱地址就验证成功了。
接下来是个性化你的帐号以及绑定手机的步骤。回到刚才的“注册成功”的窗口,在你之前点击过“保存”按钮后会出现如下三个链接:

点击第一个链接进入到设置界面,在第一栏“基本信息”内你可以上传自己的头像,指定性别,输入生日(年份可以留空),指定所在地和家乡,如果你有个人主页或博客之类的,也可以把网址输进去,自述嘛,没什么词儿的话就复制下面这句:

“本人超级崇拜Duet G.!” 🙂

接下来的“兴趣爱好”大可随便填写啦,没什么词儿的话也可以复制上面这句话(其实不填也行)。 🙂
“帐号信息”栏没什么好改动的,保留原样就好。
“MSN / GTalk / QQ”栏,你可以绑定你的聊天软件帐号(想必大多数同学用的都是QQ吧)。绑定后你就可以直接发送更新到饭否了。
“手机”栏用来绑定你的手机(注意!这是一个重点)。输入你的手机号码到空白处,点击下面的蓝色“保存”按钮将会在页面中弹出一个验证码。停止网页操作,用手机编辑短信,把验证码发送到饭否的SP特服号:10657100250115 (移动) / 1065502587650115 (联通)(鉴于目前新版特服号较长,建议在手机里新建一个联系人,名字为饭否,把特服号输进去,以后还有用)。短信发出后,点击验证码下面的蓝色“确定”按钮,回到原页面。
这时如果你短信已经顺利发出,原本的“手机”栏页面会显示你已经绑定了手机号,但页面下方却显示接收消息功能还没有启用(注意!这是一个重点)。如果你不启用接收消息功能,那前面做的全都白费了。所以请拿出你的手机,再次编辑短信k(就是开的拼音首字母)到饭否特服号(如果前面已经添加联系人,现在就不用一个数字一个数字的输入了)。短信发出后是没有回复的,你可以稍后再返回到这个页面查看是否变成了“已启用”,如果是则设置成功。一般三五分钟就可生效。
饭否注册及绑定手机到此结束,接下来就要加我为好友了(注意!这是一个重点),否则还是不能接收到我的消息。
在饭否登录状态下(如果你是一口气做下来的,现在就是登录状态)。在地址栏里输入以下地址(或直接点击下面的链接):

http://fanfou.com/duetg

就可以直接到我的个人页面,你会看到一只很乖的小狗狗(也有人说是很色的小狗狗)的头像,没错,这就是我的个人页面。点击页面右边侧栏里的“加为好友”,OK,全部搞定了。
如何?很简单吧!怎么?你不知道饭否到底是用来干什么的?当然不只是“在关键时刻接收关键群发短信”用的。想多了解有关饭否的事情么?请到这里来看看。如果你在注册和绑定过程中遇到困难,也可以在上面的链接里寻找解决方法。
如果你有自己的博客或个人空间,当然也包括QQ空间,并且自认动手能力和互联网知识比较强的话,相信你会喜欢我做的饭否徽章小插件,用来在网页里显示你的饭否更新内容。例子可见网页左侧栏上方。
最后补充一下,希望在关键时刻不要发短信给我,我会尽快将关键内容通过饭否告知你的。
谢谢收看!欢迎常来!

Ubuntu上使用河南网通ADSL上网指南

这是我第一次写有关Linux的教程,自己接触Ubuntu虽然有2年多了,但实际上频繁使用也就是在这次硬盘坏了之后。由于有了合适于可劲儿折腾的硬盘,所以我就放心大胆开始了我的Ubuntu之旅了。
有点儿了解Ubuntu的朋友应该知道,这是一个完全离不开网络的系统。因为它需要很多必须从官方软件仓库中下载的软件。这些是官方编译且认证的版本,自然安全又好用了。如果没有网络,麻烦可是大大的。不过现在看来,就算装好Windows XP也同样需要Windows Update个把小时(我用的是微软XP SP2原盘)。所以说嘛,当今计算机应经进入了互联网(更新)时代了。
在河南用网通DSL服务上网(包括ADSL宽带一线通和小区宽带王)的朋友就该郁闷了在Windows下有网通官方的客户端来拨号,在Ubuntu(Linux)下我该怎么才能拨号呢。
目前解决方法有两种。首先请参照我前一段的一篇文章所写的方法,检验自己的帐号通过转换后,是否能使用Windows自带的拨号程序拨号上网。如果可以,那么恭喜你。你的Ubuntu上网之路将会很简单,请继续阅读。如果不能,那么请你考虑使用其他Linux发行版:Red Hat或者Fedora。稍后我会详细解释为什么使用这两个发行版。已知部分小区宽带(即以城市名称缩写加K构成前三个字母,如ZZK)无法拨通。初步估计应该和小区路由器有关,但未得证实。(目前全省已切割为PPPOE拨号,相关破解方法请参见这里
先说能用转换后的用户名拨号上网的情况。以下以Ubuntu 7.10为参考,其他版本请适当调整。在Ubuntu安装后,进入图形化界面,点击左上角程序,选择附件,打开终端。在命令行内输入:

$sudo pppenconf

有可能提示你输入帐号密码。之后一个文本模式的选择程序将引导你进行下面的步骤:

  1. 确认探测到的以太网卡。
  2. 输入用户名。就是通过转换得到的用户名。
  3. 输入密码。原密码不变。
  4. 如果你已经有一个PPPoE连接,会问你要不要修改。常见选项:是不是用’noauth’ 和 ‘defaultroute’ 选项同时移去’nodetach’ - 选 “Yes”。
  5. DNS - 选 “Yes”。
  6. MSS - 选 “Yes”。
  7. 问你要不要在开机时启动连接,多数时候要选是。但是如果你的网络经常断,以致于要经常重新连接,还是选否,再写个脚本连接的好。因为开机时自动连接用的是高权限,”poff”命令要用sudo,不方便。我选择否。
  8. 最后是问你要不立即建立网络连接。(看着办吧!)

完成了设置,一般网络就能用了。如果你没有启用开机时启动连接,在重启之后,如果要上网,就在终端输入:

$sudo pon dsl-provider

下线使用:

$sudo poff dsl-provider

就这么简单!
如果你在XP下无法使用转换后的用户名拨通宽带,建议你先去网通宽带用户自助服务页面的右下角下载网通准备好的Linux客户端。目前提供Red Hat 9、Red Hat AS4、Fedora 3以及Fedora 4的客户端,请对号入座。发句牢骚,Fedora都出到7了,这边最高才是4.记得最初在Ubuntu中文论坛上查的时候,有不少人都说安装网通Linux客户端失败。真要是这样的话,给你最后一个建议,换服务商吧!电信、移动什么的都还不错,至少在郑州是这样。
更新:目前帐号破解已无问题,任何版本的Linux均可使用PPPOE拨号上网。另外,联通(网通)已不提供Linux版本的客户端了。
说明一下:由于我很懒,文中有关pppoeconf的设置的部分内容选自互联网。

河南网通宽带上网拨号方法破解

更新:目前河南省内全部联通(网通)宽带都已切割为PPPOE拨号,同时由于2011年起全省宽带帐号逐步升级为“区号+电话号码(部分)”的形式,所以之前带有木马的用户名转换器已不再适用。但已有新版转换器,并且经杀毒软件验证绝对没有木马。下载地址见下文更新部分。
注意:本方法仅适用于PPPOE拨号的河南网通宽带用户,DHCP+拨号的用户请将本页加为书签并耐心等候,目前新联通正在将DHCP+切割为PPPOE,也许目前郑州的切割转换工作已经开始提速。本文并非介绍共享上网的破解方法。
前几天伴随我三年的主板坏了,导致无法更新Blog。换了块儿主板,重装了系统,目前一切恢复正常。
装好系统我才想起来没有河南网通宽带上网的那个客户端,也就没法上网,于是打了10060,客服小姐倒背如流地教会了我如何新建专用的拨号连接,以及去官方网站下载那个传说中的客户端,过程如下。
如果你是Windows XP的话,刚安好系统恐怕是进不网通自服务网站下客户端的。你需要:

  1. 在网络连接里点击左上方的创建一个新的连接
  2. 选择连接到Internet
  3. 选择手动设置我的连接
  4. 选择用要求用户名和密码的宽带连接来连接(PPPOE)
  5. ISP名称空白
  6. 用户名 [email protected];密码 cnc
  7. 完成后拨号上网 (这个拨号只能上网通自服务网站)
  8. 浏览器里输入 http://218.29.0.252
  9. 在页面中找到客户端下载

倒是不是很复杂,下载安好后我才发现客户端已经彻彻底底地升级了:

  • 版本号变成325
  • 名称变成了宽带我世界
  • 图标变成了绿球(倒是比以前好看些)
  • 增加由安全卫士360OEM的安全卫士(安装过程中可以选择不装)
  • 自动安装网通灵信,跟飞信差不多的东西,做的很烂(安装完成后可在添加删除程序中单独卸载)
  • 界面又多了一条频道列表,且不能通过设置取消显示
  • 自动启动的方式不再通过开始菜单的启动项,而直接通过注册表
  • 貌似不再弹出广告框(不知是否是卡巴的功劳)
  • 运行后会在C盘根目录自动生成体积很小的垃圾文件 (可以安全删除,不过会再次生成)

这还都不是最主要的地方。最为主要是,325版本是一个彻头彻尾的Firefox。打开它的文件夹“C:Program Filesracer-ccn-racerpc-ha”你会发现它与Firefox的文件结构相似。仔细比对之后不难看出来确实是一个由Firefox修改而来的客户端。
看了看核心文件的文件名,在“C:Program Filesracer-ccn-racerpc-hachrome”找到了两个重要文件:racer-ad.rwc和racer-channel.rwc。看名字也知道第一个是和广告相关的,第二个是和频道列表有关。解决方法很简单:新建两个空白文件分别命名为racer-ad.rwc和racer-channel.rwc,复制进上述文件夹替换原有的那两个文件就可以了。整个操作最好是在没有运行客户端的情况下进行。完成后再次运行客户端你会发现,原本让人眼花缭乱的两行频道列表没有了,左侧竖排的几个多余的相关链接和按钮也没有了,登陆成功后也不再中间显示Flash广告了。
不过相信很多人都和我一样,根本不想使用网通客户端来拨号上网。看到这儿不往下看的家伙该后悔了,下面再透漏一个更容易的拨号方法(使用Windows自带的拨号程序):
如果你已经安装过网通客户端且通过客户端拨号上网过,请打开IE浏览器,打开Internet 选项窗口。在“连接”选项卡中的“拨号和虚拟专用网络设置”下查找“rwpppoe”,如果没有请参照后面的没有安装网通客户端步骤继续操作。如果有则双击它打开设置窗口,在拨号设置项目下的用户名框内有一串字符,这就是你的真实用户名,而网通给你的“ZZA88888888”之类的帐号则是加密过的帐号。把它记下来,抄到文本文件中保存放好备用。关闭之前打开的所有窗口。在网络连接窗口参照前面所说的方法新建一个PPPOE的宽带连接,用户名填刚才抄的那个解密过的用户名,密码不变,即可轻松拨号上网。(目前新版宽带我世界已不能用此方法破解,按上述方法查到以3开头的帐号无法用来拨号上网)
如果你没找到“rwpppoe”或者没有安装网通客户端,你可以下载一个用户名转换工具:
特别注意:近期忽然发现原来这个转换器内有灰鸽子木马,特向曾经下载过的朋友深表歉意。本人在网上寻找很久,并没有找到无木马的版本,貌似是原作者加的木马。但其转换账号的功能是可以正常使用的,如必须要用,请使用安全环境(如网吧、虚拟机、沙盒系统)下载运行。并将转换后的帐号记好,以备将来使用。

下载 河南网通用户名转换器(内含木马) 
下载 新版河南网通用户名转换器(无木马)

解压后运行,输入你原本的网通帐号,点击“计算”即可生成真实的用户名。其他的都和上面一样,就不再啰嗦了。
赶快去试试吧!
ps. 附上新版转换软件出处:由于本人使用的网盘是box.net,可能很多国内读者无法顺利下载。现附上软件出处,网站提供在线转换功能,并提供该转换器的下载。鉴于无法得知未来此网站运营是否稳定,所以我在上文提供了box.net的下载位置作为备用。地址如下:http://cnc.linuxso.com