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

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

Kallithea の DB を SQLite から PostgreSQL に移行する戦い

仕事で Kallithea を使用しているのだけれど、標準の SQLite にはプロジェクトの規模が大きすぎるのか、 python がお亡くなりになる現象が多発している。 (Windows 上で動作させていることも原因かも。。) そのため、公式の情報に従い、 SQLite から Postgre…

Hubot から ErrBot に乗り換えたい

Node.js および Coffee Script に関して、あまり詳しくないため、 Hubot では実現したい機能をどのように実装すればよいかわからないことが多い。 そのため Node.js よりは使い慣れている Python で実装されたチャットボットである ErrBot への乗り換えを検…

Trac に JSON-RPC の機能を追加して、curl でチケットを作成してみた

今の仕事では、客先は Redmine を使用している。 だが、客先の Redmine には社内事情をかけないため、必然的に社内的な作業を管理する ITS が必要となるのだが、個人的な事情 (Ruby ×、Python ○ なので) により Trac を使用している。 ちょっとした事情から…

サーバアプリのアップデートに、えらい手間取っている話

会社のサーバ PC が近々新しくなるので、手元環境で開発に導入しているアプリをアップデートの予行演習をしようとしたら、めちゃくちゃ手間取っている。 全然進んでいないけど、本番環境のアップデートの際の備忘録として残しておく。 Let’s Chat の更新 更…

Yahoo が継続的デリバリーシステムの ScrewDriver を OSS として公開した

github.com 米 Yahoo が作成した継続的デリバリーシステムの ScrewDriver を OSS として公開したらしい。 継続的デリバリーと継続的インテグレーションの厳密なカバー範囲はよくわかっていないけど、今プロジェクトで使用している Jenkins を置き換えること…

Linux Mint 17.3 (or Ubuntu 14.04) で輝度を安定して調整する方法

作業用 PC の TOSHIBA R731/37C を Linux Mint 17.3 に入れ替えたのですが、スリープ後にキーボードからの輝度調整ができないという問題が発生していました。 いろいろ調べたところ、既知の問題として存在しているようですが、何故かメインストリームにはマ…

Windows で Ext2 を認識させる

Ext2 IFS For Windows とりあえず、メモだけ。 今度使ってみよう。

Chat Ops はじめました?

github.com 昨年末から、担当するプロジェクトが変わり、新たにチームを編成することになったので、今度の開発環境では、ぜひともメールをチャットに置き換えたいと思い、 Let's Chat を社内の開発サーバに導入してみています。 別に Chat Ops にするつもり…

cherrypy に trac を載せた話

どういうこと? 仕事では受託開発をしており、プロジェクトにより開発環境が変わるのでポータブルなツールを利用することを心がけています。 最近は作業の管理に Issue Tracking System を利用しているのだが、(客先でのセキュリティポリシーなどの話もあり…

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…

Ubuntu 14.04 64bit で 32bit アプリを動作させる方法

最近は Docker にもハマッているので、サーバ構築はもっぱら Ubuntu 14.04 64bit なのですが、クロスコンパイル環境などで提供されている32bitアプリが動作させるのに苦労したためメモします。 以前のバージョンでは、 ia32-libs パッケージをインストールす…

更に便利になった Docker 1.3

Docker 1.3: signed images, process injection, security options, Mac shared directories | Docker Blog 以前、Docker用に利用していたVMが壊れたので、新しくDocker用のVMを作成していると、Dockerが1.3にバージョンアップしていたことに気づく。 公式ブ…

sphinx での pdf 作成でエラーが発生する

sphinx というツールで rst 表記のマニュアルなんかを PDF 化しようと、試行錯誤を繰り返しているけど、なかなかうまく動かない。。。 sphinx も最新版(1.2.3)だし、texlive も2014だから、特別パッチとかはあてなくても良いはずだけど。。。 文字コード関…

docker に texlive が入らない!!

ネットワークインストールも、ISOインストールも試してるけど、 docker コンテナに TexLive2014 をインストールしようとすると、 Welcome to TeX Live! Logfile: /usr/local/texlive/2014/install-tl.log のログが出たところ(インストール完了)で止まって…

Ubuntuのaptリポジトリを日本サーバに切り替える

最近、Docker で開発環境を作成することに挑戦しているため、かなり高頻度で apt-get update & apt-get upgrade を行っています。 そのため、aptリポジトリがusのままでは、更新&取得待ち時間がかなり長かったため、日本のサーバに切り替えることにしまし…

Docker コンテナに SSH サーバを立てるのをやめた話

今まではコンソールを使用したい場合に SSH サーバを supervisord で起動したりするのですが、そうするとコンテナの数だけ SSH サーバを起動することになり、リソースが非常にもったいないです。(一番はポートの管理がめんどい) そこで、 Docker ホスト上…

VMWare Player 6.0.3 で仮想マシンにネットワーク接続ができなくなった!

表題の通りの現象が発生しました。 最近 VMWare Player を 6.0.3 に更新したのですが、当日はネットワークがつながっていたものの、今日起動するとネットが接続できず。。。 仮想マシンの方のアドレスはあってるのにな~、、、と思って調べていたら、ホスト…

Raspberry Pi のカーネル更新。そして、、、

なんか、マージが変になった(TT) git fetch origin git merge origin/rpi-3.16.y としたのにログには、 Merge remote-tracking branch 'origin/rpi-4.16.y' into rpi-3.16.y どうしてこうなった(大汗) rpi-4.16.y なんてどこにも書いてないよ! そして、…

Raspberry Pi のその後

余っていたUSBディスプレイを接続できるように試行錯誤していたのだけれど、どうやらFreamBufferが正常にクリア出来ていないらしく(黒が描かれる部分に以前の画が残る)、まだ使い物にならない感じ。 カーネルは、最新の3.16.xを利用していたため、公式の最…

Docker の現在

ぼちぼちな勉強 最近は、trac や kallithea のコンテナを作成してみたり、開発環境を作成してみたりしているけど、いろいろ試しすぎてVMがディスクフルになってしまったため、整理するための情報を探してみた。 答えは 【個人メモ】マシン上のdocker imageを…

Docker の勉強

インストールしてみる Dockerは公式には64bit版しかサポートしていないため、Docker用にUbuntu 14.04 64bitのVMイメージを作成します。 インストール手順は、公式の通りにやってみる。 $ sudo apt-get install docker.io $ sudo ln -sf /usr/bin/docker.io /…