使用log4j在Mondrian中输出日志

最近在帮女朋友做毕设,一个基于Mondrian的小项目。写完聚合表后竟然查询速度还是很慢,遂决定打印出日志追踪sql以查看是否真用到了聚合表。 Mondrian是带有log4j的,只是没有配置。现将配置步骤写下。

Read more →

Google Maps Android API v2配置教程

其实官方文档已经说的很详细了,英文不佳者可能会有点捉急。 注:开发环境Eclipse

1.安装和配置Google Play services SDK 在eclipse中打开Android SDK Manager,下载Extras中的Google Play services 右键项目》Properties》Android  点击add按钮添加google-play-service-lib  (不要勾选Is Library)

2.在manifest添加 Google Play services version:添加以下代码到Application下

Read more →

Go 多个goroutinue顺序打印数字

一. 10个goroutinue顺序打印0-9 # 常规的做法是用10个channel来挨个控制,其实可以用原子包实现,相当于加锁 func printInOrder() { wg := sync.WaitGroup{} var curr int32 for i := int32(0); i < 10; i++ { wg.Add(1) go func(num int32) { defer wg.Done() for { if n := atomic.LoadInt32(&curr); n == num { fmt.Println(num) atomic.AddInt32(&curr, 1) break } time.Sleep(time.Nanosecond) } }(i) } wg.Wait() } 二. 两个goroutinue分别打印奇偶数 # 同上,还是用原子包 func printMix() { wg := sync.WaitGroup{} var curr int32 wg.Add(2) go func() { defer wg.Done() for curr < 10 { if n := atomic.
Read more →