标签 博客 下的文章

digitalocean.png
自从兲朝开始实行严厉的个人站点备案策略后,我就将博客搬迁到了遥远的米帝。由于对freeBSD比较熟悉,所以选了一个小的服务商。用了一段时间,不料母鸡被入侵,数据全数丢失。经一事长一智,然后就选了大牌子的服务商digital ocean(后称:DO)。就这样上马了每月5刀的低端VPS,一用就好几年。

刚简单tracer了一下我访问主机(CDN)的距离,居然有11659KM这么遥远,横跨了整整一个太平洋。
s-shoot.png

由于使用的是米帝非CN2线路的主机,所以连接一直不怎样,但勉强还能访问。最近不知道什么情况,出现不同程度的丢包。其实不管是连我的主机还是爬梯子都感觉到网络存在各种不畅顺情况。嗯,我阴谋论的揣摩了一下,应该和兲朝美帝最近紧张的局势有关吧:D

鉴于上述原因,心底于是就有了更换服务商的计划。初定是选择linode,原因很简单,因为它有jp2线路。不过简单测试了一下,无论是ping速度还是下载速度都不如人意。就算上console也存在一定程度的丢包问题。于是,我有点犹豫了。

linode.png

后悔当时头脑一热,给linod充了5刀提枪上马背壮士断臂的武断。jp2线路ping速达300ms实在让人失望,于是我尝试给DO的主机增加了CDN。由于域名没有备案,只能使用国外的CDN服务商。我测试了Cloudflare(下称:CF),有时候能感到提速的效果,更多时候是断流情况。CF提供的特殊加速服务Railgun听说不错,但由于VPS的Debian内核版本不知道为啥无法升级,直接部署不了。如果要部署,可能要重新部署整个VPS,想想就觉得头大。

