kouba_cのブックマーク (321)

  • Home

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    Home
    kouba_c
    kouba_c 2017/01/14
  • 一眼レフカメラをRaspberryPiからリモート制御する話

    デジタルカメラをUSB経由でRaspberryPiと接続し、コマンドラインから写真を撮ったりあれこれできるgphoto2を使ってみた話。 パソコンからデジタルカメラのシャッターを切る デジタルカメラをPCから操る技術は、室内で写真を扱うスタジオ/業界では当たり前の機能(Adobe Lightroomなどを使ったテザー撮影)で、PCでホワイトバランス、絞り、露光量など、各種設定を調節しPCでシャッターを切り、確認は大きなPCの画面…といった感じで使われているようです。 とは言え、そんな機能を自宅PCで使う予定は無いのですが、この機能をLinux(Raspberry Pi)から使えたら、 RaspberryPiにつけた各種センサーと組み合わせてシャッターを切る 人感、傾き、光・音、温度センサーなどと組み合わせる 離れた場所のスマートフォンなどからWeb経由でシャッターを切る cronなどで定期

    一眼レフカメラをRaspberryPiからリモート制御する話
    kouba_c
    kouba_c 2016/12/20
  • C/C++中規模プロジェクトのための超シンプルなMakefile | POSTD

    私は多くの小規模プロジェクトで Make を使ってきましたが、より大きな規模のプロジェクトになると、それは非常にうんざりするようなものでした。最近までは、自分のビルドシステムに行いたいことが4つあったのですが、Makeでの方法が分かりませんでした。 out-of-sourceビルド(オブジェクトファイルが、ソースとは分離されたディレクトリにダンプ出力されます) 自動生成される(かつ正確!)ヘッダの依存関係 オブジェクト/ソースファイルのリストの自動的な決定 インクルードディレクトリのフラグの自動生成 以下にこれらの全てを行える、C、C++、およびアセンブリで動作するシンプルなMakefileを紹介します。 MAKEFILE TARGET_EXEC ?= a.out BUILD_DIR ?= ./build SRC_DIRS ?= ./src SRCS := $(shell find $(S

    C/C++中規模プロジェクトのための超シンプルなMakefile | POSTD
    kouba_c
    kouba_c 2016/11/19
  • 僕が形式手法を学び始めたときに読んだ10冊 - masateruk’s blog

    後輩に形式手法を学び始めたときに読んだを紹介すると約束したので、せっかくなのでブログに書くことにした。 形式手法を学び始めたのは2004年だから、今から始める場合はまた違ったラインナップになるだろうけど。 ※「2012年に形式手法を学び始めるならこの7冊 - masaterukの日記」を書きました。 1冊目。 プログラミングの科学 (情報処理シリーズ) 作者: D.グリース,筧捷彦出版社/メーカー: 培風館発売日: 1991/01メディア: 単行 クリック: 20回この商品を含むブログを見る出会いはこの。僕の人生を変えてしまっただ。このに出会ったときの衝撃は今でも覚えている。命題と述語からはじまり、ホーア論理、そしてプログラムの作り方が解説してある。「プログラムの作り方」を解説しているは少ない。Twitterでもつぶやいたけど、assertの使い方を教えてくれたのもこのだった

    僕が形式手法を学び始めたときに読んだ10冊 - masateruk’s blog
    kouba_c
    kouba_c 2016/10/26
  • オーディオアプリ開発でありがちな4つの間違い | POSTD

    ここで論じているのは、オーディオアプリの開発者が陥りがちな 4つの間違い 、 より良く開発する方法 、 問題個所の発見方法 です。主に開発者向けの内容ですが、開発者以外の方にも知っておいてもらいたいと思います。ここでは、開発者向けの診断ツールである Realtime Watchdog を紹介し、 人気のあるオーディオライブラリの調査結果 を提示します。 オーディオアプリの開発はとてつもなく楽しいです。やりがいを感じるし、創造力を発揮できる範囲が大きく広がり、ひとたび開発が終われば、 誰かがクリエイティブなツールとして使ってくれるのです! こんな分野は多くないし、この領域で働けるなんて非常に幸運だと自分でも思っています。 しかし、仕事でオーディオアプリを扱う時には深く考えなければならない部分もあります。オーディオアプリの開発者としてユーザに対する責任があるのです。大前提として、ユーザを公共の

    オーディオアプリ開発でありがちな4つの間違い | POSTD
    kouba_c
    kouba_c 2016/07/26
  • Packages

    clibs/buffer - tiny c-string library nami-doc/trim.c - trim a string, in place nami-doc/strlen.c - get a string's length jwerle/strsplit.h - Split a string into a char array by a given delimiter jwerle/chfreq.c - Compute character frequency in a string hkjels/slug.c - Create slug from a given string. stephenmathieson/case.c - string case conversion stephenmathieson/occurrences.c - Count occurrence

    Packages
    kouba_c
    kouba_c 2016/05/04
  • チケット管理のアンチパターンとベストプラクティス

    主語がでかいタイトルですが、自分なりに考えようという目的です。 自分の思考の整理。 何か意見があればガンガンコメントなりツイートなりして欲しい。 前提として、 チケット管理システムは2つぐらいしか使ったことがないので、そちらに偏ってしまうかも。 ちなみにRedmineとBacklog。 (今がRedmineだから多分それに偏る気が) アンチパターン アンチパターンというのかは分からないけど 今まで困ったこと、やりにくいと感じたこと、ダメだこりゃ、と思ったこと。 ・運用フローが複雑 フローが複雑だと途端に人は面倒になる。なるべく抜け道を探し秩序が乱れる。 抜け道が見つかると割れ窓理論とかいうやつで、どんどんぐちゃぐちゃになる。 誰もフローに乗ってくれない状態になる。 ・使われていない項目がある なぜあるのかわからない項目。重要そうだけど埋めなくても良い項目。 誰かが埋めてくれるだろう、他の人

    チケット管理のアンチパターンとベストプラクティス
    kouba_c
    kouba_c 2016/05/03
  • Web系の自分が想像と障害で学んだバッチ処理・設計の基本 - コンポツさん

    バッチ処理というのはそれ単体で勉強しようとするとなかなか何を勉強したらいいのかわからないことが多い。 特に経験がWeb系ばっかりだと、いざバッチ処理を実装しようとした時に基的なノウハウを知らないままに書いてしまうことが多い。 バッチ処理というのは実態を整理すると「何らかのトリガーを期に起動し、データをロード・加工・変換・集計してから、出力する」という事になる。 まぁ、INがあって処理してOUTがあるという点では関数だと考えてもいいだろう。 システムの利用者(人に限らない)のアクションとは直接関係ない処理であったり、利用者のアクションをトリガーとしていても、即時にレスポンスがいらないor返せない場合に バッチ処理を選択する事が多い。 実現方式はシェルスクリプト、LL言語、実行可能バイナリだったりするし、デーモンとして立ち上げる場合もある。 利用者の操作に対して対話的・同期的な処理はオンライ

    Web系の自分が想像と障害で学んだバッチ処理・設計の基本 - コンポツさん
    kouba_c
    kouba_c 2016/05/03
  • 「WebAPI 設計のベストプラクティス」に対する所感 - Qiita

    「翻訳: WebAPI 設計のベストプラクティス」を読んで色々と思うところがあったので書きました。 上記の記事は訳文でありますので、正しくは「Best Practices for Designing a Pragmatic RESTful API」に対する所感と述べた方が良いのかもしれませんが、日語で通して読めるよう Qiita に投稿された訳文に対する所感として書いています。 以下では「翻訳: WebAPI 設計のベストプラクティス」並びに「Best Practices for Designing a Pragmatic RESTful API」は「当該記事」と表現します。 観点 当該記事では「○○とした方がよい」との意見に対してそうすべき理由が明らかになっていないか、もしくは表現が曖昧な場合が目立っていると感じました。設計は実装のようにプログラム言語仕様が制約を与えられないため、意図

    「WebAPI 設計のベストプラクティス」に対する所感 - Qiita
    kouba_c
    kouba_c 2016/05/02
  • OutOfMemoryError の調べ方 - Qiita

    Java 8 で、 Oracle の JVM を前提とした話です。 Java のメモリ管理 これを知っておかないと、 OOME が起こっても、メモリ内で何が起こっていて、どこを調査すべきで、どのように対処したらいいのかが判断できない。 なので、まずは、そもそも Java がどうやってメモリを管理しているのかを知る。 しかし、実際調べてみたら予想通りというかなんというか、量が多くなってしまった。 なので、個々の用語の説明は末尾の 用語集 に押し込めたので、ここではざっくりとした概要だけ記載する。 メモリの構造 超ざっくりとした、メモリ構造を表した図。 おおきく、ヒープ(Heap)領域とネイティブ(Native)領域の2つの領域がある。 ヒープは Java プログラムが使う領域で、プログラム上で生成したオブジェクトは、このヒープ領域に配置される。 一方、ネイティブ領域は JVM が動くのに必要

    OutOfMemoryError の調べ方 - Qiita
    kouba_c
    kouba_c 2016/04/30
  • gdbを使ったrubyのデバッグ - クックパッド開発者ブログ

    技術部の国分 (@k0kubun) です。 先日byebugの高速化を行っていた最中、変更を加えたbyebugを使っていると一定の確率でrubyがSEGVするバグを発見しました。 私はC言語のコードのデバッグの経験はなかったのですが、デバッガの使い方を調べながらSEGVの原因調査を行いパッチを送ったところ無事取り込まれ、最新の高速なbyebugが安全に使えるようになりました。 その際、ruby自体をデバッグするために必要な情報が分散していて大変だったので、まだrubyのデバッグをしたことがないけれどやってみたいという人を対象に、gdbというデバッガを使ったrubyのデバッグの方法を紹介します。 デバッグ用にrubyをビルドする デバッグ時に変数名やソースコードなどの情報を見るためには、最適化オプションをオフにしてデバッグ用にrubyをビルドしておく必要があります。 rubyのデバッグ用ビル

    kouba_c
    kouba_c 2016/02/12
  • 30日でできない 自作Linuxクローン開発 - るくすの日記 ~ Out_Of_Range ~

    この記事は 自作OS Advent Calendar 2014 - Adventar 12/25の記事です。 一ヶ月程前からLinuxカーネルのコードを読み始めたので、解読ついでに自分でもカーネルを作ってみました。 とはいっても、まだ半分も完成してないです() 当初は、30日でできる 自作Linuxクローン開発 を予定していたのですが、 予想以上の規模で、解読とフルスクラッチ開発を併行するのは結構大変でした... という訳で、現在実装できている所まで紹介します。 開発レポジトリはこちらです。 RKX1209/Abyon · GitHub (インストール方法や実行方法はここに書いてます) 実装した機能 プロセススケジューラー Runキュー ハードウェア割り込み(PIC 8259A) 遅延割り込み Tasklet グローバルタイマー(PIT) タイマーリスト 仮想ページング(IA-32 MMU

    30日でできない 自作Linuxクローン開発 - るくすの日記 ~ Out_Of_Range ~
    kouba_c
    kouba_c 2016/02/12
  • Linux Kernel Hack入門編 - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ

    この記事はLinux Advent Calendar 2014の25日目ですヽ(=´▽`=)ノ 今回はLinux Kernel Hack入門編ということで入門的なことを書いてみたいと思います。 まず使用する環境ですけど最近出たばっかのFedora 21のWorkstationにしました。まあ、今回の内容的にはディストリビューションは問わないんですが、多くの人が馴染んでいるであろうfedora系というかパッケージマネージャがyumということでこれにしてみました。 自分は普段Arch Linuxなんですけど、こっちだとkernelのmake install時にちょっとしたスクリプトを書く必要があったりするのもあって、fedoraのほうが手軽かなというのもあります。 カーネルコード・リーディング ブラウザベースでコード・リーディング 読めるソースは大概メインラインのカーネルということになりますが

    Linux Kernel Hack入門編 - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
    kouba_c
    kouba_c 2016/02/12
  • 強くなるためのプログラミング -様々なプログラミングコンテストとそのはじめ方- - ぴよぴよ.py

    みなさんは何のためにプログラミングをしていますか? 仕事のため、何かをつくるため。 それも良いけれど、「強くなる」ためにプログラミングしてみませんか。 様々なジャンルのプログラミングコンテストとまだ見ぬライバルたちがあなたを待っています。 今回はアルゴリズム/AI/機械学習/セキュリティ等の様々なジャンルのコンテストとその始め方について紹介したいと思います。 ※これはPyConJPでの発表を文字におこしたものです。が、Pythonの話は殆どないです。 プログラミングコンテストとは? すべてのコンテストに共通する、「コンテストに参加する利点」 1. 自分と同じ問題を解いた、他の人の解法を知ることができる 2. 同じコンテストに出ていた、たくさんのライバルと知り合える アルゴリズムのコンテスト 問題1 問題2 TopCoder Single Round Match CodeForces AtC

    強くなるためのプログラミング -様々なプログラミングコンテストとそのはじめ方- - ぴよぴよ.py
    kouba_c
    kouba_c 2016/02/12
  • C言語パズル集:Cにまつわる興味深い問題あれこれ | POSTD

    ビジターの皆さんへ C言語に関心を寄せていただきありがとうございます。このページは、C言語の面白い問題、パズルのリストです。これまでに友人たちからeメールで送ってもらったり、で読んだり、インターネットで見つけたり、あるいは自分でC言語でコーディングしていて気づいたりしたプログラムを集めました。 多くのプログラムは、コンパイル、実行され、その振る舞いを示すものです。問題は大まかに次のカテゴリに分けられます。 一般的なタイポエラー。C言語プログラマが頻繁に犯すミスであり、かつ追跡が困難。 初見では非常に理解しがたい小さなプログラム。これらの問題は、他人が書いた優れたコードを読み解く良い訓練になります。 また、全てにGnu/Linux/gccを使っています。掲載順は、それぞれの難易度とは関係ありません。問題解決の助けが必要な場合は、気軽に私に問い合わせてください。連絡先は こちら です。また、

    C言語パズル集:Cにまつわる興味深い問題あれこれ | POSTD
    kouba_c
    kouba_c 2016/02/12
  • Vim Mnemonic | Vim のコマンドの覚え方大全 - haya14busa

    この記事は Vim Advent Calendar 2015 の21日目の記事です. もくてき 記事では Vim のコマンドの”覚え方”を紹介します. 基的にはトリッキーな”覚え方”ではなく由来の紹介となります. 例えば J で行連結は Join が元だとか, gfが”goto file”の略だといったことを 知っておくとなにかと憶えやすいと思います. 対象読者 主にこれから Vim を使ってみよう! でもなかなかコマンドを覚えられないっ! という Vim 初心者の方に由来を知ることで少しでも コマンドを憶えやすいようにすることが目的です. 初心者を想定しているのでコマンドの動作などもなるべく紹介していきます. 中・上級者の方には普段何気なく使ってたあのコマンドの由来を知って「フハハハハ」と ほくそ笑んでもらえるような記事になれば嬉しいです. 注意 注意点として公式のものから公式っぽい

    Vim Mnemonic | Vim のコマンドの覚え方大全 - haya14busa
    kouba_c
    kouba_c 2016/02/12
  • Wikipedia からスクレイピングして… とか言ってる人におすすめしたい,DBPedia からの情報抽出 - Qiita

    Wikipedia からスクレイピングして… とか言ってる人におすすめしたい,DBPedia からの情報抽出rdfスクレイピングWikipediaSPARQLdbpedia みなさん DBPedia をご存知でしょうか.DBPedia とは,Wikipedia から構造化データ (RDF) として情報を抽出するものです.DBPedia では Linked Data として情報が体系化されているので,Wikipedia 内の必要な情報を,非常に簡単に抽出することができます. 「◯◯ の情報を Wikipedia からスクレイピングして取ってきて…」みたいな話をよく耳にし,そんなのスクレイピングしなくても DBPedia 使えば一瞬なのに… と感じることが最近多々あるので,DBPedia の普及もかねて簡単にまとめてみることにしました.DBPedia なんて初めて聞いたという方は,ぜひチェック

    Wikipedia からスクレイピングして… とか言ってる人におすすめしたい,DBPedia からの情報抽出 - Qiita
    kouba_c
    kouba_c 2016/02/12
    “select distinct ?name ?abstract where { ?company <http://dbpedia.org/ontology/wikiPageWikiLink> <http://ja.dbpedia.org/resource/Category:東証一部上場企業> . ?company rdfs:label ?name . ?company <http://dbpedia.org/ontology/abstract> ?abstract . }”
  • .NETの例外処理 Part.1 - とあるコンサルタントのつぶやき - Site Home - MSDN Blogs

    Archived MSDN and TechNet Blogs 2/7/2020 2 minutes to read MSDN and TechNet blog sites have been retired, and blog content has been migrated and archived here. Archived blogs are grouped alphabetically by the initial letter of the blog name. Blogs and blog posts can be searched by their names, using the Search box at the top of the page. Actively updated blogs have been moved to other blog sites,

    .NETの例外処理 Part.1 - とあるコンサルタントのつぶやき - Site Home - MSDN Blogs
    kouba_c
    kouba_c 2016/02/12
  • Ruby のオススメの機能7選 - Qiita

    この記事は Ruby Advent Calendar 2015 の 8日目です。 比較的あまり知られていないと思うオススメの Ruby の機能を 7つ紹介します。 Enumerator.new Enumerator.new は知ってはいても、あまり使わない人が多いように思います。 私は非常によく使います。 理由は スコープを新たに導入したい Producer-Consumer パターン。値の生成と消費でフェーズの違いを明確化したい。 そのメソッド内で1度使いたいだけなのに yield するメソッドを別に作るのはちょっと気が引ける。名前空間を汚したくない。 全部、一度配列にしちゃうとメモリが気になる。メモリ消費を節約したい。 ネストを浅くしたい Enumerable モジュールの機能が欲しい といったところです。 たとえば下記のようなかんじで使います。 # Producer フェーズ use

    Ruby のオススメの機能7選 - Qiita
    kouba_c
    kouba_c 2016/02/12
  • zsh のあまり知られていなそうな機能 - Qiita

    自分が使っている便利な機能を紹介 $ rm */(-@) ファイル修飾子は使っている人も多いはず。 zsh で find を使わずに簡単にファイルを絞り込む *(@) でシンボリックリンク *(-@) でリンクが切れたシンボリックリンク rm **/*(-@) で下位階層含めたリンク切れのシンボリックリンクの削除 修飾子で他に便利なのは *(-ch-1) シンボリックリンクのリンク先が1時間以内に作られたファイル *(U) 自分のファイル *(u:hoge:) ユーザ hoge のファイル *(/^F) 空のディレクトリ $ tkdiff =(zcat xxx.gz | cut -f 1) =(zcat xxx.gz | cut -f 2) プロセス置換 <(zcat xxxx.gz | grep yyyy | cut -f 2 ) みたいな形でわざわざ一時ファイルにしなくても、ファイル指

    zsh のあまり知られていなそうな機能 - Qiita
    kouba_c
    kouba_c 2016/02/11