Monday, November 15, 2010

NBA 视频在线直播 2010-2011

2010 赛季又开始了,如果在国外的话,有个非常好的站点。可以在线看NBA

http://www.atdhe.net

开赛前热门的球队基本上都有直播。值得收藏。:)

Saturday, October 2, 2010

VOLVO S60/80,漏汽油

最近天气很热,汽车也被曝晒。上周末的时候,偶尔发现停好车后,车身外面有很浓的汽油味道。检查了油箱盖,也是好的。

刚开始觉得可能是别人车的问题,没过多久,感觉到自己的车子到哪里,哪里就有汽油味道。而且如果车子两天不开的话,第一次启动的时候,要等2-3秒。感觉输油管里面的油空了,要等一会儿从油箱过来。

无奈就开到Volvo的Dealer哪里检查一下, 结果是真的漏油。不过这是Volvo的一个Recall, 免费修理。大概修一下要3个小时。

告知,以下车子都在recall 范围。

r 2001-2005 S80, 2001-2004 S60, V70,
V70XC/XC70 and 2003-2005 XC90

 

如果发现你的volvo有汽油问道,赶紧找dealer 修一下把,据说还有可能着火。

 

官方的link:

http://nhthqnwws112.odi.nhtsa.dot.gov/acms/docservlet/Artemis/Public/Recalls/2009/V/RCMN-09V483-9234.pdf

Thursday, August 19, 2010

美国申请绿卡排期日485好像有点变快了

如果你要查询你申请的绿卡什么时候可以递交485的话,可以订阅美国移民局的visa bulletin。

这里是最近这几个月的排期变化。

http://www.travel.state.gov/visa/bulletin/bulletin_1770.html

基本上一类优先都有名额,二类三类都要等,三类可能要等的时间更久一点。

今天无聊,写了个程序去统计了自从05年以后,排期日的变化。具体数据在最后面部分。

做了几个简单的图,一个是最近三年以来2类有限的排期日变化,最近好像有点加快的趋势。

image

最近9月份的排期日到 06年5月了。 年初的时候还是05年5月份的呢。

三类优先也有所前进,最近一年前进很快

image

 

如果放到一起,趋势差不多

image

 

所有数据列表。

image image

image

Sunday, August 15, 2010

米雪儿馅饼 Michelle's Pancake

今天有点口馋,真好看到米雪儿馅饼的广告,儿子也觉得饿,就一拍即合出发了。整理了些有用的信息。

地址:

706 W Las Tunas Dr San Gabriel, CA 91776  (626) 293-8098

不靠近路边,在一个广场里面,金丰广场

image

店很小, 不过很干净。我是周日去的中午12点左右,稍许的排队就有位子了。

周一到周日开门,11:00am-3:00 pm, 5:00 pm-9:00 pm

菜单主要是面食,各种面+馅饼。
image

菜单

image

image

Monday, July 26, 2010

如何在 windows 中创建一个 Cassandra 集群

最近在测试 Cassandra 这种分布式的 NoSql 数据库,配置还是有点麻烦。今天总结下具体的配置过程和注意事项,以下是如何在一台PC上运行一个两个节点的 Cassandra 集群。

配置之前,请确保以下必要条件,

  • JDK/JRE, Cassandra 服务端是个 java 程序,你首先要装一个JDK 
    • 32/64 bit jvm
  • 选择好三四个TCP 端口。
    • Cassandra 存储端口 
      • 7000 是默认端口
    • Thrift 侦听端口
      • 用于跟客户端通讯
      • 9160 默认
    • 两个 JMX 监控的端口,  8080/ 9080
    • JWDP 调试端口(可选)
  • 需要两个 IP 地址

