虾米网音乐下载

为了下载虾米的音乐,网上找了不少帖子,自己写程序来解密地址加密。解密以后发现操作还是太复杂,干脆用了这个懒办法。
1.先找到音乐id
比如打开音乐的链接如下:
http://www.xiami.com/song/play?ids=/song/playlist/id/3297547/object_name/default/object_id/0

id就是3297547

2.拼下面的地址
http://www.xiami.com/app/iphone/song/id/3297547

把后面的数字换成前面的id

3.打开改地址
内容大概如下:
{“song_id”:”3297547″,”default_resource_id”:”164782″,”length”:”237″,”category”:null,”listen_file”:”\/aliyunos\/62\/7062\/297623\/3297547_164782_l.mp3″,”album_id”:”297623″,”name”:”\u306a\u3054\u308a\u96ea “,”artist_name”:”\u590f\u5ddd\u308a\u307f”,”artist_id”:”7062″,”title_url”:”yi”,”recommends”:”50″,”singers”:”\u590f\u5ddd\u308a\u307f”,”title”:”\u6b4c\u3055\u304c\u3057~\u30ea\u30af\u30a8\u30b9\u30c8\u30ab\u30d0\u30fc\u30a2\u30eb\u30d0\u30e0~ “,”album_logo”:”http:\/\/img.xiami.com\/images\/album\/img62\/7062\/297623_2.jpg”,”location”:”http:\/\/m1.file.xiami.com\/62\/7062\/297623\/3297547_164782_l.mp3″,”low_size”:”9489600″,”file_size”:null,”low_hash”:”d633a228ae032c0b0223618f367b2fbb”,”whole_hash”:”d633a228ae032c0b0223618f367b2fbb”,”content_hash”:”d633a228ae032c0b0223618f367b2fbb”,”content_size”:”9489600″,”lock_lrc”:”2″,”lyric”:”http:\/\/img.xiami.com\/lyric\/upload\/47\/3297547_1252216310.lrc”,”year_play”:”6694″,”grade”:”-1″,”album_url”:”http:\/\/www.xiami.com\/app\/iphone\/albuminfo?id=297623&uid=”,”artist_url”:”http:\/\/www.xiami.com\/app\/iphone\/artistinfo?id=7062&uid=”,”isad”:”0″}

其中的location是没有加密的地址:
http:\/\/m1.file.xiami.com\/62\/7062\/297623\/3297547_164782_l.mp3

然后把”\”全部去掉就是完整的mp3地址了,想下载或者在线播放都可以了。

なごり雪

一首被N多人翻唱的歌曲

1974年 かぐや姫 『三階建の詩』
1975年 吉田拓郎・かぐや姫 コンサート インつま恋
1975年 イルカ カバーバージョンがシングル
1976年 清水由貴子 (オーディション番組『スター誕生!』(NTV系)の第16回決戦大会で歌唱)
1978年 ビューティ・ペア(アルバム『〈スター・マイ・セレクション・シリーズ〉ビューティ・ペア』に収録)
1982年 松尾久美子 (『スター誕生!』の第42回決戦大会で歌唱)
1990年 福山雅治 (日本ビクターのビデオカメラ「ムービーごっこ」のCM曲としてカバー。未CD化)
1992年 Mi-Ke (アルバム『忘れじのフォーク・白い2白いサンゴ礁』に収録)
1994年 永井みゆき(アルバム『全曲集’95~応援歌でヨイショ』に収録)
1998年 鈴木真仁 (アルバム『いちご白書をもう一度』に収録)
1999年 LIFE RECODERS (アルバム『東京の空』に収録)
1999年 結城比呂 (アルバム『時の断層』に収録)
2000年 岡村靖幸 (シングル『真夜中のサイクリング』に収録)
2001年 七緒香 (アルバム『はじまりのうた』に収録)
2001年 市井紗耶香 (アルバム『FOLK SONGS』に収録)
2003年 ビリケン (「nagoriyuki」としてカバー)
2003年 JINDOU (シングル『なごり雪』に収録)
2004年 松浦亜弥 (アルバム『FS5〜卒業〜』に収録)
2004年 ketchup mania (アルバム『GAL盤』『THE BEST OF ketchup mania』に収録)
2005年 高橋直純 (アルバム『scene〜残したい風景〜』に収録)
2005年 平原綾香 (アルバム『From To』に収録)
2005年 石川ひとみ (アルバム『With みんなの一五一会〜フォークソング編』に収録)
2006年 徳永英明 (アルバム『VOCALIST 2』に収録)
2006年 ムック (限定配布アルバム『COVER PARADE』に収録)
2006年 神園さやか (アルバム『二十歳の原点』に収録)
2006年 嘉門達夫 (替え歌『なごり寿司』としてアルバム『笑撃王』に収録)
2007年 Kat McDowell (「ナゴリユキ」としてミニアルバム『kat』等に収録)
2007年 リュ・シウォン (シングル『花の首飾り』に収録)
2007年 夏川りみ (配信限定アルバム『歌さがし 〜リクエストカバーアルバム〜』に収録)
2008年 中孝介 (シングル『春』に収録)
2008年 ameji(アルバム『LOVE STORIES』に収録)
2008年 鬼束ちひろ (ライブDVD『NINE DIRTS AND SNOW WHITE FLICKERS』に収録)
2009年 坂本冬美 (アルバム『Love Songs 〜また君に恋してる〜』に収録)
2009年 Scott Murphy (アルバム『GUILTY PLEASURES LOVE』に収録)
2009年 ダンカン・レッドモンズ (アルバム『Up And At ‘Em』に収録)
2009年 中西保志 (アルバム『メロディーズ』に収録)
2009年 中森明菜 (アルバム『フォーク・ソング2 〜歌姫哀翔歌』に収録)
2010年 元ちとせ&秦基博(養命酒製造「ハーブの恵み」TVCMソング)
2012年 河村隆一(カヴァーアルバム『The Voice 2』に収録)
2013年 有安杏果(ももいろクローバーZ)with南こうせつ (アルバム『5TH DIMENSION』初回限定盤Aに収録)

