@shellex说: RT : 喵喵喵? RT : 喵喵

Pages

Topics

随便看看

路边社评论员

  • pete:
    I prefer my iphone 4. My best friend got N900 (Nok... »
  • Keith:
    还能用不. »
  • deepblue:
    测试一下浏览器和系统 »
  • abettor:
    “就和CPU特权级别一样”——这的哥难道是Linus的表弟?! »
  • 董英男:
    为什么总提示确认是相册首页呢 到底哪个才是相册首页啊 »
  • kendisk:
    作为一个轻度Linuxer,刚分手后,感觉木有鸭梨。 »
  • MS IE:
    THIS SITE REALLY SUCK! »
  • Alex:
    gnome-women... »
  • liangsuilong:
    GNOME 自己也有鼓励女性参与项目的计划啊.. »
  • infinte:
    对不起,你的“解ban”版本算得有点问题,可以下(9)pp4 测试。ACID3可有95分啊……另外同... »
  • Alex:
    »
  • Randee Saadat:
    Glad you solved your problem, but what is your que... »

Posts Tagged ‘linux’

如何让试用版程序永不过期

[声明:本文仅供学术研究使用,涉及所有源码按照GPLv3发布,非法使用的后果由使用者自己承担,作者已经相关文章作者不负任何责任]
即使在Linux上,我们有的时候还是不得不使用一些商业收费软件。而这些软件很多只提供了有时间限制的试用版本,试用期过后还想使用的话,要么重新安装,要么去购买使用许可。
对于一个熟练的Cracker或者一个牛B的Hacker来说呢,以稍微破坏一下法律的权威的代价获得一个没有限制的版本并不算太困难。下面提供的两个方法可以在不逆向软件的前提下,在user level做到,适合我等对汇编不感冒的同学使用。
You Xu同学曾通过ptrace的方式拦截时间相关的系统调用,返回一个假的时间来使得这些试用版程序误以为自己还没有过期,从而可以达到这个永远使用该试用版本软件的目的。我先简述他的方法,然后再提供另一个方法。
现在不妨假设存在这么一个程序,以试用期的方式来限制使用。这个程序通过调用time和gettimeofday来获取时间并且加以比较:

#include
#include
#include

int main(){
time_t now;
time(&now);

struct timeval tv;
gettimeofday(&tv, NULL);

printf(“Now 1 : %s”, asctime(localtime(&now)));
printf(“Now 2 : %s”, asctime(localtime(&tv.tv_sec)));

// you can compare time here…
[...]

Gnome-Do 0.8好样的

Shellex曾经在这篇文章中提到Gnome-Do是Shellex唯一喜爱的C#程序。
前端时间,崭新的Gnome-Do 0.8终于发布鸟,携Docky新主题以及一大堆插件。于是我的Avant-Windows-Navigator正式下岗了,TiwtterFox半正式下岗了。
更多更新信息:
http://do.davebsd.com/release.shtml

怎么安装呢?我懒得自己编译哦。去PPA看看就知道了。对于Intrepid来说:

deb http://ppa.launchpad.net/do-core/ppa/ubuntu intrepid main

对了,这个版本的Do还支持中文——其实对我不是很有用啦,因为我的Local是en的。

用InkScape打造玻璃风格Logo

TualatriX 同学觉得我的Logo很赞,所以想知道怎么做的。我一听就高兴了,一高兴就做了一个视频:用InkScape打造玻璃风格Logo。看看下面是最后成品,一个透明一个不透明,不过使用IE 的同学可能看不到:
由于不知道TX同学喜欢哪种风格,所以选了个手法比较普遍的玻璃风格,哈哈哈,下面是视频:

Shellex从来没看过InkScape的教程和文档,有的操作可能不规范。不过只要效果在就可以咯…对吧。
同时奉上svg源文件和png文件:
http://www.box.net/shared/6nj431ace7

在Linux上将RTS进行到底

Linux上的游戏虽然很多,但是RTS游戏屈指可数,3D的RTS游戏更加屈指可数。不过还好,这些3D的即时战略游戏都做得颇有特色。今天我们不说Wine的魔兽星际红警家园,下面给大家介绍两个Native的Linux RTS Game。
Glest:

Glest是一款免费的3D即使战略游戏。你可以控制两个完全不同的阵营:

Tech派,拥有传统意义上的中世纪战士和战争机器组成的军队,女巫仲裁计划的发起方。除了传统的冷兵器军队(步兵/弓弩/骑兵等),还有蒸汽朋克式的高科技部队(扑翼飞机/飞艇/战斗机甲/弩炮),当然咯,科技的力量来源于工程师;
Magic派,拥有帅呆的魔法师和召唤来的各种魔法生物组成的军队,当然了,魔法师是不玩白刃战的。魔法师和召唤师显然是Magic部队的核心力量,而魔法师要从魔法学徒开始修炼,达到战斗法师,然后是大法师;至于召唤师和魔法师有能力制造各种各样的恶魔、鬼魂盔甲、岩石傀儡、柳编牛头人,乃至最高等级的魔法生物:龙。

实际上Glest 团队带给我们的不仅仅是一部游戏,还给我们一套完整的游戏引擎,所以有不少Glest的Mod。
当前的Glest版本为3.1.2,拥有Windows/Linux/Mac全平台运行的能力。拥有多种难度的AI系统,支持联网对战或者合作战役,完整的科技树和多彩的战术组合。
截图:http://glest.org/en/gallery-screenshots.php
官方网站:http://glest.org/
下载:http://glest.org/en/downloads.php
WarZone 2100:

Warzone 2100 是一款3D即使战略游戏。游戏的背景是未来的地球。开源给这款曾经的商业游戏带来了新活力。
和所有的RTS游戏一样,你需要采集资源,保护基地,发展科技,干掉敌人。这些都没什么好说的。Warzone2100的NB之处在于,它的科技树非常非常非常非常的庞大。看到这么多“非常”,你应该明确地了解我的感受。原因是什么呢,因为啊,所有的单位——不管是作战单位还是非作战单位——都是由玩家自己拼装出来的。
我靠,D-I-Y!DIY是什么感觉?我想geeker们最喜欢这样的感觉了。
哪个哪个底盘配哪个哪个引擎,你要牺牲速度还是装甲?你需要跨越沼泽的气垫还是需要飞跃峡谷的垂直起降设备?
哪个哪个底盘配哪个哪个炮塔,你需要天使长火箭矩阵还是地狱风暴自动火炮?
特点:

400多种科技可供研究
2,000多种组合单位可以设计。
3场战役需待您的征服。
24个快速任务地图供你上手。
跨平台的联网作战能力
帅呆的AI系统

截图:http://wz2100.net/screenshots
官方网站:http://wz2100.net/
下载:http://wz2100.net/download

Gnome Do,不必知道它在哪,请说出你要什么

就像Flex,SL这样的纯种RIA们目前还远远无法消除Ajax这种顶极Hack技术的影响;语义网(Semantic Web)这个98年提出的老概念现在仍然没有像样的实现,相应地基于传统技术的方法反而能大行其道。Shellex认为,相对于一个还在孕育的理论模型,一个良好的交互设计更早地获得了成功。
比如Mac上的QuickSilver,Linux上的Gnome Do和Katapult,Windows上的Launchy(貌似没见多少同学知道这个东东)。
使用了两周以后,Shellex已经彻底消除了对Gnome Do,这个moon程序的偏见,这也是Shellex使用的唯一一个Moon程序。必须说,让它常驻内存是很有价值的,对得起它标榜的口号:
一个超NB的,性感的,桌面环境支配者!

Gnome Do完美地效仿了Mac上QuickSilver的优雅。虽然它占用了50M的内存,但是它减少了50%无聊操作。它可不仅仅是一个启动器或者搜索工具!看看Shellex都用它来干什么:

用Rhythmbox播放Maroon 5的专辑,定位到Track #2
把心情更新到Twitter
检索我的Gmail联系人和Pidgin联系人,给他们发邮件或者聊天。
定位X-Naja的源文件,然后决定是用vim编辑它或是放到DropBox网盘里去

需要多少次鼠标点点点?聪明点吧,这一切只需要召唤出Gnome Do然后轻敲几下键盘即可。
“请说出你要什么”,Gnome Do说;于是Shellex可以像一个大巫一样默念咒语,Gnome Do立刻点头通晓,顷刻完成。
关于Gnome Do的一些Tips:

第一次使用前别忘了在首选项中勾选你喜欢的插件。
使用Super+Space召唤出Gnome Do,使用Tab在横向备选项中切换,使用上下键在纵向备选项中切换,使用回车下达命令。

今天挖掘到两个趁手的语句

via: Python-cn
很帅。
1. 和朋友共享局域网内的文件:
python -mSimpleHTTPServer
记得以前还煞费苦心想自己用SocketServer写一个…完全没有必要.
2. 快速发送邮件以及附件
稍微配置一下mutt,然后写一个小脚本叫sendfile,内容如下
#!/bin/bash
if [ $# -lt 2 ]
then
echo “usage:”
echo ” $0 [Email Addr] [Content] ”
exit
fi

files=”"
if [ $# -gt 2 ]
then
count=0
for param in $@
[...]

续上篇,Ubuntu 8.10 Intrepid ibex问题解决方案

由于我是从hardy升级上来的,所以我遇到的问题全新安装的要多一些。所以我在这里写下一些之后陆续遇到的问题。
上篇:升级到Ubuntu 8.10,是有史以来问题最多的一次
4. 无法自动挂载移动设备
插入USB设备没有反应。我还以为是内核的问题呢,然后看看lsusb,成功识别;再看看/dev/sd*,成功识别。手工挂载当然可以了,但是gnome volume manager死到哪里去了?好吧,我看看….虽然依赖还在,但是貌似被gnome-mount这个包代替了。去新立得重新安装这两个包就行了。
apt://gnome-mount
apt://gnome-volume-manager
5. Flash,以及某些游戏乱码。
这个和hardy的解决方案一样。自己去google搜索: Ubuntu Flash乱码
嗯。目前就发现这么些。由于我是Intel集成显卡,所以很多在显示驱动方面可能出现的问题在我的机器上都不会出现的。所以也许您升级会遇到更多的困难。
但是我仍然建议大家升级,每6个月重装一次没什么意思,当然了,如果用的是gentoo之类发行版的同学永远不会有发行版升级的烦恼(取而代之的是别的麻烦)。
总的来说,克服了这些困难,8.10始终比8.04强。gnome套件的增强是我最感兴趣的。而Compiz的重构,使我的GUI响应也有提升(感官感觉)。还是不错的。

升级到Ubuntu 8.10,是有史以来问题最多的一次

我不着急不着急,等发布了好几天才悠然地动手升级到Intrepid ibex。Shellex可不是一个爱做小白的人。
谁知道这次的问题是有史以来最多最不爽的(最不利于新手解决的)。哎哎…你们这帮开发者哈…
好了,现在听我一一道来。
1. 网络管理器的Bug。
这个Bug非常非常非常非常严重(至少在我这里是这样的)。最初发布之前看各种资讯站说此版本的Network Manager 非常NB,有加强了无线管理又加强了DSL拨号云云。但是对最最最最最普通的有线连接就是不行。
默认有一个连接,是升级时的网络环境的配置,删不掉也无法修改,提示ifupdown – connection delete not supported (read-only).。而别的配置全没有了。NND。老子手工去看/etc/network/interfaces,手工改,总行了吧。
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
#iface lo inet loopback
iface eth0 inet static
address 192.168.1.104
netmask 255.255.255.0
gateway 192.168.1.1
#iface eth0 inet static
#address 222.27.106.253
#netmask 255.255.255.0
#gateway 222.27.106.1
auto eth0
我注释了它删不掉的条目,然后手工添加。完事了sudo /etc/init.d/networking restart
看上去不是很复杂是不是?但是如果你是新手呢?Ubuntu离开了网络P都不是。不管出于什么原因,这样的Bug当然是非常非常非常非常严重的。该bug还有别的描述(via: https://bugs.launchpad.net/ubuntu/+source/network-manager-applet/+bug/281687),所谓的设置无法保存,我猜是类似的原因导致的,所以让我们放弃这个半调子Network [...]

用DropBox同步/分享你的文件

感谢Rod Ren同学的投递:
“试试这个分享功能怎么样?”Rod同学给我传文件。
我看一眼链接:“是个文件分享服务咩?”
“嗯。最好的就是它可以同步硬盘里面的文件”Rod说。
“需要插件吧?”我闷闷地说。
“是啊。”Rod说。
“那我估计没法用了,一定不支持Linux。”我说。
事实上,我错了。我去dropbox的网站看过以后…
(21时56分48秒) ShellEx: 赞。支持全操作系统平台
(22时00分05秒) Rod–(I hate mosquitoes!): 你说dropbox?
(22时00分15秒) ShellEx: 嗯
(22时00分27秒) Rod–(I hate mosquitoes!): 同步功能很好用
(22时00分34秒) ShellEx: 速度如何
(22时00分44秒) Rod–(I hate mosquitoes!): 一般
(22时00分52秒) ShellEx: er…
(22时01分20秒) Rod–(I hate mosquitoes!): 但是操作很方便,不是”上传”,拖到共享文件夹就不用管了
(22时01分36秒) ShellEx: 那很好:)
怎么样,不错吧。在Linux下的表现是一个nautilus plug-in,在你的主目录下生成一个虚拟的目录 (错了,不是虚拟目录,这个目录是占用存储空间的),把需要同步上传的东西往里放就OK了。
>>> https://www.getdropbox.com/ <<<
安装下载教程什么的,猛击上面的链接。

HowTo: Ubuntu下配置Tomcat6

注意,这个流程的配置部分不是为服务器准备的。我的是开发用的工作站。
当然了,之前得装Sun JDK。Ubuntu 8.04 hardy源里就有,懒人直接点下面:
apt://sun-java6-jdk
Ubuntu 8.04 hardy源里也有Tomcat,但是太老了。当然你要愿意用这个老处女的话也不是不可以,点一下下面的链接就OK:
apt://tomcat5.5
我直接去Apache Tomcat的下载页面下好了。
解压出来一个文件夹,改名叫tomcat6。Alt+f2召唤出运行对话框,对它说
gksu nautilus
意思是说,给哥使用root权限启动鹦鹉螺。
按照个人喜好,我把复制到/usr/local/share/
然后
cd /usr/local/share/tomcat6/bin
sh startup.sh
终端里猫咪抱怨:
Using CATALINA_BASE:   /usr/local/share/tomcat6
Using CATALINA_HOME:   /usr/local/share/tomcat6
Using CATALINA_TMPDIR: /usr/local/share/tomcat6/temp
Using JRE_HOME:       /usr/lib/jvm/java-6-sun
touch: 无法 touch “/usr/local/share/tomcat6/logs/catalina.out”: Permission denied
./catalina.sh: 357: cannot create /usr/local/share/tomcat6/logs/catalina.out: Permission denied
没有权限写log。
意思是没有权限写logs
用chmod 777  ../logs 给个完全权限,反正是工作站我就不做严格访问控制了,然后再sh startup.sh
终端提示:
Using CATALINA_BASE:   /usr/local/share/tomcat6
Using CATALINA_HOME:   /usr/local/share/tomcat6
Using CATALINA_TMPDIR: /usr/local/share/tomcat6/temp
Using JRE_HOME:       /usr/lib/jvm/java-6-sun
就没问题了。
然后修改配置文件,用vim打开/usr/local/share/tomcat6/conf/server.xml,把默认的虚拟主机修改成下面这样:

[...]

Page 4 of 6123456