接下来,我们创建一个两个节点名字为  HelloCassendra 的群集。

  • 下载cassandra的压缩文件 http://cassandra.apache.org/ , 我用的是 版本 0.6.3.
    • 解压缩到 本地文件夹,比如 C:\apache-cassandra-0.6.3
  • 复制 Conf 文件夹,两份Copy,分别为Conf1,conf2. 每个文件夹对应一个节点。 
    • C:\apache-cassandra-0.6.3\conf1
    • C:\apache-cassandra-0.6.3\conf2
  • 到文件夹 conf1 下面, 修改节点1的配置(Cassandra 使用一种gossip 集群协议,需要有一些种子节点,我们配置节点1为种子节点)
    • C:\apache-cassandra-0.6.3\conf1\log4j.properties
      • # Edit the next line to point to your logs directory
        log4j.appender.R.File=/var/log/cassandra/system.log
      • 改为 =/var/log/cassandra/c1/system.log
      • 这样会把log写道C1的目录 c:/var/log/cassandra/c1/system.log
    • C:\apache-cassandra-0.6.3\conf1\storage-conf.xml
      • 把群集名字改为 HelloCassandra
        • <ClusterName>Test Cluster</ClusterName>
        • <ClusterName>HelloCassandra</ClusterName>
        • 改一下放置Log和数据的文件夹
        • <CommitLogDirectory>/var/lib/cassandra/C1/commitlog</CommitLogDirectory>
            <DataFileDirectories>
                <DataFileDirectory>/var/lib/cassandra/C1/data</DataFileDirectory>
            </DataFileDirectories>
      • 把Localhost 替换为 127.0.0.1.
        • <ListenAddress>127.0.0.1</ListenAddress>
        • <ThriftAddress>127.0.0.1</ThriftAddress>
  • 到文件夹 conf2 下面, 修改节点2的配置(Cassandra 使用一种gossip 集群协议,需要有一些种子节点,我们配置节点2为普通节点,通过给节点1通讯来建立群集)
    • C:\apache-cassandra-0.6.3\conf2\log4j.properties
      • # Edit the next line to point to your logs directory
        log4j.appender.R.File=/var/log/cassandra/system.log
      •  =/var/log/cassandra/c2/system.log
      • 这样节点log写到C2目录 c:/var/log/cassandra/c2/system.log
    • C:\apache-cassandra-0.6.3\conf2\storage-conf.xml
      • 群集名字修改为HelloCassandra
        • <ClusterName>Test Cluster</ClusterName>
        • <ClusterName>HelloCassandra</ClusterName>
      • 修改 commitlogdirectory and DataFileDirectory 文件夹 
        • <CommitLogDirectory>/var/lib/cassandra/C2/commitlog</CommitLogDirectory>
            <DataFileDirectories>
                <DataFileDirectory>/var/lib/cassandra/C3/data</DataFileDirectory>
            </DataFileDirectories>
      • 把localhost 替换为 127.0.0.2 ,每个节点需要不同的IP地址。节点2 使用127.0.0.2.
        • <ListenAddress>127.0.0.2</ListenAddress>
        • <ThriftAddress>127.0.0.2</ThriftAddress>
        • 启动AutoBootTrap模式,自动从其他节点分配数据
        • <AutoBootstrap>false</AutoBootstrap>
  • 到文件 C:\apache-cassandra-0.6.3\bin 下面, 复制 cassandra.bat ,另存为 c1.bat, c2.bat.每一个批处理文件对应一个实例的启动脚本。
    • C:\apache-cassandra-0.6.3\bin\c1.bat
    • C:\apache-cassandra-0.6.3\bin\c2.bat
  • 编辑 c1.bat,指向Conf1目录下面的配置,修改JMX 端口以及调试端口。这里我们禁用调试
    • if NOT DEFINED CASSANDRA_CONF set CASSANDRA_CONF=%CASSANDRA_HOME%\conf
    • if NOT DEFINED CASSANDRA_CONF set CASSANDRA_CONF=%CASSANDRA_HOME%\conf1
    • 删除调试这一行
    • -Xrunjdwp:transport=dt_socket,server=y,address=8888,suspend=n^
    • 对于实例1,保持默认端口8080
    • -Dcom.sun.management.jmxremote.port=8080^
  • 编辑 c2.bat,指向Conf2目录下面的配置,修改JMX 端口以及调试端口。这里我们禁用调试 
    • if NOT DEFINED CASSANDRA_CONF set CASSANDRA_CONF=%CASSANDRA_HOME%\conf
      • if NOT DEFINED CASSANDRA_CONF set CASSANDRA_CONF=%CASSANDRA_HOME%\conf2
    • 删除调试这一行
      • -Xrunjdwp:transport=dt_socket,server=y,address=8888,suspend=n^
    • 对于实例2,替换默认端口为9080
      • -Dcom.sun.management.jmxremote.port=9080^
  • 准备启动两个批处理。

启动C1.bat,你可以看到他是个Seed 节点。

