ラジコを聞く~その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);

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

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

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

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

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

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

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

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

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

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

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

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

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

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

昔感じたスーツとギークのすれ違い

昔書いて消してしまったブログから再掲。読み返したらちょっと面白かったので。
当時この記事を書いて先輩からスーツとギークという言葉を教わりました。
なので文中では営業ネイティブ、技術ネイティブという変な言葉を使ってますが、そのままに。
文章が乱暴だったので多少修正加筆を加えました。

——–以下過去の記事——–

タイトル:技術4ヶ月目の記録
投稿日: 2011年4月26日

会計事務所での営業職を退職し、PHPを始めて運良く技術の現場で働くことができ、思うことがあったので記録。
ただいま技術経験4ヶ月でわからないことだらけ、日々戸惑いを隠せません。
しかし、今後自分が技術をある程度習得したら、今の感覚を忘れてしまいそうなので言葉にしたいと思います。

営業の人と技術の人があるシステムを設計するためにミーティングをしていて、
その現場に自分もいて、会話のずれを感じました。ぼんやりとすれ違ってるなぁと思いつつ、両者は気付いていない様子。

技術専門の人と営業専門の人は、そもそも持っている文化も言葉もまったく違う人種なのに、
なまじお互い日本語を使っているので表面上の意味は通じてしまっているような、そんな感じがしました。

営業ネイティブは、システムを作るにあたって、どこがどう難しいのか、システムをどのような段取りで作るかわからず、
技術ネイティブは、お客さんの顔が見えず、お客さんがどうしたいか、何がしたいかがわからない。

営業ネイティブの人はお客さんから聞いた要望を、技術ネイティブに伝えますが、そこですれ違いが生まれているように感じます。
かといって技術ネイティブがお客さんのところに行けばいいと思いますが、それは難しいのです。
お客さんは別の仕事をなりわいとしているので、IT会社の営業職よりも当然システムに疎いからです。
意思疎通が難しくなります。

それと、気質として、営業ネイティブはモノを売る人で、「人を説得する」ことを大切にし、
技術ネイティブはモノを作る人で、「自分が納得する」ことを大事にしているように感じます。どちらが優れているという話ではありません。

例えば、

「仕様」という言葉があります。技術ネイティブと営業ネイティブではニュアンスが違います。
技術ネイティブにとって、仕様とは設計図のようであり、開発過程に入ってからの仕様変更というのは、家を建てているときに、まるで机や椅子でも動かす感覚で、やっぱ柱はこっちがいいなぁ、と言われるくらいの衝撃があります。
営業ネイティブにとっては、仕様とはお客様の要望を聞き取ったもので、開発過程でミーティングを重ね都度柔軟に書き換えるものです。

営業ネイティブが技術ネイティブに車を作ってくださいと言ったとして、
技術ネイティブは車の設計から始め、製作工程を見極め、段取りを取り、実際に開発作業にとりかかります。

そんなとき、仕様の変更。

営業ネイティブはプログラムをちょっと書き換えるだけだと思っています。プログラム=何でもできる、と思っているからです。自分もそう思っていました。
ところが、技術ネイティブにとってタイヤをキャタピラにしてくださいと言われたくらいの衝撃を受けます。
システムは目に見えないので、ちょっとした変更なのか大規模な変更なのか分かり辛いのです。
場合によっては設計からやりなおしなのです。

そして、タイミングや予算によっては、最初から作る余裕や時間もなくなって、
無理矢理組み上げた、キャタピラの上に車が乗っただけの、ギアをバックに入れるとキャタピラが逆回転して結果前に進む、みたいな謎のシステムが出来上がります。
ギリギリのラインで希望通りの動きをします。お客様にとっては一応思い通りに動くのでなんとか納品できますが、
営業ネイティブにとっても技術ネイティブにとっても満足のいくものが出来上がりません。

これがすれ違いが生む悲劇なのではないでしょうか。

自分は元営業なので、当初は、
プログラムは書けばその通りに動くと思っていましたし、「PHPをインストール」なんてまるで意味がわかりませんでした。
プログラミング言語なんて書けばどこでも動くと思っていました。
PHPはサーバーサイドで動くものだということを理解するのに時間がかかりました。インストールしないとサーバーがPHPを使えないということも理解するのに時間がかかりました。
JavaScriptはブラウザで動くものということも理解しずらかったです。
デザインと言われてもどこからどこまでがデザインで、どこまでがシステムなのかもわかりませんでした。
それはJavaScriptやPHPがどこで動いてどんなことができるのか、CSSは何ができるのか、システムがどのように開発されてゆくのかを見て、やってみて初めて理解しました。

