タグ

2015年6月24日のブックマーク (19件)

  • Success is a Journey, not a Destination: 全てのCプログラマが未定義な振る舞いについて知っておくべきこと #1/3

    [What Every C Programmer Should Know About Undefined Behavior #1/3 の翻訳です。] LLVMでコンパイルしたコードは、最適化を有効にしているとたまにSIGTRAPシグナルを生成するのはなぜなのか、と聞かれることがある。いろいろ調べたあと、(X86での話だが) Clangは "ud2" インストラクションを生成していたことがわかった。"ud2" は__builtin_trap()が生成するインストラクションと同じものだ。[訳注: #UD例外を発生させる命令。ソフトウェアが#UD例外をハンドルできているかテストするために使われる。つまり、ソースコードが未定義な振る舞いを使っていたから、LLVMはud2インストラクションを生成したのであって、LLVMのバグではない、ということ] こういう問題は幾つかあって、すべて、Cの未定義な振る

  • Swiftにおけるプロトコル指向プログラミング

    WWDCにて、C++/Boostで知られ、現在はAppleSwift Standard Libraryグループのリーダを務めるDave Abrahams氏が、Swiftをプロトコル指向言語として紹介し、プロトコルがコード改善にどう使えるのか説明した。 プロトコル指向プログラミングというのは、OOP(オブジェクト指向プログラミング)のパラダイムの一つで(注:Abrahams氏はそうは言っていないとのこと)、クラスよりもプロトコル(インターフェイスに相当)と構造体の利用を好んでいる。 クラスは素晴らしい? OOPで知られているように、クラスは以下を提供するのに使われる。 カプセル化 アクセス制御 抽象化 名前空間 表現力 拡張性 実のところ、これらはすべて型の特性であり、クラスは型を実装する一つの方法にすぎないとAbrahams氏は言う。だが、クラスはプログラマに多大な犠牲を強い、次のような

    Swiftにおけるプロトコル指向プログラミング
  • Linuxの性能関連のまとめ - ITメモ

    性能測定コマンド sar :システム稼動状況 mpstat:CPU稼働状況 vmstat:仮想メモリ稼働状況 free :メモリ情報 iostat:ハードディスク,CPU使用状況 ps :プロセス情報 top :プロセス情報 目安 CPU CPU使用率:90%以上 CPU待ちプロセス数:2より大きい(1CPUあたり) メモリ メモリ使用量:ページングの発生回数 ディスク ディスク使用率:80%以上 ネットワーク ネットワーク使用率:80%以上 パケット衝突回数:送信パケットの10%以上 sarコマンド # sar [オプション] [-o ファイル名] 取得間隔 取得回数 -u:CPUCPU使用状況 -q:CPU:プロセスキュー、システム稼動負荷 -r:メモリ:メモリ,スワップ領域使用状況 -R:メモリ:メモリ動作状況 -B:メモリ:ページング統計値 -W:メモリ:スワッピング統計値 -b

    Linuxの性能関連のまとめ - ITメモ
  • [迷信] setjmp マクロの返却値は変数に代入できる | 株式会社きじねこ

    akanehara
    akanehara 2015/06/24
    [setjmp/longjmp]
  • C言語setjmp/longjmpメモ(Hishidama's C "setjmp/longjmp" Memo)

    S-JIS[2012-11-23] setjmp/longjmp関数 longjmp()は、setjmp()した場所へ跳ぶC言語の関数。 概要 longjmp()は、関数をまたいで跳べるgotoのようなもの(ただし“元の場所”へ戻ることしか出来ない)。 C++Javaのthrow-catchに近い。 例 #include <stdio.h> #include <setjmp.h> jmp_buf jmpbuf1; void sub(void) { printf("sub start\n"); longjmp(jmpbuf1, 123); printf("sub end\n"); } int main() { printf("main start\n"); int c = setjmp(jmpbuf1); if (c == 0) { // 最初にここが実行される sub(); } else

    akanehara
    akanehara 2015/06/24
    [setjmp/longjmp]
  • C言語メモ(Hishidama's C Memo)

    C言語のメモです。 インストール方法 [2016-04-09] 基礎知識 [/2010-05-19] プリプロセッサ命令 [2006-10-30] sizeof演算子 [2008-01-28] 標準Cライブラリー strtok(単語分割) [/2006-10-17] longjmp(長距離ジャンプ) [2012-11-23] UNIX(POSIX) fork(子プロセス生成) [2012-11-17] exec(別プログラム実行) [2012-11-17] pipe(パイプの生成) [2012-11-17] Windows API CreateProcess(子プロセス生成・別プログラム実行) [/2013-01-15] CreatePipe(パイプの生成) [2013-01-10] ConsoleCtrlHandler(コンソールアプリのシグナル) [2013-01-10] Cutter

  • Practical Scheme

    Shiro Kawai まだ下書き Schemeの特徴をあげるときに、「継続」や「call/cc」が出て来ないことはない。 でも、R5RSのcall/ccの項をいくら読んでも、どうもよくわからない。 call/ccを使えばC言語のbreakみたいなのとか、コルーチンとかいう スレッドもどきとかが書ける、というのはわかったけど、一体そういうのが書けて 何が嬉しいのか、そこんとこがピンと来ないんだ。 今、そこにある継続 プログラミングの世界の概念には、禅の公案のようなものがある。 それを説明する文章はほんの一文なのに、最初に目にする時、 その文は全く意味をなさない、暗号のように感じられる。 だがひとたびその概念を理解すると、 その概念の説明は確かにその一文で説明されているのがわかるのだ。 そんな、「分かれば分かる」という禅問答の中でも 「継続」は最も謎めいたものの一つと言えるだろう。 文献を紐

    Practical Scheme
  • ギコ猫でもわかるファミコンプログラミング

    ギコでもわかるファミコンプログラミング ∧ ∧ ~′ ̄ ̄( ゚Д゚)<ファミコン、シロ! UU ̄ ̄ U U 「ギコでもわかるファミコンプログラミング」は、 任天堂ファミリーコンピュータ(ファミコン)のエミュレータで動作する、 8ビットアセンブラプログラムの勉強サイトです。 内容には技術的な間違いがある可能性があります。 サンプルソースはあまり整理されておらず、最適化もされていません。 また、内容は予告無しに修正されます。各自の責任においてご覧ください。 なお、このページには自由にリンクして頂いて結構です。 2023/6/17 復活! ここに全てのファイルをアップしましたので、 ご利用下さい 「ファミコンプログラム入門」更新履歴 ファミコンプログラム入門 第1章 はじめに 第2章 NESASM 第3章 PPU 第4章 パレット 第5章 スプライト 第6章 パッド入力 第7章 ゼロペー

  • Famicom/NES

    ※このページは「すずめ愛好会」のアーカイブ http://web.archive.org/web/20050214063019/http://suzume.net/ から復元したものです。 1.開発環境 開発にはアセンブラを使います。 6502用のアセンブラならどれを使っても問題ないと思いますが、NES用に開発されたアセンブラがあるのでそれを使いましょう。 ネットで探せば見つかると思いますが、サイズが小さいのでここにも置いておきます。 ファミコンエミュレータのROMイメージで使われているINES形式のバイナリを直接吐き出すことができます。 サンプルソースも入ってるので一通り見ておきましょう。 INES形式ファイルのヘッダ情報も一緒に入っているので、他のアセンブラで作ったプログラムをエミュレータで動かすときは参考にしてください。 2.CPU ファミコンのCPUは6502カスタムで、6502+

  • ファミコンをRGB化するボードが31年間登場しなかった理由(PPU載せ換え以外の方法で) - Aoisomeの以下略

    前回の続きです 旧ファミコンは標準でRF端子しかなく、ぼやけた映像しか出力できなかったことは 覚えている方も多いかと思います。 なぜファミコンではRGB出力対応に改造したりすることが難しいかを考察したいと思います。 なぜ今までファミコンをRGB化するボードが登場しなかったか ファミコンのPPUの端子であるEXT0〜EXT3から、4bitの映像信号が出ているので、RGB化の余地はありましたが、 EXT0〜EXT3の映像信号はRGB信号ではなく、パレットカラーのインデックス値になっていること パレットRAMはPPU内部にあり、その内容は外付け回路からはアクセスできないこと パレットはスプライトとBGの合計で32個あり、4bitのインデックス値だけではRGBに変換できないこと 以上の理由により、ファミコンをRGB化することが難しい状況でした。 NESRGBではこれらの問題点をどうやって回避してい

    ファミコンをRGB化するボードが31年間登場しなかった理由(PPU載せ換え以外の方法で) - Aoisomeの以下略
  • GSLB(広域負荷分散)とは

    ◆ GSLBとは GSLB(グローバルサーバロードバラシング)は、複数のサイト間でサーバロードバランスを行う機能です。 例えば、東京DCと大阪DCにサーバを配置して、正常時には東京DCに配置されたサーバにトラフィックを 転送して、東京DCの障害発生時に大阪DCのサーバにトラフィックを転送するようなことが可能となるので ディザスタリカバリ対策ともなります。また、DNSの動きと連動させてユーザのリクエストをトラフィック の少ないサーバへ転送することも可能です。GSLBの専用装置にはF5のGTM、CitrixのMPXなどがあります。 ◆ GSLBの動作 広域負荷分散装置であるGSLBの動作は以下のようなフローとなります。 ローカルDNSが東京DCと大阪DCのGSLBのAレコードを保持している場合、ローカルDNSから外部DNSへの問い合わせ動作は省略。

    akanehara
    akanehara 2015/06/24
  • DMM inside

    アニメ初の快挙!海外アニメ賞を受賞した『スキップとローファー海外ライセンス部長&プロデューサーが語る、奮闘の舞台裏

    DMM inside
  • 狂ってる邦楽バンドおしえてください - 見る前に飛べ踊れ

    ORDER:neo humanity/noise it up(1996.japanese crust hardcore punk )

  • The Linux Kernel

    David A Rusling david.rusling@arm.comv0.8-3 January 25, 1999 JF Projectv0.8-3 December 2000 *フレーム表示* 書は、Linux カーネルの仕組みを知りたい Linux 愛好家のためのものです。これは 内部構造のマニュアルではありません。むしろ Linux で使用されている原理や メカニズムを解説したものであり、Linux の動作原理とはどういうもので、なぜそれ が採用されているのかを説明するものです。 Linux という対象は常に変化しています。書がベースにしているのは現在の安定 版である 2.0.33 のカーネルソースですが、これは個人や法人の大部分で使用されて いるのがこのバージョンだからです。 また、書は自由に配布してもらってかまわないので、一定の条件のもとにではあり ますが、複製や再配

  • sedでファイルを上書き保存

    単一ファイルの場合 -i(--in-place)オプションが使えるsedの場合 cygwinのsed(GNU sed 4.1.5版)では,オプション-i(--in-place)を使うと入力ファイルの上書き更新ができる.例として,「filter.propertiesファイルの中の先頭が#で始まる行(コメント行)を削除して上書き」してみよう.今回の場合は以下の通りとなる.ちなみに先頭の$はコマンドプロンプトである. $ sed -i -e '/^#/d' filter.properties または $ sed --in-place --expression=/^#/d filter.properties 上書き前のファイルをバックアップとしてとっておくなら-i(--in-place)にバックアップ用の拡張子を指定する.例えば,上書き前のファイルに拡張子.bakをつけて保管する場合は以下の通り.

    akanehara
    akanehara 2015/06/24
    "-i(--in-place)オプションが使えないsedの場合"
  • ニトリのコードを見てニヨニヨする会(そして最後にニヨニヨできなくなった話) - Minecraftとタートルと僕

    2015-06-24 ニトリのコードを見てニヨニヨする会 雑記 情報リンク集 ニヨニヨ はじめに ニトリのECサイトであるニトリネットがリニューアルに失敗して6日も経ってから復旧したということで、 (一部の)プログラマクラスタで騒ぎになっています。 僕の率直な感想は次のようなもの。 閉鎖状態の「ニトリネット」が6/23にサイト運営を再開、不具合の主因はCPU不足 | ネットショップ担当者フォーラム ともあれ関係者の皆さまお疲れ様でした。個人の責任問題などと短絡化することなく、粛々と原因解明と、できればぜひ知見の共有公開をお願いしたい。2015/06/23 13:40 プレスリリースでは、原因としてCPU不足を挙げています。 珍しい原因ですよね。あまり聞いたこと無いのでぜひその知見を知りたいものです。 しかし雲行き怪しく 早速、ニトリのトップページ見ている。すごい8000行の中にデバックコー

    ニトリのコードを見てニヨニヨする会(そして最後にニヨニヨできなくなった話) - Minecraftとタートルと僕
    akanehara
    akanehara 2015/06/24
    鬼か
  • itertoolsモジュールをひと通り眺めてみた - PYTHONIC BOOM BOOM HEAD

    Python 3 からは一部の関数がイテレータを返すよう変更になったということなので、この機会にPython3を触りつつitertoolsモジュールについてひととおり学んでみた。 主に参考にしたのは9.7. itertools — 効率的なループ実行のためのイテレータ生成関数 — Python 2.6ja2 documentation。そのため添えてあるメモは基的にpython2.6が前提。2.7や3.2で追加されたり変更された点があればその旨を適宜書いてあります。 print関数について 今回はPython3.2であれこれしたのでprint関数を使ってます。Python2.6以降で print("", end=" ") みたいなのを使うには from __future__ import print_function とする必要があります。 バージョン毎のメソッドの実装状況 それぞれのバ

    itertoolsモジュールをひと通り眺めてみた - PYTHONIC BOOM BOOM HEAD
    akanehara
    akanehara 2015/06/24
  • 【機械学習】ディープラーニング フレームワークChainerを試しながら解説してみる。 - Qiita

    今話題のDeep Learning(深層学習)フレームワーク、Chainerに手書き文字の判別を行うサンプルコードがあります。こちらを使って内容を少し解説する記事を書いてみたいと思います。 (記事のコードの全文をGitHubにアップしました。[PC推奨]) とにかく、インストールがすごく簡単かつ、Pythonが書ければすぐに使うことができておすすめです! Pythonに閉じてコードが書けるのもすごくいいですよね。 こんな感じのニューラルネットワークモデルを試してみる、という記事です。 主要な情報はこちらにあります。 Chainerのメインサイト ChainerのGitHubリポジトリ Chainerのチュートリアルとリファレンス 1. インストール まずは何はともあれインストールです。ChainerのGitHubに記載の"Requirements" ( https://github.co

    【機械学習】ディープラーニング フレームワークChainerを試しながら解説してみる。 - Qiita
  • Kamimura's blog

    - John MacCormick(著)、松崎 公紀(監修)、長尾 高弘(翻訳)、オライリー・ジャパン - 計算できるもの、計算できないものに誤植(?)があったから報告

    Kamimura's blog
    akanehara
    akanehara 2015/06/24