Mar
17
我自己试了下,蛮好的,Ubuntu下面终于有lyrics了。
-- zz from http://linuxtoy.org/archives/lrcdis.html --
lrcdis 是由 xiooli、solcomo、bones7456、oldherl 等同学编写的一个 Bash 脚本,该脚本允许你以外挂方式来显示歌词。目前,lrcdis 支持 Linux 下的大多数音乐播放器,包括 Rhythmbox、Amarok、Quod Libet、Exaile、Audacious、MPD、MPlayer、MOC 等等。
...
首次运行 lrcdis,它将在 $HOME/.config 目录下建立配置文件 lrcdis.conf。通过此文件,你可以决定歌词以何种模式显示(有 CLI、OSD、notify、fifo 等选择)、下载歌词的保存位置、使用哪一个音乐播放器等。
当你使用上述音乐播放器中的一款播放歌曲时,lrcdis 将根据该歌曲的 ID3 标签或文件名来自动下载歌词,并以你指定的模式显示,整个过程由脚本自动完成,无需你额外操心。
lrcdis 可从 Google Code 下载。
http://code.google.com/p/lrcdis/
-- zz from http://linuxtoy.org/archives/lrcdis.html --
lrcdis 是由 xiooli、solcomo、bones7456、oldherl 等同学编写的一个 Bash 脚本,该脚本允许你以外挂方式来显示歌词。目前,lrcdis 支持 Linux 下的大多数音乐播放器,包括 Rhythmbox、Amarok、Quod Libet、Exaile、Audacious、MPD、MPlayer、MOC 等等。
...
首次运行 lrcdis,它将在 $HOME/.config 目录下建立配置文件 lrcdis.conf。通过此文件,你可以决定歌词以何种模式显示(有 CLI、OSD、notify、fifo 等选择)、下载歌词的保存位置、使用哪一个音乐播放器等。
当你使用上述音乐播放器中的一款播放歌曲时,lrcdis 将根据该歌曲的 ID3 标签或文件名来自动下载歌词,并以你指定的模式显示,整个过程由脚本自动完成,无需你额外操心。
lrcdis 可从 Google Code 下载。
http://code.google.com/p/lrcdis/
Mar
16
其实得自己做个map
$ vim ~/.vimrc
$ vim ~/.vimrc
"F5 for comment
vmap <F5> :s=^\(//\)*=//=g<cr>:noh<cr>
nmap <F5> :s=^\(//\)*=//=g<cr>:noh<cr>
imap <F5> <ESC>:s=^\(//\)*=//=g<cr>:noh<cr>
"F6 for uncomment
vmap <F6> :s=^\(//\)*==g<cr>:noh<cr>
nmap <F6> :s=^\(//\)*==g<cr>:noh<cr>
imap <F6> <ESC>:s=^\(//\)*==g<cr>:noh<cr>
vmap <F5> :s=^\(//\)*=//=g<cr>:noh<cr>
nmap <F5> :s=^\(//\)*=//=g<cr>:noh<cr>
imap <F5> <ESC>:s=^\(//\)*=//=g<cr>:noh<cr>
"F6 for uncomment
vmap <F6> :s=^\(//\)*==g<cr>:noh<cr>
nmap <F6> :s=^\(//\)*==g<cr>:noh<cr>
imap <F6> <ESC>:s=^\(//\)*==g<cr>:noh<cr>
Mar
15
BFS @ 2009-03-14
A,搜索,没做。
B,搜索,没做。
C,计算几何,没做。
D,加密算法,Boluor没做完。
E,模拟,Sandy写的,trick是需要先判断下一个走的人是谁(B/W)。
F,表达式的计算,我之前没有看题目,但是扫了一下,觉得应该很简单,回头写一下,应该不难吧。
G,计算几何,超简单的一个等比方程解一下;trick在于两个int加起来以后会OverFlow。
H,字符串处理,数据量很小,不要Trie,用map+set搞定。
I,没看。
J,DP,Sandy推出一个方程,和他讨论了一下,就被拖到机房去,然后他写了AC了。
oak真是相当的不堪阿,sigh。
--
党员活动室确实很适合看电影,音效非常好。
--
贴上我写的代码:
A,搜索,没做。
B,搜索,没做。
C,计算几何,没做。
D,加密算法,Boluor没做完。
E,模拟,Sandy写的,trick是需要先判断下一个走的人是谁(B/W)。
F,表达式的计算,我之前没有看题目,但是扫了一下,觉得应该很简单,回头写一下,应该不难吧。
G,计算几何,超简单的一个等比方程解一下;trick在于两个int加起来以后会OverFlow。
H,字符串处理,数据量很小,不要Trie,用map+set搞定。
I,没看。
J,DP,Sandy推出一个方程,和他讨论了一下,就被拖到机房去,然后他写了AC了。
oak真是相当的不堪阿,sigh。
--
党员活动室确实很适合看电影,音效非常好。
--
贴上我写的代码:
Mar
13
花了n久的时间终于搞清楚了,丫丫的,真麻烦
编译:
这个mysql目录是某个mysql的源码目录,如果有安装mysql-devel可能是在/usr/ooxx/mysql,没有的话自己去down源码
编译:
引用
g++ -Imysql/include -Lmysql/lib -o a.out a.cpp -lmysqlclient -lz
这个mysql目录是某个mysql的源码目录,如果有安装mysql-devel可能是在/usr/ooxx/mysql,没有的话自己去down源码
#include<iostream>
#include<string>
#include<fstream>
#include"mysql.h"
using namespace std;
MYSQL * conn = NULL; //MySQL连接句柄
//读取配置
bool read_conf(string &dbhost,
string &dbuser,
string &dbpass,
string &dbname){
ifstream is("judge.conf");
is >> dbhost >> dbuser >> dbpass >> dbname;
return true;
}
bool query(){
int status, state, state2;
MYSQL_RES * res;
MYSQL_ROW row;
string cmd;
MYSQL *conn, mysql;
string dbhost, dbuser, dbpass, dbname;
if(read_conf(dbhost,dbuser, dbpass, dbname)){ //读取数据库
if (mysql_init(&mysql) == NULL){
fprintf(stderr, "初始化错误\n");
return false;
}
conn = mysql_real_connect(&mysql, dbhost.c_str(), dbuser.c_str(),
dbpass.c_str(), dbname.c_str(), NULL,
"/var/run/mysqld/mysqld.sock", 0);
if(conn == NULL){ //连接失败
fprintf(stderr, "连接失败!\n");
return false;
}
}else{ //读取配置失败
fprintf(stderr, "读取配置失败!\n");
return false;
}
cmd = "SELECT OOXX FROM OOXX";
cout << "Command: " << cmd << endl;
state = mysql_query(conn, cmd.c_str());
cout << "state: " << state << endl;
if(state != 0){//查询出错
fprintf(stderr, "%s\n", mysql_error(conn));
return false;
}
res = mysql_store_result(conn);
cout << "affected_rows:" << conn->affected_rows << endl;
while(row = mysql_fetch_row(res), row != NULL){
printf("%s\n", row[0]);
}
return true;
}
int main(){
query();
return 0;
}
#include<string>
#include<fstream>
#include"mysql.h"
using namespace std;
MYSQL * conn = NULL; //MySQL连接句柄
//读取配置
bool read_conf(string &dbhost,
string &dbuser,
string &dbpass,
string &dbname){
ifstream is("judge.conf");
is >> dbhost >> dbuser >> dbpass >> dbname;
return true;
}
bool query(){
int status, state, state2;
MYSQL_RES * res;
MYSQL_ROW row;
string cmd;
MYSQL *conn, mysql;
string dbhost, dbuser, dbpass, dbname;
if(read_conf(dbhost,dbuser, dbpass, dbname)){ //读取数据库
if (mysql_init(&mysql) == NULL){
fprintf(stderr, "初始化错误\n");
return false;
}
conn = mysql_real_connect(&mysql, dbhost.c_str(), dbuser.c_str(),
dbpass.c_str(), dbname.c_str(), NULL,
"/var/run/mysqld/mysqld.sock", 0);
if(conn == NULL){ //连接失败
fprintf(stderr, "连接失败!\n");
return false;
}
}else{ //读取配置失败
fprintf(stderr, "读取配置失败!\n");
return false;
}
cmd = "SELECT OOXX FROM OOXX";
cout << "Command: " << cmd << endl;
state = mysql_query(conn, cmd.c_str());
cout << "state: " << state << endl;
if(state != 0){//查询出错
fprintf(stderr, "%s\n", mysql_error(conn));
return false;
}
res = mysql_store_result(conn);
cout << "affected_rows:" << conn->affected_rows << endl;
while(row = mysql_fetch_row(res), row != NULL){
printf("%s\n", row[0]);
}
return true;
}
int main(){
query();
return 0;
}
Mar
12
简单写一下吧:
1. 自定义一个struct t,是set里要放的东西。
2. 定义一个仿函数cmper (仿函数functor,其实就是一个重载了operator()用于比较前述struct的类)。
3. 使用这样的语句: set<struct t, cmper> a; 来定义一个包含struct t的set容器。
4. 使用则样的语句: set<struct t, cmper>::iterator ap; 来定义一个对应的迭代器。
@ 2009-03-16补充:其实重载 bool operator < 也可以,就不需要仿函数了。
具体代码如下:
1. 自定义一个struct t,是set里要放的东西。
2. 定义一个仿函数cmper (仿函数functor,其实就是一个重载了operator()用于比较前述struct的类)。
3. 使用这样的语句: set<struct t, cmper> a; 来定义一个包含struct t的set容器。
4. 使用则样的语句: set<struct t, cmper>::iterator ap; 来定义一个对应的迭代器。
@ 2009-03-16补充:其实重载 bool operator < 也可以,就不需要仿函数了。
具体代码如下:
#include<iostream>
#include<set>
using namespace std;
struct t{ //set里的东西
int i; //可以再增加其他内容,为了简单只写了一个
t(){i = 0;} //构造函数
t(int _i):i(_i){} //构造函数
friend inline ostream & operator <<(ostream &os, const t & a){ //重定向operator <<,纯粹是为了方便输出
return (os << a.i);
}
};
class cmper{ //仿函数
public:
bool operator()(const t &a, const t &b)const{ //重载operator ()
return a.i < b.i;
}
};
set<t, cmper> a; //定义一个set
int main(){
a.insert(t(3));
a.insert(t(1));
a.insert(t(2));
set<t, cmper>::iterator ap; //定义一个迭代器
for (ap = a.begin(); ap != a.end(); ap++){ //遍历
cout << (*ap) << endl;
}
return 0;
}
#include<set>
using namespace std;
struct t{ //set里的东西
int i; //可以再增加其他内容,为了简单只写了一个
t(){i = 0;} //构造函数
t(int _i):i(_i){} //构造函数
friend inline ostream & operator <<(ostream &os, const t & a){ //重定向operator <<,纯粹是为了方便输出
return (os << a.i);
}
};
class cmper{ //仿函数
public:
bool operator()(const t &a, const t &b)const{ //重载operator ()
return a.i < b.i;
}
};
set<t, cmper> a; //定义一个set
int main(){
a.insert(t(3));
a.insert(t(1));
a.insert(t(2));
set<t, cmper>::iterator ap; //定义一个迭代器
for (ap = a.begin(); ap != a.end(); ap++){ //遍历
cout << (*ap) << endl;
}
return 0;
}
//重载example
struct t{
int i;
bool operator < (const t & a)const{
return i < a.i;
};
};
struct t{
int i;
bool operator < (const t & a)const{
return i < a.i;
};
};
Mar
12
有两个版本,都很有意思。如果觉得看英文版郁闷,可以对照着google翻译看“中文版”:
http://translate.google.com/translate?prev=hp&hl=en&js=y&u=http%3A%2F%2Fwww.felix021.com%2Fblog%2Fread.php%3F1503&sl=en&tl=zh-CN&history_state0=
-------------------------------------------------------------
version 1 zz from http://topic.csdn.net/u/20070114/01/ee02dfed-511b-419a-91fe-89917726354a.html 7楼
One day a Novice came to the Master.
"Master, " he said, "How is it that I may become a Writer of Programs? ".
The Master looked solemnly at the Novice.
"Have you in your possession a Compiler of Source Code? " the Master asked.
"No, " replied the Novice. The Master sent the Novice on a quest to the Store of Software.
Many hours later the Novice returned.
"Master, " he said, "How is it that I may become a Writer of Programs? ".
The Master looked solemnly at the Novice.
"Have you in your possession a Compiler of Source Code? " the Master asked.
"Yes, " replied the Novice.
The Master frowned at the Novice.
"You have a Compiler of Source. What now can prevent you from becoming a Writer of Programs? ".
http://translate.google.com/translate?prev=hp&hl=en&js=y&u=http%3A%2F%2Fwww.felix021.com%2Fblog%2Fread.php%3F1503&sl=en&tl=zh-CN&history_state0=
-------------------------------------------------------------
version 1 zz from http://topic.csdn.net/u/20070114/01/ee02dfed-511b-419a-91fe-89917726354a.html 7楼
One day a Novice came to the Master.
"Master, " he said, "How is it that I may become a Writer of Programs? ".
The Master looked solemnly at the Novice.
"Have you in your possession a Compiler of Source Code? " the Master asked.
"No, " replied the Novice. The Master sent the Novice on a quest to the Store of Software.
Many hours later the Novice returned.
"Master, " he said, "How is it that I may become a Writer of Programs? ".
The Master looked solemnly at the Novice.
"Have you in your possession a Compiler of Source Code? " the Master asked.
"Yes, " replied the Novice.
The Master frowned at the Novice.
"You have a Compiler of Source. What now can prevent you from becoming a Writer of Programs? ".
Mar
11
以后再不用雅黑了,这个字体一点也不比它差,而且还是开源的。
可以从这里下载: http://wenq.org/index.cgi?ZenHei
--
zz from http://linuxtoy.org/archives/wenqy-zenhei-0838.html
文泉驿正黑 0.8.38 (盘古) 正式发布
2009-03-06 Toy Posted in NewsRSS
开发代号为“盘古”的文泉驿正黑 0.8.38 版本已由文泉驿团队正式发布。
文泉驿团队成员 FangQ 在发布公告中写道:
可以从这里下载: http://wenq.org/index.cgi?ZenHei
--
zz from http://linuxtoy.org/archives/wenqy-zenhei-0838.html
文泉驿正黑 0.8.38 (盘古) 正式发布
2009-03-06 Toy Posted in NewsRSS
开发代号为“盘古”的文泉驿正黑 0.8.38 版本已由文泉驿团队正式发布。
文泉驿团队成员 FangQ 在发布公告中写道:
Mar
9
引用
felix021@felix021-laptop:~ $ gst-launch-0.10 filesrc location="JingleBells.wma" ! decodebin ! alsasink