import java.awt.GraphicsEnvironment; public class ListJavaFonts { public static void main(String[] args) { String fonts[] = GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames(); for ( int i = 0; i < fonts.length; i++ ) { System.out.println(fonts[i]); } } }
列出 Java 环境可用的所有字体名称
五月 11th, 2011getResource().getPath()返回的路径空格变成了 %20
五月 10th, 2011最近我们有一个 web 程序,为了取到配置文件的路径,采用了
this.getClass().getResource(“/”).getPath()
的方法来取得存放 class 的物理路径。本来测试的时候没问题,一发布崩溃掉了。究其原因是发布环境的 Tomcat 的安装目录带有空格,而 getPath 的返回值把空格给转换成了 “%20”。经过一番调查,原来是这是 Java 的一个历史悠久的 bug:
Bug ID: 4466485 getClass( ).getResource( ).getFile( ) returns file name with %20
此 bug 于 2001年6月被提出来,2002年11月最终关闭。
没有修复的原因是这样做会导致兼容性问题。
官方给出的解决方法是采用URI类再把它解码出来。
URI uri = new URI(url.toString()); FileInputStream fis = new FileInputStream(uri.getPath());
而这个bug是当初为了修复另一个 bug 的时候引入的:
Bug ID: 4359123 NoClassDefFoundError if ‘#’ anywhere in path。
我们最终决定不用这个拐弯抹角的方法,干脆采用下面几种办法直接取得 Stream。
ClassLoader.getResourceAsStream ("some/pkg/resource.properties"); Class.getResourceAsStream ("/some/pkg/resource.properties"); ResourceBundle.getBundle ("some.pkg.resource");
朗逸的原厂导航地图
四月 25th, 2011朗逸的原厂导航地图是中国地图出版社出版的。 从中国地图出版社电子地图专栏可以查到最新的出版情况。目前还不知道到底是应该找4S还是找400问。现在最新的是:
中国导航电子地图-上海大众汽车大众品牌专用版
出版日期:2010年11月 GS(2010)1537号
ISBN 978-7-900257-71-0/K.312
顺藤摸瓜,在国家测绘局的地图审核结果公告里面可以查到更详细的信息。
送审单位:中国地图出版社
送审地图: 《中国导航电子地图(上海大众汽车大众品牌专用版)》(专用于上海大众RNS MidLine车载导航仪SK H10)
用途: 公开出版
审图号: GS(2010)555
批准时间: 2010-05-11
中国地图出版社
《中国导航电子地图-上海大众汽车大众品牌专用版》专用于上海大众RNS MidLine 车载导航仪SK H10
公开出版
GS(2010)1537
2010-12-15
看来基本上每年会更新两次。5月快到了,索性在等等,等5月的版本出了再升级吧。升一次好像还挺贵的。
补齐被意外砍短的 Oracle .DBF 文件
二月 20th, 2011客户一个建在 Linux 上的 Oracle 系统意外崩溃了。
抢救出来的数据文件似乎被砍掉了一截,小于应有的尺寸。
ORA-01122: database file 4 failed verification check ORA-01110: data file 4: 'xxx/users01.dbf' ORA-01200: actual file size of 1569280 is smaller than correct size of 1569281
应急之下通过 Google 找到了一个临时的对付办法。
1。先造一个大小合适填满零的补丁:
$dd if=/dev/zero of=/tmp/patch0 count=1 bs=16k
其中 bs 可以设成init.ora 里设置的 block_size。count 自然是设成 Oracle 抱怨少掉的块数。
2。应用补丁
$cat /tmp/path0 >> $ORACLE_BASE/oradata/$ORACLE_SID/users01.dbf
3。恢复数据文件
SQL>recover datafile 4; Media recovery complete. SQL>alter DATABASE datafile 4 online;
上面的 4 是Oracle 抱怨出错的数据文件的编号,就不用再费劲输入长长的路径了。
接下来就是祈祷重要的数据都还在了。
附,备忘: 起动停止 Oracle 数据库
SQL> conn / AS sysdba Connected. SQL> SQL> SQL> shutdown immediate DATABASE closed. DATABASE dismounted. ORACLE instance shut down. SQL> SQL> SQL> startup mount ORACLE instance started. SQL> startup pfile='/path/to/init.ora' ORACLE instance started.
另外Oracle的密码文件在 $ORACLE_HOME/dbs 里面。
初次体验东航商务舱(顺道体验航班取消)
一月 16th, 20112011年刚开始,从来都是乘经济舱的我意外体验了一次商务舱旅行。
我因为工作需要从上海前往东京。本来预定的是达美的经济舱。然后我出发前一天的晚上试图从达美网站上自助办理登机手续的时候却发现航班被取消了。网站上建议改乘其它航班,但当天没有可选的航班。我赶紧打达美的400,结果人家根本没有人在值班,只有录音电话,除了知道该航班确实已经取消了之外没有任何别的功能。这服务⋯⋯ 我又通过公司的人找到了票务公司的负责人,卖票的告诉我没有取消,你直接去机场就行了。也没没办法了,只有到机场再说了。
第二天一大早我到机场的时候,达美的柜台已经忙的一塌糊涂了。问了柜台的人,好像也没什么特别的理由,只是飞机坏了,周转不过来了。一开始我被告知可以选9点半的或者12点的航班。轮到我的时候又被告知9点半的航班满员了,只能选12点的东航。我跟半票的小姐说,没办法,先给我改了吧,免得一会儿连12点的都走不成了。赔偿啥的我不和你谈,你给我开个证明吧。柜员一脸茫然,似乎没有想到这种要求⋯⋯ 赶紧请示旁边的领导(不知到他这个叫什么职位,满里面最忙的似乎就是这个人了,手持对讲机一会儿疏导旅客,一会儿指挥柜员。碰到突发状况的时候最能体现人的工作能力了,跑题了)。这个领导开始跟我讲自己可以在网站打印。我说自己打印的谁信啊?你们的400不是一般的难打,网站怎么查证?后来跟对讲机的人说赶紧的打几张延误证明拿过来。然后我就等啊等啊,期间看到有抱怨的,有骂人的,但总体秩序还算好。通过工作人员的对话我能听出来,虽然他们不承认,其实9点多的航班应该还是有的,只是他们要先满足那些到东京去转机的。人家去美国的要是飞机赶不上损失可就大了。
拿到延误证明后我本来还想问问我那 iPad 的事情,但问了一圈底下闲着的小兵都不知道怎么处理,必须得问那两个最忙的领导,但他们明显没功夫睬我,毕竟是在救火呵。我等了一阵子实在是累了,老耗着也每意义,于是动身前往东航柜台。
(再说一点题外话,领导忙的要死的时候,底下空闲的人还是有的。看来不管啥行业都有这种状况吧。救火的时候总是领导最累,有的是人就是帮不上忙。)
东航开了一个专门的柜台,我排在快最后面了,于是轮到我的时候,柜员告诉我没位置了,请回一号柜台听候发落(当然,柜员不是用的这个词)。
我回一号柜台,然后就看到有人激动到冲进了柜台,柜台的人甚至叫来了警察。当然实际上没起什么冲突,他们只是试图在柜台里缠住这个负责人。不一会儿,东航决定给我们升成商务舱。一行人排着整齐的队伍前往商务舱柜台。带队的人数好了人数跟柜台人反复交代,“只收这10个人,达美的再来不收了”。于是我的首次商务舱体验开始了。
首先商务舱半票柜台就和经济舱不一样:人少,不怎么排队;柜员比经济舱柜台的更有礼貌;柜台上有摆的糖。一开始柜员还不知到像我们这样的怎么处理,互相讨论了一阵子,最后收掉了达美给的一张类似登机牌的东西,换了一张东航登机牌,另外还给了一个贵宾室的使用证。托运的行李上比以前多贴了一张商务舱的蓝纸条。
过了安检和海关后,就可以进“头等舱休息室”候机了。不知到为何给的不是最靠近登机口的那个贵宾室,也许东航就是那个,也许是我舱位不够高。航空公司的贵宾室比JCB金卡的贵宾室上了一个档次:杂志更像那么回事,有很多时尚杂志而不是以广告为主;饮料和小点心可选的种类更多,甚至还有各种面包。我从5点多起床,虽然吃了早饭,但还是很饿。我吃了一罐八宝粥,感觉好多了。然后又喝了一罐青岛啤酒,吃了点花生和闲趣。后来还喝了点可乐。“酒足饭饱”的时候正好服务员过来提醒可以登机了。
登机口已经排起了长队,但与我无关,凭借商务舱的登机牌,除了几位带小孩的乘客之外没有人和我抢道。进入机舱,空姐马上接过我手中的外套,挂进壁柜。然后又递上拖鞋和热毛巾,感觉就像进入了星级酒店。商务舱的座位果然宽敞,而且本来我以为要坐满了,结果似乎基本上就只有我们这10来个达美转过来的。上座率低可以保证更好的乘客体验?商务舱的噪音也比较小一点,也许是因为离引擎比较远的缘故吧。等我回过神来的时候,空姐已经收走了用过的毛巾,并且送上了饮料。--商务舱的座位扶手很宽,上面放几个杯子是绰绰有余。经济舱他就是想在起飞前给饮料也没地方放呐。
上完饮料之后,空姐送上了制作精美的菜单。即使短途旅行也有餐前开胃菜和餐后甜点。共有四种主菜可以选择(其实是三种,有一种没有)。起飞后,空姐会上前帮忙打开小桌板,铺上餐巾,并送上餐具。然后就开始上菜了。商务舱的餐点看上去确实是出自较有档次的酒店只手,虽然经过飞机上的加热之后口感大打折扣,卖相还是很好的的。刀叉是钢的,餐具都是瓷的,连喝饮料用的杯子都是玻璃的。(虽然感觉好,但我不禁要怀疑,真的有必要么,毕竟万一飞机摇晃的厉害了,被盘子砸的可是我自己啊⋯⋯)
期间空姐的服务也和酒店一样好,只要看到你有盘子吃光了,马上就会过来帮你收走。中间会有多种面包可以选择。餐后点心有哈根达斯。饮料只要看到你杯子快空了就会主动过来加。
商务舱的每个椅子前面都有一个小液晶电视,有几部比较老的电影可以点播。耳机可也以看得出比经济舱的好。我点了一部没看过的(不记得名字了),画质不咋地,接近VCD的品质吧。还没看完就开始降落了。空姐会帮你拿好外套放在旁边的座椅上。飞机挺稳后,我可以第一个走出机舱,不需要漫长的等待。
而当我办好海关的手续的走到行李提取处的时候,我的托运行李早就在那里等着我了。(那张小纸条不是白帖的哈。)
也许我以后旅行还是会选择经济舱,但商务舱的服务绝对是物有所值的。
后记:这次办理回国登机手续的时候,达美的机器提示感谢我配合变更航班,让我到上海浦东机场领取一份“酬劳”。但我到浦东机场的时候已经是半夜,已经没有人在值班了。不知到会是什么呢?会不会值得我转成跑一趟机场呢?
VMware Player 和 Fusion 的兼容性
一月 11th, 2011Windows 下在 VMware Player 能够正常运行的虚拟机(本来不是在这个版本上装的),复制到 Mac 下可以毫无问题的运行。
只是开始的时候提示是不是升级。原来硬件版本(virtualHW.version)是7,升级后为8。(不确定原来这个版本7的是不是因为原来是在低版本的VMware上安装造成的。)
然后VMware Tools提示要升级,直接安装又说已经安装了最新版本,卸载之后可以正常安装。(不重装似乎也没啥问题,除了那个提示。)
比较一下VMware Tools 的版本:
VMware Player 3.1.3 build-324285 下载到的Tools版本是 8.4.5, build-324285
VMware Fusion 3.1.2 (332101) 自带的Tools版本是 8.4.5, build-332101
版本号一致,build编号稍有不同,想必应该没有啥不兼容的地方。
iPad 丢了
十二月 31st, 2010昨天下飞机的时候同事帮忙拿了一下包,又给LP打了个电话,结果我思路一乱,把 iPad 落在飞机上了。一路上LP还说今天怎么我的包这么轻,我也没在意,只想这次是把伞和本子都放箱子里了。回家发现 iPad 不在了,一回想下机的流程,确定是忘在飞机上了。于是上达美航空的主页找寻关于失物的处理方法,最后找到一个失物申报表,填了一下,也没找到电话之类的。新想电话服务肯定也下班了,天亮再说吧(到家已经半夜12点半了)。
今天到公司赶紧找失物招领电话,查到浦东机场的号码是
T1电话:68346324
T2电话:68340417
打了第一个号码,结果他们说飞机上的不在他们这里管,让我找 96990 问航空公司的号码。然后我打 96990 得到了达美的三个电话:
4008140081/68355493/68339150
打第二个没人接,然后我打400。漫长的音乐,客服接了之后第一反应说应该找机场,给了个号码 021-68340323。我说我打过机场电话了,人家说飞机上的得找航空公司。客服问了我航班和丢失的东西之后,又是漫长的音乐。然后她说:我打了机场的电话,奇怪的是没有人接听。然后问了我姓名,通过他们系统查到了我会员信息的电话和地址,并核对之后说她现在也联系不上负责的人,会稍候再跟进。
事后我打400给的68340323,结果是“您所拨打的用户线故障”,不知到是不是机场的人偷懒把线拔了⋯⋯
更新:68340323打通了,一说是达美的他们说机场不管,是东航承包的,给了东航的电话:021-68339148。然后这个号码又是“您所拨打的用户线故障”。也许打的人太多了就这样?
更新:下午68339148也打通了,他们又给了达美办公室的电话:68355031/32 这个号码照例也是无人接听。
我申请过 Find My iPhone 服务,通过me.com 往ipad上发了信息。
不过这条途径希望渺茫,因为我的ipad只是WIFI的,我开了飞行模式又设了开机密码,一般人没法用它上网了。
但愿最终能找到吧。不管怎么说,以后还是要养成下飞机下车的时候检查一遍行李的习惯。
哎⋯⋯ 以前我都注意的,不知怎么这次就大意了。
rtorrent + screen
十二月 30th, 2010找来找去,screen + rtorrent 才是我梦寐以求的简洁完美。用这个组合在linux服务器上下载BT简直太爽了。
screen 基本操作:
screen -R rtorrent 重新连接名叫“rtorrent”的screen,如果没有会创建。
screen -list 列出目前的screen。
在 screen 中按 Ctrl + ad 退出。
rtorrent基本操作:
backspace 添加种子(可用路径或URL)支持TAB键自动补齐路径。 接受通配付,如: ~/torrent/*
return 同 backspace, 但不立刻开始下载。 (用 ^s 开始下载)
^o 设定新的下载路径。仅对正在上传/下载的种子有效。
^s 开始下载。
^d 停止下载。再按则是删除。
^k 停止并关闭种子。
^r 触发哈稀检查。(不开始下载/上传)
^q 退出。再按一次强制退出(不再试图通知tracker)。
上下:选择项目
左方向键:回上一屏幕
主屏幕:
right 进入下载屏幕
^r 触发哈稀检查。
+/- 改变种子的优先度。
l 看日志。按回车或空格退出。
1 显示所有下载
2 显示所有下载,按名字排序
3 所有已经开始的下载
4 所有停止的下载
5 所有完成的下载
6 所有未完成的下载
7 显示所有正在哈稀检查的下载
8 正在做种的下载
带宽限制:
a/s/d 上传限制增加 1/5/50 KB.
z/x/c 上传限制减少 1/5/50 KB.
A/S/D 下载限制增加 1/5/50 KB.
Z/X/C 下载限制减少 1/5/50 KB.
Download View Keys
right Switch to selected view
left Switch to view selection or back to main view
1/2 Adjust max uploads.
3/4 Adjust min peers.
5/6 Adjust max peers.
p Display peer list
o Display torrent info
i Display file list
u Display tracker list
t/T Initiate tracker request. Use capital T to force the request, ignoring the “min interval” set by the tracker.
Peer list View Keys
left Switch to view selection
right Show peer details
* Snub peer (stop uploading to this peer)
k Kick peer (disconnect from peer)
B Ban peer (No unbanning is possible.) 0.8.4+
File list View Keys
left Switch to view selection
right Show file details
space Change the file priority; applies recursively when done on a directory
* Change the priority of all files
/ Collapse directories. While collapsed, press right to expand the selected directory.
Priority options are blank (standard priority), hig (high priority) and off (not to be downloaded).
Tracker list View Keys
left Switch to view selection
* Enable/disable tracker
space Rotate trackers in a group
Snow Leopard 10.6.5 10H574
十一月 10th, 201010H571 才刚发布3天,10H574就接踵而来。安装的时候已经有明确提示更新内容,看来确实离正式版不远了。
建议所有运行 Mac OS X Snow Leopard 的用户都安装“10.6.5 更新”,本更新对操作系统进行了一般性的修复,提高了 Mac 的稳定性、兼容性和安全性。修复的内容包括:
• 提高了 Microsoft Exchange 服务器的可靠性
• 解决了 iPhoto 和 Aperture 中部分图像处理的操作性能问题
• 解决了图形应用程序和游戏的稳定性及操作性能问题
• 解决了打印任务之间的延迟问题
• 解决了一些连接到 AirPort Extreme 的 HP 打印机的打印问题
• 解决了将联系人从“地址簿”拖入 iCal 时出现的问题
• 解决了将项目拖出堆栈时会导致 Dock 无法自动隐藏的问题
• 解决了“字典”无法正确显示 Wikipedia 信息的问题
• 改进了 MainStage 在某些 Mac 系统中的性能
• 解决了 OpenType 字体的间距问题
• 增强了部分蓝牙盲文显示的可靠性
• 解决了用 Safari 5 浏览部分网站时会出现的 VoiceOver 问题
如需本更新的详细信息,请访问此网站:http://support.apple.com/kb/HT4250?viewlocale=zh_CN。
有关本更新的安全性内容的信息,请访问:http://support.apple.com/kb/HT1222?viewlocale=zh_CN。
iPad 入手 10 天体验
六月 6th, 2010自从 iPad 发布我就认定了–这就是我理想中的电脑。5 月 10 日一早就开始预订,28 日顺利到手。到今天为止已经整十天了。简单总结一下十天来的一点感受。
第一印象:很薄,但还是有点分量的。屏幕很靓丽。试用了一下软键盘,还不错。但由于没有方向键,布局也和普通键盘有些区别,需要一些时间来习惯。触摸屏幕操作起来很舒服。
我订的是 WIFI 16G。3G太贵,感觉不划算。至于容量,16G 应该够了。我不打算用它寸太多电影,一般应用程序应该不会太大。
先说看书。iBook 看书效果很好,不亚于实体书。苹果的书店在国内还没开张,所以花钱也买不到正版的中文书。但有很多过了版权保护期的书可以免费下载。国内也有很多网站可以下载各种类型的话 ePub 书。一周来我利用上班路上的时间看了本<3岁决定孩子的一生>。(晕,不知道怎么输入书名号来。。。。。。) 另外我还比较喜欢看 PDF 格式的杂志,用 Cloud Reader 看效果很好。简直比印刷版的还爽。很多人推荐表Good Reader。也许看其它文档有优势吧,看杂志我感觉还是 Cloud Reader 好一点。Good Reader 翻页是上下翻,不符合我的习惯。另外杂志往往有跨页的大图,横过来之后 Cloud Reader 就变成两页同时显示,而 Good Reader 就不会。
上网。当你专注于阅读内容的是时候,Safari 捧在手里的感觉的确无与伦比。但当你频繁切换页面的时候,感觉就不那么好了。它读取页面的时候时候没有电脑快。如果你在电脑上习惯于一次打开好几个页面,一边阅读一边等其它页面下载,换成 iPad 之后可能会不爽。
看照片,感觉很好。继承了解iPhoto 的优点,又针对触摸操作优化过。
看视频,我用 Air Video 。用过免费版之后感觉很好,买了2.99美元的收费版。免费版唯一的限制是一次只能显示三四个节目。基本上只要是电脑上能看的格式都能搞定。可以直接看,也可以后台转换好了再看。直接看远不如事先转换好清楚。
免费的应用程序和游戏很多很多。收费的也很多。质量良莠不齐。有的很实用,有格别的简直是骗钱。
其它问题:
WIFI似乎确实有问题,我紧靠路由器有时还是只有一格信号。有时会断开重新连接。
Safari 有时会直接退出。
暂且先这些吧。以后有时间再说说我选用的其它应用程序。

