两个算分数(比例)的小程序 [Python]

随手写的小程序 很小很实用, 尤其是在压片的时候计算sar值等方面.
第一个: 化简分数

样例输入1: 16/12
样例输出1: 4 : 3
样例输入2: 16*480/(9*704)
样例输出2: 40 : 33

恩, 简单说来, 就是化任意分数为最简分数

第二个: 小数化分数
给一个范围,用范围内的数组成分数,并使这个分数的值最接近所给的小数(如样例给的是1-100和1-1000的范围)

样例输入1: 3.1415926535897 100
样例输出1: 22 : 7
样例输入2: 3.1415926535897 1000
样例输出2: 355 : 113
Continue reading 两个算分数(比例)的小程序 [Python]

我在 VB6 用的 Regex 小模块

我一直在用 VB6 写的各种需要正则的小程序里引入这个模块, 很简洁很好用:)
使用之前当然需要在 工程 -> 引用 里勾选 Microsoft VBScript Regular Expression 5.5

具体用法嘛…
1, StrReplace(正则替换):

MsgBox StrReplace("1d2e3f","\d","a")

将会输出
adaeaf

2, StrMatch(正则查找):

Dim mhs As MatchCollection
Set mhs = StrMatch("1d2e3f","\d")
If mhs.Count > 0 Then
    For i = 1 To mhs.Count
        MsgBox mhs(i).Value
    Next i
End If

具体效果嘛…能猜到了吧? 猜不到的自己试试去… 其他用法请参见MSDN 🙂
下面附上模块源码:

Continue reading 我在 VB6 用的 Regex 小模块

一个简单的srt字幕多行转单行的脚本[Python]

基本功能: 双语字幕中英文分离, 各自成一行
避免srtedit在合并某些字幕后中英文各占不止一行, 导致最终生成的字幕占4行的尴尬情况.

基本示例:
源文件:

1
00:01:06,107 --> 00:01:07,483
This is a test
这是一个测试

2
00:01:12,906 --> 00:01:16,450
测试!
快测试呀

3
00:01:18,703 --> 00:01:19,953
测试好了没有?
我问你好了没有?
Is the test OK?
What's the result?

处理后:

1
00:01:06,107 --> 00:01:07,483
这是一个测试
This is a test

2
00:01:12,906 --> 00:01:16,450
测试! 快测试呀

3
00:01:18,703 --> 00:01:19,953
测试好了没有? 我问你好了没有?
Is the test OK? What's the result?

基本功能完好,细节有些小毛病…

Continue reading 一个简单的srt字幕多行转单行的脚本[Python]

继续我的Ubuntu之旅 (2)

恩,作为笔记系列的文章,内容会比较混乱.
这段时间以来,作为Ubuntu双十版的小白鼠,虽然挂彩数次,不过也在 @yegle @tjmao @poplarch @BOYPT @liangsuilong @jimmy_xu_wrk 等等推友的帮助下搞定重生.
以下是这段时间来发现的好东西:

1, @tualatrix 大大的notify脚本(Felix降碳版)

#!/bin/bash
# Copyright: TualatriX  GPL v3
# Website: http://imtx.cn/archives/1516.html
# Please add the following line to ~/.bashrc to enable the bash completion support
# 	complete -o filenames -F _root_command notify
$* && \
notify-send "\"$*\" finished successfully" || \
notify-send "\"$*\" failed"

并在 ~/.bashrc 里加入:

complete -o filenames -F _root_command notify

以适应bash的自动完成功能. 原文在此
这玩意着实好用, 不过本猫发现10.04及以上版本会出现找不到notify-send命令,这时只需要

# apt-get install libnotify-bin

就好.

Continue reading 继续我的Ubuntu之旅 (2)

Freessh.us的自动连接脚本(Python)

虽然我有付费的SSH Tunnel服务用,不过昨天围观到freessh.us改成了每15分钟换一次密码,新密码在其首页上发布,还是猥琐了一把,写了个简单的自动链接脚本:

import urllib,re,os
while True:
    a=urllib.urlopen('http://www.freessh.us').read()
    a=a.replace('\n','').replace('\r','')
    b=re.compile('\>(\w{1,3}\.freessh\.us)\<\/td\>.+?(\w{4,7})\<\/td\>.+?\>(\w{3,7})\<\/td')
    for i in b.findall(a):
        os.system('plink '+i[0]+' -N -ssh -2 -P 22 -l '+i[1]+' -C -D 7070 -v -pw \"'+i[2]+'\"')

不想围观脚本可以用力点这里下载.
Linux/Windows都可以使用,其他系统没试过.
Linux使用要安装plink:

# apt-get install putty-tools
# yum install putty-tools

Windows使用要安装Python 2.6+并把plink.exe放到同一目录. plink的下载方式参见我的另一篇文章:Plink+Polipo 轻松打造IE可用的SSH Tunnel(Win)

另外BOYPT神牛的博客提供了一种expect+shell脚本的方式达到近似的效果,传送门: http://apt-blog.net/across-the-great-wall-we-can-reach-every-corner-in-the-world

[译] Ubuntu 10.04 开机黑屏问题的解决方案

译者注: Felix 遇到了nVidia和Intel 915显卡的问题, 用Google到的方法解决了. 今天看到这篇文章, 介绍的方法与我用的一样, 而且更全更详细, 因此翻译出来给遇到同样问题的朋友参考:)

有许多用户反应, 在最新版Ubuntu 10.04安装前后出现黑屏现象. 似乎问题在于一些显卡驱动的不兼容, 尤其是一些ATI和nVidia显卡(并不奇怪XD). 出问题的也有一些Intel显卡. 这片文章将给出一种方法, 你或许可以用这个方法让显卡正确工作起来.

