私は機会があれば、本屋へ行きます。
本屋で最近流行の本とは何かを知るのが好きです。
先日も本屋へ寄る機会がありました。
「最強の仕事術」「最強のリーダーシップ」「最強の教科書」「最強の健康法」「最強の学問」など、
「最強」を使う題名が多く目に入りました。
「最強」の本ばかりです。
最強とは何でしょう?
漢字で「最も強い」と書きますが、
何と比べて強いのか、なぜ強いのか、
内容を読まないと分からないものです。
しかし、最も強いものとは、その分野において一番強いとの意味です。
一つしかないのです。
なんでもかんでも「最強」を使えば、
逆に著者が主観的に「最強だ!」と思っているだけではないかと疑問がわき、買うのをやめます。
「最強」はとても便利な言葉ですが、
使いすぎると説得力がなくなります。
もう少し語彙を増やして、もっと適切な言葉で表現してほしいです。
読者にわかりやすい最強の題名を目指しましょう!
私も気を付けます!😅
2017年11月17日金曜日
2017年11月16日木曜日
Javaで音を鳴らす
Javaで警告など音を鳴らすにはどうすればいいでしょうか?
WAVファイルを再生する方法もあります。
でも、BASICならSOUNDやPLAYコマンドのように、
単純にある周波数を一定の時間に鳴らすのができないのか?
グーグルで調べたら、
Toolkit.getDefaultToolkit().beep();
というメソッドがあります。
(事前にimport java.awt.Toolkit;
をする必要がありますけど。)
でも、なぜかLinux Mintでなりませんでした。
もう少し探したら、StackOverflowでこのクラスを見つけました。
まさかBASICのSOUNDコマンドと同じ、
ある周波数を一定の時間に鳴らす。
700Hzを0.5秒に鳴らすには、
SoundUtils.tone(700,500);
ここで紹介します。ーーーーーーーーーーーーーーーーーーーーー
import javax.sound.sampled.*;
public class SoundUtils {
public static float SAMPLE_RATE = 8000f;
public static void tone(int hz, int msecs)
throws LineUnavailableException
{
tone(hz, msecs, 1.0);
}
public static void tone(int hz, int msecs, double vol)
throws LineUnavailableException
{
byte[] buf = new byte[1];
AudioFormat af =
new AudioFormat(
SAMPLE_RATE, // sampleRate
8, // sampleSizeInBits
1, // channels
true, // signed
false); // bigEndian
SourceDataLine sdl = AudioSystem.getSourceDataLine(af);
sdl.open(af);
sdl.start();
for (int i=0; i < msecs*8; i++) {
double angle = i / (SAMPLE_RATE / hz) * 2.0 * Math.PI;
buf[0] = (byte)(Math.sin(angle) * 127.0 * vol);
sdl.write(buf,0,1);
}
sdl.drain();
sdl.stop();
sdl.close();
}
public static void main(String[] args) throws Exception {
SoundUtils.tone(1000,100);
Thread.sleep(1000);
SoundUtils.tone(100,1000);
Thread.sleep(1000);
SoundUtils.tone(5000,100);
Thread.sleep(1000);
SoundUtils.tone(400,500);
Thread.sleep(1000);
SoundUtils.tone(400,500, 0.2);
}
}
WAVファイルを再生する方法もあります。
でも、BASICならSOUNDやPLAYコマンドのように、
単純にある周波数を一定の時間に鳴らすのができないのか?
グーグルで調べたら、
Toolkit.getDefaultToolkit().beep();
というメソッドがあります。
(事前にimport java.awt.Toolkit;
をする必要がありますけど。)
でも、なぜかLinux Mintでなりませんでした。
もう少し探したら、StackOverflowでこのクラスを見つけました。
まさかBASICのSOUNDコマンドと同じ、
ある周波数を一定の時間に鳴らす。
700Hzを0.5秒に鳴らすには、
SoundUtils.tone(700,500);
ここで紹介します。ーーーーーーーーーーーーーーーーーーーーー
import javax.sound.sampled.*;
public class SoundUtils {
public static float SAMPLE_RATE = 8000f;
public static void tone(int hz, int msecs)
throws LineUnavailableException
{
tone(hz, msecs, 1.0);
}
public static void tone(int hz, int msecs, double vol)
throws LineUnavailableException
{
byte[] buf = new byte[1];
AudioFormat af =
new AudioFormat(
SAMPLE_RATE, // sampleRate
8, // sampleSizeInBits
1, // channels
true, // signed
false); // bigEndian
SourceDataLine sdl = AudioSystem.getSourceDataLine(af);
sdl.open(af);
sdl.start();
for (int i=0; i < msecs*8; i++) {
double angle = i / (SAMPLE_RATE / hz) * 2.0 * Math.PI;
buf[0] = (byte)(Math.sin(angle) * 127.0 * vol);
sdl.write(buf,0,1);
}
sdl.drain();
sdl.stop();
sdl.close();
}
public static void main(String[] args) throws Exception {
SoundUtils.tone(1000,100);
Thread.sleep(1000);
SoundUtils.tone(100,1000);
Thread.sleep(1000);
SoundUtils.tone(5000,100);
Thread.sleep(1000);
SoundUtils.tone(400,500);
Thread.sleep(1000);
SoundUtils.tone(400,500, 0.2);
}
}
2017年11月15日水曜日
書籍管理ツールを作ろう
昨日、所持書籍を管理するツールを紹介しました。
だが、やはり自分で作ることにしました。
次のプログラミングプロジェクトです。
言語はJava、JREがあればWindowsでもMacでもLinuxでも動けるはずです。
今の考えは、Google BooksのAPIを使った、書籍情報を取得する。
パソコンについているカメラでISBNをスキャンする。
データはXML形式で保存する。
基本情報は:
基本表示は一覧、でもジャンル別、出版年順、著者別の表示もできるようにしたいです。
いつかこのツールを公開できるといいですね。
お楽しみに!😉
だが、やはり自分で作ることにしました。
次のプログラミングプロジェクトです。
言語はJava、JREがあればWindowsでもMacでもLinuxでも動けるはずです。
今の考えは、Google BooksのAPIを使った、書籍情報を取得する。
パソコンについているカメラでISBNをスキャンする。
データはXML形式で保存する。
基本情報は:
- 書名
- 著者名
- 出版社
- 出版年
- ISBN
- ジャンル
基本表示は一覧、でもジャンル別、出版年順、著者別の表示もできるようにしたいです。
いつかこのツールを公開できるといいですね。
お楽しみに!😉
2017年11月14日火曜日
ISBNで所持する本を管理
ISBNを読み取り、そして自動的に本のデータをネットから取得し、
持っている本を管理するツールが欲しかったです。
最初、自分で作ろうかなと思いましたが、
ちょっと調べたら、
既にあるとわかりました。
日本語の本なら、
「本棚 本と雑誌管理、新刊検索」
というアプリがあります。
(「蔵書マネージャー」もありますが、楽天ブックスしか検索できないみたいです。)
洋書なら、
「Book Catalogue」
がいいみたいです。
まだちゃんと使っていませんが、
携帯のカメラでISBNをスキャンして、
自動的に本をデータベースに登録するみたいです。
便利そうです。
時間がある時、使ってみます!😄
持っている本を管理するツールが欲しかったです。
最初、自分で作ろうかなと思いましたが、
ちょっと調べたら、
既にあるとわかりました。
日本語の本なら、
「本棚 本と雑誌管理、新刊検索」
というアプリがあります。
(「蔵書マネージャー」もありますが、楽天ブックスしか検索できないみたいです。)
洋書なら、
「Book Catalogue」
がいいみたいです。
まだちゃんと使っていませんが、
携帯のカメラでISBNをスキャンして、
自動的に本をデータベースに登録するみたいです。
便利そうです。
時間がある時、使ってみます!😄
2017年11月13日月曜日
ヒーローの旅
ごく普通の少年。
とても難しい目標。
最初は避けようとしたが、逃げられなかった。
与えられた目標を達成するために旅をでる。
他人に助けられながら少年が成長し、目標を達成する。
そして、得られたパワーを持って故郷に戻る。
最終的に到達した場所は出発した場所と同じです。
でも、少年は別人になりました。
神話や物語の原型と言われる
キャンベルの「ヒーローズ・ジャーニー(英雄の旅)」 という説です。
この流れにそって物語を書けば、失敗はしないでしょう。
あとは中身です。
とても難しい目標。
最初は避けようとしたが、逃げられなかった。
与えられた目標を達成するために旅をでる。
他人に助けられながら少年が成長し、目標を達成する。
そして、得られたパワーを持って故郷に戻る。
最終的に到達した場所は出発した場所と同じです。
でも、少年は別人になりました。
神話や物語の原型と言われる
キャンベルの「ヒーローズ・ジャーニー(英雄の旅)」 という説です。
この流れにそって物語を書けば、失敗はしないでしょう。
あとは中身です。
2017年11月11日土曜日
守れないルールは作らない
以前、組織のルールを作る側に従事したことがあります。
ガバナンスのため、こうするべきだ、ああするべきだと思うことがいっぱいありました。
でも、上司に提案して、言われました。
「現場でこのルールを守るために、なにをしなければなりませんか?彼らはこのルールを守ることが実際にできるのか?」
あ、そうだ。
守れないルールを作っても仕方がありません。
紙上ではしっかりしているとは見えても、
現状は違う。
計画があっても実際に実行できていないと同じです。
実行しない計画を立てても意味がありません。
守れないルールを作っても意味がありません。
実行可能、実現可能なものを作りましょう。
ガバナンスのため、こうするべきだ、ああするべきだと思うことがいっぱいありました。
でも、上司に提案して、言われました。
「現場でこのルールを守るために、なにをしなければなりませんか?彼らはこのルールを守ることが実際にできるのか?」
あ、そうだ。
守れないルールを作っても仕方がありません。
紙上ではしっかりしているとは見えても、
現状は違う。
計画があっても実際に実行できていないと同じです。
実行しない計画を立てても意味がありません。
守れないルールを作っても意味がありません。
実行可能、実現可能なものを作りましょう。
2017年11月10日金曜日
BASICでプログラミング基礎を固める
昔、コンピューターを学ぶ時、BASICがよく使われました。
文法的に英語に似ている、そして簡単です。
もちろん、簡単だから、複雑なことがやりにくいです。
でも、できなくはない。
コンピューターを理解すれば、
簡単な号令を組み合わせして、組み立てればできます。
キーワードは、「コンピューターを理解すれば」です。
だからBASICを通じて、コンピューターの基本を学ぶ。
そして、学んだ基本を使って、コンピューターを操作する。
操作することによって、理解を深める。
深めた理解に基づいて、更に複雑な操作をする。
この繰り返しで、コンピューターについての理解をどんどん深めていく。
今はライブラリで数行のプログラムでも複雑なことができます。
でも、裏でどんなことをしているのか?
そして、バッグが出たら、どう解決するのか?
コンピューターに関する理解が浅いほど、解決するのが難しいです。
やはり最初から、BASICを通じて基礎をしっかり固め、
次にCやJavaやPythonなどで応用するのがベストではないかと思います。
皆さんはどう思うでしょうね?
文法的に英語に似ている、そして簡単です。
もちろん、簡単だから、複雑なことがやりにくいです。
でも、できなくはない。
コンピューターを理解すれば、
簡単な号令を組み合わせして、組み立てればできます。
キーワードは、「コンピューターを理解すれば」です。
だからBASICを通じて、コンピューターの基本を学ぶ。
そして、学んだ基本を使って、コンピューターを操作する。
操作することによって、理解を深める。
深めた理解に基づいて、更に複雑な操作をする。
この繰り返しで、コンピューターについての理解をどんどん深めていく。
今はライブラリで数行のプログラムでも複雑なことができます。
でも、裏でどんなことをしているのか?
そして、バッグが出たら、どう解決するのか?
コンピューターに関する理解が浅いほど、解決するのが難しいです。
やはり最初から、BASICを通じて基礎をしっかり固め、
次にCやJavaやPythonなどで応用するのがベストではないかと思います。
皆さんはどう思うでしょうね?
登録:
投稿 (Atom)