Starting Cassandra Server
INFO 16:04:31,597 Auto DiskAccessMode determined to be mmap
INFO 16:04:31,909 Saved Token not found. Using 22656600690150525193669162742751150004
INFO 16:04:31,909 Saved ClusterName not found. Using HelloCassandra
INFO 16:04:31,909 Creating new commitlog segment /var/lib/cassandra/c1/commitlog\CommitLog-1280185471909.log
INFO 16:04:31,987 LocationInfo has reached its threshold; switching in a fresh Memtable at CommitLogContext(file='/var/lib/cassandra/c1/commitlog\C
INFO 16:04:31,987 Enqueuing flush of Memtable-LocationInfo@1351579886(171 bytes, 4 operations)
INFO 16:04:31,987 Writing Memtable-LocationInfo@1351579886(171 bytes, 4 operations)
INFO 16:04:32,236 Completed flushing C:\var\lib\cassandra\c1\data\system\LocationInfo-1-Data.db
INFO 16:04:32,283 Starting up server gossip
INFO 16:04:32,299 This node will not auto bootstrap because it is configured to be a seed node.
INFO 16:04:32,346 Binding thrift service to /127.0.0.1:9160
INFO 16:04:32,346 Cassandra starting up...


启动好之后,你可以看到这个结点侦听的端口
image

这里7000是存储端口,8080是jmx端口,9160 是Thrift 端口。   
  
这时候cluster中只有一个节点

C:\apache-cassandra-0.6.3>bin\nodetool --host 127.0.0.1 --port 8080 ring
Starting NodeTool
Address       Status     Load          Range                                      Ring
127.0.0.1     Up         497 bytes     22656600690150525193669162742751150004     |<--|

然后启动c2.bat,这里可能要等120秒。90秒load配置,30秒来分配数据
 

Starting Cassandra Server
INFO 16:11:58,940 Auto DiskAccessMode determined to be mmap
INFO 16:11:59,237 Saved Token not found. Using 168810650452358861593947197964955051846
INFO 16:11:59,252 Saved ClusterName not found. Using HelloCassandra
INFO 16:11:59,252 Creating new commitlog segment /var/lib/cassandra/c2/commitlog\CommitLog-1280185919252.log
INFO 16:11:59,315 LocationInfo has reached its threshold; switching in a fresh Memtable at CommitLogContext(file='/var/lib/cassandra/c2/commitlog\Com
INFO 16:11:59,315 Enqueuing flush of Memtable-LocationInfo@625647261(171 bytes, 4 operations)
INFO 16:11:59,315 Writing Memtable-LocationInfo@625647261(171 bytes, 4 operations)
INFO 16:11:59,564 Completed flushing C:\var\lib\cassandra\c2\data\system\LocationInfo-1-Data.db
INFO 16:11:59,596 Starting up server gossip
INFO 16:11:59,627 Joining: getting load information
INFO 16:11:59,627 Sleeping 90000 ms to wait for load information...
INFO 16:12:01,577 Node /127.0.0.1 is now part of the cluster
INFO 16:12:02,592 InetAddress /127.0.0.1 is now UP
INFO 16:12:02,592 Started hinted handoff for endPoint /127.0.0.1
INFO 16:12:02,607 Finished hinted handoff of 0 rows to endpoint /127.0.0.1
INFO 16:13:29,657 Joining: getting bootstrap token
INFO 16:16:44,916 New token will be 107727192420385141059512814600693202868 to assume load from /127.0.0.1
INFO 16:16:44,931 Joining: sleeping 30000 ms for pending range setup
INFO 16:17:14,952 Bootstrapping
INFO 16:17:15,030 Bootstrap/move completed! Now serving reads.
INFO 16:17:15,108 Binding thrift service to /127.0.0.2:9160
INFO 16:17:15,108 Cassandra starting up...

在看tcpview,你可以看到两个ip通过存储端口建立会话
image 
时候就可以看到群集有两个成员了。

C:\apache-cassandra-0.6.3>bin\nodetool --host 127.0.0.1 --port 8080 ring
Starting NodeTool
Address       Status     Load          Range                                      Ring
                                       107727192420385141059512814600693202868
127.0.0.1     Up         497 bytes     22656600690150525193669162742751150004     |<--|
127.0.0.2     Up         497 bytes     107727192420385141059512814600693202868    |-->|

 

你也可以用jconsole,端口8080/9080 来查看更细节的信息。如下图

image

 

Now, everything is set. enjoy you exploring.

Saturday, July 24, 2010

windows 7 /ssd 无法启动,停留在CLASSPNP.SYS

有天机器死机后, 我的windows 7 再也无法启动了。我的配置 [ macbook, OCZ 固态硬盘] , 启动的时候按住 F8 ,选择安全模式,也不行。始终是下面的画面,卡死在classpnp.sys  .在硬件没有变化的前提下,这个驱动无法加载,通常是因为这个文件坏掉了。你需要从其他机器上copy一份过来。

接下来是我的修复步骤。

  1. 从一台跟你版本一样的电脑上copy一份Classpnp.sys到优盘或者移动硬盘, 这个文件放在\windows\system32\drivers\classpnp.sys 下面。注意copy一份同样windows版本的,  32位的和64位的是不兼容的。
  2. 找一个启动盘,比如windows的安装盘,用安装盘启动,不需要重新安装电脑。这里只是希望有个机会,我们能够覆盖坏掉的文件
    1. 如果是苹果电脑,记住按住 C 来选择光盘启动。
  3. 当安装画面出来后,
    1. 按住 “shift +F10”, 就会弹出一个命令行窗口。这时候你就可以把优盘上好的classpnp.sys 替换 windows 下面坏掉的。
    2. 去掉硬盘盘,重启
    3. 提示有什么修复的,取消它没有用的。这时候电脑已经好了

 

Shift-F10

Friday, July 23, 2010

如何在 Linux/苹果系统MAC下面,设定多个 IP 地址用于测试 CASSANDRA

当你测试有些NonSQL的数据库比如Cassendra的时候,你需要在一个电脑上设置多个IP地址。Windows 最简单,接下来将一些 在Linux 跟 Mac 上面的设置。加下划线的是需要输入的部分。

  • Linux.
      setup 127.0.0.5 and 127.0.0.100 to Loopback interface


      androiddemo:/home/demouser# ifconfig lo:5 127.0.0.5 netmask 255.0.0.0 up
      androiddemo:/home/demouser# ping 127.0.0.5
      PING 127.0.0.5 (127.0.0.5) 56(84) bytes of data.
      64 bytes from 127.0.0.5: icmp_seq=1 ttl=64 time=0.040 ms
      64 bytes from 127.0.0.5: icmp_seq=2 ttl=64 time=0.025 ms
      ^C
      --- 127.0.0.5 ping statistics ---
      2 packets transmitted, 2 received, 0% packet loss, time 999ms
      rtt min/avg/max/mdev = 0.025/0.032/0.040/0.009 ms
      androiddemo:/home/demouser# ifconfig lo:100 127.0.0.100 netmask 255.0.0.0 up
      androiddemo:/home/demouser# ping 127.0.0.100
      PING 127.0.0.100 (127.0.0.100) 56(84) bytes of data.
      64 bytes from 127.0.0.100: icmp_seq=1 ttl=64 time=0.031 ms
      ^C

  • Macbook
      setup 127.0.0.2 and 127.0.0.3 to loopback interface

      DemoMacbook-MacBook:~ androidyou$ sudo ifconfig lo0
      lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
          inet 127.0.0.1 netmask 0xff000000
          inet6 ::1 prefixlen 128
          inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1
      DemoMacbook-MacBook:~ androidyou$ sudo ifconfig lo0 alias 127.0.0.2
      DemoMacbook-MacBook:~ androidyou$ sudo ifconfig lo0 alias 127.0.0.3
      DemoMacbook-MacBook:~ androidyou$ sudo ifconfig lo0
      lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
          inet 127.0.0.1 netmask 0xff000000
          inet6 ::1 prefixlen 128
          inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1
          inet 127.0.0.2 netmask 0xff000000
          inet 127.0.0.3 netmask 0xff000000
      DemoMacbook-MacBook:~ androidyou$ ping 127.0.0.3
      PING 127.0.0.3 (127.0.0.3): 56 data bytes
      64 bytes from 127.0.0.3: icmp_seq=0 ttl=64 time=0.040 ms
      64 bytes from 127.0.0.3: icmp_seq=1 ttl=64 time=0.047 ms

 

希望有所帮助:)