日々

link permalink

節分といえば落花生

節分から 1日ずれちゃいましたが、節分の話でも。

北海道では節分に殻つきの落花生を撒きます。「鬼は外ー」は「雪(※)に向かって落花生を投げる」という意味でした。

もちろん店には大豆も(食べる用なのか?)売っていますが、撒くのは必ず落花生です。

しかし、関東、関西でその話をすると、大抵の人に「なんで落花生?大豆じゃないの?」と驚かれます。「うちもそうだよ」って言われたことはない…はず…たぶん。

そういや、なんで大豆 or 落花生なのだろう。小豆じゃダメなのかねえ??

(※)この時期の北海道はほぼ確実に雪が積もっているから、地面ではなく雪に向かって投げることになります。

[編集者: すずき]
[更新: 2014年 2月 5日 02:21]
link 編集する

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



link permalink

故意にリークしてるよね

パナソニックの半導体事業改革が完了 - EE Times Japanを読んで。

いつもは「絶対、事前にリークしてるでしょ」と思うくらい、ニュースが正確で早い(社内通達よりも)のですが、今回はニュースと社内通達が同時でした。珍しい〜。

推測するに、

  • 改革は既定路線で、世の中が何と言おうと止める気はないのでリークは不要だった
  • 赤字 4兄弟(テレビ、半導体、光デバイス、回路基板)への改革なので、リークして様子を見るまでもなく株価上昇は明らか
  • 興味を持つ人が減ったので、リークしても記事にされなかった
  • 今までは情報統制がザルで漏れまくっていたので、正常な状態に戻した

辺りですかね。当たっても別に嬉しくないけど。

メモ: 技術系の話は Facebook から転記しておくことにした。

[編集者: すずき]
[更新: 2015年 11月 29日 20:42]
link 編集する

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



link permalink

ガラパゴス

サービスベンダーや端末メーカーは、自社サービスや製品をユーザに末永く使って(=お金を末永く払って)もらいたいので「自社サービス、製品にユーザを閉じ込める」方向に行きたがります。

本来、ユーザの利便性を考えれば、いつでも他社サービスに移れるようにした方が便利でしょう。標準規格があるならそれに従う、既に普及しているサービスと互換の形式を使う、など。

でも、世界と同じ土俵で自社サービス、製品のオリジナリティを打ち出せます?自信を持って Yes と言うのは難しいですよね。オリジナリティを打ち出せなければ値段勝負、価格破壊、死の行軍が待っています。

一方で、ユーザを閉じ込め、自社サービス、製品の箱庭を作ってしまえば敵は過去の自分だけです。去年より良くしました、と言って作り続ければ、絶対に負けません。楽に勝ち続けられる居心地の良い場所です。

しかし閉鎖的な市場に気づいた海外勢が殴り込みをかけたとき、ユーザは今まで猛烈な不便を強いられていたことに気づきます。

ここで海外勢に勝てるなら、「世界唯一」の「素晴らしい」サービスだった、と言えるのですが、携帯、SNS、テレビ…、いずれも従来サービス、製品は不便だ、使いづらいと誹りを受け、一気にユーザが離れました。

まさに「世界唯一」だけど「外来種が来たら駆逐」されてしまう、ガラパゴス島の固有種とそっくりです。

ガラパゴスとは、うまいこと言ったもんですよね、ほんと。

ガラパゴスは悪くない

ユーザの閉じ込めを狙ってやっていない限り「○○」というサービスや製品が、

  • 世界一だったのか?
  • ガラパゴスだったのか?

は市場で「勝った」か?「負けた」か?と聞いているのとほぼ同じです。

ガラパゴスなサービス、製品をたくさん作っている or 作っていたからと言って、決していくじなしの会社ってわけじゃないんです。

当事者も悪くない

しかもユーザの閉じ込めを狙ってやっています、なんて誰も言いません。隠しているのではなくて、当事者は意識すらしていないはず。

「より良いものを、と頑張っていただけなのに、どうしてこうなった?」って。

…なんだ「ガラパゴス」は結果論か?と言われれば否定はできませんが、せめて、その道に進みかけた時にこれはヤバいと気づくとか、そうならないように心掛けることはできるんじゃないでしょうか。

メモ: 技術系?の話は Facebook から転記しておくことにした。

[編集者: すずき]
[更新: 2014年 3月 17日 00:49]
link 編集する

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



link permalink

ALSA その 5

ALSA で音が鳴ることはわかりました。でもそれだけではつまらないですね。

次はどうすれば音を鳴らすプログラムを書けるのか?を見てみます。今回は、下記 ALSA のモジュール図でいう「アプリケーション」側から見てみます。


図1: ALSA モジュール図

