作成者別アーカイブ: toshiya

2024年の抱負

2024年新年ですが、どうにも日本列島はおめでたい雰囲気ではないので、今年ばかりはそう言う挨拶は割愛させて頂き、まずは今年の抱負というものを述べさせて頂きます

まずは、個人事業である「DDP東京」の復活です。

2021年に開業したものの、様々な諸事情により本格展開というものが全く出来ておりませんでした。
特にスマホアプリである SiSheng に関しては開発が完全に止まってしまっておりますので、なんとかこちらの再会を進めたいと考えております。

また、昨今の技術トレンドですね…こちらの追随もすっかり遅れております。

今、ざっと考えている重点事項としては、以下の通り

  • TypeScript
  • Angular
  • Rust
  • React & React Native
  • Flutter & Dart
  • R

あたりの知見の強化を図らねばと考えております。

元々は C++ と wxWidget の組み合わせによる マルチプラットフォームの信号処理を得意としておりましたが、今後は Webプラットフォームをターゲットとした開発をメインにするようシフトして行きたいと思っております。

取り急ぎ本日1月3日は台東区の中央図書館に出向き、短い時間ではありますがこの辺りの知見を広めるべく取り組んで来ました。

今年は…やりますよ!!(*´∇`*)

Share Button

Amazon Linux でメールサーバーを立てない判断

Amazon Linux に Postfix と Dovecot をインストールしてみたものの、メールの受信は出来るが送信は出来ない

色々と試行した挙句、原因が判明

どうやら以下URLの通り、AWS では25番ポートのアウトバウンドに対して制限をかけているらしい
https://aws.amazon.com/jp/premiumsupport/knowledge-center/ec2-port-25-throttle/

そんな訳で、お名前.com で取得したドメインに関しては、Webサーバーは AWSで立てて、メールサーバーは AWS上には構築せず、「お名前メールサービス」を利用することとした

https://www.onamae.com/service/mail/

Share Button

vi が好き

テキストエディタは 常に vi を使っておりますw

Windows上では、Kaoriya.net さんで配布された Vim を使っておりましたが、いつからか日本語文字コードの相互変換が出来ないようになってしまい、若干使いづらさを感じておりました。

あと、世の中の流れに伴い、VS Code をテキストエディタとして使い、こちらに Vim プラグインを入れたところ、なかなか使い勝手が良いようで、もう2ヶ月程はこちらを使ってるので今後もこれを使って行こうかと…

ちなみに 6年程前には、Atom + Vim プラグインを使ってみたのですが、どうも僕とは相性が合わなかったみたいで馴染めなかったのですが、今回はなかなか良い感じです。

僕が vi を初めて使ったのは、1994年のことなので…かれこれもう25年以上も vi を使っていることになります。

vi を使い始めたキッカケは 日立製作所で Oracle7 の管理者講習(3泊4日)を受ける事前課題だったので、まぁ、vi は Oracle の 「ついでに」覚えた感じです。

当時の日立製作所のテキストエディタは グリーンモニタのTSS端末では「ASPEN」というエディタを、X端末(WS2050)が導入されてからは 「FSED」 という日立製のフルスクリーンエディタ (「FSED」は「フルスクリーンエディタ」の略字と思われる)を使っておりました。

1997年にワークステーション環境が Sun の SPARCstation を使うようになってからは、 Emacs,  Mule の存在を知り、こちらのエディタの方が E-mail との相性も良いとのことを言われ、乗り換えようとかも思ったのですが、結局、vi に落ち着いております。

vi の良い所と言えば…

「UNIXライクな環境であればOSを問わず初期状態で必ず使える」

と言う一言に尽きるかと…。

まぁ、一部の劣悪な環境では ED くらいしか使えなかったりした経験もありますが、まず vi は追加インストールなどせずとも間違いなく「どこでも」使えるのです。

(※ 実は、最近では Vim も初期状態から入っていない Linux ディストリビュージョンもあるようですが… (^-^;))

毎回、コードを書くたびに vi を使いながら、テキストモードから ESC でコマンドモードに切り替えるたびに vi に対する愛着が湧いていたりします。

2007年頃には、働いていた大学の学生から
「福井さん、イマドキまだ vi 使ってるんですか?」
なんて言われたこともありましたが、まぁ、使ってますよ。

そんな訳で、僕の場合は「vi」というか「V愛」ですね… (^-^;)

ちなみに「vi」の正しい発音は 「ブイアイ」じゃなくって、「ヴィーアイ」です。(←本当)

Share Button

中国語 なぞって覚える声調練習アプリ SiSheng(四声) をリリースしました

2020年4月1日付で中国語学習アプリ
「中国語 なぞって覚える声調練習アプリ SiSheng(四声)」の Android 版、iOS版を正式リリース致しました。

https://sisheng.choruchoru.com

SiSheng の初版は2011年1月1日に Android版をリリース致しましたが、今回は iOS版にも対応しております。

SiSheng は、中国語での練習で最も難しい四声(声調)の練習をサポートするアプリケーションです。

このアプリケーションの主な機能は以下の通りです。

1.中国語単語の声調を指でなぞって入力し確認できる
2.画面上で円を描くことで目的の単語の発音が音声で確認できる
3.一度演習した内容を繰り返し復習することができる
4.中国語単語を目的に応じて追加購入できる

Share Button

チャットワークの投稿をバックアップする方法

コンサルティング先のお客様から「無料プランのチャットワーク投稿をエクスポートしたい」と言うご相談がありましたので、こちらに対する解決方法を以下に記述致します。

解決方法

goodbye_chatwork という Ruby 言語で書かれた コマンドを利用することで簡単に行えます。

goodbye_chatwork 利用手順

  1. Ruby のインストール
  2. goodbye_chatwork のインストール
  3. goodbye_chatwork の使い方

1.Ruby のインストール(Windows版)

対象は Windows マシンを想定しております。
Macをお使いの場合は Ruby はデフォルトでインストールされておりますので、この節は読み飛ばして下さい。

Windows への Ruby のインストールは以前、私が書きました以下の記事を参考にして下さい。

Windows環境へのRubyのインストール

2.googbye_chatwork のインストール

Windows の[スタート]→[すべてのプログラム]→[アクセサリ]→[コマンドプロンプト]でコマンドプロンプトウィンドウを開き、以下のコマンドを入力します。

> gem install goodbye_chatwork

すると、以下のように Ruby のパッケージ管理システム「RubyGems」を通じて goodbye_chatwork がインストールされます。

Fetching: multipart-post-2.0.0.gem (100%)
Successfully installed multipart-post-2.0.0
Fetching: faraday-0.12.0.1.gem (100%)
Successfully installed faraday-0.12.0.1
Fetching: unf_ext-0.0.7.4-x64-mingw32.gem (100%)
Successfully installed unf_ext-0.0.7.4-x64-mingw32
Fetching: unf-0.1.4.gem (100%)
Successfully installed unf-0.1.4
Fetching: domain_name-0.5.20170404.gem (100%)
Successfully installed domain_name-0.5.20170404
Fetching: http-cookie-1.0.3.gem (100%)
Successfully installed http-cookie-1.0.3
Fetching: faraday-cookie_jar-0.0.6.gem (100%)
Successfully installed faraday-cookie_jar-0.0.6
Fetching: goodbye_chatwork-0.0.6.gem (100%)
Successfully installed goodbye_chatwork-0.0.6
invalid options: -SHN
(invalid options are ignored)
Parsing documentation for multipart-post-2.0.0
Installing ri documentation for multipart-post-2.0.0
Parsing documentation for faraday-0.12.0.1
Installing ri documentation for faraday-0.12.0.1
Parsing documentation for unf_ext-0.0.7.4-x64-mingw32
Installing ri documentation for unf_ext-0.0.7.4-x64-mingw32
Parsing documentation for unf-0.1.4
Installing ri documentation for unf-0.1.4
Parsing documentation for domain_name-0.5.20170404
Installing ri documentation for domain_name-0.5.20170404
Parsing documentation for http-cookie-1.0.3
Installing ri documentation for http-cookie-1.0.3
Parsing documentation for faraday-cookie_jar-0.0.6
Installing ri documentation for faraday-cookie_jar-0.0.6
Parsing documentation for goodbye_chatwork-0.0.6
Installing ri documentation for goodbye_chatwork-0.0.6
Done installing documentation for multipart-post, faraday, unf_ext, unf, domain_
name, http-cookie, faraday-cookie_jar, goodbye_chatwork after 11 seconds
8 gems installed

 

3.goodbye_chatwork の使い方

チャットルーム一覧(room_id, room_name)を取得するコマンドは以下の通りです。

> goodbye_chatwork -i チャットワークに登録のメールアドレス -p パスワード
例えば、チャットワークに登録のメールアドレスが 「hogehoge@hogehoge.com」、パスワードが「hogehoge」の場合、以下のような結果になります。
(動作に失敗する場合は、本ページ後述の「※ 特記事項: SSL エラー対応」を参照願います。)
>goodbye_chatwork -i hogehoge@hogehoge.com -p hogehoge
2017-04-23T16:42:41+09:00 login as hogehoge@hogehoge.com ...
2017-04-23T16:42:41+09:00 load initial data...
2017-04-23T16:42:42+09:00 load account info
52317712 mychat 53
53770634 ワードプレス 83
54513841 Rubyプログラミングの部屋 25
この出力の中で、出てきた 「mychat」、「ワードプレス」、「Rybyプログラミングの部屋」がチャットワークのそれぞれのチャットルームにあたり、「mychat(マイチャット)」の部屋の room_id は 52317712 となります。
特定のチャットルームのテキストログとファイルを取得するコマンドは以下の通りです。
> goodbye_chatwork -i メールアドレス -p パスワード -x room_id

 

例えば、チャットルーム「マイチャット」の room_id 52317712 を利用して、hogehoge@hogehoge.com のテキストログとファイルを取得した場合、以下のような結果となります。

>goodbye_chatwork -i hogehoge@hogehoge.com -p hogehoge -x 52317712
2017-04-23T18:19:06+09:00 login as hogehoge@hogehoge.com ...
2017-04-23T18:19:06+09:00 load initial data...
2017-04-23T18:19:08+09:00 load account info
2017-04-23T18:19:12+09:00 mkdir chatwork_logs
2017-04-23T18:19:12+09:00 export logs 52317712 ...
2017-04-23T18:19:12+09:00 get old chat 0- ...
2017-04-23T18:19:14+09:00 get file info 143056045 ...
 ・
 ・
 ・
2017-04-23T18:26:45+09:00 create chatwork_logs/52317712_mychat.csv
 (画像ファイルが多い場合、ダウンロードに時間がかかるかも知れません。)
出力した結果は エクスプローラーの個人用フォルダ ( C:\Users\(アカウント名)) 直下に 「chatwork_logs」というフォルダ名で保存されます。

※ 特記事項: SSL エラー対応

これまでの手順で、goodbye_chatwork を起動すると、以下のエラーが発生して、正常に動作を確認することができない場合があります。
C:/Ruby23-x64/lib/ruby/2.3.0/net/http.rb:933:in `connect_nonblock': SSL_connect 
returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify
failed (Faraday::SSLError)
この場合は、以下の ページから cecert.pem をエクスプローラの個人フォルダ直下にダウンロードして下さい。
https://curl.haxx.se/docs/caextract.html
ダウンロード方法は、ページ中の 「cecert.pem」のリンクを右クリックし、ポップアップメニューの「名前を付けてリンク先を保存…」を選択し、エクスプローラーの個人用フォルダ (C:\Users\(アカウント名)) に保存します。
その後、コマンドプロンプトで以下のコマンドを実行すると、以降、正常に goodbye_chatwork を利用することが可能となります。
> set SSL_CERT_FILE=./cacert.pem
 尚、上記の方法は、コマンドプロンプトを起動するたびに行う必要があります。
この手順を今後、行わないようにしたい場合は、以下の方法で Windows の環境変数を設定して下さい。

SSL_CERTファイルの Windows環境変数への登録方法

Windows の [スタート]→[コンピュータ]を右クリックし、プルダウンメニューの[プロパティ]をクリックします。

コントロールパネルの[システム]画面が開くので、画面左側の[システムの詳細設定]リンクをクリックします。
[システムのプロパティ]ダイアログが開くので、[詳細設定]タブを選択します。
[詳細設定]タブの下側にあるボタン[環境変数(N)…]をクリックします。
[環境変数]ダイアログが開くので、上側の[ (ユーザー名)のユーザー環境変数]の下にあるボタン[新規(N)…]をクリックします。
[新しいユーザー変数]ダイアログが開くので、以下の通り入力します。(以下の値をコピペすると確実です。)
  • 変数名:  SSL_CERT_FILE
  • 変数値: %HOMEPATH%\cacert.pem
[OK]ボタンをクリックして、[新しいユーザー変数]ダイアログを閉じます。
[OK]ボタンをクリックして、[環境変数]ダイアログを閉じます。
[OK]ボタンをクリックして、[システムのプロパティ]ダイアログを閉じます。

これで手続きは完了です。次回からコマンドプロンプト起動後に、set コマンドを打ち込む必要はありません。
Share Button

Julius 音声認識テスト

最近、再び話題の人工知能にとって、やはり人々が期待しているのはコンピュータの持つ「人間らしさ」かと。

そもそも、コンピュータ・システムは「演算」、「制御」、「記憶」においては人間の力を遥かに超えた能力を持っているのですが、これの入出力の部分で、まだまだ人間との融合が難しく思われているのかも知れません。

昔、アニメや特撮なんかで出てきたコンピューターって、例えば「バビル二世」に出てきたものは塔の上の水晶球がピカピカ光って言葉を話していたりしておりましたが、当時の実際のコンピュータってものは音声認識なんて夢のまた夢みたいな感じで、パンチカードシステムだったりしました。

ところが最近のコンピュータは音声認識も随分と技術が進んで、ジャイアントロボや電人ザボーガーやバリブルーンも夢ではなくなってきたように思います。

今回、自作のソフトウェアに音声認識を組み入れてみようと、「Julius ( http://julius.osdn.jp/ )」というオープンソースの音声認識エンジンをインストールしてみました。

以下はデモ動画ですが、こちらはマシンに対してマイクを通じて「人数」を言葉で話して認識させるものですが、しっかりと認識できていることが確認できます。 非常に面白いですね。

これは辞書に1人から10人までの言葉を登録して実行させているものですが、この様子を見ていると様々な応用が出来そうです。

例えば、辞書に寿司ネタのメニューを登録しておけば、お寿司屋さんでのお客さんの声での注文が、自動的に注文票に登録されるなどのことが出来そうです。

この Julius の素晴らしいところは高い音声認識率もさながら、やはり何と言っても無償のオープンソースであり、各自で自由にカスタマイズしてソフトウェアに組み込むことが出来ることにあると言うことに尽きると思います。

公開元の Julius開発チームには心より敬意を表したいと思います。

Share Button

業績悪化の大塚家具、株主総会で久美子社長を再任 経営責任問う株主も

業績悪化の大塚家具、株主総会で久美子社長を再任 経営責任問う株主も 

2年前の父娘間の経営方針の食い違いに関しては、僕は傍観者ではありますが、久美子氏の方針を真っ向否定しました。

それは、高級家具のショールーム販売によるシェアで成り立っていた大塚家具の経営スタイルを家具量販店に切り替えるということは、かなり危険な橋を渡ることが予測できたからということです。

ただ、もしもまたここで久美子社長を降ろして経営方針を元に戻すようなことになれば、さらに経営状態は悪化することも容易に想像できるのです。

大塚家具は今は、一番苦しい状況かもしれません。

ただ、この難局を乗り越えることが出来れば、きっと大塚家具は間違いなく生まれ変われることでしょう。

誰かが言ってますけれども、「成功」の反対は「失敗」ではなく、「挑戦しないこと」だと思うのです。

 

Share Button

さくらレンタルサーバーに Xdebug を入れると tmp 領域を食いつぶしてしまう件

さくらインターネットに Xdebug をインストールして利用するというのはあまりお勧めできません。

さくらのレンタルサーバー(スタンダードプラン)で個人が利用できる /tmp ( /var/tmp のエイリアス) の容量は 1GB に制限されているようですが、Xdebug を使ってリモートデバッグを行うと、あっという間にこの1GBのディスク容量を食いつぶしてしまうようなのです。

具体的には /tmp ディレクトリの下に、cachegrind.out.xxxxxx というようなファイルが大量に発生します。

tmp 領域を食いつぶしてしまうとどのような問題が発生するかと言うと、以下のような問題が起きます。

  • Webメールのクライアントからメールの送受信が出来ない様になる。
  • Symfonyのページに Warning: session_write_close(): write failed: Disk quota exceeded というメッセージが出る
  • WordPress のプラグインやテーマの更新が出来ない様になる

上記は私が実際に経験した不具合なのですが、その他にも様々な問題が発生することは間違いありません。

Xdebug を利用するにあたっては、cron などを使って定期的に /tmp の下をクリアするなどの処理を入れて問題を回避する方法も考えられますが、やはり Xdebug を使ったリモートデバッグは本番サイトでは行わないのが一番かと思いますね。

Share Button

git 用の SSH キーの作成

git 用の SSH キーの作成

git でリポジトリにアクセスをする場合、一般的には SSH キー を利用して認証を行います。
このキーはそれぞれの端末ごとに作成し、Gitリポジトリ(GitHubやBitBucket)への登録を個別に行います。

決して、他のマシンで作成した キーファイルの組み合わせをコピーして流用するようなことは行わないで下さい。

詳しい解説は以下のURLの通りです。

https://git-scm.com/book/ja/ch4-3.html

ここでは、Msys2をインストールした Windows マシンでの SSH キーの作成の仕方を解説します。

SSH キー作成手順

msys2 のターミナルから、以下のコマンドを実行します。

$ ssh-keygen

パスフレーズを求められますので、そのまま Enter キーを押下します。

Generating public/private rsa key pair.
Enter file in which to save the key (/home/xxxxx/.ssh/id_rsa):

パスフレーズの確認を求められますので、再度 Enter キーを押下します。

Enter passphrase (empty for no passphrase):
Enter same passphrase again:

これで、 ~/.ssh ディレクトリの下に id_rsa と id_rsa.pub の組み合わせが作成されます。

ちなみに id_rsa は「秘密鍵」であり、このファイルは誰にも渡してはいけません。
id_rsa.pub は「公開鍵」であり、このファイルをリポジトリ管理サーバーに登録することによって、リポジトリアクセスの際に二つのキーの組み合わせをチェックして、認証を可能とします。

ここでは、例として、BitBucket へのキーの登録を行います。

msys2 ターミナルで、id_rsa キーの内容をクリップボードに保存します。

$ cat ~/.ssh/id_rsa.pub|clip

その後、Bitbucket にログインし、目的のリポジトリの管理ページを開き、左側のナビゲーションバーの最下段にある「設定」をクリックします。
その後、設定メニューの「一般」->「デプロイ鍵」でデプロイ鍵管理のタブを開き、「鍵を追加」ボタンをクリックして、鍵の登録画面を開きます。
開かれたダイアログの 「Key」項目に、クリップボードに収められた内容を貼り付けます。「Label」項目にはどんなタイトルを記述しても良いのですが、ここは msys2 ターミナルのプロンプト文字列をコピーして、貼り付けておきましょう。
これで、どの端末の何というユーザーからアクセスをするためのキーであるかが明確になります。
それそれのテキストエリアへの記入が終わったら「鍵を追加」ボタンをクリックして、デプロイ鍵の登録を完了します。

Share Button

さくらレンタルサーバーでのシェル上の文字化け解消方法

さくらレンタルサーバーでのシェル上の文字化け解消方法

さくらのレンタルサーバーに Teraterm や MSYS2 でログインしてターミナル上で日本語を扱うと見事に文字化けするんですよねぇ…。
 
こちらの解消方法なのですが、以下の手順で解決できました。

~/.cshrc に以下の内容を追記

setenv  LC_CTYPE ja_JP.UTF-8
setenv  LANG     ja_JP.UTF-8

ちょっとした事なんですけど、これでなんの問題もなくテキストエディタでバンバン日本語を書けるようになり、ちょっと幸せです(^o^)/

Share Button