タグ

2014年8月3日のブックマーク (10件)

  • 続・リトライと冪等性のデザインパターン - リトライはいつ成功するか - Blog by Sadayuki Furuhashi

    三度の飯よりエラー処理。古橋です。 大変好評をいただいた序章リトライと冪等性のデザインパターンの続編です。 前回はほぼ前置きでしたが、今回は冪等でない操作を冪等にする具体的なテクニックもまとめていきます。 パターン2:エラーを区別してDELETEを冪等にする リソースに常に一意なIDが振られていれば、Deleteを冪等にするのは難しくない。そもそも同じリソースを2度削除することはできない。 一つ注意するべきなのは、削除されたリソースのIDが再利用されるケースでは、Deleteの冪等性は保証されない。例えば、kill -KILL <pid> コマンドはDelete系のAPIと考えられるが、pidは再利用されるので、何度も繰り返すと意図しないプロセスを殺してしまう可能性がある。 一般にIDの生成は非常に難しい問題だが、Deleteに関してのみ言えば再利用されなければいいので、単調増加する整数(

    続・リトライと冪等性のデザインパターン - リトライはいつ成功するか - Blog by Sadayuki Furuhashi
  • リトライと冪等性のデザインパターン - Blog by Sadayuki Furuhashi

    リトライを肴に一晩酒が飲める古橋です。 大規模なデータに触れることが日常茶飯事になっている今日この頃。この分野のおもしろいところは、いつまで経っても終わらないプログラムを簡単に作れてしまうことかもしれません。エラー処理、リトライそして冪等性*1の3つを抑えていないプログラムは、小規模なデータなら問題ないが、データ量が多くなると使い物にならなくなる可能性が大です。 大規模データをバッチ処理するケース以外でも、リトライは一般にプログラムの信頼性に関わる重要な問題です。 そんなわけで、リトライに関わるいくつかのデザインパターンを、連載でまとめておこうと思います*2。 では、第1回は背景から: なぜリトライが必要なのか プログラムは色々な理由で失敗する。例えば、 A) 通信先のプログラムが高負荷すぎて応答できなかった B) メモリを消費しすぎてメモリ確保に失敗した。またはOOM KIllerに殺さ

    リトライと冪等性のデザインパターン - Blog by Sadayuki Furuhashi
  • メンテナブルなJsってなんだろう

    第45回 WordBench 大阪での発表資料です。 あとがき:http://www.torounit.com/blog/2015/09/15/2088/

    メンテナブルなJsってなんだろう
  • nvm を利用したnode.js のインストール - もろず blog

    2〜3年前までは JavaScript といえばWebブラウザで動くあれ、 というイメージが強かったですが、 仕事でもWebだけのそれではない JavaScript に触れる機会が出てきて、 いよいよ格的に JavaScript の時代に変わってきていると感じています そんな JavaScript について調べると、 node.js がどうこうというトピックをよく見るので、 どんなものかを確かめるべくいろいろと使ってみています そこで今回は、node.js のインストールについてまとめました そもそも node.js ってなに?誰がうれしいの? という点については後日改めて記事を書こうと思います この記事では、 0.nvm ってなに? 1.git のインストール 2.node.js のアンインストール 3.nvm のインストール 4.nvm を利用した node.js のインストール 5

    nvm を利用したnode.js のインストール - もろず blog
  • MySQL5.6のUsing a password on the command line interface can be insecureの対応 - 文系プログラマによるTIPSブログ

    この警告は対応できるので、やっておいた方が色々安心で無難です〜 MySQL5.6を使っていると、以下をよく目にします。 Warning: Using a password on the command line interface can be insecure.これは言葉通り、コマンドラインからパスワード入力するのやめーや!ってことですね。 コマンドラインでパスワードまで入力すると、コマンド履歴等に残ってしまってセキュリティリスクになるから、warningを出すようにしたのでしょうね。 それにしてもこの警告が陶しいんです。 以前以下の記事で、watchコマンドでshow processlistを定期的に実行するスクリプトを書きましたが、このwarningのせいでコンソールが流れてしまうのです・・ 流石に陶しくなってきたので、根的に対応する事にしました。 my.cnfを使った解決策

    MySQL5.6のUsing a password on the command line interface can be insecureの対応 - 文系プログラマによるTIPSブログ
  • 情報とは何か、なぜかくも奇妙な性質を持っているのか | タイム・コンサルタントの日誌から

    「コンプレッサーがいかれちゃってますね。残念ながら修理不能です。」P社のサービスマンは、故障した冷蔵庫を点検して、わたしにそういった。・・うーん、そうですか。しかしまあ1993年製なんだから、寿命と思ってあきらめます。今まで20年間、ずっと文句も言わずに働いてくれたんだし、仕方がないですね・・。サービスマン氏は、わたしの独り言を聞き流しつつ、てきぱきと熟練した手つきで工具をしまうと、さらにこういった。「申し訳ないのですが、規定ですので、出張サービス料をいただきます。」 三千数百円の料金を、わたしは支払った。点検はわずか20分程度だったが、ここまでの移動の往復を考えると1時間以上は拘束している。当然の費用だと、わたしも思った。ただ、考えてみると、これは何の代償として払う費用なのだろうか? わたしの手元に、何か新しい「モノ」(補修部品)がおさめられた訳ではない。「サービス」といっても、彼がきた

    情報とは何か、なぜかくも奇妙な性質を持っているのか | タイム・コンサルタントの日誌から
  • フリーランスで働く人は「下請法」で守られている――おさえておくべきポイントとは? - 弁護士ドットコムニュース

    フリーランスで働く人は「下請法」で守られている――おさえておくべきポイントとは? - 弁護士ドットコムニュース
  • Gitチートシート - Qiita

    用語 リポジトリ バージョン管理システムにおいて,プログラムやファイルを蓄積しておく場所. Gitではローカルリポジトリとリモートリポジトリの二種類のリポジトリを扱える. ローカルリポジトリ 現在作業中のリポジトリ.主に自分のPCや開発サーバーなどで作業する場合はローカルリポジトリとなる. また,リモートリポジトリからリポジトリをクローンして,自分のPC上やサーバー上に環境を構築することもできる. リモートリポジトリ 外部にあるリポジトリ.リモートリポジトリはローカルリポジトリを通じて作業を行う. 複数人での作業やインターネットに公開する場合に利用できる. ワーキングツリー ユーザーが編集したり新しいファイルを作成したりする場所. インデックス ワーキングツリーでの編集後,リポジトリへのコミットの前に次のコミットの対象となる状態を保持している場所. ブランチ 履歴の流れを分岐して記録してい

    Gitチートシート - Qiita
  • 時短に◎エクセル(Excel)のショートカットキー一覧|All About(オールアバウト)

    時短に◎エクセル(Excel)のショートカットキー一覧 エクセル(Excel)の膨大な作業に追われてうんざりしている方、必見です! エクセルで使える便利なショートカット一覧をまとめました。これを覚えたら、作業効率が圧倒的に高まること、間違いなし!

    時短に◎エクセル(Excel)のショートカットキー一覧|All About(オールアバウト)
  • 内海 英一郎のブログ: Gig で始めるモダン Java Web アプリケーション開発

    高度に発達した Java は魔法と区別がつかないーーーこんな話をよく耳にします(どこで)。 元祖 Struts による MVC 2 アーキテクチャパターンの提案から始まる Java フレームワークの歴史は、数多くのプログラミング言語の中でも非常に古いものであると言っていいでしょう。最近の Java フレームワークは、プレーンなコンポーネントモデル(継承をベースにしたオブジェクト指向バリバリ密結合モデルの回避)、型システムの積極的な利用、アノテーションによる宣言的な記述と手続き的な記述とのバランス、アジャイルな開発をサポートする周辺ツールの拡充、といったトレンドに支えられてデザインと実用性のバランスを取りながら緩やかに進化しています。ここに言語仕様そのものやハードウェア自体の改善が加わり、今後はコード一行一行の表現力においても他言語のフレームワークと遜色のないものになっていくはずです。 そん

    内海 英一郎のブログ: Gig で始めるモダン Java Web アプリケーション開発