12Dec
31
2009
3

不能免俗的09总结

网上放眼过去一片总结的,我也来一个吧

Google实习

从去年12月起,我在Google进行了三个月的实习,一直到今年三月初。

实习是在IME team里,也就是谷歌拼音的项目小组。其实谷歌拼音在内部有个很好听的名字,叫goopy,只可惜没有对外使用。我觉得这个名字比Google Pinyin IME好听多了。另外当时还见到了正在开发中的Android版谷歌拼音,内部代号叫moopy,在内部会议上还听到很多有意思的东西。

实习的过程很愉快,虽然感觉自己作的贡献并不多。很喜欢Google里的氛围,以及内部的餐厅。

实习时和另一个实习生以及一个工程师做了一个20%项目,只可惜这个项目估计永远都不会见到天日了。

OSD Lyrics

在Google实习的过程中学会了一些基本的GTK+编程,回来后和sarlmolapple一合计,决定自己做一个项目来作为学习之用,于是就有了OSD Lyrics。

当时决定做OSD Lyrics是由几个方面因素共同决定的。第一,sarlmolapple找不到合适的OSD歌词软件;第二,看到lrcdis的模式,觉得很不错,能一举解决Linux上的各种播放器的需求;第三,在TualatriX的blog上确认了技术的可行性。

这是我第一次看到自己的软件从无到有一点一点的搭建起来的乐趣。软件中途经历几次模块架构修改,现在虽然还有些架构上的问题,但是假以时日一定能解决的。

一路上遇到许多帮助,这里就不点名感谢了。

话说我还是想用python重写一遍。

阅读

惭愧啊惭愧,今年虽然买了不少书,但是看完的只有TAOUP和APUE的前18章。

这两本书给我的收获不小。TAOUP估计要每年看一遍,才能对它所说的东西有切身的体会。APUE让我打下了Unix编程的基础,可惜还没有什么实践的机会。

2010年的目标,是入门Linux内核和驱动编程。

发现我只有在旅途中时,才能安心下来看书。

ACM

今年是第三年玩ACM,也是最后一年。依然是在三队,可惜没机会出国。哈尔滨赛区的杯具让我们赶上了,从国内第一个赛区直接变成了最后一个赛区。

在宁波是乐极生悲,乐的是我们奇迹般地拿了亚军,当然这是在清华两支旅游队不请计排名的情况下。悲的是我弄丢了钱包,银行卡和身份证都没了,户口由于升研究生到现在都还没办好,一直黑户&没钱中……

哈尔滨收官之战,中规中矩地拿了个第五,也有金牌,算是个不错的结尾。

三年ACM,第一年2银,第二年1金一银,第三年2金,也算是一帆风顺了吧。我是不是应该写篇总结什么的呢?

Android/G1

8月底的时候手机坏了,于是告别陪伴我四年,修过无数次的手机,决心换个新的。

当时已经对G1口水已久,但是2K+的价钱实在是不敢奢侈。然而就在我经过一家卖G1的柜台,拿出来把玩了五分钟之后,还是冲动了。这是我最奢侈的计划外消费了,不过好在物有所值,至今对我的G1是相当满意的。

喜欢Android就是喜欢它的自由。于是把Android的SDK文档看了个大概,也拿Anfetion来练了练手,真的很好玩,不愧是geek们喜欢的手机(虽然我并不认为我是个geek)。

2010年展望

我是一个不善于执行计划的人,所以计划什么的就算了吧。21世纪的第二的10年的第一年(真绕口),好好做自己应该做的事,读想读的书,继续充实自己,这样就够了吧。�喜欢

Category: 未分类 | Tags:
12Dec
4
2009
0

原来我错过了留言

一直只订阅了自己的评论RSS,没有注意留言,今天才发现有几个朋友留言了,在此说声sorry。

虽然估计留言的人自己都不记得了,不过还是回复了一下。

Category: 未分类 | Tags:
11Dec
25
2009
0

Gentoo X.org 下键盘无法响应

之前第一次装Gentoo,因为把~x86直接解禁,导致了最后许多软件包冲突,无法全局更新。这几天因为要写论文换回Ubuntu(Gentoo下LaTeX的CJK一时搞不定),顺便把原来的Gentoo给重装一遍(chroot真是个好东西)。

一步步装完,按照X.org安装指南装好X.org,装好gnome-light,重启进入Gentoo,发现键盘用不了,但是触摸板很神奇地能用。退出X,查看xorg.conf,键盘设置良好。

然后注意到了退出X后屏幕留下的启动信息,发现说找不到evdev。估计是X.org升级的影响。翻到X.org升级指南,发现果不其然。因为新版 X.org在驱动上使用了HAL,使用了evdev驱动来控制键盘(还有鼠标?)。

于是首先要确保内核开启了evdev支持(默认已开启):