ALSA とアプリケーションとのインタフェースを ALSA API と呼ぶことにします。ALSA API の仕様は公式のドキュメントに詳しく書かれています(※)。

(※)今回は LPCM を扱いますので ALSA API のなかでも PCM モジュールの仕様が参考になります。

ALSA API を使おう

LPCM を鳴らすために最低限必要な API 呼び出しは下記の 5つです。

snd_pcm_open
サウンドカードを開く。
snd_pcm_set_params
どのような音を鳴らすか決める。
snd_pcm_writei
音のデータをサウンドカードに書き込む。
snd_pcm_recover
サウンドカードに書き込む際に、何かエラーが起きたら復帰させる。
snd_pcm_close
再生が終わったらサウンドカードを閉じる。

もう少しコードっぽく書くと下記のようになります。

LPCM の再生、中心部分

//Format: 48[kHz], Signed 16[bit], Stereo
int rate = 48000;
snd_pcm_format_t format = SND_PCM_FORMAT_S16_LE;
int channels = 2;
//To use snd_pcm_writei() instead of snd_pcm_writen()
snd_pcm_access_t access = SND_PCM_ACCESS_RW_INTERLEAVED;
//Allow to select the 'plughw' for using sampling rate converter.
int resample = 1;
//Buffer size is 50[ms]
int latency = 50000;

snd_pcm_t *pcm = NULL;

snd_pcm_open(&pcm, "hw:0", SND_PCM_STREAM_PLAYBACK, 0);

snd_pcm_set_params(pcm, format, access, channels, rate, resample, latency);

while (1フレームでも残っていれば) {
    writen = snd_pcm_writei(pcm, buf, frames);
    if (writen < 0) {
        snd_pcm_recover(pcm, writen, 0);
    }
}

snd_pcm_close(pcm);

もし 48kHz, Signed 16bits, Stereo 以外の LPCM データを再生する場合は、rate, format, channels の部分をデータに合わせて変更します。

もしハードウェア側が 48kHz, Signed 16bits, Stereo の LPCM 再生をサポートしていない場合は、下記のようなエラーメッセージが出ます。

HW が指定されたフォーマットをサポートしていない場合
ALSA lib pcm.c:7431:(snd_pcm_set_params) Rate doesn't match (requested 48000Hz, get 0Hz)

このメッセージが出ていたら、デバイス名を "hw:0" → "plughw:0" としてください。これによりサンプリングレートコンバータ(SRC)が働き、ハードウェアが受け付けられるフォーマットに自動的に変換されます。

例えば 44.1kHz しか対応していないサウンドカードで 24kHz, Signed 8bits, Mono の音源を鳴らしたときは、下記のような動作イメージになります。

SRC の動作イメージ

rate = 24000;
format = SND_PCM_FORMAT_U8;
channels = 1;
(デバイス名) = "plughw:0"

24kHz, 8bits, Mono --(plug)--> 44.1kHz, 16bits, Stereo --> hw:0

先ほどの中心部分に、ファイルからの LPCM データの読み込み部分、エラー処理などを付け加えて、簡易的なプレーヤにしました。
link ソースコードはこちらから(※)どうぞ。

ライセンスは、修正 BSD ライセンスです。

(※)コンパイルの際は -lasound を付けてください。もし alsa/asoundlib.h が無い場合は、ALSA の開発用パッケージ(Debian Wheezy なら libasound2-dev)をインストールしてください。

注意事項など

注意: 再生できるデータは LPCM データのみです。WAV ファイル(*.wav)も LPCM データを含むため再生可能ですが、コンテナのヘッダも LPCM データだと思って再生してしまい、最初にビッ!ビッ!というノイズが鳴ります。WAV ファイル再生の際は音量にご注意ください。

警告: 入力されたデータのフォーマットチェックは行っておりません。LPCM データではないファイルを再生させると、非常に大きい音や、ノイズが鳴り、スピーカーなどを破損する可能性があります。

[編集者: すずき]
[更新: 2014年 2月 13日 02:41]
link 編集する

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



link permalink

依存と委託の違い

どことは言いませんが、某半導体メーカーと、AV機器メーカーの関係と、
製パン(たとえば山崎パン)と、小売りPB(たとえばローソンのパン)の関係は、
片方が半製品のメーカーであり、もう片方が製品企画時点から注文を付ける顧客企業、という点で似ています。

しかし販路を顧客に全て依存する某半導体に対し、山崎パンは自社ブランドの販路があります。つまり山崎パンは顧客がトチ狂ったことを言ってきたら、その販路ごとぶった切る、という選択も可能なのです。

実際には丸く収めて、ぶった切るなんて思い切ったことはしないと思いますが、その選択もできるのだ、という事実が、価格交渉力として顕著に現れます…と思います。

