明日にはでっかい太陽が昇るかもしれません。

「覚悟」とは!! 暗闇の荒野に!!進むべき道を切り開く事だッ!

binutils がクロスコンパイルできない→とりあえずバックトレースにコードの行数を出せるようになりました

先日組んだバックトレースのコードを拡張して、ソースコードの行数を表示するために libbfd を組み込もうとした話。 #!/bin/bash export PATH=/path/to/buildroot/output/host/usr/bin:$PATH ./configure \ --build=$MACHTYPE \ --host=arm-buildroot-linux-…

Google 製の新しい圧縮アルゴリズム「 Brotli 」を使ってみた

googledevjp.blogspot.jp qiita.com 最近は、組み込みでもCPU性能が上がっているため圧縮の要件も増えてきました。 zlibの組み込みがメインですが、他の圧縮方式も検討に加えられるか組み込みの観点で確認してみました。(圧縮率・時間の比較は他の記事に任…

バックトレース in ARM(Qemu)

以前、挫折していた Linux 環境での C のバックトレース出力について、改めてトライしてみました。 ちなみに、ホスト環境(x86)ではそのものの backtrace() や backtrace_symbols() といったAPIが利用できるけど、 buildroot で構築したクロスビルド環境に…

競技プログラミングはじめました

年末だけど、なにかあたらしいことを始めたいなぁとおもったので、以前から興味があった競技プログラムを始めてみました。 AtCoder (アットコーダー) 多くの競技プログラムサイトは英語圏のものなのですが、上記のAtCoderは完全日本語なので、「問題文が読め…

最近の興味事情

暗号化と圧縮に興味が出てきた。(実装を理解するという意味で) 組み込みでもCPU性能やセキュリティ要件が以前より増えてきたので、この辺りの技術は抑えておきたいところ。 そのまえに、アルゴリズム全般について考え方の勉強を始めたほうが良いかな?

Qemu を使いこなすために

組み込みを仕事にしているため、よく機材不足や新規基盤の開発遅れなどのトラブルが起きます。 そこで、Qemu を活用できればと思っていたところに良い記事が見つかったので写経してみました。 qiita.com ところが、ドライバの作成でコンパイルエラーが発生!…

ビルド環境の構築を行う

どんなツールを使うのか メインで利用するのは C 言語になるので、C 言語界隈の気になるツールを片っ端から導入し試してみる。 私は組み込み開発従事者なので、どうしてもGUIやIDEなどの派手なツールの利用は機会がありません。(大抵のプロジェクトで利用で…

ドキュメント系ツールを一斉に導入してみる

気になるところ ドキュメント系ツールについては、どの程度業務でも活用できそうなのか記になるので、早速環境を作成してみる。 pandoc のインストール pandoc は Haskell という(私には)あまり馴染みが無い言語で作成されているので、まずは Haskell の実…

とりあえずコンテナ作ってみる

試行錯誤のための環境づくり まだ、 Docker には十分慣れていないので(そして、以前試した時よりだいぶバージョンが上がっているので)、試行錯誤用のコンテナを作成する。 このコンテナでインストール手順の確率や、破壊的な変更などを試してみる。 Docker…

Ubuntu 14.04.3 の環境準備を行う

Ubuntu のインストール Docker もインストールするつもりなので、 64bit 版であることは必須。 更に、GUIは要らないので、軽量化を重視して Server エディションをインストールしました。 とりあえず、言語は日本語で。(コンソールの表示は文字化けするけど…

ぼくのかんがえたさいきょうかいはつかんきょう

どういうこと? 期待する環境 MUST SHOULD MAYBE インストールしたいツール どういうこと? VMWare Player が 5.0 になったときに、ライセンスの解釈が変わったとかどうとかで、仕事の開発環境として VMWare Player が利用できなくなったとかいう話がありま…

いまさらUML勉強中

UML

部屋の本棚に技術書が収まらなくなってきたので、手放す本を検討中。 とりあえず、10年もののUMLの学習書を手放そうと思ったけど、よくよく考えたらほとんど読んでいないことに気付く(笑) UMLの思想は別に嫌いじゃないし、今ならきちんと活用できそうな気…

プロのプログラマとは?

プロのプログラマとは? - プログラマが知るべき97のこと リンクにあるエッセイの中では、著者の「プロのプログラマとは?」という問いの答えが書かれているが、かなり同意。 とくに、「キャリアに責任を持つ」という内容では、自分の成長は自分で責任を持つ…

clang de coverage!

llvmでのカバレッジ計測ができない。。。 *.gcda と *.gcno の作成まではできてるんだけど、 gcovr で生成しても空になるし、 llvm-cov は使い方が何やら合ってない様子。。。 というより、 llvm-cov の情報少なすぎ!! もう少し調べるけど、もしかして llv…

clang でカバレッジ計測

clang+llvm と CppUTest を使って、組み込み向けのUT環境をつくろうとしているが、カバレッジ計測を行う場合は、CppUTestも clang+llvm でコンパイルしておかないと、リンクできなくなる!? CppUTest → gcov をリンクしようとする テストコード → clang_rt.…

cmake 使ってみた

しばらくおいたままになっていたけど、 cmake を使ってみました。 とりあえず、プロジェクト構成は以下のようにしました。 cmake_sample/ + product/ | + main.c | + CMakeLists.txt + test/ | + main1_test.cpp | + main2_test.cpp | + CMakeLists.txt + CM…

プログラマが知るべき97のこと > 見られて恥ずかしいデータは使わないこと

見られて恥ずかしいデータは使わないこと - プログラマが知るべき97のこと では、一時的と思って適当な(社会的には不適当な)データを成果物に埋め込んじゃうことが書かれています。 ここまで大事になったことは無いけど、一時的と思ってたコードが残ったま…

RasPi2は2017年じゃなかったのかよ!?

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で作成して人の目でチェックして、「です、ます。と だ…

clang+llvm のインストール

必要なパッケージのインストール build-essential 等の基本的なパッケージはインストール済みとします。 apt-get install -y libpython2.7 libpython2.7-dev swig libedit2 libedit-dev libncurses5-dev libxml2-dev インストールしたのは以下のパッケージで…

cmakeのインストール

すごく便利との評判はあるが、使い方がよくわからない cmake について、とりあえずインストールをしてみます。 まず、日々更新されているため、できるだけ新しい機能を使いたいので、パッケージではなく、公式から直接導入します。 curl -R -O http://www.cm…

映画:グラン・トリノ

戦争を生き抜いた頑固親父が 人生の終わりを悟ったときに 新しく若い友のために命を使うと決めた そんな話でした。

コードの品質を自動的に評価するために 続編1

コードの品質を自動的に評価するために - 明日にはでっかい太陽が昇るかもしれません。 を書いてから、見つけた試してみたいツールをメモしておく。 terryyin/lizard · GitHub lizard というPythonで組まれた複雑度計測ツールらしい。 個人開発だが、比較的…

コードの品質を自動的に評価するために

コーディングにおける、現場の課題としては、おそらくここ数十年変わっていないと思うのですが、コードの品質をどのように担保するのかということになると思っています。 ここでいうコードの品質とは、動作上の確かさではなく、コード自体の保守性などのこと…

プログラマが知るべき97のこと

O'Reilly の書籍で、 O'Reilly Japan - プログラマが知るべき97のこと というものがあり、職業柄読んでみたかったのですが、知らないうちにWebでみられるようになっているらしい。 公式ではないようだけど、各エッセイがCCライセンスだったため、公開しても…

vim の初期設定

毎回調べるので、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 のビルド

クロスコンパイルも見越して、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 コマンドの使い方から復習する。 コンテナの作成 docker build --no-cache --rm -t kenz_san/<コンテナ名> <Dockerfileがあるディレクトリ> コンテナの起</dockerfileがあるディレクトリ>…

今年の目標、、、を達成するために

何処かで読んだ記事に、 目標を達成するためには、「日々目標を"意識する"こと」と「"意識する"ことを忘れないこと」が大切 というような感じのことが書いてあった。 いつも、後者がネックになっているので、今年こそは何とかしないと。

Linux on the T100TA

今年は、ゆるくもしっかりとブログの更新を継続したいと思います。 それはそうと 去年の12月から、取り組んでいるプロジェクトがあって、それは、 Linuxが動作するモバイルPCを作成する!! ということ。 とりあえず、ハードの方はいろいろ迷った結果、ASUS…