2012-4-9 12:11 | by 2ndboy
周六是最近头一次全天有饭局的快乐日子,中午在 LP 英语课熟识的同学家吃正宗四川火锅,晚饭在 LP 表哥家品尝了一把表哥的大厨级手艺。基于每周一山的近期计划,今天(周日)我们和 LP 表哥一家一行四人到 Fremont Older Open Space Preserve 去爬山,计划是基于昨晚回家后的简短 Bay Area Hiker 考察,决定去一处有山有水的地方去走走。由于不确定那边是否提供带地图的 guide,我周六晚上根据 Google Maps 手绘了一份地图,结果 LP 说我的简易版地图比公园提供的地图更简明方便哈哈:D
在 South De Anza Blvd 跟 Prospect Road 的交叉口转入 Prospect,沿着 Prospect 一直走到底就可以看到停车场,Bay Area Hiker 上说 Fremont Older Open Space Preserve 的停车场只有大约 15 个车位,但是我们的目测是肯定能停不止 15 辆车,但是也多不到哪里去。如果真的没法停车的话,可以开出去一段路停在一个岔路边上。

跟上周一样,我们也是绕最大圈爬了一趟,路线基本上像个大写 Q,从尾巴进去,逆时针走一圈,再从尾巴出来,在 Q 的左上角位置可以看到一个水库。路线:Hayfield Trail(Q 尾)-> Coyote Ridge Trail -> Loop Trail -> Lookout Trail -> Vista Loop Trail -> Fern Trail -> Coyote Ridge Trail -> Hayfield Trail(Q 尾)。
“Q 尾”段的风景:

不明植物果实,姑且叫它流星锤吧:

远处山坡上某处豪宅边上的马厩和跑马场,有 money 人家呀:

爬山路上我们还路遇一对骑马的母女,马毛刷得锃亮,不错的享受 :)
山里也有关于山狮的警告牌,但我们同样还是没有见到实物,不过路上有很多野兽的脚印:

不知道这个脚印是什么动物留下的,感觉貌似更像狼?另外在林中小路看到一只野兔在我们面前飞快跑过,没来得及拍下来。山上到处可见被土拨鼠推出洞外的新土,估计这些野兔和鼠类可以养活不少猎食它们的天敌。
在路程一半左右的地方拍到的水库一角:

对岸有很多野鸭,还有鹅。我们在此休息,吃带来的苹果,果核是有机物,我们把果核丢在水里的时候竟然把对岸的野鸭吸引过来好多只:

两边漂亮一些的是公鸭,中间褐色的是母鸭。记得前段时间在网上看过,说国人都把鸳鸯看作是爱情的象征,其实野生鸳鸯在失去伴侣后会很快另觅新欢;但是野鸭死掉伴侣却活不成。不过野鸭貌似对苹果不大感兴趣,啄了啄果皮和果核,给我们拍完照后就跑开了,有只公鸭在下坡的时候还拌了一跤,有点意思 :D
跟上周差不多,我们大概上午 10:40 多到,下午 2:30 左右才回到车上,又是 4 个小时。总体感觉 Fremont Older Open Space Preserve 的空间立体感比 Rancho San Antonio County Park 要强一些 ;) 而且因为有水,乐趣也更多些。
回来在 Homestead 路上的大华蜀一蜀二解决温饱问题,除了凉粉不够弹之外,其它菜味道都不错。又是个充实的周末,下周继续!
Posted in Living in US | 7 Comments »
2012-4-2 08:13 | by 2ndboy
在杭州的时候,因为地利不错,所以周末经常跟 LP 一起出去爬山,但是来美国以后一直没找到机会爬山。两周前,跟 LP 一起上课的同学爬山归来后带了一张 Rancho San Antonio County Park and Open Space Preserve 的资料单给我们,刚好同事 KH 给我推荐了一个网站 Bay Area Hiker,所以昨晚研究过地图后打算先到 San Antonio County Park 去走走。
在 280 的 13 号出口下高速,沿着 Foothill 往南走一点点,然后右转到 Cristo Rey Dr 上,在经过一个五路口转盘后再一点点就到了 San Antonio County Park 的门口:

