2016年12月10日土曜日

gvimの文字コードをUTF-8にする。


文字コードはUTF-8にしておくのが無難かなぁ。
と気軽な乗りで、 gvimの文字コードを変更します。

以下、設定メモ

1.vimの設定ファイルに以下を追加する
" UTF-8に設定
set encoding=utf-8
" 文字コード自動判別
set fileencodings=utf-8,ucs-bom,iso-2022-jp,euc-jp,cp932,sjis,utf-16le,utf-16,default
" 改行コード自動判別
set fileformats=unix,dos,mac
" 文字コードUTF-8にしたことによるメニューの文字化け対策
source $VIMRUNTIME/delmenu.vim
set langmenu=ja_jp.utf-8
source $VIMRUNTIME/menu.vim

新規作成時、文字コード:utf-8、改行コード:unix。
改行コードはfileformatsのunix,dos,macの順番を入れ替えると変更可能。
ファイルを開いた時はファイルの文字コードを優先します。

2.文字コード変換用のメニューも追加しておくと便利っぽい。(英語は適当です。)
" 文字コード変換
menu CODE.ChangeCode.utf-8          :set fileencoding=utf-8 <cr>
menu CODE.ChangeCode.cp932          :set fileencoding=cp932<cr>
menu CODE.ChangeCode.euc-jp         :set fileencoding=euc-jp<cr>
" 改行コード変換
menu CODE.ChangeNewLineCode.dos     :set fileformat=dos<cr>
menu CODE.ChangeNewLineCode.unix    :set fileformat=unix<cr>
menu CODE.ChangeNewLineCode.mac     :set fileformat=mac<cr>
" 文字コードを指定して再読み込み
menu CODE.Reload.utf-8              :e ++enc=utf-8<cr>
menu CODE.Reload.cp932              :e ++enc=cp932<cr>
menu CODE.Reload.euc-jp             :e ++enc=euc-jp<cr>
menu CODE.Reload.utr16_le           :e ++enc=utf-16le<cr>

3.現在の文字コードをステータスラインに表示するように設定。
set statusline=%<%f\ %m%r%h%w%{'['.(&fenc!=''?&fenc:&enc).']['.&ff.']'}%=%l,%c%V%8P

設定したステータスラインについての詳細は以下のコマンドを実行して参照してみてください。
:help statusline


以上です。

gvimをタブエディタにする。

windowsで使っているgvimをタブエディタにしてみました。
というわけで、やったことを紹介します。

1.gvimの設定ファイルに以下を追加

" 常にタブを表示
set showtabline=2

設定詳細
    0: 表示しない
    1: 2個以上のタブページがあるときのみ表示 (既定)
    2: 常に表示

2.レジストリエディタで以下のパスにある起動コマンドを修正(環境によって違う可能性あり)
/HKEY_CLASSES_ROOT/Applications/gvim.exe/shell/open/command 

修正内容
    修正前: "D:\Program Files (x86)\vim74-kaoriya-win64\gvim.exe" "%1"
    修正後: "D:\Program Files (x86)\vim74-kaoriya-win64\gvim.exe" -p --remote-tab-silent "%1"

以上です。
あっさり出来ちゃいます。


せっかくなので
タブ操作についてもちょっとご紹介。

:tabnew             新しいタブ作成。
gt                     次のタブに移動。次のタブがない場合は最初のタブに移動。
gT                    前のタブに移動。前のタブがない場合は最後のタブに移動。
:tabfir[st]           最初のタブに移動します。
:tabl[ast]           最後のタブに移動します。
:tabm[ove] [N]   カレントタブをN番目のタブの後ろに移動。(先頭にするなら0を指定)

新しいタブ作成などmapでキーを割り当てると便利です。
例えば、以下はブラウザと同じキー(Ctrl+t)を割り当てています。
" 新しいタブ作成
map <C-t> :<C-u>tabnew<CR>

タブ操作についてもっと知りたい場合は、以下のコマンドを実行してみてください。
:help tabpage


以上です。


※設定について: レジストリを編集する為、行う場合は注意して行ってください。

2016年7月16日土曜日

インストールしたXAMPPからApacheが起動しない

