この記事はGo Advent Calendar 2015の21日目の記事です. 今年もGoコミュニティーから多くのツールが登場した.その中でも異彩を放っていたのがGoogleのDynamic testing toolsチームの@dvyukov氏によるgo-fuzzである. go-fuzzはGo関数のファジングを行うツールである.このツールはとても強力で標準パッケージで100以上,golang.org/x/パッケージで40以上,その他を含めると300以上のバグを発見するという実績を残している(cf. Trophies). 本記事ではこのgo-fuzzの紹介を行う. ファジングとは? Fuzz testing - Wikipedia, the free encyclopedia ソフトウェアの脆弱性検出におけるファジングの活用 「ファジング」とはソフトウェアのテスト手法である.テスト対象となる
本日のGoogleのリリース HTTPS ページが優先的にインデックスに登録されるようになります Google は、より多くの HTTPS ページを探すよう、インデックス システムを調整していることをお知らせします。具体的には、HTTP ページに対応する HTTPS ページのクロールを開始します。これは、対応する HTTPS ページがどのページからもリンクされていない場合にも対象となります。同じドメインの 2 つの URL が同じコンテンツを掲載していると思われ、かつ、両者が異なるプロトコル スキームで配信されている場合、通常、以下の条件を満たしていれば HTTPS URL を選択してインデックスに登録します。 中略 Google のシステムではデフォルトで HTTPS バージョンが優先されますが、HTTP サイトを HTTPS バージョンにリダイレクトしたり、サーバー上に HSTS ヘッ
この記事は「F# Advent Calendar 2015」の 20 日目です。 Streams というライブラリーがあります。このライブラリーは Seq モジュールと同じように扱うことができますが,継続渡しスタイルで実装されています。 基本的には Seq モジュールでできることは, Streams で置き換えることができます。モジュールを Seq から Nessos.Streams.Stream に置き換えるだけです。元の入力が seq<'a> の場合は, Stream.ofSeq 関数により Stream<'a> に変換可能です。 open Nessos.Streams data |> Stream.ofSeq |> Stream.filter (fun x -> x % 2 = 0) |> Stream.map (fun x -> x * x) パフォーマンスも非常によく,常に Se
Go 言語には例外機構が備わっておらず、関数や手続きのエラー的な状況を表すには、返り値を多値にして本来興味ある結果とともに error インターフェイスを返す、というのが一般的です。例をあげるまでもないですが、ファイルを開くという(失敗する可能性のある)処理を行うならこういう感じ: f, err := os.Open(filename) if err != nil { // handle err } 何ごとも明に書き下すことを求める Go らしい仕様ですね。文句ある人も多そうですが、呼び出し側が異常系を意識せざるを得なくなるので、よい効果も大きいと思います。 先の例のように、エラーを発生させるような処理を呼び出したあとは err をチェックする、というのは最初に学ぶイディオムと言ってもよいくらいよく書くことになるコードですが、ほんとうに何度も書くことになるのでこれは面倒。 go-iferr
最近Elixirが人気ですよね。Erlang VM上でOTPの恩恵を受けながら簡潔な記法で並行処理を書ける言語ということで話題になっていますな? Elixirは関数型プログラミングのエッセンスを取り入れていると言われており、そのひとつにPipe演算子(|>) がある。 Enumerables and Streams - Elixir Kernel – Elixir v1.1.1 Pipe演算子(|>)とは何かというと、左辺の値を右辺の関数の第1引数に適用する演算子。 iex> [1, [2], 3] |> List.flatten() [1, 2, 3] 上記のコードは、左辺の[1, [2], 3] を 右辺の List.fatten(list) の引数として渡す。 このPipe演算子は、Stream モジュールなどと合わせて利用するとデータが左から右へ流れている模様をコードとし視覚化する
今見ているページに対するはてなブックマークページを開くブックマークレット(温故知新) 2015-11-22-1 [Bookmarklet][Programming][iPhone][iPad][Release] iPhoneでのネットサーフィンでの困ったこと。「はてなブックマークアプリ」のリニューアル[1]で、はてなブックマークのURLスキーム ( hatenabookmark: ) が使えなくなってる。いままで使っていたブックマークレット[2]は無用の長物に。 アップルの方針でURLスキームは使うのが難しくなっているみたい。URLスキームによってアプリが他のインストール済みアプリの有無を調べることができるというプライバシー問題のため[3]。 Safari の下のシェアボタン(四角に上向き矢印が重なってるやつ)からハテブアプリに飛ばすことができるけど私がやりたいこととはちと違う。私としては
この記事は(React.js Advent Calendar 2015)http://qiita.com/advent-calendar/2015/reactjsの20日目の記事になります。 割とふわっとした感じの記事になるかとおもいます。 なお以下の文章は非Web系な会社で働く僕の実体験による個人的な意見で、Reactやフロントエンドの世界についての誤解に基づく意見が含まれている可能性がなきにしもあらずです。 なるべく気をつけて書いたつもりではありますが、もしも気になるようなところがありましたら指摘していただけると、誤解の流布を防ぐことができ、また僕自身の知見になりますので大変ありがたいです。 Reactが業務アプリケーションの実装に向いている理由 セキュリティリスクの軽減 ただのViewライブラリである かっちり書くのに向いている コンポーネントの再利用ができる Reactが業務アプリ
バッチで,ブラウザのUAを改変し,別のブラウザ向けのページを表示させるサンプル。 たとえばIE上で,iPhone向けのWebページを表示させたい。 自作プログラムからブラウザを自動操作する際に,スマホ用のページを表示させたいのだ。 バッチで,COM経由でIEを操作しているのであれば ユーザーエージェントを書き換えればよい。 そのためには,ie.Navigate の第五引数に,独自のリクエストヘッダを設定すればよい。 実際に動作するサンプルコードを下記に掲載。 サンプルコード(WSH/JScript) サンプルコード(UWSC版) 補足 サンプルコード(WSH/JScript) hoge.jsとして保存してダブルクリックで実行。 // ----- 設定項目 ----- // リクエスト送信対象のURL var target_url = "http://q.hatena.ne.jp/14482
この記事は KLab Advent Calendar 2015 の18日目の記事です。 Go 言語のランタイムは CPU プロファイル以外にも幾つかのプロファイルを標準で実装していますが、あまり Web 上に実用的な情報がありません。 そこでこの記事では、実際に Go で長期間稼働するサーバーを開発する上で役に立った CPU 以外のプロファイル機能を紹介することにします。 スタックダンプ /debug/pprof/goroutine で、現時点での全 goroutine のダンプを取得できます。 これは go tool pprof でも利用できますが、実際に使うときはそれよりも curl や wget などを使って /debug/pprof/goroutine?debug=1 をプレインテキスト形式で保存します。 例えば、次のプログラムのスタックダンプを取得してみます。 package m
この記事は KLab Advent Calendar 2015 の19日目の記事です。 pprof 連載最後は、 ここまでで紹介してきたプロファイラがどういう仕組みでプロファイリングしているかを解説します。 pprof が表示している値がどう計算されているのかを把握することで、よりプロファイラを理解して使いこなすことができるようになるはずです。 goroutine profile スタックダンプ (/debug/pprof/goroutine?debug=1) の出力は次のような形式でした。 ... 1 @ 0x42d2b3 0x42d374 0x414cda 0x45d981 # 0x42d2b3 runtime.gopark+0x163 /usr/local/go/src/runtime/proc.go:186 # 0x42d374 runtime.goparkunlock+0x54
最近おそ松さんというアニメが流行っていますね。 6つ子のおそ松くんのアニメを現代版にアレンジした作品なのですが、その過程でそれぞれの兄弟の特徴が付けられています。 左から、おそ松、から松、チョロ松、一松、十四松、とど松で、順に長男次男三男・・・となっています。 簡単にまとめると、このようになります。 生まれ 名前 色 特徴 長男 おそ松 赤 クズ 次男 から松 青 ナルシスト 三男 チョロ松 緑 ツッコミ、意識高い系 四男 一松 紫 コミュ障 五男 十四松 黄色 マイペース 六男 とど松 ピンク 甘え上手、腹黒 それぞれの色を着ているときは、簡単に見分けられますが、そうでないときは見分けるのに困難を伴います。 髪や目つきにも特徴があるので、見分けることができるので、このような表を作ってらっしゃる方もいます。 それでも結構苦労したので、同じくディープラーニングで学習させたモデルで判別できない
_ 人を信用する設計と信用しない設計の線引き Rubyは君を信用するが、Javaは君を信用しない。 それは設計ポリシーで、それ自体は悪いことではない。 どう信用していないかと言えば、まず最初に上げられるのは、無名inner classのメソッド内で参照する外側のローカル変数はfinalとして再代入を許さないことだ。 次が、ラムダ式用に用意されているjava.util.functionの使いにくさ=throws Exceptionが無い定義だ。 これらは、保存されて処理された場合を考慮すれば当然とも言える。 class Foo { Consumer<int> callback; public void addConsumer(Consumer<int> cb) { callback = cb; } private foofoofoo() { callback.accept(bar); } と
iOS用のアプリは通常、開発アカウントを取得し、Macを使って開発します。 開発アカウントを取得するほどではないが、iOSデバイス上で何かやりたい処理がある、という人はいるでしょう。 あるいは、プログラム好きな人なら率先してiOSデバイス上でプログラミングをしたいと思うのではないでしょうか。 そうしたニーズに存分にこたえることができる、iOSデバイス上で動作する統合開発環境がPythonista 3です。 2016年9月21日に開催されたPyCon JP 2016で @equal_001 さんがPythonistaについて発表されていたのでご紹介。 Python支持者のことをPythonistaといいますが、アプリ名はそこから取ったんでしょうね。 正真正銘のPythonが内蔵されていて、ローカルで動きます。 [参考] Kazuhiro AbeさんはTwitterを使っています: 「インタプ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く