サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
デスク環境を整える
ichirin2501.hatenablog.com
yapcjapan.org スタッフ/スピーカーの皆様、本当にお疲れ様でした & ありがとうございました。 各発表に関しては色んな方が感想文を書いているので、そちらに任せることにします (自分では小学生の文章になってしまう)。 自分のことだけを書く。 チケット買わないの?と唆されたのと、場所が京都ということで参加。 YAPCに参加するのは今回で2回目で、確認したら最初に参加したのがYAPC::Asia Tokyo 2015....、8年経過していることに一番驚いてしまった。 イベントに参加する理由は人それぞれだと思いますが、今回は友人に会いに行くのが最大の理由でした。 会場を歩いているだけで見知った顔があちこちにいるので、わぁ〜〜〜って盛り上がる。最高か? 体験が良すぎる、これがオフライン、良き。 自分は現職で3社目ですが、それぞれの現/元の友人たちがイベントに参加してることもあって、実質
とりあえずスーパーマリオが動いて一段落したので覚えているうちに感想書いていく。 (この記事の情報量は、デバッグは大変、以上) 動機 単に好奇心。ただ、ファミコンのエミュレータに着手したのはこれで3回目になる。 1度目は10年前の身内ハッカソンのとき。このときはC言語で実装してて強引にHELLO, WORLD!を表示するだけで終わった。 実装の続きをしたかったけど、この後は忙しくなってしまって挫折している。 2度目は2年前で、過去の心残りを精算するためにGo言語で着手したのだけど、CPUの実装が終わった後ぐらいからまた忙しくなって挫折している。 今回は2年前のGoコードの続きからコミットを積んでここまで来たので、一応リベンジ成功....と言って良いんじゃないかな、たぶん。 過程 PPUの実装は最初からinternal register(v,t,x,w)を使う方法にした(PPU scrolli
|'-') こうですか!
この記事は、はてなエンジニアアドベントカレンダー2016の7日目の記事です。 昨日は id:haya14busa さんのSum/Union/Variant Type in Go and Static Check Tool of switch-case handlingでした。 こんにちは、ドラゴンボールのヤムチャ状態になってるichirin2501です。 技術ネタとして何を書こうかと考えたのですが、 またMySQLでロックの話をする運びとなってしまいました。 技術ネタついでに今年最後の記事になると思われるので、 この1年のアウトプットを振り返ってみますと、 はてな・ペパポ技術大会 〜インフラ技術基盤〜 計算量と僕とWeb開発 / computational complexity and I and Web // Speaker Deck Haten Engineering Seminar
この記事ははてなデベロッパーアドベントカレンダー2015の12月24日の記事です。 昨日は id:stefafafan さんのエンジニアと英語でした。 こんにちは、こんばんは。 クリスマス・イヴですね、皆さんはどのような一日を過ごされる(た)のでしょうか。 僕は一人です。 改めまして、先日初めての合コンを経験/失敗して二度と行かないと誓った はてなの id:ichirin2501 です。今回は小ネタとしてMySQL(InnoDB)のBULK INSERTにおけるデッドロックの話をしようと思います。ただ、外部キー制約が絡むと複雑になるので今回は触れません。それについてはこちらを参照ください。 あ、タイトルはオマージュです*1。 Topic 検証環境 INSERTのデッドロック 避けられないケース もしくはロックする リトライ処理に注意 初期データ Duplicateの場合 Deadlockの
発表者として参加させていただきました。 発表資料はこちらです(自分でも忘れそうなのでブログにリンク貼っておく) 外部キー制約に伴うロックの小話 from ichirin2501 外部キー制約に伴うロックの小話 追記: 2015/08/22 ブログでも補足したほうが良いかな、と思ったので今更追記することにしました。 どういう資料? 外部キー制約で発生するロックのお話です。前提として、MySQL(5.5.28)のInnoDBストレージエンジン、トランザクション分離レベルはREPEATABLE-READ, READ-COMMITEDです。上記は検証環境ですが、MySQL5.1 ~ 5.7でも変化していない挙動のはずです。また、InnoDBのロックはインデックスレコードロックなので、インデックスに対する理解が必要不可欠です。発表時間も20分程度ということもあって、その辺りをある程度理解されてる方が
なかったらINSERTしたいし、あるならロック取りたいやん? from ichirin2501 www.slideshare.net 出来事 @ichirin2501 とりあえず何も考えずこの前のロックの話をSlideshareにあげてくれ!!— 柴崎優季 (@shiba_yu36) 2015, 8月 22 はじめに これは先日の社内勉強会で発表したもので、MySQLで特定の問題を解決したいときのノウハウ話です。特定の問題とは、アプリを書いてると「データがなかったINSERTしたい、あるなら排他ロックしつつ取得したい」という要望があったりします。例えば、あるユーザーアクションで初期値もパラメーターで渡されるケースで、データがないならそのままINSERT、既にデータがあるなら取得して状態に依存して更新処理を行いたい場合などです。見かけのロジックは単純に見えますが、MySQLでこれを実現しよう
ここ最近、ksnctfというものをやっていました。 主にコンピュータセキュリティに関する問題が出題され、FLAGをゲットする遊びです。 現時点(全21問)では全問正解しましたので、私なりにヒントを書きます。 書こうと思ったのは、勉強になるので是非やってみてほしいと考えたからです。 はじめに、CTFを知らない人もいると思いますので、軽く説明です。 CTFについて CTFとは、世界各地で開催されている著名な旗取り合戦競技(Capture The Flag)のことで、セキュリティ技術を競うコンテストの総称です。クイズ形式の問題の謎を解いたり、実験ネットワーク内で疑似的な攻防戦を行ったりします。クイズ形式の場合、出題ジャンルは、暗号、バイナリ、ネットワーク、Web、プログラミングなど多岐に渡り、セキュリティのみでなくプログラミングに関する知見も問われ、攻撃技術、防御技術、解析技術、暗号の知見、ネッ
最近は完全に引篭もり状態です。 フリーターになったときの生活費を考えたり云々。 以前、大学の課題でrealloc関数を使った時に悲惨なバグに遭遇してから 「 realloc関数こええ、使わないほうがいい 」なんて思った。 以下検証コード #include<stdio.h> #include<stdlib.h> #define N 3 main() { int i,j; int *k; int *a; k = (int*)malloc( sizeof(int)*N ); a = (int*)malloc( sizeof(int)*N ); for(i=0; i<N; i++){ k[i] = i; printf("&k[%d]:%p , k[%d]=%d\n",i,&k[i],i,k[i]); } for(i=0; i<N; i++) printf("&a[%d]:%p\n",i,&a[i]
CVE-2011-4885が気になったので調べてみました。 脆弱性対策情報データベースには PHP は、ハッシュ衝突を想定して制限を行わずにフォームパラメータのハッシュ値を算出するため、 サービス運用妨害 (CPU 資源の消費) 状態となる脆弱性が存在します。 影響を受けるシステムは PHP5.3.9未満 実際にどのような処理が行われてるのか見てみる。 公式からPHP5.2.17のソースコードをダウンロードしてきて、 ハッシュ計算を行なっているを部分を探すと、 Zend/zend_hash.h 254 static inline ulong zend_inline_hash_func(char *arKey, uint nKeyLength) 255 { 256 register ulong hash = 5381; 257 258 /* variant with the hash unr
http://d.hatena.ne.jp/mayahu32/20110816/1313505335 id:mayahu32さんのセキュリティ&プログラミングキャンプ2011感想文を読ませてもらいました。 以下ネタバレになります、ご注意ください。 解析環境 Windows7 64bit 使用したツール IDA Pro6.0 Demo, BZエディタ 日記にあるURL http://mayahu32.xxxxxxxx.jp/crackme.txt にアクセスすると、 空白で区切られた16進数表記の羅列が表示されます。 これをそのままバイナリ値としてファイルを作成します パケット情報らしき文字列が見えます。 この時点でWiresharkに放り投げたら読み込めないと言われてしまいました。 対応してないだとー何のファイルだー?と思って、 http://www.garykessler.net/lib
重複した要素をユニークにする代表的な方法としていくつかある。 ふと、どのコードが速いのか気になったのでベンチマークを取ってみました。 今回調べたコードは以下の6種類 # use Array::Uniq; sub unique_au{ my @array = @_; return uniq sort @array; } # foreach sub unique_each{ my @array = @_; my %hash; $hash{$_} = 1 foreach(@array); return keys %hash; } # grep sub unique_grep{ my @array = @_; my %hash; return grep{!$hash{$_}++} @array; } # use List::MoreUtils; sub unique_lmu{ my @array
軽くめも、相変わらずの語尾の不安定さ。 以下の動作は全て python2.7 で行いました。 自動でCookie処理をさせる デフォルトではCookie処理が自動でされないらしい 例えば以下のようにCookie用のhandlerを追加することで解決できる import urllib2 import cookielib opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookielib.CookieJar())) urllib2.install_opener(opener) build_openerを探る build_openerは OpenerDirector のインスタンスです。 build_openerに引数として渡したhandlerというものが何なのかよくわかりませんでした。 Cookie処理のhandlerが設定さ
速度向上を考える上で、mapの使い方で差が出たのでめも。 mapは[ ]演算子がオーバーロードされているので、演算子の書き方を多用していた。演算子で書くと存在しないkeyを指定した場合、自動で生成してくれる。これが便利なときもあれば不便なときもある。 例えば、メモ化探索にmapを利用していた場合、既に探索した状態かどうかを調べるときに[]演算子で勝手に状態生成してもらっては困る。 なので、今まではこんな感じで書いてた。 map<int,int> mii; int dfs(int S){ if( mii.count(S) ){ return mii[S]; } int ret = 0; /* 処理 */ return mii[S] = ret; } countメソッドはkeyがあるかどうか(0or1)を返す。勝手に状態数は増えない。 でも、どう考えても 探索3回してるよねこれ mapの[]演
このページを最初にブックマークしてみませんか?
『ichirin2501's diary』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く