raspberrypiにasteriskをインストール

必要なパッケージ(必要か?)をインストール

sudo apt-get install -y build-essential binutils cpp dpkg-dev fakeroot gcc libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl libc-bin libc-dev-bin libc6 libc6-dev libdpkg-perl libgomp1 linux-libc-dev make manpages-dev git-core subversion libjansson-dev sqlite autoconf automake libxml2-dev libncurses5-dev bison flex curl sox libncurses5-dev libssl-dev mpg123 libxml2-dev libnewt-dev sqlite3 libsqlite3-dev pkg-config automake libtool autoconf git subversion unixodbc-dev uuid uuid-dev libasound2-dev libogg-dev libvorbis-dev libcurl4-openssl-dev libical-dev libneon27-dev libsrtp0-dev libspandsp-dev libedit-dev

asteriskをダウンロード&解凍

cd /usr/local/src
sudo wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-18-current.tar.gz
sudo tar zxvf asterisk-18-current.tar.gz

インストール

cd  asterisk-18.13.0
sudo ./configure
sudo make menuselect
メニュー画面の「Core Sound Packages」必要なフォーマットのファイルを選択し
[*]CORE-SOUNDS-JA-WAV
[*]CORE-SOUNDS-JA-GSM
[*]CORE-SOUNDS-JA-G729
[*]CORE-SOUNDS-JA-G722
[Save & Exit]
sudo make
sudo make install
sudo make samples
sudo make config
sudo ./contrib/scripts/get_mp3_source.sh
sudo asterisk start
sudo asterisk -vvvvr

起動したら成功。

wifiのパスワードをハッシュ化する

raspberrypiでwifiの設定
/etc/wpa_supplicant/wpa_supplicant.confにSSIDとパスワードを書きますが、
そのwifiパスワードを直に書かない方法。

wpa_passphrase "SSID" "パスワード"

と入力すると、ハッシュ化されたパスワードが画面に出力されます。
それを書き込んで再起動します。

network={
   ssid="SSID"
   psk=ハッシュ化されたパスワード(※""は不要)
}

参考にさせて頂いたサイトはこちらです。

Jelly2の指紋認証を少し楽にする

最近、unihertzのJelly2を買いました。

なんと最初からケースも保護シールも付いてました。

買った目的は、電話とPayPay用の端末が欲しかったからです。
普段使いのスマホでペイペイを使おうとすると、指紋認証をするよう要求されます。
スマホに指紋認証をかけるのがずっとストレスだったので、その機能だけを分離しようと思ったのがですが、Jelly2の指紋認証の精度がとても悪い・・・

そこで考えたのが、同じ指の指紋を何個も登録してみようという。

一個は指の向きを色々変えてみたり、一個は同じ個所を何回も認識させてみたり、お風呂上がりのふやけた指を登録させてみたり。
すると指紋認証の精度が少しマシになった気がしました。
もっといい方法ないものか。。。

raspberry pi で固定ip

古い記憶をたどって /etc/network/interfaces を編集すると、

ここを編集するな、/etc/dhcpcd.conf を編集せよ、のようなことが書いてある気がする。

恐る恐る末尾に書き加えてみる
sudo vim /etc/dhcpcd.conf

interface eth0
static ip_address=192.168.1.100/24
static routers=192.168.1.1

とりあえず動いています。

ラジコを聞く~その2~

以前、raspberrypiでradikoを聞けるようにしましたが、いつの間にか聞けなくなってしまいました。AdobeがFlashのサポートをやめたことが関係しているとかいないとか。

別の方法はないかと思い検索していたらこちらのサイトを見つけました。感謝です。

まずはStreamlinkというものをインストール。こちらのサイトの通りにコマンド。

pip install --upgrade --user streamlink

すると
『Command “python setup.py egg_info” failed with error code 1 in /tmp/pip-build-uWhOKs/cryptography/』
というエラーが出てしまいました。
こちらのサイトを参考にさせて頂くと、必要なライブラリが足りないかもらしい。
試しに、

pip install cryptography

と打ってみると、エラーが出なくなりました。

次にmpvという再生アプリケーション(?)をインストール

sudo apt-get install mpv

後はスクリプトファイルを作りコマンドを実行。

#!/bin/sh
~/.local/bin/streamlink -p mpv http://radiko.jp/#!/live/FMT best

↑はFM TOKYOを聞く場合。
スクリプトファイルを作らずに直接コマンドを実行しても、何故かうまくいきません。

