kugou git repo: kugou git

Python 源码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#!/usr/bin/python
# Copyright (C) 2012 mutse <yyhoo2.young@gmail.com>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
import gtk
import webkit
import sys
class WebKugou(gtk.Window):
def __init__(self):
super(WebKugou,self).__init__()
view = webkit.WebView()
vbox = gtk.VBox(spacing=1)
vbox.pack_start(view)
self.add(vbox)
self.set_default_size(800, 600)
self.set_title('Kugou Music')
self.set_position(gtk.WIN_POS_CENTER)
try:
self.set_icon_from_file("/usr/local/share/icons/kugou.png")
except Exception, e:
print e.message
sys.exit(1)
self.connect('destroy', gtk.main_quit)
self.show_all()
view.open("http://web.kugou.com")
if __name__ == "__main__":
WebKugou()
gtk.main()

Ubuntu 12.04 Sceenshot

Ubuntu 12.04 开发环境搭建:

1、安装Gtk3

1
$ sudo apt-get install libgtk-3-dev

2、安装Gtk2

1
$ sudo apt-get install libgtk2.0-dev

3、安装Python3

1
$ sudo apt-get install python3

4、安装PyGtk3

1
$ sudo apt-get install python3-gi

5、安装Gtkmm3

1
$ sudo apt-get install libgtkmm-3.0-dev

6、安装Gtkmm

1
$ sudo apt-get install libgtkmm-2.4-dev

7、安装Motif/Xwindow

1
$ sudo apt-get install libmotif-dev libmotif4 motif-clients x11proto-print-dev libxt-dev

8、安装Mysql C

1
$ sudo apt-get install mysql-server mysql-workbench libmysqlclient-dev

壬辰四月廿九,夜,与小狐歌之,歌曰,归去来兮,幸甚哉。邻人闻之,遂怒斥,乃止。

三月,辞岭南,归家,闲暇无事。四月游于杭州、金陵两地,遂作此文以记之。

Sceenshot

西子如画,金陵风流。
风景几何,全赖心境也。
若心有结,不宜独往乌镇。
谒中山陵园,天下为公未了。

怜者,同理心也。惜者,鲜少而惜之矣。儿女情长,莫若怜惜二字。

某公司的笔试题:输入任意一个整数,判断其是否是对称数。如121、12321即为对称数。要求不能将整数转成字符串进行处理。

解题思路

求整取余数术,倒行逆施法,数学耳。

源码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int num_reverse(int num)
{
int result = 0;
int m = 0, n = 0;
n = num;
while (n > 0)
{
m = n % 10;
n /= 10;
result *= 10;
result += m;
}
return result;
}

爱情,无非是在彼此心中找到住所而已,让两颗心不再漂泊。

世间往往是,自己喜欢的人,心中却没有自己的住所;

而喜欢自己的人,在自己心中亦无住所。痴男怨女也就随之诞生了。

见于 shoes-A cross-platform Windowing Applikit 一文。

Shoes简介

何谓Shoes?Shoes是一种以Ruby作为其实现接口的跨平台视窗应用程序工具包。更多信息,请浏览shoes github wiki

如何安装shoes

在ubuntu(10.04、10.10和11.04)中,打开终端输入以下命令,即可安装shoes(当然也可以手工编译最新版本的shoes):

1
$ sudo apt-get install shoes

安装完毕,编写一个小程序,验证下。

1
$ vi hello.rb
1
2
3
4
5
6
7
Shoes.app (:width => 300, :height => 50, :title => "Hello Shoes!")
{
para strong("Hello, "), " world!"
@quit = button "Exit"
@quit.click{ exit() }
}

使用以下命令运行shoes:

1
$ shoes hello.rb

看到什么了?是的,shoes窗体!Have a fun with Shoes!

Shoes Sceenshot

原文: python embedding virtual terminal gtk widget python vte library

python-vte bindings allow you to embed a simplistic virtual terminal in any of your GTK apps real easy. This tutorial will show how you can add a terminal to a widget in less than 30 lines, 4 lines only being necessary to set a the terminal session.

Python-vte 绑定允许你在任意一个GTK 程序中十分容易地嵌入一个简单的虚拟终端。本指南将向您展示如何使用少于30 行代码在一个构件上添加一个终端,其中有4 行代码是设置终端会话所必须的。

A simple Terminal with python-vte

一个简单的python-vte 终端

With python-vte bindings, all that is necessary to have a working terminal is to:

使用python-vte 绑定,生成一个运行的终端必须具备以下条件:

instanciate the vte terminal object

vte 终端对象的一个实例;

tell it what to do when the terminal session is killed via connect child-exited signal