听了好几个版本,貌似夏川里美的反而先入为主了。那就先推荐她的吧。

なごり雪

夏川りみ

なごり雪
作詞:伊勢正三
作曲:伊勢正三

汽車を待つ君の横で
ぼくは時計を気にしてる
季節はずれの雪が降ってる
「東京で見る雪はこれが最後ね」と
さみしそうに 君がつぶやく
なごり雪も 降る時を知り
ふざけすぎた 季節のあとで
今 春が来て 君はきれいになった
去年よりずっと きれいになった

動き始めた
汽車の窓に 顔をつけて

君は何か 言おうとしている
君の口びるが
「さようなら」と動くことが
こわくて 下を向いてた
時が行けば 幼い君も
大人になると 気づかないまま
今 春が来て 君はきれいになった
去年よりずっと きれいになった

君が去った ホームに残り
落ちてはとける 雪を見ていた
今 春が来て 君はきれいになった
去年よりずっと きれいになった

下面是イルカ的版本, 35年前的版本

vmware无法在ubuntu上安装

在ubuntu server上安装vmware总出错,google以后,运行以下命令解决

sudo apt-get install build-essential

sudo apt-get install linux-headers-$(uname -r)

 

Ubuntu 13.04是最新的3.0的Linux内核,其内核版本的头文件的位置发生了变化,

导致之前,相对旧的VMWare Tools,找不到对应的头文件,因此而报错。

解决办法:

用当前,实际上已经存在的头文件,做个软链接:

 

sudo ln -s /usr/src/linux-headers-$(uname -r)/include/generated/uapi/linux/version.h /usr/src/linux-headers-$(uname -r)/include/linux/version.h

 

就可以重新运行vmware安装程序了。

涙そうそう

最开始接触到的是《涙そうそう》这首歌,在收音里面听到这首歌。不知道名字,而且日语听力实在不怎么样,只能听到几个なだそうそう之类的音节。后来在网上搜了很久,才知道是夏川里美的《涙そうそう》,中文名字是《泪光闪闪》,因为带冲绳的发音,涙(なみだ)发音却是なだ。

这首歌流行于冲绳地区,似乎还有个硫球语版本,是写给过逝的亲人的歌曲,被夏川里美翻唱后,一炮走红,不仅红遍东夷,台湾大陆也是红极一时。

[swf]http://www.xiami.com/widget/0_3296711/singlePlayer.swf[/swf]

夏川里美天籁的声音感觉不带一点杂音,能够让我整个下午一直循环的听。

歌曲由翻看老照片开始,所有往事和思念一一展现出来。

古いアルバムめくり
ありがとうってぶやいた
いつもいつも胸の中
励ましてくれる人よ
晴れ渡る日も 雨の日も
浮かぶあの笑顔
思い出遠くあせても
おもかげ 探して
よみがえるのひは 涙そうそう

一番星に祈る
それが私のくせになり
夕暮れに見上げる空
心いっぱいあなた探す
悲しみにも 喜びにも
おもうあの笑顔
あなたの場所から私が
見えたら きっといつか
会えると信じ 生きてゆく
晴れ渡る日も 雨の日も
浮かぶあの笑顔
思い出遠くあせても
さみしくて 恋しくて
君への想い 涙そうそう
会いたくて 会いたくて
君の想い 涙そうそう

这首歌听过若干年后,听说还有一部同名的电影,找到以后,是一部很清爽的兄妹恋的片子。男主角母亲改嫁,继父带着一个小女孩,父亲离家出走,母亲临终托付男主角照顾小女孩。小男孩牺牲自己前途来兑现自己的承诺,给妹妹幸福。兄妹之间因为爱了不能不分,当男主角因劳累过度得心肌炎死去,妹妹的那声nini。妹妹送哥哥的骨灰回老家,收到了哥哥寄来的礼物,一件和服和道歉的信。当妹妹重新翻开哥哥留下的他们的回忆的照片时,这首歌声响起。

