忍者ブログ
洋書や映画で出会った英語特有の美しい表現から、プログラミング、日々の雑記まで幅広く。
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

どーも!
自分のプログラミングの力量の無さを世界に知らしめようと
勢いでTopCorderに登録してしまったPrisonerです。
後悔はしていない。

(TopCorder:世界中のプログラマーが腕を競い合うオンラインコンテスト。
レーティングによりDivision2,Division1,Yellow Corder, Red Corderに分類される。
Red Corderは世界中に数百人しかおらず、プログラマにとって羨望の的である。)

月2回程コンテストをやっているようです。
幾つか部門に分かれているみたいですが、一番人気が有るのはアルゴリズム部門。

昔から数学がどうにも苦手だった自分にとって、
アルゴリズムはまさに鬼門。。
数学が得意な人が心からうらやましい。

RedCorderとして有名なchokudai君の記事を読んで、凄く刺激を受けた。
彼は若干20歳、プログラミング暦2年にしてImagin Cup アルゴリズム部門で世界第三位に入賞した。正直、その有り余る才能が羨ましいけれど、それ以上に同じ日本人として凄く嬉しい気持ちになった。

そしてchokudai君をtwitterにてフォローしてみたところ、
ありがたくリフォローしてくれました^^
これで数学の難問にぶつかっても彼におんぶにだっこ
コミュニケーションツールの発達は素晴らしいですね。

最近は数学界において若い世代の日本が実力を取り戻してきている感じで頼もしい。
数学オリンピックとかもメダルを取っていたしね。

さて、今日はせっかくモチベーションがあがっていたので

プログラミングに自信があるやつこい!!

の問題を1つやってみた。
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
(難易度 超簡単, 目標時間 10分以内)


与えられた英語の大文字で構成された文字列の中の文字を、与えられた数字の分だけ左にシフトさせなさい。たとえば、’C’を2つ左にシフトさせると’A’、’Z’を2つ左にシフトさせると’X’。
与えられる英語の文字列はAからZで、Aの次はZにシフトさせるものとする。

例1)

"VQREQFGT"
2
Returns: "TOPCODER"

例2)

"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
10
Returns: "QRSTUVWXYZABCDEFGHIJKLMNOP"

例3)

"TOPCODER"
0
Returns: "TOPCODER"

例4)

"LIPPSASVPH"
4
"HELLOWORLD"



クラス名: CCipher
メソッド名: decode
メソッドの引数: String , int
リターン: String
メソッド: String decode(String ciphertest, int shift)

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

目標時間10分の問題に40分もかかってしまった上、
できあがったソースがお好み焼きにかけて食べてしまいたいくらい残念なあたり(面白くない)
自分の今の実力がいかに低いかってことだな~。

以下、恥を忍んで公開。
public class CCipher {
    public static String decode(String cipheretest,int shift){
        char[] charArray=cipheretest.toCharArray();
        char[] ansCharArray=new char[cipheretest.length()];
        int[] intArray=new int[charArray.length];
        for(int i=0;i<charArray.length;i++){
            intArray[i]=(int)(charArray[i]);
            if(intArray[i]-shift<65){
                ansCharArray[i]=(char)(intArray[i]-shift+26);
            }else{
                ansCharArray[i]=(char)(intArray[i]-shift);
            }
        }
        return String.valueOf(ansCharArray);
    }
}
 
なんで40分も時間がかかってしまったかというと、アルファベットを数値化することにとらわれていて、
ASCIIコード値を確認したり、アルファベットを数値化するための関数をJavaAPIで探したりしていたため。
(結果変換はキャストするだけでよかったのだが)

自分のコードを見直して改めて思う事は、無駄な配列の使用が多い点。
それからこの問題ではシフト処理が肝なんだけれど、
そこを自分はif-elseで思考停止して処理してしまっている。(太字で示したところ)

その点、引用元のブログ筆者による発想は実に面白い。以下引用。
public class CCipher {
 public String decode(String chipher, int shift){
      char[] chs = chipher.toCharArray();
      for(int i=0,len=chs.length; i<len; i++){
          for(int j=shift; j>0; j--){
     if (chs[i] == 'A') chs[i] = 'Z';
        else chs[i] = (char)((int)chs[i] - 1);
      }
    }     return new String(chs);   }
}

この例では、いきなりshiftの値だけ動かすのではなく、
for文の中で一文字ずつシフトするようにしている。
こうすることで、ASCIIコードがわからなくてもコードを書く事が可能。
この発想は無かった!

ってことで今日は固い技術系のお話でした!
それではまた♪