WebサーバーのApacheやら、
データベースのMySQLやらが入ってて
サクッと環境構築できて便利なXAMPPをインストール。

いざ、Apacheを起動しようとしたら
以下のエラーがでました。
---------------------------------------------------------------------------------
[Apache] Problem detected!
[Apache] Port 80 in use by "C:\Program Files (x86)\Skype\Phone\Skype.exe" with PID 2732!
[Apache] Apache WILL NOT start without the configured ports free!
[Apache] You need to uninstall/disable/reconfigure the blocking application
[Apache] or reconfigure Apache and the Control Panel to listen on a different port
[Apache] Problem detected!
[Apache] Port 443 in use by "C:\Program Files (x86)\Skype\Phone\Skype.exe" with PID 2732!
[Apache] Apache WILL NOT start without the configured ports free!
[Apache] You need to uninstall/disable/reconfigure the blocking application
[Apache] or reconfigure Apache and the Control Panel to listen on a different port

---------------------------------------------------------------------------------

Skypeが使っているポートとかぶってるよって事らしいです。

解決策

(1) Skypeの設定を変更する。
 1.Skypeを起動
 2.Skypeのメニューのツール - 設定 - 詳細 - 接続 を開いて
   「追加の受信接続にポート80と443を使用」のチェックを外す。
 3.Skypeを再起動

再度Apacheを起動してみて
起動したらおっけー。
終わり

(2) Apacheの設定を変更する。
 1.XAMPP Control Panelを起動
 2.Modules枠内ApacheのActionsにある
   Configをクリックし「Apache(httpd.conf)」をクリック(テキストエディタが開く)
 3.Listen 80と書かれた箇所を別のポート番号に変更する (例:Listen 8080)
   変更後ファイルを保存して閉じる
 4.同様に「Apache(httpd-ssl.conf」も開き変更保存し閉じる
   (変更箇所:Listen 443 例:Listen 44380)
   この時点で起動可能になるが毎回エラーメッセージが出るので追加で変更をする
 5.右側に並んだメニューにあるConfigをクリック
   「Configuration of Control Panel」が表示される
 6.Service and Port Settingsをクリック
   「Service Settings」が表示される
 7.Apacheタブを表示する
 8.「Main Port」、「SSL Port」を3.と4.で設定したListenの値に変更する
   例:Mai Portは8080、SSL Portは44380
 9.「Service Settings」、「Configuration of Control Panel」をSaveを押して順に閉じる
 
再度Apacheを起動してみて
起動したらおっけー。
終わり

変更に使用するポートについて補足(これに注意してると無難かな?)
 1.コマンドプロンプトから以下のコマンドを実行し、使用されていないポート番号を使用する。
   netstat -aon
   (ちなみにポートはローカルアドレス列に「アドレス:ポート番号」で表記されています)
 2.well-known portsは使用しない。


以上です。

2016年6月24日金曜日

Web Speech API を試してみた。

Web上で音声読み上げができるのないかなぁと調べたらあっさり見つかりました。

かなり棒読みだけど簡単に実装できて
世の中進化しててすごいです。

とりあえずサンプルおいておきますね。



ボタンを押すと音声が流れます。

以下ソース(test.html)

-----------------------------------------------------------------------------------------------------------
<!DOCTYPE html>
<html>
<head>
    <title>読み上げテスト</title>
</head>
<body>
    <button>読み上げる</button>
    <button>読み上げる</button>
    <script>
      document.getElementsByTagName('button')[0].addEventListener('click', function () { speechSynthesis.speak(new SpeechSynthesisUtterance('Web Speech API Test'));});
      document.getElementsByTagName('button')[1].addEventListener('click', function () { speechSynthesis.speak(new SpeechSynthesisUtterance('Hello World'));});
    </script>
</body>
</html>
-----------------------------------------------------------------------------------------------------------
こんな感じです。
参考にしたサイト
 Web Speech API
 セットした文字列を読み上げてくれる「Speech Synthesis API」
 Speech synthesiser

2016年6月11日土曜日

VirtualBox Vagrant CentOS7 Box 作りたい

※だいぶ古くなっていて以下の手順では作れない可能性が高いです。あくまで参考程度に。

いろいろ試してみようと思っても
PCの中がごちゃごちゃするのが嫌なので
VirtualBoxとVagrantを導入します。
ついでに自分でLinuxのボックス作ってLinuxの復習。

それぞれの説明。

VirtualBox:
 Oracle VM VirtualBox (オラクル ブイエム バーチャルボックス)。
 x86 ベース・システム用の仮想化ソフトウェア・パッケージ。
 現在(2016年4月)、Oracle Databaseで有名なオラクルが開発を行っている。

Vagrant:
 FLOSS(Free/Libre and Open Source Software)の仮想開発環境構築ソフトウェア。
 仮想マシンでの開発環境の構築を設定まで自動的に行うことができる。
 違う環境への移行も簡単(作成した仮想マシンを別のPCで再構築なんてのもできる)。

Boxファイル:
 Vagrantで作成・使用する、仮想マシンのベース(ひな形)になるイメージファイル。
 今回はこれを作成します。(ベースになる環境を構築するってこと~)

ちなみにBoxファイルを公開しているサイトもあって
それを利用することもできるらしい。


ではでは、
さっそく、導入する際に行った作業やなどをメモしていきます。

----------------------------------------------------------------------

ダウンロード、インストール

VirtualBox、Vagrantのインストール(ダウンロード:VirtualBox、Vagrant)

・インストールについては以下のサイトがとてもわかりやすかったです。
  Oracle VM VirtualBox をインストールする手順 (Windows 7)
  Vagrant をWindowsにインストールする手順

CentOS7.1 ISOファイルのダウンロード(ダウンロード:CentOS7Minimal)
CentOS7のインストールはVirtualBoxの設定後に行います。

VirtualBoxの設定

VirtualBoxを起動

VirtualBoxにて仮想マシンを新規作成
作成時の設定内容
  ・名前:CentOS7
  ・タイプ:Linux
  ・バージョン:Red Hat (64-bit)
  ・メモリーサイズ:2048 MB
  ・ハードディスク:仮想ハードディスクを作成する
  ・ハードディスクのファイルタイプ:VDI
  ・物理ハードディスクにあるストレージ:可変
  ・ファイルの場所とサイズ:場所はデフォルトのまま、サイズは40GB

作成した仮想マシンを右クリックして設定
 ・オーディオ  - オーディオを有効化のチェックを外す
 ・USB      - USBコントローラーを有効化のチェックを外す
 ・ネットワーク - アダプター1 - 高度 - ポートフォワーディング -
  新規ポートフォワーディングルールを追加(右上にある+マーク)
   設定内容
    名前:SSH
    プロトコル:TCP
    ホストIP:127.0.0.1
    ホストポート:2222
    ゲストIP: (空白)
    ゲストポート:22
 ・ストレージ - コントローラーIDE - 右端にあるディスクマークをクリック -
  仮想光学ディスクファイルを選択 - ダウンロードしたCentOS7のISOファイルを選択

 OKを押して保存

CentOS7を仮想マシンにインストール

仮想マシンを選択して起動をクリック
仮想マシンが起動してCentOS7のインストールが始まる
メモ:
「表示された仮想マシンの画面をクリックするとメッセージが表示される
 キャプチャ-をクリックで仮想マシン内の操作が可能になる。
 右のControlキーを押すと仮想マシンから抜けられる」

Install CentOS 7を選択してエンターキーを押下

言語設定を日本語にする。
続行をクリック

インストール先をクリック
 ローカル標準ディスクを選択
 完了をクリック

ネットワークとホスト名をクリック
 イーサネット(enpOs3)をオンにする
 完了をクリック

インストールの開始をクリック

ROOTパスワードをクリック
  パスワードを設定:vagrant
  完了を2回クリック

ユーザーの作成をクリック
  ユーザー名:vagrant
  パスワード:vagrant
  完了を2回クリック

再起動をクリック

※こっから先はTeraTermなどSSH接続用のツールを使用して作業をします。
TeraTermのインストールなどについてわからない方は以下のサイトなど参考にするといいかも。
Tera Termのインストール - Tera Termの使い方
接続するときのホストとポート番号は「VirtualBoxの設定」のネットワークで設定した
ホストIP:127.0.0.1、ホストポート:2222を指定します。
SSH接続しなくても作業はできますが、コピペなどができるのでSSH接続しての作業がおすすめ。


CentOS7の設定

sudoの設定

vagrantユーザーにsudoを許可する。

・以下のコマンドでvagrantをwheelグループに追加
 # usermod -aG wheel vagrant

・追加されたことを確認
  # id vagrant

・sudo の設定ファイルを開く
  # visudo
  (/etc/sudoers が開かれる)

・設定ファイルを編集
  ## Allows people in group wheel to run all commands
  %wheel  ALL=(ALL)  ALL (コメントされている場合はコメントを外す)

  ## Same thing without a password
  %wheel   ALL=(ALL)   NOPASSWD: ALL (コメントされている場合はコメントを外す)

 「Defaults               requiretty 」の次の行に以下を追加する。
 Defaults:vagrant    !requiretty

  保存して閉じる

SSH設定

# mkdir /home/vagrant/.ssh
# chmod 700 /home/vagrant/.ssh
# curl https://raw.githubusercontent.com/mitchellh/vagrant/master/keys/vagrant.pub >> /home/vagrant/.ssh/authorized_keys
# chmod 600 /home/vagrant/.ssh/authorized_keys
# chown -R vagrant:vagrant /home/vagrant/.ssh

不要サービスの停止・無効化

ひとまず参考にしたサイト通りに、サービスを無効化します。
(firewalldはもともとなかった・・)

全サービスの一覧表示(qを入力して一覧からコマンドラインに戻れる)
 # systemctl list-units --type service

状態確認
 # systemctl status postfix
停止
 # systemctl stop postfix
無効化
 # systemctl disable postfix
状態確認
 # systemctl status postfix 

SELinuxの無効化

いろいろ厄介らしいのでSELinuxを無効化。
# vi /etc/selinux/config

以下の行を変更
 変更前) SELINUX=enforcing
 変更後) SELINUX=disabled