fbf5bc12c8fcc3ce193dccf79245d688d63f205e

硫球语版,听不懂,但是还是能听出其中的哀愁。

http://www.xiami.com/widget/0_3297380/singlePlayer.swf

唄:夏川りみ作詞者:森山良子/ウチナーグチ
作曲者:BEGIN
なちかしアルバムみくてぃ かふうしどーんでぃくとぅばかき
いちんいちまでぃんちむぬ内 くくるかきゅるあぬひとぅゆ
晴りわたる日ん あみぬ日ん 浮かぶあぬちゅらさ
なちかさやとぅーく うむよーなてぃん
うむかじとぅみてぃ かじ立ちゅる日や 涙そうそう

一番ぶしににがゆんくりが我めなれーなてぃ
ゆまんぎめすら見上ぎてぃちむふくらまち うんじゅとうゆゆん
なちかさてぃんるくらしゃてぃんうむいやあぬちゅらさ
うんじゅめはすかられしがた

みらりりば かなじいちか あゆるんでぃ信じいきてぃんか
晴りわたる日ん あみぬ日ん 浮かぶあぬちゅらさ
なちかさやとぅーく うむよーなてぃん
さびしさぬ くいしさぬ うむいや増さてぃ 涙そうそう

尘埃落定

昨天终于把户口搞定了,等一个月后拿新的身份证。

10年毕业回来,断断续续一直都在为户口奔波,先是办学历认证,然后交各种材料办理户口,一次一次地跑人才市场,一次一次地补材料。难怪之前在网上看公略说办户口要做好持久战的准备,迎接你的是白眼和等待,漫长的等待,毫无希望的等待。从HR邮件那里知道批复下来的时候,心里已经没有任何兴奋感,已经是平淡得不能平淡。后面就是按照流程一步一步准备材料,然后到派出所拿户籍证明。

一个户口花了2年多时间。同样是中国人,同样缴税交保险,一个户口就把所有的权利分离开来,这也许就是所谓的中国特色吧。

通过google voice发送短信

手机上一直装了几个应用,用来给美国手机发送短信,每次都需要登录,比较麻烦。最近也想做一个小应用,其中通过手机发送验证码,觉得google voice最能满足这个要求,反正免费的不用白不用。

在网上找了一些源码,看看如何通过程序来发送短信,基本由三个版本,两个php版,其中一个zend加密版本,被pass掉,另外一个可能接口有些变更,好像发送不太成功。另外还找到一个java版本,测试了一下,可以成功发送,感谢原作者xinghuo.yao的无私奉献。从google code下载的代码,貌似作者是做了一个smsbot,但是我不需要这么复杂的功能,只把googlevoice实现部分摘出来了。

