iTimothy

君看一叶舟,出没风波里


  • 首页

  • 分类

  • 归档

  • 项目

  • 关于

Ubuntu中安装JRE

发表于 2010-12-21 | 分类于 技术控 | | 阅读次数:
字数统计: 200 字 | 阅读时长 ≈ 1 分钟

JRE是Java的Runtime Environment,就像.NET的Framework一样,是Java程序运行的必要环境。在Ubuntu中,安装JRE的方法有很多,可以去官网下载.deb安装包,用dpkg的方式安装。这里要介绍一种比较简单的方法,就是适用apt-get来安装。貌似Ubuntu中默认的源是没有JRE的,需要我们手动改一下/etc/apt/sources.list,加入下面的一行地址: deb http://archive.canonical.com/ubuntu lucid partner 保存后,先用sudo apt-get update,更新一下源,这样,就会提示你,是否要更新JRE相关的包了。一路yes,回车后,JRE的安装就完成了。 最后,可以验证一下,在命令提示符处,输入java -version,会显示JRE的版本号等相关信息,表示安装完成。

Firefox打开网页缓慢的问题

发表于 2010-12-14 | 分类于 随笔 | | 阅读次数:
字数统计: 273 字 | 阅读时长 ≈ 1 分钟

我一直比较喜欢用Firefox,也算是Firefox的一个忠实粉丝了。不知道为啥,最近打开我的Blog,总是发觉速度很慢。开始,我一直认为是因为我在页面嵌入了百度广告,导致页面加载变慢,其实也不排除有这样的因素。后来发现每次打开我的blog的时候,都会在一个地方卡住一下,而且Firefox下面的状态栏,会显示正在等待superfish.com 。奇怪了,难道是我的页面被插入了脚本木马?也不像!后来从google搜索了一下这个怪异的superfish.com,发现有问题的并不只我一个。原来这是IE Tab插件捣的鬼,貌似这插件是superfish赞助的。IE Tab默认会把一个支持价格比较的功能打开,这个功能,就会去访问superfish.com。 了解了大概,二话不说,把这功能关掉即可。 具体的介绍,可以参考我在google上搜索出来的一同学的解决方法:由此传送过去

从Fremont到Dallas

发表于 2010-12-03 | 分类于 技术控 | | 阅读次数:
字数统计: 361 字 | 阅读时长 ≈ 1 分钟

最近Linode的Fremont机房老是抽风,不是断电,就是VPS被强制重启。痛定思痛,哥最终做出了一个很艰难的决定:把VPS从Fremont搬到Dallas。或许是Fremont名气太大,导致国内的站长都一窝蜂的涌向此机房,不过哥最终需要的不是名气,一切都是浮云,哥需要的是稳定。所以,在周五晚上,喝过几两酒后,哥很镇定的做出了此决定,并联系了Linode的客服,将VPS从Fremont搬迁到Dallas.

整个搬迁的过程,可谓非常顺利,也非常便捷,都是自动化的。在客服操作之后,在偶的Linode面板,出现了如下的操作界面:

migration

Linode会给你缓冲的时间,让你提前对你的VPS做好备份,备份好后,手动关闭你的VPS,然后点击搬迁按钮。

migration3

搬迁过程也是非常自动化的,系统会自动把你的VPS镜像,从Fremont机房,同步到Dallas机房。当然,搬迁后,VPS的IP会产生变化,需要重新解析你的域名。整个搬迁过程,花了大概45分钟左右,就OK了。然后手动重新启动VPS即可。待域名解析生效后,blog就可以访问了。值得令人欣慰的是,数据是无缝迁移的,迁移后,并不需要充装系统,一切照旧。

希望VPS在Dallas能长久安定下去……

偶把自己的BB9000给拆了

发表于 2010-11-28 | 分类于 技术控 | | 阅读次数:
字数统计: 378 字 | 阅读时长 ≈ 1 分钟

杯具发生在周五,公司组织出去玩,其间打了乒乓球,又打了网球,把BB9000一直放在裤兜里。估计是因为运动较为猛烈,出汗了,BB9000吸了主人的汗,受潮了。键盘上所有的按键都不灵了,要不就是按键乱窜的情况。

