u-ryo's blog

various information for coding...

Getting Prize S Level Programmer at Paiza

| Comments

先日、Paizaのスキルチェック時間切れ0点を取ってしまったので、 癪だからランクS、本気で取りに行きました。 ひとりすごろくは第一次制限時間の40分を超えてしまったので、 全ケース通ったんですけど95点でSではなくA判定。 やっぱり時間が大事なんですね。 Javaで「早く」書くのは確かにキツイです。 ので、次は50点の制限時間が2時間のビリヤードの玉突きに挑戦しました。 こちらは、問題中にヒントを書いていてくれていることもあり、 60分で解答を提出、ようやっとSランクをゲットできました。 今までAランクでいっか、とか思ってて、S問題はゆっくりやって、 再チャレンジでcodeをbrush upして100点を取ってたんですけど、 それより時間が大事、なんですかね。 いや、実務では分を争う程、そこまでsevereではないので... それに、paizaでいくら頑張っても、 小さいとこばっかりであんまり行きたい先が無いので、虚しいんです。

Challenging Paiza TSP

| Comments

8/13はPaizaの日、ということで、巡回セールスマン問題を出題していました。 Paizaラーニングでも巡回セールスマン問題のさわり(貪欲法)を取り上げていて、 2-OptやSimulatedAnnealing(焼きなまし法)を学んで、 いざ書いてみたんですが、なかなかうまく行きません。 テストデータは有名ドコロがあります。 まずはatt48で2-Optでやってみたものの、 交差線が多く、全然それっぽい経路が得られません。 なんでーーー!? Javaによるまんまのコードがあったので、 読み解いていったんですけど時間かかっちゃって、 結局Paizaの締切9/12に間に合いませんでした... 何たること。

どうも、キモはswapにあるようで、 点を交換すると総延長が短くなる場合、 当然点を交換するんですが、 当該点だけを交換するだけじゃなく、 そこから真ん中へ向かってずっと点を交換していくんですね。 そうかー。

悔しいから、久し振りにPaizaのS問題やってみました。 最も簡単そうな最小辞書順列にしてみました。 けれど、問題の意味を理解するのと、JavaのStreamで書ききったために、 制限の2時間、あっという間に過ぎてしまいました。0点確定です。トホホ。 しかも、提出したコードは、2つの場合だけ通らずに、80点。 どうしてコケる時があるのか、思い当たるフシもなく、未だにわかっていません。 テストデータ、見せて欲しいです。

Hostapd After That...

| Comments

何か、不安定ですhostapd。 昨夜は、何故か出勤後の9:58に勝手に謎のrebootしてたし、 今日も帰宅後、NotePCがWiFiで繋がらないから試行錯誤すると、 一旦USB WiFiドングル抜き差ししてhostapdをstop/startしたら、漸く。 でも、1秒毎にreconnectしたりして、もう何だか。 やっぱり、何かWiFi station買ってこないとダメなのかなー。

Current Project I'm Working in

| Comments

今、グループ内会社のAndroidアプリ開発に売られてるんですけど、そこのソフトの作りがひどくてひどくて泣けてきます。

  1. 「結果が表示されなくなった」というので見てみたら、toString()が変わっていたのが原因。より根本的な原因は、toString()というdebug用途のmethodをoverrideしてmainのlogicに使っていること。まぁ、Activity跨ぐstructured dataをParcelableにする時間が無かった、という事情は分かるんですけど、StringBuilder#toStringですら使わずnew String(StringBuilder)とするくらいなのでぼくは。
  2. 「途中で落ちる」というので見てみると、ヌルポが出てました。どうしてかなー、と見ていくと、途中でnullを代入しているmethodが呼ばれています。どうしてこれを呼ぶよう変えたのか聞いてみると、終了処理をちゃんとするようしてる時に、comment outしてあったこのfinishっぽいmethodをcomment inしたんだそう。それがどういう効果を持つのかわからぬまま、そうしたんだって。えーーーっ!?
  3. 極めつけは、今日わかったんですが、HashMapListにしてその0番目を使ってるんですね。えーーーっ! どうしてAndroid 4.4.2ではうまく動かないの? というのを探っていったら、そこに行き着きました。逆に、これまでよく動いていましたねぇ。素晴らしい!! 先月までいた派遣のフリー技術者が書いたcodeの一部でしたけど、わざと書いたならいざ知らず、もし意識せず書いたのなら、恐ろしいです。

Grain on CodeAnywhere

| Comments

ちょっと、やっぱりダメですね。

1
2
3
4
5
6
java.lang.RuntimeException: While executing class com.sysgears.grain.registry.Registry.compile
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        :
        :
Caused by: java.net.SocketTimeoutException: Accept timed out
        at java.net.PlainSocketImpl.socketAccept(Native Method)

といわれて、./grainw generate./grainw gendeployも出来ません。 あーあ、なぁんだ。