2015-01-01から1年間の記事一覧
どういうこと? 仕事では受託開発をしており、プロジェクトにより開発環境が変わるのでポータブルなツールを利用することを心がけています。 最近は作業の管理に Issue Tracking System を利用しているのだが、(客先でのセキュリティポリシーなどの話もあり…
先日組んだバックトレースのコードを拡張して、ソースコードの行数を表示するために libbfd を組み込もうとした話。 #!/bin/bash export PATH=/path/to/buildroot/output/host/usr/bin:$PATH ./configure \ --build=$MACHTYPE \ --host=arm-buildroot-linux-…
googledevjp.blogspot.jp qiita.com 最近は、組み込みでもCPU性能が上がっているため圧縮の要件も増えてきました。 zlibの組み込みがメインですが、他の圧縮方式も検討に加えられるか組み込みの観点で確認してみました。(圧縮率・時間の比較は他の記事に任…
以前、挫折していた Linux 環境での C のバックトレース出力について、改めてトライしてみました。 ちなみに、ホスト環境(x86)ではそのものの backtrace() や backtrace_symbols() といったAPIが利用できるけど、 buildroot で構築したクロスビルド環境に…
年末だけど、なにかあたらしいことを始めたいなぁとおもったので、以前から興味があった競技プログラムを始めてみました。 AtCoder (アットコーダー) 多くの競技プログラムサイトは英語圏のものなのですが、上記のAtCoderは完全日本語なので、「問題文が読め…
暗号化と圧縮に興味が出てきた。(実装を理解するという意味で) 組み込みでもCPU性能やセキュリティ要件が以前より増えてきたので、この辺りの技術は抑えておきたいところ。 そのまえに、アルゴリズム全般について考え方の勉強を始めたほうが良いかな?
組み込みを仕事にしているため、よく機材不足や新規基盤の開発遅れなどのトラブルが起きます。 そこで、Qemu を活用できればと思っていたところに良い記事が見つかったので写経してみました。 qiita.com ところが、ドライバの作成でコンパイルエラーが発生!…
どんなツールを使うのか メインで利用するのは C 言語になるので、C 言語界隈の気になるツールを片っ端から導入し試してみる。 私は組み込み開発従事者なので、どうしてもGUIやIDEなどの派手なツールの利用は機会がありません。(大抵のプロジェクトで利用で…
気になるところ ドキュメント系ツールについては、どの程度業務でも活用できそうなのか記になるので、早速環境を作成してみる。 pandoc のインストール pandoc は Haskell という(私には)あまり馴染みが無い言語で作成されているので、まずは Haskell の実…
試行錯誤のための環境づくり まだ、 Docker には十分慣れていないので(そして、以前試した時よりだいぶバージョンが上がっているので)、試行錯誤用のコンテナを作成する。 このコンテナでインストール手順の確率や、破壊的な変更などを試してみる。 Docker…
Ubuntu のインストール Docker もインストールするつもりなので、 64bit 版であることは必須。 更に、GUIは要らないので、軽量化を重視して Server エディションをインストールしました。 とりあえず、言語は日本語で。(コンソールの表示は文字化けするけど…
どういうこと? 期待する環境 MUST SHOULD MAYBE インストールしたいツール どういうこと? VMWare Player が 5.0 になったときに、ライセンスの解釈が変わったとかどうとかで、仕事の開発環境として VMWare Player が利用できなくなったとかいう話がありま…
部屋の本棚に技術書が収まらなくなってきたので、手放す本を検討中。 とりあえず、10年もののUMLの学習書を手放そうと思ったけど、よくよく考えたらほとんど読んでいないことに気付く(笑) UMLの思想は別に嫌いじゃないし、今ならきちんと活用できそうな気…
プロのプログラマとは? - プログラマが知るべき97のこと リンクにあるエッセイの中では、著者の「プロのプログラマとは?」という問いの答えが書かれているが、かなり同意。 とくに、「キャリアに責任を持つ」という内容では、自分の成長は自分で責任を持つ…
llvmでのカバレッジ計測ができない。。。 *.gcda と *.gcno の作成まではできてるんだけど、 gcovr で生成しても空になるし、 llvm-cov は使い方が何やら合ってない様子。。。 というより、 llvm-cov の情報少なすぎ!! もう少し調べるけど、もしかして llv…
clang+llvm と CppUTest を使って、組み込み向けのUT環境をつくろうとしているが、カバレッジ計測を行う場合は、CppUTestも clang+llvm でコンパイルしておかないと、リンクできなくなる!? CppUTest → gcov をリンクしようとする テストコード → clang_rt.…
しばらくおいたままになっていたけど、 cmake を使ってみました。 とりあえず、プロジェクト構成は以下のようにしました。 cmake_sample/ + product/ | + main.c | + CMakeLists.txt + test/ | + main1_test.cpp | + main2_test.cpp | + CMakeLists.txt + CM…
見られて恥ずかしいデータは使わないこと - プログラマが知るべき97のこと では、一時的と思って適当な(社会的には不適当な)データを成果物に埋め込んじゃうことが書かれています。 ここまで大事になったことは無いけど、一時的と思ってたコードが残ったま…
Raspberry Pi 2 Model B発売。4コア化&1GB RAMでWindows 10も対応、6倍高速 - Engadget Japanese Raspberry Pi 2 Model B発売。4コア化&1GB RAMでWindows 10も対応、6倍高速 - Engadget Japanese なにこれ!?ほしい。 でも、まだRasPi B+ですら、買ったまま…
コードの管理については、コンパイル時チェックや静的解析で自動的に間違いを指摘する構造がある程度と整っているが、仕事でコードを作成する前には必ず行われる設計書などの文章については、未だにWordで作成して人の目でチェックして、「です、ます。と だ…
必要なパッケージのインストール build-essential 等の基本的なパッケージはインストール済みとします。 apt-get install -y libpython2.7 libpython2.7-dev swig libedit2 libedit-dev libncurses5-dev libxml2-dev インストールしたのは以下のパッケージで…
すごく便利との評判はあるが、使い方がよくわからない cmake について、とりあえずインストールをしてみます。 まず、日々更新されているため、できるだけ新しい機能を使いたいので、パッケージではなく、公式から直接導入します。 curl -R -O http://www.cm…
戦争を生き抜いた頑固親父が 人生の終わりを悟ったときに 新しく若い友のために命を使うと決めた そんな話でした。
コードの品質を自動的に評価するために - 明日にはでっかい太陽が昇るかもしれません。 を書いてから、見つけた試してみたいツールをメモしておく。 terryyin/lizard · GitHub lizard というPythonで組まれた複雑度計測ツールらしい。 個人開発だが、比較的…
コーディングにおける、現場の課題としては、おそらくここ数十年変わっていないと思うのですが、コードの品質をどのように担保するのかということになると思っています。 ここでいうコードの品質とは、動作上の確かさではなく、コード自体の保守性などのこと…
O'Reilly の書籍で、 O'Reilly Japan - プログラマが知るべき97のこと というものがあり、職業柄読んでみたかったのですが、知らないうちにWebでみられるようになっているらしい。 公式ではないようだけど、各エッセイがCCライセンスだったため、公開しても…
毎回調べるので、vim の初期設定についてのメモを残しておく。 NeoBundle のダウンロード mkdir -p ~/.vim/bundle git clone git://github.com/Shougo/neobundle.vim ~/.vim/bundle/neobundle.vim NeoBundle のインストール vim ~/.vimrc set nocompatible f…
クロスコンパイルも見越して、Luaのコンパイル環境を構築してみます。 コンソール入力ライブラリの導入 ncursesライブラリの導入 curl -R -O http://ftp.gnu.org/pub/gnu/ncurses/ncurses-5.9.tar.gz tar zxvf ncurses-5.9.tar.gz cd ncurses-5.9 LDFLAGS='-…
ここ半年は仕事がブラックすぎてプライベートプロジェクトが全然できていなかったので、そろそろ再開の準備をする。 まずは、 docker コマンドの使い方から復習する。 コンテナの作成 docker build --no-cache --rm -t kenz_san/<コンテナ名> <Dockerfileがあるディレクトリ> コンテナの起</dockerfileがあるディレクトリ>…
何処かで読んだ記事に、 目標を達成するためには、「日々目標を"意識する"こと」と「"意識する"ことを忘れないこと」が大切 というような感じのことが書いてあった。 いつも、後者がネックになっているので、今年こそは何とかしないと。