タグ

ブックマーク / qiita.com (51)

  • ID生成大全 - Qiita

    セッションIDやアクセストークン、はたまた業務上で使う一意の識別子など、いろんなところで一意のIDを生成しなきゃいけないケースが存在します。 そこで世間で使われているIDの生成方法について調べてみました。 選択基準 ID生成における要求として、以下の観点が上げられるかと思います。 生成の速度 大量にデータを短期間で処理し、それらにIDを付与する場合、ID生成そのものがボトルネックとなることがあります。 推測困難性 IDを機密情報と結びつける場合、IDを改ざんされても、機密データが見れないようにできている必要があります。 順序性 採番した順にデータをソートする必要がある場合は、IDがソートキーとして使えないといけません。 それぞれについて各生成手段を評価します。 ID生成の手段 データベースの採番テーブル 採番用のテーブルを作り、そこで番号をUPDATEしながら取得していくやりかたです。古い

    ID生成大全 - Qiita
  • .NETにおけるマネージヒープとガベージコレクション - Qiita

    この記事ではマネージヒープのオブジェクトの生存期間とガベージコレクタの動作についての説明を行う パワーポイント等については下記からダウンロードできる。 http://needtec.sakura.ne.jp/doc/managedheap.pdf マネージヒープにオブジェクトを割り当てる オブジェクトをマネージヒープに格納する場合、下記の情報が格納されるようにする。 オーバヘッドフィールド (32bitプロセス:8byte, 64bitプロセス:16Byte) ・型オブジェクトポインター ...オブジェクトの実際の型を現す型構造体へのポインタ ・同期ブロックインデックス ...ロックとかCOMで利用する 型のフィールド 次の例ではマネージヒープにオブジェクトを追加していく例を図で表したものである。 この状態でオブジェクトAを割り当てようとする。 この際、オーバヘッドフィールドとフィールドが

    .NETにおけるマネージヒープとガベージコレクション - Qiita
  • mitmproxyを使ってどんなサイトでもクローリング・スクレイピングする - Qiita

    この記事は クローラー/Webスクレイピング Advent Calendar 2016 19日目の記事です。 最初に言っておくと、mitmproxy はスクレイピングツールでもクローリングツールでもありませんが、これをスクレイピングに活用するのが今回の記事の趣旨になります。 mtimproxy という最終兵器 mtimproxy は名前の通りプロキシーで、man-in-the-middle proxy の略だと思われます。Python 製の OSS です。 図で書くと、次のようなものです。いわば、自分で自分に中間者攻撃をするようなプロキシーのイメージでしょうか。 自分で書いてみて、あまりに意味のない図だったので少し驚いていますが、mitmproxy を使うと、 外部サイトに送るリクエストの内容をフックして、加工できる 外部サイトから届くレスポンスの内容をフックして、加工できる ことができる

    mitmproxyを使ってどんなサイトでもクローリング・スクレイピングする - Qiita
  • Googleの肩に乗ってShellコーディングしちゃおう - Qiita

    はじめに GoogleさんがShellスタイルガイドを共有していたので、いくつか気になった点をピックアップしました。 自分のShellスタイルはかなり我流なので、自省の意味も込めてコメントも併記します。 Googleスタイルガイドの元ネタ (Python/C++/Java/Rとかだけでなくdocumentガイドなど色々あります) https://github.com/google/styleguide Shellスタイルガイド (今回はこちら) http://google.github.io/styleguide/shell.xml 当は人間がチェックするのではなくcpplintのためXML定義なのかもですが、気にしない気にしない。 (見たところcpplintc++だけだと思ってます) commitフックでshell系のlint走らせろっていうのが今風なのかもしれませんが、キニシナイキ

    Googleの肩に乗ってShellコーディングしちゃおう - Qiita
  • 割りと便利だけど微妙に忘れがちなbashのコマンド・チートシート - Qiita

    自分用にメモしておく コマンド実行 CMD1; CMD2, CMD1 && CMD2 ;はCMD1の結果に関わらずCMD2も実行される &&はCMD1の結果が正常な場合のみCMD2が実行される CMD1 || CMD2 - 失敗時に後続コマンドを実行する CMD || printf "%b" "MSG"でエラーメッセージを表示する エラーメッセージ表示後exit 1したい場合 = CMD || { printf "%b" "FAILED.\n" ; exit 1 } CMD || printf "%b" "FAILED.\n" ; exit 1と波括弧無しで書くと期待通り動作しない(CMDが成功時もexit 1してしまう) CMD & - バックグラウンド実行 CMD &で[1] 4592のようにジョブ番号とプロセスIDが表示される killしたければkill %ジョブ番号 か kill

    割りと便利だけど微妙に忘れがちなbashのコマンド・チートシート - Qiita
  • なるべく短い正規表現で住所を「都道府県/市区町村/それ以降」に分けるエクストリームスポーツ - Qiita

    rex = /ごにょごにょ/ p "東京都文京区後楽1丁目3−61".match(rex).captures #=> ["東京都", "文京区", "後楽1丁目3−61"] みたいなやつ。なるべく短く。 実用性? そんなもの、うちにはないよ。 TL;DR 「読むのめんどくさい」という人用に最初に最終結果を置いておきます (...??[都道府県])((?:旭川|伊達|石狩|盛岡|奥州|田村|南相馬|那須塩原|東村山|武蔵村山|羽村|十日町|上越|富山|野々市|大町|蒲郡|四日市|姫路|大和郡山|廿日市|下松|岩国|田川|大村)市|.+?郡(?:玉村|大町|.+?)[町村]|.+?市.+?区|.+?[市区町村])(.+) あまり厳密ではないのでちゃんとしたとこでは使わないほうがいいです 住所データを用意する 郵便局からデータをダウンロードしておく。一ヶ月毎に更新されている。 → 郵便番号データ

    なるべく短い正規表現で住所を「都道府県/市区町村/それ以降」に分けるエクストリームスポーツ - Qiita
    kotaponx
    kotaponx 2016/01/27
    大阪府茨木市奈良町もアレだよね("城"じゃないけど)
  • シェル芸力向上のため moreutils を一通り試してみた - Qiita

    $ rpm -qi moreutils Name : moreutils Version : 0.49 Release : 2.el7 Architecture: x86_64 Install Date: Fri 29 May 2015 06:34:50 PM JST Group : Applications/System Size : 155340 License : GPLv2 Signature : RSA/SHA256, Tue 04 Mar 2014 12:35:02 PM JST, Key ID 6a2faea2352c64e5 Source RPM : moreutils-0.49-2.el7.src.rpm Build Date : Wed 26 Feb 2014 07:58:44 PM JST Build Host : buildvm-21.phx2.fedoraproj

    シェル芸力向上のため moreutils を一通り試してみた - Qiita
    kotaponx
    kotaponx 2016/01/15
    便利そう
  • メール運用がロストテクノロジーになっていく話

    クラウドワークス Advent Calendar 17日目担当のSMTPおじさんの記事です。 時間の無い人のために3行でまとめますと以下のコンテンツでお送りします。 大規模なメール配送を安全に行うには特別なノウハウがあり罠も多い SendGrid便利です 当たり前になった技術は空気のように見えなくなってインフラ化する。それがある日突然失われたときの被害は甚大。インフラ技術をキャッチアップして備えよう メール配送今昔 さて、メール配送といえば古くはSendmailを使っていました。多くのUnixディストリビューションに標準でインストールされており、使うのが当たり前で選択肢も少なかった時代です。 Sendmailは開発が重ねられることで複雑化しセキュリティホールが頻発しました。また設定ファイルのsendmail.cfはチューリング完全であるほど高機能で複雑でまた長くなりがちでもあり今でも書きた

    メール運用がロストテクノロジーになっていく話
    kotaponx
    kotaponx 2015/12/24
    配送は「勇者を育てる」「信用を勝ち取る」という方向でいいとは思うけど、運用という観点では監査やアーカイブやフィルタ、誤送信防止、自動暗号化といった生臭くてヒト依存が高い部分が面倒なんすよね…
  • そのシェルスクリプトもうちょっとシンプルに書けそう Tips集(Golf/シェル芸ではない) - Qiita

    Shell Script Advent Calendar 2015 4日目 の投稿です。 以前から自分用にメモしていたものを文字起こししました。 はじめに 仕事でシェルを使い始めて3年くらい経ちました。 途中、pythonruby でスクリプト作ったり、ちょっと zsh に浮気したりしましたが、なんだかんだで今も Bash を使うことが多いです。 この3年間、スーパーシェル芸人(@ebanさん)にご教授頂いたり、Golfしたり(@ebanの影響)、シェル芸勉強会に参加したり(@ebanの影響)してきました。 そんな3年間のまとめとして、シェルスクリプト初めましてだった3年前の私に向けたTips集を書いてみました。 趣旨 各項目ごとに、まず初心者(過去の私がやってた)あるある実装を例示して、その次に、より良さげな実装を例示する構成としています。 実行環境 OS Mac OS X Yos

    そのシェルスクリプトもうちょっとシンプルに書けそう Tips集(Golf/シェル芸ではない) - Qiita
  • Googleの虎の子「BigQuery」をFluentdユーザーが使わない理由がなくなった理由 #gcpja - Qiita

    From Fluentd Meetupに行ってきました これを読んだ時、BigQueryの検索スピードについてちょっと補足したくなった。確かにFluentd Meetupのデモでは9億件を7秒程度で検索していたが、BigQueryの真の実力はこれより1〜2ケタ上だからだ。ちょっと手元で少し大きめのテーブルで試してみたら、120億行の正規表現マッチ付き集計が5秒で完了した。論より証拠で、デモビデオ(1分16秒)を作ってみた: From The Speed of Google BigQuery これは速すぎる。何かのインチキである(最初にデモを見た時そう思った)。正規表現をいろいろ変えてみてもスピードは変わらない。つまり、インデックスを事前構築できないクエリに対してこのスピードなのである。 価格も安い。さすがに120億行のクエリは1回で200円もかかって気軽に実行できなさそうであるが、1.2億

    Googleの虎の子「BigQuery」をFluentdユーザーが使わない理由がなくなった理由 #gcpja - Qiita
    kotaponx
    kotaponx 2014/05/19
    このブルートフォース的なリソース投資が出来るのが、Google最大の強みなんだろうなぁ。
  • 俺史上最強のiptablesをさらす - Qiita

    #!/bin/bash ########################################################### # このスクリプトの特徴 # # 受信・通過については基的に破棄し、ホワイトリストで許可するものを指定する。 # 送信については基的に許可する。ただし、サーバが踏み台になり外部のサーバに迷惑をかける可能性があるので、 # 心配な場合は、送信も受信同様に基破棄・ホワイトリストで許可するように書き換えると良い。 ########################################################### ########################################################### # 用語の統一 # わかりやすさのためルールとコメントの用語を以下に統一する # ACCEPT :

    俺史上最強のiptablesをさらす - Qiita