migrate to Fedora 24

After used Mac Pro more than one year as desktop, I bought a Dell XPS (13.3) laptop, and installed latest Fedora 24. Although I always use ubuntu/centos servers and ubuntu/fedora virtual machines, but the new system makes a exciting, the nature key shortcuts are very convenient.

Recommended some Gnome Extensions:
– Dash to Dock: use it to hold taskbar on the left side.
https://extensions.gnome.org/extension/307/dash-to-dock/

My friend Chun also loves my new system, he was shocked by big release number of Fedora, he still remember the days we were confused by unstable Feodra Core 5.

Continue reading “migrate to Fedora 24”

巧妙使用引号 将Shell和Python杂交(为python代码选择解析器)

前面shell的作用就是为python代码选择解析器

#!/bin/bash
# -*- mode: Python -*-

""":"
# bash code here; finds a suitable python interpreter and execs this file.
# prefer unqualified "python" if suitable:
python -c 'import sys; sys.exit(not (0x020500b0 < sys.hexversion /dev/null 
    && exec python "$0" "$@"

for pyver in 2.6 2.7 2.5; do
    which python$pyver > /dev/null 2>&1 && exec python$pyver "$0" "$@"
done

echo "No appropriate python interpreter found." >&2
exit 1
":"""

print 'Hello from python code'

设置代理服务器, 辅助API请求调试

为什么设置代理服务器?
  1. 手机设置代理服务器后,所有请求数据包都会经过代理服务器,可以在代理服务器上抓包,查看请求数据包得详情,用于调试
  2. 开发手机APP时候,如果正式环境和测试环境使用不同的域名,就需要编译两个包,来回安装写在太麻烦。可以通过切换域名解析的方式,让正式环境的域名访问测试环境。手机设置代理服务器后,所有请求的域名解析是在代理服务器进行,我们需要在代理服务器上(可以是自己的机器,也可以是共用的测试服务器),把请求域名指向测试环境。
如何修改系统hosts配置,修改域名和IP的映射?
  1. Linux, Mac OSx 通过修改 /etc/hosts文件,添加域名到IP映射
  2. Windows下通过修改 C:WindowsSystem32driversetchosts  (参考:http://jingyan.baidu.com/article/9faa72317903f1473c28cb01.html)
如何设置代理服务?
代理软件:Charlers(包括:代理服务器和监听功能)

启动后自动监听本机8888端口,在Chalers界面也可以查看不同协议的数据报及其详情。

设置手机代理:
在wifi连接里设置“手动”代理,IP为代理服务器地址,端口为代理服务器监听端口

使用BIP代理长期挂IRC

使用BIP [1] 代理挂IRC和以前在远端服务器挂QQ升级是一个模式, 不过不是为了升级, 而是为了保存日志, 特别是在一些全球的频道, 晚上关了IRC可能错过一些有趣的讨论.

以前听说过这个功能, 但是自己没有去配置, 我想着不安全. 而且一致用命令行的irssi, 或者 emacs里的erc, 都很轻便. 今天Fam告诉我, 我们组有一个公用的服务器, 有kerbose个人账号保证安全, 于是配置了一下, 确实很实用又方便.

需要在一台长期运转的服务器上配置BIP服务, 可以参考这里详细的步骤 [2] 或 3. 然后简单配置客户端就可以.

这里说一下我觉得特别的地方:
1) 我们的服务器是公用, 所以不能使用默认7778端口, 可以先用 nc -l xxxx 来做个监听测试, 确保其他人没有使用.
2) on_connect_send 定义的命令是用来验证IRC服务器上的账号, 不同服务器的命令不一样.  “PRIVMSG UserServ login user password”, 也可以是 “PRIVMSG NickServ :IDENTIFY user password”. 这个不同在注册用户的时候就能知道.
3) channel的定义有多种形式
.1 channel { name = “#linaro,#linaro-meeting”; };
.2 channel { name = “#linaro”;  name=”#linaro-meeting”; }; 可以在每个name后边使用其他参数定制单个channel, 比如有个别channel需要密码验证, 也可以定制是否备份日志,等等.
.3 也可以多个channel语句
4) bipmkpw 的使用: 不带任何参数, 根据提示输入自己的密码, 产生一个hash字符串, 需要更新到bip.conf里.
5) 客户端的密码项包含三部分:    username:password:network,  这个用户名是bip.conf顶部定义的用户名, 密码和bipmkpw输入的一致. network是IRC网络名字, 也是在bip.conf里定义的. 客户端还有一个密码是验证昵称的, 不要混淆.
6) 时区问题, log里显示的是服务器的时区, 还没有解决

[1] http://en.wikipedia.org/wiki/BIP
[2] https://wiki.mageia.org/en/QA_procedure:Bip
[3] https://wiki.linaro.org/Resources/HowTo/BIP