阅读全文 »

小试Emit

发表于 2010-11-25 | 分类于 技术控 | | 阅读次数:
字数统计: 612 字 | 阅读时长 ≈ 2 分钟

.NET中的Emit,其实是个很强大的东东,它允许你在你的程序运行时,动态的生成代码。看到这里,也许大家会联想到Reflection,的确,Reflection也是我们平时用得比较多的一种技术,通过Reflection,我们能通过程序集中的元数据,动态的生成目标程序集的Instance,并执行它。而Emit的功能,恰恰和Reflection遥相呼应,前者允许我们动态的生成代码,后者允许我们动态的“查看”和运行代码。Emit和Reflection合在一起,简直就是双剑合璧,简直就是幸福的一家……难怪,微软也很邪恶的把Emit放在了System.Reflection.Emit。

其实哥平时的开发中,用得比较多的,还是Reflection(反射)了,不过早已久仰Emit的大名,又没闲暇时间来窥探一把,最近总算比较闲了,决心研究研究强大的Emit。

话不多说,代码是最有力的说明,先献上一个通过Emit动态创建并生成程序集的例子:

using System;
using System.Reflection;
using System.Reflection.Emit;

namespace Emit_Learn
{
    class Program
    {
        static void Main(string[] args)
        {
            var name = new AssemblyName("HelloEmit");
            var assemblyBuilder =
            AppDomain.CurrentDomain.DefineDynamicAssembly(name,
            AssemblyBuilderAccess.RunAndSave); //创建程序集
              var modelBuilder = assemblyBuilder.DefineDynamicModule("HelloEmit",             "HelloEmit.dll"); //创建模块
              var typeBuilder = modelBuilder.DefineType("HelloEmit"); //定义类型
              var methodBuilder = typeBuilder.DefineMethod("Execute",                                 MethodAttributes.Public,                                 null,                                 null); //创建MethodBuilder
            var il = methodBuilder.GetILGenerator(); //获取ILGenerator,用于生成方法的IL
            il.Emit(OpCodes.Ldstr, "Hello, Emit");
            il.Emit(OpCodes.Call,                     typeof(Console).GetMethod("WriteLine",                     new Type[] { typeof(string) }));
            il.Emit(OpCodes.Ret);
            typeBuilder.CreateType();
            assemblyBuilder.Save("HelloEmit.dll"); //保存动态生成的程序集到磁盘文件

        }
    }
}

在IDE中输入以上代码,F5运行,你会发现,在你的程序的Debug目录,会生成一个HelloEmit.dll。没错,这就是我们的程序动态生成的程序集,并且它是可执行的。以上的代码,动态生成的程序集,包含一个叫HelloEmit的类,类中有一个public属性的Execute方法。方法中调用Console输出字符串:Hello,Emit

这个类,等价于如下的C#代码:

internal class HelloEmit
{
    // Methods
    public void Execute()
    {
        Console.WriteLine("Hello, Emit");
    }
}

我们也可以使用.NET Reflector一类的工具,打开生成的Dll查看,顺便验证一下。

Emit适用的场景:适用于对业务灵活性要求很高的系统,可以在运行时动态更改业务逻辑,并动态生成代码。

iPhone刷至iOS 4.2.1

发表于 2010-11-25 | 分类于 技术控 | | 阅读次数:
字数统计: 83 字 | 阅读时长 ≈ 1 分钟

4.2.1的推出,Apple跳了票,不过终于在前两天放出了,果断刷之……

QQ截图未命名

以前都是直接从国内的站点下载更新文件,再从iTunes导入刷新,这次直接在iTunes上下载并刷新,感觉网速比以前快一些,不错不错……看来是RP爆发了~~

Blog评论效果小改

发表于 2010-11-23 | 分类于 技术控 | | 阅读次数:
字数统计: 112 字 | 阅读时长 ≈ 1 分钟

工作上的事总算告一段落,于是又开始折腾自己的blog。这次在评论功能中加入了表情效果,和一个动态的字数统计效果。

comment

表情以及字数统计的具体实现,参考了万戈的blog上的方法。有兴趣的同学请移步过去看看。

修改表情传送门: https://xiaozhou.net/go/wange_smile 修改字数统计传送门:https://xiaozhou.net/go/wange_comment

Fremont机房断电导致blog无法访问

发表于 2010-11-21 | 分类于 站点日志 | | 阅读次数:
字数统计: 335 字 | 阅读时长 ≈ 1 分钟

中午用iPhone上网的时候,发现blog不能打开,估计是VPS出了问题。最先开始怀疑的是VPS的IP被qiang,不过想想也不大可能。后来经验证,并非某墙所为。在google上搜索了一下最新的消息,原来是Fremont机房出现断电故障。登陆Linode后台,准备关闭和重启VPS,发现问题依旧,无果。后来干脆来到Linode的Support页面,一个大大的通知挂在上面:

status

原来网上的消息是真的。后来得知,这次断电的故障,不光影响到Linode一家的VPS,BuyVM的VPS也受了影响,因为他们的服务器也在Fremont机房。既然Linode出了这样的通知,看来他们也挺负责的,至少正在积极的解决问题中。除此之外,俺们只有默默的等待…… 从Linode的status页面,可以详细的查询到他们对于这次断电时间的处理情况:

status-linode

从发现问题,到问题解决,大概花了6小时左右,事后,从我的监控宝告警邮件,也证实了这一点。恢复后,VPS顺利的启动了,blog再次恢复访问…… 尽管这次掉电事件让俺有点不爽,不过就着Linode认真、负责、及时的处理,确实值得表扬一下。

来冒个泡

发表于 2010-11-19 | 分类于 随笔 | | 阅读次数:
字数统计: 273 字 | 阅读时长 ≈ 1 分钟

嗯,很久没来这里写点什么了。原因是因为最近工作上比较忙,需要重构一个工程的某个模块,实际上改动比较大,基本上算是重写了。并且,这样的工作会持续到12月底左右,囧rz。所以,本Blog的更新脚步也放慢了,大家见谅。

其实,哥写代码的时候,并不孤单。我可以一边到虾米上听着音乐,一边写代码,自然感觉轻松不少。虾米还算挺不错的,以前常去豆瓣电台,不过音乐都是很随机的,虾米上还可以自己搜索自己喜欢的歌来听,而且音乐的品质很赞。代码写累的时候,塞上入耳式耳机,听一下音乐,感觉整个世界都清净了。听着阿哲的经典老歌,仿佛又回到了从前……

由于最近比较忙,突然发现想做的事情很多,但是又感觉力不从心,看来我应该放慢点脚步,安静一下了。

牢骚完毕……

使用SFTP替代FTP传输文件

发表于 2010-11-02 | 分类于 技术控 | | 阅读次数:
字数统计: 498 字 | 阅读时长 ≈ 1 分钟

FTP(文件传输协议)是一种使用非常广泛的在网络中传输文件的方式,这种传输文件的方式,大家再熟悉不过了。但是,它也同样存在被网络窃听的危险,因为它也是以明文传送用户认证信息。其实在SSH软件包中,已经包含了一个叫作SFTP(Secure FTP)的安全文件传输子系统,SFTP本身没有单独的守护进程,它必须使用sshd守护进程(端口号默认是22)来完成相应的连接操作,所以从某种意义上来说,SFTP并不像一个服务器程序,而更像是一个客户端程序。SFTP同样是使用加密传输认证信息和传输的数据,所以,使用SFTP是非常安全的。但是,由于这种传输方式使用了加密/解密技术,所以传输效率比普通的FTP要低得多,如果您对网络安全性要求更高时,可以使用SFTP代替FTP。 若要开启 SFTP功能,非常的简单,下面以偶的VPS为例,系统为Ubuntu。修改sshd_config文件的下列内容: Subsystem sftp /usr/lib/openssh/sftp-server 在配置文件中找到类似的一行,去掉行首的“#”,然后重新启动SSH服务器,即可。这样在进行SSH连接时就可以同时使用SFTP传输文件。 关于客户端,在这里推荐两个: 第一个是我最常用的FileZilla,一款开源的FTP客户端软件,并且支持SFTP方式,很好用,而且经常更新。 第二个,是一个叫WinSCP,也是图形化的操作界面,配置简单。并且那个界面,实在像极了Total Commander,经常用TC的同学,一定上手很快。vpser.net上有一篇专门介绍此软件使用方法的文章,这里就不再累述了。有兴趣的同学可以过去看看:点击此传送门

