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

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

node.js の (泥臭い) デバッグ方法 - ログ編 -

github.com 今回、 Let’s Chat のリバースプロキシプラグインを自動ログインに対応させたところ、XMPP のログインで例外が出るようになってしまったので、泥臭くデバッグしました。 そこで、 console.log でオブジェクトを出力すると [object object] としか…

luajit に入門してみた

ことの始まり 仕事で Lua を使うことになりそう (というか、使う方向に持って行こうとしている) ので、 LuaJIT の使い勝手を事前に確認してみた。 C との IF が多くあるっぽいので、個別に binding を実装するととんでもないことになりそうなので、 LuaJIT …

Bitbucket のプルリクエストの差分を patch 形式で取得する

忘れそうなので備忘録として。 Github では、プルリクエストから patch 形式でダウンロードするのは単純に URL の最後に .patch をつければ良いけど、 Bitbucket では単純に同じことはできなかったので調べると、 API を叩けばできることがわかった。 https:…

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+ですら、買ったまま…