前の方法よりスムーズに聞けるようになりました。快適!

環境ってなんだ?

消しちゃった過去のブログから転載。というか転災。読み返すと恥ずかしい・・・

投稿日: 2011年1月22日

プログラミングに関して持っていた漠然としたイメージは、
プログラミング言語は書けばその通りに動いてくれる、というものでした。

でも違いました。動く「環境」が無いとプログラムはいくら書いても動かない。
そして「環境」の意味がわからなかった。

それ以前に、プログラミング言語が何種類もあるということすら知りませんでした。
自分が出会ったPHPという言語はその内の一つでした。

プログラミング言語には、その言語が活躍できる場所が決まっているそうです。

魚は水の中、鳥は空。
バスケットボールはバスケットコート、サッカーはサッカーコート、ゴールも設置されてないとできませんよね?

そんな感じで、PHPはサーバーの中で、javascriptはブラウザの中(※2021年現在はサーバーでも動きますが)で、他の言語は電車の自動券売機の中やカメラなどの電子機器の中、企業の基幹システムの中など、それぞれの場所でそれぞれの言語が適材適所で動いているんだそうです。

そのような言語が動く場所を「環境」と呼ぶんだそうです。
理解するまで時間がかかりました。

イラレ(Adobe)の解約料を0円にする

結論、こちらのサイトに書いてある通りにやったらうまくいきました。
ありがとうございました!

イラストレーター、慣れると便利で便利で、ちょっとした書類を作るのにも使っていましたが、使用頻度と月額のバランスが自分の中で崩れてきたので涙を飲んで解約しようと思い立ちました。
ところがいざ解約しようとするとそう簡単ではなく、途中解約料なるものが発生することがわかりました。
それを回避するためには一旦別のプランに変更し、改めて解約することで契約月に解約になり、解約料が発生しなくなります。

まず普通に解約しようとすると、

契約した時期によって途中解約手数料が発生します。

このとき、右下の解約ボタンは押してはいけません。

プラン変更をします。

適当なプランに変更します。

変更してしばらくは管理画面へのリンクが表示されません。

待つこと15分~30分、「プランを管理」が表示されるので先に進みます。

改めて、解約手続きをします。

途中解約料が発生しませんでした。

PHPでSqlite3を使おう(PDO)

Sqlite3、手軽で移行も楽で良いですよね。

PHPでPDOを使ってDBに接続するときいつも忘れてしまうのでメモ。

function db_connect($sql){
	try{
		$pdo=new PDO('sqlite:/path/db');//ここにSqlite3のファイルを指定
		$pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
		$pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE,PDO::FETCH_ASSOC);
		$stmt=$pdo->prepare($sql);
		$stmt->execute();
		$result=$stmt->fetchAll();
		unset($pdo);unset($stmt);
		return $result;
	}catch(Exception $e){echo $e->getMessage().PHP_EOL;}
}

DB作成
オートインクリメントの書き方もいつも忘れるのでメモ。

$sql='CREATE TABLE table(
	id INTEGER PRIMARY KEY AUTOINCREMENT,
	title varchar(255),
	contents text,
	status INTEGER
)';
db_connect($sql);

最後に、テーブルの存在を確認したいときのメモ。

$sql='SELECT count(*) FROM sqlite_master WHERE type="table" AND name="table"';
$res=db_connect($sql);
var_dump($res);
Posted in PHP

virtualbox、そんなことではまる?

消しちゃた過去のブログの記事から。

———-投稿日: 2011年6月19日———-

VirtualBoxをインストールして、仮想Ubuntuを立ち上げた。

しかし、起動しなおすたびにUbuntuをインストールする画面に戻されていた。

原因は仮想CDドライブにUbuntuのイメージファイルを入れっぱなしだったから。

なるほど。先が思いやられる。

———-過去記事終わり———-

読み返してちょっと笑いました。
微笑と苦笑。

Opera Neonをアンインストールする

Opera Neonというブラウザを使ってみましたが、斬新なUIに慣れずアンインストールしようとしたらうまくできませんでした。

コントロールパネルからアンインストールしようとすると、タスクバーにアイコンがピコピコするだけで先に進みません。

どうやら画面の外に
「本当にアンインストールしますか?
[yes] [no]」
的なダイアログが表示されてると思われます。わざとだとしたら陰湿です。

なので、タスクバーのアイコンをクリックや右クリックをして、見えないダイアログをアクティブにし、
エンターキーを押すと、yesが選択されたようにで、アンインストールが完了しました。
良かった。