タグ

codereadingに関するmanabouのブックマーク (127)

  • Z3による汎用大域的最適化 - Qiita

    概要 Z3 Proverを用いた,"数値的"な大域的最適化手法について示す. Z3 Proverとは? ざっくりとはMicrosoft Researchが作った,MITライセンスの定理証明器です. Z3 is a theorem prover from Microsoft Research. It is licensed under the MIT license. If you are not familiar with Z3, you can start here. Z3 can be built using Visual Studio, a Makefile or using CMake. It provides bindings for several programming languages. See the release notes for notes on various

    Z3による汎用大域的最適化 - Qiita
  • 手書きひらがなの認識で99.78%の精度をディープラーニングで - Qiita

    手書きひらがなの認識、教科書通りの畳み込みニューラルネットワーク(ディープラーニング)で、99.78%の精度が出ました。教科書通りである事が(独自性がない事が)逆に読む方・書く方にメリットがありそうなので、Qiitaで記事にします。 ソースコード ソースコードは https://github.com/yukoba/CnnJapaneseCharacter です。 いきさつ いきさつは、友人と手書きひらがなの認識の雑談をFacebookでしていて、ググったら、この2つが見つかりました。 「Tensorflowを2ヶ月触ったので"手書きひらがな"の識別95.04%で畳み込みニューラルネットワークをわかりやすく解説」 http://qiita.com/tawago/items/931bea2ff6d56e32d693 スタンフォード大学の学生さんのレポート「Recognizing Handwri

    手書きひらがなの認識で99.78%の精度をディープラーニングで - Qiita
  • Symfony2での処理の流れについてまとめた - OTOBANK Engineering Blog

    こんにちは!@mrtryです。 最近、スモークチーズのオイル漬けを作りました! チーズを燻製して、オリーブオイルにつけるだけでですが、とても美味しく、ハイボールが進みます。 燻製してみたいなぁ〜と、考えている人には、おすすめです! さて、「Symfony2入門」2回目の投稿です。 前回は、全体としての基動作をざっくり説明しました。 今回は、RequestオブジェクトからResponseオブジェクトを生成するまでの処理をもう少し掘り下げて行きたいと思います。 全体の処理の流れ 公式ドキュメントのフローチャートを参考に全体の処理の流れを追ってみましょう。 Symfonyでは、すべてのリクエストの処理が以下の流れに従っています。 URLへのアクセスをフロントコントローラで受ける フロントコントローラ(app.php)が受けたリクエストからRequestオブジェクトを生成する カーネルがリクエス

    Symfony2での処理の流れについてまとめた - OTOBANK Engineering Blog
  • GitHubのコード検索 : プログラマにとっての宝の山 | POSTD

    新しい言語やフレームワークを学ぶことは、時には苦闘になることがあります。従来のアプローチは、概念を説明し簡単な例を提供するドキュメントを読むことです。それで十分な場合もありますが、ドキュメントに高度な例や実際のプロジェクトでの使い方が書かれていない場合も多々あります。 ドキュメントに記載されていない問題に出くわすと、大抵の人はStack Overflowで解決策を探します(またはソースコードを丹念に調べます)。しかし、「使っているフレームワークが登場してから十分に期間が経っておらず、思い浮かぶ質問全てにStack Overflowが答えてくれない」ということもありえます。 今まで問題にはまって、こう考えたことはありませんか? 「誰かが既にこの問題を解決しているはずだ!では、なぜこの問題に対する答えがStack Overflowにないのだろうか?」 そのとおりです。恐らく誰かは既にそれを解決

    GitHubのコード検索 : プログラマにとっての宝の山 | POSTD
  • Linux 2.0.40の頃のkmalloc() - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ

    たまには古いカーネルでも読んでみましょう的なところで、Linux 2.0.40の頃はkmalloc()はどんな実装だったのかというところでも見てみましょう。最近のkmalloc()の実装は使用しているディストーションが採用しているスラブアローケータの__kmalloc()の実装を見てみましょう。今のkmalloc()はスラブアローケータを使用しています。SLUBだとこんな感じです。 で、Linux 2.0.40はkernel.orgのファイル作成日時で見ると08-Feb-2004 07:13となっているので、12年前にリリースされたんですね。このバージョンが2.0系の最終バージョンです。 この当時のkmallocはスラブアローケータは使用していないけど、スラブアローケータ的に要求されたサイズを一番近い2の累乗サイズに切り上げて使っています。サイズはblocksizeという変数で管理してます

    Linux 2.0.40の頃のkmalloc() - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
  • C言語で学ぶソケットAPI入門 第1回 サーバ編 - Qiita

    TCP/IPについてはWeb技術者が、意識するしないにかかわらず利用している、 インターネットに必要不可欠な通信プロトコルの一つです。 また近年はIoTなどの普及もあり、従来のWeb技術以外の分野にも必要不可欠な知識になってきています。 そこで、ネットワークAPIのデファクトスタンダードになっている、 BSDソケットインタフェースをベースとして改めてネットワークの勉強をしていこうと思ってます。 ネットワークの仕組み、特にTCP/IPについて書かれたやドキュメントはたくさんありますが、私はソケットAPIを使ったC言語のソースコードを読んでみるまで、どんな説明をきいてもイメージがわかず、あまり仕組みが理解できなかったので基的にC言語のソースコードの流れにそいながら、使われているデータや処理に基づいて動作を回を分けて学んでいくことにします。 もちろん、完璧だとは思っておりませんので、間違って

    C言語で学ぶソケットAPI入門 第1回 サーバ編 - Qiita
  • TensorFlowでDNNをスクラッチするためのオレオレチュートリアル - 終末 A.I.

    はじめに Chainer もなんとなしに慣れてきたので(使いこなせているレベルではありませんが)、他のDNN Framework も触ってみようと思いたち、昨日からTensorFlowをいじってみています。 最終的なアウトプットは同じなので、クラス構造などが結構似通っていて、思ったより学習コストが低かったのですが、一点苦戦したのがTensorFlowのチュートリアルの微妙さです。 Deep MNIST for Experts → とりあえず導入 TensorFlow Mechanics 101 → 基要素の説明 以上...! といった感じで、普通のDNNはどう書いたらいいの?な質問に答えてくれるのにぴったりなコンテンツが残念ながらありません。 Easy ML with tf.contrib.learn あたりが求めているものに近いのですが、tf.contrib.learn という3分クッ

    TensorFlowでDNNをスクラッチするためのオレオレチュートリアル - 終末 A.I.
  • OSを書く:初歩から一歩ずつ | POSTD

    (注:2017/9/27、いただいたフィードバックを元に翻訳を修正いたしました。) (傑作映画 『おつむて・ん・て・ん・クリニック』 に登場する著書です) このチュートリアルは、アセンブリで とても 簡単なオペレーティング・システムを皆さんが自分自身で書けるようになるために書きました。元々は、 OSDev wiki でこのチュートリアルのベースとなるものを見つけたのがきっかけです。しかし、そこには何がどのように、どうして行われているのかという説明が一切ありませんでしたので、このチュートリアルを書くことを決めました。ということで、起動プロセスの基礎と、実行するのに必要なツールについて紹介していきます。 OSXLinuxWindowsなどのよく使われているオペレーティング・システムはドライバを持っており、ハードウェアとの間のインタフェースを提供し、一定レベルの安全性とセキュリティを保証しま

    OSを書く:初歩から一歩ずつ | POSTD
  • golang入門するためにlifegame書いてみた - undefined

    タイトルとおりなんだけど、golang使ってみたいと思うケースが出てきて、入門のためまずはlifegameを書いてみた。 ルール ライフゲーム - Wikipedia 結果 github.com 16/7/16修正しました package main import ( "fmt" "math/rand" "time" ) type game struct { field [][]bool row int column int } func newGame(row, column int) *game { rand.Seed(time.Now().UnixNano()) p := new(game) p.row = row p.column = column p.field = make([][]bool, row) for r := 0; r < row; r++ { p.field[r]

    golang入門するためにlifegame書いてみた - undefined
  • Carthageコードリーディング::1日目 - My Favorite Things - Coding or die.

    Swift力を上げるために、Swiftで書かれたパッケージマネージャ「Carthage」のコードリーディングを始めてみる。 github.com 準備 まずはGitHubリポジトリをclone。 $ git clone https://github.com/Carthage/Carthage.git 次に依存ライブラリをインストール。 $ carthage update --platform mac 関係ないけど、自身の依存関係管理に自身(つまりCarthage)を使ってるのって夢があるよね。 GitやSVNといったVCSほどの感動はないけれど。 エントリポイント どうやらエントリポイントは「main.swift」らしい。 https://github.com/Carthage/Carthage/blob/master/Source/carthage/main.swift まずはCarth

    Carthageコードリーディング::1日目 - My Favorite Things - Coding or die.
  • Python の dict の実装詳解 : DSAS開発者の部屋

    @methane です。 最近 Python の dict をハックしているので、その紹介をしたいと思います。 ですが、まずこの記事では現在 (Python 3.6a2) の dict の実装を詳解します。 データ構造 基となる構造体は3つです。(Python 3.6a2 のソースより引用) typedef struct _dictkeysobject PyDictKeysObject; typedef struct { PyObject_HEAD Py_ssize_t ma_used; PyDictKeysObject *ma_keys; PyObject **ma_values; } PyDictObject; typedef struct { /* Cached hash code of me_key. */ Py_hash_t me_hash; PyObject *me_key;

    Python の dict の実装詳解 : DSAS開発者の部屋
  • ファイルシステムソムリエになる話 - Gentoo metalog

    利きファイルシステムができるのかという話を見かけたので、できそうだなと思って書いたやつです。 「ここに何かのファイルシステムがあります。ファイル操作を行って、どのファイルシステムか当ててください。なおディスクイメージを見ることはできません。」という問題を解く方法について考えます。 ぱっと思いつく方法はこれでしょうからやっていきます ディレクトリのなかにファイル作っていってinode番号見ればbtrfsとext4とXFSは区別できる気がしますね— シャルロット・びーる尽き太郎の憂 (@naota344) 2016年6月15日 以下のスクリプトを走らせます。512GBで各FSのイメージ作って、ディレクトリをいくつか掘ってinode番号を表示させるだけです。 #!/bin/sh FS="btrfs ext4 xfs" DIR=/mnt/test for f in $FS; do echo ${

    ファイルシステムソムリエになる話 - Gentoo metalog
  • 一歩先行くJavaプログラマが読むべきオープンソースソフトウェア10選 - 設計と実装の狭間で。

    10万行コード読んだらJava分かるよってTwitterに書いたらすげぇ勢いでRTされたので、調子に乗って捕捉エントリ書くよ。 Java Core API JDKインストールしたディレクトリに入ってるsrc.zipを展開すると入ってるから読むと良いよ。 すぐ近くにあるのから読むってのはメンタル的に楽でいい。 厳密にはOSSじゃなくて単に公開されてるってだけなんだけども、JavaプログラマなのにコアAPIのコード読んでないとか無いよね? どれから読めば良いか分からんかったら、 java.lang java.util java.io java.text 辺りをまずはキチンと理解すること。当然コードを読み終わったら、それを使ってコードを書く事。 OpenJDK http://hg.openjdk.java.net/jdk7/jdk7 OpenJDKを読むことで、プログラム言語してのJavaではな

    一歩先行くJavaプログラマが読むべきオープンソースソフトウェア10選 - 設計と実装の狭間で。
  • 可読性に関するソフトウェアメトリクスを考えた - 超ウィザード級ハッカーのたのしみ

    新しいソフトウェアメトリクスを思いつきました。 ソフトウェアメトリクスとは、ソフトウェアの特性を推定するための定量値のことです。バグの数とかレビューの時間とか開発の過程で得られる値もありますし、テストの数だとかカバレージといったテストを評価する値もあります。ソースコード自体から測定されるものとしては、LOC (Line Of Code)やCyclomatic Complexityがよく知られています。それぞれ、ソースコードの規模・複雑さを示すものです。*1 近年では、ソフトウェアの特性としてソースコードの可読性が重要視されるようになっています。ソースコードは書く時間よりも読まれる時間の方が長い。読むための労力が少ないソースコードは、生産性を向上させ、バグも少なくなります。 可読性を高めるためには、適切な名付けやコメント、明快な処理のフローが必要です。名付けやコメントについては、数値化するこ

    可読性に関するソフトウェアメトリクスを考えた - 超ウィザード級ハッカーのたのしみ
  • MeCab ソースコードリーディング私的メモ(形態素解析編) - あらびき日記

    この記事は abicky.net の MeCab ソースコードリーディング私的メモ(形態素解析編) に移行しました

    MeCab ソースコードリーディング私的メモ(形態素解析編) - あらびき日記
  • 他人の書いたコードに挑もう – Part 2 | POSTD

    この記事の前編はこちら: 他人の書いたコードに挑もう – Part 1 慣れる 前にも言ったように、よく知らないプロジェクトのコードを探索する時は、段階を追って進めます。第一段階は、通常、様々なファイルやフォルダを大まかに見ていくことです。何がどこにあって、そのプロジェクトがどんな「モノ」を持っているのかを把握します。それを終えてやっと、自分の見たい特定の「何か」を詳細に見ていくことができるのです。 いろいろなコードを見る Spyderにあると思われる主なトップフォルダは下記のものです。 app_example/ :明らかに何らかのアプリケーション例であり、おそらくメインのコードではない。 conda.recipe/ : Anacondaとのある種のインテグレーションで、Spyderを簡単にインストールできるようにするもの。 continuous_integration/ :自動の単体テス

    他人の書いたコードに挑もう – Part 2 | POSTD
  • 他人の書いたコードに挑もう – Part 1 | POSTD

    この記事では、他人が書いたコードを扱うための練習法を一から説明します。目標は、 Spyder Python IDE という今まで触ったこともないプロジェクトのコードに任意の変更を加え、途中で行き詰ることなく、目的達成に必要な情報 のみ 習得することです。ここでは、勘や実験的な手段、そしてプロの現場で養った洞察力を武器に問題に対処する方法を学びます。形式ばったレッスンのように、苦痛を感じることはないでしょう。満足感や挫折、葛藤を味わいながらプロジェクトを進め、最終的には(なんとか動く程度の)パッチを完成させ、大規模で不慣れなコードベースに機能を追加します。 プログラミングを学んでいる人は皆、あらゆる種類のプログラムで大量のコードを書いています。それは、問題集に載っているアルゴリズムを実装するにせよ、ウェブサイトの構築やビデオゲームの作成をするにせよ同じです。ところがプロのソフトウェアエンジニ

    他人の書いたコードに挑もう – Part 1 | POSTD
  • Python Bottleのソースを読んでみる ルータ編 - Git厨ブログ

    2016 - 02 - 08 Python Bottleのソースを読んでみる ルータ編 Python Python の軽量WebフレームワークBottleのソースを読んでみる ルータ編 Class Hierarchy ここの部分 Bottleのルータについて bottleのルータは特に継承関係はなくRouteとRouterクラスで構成されている Routerの役割 A Router is an ordered collection of route->target pairs. It is used to efficiently match WSGI requests against a number of routes and return the first target that satisfies the request. The target may be anything, u

    Python Bottleのソースを読んでみる ルータ編 - Git厨ブログ
  • 先読み処理 - Linuxの備忘録とか・・・(目次へ)

    先読みとは、page単位の実際の読込みサイズを拡大して読込む事で、ブロックデバイス登録でblk_alloc_queue_node()がコールされる際、BIOリストが作成されるrequest_queueq->backing_dev_info.ra_pagesに先読みサイズ最大値が設定されます。先読みサイズ最大値ra_pagesは、実読込みサイズ+先読みサイズで、実サイズを読み込んで、先読みサイズ分を読み込むのでなく、読み込み際は、実サイズ/読み込みサイズ関係なく、両者を合わせたサイズ値で読み込みます。 最大サイズのデフォルトはVM_MAX_READAHEAD=128で、page数(VM_MAX_READAHEAD * 1024) / PAGE_CACHE_SIZE=32 pageとなります。ブロックデバイススペシャルファイルのioctl()のBLKRASETで設定できます。この先読みサイズ情

  • C++コードのデトックス - Qiita

    -pedantic -Wall -Wextra -Wcast-align -Wcast-qual -Wctor-dtor-privacy -Wdisabled-optimization -Wformat=2 -Winit-self -Wlogical-op -Wmissing-declarations -Wmissing-include-dirs -Wnoexcept -Wold-style-cast -Woverloaded-virtual -Wredundant-decls -Wshadow -Wsign-conversion -Wsign-promo -Wstrict-null-sentinel -Wstrict-overflow=5 -Wswitch-default -Wundef -Werror -Wno-unused project(detox) cmake_minimum_r

    C++コードのデトックス - Qiita