gaggitのブログ

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

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」をクリックします。

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

開発メモと今後のヒント(HttpURLConnection)

自分用の開発メモです。やろうしていることは、FusionTables接続です。AsyncTaskの中でHttpURLConnection接続がうまくいきません。InputStreamがnullの為、エラーとなっています。ResponseCodeもnullの為、どんなエラーなのか不明ですが、おそらく400のバッドリクエストだと推定しています。また、クエリでaccess_token=tokenを記述するのは古いので、ヘッダ内でBearerでtokenを記述するように変更しています。(*1)ヘッダを記述することは出来ましたが、InputStreamでのエラーは変わらずです。

 

今後のヒント

・HttpURLConnectionを止めて、socketを使用してみる。

WindowsのブラウザでURLで記述(tokenなし)すると、FusionTablesには接続できているので、Java内でJavaScriptで記述してみる。

・もう一度、URLなどのスペルを見直してみる。

・AsyncTaskを使用した非同期のスレッドを止めて、ThreadまたはRunnableクラスのマルチスレッドクラスを使用してみる。

 

参照サイト:

*1

https://developers.google.com/fusiontables/docs/v2/migration_guide#oauth

 

p.s.

派遣ですが、次の仕事が決まりました。来週半ばから働きます。前の仕事より賃金は安いですが、前々の仕事より若干高いです。束縛時間(通勤時間+労働時間)は、前の仕事より長く、前々の仕事と同じくらいです。

横浜市臨時福祉給付金

横浜市健康福祉局から横浜市臨時福祉給付金の申請書が届きました。対象者は、昨年度、市民税が0円の方で、3,000円(1回のみ)給付されます。とりあえず、3,000円でもありがたいです。障がい者の方は、3万円です。申請するには、申請書と本人確認書類、口座の通帳またはカードのコピーが必要です。申請期間は来年の2/1までなので、対象者の方は、お早めに。

ちなみに横浜市では、対象の所得金額(控除後の金額)が35万以下(独身者の場合)は、住民税が0円となります。均等割りも0円です。詳細は、以下のリンクを参照してみてください。

www.city.yokohama.lg.jp

去年、かなり貧乏だったのね。。。

追記

今年も対象者確実でした。orz