public class GoogleVoice implements Serializable {

/**
*
*/
private static final long serialVersionUID = 5889296580959689523L;
private String email;
private String password;

public String getEmail() {
return email;
}

public void setEmail(String email) {
this.email = email;
}

public String getPassword() {
return password;
}

public void setPassword(String password) {
this.password = password;
}

private String auth;
private String rnr;

private long lastSessionTime = 0;

public long getLastSessionTime() {
return lastSessionTime;
}

public void setLastSessionTime(long lastSessionTime) {
this.lastSessionTime = lastSessionTime;
}

public GoogleVoice(String email, String password)
throws AuthenticationException {
this.email = email;
this.password = password;
signIn();
}

private void signIn() throws AuthenticationException {
retrieveLoginAuth();
retrieveRnr();
lastSessionTime = System.currentTimeMillis();
}

public boolean sendSms(String mobile, String message) {
if (!checkSession())
return false;
try {
String payload = “id=&phoneNumber=” + mobile + “&text=”
+ URLEncoder.encode(message, “UTF-8”) + “&_rnr_se=”
+ URLEncoder.encode(rnr, “UTF-8”);
String data = fetchData(“https://www.google.com/voice/sms/send/”,
payload, auth);
// Should return {“ok”:true,”data”:{“code”:0}}
if (data.contains(“:true”))
return true;
else
return false;
} catch (Exception e) {
return false;
}
}

private boolean checkSession() {
if (System.currentTimeMillis() – lastSessionTime >= 1800000l)
return false;
lastSessionTime = System.currentTimeMillis();
return true;
}

private void retrieveLoginAuth() throws AuthenticationException {
String payload = “accountType=GOOGLE&Email=” + email + “&Passwd=”
+ password + “&service=grandcentral&source=” + “GAE”
+ “-GoogleVoiceTool”;
try {
String data = fetchData(
“https://www.google.com/accounts/ClientLogin”, payload,
null);
int index = data.indexOf(“Auth=”);
if (index != -1 && index + 5 < data.length())
auth = data.substring(data.indexOf(“Auth=”) + 5).trim();
if (StringUtil.isEmptyOrWhitespace(auth))
throw new AuthenticationException(“Get Login Auth failed”);
} catch (Exception e) {
throw new AuthenticationException(e.getMessage());
}
}

private void retrieveRnr() throws AuthenticationException {
try {
String data = fetchData(“https://www.google.com/voice/m/”, null,
auth);
Pattern p = Pattern.compile(
“<input.*?name=\”_rnr_se\”.*?value=\”(.*?)\””,
Pattern.CASE_INSENSITIVE);
Matcher m = p.matcher(data);

if (m.find())
rnr = m.group(1);
if (StringUtil.isEmptyOrWhitespace(rnr))
throw new AuthenticationException(“Get rnrSEE failed”);
} catch (Exception e) {
throw new AuthenticationException(e.getMessage());
}
}

private String fetchData(String url, String payload, String auth)
throws Exception {
HttpURLConnection con = (HttpURLConnection) new URL(url)
.openConnection();
if (auth != null)
con.setRequestProperty(“Authorization”, “GoogleLogin auth=” + auth);
con
.setRequestProperty(
“User-Agent”,
“Mozilla/5.0 (iPhone; U; CPU iPhone OS 2_2_1 like Mac OS X; en-us) AppleWebKit/525.18.1 (KHTML, like Gecko) Version/3.1.1 Mobile/5H11 Safari/525.20”);
con.setRequestProperty(“Content-Type”,
“application/x-www-form-urlencoded”);
if (payload == null)
con.setRequestMethod(“GET”);
else {
con.setDoOutput(true);
con.setRequestMethod(“POST”);
OutputStream os = con.getOutputStream(); // 输出流,写数据
os.write(payload.getBytes(“UTF-8”));
os.flush();
os.close();
}
int code = con.getResponseCode();
if (code == 200) {
String response = getContent(con.getInputStream(), code);
con.disconnect();
return response;
} else {
String response = getContent(con.getErrorStream(), code);
con.disconnect();
throw new AuthenticationException(response);
}
}

private String getContent(InputStream in, int code) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(in,
“UTF-8”)); // 读取结果
StringBuffer sb = new StringBuffer(“”);
String line;
while ((line = reader.readLine()) != null) {
sb.append(line).append(“\r\n”);
if (code != 200 && line.startsWith(“Error=”)) {
reader.close();
return line.substring(6);
}
}
reader.close();
if (code != 200)
return String.valueOf(code);
return sb.toString();
}

public static void main(String[] args) throws AuthenticationException{
GoogleVoice gv = new GoogleVoice(“用户名”, “密码”);
if (gv.sendSms(“手机号码”, “hello”))
System.out.println(“短信已发送至:”);
else
System.out.println(“短信未发送”);
}
}

 

 

早在一两年前,gv貌似还能全世界发短信,后来只限定在美加,不过对于我来说这个已经足够了。再次感谢作者无私奉献,感谢google无私奉献,但愿google别把这个接口给封了。

Dana’s Travel in China

IMG_4739 IMG_4744   IMG_4746IMG_4644 IMG_4647 IMG_4668 IMG_4673 IMG_4729

IMG_4806

Dana, one of my america friends, came to China and traveled in several cities. In every cities, he got great passion from the students. He is a religious Christian.

One of my classmates asked him, why you come to China. He said, everyone is like a mirror, which can reflect the light of God. We could help others just like the mirror reflecting the light.

He does help the students a lot in Springfield, He spends 25 hours to help the student, even 35 hours a week, that is to say, 5 hours per day.  That why he can receive the great passion here. I don’t think if other professor who also comes from Springfield can receive better than him.

Common people, but great man.

Since I am not a Christian, but I want to thank him.

wordpress首页只显示指定栏目

这个blog建了挺久了,一直是乱七八糟的帖子混在一起,首页比较混乱,所以想把首页只放一些原创的非技术的帖子。

在网上找了很多方法,有的需要修改源代码,有的装插件。修改源代码的方法不适合将来升级(虽然说上次升级导致博客无法打开),所以还是用插件比较好。

网上推荐用Front Page Excluded Categories装了这个插件似乎不生效。所以又装了Ultimate Category Excluder,装上并启用以后在setting里面Category Exclusion里面选上你要过滤掉的目录就可以了。这个插件的神奇之处在于,你可以选择只滤掉首页,feed,search等不过滤,这样既可以隐藏首页不想要的东西,又不影响搜索引擎及订阅的内容。赞一个。

在树莓派上使用RS232(连接到Psion5)

原文地址:http://blog.mrpjevans.com/2012/1 … ry-pi-to-a-psion-5/

(笔者注:Psion5是Psion公司出的一款掌上电脑)

树莓派的通用输入输出口(GPIO)由26针组成,是黑客们的最爱,能够使用模拟或者数字信号的操作。翻遍了手册,我发现居然连基本的串口都没有。也就是我们上个世纪的老朋友,RS232,这是一个低功耗版本。对于那些完全不知道我说什么的人,不用担心,即使这个帖子不太适合你。RS232看起来像是以前那些学校废弃的技术,但实际上它是我们身边最简单的两机通讯的方式。