拍手[0回]

PR
いつの間にか今年ももうすぐ12月!

世間では年末セール、クリスマス、お正月などイベント盛りだくさんの楽しい季節♪
そして独り身には木枯しが身に心にしみわたるサバイバルな季節になってまいりました。

大好きだったZARDの名曲が脳裏を流れる。

ぬくもりがほしくて~ そっと手を伸ばす
ブル~なときもそばにいて・・・

人肌恋しくなるこの季節にはあまりにタイムリーな歌。

しかしながら独り身はいくら手を伸ばしても手持ち無沙汰です。
人肌恋しすぎるあまり道行く人の肌に触れてしまった場合
軽犯罪で訴えられても文句は言えない身分です。

ではどうやってこのサバイバルな季節を乗り切るか?

いっそのこと
「ラブプラスとコンビニがあれば生きていける」
という迷言を生み出し
全国に信者数を増やし続けているラブプラス教に入信するか?

022d1cec.jpg

3a61cd81.jpg

baca80af.jpg

・・・うん、やめておこう。(笑)

さすがにラブプラスとコンビニだけでは
人は生きていく事はできないと思うんだ。


・・・で、こういうとき自分は愛犬に救いを求めることにしている。

ジョン!(愛犬の名前)
ジョン!出て来い!

どうやら寝ていたようで、睡眠妨害されご機嫌斜めな様子のジョン。
ようやく小屋の中からのそのそと出てまいりました。

同じく独り身のジョンに、友情の証に握手を求める。

ジョン、お手。お手は?

なんとジョン。

流し目でこちらをチラ見した直後
おもむろに足を上げ
用をたし始めたではないか。


いい度胸じゃないか。
いくら愛犬とはいえ
飼い犬にここまで馬鹿にされて黙っていたら人間様の名が泣くわっ。

そこで思い出しました。

ふっふっふ・・・
ジョン君、君は水が大の苦手だったね?

ジョンはゴールデンレトリバーという、割と泳ぎがうまい犬種のはずなのですが、
海に行っても水に入ろうとせず、水の全く無い砂浜の上ではいくつばり、
アザラシもびっくりの陸上犬掻きをする小心者。

これだ!これを使わない手はあるまい。
ダッシュで水道に走り、レバー式のホースをつなぎ、出力MAXで水圧を高める。

レバーに高まる心地よい抵抗。
いよいよレバーの引き金を引こうとしたとのとき!!

パーン!!

という破裂音と共に自分の背中に大量の水しぶきが襲い掛かる!!
一瞬何が起こったかわかりませんでしたが、
水圧に耐え切れず、ホースの根元が水道管から派手に抜けてしまったようです。

おかげで背中はびしょぬれ。
おまけに外は気温10度前後の冬日


記憶喪失に いっそなればいいと
立ち直るまで~ ずいぶん長い 時間がかかった~



どうも、Prisonerです。
ラブプラスはどこに売っていますか?

前置きが長くなりました。
ここのところ、ブログの更新をすっかりサボっていました。
こんなブログですが、頻繁に見に来てくれている皆さんには本当に感謝です☆

さて、それでは早速今日のPrison Break いきましょう!

・・・と思ったら。
Prison Breakの画像がうまく保存できていないではないか。

実は先日ユーザーアカウントの引越しをしたんですが、どうやらその関係でDVDのスナップショット機能がうまく働いていない模様。

てことで、このまま何もネタがないのは寂しいので最近手に入れたフリーツールを1つご紹介。
その名も「AutoHotkey」
これは、システム常駐型のキーボードカスタマイズができるソフトです。
特にタイピングをする機会が多い方にお勧め。

デフォルトのキーボード配列って、矢印キーやBackSpace、半角/全角キーなど割と頻繁に使うキーが遠くに位置しているため、一々ホームポジションから手が離れてしまうのがストレスでした。
このソフトを使う事でキー配列の問題を簡単に解決できます。
また機能が豊富で、使い方次第ではランチャーやマクロといった処理も可能。

使い方も非常に簡単です。

まずは公式サイトhttp://www.autohotkey.com/download/
よりインストール。

インストール後、マイドキュメントにAutoHotkey.ahkというファイルができるので、そのファイルをメモ帳などのテキストエディタで開く。
ファイル内のサンプルやlukewarm.s101.xrea.com/Tutorial.htmを参考にキー設定を行う。
参考までに、自分のキー設定はこうしています。
一つ自分がはまったのが、CapsLockキーと半角/全角キーを入れ替えようとしたとき。
CapsLockキーは日本語と英語で機能が異なるため、正常に作動しません。
(AutoHotkeyは英語版の為)
なのでCapsLockキーは動かさないほうがよいかと思います。