从CD启动

这一节介绍如何解决LiveCD启动时的显卡驱动问题. 或许由于显卡的不同, 问题会很复杂, 不过希望如下介绍能给你一个有效的方向来检查问题:)
1, 在安装屏幕按F6,然后插入一个选项(取决于您的显卡,下面会列出)
2, 在安装后第一次启动时, 按e来编辑GRUB菜单
3, 使用方向键定位, 删除 quietsplash, 并再次插入那个选项.
4, 按 Ctrl + X 来启动系统

取决于不同的显卡,建议的选项如下:
较老的 Intel 显卡: i915.modeset=1 或者 i915.modeset=0
nVidia显卡: nomodeset
ATI显卡: acpi=off 和/或 radeon.modeset=0
其他显卡: xforcevesa

希望这样可以使您的显卡正常工作起来. 如果成功, 请继续往下看, 下一节将介绍怎么让这些设置永久生效.

Continue reading [译] Ubuntu 10.04 开机黑屏问题的解决方案

[译]使用Unclutter在空闲时自动隐藏鼠标指针(Ubuntu)

Unclutter是一个十分简单的小工具, 它的man page上是这样介绍的:
unclutter在鼠标指针一段时间不动后从屏幕上把它隐藏,这样它就不会妨碍到您正在看的屏幕区域了.
不要把事情弄复杂,下面就来安装它吧!(输入下面的命令或者单击 这里 都可以安装)

sudo aptitude install unclutter

这样就安装完成了.最后我们需要做的是配置它,并让它自动运行.依次展开”系统 > 首选项 > 启动应用程序”
使用这里的设置,可以让unclutter开机自动启动.单击”添加”并填写三个文本框即可.”名称”可以写”Unclutter”,命令可以参考:

unclutter -display 0:0 -idle 5

然后在备注里写上任何你想写的话,比如”在鼠标指针不活动时隐藏鼠标指针.”
你可以在man信息里获得unclutter更多参数和功能的介绍(命令:man unclutter),上文给出的命令意味着:在默认桌面下,当鼠标不活动达5秒后,自动隐藏鼠标指针.

译者: Felix Yan
原文地址: http://ubuntu-tutorials.com/2008/07/07/auto-hide-your-mouse-pointer-when-idle-with-unclutter/

音轨压制 With FFmpeg & neroAacEnc —- 我的第二个 wxPython 程序(ffnraudio)

我的第二个在 Boa Constructor 下写的 wxPython 程序…

基本功能:
1, 拖入含音轨的媒体文件(任意格式), 列出音轨, 选中需要压制的音轨, 选择压缩选项, 然后单击”Go”即可开始压制.

***ChangeLog***
20100617 0.1a 发布

下载请移步: http://code.google.com/p/ffnraudio/downloads/list

Continue reading 音轨压制 With FFmpeg & neroAacEnc —- 我的第二个 wxPython 程序(ffnraudio)

继续我的Ubuntu之旅 (1)

自从2008年6月心血来潮用上了Ubuntu, 到现在两年时光飞逝. 开始的时候为个输入法焦头烂额了好久(8.04 LTS), 后来又驱动不起我的稀有华硕声卡, 后来不知什么时候”想通了”回去尝鲜Win7, 过了一年多又换回Ubuntu(原因是机子鬼使神差的装不上Win7了, Win也不会给出详细的Log来供你分析错误)…
8.04到10.04, LTS到LTS的跨越, 升级的也绝不仅仅是版本号. 7秒的开机速度(SSD)和插到别的机子上引导, 驱动全部装好, 都是Win很难达到的优势. 某次驱动起了一块难缠的3G网卡, 事后别人问起却忘记了具体方法, 方觉早应该把这样一些细节记录下来.

以下便是这次用Ubuntu数月以来又学到的一部分”新”东西, 已经单独开文说过的这里也不再赘述了.

先给个目录:
1, terminal显示GBK/GB2312等编码的文本
2, nvidia驱动和开源驱动/mesa之间的恩怨情愁
3, 多语言界面
4, 共享网络给别人用
5, 防御arp攻击

1, terminal显示GBK/GB2312等编码的文本

比如telnet登陆白云黄鹤论坛

$ telnet bbs.whnet.edu.cn

显示出满屏幕的菱形里面套问号, 让人不禁内牛满面. 解决方法:

$ luit -encoding gbk telnet bbs.whnet.edu.cn

这样就很和谐了~~
此外,xrgsu提示的乱码服务器错误信息,也可以用编码GB2312正常显示. 唯有一点不解,GB2312正常显示,而GBK却乱码…

Continue reading 继续我的Ubuntu之旅 (1)

Python / wxPython 学习笔记 – Day 2 多线程 / 文本编码

转到Ubuntu学习已经很长时间,另外在VirtualBox虚拟机中安装了WinXP,以检测跨平台的问题。
关于多线程,我想实现的功能具体是:子线程运算,更新主线程进度条; 子线程调用外部进程获取返回值,更新主线程进度条

文本编码问题

我的第一个wxpython程序的第一个版本中,我为了在windows系统下正确显示中文,大量采用了

.encode('gbk')

的输出方式,然而这种方式在默认编码为UTF-8的Linux系统下无法正常显示。
so how to solve it?
下面是我的解决方法:
1, 在win下安装wxpython的unicode版本,直接传unicode字符串给wxpython相关方法,即可显示中文
2, 调用外部命令等必须严格按照系统编码的时候,可以采用下面的编码方式(当然,先import sys):

.encode(sys.getfilesystemencoding())

这样即可达到相当好的跨平台兼容性:)

Continue reading Python / wxPython 学习笔记 – Day 2 多线程 / 文本编码
QR Code Business Card