タグ

RubyとYAMLに関するraimon49のブックマーク (8)

  • 「YAMLの本来の使い方」を仕様から読み取ってみる | Wantedly Engineer Blog

    YAMLは「便利なJSON」として使われることが多い一方、その複雑性から落とし穴も多く、しばしば批判の対象になります。 なぜYAMLはそこまで複雑なのでしょうか? その背景のひとつは、来のYAMLがJSONとは大きく異なる目的意識で作られているからです。 稿ではYAML specに従う形でYAMLのコンセプトを解説することを目指します。残念ながら、ここに書かれているYAMLの思想は実際には実用されているとは言い難いですし、これらの背景を理解しても「YAMLは複雑だ」という事実がひっくり返ることはないでしょう。それでも、YAMLの複雑さの源泉を体系的に理解し、YAMLとほどほどの距離感で付き合う助けにはなるのではないかと思います。 この記事ではこういう話をしますYAMLはJSONとは独立に、異なる目的で生まれた野心的な仕様であるアンカーやタグなどの強力な構文は、これらの目的を満たすために

    「YAMLの本来の使い方」を仕様から読み取ってみる | Wantedly Engineer Blog
  • Weneedfeed

    ウェブページからフィードを生成するweneedfeedというツールをつくった。 使い方 このツールはRubygemとして実装されているので、Rubyがインストールされている環境が必要になる。ツール自体はgem installでインストールできる。 gem install weneedfeed 利用者には、URLとCSSセレクタをweneedfeed.ymlというYAML形式のファイルに書いてもらうことになる。例えばこのウェブサイト、r7kamura.comの新着記事のためのRSSフィードを生成しようとすると、こんな内容になる。 pages: id: r7kamuracom title: r7kamura.com url: https://r7kamura.com/ item_selector: li item_description_selector: p:nth-child(3) ite

    Weneedfeed
  • HomebrewのCaskリポジトリを介した任意コード実行

    English version is available here: https://blog.ryotak.net/post/homebrew-security-incident-en/ (公式インシデント報告はこちらから読むことができます: https://brew.sh/2021/04/21/security-incident-disclosure/) はじめにHomebrewプロジェクトはHackerOne上で脆弱性開示制度(Vulnerability Disclosure Program)を設けており、脆弱性の診断行為が許可されています。 記事は、当該制度に参加し、Homebrewプロジェクトのスタッフから許可を得た上で実施した脆弱性診断行為について解説したものであり、無許可の脆弱性診断行為を推奨することを意図したものではありません。 Homebrewに脆弱性を発見した場合は、

    HomebrewのCaskリポジトリを介した任意コード実行
  • 至極の難問YAMLクイズ - くりにっき

    前置き 練習問題 問題1 問題2 問題3 問題4 参考文献 おまけ:LT直後のみんなの反応 前置き 社内勉強会のLTで発表したら好評だったので投下 自称YAMLエンジニアのsue445が今まで踏んだ罠をクイズにしました Ruby 3.0.0の Psych で動作確認していますが他言語での挙動は調べていません Psychがlibyamlベースなので他の言語のパーサでもだいたい同じ挙動をすると思うけど 練習問題 Q: 出力されるものは? yaml = <<YAML a: 1 YAML YAML.load(yaml) #=> ? {"a"=>"1"} {"a"=>1} シンタックスエラー その他 回答 2 YAMLの数字っぽい文字列はその言語の数字の型(Rubyだと Integer )として解釈されます。 文字列として解釈させたい場合は "1" (ダブルクオーテーション)や '1' (シングルク

    至極の難問YAMLクイズ - くりにっき
    raimon49
    raimon49 2021/01/16
    文字列として評価して欲しいものは囲おうと再認識した。
  • グリーを支える通知システム | GREE Engineering

    はじめに このエントリは GREE Advent Calendar 2014 24日目の記事です。 こんにちは、インフラストラクチャ部の高野(@takano32)です。 いつも社内では GitHub:Enterprise の運用、 デプロイの改善、 大規模なインフラを操作するためのツール作成、 レガシーなサーバのセキュリティ対策、 コミュニケーションツール向けシステムの構築・運用、 などの仕事をしています。節操がありませんね。はい。 そのうち、今回は「コミュニケーションツール向けシステムの構築・運用」のうち「グリーを支える通知システム」という題目について書きたいと思います。 グリーとリアルタイムコミュニケーションツール まず、通知システムについてお話する前に、グリーでどのようなリアルタイムコミュニケーションツールが利用されてきたかを簡単に説明したいと思います。 リアルタイムコミュニケーシ

    グリーを支える通知システム | GREE Engineering
  • chefからansibleに乗り換えた5つの理由|TechRacho by BPS株式会社

    1年くらいchefを使ってサーバ構築をしていたのですが、最近ansibleに乗り換えたので紹介記事を書いてみます 1. サーバ側に何もインストールする必要がない chefは管理対象ノードにchef-clientをインストールする必要がありますが、ansibleはPython 2.4が入っていて、sshでログインできればOKです。 chefもパッケージや,knife bootstrapコマンド等があるので始めやすいですが、何もする必要がないansibleの方が敷居が低いのかなと思ってます。 例えばsshでログインできれば、以下のコマンドを打てば10.0.10.1~10.0.10.3サーバの情報をとってくれます(カーネルバージョン,CPU,メモリ,ディスクサイズ,ディストリビューション等)。 この機能はchefで使われているohai相当のことをしてくれます。 echo 10.0.10.1 >

    chefからansibleに乗り換えた5つの理由|TechRacho by BPS株式会社
    raimon49
    raimon49 2014/05/30
    シンプルな方が選ばれる。
  • sunzi を試してみる - Memo

    VM にサーバを構築して必要なミドルウェアやソフトウェアをインストールするというのが、たまに発生する。 # 「たまに」というのがポイント VM のイメージを起動してサーバをたてるのは割と簡単に出来るんだけど、毎回毎回いちいち yum install とかするのがめんどくさい。 こういう場合は Chef や Puppet を使うのが王道なんだろうけど、前述の通りたまに発生するだけなので、Chef とかは大げさすぎる。 というような事を呟いたら [twitter:@gosukenator] さんに sunzi というのを教えて頂いた。ありがとうございます! Github の Readme を読んだ限り自分のやりたい事がそのまま実現されてた。 sunzi がデプロイ先サーバの $HOME/sunzi っていうディレクトリを自動で作り、そこにシェルスクリプトを転送し、そのシェルスクリプトをリモート

    sunzi を試してみる - Memo
    raimon49
    raimon49 2012/03/18
    個人環境を設定するヘルパー
  • るびま

    『るびま』は、Ruby に関する技術記事はもちろんのこと、Rubyist へのインタビューやエッセイ、その他をお届けするウェブ雑誌です。 Rubyist Magazine について 『Rubyist Magazine』、略して『るびま』は、日 Ruby の会の有志による Rubyist の Rubyist による、Rubyist とそうでない人のためのウェブ雑誌です。 最新号 Rubyist Magazine 0058 号 バックナンバー Rubyist Magazine 0058 号 RubyKaigi 2018 直前特集号 Rubyist Magazine 0057 号 RubyKaigi 2017 直前特集号 Rubyist Magazine 0056 号 Rubyist Magazine 0055 号 Rubyist Magazine 0054 号 東京 Ruby 会議 11 直

    raimon49
    raimon49 2009/05/29
    配列やハッシュのネスト, ブロックスタイルとフロースタイル, 型の明示など。とても分かり易い。
  • 1