Device Drivers --->

Input device support --->

--- Input device support
[*]     Event interface

编辑/etc/make.conf,在INPUT_DEVICES里加上evdev

最后更新xorg-server:

emerge -uav --newuse xorg-server

 

Category: 未分类 | Tags: gentoo xorg
10Dec
16
2009
0

android market 下载失败的解决方法

解决方法是从 http://bbs.weiphone.com/read.php?tid=515169 看来的

从本质上来说就是修改hosts文件添加market的IP。具体步骤是:

1、进入root模式

su

 应该是需要取得root权限的机子才行,我刷的第三方ROM已经有权限了

2、重新用读写的方式mount系统分区

mount -o remount,rw /dev/block/mtdblock3 /system

3、用vi编辑/etc/hosts

vi /etc/hosts

在hosts文件里添加这么一行 

74.125.93.113 android.clients.google.com

G1没有ESC键,可以用右Alt+1或者轨迹球+1代替

Category: 未分类 | Tags: Android market
10Dec
10
2009
0

OSD Lyrics 增加 Exaile 0.3 支持

其实在看到 lrcdis 增加对 Exaile 0.3 的支持的时候就知道 Exaile 0.3 的 dbus 接口改了,但是一直很懒,而且有不少事情要办,再加上没人来问,就放在一边不管了(其实就是这家伙懒嘛)。

但是终于还是有人问了,于是终于有动力去做了。Exaile 的文档做得不太好,没有 dbus 接口的文档,于是只能看源代码了。Exaile 的 dbus 接口代码在 xl/xldbus.py 里,因为是用 python 写的,所以很易读。

顺手把 xmms2 的支持给打开了。其实 xmms2 的支持早就好了,但是我没装,也就没测试,所以就把代码屏蔽掉了。现在还是没装,等用户反馈吧,嘿嘿。

最近一直没动 OSD Lyrics,一直想做的分离下载也没做,过几天再说吧,嗯。

PS:发现最近的blog全都是 OSD Lyrics 的更新,我果然是懒了啊……

Category: 未分类 | Tags: osd-lyrics exaile
8Dec
31
2009
0

终于把ibus找回来了

上一篇文章说过,我因为pygtk用不了而没法用ibus,其实具体原因是这样的:

在某次emerge -u world的时候,我安装了python 3.1,但是没运行python-updater(就算运行了,那些模块现在能全部移植过去么?),而且没有设为主python版本(毕竟相关应用还不成熟,而且不向下兼容)

然后又是某次emerge -u world,pycairo说要python2.6,于是就装了

接下来就杯具了:

  • 因为pycairo升级了,只能在python2.6下用,所以python下依赖pycairo的pygtk用不了;
  • 因为装了python 3.1,所以运行python-updater时,是从python 3.1更新到python 2.6,而这两个都没有用过python-updater从python 2.5中更新过,所以python 2.5里的模块都无法更新进python 2.6里

于是没办法,手动emerge pygtk,但是不管emerge了几次,运行ibus-setup都说找不到gtk模块。

终于,在网上搜到,原来少的不是pygtk,是pygobject-_-(我说这提示就不能友善点么)

把pygobject重装,又依次提示没有ibus、dbus和xdg,重新emerge ibus、dbus-python和pyxdg就OK了,注销再重新登录后就能用ibus了,感动啊~~~

于是得到的教训:升级python一定要记得python-updater,emerge完之后一定要留意软件包的message

Category: 未分类 | Tags: gentoo python
2Dec
10
2009
0

实现背景透明的GTK+ widget

如果要用 GTK+ 写一些自定义界面的程序(如QQ),免不了要实现一个背景透明的 widget。一个简单的办法是GtkEventBox+GtkImage,不过这种方法太丑陋了点。然而用通常的方法来创建GTK+ widget 的话,会自动给背景填上颜色,设置了  gdk_window_set_back_pixmap (window->window, NULL, FALSE); 也不行。

10Dec
31
2008
0

记一下最近的.emacs

这两天跑图书馆,做题做不下去了就玩emacs的配置解闷,还没完成,不过还是顺手贴一下好了

