タグ

ブックマーク / melborne.github.io (10)

  • Rubyで素因数を求める

    Rubyで素因数を求める ~Rubyでオイラープロジェクトを解こう!Problem3 Problem 3 - Project Eulerより The prime factors of 13195 are 5, 7, 13 and 29. What is the largest prime factor of the number 600851475143 ? 13195の素因数は、5、7、13および29である。 では600851475143の最大の素因数はいくらか。 素因数 - Wikipedia 素因数は自然数で、ある自然数の約数になる素数である。 最小の素数から対象の数を割って割り切れる素数を順次見つけ出す。 def prime_factor(n) prime = 2 result = [] loop do break if n < prime while n.modulo(prime

    iR3
    iR3 2014/03/31
    ほ〜
  • Rubyの力で僕のパパを貧乏父さんから金持ち父さんにしてよ!

    まさし君の家はお金持ちでした まさし君はちょっと意地悪だったけど クラスでビデオゲームを持っているのが彼だけだったので 授業が終わるとみんなまさし君の家に行ってゲームをしました 週末になるとまさし君は家族で湖畔の別荘にいって 釣りをしたりバーベキューをしたりしていて 僕らをたまにその別荘に誘ってくれました そんなときには決まってまさし君のお父さんが 魚の釣り方とかボートの漕ぎ方とかを 優しく僕らに教えてくれました 別荘からの帰り道でいつも僕らはこうつぶやいていたのでした 「まさし君のパパが僕のパパだったらいいのに..」 幸か不幸か現実世界ではそんなことは起きませんでした。 果たして、Rubyの世界ではどうでしょうか?早々試してみましょう。 まずは僕の現実から。 class PoorDad private def money 10000 end end class Me < PoorDad

    iR3
    iR3 2013/11/15
  • Excelデータを最速でWebアプリ(Heroku)にする<del>10</del>9のステップ

    ローカルには映画の視聴記録とかべ歩きのお店評価とか投資履歴とかガラクタコレクションリストとかの自身の活動記録的なデータが溜まります。そしてどういうわけかそれらのデータは大概表計算ソフト「Excel」の上に置かれているのです。その結果、溜めたはいいが有効に活用されない、場合によっては見ることすらしないという事態に陥ります。それらのデータが来的に置かれる場所が「データベース」であり、その活用によりデータ価値が向上するということに誰も異論はないとしても、データはExcelに置かれるのです。 理由は一つ。そう、データベースは敷居が高いのです。 データベースの敷居が下がれば、みんながローカルのデータをもっともっと大量に公開して世の中はもっと便利になるに違いありません。 まあ、実際のところはよくわかりませんが。 そんなわけで… データベースの敷居を下げるべく、CSVデータを簡単にデータベース化する

    iR3
    iR3 2013/11/11
    ふむふむ
  • 知って得する!55のRubyのトリビアな記法

    Rubyはたのしい言語です。Rubyを触っているとマニュアルにも書いていない「小さな発見」に遭遇することがよくあります。このような「発見」は、プログラムの質や効率の改善には直結しないかもしれません。いや、むしろチームプログラミングでは妨げになる可能性すらあります。しかしその一方で、言語自体が自分の知らない領域を持ち続けていることが、その対象に対する興味を失わせないための大きな要因である、というのもまた疑いのない事実なのです。つまり「発見」はたのしさに直結しているのです。 このブログにおいて「知って得するRubyのトリビアな記法」というタイトルで、今まで3回記事を書きました。 “知って得する21のRubyのトリビアな記法” “第2弾!知って得する12のRubyのトリビアな記法” “第3弾!知って得する12のRubyのトリビアな記法” これらのトリビアには、ネット検索で見つけたもの、Twitt

    iR3
    iR3 2013/03/06
    ほ〜
  • RubyのコードをFlipして暗号化する?

    前の記事で「twitter→ɹəʇʇɪʍʇのように英数字を180度回転して表示する」スクリプトをRubyで書いたのですが、実装が今ひとつでしたので、スクリプト自身に変換テーブルを持たせたシンプルな設計に書き直しました。Flippyという名前も付けました。 Gem化もしたので、gem install flippyで使うことができます。 flippy | RubyGems.org | your community gem host melborne/flippy · GitHub Flippyモジュールの使い方 FlippyモジュールはStringクラスにincludeするなどして使います。(flippyをrequireすればStringにincludeされるよう仕様を変更しました)。その場合、Stringに#flipおよび#unflipメソッドを追加します。flipは文字列を180度反転した

    iR3
    iR3 2013/01/30
  • 一生涯はてな記法しますか?それともMarkdownしますか?

    はてなダイアリー はてなダイアリーでははてな記法という、HTMLの簡略記法が使えます。この記法を利用することで簡単に整形された日記を書くことができます。私も6年間はてなダイアリーと、はてな記法のお世話になりました。 しかしはてな記法は、はてな独自の簡略記法なので他では使えません。従って一つの不安がよぎります。 この先もし10年、20年とブログを書き続けるとしたら、それははてな記法でいいのかと。 はてなダイアリーには別の不満もあります。次のようなものです。 HTML整形後の文章をローカル環境で確認できない。 記事に変更が生じてWeb上で直接編集した場合に、ローカルデータと内容が不一致となり、その管理が煩雑となる1。 あんなにサンプルがあるのに、イケてるデザインが見当たらない2。 基的にサイトが重い。 Github Pages + Jekyll そんな理由から私はGitHub PagesとJ

    iR3
    iR3 2013/01/22
    もっと早く出会いたかった。
  • 30分のチュートリアルでJekyllを理解する

    (追記:2013-05-20) 記事はJekyllバージョン0.12.0に対応しています。Jekyllバージョン1.0のリリースに伴い、記事を改訂した記事を投稿しましたので、最新版に対応したチュートリアルについてはそちらを参照下さい。 “Jekyllいつやるの?ジキやルの?今でしょ!” (追記:2012-12-07) 記事を電子書籍化しました。「Gumroad」を通して100円にて販売しています。内容についての追加・変更はありませんが、メディア向けの調整および誤記の修正を行っています。 電子書籍「30分のチュートリアルでJekyllを理解する」EPUB版 このリンクはGumroadにおける商品購入リンクになっています。クリックすると、オーバーレイ・ウインドウが立ち上がって、この場でクレジットカード決済による購入が可能です。購入にはクレジット情報およびメールアドレスの入力が必要になりま

    iR3
    iR3 2013/01/22
    ふむふむ
  • Rubyを使って「なぜ関数プログラミングは重要か」を読み解く(改定)─ 前編 ─ 但し後編の予定なし

    2年ほど前に書いた記事を電子書籍化して「M’ELBORNE BOOKS」で販売するために全体的な見直しを行なって入稿する段になって、これにはベースとなっている他者の論文があって言ってみればこの記事はそのマッシュアップになっているんだけれども、その著者の許可もなくその表現が全く別物だとしてもその主張のあらすじが残っている限りにおいてこれを販売することが果たしていいことなのかという思考に遅ればせながら陥り、それが仮に法的に問題ないとしてもなんだか一表現者の行為としての妥当性を幾分欠いているという結論に至って販売を思い留まった。かと言って折角書き直したものをこのままお蔵にするのもなんだか寂しいなあという気分も一方であり、まあ原作者の意に反したものでもないだろうからブログの記事なら許してくれるよねもう2年前にも書いちゃってるしという勝手な解釈の下、ここにその記事を公開しましたのでお時間の許すRub

    iR3
    iR3 2013/01/21
    GJ!なるほど「二種類の強力な糊、つまり関数の貼り合せをする糊(高階関数)と、プログラムの貼り合せをする糊(遅延評価)」
  • RubyによるMarkdownをベースにしたEPUB電子書籍の作り方と出版のお知らせ

    「情報革命」とは何でしょうか。それはネットを介した大量情報の流入による社会生活の変化の連続のことです。情報革命の初期に始まる一つの変化は「見る変化」です。情報を最も効率的に処理できる人間の入力デバイスは「目」であり、そのための環境作りがまず構築されるでしょう。 スマートフォンが携帯電話を駆逐したのは、iPhoneのデザインが素晴らしかったからではありません。人々が大量の情報を処理するためには、非効率な「耳」デバイスを置いて、より効率的な「目」デバイスを活用する必要があったからです。 7インチタブレットの新製品投入が相次いでいます。これは何を意味し、何を駆逐するのでしょうか。そのフォルムを見れば答えは明らかでしょう。それはまさに「書籍」なのです。7インチタブレットは「アトムの読書」を「ビットの読書」にすべて置き換えようとしています。 スマートフォンは、話し言葉を文字化して見るためのデバイスと

    iR3
    iR3 2012/12/04
    これは楽しみなツールだ∠
  • TapがRubyの新たな制御構造の世界を開く

    Object#tapはそのブロックの評価結果を捨てるという風変わりなメソッドです。これは主としてメソッドチェーンにおける途中経過を覗き見るために使われます。 "charlie".upcase.tap{ |s| p s } # => "CHARLIE" .reverse.tap{ |s| p s } # => "EILRAHC" .gsub(/[aeiou]/i,'*') # => "**LR*HC" tapの副作用を使う もっとも、その評価結果を捨てるというユニークな特徴をうまく使えば、もっと面白いことができます。 例えば、ある変数の値を取得した上でその変数の値をリセットしたい場合を考えます。通常は次のように実装するのでしょう。

    iR3
    iR3 2012/10/30
    Githubという場はこうやって使いこなしてゆくのか
  • 1