SimpleSnake – Hello, Android World

年末了,相对来说工作已经比较清闲,于是趁着机会研究了一下Android的游戏开发,花了一个下午写了这个贪吃蛇的应用。

使用的游戏引擎是libgdx,虽然目前看起来文档比较缺少,但是,最大的好处是可以在Winodows/OSX/Linux上运行,android上则只需要额外几行代码就可以运行,极大的方便了调试和跨平台的工作。

下载apk请点击此处 – simplesnake (必须要800×480的分辨率才可以正常运行,如果大于这个分辨率仍然可以运行但按钮将错位,低于这个分辨率则可能出现奇怪的问题并且按钮缺失,因为只是hello, world,所以也不打算进一步优化各个分辨率了)

另外推荐下libgdx原作者的博客badlogic,以及他写的书:google book豆瓣,像我这样的游戏开发初学者看看挺不错的。

一篇国产PC/Android游戏引擎LGame作者cping1982同学的介绍libgx的科普文章也很值得一看:http://blog.csdn.net/cping1982/article/details/6176191

Parted Magic

近来在朋友送了个512M的小U盘给我,在这文件动辄上G的年代,这小巧的容量显得并不是那么实用,于是一直在考虑到底该拿它来干吗。然后自己公司里面的PC因为是去年安装的kubuntu,当时出于可能仍然还会双系统的考虑,所以分区划分的太小,一年过去了已经渐渐的不堪用起来了,于是开始考虑把还没利用起来的仍然存在的ntfs分区合并入已有的ext4当中。以前做这种事情都是在Windows下面的Acronis Disk Director这个工具,这次打算在Linux下面处理掉这个问题。所以就google到了一个名为Parted Magic的Linux LiveCD发行版,从名字就可以看得出来,这是在模仿曾经的经典的分区软件Norton PartitionMagic的名字。

gparted是这个发行版最核心的应用,此外还提供了testdisk这个非常优秀的恢复软件(我曾经用过它的windows版本恢复过一个彻底被覆盖的分区表),当然还有其他很多和磁盘相关的应用(包括但不限于磁盘检查,磁盘备份,磁盘镜像等等等等等),并且可以使用firefox随时上网查相关的问题。

照着官网的说明,很容易就做成了自启动U盘,通过在gparted约一个小时的折腾(其中主要是因为分区位置变动所以其自动复制几十G数据时的消耗的时间),搞定了相关的问题,觉得此物还是蛮不错的,所以就写了这篇日志。

PS:  开始的时候还担心移动分区的位置可能会导致uuid变动导致grub2无法正常引导的问题,事实证明(操作前后进行了对比)这个是不会发生变化的,所以可以安心使用移动分区位置的功能(当然还是要小心操作啦~丢了数据还是伤不起的 = 。 =)

convmv – Linux下修改文件名编码

今天在公司tar打包一些编码为GBK的中文文件名的文件时打包碰到的问题。我自己的locale是en_US.UTF8,那台主机的环境是zh_CN.GBK,因此tar不管怎么打包,都会使文件名出现问题。而如果采用7z打包,虽然可以解决乱码问题(7z会记录下文件名的编码),但会丢失文件属性,所以不打算采用。

google了下发现可以通过convmv来进行解决:

convmv -f GBK -t UTF8 -r --notest target

其中-f是源编码,-t是目标编码,-r是递归处理目录,–notest是不移动,实际上对文件进行改名(actually do rename the files),target是目标目录。其余参数可以参考man或者-h。

另外一个方案是google到了一个python脚本,通过python的tarfile包解决问题,感兴趣的可以看看这个link: http://superuser.com/questions/60379/linux-zip-tgz-filenames-encoding-problem

DoubanFM-CLI

嗯……一直想在Linux下面搞个好使的豆瓣FM客户端好在工作时听听(不然要专门开个浏览器),于是google了下找到了这个,于是什么桌面客户端之类的弱爆了啊,这个才是Geeker听音乐的方式 = 。 =

东西是Python写的,代码短小精干,也可以自己研究下

github: https://github.com/zhendi/DoubanFM-CLI

作者豆瓣: http://www.douban.com/people/KaKa9527/

fbterm—支持freetype2字体库的帧缓冲终端控制台

http://code.google.com/p/fbterm/

继续来推荐Linux下面的software,这是最近发现的好物,fbterm,可以在帧缓冲的终端控制台下提供中文显示的支持,并且也能支持输入法,比起那个已经数年没有更新的zhcon好多了(zhcon也容易导致没有响应或有奇怪的问题)。更重要的是,它的字体显示是调用freetype2的,所以能和X下面的GUI应用达到相同的字体显示效果,看着文泉驿非常舒服~

