20万円の地図を買って見つけた「新宿の妖怪」の正体にせまる! ある日、20万円の地図本が95%引きで売られているのを見つけた。江戸~明治時代の地図だ。思わず買った。 1週間後、巨大な地図がとどいた。次の日、読んだだけで筋肉痛になった。 今回は、定価20万円の地図にふり回されながらも、本を使いこなして「新宿の妖怪」の正体…
RubyKaigi の後夜祭で、akr さんが「327 種類の Ruby をビルドする方法 〜0.49 から 2.6.0-preview2 まで〜」という発表をされていました。 RubyKaigi 2018 After Party で話したスライドです: 「327 種類の Ruby をビルドする方法 ~0.49 から 2.6.0-preview2 まで ~」https://t.co/J5MXgM2PNN— Tanaka Akira (@tanaka_akr) 2018年6月4日 その中で、ruby-0.62.tar.gz と ruby-0.63.tar.gz のファイルは「gzip 形式じゃないといわれて展開できない」ということで、ビルド対象から外されていました。 いろいろやって、めでたくこの 2 ファイルを復活させることに成功しました。そのプロセスを書きます。 なお、壊れていたファイルも
This is The Den, a publication crafted by the friendly cubs at Bear Metal. Photo by Joseph Francis, used under a Creative Commons license. In January Heroku started promoting Puma as the preferred web server for Rails apps deployed on its hugely successful platform. Puma – as a threaded app server – can better use the scarce resources available for an app running on Heroku. This is obviously good
12月1日より、日本人で唯一のRailsコミッター兼Rubyコミッターの松田明氏が株式会社GA technologiesの技術顧問に就任しました。 就任にあたり当社若手エンジニアとともにインタビューをしたので、その模様をアップします!(もう少し短くまとめたかったのですが、お話が面白かったのでほぼ丸々載せちゃいます) ── ご自身でも不動産投資をやられているとのことですが、不動産テックに対して興味や、当社顧問として取り組みたいことはありますか? やれることは無限にあると思ってまして、この業界ってとにかくシステム化が遅れてますよね。 僕自身、2〜3年前の大江戸Ruby会議04っていうRubyのカンファレンスの講演で自分で家を建てた経験を無理やりRubyのプログラミングの話に結びつけて喋ったことがあって(Hacking Home)、そのころから不動産テックには興味はありました。 そのとき話したの
Misoca開発チームの黒曜(@kokuyouwind)です。 最近PS VRを買いました。画像は夏にSony StoreのPS VR体験会へ行った際、スタッフの方が撮ってくださった写真です。 OculusやViveと比べると解像度は低めですが十分な没入感がありますし、なによりアイマスやVOCALOIDなどのキャラクターコンテンツが色々あるのは強いですね。 PS VRはいいぞ。 rspec-queueからrrrspecへの移行 MisocaではJenkinsを使ってCIを回しています。 またrspecでテストを書いており、Jenkins上では時間短縮のためにrspec-queueを使って並列実行していました。 しかし、テストが増えるにつれてrspecの実行時間が長くなってしまい、CPUコア数やメモリの制約で1ノード内での並列数も限界になっていました。 このため、ビルド時間の短縮を目的にrr
もうぶっちゃけて言ってしまえば英語圏のITスタートアップで働く場合に日本人であることのメリットなんてほとんど無い。日々の業務で実感できることなんて皆無だ。ほとんどの情報は英語で発信されているし、会議もランチ中の会話も英語。ジリ貧状態の日本市場と同じように昔は存在したかもしれない日本語話者のメリットも低下しっぱなし。その代わりに英語の重要性だけが急上昇を続けている。 そんな中で本当に日本人であることのメリットだな、と実感できたことはこれ。 Rubyを作ったまつもとゆきひろ氏が日本人であること。 これは応募書類の技術欄に「Ruby」と書いた場合に限られるが、転職の面談時に意外にイケる。全ての日本のRubyに関わるエンジニアはまつもと氏に感謝しなければならない。 例えばリネオル・メッシという世界最高のサッカー選手がアルゼンチン出身というだけで「アルゼンチン人=サッカー上手い」の印象が人々に刷り込
(7/3 14:05追記)Javaに関する記述について誤認があったので盛大に書き換えました。Java 6、Java 7、Java 8それぞれで実装が変わっていたようです。 (7/13 23:55追記)本記事中ではroundを四捨五入と言い切ってしまっています。これは筆者がC99のroundを基準に考えているためですが、言語によっては偶数丸めになっているround関数も珍しくありません。ご注意ください。 PHPのround関数について、ネット上で次のような記述を見つけました。 PHP 四捨五入の計算を間違える唯一の言語として畏れられていましたが、そのバグは治っているかもしれません(治ってないかもしれません) 主要なプログラミング言語8種をぐったり解説 - 鍋あり谷あり 各言語を面白おかしく紹介する内容とはいえ、ずいぶん雑な理解だなーという印象です。ゆるふわな話だけでPHPがdisられ続けるの
こんにちは、トレンド調査ラボの井上寛之(@inohiro)です。 普段は、クックパッドの検索ログを基にした法人向けデータサービス「たべみる」の開発や、 広告事業周辺のデータ分析などを担当しています。 Amazon Redshiftなどのデータベースに蓄積されたログなどの大量のデータに対して、 日次や週次などの単位でバッチ処理を行っている方は多くいらっしゃると思います。 ログなどを扱うバッチ処理では、処理対象が膨大であるとアプリケーションが使うメモリが増大し、 枯渇してしまう恐れもあるため、データの扱いに気をつける必要があります。 データベース内で完結するバッチ処理ならばそこまで気にする必要は無いかもしれませんが、 外部のプログラムからデータを読み出して処理する場合は特に注意が必要です。 そこで考えられる一つの工夫として、処理対象を分割して、繰り返して処理を行う方法が挙げられます。 一般的な
こんにちは。卜部です。 ruby-coreというRuby本体の開発の議論がされているメーリングリストがあります。 新機能やバグ報告などがだいたいここに集約されてくるので購読しておくとRubyの動きが分かります。 最近興味深かったトピックを紹介します。 [#12113] Global method inside Delegator causes NameError スレッドのタイトルは現象としてはその通りなんだけど、本当の原因はDelegatorからプライベートなメソッドを呼ぶことがこれまでできなかったという点です。なぜならDelegator経由ではプライベートなメソッドがプライベートな感じで(レシーバーをつけないで)呼ばれたかどうかが判定できなかったから。 なんだけど最近did_you_meanの側からの要求により「プライベートなメソッドがプライベートな感じで呼ばれたかどうか」が判定可能に
冷静になってゆっくり理解すれば、そりゃそっかという話なんだけど、Railsプロジェクトのコードでめっちゃ混乱したので、書いておく。 TL;DR extend selfは特異クラスへのincludeと等価というのがミソ。 混乱したコード 目にした瞬間これ本当に大丈夫なのかと思ったコード。 class ApplicationController < ActionController::Base # something class << ActionController::HttpAuthentication::Digest # seconds_to_timeoutを書き換えたい def validate_nonce(secret_key, request, value, seconds_to_timeout=60*60) # somthing super end end end このコードを見
gemspecとGemfileの役割をはっきりさせておく Original: URL: Clarifying the Roles of the .gemspec and Gemfile Date: Thursday, December 16th, 2010 at 9:41 pm Translation: URL: gemspecとGemfileの役割をはっきりさせておく (Not Found) Salvaged from Internet Archive 要約 GemfileGemfile.lockは依存関係を厳密に指定するのが目的なので、アプリケーションを開発するときはレポジトリにチェックインすべき。 一方Gemを開発するときは依存関係を緩やかに定義し柔軟性を持たせることが重要なポイントなので、GemfileGemfile.lockはレポジトリにチェックインしてはいけない。 他、Gemf
Embulkにはfilterプラグインという仕組みがあり、これを自作することで、Embulkで入力およびパースした結果を色々と加工することができます。例えば、「すべてのログにホスト名を追加する」といった、ログの種類によらない共通処理を定義するのに向いた仕組みです。 ただ、いろいろ試してみた結果、以前の記事で取り上げたような特殊なログを処理する場合でも、 パース処理の中で、一度完成したらほとんど直す必要がない基本的な部分 → parserプラグイン 試行錯誤しながら、何度か直す必要がある部分 → filterプラグイン と使い分けた方が、コードの見通しが良くなりました。個人的には、parserプラグインと同じくらいfilterプラグインも自作することが多そうなので、作り方をメモしておきます。 特定カラムに含まれる文字列を置換するfilterプラグイン 一例として、以下のようなCSVファイルを
インフラストラクチャー部 id:sora_h です。クックパッドでは、社内向けの Web アプリ (以降 “社内ツール”) を社外のネットワークから利用する際、アプリケーションレベルでのアクセス制御とは別に、リバースプロキシでもアクセス制御を実施しています。*1 これまで BASIC 認証あるいは VPN による社内ネットワークを経由した接続という形で許可していました。しかし、iOS の Safari などでは BASIC 認証時のパスワードを保存できない上、頻繁に入力を求められてしまいますし、VPN はリンクを開く前に接続をしておく必要があります。これにより、社内ツールを社外で開く時に手間がかかってしまう問題がありました。 これに対し、一部では typester/gate などを導入し Google Apps での認証を行なっていました。しかしいくつか問題があり、非アドホックな対応では
Railsのジェネレータで生成したタスクのrbファイルを見ているとRakeタスクを定義するところで少し疑問に思ったことがあった。 railsのジェネレーターで以下のとおりにタスクを作成する。 % rails generate TASK_FILE_NAME TASK_NAME 例) % rails generate hoge test 例)のように実行すると lib/tasks/hoge.rb ができて testというタスクが定義される namespace :hoge do desc "TODO" task test: :environment do end end タスク定義のところで「:environment」 という引数が渡されているが、どういうこのことなのかを調べてみた。 「RailsでオリジナルRakeタスク作成からRSpecテストまで」 の記事の中に以下の一文があったので実際に試
というわけでKonachaです。https://github.com/jfirebaugh/konacha なにこれ、粉茶? JavascriptのテスティングフレームワークとしてはJasmineやらMochaあたりがメジャーどころのようだけど、セットアップが難しかったりして「これだ!」というものがなかった。個人的には。 で、今回、よーし、お父さんCoffeeScript書いちゃうぞー!というタイミングにあたって、もう一回いろいろ探してみたところ、これが一番スジがいいっぽかった。 KonachaはRailsでMochaとchaiを使いやすくしたGemらしい。Mochaとchaiは使ったことなかったけど、公式を5秒ほどみたところ、nodeでうごくrspecライクなテスティングフレームワークということでJasmineとかとあんまかわらないんじゃないかと推測。chaiはマッチャーのライブラリのよ
『るびま』は、Ruby に関する技術記事はもちろんのこと、Rubyist へのインタビューやエッセイ、その他をお届けするウェブ雑誌です。 Rubyist Magazine について 『Rubyist Magazine』、略して『るびま』は、Rubyist の Rubyist による、Rubyist とそうでない人のためのウェブ雑誌です。 最新号 Rubyist Magazine 0063 号 バックナンバー Rubyist Magazine 0063 号 Rubyist Magazine 0062 号 Kaigi on Rails 特集号 RubyKaigi Takeout 2020 特集号 Rubyist Magazine 0061 号 Rubyist Magazine 0060 号 RubyKaigi 2019 直前特集号 Rubyist Magazine 0059 号 Rubyist
タイトルは釣りです。すみません。Ruby 3.0 はかなり先の将来の話なので、最終的にどうなるかはわかりません。でも Ruby 3.0 に重大な変更が予定されているのは事実なので、一緒に考えて欲しいと思います。 immutable string literal Ruby 3.0 では文字列リテラルをデフォルトで immutable (破壊的変更不可) にする、という方針が『決定』しました。(Feature #11473: Immutable String literal in Ruby 3) つまり、次のようなプログラムが動かなくなります。(当チケットから少し改変して引用) sql = "SELECT #{sec_id}, pt.path, st.doc_count " sql << "FROM #{stats_tablename} AS st " #### ←ここで例外: can't m
はじめに SinatraやRamazeといったRubyのWebアプケーションフレームワークに興味をお持ちの方であれば、Rackという名前をしばしば目にしているかもしれません。どうやら様々なフレームワークに使われているらしいのだけど、そいつが一体なんなのかよくわからない、そんなあなたのために今日はそのRackをご紹介したいと思います。 様々なフレームワーク、様々なアプリケーションサーバ しばらく前なら、Ruby on Railsブームの真っ只中、Rubyと言えばRails、Webアプリケーションを作るならRails、といったイメージを持たれていた方も多かったと思います。実際にWebアプリケーションを作ったり、Rubyに触れたりしたきっかけがRailsだったという方も多いでしょう。 しかし最近は、RubyのWebアプケーションフレームワークと一口に言っても、非常に簡単にアプリケーションが書けて
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く