庆幸的是,搞Pi的那些聪明的家伙,使用串口作为控制台,也就是说,你可以用它登录然后得到一个命令行。我白天的工作就是在一个数据中心管理一堆的服务器。尽管他们有很多最新的、功能强大的工具包,无一例外的是他们都配有串口。当显卡不能正常工作时,至少你还可以通过这个接口来登录系统。

Pi上提供的串口使用起来很简单。只需要4条线:电源,发送,接收,地。没有更简单的方法了,直接把这些线连接到电脑的COM口,对不对?

嗯,不对。这其中有一个问题,Pi用的电压是3.3v,RS232需要+12V作为高电平(1),-12v作为低电平(0)。Pi自身没办法做到,通过google可以找到很多现成的解决方案。幸运的是,有一个现成的芯片可以双向转换信号,让我们可以从pi的低电压信号转换成一个“真正的”RS232接口。这个价格大概是5镑,名字叫MAX3232CPE。只需要小部分的电容就可以。

到了我们开始干活的时候了。我从本地的Maplin买到了所有的配件(下面提供了链接和编号):
一个Max2323CPE集成电路(DT26D)
一个16针DIL IC插座(BL19V)(如果你有面包板,这个就不需要了)
5个0.1uF电容(N43CJ)
9针D-Type插座
线
杜邦线(A39GF)
一些洞洞板(FL17T)(虽然我强烈建议一开始用面包板)

当然还有:
一点焊接经验
一个COM/串口

我这里还出现了一个问题。作为Mac用户,我知道乔布斯多年前就放弃了RS232口,采用兼容性很好的usb接口。幸好Maplin还卖一个基于PL2303芯片usb转串口的适配器,在OS X上运行的很好,包括山狮,但是我花了不少时间来找驱动和步骤。

开始干活,这就是我们要做的:


最开始我在面包板上完成了,按照Joonas Pihlajamaa的步骤(链接在文末)。如果你还是个新手,在面包板上插IC芯片,还是要小心一些,把所有的针脚都插进去。在这个时候不需要用插座。下一步,我焊接了一个9针的连接器。我把RXD焊到针脚2,TXD焊到针脚3,地为针脚5(右上)。

现在你关闭Pi,从集成电路的1,6,8,10针脚连接这4条线到Pi。针脚1时左上,标记为P1。在它右边是针脚2。然后针脚1下是3,右边是4,以此类推。

这四条线是这么连接的:
Pin 1 – +3.3V
Pin 6 – Ground
Pin 8 – TXD (发送数据)
Pin 10 – RXD (接收数据)

将9芯的RS232连接到你的COM接口,然后打开Pi。
你的Pi应该正常启动,根本不知道建了新连接。现在把你的注意力放到你的电脑。

你需要有个软件能够连接到你的Pi。在windows上,你可以用PuTTY。在mac上,试试看MacWise,或者直接用linux上的命令行工具,比如screen

如果你打算用screen,来看看他是和么安装的

  1. $ screen -h

复制代码

命令不存在?那就安装吧

  1. $ apt-get install screen</p><p>$ screen /dev/ttyUSB0 115200

复制代码

或者你已经安装了MacPorts

  1. $ port install screen</p><p>$ screen /dev/tty.usbserial 115200

复制代码

注意:在/dev/可能有很多设备,取决于操作系统和驱动程序等。看看你的/dev/目录下是不是存在。可以找tty或者usb开头的那些。

屏幕应该会变成空白,按一次回车键后会出现登陆提示,然后可以到Pi的配置。

如果你用一个更高级的包,记住RS232工作前还需要配置。Pi的设置是115200bps(波特率),8位,无校验,一个停止符。这个通常标记为115200 8N1,你需要改成这个设置。一旦配置好,打开或者连接(取决于你软件怎么用)然后按回车就可以了。Pi的登录提示应该就会出来了。

无法运行?十之八九是你PC端的的RXD和TXD没接对。断开连接关闭Pi,在面包板上把这两条线换一下。如果这样还不工作,检查你终端的设置。

我决定通过给Pi届一个屏幕和键盘让它得到一个合乎逻辑的结论(在我的脑子里),也就是Psion5。然后一开始无法正常工作,因为不管是Psion还是Pi都希望自己是可以和电脑通信的“客户端”。我需要一个交叉线,把RXD和TXD交换一下,最后可以跑了。


只要在面包板上可以运行了,就很容易把IC移植到洞洞板,让它做一些持久地工作。

你可能奇怪为什么要这么做,事实是很多设备依旧在使用RS232通信。你可以在投影机、机顶盒甚至车上找到RS232接口。即使我一个很老的洗衣机上也有一个。所以,让Pi拥有一个很好用的RS232接口将会很有意思。通过google你还可以将目前登录命令行改成你想要的。我将会怎么用它?它将会是另外一个贴子。