既存パッケージのアップデート

# yum -y update

追加パッケージのインストール

# yum -y groupupdate "Development Tools"
# yum -y install man-pages-ja wget vim-enhanced

# reboot
(再起動されるので再度ログイン)

VirtualBox Guest Additionsのインストール

VirtualBoxの実行中仮想マシンのメニューから、
[デバイス] > [Guest Additions のCDイメージを挿入...]を選択し、
以下の手順でインストールする。
  # mkdir /media/cdrom
 # mount -r /dev/cdrom /media/cdrom
 # sh /media/cdrom/VBoxLinuxAdditions.run
  yesを応答する。
 # umount /media/cdrom

----トラブルシューティングメモ----
 実行中に[失敗](FAILED)が出てなかなか正常にインストールできなかった。
 ログなどいろいろ調べた結果、 以下のサイトで実施している
 トラブルシューティングの内容を実行したら正常にインストールできました。
 VirtualBox/クリップボードの共有

 【実施した内容】
  ls で確認したkernelのバージョンと
  uname -r で確認したkernelのバージョンが同じことを確認
   # ls /usr/src/kernels/<kernelバージョン>
     # uname -r

  違った場合は以下を実施する  
   # yum remove -y kernel-devel kernel-headers gcc
   # yum install -y kernel-devel-`uname -r` kernel-headers-`uname -r` gcc

  .bashrcファイルの末尾に以下の行を追記する。
   # vi ~/.bashrc
    export KERN_DIR=/usr/src/kernel/`uname -r`
  .bashrcの再読み込み
   # . ~/.bashrc
  インストールの再実施
   # sh /media/cdrom/VBoxLinuxAdditions.run

yum のキャッシュ削除

# yum clean all

シャットダウン

# shutdown -h now

ボックスの作成

コマンドプロンプトを起動(ファイル名を指定して実行のところでcmdを入力して実行すると出てくるよ)

vagrant package --base <仮想マシン名> package.boxを実行してboxファイルを作成。
 > vagrant package --base CentOS7 package.box
 >dir package.box

※package.boxは実行した時の場所(フォルダ)に作成されるので移動してから行う