メモ: 技術系?の話は Facebook から転記しておくことにした。

[編集者: すずき]
[更新: 2014年 3月 17日 00:54]
link 編集する

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



link permalink

同じ誕生日の奴を連れてこい

「何日でもいいから同じ誕生日のペアを連れてこい」と言われたら、何人に声をかけたら良いでしょうか?

慎重を期して 99.9% の確率で同じ誕生日のペアが居るように、人を集めることにしましょう。

シンプルに考えると 1年は 365日だから 365人 x 99.9% = 364人…?と思いますが、実は 70人で良いのです。

グラフにするとこんな感じになります。


同じ誕生日のペアが居る確率(1人〜61人)


同じ誕生日のペアが居る確率(62人〜80人) 拡大図

一見、直感に反するようですが「ペアになるのは誰でも良い」という点がポイントです。

解説しようと思ったら、Wikipedia 誕生日のパラドックスに既に説明があったので、こっちにお任せします…。

[編集者: すずき]
[更新: 2014年 2月 17日 00:32]
link 編集する

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



link permalink

ドイツ語

「黒豚」は schwarz schwein(シュヴァルツ シュヴァイン)とやたらイカツいのに、
「紅の死神」は purpur sensenmann(プルプル ゼンゼンマン)なドイツ語って面白いわー。

ってな話を家でしていたら、第二外国語でドイツ語取ってた奥さんに、

  • purpur は英語の purpleのこと?紅なら英語で言う Scarlet(独だと Scharlachrot?)とか、Carmine(独だと Karmin?)では?
  • Sensenmann(sensen 鎌+mann 人)以外にも死神はあるはず(一緒に調べたらTodesengel(tode 死+engel 天使)があった)

と、反撃されて撃沈した。

特別に怒ってはいなかったけれど、二外とはいえ、勉強していたドイツ語をバカにされたように聞こえて、かなりムッときたんじゃなかろうか…と反省。

たとえるなら「エロマンガ島」とか地図帳で見つけて喜んでる中学生のような、そういうしょうもないノリだったんですが…、え、なお悪い?

メモ: 技術系(か?これ?)の話は Facebook から転記しておくことにした。

[編集者: すずき]
[更新: 2014年 3月 17日 00:59]
link 編集する

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



link permalink

日本企業の特攻作戦

本の虫: ドワンゴに入社した

引用
「日本では、標準規格の価値が理解されておらず、閉鎖的な独自仕様で囲い込んだ挙句、標準規格を作った海外勢に押されて負けるという歴史を繰り返している。ああ、いつになったら学ぶのか。…」
引用終わり

という部分に共感しました。

昔ならハードからソフトまで囲い込み放題だった組み込み界も、今やハードは ARM 一強でマイコンなんて跡形すらないし、ソフトもオープンや標準規格が普及してきています。

気づいてないのか、ついていけないのか、過去の栄光が忘れられないのか、「技術は負けていない」などと意味不明な供述を繰り返しては、我流で作り続けるのが日本の会社です。

海外勢がスクラム組んで突っ込んできてるのに、日本の会社は 1人で特攻を繰り返すだけなんだから、そりゃ負けるよねー…。

メモ: 技術系?の話は Facebook から転記しておくことにした。

[編集者: すずき]
[更新: 2014年 3月 17日 01:03]
link 編集する

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



link permalink

Kindle Fire HD と Gmail

Kindle Fire HD を root 化して、無理やり Gmail アプリを入れました。すると Kindle の上部にあるステータスバーが消えました。な、なんだそりゃー!?

チマチマ調べてみたところ、どうも Gmail アプリがメールの通知をステータスバーに出そうとすると、Kindle のステータスバーが消えるようです。意味わからんわー。

Gmail に来たメールを読みたいだけなら、Kindle に元々入っている E メールアプリを使いなされ、ってことなのでしょうが、見た目が微妙に違うのが嫌なんだよなあ。

唯一の救いは、Kindle でメールを見ることがほとんどない、ということですね。頻繁に見る必要があったらイライラ度 MAX です。

[編集者: すずき]
[更新: 2014年 3月 1日 20:53]
link 編集する

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



こんてんつ

open/close wiki
open/close Java API

過去の日記

open/close 2002年
open/close 2003年
open/close 2004年
open/close 2005年
open/close 2006年
open/close 2007年
open/close 2008年
open/close 2009年
open/close 2010年
open/close 2011年
open/close 2012年
open/close 2013年
open/close 2014年
open/close 2015年
open/close 2016年
open/close 2017年
open/close 過去日記について

その他の情報

open/close アクセス統計
open/close サーバ一覧
open/close サイトの情報