Sources for this article:
Joonas Pihlajamaa
http://codeandlife.com/2012/07/01/raspberry-pi-serial-console-with-max3232cpe/

speakjava
https://blogs.oracle.com/speakjava/entry/serial_communications_with_a_raspberry

永远有多远[转]

永远有多远
永远有多远?
是一个永恒,还是瞬间?
永远?可不可以告诉我,永远有多远?
永远到底有多远?
有时候永远也就是生和死的距离。
因为你给我说过,要好好的活。也许在你的心里,好好的活着,就是永远了。

 

永远是花开花谢 还是潮起潮落?
永远是日生日落 还是人来人往 ?
或是…..或许永远就是当你紧紧将我拥抱的那一瞬间
而当我决定放开你那双苍白的双手 望着你孤独落寞的背影
永远也变成了一只短翅的蝴蝶….!
恍然间我明白了 当你离开我的时候 永远也成了一只断翅的蝴蝶!

 

“永远有多远”,我无法回答,久久,竟然泪湿了脸庞。

心,就象过去一样狠痛起来。永远有多远啊?
也许这也是我一直想问的问题,只是因为知道没有答案,就甚至问都不敢问。

 

永远到底有多远?
不止一次 你这样的问我
我不敢给你轻言任何承诺
因为承诺对我们来说太沉重
因为我知道我们没有未来
教堂的那头并不是我们的最终
从相识的那天起 就早注定了
我们两个只是两条平行的直线
我不敢轻言永远 当你望着我的时候
我唯有保持沉默

 

要爱一个人到永远,伤心到永远,那种锥心的疼到永远,
这永远,到底有多远?是不是真的要用一生去爱一个人的同时,
也要用这一生去忘记同一个人?直到生命的尽头……

谁又知道,承诺的永远有多远,心疼的永远又有多远?爱又有多远?
落叶归根,可在这样一个起风的日子里,
叶子会飘落何处?何处才是它的终点?
风啊,不要吹的太猛了,让叶子归根吧!
云啊,不要走的太快了,叶子跟不上你的步伐。
时不时的,天空又飘起了雪,
是在告诉叶子这个时节有多冷吗?
叶子停不下来了,风不停的在吹,云不断的在走,
雪花都已经漫天飞舞了,
叶子好冷、好累……
永远到底有多远,
叶子有永远吗?叶子的永远又在哪里?

時の流れに乗って 走ったことも 振り返れば すべてが 同じに見える

video: http://www.yinyuetai.com/video/77479

歌词转自http://music.douban.com/review/5070085/

「東京の空」/东京的天空
作詞∶小田和正
作曲∶小田和正
歌∶小田和正

自分の生き方で 自分を生きて
多くの間違いを 繰り返してきた
用自己的生存方式,独自生存下去
有很多错误循环往复

時の流れに乗って 走ったことも
振り返れば すべてが 同じに見える
纵然时光流逝、岁月奔走,
但回首看往事仍然历历在目

あの頃みたいに 君に
優しく できているかな 今も
いちばん大切なのは その笑顔
あの頃と 同じ
还能一如往昔 对你温柔么
到如今 最重要的是 那个笑容不曾改变

東京の空は 今日も 高く すんでいる
君の 住んでいる街は 冬の色ですか
东京的天空 今天也是高远的啊
你住的街道是否已是冬天的颜色了呢?

がんばっても がんばっても うまくいかない
でも 気づかない ところで 誰かが きっと 見てる
无论怎么努力,怎么努力 都无法表现的很好
但是不要在意 一定有谁在某处关注着你

あの頃みたいに 君に
優しく できているかな 今も
いちばん大切なのは その笑顔
あの頃と 同じ
还能一如往昔 对你温柔么
到如今 最重要的是 那个笑容不曾改变

あの頃みたいに 君に
優しく できているかな 今も
いちばん大切なのは その笑顔
あの頃と 同じ
あの頃と同じ
还能一如往昔 对你温柔么
到如今 最重要的是 那个笑容不曾改变
不曾改变

Time flies, birthday comes again, a  lonely birthday.A common year, not good but also not very bad. Whether sad or happy, I need go ahead.

通过手机来控制家电

心血来潮想通过树莓派对家里的电器进行控制,网上查了不少资料,决定动手一试。首先决定对电暖器开刀,这个电脑有一个红外的遥控器,可以开关、定时、设定高低档功能,我要做的就是模拟遥控器对其发出指令。初级篇,通过电脑命令行进行控制,高级篇使用手机进行控制。

参照baoxiaozhong的红外接收http://www.shumeipai.net/thread-12265-1-1.html 设置好了红外接收器,然后尝试用相似的方法实现了红外发射器,成功控制电暖器,后续将考虑控制电视,空调等 设备。

初级篇:用电脑来控制电暖器

原理:

先通过红外接收模块,采集遥控器的指令,然后通过红外发射器模块模拟遥控器发送红外指令控制。

环境:xbian 1.0 alpha4

硬件:taobao上淘的10多块一个的红外接收模块及红外接收模块,此处不发地址,免得广告嫌疑。

连接方式:

红外接收器
vcc 连 pin1 (3.3v)
gnd 连 pin6(ground)
data连 pin12(gpio18)
红外发射器
vcc 连pin2(5v)
gnd连pin6(ground)
data连pin11(gpio17)

为什么这么连,我查了很久资料,后来在lirc_rpi原作者网站看到了,大概固定在程序里面了。
地址:http://aron.ws/projects/lirc_rpi/

步骤:
先通过红外接收器接收遥控器的编码,请参照http://www.shumeipai.net/thread-12265-1-1.html.
在用户目录生成了lircd.conf文件

我生成了KEY_UP,KEY_DOWN,KEY_0,KEY_1等分别代替开启、定时、低、高四个按钮

然后将它拷贝到/etc/lirc/remotes下,
sudo cp /home/xbian/lircd.conf /etc/lirc/remotes/xxx.conf (xxx随便你起名字,但是要和后面统一)
sudo vi xxx.conf
修改 name /home/xbian/lircd.conf 为 name xxx

sudo /etc/lirc/lircd.conf
增加一行

include “/etc/lirc/remotes/xxx.conf”

保存退出
现在可以测试了
sudo irsend SEND_ONCE xxx KEY_ON
sudo irsend SEND_ONCE xxx KEY_TIMER
sudo irsend SEND_ONCE xxx KEY_LOW
sudo irsend SEND_ONCE xxx KEY_HIGH

开始享受电暖器滴滴接收命令的的声音吧。

高级篇:通过手机来控制电暖器

安装LNMP
参照http://geekpi.cn/blog/2012/10/1908

apt-get install mysql-server mysql-client nginx php5 php5-fpm php5-mysql php5-curl php5-gd php5-intl php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-ming php5-ps
php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl

mysql我没有做优化

配置nginx
先配置/etc/nginx/nginx.conf,需要做的就是限定线程数和开启gzip支持,gzip开启后将大幅降低传输html的流量占用。

worker_processes 1; #只有一个CPU,单进程即可

worker_connections 256; #一般支持100在线连接就达到raspberry pi的极限了

gzip on; #gzip开启取消前面的#让默认设置生效即可
gzip_disable “msie6”;

gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;

接下来设置/etc/nginx/sites-avaliable/default ,配置站点属性

root /var/www ; #站点存储位置

index index.php index.html index.htm; #加入index.php为默认页面

location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;

fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}

#开启php解析,使用php-fpm作为Fastcgi通信模块

然后配置php sudo权限,这样php执行命令的时候不需要输入自己的密码
为 nginx,而想透过 PHP 发送irsend,用 root 输入指令 vi /etc/sudoers,
在档案最底加上以下一行:

www-data ALL=NOPASSWD: /usr/local/bin/irsend

在/usr/share/nginx/www/下 编写cmd.php

<?php
$cmd = $_POST[‘cmd’];
if(!$cmd){
$cmd = $_GET[‘cmd’];
}
$device = $_POST[‘device’];
if(!$device){
$device = $_GET[‘device’];
}
if($cmd&$device){
$cmdline = “/usr/bin/sudo /usr/local/bin/irsend SEND_ONCE “.$device.” “.$cmd ;
echo($cmdline);
$output = shell_exec($cmdline);
echo($output);
}
?>

然后就可以通过http://ip地址/cmd.php?cmd=KEY_UP&device=xxx控制你的设备了。
这里的xxx是可以不同设备的哦。看你前面irrecord里面配置的

当然这种方式操作不方便,和shell操作差不多,所以可以自己做一个html页面,放上若干按钮,每个按钮分别调用cmd.php上面的指令。

这是个简单的例子

<html xmlns=”http://www.w3.org/1999/xhtml”>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ />
<meta name=”apple-mobile-web-app-capable” content=”yes”>
<title>智能家庭控制台</title>
<script type=”text/javascript” src=”js/jquary-1.7.1.js”></script>
<script type=”text/javascript”>
var xmlHttp;
//创建XMLHttpRequest对象
function createXMLHttpRequest(){
if (window.ActiveXObject){
xmlHttp=new ActiveXObject(“Microsoft.XMLHTTP”);
}else if (window.XMLHttpRequest){
xmlHttp=new XMLHttpRequest();
}
}
function checkMe(url){
createXMLHttpRequest();
xmlHttp.open(“post”,url,true);
xmlHttp.onreadystatechange=send; //用send函数进行发数
xmlHttp.setRequestHeader(“Content-Type”,”application/x-www-form-urlencoded;”);
xmlHttp.send(null);
}
function send(){
//alert(“指令成功发送!”);
}
</script>
</head>

<body>