修改mutt里GPG 签名公钥附件名

在mutt里配置好gpg后, 加密邮件会附带一个公钥文件, 这个文件名在Gmail里是 noname, 在QQ邮箱里是tcmime.1591.1634.2471.bin. 这些都会给人造成困惑, Thunderbird 里会把这个文件命名为 signature.asc

在archlinux 的github [1], 有一个patch为mutt添加了定义公钥文件名称和描述的功能. 于是从FedoraProject[2]下载mutt代码, 重新用rpmbuild编译rpm安装. 当然也可以使用Upstream[3]的代码, 记着configure时候打开需要的特性, 如 –enable-hcache 用于缓冲邮件头部改进加载速度.

安装完mutt, 只需要在~/.Muttrc里添加如下内容, 就可以修改公钥文件名了.

set pgp_mime_signature_filename=”signature.asc”
set pgp_mime_signature_description=”Digital signature”

[1] https://github.com/felix/archlinux/blob/master/mutt/pgp_verbose_mime.patch
[2] git://pkgs.fedoraproject.org/mutt.git
[3] hg clone http://hg.code.sf.net/p/mutt/code mutt-upstream

Looking for a SW Engineer to join the Avocado team (Power8)

Hi folks. (from: https://www.redhat.com/archives/autotest-kernel/2014-September/msg00012.html)

We’re looking for a SW Engineer to work on the KVM Test Automation team (currently working on Avocado), focusing on Power8.

The primary assignment of this person will be to work on the Power8 port of Avocado and to be the person responsible for anything related to power8 in our KMV test automation infrastructure in the long term.

If you know of somebody who would fit the description below and is willing to join our team, please point them to the Red Hat job site or contact me in private.

The position is public in this URL:
http://jobs.redhat.com/jobs/descriptions/software-engineer-automating-testing-brno-jihomoravsky-kraj-czech-republic-job-1-4786737 (don’t care about the work place)

Company Description:
    At Red Hat, we connect an innovative community of customers,
    partners, and contributors to deliver an open source stack of
    trusted, high-performing technologies that solve business
    problems. We’re a billion dollar S&P 500 company offering
    solutions from Linux to middleware, storage to cloud,
    together with award-winning global customer support,
    consulting, and implementation services. 

Job summary:
    The Red Hat Engineering team in Brno is looking for a
    Software Engineer to join the KVM team in Brno, Czech
    Republic. Focusing on Power8 (ppc64), you will work on the
    development of testing frameworks and tools to automate the
    test coverage of Red Hat virtualization technologies running
    on the IBM Power8 architecture. As a Software Engineer,
    you'll work with a globally distributed team to develop
    critical technology for Red Hat products while collaborating
    with the open source community on many projects. 

Primary job responsibilities:
    * Design and implement new features in open source testing
      frameworks like Avocado and Autotest
    * Integrate multiple automation tools in a Continuous
      Integration (CI) system for KVM on Power8
    * Assist the Quality Assurance team in developing complex
      tests involving virtualization technologies
    * Promote a culture of test automation internally within Red
      Hat

Required skills:
    * 2-3 years of significant software development experience on
      Linux
    * Good understanding of the inner workings of a Linux
      distribution
    * Experience with test automation or continuous integration
      systems
    * Familiarity with development languages like Python and C
    * Experience with open source projects and development tools
    * Familiarity with IBM's Power8 architecture
    * Bachelor's degree in computer science or equivalent

Thanks!

转: 使用 ffmpeg 缩放、裁剪、剪辑视频

以前系统里装了一个剪辑软件, 用起来很占资源. 刚才想简单剪辑一个视频, 搜到下面文章, 比图形界面方便多了 🙂

我们平时使用手机拍摄的视频一般都在1080p及以上,在实际应用中,比如共享给朋友等,可能需要处理一下会比较方便。下面列出几个 ffmpeg 常用的处理视频方法(如果只需要格式转换,可以参考我之前的一篇文章《使用H264编码转换视频》

缩小视频

假设原始视频尺寸是 1080p(即 1920×1080 px,16:9),使用下面命令可以缩小到 480p:

$ ffmpeg -i a.mov -vf scale=853:480 -acodec aac -vcodec h264 out.mp4

各个参数的含义:

  • -i a.mov 指定待处理视频的文件名
  • -vf scale=853:480 vf 参数用于指定视频滤镜,其中 scale 表示缩放,后面的数字表示缩放至 853×480 px,其中的 853px 是计算而得,因为原始视频的宽高比为 16:9,所以为了让目标视频的高度为 480px,则宽度 = 480 x 9 / 16 = 853
  • -acodec aac 指定音频使用 aac 编码。注:因为 ffmpeg 的内置 aac 编码目前(写这篇文章时)还是试验阶段,故会提示添加参数 “-strict -2” 才能继续,尽管添加即可。又或者使用外部的 libfaac(需要重新编译 ffmpeg)。
  • -vcodec h264 指定视频使用 h264 编码。注:目前手机一般视频拍摄的格式(封装格式、文件格式)为 mov 或者 mp4,这两者的音频编码都是 aac,视频都是 h264。
  • out.mp4 指定输出文件名

上面的参数 scale=853:480 当中的宽度和高度实际应用场景中通常只需指定一个,比如指定高度为 480 或者 720,至于宽度则可以传入 “-1” 表示由原始视频的宽高比自动计算而得。即参数可以写为:scale=-1:480,当然也可以 scale=480:-1  Continue reading “转: 使用 ffmpeg 缩放、裁剪、剪辑视频”

Mutt:使用Fetchmail收邮件时在服务器上只保留部分文件夹内容

公司邮箱空间只有4G,邮件太多,特别是社区里的邮件.现在是收到警告就上去删一次,太麻烦了.当然强大的Gmail不存在这个问题.

~/.fetchmailrc 里可以执行多次poll 命令, 针对不同的文件夹采用不同的选项参数.
“no keep” 表示不在服务器保留接受过的邮件.
mda命令是对poll回来的邮件做处理, 每个poll命令后面需要紧跟一个mda命令.

# Only keep important internal mails on mail server
poll mailserver.com proto imap authenticate password user akong password mypasswd folder 'inbox' 'rhvirt' 'rhkernel' no fetchall keep ssl
mda "/usr/bin/procmail -d %T"

# Upstream maillists have archive, I also backup them in Gmail, so don't keep them in company mail server.
poll mailserver.com proto imap authenticate password user akong password mypasswd folder 'kvm-upstream' 'kernel-flood' 'seabios' 'autotest' no fetchall no keep ssl
mda "/usr/bin/procmail -d %T"

# set sleep time before next polling
set daemon 180

转: 姚欣宇谈开源社区的创立和运作

姚欣宇,GitCafe创始人。自称Thomas,网络ID是ghosTM55。他自己这么介绍自己:

我是在校学生,计算机系信息安全专业,大三。我个人比较喜欢计算机科学,哲学,运动,音乐与武术。我是Shanghai Linux User Group的组织者之一。我富有激情、理想、创新以及号召力。我不是牛人。

本文选自他的博客,是他自己整理自2010年在盛大创新院的演讲,为大家分享个人对社区文化的理解以及运作经验。

为什么

为什么要做这样的一个演讲?一,在国内,我看到有很多朋友都想创立各类社区,却找不到人和文献去学习以及借鉴经验。我今天的演讲稿会发布到我的BLOG中,有助于这些真正想将社区做好的朋友进行参考。二,社区的创立并不困难,但是社区的规模上升到一定程度后,其组织者、管理者需要考虑的问题非常多,由于其特殊性,有的时候问题的复杂度堪比商业项目中遇到的重重阻碍,我在举出各种事例的同时,在座的各位,也可以进行发散性的思考,帮助自己在生活中或者是从事的项目中遇到的问题提供新的解决方案与点子。

开源社区的性质

好了,各位,我们可以看到,在上海有许许多多的社区,计算机技术社区是其中的一个子集,在这样一个子集中,又有许多门派,有Python、Ruby、 Linux,等等。那么,首先我们要思考一点,为什么会有人需要成立各式各样的社区,参与者的心态和组织者的动机分别是怎样的。

开源社区有着自身的文化底蕴和哲学思想,所以这样的社区往往有着很多自身的特征,并且会因为人本身的因素,导致特征与特征之间产生矛盾。我将开源以及技术社区做了三个分类,分别为纯非盈利社区、半商业社区以及纯商业社区。

Continue reading “转: 姚欣宇谈开源社区的创立和运作”

第十一届国际软件自由日 (西邮站) 2014/09/20

logo1

9月20日14:00 西安邮电大学西区,图书馆二楼国际会议中心,届时与您相约,解开自由软件的神秘面纱!

外场活动
时间:9月20日上午08:30 ~ 12:00
内容:Linux各发行版展示,体验Linux的与众不同
地点:东区餐厅前

正式活动
时间:9月20日下午14:00~17:00
地点:西区图书馆二层国际会议中心
企业:Red Hat, Mozilla Firefox,GitCafe,优麒麟,IBM
高校:西北农林科技大学,西安理工大学,西安财经大学

Screenshot from 2014-09-19 13:26:47

(联系akong @ redhat.com 加入Red Hat, 职位信息: http://jobs.redhat.com)

Continue reading “第十一届国际软件自由日 (西邮站) 2014/09/20”