絶対140文字〜未解決コード特命捜査〜


こっちは、上戸彩じゃなくて id:torazuka の Groovyたんだ!!




絶対零度〜未解決事件特命捜査〜SP』が今夜放送されている。
#ghelloにも「オーバー・コード」と呼ばれる140文字を超えて
しまった未解決コードがある。
この未解決コード検証し直すための特設エントリーとして、
この「絶対140文字〜未解決コード特命捜査〜」は設けられた。


Togetter - 「ghello (Groovy "Hello World" Tweets!)」「プログラミングGROOVY」出版記念企画!Groovyな"Hello World" tweetで広がるGroovyプログラマの輪。

バトンリレーで140文字以内のHello World的コードを書くという企画。

絶対140文字



1tweet 140文字以内にひねりを加えたコードを書くのはつらい。
(みなさんGroovyistとしての意地とプライドをかけてる?)
ただでさえ、制限がキツイのに、プログラミングGROOVY の発売日にはお祭りでバトンなしで誰でも参加OKになった。



エントリーが増えたことにより、より敷居が高くなった。

この世には、「未解決」という名の地獄がある。

#ghelloにチャレンジした名うてのGroovyistを持ってしても、解決できなかったコードがある。
ただ、そのまま埋もれさせておくのはもったいない。
Twitterの#ghelloでは、140文字以内に収まったもの、できなかったものはブログ等で公開してはどうだろうか?
埋もれさせておくのはもったいない。
Javaの豊富なライブラリを使って解決できるかも知れない。
だれかのアイディアで140文字以内にできるかもしれない。



@uehaj

print new org.objectweb.asm.ClassReader(com.sun.org.apache.xerces.internal.impl.Version.getResourceAsStream("XMLEntityManager.class")).readConst(333,new char[20]) // asmでJDKバージョン依存を多少回避したがはいりきらん #ghello

22オーバー



@kimukou_26

@GrabResolver(name='msgpack',root='http://msgpack.org/maven2/')
@Grab("org.msgpack:msgpack:0.5.1-devel")

import org.msgpack.MessagePack
import static org.msgpack.Templates.*

src = 'Hello World'
//pack
raw = MessagePack.pack(src)
println raw

//unpack1
println MessagePack.unpack(raw, TString)

//unpack2
def dynamic = MessagePack.unpack(raw)
println dynamic.convert(TString)

unpack2分を含めない状態で166オーバー

//enc
cipher = javax.crypto.Cipher.getInstance("Blowfish")
cipher.init(javax.crypto.Cipher.ENCRYPT_MODE, new javax.crypto.spec.SecretKeySpec('groovybook' as byte[], "Blowfish"))
def encrypted =cipher.doFinal('Hello World' as byte[])
println encrypted

//dec
cipher = javax.crypto.Cipher.getInstance("Blowfish")
cipher.init(javax.crypto.Cipher.DECRYPT_MODE, new javax.crypto.spec.SecretKeySpec('groovybook' as byte[], "Blowfish"))
println new String(cipher.doFinal(encrypted))

346オーバー

@Grab('org.seleniumhq.webdriver:webdriver-htmlunit:0.9.7376')
driver = new org.openqa.selenium.htmlunit.HtmlUnitDriver();
driver.get("http://goo.gl/ICVRP");
println driver.getTitle()

47オーバー



@nobusue

java.awt.SystemTray.getSystemTray().add(new java.awt.TrayIcon(image:java.awt.Toolkit.getDefaultToolkit().getImage(this.class.getResource('groovy/ui/ConsoleIcon.png')), tooltip:'Hello World!', imageAutoSize:true))

74オーバー



僕も

@Grapes([
  @Grab(group = 'com.h2database', module = 'h2', version = '1.3.157'),
  @GrabConfig(systemClassLoader = true)
])
import groovy.sql.Sql;Sql.newInstance("jdbc:h2:mem:","org.h2.Driver").eachRow("SELECT * FROM CSVREAD('http://dl.dropbox.com/u/645223/ghello/%23ghello.csv')"){print it}

147オーバー 短縮URLを使えば多少は短くできるけどね。





解決方法

おぉ、企画者から、全てを解決する方法が出た。
これを使えばなんでも(?)できる。









関谷 和愛、上原 潤二、須江 信洋、中野 靖治
価格: ¥ 3,360
価格は記載時点のものです。購入前にAmazonでご確認ください。






竹添 直樹、島本 多可子、小津 美夕紀、亀井 隆司
価格: ¥ 3,780
価格は記載時点のものです。購入前にAmazonでご確認ください。