San Antonio County Park 有 5 个小停车场,我们早上大约 10:30 的时候到,车位很多,但是下午 2:30 左右离开的时候已经有很多人在等车位了:)

我们基本上绕最大圈走了一遍 San Antonio County Park(Deer Hollow Farm -> Rogue Valley Trail -> Wildcat Loop Trail -> Upper High Meadow Trail -> PG&E Trail)。刚开始的时候基本上算不上山路,总之是一段非常平缓的路,一直到 Wildcat Loop Trail,景色跟山路才慢慢变得有意思起来:) 公园入口的牌子上写着山上有可能会遇到山狮,不过我们路上只遇到了一只山鸡:

还有一只超大号金黄色蛞蝓,不过因为看起来实在太像排泄物,所以就不贴照片了:D 来张菌类植物照吧:

在 Upper High Meadow Trail 和 PG&E Trail 的某些地方,可以居高临下的看到湾区的大部分地区:

照片上远处的白色物体是 NASA 的机库,再过去就是旧金山湾和湾区东面的山了。美国绿化率非常高,房子又不高,所以照片上近处这个粉红色的社区跟旧金山湾之间貌似是片丛林,其实满是建筑物。
山中一景:

下午 2:30 左右,在山上跋涉了 3 个多小时以后,我们终于回到了停车场。补充了些食物跟水,又休息了一会儿之后才驱车上路。总的来说,Rancho San Antonio County Park 景色不错,一路上有些林荫路段,但大多数还是需要顶着加州阳光前进的。我们的体验是,如果从 PG&E Trail 开始走,顺时针爬的话,挑战性要远大于逆时针爬,不过即便如此,我们还是在山路上遇到了推着那种能坐两个小孩的婴儿车的老外在跑步上山,走的就是顺时针的路线,太强了!
Bay Area Hiker 这个网站不错!争取有计划的把硅谷周边的山都爬一遍,只要膝盖能吃得消:D
Posted in Living in US | No Comments »
2012-3-5 04:06 | by 2ndboy
通常开发和编译 Android 程序都在 Eclipse 里完成,但是这样不太方便对工程做持续集成,而且也不方便对编译过程做些自定义的控制。当然可以在了解 Android 程序完整的编译、打包和签名过程后全部自己用 script 搞定,但更好的方法是用类似 Ant 或者 Maven 这类编译工具来做,Android 对 Ant 支持的不错,官方文档可以参考“Managing Projects from the Command Line”和“Building and Running from the Command Line”。另外还有这篇“Using Ant to Automate Building Android Applications”也非常值得一看,不过由于 Android SDK 的持续更新,里面有些内容已经不再适用,下面就 share 一下我用 Ant 编译 Android 工程的一些过程和心得。
我的工程使用了 ActionBarSherlock 和 ViewPagerTabs(和工程文件夹位于同级目录中。鉴于这两个库实现的效果和质量,他们被使用在同一个工程中的几率还是很高的),已经可以在 Eclipse 里正常编译和运行,为了用 Ant 编译,首先要产生 build.xml 文件,但是在这之前还要做一件事。ViewPagerTabs 引用了 Support Package,而 ActionBarSherlock 自己内含了一份 Support Package 的源码,用 Eclipse 是可以顺利编译的,但是如果不做任何处理的话,用 Ant 编译时就会遇到某 class 已经存在之类的问题。
首先需要删除位于 ViewPagerTabs 的 libs 目录下的 android-support-v4.jar,然后让 ViewPagerTabs 引用 ActionBarSherlock 即可,看起来简单,但是这个问题让我这个从没用过 Ant 的菜鸟折腾了一天才搞定,惭愧惭愧。
生成 build.xml 的步骤如下:
- 进入 ActionBarSherlock 文件夹,执行 android update lib-project –path .
- 进入 ViewPagerTabs 文件夹,执行 android update lib-project –path .
- 进入工程主文件夹,执行 android update project –path .
由于先期已经在 Eclipse 里面做了编译,所以主工程目录中的 project.properties 里已经添加过了对其它库的引用,所以为主工程生成 build.xml 时不需要再加 –package 来添加引用库的位置了。上述命令执行以后,工程目录里多了两个文件:build.xml 和 local.properties。前者对于刚刚接触 Ant 的人来说,信息量比较大,而 local.properties 里面只是简单的记录了 Android SDK 的位置,而且由于这个文件是工具自动生成的,所以不要把它 check in 到版本控制系统里去。
接下来到主工程所在目录执行 ant debug 或者 ant release 就可以顺利编译了。
接下来看看定制 build.xml,上面提到的那篇“Using Ant to Automate Building Android Applications”里面提到的方法其实太过复杂,我们不用把系统 build.xml 里面的内容都复制到本地 build.xml,而是只需要在本地 build.xml 里增加一个 pre-compile 就可以了,增加的内容如下:
- <property file="build.properties" />
- <target name="-pre-compile">
- <copy file="config/Config.java" todir="${source.dir}/com/2ndboy/App" overwrite="true" encoding="utf-8">
- <filterset>
- <filter token="CONFIG.FOO" value="${config.foo}"/>
- </filterset>
- </copy>
- </target>
在主工程目录下新建一个名为 config 的目录,里面有个名为 Config.java 的文件,内容如下:
- public class Config
- {
- public final static boolean freeVersion = @CONFIG.FOO@;
- }
这个 Java 源文件里的 CONFIG.FOO 会被 build.xml 里的新增部分在编译期间用 ${config.foo} 的内容替换掉,而 ${config.foo} 的定义在 build.properties 里面:
Ant 的深入使用又牵扯到一大堆东西,这里只是浅尝辄止而已,学无止境!
Posted in Android | No Comments »
2012-2-9 13:06 | by 2ndboy
记得当初路考结束以后被告知 2 周后可以拿到正式驾照,两周后跟美国同事聊起,同事说两周?两个月还差不多!结果在昨天——路考结束后将近一个月,终于收到了 DMV 寄过来的正式加州驾照。驾照跟银行卡大小一样,背后居然也有磁条,正面刻有个人签名并印有笔试时拍的照片。
最近到了报税季节,虽然过来第一年的报税由跟公司合作的会计事务所负责,但是信息收集等等事情还是比较头大。最近生活上基本安顿了,更新频率明显下降 :)
Posted in Living in US | No Comments »
2012-1-19 06:00 | by 2ndboy
由于某些原因,需要把某 app 的 apk 拿到,装在 PC 上的模拟器里,然后对其网络通讯进行嗅探。开始的想法是在模拟器里装 Android market,然后就可以把 app 下载到模拟器里了,但是跟着网上的 step by step 指南做了 n 遍都未能成功。也许是版本问题?又或许 Google 对这招进行了封堵?此招不成后在用 Google search 过程中找到了另外一种方法,现记录如下:
这个方法需要你有个真机,这里以我手上的 Samsung Galaxy S II(SGH-I777)为例进行说明。首先在真机上打开 market,下载 AppInstaller 这个 app,需要注意的是 market 里有另外一款名字相同,图标也差不多的 app,所以你需要下载由 FunTrigger 出品的 AppInstaller。
然后需要确认你手机的 USB debugging 模式处于关闭状态。具体设置在:Setting、Application、Development。
打开 AppInstaller,切换到 Manage App 页,找到你要扒的 app,长按之,在弹出的菜单里选择 Export 就可以了。
最后用 mini USB 线把 Samsung Galaxy S II 连上 PC 机,我的电脑里会出现一个 SGH-I777 的图标,双击之,在 Phone 下面就会找到刚才导出的那个 app 的 apk 文件了。
拿到 apk 以后,你可以打开模拟器,在命令行下用 adb install foo.apk 把这个 app 安装到模拟器里面。
Posted in Android | No Comments »