ボックスをVagrantに登録

vagrant box add --name <Vagrantでのボックス名> package.box
 > vagrant box add --name centos7 package.box
 > vagrant box list
centos7が表示され追加されていることを確認。

ボックスを使ってみる

好きな場所にフォルダを作成します。(VirtualBox上での名前になります。日本語は使わないほうが無難かな?)
今回はCドライブの直下にVagrantフォルダを作成して、
その下に各仮想マシン用のフォルダを作成して管理しようと思います。

作成したらコマンドプロンプトで作成したフォルダに移動。
 > cd C:/Vagrant/testVagrant

vagrant init <Vagrantでのボックス名>を実行して仮想マシン用の設定ファイルを作成。
> vagrant init centos7

実行場所にVagrantfileが作成されます。

以下のコマンドで仮想マシンの起動(初回実行時は仮想マシンの作成)
 > vagrant up

以下のコマンドでSSH接続用のホスト名、ポート番号、ユーザ名が表示されます。
 > vagrant ssh

SSH接続する。


以上です。
これで多分できるはず!
新しいことを気軽に試せるっていいですよね。

おわり。



以下は参考にさせてもらったページ

 ・systemctlコマンド
  6.2. システムサービスの管理
・VagrantでBox作成
  Vagrantコマンド
・その他
  Tera Termのインストール - Tera Termの使い方
  VirtualBox/クリップボードの共有


2016年3月20日日曜日

無料出版記念セミナーに参加してみた。

セミナーに参加してみました。
参加したセミナーは以下になります。

「RDB技術者のためのNoSQLガイド」出版記念セミナー

セミナーでは著者の方々が発表者となって、
NoSQLについての基本的な説明や
本で紹介している各技術について紹介してくれました。

紹介してもらった技術

以下、覚書メモをずらずらと列挙。

1.MongoDB
  • ドキュメント指向データベース
  • ドキュメント指向データベースはJSONを使用する。
  • JSONなので人間にとって読み書きが容易。
  • 水平分散(シャーディング)可能
2.Cassandra
  • 分散データベース。
  • KVS(キーバリューストア)。
  • Apple, Sony, Netflixなども使用しているDB。
  • 分散したDBがそれぞれ独立、オペレーションも各DBから可能。
  • 日本語ドキュメントが公開されている
3.Neo4j
  • グラフデータベース
  • 繋がりは最も価値のある情報。
  • 18世紀からあるグラフ理論。
  • グラフデータベース自体は昔から存在、研究者など一部の人が利用していた。
  • 汎用化などされて普及してきている。
4.MicrosoftAzureDocumentDB
  • ドキュメント指向データベース
  • マイクロソフトが提供するパブリッククラウドサービス。
  • 今回紹介していただいたDBの中では唯一有償。
だいたいこんな感じの内容だったかな?


ところで、
はじめ、勉強会だと思って参加したんですが、セミナーということで、
セミナーと勉強会の違いって何だろうと疑問に。

ちょっと検索してみました。
以下の記事がわかりやすかったので紹介します。

(by 20代の読書会・朝活を東京で開催中!東京の読書会?)

この記事によると(以下抜粋)
 セミナー:
  高めのお金を払ってプロの講師が様々なことを教えてくれます。
  プロなので、話し方も上手く、その業界、手法の最新のことを教えてくれます。
 勉強会:
  ある1つのテーマに対して、お互いに学んだこと、知っていることを共有します。
  勉強会とセミナーに明確な境界線がないため。セミナーになっている場合もあります。

勉強会とセミナーに明確な境界線がない、とのことで、
そこまで違いはないようです。

別のところでは、セミナーは受け身、勉強会は自分も参加。
など区別している人もいましたが。

何はともあれ、
初のセミナー参加、
最新技術を知ることができて満足です。

これをきっかけに何かを始めなきゃ意味無しですが・・。
まーのんびりやっていきます。

そのうち、実際にインストールして
試してみたとかやってみるのも面白いかな?

ではでは、
今回は以上。

2016年3月16日水曜日

つらつらと書くのは時間がかかる

記事を書いている時に、

「日本語で、これあってるかな?」

と曖昧なことがあったので調べてみた。という話。


