gaggitのブログ

コーディング、ガジェット、TIPS関連、FX

Perl module インストール 3つの解決方法

PerlでなかなかインストールがOKにならない人のために、メモ書きです。Perlのモジュールをインストールが成功するのに、とりあえず3つほど方法があります。

1つ目には、cpanmをインストールして、cpanの代わりにcpanm(cpanminus)でインストールをしてみる。(前回、記事にしたdmake.exeはcpanmに入っていたもよう)以下は、cpanmのインストール方法。

cpan App::cpanminus

 

2つ目は、search.cpan.orgのサイトから、前のバージョンのモジュールをダウンロードし、解凍後、「INSTALL」ファイルに従って、手動でインストールしてみる。

 

3つ目は、cpanmに-Fまたは--forceオプションを使用して、無理やりインストールです。

cpanm --force モジュール名

 

p.s.

cpanmを導入後、--forceオプションを使用して、ようやくGoogle::API::Clientモジュールのインストールに成功。

 

dmake インストール 解決

Perlで、モジュールをインストールしようとすると、dmakeがなく、エラーとなります。ネットで検索すると、windowsではMicrosoftから提供されているnmake.exeを使用することまでわかりましたが、すでにダウンロード先のリンクがなくなっています。

次に試したのが、cpanでのdmakeのインストール

コマンドプロンプトから、cpan install dmakeを実行したところ、なにやら成功している模様。

しかし、C:\Perl64\binとC:\Perl64\site\bin配下には、作成されず。。。

夜になって、C:\Perl64\cpan\build配下にdmake-(6文字の英数字)のディレクトリがあるのを発見。その配下にdmake.exeがありました。。。

 

p.s.

開発も2歩進んで、3歩下がっているようイメージです。進んで、下がっていというよりも、丘の先にさらに高い山がそびえたっていて、その前に深い谷があるような感じです。。。

暑い、暑い上に、今年はエアコンがないので、ことさら開発が進まねー。

 

2019/12/20追記

かなり前から、MinGWの64bit版を使用して、dmakeを含め、ビルドを行っています。

時には、Visual Studio 2019 Commnity版のBuildToolも使用しています。

Perlでの文字列の置換 暫定対処

正規表現と言ったら、いまだにsedだったりしますが、Perl正規表現で文字列の置換(抽出)がうまく行かなったので、その例と対処方法を記しておきます。

文字列:2017-07-28T12:00:00Z

置換(抽出)したい文字列:2017-07-28

$data="2017-07-28T12:00:00

×

my $date=~ ($data =~ /([0-9]{4}-[0-9]{2}-[0-9]{2})T.*/);

(my $date, my $temp)=~ ($data =~ /([0-9]{4}-[0-9]{2}-[0-9]{2})T(.*)/);

上記で、とりあえず日付だけ抽出することが、できました。

固定文字列なので、substr関数のほうが、記述も簡単で処理も速いのは十分、承知していますが、ここではあくまで例として。。。

my $date = substr($data,0,10);

 

EditTextで文字の行間を変更

文字の行間の変更とアンダーラインの削除が一度にできます。と言うよりも、デフォルトで設定されているものをクリアするイメージかも。この設定により、文字の行間が縮まります。

active_main.xmlのEditViewタグ内に以下を追記します。

android:background="@null"

もちろん、styles.xmlにも以下のようにして、記述できます。
<style name="Style1" >
<!-- Customize your theme here. -->
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:ems">4</item>
<item name="android:background">@null</item>
<item name="android:inputType">number</item>
<item name="android:padding">0sp</item>
<item name="android:textSize">16sp</item>
</style>

styles.xmlに記述する場合には、active_main.xmlのEditViewタグ内で以下のように関連付けます。
style="@style/Style1"



スマホ フリック入力でコーディング(ATOK編)

スマホで暇つぶしに普段はカレンダ、ToDoListの更新、メール、ゲーム、ブラウジングをしていますが、非効率でもなんだか無性にコーディングをしたくなる時があります。そんな時に限って、ノートPCは自宅に置いてたりします。