还是打算腾个时间,把VPS搬迁到linode吧。起码可以用联通加速一下,年纪大了也折腾不起来:(

以上!


yy2.jpg
YY玉照.摄于20050513

忘记了什么时候开始写日记了。想着真的很久了。那个年代还不流行博客。那个时候用一个简单的PHP文章系统改成一个日记系统,里面还按照以前在日记本里面常见的日期,天气,心情等等的东西。后来网络流行了博客系统,就直接转到博客系统里面了。

博客系统的慢慢的按照博客系统的规范内容写日记,就这样从写日记变成了写博客。日记的内容也开始发生变化。已经不再是以前的单纯记录当日发生的事情,更多的是筛选后的心得或者见闻。这和以往的日记很不同。也因为这种不同导致了写着写着就没有动力了。现在博客系统也慢慢的式微了,这样写的动力更加是没有了。

最近我忽然回想自己很久没有写东西了。自己从心底其实有很多想法和有记录意义的事情是需要写下来的,但是一直没有写下来。也有念头说不如新开一个博客重新写?要不要自己写一个程序然后用来写呢?。。。上述种种想法,除了浪费我时间,没有任何帮助。这些念头都不是解决为问题的方法。其实我本来就有博客,直接用这个博客写日记不就得了吗?这是白费功夫瞎j8折腾啊。

说起写日记,我想当年我的女友的坚持真的十分难得。她是一个很能坚持的人(虽然没有和我坚持到最后)。她会把每天见到或者自己的想法坚持写下来,即使当天没有写,第二天还是会如期补上。从她写第一个博客开始,到blogcn倒闭,她依然坚持写,后来转移到blogbus也继续写。现在bogbus也倒闭了。不知道她现在有没有坚持。现在想想,我和她的曾经的爱情大部分时间都围绕着博客的。或者准确点说是围绕她的心情。很多她的想法和心情我是通过她的日记了解到的(包括她要离开我了)。

我现在想写点东西,不为别人就是想写给将来的自己看。记录自己人生的一些轨迹。有机会把经历归档起来,给自己的后辈看看自己曾经做过些什么,有些什么想法,这样也是件不错的事情啊。所以从今天开始吧,好好记录生活的点滴。希望自己能坚持!


Movable Type

MT是我使用时间最长的一个博客程序。它基于Perl,功能强大而且可靠性十分稳妥。然而,在快餐文化异常普及的当下,它显得有点疲态百出。它没有php程序的灵活、部署简易,直白点说是折腾。因为站点移到国外的VPS的原因,国内连接速度实在不敢恭维,因此MT也成了我困难丛丛的选择。无奈只能转投效率优先的typecho。

因为博客思路设计的差异,我仅仅转换了原来的文章及相关评论。涉及到的数据表也只有3个。有需要的朋友可以参考下。将下面的源码保存为php文件,放在typecho博客根目录然后运行即可。(建议做好相关数据库备份后,在本地转换成功后再上传)

    <?php
    /**
     * Typecho Blog Platform
     *
     * @copyright  Copyright (c) 2008 Typecho team (http://www.typecho.org)
     * @license    GNU General Public License 2.0
     * @version    $Id: index.php 1153 2017-03-12 10:53:22Z ezo.biz $
     */
    
    /** 载入配置支持 */
    if (!defined('__TYPECHO_ROOT_DIR__') && !@include_once 'config.inc.php') {
        file_exists('./install.php') ? header('Location: install.php') : print('Missing Config File');
        exit;
    }
    
    /** 初始化组件 */
    #Typecho_Widget::widget('Widget_Init');
    $d_MT = "blog";
    /**
     * 初始化mt数据库
     */
    $dbMT = new Typecho_Db('Mysql', 'mt_');
    $dbMT->addServer(array (
       'host' => '127.0.0.1',
       'user' => 'root',
       'password' => '123456',
       'charset' => 'utf8',
       'port' => '3306',
       'database' => $d_MT,
     ), Typecho_Db::READ | Typecho_Db::WRITE);
     Typecho_Db::set($dbMT);
    //清空原有数据
    $db->query("DELETE FROM `typecho_contents`;");
    $db->query("DELETE FROM `typecho_relationships`;");
    $db->query("DELETE FROM `typecho_comments`;");
    
    $a=$dbMT->query("SELECT entry_id,entry_created_on,entry_modified_on,entry_title,Entry_text,entry_text_more,entry_basename FROM mt_entry;");
    $posts = $dbMT->fetchAll($a);
    foreach($posts as $post){
      unset($sql);
      $post['entry_created_on'] = strtotime($post['entry_created_on']);
      $post['entry_modified_on'] = strtotime($post['entry_modified_on']);
      if(!empty($post['entry_text_more']) || ($post['entry_text_more'] !="")){
        $post['Entry_text'] = $post['Entry_text'].$post['entry_text_more'];
      }
      $post['Entry_text'] = preg_replace('/(http|https)(.*?)(ezo\.biz\/b\/).*?(\/)((?:[a-z0-9_-|\.|-]*)(\.)(gif|jpeg|jpg|png))/i', "https://ezo.biz/b_img/$5", $post['Entry_text']);
      $post['Entry_text'] = str_replace("http://ezo.biz","https://ezo.biz",$post['Entry_text']);
      $post['Entry_text'] = str_replace("http://www.ezo.biz","https://www.ezo.biz",$post['Entry_text']);
      $post['Entry_text'] = mysql_real_escape_string($post['Entry_text']);
      $post['entry_title'] = mysql_real_escape_string($post['entry_title']);
    
    
      /**
       * 修复typecho slug主键唯一的问题
       */
      $d = gmdate('Ymd',$post['entry_created_on']);
      $post['entry_basename'] = $post['entry_basename']."-$d";
    
    
      $sql = "INSERT INTO `typecho_contents` (`cid`, `title`, `slug`, `created`, `modified`, `text`, `order`, `authorId`, `template`, `type`, `status`, `password`, `commentsNum`, `allowComment`, `allowPing`, `allowFeed`, `parent`, `views`, `viewsNum`, `likesNum`)  VALUES (NULL, '$post[entry_title]', '$post[entry_basename]', '$post[entry_created_on]', '$post[entry_modified_on]', '$post[Entry_text]', '0', '1', NULL, 'post', 'publish', NULL, '0', '1', '1', '1', '0', '0', '0', '0');";
      //返回文章id
      $cid = $db->query($sql,Typecho_Db::WRITE,Typecho_Db::INSERT);
      //绑定目录
      $db->query("INSERT INTO `typecho_relationships` (`cid`, `mid`) VALUES ('$cid', '1');");
    
      /**
       * 转换评论
       */
      $b = $dbMT->query("SELECT comment_author,comment_created_on,comment_email,comment_entry_id,comment_ip,comment_text,comment_url FROM mt_comment WHERE comment_visible=1 AND comment_entry_id=$post[entry_id];");
      $comments = $dbMT->fetchALL($b);
      foreach ($comments as $comment) {
        # 批量导入评论
        $comment['comment_created_on'] = strtotime($comment['comment_created_on']);
        $db->query("INSERT INTO `typecho_comments` (`coid`, `cid`, `created`, `author`, `authorId`, `ownerId`, `mail`, `url`, `ip`, `agent`, `text`, `type`, `status`, `parent`) VALUES (NULL, '$cid', '$comment[comment_created_on]', '$comment[comment_author]', '0', '0', '$comment[comment_email]', '$comment[comment_url]', '$comment[comment_ip]', NULL, '$comment[comment_text]', 'comment', 'approved', '0');");
      }
    }

韩寒,鲁迅

最近,一个闹伙子因为一本杂志发行不了,结果就发文讨伐这个讨伐那个。这不,春晚刚结束,就来了一束短暂的对决,可能两边都意识到春节影响坏,所以以迅雷掩耳的速度把事情低调化平息了。不过由此作为导火线,重新把一些旧话题带出来了。那就是这个小伙子-韩寒韩寒到底是不是当代的鲁迅?这一话题有重新走入了人们的思维空间里面了。本文尝试以不同的方式去找寻验证这个问题的答案,并尝试从根本的方式去确定韩寒的定位。

基本资料

韩寒

韩寒:1982年9月23日;星座:处女座; 出生地:上海金山(百度百科资料)
鲁迅:1881年9月25日;星座:天枰座; 出生地:浙江绍兴市(维基百科资料)

分析:
先看下二者的出生地地图距离。

鲁迅 韩寒 地图

韩寒的上海金山大概是E120N31,鲁迅的浙江绍兴大概是E120N29

再来看看二者的出生日期。哇!惊人的发现!刚好相差101年!

怎么解释呢?因为韩寒的纬度比鲁迅的纬度约大了2度,根据地理知识我们可以了解,地球自转同一经度的点时间是一样的,但是维度不同所处地球表面的速度就有差异了,纬度越大速度越小。因为韩寒的纬度比鲁迅的要大,所以经过我紧密的计算,发现在鲁迅地理位置上地球自转101年所经过的时空距离,在韩寒地理位置上要比其少大概2天时间。换句简单的话说,就是假如把韩寒老爸老妈放在鲁迅出生的地方生活,韩寒的出生日期将会是1982年9月25日。

再有,为什么相差101年而不是相差一百年呢?

这个更好解释了,因为公元是没有公元0年的,一个世纪是100年,所以下个世纪的开始是在第101年。

结论:

上100年是属于鲁迅先生的;后面这100年是属于韩寒的。所以,韩寒具备了成为当代鲁迅的时间条件。

分析:
google(google.com)是一个很好的信息归集系统。根据其"不作恶原则"我们深信它自然的非人为的归集数据代表着一定公正性和权威性。好,现在让我们查看下google关于韩寒和鲁迅两个关键字的搜索结果吧(搜索日期:2010年2月16日)

鲁迅韩寒google

鲁迅韩寒google2

从上面的搜索结果我们可以知道:

鲁迅的搜索结果为:7240000条;韩寒的搜索结果为:7420000条。

7420000-7240000=180000条。韩寒的收录比例比鲁迅多约180000条收录数据。

似乎来到这里我们还发现差异,觉得数据无法证明其二者的关系。
其实不然,我们忽略了一点东西!那可是研究事物最常犯的错误!
那是什么?是严谨性!

我们再仔细的想想,我们漏了鲁迅先生那个年代是没有互联网的,而韩寒是在互联网web2.0年代!所以我们忽略了一个影响google收录数量的重要因素!那就是韩寒有博客,鲁迅没有博客!

那我们下面仔细研究一下韩寒的博客!

2010年2月16日数据:博客博文约:250篇;单篇平均访问量约:500000人次;转载率约为:1.5‰

我们这样一算下,转载收录大概为:187500篇

最终鲁迅的收录约为:7240000篇;韩寒的收录为:7420000-187500=7232500篇。二者差7500篇。

对于浩瀚的数据来说,如果精简到万位,简直就可以忽略了这么一小点误差!

这是个多么恐怖而又令人振奋人心的结果啊!虽我不敢相信,但我不能不相信!

同时,分析鲁迅全集有16卷(人民文学出版社),韩寒目前出书为16册!惊人的相似!

结论:
鲁迅韩寒的知识保有量不相上下。韩寒具备成为当代鲁迅重要的知识基础!

分析:
相面,是一种通过观看一个人的"面部特征"来论命的技术。大家都听过,有一句话说"相由心生",这句话主要就是说一个人的个性、心思与为人善恶,可以由他的面相看出来。

鲁迅韩寒80后对比

看看二人五官的对比我们分析看看。因为眉毛和眼睛稍微有点头发遮盖,不过这完全没有妨碍我们发现他们的相似度达90%。然后再看看其他五官元素的相似度。哇!惊人啊!五官平均相似度达90%。这一般只有在双胞胎才能发现的相似度,居然能在两个分居不同世纪的人身上发现出来。我只能说,如果不是非常非常非常幸运的几率巧合,就肯定是预示着什么的。

结论:鲁迅和韩寒有着惊人相似的面部元素。韩寒具备成为当代鲁迅的面部特征!

总结:从出生,学识还有面相三方面均证实韩寒和鲁迅有惊人的相似度。所以,得出最终结论是韩寒就是当代的鲁迅

研究者后话:

本文属本人研究成果,欢迎转载,但请尊重本人的智慧结晶和辛勤劳动。同时感谢对韩寒与鲁迅关系研究做出卓越贡献的前辈,没有前人的经验的积累。我是无法完成这个艰巨的研究工作的。本研究报告本着对学术研究的探讨,并无丑化或者诽谤他人之意思。倘若你认为报告提及的内容侵犯你的合法权益,请联系本人相议处理。

感想

当我计算得知研究结果时,我既是兴奋惊讶,又是担心。惊讶高兴的是,我的研究终于有了结果了,而且证明我当初的研究方向是正确的;担心的是,知道韩寒就是当代的鲁迅这个消息。你可知道鲁迅是生活在一个什么的社会。再有鲁迅的出现,将意味着什么?我不敢想象!但是我还是希望我们国家能发展起来,让当代鲁迅活出个新世纪的新的面貌出来,让未来的人们纪念我们当代鲁迅的时候是记住他的文笔细腻还有赛车技术的高超,而不是他的哆哆嗦嗦的牢骚~:D


pjblog.gifASP为基础的PJblog(下简称PJ)可属今年国内发展最快,迅速崛起的blog了.因为本人对asp编写并不熟悉,流于表面简单的测试了一下PJ,功能不算强大.基本的blog分类,发表,编辑,引用,回响,rss...其实都较为普通的.
那么,PJ其实优越在那里呢?仔细发现,PJ的模板是相当漂亮的.无论在多媒体,特别是视听觉媒体,上面做的相当不错.页面元素很丰富.一看上去就让人感觉喜欢的样子.还有结合JS特效处理的效果.等等,都是PJ受到青睐和看好的重要原因.
说了好的,也要来点负面的评论.
其一,PJ在处理绚丽界面的同时忽略了WEB标准,XHTML 1.0 Transitional,也未能完美通过.这是需要改进的.
其二,借鉴boblog的发展经验看.PJ也是处理独立开发过程,PuterJam作为PJ开发的一把手,如果缺乏共同开发团体,当发展到一定阶段,恐怕回出现一定的技术瓶颈.这个是控制产品生命周期的重要制约因素.故此,作为开发人员,不得不考虑的.
其三,ASP本身的制约.使用MDB数据库的PJ,当数据库膨胀到一定程度的时候,是否会成为PJ运行的阻力呢?时候可以考虑静态页面或者采取更优化的存取策略呢?
其四,Blog作为一种share mind的重要平台,过多绚丽的色调,是否会成为资讯传播的阻碍呢?这根平衡木的支点应该摆在什么位置.