onozatyのブックマーク (54)

  • 90秒かかるDELETE文の原因を探る【PostgreSQL】 - エムスリーテックブログ

    こんにちは! デジスマチームの山田です。これはデジスマチームのブログリレー4日目の投稿です。 事業が成長してユーザー数やトランザクションが増加すると、それに比例して扱うデータの量やバリエーションも増加します。サービス規模の拡大に伴い発生する課題の1つにスロークエリがありますが、デジスマ診療においてもサービスの成長とシステムの健全性を維持するためにクエリの改善に日々向き合っています。 データベースの気持ちを知りたい 稿ではそうした取り組みの1つとして、とあるDELETE文の改善の過程と、改善に至るまでに得られた調査のTipsを共有できればと思います。なお今回の事象は内部運用における特定のプロセスを最適化するための取り組みであり、利用いただいている方々の体験やサービス品質に影響を及ぼしたものではないことを申し添えておきます。 前提としてデジスマ診療はPostgreSQL互換のAmazon A

    90秒かかるDELETE文の原因を探る【PostgreSQL】 - エムスリーテックブログ
    onozaty
    onozaty 2025/07/29
    運用されて気が付くみたいなことよくあるので、FKに対するINDEX有無チェックをユニットテストとかで入れておくみたいなことやってる。 https://zenn.dev/onozaty/articles/postgresql-fk-index-ckeck
  • Redmine(2.3.0~2.6.0)のチケット一覧で親チケットの題名を非表示にする(View customize plugin) - Enjoy*Study

    Redmineの2.3.0から2.6.0では、チケット一覧で親チケットを表示すると、題名も一緒に表示されます。 結局、一覧で必要以上に幅を取ってしまうなどといった話が多かったのか、2.6.1で元に戻ったのですが、2.5でそれをどうにかしたいといった話を見かけたので、View Customize Pluginで対応してみました。 onozaty/redmine-view-customize - GitHub 画面をJavaScript/CSSで簡単にカスタマイズできるRedmineプラグインを作成しました (Redmine view customize plugin) - Enjoy*Study 動作確認は、Redmine2.5.3で行っています。 対応方法 CSSで消せれば楽だったのですが、td要素配下にテキストノードとa要素が存在し、テキストノードのみ非表示というのができなかったので、J

    Redmine(2.3.0~2.6.0)のチケット一覧で親チケットの題名を非表示にする(View customize plugin) - Enjoy*Study
    onozaty
    onozaty 2015/07/19
  • Redmineの少機能設定 - ログ日記

    以前はあれもこれもプラグインでできるなどと色々入れた結果、やることがぼやけたりRedmineのバージョンを上げづらくなったりということになっていた。 今回はとにかくメニューやリンクを減らす方向で設定。 admin以外はシステム管理者にしない ロールと権限で開発者・報告者にメンバー管理を追加して、普段は開発者で使って他のユーザーの確認に報告者になったりチケット整理時だけ管理者になったりする トラッカーで使うのは「担当者」「対象バージョン」「進捗率」とカスタムフィールドのみ 進捗率はステータスから自動計算(設定のチケットトラッキング) ワークフローは初期設定のものから更に削る チケットのステータスは「要求待ち」「要件確定」「テスト待ち」「リリース待ち」など表記を変える フィールドに対する権限で、一定のステータス以降は「担当者」「対象バージョン」を必須 バージョンは「6月リリース分」「7月リリー

    Redmineの少機能設定 - ログ日記
    onozaty
    onozaty 2015/07/18
  • Redmineがインストール済みのVagrant Boxファイルを公開しました(2.0から3.0まで) - Enjoy*Study

    Atlas(旧Vagrant Cloud)にて、Redmineの各バージョンがインストール済みのBoxを公開しました。Redmine 2.0~3.0までの各種バージョンを取り揃えています。(マイナーバージョンは現時点での最新です) onozaty/redmine-3.0 onozaty/redmine-2.6 onozaty/redmine-2.5 onozaty/redmine-2.4 onozaty/redmine-2.3 onozaty/redmine-2.2 onozaty/redmine-2.1 onozaty/redmine-2.0 Atlasで公開されているBoxは、URL指定せずに、そのままの名前をBox名として指定できます。 ということで、コマンドひとつで、Redmineがインストール済みの仮想環境ができあがります。 vagrant init onozaty/redmin

    Redmineがインストール済みのVagrant Boxファイルを公開しました(2.0から3.0まで) - Enjoy*Study
    onozaty
    onozaty 2015/05/04
  • Redmineで選択項目が大量にあるチェックボックスを扱いやすくする(View customize plugin) - Enjoy*Study

    大量の項目があるチェックボックスによる問題 Redmineのチケットのカスタムフィールドとして、複数選択可能なチェックボックスが作れます。 ただ、選択項目が大量にあると、下記の点が不便に感じました。 表示領域をとても大きくとってしまう 選びたい項目を探しずらい ということで、View customize plugin を使って、この問題を解決する方法を考えてみました。 View customize plugin による解決方法 View customize plugin は、Redmineの画面に対して、JavaScript/CSSを埋め込み、画面を簡単にカスタマイズできるプラグインです。プラグインのインストール方法および利用方法は下記をご参照ください。 onozaty/redmine-view-customize - GitHub 画面をJavaScript/CSSで簡単にカスタマイズで

    Redmineで選択項目が大量にあるチェックボックスを扱いやすくする(View customize plugin) - Enjoy*Study
    onozaty
    onozaty 2015/04/26
  • Redmineでサイドバーを開閉可能とし、かつ縦スクロールでも隠れないようにする(View customize plugin) - Enjoy*Study

    追記@2015-03-29>> サイドバーの高さがウインドウサイズを超えるような場合(カスタムクエリが大量にある場合)に、ウインドウサイズを超えた位置を選択できなくなるので、下にスクロールした際には、サイドバーの末尾の位置で調整し、上にスクロールした場合には、サイドバーの先頭の位置で調整するようにスクリプトを変更しました。 <<追記@2015-03-29 onozaty/redmine-view-customize - GitHub 画面をJavaScript/CSSで簡単にカスタマイズできるRedmineプラグインを作成しました (Redmine view customize plugin) - Enjoy*Study 以前、下記の記事で、サイドバーを開閉可能とするスクリプトを書きましたが、 いくつかコメントいただいたので、修正してみました。 縦スクロールしてもサイドバーが隠れてしまわな

    Redmineでサイドバーを開閉可能とし、かつ縦スクロールでも隠れないようにする(View customize plugin) - Enjoy*Study
    onozaty
    onozaty 2015/03/23
  • Inkscapeを使ってコマンドラインでSVGから各種フォーマット(PDF、PNGなど)へ変換する - Enjoy*Study

    ベクトル形式の画像を編集できるInkscapeですが、コマンドラインのオプションで、各種フォーマットへの変換に対応しているので、わざわざGUI立ち上げなくてもコマンドだけで変換処理が書けちゃいます。 Home | Inkscape たとえば、SVGPDFに変換したい場合には、下記のように書けます。(Windows上での例) "C:\Program Files\Inkscape\inkscape.com" -f test.svg -A test.pdf Windowsだと、コマンドライン実行時には、inkscape.exeと同じディレクトリにあるinkscape.comを使う必要があるのでご注意ください。他のOS(LinuxMac OS X)ならば、そのままinkscapeを指定で大丈夫です。 各種プラットフォームに対応しているところもInkscapeの良いところですよね! 変換できるフ

    Inkscapeを使ってコマンドラインでSVGから各種フォーマット(PDF、PNGなど)へ変換する - Enjoy*Study
    onozaty
    onozaty 2015/03/18
  • JavaScriptで後から追加されたり置き換わったりする要素に対してイベントをハンドリングする - Enjoy*Study

    後から追加されたり、途中で置き換わったりする要素に対してイベントハンドリングを行おうとした場合、下記のようにその要素に対してイベントハンドラを登録してしまうと、現在存在しない場合は当然エラーになりますし、要素自体が丸ごと置き換わってしまうような場合には、そのタイミングで登録していたものが意味のないものになってしまうため、うまくいきません。 こういった場合には、現在存在し、その後も置き換わることのない親の要素(たとえばdocument)に対してイベントハンドラを登録し、その中で、イベント発生元の要素をチェックして処理します。下記はdocumentに対して設定していますが、必要以上にハンドリングしない方が良いので、なるべく近い親に設定した方が良いかと思います。

    JavaScriptで後から追加されたり置き換わったりする要素に対してイベントをハンドリングする - Enjoy*Study
    onozaty
    onozaty 2015/03/02
  • Redmineでトラッカー毎にデフォルトステータスを変える(View customize plugin) - Enjoy*Study

    南旺理工: Redmineでトラッカーごとにデフォルトのステータスを指定できない Redmineで課題管理をする時の注意点: プログラマの思索 もうすぐ出るRedmineの3.0で解消するとのことですが、、3.0にすぐにあげられない方に向けて、Redmineでトラッカー毎にデフォルトステータスを設定する方法をView customize pluginを使って考えてみました。 onozaty/redmine-view-customize - GitHub 画面をJavaScript/CSSで簡単にカスタマイズできるRedmineプラグインを作成しました (Redmine view customize plugin) - Enjoy*Study 対処方法 今回の変更を行うにあたって気を付けなければならないのは、チケット画面のフォームは、選択項目の変更によって中身を丸ごと差し替える場合があるとい

    Redmineでトラッカー毎にデフォルトステータスを変える(View customize plugin) - Enjoy*Study
    onozaty
    onozaty 2015/02/24
  • View Customize Plugin for Redmine (社内勉強会資料) - Enjoy*Study

    社内の勉強会でLTした資料をSlideShareにあげました。 View Customize Plugin for Redmine from onozaty View Customize Pluginを作った経緯とか書いています。 onozaty/redmine-view-customize - GitHub Redmine使っていて、使いずらいところをUserScriptで改善しているような人は、ぜひこのPluginを使って、それをみんなで共有してみてはいかがでしょうか。

    View Customize Plugin for Redmine (社内勉強会資料) - Enjoy*Study
    onozaty
    onozaty 2015/02/24
  • 右クリックによるコンテキストメニューを無効にしているページでも右クリック可能とする(Firefox) - Enjoy*Study

    下記のようにoncontextmenuでfalseを一律返すようにするなどして、右クリックでのコンテキストメニュー表示を無効としているサイトがたまにありますが、 コンテキストメニューには、ブラウザのアドオンによるメニューなどもあり、無効になってしまっていると、とても困る場合があります。 Firefoxだと、このコンテキストメニューを無効としているのを回避することができます。 アドレスバーで about:config と入力し、 dom.event.contextmenu.enabled の設定をfalseに変更します。 この設定は、contextmenuイベント自体を無効とするので、contextmenuイベントで行っていた処理(今回だと、処理をキャンセルする部分)が呼ばれなくなり、結果的にコンテキストメニューが表示されるようになります。

    右クリックによるコンテキストメニューを無効にしているページでも右クリック可能とする(Firefox) - Enjoy*Study
    onozaty
    onozaty 2015/02/08
  • Selenium IDEをブラウザのマクロとして使う - Enjoy*Study

    Selenium IDE Selenium IDEは、ブラウザ操作をコマンドとしてレコーディングし、それをSeleniumのテストとして保存、実行できるFirefoxプラグインです。これを使うと、とっても簡単にテストの作成、実行ができます。 Selenium-IDE — Selenium Documentation プログラミングの知識は(ほとんど)不要です。単にやりたいことを、ブラウザ操作で行うだけです。入力内容や表示内容のチェック自体も、ブラウザ上から指定できます。 Selenium IDEは、HTML形式(Selenium RC形式)のテストとして保存、読み込みができるのですが、SeleniumとしてメインとなりつつあるWebDriver形式のテストコードもエクスポートすることができます。 Selenium IDEをブラウザのマクロとして使う ブラウザ操作を繰り返し実行させることがで

    Selenium IDEをブラウザのマクロとして使う - Enjoy*Study
    onozaty
    onozaty 2015/01/14
  • お試し用のLinux環境を作る - Enjoy*Study

    社内の勉強会でLTした資料をSlideShareにあげました。 お試し用のLinux環境を作る from onozaty 自分自身、VitualBoxとVagrantのおかげでかなり助かっている(手軽にLinux環境を作ったり消したりできるので、ほんといろいろ試すのが楽になりました)ので、他の人にも興味持ってもらえればなぁと思って書きました。 気が付いたら、前回発表してから1年以上たっていました。もう少しアウトプットしていかないと。。 業務で使うIRC - Enjoy*Study

    お試し用のLinux環境を作る - Enjoy*Study
    onozaty
    onozaty 2014/08/27
  • そのRedmine用のUserScript、みんなに適用しませんか? - Enjoy*Study

    ※すいません、勢いで書いたため、一部偏った部分があるかもしれません。 Redmine用のUserScript Redmine使っている開発者ならば、自分で作ったRedmine用のUserScript(Greasemonkeyとか)のひとつやふたつくらいあったりするのではと思います。 とっても便利で、みんなに使ってもらいたいと思っても、 シャイでなかなか言い出せない 頑張ってみんなに言いふらしても、インストールしてもらえるか怪しい UserScript更新時に再度周知するのが面倒 そもそもUserScriptって何?(IEユーザ) といったことがあって、なかなか出来ないのかなと思います。 けど、それがみんなにとって当に有用なものならば、それって、そのチームにとって、とってももったいないことですよね。 それを解決するのが、View customize plugin です! View cust

    そのRedmine用のUserScript、みんなに適用しませんか? - Enjoy*Study
    onozaty
    onozaty 2014/08/12
    my
  • Redmineで自分の名前を強調して表示する方法(View customize plugin) - Enjoy*Study

    View customize plugin View customize pluginを使うと、自分の名前を強調表示するといったカスタマイズもできます。(JavaScriptを埋め込めるので、それを利用します) onozaty/redmine-view-customize - GitHub 画面をJavaScript/CSSで簡単にカスタマイズできるRedmineプラグインを作成しました (Redmine view customize plugin) - Enjoy*Study 設定方法 View customize pluginにて、すべてのパスに対してJavaScriptを埋め込み、JavaScriptにて自分の名前を強調表示します。 Path pattern すべてのパスを指定したいので、正規表現ですべてに一致するように条件を指定します。 .* Type、Code Type:Java

    Redmineで自分の名前を強調して表示する方法(View customize plugin) - Enjoy*Study
    onozaty
    onozaty 2014/07/21
  • 親チケットでフィルタできるRedmineプラグインを作成しました (Parent issue filter plugin for redmine) - Enjoy*Study

    Parent issue filter plugin for redmine onozaty/redmine-parent-issue-filter · GitHub Redmineで親チケットとルートチケット(親チケットをたどって一番上のチケット)を使ってフィルタがかけられるプラグインです。 対応バージョン Redmine2.0以降に対応しています。(2.0.4と、作成時点の最新(2.4.3)で確認済み) インストール方法 インストールは、Redmineのpluginsディレクトリ配下にファイルを置くだけです。dbのmigrationは不要です。 $ cd {RAILS_ROOT}/plugins $ git clone https://github.com/onozaty/redmine-parent-issue-filter.git parent_issue_filter gitが入

    親チケットでフィルタできるRedmineプラグインを作成しました (Parent issue filter plugin for redmine) - Enjoy*Study
    onozaty
    onozaty 2014/02/13
  • 「リーダブルコード」はプログラマにとっての教本 - Enjoy*Study

    書の目的は、読みやすいコードを書くことである。その中心となるのは、コードは理解しやすくなければならないという考えだ。具体的に言えば、誰かが君のコードを読んで理解する時間を最短にするということだ。 x はじめに 書について 読みやすいコードを書く上で必要なことが、わかりやすいコード例と(アメリカンな感じの)ユーモアあるイラストによって語られています。 コード例は、いろいろな言語で書かれていますが、その言語を理解していなくても意図が伝わる内容になっています。これを見ると、読みやすいコードのポイントというのは、ほんと言語を問わないんだなぁと思いました。 コードを書く人も、コードレビューするような人もぜひ一度読んでみることをおすすめします。すでに当たり前にやっていることでも、それに対する根拠ある説明が書かれているので、さらに理解が深まるのではと思います。 そして、これを読んだら、プロジェクト

    「リーダブルコード」はプログラマにとっての教本 - Enjoy*Study
    onozaty
    onozaty 2013/09/13
  • IRC BOTを作って仕事をさせるようにした - Glide Note

    cinchrb/cinch · GitHub 普段仕事中はIRCがコミュニケーションの中心で、私はWeeChatという CUIIRCクライアントを使っていて、一日の7〜8割はターミナル上で過ごしてて、 全社員がIRC使ってるし、GitHubへのcommitログや、deployのログ、 NagiosのアラートもバンバンIRCに流れてくるのでIRCを見てる時間も結構ある。 サーバのラック番号とかmuninのグラフ、server-status、Nagiosなどを確認するのに ターミナルから離れて、マウス使ってブラウザを操作して 探してたりすると集中が切れるので、IRC BOTを作って、URLを教えてくれるようにした。 URLをクリックすればブラウザが勝手に開いてくれる。 管理サーバが数百台でも、ブラウザのブックマークからmuninの一覧を出して、 該当サーバのURLを探すのも結構だるいし、そも

    onozaty
    onozaty 2013/05/22
    IRCbot Console使って同じようなことやってます。 http://www.enjoyxstudy.com/ircbotconsole/
  • キャプチャソフトの SnapCrab for Windows がとても使いやすい - Enjoy*Study

    SnapCrab for Windows - マウスひとつで、即キャプチャ。 Windows7にもとからはいっているSnipping Toolを使ってキャプチャとってましたが、コンテキストメニューのキャプチャをしたいときに、タイマーが無くてキャプチャが無理だったので、同僚が使っているといっていたSnapCrabを入れてみました。 SnapCrabもとてもシンプルで直感的に使いやすく、タイマーも可能(カーソル動かさずに3秒たったらウインドウキャプチャといった動き)だし、範囲指定の調整もしやすい(位置をあとから微調整できる)ので、とても使いやすいです。 SnapCrabを入れてしまったので、逆にSnipping Toolを使うことが今後は無くなりそうです。

    キャプチャソフトの SnapCrab for Windows がとても使いやすい - Enjoy*Study
    onozaty
    onozaty 2013/05/09
  • Eclipseにおける快適なコード補完 - Enjoy*Study

    Pleiades All in Oneを使っているのですが、補完の設定をいつもカスタマイズしています。 Pleiades - Eclipse プラグイン日語化プラグイン | MergeDoc Project 以降は、Eclipse 4.2 での設定内容になります。 キーの設定 補完を行うコマンドが複数あるので、意図的に使いたい方を有効にしておきます。 (All in Oneだと、複数のプラグインが入っているので、そのせいで同じようなものがあるのかも…) 単語補完:順番に候補となるもので補完される コンテンツ・アシスト:候補の一覧が表示され、そこから選択できる となっており、自分としては、コンテンツ・アシストの動きの方がわかりやすいので、単語補完の方は無効にしています。 自動補完が行われる対象文字を増やす 補完が自動的に有効化される機能があり、デフォルトだと、"."が入力された際に、補完が

    Eclipseにおける快適なコード補完 - Enjoy*Study
    onozaty
    onozaty 2013/04/20