タグ

ブックマーク / ja.stackoverflow.com (16)

  • 大量のメモリを使用するプログラムからコマンドを実行する方法

    [頂いた回答・コメント、その後の考察によって得た結論を自己回答として投稿しました。] ターゲットとなるディストリビューション: CentOS 6.2 x86-64 版。ただし、他のディストリビューション -- 特に新しめのもの -- についての情報も歓迎です。 背景 Linux において、プログラム中から、何か別コマンドを実行したい場合、以下のいずれかの方法がよく使われると思います。 fork() + exec系() + waitpid() (その場で完了待ちしたい場合) fork() + exec系()。SIGCHILD を受けて wait系() (親と並列に実行させたい場合) system() ※ その場で完了待ちしたい場合と、親と並列に実行させたい場合の2通りを挙げましたが、今回必要としているのは前者。とはいえ、後者の場合でも問題は共通なので列挙しました。 ところが、大量にメモリを使

    大量のメモリを使用するプログラムからコマンドを実行する方法
  • Yahoo! JAPAN Tech Blogの「分散プログラミングモデルおよびデザインパターンの考察」の記事は何が間違っているのでしょうか?

    間違っているというより、全体的に用語の使い方があいまいで意味がよくわからない箇所が多いと思いました。ですから具体的にどこが間違っているという指摘はしづらいのですが、明らかにおかしなことが書かれている箇所があります。 厳密には、クラウド環境を構成するサーバーは、マルチプロセッサーやマルチコアは内部的にもMIMDですし、最近のプロセッサやGPUなどの拡張ボードでも何かしらのSIMDに対応しています。そのため、厳密な分類では、現状のクラウド環境はMIMDおよびSIMDのハイブリッドなアーキテクチャですが、今回の記事の流れから、SIMD動向については割愛してMIMDを中心に話を進めています。 ↓前半はクラウドを構成するサーバーのハードウェアのアーキテクチャの話です。 厳密には、クラウド環境を構成するサーバーは、マルチプロセッサーやマルチコアは内部的にもMIMDですし、最近のプロセッサやGPUなどの

    Yahoo! JAPAN Tech Blogの「分散プログラミングモデルおよびデザインパターンの考察」の記事は何が間違っているのでしょうか?
  • RubyMineでブレークポイントを設定する方法

    RubyMineでのブレークポイントの設定方法についての質問です。 RubyMineではXcodeと異なり、ブレークポイントを機能させるのにいろいろな設定が必要なようですがあまり日語の資料がなく自分なりに試してみたもののブレークポイントを素通りしてしまいます。 環境 Ruby 2.2.2 Rails 4.2.3 サーバ RubyMineのデベロプメント Gem ruby-debug-ideとdebaseは追加済み ブレークポイントを機能させるためにどのような設定が必要か教えていただきたく。

    RubyMineでブレークポイントを設定する方法
  • 1GBのダミーファイルを作成するコマンドは?

    Linux 限定ですが、比較的新し目の Linux カーネルと対応ファイルシステム(ext4,xfsなど)と util-linux パッケージがあるなら、fallocate(1) で一瞬で作成することができます。sparse file にはなりません。 以下の例では 1GB (1000000000バイト) のファイルを作ります: $ fallocate -l 1gb dummy.iso 以下の例では 1GiB (1073741824バイト) のファイルを作ります: $ fallocate -l 1gib dummy.iso または: $ fallocate -l 1g dummy.iso なおシステムコール fallocate(2) に対応していない NFS ※などのファイルシステムでは失敗します: $ fallocate -l 1g dummy.iso fallocate: dummy.

    1GBのダミーファイルを作成するコマンドは?
  • Go の interface の語尾に "-er" を付ける事が多いのはなぜ?

    格納するデータの役割(Role)を明示する為ですが、golang では一般的に役割に er を付ける事が多いです。 例えば Read 出来て、Close も出来るのであれば ReadCloser となります。 ちなみに http://www.carlopescio.com/2011/04/your-coding-conventions-are-hurting-you.html この記事に the -er suffix the -able suffix the -Object suffix the I- prefix について書かれていますが、-able については当てつけっぽく実際何をやるのかが分かりづらい、-Object は MarshalByObject 等の様にバッティングの可能性がある、I- は List が IList じゃないのに矛盾してるよね、といった事が書かれています。

    Go の interface の語尾に "-er" を付ける事が多いのはなぜ?
  • RedisのOOM command not allowed when used memoryエラーについて

    OSX上でRedisの動作を確認しているのですが、以下のエラーが出る原因を詳しく知りたいです。 OOM command not allowed when used memory 環境は、 Redis 2.8.19 maxmemory-policy allkeys-lru 設定ファイルは、maxmemory-policy allkeys-lruとしているのに、上記のエラーが出るのは何故か。と調べたところ、 英語版のstackoverflowにありました。 Redis out of memory, even with allkeys-lru policy この回答によるとused_memory_luaがメモリを多く使用しているからという感じでしたが、 used_memory_luaが多くなる原因が知りたいです。 ローカル環境で、 maxmemory 1080KB maxmemory-polic

    RedisのOOM command not allowed when used memoryエラーについて
  • バックグラウンドでの定期的な処理について

    swiftにてiOSアプリの作成を始めた初心者です。十数年前にc言語でPCのソフトを趣味で作っていた程度の経験値になります。 現在、バックグラウンドで定期的(5分間隔程度)にwebAPIにアクセスして、情報の更新があれば通知を行うようなアプリを作りたいと思っています。 自分なりに調べたところ、以下のような印象を受けました。 バッテリーに負荷をかけないため、基的にバックグラウンド処理は推奨されない background fetchは処理の間隔をiOSが決める、かつ毎回一定では無いので5分程度の間隔で処理したい場合は向かない Silent Push通知を利用して定期的にアプリを起こす?ただしPush通知実装にはサーバーの準備等、初心者には敷居がかなり高そう 時間を明確に指定してバックグラウンド処理を定期的に行うのは困難と考えた方が良いでしょうか? ヒント等頂ければ幸いです。

    バックグラウンドでの定期的な処理について
  • linux - CFQを使わずにlinux上で低負荷でファイルのコピーを行う方法 - スタック・オーバーフロー

    By using our site, you acknowledge that you have read and understand our Cookie Policy, Privacy Policy, and our Terms of Service.

    linux - CFQを使わずにlinux上で低負荷でファイルのコピーを行う方法 - スタック・オーバーフロー
  • swiftでクラス名からインスタンスを生成する方法

    swiftに関して質問です。 自作したクラスのインスタンスを生成する方法として、通常は下記のように生成できます。 let vc = HogeViewController() ここで、自作したクラスをHogeViewControllerとした時、これを文字列(String型)から生成する場合にどうすればいいかわかりません。どなたかご教授頂けないでしょうか。 下記は理想なのですが、エラーになります。 let strVC:String = "HogeViewController" let cls:AnyClass = NSClassFromString(strVC) let vc:AnyObject = cls() // この行でエラー ※エラー文 ‘AnyObject’ cannot be constructed because it has no accessible initializer

    swiftでクラス名からインスタンスを生成する方法
  • PHPのsprintfによるSQL組み立てで脆弱性が生じる例

    1番目 sprintf("SELECT * FROM table WHERE id = %d", $value); $valueにどのようなデータが入っていようが、PHPの「親切な」型変換により数値に変換されます。escape()が無くても問題ありません。 "123" => 123 " 123" => 123 "123abc" => 123 "abc" => 0 " " => 0 "" => 0 null => 0 ただし、4つめ以降の例はアプリケーションとしては意図しない動作になるでしょうから、その観点では事前にバリデーションが必要です。 2番目 sprintf("SELECT * FROM table WHERE id = %s", escape($value)); 1番目の%dを%sに書き換えescape()を付加した例です。$valueはリテラルではなくSQL構文の一部として展開さ

    PHPのsprintfによるSQL組み立てで脆弱性が生じる例
    clavier
    clavier 2015/04/23
    php - PHPのsprintfによるSQL組み立てで脆弱性が生じる例 - スタック・オーバーフロー
  • Goで、構造体の値返しとポインタ返しの使い分け

    Goに限らないトピックかもしれません。 次のような、データベースからデータを読み込む関数(インライン展開されない)を利用する関数があったとします。返されたオブジェクトの生存期間はこの関数内のみとします。 func doSomething() { // getUser()はDBから読み込んで結果を返す関数 user, err := getUser() } この時、getUser()の実装パターンとして、値返しのパターンとポインタ返しの2パターンが考えられます。 ポインタ返しの場合 構造体のコピーは発生しませんが、doSomething()を大量に呼ぶとGC対象オブジェクトがヒープにたまる。 値返しの場合 ヒープにオブジェクトは作成しないが、構造体のコピーが発生するのでポインタ返しより実行がやや遅い? Goの場合、この使い分けはどこで判断するのがよいでしょうか?

    Goで、構造体の値返しとポインタ返しの使い分け
  • navigateUpFromSameTask の挙動について

    タスクの概念に関する理解が必要なように思います。 ざっくり説明すると、タスクというのはActivityのヒストリースタック、このケースで言えば、「A -> B -> C」のことをタスクと呼称します。詳細な説明は公式ドキュメントのTasks and Back Stackを参照ください。 Q.上記の startAcitivity を利用した方法で問題がないか 両者の挙動は全く異なるので、アプリケーションとしてどういう挙動を望むかによります。 AndroidManifest.xmlにActivityのlaunchModeをどう指定したかによりますが、ほとんどの場合はデフォルトのstandardかと思います。この場合、 A -> B -> C の状態から、BをstartAcitivity()した場合、 A -> B -> C -> B とスタックが積み重ねられます。一方、navigateUpFro

    navigateUpFromSameTask の挙動について
  • ターミナルの操作ログを自動で残したい

    プロセスアカウンティング用に広く利用できる物として "Process Accounting Utility" があります。環境によって、パッケージの名前が、 psacct もしくは acct になっているものです。 $ # インストール (ubuntu) $ apt-get install acct 用意されているコマンド lastcomm: 実行されたコマンドの表示 ac : ユーザの接続時間の表示 sa: 過去に実行されたコマンドの集計/フィルタ ※ 質問の要件を満たすために、一般ユーザーからはこれらのコマンドが実行できないようにしてください。 アカウンティングサービスの実行 $ # サービスの開始 $ /etc/init.d/acct start $ # サービスの停止 $ /etc/init.d/acct stop 実際は、accton コマンドによってプロセス監視が始められます。

    ターミナルの操作ログを自動で残したい
    clavier
    clavier 2015/01/08
    linux - ターミナルの操作ログを自動で残したい - スタック・オーバーフロー
  • 暗号に使える乱数と使えない乱数

    まず重要なポイントとして、擬似乱数のシードとなる真の乱数 (質問の場合は円周率のほうではN, 漸化式の方ではM) は十分に広い空間からランダムに選ばれなくてはなりません。 どんな擬似乱数生成器を使っていたとしてもシードが高々1億程度では総当たりで(比較的)簡単にシードがみつかってしまい生成される乱数が再現できてしまいます。 円周率の先頭100万桁のどこかから選ぶなどは問題外です。 シードはRSA/DSAなどの鍵長に合わせて 1000 bit 程度 (10進数で300桁程度) は欲しいかと思います。 質問にある円周率を擬似乱数として使う方法ですが、円周率の N桁目からの数列がある長さ与えられた時に N 自体を逆算したり, 次の出力を推測する高速な (Nのビット数の多項式時間で実行可能な) アルゴリズムは知られていないかと思います。 そのため N が十分に大きければある時点までの出力が攻撃者に

    暗号に使える乱数と使えない乱数
  • Railsで自分自身のControllerに対してリダイレクトをする方法

    なんらかの理由で、あるコントローラーにアクセスされたら、それ自身に対してリダイレクトする処理を挟みたいとします。具体的にいうと、/fooから、何らかの処理を加えて、/fooへのリダイレクトを行うという形です。 この時、他のコントーラーでも似たような処理を行いため、自分自身に対してリダイレクトするように、共通の処理として切り出したほうが望ましいかと思うので、例として下のようなメソッドとして切り出しました: def self_redirect # do anything ... return redirect_to :action => params["action"], :controller => params["controller"] end ですが、わざわざparamsを見にいくのも変な気がします。もっとよりよい書き方はあるのでしょうか? それともこの用途に便利なメソッドがあったりす

    Railsで自分自身のControllerに対してリダイレクトをする方法
  • Javascriptの仕様で「オブジェクトは共有渡しで、プリミティブ値は値渡し」と区別しているのか

    JavaScriptの参照に関する記事でよく、オブジェクトは共有渡しで、プリミティブ値は値渡しと書かれていますが、仕様書をみても当該の記述を見つけられません。 仕様書を読む限り区別がない、つまり全てが値渡しの様に見えてしまいます。 もしくはReference型にbaseとして格納されているのは値を構成するデータ配列ではなく、値の存在そのもの、つまり参照(ポインタ)に近い概念であって、結局実は全部が共有渡しということなのでしょうか? 例えばProperty Accessorsの仕様で 「Return a value of type Reference whose base value is bv」 というのは、作成されるReferenceのbaseにbvそのものを格納する→bvをデータとして複製して格納ではなく、その存在そのものを格納→実際は参照(ポインタ)に当たるものが格納されるイメージ、

    Javascriptの仕様で「オブジェクトは共有渡しで、プリミティブ値は値渡し」と区別しているのか
  • 1