タグ

rubyとprogrammingに関するNyohoのブックマーク (13)

  • つくって学ぶプログラミング言語 RubyによるScheme処理系の実装

    プログラミングをより深く理解するための近道は、プログラミング言語を実装してみること。SchemeのサブセットをRubyで実装していくことで、プログラムはどう実行されるのか、その基がはっきり分かります。 ※書はCC BYにより配布されています。上記の「買い物かごへ」ボタンからは有償で購入できます。無料で入手したい場合は、下記リンクよりダウンロードしてください。なお、有償版も無償版も内容は同一です。 EPUB版PDF版内容紹介プログラムは書けても、その基礎となっている計算機科学(コンピュータサイエンス) の理解があやふやな人を、著者は多く見てきました。プログラミングに自信があるという人が、もう一歩先に進める道を示したいというのが、この文書を書き始めた動機です。 この文書を読むことで次の効果が得られることを期待しています。 プログラミング言語とは何かを深く理解することで、プログラミングのレベ

    つくって学ぶプログラミング言語 RubyによるScheme処理系の実装
  • 『プログラミング Elixir』を読んで - まめめも

    プログラミングElixirposted with amazlet at 16.08.22Dave Thomas オーム社 売り上げランキング: 1,168 Amazon.co.jpで詳細を見る 川崎 Ruby 会議 01 の会場で、訳者の笹田さん・鳥井さんから一冊献いただきました!ありがとうございます!さっそく読み終えたので、紹介を書いてみます。 書評 Elixir に興味がある人がこのを読むべきなのは、言うまでもないと思います。そういう人は、Elixir に詳しそうな人による書評(このへんとかこのへんとか)を見るといいと思います。 正直、自分はさほど Elixir に興味ないのですが、このはとてもおもしろく読むことができました。なぜかというと、Ruby っぽいオレオレ言語を作りたい野望を漠然と持ってる人間には、非常に刺激的な内容だったからです。Elixir 自身が「Erlang V

    『プログラミング Elixir』を読んで - まめめも
  • バルス祭にTwitter APIとRubyを使って「バルス」とつぶやいた人にメンションするアプリを作った - ワタタツの日記!(2016-01-15)

    ☆ バルス祭にTwitter APIRubyを使って「バルス」とつぶやいた人にメンションするアプリを作った バルス祭と挑発するTwitter社 今夜は『金曜ロードSHOW!』にてスタジオジブリの名作映画『天空の城ラピュタ』が放送されました。 ここ数年は、その放送を見ながらTwitterで実況しつつ、滅びの呪文「バルス」に合わせてみんなで「バルス」とつぶやくというのが、Twitterのストレステストになりつつ、Twitterユーザの楽しみになるというのがすっかり定着しております。 そんな、放送のたびに大量の「バルス」に耐えたTwitter社が、今日に合わせて、 「バルス」歓迎? Twitter公式も「ぜひお楽しみください」「もしかするとサーバ遅くなるかも」 (ITmedia ニュース) という挑発的な声明を出しておりました。 開発 これは受けて立とうと思い、Twitterで「バルス」とつぶ

    バルス祭にTwitter APIとRubyを使って「バルス」とつぶやいた人にメンションするアプリを作った - ワタタツの日記!(2016-01-15)
    Nyoho
    Nyoho 2016/01/16
    書きました! 書きまみた! 交流も出来てとても世の中平和になる感じがしました! ソースは公開しています。
  • Ruby初心者必見!?「ビンゴカード作成問題」のリファクタリング風景をお見せします #codeiq - give IT a try

    はじめに 先月、CodeIQにビンゴカード作成問題を出題しました。 CodeIQに「ビンゴカード作成問題」を出題しました。みなさんの挑戦をお待ちしてます! - give IT a try このビンゴカード作成問題、ありがたいことに50人もの方が解答を送ってくれました。 挑戦してくださったみなさん、どうもありがとうございました。 前回のエントリでは優秀作品ベスト3を発表しました。 今回のエントリはその続編です。 一部の解答(5)について、僕が実際にいただいた解答を採点しつつ、リファクタリングする様子を動画に撮っておいたので、その様子をお見せしちゃいます。 おさらい「ビンゴカード作成問題」とは? ビンゴカード作成問題とはその名の通り、Rubyを使ってビンゴカードを出力する問題です。 Bingo.generate_cardというメソッドを呼ぶと以下のような文字列を出力する、というのが要求仕様で

    Ruby初心者必見!?「ビンゴカード作成問題」のリファクタリング風景をお見せします #codeiq - give IT a try
  • 絵本でプログラミングを6歳の女の子にも―、北欧から世界に広がる女性プログラマの輪 | HRナビ by リクルート

    どうやったら6歳の女の子に「ガベージ・コレクション」や「抽象化」というプログラミングの概念が分かるのか? 女性向けの無料プログラミング・ワークショップとして2010年に始まった「Rails Girls」創始者のリンダ・リウカス(Linda Liukas)さんは最近、子どもたちにプログラミングを教えるための絵を描いている。主人公は、Rubyという名前の女の子だ。 「フィンランドでは2016年から学校でプログラミングが必修になります。7歳以上、男女問わずです。ですが、これまでは小さな女の子もプログラムをやるべきだ、と言う風になっていませんでした。私は女の子にもプログラミングをやってほしいと思っています。なぜなら、プログラミングやソフトウェアといったものは、もう世界中どこにもあるものですから」 リンダさんが描くのは、プログラミングの概念を日常生活にたとえた一種の喩え話だ。 プログラムの実行には

    絵本でプログラミングを6歳の女の子にも―、北欧から世界に広がる女性プログラマの輪 | HRナビ by リクルート
    Nyoho
    Nyoho 2015/02/25
    面白そうだなあこれは。「日本でも出版したいという。」期待
  • プロ生ちゃんが聞く! 2015年のプログラミング言語動向 | gihyo.jp

    あけましておめでとう! 私、暮井 慧。今年もよろしくね。ところでみんな、いろいろなプログラミング言語の動向とか気になるよね? というわけで、プログラミング言語の去年のふりかえりと今年の予定なんかを、スペシャルな人たちに聞いてきたよ! Ruby 最初は、みんな大好きRuby! Rubyコアコミッターの小崎資広さんに聞きにきたよ。小崎さんは、Linuxカーネルコアの開発者でもあるんだって! Rubyの2014年はどんな年でした? 慧 こんにちは。2014年のトピックを聞かせてください! 小崎 まずは、Ruby 2.2のリリースでしょう。リリース直前にいろいろとトラブルが発生してやきもきさせましたが、無事12/25にリリース。クリスマスにリリースする慣例を守ることができました。 今回のリリースはガベージコレクションの改善がメインで、速度の向上に加えて、Symbolがガベージコレクトの対象になるよ

    プロ生ちゃんが聞く! 2015年のプログラミング言語動向 | gihyo.jp
  • 内包表記について、すごい合同勉強会で話した | そんなこと覚えてない

    すごい合同勉強会2014 in 広島でセッションしたので内容を公開しておく。 今回は「私がモナドの内包表記という名前を知った時の感覚を伝えよう」というのが目的でした。 さりげなく「私がモナドに感じている効能を伝える」というのもしているのですが、そこは当にさりげなく。 内包表記。その意味を知らずに5年前ぐらいにpythonで利用していて、forやif文字通りにうけとっており、その動作を正しく理解できてないときがありました。 現在とその間にHaskellを学び、その5年前の自分に内包表記を伝えるにはという観点で話を進めました。 まず、リストの内包表記ですが、リストを生成を簡単にしてくれる機能です。 内包表記は、どうやら数学の集合の記法である内包的記法に由来するそうで、「関数プログラミング入門 ―Haskellで学ぶ原理と技法―」か何かで読んだ記憶があります。 その対になる記法として外延的記法

    Nyoho
    Nyoho 2014/11/04
    普通の集合の書き方、みんな好きそうでよかったよかった。
  • RubyにHaskellよりも強力なパターンマッチを実装した - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    RubyにHaskellよりも強力なパターンマッチを実装した - Qiita
  • 新人プログラマに知ってもらいたいメソッドを読みやすく維持するいくつかの原則 - Qiita

    エンジニア組織を強くするためのを出版しました Qiitaでエンジニアリングをめぐる様々なコミュニケーションの問題とその解決策や考え方を書いてきた。それらの背後にあるエッセンスをこの度書籍として出版するに至りました。 エンジニアリング組織論への招待 ~不確実性に向き合う思考と組織のリファクタリング この書籍は、エンジニアリングを「不確実性を削減する」という第一原理で捉え直し、様々なエンジニアリングとその間のコミュニケーションをめぐる現象を説明していくものです。 あわせて読みたい 新人プログラマに知ってもらいたいメソッドを読みやすく維持するいくつかの原則 新人プログラマに知っておいてもらいたい人類がオブジェクト指向を手に入れるまでの軌跡 ペアプログラミングして気がついた新人プログラマの成長を阻害する悪習 この記事について この記事は、新人向けの研修内容を再編集してお送りします。 この記事の内

    新人プログラマに知ってもらいたいメソッドを読みやすく維持するいくつかの原則 - Qiita
  • Rubyのblock、Proc、lambdaを理解する - このブログは証明できない。

    新年おめでとうございます。2009年の最初のネタはプログラミングのネタにすることにしました。 Rubyについてのステキなエントリーがあったので、紹介します。 no title 私は翻訳能力がないばかりか、リーディング能力も貧相です。ぜひ、原文を読んでみてください。 はじめに Rubyblock、Proc、lambdaはパワフルですが、解りにくい。Rubyはクロージャを使う方法が4つあって、それぞれチョットずつ違います。ここでは、そのへんを解説したいと思います。 Block もっとも簡単で、かつRubyっぽいと言えば、Blockですね。 array = [1, 2, 3, 4] array.collect! do |n| n ** 2 end puts array.inspect # => [1, 4, 9, 16] 何が起こっているか? まず、block付きでArrayの"collect

  • mrubyを小さくしたり大きくしたりした話 - スペクトラム

    最近mrubyにコミットしているので自分の活動をまとめます。 mrubyを小さくした話 mrubyでは、文字列の扱いはシンプルにchar*を構造体でラップしていました。 struct RString { MRB_OBJECT_HEADER; mrb_int len; union { mrb_int capa; struct mrb_shared_string *shared; } aux; char *ptr; }; そのため1つの文字列毎に、構造体分と文字列分の2回のmalloc/freeが発生していました。 ここでCRubyのRStringを見てみます。 #define RSTRING_EMBED_LEN_MAX ((int)((sizeof(VALUE)*3)/sizeof(char)-1)) struct RString { struct RBasic basic; union {

    mrubyを小さくしたり大きくしたりした話 - スペクトラム
  • 「設定」を設計するための資料 - Hibariya

    プログラムは、なるべく何もしなくても良い感じに動いてくれるのが理想的だけど、実際には何らかのかたちでユーザの設定を必要とすることがある。 Rails を使うときは config/application.rb でタイムゾーンを指定したり、DB へ接続するための情報を config/database.yml に指定する。 Bundler の挙動を変えたければ bundle config で設定を変更する。 Gem をインストールするときに毎回指定したいオプションがあれば、~/.gemrc に追記する。 もし自分の関わるプロダクトに「設定」のAPIが必要になったとき、何を判断の基準にして設計すればいいだろう。 ちょっと近所を見渡すだけでも、「設定」のやり方には色々ありそうだ。 設定という視点から、Rubyist にとって身近なプロダクトたちを資料として眺めてみた。 (NOTE: ちょっと悩みなが

  • Ruby Conf 12 - Y Not- Adventures in Functional Programming by Jim Weirich

    One of the deepest mysteries in the functional programming world is the Y-Combinator. Many have heard of it, but few have mastered its mysteries. Although fairly useless in real world software, understanding how the Y-Combinator works and why it is important gives the student an important insight into the nature of functional programming. Join with us on this journey of understanding. Be prepared

    Ruby Conf 12 - Y Not- Adventures in Functional Programming by Jim Weirich
    Nyoho
    Nyoho 2014/02/21
  • 1