コーディングのためにスマホに接続可能なBluetoothのキーボードを買うのも、なんだかなー。ということで、たとえ数行でもスマホで入力しようと思いソフトキーボードを表示させて、英字キーボードで入力するも記号入力にひと手間かかり、面倒くさい。

幸い、ATOKフリック入力設定で、1から6キーと8キーの合計7つの右キーの記号割り当ての設定変更が可能なので、以下のように右キーの割り当てを変更してみました。(7キーはs、9キーはzに割り当てなので変更不可)

1キー {(左中かっこ)

2キー [(左大かっこ)

3キー "(ダブルクォーテーション)

4キー }(右中かっこ)

5キー ](右大かっこ)

6キー =(イコール、デフォルトのまま)

8キー ;(セミコロン)

f:id:gaggit:20170630163332p:plain

変更方法は、「設定」「言語と入力」「ATOK...」「テンキー」「フリック入力の設定」の「英字キーフリック」です。割り当てられるのは、記号のみで、リストから選択となります。

 ちなみにデフォルト設定は、

1キー :(コロン)

2キー #(シャープ)

3キー _(アンダースコア)

4キー %(パーセント)

5キー &(アンパサンド)

6キー =(イコール)

8キー ~(チルダ)

 

p.s.

7か月ぶりにブログを更新しました。7か月の間、会社の倒産、パワハラなどで転職を3回しています。なんだかモチベーションが湧かなく、白猫ばかりやってましたが、最近、少し気持ちが復活。。。

開発メモ(Socket通信)

 前々回、開発メモで書き残したSocket通信での試行、正確にはSSLSocketを使用しての通信ですが、コードをHttpURLConnectionから書き直してみました。結果は、FusionTables接続には至りませんでしたが、今までInputStreamがnullだったのが、レスポンスが返ってきました。変更前のコードは、AsyncTask+HttpURLConnectionでしたが、変更後のコードは、IntentService+SSLScoketの組み合わせです。AsyncTaskで出来なかったと言うわけではなく、単純に試していないだけです。もう少し試行したのち、本命のJavaScriptでの記述に変更してみたいと思います。

レスポンス結果は簡略して、「400 Bad Request」です。

あと、言語がenとなっているので、こちらもヘッダを追記して、対応しないといけないですね。。。

400. That's an error.

Your client has issued a malformed or illegal request.That's all we know.

 

参照サイト:

MSC00-J. セキュアなデータ交換には Socket クラスではなく SSLSocket クラスを使用する

Update Google Play services 解決

 SDK Toolsから最新版のパッケージをダウンロードし、build.gradleのdependenciesのバージョンを書き換えたけど、Androidのシミュレータに「Update Google Play services」のメッセージが表示されます。一通り見直してみたり、Clean build、Rebuild、Invalidate Cachesを実行して見ましたが、効果なし。そう言えば、最近、Javaを7から8に変更しました。Android Studioの画面には「Decompiled.class, bytecode version:51.0(Java 7)」と表示されています。なるほど、Java 7で再コンパイルしなさい、か。。。

Java 7に戻す気がありませんので、他のパッケージ類をJava 8に再コンパイルしなければならないようです。orz

解決方法は、以下です。

・「Tools」「Android」「SDK Manager」でAndroid SDKを立ち上げます。

・中央下の「Launch Standalone SDK Manager」をクリックし、Android SDK Managerを起動します。

・削除する前にスクリーンショットで、パッケージ、バージョンなどが分かるように保存しておきます。

Android Studioを終了しておきます。

Android SDK Managerに戻り、パッケージをすべて選択し、右下の「Delete xx packages...」をクリックします。(1つ消せないパッケージ(SDK build tool)あり)

・ポップアップで削除するパッケージの一覧が表示されるので、「Yes」をクリックします。

 (削除するパッケージが多すぎて、「Yes」が見えないので、ディスプレイを縦に変更)

・再度、インストールするパッケージを選択し、右下の「Install xx packages...」をクリックします。

・次画面で、「Accept License」にチェックを入れ、「Install」をクリックします。

*モジュールの削除は自己責任でお願いいたします。