#j::left    ;Win+Hに←キーを割り当て
#k::down    ;Win+Jに↓キーを割り当て
#i::up      ;Win+Kに↑キーを割り当て
#l::right   ;Win+Lに→キーを割り当て
#Space::Enter    ;Win+SpaceにEnterを割り当て;
#vk1Dsc07B::Send, {vkF3sc029}    ;Win+無変換に半角/全角を割り当て
#vk1Csc079::BS    ;Win+変換にBSを割り当て
#vkF2sc070::Del    ;Win+ひらがなにDelを割り当て
尚、このキー設定ではWin+lのログオフ機能を上書きしています。
もちろん、割り当てを消せば元の機能に戻す事が可能です。

非常にお勧めのソフトなので、是非試してみてください^^

拍手[1回]

どーも。Twitterのアイコンをなんとしても自作で作ってみたくなり、
無い絵心を必死に奮わせてInkscapeで描いてみた暇を持て余しているPrisonerです。

bird.jpg

ピヨピヨピヨ。

あ、我ながら上出来♪


・・・と思いきや
Twitterのアイコン用の画像なのに自分は何を思ったか

A4用紙一枚分の大きさをゆうに超える
巨大な化け物ヒヨコを作っているではないか。

あわてて化け物をヒヨコらしい小さいサイズに修正。(化け物のなごりを見たい方は画像をクリック)
あ、これがベクター画像の利点なんですよね。拡縮自在♪
ラスタ画像だとこうはいかない。
縮小でドットがつぶれたり。拡大するとドットがギザったリ。

さて、今日は久しぶりにPrison Breakいきます。

前回アブルチと騒動を起こしてしまったマイケル。
普段温厚な所長の逆鱗に触れてしまいます。

256-PDVD_024.jpg
I totally misjudged you, Scofield. I didn't think you were the agitating type.

私は君を完全に見誤っていたようだ、君はおとなしい人間だと思っていた。

agitateはかき乱す、興奮するの意。
マイケルはこのあと所長から90日間の懲罰房入りを命じられてしまう。
しかし兄の処刑は30日後に迫っている。懲罰房に入っていてはいられない。
そこでマイケルは・・・

256-PDVD_026.jpg
It's just, I'm not of much value to you in the SHU.
懲罰房に入ったら役に立てない。

ここでSHUは懲罰房の意味で使われている。
この返答だけではなんのこっちゃ?ですよね。
実は、ロヨラ大学を優等(magna cum laude)で卒業し、建築技師として安定したキャリアを積んでいたにも関わらず、銀行強盗を犯したマイケルを疑問に思った所長がマイケルを呼び出した事がありました。
マイケルは所長から厚い信頼を受けており、そのときにある頼みごとをされていたようです。それが・・・

256-PDVD_027.jpg

所長が奥さんの誕生日プレゼントとして作っていたタージマハルの模型。
これ以上作るとバランスがおかしくなり倒壊しかねないため、建築技師のマイケルの力を借りようとした経緯がありました。
このときマイケルは所長の申し出を断っていたのですが、この話を持ち出し、協力する約束をする事でなんとか懲罰房入りを免れる事に成功。
それにしても所長、あっさりと丸め込まされすぎです(笑)

さて、悪いことは続くもので、もう一つ問題が発覚。
マイケルの脱獄計画の中で、最も重要なキーを持っていたのが医療室(infirmary)であり、女医のサラでした。そこで、マイケルはサラと接触を図る機会を増やすため、「第一種糖尿病」と偽って定期的に医療室を訪れ、インシュリンの注射を受けていました。
しかし健康体にインシュリンの注射をしていたため、体が反応を起こし、
簡易検査の結果、サラに問い詰められる事になります。

256-PDVD_034.jpg
You're reacting to the insulin like you're not a diabetic.
インシュリンに対して糖尿病じゃない反応をしているわ。

256-PDVD_035.jpg

You sure it's Type 1 diabetes you've got? (Sala)
Ever since I was a kid. (Michel)

本当に糖尿病なの? (サラ)
子供のころから。 (マイケル)
このあとも色々と質問されそうなマイケルでしたが、タイミングよく医療室の電話が鳴りサラが席をはずす。
その隙にインシュリン過剰で震える手をもみほぐしながら・・・

256-PDVD_038.jpg

おもむろに医療室の窓の外を眺めるマイケル。