;;;F11:打开ecb
(global-set-key  [(f11)] 'ecb-activate)
;;;F12:关闭ecb
(global-set-key  [(f12)] 'ecb-deactivate)
;;;M-g 转到指定行号
(global-set-key [(meta g)] 'goto-line)
;;;设置选择起点
(global-set-key (kbd "C-x <SPC>") 'set-mark-command)
;;;高亮选择
(transient-mark-mode t)
;;;显示行号
(setq line-number-mode t)
;;;显示列号
(setq column-number-mode t)
;;打开括号匹配显示模式
(show-paren-mode t)
;;括号匹配时可以高亮显示另外一边的括号,但光标不会烦人的跳到另一个括号处。
(setq show-paren-style 'parenthesis)
;;与系统剪贴板互通
(setq x-select-enable-clipboard t)

;; "C-,"设为屏幕左移命令
(global-set-key (kbd "C-.") 'scroll-left)
;; "C-."设为屏幕右移命令
(global-set-key (kbd "C-,") 'scroll-right)
(global-set-key (kbd "M-p") 'scroll-down)
(global-set-key (kbd "M-n") 'scroll-up)

;;;;  CC-mode配置    http://cc-mode.sourceforge.net/
(require  'cc-mode)

;;设置缩进,默认的不好看
(c-set-offset 'inline-open 0)
(c-set-offset 'friend '-)
(c-set-offset 'substatement-open 0)

(defun  my-c-mode-common-hook()
    (setq  tab-width  4  indent-tabs-mode  nil)
    ;;;  hungry-delete  and  auto-newline
    (c-toggle-hungry-state 1)
    ;(c-toggle-auto-newline 0)
    ;(c-toggle-electric-state 0)
    ;;按键定义
    (define-key  c-mode-base-map  [(control  \`)]  'hs-toggle-hiding)
    (define-key  c-mode-base-map  [(return)]  'newline-and-indent)
    (define-key  c-mode-base-map  [(f7)]  'my-compile)
    (define-key  c-mode-base-map  [(f9)]  'my-run)
    (define-key  c-mode-base-map  [(f12)] 'my-edit-input-data)
    (define-key  c-mode-base-map  [(control c) (control a)] 'my-copy-whole-file)
    ;(define-key  c-mode-base-map  [(meta  \`)]  'c-indent-command)
    ;(define-key  c-mode-base-map [(tab)] 'my-indent-or-complete)
    (define-key  c-mode-base-map  [(tab)] 'c-indent-line-or-region)
    (define-key  c-mode-base-map  [(control c) (control /)] 'indent-for-comment)
    ;(define-key  c-mode-base-map [(meta ?/)] 'semantic-ia-complete-symbol-menu)
    ;;预处理设置
    (setq  c-macro-shrink-window-flag  t)
    (setq  c-macro-preprocessor  "cpp")
    (setq  c-macro-cppflags  "  ")
    (setq  c-macro-prompt-flag  t)
    (setq  hs-minor-mode  t)
    (setq  abbrev-mode  t)
    ;;doxymacs
    ;;(doxymacs-mode)
)

;;;;;;做题用的小工具
;;编译当前编辑的程序
(defun  my-compile()
  (interactive)
  (compile (concat "g++ " (file-name-nondirectory buffer-file-name)))
)

;;运行当前程序,以程序名+".in"作为输入文件
(defun my-run()
  (interactive)
  (shell-command (concat "./a.out" " < " (file-name-sans-extension buffer-file-name) ".in") "Output")
  (display-buffer "Output")
)

;;新开一个水平分割window显示输入文件
(defun my-edit-input-data()
  (interactive)
  (split-window-horizontally)
  (find-file-other-window (concat (file-name-sans-extension buffer-file-name) ".in"))
)

;;复制当前文件的内容,用于提交程序到OJ上
(defun my-copy-whole-file()
  (interactive)
  ;;(mark-whole-buffer)
  (kill-ring-save (point-min) (point-max))
)

;;重新载入.emacs文件
(defun my-reload-conf()
  (interactive)
  (load-file "~/.emacs")
)

(add-hook  'c-mode-common-hook  'my-c-mode-common-hook)
 
;;;;我的C++语言编辑策略
(defun  my-c++-mode-hook()
    (setq  tab-width  4  indent-tabs-mode  t)
    (c-set-style  "stroustrup")
;;    (define-key  c++-mode-map  [f3]  'replace-regexp)
)
(put 'scroll-left 'disabled nil)

(defun  my-html-mode()
  (define-key html-mode-map [(return)] 'newline-and-indent)
;;(define-key html-mode-map [(/)] 'indent-according-mode)
)

(add-hook 'html-mode 'my-html-mode)

Category: 未分类 | Tags: emacs
6Dec
30
2008
0

MKV的EBML格式

介绍MKV格式的基础:EMBL

Category: 未分类 | Tags: mkv ebml
4Dec
7
2008
0

Windows Installer 乱码的解决方法

有些人在安装基于 Windows Installer 的软件时会乱码(很不幸我是其中一个),什么 Office 啊都是那样,今天查了一下,原来是AppLocale的问题,只要把Windows安装目录下(一般是C:\Windows)的AppPatch目录下的AppLoc.tmp文件的内容全部删除就行。为防止AppLocale改动它,可以把它设为只读,这样就高枕无忧了

Category: 未分类 | Tags: windows 乱码

© is-Programmer.com All rights reserved. | Power by Chito 1.1.4 | Theme: Aeros 2.0 by TheBuckmaker.com