ページ

2021年2月4日木曜日

マルチスレッドなプログラムをgdbでデバッグする

たまにはエンジニアらしくソフトウェアのお話を.

マルチスレッドなプログラムを書くとき, 常に念頭に置きながら設計しなければならないのが排他制御だが,そんなとき,どの処理がどのスレッドで実施されているか表示できることは非常に有効なテクニックだ.

そこで次のようなコードで実験する.

<サンプルコード:test.cpp>
test.cpp
--------------------------------------------------------------------------------
#include <iostream>
#include <thread>
#include <unistd.h>

void a( void )
{
  for( int i = 0; i < 30; i++ )
  {
    std::cout << "i : " << i << std::endl;
    sleep( 1 );
  }
}

void b( void )
{
  for( int j = 0; j < 10; j++ )
  {
    std::cout << "j : " << j << std::endl;
    sleep( 3 );
  }
}

int main( void )
{
  std::thread * _a = new std::thread( a );
  std::thread * _b = new std::thread( b );
  _a->join();
  _b->join();
  return 0;
}

※本来は,coutする前後でmutexを貼る必要があるが,今回は可読性重視で割愛する.

これをコンパイルして,gdbで実行する
 $ g++ -g -pthread test.cpp -o test
 $ gdb ./test

2021年1月17日日曜日

理想の手帳が無かったので自作してみた.一冊から製本できるオンデマンド印刷サービス"製本直送.com"が便利.

年が明けてから2週間以上も過ぎてしまいましたが,ようやく今年の手帳が届きました.


ここ数年は取引先の会社から頂いた手帳を使わせてもらっていましたが,いつまでも同じ会社と取引が続くとも限らないし,他社のロゴが入った手帳を持ち歩くのもなんだか虚しい...そこで昨年の12月,「来年はちゃんと自分で買った手帳を使おう」と,本屋の手帳コーナーで色々と手にとってみたのですが,理想の手帳は見つかりませんでした.

2021年1月13日水曜日

svnsync で定期的にSubversion のバックアップを取得する

これまでSubversion については,何度か取り上げてきたが,

WM×LI: Raspberyy Pi を Subversion のリポジトリサーバにして,systemd で自動起動するように設定する.
WM×LI: 【svnadmin dump】Subversionのリポジトリを別のサーバーに移行する.
WM×LI: Subversionで直前のコミットを取り消す.

今回はsvnsync コマンドを使用して,リモートで定期的にSubversion をバックアップを取るお話.

先日,WebArena IndigoでレンタルしているVPSをアップデート(apt upgrade)していたら,途中で突然停止し,その後アクセス不可,再起動不能になり,Subversionのリポジトリデータが全部吹っ飛んだので,やり方を調べた.

2020年12月13日日曜日

HHKB ミートアップVol.4 に参加してきた

もはや恒例行事となりつつあるHHKBミートアップVol.4 に参加してきました.

過去のイベントの記事はコチラ→WM×LI: HHKB 20周年記念ユーザーミートアップ に参加してきた

2020年12月12日土曜日

Chromebook のタブレットモード解除法

結論から先に述べると,ずばり,Bluetoothのマウスを接続することです.
タブレットモードが嫌いな人は試してみると幸せになれるかもしれません.

ただし,Lenovo Ideapad Duetでのみ動作確認しているため,他機種の場合はこの限りではないかもしれません.


さて,ここからタブレットモードのお話.
モバイルPCとして非常に優秀なChromebook.私も愛用していますが,ひとつ気になる点を挙げるとすれば,それは

タブレットモード


です.

キーボード着脱式のChromebookであれば,キーボードを外したとき.
360度回転式のChromebookであれば,ある角度以上に本体を開いたとき.

通常のPCモードからタブレットモードに強制的に 移行してしまいます.

【Youtube動画ダウンロード】 youtube-dlでエラーが発生したら最新のツールに置き換えよう

動画をダウンロードしようとして久しぶりにコマンド叩いたら,以下のようなエラーが発生してダウンロードに失敗した.
 $ youtube-dl https://www.youtube.com/watch?v=HogeHoge
 [youtube] HogeHoge: Downloading webpage
 [youtube] HogeHoge: Downloading video info webpage
 ERROR: HogeHoge: YouTube said: Invalid parameters.
(動画のIDはHogeHogeに変更しています)

ツールが最新ではない場合,上記のようなエラーが発生することがあるようだ.

2020年12月6日日曜日

Xiaomi製モニターライトが素晴らしい.マルチディスプレイ環境の人にこそお勧めしたい.【Xiaomi Mijia Monitor Hanging Light】

皆さんは「デスクライト」と聞いたときどんなものを想像するでしょうか?恐らく↓のようなイメージですよね?

(参考:Googleで「デスクライト」で検索した結果)

私も少し前までこういうイメージを持っていましたし,実際このタイプのデスクライトを使用していました.

しかし,机上のスペースを確保できる利点から 注目され始めているのが「モニターライト」と呼ばれるモニターの上に設置するタイプのライトです.