技術ネイティブは、それが日常なので、それがわからない人の感覚がわからないのです。
自分はその両者の気持ちがわかる貴重な体験をしているような気がします。

今はそんな風に考えています。
半年後に読み返したら自分はどんな風に思うのでしょうか。きっと恥ずかしくて削除するかもしれません。

現在、ミーティング中にぼんやりしたすれ違いを見つけても言葉にできなくて、結局何も発言せずで終わってしまいます。
もう少し感覚を研ぎ澄ませて、営業ネイティブと技術ネイティブの通訳ができたらなぁと思います。
以上、散文でした。

noVNCでパスワード入力を省略する

ブラウザから他PCを操作できる面白vnc、『noVNC』
使い勝手は通常のvncクライアントと比べちゃうと痒いところに手が届かない感は否めないが、ブラウザで動かせるのはやっぱり楽しい。無駄にブラウザで操作したくなる。
が、毎回パスワードを入力するのがとにかく面倒なので省略する方法はないかとソースを眺めていました。

まずnovncがインストールされている場所探しから。
自分の場合は
/usr/share/novnc
にありました。

その中の
/usr/share/novnc/include/ui.js
の600行目前後、
connect: function() {
の中身を編集。

connect: function() {
    ~省略~
    password = $D('noVNC_password').value;

↓直接パスワード書きこんでしまえ。

connect: function() {
    ~省略~
   password = 'パスワード';

novnc起動

/usr/share/novnc/utils/launch.sh --listen 80 --vnc 192.168.1.2:5901 -- web /usr/share/novnc

もっとスマートな方法がある気がするけども・・・

raspberrypiなどの更新系コマンド

apt-getなになに、がいつも混乱するので簡単にメモ。

普段Ubuntuを更新するときは下記のようにしてる。

sudo apt-get update
sudo apt-get upgrade -y
sudo reboot

raspberrypiを更新するときは下記のようにすると良さそう。

sudo apt update
sudo apt full-upgrade -y
sudo apt autoremove -y
sudo apt clean
sudo reboot

そして

sudo rpi-update

このコマンドはプレリリース版へ更新するコマンドのよう。

それと

sudo apt-get dist-upgrade

dist-upgradeはDebianのバージョンを更新するコマンドのよう。

使いどころを気を付けなくては。

参考にさせて頂いたサイト
apt-get dist-upgradeとapt-get upgradeの違い
raspberrypiのOSを更新する方法
Raspberry Pi の OS を最新の安定版にアップデートする(2020年7月版)

昔パソコン自作したときのメモ

かれこれ10年前にパソコンを自作したときのメモを発掘。
当時のブログに書いたけど出来心でブログごと消しちゃいましたので。
読み返したらちょっと面白かった。恥ずかしいけど。

投稿日: 2011年3月5日
パソコンを初めて自作しました。

必要なもの
・CPU
・マザーボード
・メモリ
・ハードディスク
・DVDドライブ
・ケース

必要に応じて買うもの
・グラフィックボード(マザーボードにくっついているときはあってもなくても良し)
・サウンドカード(マザーボードにくっついているときはあってもなくても良し)
・電源(ケースにくっついているときはいらない)

あってもなくてもいいもの
・ファン
・グリス

気をつけること
・マザーボードとメモリの相性
・マザーボードにあるソケットにCPUが入るかどうか
・グラフィックボードの幅とケースの幅

OS、モニタ、キーボード、マウス等は別途必要です。

手順
・ケースにマザーボードを設置。
・マザーボードにCPUを接続。
・マザーボードにメモリをさす。壊れるんじゃないかというくらいの力がいる。
・ケースにHDDやDVDドライブと電源を取り付ける。
・HDDとDVDドライブをマザーボードに接続する。
・HDD、DVDドライブ、マザーボードと電源をつなぐ。
・モニタやキーボードを付け電源を入れる。

緊張の瞬間!初機動!!

画面真っ暗!!!音も鳴らず!!

マザーボードは、P7P55DーE EVOです。
ファンは回ってるけどビープ音は鳴らず。
CPU_LEDはちゃんと赤く光っている。

と、思いきや、点いているのが正常だと思い込んでました。点いてはいけないランプでした。
CPUと電源が繋がっていませんでした。

繋げたらちゃんと起動しました。安心しました。