当终端会话结束时,通过使用child-exited 信号连接实例,告诉它怎么做;

and finaly fork a child process which will default to the default user shell

最后fork 一个设置默认用户shell 的子进程。

Here is the bit of code required to add a virtual terminal to a GTK window:

这里有一段代码,要求在GTK 窗体中添加一个虚拟终端:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#!/usr/bin/env python
try :
import gtk
except :
print >> sys.stderr, "You need to install the python gtk bindings"
sys.exit(1)
# import vte
try :
import vte
except :
error = gtk.MessageDialog(None, gtk.DIALOG_MODAL, gtk.MESSAGE_ERROR, gtk.BUTTONS_OK, 'You need to install python bindings for libvte')
error.run()
sys.exit(1)
if __name__ == '__main__' :
v = vte.Terminal()
v.connect("child-exited", lambda term: gtk.main_quit())
v.fork_command()
window = gtk.Window()
window.add(v)
window.connect('delete-event', lambda window, event: gtk.main_quit())
window.show_all()
gtk.main()

That’s it, download the script attached to this tutorial, make it executable and run it. You will have a functioning terminal!

至此,下载本指南附件中的脚本,赋于可执行权限,然后运行。您将获得一个运行的终端!

参考资料:

In this post, I will give you an example to demonstrates how to generate a .pyc from compiling a python program.

What is the .pyc? A .pyc file is a compiled python bytecode file, you can visit how do I create a pyc file for more information.

Fist, I write a python script named hello.py as following:

1
2
3
4
5
6
7
#!/usr/bin/python
#
# File: hello.py
# Date: June 16th, 2011
# Author: mutse <yyhoo2.young@gmail.com>
#
print “Hello, welcome to python world!”

Then use chmod command to change its file privilege.

1
$ chmod a+x hello.py

Now, edit a python script as pycoder.py.

1
2
3
4
5
6
7
8
9
10
11
#!/usr/bin/python
#
# File: pycoder.py
# Date: June 16th, 2011
# Author: mutse <yyhoo2.young@gmail.com>
#
import py_compile
file = raw_input("Enter Your File Name: ")
py_compile.compile(file)
print ".pyc of the python script " + file + " is generated."

Then, do the same thing as hello.py.

1
$ chmod a+x pycoder.py

At last, please run pycoder.py script, and a pyc bytecode hello.pyc is generated.

1
$ ./pycoder.py
Enter Your File Name: hello.py
.pyc of the python script hello.py is generated.

介绍

Scons wiki上有这样一段描述:

Scons是一款用Python实现的软件构建工具(创建工具或make工具),它使用Python脚本作为软件构建的“配置文件”。基于夺取软件构建工具竞赛天赋的设计,SCons解决其它构建工具的大量问题,尤其包括典型的、普遍的Make工具本身。

在这个进化过程中,SCons将会比make替代工具更为通用,它将成为GNU构建系统的替代工具。众所周知,GNU构建系统(GBS)是Autotools工具的集合(包括autoconf、automake和autoheader等)。

SCons与众不同的特性包括:

  • 模块设计,得以使其嵌入到其它应用程序中;

  • 源码树中所有依赖关系的全局视图;

  • 针对并行构建(-j)的增强模块;

  • 自动扫描文件的依赖关系;

  • 使用MD5数字签名,决定是否更新一个文件;

  • 使用MD5数字签名代替传统的文件时间戳作为可选项;

  • 使用Python函数或对象创建目标文件;

+方便用于扩展性。

一言蔽之,就是使用Python语言实现的autotools工具。

安装

1.Debian/Ubuntu系统安装SCons

针对Debian/Ubuntu系统,请使用以下命令安装SCons:

1
$ sudo apt-get install scons

2.Redhat/Fedora/CentOS/OpenSUSE系统安装SCons

针对RPM架构的系统,请使用以下命令安装SCons:

1
$ yum install scons

提示:需先切换到root用户,然后使用以下命令。此外,CentOS和OpenSUSE系统,请读者自己验证。

3.Windows系统安装SCons

若读者是Windows系统,请先去Python官网上下载Windows版本的Python安装文件,并安装;然后去sourceforge下载Windows版本的scons可执行文件。安装完毕后,将scons安装目录添加至PATH环境变量中。

4.源码安装SCons

sourceforge上下载scons源码包,然后解压并安装,操作如下:

1
2
3
4
$ wget http://sourceforge.net/projects/scons/files/scons/2.0.1/scons-2.0.1.tar.gz/download
$ tar -xzvf scons-2.0.1.tar.gz
$ cd scons-2.0.1
$ python setup.py install –prefix=/usr

提示:最后一个命令,请使用root权限操作,否则无法安装scons。

参考资料