タグ

ブックマーク / mametter.hatenablog.com (11)

  • Ruby で内包表記 - まめめも

    Ruby 会議 2007 - Log0610-S5 RubyKaigi でみんな感動したと噂の Dave Thomas さんの講演のログ。やっぱり内容自体はどうでもよくて、ここが気になりました。 たとえば list comprehension がほしい。 Haskell の内包表記 (内包表現) とか確かにかっこいいけれど、Ruby の文法に Haskell の内包表記の文法を入れるのは明らかに無理だし、Python みたいな文法 ([x**2 for x in range(10)] みたいなの) は勘弁して欲しいですよね。それに、今の Ruby でも (ネタの範疇なら) 似たようなことができそう。そこで、以下のようなコードが動くようなものを作ってみました。 # [ x^2 | x <- [0..10] ] みたいなもの p list{ x ** 2 }.where{ x.in(0.

    Ruby で内包表記 - まめめも
    suginoy
    suginoy 2018/11/08
  • Optcarrot: Ruby で書かれたファミコンエミュレータ - まめめも

    ウソみたいな当の話。Ruby でファミコンエミュレータを書いてみました。 気になる速度ですが、自分の環境では 20 fps ちょっと出ます。ファミコンは 60 fps なので、実速の 1/3 です。Ruby3x3 (Ruby 3 は Ruby 2 の 3 倍速い)という matz の宣言が実現すれば、実速が達成されることになりますね! 試してみたい人はこんなふうに実行してください。 $ gem install ffi $ git clone http://github.com/mame/optcarrot.git $ cd optcarrot $ bin/optcarrot examples/Lan_Master.nesSDL2 か SFML が適切にインストールされている必要があります。Debian/Ubuntu なら apt-get install libsdl2-dev で。 Ru

    Optcarrot: Ruby で書かれたファミコンエミュレータ - まめめも
    suginoy
    suginoy 2016/10/04
  • Quine Tweet: 自分自身へのリンクを持つ再帰的ツイート - まめめも

    This tweet is recursive. https://t.co/bZISaPd3Ts— Quine Tweet (@quine_tweet) 2016年9月19日 「このツイートはありません」となっていますが、URL をクリックすれば自分自身に飛べます。 以下、このツイートが生まれるまでの経緯を長々と書きます。 問題設定 そのツイート自身の URL を埋め込んだツイートを作ります。ツイートの URL はツイートをした後でないと決まらないし、ツイート文面を後から更新する手段はない(と思う)ので、単純ですが意外に難しい問題です。 調査 ご存知のように、現在のツイートの URL は次のような形式です。 https://twitter.com/<username>/status/<id>username はそのままなので、id を事前に予測できれば解決です。*1 調べてみるとこの id

    Quine Tweet: 自分自身へのリンクを持つ再帰的ツイート - まめめも
    suginoy
    suginoy 2016/09/21
  • Writing Qlock - まめめも

    俺の卒業制作 書き時計 pic.twitter.com/NSBi45Lj77— K / $uzuki (@BellTreeNursing) 2016, 2月 7 うわーすごいなーと思ったので、パクリ インスパイアされてみました。Ruby プログラムで書き時計。 eval(T=%(eval(%(E=27.chr;Z=32.chr;$ ><<E+"[2J";K=->q{(q-q*(1-3844.0/q.abs2)**0.5) /2};I=->f,a,b,z,t=p{(a-b).abs>(f<1?1:1-(K[a]-c=K[b]). abs)?I[f,c= (a+b)/2,b,I [f,a,c,z,t],t :''''''''''''''''''''''''''''''': ]:f<1?(x,y=b. rect;d="'."[y%2 : : ];c=z[y/2+5];c[ x+=58]=t||(

    Writing Qlock - まめめも
    suginoy
    suginoy 2016/02/10
  • 告知:「超絶技巧プログラミング」の本を書いてます - まめめも

    突然ですが告知です。今までこの日記とかで公開してきた奇妙なプログラムを集めて、を書くことになりました。今日はエイプリルフールではありません。 コンセプトは、「実務に役立たないプログラミング」です。誰得?という声が聞こえてきそうですが、手段としてのプログラミングしか知らない人に、一味違うプログラミングの楽しさを知ってもらうきっかけになればいいなとか考えてます。 という建前ですが、内容は完全にアレです。新作を含む30以上のプログラム紹介と、その開発技法の解説をとうとうと語っています。当に誰得なですが、Qlobe とか Merry Quine-mas とか Quine リレーとか ASCII Fluid とか小文字だけ Ruby プログラムとか放射線耐性 Quine とかについて、ネタバレを知りたい人 (誰?) や自分でも書いてみたい人 (誰?) は必読です。 あと、どんな風にネタを考

    告知:「超絶技巧プログラミング」の本を書いてます - まめめも
  • Ruby の例外クラスは分類が粗すぎる or 細かすぎる - まめめも

    と思いません? def foo(x) end foo(1, 2) #=> wrong number of arguments (2 for 1) (ArgumentError) 1.step(10, 0) { } #=> step can't be 0 (ArgumentError) a = []; a << a a.flatten #=> tried to flatten recursive array (ArgumentError) 確かにどれも Argument に関する Error ではあるんだけど *1 、全部同じ例外クラスというのは粗すぎですよね。メッセージ読めば意味はわかるからデバッグには困りませんが、ArgumentError の中の特定の例外だけ拾いたいときに困ります。 具体的には、テストです *2 。例えば foo(1, 2) で wrong number of arg

    Ruby の例外クラスは分類が粗すぎる or 細かすぎる - まめめも
    suginoy
    suginoy 2014/05/12
  • Types and Programming Languages 日本語版 レビュワー募集 - まめめも

    一部では告知済みですが、プログラミング言語の「型」の教科書と言われる Types and Programming Languages (通称 TAPL) の翻訳チームに参加してます。 訳者は、以前ののメンバー (片岡さんいないけど) だけでなく、OCaml nagoya の人たちに参加してもらった上、監訳はなんと住井先生というパーフェクトな布陣です。 既にひと通り日語にはなっているので、もう少し修正して、来月下旬くらいから有志にレビューしてもらいたい感じです。 募集人員:若干名 期間:12月下旬から1-2ヶ月程度(予定) 応募要件:下記 A)、B) の少なくとも一方を満たす方 A) プログラミング言語の基礎理論、特に型システム周辺にある程度習熟している B) 原書 "Types and Programming Languages" を読んだ経験があり、一定以上理解している 応募締切:

    Types and Programming Languages 日本語版 レビュワー募集 - まめめも
    suginoy
    suginoy 2012/11/10
    「でも個人的には、Ruby ユーザ (動的型付けの言語しか知らない人) にこそ読んで欲しい本だと思ってます。」
  • Ruby 2.0 リリース週記 (2012/05/14 - 20) - まめめも

    Ruby 2.0.0 のリリースに向けた活動について、毎週くらいのペースで書きたいなあと思ったので始めます。飽きたらやめます。 ユーザ視点で面白そうな機能や、リリースに向けた進捗について書くつもりです。コミット単位の詳しいニュースは nagachika さんの ruby-trunk-changes を見るといいです。 Ruby 2.0 について Ruby 1.8 、1.9 に続く Ruby の新系統です。 新系統といっても、RubyKaigi 2010 の開発者会議にて、まつもとさんから「100% 互換」のスローガンが発表されていますので、原則として仕様変更は入らない予定です。*1 今のところ 2.0 に入ることが発表されている大きめの新機能は、 Module#prepend キーワード引数 の 2 点です。[ruby-core:39837] それぞれの詳細は、そのうち説明したいと思います

    Ruby 2.0 リリース週記 (2012/05/14 - 20) - まめめも
    suginoy
    suginoy 2012/05/23
    RSSリーダーに登録しよう
  • イカ娘が Ruby を侵略したでゲソ - まめめも

    この記事は Functional Ikamusume Advent Calendar jp 2010 によって侵略されたでゲソ。 今回は Ruby を侵略したでゲソ。まずは gem をインストールするでゲソ。 $ gem install ikamusume Hello, world でゲソ。 # coding: utf-8 # ruby examples/hello.ikamusume で実行するでゲソ # 未だに 1.8 を使ってる愚かなる人類は -Ku を付ければいいんじゃなイカ? require "ikamusume" "Hello, world!\n" <= イカ娘! "H" <= "e" <= "l" <= "l" <= "o" <= "," <= " " <= "w" <= "o" <= "r" <= "l" <= "d" <= "!" <= "\n" <= イカ娘! $ ru

    イカ娘が Ruby を侵略したでゲソ - まめめも
    suginoy
    suginoy 2010/12/16
  • スタックオーバーフローの仕様 - まめめも

    以下の C 言語のプログラムを実行すると、ほとんどの環境では異常終了すると思います。 int main(void) { main(); return 0; } この挙動は C の規格としてどのように説明されているんでしょうか。 たぶん未定義じゃないかと思うんですが、C99 の規格書の function call や limitations などを読んでみても、このプログラムが未定義になるという根拠を見つけられませんでした。 もしこのプログラムが valid であるなら、ほとんどの C コンパイラは C の仕様に準拠できていない (というか準拠するのはおそらく不可能) ということになるのでしょうか。 同じような疑問を持つ人はちらほらいるようなのですが、ちゃんとした回答は見つかりません。 http://www.velocityreviews.com/forums/t442615-main-ca

    スタックオーバーフローの仕様 - まめめも
    suginoy
    suginoy 2008/10/25
  • coverity やばい - まめめも

    PPL サマースクール 2008が告知されています。内容はおおいわさんのFail-Safe Cと、coverity 社の人による Thread Analyzer for Java とかいうツールの紹介だそうです。 それとは関係ないんですが、coverity 社がやってる Coverity Scan というサービスがあります。coverity 社の製品の Prevent という静的解析ツールのデモみたいなもので、Apache とか OpenSSL とかのオープンソースプロジェクトに対して Prevent で検査した結果を無償提供してくれています (参考) 。ただし脆弱性のヒントになる可能性があるので、各プロジェクトの開発者のみに公開。 ここぞとばかり Ruby のコミッタ権限を活用して Ruby の結果を見せてもらったんですが、これ、かなりすごいです。 鬼車が /x{1,1}/ でメモリリー

    coverity やばい - まめめも
  • 1