256-PDVD_036.jpg

その視線の先には・・・

256-PDVD_037.jpg

鉄格子をはさんで何やらロープらしきものが。

サラの電話が終わり、何とか精密検査までの時間稼ぎに成功したマイケル。
しかし一刻も早く手を打たなければ体が先にやられてしまう。

マイケルはこのあとどうするのか?
続。

拍手[0回]

今日は少しだけ堅苦しい話題をば。
下手をすれば、今日の記事は

今話題の睡眠導入剤なみに、あなたを睡魔の底にひきずりこむかもしれません。

近くに35歳前後の怪しい女性がいないことをご確認の上

できればカフェイン多めのコーヒーを飲みながらお付き合いください(笑)

それでは参りましょう。

お題は「技術力」

なぜ「技術力」?
・・・というのも。
はてぶ上位に来ていたcontroversialな以下の記事を読んで多々思う事があった為。

1位:
日本ITの国際競争力-アゴラ
2位:
「雑な物づくり」に未来がある - レジデント初期研修用資料

両記事ともアプローチは違うものの、足元の技術力に傾倒しすぎる日本の現状に警鐘を鳴らしている点で一致している。
でも、自分は思う。「足元の技術力があっての日本でしょ?」と。

是非元記事を参照していただきたいが、念のため1位の「日本ITの国際力」の記事の要旨を勝手ながら説明させていただく。
要旨を踏み違えている点があれば、是非ご指摘いただきたい。

「日本ITの国際競争力」

技術は「表の技術」と「裏の技術」に分けることができる。
表の技術は主にネットワークを主体とする「プラットフォーム」的な技術を指すのに対して、
裏の技術は製品の信頼性や細かなデザインなど「プロダクト」的な技術を意味する。

表の技術の成功例がアメリカのGoogle,facebookに代表される新参IT企業である。
日本は裏の技術に走りすぎた結果、高品質を売りとするJapanブランドの確立には成功したが、
ネットワーク機能-すなわち「表の技術」の確立に完全に出遅れた。

日本のIT産業は未だに富士通、IBM、NTTなど老練な大企業に握られており、世界的なベンチャーが未だに出てこない。その為、IT産業における日本の国際競争力の低下が著しい。
その原因として、
1.ベンチャー企業を育てる社会的風土が未熟(投資規模、投資期間)
2.IT業界、とりわけベンチャー企業の人材不足(優秀な人材は大手にとられるケースが多い)
3.大手企業による市場独占の長期化
の3つが挙げられる。

情報処理に疎い人間が意思決定を下すような腰の重い組織では、
いくら資金力・技術力があっても今更プラットフォーマとして地位を確立していく事は困難である。
技術力に優れた人間が「オタク」として排される日本のIT産業における未来は暗い。

といった内容。

IT業界における日本の現状が的確にとらえられているし、また技術を「表」と「裏」に分類する切り口が面白い。
論旨も大筋で合意できる内容なのだが・・・どうにもプラットフォーム至上主義の考え方には賛成できない。

実際、日本企業がプラットフォーム分野で乗り遅れた今、この分野で挽回する事は不可能に近いと考えている。プラットフォームの性質上、排他的であり、市場独占力が非常に強いためだ。何か余程の技術、強みのある分野がない限り、Google、Microsoft、Appleといった世界的なプラットフォーマーがひしめく市場において新参者は頭角を現すことすら難しいだろう。従ってIBMや富士通などの大企業であれ、ライブドアやソフトバンクなどの新参企業であれ、今更プラットフォーム分野に舵を切りこの分野で世界を目指す戦略は現実的ではない。

それならばどうすればいいか。

・足元の技術(プロダクト技術)を磨き続ける。社会の流れに安易に左右されない。
・ベンチャー企業、科学技術研究を育てる社会的基盤の確立

プラットフォームよりプロダクト。
自分は今でもそう思っている。
確かにAppleのipodは、シームレスな統合的環境をユーザーに提供する事で絶大な支持を得た。
でも決して足元のプロダクト技術を軽視していたわけではない、特に洗練されたデザイン、UIに関してはApple製品の右に出る企業はなかっただろう。
Googleはどうか。Googleは世界中から天才と目される一流の技術者を集め、一流のサービスを無料で提供し、世界中のユーザーを惹きつけた。
その根底にあるものはやはり一流のプロダクト技術である。

プラットフォーム技術は、確立されたプロダクト技術があって初めて意味を成すものである。

