ブックマーク / shugo.net (8)

  • Journal InTime(2023-12-20)

    タグ 250DUKE | Debian | FreeBSD | JavaScript | KLX125 | Linux | Mac | MAZDA3 | Mournmail | Rails | Ruby | tDiary | Textbringer | Viterbi | XPS13 | エクシーガ | キーボード | 会社 | 家 | | 車 最近の記事 2023-03-27 1. ACアダプターの抜き差し時に電源モードを変更する 2023-01-04 1. HiDPI/LowDPIのマルチディスプレイ環境で期待通りのスケーリングが行われない 2023-01-03 1. Ubuntu 22.04でのハイバネーション 2. Ubuntu 22.04のibus-mozc起動時の入力モードをひらがなにする 2022-12-29 1. T14 Gen 3のSSD換装・メモリ増設とUbuntu

  • ...を*, **, &の構文糖にした話 - Journal InTime(2022-12-05)

    _ ...を*, **, &の構文糖にした話 Ruby Advent Calendar 2022の5日目の記事です。 Feature #19134で以下の文法エラーのケースを修正し、**でキーワード引数だけ他のメソッドに渡すことができるように修正しました。 def foo(...) bar(*) # OK baz(&) # OK quux(**) # 文法エラー end つまり、def foo(...)はdef foo(*, **, &)の構文糖になりました。 また、この修正により、以下のケースでbarにキーワード引数が渡っていなかったバグも修正されました。 def foo(*, **, &) bar(...) end つまり、実引数の...も*, **, &の構文糖になりました。 普通は冗長な表現に対して後から構文糖を用意することが多い(例えば{x: x, y: y}の構文糖として{x:

    kinushu
    kinushu 2022/12/07
  • Rubyで理解する統計解析の基礎: 1章〜2章 - Journal InTime(2022-10-28)

    _ Rubyで理解する統計解析の基礎: 1章〜2章 サンプルコードをRubyで書き直しつつPythonで理解する統計解析の基礎を読んでいる。 Python版のサンプルのforkにRuby版のnotebookを追加していく予定だけど、途中でRubyで書き直すのは挫折しそうな気が……。 環境 ruby 3.2.0dev (2022-09-26T05:44:54Z master a8ad22d926) [x86_64-darwin21] iruby-0.7.4 numo-narray-0.9.2.1 numo-gsl-0.1.2 daru-0.3 charty-0.2.12 1章(notebook) numpyの代りにnumo、pandasの代りにdaruを使用してだいたい問題なかった。 ただ、index_col相当の機能がDaru::DataFrame.from_csvにない(多分)せいで、

  • ISUCON9予選参加 - Journal InTime(2019-09-07)

    _ ISUCON9予選参加 社内Slackで原君が「ISUCON9の登録が8/25までなんですが興味ある人います?」と言っていたので手を上げたらISUCON初参加することになった。当初は原君、橋君と三人で出る予定だったが、橋君が出られなくなってしまったので代りに佐田君に参加してもらった。 チーム名: yarunee リポジトリ: https://github.com/shugo/isucon9 以下、だいたい時系列にメモ。 10:10くらいに会社に着いたものの、誰もいないので帰ろうかなと思ったが、会議室にいた(集合場所はちゃんと決めましょう)。 とりあえずコーヒーを多めに淹れてポットに用意。 /home/isucon/isucari/webappをGitHubに上げようとしたが、画像ファイルが多いのでrubyの部分だけGitHubに上げた。 何か自分だけ会議室の無線LANの速度が出ない

    kinushu
    kinushu 2019/09/09
  • ファイルオープンの罠 - Journal InTime(2017-12-15)

    _ ファイルオープンの罠 僕が書いたNet::FTPのコードに脆弱性報告があり、修正版がリリースされた。関係者のみなさん、ありがとうございました。 CVE-2017-17405: Net::FTP におけるコマンドインジェクションの脆弱性について 問題があったのは以下のようなコードだった。 def getbinaryfile(remotefile, localfile = File.basename(remotefile), blocksize = DEFAULT_BLOCKSIZE, &block) # :yield: data f = nil result = nil if localfile if @resume rest_offset = File.size?(localfile) f = open(localfile, "a") else rest_offset = nil f

    kinushu
    kinushu 2017/12/16
  • Ruby技術者認定試験合格教本 Ruby 2.1対応 - Journal InTime(2015-08-31)

    _ Ruby技術者認定試験合格教 Ruby 2.1対応 Ruby 2.1に対応したRuby技術者認定対策がようやく発売されました。 Ruby技術者認定試験合格教 Silver/Gold対応 Ruby公式資格教科書 昨年の10月にRuby技術者認定試験自体はRuby 2.1に対応する改訂が行わましたが、この対策は新しい試験問題に対応するものです。 従来通りSilver/Goldの両試験に対応していますので、受験を検討されている方はぜひご活用ください。 Tags: Ruby

    Ruby技術者認定試験合格教本 Ruby 2.1対応 - Journal InTime(2015-08-31)
    kinushu
    kinushu 2015/08/31
  • 松江Ruby会議05 - Journal InTime(2014-03-15)

    _ 松江Ruby会議05 松江Ruby会議05に参加してきた。参加されたみなさん、おつかれさまでした。 ライブコーディングがテーマだったので色んな人のコードを見られて楽しかった。まつもとさんも珍しく書き下ろしのコードを紹介してたし。 とくに圧巻だったのはDXRuby作者のmirichiさんのライブコーディングで、15分程度(?)でその場で一からブロック崩しを作られていた。 スプライトの衝突判定にSprite#===を使われていたのが印象的だったけど、たぶんcaseやgrepで使えるようにという設計なんだろう。 自分がライブコーディングで書いたコードは以下のURLに置いておいた。 <URL:/event/matrk05/> このコードだと単純なpointcutしか表現できないけど、例えば、 class Foo def bar Bar.new.baz end end のようなコードがあった時に

    kinushu
    kinushu 2014/03/16
  • Rubyコーディング規約

    はじめに 文書は、Rubyによりコーディングを行う際の規約について述べる。 実際のプロジェクトに適用する際には、このコーディング規約をカスタ マイズして用いることを推奨する。 ソースコードの整形 インデント プログラムを読みやすくするため、インデントを適宜行う。インデント 幅は2とする。また、インデントにはスペースのみを使用し、タブは使用 しない。(環境によりタブ幅が異なるため。) 例: if x > 0 if y > 0 puts "x > 0 && y > 0" end end 一行の桁数 一行の桁数は最大80桁までとする。 空行 複数のクラスの区切には空行を挿入する。 例: class Foo ... end class Bar ... end 誤った例: class Foo ... end class Bar ... end また、クラス内の各構成要素の区切にも空行を挿入する。

    kinushu
    kinushu 2011/03/28
  • 1