Author: root

  • Hello, My Android(二)

    接下来,我们继续看属于LinearLayout的子控件的两个控件:TextView和Button。有关Android界面中可以用到的Widget有哪些我会在以后再描述。

    ===================

    (more…)

  • Wall~~~~~~E

    和老彼得,和老彼得、LP看了两次Wall·E。

    你当然不能把这本片子当做科幻片来看。一则是它所反应的地球上的垃圾问题很现实;二则是因为很多情节也不能认真的去推敲。

    你当然更不能把这本片子当做爱情文艺片来看,不能当做战争片、惊悚片、音乐片(虽然片中出现的Hello Dolly以及Armstrong演唱的La Vie En Rose,以及Wall·E和Eva在Axiom舱外太空中的双人舞都很优美)……甚至不能当做动画片来看(因为我觉得Pixar能把3D做到这个程度,这样的片子已经和在摄影棚里用胶片拍出来的片子没有什么区别,甚至更出色了……)

    (more…)

  • 暴风影音=流氓软件?

    我,一直很喜欢用暴风影音,但是我今天要说的是:最新版本的暴风影音真TMD是个流氓软件……

    首先,升级在我毫不知情的情况下进行,我发现了新的界面时还着实吃了一惊……

    其次,在没有任何用户干预的情况下,程序自动保持“不退出”,也就是说,我点那个X想关闭暴风影音的结果只是它被最小化到系统托盘;

    第三,最为令人发指的,就是会自作主张的搜索任何“移动媒体”上的影音文件!我的移动媒体实在太多,别的不说,长期作为准固定媒体挂着的移动媒体就有映射到我的SC101上的两个盘符!这两个盘中当然有多媒体文件!于是暴风影音就开始自觉的帮我搜索这两个盘上的影音文件!拜托,我要放影片的时候会通知你,OK?你不要试图做一个影音文件管理程序,好不好?而且,它在搜索我Z盘(通过Samba映射到2F服务器的某个目录)的时候,将我的2F服务器整个弄到瘫痪!

    第四,我想在程序设置中关闭这个功能,但是我没有找到……残念……

    这样的用户体验,实在让我寒心……

  • Hello, My Android!(一)

    我想,部分是受到了山寨机也即将支持Android的鼓舞,最近我下载了一套Eclipse Ganymede+Android SDK,开始看看在这套著名的API下开发Android应用会是怎样的体验。 不是说以前没有尝试过开发手机下的应用。比如,在我04年用Palm的时候,06年用WM的时候,08年用Symbian的时候……不过都可耻滴放弃了:

    • 放弃Palm是因为它的开发理念和我习惯的事件驱动相差实在太远;
    • 放弃WM是因为那时(包括现在)很BSMS;
    • 放弃Symbian是因为我有一个朋友开的公司将Symbian开发做到了极致,我肯定超不过他的水平……

    好吧,让我来看看Android……

    ===================

    当然,如何设置ADT(Android Eclipse Plugin)我就不说了(什么,你不知道怎么玩Eclipse?这个这个……);怎么用Wizard来创建基本的框架我也不多说了。我只说说接下来我做的事情。 首先,我先创建了一个Run的配置,然后就开始运行。Android模拟器顺利的启动了,新创建的项目也顺利执行。然后我开始看整个项目的结构:

    HelloMyAndroid
    ├─assets
    ├─bin
    │  └─com
    │      └─android
    │          └─tr
    │              └─testcase
    ├─res
    │  ├─drawable
    │  ├─layout
    │  └─values
    └─src
        └─com
            └─android
                └─tr
                    └─testcase

    在这个结构中:

    • assets目录目前是空的,我也暂时先不管这个目录派什么用场。不过从英文名可以推测是放置一些“有用的东西”;
    • bin目录下有三个文件:classes.dex, HelloMyAndroid.apk, resources.ap_。根据说明,这个apk文件就是以后安装应用程序到手机上时需要使用的打包文件;
    • bin目录下还有一个很深的目录结构,它其实代表了我创建这个程序时所选择的包:com.android.tr.testcase。在testcase目录下是编译好的class文件。
    • res目录下给出了Android程序中最常用的三种资源:drawable,layout,values。在drawable目录中只有一个icon.png,这个图标会成为我们程序的图标;layout目录中目前只有一个main.xml,在这个xml文件中,描述了程序界面——应该说,用xml描述界面没有什么不对的,但是如果没有一个GUI来辅助用户设计界面是8HD的;values目录中有一个strings.xml文件,这里保存着程序中使用到的字符串(你当然可以选择不用这种方式来保存、使用字符串,但是会失去i18n的灵活性)。
    • src目录下,又是一个对应于我开发这个程序时所选择的包的路径。在testcase目录下,有两个文件:一个是HelloMyAndroid.java,一个是R.java。前者当然是我编写的源文件,而后者是根据res目录中资源的情况自动生成的一个资源-ID对照表。

    =================

    由于我准备在一个很常规的Hello World程序中增加一些新东西,所以我第一步就开始修改界面。为此,我修改了res/layout/main.xml:

    <?xml version=1.0 encoding=utf-8?>
    <LinearLayout xmlns:android=http://schemas.android.com/apk/res/android
                        android:orientation=vertical
                        android:layout_width=fill_parent
                        android:layout_height=fill_parent
    >
        <TextView
            android:id=@+id/lblHello
            android:layout_width=fill_parent
            android:layout_height=wrap_content
            android:text=@string/hello
        />
        <Button
            android:id=@+id/btnClickMe
            android:layout_width=fill_parent
            android:layout_height=wrap_content
            android:text=@string/btn_click_me
        />
    </LinearLayout>

    我选择使用LinearLayout来线性安排我的控件(在Android中称为“Widget”),而android:orientation=vertical表示这个布局将是竖直方向的;android:layout_width=fill_parentandroid:layout_height=fill_parent表示这个布局的宽度、高度都将填充整个父控件的空间(这里就是整个屏幕)。 (未完待续)

  • Old Stable vs New Buggy

    最近的电脑很不稳定!很不稳定!!

    每次在我认真的打P聊天BT的时候,蓝屏!蓝屏!!

    =========

    (more…)

  • License your work

    猛禽在他的BLOG里针对煎蛋的放弃CC的协议进行了一段评论(原文连接)。文中提到了这么一段:

    跟煎蛋那些连协议是怎么回事都不理解的人真是没什么好讨论的,改叫扯蛋算了。

    我突然想到,我这里(两块内容:BLOG部分和非BLOG部分)一直也没有很好的定义一个我的授权类型。虽然耳濡目染的知道CC, (L)GPL, Apache……这样的名词,但是却从来没有认真的去看一下这些协议的内容——部分是被其臃肿的法律文件给吓坏了……

    今天既然CC被搬上了台面,我就下决心仔细看看关于CC协议的内容。

    (more…)

  • 【游记】第10天:泸沽湖-丽江-上海

    好了,旅程即将结束,我们也要回家了……

    ==========

    10月25日一早,我们从泸沽湖出发一路赶回丽江。这将近9个小时的路程实在是很头痛。

    到丽江后立刻赶到银器店,然后迅速而彻底的采购了很多东西。当晚,我们搭乘所谓的红眼航班到了成都,随便找了个旅馆住下,次日一早再飞往浦东。

    10月26中午时分,我们终于踏上了熟悉的土地。

    这一次的度假在GR同学的正确领导下、精心准备下,在TR的充分配合下取得了圆满的成功!

    请众BT向肾上、肾后表示祝贺!

  • 【游记】第9天:泸沽湖

    10月24日,旅程的第九天,接近尾声的一天。

    一早划船出发去了神女峰。湖面很平静,没有候鸟。但是有两颗情人树突兀滴杵在了岸边:

    [![情人树](http://www.rsywx.net/wordpress/wp-content/uploads/2008/11/neo_img_img_29171-300×199.jpg “neo_img_img_2917”)](http://www.rsywx.net/wordpress/wp-content/uploads/2008/11/neo_img_img_291711.jpg)
    情人树\

    上格姆女神峰可以坐索道,索道很长,落差也很大的说:

    (more…)

  • PHP创建Excel文件

    【本文收录于Go4Pro.org】 在我的任氏有无轩页面中,有一个专门记载湖人比赛情况的页面。随着NBA 08-09赛季的开幕,这个页面就开始频繁的更新了。

    在之前的改版中,我已经将这个页面用Smarty页面重新改写了,这次是要为其加入导出比赛情况到Excel文件的功能。

    211103注:本页面已经全面改写。

    ============

    我使用的后台库是PEAR类库中的Spreadsheet_Excel_Writer。安装了PEAR的用户都可以用以下命令安装这个库:

    pear install --onlyreqdeps Spreadsheet_Excel_Writer-beta

    PEAR还是很方便的。在我的PHP环境中,这个库将安装在<PHP install dir>/PEAR/Spreadsheet下。我习惯将<PHP install dir>/PEAR加入到我的PHP包含路径中去,这样在引用包含文件时可以省力一些。

    ==========

    获取来自数据库的内容等操作就不再赘述,只讲针对Excel导出的部分:

    require_once(Spreadsheet/Excel/Writer.php);
    $sdate=date(Y-m-d, strtotime($_POST['sYear'].-.$_POST['sMonth'].-.$_POST['sDay']));
    $edate=date(Y-m-d, strtotime($_POST['eYear'].-.$_POST['eMonth'].-.$_POST['eDay']));
    $rows=getGames($sdate, $edate);
    $wb=new Spreadsheet_Excel_Writer();
    $wb->send(Laker Games.xls);
    $ws=&$wb->addWorksheet(Games_Summary);
    $f_title=&$wb->addFormat(array('bold'=>true,
                                   'Align'=>'center',
                                   'Color'=>'blue',
                                   'FgColor'=>'yellow'));
    $ws->write(0,0, Game Sequence, $f_title);
    $ws->write(0,1, Date Played, $f_title);
    $ws->write(0,2, Teams, $f_title);
    $ws->write(0,3, Score, $f_title);
    $ws->write(0,4, Win/Lose, $f_title);
    $ws->write(0,5, Remarks, $f_title);
    $rowid=1;
    foreach ($rows as $game)
    {
        $ws->write($rowid,0, $game['seq']);
        $ws->write($rowid,1, $game['date']);
        $ws->write($rowid,2, $game['team']);
        $ws->write($rowid,3, $game['score']);
        $ws->write($rowid,4, $game['win']);
        $ws->write($rowid,5, iconv('utf-8', 'gb18030', $game['note']));
        $rowid++;
    }
    $wb->close();

    ==================

    大部分代码是自明的。不做太多的说明,结合PEAR关于Spreadsheet_Excel_Writer的文档,应该很容易知道各行代码的作用。

    值得注意的是,以上的代码无法在XAJAX的环境下执行。我猜想,原因在于send函数:

    function send($filename)
    {
            header(Content-type: application/vnd.ms-excel);
            header(Content-Disposition: attachment; filename=$filename);
            header(Expires: 0);
            header(Cache-Control: must-revalidate, post-check=0,pre-check=0);
            header(Pragma: public);
    }

    在这个函数中,Writer用header的方式来“欺骗”浏览器,表明将要输出的内容是一个Excel的表格文件。我认为,正是这个HEAD信息破坏了XAJAX(即AJAX)所维系的头信息,造成该函数无法在XAJAX的环境下运行(但是也不出错……)。

    Writer并没有提供一个独立的将生成的Excel内容保存起来的函数,有时间、有精力的话在这个方面加以改进应该是不错的。

  • 经济萧条时期最好的11个免费软件

    原文链接:http://www.download.com/2300-2001_4-31.html?tag=mncol;txt 括号内是其可以替换的软件和节省的费用。

    1. OpenOffice(Microsoft Office Home Edition,$150或者¥199)

    这个我早就一直在用,但是一直没有“正规”的用。关键的问题是,缺少一个Outlook的替代品。当我的PST文件已经以G来计量的时候,如何能保证我的email、联系人、约会、事项等东东能无缝、快速的迁移到新的PIM中,是我在舍弃Office之前必须考虑的一个重大问题。另外,与手持设备之间的同步,也是我必须考虑的问题。在这两个问题得到解决之前,OOO(以及其它所有Office替代软件)还不会被我“正规”应用。

    国内已经有了相应的软件,如WPS Office永中Office等。

    2. GIMP(Photoshop,$100)

    不得不说,我个人对图像编辑还是没有什么专长。而我现在所使用的图形相关的软件有两个。一个是Picasa,一个是“光影魔术手”。

    3. KompoZer, Inkscape, PrimoPDF, Synfig Studio, Jahshanka (Adobe Creative Suite, $200-$2000)

    这个我还没有仔细看。我个人并不是网页、Flash设计的高手。而我现在的开发工具,大都是正版的(也就是说,我是付钱了的),如PHPEDStylizer

    4. AVG Anti-Virus Free Edition; Avira AntiVir Personal Free Antivirus (Norton,McAfee,$40)

    我比较喜欢用免费的AVAST,我觉得更好。

    5. CamStudioCamtasia Studio,$300)

    嗯,我还没有好好用这个功能。目前还想不到什么急需的应用。

    6. Gadwin PrintScreenSnagIt 9,$50)

    哈哈,这个我在用。很不错!只是捕捉的选项比较少,不能连续捕捉。不过,对于免费软件,而且对于我这样一个不是抓图狂的人来说,够用了。

    7. 7-Zip**WinRAR, WinZip,$30)**

    我装了7-Zip,但是用的不多。我经常用的Total Commander还没有集成7-zip,所以我一般是用TC里内置的Alt-F5进行压缩(生成zip)的方式。

    8. ToneThis(你手机的铃音商店,iTunes商店等,**每首歌1美元左右)**

    我是一个很少更换手机铃音的人。而且在国内,铃音可以通过大量免费的MP3获得。

    9. IOBit Smart DefragDiskeeper,$30)

    我用的是另外一个免费的版本,AusLogics Disk Defrag的产品,速度非常快!

    10. BurnAware Free, Ashampoo Burning Studio FreeNero,$80)

    很抱歉,我现在很少刻CD了……

    11. FolderShareSugarSync,$25或更多)

    其实,我很讨厌用这些远程的工具。现在我进行文件的同步,其实都是借助SVN的说……