読者です 読者をやめる 読者になる 読者になる

CodeIQ Blog

自分の実力を知りたいITエンジニア向けの、実務スキル評価サービス「CodeIQ(コードアイキュー)」の公式ブログです。

祝★CodeIQ 2周年・・・

メルハバー!CodeIQの中の人、葵提督です。

OL元帥からブログ書いてもいいよーって、許可が出たので初登場ですwktk。
私に書かせるなんて、いよいよ腹をくくったなCodeIQ…。

なぜ私が提督かというと、お目付け役の元帥がいないと大変なことになちゃう
可能性があるからなのでしたーテヘペロ。
…大変なことになったら、仮想空間にいる守護神が知らせて(ry

ま、どうでもいい話はこれぐらいにして、今回は遅ればせながら
祝★CodeIQ 2周年にあたり、出題者の皆様からいただいたお祝いコメントと
出題者の tbpgr 氏が皆さんに募ってくださったお祝いコードをご紹介いたしまーす!


【コメントをお寄せいただいた出題者の方々】※クリックで当該カ所にジャンプします
◆増井 雄一郎さん
◆柳井さん
◆tbpgrさん
◆stakemuraさん
◆鍋谷さん
◆kamimuraさん
◆結城先生

f:id:codeiq:20130416153220j:plain


===============================================================================

◆増井 雄一郎さん
仕事でプログラムに触れていると、業務に関する範囲の知識のみが深くなっていきがちです。
そんな中、「問題」という形で新しい視点を届けてくれるCodeIQは非常にユニークな存在だとおもいます。
これからも面白い問題を楽しみにしています!

◆柳井さん
エンジニアには、能力特化型の人が多いです。また現場では、技術力重視で人材を欲しがっています。
普通の「総合力の人間」を求めるのとは違う人材採用。そういった、どちらにも幸福なマリアージュを実現する場として、発展していっていただければと思います。

◆tbpgrさん
2周年おめでとうございます!デスマコロシアム管理人です。
はじめてお声がけを頂いてから、半年ほど一緒にお仕事させていただきました。
出題者として・解答者として、CodeIQの運営に対するイメージは一貫しています。
素早く、柔軟で、形式にとらわれず自ら判断できるプロフェッショナルの集まり。アジャイルなシステム開発チームはそれぞれが自律して行動できるプロフェッショナルであることが要求されますが、似たような理念を感じます。
その姿勢がCodeIQの現在の成功の秘訣なのだろうと思っております。改めまして、おめでとうございます。

◆stakemuraさん
目指せ書籍化!みんなの問題をまとめて、キュラゲの書店デビューを果たそう!

◆鍋谷さん
2周年おめでとうございます。
いま勤めている会社がヤバくなったり、上司との関係が決定的にマズくなったりした際には是非利用させていただきたいと思っていますので、末永く続くことを祈っています。
出題者としても、特に先日のじゃんけんなどでは楽しませて頂いています。
今後ともよろしくお願いしいます。

CodeIQ が 右肩上がりに末永く続いてほしいという願いを込めた問題が
公開されています。ぜひご覧下さい。

● 鍋谷さんの願いが詰まった問題はこちら!

◆kamimuraさん
出題者として問題を作成・フィードバックをしていると、出題者であるにもかかわらず、様々な方の解答からいろいろなことを学ぶことが出来て、とても楽しませてもらっています。
この楽しみが増えたのは、Code IQという場をつくって頂いたおかげなので、3周年、4周年…と続いていくことを期待してます!また、より良い問題を作成し、それに少しでも貢献出来たら嬉しいなぁと思っています。

◆結城先生
【お祝いのメッセージ】
結城浩です。いつもお世話になっています。

今日の夜中のことです。CodeIQの運営さんから、「結城先生、サプライズメッセージをお願いします」という依頼メールがやってきました。
当日に依頼が来るという、このメール自体が結城にとってはサプライズメッセージです!

それはさておき、「CodeIQ 二周年」おめでとうございます。
謎の生物「キュラゲ」も二歳になったということですね。心よりお誕生日をお祝いいたします。

結城はこれまでに「17の問題」を出題させていただき、トータルの挑戦者数はのべ「3,285人」になりました。
たくさんの方に挑戦いただき、ほんとうにうれしいです。

結城にとって、CodeIQでの出題は、問題を考えることも楽しく、また挑戦者からの解答を読むのも楽しい体験です。
少しでもおもしろく、また驚きに満ちた問題を出せるようにこれからもがんばりたいと思います。

【思い出のエピソード】
さて、思い出のエピソードとして、昨年の8月から9月にかけて出題した「クロッシング問題」があります。
問題そのものではなく、挑戦者の人数枠を増やす「増枠」にからむできごとです。

挑戦者数が256人になったときに結城は「増枠」をお願いしました。
そのときにO氏は「256人から431人」に増枠しました。
でも予想を超えるスピードで挑戦者数が増え、予定時間よりも先に終了してしまったのです。

O氏がその増枠数決定をたいへん悔しがっていたのが印象的でした。
メールで、
 「素直に2のべき乗則に従い、512にしておくべきでした…」
と後悔なさっていたのです。

アルゴリズムの問題は 《すごく身近なところにあった》 ことになりますね!

【今後のCodeIQに対して期待のメッセージ】
これからも、たくさんのエンジニアにいい刺激を与えるサイトでありますように!


===============================================================================

出題者の皆さま、お祝いのメッセージをありがとうございました!

===============================================================================

さて、もう1つ、CodeIQにとってうれしい動きが!!
それは、出題者の tbpgr 氏が、TwitterでCodeIQ 2週年のお祝いコードを募ってくださったこと。
そこで皆さんからいただいたお祝いコードの解説を、tbpgr氏にお願いいたしました☆

発端

出題者の tbpgr です。
2014/06/18はCodeIQの2歳の誕生日。

以下、わたくし tbpgr の心の声。

★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆

日頃、出題者としても挑戦者としても、CodeIQ様には
お世話になっているので、2周年のお祝いメッセージを送ろう。

ただし、私はプログラマ。
コードでお祝いをしよう。
CodeIQの運営担当チームは、2周年のお祝いのケーキに
コードでメッセージを書くぐらいだから
きっと喜んでくれるに違いない、と思いました。

f:id:codeiq:20140704193100j:plain

しかも、実行しないとメッセージを読めないやつ方がいい。
わくわくしながら読んでもらおう。

★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆

ということでTwitterにて、下記のツイートをしてみました。

言語はRubyです。
出力メッセージは「祝!CodeIQ 2周年」。

お祝いメッセージの文字列をUnicodeの配列にして、
packメソッドを実行したら日本語として出力されるようにしました。

Rubyのコメントはシャープ(#)なのでハッシュタグも含めて
Rubyの文法として正しいところが嬉しかったりします。

ちなみにお祝いメッセージの文字列からUnicodeの配列を取得する際は

$><<'祝!CodeIQ 2周年'.unpack("U*") # => [31069, 65281, 67, 111, 100, 101, 73, 81, 32, 50, 21608, 24180]

こうなります。

さて、上記のようなコードをツイートしたわけですが、
反応して似たようなツイートをしてくださった方がいらっしゃったので
下記のツイートで呼びかけてみました。


私を除き、7名の方がコードでお祝いメッセージを送ってくださいました。
(呼びかけの前に、自発的にツイートされていた方もいらっしゃいました)

せっかくなので、全ての祝辞をご紹介させていただきます。

◆◆◆◆ 一般枠 ◆◆◆◆
suppy193様

テーマ「運営担当者さん、1文字ずつかみしめてくださいね」
※テーマは本人に確認を取らず私が独断と偏見でつけています


お祝いコードは以下。

$><<31069.chr(u="utf-8")+65281.chr(u)+67.chr+111.chr+100.chr+101.chr+73.chr+81.chr+32.chr+50.chr+21608.chr(u)+24180.chr(u)

出力メッセージは「祝!CodeIQ 2周年」。

言語はRubyですね。
私は pack メソッドを使って文字コードの配列を一気に文字列に変換しましたが、
suppy193様の場合は chr メソッドで1文字ずつ変換しています。
きっと、運営担当者に「祝辞を1文字ずつ噛みしめてください」という思いが
込められているに違いないです。

一般のRuby使いの方は「$><<」の部分は見慣れないかもしれませんが、「print」と同じです。
文字数が少ないためショートコーディングでよく利用されます。

ryosy383様

テーマ「難読化もショートコーディング」
※テーマは本人に確認を取らず私が独断と偏見でつけています


お祝いコードは以下。

<?php echo base64_decode("56Wd77yBQ29kZUlRIDLlkajlubQ=") ?>

出力メッセージは「祝!CodeIQ 2周年」。

言語はPHP。

base64エンコーディングを利用して、decodeすることでコンパクトにかつ
難読化された状態でお祝いを述べています。
さすが、ショートコーディングに手慣れた ryosy383様 といったところでしょうか。

naoki_kp様

テーマ「え?読めないって?またまたー」(その1)
※テーマは本人に確認を取らず私が独断と偏見でつけています


お祝いコードは以下。

   			  			
	
     	 	  	 	
	
     	  			 	
	
     			 				
	
     	 				  
	
     	      	
	
     	    		
	
     		 				
	
     		  	  
	
     		  	 	
	
     	  	  	
	
     	 	   	
	
     	     
	
     		  	 
	
     			  	 	
	
     	  	   	
	
     	 	 	   
	
     			  	 	
	
     	 			  	
	
     	 		 	  
	
     	 	 
	
  
 
 
 

出力メッセージは「祝!CodeIQ 2周年」。

言語はWhitespace。
実行しないと、メッセージを読めないという意味では最高の選択肢となる言語ですね。

バッジ100個枠

バッジを100個取得した方だけに付与される「CodeIQ依存症バッジ」。

f:id:codeiq:20140609113433j:plain

2周年の2014/06/18時点で2人だけしか保持していない
そのバッジを保持している 依存症の 両名からの祝辞です。

cielavenir 様 その1

テーマ「え?読めないって?またまたー」(その2)
※テーマは本人に確認を取らず私が独断と偏見でつけています


お祝いコードは以下。

`k``s``s``skk`k``s``s`ksk``s`k``s``s`ksk``skk``s``s`ksk``s`k``s``s`ksk``skk``s`k``s``s`ksk``skk``s`k``s``s`ksk``skk```s``skk``skk``s``s`ksk``skk`k``s``s``skk`k``s``s`ksk``s`k``s``s`ksk``skk``s``s`ksk``s`k``s``s`ksk``skk``s``s`ksk``s`k``s``s`ksk``skk``s``s`ksk``s`k``s``s`ksk``skk``s`k``s``s`ksk``skk``s``s`ksk``s``s`ksk``skk`k``s``s``skk`k``s`k``s``s`ksk``skk``s`k``s``s`ksk``skk``s``s`ksk``s`k``s``s`ksk``skk``s`k``s``s`ksk``skk``s`k``s``s`ksk``skk``s``s`ksk``s``s`ksk``skk`k``s``s``skk`k``s``s`ksk``s`k``s``s`ksk``skk``s`k``s``s`ksk``skk``s``s`ksk``s`k``s``s`ksk``skk``s`k``s``s`ksk``skk``s`k``s``s`ksk``skk``s``s`ksk``s``s`ksk``skk`k``s``s``skk`k``s``s`ksk``s`k``s``s`ksk``skk``s`k``s``s`ksk``skk``s`k``s``s`ksk``skk``s``s`ksk``s`k``s``s`ksk``skk```s``skk``skk``s``s`ksk``skk`k``s``s``skk`k``s``s`ksk``s`k``s``s`ksk``skk``s`k``s``s`ksk``skk``s`k``s``s`ksk``skk``s`k``s``s`ksk``skk``s``s`ksk```s``skk``skk``s``s`ksk``skk`k``s``s``skk`k``s`k``s``s`ksk``skk``s`k``s``s`ksk``skk``s`k``s``s`ksk``skk```s``skk``skk``s``s`ksk``skk`k``s``s``skk`k``s``s`ksk``s`k``s``s`ksk``skk``s``s`ksk``s`k``s``s`ksk``skk``s``s`ksk``s`k``s``s`ksk``skk``s``s`ksk``s`k``s``s`ksk``skk``s`k``s``s`ksk``skk``s``s`ksk``s`k``s``s`ksk``skk``s``s`ksk``s``s`ksk``skk`k``s``s``skk`k``s`k``s``s`ksk``skk``s`k``s``s`ksk``skk``s``s`ksk``s`k``s``s`ksk``skk``s``s`ksk``s`k``s``s`ksk``skk``s``s`ksk``s`k``s``s`ksk``skk``s``s`ksk```s``skk``skk``s``s`ksk``skk`k``s``s``skk`k``s`k``s``s`ksk``skk``s``s`ksk``s`k``s``s`ksk``skk``s`k``s``s`ksk``skk``s`k``s``s`ksk``skk``s``s`ksk``s`k``s``s`ksk``skk```s``skk``skk``s``s`ksk``skk`k``s``s``skk`k``s``s`ksk``s`k``s``s`ksk``skk``s`k``s``s`ksk``skk``s``s`ksk``s`k``s``s`ksk``skk``s`k``s``s`ksk``skk``s`k``s``s`ksk``skk``s``s`ksk``s`k``s``s`ksk``skk``s``s`ksk``s``s`ksk``skk`k``s``s``skk`k``s``s`ksk``s`k``s``s`ksk``skk``s`k``s``s`ksk``skk``s`k``s``s`ksk``skk``s`k``s``s`ksk``skk``s``s`ksk``s`k``s``s`ksk``skk```s``skk``skk``s``s`ksk``skk`k``s``s``skk`k``s`k``s``s`ksk``skk``s`k``s``s`ksk``skk``s`k``s``s`ksk``skk``s``s`ksk``s`k``s``s`ksk``skk``s`k``s``s`ksk``skk``s``s`ksk```s``skk``skk``s``s`ksk``skk`k``s``s``skk`k``s``s`ksk``s`k``s``s`ksk``skk``s`k``s``s`ksk``skk``s``s`ksk``s`k``s``s`ksk``skk``s`k``s``s`ksk``skk``s`k``s``s`ksk``skk``s``s`ksk``s`k``s``s`ksk``skk``s``s`ksk``s``s`ksk``skk`k``s``s``skk`k``s``s`ksk``s`k``s``s`ksk``skk``s`k``s``s`ksk``skk``s`k``s``s`ksk``skk``s``s`ksk``s`k``s``s`ksk``skk``s``s`ksk``s`k``s``s`ksk``skk``s``s`ksk```s``skk``skk``s``s`ksk``skk`k``s``s``skk`k``s`k``s``s`ksk``skk``s`k``s``s`ksk``skk``s``s`ksk``s`k``s``s`ksk``skk``s`k``s``s`ksk``skk``s``s`ksk``s`k``s``s`ksk``skk``s``s`ksk```s``skk``skk``s``s`ksk``skk`k``s``s``skk`k``s``s`ksk``s`k``s``s`ksk``skk``s``s`ksk``s`k``s``s`ksk``skk``s``s`ksk``s`k``s``s`ksk``skk``s``s`ksk``s`k``s``s`ksk``skk``s`k``s``s`ksk``skk``s``s`ksk``s`k``s``s`ksk``skk``s``s`ksk``s``s`ksk``skk`k``s``s``skk`k``s`k``s``s`ksk``skk``s`k``s``s`ksk``skk``s``s`ksk``s`k``s``s`ksk``skk``s``s`ksk``s`k``s``s`ksk``skk``s``s`ksk``s`k``s``s`ksk``skk``s``s`ksk```s``skk``skk``s``s`ksk``skk`k``s``s``skk`k``s``s`ksk``s`k``s``s`ksk``skk``s`k``s``s`ksk``skk``s`k``s``s`ksk``skk``s`k``s``s`ksk``skk``s`k``s``s`ksk``skk```s``skk``skk``s``s`ksk``skk`k``s``s``skk`k``s`k``s``s`ksk``skk``s``s`ksk```s``skk``skk``s``s`ksk``skk`k`k```s``skk``skk```s``skk``skk``s``s`ksk``skk

出力メッセージは「CodeIQ 2周年!」。

言語はLazyKです。
詳しくは cielavenir 様 の力作解説記事にて。

「CodeIQ 2周年!」をLazyKで出力


cielavenir 様 その2

テーマ「記号で祝辞」
※テーマは本人に確認を取らず私が独断と偏見でつけています

ツイート

#codeiq2ndanniversary #perl http://ideone.com/VuowCA 

出力メッセージは「CodeIQ 2nd Anniversary!」。

お祝いコードは以下。

''=~('VA;02).4\`/$%jr^L.$^b..)6%23!29_t\=W'^'~~@@@@@@~#@@@##~~@@~#@@@@@@@@@@~~~@~');
 
__END__
#!/usr/bin/ruby
#coding:utf-8
 
STR='(?{print"'+"CodeIQ 2nd Anniversary!\n"+'"})'
a=STR.bytes
b=a.map{|e|
	0x60 <= e ? '@' :
	0x40 <= e ? '#' :
	'~'
}.join.bytes
puts "''=~('"+a.zip(b).map{|x,y|(x^y).chr}.join+"'^'"+a.zip(b).map{|x,y|y.chr}.join+"');"

伝家の宝刀 Perl による記号プログラミングですね。
__END__以下はコメントで、最初の1行の記号プログラムを生成するために
利用したRubyのスクリプトが記されてします。

記号プログラムをみて首をかしげている方は、
「perl 記号プログラミング」でグーグル先生に教えてもらうと意味がわかると思います。

Azicore様

テーマ「え?読めないって?またまたー」(その3)
※テーマは本人に確認を取らず私が独断と偏見でつけています


お祝いコードは以下。

++++[>++++<-]>[>++++>++>+++++++>++++++>++++++>+++<<<<<<-]>+++.>>-.-.>+++++++.<++++.>>+.<<++.+.>+++++.>.<<-.>---.<-----.-.+++++.<.>----.-.<.>++++++.>-.---.<<.>>>>++.<<<------.>-.<<.>>>.<<..>+++++.<++++++++.>----.<----.+.>>.<<-.+++++++.<.>----------.>+.<<.<.>>.>--.+.<<<++++++.++++++++.>+..

出力メッセージは「Congratulations on the 2nd anniversary of CodeIQ!!」。

言語はBranf**kです。
Azicore様は、私が出題している「デスマコロシアム」問題でも主に
Branf**k で解答していただいているので
私の中ではすっかり「Branf**kの人」という印象になりました。

Branf**k の案件があったら Azicore 様に発注しましょう!(・・・あるのか?)
BDD(バッジ駆動開発)の実践者でもあるため、バッジさえ付与すれば
どんなものでも開発していただけるようです。

【急募】Branf**k 3年以上, BDD経験者, ショートコーディング技能あればなおよい

などの求人を出している人事担当者様なら喉から手が出るほど欲しくなる人材です。

◆◆◆◆ 出題者枠 ◆◆◆◆
Nabetani様

Nabetani様は数学的な要素の強い問題やゲーム性の強い問題など様々な問題を出題しておられます。
Nabetani様出題問題一覧

テーマ「錬金術師」
※テーマは本人に確認を取らず私が独断と偏見でつけています


出力メッセージは「祝!二周年」。

言語はRubyです。
" #CodeIQ2ndAnniversary " という私が決めたハッシュタグを変換してお祝いメッセージを出力しています。
ハッシュタグに関しては Nabetani様への相談等一切なく、私が勝手に決めただけなのがすごいところ。
さらに、Tweetに収まるサイズでコンパクトに実装しているのもポイントですね。

チョコレートバー様

「再帰とJavaとDBをこよなく愛する狼の皮を被った羊」、ことAir_Hold様です。
Air_Hold様出題問題一覧

テーマ「Unicodeの皮をかぶったJava」
※テーマは本人に確認を取らず私が独断と偏見でつけています


お祝いコードは以下。

\u0063\u006C\u0061\u0073\u0073\u0020\u0041\u007B\u000D\u000A\u0070\u0075\u0062\u006C\u0069\u0063\u0020\u0073\u0074\u0061\u0074\u0069\u0063\u0020\u0076\u006F\u0069\u0064\u0020\u006D\u0061\u0069\u006E\u0028\u0053\u0074\u0072\u0069\u006E\u0067\u005B\u005D\u0061\u0072\u0067\u0073\u0029\u007B\u000D\u000A\u0053\u0079\u0073\u0074\u0065\u006D\u002E\u006F\u0075\u0074\u002E\u0070\u0072\u0069\u006E\u0074\u006C\u006E\u0028\u0022\u0043\u006F\u0064\u0065\u0049\u0051\u0020\u0032\u57F7\u5FF5\u3058\u3083\u306A\u304B\u3063\u305F\u0032\u5468\u5E74\u304A\u3081\u3067\u3068\u3046\u3054\u3056\u3044\u307E\u3059\uFF01\u0020\u0062\u0079\u0020\u30C1\u30E7\u30B3\u30EC\u30FC\u30C8\u30D0\u30FC\u0022\u0029\u003B\u000D\u000A\u007D\u000D\u000A\u007D\u000D\u000A

出力メッセージは「CodeIQ 2執念じゃなかった2周年おめでとうございます! by チョコレートバー」。

言語はJavaです。
Javaは \u0063 のようなUnicodeで記述されたソースコードを解釈することができます。
デコードすると下記のようなソースコードになっています。

class A{

public static void main(String[]args){

System.out.println("CodeIQ 2執念じゃなかった2周年おめでとうございます! by チョコレートバー");

}


===============================================================================

皆さん、CodeIQへのお祝いコードをありがとうございました!
3執念、もとい3周年に向けて、かんばりまーす。

葵提督、最近、電車に乗っている時に人をみて、
「笹野高史度 60」とか、「市原悦子度 40」とか勝手に判定する遊びを考えました!
スマホを見ている人が大半なので、凝視されていることに気づかないの。うふふ。

こいつ、やべぇと思った人は、下のハテブボタンか「いいね!」を押してね!

                                                                                                                                                                      • -
                                                                                                                                                                      • -

エンジニアのための新しい転職活動!CodeIQのウチに来ない?の特集ページを見る