<div id=”content”>
<div id=”menu_mode”>
<ul>
<li><input type=”button” onclick=”checkMe(‘cmd.php?cmd=KEY_ON&device=heater’)” value=”开/关”/></li>
<li><input type=”button” onclick=”checkMe(‘cmd.php?cmd=KEY_LOW&device=heater’)” value=”低档”/></li>
<li><input type=”button” onclick=”checkMe(‘cmd.php?cmd=KEY_HIGH&device=heater’)” value=”高档”/></li>
<li><input type=”button” onclick=”checkMe(‘cmd.php?cmd=KEY_HIGH&device=heater’)” value=”定时”/></li>
</ul>
</div>
</div>
</body>
</html>

然后通过http://ip地址/index.html访问

对于使用iphone或者ipad的用户,还可以把网页快捷方式放到主屏幕,打开就是一个操作界面,是不是很来福啊?

安装Siri Proxy

本文为本站首发,树莓派论坛转载,如果需要转载请注明作者及出处。

原文地址:

How to Install Siri Proxy Tutorial [Video]

安装之前,需要下面几个先决条件:
1.最好安装一个ubuntu.可以实际安装一台机器,也可以装在虚拟机上
2.只能安装在4s上,我未测试其他设备,可能不能工作,而且不合法
3.只有连上wifi的时候才可用,并且iphone和siri proxy在一个局域网内。虽然可以通过vpn远程,但是我尽量保持简单和直接
4.本文只覆盖初始化安装,以后我告诉你们如何增加一些插件来增加体验
5.任何人都可以做到,包括你,不要害怕
6.最后,感谢Pete创建了SiriProxy,并提供基础

如何安装:
预备步骤:
1.如果已经有了ubuntu,直接下一步。没有的话,可以在windows或者mac上装一个,mac上可以装Parallels或者vmware fusion运行ubuntu虚拟机,我用的是parallels
2.安装ubuntu的最新更新,参看视频1:00时刻(视频需要翻墙)
3.如果你用paralles或者其他虚拟机,需要设置虚拟机实通过bridge模式,这样可以联上互联网,参看视频4:00
4.设置dropbox,这是个可选步骤,我觉得这样方便一些。你需要有地方传输你iphone上生成的证书,你可以用邮箱,我用的是dropbox

命令行步骤:

这些步骤都可以参考视频,每个都有时间戳作为参考。简单的在终端复制粘贴这些命令,然后按照指令执行。

命令1:时间:5:44(此处安装必要的库)
sudo apt-get install dnsmasq ruby build-essential openssl libreadline6 libreadline6-dev curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-0 libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev ncurses-dev automake libtool bison subversion
选择y继续,

命令2:时间6:13
sudo nano /etc/dnsmasq.conf
找到62行: #address=/double-click.net/127.0.0.1
在他下面增加:address=/guzzoni.apple.com/(你机器的ip地址)
按ctrl+o,回车保存,按ctrl+x退出

命令03: Time 7:42
sudo /etc/init.d/dnsmasq restart

命令 04: Time 7:55
bash < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer)
命令 05: Time 8:20
[[ -s “$HOME/.rvm/scripts/rvm” ]] && . “$HOME/.rvm/scripts/rvm”
命令 06: Time 8:33
echo ‘[[ -s “$HOME/.rvm/scripts/rvm” ]] && . “$HOME/.rvm/scripts/rvm” # Load RVM function’ >> ~/.bash_profile
命令 07: Time 8:47
rvm install 1.9.3

这条命令需要执行一段时间,尤其编译阶段

命令 08: Time 9:22
rvm use 1.9.3 –default
命令 09: Time 9:32
git clone git://github.com/plamoni/SiriProxy.git
命令 10: Time 9:49
cd SiriProxy
选择y继续(我感觉不对,没有去验证)

命令 11: Time 10:06
rake install
命令 12: Time 10:21
mkdir ~/.siriproxy
命令 13: Time 10:31
cp ./config.example.yml ~/.siriproxy/config.yml
命令 14: Time 10:43
siriproxy gencerts
命令 15: Time 11:04
siriproxy bundle
命令 16: Time 11:23
rvmsudo siriproxy server
这条命令启动Siri Proxy,成功的话,会提示”Starting SiriProxy on port 443..”

在iphone 4s上设置

1.首先你要取得我们在上面第14步生成的证书,在4s上安装。你可以使用dropbox或者邮件传输到iphone,看视频的11:40
这个证书在 ~/.siriproxy/ca.pem,你需要查看隐藏文件,一旦证书到你的iphone,选择安装,参照视频12:44

2.进入iphone wifi设置,选择wifi连接左边蓝色简单按钮,记住,你的手机需要和你的siriproxy在一个局域网。在dns那里,把dns修改为siriproxy的ip地址,参看视频12:59

3.测试siri,按住home键,说“test siri proxy”,siri会回复你,“siri proxy is up and running”,在你的终端上面会显示你的语音包。

虽然看起来很复杂,你大概需要不到一个小时。