タグ

ブックマーク / sugamasao.hatenablog.com (23)

  • Webエンジニアの教科書をいただきました - すがブロ

    @sasata299さんからWebエンジニアの教科書をいただきました!ありがとうございます>< Webエンジニアの教科書 作者: 佐々木達也,瀬川雄介,内藤賢司出版社/メーカー: シーアンドアール研究所発売日: 2015/03/26メディア: 単行(ソフトカバー)この商品を含むブログ (3件) を見る 目次 CHAPTER-01 Webエンジニアについて CHAPTER-02 Ruby on Railsでの開発 CHAPTER-03 PHPでの開発 CHAPTER-04 NoSQLデータベース CHAPTER-05 フロントエンドの実装 CHAPTER-06 ログについて CHAPTER-07 データの可視化について CHAPTER-08 環境構築の自動化 CHAPTER-09 便利な外部サービス CHAPTERだけ見るとちょっと荒いのでよくわからないかもしれませんが、もう少し詳しい章レ

    Webエンジニアの教科書をいただきました - すがブロ
  • letとlet!の違いがわからない - すがブロ

    違いというか使い分け方がわからない (追記アリ) letは使われたタイミングで処理される。let!は毎回処理をされる。 てっきり、letは一回初期化されたら使いまわされるんだと思っていたけど、呼び出されたときは毎回初期化するようだ。 describe 'let_test' do let(:sample_1){ puts "****let****"; 'sample1'} let!(:sample_2){ puts "****let!****"; 'sample2'} before do puts "before---" end after do puts "after----" end it { sample_1.should eq 'sample1'} it { sample_1.should eq 'sample1'} it { sample_2.should eq 'sample2'

    letとlet!の違いがわからない - すがブロ
  • RubyKaigi 2014 で出会った神ツールのメモ - すがブロ

    RubyKaigi 2014、楽しかったし、学びがあって行って良かったなぁと思いました(小並感すぎる)。 淡々とメモしておくよ benchmark-ips ベンチマークの高機能版。ウォームアップとして何回か走らせてから実行したり、5秒とか100msで何回実行できるかとかを計測できるっぽい synvert フォーマッターらしい。Rubyのバージョンがあがってシンタックスを変更したほうがよかったりする場合に変更してくれる Railsバージョンもあるっぽいけど、このセッション聞いてなかったので詳しくはわからない(あとで調べる) peek-performance_bar View や SQL等でかかった時間を表示するプロファイラ rack-mini-profilerと似てる気がするけど、こっちも試してみたい stackprof Ruby 2.1で追加された rb_profile_frames を使

    RubyKaigi 2014 で出会った神ツールのメモ - すがブロ
  • すがブロ

    このエントリは、SmartHR Advent Calendar 2023 シリーズ1の3日目です。 シリーズ1の前日のエントリはalpaca sanの佐渡島の物件情報を集める方法 - alpaca- tcでした シリーズ2の前日のエントリはasonas sanのE03との戦いでした これは何 当初、Rubyを取り巻く型情報に関するツールの関係性についてまとめようと思ったのですが、既に良いドキュメントがあり、自分が満足してしまったので別の話題として認知負荷をテーマに筆をとっております。 ツールの関係性については↓のエントリをご覧ください Ruby 3の静的解析機能のRBS、TypeProf、Steep、Sorbetの関係についてのノート - クックパッド開発者ブログ 閑話休題 認知負荷という言葉、よく聞きますよね。私もよく言いがちでした。しかし、「認知負荷」という言葉をふわふわな認識のまま「

    すがブロ
  • せっかく MIME エンコードをパースしたので、本文をデコードしてみる - すがブロ

    BASE64/Quoted-Printable のデコード方法 =~ と scan のパフォーマンスについて - @sugamasao.blog.title # => ”コードで世界を変えたい”ここで、文字コード、エンコード方法、エンコード文字列が取得できるロジックを組んでいた。 せっかくそこまで書いたので、実際に我々が読める日語にデコードする処理を書いて見る事にする。といっても、何ら難しい事は無い。unpackメソッド(http://www.ruby-lang.org/ja/man/html/String.html#unpack)を使えば良い。 以下は BASE64 エンコードをデコードする場合。 エンコード文字列.unpack("m") Quoted-Pritable の場合は "M" となる 実例 たとえば、subject ヘッダを受け取り、パースする場合は以下の用にすると良いだろ

    せっかく MIME エンコードをパースしたので、本文をデコードしてみる - すがブロ
  • JSONをcoolに表示するap_commandっていうgemを作った - すがブロ

    awesome_print をご存知だろうか JSONとかを標準出力にcoolに表示してくれるライブラリだ。 michaeldv/awesome_print · GitHub irbとかpryとかrailsとかで使えるようになっている。 これはこれで便利なんだけど そもそもJSONの中身を見たいときって外部サービスとの連携だったりするんですよね。で、そういうのって一旦ファイルに落としたのを確認したかったりするのですね*1。 そういうのを見る時、awesome_printで見ると配列として扱われているかとか、Rubyの世界でどのようなオブジェクトになってるかも確認できて良いんだけども、いかんせんirbで開いてファイルをopenして……ってのも面倒なので、コマンドで実行できるようにしました。実際は単なるラッパーですね。 ap_command インストール % gem install ap_co

    JSONをcoolに表示するap_commandっていうgemを作った - すがブロ
  • パーフェクトRubyという本を(共著で)書きました - すがブロ

    8/10 パーフェクトRubyが発売になりましたね パーフェクトPythonやパーフェクトPHPで有名なパーフェクトシリーズのRuby版であるパーフェクトRubyが発売されました。 @hibariya @takkanm @ryopeko @joker1007 @udzura たちとチームを組んで書きました。面白そうだなと思ったら買ってみてください :) パーフェクトRuby (PERFECT SERIES 6) 作者: Rubyサポーターズ,すがわらまさのり,寺田玄太郎,三村益隆,近藤宇智朗,橋立友宏,関口亮一出版社/メーカー: 技術評論社発売日: 2013/08/10メディア: 大型この商品を含むブログ (1件) を見る 目次 目次はこんな感じです。Rubyの基的な部分からBundlerやGemのつくり方(C拡張も説明あるよ!!)まで網羅されている書籍はなかなか無いのではないかな〜と

    パーフェクトRubyという本を(共著で)書きました - すがブロ
  • ローカルにgemサーバをたてたい! - すがブロ

    gemでインストールするのは楽だけれど、インターネットに繋がってないよ! っていう環境って実際は多いと思うんですよね*1。 で、そういう時のためにローカルの gem サーバを建てれば良いんじゃんっていう話と、でもでも、gemの依存関係さらうの大変すぎてやってらんないんだけど!っていう話について書くよ。 gem server を使って自分のローカルを云々って話もあるけれど、常時使う用途にはちょっとねー、というかやってる人ってどんだけいるんだ。 gem サーバを建てる gem コマンドには、 gem サーバに必要なファイルを生成するコマンドがあるので、それを使う。 配信用 httpd のドキュメントルート内に gems ディレクトリを作り、 gem ファイルを置く gem generate_index で gem 配信用ファイルを生成する gem install 時に --source でロー

    ローカルにgemサーバをたてたい! - すがブロ
  • ActiveRecord と実際のDBの型の対応を確認する - すがブロ

    rails console で確認できる 環境 Ruby 1.9.2 Rails 3.0.1 MySQL 5.1.44 確認方法 ActiveRecord::Base.connection.native_database_typesでアクセスすると確認できる。 実際にやってみる rails console して、上記で書いたプロパティを確認する。 ruby-1.9.2-head > pp ActiveRecord::Base.connection.native_database_types { :primary_key=>"int(11) DEFAULT NULL auto_increment PRIMARY KEY", :string=>{:name=>"varchar", :limit=>255}, :text=>{:name=>"text"}, :integer=>{:name=>"

    ActiveRecord と実際のDBの型の対応を確認する - すがブロ
  • 「Webサービスのつくり方」を読んだ - すがブロ

    ありがたいことで、 @yusukebe こと 和田裕介著のを頂く機会がありました。もちろん、さっそく読みました。アサマシエイトしておきますのでどうぞよろしくお願いいたします。 Webサービスのつくり方 ~「新しい」を生み出すための33のエッセイ (Software Design plus) 作者: 和田裕介出版社/メーカー: 技術評論社発売日: 2012/11/20メディア: 単行(ソフトカバー)購入: 29人 クリック: 685回この商品を含むブログ (25件) を見る ちなみに、著者さまのエントリーはこちら 「Webサービスのつくり方」というを書きました - ゆーすけべー日記 内容について この一冊でWebサービスを作る全てがわかる、というようなすご〜く詳細な内容は書いていないけれど、あらゆる部分でとっかかりにできるくらいきっちり書いてあってすごく良いでした。 Webサービス

    「Webサービスのつくり方」を読んだ - すがブロ
  • 若者が知らない最強のLinuxコマンドTips - すがブロ

    タイトルは釣りぽよ〜 今日ここで書くのはわりかし最近知ったことだったりするのが多いんですが、せっかくなので書いておこうかなぁと思った次第です。Linuxって書いてるけど、普通にMacでも使えるハズです。 知ってる人にとってはアタリマエのことですけどね……。 ファイルサイズの桁でかすぎてがわからん ls とか duあたりで使える話ですね。 ファイルサイズが大きすぎてパッと見わからないよっていうことってあるじゃないですか。ありますよね。いやある。 そんな時は -h オプションを使いましょう。 $ ls -l /var/log/nginx/access.log -rw-r--r-- 1 root root 1897381 8月 26 02:50 2012 /var/log/nginx/access.log $ ls -lh /var/log/nginx/access.log -rw-r--r--

  • Railsで定数を別ファイルで管理したい? よろしい、ならば Settingslogic だ。 - すがブロ

    ソースの中で定数として扱うのではなく、設定ファイル的に扱いたい Rubyはそれなりに長い間使っていますが、Railsはメジャーバージョン毎にちょっと触るくらいで、まったくベストプラクティスとか知らないんですね。 で、いまは作る際のお手として 日Ruby会議 2010, 8月27日〜29日 のソースである ruby-no-kai/rubykaigi · GitHub を見てパクれそうなのはパクるというスタンスでやってます。 で、題の設定ファイルの扱いについて 上記 rubykaigi の Gemfile を見ると 'configatron' っていうのがある。 なので、これが cool な設定ファイルを扱うライブラリなのかしら、と思ってたのですが、ちょうど id:ursm さんから @sugamasao 最近は Settingslogic を使っています 2010-09-02 21:3

  • 例外戦略 - すがブロ

    まぁ正しく例外を使いましょうという話ですね。当たり前でしょと思う人は読まなくて良いです!! 前口上 例外に限らず、自分がプログラミングをするにあたって心掛けていることの一つに、誠実なプログラミングというのがある。最近、思いついたので勝手に名前をつけてみたんだけど。 何かっつーと、何が起こっているか、であるとか、これから使うデータはこれです、と言ったものをきちんと伝える・伝わるようにしておく、という心構えです*1。 その中でもとにかく例外はきちんと扱って欲しい事の一つなので、ちょっと自分はこーしているというのを世に残しておくのも良いかなぁと思った次第です。 例外はたくさんの重要なデータを持っている 概ねここらへんの情報は例外機構を持ってる言語なら提供してくれると思います。 例外クラス*2 例外発生時のメッセージ スタックトレース(またはバックトレース) Ruby だったら class Exc

    例外戦略 - すがブロ
  • デーモンについての覚書 - すがブロ

    ちょっと会社でデーモンとは、みたいのを話す機会があったので整理がてらメモ。当はコードも合わせて載せたかったけど、時間がなくて断念したw あやふやな部分もあるので識者の方にはぜひ訂正をお願いしたく……! デーモンとは? ぶっちゃけて言えば無限ループのプログラムなんだけど、詳しくは http://ja.wikipedia.org/wiki/デーモン_(ソフトウェア) とかを見ると良いだろう。 自分で作るのであればおおまかに以下の点を気をつければ良いかなぁと思う。 プロセスを端末から切り離す 入出力を一度閉じる(使うなら明示的にオープンしたものを使おう) SYSLOGなり何がしかの出力ファイルに動作を出力する SIGNALを受け取る PIDファイルを作る 厳密にやろうと思うとumaskを0にするだとか、'/'に移動するだとかもあったりするけど、ゆとりなのでプロセスから切り離すを含めdaemon

    デーモンについての覚書 - すがブロ
  • Rails3で困っちゃった事リスト - すがブロ

    Rails2.x 系の情報だと動かない!!! Rackアプリケーションになったことやモジュール化を進めた影響だと思うのだけど、Rails2.x系ではうまく行くと書いてあるやり方が Rails3 になってうまくいかなかったりしたので、実際にハマった事をメモしておくよ。 ちなみに、環境は以下の通り Rails 3.0.1 Ruby 1.9.2 そもそも Rails自体よくわかってない(!) 以下はあくまでも自分自身のログなので、Rails3……というか Rails の作法としてはこうするんだよ、というベストアンサーがあったらぜひ教えてほしいです。 Session をブラウザが終了しても終わらないようにしたい ログインした後のいわゆる Session の有効期限を変更したい 今までなら sessionに有効期限を設定する時の試練 - ザリガニが見ていた...。 に書いてあるように ActionC

    Rails3で困っちゃった事リスト - すがブロ
  • Rails のモデル関係と to_json(to_xml) - すがブロ

    関係を持ったテーブルと出力方法について Rails初心者にありがちなメモをするよ。 ちなみに、環境は Ruby1.9.2 と Rails3 です。 テーブル間のリレーションについて ユーザ情報テーブルと、ユーザが持ってる所持品のテーブル的なものがあるとして。 面倒なのでスゲー適当だけど以下のような定義で作った。 rails g scaffold user name:string item_id:integer rails g scaffold item name:string item_id は items テーブルの id が入るってことね。 users name:string item_id:integer items name:string これで、ユーザはitem_idに items テーブルのidを一つもつ感じ。 model に関連をつける いわゆる has_many とか ha

    Rails のモデル関係と to_json(to_xml) - すがブロ
  • Rackの起動の流れを追う - すがブロ

    Rackの動きについてコードを追ってみたよ Rackのバージョンは1.4.1です。 Rackの動きの前に、まずはざっくりRackで動かすっていうのを確認してみよう。 rack up! まずは適当にRackの設定ファイル兼クラスを定義する require 'rack' require 'pp' class Sample def call(env) pp env [200, {"Content-Type" => "text/plain"}, ["rack up!\n"]] end end run Sample.new これを rack up する sugamasao@GRAM% rackup sample.ru [2012-02-13 23:35:44] INFO WEBrick 1.3.1 [2012-02-13 23:35:44] INFO ruby 1.9.3 (2011-11-30)

    Rackの起動の流れを追う - すがブロ
  • おまいらもMacRubyでMacアプリ作ろう - すがブロ

    このエントリはRuby AdventCalender 2011の企画です Ruby Advent Calendar の25日目の記事です。24日目は@kwappaさんのHappy Xmas, Rubyists! | Kwappa研究開発室でした。 ちなみに、12/25と言うと、バカボンのパパや銭形のとっつぁんの誕生日として知られていますね*1。 26日はid:tackunさんのSinatraを使って、RESTFulなWeb-APIを作ってみたい - tackun noteです。 補足 2012/05/30 追記 MacRubyの情報は目次 - MacRuby DoJo (道場)に詳しく載っています。また、MacRubyとXCodeのバージョンによってはうまくプロジェクトが作成できない場合もありますが、そこについてもきちんとケアされていますので、MacRuby の環境を構築しよう - Mac

    おまいらもMacRubyでMacアプリ作ろう - すがブロ
  • Python がイマイチ人気にならないたった一つの理由 - すがブロ

    ついに気がついた RubyPerl に比べてイマイチ日では爆発しきれていない感のある Python だけど、その理由がわかった。 入門書が良くない Python の有名な書籍といえば「みんなのPython」があるのだけど、これがとてもマズい。 みんなのPython 作者: 柴田淳出版社/メーカー: ソフトバンククリエイティブ発売日: 2006/08/22メディア: 単行購入: 11人 クリック: 624回この商品を含むブログ (180件) を見る 略すと「みんPy」。みんぱいである。「みんPy」を日常で使う事を想定してみよう。 「最初(に読むPython)はみんPyだよねー」 これはもう「最初はみんなおっぱいだいすきからスタートする」という性癖の変遷の発言にか聞こえません。それはとても卑猥ですから、こんな卑猥な書籍を売っている言語も卑猥であるというイメージがついてしまいますね。

    Python がイマイチ人気にならないたった一つの理由 - すがブロ
  • 闇RubyKaigiで話してきました。 - すがブロ

    まさかのトリ>< 途中までしか話せなかったのですが、言いたいことはきちんと伝えられたので良かったです。 闇RubyKaigi View more presentations from suga masao ちなみに、最初の一枚目は直前の発表タイトルにかぶせるつもりで急遽追加しました。 直前の発表はこれです。 円環の理(Garbage Collection) - 闇Ruby Kaigi - I am Cruby!

    闇RubyKaigiで話してきました。 - すがブロ