Read the rest of this entry >>

推荐下mintty

没啥好说的,cmd.exe太挫了,找到了这个mintty用来替换之,非常不错,对于CLI一直很薄弱的windows来说已经觉得很满意了。

项目似乎是基于putty的,推荐给那些整天Unix世界(Linux/BSD/OSX)和Windows世界来回奔波的geeker们(伤不起啊有木有!!!)

Mac OSX 十周年

好久没来更新了(怎么感觉最近几篇的博客的第一句话都是这个…………)连续的加班,各种忙碌……好在最近忙的这个项目终于算是快到头了。

看google reader发现engadget上一条新闻是昨天(3月24日)是Mac OSX这个神奇的OS发售的十周年,于是就来感慨下。

Read the rest of this entry >>

我的KDE4不可能这么华丽

呃,想了半天脑子里面还是跳出这个标题……也罢,这个就这个吧,囧 (另一个候选是“关于我的桌面的二三事”……呃……

在公司里去年11月的时候把90%的工作转向了Linux下面(偶尔要用下photoshop或者改下老项目的代码则不得不重启到windows xp),选择了一直最顺手的发行版也就是ubuntu(因为一直是kde用户,所以是直接kubuntu了),一开始装的是10.04,后来直接apt升级到了10.10。

几个月下来一直用的还算蛮顺手的,不过还是主要得益于去年11月的时候有一个项目比较空档的时候,所以能有比较多的时间来调教和熟悉KDE4(KDE1.x-KDE2.x-KDE3.x的时代一直很顺手),没有调教过的kubuntu的KDE4总觉得怪怪的,不如ubuntu的gnome那样精致。

那么记录几条算是心得的东西:

Read the rest of this entry >>

wget使用ssh socks代理

在apt自动调用wget下载http://archive.canonical.com/上的一个二进制文件的时候遇到了一个问题,那就是速度太慢,然而wget又无法直接指定ssh通道建立的socks代理服务器,于是google来了这个方法解决了这个问题。
wget不支持socks代理而仅支持http/https/ftp代理,而有时候又只有ssh可以用,这时候这个两部即可完成的技巧就很管用:

  1. 用ssh的-L参数指定一个端口到目标服务器的SSH Tunnel
  2. 将wget的http代理设置为localhost的对应端口,并增加一个http header

实际操作,指定端口转发到目标服务器,并和ssh服务器建立连接:

ssh -L 8888:[要访问的服务器IP]:[服务器HTTP端口] [ssh服务器地址]

使用wget时则需要:

wget -header="Host: [要访问的服务器IP]:[服务器HTTP端口]" http://localhost:8888/[文件路径]

如果是apt那种应用环境自动调用的wget,则可以在/etc/wgetrc里面修改参数,加入

header = Host: [要访问的服务器IP]:[服务器HTTP端口]
http_proxy = http://localhost:8888/

putty自动登录ssh服务器

ssh真是个好东西,自从开始用VPS以来,自己再也没有为翻墙的事情发愁过,就因为ssh本身就是很优秀的socks代理服务器。

不过putty一点总让人觉得有点郁闷,就是它不支持自动登录(当然了,从安全角度来说,自动登录这种功能是一个隐患),但自己用着多了还是会觉得有点不爽,google了一下网上已经介绍了利用RSA密匙对的方法,但是在照着做的过程中走了一些弯路,因此还是记录一下。

首先,使用puttygen(可以从putty官网获取)生成一个密匙配对,这个很简单,就是点击一下puttygen的Generate然后乱晃一阵子鼠标。然后接下来,我看到的几篇文章都说的是要保存Public Key,然后将Public Key的文件的内容放到服务器的~/.ssh/authorized_keys2这个文件下面去,其实不然,实际上服务器~/.ssh/authorized_keys2内要放的是puttygen生成了Public Key后,里面的Public Key文本框中的内容(单行的,和保存后的Public Key多行的有所不同)。再在puttygen的窗口内保存Private Key为一个文件,放到安全的地方。

接下去就是设置putty,在Connection->SSH->Auth栏目中设置刚才保存的Private Key的文件,然后在Connection->Data栏目中设置登录的用户名,然后回到Session栏目保存这个Session就行了。如果需要从任务栏通知区域快速启动putty,可以使用putty自带的pagent。

要留意的一点是服务器的sshd的配置,/etc/ssh/ssh_config内的protocol一行要和puttygen下面选择的一致,以及密匙长度(ServerKeyBits)也需要一致化。

Read the rest of this entry >>

Page 1 of 212