ビザスクさんにお誘いいただき、企業内新規事業担当者の方などに向けて、リサーチに関するお話をしました。 https://visasq.co.jp/seminar/research0728 調査、正しく使うと楽しいし、ためになるよ、というお話をしています。 30分くらいでお話したので、同じような講演ニーズがあればぜひまたお知らせください :-) info@cobe.work
Experience SSH certificates for yourself in <5min⚡! Here are some of our best tips & tricks for using SSH more effectively. This post will cover how to: Add a second factor to your SSH login Use agent forwarding safely Exit from stuck SSH sessions Keep a persistent terminal open Share a remote terminal session with a friend (without Zoom!) Add a second factor to your SSH Here's five different ways
Bashでスクリプトを書く際によく自分が使っている小技や関数などです。 またBashでは他のプログラミング言語以上に$や:などの記号の使い方が独特でググラビリティが低いので、基本文法などもチートシートとしてまとめておきます。 基本文法 変数と配列 制御構文 while for-in if - elif - else if文のone-liner 文字列比較 文字列が等しい (=) 文字列が等しくない (!=) 空文字、文字列長が0 (-z) 空文字でない、文字列長が0でない (-n) 数値比較 数値が等しい (-eq) 数値が等しくない (-ne) 数値がより小さい (-lt) 数値がより大きい (-gt) ファイルの判定 存在する (-e) ファイルである (-f) ディレクトリである (-d) シンボリックリンクである (-L) 関数 便利なスニペット 実行スクリプトがあるディレクトリを
はじめに Herokuのブロク記事10 Habits of a Happy Node Hacker (2016)を、「洋の東西を問わず、みんな『10のなんとか』って好きなんだな」と思いながら眺めていたら、結構面白かったので内容をピックアップしてみます。 以前、Go言語で幸せになれる10のテクニックというのをあるブログ記事を元にして書いた時には、原題の "Ten Useful Techniques in Go"を意訳して「幸せになれる」としたのだが、今回は原題にシッカリ"Happy"が入っているというおまけ付き。 なお、「2016年版」と言っているのは2013(2014?)年版があるから。これらを読み比べてみるのもまた面白いが、とりあえず今回は最新の2016年版のご紹介。 1. 新しいプロジェクトは npm init で始めろ 新しいプロジェクトはこう始めようよ、と言っている。
Redis不適切利用による問題は本番運用が始まってから顕在化することが多く、時限爆弾みたいな存在です。事前に防ぐにはコードレビュー段階で叩くしかありません。 Redisはスクリプト言語と相性が良く、適切に利用するとRDBと比較し驚くほど高速なプログラムを組むことができます。昨年尊敬する先輩にコードレビューで斧100本くらい(レビューコメント)投げられて血まみれになりつつ学んだことを、まとめて書いてます。概要は『消えても良いデータならRedis』 Redisのメモリが溢れたら... (この話は事実ではなくファンタジーです。) 深夜電話で叩き起こされました。どうやらアクセス障害みたいです。 何人かで実機確認したら、まったくゲームが遊べない。データ不整合怖いのでメンテIN。 ほどなくしてRedisが溢れメモリ不足で新規書き込みが出来なくなっていると判明。サーバのメモリ容量は64GByteでこれ以
コマンドの実行時間を計測する際によく使用されるtimeコマンドだが、これはbashの組み込みコマンドのため、外部ファイルへの書き出しができない。 こうなると、nohupなどでコマンドの実行時間をログに記録させて放置したくても、ファイルに書き出せないため放置することが難しくなる。 そんな時は、bashの組み込みコマンドとしてのtimeではなく、GNU timeを利用するといいだろう。 GNU timeは、それぞれのディストリビューションのパッケージ管理ソフトからインストールする。 Debian/Ubuntuの場合 apt-get install time RHEL系の場合 yum install time 後は、以下のようにコマンドを実行する事でコマンドの実行時間を計測、その内容をログに書き出す事ができる。 /usr/bin/time -ao 計測時間を出力するファイル 実行するコマンド [
サーバーコマンドで、小技的なモノを集めておきました。 %command% > /dev/null 2>&1 cromバッチの際に付けておくおまじないオプション。(不用なログを排出しない。) Unix ではファイル記述子というのがあって、番号、多くの場合 0, 1, 2 が使われます。 0:入力 1:普通のメッセージ出力 2:エラーメッセージの出力 というように使い分けされている。 %command% > /dev/null という部分は、command の普通のメッセージ(ファイル記述子1番)を /dev/null というファイル(このファイルは特殊で、ここに出力された内容は全て捨てられる)に出力される。 残る "2>&1" という部分ですが、これは「2番のファイル記述子を1番というファイル記述子にする」という意味になる。 従って、"command > /dev/null 2>&1" とす
LinuxやUNIXでbashを利用しているならば、historyコマンドにお世話になっている人も多いだろう。 そんなhistoryコマンド、デフォルトでは基本的にコマンドの実行時間は記録されない。 test@ubuntu-server:~$ history | tail -10 368 screen 369 vim .screenrc 370 screen 371 ls -la 372 screen 373 vim .screenrc 374 screen 375 history | tail -10 376 clear 377 history | tail -10 test@ubuntu-server:~$ そんなhistoryコマンドの実行結果でタイムスタンプを出力させる場合は、「.bash_rc」に以下の一行を追記する。 これで、追記以後のログインからコマンドの実行時間を記録するよ
要望 フォームの入力情報をクッキーに保存したい。 1つのクッキーに複数の項目の情報をまとめて保存したい。 解決策jQueryプラグインの"jquery.cookie"を使うことで全て解決しました。 外部: https://github.com/carhartl/jquery-cookie デモ: https://codepen.io/sutara79/pen/GBdKQX 解説自動JSON化のオプションを有効にすれば、JavaScript側では連想配列として、クッキー側ではJSON形式の文字列として扱えるように自動で変換してくれます。 // 自動JSON化を有効に $.cookie.json = true; // 連想配列をJSONで保存 var hash1 = { ... } $.cookie('cookie1', hash1); // JSONを連想配列に復元 var hash2 =
最近、どうもLinux上ではemacsではなくvimを利用する事が多いのだが、その際に知ったので備忘として残しておく。 vimでは、以下のようにコマンドを実行することでリモート先のファイルをsshプロトコル経由で編集することが出来る。 vim scp://ユーザ名@リモートホスト(IPアドレス)//編集対象のファイル 実際にやってみたのがこちら。 まず、既存のファイル「/work/work/test/test2.sh」の中身を確認後、上記コマンドを実行している。 上記コマンドを実行した結果、/tmpフォルダに編集用の一時ファイルが作成される。 そのファイルを開くかを確認される。 ファイルが開かれるので、適当に編集して保存する。 再度ファイルを確認すると、無事編集が反映されている。 と、このような感じだ。 vimの搭載されていない、ESXi上に設置するスクリプトを作成する際に重宝するのではな
今回はHTMLやCSS、Javascriptといった比較的軽量な静的コンテンツの配信をnginxでやるケースに絞ってチューニングする際のポイントについて紹介しようかと思います。 (注:worker_rlimit_nofileやsysctl.confのネットワーク周りの設定のような定石的なチューニングについてはあえて解説しないのであらかじめご了承ください。) コンテンツをgzip圧縮する 何はともあれgzip圧縮です。ネットワーク帯域に比べればCPUリソースなんて安いものです。 しかし、多くの場合これだけでは十分ではありません。何故ならnginxはデフォルトではContent-Typeがtext/htmlのコンテンツしか圧縮しないためです。圧縮対象のContent-Typeを増やすにはgzip_typesを使います。 単純なWebサイトであれば上記の設定で十分ですが、場合によってはappli
bash で Ctrl-C をフックする方法、つまりSIGINTを自前のシグナルハンドラで捕捉する方法についてメモ。 概要 シグナルハンドラを設定するには、trap というbashのビルトイン・コマンドを使います #!/bin/bash hander() { echo "recv!!" } trap hander SIGINT while /bin/true; do : ; done Ctrl-Cを押すと SIGINT という名前のシグナルがプロセスに通知されるので、trapコマンドで SIGINT を受け取ったら hander という関数を呼ぶように設定しています このシェルスクリプトは実行すると末尾で無限ループになるだけです。ただCtrl-C を押しても、シェルスクリプトは終了せず、代わりに hander()関数が呼ばれて"recv!" という文字列が画面に表示されます Ctrl-Cで
サーバーとの定期的な疎通確認を setInterval で実装してたら、いつの間にか処理が停止してたという話。 setIntervalの中でエラーが飛ぶとタイマーが停止する。 ΩΩΩ process.on('uncaughtException', function (err) { console.error(err.stack); }); setInterval(function () { JSON.parse('{}}}'); // throw }, 1000); setInterval(function () { console.log('xxx'); }, 1000); $ node a.js SyntaxError: Unexpected token } at Object.parse (native) at null.<anonymous> (/home/ajido/a.js:6
photoBy: https://thinkxfree.files.wordpress.com/2012/04/ce…mysqlが何故か落ちる。。。結局、node.jsを使いすぎていたことが原因だった。 メモリの使用量は ps alx | awk '{printf ("%d\t%s\n", $8,$13)}' | sort -nr | head -10でメモリを利用しているアプリベスト10が出力されます。 全てみるには?ps alx | awk '{printf ("%d\t%s\n", $8,$13)}' 一発で終了例えば /usr/bin/node を終了するには pkill -f nodeとすることで node にマッチするプロセスを一気に削除できます。 空きメモリーを調べる空きメモリは、 buffes/cache の free を見て下さい。 $ free -m total
CentOS 7ではsystemdが導入されているので、サービスの管理が従来と大きく変わっています。詳しい解説はsystemd徹底入門のスライドを参照するとして、ここでは「前のコマンドはsystemdでどう入力するの?」というのだけ、簡単にまとめてみました。 サービス名にはsshdを指定していますが、もちろん任意のサービスが指定できます。 サービスの起動、終了など 操作SysV InitSystemd 起動/etc/init.d/sshd startsystemctl start sshd 終了/etc/init.d/sshd stopsystemctl stop sshd 強制終了PID探してkill -9systemctl kill -s 9 sshd 再起動/etc/init.d/sshd restartsystemctl restart sshd 設定反映/etc/init.d/s
■ オフィスのプロジェクタにChromecastを挿して大活躍させてる 月曜から稼働している新オフィス、プロジェクトルームにEPSONの短焦点プロジェクタを2台設置してもらったんだけど(プロジェクタはプレゼン用途よりもディスカッション用途の方が有用なのでプロジェクトルームに置くのは当然ですね)、最近のビジネス用プロジェクタの例に漏れずちゃんとネットワークで共有できるから、プロジェクトの各メンバが自分の端末の内容をプロジェクタに出力できる。 (ここで「プロジェク」がゲシュタルト崩壊してきたのでちょっと深呼吸) ただ、(EPSONだけかも知れないけど)ネットワークプロジェクタ機能にはけっこう制約があって、プライマリディスプレイの内容しか出力できない(拡張ディスプレイ扱いにできない)とか、メンバが協調しないとソースの切り替えができない(他人の出力を勝手に奪えない)とか、その他もろもろディスカッシ
数年前から身内で時々集まって開発合宿をしていて、成功失敗あわせて知見が貯まってきたので備忘録として記事にしておきます。 なお、ここで開発合宿と言っているのは1,2部屋に1泊して済ませるような規模のもので、ホワイトボードでブレストしまくりといったものではなくて淡々とみんなでパソコンするみたいなものを想定しています。 宿選び あえてオススメの宿リストみたいなのは書きません。なぜなら開発合宿向けの宿まとめみたいな記事を真に受けて失敗したことがあるので、そのようなリソースをインターネットに増やしたくない。 開発合宿で有名な某旅館は、割安ではあるが無線LANが弱すぎ、温泉はぬるすぎ、メシもいまいちという品質なのに、開発合宿に選ばれがちである。○○旅館に行ってきましたという開発合宿レポートをみんながブログに書くから検索にヒットしてみんなそこに行くみたいになってて、負の連鎖が起こってる。 無線LANより
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く