Skip to content

Instantly share code, notes, and snippets.

@zonuexe
Created October 16, 2012 07:51
Show Gist options
  • Save zonuexe/3897882 to your computer and use it in GitHub Desktop.
Save zonuexe/3897882 to your computer and use it in GitHub Desktop.
101
# -*- coding: utf-8 -*-
#
# author: USAMI Kenta <[email protected]>
# license: NYSL 0.9982
#
puts %w(
字佐美健太
-忠吉さん,_tadsan
--Zonu.EXE
-平成元年
--ゆとり
---素人
----アマチュア
-----にわか
------意識高い
---≠開発者
----プログラミング言語趣味者
----FizzBuzz
-SNS
--pixiv:105589
---絵心なし
--slideshare:tadsan
--github:zonuexe
--blog:d.hatena.ne.jp/zonu_exe
-北海道砂川市
--北海道滝川高校
---学校新聞
---図書館
--北海道工業大学_工学部_情報ネットワーク工学科
---留年
---卒業延期
-献血趣味
-WILLCOM
--京ぽなー
---070-5601-3604
---AH-K3001V_(京ぽん)
---WX310K_(京ぽん2)
----Opera
-----JavaScript
------bookmarklet
--Windows_Mobile
---Advanced_W-ZERO3
---Hybrid_W-ZERO3
--WILLCOM_D4
---Windows_7
-アニメソング
--foobar2000
---TAK
----16237_tracks
----6wk_2d_9:42:20
---AAC
---DAP:_Creative_ZEN_Style
---CUE_Sheets
----秀丸
-VOCALOID聴き専
--ラマーズP
-テト親
-假名遣
-SKKer
--AquaSKK
--SKK日本語入力FEP
--ibus-skk
--npiiii(正字正かなづかひ用假名漢字變換辭書)_-_自作
-やる夫スレ読み専
-Browser
--Google_Chrome_(dev_channel)
--w3m
-HTML_Strictor
--ISO-HTML,_CSS_2
---デザインセンスなし
--HTML_5
-プログラミング
--FizzBuzz
-PC:MacBook_Pro
-OS
--Ubuntu_12.04
--OS_X_v10.8_Mountain_Lion
---EDITOR=emacs
---PAGER='lv_-c'
---SHELL=zsh
-プログラミング言語
--シェルスクリプト(sh,_bash,_zsh)
--Rubyist
---{:moe_=>_['method_chain',_'lambda'],
---_:nae_=>_['end',_'def']}
--Python_user
---{'moe':_['List_comprehension',_'lambda',_'conditional_operator'],
---_'nae':_['Method',_'Unicode(UCS)']}
--勉強中
---Haskell
---F#,_OCaml
---lambda_calculus
---Scheme_(SICP)
---Emacs_Lisp
-わかること:_言語仕様
-足りないもの:_開発経験,_開発技法(TDDなど),_設計技法(デザインパターン),_アルゴリズム
-勉強会/コミュニティ
--Ruby札幌
---札幌Ruby会議2012(スタッフ,_レポート班)
--Python札幌
---Python初学者向け読書会@札幌(元主宰)
--セキュリティ_&_プログラミングキャンプ
---2010_プログラミングコース言語組
----`parse.y`-hack_(case-modifier,_hash-literal)
---2011_プログラミングコース言語クラス_チュータ
).tap{ |a|
@debug = ARGV[0] == "--debug"
raise "NOT reach 101 words! ><" if a.size != 101 unless @debug
}.map{ |s|
s.gsub('_', ' ').gsub('\ ', '_')
}.map{ |s|
l = s.scan(/^(-+)/)[0]
!(l.nil?) && s.sub!(/^-*/, " " * l[0].size) || s
}.tap{ |obsolete|
# 実装したけど、別におもしろくもないので廃止
true or @rand = ->{
@randomizer ||= Random.new;
(@randomizer.rand(2) == 0) ? -1 : 1
}
false and @shift = ->(i){
@last = case
when i < 3
i
when a.size - i < @last
a.size - i
when @last == 1
2
else
@last + @rand[]
end
}
}.tap{ |format|
@width = "FizzBuzz".size + 2
@adjust = ->(s){
l = s.to_s.size
m = (@width - l) / 2
r = "#{' '*m}#{s}#{' '*m}"
(l.odd? && " " || "" ) + r
}
}.tap{ |fizzbuzz|
@is_fizz = ->(n){ n % 3 == 0 }
@is_buzz = ->(n){ n % 5 == 0 }
@is_fizzbuzz = ->(n){ @is_fizz[n] && @is_buzz[n] }
@to_fizzbuzz = ->(n){
case
when @is_fizzbuzz[n]; :FizzBuzz
when @is_fizz[n] ; :Fizz
when @is_buzz[n] ; :Buzz
else ; n
end
}
@fizzbuzz = ->(n){ @adjust[@to_fizzbuzz[n]] }
}.each_with_index.map{|e, i|
nil and "#{"%3d" % i} #{'---' * @shift[i]} #{e}"
"[#{@fizzbuzz[i+1]}] #{e}"
}.join("\n")

101

何ですかこれ

お察しください

Usage

curl https://raw.github.com/gist/3897882/101.rb | ruby | lv

著作権

うさみさんが書きました。楽しんで書きました。 NYSL でどうぞ。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment