流水帐+意识流

灰机

第二次坐灰机,在这个位置坐着,玻璃如果破了我就会被吸出去,然后在这个引擎里面被卷死掉,引擎内圈会变成红色,我的血和肉块会洒到地面,然而由于是晚上所以地面上不见得会有人发现;另一方面,这种死法肯定比摔下去要好,因为可以免去了很长一段等死的阶段——只要我别太怕死,双手紧抱住引擎的边缘,以至于一点一点的被吸进去。

 

某次 GR 上看到有人分享宅男必备的几个玩具,其中之一便是 Arduino,手痒,便入手了一个(同时还买了个遥控车,打算拆了改用 Arduino 控制,没到手);然而此刻我正在学校,手头上不但没有发光二极管、蜂鸣器、马达、高压包、电烙铁这些老朋友,甚至连导线都没有,于是唯一能用的输出是 13 号口自带的一个发光二极管。

一个发光二极管,那能玩的就只有摩尔斯电码了:

#define UNIT_TIME 250
#define OUTPUT_PIN 13

static char const mCode[][8]= {
    "-----", // O
    ".----", // 1 
    "..---", // 2
    "...--", // 3
    "....-", // 4
    ".....", // 5
    "-....", // 6
    "--...", // 7
    "---..", // 8
    "----.", // 9

    ".-",    // A
    "-...",  // B
    "-.-.",  // C
    "-..",   // D
    ".",     // E
    "..-.",  // F
    "--.",   // G
    "....",  // H
    "..",    // I
    ".---",  // J
    "-.-",   // K
    ".-..",  // L
    "--",    // M
    "-.",    // N
    "---",   // O
    ".--.",  // P
    "--.-",  // Q
    ".-.",   // R
    "...",   // S
    "-",     // T
    "..-",   // U
    "...-",  // V
    ".--",   // W
    "-..-",  // X
    "-.--",  // Y
    "--.."   // Z
};

void light(int time) {
    digitalWrite(OUTPUT_PIN, HIGH);
    delay(time);
    digitalWrite(OUTPUT_PIN, LOW);
}

void alpha(char c) {
    char const *code=0;
    if(c>='0' && c<='9') {
        code=mCode[c-'0'];
    } else if(c>='a' && c<='z') {
        code=mCode[c-'a'+10];
    } else if(c>='A' && c<='Z') {
        code=mCode[c-'A'+10];
    } else {
        delay(4*UNIT_TIME); // 应该停顿 7 个单位,不过每个单词结束后都已经停顿了 3 个单位时间
        return;
    } 
    for(;*code;++code) {
        switch(*code) {
        case '.':
            light(UNIT_TIME);
            break;
        case '-':
            light(3*UNIT_TIME);
            break;
        }
        delay(UNIT_TIME);
    }
    delay(2*UNIT_TIME);
}

void say(char const* sentence) {
    for(char const* p=sentence; *p; ++p) {
        alpha(*p);
    }
}

void setup() {
    pinMode(OUTPUT_PIN, OUTPUT);
}

void loop() {
    say("I Feel So Alone   ");
}

wikipedia 说同一个单词不同字母间有三个单位的间隔,但我发现这很不好认;接着我就想如果再多买一块板子,接上光敏电阻,一个亮,一个读,岂不是很好玩;接着又想,如果真有两块板子,那我何必用摩尔斯电码呢,用灭灯代表 0,亮灯代表 1,直接传输就好,爱折腾的话想办法用数组保存一个已经预先设定好的霍夫曼编码似乎更可以装B了,接着我又想,那我是不是要想办法让它知道什么时候是对方传输完了,什么时候是在传输一大堆的 0 呢,要不在每组数据末尾加上一个 END,开头加上 BEGIN?可是那我真要传输 BEGIN 这个单词了又怎么办?用 \ 标记?对呀,然后 \ 就表示为 \\,太完美了——可是那突然掉电怎么办,要么每隔一秒种说一次“还没完!”?…………。

Update: 我傻,用校验码啊

 

另外,开始看了看 Haskell,因为它的自我介绍很有意思,大意是 “即使你学了 Haskell 什么实际用途都没有,至少也可以提高你的编程能力”,好吧,这个我相信。

另外就我目前的认识来看 Haskell 推理形式的函数定义方法和 C++ template 元编程简直太像了 @_@ 说 C++ 恐怖果然是有道理的……

 

你也纠结过这个吗

横坐标是尺度较大的时间单位,纵坐标可以理解为每天花在对方身上的时间和精力。

 

于是我的期望是这样的:

而这样的情景也是我完全乐意接受的:

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

另一方面,对方的期望是这样的:

于是后来,实际的情景就成这样了:

 

不知道有没有共性?

老宋:“喂?
我正要给你打电话呢!横幅什么的准备好了没?
领导要来?
座位安排有什么讲究没?是要领导坐中间还是要专家坐中间?
哦,哦,领导啊
那左右有什么 关系没?
那怎么搞?
算了你来安排吧
……

 

挂了电话,跟办公室老师聊天,“什么领导啊”,“什么级别”,“那算是什么领导,比我都小”云云,听着我想笑,妈的什么世道。

 

PS. 俺今天总算完成了 PCA 算法+摄像头实时匹配人脸的某个程序,可以在专家们到来的时候用来 zhuangbility,老宋一高兴把一块从米国带回来的好时巧克力丢给我了,挺好,物质奖励比精神奖励实在多了。