なんだったかなぁっと調べた日本語は「つらつらと」。
たまに「何々をつらつらと書く」と書いている人を見かけますよね。

記事では、資格を並べて書こうと思い、
その際に「つらつらと」=「並べて」の使い方をしようとしていました。

結論から言うと、この使い方は間違いのようです。

以下、検索して調べた意味(なんとなく2つの辞書を使用)


つらつら:念を入れて物事を考えたり、見たりするさま。よくよく。つくづく。「―考えてみるに」
(by goo辞書)

つらつらと:考えなどが深くじっくりとしているさま
(by Weblio辞書)


完全に間違った使い方をしようとしていました。お恥ずかしい(/ω\)


記事では、これに気づいて「ずらずらと」に変えています。

ずらずらと:とぎれないで長く続くさま。「条件を―(と)並べたてる」
(by goo辞書)

これなら、多分あってるかな?連続で並べてるし。


自分の使い方は完全に間違っていたわけですが、
「つらつらと文章を書く」で「なんとなく書く」といった意味で使っている人を見かけますが、
それはあってるのかな?と疑問。

これも「なんとなく」=「つらつらと」じゃなくて
なんとなく並べて書く(「つらつらと」=「並べて」)の使い方がしたかったのかな?


ちなみに、
goo辞書でつらつらとを調べた時にページ下部にある
「つら‐つら【▽熟/▽熟々/×倩】」の後の言葉 一覧の中にあるワードを発見。

つらつら‐つばき【列列椿】:並んで数多く咲いている椿の花。

この「つらつら【列列】」もあるから
もしかして並べるとき使うのもあり?


日本語って本当難しい。

自分は通じればいいじゃん派です。

以上。

プロフィール

名前:shiroma

出身:沖縄

住んでる所:東京都内(中野~新宿付近)

学歴:専門学校卒業

職業:雑用系エンジニア

職歴:
  • 直近はIoTを利用した保険システムの運用補助用に
    画面やマーケティング用のダッシュボードQuickSightで作成中。
  • その他はいつか書く予定・・・昔の職務経歴書引っ張り出さなきゃ・・・

業務で使うor使った技術:
  • Java、Spring Boot
  • JavaScript
  • Bootstrap4
  • Python3
  • AWS
  • Git
  • CentOS
  • Vagrant、Ansible

業務で使ったことのあるAWS:
  • EC2
  • Lambda
  • Athena
  • QuickSight
  • S3
  • CloudWatch
  • IAM
  • CloudFront
  • APIGateway

趣味でやってるorやりたい:
  • 英語
  • Erlang (本購入)
  • Elixir
  • Python3 (業務でもちょっと使う)
  • JavaScript (業務でもちょっと使う)
  • Vue.js
  • Docker
  • AWS
  • Haskell (本購入)
  • Scala (本購入)

やりたいことはあれど、やり切れてない感・・(´Д`)。

リンク:
  • Qiita:最近はQiitaに投稿することが多いです。
  • GitHub:未だに用途が定まっていない・・。
  • GitHubGist:雑多なコードなど。

趣味:
  • ダンス(ブレイクダンス、POP)
  • 動画(映画、アニメ、ゲーム実況など)見ること
  • もくもく勉強会

良く使うツール:Chrome、Vim、サクラエディタ、Eclipse、WinMerge

資格等:
  • 平成19 普通自動車免許第一種
  • 平成19 Microsoft Certified Associate(MCA)セキュリティ
  • 平成20 ビジネス能力検定 3級
  • 平成20 サーティファイJAVAプログラミング能力認定試験3級
  • 平成20 XML Master Basic
  • 平成20 Sun 認定 Java アソシエイツ(SJC-A)
  • 平成23 日本商工会議所主催 簿記検定2級
  • 平成25 普通自動二輪車
  • 平成26 Cisco Certified Network Associate(CCNA)←失効・・
  • 平成26 LPICレベル1
  • 平成27 TOEIC スコア Listening:125 Reading:85 Total:210
  • 平成28 TOEIC スコア Listening:185 Reading:85 Total:270 60点UP!(*´ω`)b

書くこと思いついたらその都度、追加予定。