タグ

programmingに関するtk60qtのブックマーク (68)

  • PEP 8 – Style Guide for Python Code | peps.python.org

    PEP 8 – Style Guide for Python Code PEP 8 – Style Guide for Python Code Author: Guido van Rossum <guido at python.org>, Barry Warsaw <barry at python.org>, Alyssa Coghlan <ncoghlan at gmail.com> Status: Active Type: Process Created: 05-Jul-2001 Post-History: 05-Jul-2001, 01-Aug-2013 Table of Contents Introduction A Foolish Consistency is the Hobgoblin of Little Minds Code Lay-out Indentation Tabs

    PEP 8 – Style Guide for Python Code | peps.python.org
    tk60qt
    tk60qt 2017/03/01
    きれいに書こう
  • bash 超プログラム術

    bash の解説なんて、ネット上には結構あったりするのだが、これをわざわざ公開しようというのは、次の理由による。 某ソフトハウスでのUNIX講座用に書いてしまったから。 ネット上にある bash 解説だと、表面的な構文解説程度であり、きっちりスクリプト言語として使い倒すレベルの解説はあまりない。まあ、プログラミング言語として凝ったサンプルもやってみようじゃないの、というノリで割とディープに解説する。 アクセスを増やすための人気取り(苦笑)。 まあ、そんな不純な目的による bash 解説である。とはいえ、日常的に使い慣れている bash であっても、「え、こんな使い方があったの!?」という発見もあることであろう。苦笑しながらでも読んでくれたまえ。だから、初歩的なリダイレクションなんかは解説しないからそのつもりで。 ちなみに参考書としたのはオライリー・ジャパン刊「入門 bash 第2版」である

    tk60qt
    tk60qt 2017/01/17
    programming tips on bash
  • Linux日和~スレッドの同期1~

    キーボードやパケットの入力を受け付けるスレッドがあり、入力されたデータを受け取って必要な処理を行うスレッドがあったとします。処理を行うスレッドはデータが入力されたかを定期的に(10msに一回のように)チェックしていたのでは無駄が多そうです。そこで、普段は実行を停止していて、「データが到着したから処理してね」という通知を受けると処理を再開できるようにします。 /* * sample program * synchronous of threads test program */ #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <errno.h> #include <pthread.h> #define BUFSIZE 256 char buf[BUFSIZE]; p

  • 条件変数の使用方法 (マルチスレッドのプログラミング)

    条件変数の初期化 pthread_cond_init(3T) pthread_cond_init(3T) は、cv が指す条件変数をデフォルト値 (cattr が NULL) に初期化します。また、pthread_condattr_init() ですでに設定してある条件変数の属性を指定することもできます。cattr を NULL にするのは、デフォルト条件変数属性オブジェクトのアドレスを渡すのと同じですが、メモリーのオーバーヘッドがありません。(Solaris スレッドについては、「cond_init(3T)」を参照)。 プロトタイプ: int pthread_cond_init(pthread_cond_t *cv, const pthread_condattr_t *cattr); #include <pthread.h> pthread_cond_t cv; pthread_cond

  • CMakeを使ってみた(1)経緯と簡単なアプリケーション - wagavulin's blog

    はじめに CMakeを調べた経緯 CやC++でプログラムを書くときは普通何らかのビルドツールを使う。Unix/LinuxならMakeが多いだろう。Makefileにビルド手順を書くわけだ。一方WindowsでVisual Studio(以下VS)を使うときはVS上でビルドの設定を行い、その結果はプロジェクトファイル(.vcproj)に保存される。 そのため、Unix/LinuxWindows両方に対応しようとすると、例えばソースファイルを追加するたびにMakefileとVSのプロジェクトファイルの両方を修正することになる。さらにEclipse CDTでも開発できるようにしようと考えたり、あるいは古いVS用のプロジェクトファイルが必要になったりすると、サポートするビルド環境がどんどん増えていく。 当然管理も面倒になり普段使わないものが段々放置され、ついにはビルドできなくなる。そしてそのこと

    CMakeを使ってみた(1)経緯と簡単なアプリケーション - wagavulin's blog
  • CMake チュートリアル — Cmake-Tutorial

    CMake チュートリアル¶ このチュートリアルでは,一般的なビルドシステムの問題点のうち,CMake を利用することで解決できる事項について段階的に述べていきます. Mastering CMake では,これらのトピックの多くが個別の問題として紹介されていますが, これらが1つのプロジェクトで一緒に機能する様子を知るのも勉強になるでしょう. このチュートリアルは,CMake ソースコードツリーの Tests/Tutorial ディレクトリにもあります. 各ステップは,ステップごとのチュートリアルを含むサブディレクトリが存在します. (Step 1) 最初に¶ 最も基的なプロジェクトは,ソースコードから実行ファイルをビルドすることです. 単純なプロジェクトの場合,CMakeLists ファイルに必要なのは2行だけです. これが,チュートリアルのスタート地点になるでしょう.この CMake

  • cmake の使い方 - PukiWiki

    2018-05-08 Yolo (Darknet) でcifar10の学習 2018-05-05 python 2018-05-01 OCRソフト Keras 2018-04-19 自然言語処理 2018-04-04 古文書 現在の作業メモ 2018-03-20 pyTorch 2018-03-19 Anaconda 2018-03-16 YOLO(Darknet)でCOCOの学習 2018-03-13 YOLO(Darknet)でVOCの学習 2018-03-10 Deep Learning関係 2018-03-03 abc8y 2018-03-02 xyz abc8x 2018-02-12 abc04 abc03 2018-02-11 abc02 2018-02-10 abc01 abc74 FrontPage 参考:全般的なチュートリアル ←大いに参考にした。 参考:オプションの定義

  • 入門ガイド — Google Test ドキュメント日本語訳

    はじめに:なぜ Google C++ Testing Frameworkを使うのか¶ Google C++ Testing Framework を上手に活用すれば,より良い C++ のテストを書くことができます. LinuxWindows,そして Mac,あなたが C++ のコードを書いているこれらの環境に関係なく Google Test を利用できます. では,優れたテストを書くにはどうすればよいのでしょうか?Google C++ Testing Framework は,どのように役立つのでしょうか?我々は次のように考えています: テストには, 独立性 と 再現性 が必要です.別のテストの結果に依存して成功したり失敗したりするテスト,をデバッグするのは非常に面倒な作業です.Google C++ Testing Framework は,各テストを異なるオブジェクト上で実行することによって

  • Quick CMake tutorial | CLion

  • CMakeを使って自作ライブラリをビルド&インストールしてみたまとめ - へぼいいいわけ

    最近、意味も無いのに高速&省メモリを求めてC言語でプログラム書くのが自分の中で流行ってまして、それで作った自作のライブラリをAutotoolsを使用してインストールしていたんです。でも、Autotoolsだと複数のコマンドとそのオプションを覚える必要があったり、関連性の分かりにくい設定ファイルを書く必要があったり、勝手にGPLの条文が生成されたりして面倒なんですよ。まあ一回書いてしまえばあまり変更する必要も無いので、とりあえずは我慢していました。 話は変わって、先日MySQLのver5.5.9をソースからインストールしてみました。MySQLの5.5(?)からはインストールにCMakeを使うそうで、MySQLのためにCMakeもインストールしました。そもそもCMakeの存在を知らなかったので、この機会に調べてみたところ、CMakeを使ってみたくなってしまい、勢いでそのまま使ってしまったのでそ

  • How do I make CMake output into a 'bin' dir?

    I'm currently constructing a project with a plugin structure. I'm using CMake to compile the project. The plugins are compiled in separate directories. My problem is that CMake compiles and saves the binaries and plugins, dynamic libraries, in the directory structure of the source. How do I make CMake save the files in something like a ./bin directory?

    How do I make CMake output into a 'bin' dir?
  • cmakeツール最初の一歩 - torutkのブログ

    UNIXでは、C/C++のソースコードをビルドするにはMakefileを書いてmakeツールを使うのが一般的です。しかし、Makefileを書くのは大変なので*1、もっと楽なツールを探すと出てくるものの一つがcmakeです*2。 cmakeのインストール(CentOS 5.2) # yum install cmake でインストールできます。 Hello, worldプログラムをcmakeでビルドする ビルド設定は、CMakeLists.txtという名前のファイルに記述します。とりあえずソースファイルと同じディレクトリに以下の内容で作成します。 CMakeLists.txtの作成 PROJECT(HelloWorld) ADD_EXECUTABLE(hello hello.cpp) cmakeコマンド実行 以下コマンドを実行します。 hello$ cmake . -- Check for

    cmakeツール最初の一歩 - torutkのブログ
  • CMakeでデフォルトのコンパイラを書き換える微妙な方法 - あさっては曇りのち晴れ

    あけましておめでとうございます。 年が明けて2週間ほど経ちまして、今年最初の更新はまたしてもCMakeネタです。以下言語はC++を例としておりますのであしからず。 さて、コンパイラなんぞはよしなに設定してくれるCMakeですが、時にそれが気に入らない場合もあります。例えば… Macのg++は古いのでというかC++11使いたいのでclang++がいい スパコン等でg++じゃなくてベンダさんが指定してるコンパイラを使いたい なんかg++ディスってるみたいに見えますがそんなことはないです。(メッセージはclangの方が親切だけどこないだ試したら最適化能力はg++の方が高かった。) で、普通の方法その1。CMake叩くときにセットします。 cmake -DCMAKE_CXX_COMPILER=clang++ いちいちそんなのタイプしてらんないよ。シェルの履歴使…ゲフンゲフン… では普通の方法その2

    CMakeでデフォルトのコンパイラを書き換える微妙な方法 - あさっては曇りのち晴れ
  • A new backend and optimizer for scalac

  • Effective Scalaの翻訳を少しだけ手伝わせてもらいました & 読んでて気になったところ。 - from scratch

    Effective Scalaが公開されて数日経ちました。 Scalaはハイブリッド言語と言われるだけあって、命令型、関数型のスタイル両方共で書けるという素晴らしさを持っています。 Scalaにはバイブルともいうべきがいくつか出ています。その中の一つが↓。 Scalaスケーラブルプログラミング第2版 作者: Martin Odersky,Lex Spoon,Bill Venners,羽生田栄一,水島宏太,長尾高弘出版社/メーカー: インプレスジャパン発売日: 2011/09/27メディア: 単行(ソフトカバー)購入: 4人 クリック: 109回この商品を含むブログ (28件) を見る コレを読むとScalaで実施するためのmustな記法は知ることができます。ただ、こうするべき(should)というようなノウハウめいた記法は分かりません。 Effective Scalaを読むとTwitt

    Effective Scalaの翻訳を少しだけ手伝わせてもらいました & 読んでて気になったところ。 - from scratch
  • 性能の測定

    JVM における性能 JVM における性能モデルは論評こそは色々あるが、それに巻き込まれて結局よく理解されてないと言える。 様々な理由から、あるコードは期待されているよりも性能が悪かったり、スケーラブルではなかったりする。 以下にいくつかの理由をみていく。 一つは JVM 上のアプリケーションのコンパイル工程が静的にコンパイルされた言語のそれとは同じではないということが挙げられる([2] 参照)。 JavaScala のコンパイラはソースコードを JVM バイトコードに変換するだけで、最適化はほとんど行わない。 現代的な JVM の多くではプログラムのバイトコードが実行されると、それは実行しているマシンのコンピュータアーキテクチャのマシンコードに変換する。 これはジャストインタイムコンパイラ (just-in-time compiler、JITコンパイラ) と呼ばれる。 しかし、JI

  • sbt-jmhを使って、Scalaでマイクロベンチマーク - CLOVER🍀

    以前、マイクロベンチマークツールであるJMHを試してみたというエントリを書きました。 JMH http://openjdk.java.net/projects/code-tools/jmh/ マイクロベンチマークツール、JMHを試す http://d.hatena.ne.jp/Kazuhira/20140102/1388662362 で、その後Scalaで書こうとして、APTがあるのでJavaのブリッジコードが必要だというエントリを書きました。 Scala+sbtと、JMHを合わせて使う http://d.hatena.ne.jp/Kazuhira/20140102/1388671010 これに対して、最近@xuwei_kさんからsbtのJMHプラグインができたとツッコミをいただいたので、試してみることにしました。 sbt-jmh プラグインの名前は、「sbt-jmh」です。 sbt-jm

    sbt-jmhを使って、Scalaでマイクロベンチマーク - CLOVER🍀
  • GitHub - x1-/scala-benchmark: This repository has various scala benchmark code using sbt-jmh.

    sbt [info] Loading project definition from ... [info] Set current project to com.inkenkun.x1.scala.benchmark ... > # compile classes > jmh:compile # run all benchmark # measurement: 2, worming-up number: 3, total number: 1, threads: 2, mode: all jmh:run -i 2 -wi 3 -f 1 -t 2 -bm all # run specific class benchmark # measurement: 2, worming-up number: 3, total number: 1, threads: 2, mode: Throughput

    GitHub - x1-/scala-benchmark: This repository has various scala benchmark code using sbt-jmh.
  • scalac の -optimize オプション有り無しの違い (-Xshow-phase) - tnoda-scala

    scalac を素で実行するのと -optimize オプションをつけて実行するのとでは何が違うのでしょうか? https://gitter.im/scalajp/public で聞いてみても公式ドキュメントが無さそうだったので, 手元で分かる範囲で調べてみました.とりあえず,-Xshow-phases で -optimize オプションで追加されるフェイズを抽出してみます. ~ % scalac -version Scala compiler version 2.11.4 -- Copyright 2002-2013, LAMP/EPFL ~ % scalac -Xshow-phases phase name id description ---------- -- ----------- parser 1 parse source into ASTs, perform simple d

    scalac の -optimize オプション有り無しの違い (-Xshow-phase) - tnoda-scala
  • Scala2.11.7からのJava8に対応した新しいコンパイルオプションを試してみた - xuwei-k's blog

    "新しい" とは、今まで全部無名classにコンパイルしてたラムダを、invoke dynamic使って動的に生成するようになるとかそういうやつ。 ラムダ以外の最適化もやってるようですが?詳しくは知りません。 Scala 2.12から正式に入るらしいですが、(これ書いてる時点から見て)つい昨日くらい(2015/06/25)に出たScala2.11.7でも、明示的にオプションを指定すれば、実験的オプションとしてですが、使えるそうです。 内部の仕組みは、以下のScaladays2015のスライド見るとか、あとは各自ググってください http://downloads.typesafe.com/website/presentations/ScalaDaysSF2015/T2_Rytz_Backend_Optimizer.pdf 公式に書いてありますが、2.11.7においてJava8のバックエンドを

    Scala2.11.7からのJava8に対応した新しいコンパイルオプションを試してみた - xuwei-k's blog