タグ

yukungのブックマーク (4,411)

  • Jenkins 2.0 (3): Scripted Pipeline と Declarative Pipeline - 生産性向上ブログ

    Jenkins 2.0について書く記事の3回目です。今回は、前回書いたJenkins Pipelineを構成するDSLについて書きます。 フリースタイルプロジェクトのジョブ設定 1.x時代から存在したフリースタイルプロジェクトでは、Web上のUIを通してジョブを設定しました。この方法は、前回書いたように、わかりやすい反面いくつか問題点もありました。 機能が増えるにつれ設定UIが複雑になりがち 1つのジョブにつき1つのノードしか使えない デプロイパイプラインを構築するためには複数ジョブをつなげないといけない 設定の変更履歴を管理しづらい Scripted Pipeline 2.0のPipelineでは、GroovyによるDSLが導入され、Pipeline as Codeとしてジョブを設定できるようになりました。DSLによる柔軟な表現力により、上記の問題が改善されました。 必要な設定だけコード

    Jenkins 2.0 (3): Scripted Pipeline と Declarative Pipeline - 生産性向上ブログ
  • コンフリクトしたschema.rbをきれいにマージする手順 - Qiita

    はじめに 複数のメンバーで同じRailsアプリケーションを開発しているとコードのコンフリクトがときどき発生します。 普通のファイルは人間が目で見てどうマージすべきか判断すればいいですが、schema.rbのようにRailsによって自動更新されるファイルは手で修正しない方が良いです。 じゃあschema.rbがコンフリクトしたらどうしたらいいの!?という人のためにマージする手順を説明します。 対象となるバージョン 記事は以下のバージョンを対象としています。 Rails 5.0.2 Git 2.12.2 サンプルコード この手順で使ったRailsアプリケーション(マージがすべて終わった状態)はGitHubにアップしてあります。 想定するシナリオ ここでは以下のようにアリスとボブが同じテーブル(同じモデル)に対して異なるカラムを追加しようとする状況を想定します。 アリス = Blogモデルにa

    コンフリクトしたschema.rbをきれいにマージする手順 - Qiita
  • 似ているようで全然違う!?Activerecordにおけるincludesとjoinsの振る舞いまとめ - Qiita

    似ているようで全然違う!?Activerecordにおけるincludesとjoinsの振る舞いまとめRubyRailsActiveRecord Activerecordを使ってるとき、関連(Association)のあるmodel同士をまとめて取得したい時がけっこうある。そんな時、includesやjoinsを使えば効率良くデータを取得出来るんだけど、実はこの二つは振る舞いや特徴が全然違ってたりする。ややこしい気がしたので、ここでちょっとまとめておく。 先に結論を書いておくと、基的には includesは先読みしてキャッシュしておく。 joinsはただINNER JOINしてくれる。 と思っておけばOK。 ちなみに、railsのversionは4.1.0。Web上に落ちてる情報は古いせいか若干現状の挙動とは違ってたりしたので、気をつけた方が良さそう。

    似ているようで全然違う!?Activerecordにおけるincludesとjoinsの振る舞いまとめ - Qiita
  • ActiveRecordのjoinsとpreloadとincludesとeager_loadの違い - Qiita

    ActiveRecordでN+1クエリを潰すためにeager loadingを行う場合、preloadやincludesやeager_loadが役に立つ。 Preload, Eagerload, Includes and Joinsという記事にそれらの違いがよくまとめられているんだけど、includesが挙動を変える条件があまり正確に書かれていなくて自信が持てなかったし、そもそも記事が古いのでRails4.1.5のソースを読んで調べた。 せっかく調べたので、全体を通して日語でまとめてみようと思う。 User.joins(:posts).where(posts: { id: 1 }) # SELECT `users`.* FROM `users` INNER JOIN `posts` ON `posts`.`user_id` = `users`.`id` WHERE `posts`.`id

    ActiveRecordのjoinsとpreloadとincludesとeager_loadの違い - Qiita
  • https://qiita.com/merrill/items/de6eb7e899753ad3361a

  • Ruby標準添付ライブラリcsvのCSV.tableメソッドが最強な件について

    ─ 問題1 ─ data.csvファイルには、5人のプレイヤー(Alice, Bob, Jimmy, Kent, Ross)が二種類のゲーム(gameA, gameB)をプレイした結果が次のような形で格納されている。各ゲームの平均点を求めよ。 data.csv player,gameA,gameB Alice,84.0,79.5 Bob,20.0,56.5 Jimmy,80.0,31.0 Kent,90.5,15.5 Ross,68.0,33.0 data = File.read('data.csv') headers, *scores = data.lines.map { |line| line.chomp.split(',') } scores # => [["Alice", "84.0", "79.5"], ["Bob", "20.0", "56.5"], ["Jimmy", "80

  • なぜAWS LambdaとRDBMSの相性が悪いかを簡単に説明する - Sweet Escape

    2020/01/20 Update: エントリの内容は2019年12月3日にアナウンスされた『Amazon RDS Proxy』のリリースにより完全に陳腐化しました。過去のアンチパターンがフィードバックをもとにした改善によってアンチパターンではなくなるという最高の事例です。 サーバーレス元年始まった! 今年がサーバーレス元年な理由. それはLambdaに以下が揃ったから. ・カスタムランタイムで実質どんな言語でも利用可能 ・VPC利用時のコールドスタート改善 ・Provisioned Concurrencyでスパイク対応も可能 ・RDS ProxyでRDBとの接続が現実的に これまで5年で受けたフィードバックがついに結実. 強い— Keisuke Nishitani (@Keisuke69) 2020年1月19日 RDS Proxyの詳細はこちらからどうぞ。まだプレビューですがぜひ試して

    なぜAWS LambdaとRDBMSの相性が悪いかを簡単に説明する - Sweet Escape
  • 喧嘩をしない技術、あるいはずっと仲良くやっていくために大切な10のこと - 肉とビールとパンケーキ by @sotarok

    と約10年喧嘩ゼロを継続中の sotarok です。 この記事は Advent Calendar「家庭を支える技術」に参加しています。 12/22 の予定でしたが遅くなってしまいました、すみませんすみません。。。 21日は mshkさんによる 家庭を支える技術21日目: 平日の夕作りの時間を休日にシフトする、ウィークックナビのご紹介 でした。すでに24日も終わりに近づいておりますが ... 22日分を更新します。 さて、どんなネタを書こうかといろいろ考えていたのですが、情報共有の方法とかをまとめても、まあよくある話なので、せっかくなのでふたりが誇れるものを何か、と思って思いついたのが事故ゼロ運動...じゃなくて約10年喧嘩ゼロの実績なのかなと思い、これをネタにしていようかとおもいます。転じて「いつまでも仲良くいるために」という感じで。*1 結果、だいぶ、テイスト変わってきましたが、

    喧嘩をしない技術、あるいはずっと仲良くやっていくために大切な10のこと - 肉とビールとパンケーキ by @sotarok
  • Speaker Deck で変な URL 付けられるのを抑制する - 肉とビールとパンケーキ by @sotarok

    発表スライドをアップロードするのに使っている Speaker Deck というサービスがあるんですが、こいつなかなかのクセモノで、発表資料のタイトルをURLに組み込もう としやがります。 つけたタイトルが The 3 Good Habits for Shell Beginners の場合、URLは speakerdeck.com/sotarok/the-3-good-habits-for-shell-beginners になります。 英語タイトルの場合、単語がハイフンつなぎになるから良いのですが、日語タイトルをつけると、まさかの中国語風に変換されてURLが付けられてしまいます。 先ほど、 学生・新卒エンジニアのパーフェクト成長戦略 というタイトルで公開したら、 speakerdeck.com/sotarok/xue-sheng-xin-zu-enziniafalsepahuekutoch

    Speaker Deck で変な URL 付けられるのを抑制する - 肉とビールとパンケーキ by @sotarok
  • 電話に出なくて良い会社 - ビープラウド社長のブログ

    「会社に電話がかかって来たら、電話に出ましょう」 ほとんどの人が、言われ続けて来ていることとおもいます。 電話が仕事に及ぼすデメリット 電話が会社にかかってくると、さまざまな問題が生まれる可能性があります。 不在時にメモのやりとりや連絡が社内で必要になり、時間を取られる 集中していた作業が中断される 不要な飛び込み営業電話の対応(電話の取次、断りの会話)に時間を取られてしまう また、電話を仕事で使うのが習慣になると、以下のような問題が発生します。 電話が最優先となり、自分の仕事が中断される 電話がかかってこないか、常に気にしている必要がある 電話に出れなかった場合に、かけなおす必要がある。出なかった場合にまたかけるなどがタイミングを合わせる同期コストが必要 お客さんから思いつき、またはまとまってない状態で電話で要件を伝えられてしまう。メモを残して送信しておかないと、言った言わない問題になる

    電話に出なくて良い会社 - ビープラウド社長のブログ
  • CPU使用率は間違っている | Yakst

    Netflixのパフォーマンスエンジニアである筆者からの、topコマンドなどで表示されるCPU使用率(%CPU)は、いまや当の使用率を表しておらず、チューニングなどのための指標として使えないという指摘。なぜそうなってしまったのか、何を見れば当のCPU使用率がわかるのかをわかりやすく解説した記事。 私たちみんながCPU使用率として使っている指標は非常に誤解を招くもので、この状況は毎年悪化しています。CPU使用率とは何でしょうか?プロセッサーがどのくらい忙しいか?違います。CPU使用率が表しているのはそれではありません。私が話しているのは、あちこちで、あらゆる人たちに、あらゆる監視製品で、あるいはtop(1)でも使われている、"%CPU"という指標のことです。 あなたの考えているであろうCPU使用率90% : 実際 : "stalled"(訳注 : 以下ストールと言う)とは、プロセッサーが

    CPU使用率は間違っている | Yakst
  • 知識の島を作っていく(Deep Learning時代の生き残り方の模索、その2)

    さて、全部をちゃんとわかってる訳では無いが、必要な程度はわかってる、という状態に居てそれを維持する事を考える。 定義により既に分からない事はあって、しかもそれは学ばない状態にあるが、でもこの状態を維持するにはある程度の継続的な学習が必要そうだ。 何をどう学んでいくべきだろうか? まず理想的だが実現が困難と思っている方法として、毎回必要な事だけを必要な程度キャッチアップしていく、というのがある。 何故この方法は実現が困難なのだろう? それは新しい話題というのは、その話題専用のしっかり書かれた教科書というのがなかなか出ない、というあたりに問題がある。 誰かが必要な事だけ分かりやすくまとめておいてくれれば、その中から自分に必要な範囲で必要な事を取り出すのはこれまでのプログラマの学習とあまり変わらない。 でも昨今のDeep Learning周辺では、必要な事だけしっかりまとめた教科書、というのが追

    知識の島を作っていく(Deep Learning時代の生き残り方の模索、その2)
  • MySQL 5.7 オプティマイザの改善〜UNION ALL〜 | RE:ENGINES

    はじめに Amazon RDSのMySQL 5.7で開発を行うことになりました。そこで、少しですがMySQL 5.7の機能を調べる機会がありましたので、今回は「UNION ALL」に関してのオプティマイザの改善について記載したいと思います。 「UNION」と「UNION ALL」の違い 先ずは、改めて「UNION」と「UNION ALL」の違いを簡単に説明しておきます。 UNION 結合対象のSELECT文の結果の全レコードを取得し、重複レコードを除去し返却します。 UNION ALL 結合対象のSELECT文の結果の全レコードををそのままつなげて返却します。 違いは結合した結果から、「重複レコードを除去するか、しないか」だけとなります。 MySQL 5.7での「UNION ALL」の改善とは 後ほど、「UNION」「UNION ALL」の実行計画の例を記載しますが、実行計画は単純であり、

    MySQL 5.7 オプティマイザの改善〜UNION ALL〜 | RE:ENGINES
  • git configをプロジェクトによって使い分ける - Qiita

    Git v2.13.0(2017/05/10リリース)でgit configにConditional includes(条件付きインクルード)という機能が実装され、特定のリポジトリに対して一括でgit configを適用できるようになりました。 会社用と個人用でプロファイルを使い分けたり、たまに使う設定をまとめて適用する場合などに役立ちそうです。 設定方法 includeIfセクションを使います。git configコマンドか、~/.gitconfigを直接編集して追記します。

    git configをプロジェクトによって使い分ける - Qiita
  • アメブロ2017 - 大規模サービスhttps化 ~ All Greenを目指して ~

    こんにちは、アメブロのフロントエンドエンジニアのときです。 アメブロでは2017年4月に、PC/SPブラウザの閲覧面のhttps化対応を行いました。 今回は、大規模サービスにおけるhttps化のフロントエンドの対応についてお話しさせていただきます。 ※現在は、https、httpどちらからでもアクセスができる状態で、徐々にhttps一に移行し、「常時https化」を目標としています。 https化って何がいいの? まず、既存のサービスをhttps化することで、サービスやユーザにはどういった影響があるのでしょうか。 メリットとデメリットをかいつまんでご説明します。 メリット セキュリティ強化、信頼性アピール SEO向上 最新の技術を取り入れることができるようになる セキュリティ強化、信頼性アピール 直接的なメリットとしてはやはり、HTTPS通信のみでサイトを配信することによる、セキュリティ

    アメブロ2017 - 大規模サービスhttps化 ~ All Greenを目指して ~
  • 憧れの「グローバル人材」になってみたらケツの毛までむしられた話 - トイアンナのぐだぐだ

    就活したとき「グローバル人材」という言葉が流行り、私も憧れた。就活時に自分が考えていたのはこんな像だ。 拠点が2カ国以上にある 各国をフットワーク軽く移動 日以外で通用するスキルがある 海外企業や顧客相手に商売をする 2か国語以上を駆使する 安直だけど、こんなもんだろう。 そして先日、自宅でパカパカとキーボードを叩きながら思った。 「あれ? 私、あのとき憧れたグローバル人材になってね?」と。 今の私は、フリーランサー2年目。イギリスと日に家がある。顧客は日とイギリスの法人。年に10回くらい海外移動がある。一応、ギリギリだけど自分の憧れた定義には当てはまってそうだ。そこで感じた現実を語る。私が住んでいるイギリスとの比較が多いのはあらかじめご容赦を。 日マジパねえっす 海外在住者の多くは1度右翼(というかネトウヨ)になる。美味しいご飯やウォシュレット、にこやかなサービスへのホームシック

    憧れの「グローバル人材」になってみたらケツの毛までむしられた話 - トイアンナのぐだぐだ
  • psqlのちょっと便利な使い方 — そこはかとなく書くよん。 ドキュメント

    psqlのちょっと便利な使い方¶ PostgreSQL Advent Calendar 2012 の20 日目です。他の人とは違ってゆるふわ記事です。 みなさま、フロントエンドにはなにを使ってらっしゃるでしょうか。pgadmin はGUIでかなり便利ですが、標準で使えるpsqlもかなり便利です。 特にリモートのサーバーに入って作業するときなどpsqlの方が手軽ですよね。 というわけで、今回はpsqlのちょっとした使い方のご紹介です。「そんなの知っ てるよ」とおっしゃらずにお付き合いください。 入力系¶ psqlSQLを実行させるときには、 -f でファイルを指定したり、 -c で指 定したりしますね。 これに加えて、標準入力からも受け取れます。 さて、自分はEmacsな人なのですが、Emacsでは M-| で選択したリージョンを 標準入力として、指定した外部コマンドを実行出来ます。つまり

  • Incrementsを退職します – r7kamura – Medium

    IT エンジニア退職するときに添えられることが多い東亜飯店の画像今月いっぱいで Increments 株式会社を退職します。今日が最終出社日で、残りは有給消化です。 Increments では何をやってたの?Increments と言えば Qiita を運営している会社というイメージですが、Qiita の開発に直接携わる機会はほとんどなくて、技術基盤や Qiita:Team の開発に携わったりしていました。 分かりやすい例を幾つか挙げると、Qiita API v2、トップページのフィード、通知購読、絵文字リアクション、タスクリスト、qiita-elasticsearch、qiita-markdown、アクセス権限付きグループ、サポートサイト、チーム統合機能の開発や、UI 刷新、絵文字画像セット移行、ログインセッション永続化、Docker 移行、VPC 移行、Terraform 導入、We

    Incrementsを退職します – r7kamura – Medium
  • 【資料公開します】AWS Dev Day Tokyo 2017 にて登壇しました/choconの簡単なご紹介 | メルカリエンジニアリング

    こんにちは。SREの @kazeburo です。2017年5月31日から6月2日にAWS Summit Tokyo 2017と同時に開催された「AWS Dev Day Tokyo 2017」に登壇しました。 登壇する機会をいただき、また数あるセッションの中から会場に足を運んでいただいた皆様、ありがとうございました。 発表内容 「Cloud connect the world as Glue」というタイトルにて、メルカリのインフラストラクチャの概要および変遷、そして現在のAWSをはじめとするクラウドの利用について紹介しました。 資料はこちらになります。 chocon について スライド中で触れた chocon について少し紹介したいと思います。 choconはクラウドのRegionあるいはデータセンター外との通信を効率良く行うためのミドルウェアになります。HTTPS、HTTP/2の通信をKe

    【資料公開します】AWS Dev Day Tokyo 2017 にて登壇しました/choconの簡単なご紹介 | メルカリエンジニアリング
  • 10カ月ぶりの北京の風景が、まったく変わっていた件|加藤貞顕

    5月末に、中国の北京に出張してきた。その用件の中身はもうすぐ発表できると思うんだけど、それとは別に、北京の街の風景がまったく変わる出来事が起こっていたから書いておく。 まずは写真を見てほしい。 誇張ではなく、街中がこんな感じなのである。カラフルな「放置自転車」の数々。これは、どこでも借りて、どこでも乗り捨てられる、レンタル自転車なのだ。 自転車を使いたければスマホのアプリから解錠を行う。自転車に乗って、目的地について、カギをかけると利用終了。時間に応じた料金がチャージされる。料金は業者によってまちまちだが、1時間あたり10円から20円くらい。値段も安いし、どこで乗り捨ててもいいのは、圧倒的に便利だ。 このくらいの料金と使いやすさだと、駅から会社までとか、ちょっとお昼に行くときに、買い物に行くときに、と言った感じで、大げさでなくライフスタイルがまったく変わる。若者だけでなく、地元のおじさんお

    10カ月ぶりの北京の風景が、まったく変わっていた件|加藤貞顕