あまプロではウェブサイトを作成する事が有ります。
ウェブサイトを作成する際にJavascriptのライブラリを使う事が有ります。
地図を表示するOpenLayersとか、最近はオープンソースで色々と便利なライブラリが有りますね。
ライブラリは動作に不要な空白や改行やコメント等を削除して軽量化(ミニファイ)されて配布されている場合が多いです。
*.min.jsとかね。
配布や実行する場合には軽量化されたJavascriptファイルが良いのですが、解析(人間が読む)する場合には改行や空白等が有った方が読み易いです。
なので、ファイルを解析する場合には軽量化されたファイルを整形表示する必要が有ります。
ブラウザはいつもFirefoxを使ってまして、Firefoxには軽量化されたJavascriptを見易く整形表示する機能が標準で備わってます。
なんですが、現在は備わってないです。
Firefoxは最新版の68を使ってます。以前のバージョンでは確かに整形表示出来てましたし、モジラのサイトにも出来ると載っているんですが…最新版では整形表示は出来なくなってるい様です。
しゃーないんで、現在はChromiumを使って整形表示してます…。
2019年8月24日土曜日
2019年8月18日日曜日
UbuntuにRMecabをインストールする
あまプロではRを使ってテキストマイニングの授業を行う事が有ります。
先日、生徒さんへRの環境構築を教えた際にハマりポイントが有りましたのであメログ。
Ubuntu19.04では以下のコマンドでR言語とmecabをインストール出来ます。
続いて確認
最後にRからMecabを利用する為に、RMecabをインストールします。
Rを起動して
どうやらRからmecabを参照出来てへん様です。
探してみます。
なもんで、リンボリックリンクを作って参照を追加したります。
再度、R上からRMecabをインストール。
RとMecabを用いると日本語アンケートの解析とかが出来る様になるんで便利です。
先日、生徒さんへRの環境構築を教えた際にハマりポイントが有りましたのであメログ。
Ubuntu19.04では以下のコマンドでR言語とmecabをインストール出来ます。
sudo apt install r-base mecab確認
R --version現時点の最新版(3.6.1)やないけどまぁ良ぇわ
R version 3.5.2 (2018-12-20) -- "Eggshell Igloo"
Copyright (C) 2018 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)
R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under the terms of the
GNU General Public License versions 2 or 3.
For more information about these matters see
http://www.gnu.org/licenses/.
続いて確認
mecab --versionこれでRとMecabをインスール出来ます。
mecab of 0.996
最後にRからMecabを利用する為に、RMecabをインストールします。
Rを起動して
RR上でRMecabをインストールします。
install.packages("RMeCab", repos = "http://rmecab.jp/R", type = "source")なんですが、私の環境では下記のエラーが出ました。
/usr/bin/ld: -lmecab が見つかりませんmecabをインストールしたのにmecabが見付からへんと言うております。
collect2: error: ld returned 1 exit status
make: *** [/usr/share/R/share/make/shlib.mk:6: RMeCab.so] エラー 1
ERROR: compilation failed for package ‘RMeCab’
* removing ‘/home/masayuki/R/x86_64-pc-linux-gnu-library/3.5/RMeCab’
ダウンロードされたパッケージは、以下にあります
‘/tmp/RtmpZVhDFY/downloaded_packages’
警告メッセージ:
install.packages("RMeCab", repos = "http://rmecab.jp/R", type = "source") で:
パッケージ ‘RMeCab’ のインストールは、ゼロでない終了値をもちました
どうやらRからmecabを参照出来てへん様です。
探してみます。
locate mecab
︙
/usr/lib/x86_64-linux-gnu/libmecab.so.2有るやんけ
/usr/lib/x86_64-linux-gnu/libmecab.so.2.0.0
なもんで、リンボリックリンクを作って参照を追加したります。
sudo ln -s /usr/lib/x86_64-linux-gnu/libmecab.so.2 /usr/lib/x86_64-linux-gnu/libmecab.soこんだけ
再度、R上からRMecabをインストール。
install.packages( "RMeCab", repos = "http://rmecab.jp/R", type = "source")今度は上手いこと行けました。
︙
installing to /home/masayuki/R/x86_64-pc-linux-gnu-library/3.5/RMeCab/libs
** R
** byte-compile and prepare package for lazy loading
** help
*** installing help indices
** building package indices
** testing if installed package can be loaded
* DONE (RMeCab)
ダウンロードされたパッケージは、以下にあります
‘/tmp/RtmpH1Viwj/downloaded_packages’
library( RMeCab)ライブラリを追加して、
unlist( RMeCabC( "すもももももももものうち"))正しく品詞を解析出来てます。
名詞 助詞 名詞 助詞 名詞 助詞 名詞
"すもも" "も" "もも" "も" "もも" "の" "うち"
RとMecabを用いると日本語アンケートの解析とかが出来る様になるんで便利です。
2019年8月17日土曜日
Scratch3.0のバグについて
あまプロではScratchを使ったプログラミングを教えています。
先日、生徒がScratch3.0でバグを見付けました。
スクラッチのコスチューム編集で、ある一定の操作をするとスクラッチがクラッシュするという物で、簡単に回避は出来るんですけど、毎回わざわざ回避せなあかんのは面倒なんで、改修してもらおうと考えてます。
なので、GitHubにバグ報告を挙げときましたオネガイエライヒト!
恐らく近々改修されると思うので、生徒にはこの際にエラーの種類について教えときました。
先日、生徒がScratch3.0でバグを見付けました。
スクラッチのコスチューム編集で、ある一定の操作をするとスクラッチがクラッシュするという物で、簡単に回避は出来るんですけど、毎回わざわざ回避せなあかんのは面倒なんで、改修してもらおうと考えてます。
なので、GitHubにバグ報告を挙げときましたオネガイエライヒト!
恐らく近々改修されると思うので、生徒にはこの際にエラーの種類について教えときました。
- シンタクスエラー 形式エラー
- ランタイムエラー 実行時エラー
- ロジックエラー 論理エラー
2019年7月1日月曜日
JavaScriptのforループについて
あまプロではウェブサイトを作成する事が有ります。
その際、謎現象に遭遇したのであメログ。
JavaScriptでHTML要素をgetElementsByTagName( )で取得し
0
1
2
3
︙
item
という結果が出力されます。
何やねんitemって…。
ちなみに
なんかJavaScriptのfor...inループって癖が有りますね。
どないなってるんかなぁ…と思って調べたら
こういう仕様でした。
forループとfor...inループとfor...ofループ、それぞれ微妙にちゃう様です。
なので今回は
その際、謎現象に遭遇したのであメログ。
JavaScriptでHTML要素をgetElementsByTagName( )で取得し
var elements = document.getElementsByTagName( 'tr');の様にfor inループで回すと、何故か
for( var i in elements)
{
console.log( i);
}
0
1
2
3
︙
item
という結果が出力されます。
何やねんitemって…。
ちなみに
var elements = document.getElementsByTagName( 'tr');という様にインクリメントするforやと発生しません。
for( var i = 0; i < elements.length; i++)
{
console.log( i);
}
なんかJavaScriptのfor...inループって癖が有りますね。
どないなってるんかなぁ…と思って調べたら
こういう仕様でした。
forループとfor...inループとfor...ofループ、それぞれ微妙にちゃう様です。
なので今回は
for( var element of document.getElementsByTagName( 'tr'))for...ofループにし様としたんですが、for...ofはスマホのデフォルトブラウザで動かなかったので、諦めて普通のforループに戻しましたとさ…。
{
console.log( element);
}
2019年6月28日金曜日
端末からクリップボードへコピーについて
あまプロではターミナルからクリップボードへコピーする場合があります。
コマンドでクリップボードにコピーする方法をあメログ。
xclip -sel clip < 適当なファイル名
xclipがインストールされてない場合は適宜インストールして下さい。
コマンドでクリップボードにコピーする方法をあメログ。
xclip -sel clip < 適当なファイル名
xclipがインストールされてない場合は適宜インストールして下さい。
2019年6月24日月曜日
グーグルフォームの回答のコピーメールについて
あまプロではフォームの作成をお受けする事が有ります。
グーグルフォームを良く使うのですが、初期設定だと少し使い難いので、あメログ。
グーグルフォームには回答のコピーをメールで送信する機能が有ります。
しかし、このメールをHTML未対応(テキスト形式のみスマホの標準メーラ等)のメーラで受信するとかなり見難くなります。
致命的なのが、チェックボックスやドロップダウンリストで選択項目が送られません。
つまりフォームで何を選択したか確認できないのです。
この不具合はいつかは改修されるかもしれませんが、GoogleAppsScriptを使えば今から改修できます。
サンプルはこんな感じ。
プロジェクトのトリガーでフォーム送信時にスクリプトを実行する様に設定するだけです。
フォームの入力内容をメール本文に出力しているだなので、適宜メール本文は編集して下さい。
グーグルフォームを良く使うのですが、初期設定だと少し使い難いので、あメログ。
グーグルフォームには回答のコピーをメールで送信する機能が有ります。
しかし、このメールをHTML未対応(テキスト形式のみスマホの標準メーラ等)のメーラで受信するとかなり見難くなります。
致命的なのが、チェックボックスやドロップダウンリストで選択項目が送られません。
つまりフォームで何を選択したか確認できないのです。
この不具合はいつかは改修されるかもしれませんが、GoogleAppsScriptを使えば今から改修できます。
サンプルはこんな感じ。
function submitForm(e)グーグルフォーム側ではメールアドレスを収集するにチェックを付け、回答のコピーを送信のチェックは外す。
{
var vName = 'グーグルフォーム';
var vFrom = 'form@google.com';
var vTo = e.response.getRespondentEmail( );
var vSub = 'グーグルフォーム内容確認';
var vBody = 'フォームの内容の写しをお送りします。\n\n';
for( var i in e.response.getItemResponses( ))
{
vBody += e.response.getItemResponses( )[ i].getItem( ).getTitle( ) +' '+ e.response.getItemResponses( )[ i].getResponse( ) +'\n';
}
MailApp.sendEmail( {from:vFrom, to:vTo, subject:vSub, name:vName, body:vBody});
}
プロジェクトのトリガーでフォーム送信時にスクリプトを実行する様に設定するだけです。
フォームの入力内容をメール本文に出力しているだなので、適宜メール本文は編集して下さい。
2019年6月9日日曜日
ExcelのVBAで文字列の中でダブルクオーテーションを使う
あまプロでは表計算のマクロ(スクリプト)の授業を行う事が有ります。
先日、文字列の扱いで質問が出たのであメログ。
LibreOfficeでもGoogleAppsScriptでもExcelでも文字列はダブルクオーテーションでくくります。
MsgBox "こんな感じ"
で、文字列内でダブルクオーテーションを使いたい場合はエスケープする必要が有ります。
LibreOfficeとExcelではこんな感じ
MsgBox "これが""ダブルクオーテーション""です。"
GoogleAppsScriptではこんな感じ
Logger.log( "これが\"ダブルクオーテーション\"です。")
例えばマクロで表計算の関数を出力したいとかはこの様にします。
先日、文字列の扱いで質問が出たのであメログ。
LibreOfficeでもGoogleAppsScriptでもExcelでも文字列はダブルクオーテーションでくくります。
MsgBox "こんな感じ"
で、文字列内でダブルクオーテーションを使いたい場合はエスケープする必要が有ります。
LibreOfficeとExcelではこんな感じ
MsgBox "これが""ダブルクオーテーション""です。"
GoogleAppsScriptではこんな感じ
Logger.log( "これが\"ダブルクオーテーション\"です。")
例えばマクロで表計算の関数を出力したいとかはこの様にします。
登録:
投稿 (Atom)