だから日本もプロダクト技術を磨き続ける限り、チャンスはあると思っている。
あとはチャンスを見つけられるか。チャンスを生かせるかにかかっている。

プロダクトであれ、プラットフォームであれ。
技術がなくなったら、日本は終わりだ。

もう一度、日本をこれだけ豊かにした「技術」を、その大切さを訴えたい。

事業仕分けに関して言えば。
今までの無駄を排除するべく、今まで切り込めなかった分野に大いにナタをふるうのは意義があることだ。
天下り先の確保や自身の年金に固執する保身ばかりのご老人には、今後の日本のために是非ご退場いただきたい。その部分にメスを入れることには大賛成だ。

でも費用対効果では測れないものもある。
科学技術、研究分野への投資はその最たるものだと思っている。

もう一度いう。政府の補助金なんて当てにする科学技術の発展なんてやめにしよう。

なんて意見も出てきている。
だが科学技術、研究分野への投資は投資家にとってあまりにリスクが大きく、また産業を育てる気概も希薄な日本においては、自前で投資家を見つけて研究費を調達する事は不可能に近いだろう。
その上国まで費用対効果を科学技術、研究分野に求めるようになっては・・・。
遊びや失敗をする余裕のないところにbreakthroughはないだろう。

長い目で見て、技術力が衰退してしまった先の日本に何が待ち受けているのかを、一人一人が冷静に見定める必要があると感じた今日この頃でした。

拍手[0回]

どうも!ここのところめっきり寒くなってきました。
しし座流星群が先日ピークを迎えましたね!しかも今年は当たり年だったみたいです。
なんでも一時間に数百個の流れ星が観測できるとか。

しかし先日の夜空は星一つ、月さえ見えない真っ暗で鬱々とした空模様。
おいうちをかけるかのようにシトシトと降り出す雨。

七月の皆既日食といい、今回の流星群といい、

雨雲の前に二連敗。

きっとこの雨雲の上では壮大な天体ショーが繰り広げられているんだろうな~と思うと。















katou.jpg

悔しいです!!






はい、前々から加藤さんの使いどころを探っていました(笑)
結果、かなり適当なところで使ってしまいました。(笑)

さて、そんなこんなで1ヶ月くらい前にAmazonで注文していた本がようやく先日届きました。
ちなみにこんな本↓

The Perfect Storm: A True Story of Men Against the Sea The Perfect Storm: A True Story of Men Against the Sea

HarperTorch 1998-07-15
売り上げランキング : 75555
おすすめ平均

Amazonで詳しく見る
by G-Tools

まだ前書き(foreward)しか目を通してないんですが、凄く面白そうな一冊。
裏書より一部抜粋。
October 1991. It was "the perfect storm" -
a tempest that may happen only once in a century-
a nor'easter created by so rare a combination of  factors
that it could not possibly have been worse.
Creating waves ten stories high and winds of 120 miles an hour,
the storm whipped the sea to inconceivable levels few people on Earth have ever witnessed. Few,except the sic-man crew of the Andrea Gail,
a commercial fishing boat tragically headed toward its hellish center.

 
時は1991年10月。
1000年に一度あるかないかの”パーフェクト・ストーム”と呼ばれる大嵐-
これ以上ない最悪の要因が重なりあった北東風が発生した。
建物の10階の高さにまで波をうねらせ、時速120マイルの暴風で海面を打ち付けるその猛威は想像を絶するもので、世界中の誰もが目にした事もない程のものであった。悲運なことに地獄の中心へ舵を切っていた漁船アンドレア・ゲイル号に乗った6人のクルーを除いては。

小さいころからこういうサバイバル系は大好きなんですよね^^
小学のころは「ロビンソン・クルーソー」や「十五少年漂流記」なんかよく読んでました。

この本は限りなく史実に近い形に近づけるべく、物語で用いられる会話や通信内容にいたるまで、実際の記録や同じような経験をした人たちへのインタビューを通して得られた実体験談を基にして書かれているらしい。

非常に楽しみ!

今回はPrison Breakはお休みです。

それでは☆

拍手[0回]

前のページ      次のページ
カレンダー
03 2025/04 05
S M T W T F S
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
フリーエリア
最新コメント
最新トラックバック
プロフィール
HN:
mak
性別:
非公開
趣味:
英語、読書、インテリア
バーコード
ブログ内検索
P R
カウンター
アクセス解析
ATOM  
ATOM 
RSS  
RSS 
Copyright ©   Before The Day Breaks...   All Rights Reserved
Design by MMIT / TemplateB2  Powered by NINJA TOOLS
忍者ブログ [PR]