抠腚爱揉曼 Coding Iron Man

29Sep/110

Scala和Java的互操作

Posted by Anson

最近在实践中遇到一些Scala和Java互操作的问题,记录一下
BTW: gist + wordpress的gist插件各种好使啊 果断抛弃各种syntax highlighter插件

Scala Map Java Map
下面代码是两个隐式转换,用于在两者之间互转

Scala repeated parameters Java varargs
不好好看书就急着动手的杯具……纠结了很久才知道如何正确调用可变参数列表的Java方法

如果不使用: _*这个annotation告诉scala我要展开成varargs,不论你如果toArray如果反射new出Object数组都是没有用的,整个Array或者List会被作为一个Object传入,而不是展开成多个参数传入调用方法

Tagged as: , No Comments
20Sep/112

来scala下Scala

Posted by Anson

Scala,所谓可伸缩可扩展,于是就蛋疼试试

首先因为scala的语句块都可以返回值,因此if else完全可以取代?:三元运算符的作用,不过写起来还是后者比较爽。那就自己扩展一把好了。

class BooleanEx(b: Boolean) {
	def ?[T](func: Boolean => T) = {
		func(b)
	}
}

class AnyEx[T](o: T) {
	def or(o1: T) = { b: Boolean =>
		if (b) {
			o
		} else {
			o1
		}
	}
}

object Helper {
	implicit def Boolean2BooleanEx(b: Boolean) = new BooleanEx(b)
	implicit def Any2AnyEx[T](o: T) = new AnyEx(o)

	def main(args: Array[String]) {
		(1 == 1) ? (true or false)
	}
}

无奈的地方是没法使用冒号作为方法名(因为是关键字),以及?属于最高优先级层,所以后面的括号省略不能……

Tagged as: 2 Comments
8Sep/115

资料收集[置顶]

Posted by Anson

在这边放一些有用的资料索引,方便自用,慢慢收集整理了

git入门推荐,中文的哦
http://progit.org/book/zh/

twitter的scala教程
http://twitter.github.com/scala_school/index.html

stackoverflow的scala tag
http://stackoverflow.com/tags/scala/info

markdown语法
http://daringfireball.net/projects/markdown/syntax

Tagged as: 5 Comments
12May/113

大中华局域网满塞

Posted by Anson

最近在公司已经开始初步享受大中华局域网的成果,连自己的blog都访问不了了。
用手机上来吐个槽,然后继续扮演屁民的角色。

Filed under: 扯淡 3 Comments
18Apr/111

星际2不如火如荼中

Posted by Anson

每天打个三四场,本来定级赛直接打进了白金,结果莫名其妙掉到了黄金。唉……纠结,找到个国服可用签名生成器,试了下,贴上来。

其实我是来更新纪念堂的。

Tagged as: 1 Comment
14Mar/111

呜喵王推倒达成

Posted by Anson

最近WOW国服+台服双线进行中。台服小战士85一身蓝绿环保人见人嫌排随机,国服小DK偶尔上线参加下活动。话说DK所在的10人固定团因为人员不太稳定,一直在各种便当,虽然开3.3第二个CD就见呜喵王了但却到昨天才成功推倒。想我的60、70年代都在各种AFK中渡过,终于参与开荒了80年代最终BOSS的我内牛满面。只是呜喵王的战斗虽然是我遇过的最复杂的(完全坑爹啊,0容错还得看脸),但是没有与之相衬的史诗感,总觉得没过瘾啊……

Filed under: 扯淡 1 Comment
2Mar/118

最近败了个台式机以及360就是贱啊

Posted by Anson

唔~顶不住诱惑败了个台式机。AMD羿龙IIX4 955、技嘉770T-UD3P、迪兰恒进HD6850~可以特效全开SC2的感觉太感动了……

但是买来后发现机箱中某风扇动静很大,开始以为是电源的……后来拆开按住CPU风扇发现不响了。好嘛,自带风扇果然不靠谱啊,看来又得出血败个风扇了。

然后为了看看CPU、显卡温度啥的,就去找来EVEREST,结果发现识别不到我的显卡,于是想起一个叫撸大湿的东西。放狗打开撸大湿主页,360旗下产品几个大字让我一下就缩卵了。事实证明这货果然是360的产品,安装后有一个bundle.exe偷偷的在我用户目录的temp目录下跑,打开看签名:Chengdu Qiying Technology Co. Ltd~没错,就是撸大湿的公司。先不管这东西是干嘛的,它偷偷摸摸跑在我temp目录下就可见用心不良,于是果断终止删掉然后卸载撸大湿。

btw:AIDA64,这个貌似就是EVEREST。原EVEREST已经不更新了,改这个名字了。

Filed under: 扯淡 8 Comments
1Feb/110

速成WOW插件DEBUG-[CWLK-3.3.5-Runevolution]

Posted by Anson

最近在WOW,国服终于开ICC了嘛,怎么也得去见阿傻子一面。10人团已经开到小阿面前,作为一个DPS DK,深感和上一版本的差距,于是从邪血二天一洗成双持传染冰。但这鸟天赋打起来实在太累人,于是就开始寻觅一个符文+疾病+buff的监控插件。还真被我找到个合适的,名字就叫~当当当当~Runevolution。

=== 以上都是废话 ===

这插件有个问题……第一次进是OK的,退出游戏再进后就各种报错,各种google无果之后决定自助解决……毕竟我还是个码农的嘛。

于是先看报错日志,接着翻插件代码,看配置文件,查API。最后终于被我发现Orz的作者把父框体结构直接存入了配置文件,而实际上只应该存放父框体的名字就好了……于是妥妥的加上:GetName()就妥妥的好了,起码看上去是好了,因为咱是速成的所以也不知道有没有后遗症。

总之附件在此,送给Google。Runevolution-3.3.5

Tagged as: No Comments
11Jan/113

原来身份证号是可以自我验证的

Posted by Anson

在Google Reader上别人share的文章看到的,二代身份证号码可以通过一种机制去验真。同样道理的也可以基于这种方式生成伪造的身份证号码,只不过也只能逃过本地验证,联网验证肯定还是死翘翘的。

蛋疼Groovy练手一段:

id = "787416969231782985"

factors = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2] as int[]
results = [1, 0, "x", 9, 8, 7, 6, 5, 4, 3, 2] as String[]

sum = 0
factors.eachWithIndex { factor, i ->
    sum += (id[i] as int) * factor
}

id[17].toLowerCase() == results[sum%11]

各位如果和我一样蛋疼的也可以把id换成自己的身份证号码run一下看看是不是正确。另外附上同样蛋疼的生成脚本一段:

id = ""

factors = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2] as int[]
results = [1, 0, "x", 9, 8, 7, 6, 5, 4, 3, 2] as String[]

sum = 0
random = new Random()
factors.each {
    ide = random.nextInt(10)
    id += ide
    sum += ide * it
}

id += results[sum%11]
Tagged as: 3 Comments
11Jan/110

Project Lombok给力的new feature

Posted by Anson

唔 刚SJ同学推荐了下Project Lombok的新特性,看了下果然V5啊,从此可以和那些乱七八糟的类型声明说byebye了(虽然只是某种程度上)……

简单来说呢 就是用了Lombok后腰不酸腿不疼走路也有劲了我们就有了val,可以像这样:

val map = new HashMap<String, Object>();
// 这东西等效于这样
final HashMap<String, Object> map = new HashMap<String, Object>();

看上去就像scala类型推断似的!但其实没那么强……只能推断你的初始化表达式的类型,而且现在只支持local variable和for each loop中的声明。

真相在这里->Project Lombok,对IDE的支持现在是eclipse和netbeans(with bugs),以及构建时对maven的支持。

BTW:0.9.3的stable包里没有val,在0.10.0-逼她2这个perview包里

Tagged as: No Comments