Monitoring Casual Talks #7 での発表資料です. http://www.zusaar.com/event/9807003 30days Albumという写真サービスの裏側の,監視やインフラCI周りの状況についてお話させていただきました.Read less
![30days Albumの裏側〜監視・インフラCI事情〜 #monitoringcasual](https://cdn-ak-scissors.b.st-hatena.com/image/square/2de89f000f5a6181742519245a45e3d7ea18c27c/height=288;version=1;width=512/https%3A%2F%2Fcdn.slidesharecdn.com%2Fss_thumbnails%2Fiqatpds7qriuhgeyznlg-signature-fa9b0fcfe53aed81cd413e64f4656b605b1ce5198c191d4e841fd794809c813a-poli-150131040153-conversion-gate02-thumbnail.jpg%3Fwidth%3D640%26height%3D640%26fit%3Dbounds)
golangのtestingパッケージはシンプル主義のgoならではといった、最小限の機能のみを提供しています。実際のところこれまでも(ほぼ)充分な機能を提供してきたわけですが、テスト前の初期化を明確に定義できないなど、不満もありました。 そういうわけで、1.4からこの不満を解決するtesting.MとTestMain(*testing.M)が追加されています。これがかなり最高便利です。 従来のテクニック 当然、これまでもテストの"初期化"や"お片づけ"を書きたいという要求は当然ありました。それに対しては、go testコマンドがファイルをabc...順に読みこむことを利用して、ファイル名を工夫するというちょっと裏ワザ的な手法が一般的でした。 すなわち、最初に実行したいテストが書かれたファイルは「a_test.go」にして、最後に実行したいテストを「z_test.go」とするわけです。この方
最近ちょっとした事情で Stan を使いたく、状態空間モデルの勉強とあわせて こんな感じ でやっている。その環境構築ネタ。 補足 Stan って何?という方は StanTutorial がわかりやすい。 Stan の公式バインディングとしては R 用の RStan、Python 用の Pystan、コマンドライン用の CmdStanと 3 つある。うち、自分が使うのは RStan と PyStan。 RStan Getting Started · stan-dev/rstan Wiki · GitHub Getting started — PyStan 2.5.0.2dev documentation これらの標準版のインストールについては、上のドキュメントに OS 別のハマりどころも含めて整理されていてよい。標準版しか使わないよ、という方は上だけ読んでおけば OK。 自分はある issu
概要 自動化・効率化 の検討方法を検討する 経緯 2015/01/18 から個人KPT を開始しました。経緯については下記参照。 個人での KPT の活用開始と KPT-CD という独自概念について 現在、実行中の try の中に 毎週土曜に自動、効率化を必ず行う 自動化検討タスク 自動化実装タスク があります。 日々増える大量のインプット・アウトプット。 どんどん増えるやりたいこと。 これに対応するために、定期スケジュールの中に自動化・効率化を組み込むことにしました。 そして本日が初回実施日。 着手するにあたって、自動化・効率化の検討を行う際の基準を決める必要がでてきました。 目的 自動・効率化によって時間を創出する。 自動・効率化のコスト - 自動・効率化による長期コストの削減 + 自動・効率化時に得られた技術的知見 = 自動・効率化利益 雑な感じだけど、上記のようなイメージで 自動・
1/31に開催された Hachioji.pm #46に行ってきました。 Goを書いてたら、いつのまにかアセンブリを書いてた話 Goで最適化のためにアセンブリ書いた話をしました。 スライド https://github.com/hideo55/go-popcount 参考:http://golang-jp.org/doc/asm.html 追記:GoでPopCountやってるパッケージはすでに他にもあるけど、POPCNT使えて、かつPopCount単機能で使えるのが無かったので書きました。 LT 他の人の LTの雑なメモです。 @xtetsujiさん 透過的に例外をキャッチ ENDだとだめ @tsucchiさん DBの自動再接続 @ichigotakeさん C言語はじめました @akira1908jpさん 最近Raspberry Piを購入 @mackee_wさん FF14 ラノベ朗読w @
問題を紙に書き出して凝視し続ける、というシンプルな解決方法を侮るなかれ | ライフハッカー[日本版] ↑この方法いいです。 問題や悩みを紙に書いてひたすら見るという方法です。見るだけでいいです。見ていれば、頭は勝手に考えてくれます。自動機械です。だから、思い悩む必要はありません。 自分の場合、名刺サイズの情報カードに簡単に箇条書きで書いています。それをポケットに入れておきます。 スキマ時間に情報カードを取り出して眺める。そして、またポケットに入れる。それだけです。 何かアイデアを思い付いたら、PocketModに書くか、AndroidアプリのQuickCheckpadでcheck*padにメモを送っておきます。check*padは毎朝確認するので、そこで拾います。 手帳に憂鬱な仕事が三つ以上ないとかえって不安になる、と見城徹さんが言っていました。憂鬱こそが黄金を生むとも。 であれば、情報カ
MOONGIFTはオープンソース・ソフトウェアを紹介するブログです。2021年07月16日で更新停止しました Windowsでnginxを動かす場合、バイナリをダウンロードしてくるのが基本のようです。しかしいつもnginxを起動するのは面倒なので、Windowsのサービス化したいと思う方は多いのではないでしょうか。 そこで使ってみたいのがwinginxです。nginxをサービスに登録して使えるようにしてくれます。 winginxの使い方 winginxはNSSM(Non Sucking Service Manager)を使ってサービス化しています。面白いのはインストーラーを生成するのにNSISを使っていて、それはUbuntu/Debian向けにインストールが想定されていることです。ビルドするとexeファイルができあがるので、それをWindows側で使います。 インストールしてしまえば後はサ
MOONGIFTはオープンソース・ソフトウェアを紹介するブログです。2021年07月16日で更新停止しました 最も簡単なタスク管理としてカンバン方式はお勧めです。カラムはステータスを表します。未作業、作業中、完了、バックログなどそれぞれのステータスによってタスクの場所が変えるだけでとてもシンプルです。 今回はそんなカンバンリストを提供するLibreboardを紹介します。すぐに使い始められますのでぜひ試してみてください。 Libreboardの使い方 Libreboardは特にタスク管理として充実した機能があるわけではありません。しかしやるべきタスクや積み残しを管理するのに十分な機能と言えるでしょう。早くはじめて生産性を向上したい、そんな時にぴったりなタスク管理です。 Libreboardはnode/JavaScript製、MIT Licenseのオープンソース・ソフトウェアです。 Lib
ここ数週間ずっとswiftを書いてきたのですが、swiftは 書いていてつまらない 言語仕様がちょっと頭おかしい オフィシャル言語なのにIDEが糞 未来が見えない と、ぶっちゃけ飽きてしまったので、HaskellでiOSアプリを書くという茨の道に行ってみたいと思いました。 HaskellでiOSアプリがかければ共通部分の処理はHaskellのままAndroidで動かすとか色々できそうです。ぶっちゃけHaskellからCに落としちゃえばどこでも動かせるはずです。というわけで色々探していたところ HaskellがiOSをサポート、性能を改善 というわけで、動くのは動くらしい。少し触ってみて感じを掴んでみることにしました。まずは環境をつくって"Hello, world."です。 今回の参考資料 今回は基本的にこれに従って進めていきます。 ghc-ios/ghc-ios-scripts · Git
Goを使ってみた AWS SDKでGoが使えるようになったということで、すもけのブログを読んでみました。簡単そうですね!しかも、コンパイルしたらLinux/Mac/Windows用の実行ファイルにしてくれるという神仕様です。そこで、業務利用に適応できるか確認したいと思います。 AWS SDK for Go ファーストインプレッション IAMRoleを使おう EC2を業務利用しようと思ったらクレデンシャル情報のベタ書きはリスクが高いです。そこで、EC2インスタンスにIAMロールを設定することになります。GoでもIAMRoleが使えるのか試してみました。 Amazon LinuxにGoのインストール 最も簡単な方法でセットアップします。AWS SDK for Goもセットアップ。 $ sudo yum -y install golang $ mkdir go $ echo 'export GO
こんにちは丸山@h13i32maruです。 WHATWG Streams APIを少し触ってみたので、そのメモです。 ドキュメント WHATWG Streams このメモはLast Updated 21 January 2015を元に書いた whatwg/streams サンプルやリファレンス実装などがある このメモはcommit 879902を元に書いた Stream APIがブラウザにやってくる @jxckさんがnodeのStream APIと絡めてWHATWGのStreams APIを紹介している 概念 JavaScriptのプログラム中で処理する(大きめな)データの読み書きを統一的に扱うためのインターフェースをStreams APIとしてWHATWGが策定している。例えばXHRで大きなファイルを読み込んだ時にはすべてのデータを読み込んだあとにコールバックが呼ばれる*1。これだと読み
Apacheのモジュールをアップデートしたときに通常は再起動を行っていますが、そもそも再起動が必要なのか、gracefulだけで大丈夫だったりしないかということを調べてみました。 Apacheのモジュールロードのタイミング モジュールをロードするコードはこのあたりだろうか。 https://github.com/apache/httpd/blob/2.4.10/modules/core/mod_so.c https://github.com/apache/httpd/blob/2.4.10/modules/core/mod_so.c Apache からは APR の apr_dso_load() を使っているみたいなので、APRの方を覗いてみる。 https://github.com/apache/apr/blob/1.5.1/dso/unix/dso.c 複数のOSをサポートするために
障害発生の際など、やむをえず自宅で就寝中の社長を起こさないといけないことがある。インターネット時代においても遠隔地にいる人間の意識を強制的に遮る有効な方法は一つである。電話だ。 普通の人間なら順番にただ電話すれば良いのだが、我々は電話恐怖症を患うエンジニアである。過去のトラウマから誰かに電話をかけることが不安で仕方ない。 さらにはリモートワークの環境だと、アメリカ西海岸にいる社員が日本の電話番号に電話するのは色々と敷居の高さがある。素早く簡単に社長に電話し不機嫌にすることなく即座に目覚めさせる方法が必要だ。 このような課題を、我々が対処する方法はただひとつ「自動化」である。機械に電話させればよい。行末スペースをただひとつも許せないほど繊細な心を持つ我々と比べて、機械は感情がないので不機嫌な人間に当たられても何も感じない。 今回は、感情のないロボットに社長に電話させる方法を紹介する。 Twi
このドメインは お名前.com から取得されました。 お名前.com は GMOインターネットグループ(株) が運営する国内シェアNo.1のドメイン登録サービスです。 ※表示価格は、全て税込です。 ※サービス品質維持のため、一時的に対象となる料金へ一定割合の「サービス維持調整費」を加算させていただきます。 ※1 「国内シェア」は、ICANN(インターネットのドメイン名などの資源を管理する非営利団体)の公表数値をもとに集計。gTLDが集計の対象。 日本のドメイン登録業者(レジストラ)(「ICANNがレジストラとして認定した企業」一覧(InterNIC提供)内に「Japan」の記載があるもの)を対象。 レジストラ「GMO Internet Group, Inc. d/b/a Onamae.com」のシェア値を集計。 2023年5月時点の調査。
Monitoring Casual #7に参加し、「30days Albumの裏側〜監視・インフラCI事情〜」というタイトルで発表しました。 主に監視周りの話で、ふっつーにNagios・Muninを使ってるんですけど、Muninについてはちょっと変わってるのでそれの紹介。 あと、インフラCIは、モニカジに間に合わせようと奮闘してたんですが間に合わなかったので、出来たところまでを紹介する感じになってます。 発表中にいただいた意見・コメント munin muninが黒背景になってる理由を説明している時の様子。 (導入した本人である)黒田さんに変わって、背景を黒くした中二ムニンの紹介をしてました。 Kibanaみたいな色にしたい #monitoringcasual — Taichi Nakashima ☕️ (@deeeet) 2015, 1月 30 魔改造muninだ… #monitoring
(2014年の記事ですよ。) オリジナル:"A Rails Development Environment with Docker and Vagrant" by Ben Dixon http://www.talkingquickly.co.uk/2014/06/rails-development-environment-with-vagrant-and-docker/ (デプロイ経験あまりないので訂正、つっこみなど大歓迎です。訳しづらかったところは原文も入れてます。Benさんから翻訳&&シェアOKの許諾もらっています。このテーマでさらにいくつか記事を投稿していく予定らしいです。) 既存のRailsプロジェクトに新しい開発者を招き入れることは、本来あるべき簡単さよりもまだまだはるかに難しいタスクです。アプリやアプリ一式の開発環境構築作業の大部分(正しいバージョンのrubyやデータベースその
いままで色々 Rails 向けに DCI を実現する gem を作ってきたわけですが(Dicer / BluePrint)、今年もまた新しく考えなおして Rails 向けに DCI を実現する gem を書きました。毎年毎年ほんとよくやりますね。 今年は何気なく作り続けて、いままで活用されていなかった uninclude という gem をついに使って DCI をやってみました。 uninclude にてついては特に解説することもないというか、名は体を表すということで『#unextend や #uninclude を Ruby で使えるようになる』という gem です。Refinements などでも実現可能なのですが、Refinements はファイルごとだったりでスコープがわかりづらくなるので使っていません。 RockMotive 2015年の DCI on Ruby は RockMo
どうも、佐野です。 昨日「第1回 プログラマのための数学勉強会」を開催しました。朝からの大雪にも関わらず多くの方にお集り頂き、濃厚なセッションの数々をお送りすることができて大変嬉しく思っております。 以下、各セッションを動画・資料と共に、簡単に内容のご紹介をさせて頂きます。 1. 「プログラマのための線形代数再入門」 - 佐野岳人 [資料] トップバッターとして発表させて頂きました。線形代数は3Dプログラミングをはじめ、画像処理や機械学習など多くの分野で必要になる数学の分野です。「行列の積はなぜこんな複雑な形をしているのか?」から「行列は線形変換・アフィン変換の定量表現である」という話をしました。 次回は中編として「行列式・逆行列とその実装」、後編で「座標変換と固有値・固有ベクトル」を発表してみたいと思います。 2. 「明日話したくなる「素数」のお話」 - 辻順平 [資料] 日曜数学者 i
前回、システム開発でベンダ任せをやめようとした日本、ベンダに任せた米国 - プロマネブログの記事でコメントを頂いたのを思い出したので。 id:sayurin7 paiza開発日誌 2015-01-26 【エンジニア対談】SIer・大手からスタートアップへの転職前に知っておきたい事 でSIerのこと知ったかしている子たちにも何かひとこと、ぜひ あ~、あまりにも酷かったのでブコメでツッコむ気も失せていた記事ですね。。。 まあ、せっかくコメントを頂いたことですし、確かに間違いを指摘するのも大切なことなので、カンタンに。 自分の知らないこと≠存在しないこと ITを後付けするんじゃなくて、ITをベースにして今までに無い事業やビジネスモデルを考えるべきだと思ってました。そういう事やるのって受託ビジネスでは無理だから、やっぱり自分はSIerじゃなくて自社サービスを開発する仕事がしたいと。 ATMも、電子
ウィスキー、シガー、パイプをこよなく愛する大栗です。 半年前に「Amazon EC2再入門 2014年7月版」と銘打ってEC2の記事を書きましたが、AWSらしい頻繁なアップデートによって古くなっている部分もあるので、記事もアップデートしようと思います。 最近EC2関連の重要アップデートが出てきました。嬉しい機能が増えているのですが、昔の知識では使いこなせないので、現時点でのEC2の起動方法について纏めようと思います。 起動手順 EC2を起動していきましょう。 AMIの選択 AMI(Amazon Machine Image)を選択します。 AMIの種類 Amazon Machine Image(AMI)には以下のような種類があります。 My AMI 自分で作成したAMIです。 AWS Marketplace Marketpkaceで公開されているAMIです。 Community AMI 他の
ずいぶん前のことだが、Webアプリケーション開発フレームワーク「Ruby on Rails」が00年代後半にブームを巻き起こしたとき、強い主張を持つソフトウェアとしてRailsは多くの議論を呼び起こした。その中でも最大のものはプログラマの生産性に関するもの。当時、すでにいくつも存在していたJavaベースのWebアプリケーション開発フレームワークに比べて、Ruby on Railsは10倍の生産性を達成できるという主張だ。 Rubyの生産性はJavaの10倍――。この主張が多くのエンジニアの琴線、もしくは逆鱗に触れた。「さすがに10倍は大げさだ」、「いや、現実に設定ファイルやコードを書く行数が劇的に減るのだから、そのぐらい当然だ」と意見が分かれたのだ。 2005年のリリースから約10年。Railsの生みの親で、今もプロジェクトをリードするデイビッド・ハイネマイヤー・ハンソン氏は当時を振り返り
こんにちはほそ道です。 今回はイベントもといイベントループを取り上げてみます。 目次はこちら イベント駆動処理の作成 とりあえず作ってみよう 設計と実装 ほそ道は毎週ボウリングに行くのですが、 自宅やオフィスにボウリングレーンがあったら夢のようだ。。 という夢をかなえる為に ボウリングレーンを実装 してみました。 ストライクやガターの発生をイベントとして検知したら ディスプレイになんやかんや表示するという感じのシロモノです。 雰囲気を出す為にconsole.log関数をレーンのディスプレイに見立ててみました。 ちなみに見やすさ重視のためメモリ効率等はいっさい考慮してません。 var EventEmitter = require('events').EventEmitter; // define Lane function Lane01() { this.display = console.
なにかの機能を実現するためにコードを書いているというのに、そこから脱線して意味不明なコードを書く人たちがいる。汎用性は高いつもりらしいけど無意味に難しいものを作りたがったり、必要がないのに「念のため」に既存の機能を残したがったりする人たちがいる。どうやら柔軟性あるいは汎用性が至上の価値であって、その価値に反するものはなんであれよくないものだと思っている人たちがいるようだ。 そういう考え方は間違っていると思う。 ある機能を実現するにはいろいろな方法がある。プログラマはそのうち一つの方法を選んでそれを実装しなければいけない。機能を実装する前は無限の可能性がありえたが、機能を実装したあとは具体的に実装したこと以外のことはできない。芸術家が大きな大理石のブロックから一つの彫刻を削りだすように、具体化することによってそれ以外のありえた形というのがなくなってしまうが、それは避けられないことだ。全部の可
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く