关于SSH的小问题

发表于 2010-11-01 | 分类于 技术控 | | 阅读次数:
字数统计: 330 字 | 阅读时长 ≈ 1 分钟

话说前两天,为了安装SendMail服务,我把之前的SSH设成了25端口。为了给SendMail让路,把25端口空出来,我又不得不把SSH的端口从25改成了2255(这数字是多么对称的重复,呵呵~)。本想到这事儿就算完了,结果有意思的事情更多了。用SSH上网,发现经常网页开着开着就没响应了,查看一下Tunnelier日志,提示如下: Client connection closed before completion of protocol. 一看这提示,貌似是协议交互还没完完成,客户端的连接就被强行掐断了,囧rz… 刚开始以为是VPS防火墙在作怪,检查了一下规则,没有半点问题。百思不得其解,又把SSH的端口,从2255改成了9999,结果还是不行,郁闷了。又改成其他端口(嘘,保密),谁知问题圆满解决了,相当的怪异。于是在google上搜了一下2255和9999端口,得到类似如下的信息: TCP 2255=Illusion Mailer TCP 9999=Prayer Trojan 原来9999是个常用的木马用的端口,另外又google了一下Illusion Mailer,貌似也是个比较有名的backdoor程序。难道这些端口作为默认的木马端口,要被封杀掉?汗…… 看来以后改SSH端口,要避开这些端口号。

VPS安装SendMail小记

发表于 2010-10-31 | 分类于 技术控 | | 阅读次数:
字数统计: 491 字 | 阅读时长 ≈ 1 分钟

在VPS之前,用的是付费的PHP空间,所以我的WordPress上的Mail To Commenter插件可以正常使用。后来迁移到VPS,也没有管这功能是否正常,在zww同学的提醒下,才知道原来这类通过邮件发送回复提醒的插件,本身不带smtp服务器,需要主机自带邮件发送功能才可以。看来需要给VPS装一个SendMail才行。

SendMail是Linux中比较常见的邮件发送组件之一,这类的组件还有很多。此文主要记录一下SendMail的安装步骤。VPS的系统是Ubuntu,所以安装异常简单:

apt-get install sendmail

安装完后,如果不出意外的话,SendMail就能自动进行默认配置,并启动服务了。

检验你的SendMail服务是否启动,可以用类似命令查看:

netstat -anp|grep sendmail

不过我在安装的时候,遇到了一些小插曲。因为当初了为了安全起见,把SSH默认的端口号从22改成了25,而SendMail的SMTP协议,刚好需要25这个端口,导致安装后服务无法启动。还有个地方需要注意,就是系统中那个默认的mail用户组和mail用户,必须保留。当初以为无用,就删掉了,结果在服务启动的时候报错,找不到用户帐户。后来添加了一个叫mail的用户组,以及一个叫mail的account,服务就能正常启动了。

接下来是PHP中的配置,需要在php.ini中打开对邮件的支持。用vim或者其他编辑器,编辑php.ini,找到如下类似的配置行,改成这样:sendmail_path = /usr/sbin/sendmail -i -t ,去掉前面的注释,并把路径填写正确即可。然后就可以通过php的mail函数来验证SeneMail是否能正常调用,还有个方法,大多的探针程序,都支持检验邮件功能,也可以试试。

1…212223…47
Timothy

Timothy

Timothy的技术博客,记录技术以及生活点滴

564 日志
8 分类
1187 标签
RSS
github twitter
Links
  • ZWWoOoOo
  • 花開未央
  • 守望轩
  • 大漠说程序
  • ChengBo
  • BlueAndHack
  • 程序员小辉
  • 子痕的博客
  • WoodenRobot
  • VPS大佬
  • 毕扬博客
  • VPSDad
  • 猫爪导航
  • ss1271的奋斗
  • Kian.Li
  • YoungForest
  • Fred's Blog
  • Jacklandrin
© 2025 Timothy
由 Hexo 强力驱动
|
主题 — NexT.Muse v5.1.4