こんにちは、サービス開発部の荒引 (@a_bicky) です。 突然ですが、RDBMS の既存のテーブルを見てみたら「何でこんなにインデックスだらけなの?」みたいな経験はありませんか?不要なインデックスは容量を圧迫したり、挿入が遅くなったりと良いことがありません。 そんなわけで、今回はレコードを検索するために必要なインデックスの基礎知識と、よく見かける不適切なインデックスについて解説します。クックパッドでは Rails のデータベースとして主に MySQL 5.6、MySQL のストレージエンジンとして主に InnoDB を使っているので、MySQL 5.6 の InnoDB について解説します。 InnoDB のインデックスに関する基礎知識 インデックスの構造 (B+ 木) InnoDB では B+ 木が使われています。B+ 木は次のような特徴を持った木構造です。 次数を b とすると、
こんにちは。Tokyo Otaku Modeの安宅です。先日から、とあるプロジェクトにジョインして、久々にGoogleスプレッドシートをゴリゴリ活用して仕事をしています。そんな中、これは惚れた!というスプレッドシートの神関数を紹介したいと思います。 ARRAYFORMULA関数 これを活用し始めてから、関数をいちいち全部の行に埋め込んでいくことが、なんだかカッコ悪く感じるくらい、スマートでオシャレな関数です。例えば、100行のVLOOKUP関数を行うときには、これまではVLOOKUP関数を1つ作って、それを残り99個の行にVLOOKUP関数をコピーしていたと思いますが、ARRAYFORMULA関数を使うと、なんと1個の関数で100行分の値が出力されます。実際に動作も軽くなるのでカッコよさと実用性を兼ね備えた関数です。配列に対応する関数であれば、ほぼなんでも利用できるのも好感度が高いです。
topコマンドといえば、よくLinuxのパフォーマンス状態をモニタリングするために利用されているコマンドだ。 今回は、そんなtopコマンドで覚えておきたい使い方14個を紹介する。 なお、検証で使用したtopコマンドはCentOS 7 で利用している「procps-ng version 3.3.9」のものとなっている。 1.基本的な使い方 基本的には、オプション無しで以下のようにコマンドを実行する。 top top - 07:21:06 up 4 days, 17 min, 4 users, load average: 0.00, 0.00, 0.00 Tasks: 186 total, 1 running, 185 sleeping, 0 stopped, 0 zombie Cpu(s): 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0
インフラ担当の池田(@mikeda)です。 tmuxを使い初めて1年くらいになりました。 今日はtmuxの、普段のオペレーションでよく使ってる機能を紹介します。 複数サーバで同時オペレーション tmuxにはキー入力を全てのpaneで同期する機能があります。 この機能を使って複数paneでそれぞれ別のサーバにsshログインすると、 複数サーバに同じコマンドを打ったり、 内容が同じ設定ファイルであればviで同時編集したりができます。 同期する/しないはコマンドでも切り替えられますが、 set-window-option synchronize-panes on set-window-option synchronize-panes off tmux.confにショートカットを設定しておくと便利です。 bind e setw synchronize-panes on bind E setw sy
FINDJOB! 終了のお知らせ 2023年9月29日にFINDJOB!を終了いたしました。 これまでFINDJOB!をご利用いただいた企業様、求職者様、様々なご関係者様。 大変長らくFINDJOB!をご愛顧いただき、誠にありがとうございました。 IT/Web系の仕事や求人がまだ広く普及していない頃にFind Job!をリリースしてから 約26年間、多くの方々に支えていただき、運営を続けてまいりました。 転職成功のお声、採用成功のお声など、嬉しい言葉もたくさんいただきました。 またFINDJOB!経由で入社された方が人事担当になり、 FINDJOB!を通じて、新たな人材に出会うことができたなど、 たくさんのご縁をつくることができたのではないかと思っております。 2023年9月29日をもって、FINDJOB!はその歴史の幕を下ろすこととなりましたが、 今後も、IT/Web業界やクリエイティブ
FINDJOB! 終了のお知らせ 2023年9月29日にFINDJOB!を終了いたしました。 これまでFINDJOB!をご利用いただいた企業様、求職者様、様々なご関係者様。 大変長らくFINDJOB!をご愛顧いただき、誠にありがとうございました。 IT/Web系の仕事や求人がまだ広く普及していない頃にFind Job!をリリースしてから 約26年間、多くの方々に支えていただき、運営を続けてまいりました。 転職成功のお声、採用成功のお声など、嬉しい言葉もたくさんいただきました。 またFINDJOB!経由で入社された方が人事担当になり、 FINDJOB!を通じて、新たな人材に出会うことができたなど、 たくさんのご縁をつくることができたのではないかと思っております。 2023年9月29日をもって、FINDJOB!はその歴史の幕を下ろすこととなりましたが、 今後も、IT/Web業界やクリエイティブ
サーバ/クライアントPC問わず、今使っているマシンのハードウェア構成がどのようなものかをOS上で確認したくなることもあるでしょう。 そんな時にお手軽に調べられる方法を、たまーにググったりするので、Linux/Mac OS X/Windowsの3つのOSの場合の調べ方をここに残しておきます。 Linux Linuxでは、dmidecodeコマンドを使います。 BIOSの情報とか、マシンの各種システム情報(シリアルナンバー等の各種メタ情報、CPU、メモリ、その他デバイス情報とか)が取得できます。 CentOS/RHELとかだと"kernel-utils"パッケージがインストールされていれば使えます。 ちょっと長いですが、以下のような感じです。 # dmidecode # dmidecode 2.11 SMBIOS 2.7 present. 87 structures occupying 399
Maintaining inbox zero and dealing with old emails takes work (for some, too much work!). This Google Apps script lightens the load a bit by automatically archiving or deleting old emails that are cluttering your inbox, based on a schedule you set. Whipped up by John Day, these time-based Gmail filters will move old read emails to the trash or auto-archive them. So, for example, you could automati
The best solution I've been able to find consists of these steps: Create a branch called mvn-repo to host your maven artifacts. Use the github site-maven-plugin to push your artifacts to github. Configure maven to use your remote mvn-repo as a maven repository. There are several benefits to using this approach: Maven artifacts are kept separate from your source in a separate branch called mvn-repo
Re: [twitter:@riywo]'s UNIX Command Idioms ps auxwwwwwww number of "w" depends on my mood in that day :D ps auxwwwwwwwww -L netstat -tna / -una / -tnl / -tnap tar xvf tar zxvf / jxvf / Jxvf are boring trailing slash in rsync rsync -av file [file] HOST:dir/ rsync -av dir/ HOST:dir/ tcpdump -i any -nlx strace -s 100 -fFTttt diff -u /path/to/file <(ssh host cat /path/to/file) see also: http://d.haten
この記事は Vim Advent Calendar 2012 の 40 日目の記事です。 昨日は @kokukuma さんのなんかvimがセグメンテーションフォルト吐いたんですけど。。でした。 はじめに プログラミングに限らず、何かを書くときにコピー&ペーストってよく使いますよね。Vim でも当然その機能はありますが、Vim の場合はレジスタという仕組みによってさらに便利に使うことができます。 今回は、私が最近覚えてすごく便利に思ったコピー&ペーストに関する小ネタを書きます。 前提知識 レジスタとは 文字列を y でコピー(Vim ではヤンクといいます)すると、その文字列は無名レジスタに蓄えられます。d とか c とかで削除した時も同様です。無名レジスタに記録された文字列を貼り付けるには単純に p や P を使います。 "ayy とか "bdw とすると、明示的に a レジスタや b レジ
cstream - direct data streams, with bandwidth limiting, FIFO, audio, duplication and extended reporting support. ざっくり言うとデータストリームの制御とかできるよ!っていうコマンドっぽいです。オーディオアプリケーションのデータレートのエミュレーションとかで利用されているそうです。オプションではcstreamコマンドの-tを使うのですが、以下がmanでの内容になります。 -t num Limit the throughput of the data stream to num bytes/second. Limiting is done at the input side, you can rely on cstream not accepting more than thi
http://d.hatena.ne.jp/dharry/20110122/1295681180 シェルスクリプトであーだこーだしていましたが、pvコマンドという便利なものがあるとは知らなかった。 まずはpvとdialogコマンドをインストール sudo apt-get install pv dialog 圧縮したり tar cf - ./test | pv | gzip -1 > test.tgz 375MB 0:01:06 [5.82MB/s] [ <=> ] 展開したり pv test.tgz | tar xzf - 68.5MB 0:00:02 [ 32MB/s] [===========================================>] 100% man pv にあるexampleが爽快だった。 (tar cf - . | pv -n -s `du -sb .
Raycastを使い始めて1年経ったので、どういうことに使っているかを振り返ってみる。去年書いた AlfredからRaycastに移行した - oinume journal の記事から少し使い方が変わっているところもあるのでメモがてら。 基本的な使い方 Cmd + QをRaycast起動のショートカットとして割り当てている。Pro版は使っていないのでAI機能などは使ったことがない。 ブラウザのブックマーク検索など、よく使うけどHotKeyを割り当てるほどでもないRaycastコマンドはbmのようにAliasを設定している。 Cmd + QでRaycastを起動してbmと入力するとブックマークの検索ができるので楽ちん アプリケーションランチャー機能 アプリケーションを起動するときのランチャーとして使っている。よく使うアプリにはHot Key(ショートカット)を割り当ててる。 Clipboar
linux(bash)でログアウトしてもジョブを停止したくないとき. $ nohup ./program nohupし忘れて途中からnohupしたいとき, (ジョブ番号を1とする) $ disown %1これで,shellのジョブ管理から切り離されるので ログアウトしてもジョブは実行され続ける. この時,コマンドをbgでバックグラウンドジョブにしておかないと 停止したまま,shellの管理を離れてしまう. そこでkillコマンドでプロセスにCONTシグナルを送ると再開する. $ kill -CONT pid逆に直接管理下にないプロセスを一時停止したいとき. $ kill -STOP pidkillコマンドは字面からプロセスを殺すことが目的か というとそうでもなく, シグナルを送るのがお仕事だったりする. 参考 Manpage of BASH Manpage of KILL
Thank you for being patient. We are doing some work on the site and will be back shortly.
ウェブサイトやブログの運営でよく使いそうな便利な.htaccessの設定を紹介します。 こういうまとめは定期的にあがってきますが、やっぱり必要なのでシェアします。 10 useful .htaccess snippets to have in your toolbox [ad#ad-2] 下記は各ポイントを意訳したものです。 URLからwwwを削除 hotlinkingの防止 feedをfeedbunnerにリダイレクト カスタムエラーページ ダウンロードファイルの処理 PHPのエラーのログ URLからファイルの拡張子を削除 ディレクトリのファイルリストを見せない ファイルを圧縮して軽量化 文字コードの指定 URLからwwwを削除 SEOなどの理由で、URLからwwwを削除して使うことがあるかもしれません。このスニペットは、あなたのウェブサイトにwww付きでアクセスしてきてもwww無しに向
2011年04月20日 googleの裏技いろいろ Tweet 0コメント |2011年04月20日 00:00|Web・テクノロジー|Editタグ :Google意外としんどい http://hato.2ch.net/test/read.cgi/news/1295558779/ 1 : ベーコロン(広西チワン族自治区):11/01/21 06:26 ID:SNxFSb/SO ascii art で検索 【2ch】ニュー速クオリティ:Googleで「AA」で検索かけるとGoogleのロゴがAAっぽくなる 50 : ルネ(北海道):11/01/21 09:31 ID:NdeBivAg0 キャッシュを10年前に戻して検索するのは便利だぞ 当ブログサイトはアフィリエイト広告、バナー広告を利用しています。 52 : そなえちゃん(東京都):11/01/21 10:44 ID:EjQpUNv40 カ
youtube javascript API onStateChangeが発生したplayerを特定する方法 by petit · 公開済み 2010年4月11日 · 更新済み 2010年5月1日 YouTube JavaScript Player API リファレンスによると、onStateChangeイベントは次のようにして取得する。 function onYouTubePlayerReady(playerId) { var player = document.getElementById(playerId); player.addEventListener('onStateChange', 'onYouTubePlayerStateChange' ); } function onYouTubePlayerStateChange(state){ ... } しかしプレーヤーが複数あった
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く