PPS. 老师的电脑配置真好,气死我也,上面提到的算法在我自己的电脑上远远谈不上实时,但在他的电脑上就是了;另外那键盘呀,玩上篇的游戏轻松的就到了 18.53s 。

C++ ABI, Screw You!

用 TDM-GCC 4.5 编译了 OpenCV 2.1 和 boost 1.44 

下载了用(某不知道来源的) MinGW GCC 4.4 编译的 Qt 4.6

问题在于,这两个版本的 MinGW 显然不兼容!

今天需要用到这三个库时,链接就总是悲剧 —— 用 TDM-GCC 编译工程,则找不到 _Unwind_Resume 函数(链接 libgcc_s.a 还是找不到、同时还会伴随出现 n 个重复定义);用 Qt 目录下那个 MinGW 编译工程的话,则有无数个找不到实现的 boost 库函数。

 

现在我在想是要重新编译一下 OpenCV 以及 Boost 呢,还是重新编译一下 Qt 呢。

 

update:
花了近四个小时把 Qt 自己编译了一遍,其间顺便(终于)看了《银翼杀手》,问题果然解决,真累。
话说银翼杀手确实是部不可多得的好片,情节引人入胜同时又发人深省,只是我还不敢说看懂了,什么时候还得再看几遍。
另外,从编译的流程来看 Qt 的确是世界上最容易编译的东西之一了,configure,make,done —— 只是,它好啊。 

各位订阅者麻烦改一下下 feed 地址,多谢了

现在的 feed 地址是:

http://feeds.feedburner.com/if-yu (推荐)

http://feed.feedsky.com/if-yu (墙内,不建议)

 

 

—— feed 这东西的资源消耗量惊人,App Engine 有点抱怨了诶 ……

 

iPod 更新过程中的悲剧

iOS 4.0 的确有些很激动人心的新功能,而且又免费——所以我想决定升级到 iOS 4.0 应该不算是个非主流的想法吧。

下载,备份,升级,这些都还算顺利,然而悲剧的是,软件安装完了、固件刷新好了,最后重启,固定在了一个连接 iTunes 的图像上面,连接 iTunes 则会出现某编号 –9812 的错误信息,像极了传说中会以小概率出现的死机状况;俺于是按对付那种情况的方法以强制恢复的方式重装系统,还是一样的结果。

回忆装机的过程,想起似乎有哪里提到过程是这样的:备份,安装系统,与 Apple 进行验证。

看样子问题可能出在与 Apple 验证这一步上面了。

 

想到这里——第一反应便是——被 q1ang 了?

 

fan q1ang,结果还是不行!

 

最后讨教万能的 Google,才发现有个地方说得算是比较靠谱: http://bbs.weiphone.com/read-htm-tid-632015.html

原来是缺少 iTunes 和 Apple 安全连接用的根证书,囧,那以前从 3.1.2 到 3.1.3 为啥可以直接升级呢,为什么查看 iTunes 帐号信息的时候它也安慰一句正在使用安全连接呢,我就纠结了。

把这个问题解决掉、成功升级之后,还是挺不爽,本以为 iTouch 是我的,其实原来是乔帮主的,他一个意念之间就可以把它废了,妈的。

 

 

最后,希望装 iOS 4.0 并且遇到同样问题的生物们,可以直接在这里下载根证书的更新包:http://is.gd/dcaLs

 

感情被严重滴欺骗了

在今天以前我一直以为 MinGW 只认得 libXXX.a ,不认得 XXX.lib

 

 

 

 

 

 

 

 

丫的,害我做过多少无用功啊!

 

不靠谱啊不靠谱

这是方差最小的:
the man from earth

 

这是直方图最接近的:
chaos

计算直方图的相似度试过两种算法,都一样的不靠谱:

方法一:

方法二:

 

另外,这是均值最接近的:
the man from earth

life.cpp

#include "exceptions.hpp"
#include "human.hpp"
#include "school.hpp"
#include "food.hpp"
#include "life.hpp"

void life::eat(food &f) {
    if(!f.tasty())
        throw(error("WTF is it?!"));
    else {
        this->money -= f.price();
        f = excrement;
        this->grow();
    }
}

void life::sleep() {
    int sheep;
    for(sheep = 0; !asleep(); ++sheep)
        if(sheep<0)
            throw(astonishment("OMG!"));
    this->grow();
}

void life::work( thing& t ) {
    t = nothing;
    error up("Okay, I messed it up");
    throw up;
}

void life::haveFun() {
    throw(error("How is it possible?"));
}

void life::live() {
    while(this->alife_) {
        eat();
        work();
        haveFun();
        eat();
        sleep();
        work();
        haveFun();
        eat();
        work();
        haveFun();
        sleep();
    }
}

干嘛墙我

我又没做坏事儿!

 

27th/Apr/2010 Update: 看样子是俺使用的一个提供域名解析的服务被X掉了,现在改用 littz 提供的免费服务;如果再被X的话恐怕只能考虑自己买VPS了,整个一悲剧……

留言似乎有点问题

<update date="2010-10-19">
其实很早以前就折腾好了,忘了说;童鞋们请尽情留言吧。
</update>

 

嗯……唔……其实是的确有点问题……

慢慢折腾吧,现在就想留言的童鞋请坚持不懈,总有一天你会成功的。