pythonをはじめて使った際のメモ 1

コメントアウト & 変数 & 演算

2系、3系かまずチェック大きく違う


$ python -V Python 3.6.4

実行


$ python

で対話式で実行。


$ python testfile.py

でファイルを指定して実行。

コメントアウト


# 行単位のコメントアウト

""" 複数行コメント アウトです。 """

def main(): """ test1 """ print "hoge" """ test2 """

このtest2の複数行コメントアウトはエラーになる。
文字列リテラルとなるためエラーになるようです。

変数


# 変数 hensu = "hello" print(hensu) # 定数 (pythonは定数という概念がないので、大文字変数なら定数として扱う風習がある INFO_URL = "http://teisu-hohohohohohhogegegeeegeg.com"

# 文字列変数(複数行) hukusuugyou = """111 222 333 444 555""" print(hukusuugyou) # 真偽値 flg = True # 大文字注意 flg = False

演算


print("hoge" + "hoge") # hogehoge print("hoge" * 5) # hogehogehogehogehoge これすごい

Unity ゲームなどで使う赤から青など徐々に色を変える計算

Unityで、指定色から指定色に切り替わる処理を書くが、毎回忘れてしまうので、メモ!

下記のように、赤から、緑など。通常の黒から白や、透過度を徐々に変えるのは簡単だが、
RGBをいじって、青から、赤などの色変化の計算はちょっと手間なので忘れてしまう。

指定の色から、指定の色に徐々に色が変わるサンプルスクリプト



// Color(0.17254901960784f ,0.074509803921569f ,0.062745098039216f); // スタートカ ラー // Color(0.97647058823529f ,0.83921568627451f ,0.31764705882353f); // ゴールカラー // グラデーションのポジションを管理する値 0f〜1f float currentPointColor = (float)gameCheckPoint / (float)goalCheckPoint; float r = (0.97f - 0.17f) * currentPointColor + 0.17f; // 指定の色から指定色へグラデーション。 float g = (0.89f - 0.07f) * currentPointColor + 0.07f; // 指定の色から指定色へグラデーション。 float b = (0.31f - 0.06f) * currentPointColor + 0.06f; // 指定の色から指定色へグラデーション。 scaffoldObj.transform.Find("background").GetComponent<SpriteRenderer>().color = new Color(r,g,b);

ポイント


float r = (0.97f - 0.17f) * currentPointColor + 0.17f;

R = (Rのゴール値 – Rのスタート値) * グラデーションのポイントを管理 + Rのスタート値 という意味

※RはRGBの赤

また、RGBの#ffffffなどのHEX値から、上記Coloe型の0f,0f,0fのフォーマットに変換する場合は、下記ツールを使うと簡単に変換できます。

#ff0000 → 1f,0f,0f 変換ツール

Mac Book Pro(high sierra)をつかっていて、残り容量が気になった際にみるところ

PCの容量を使っているところ横断でぱっと見る場合(コマンド使わない場合)

Cmd + Space で、「ストレージ」と検索すると、
ストレージの管理」がでるのでそれを開く。

不要なファイルを確認で、だいたい容量が大きいファイルを見つけられる。

コマンドでさくっと全体容量をチェック

まず空き容量をdfコマンドでチェック


$ df -h

a$ df -h Filesystem Size Used Avail Capacity iused ifree %iused Mounted on /dev/disk1s1 234Gi 210Gi 21Gi 92% 2517498 9223372036852258309 0% / devfs 184Ki 184Ki 0Bi 100% 638 0 100% /dev /dev/disk1s4 234Gi 2.0Gi 21Gi 9% 2 9223372036854775805 0% /private/var/vm map -hosts 0Bi 0Bi 0Bi 100% 0 0 100% /net map auto_home 0Bi 0Bi 0Bi 100% 0 0 100% /home

Capacity 92%なので、のこり8%の21Gしたない。。

どのディレクトリのどのファイルが大きいか掘り下げて探す


$ du -g -x -d 5 / | awk '$1 >= 5{print}'

パスワードを要求されるので、ログイン時に使用しているパスワードを入力する。パスワードは入力しても画面には何も表示されないので気にせず入力した後returnキーを押して実行すること。正しく実行されると、ルートから5階層下までのフォルダの容量を確認し、容量が5GB以上のフォルダがリストアップされる (出力結果の数字は各フォルダの容量 (単位:GB))。すべてがリストアップされるのには時間がかかるので、プロンプト (例:username-no-macbook:~ username$) が出て次のコマンドが入力できる状態になるまで待つこと。
#最後にリストアップされるフォルダ名が / のみの項目はファイル容量の合計値なので無視してよい

‘ 引用元 サイト: https://discussionsjapan.apple.com/docs/DOC-1081

iphoneアプリなど開発している場合

xcodeで一時ファイルや、もう使わないアーカイブファイルがのこっていてそれが
容量を結構逼迫している。
頻繁に開発していると普通に1週間で20Gとか増えている。

アーカイブファイル


$ cd ~/Library/Developer/Xcode/Archives

DerivedData


$ cd ~/Library/Developer/Xcode/DerivedData

iPhone Simulator


$ cd ~/Library/Application\ Support/iPhone\ Simulator

抹消したい記録を復活できてしまう魔法のウェイバックマシーン!

抹消したい記録を復活できてしまう魔法のツール

長く生きていると末梢してしまいたい記憶の1つや2つ、

そして4つや5つ、

はたまた、星の数・・・

消えたはずの過去の記事を見ることができてしまう

WayBack Machine

指定のURLを入力すれば、そのサイトの過去の情報がみれてしまう。

こんな感じ

ふつうに5年前とか、10年前まで、だいぶ昔の情報までも拾えてしまった。。

ただ、画像や装飾など、HTMLのタグなどは適宜変換されているので、
完全に過去の状態が見れるわけではないので、そこは注意

Androidアプリのよくあるイカしたアプリのダウンロードボタンの作成方法! と、流入元分析!

クレカの有効期限切れで、、サーバー落ちてましたw。。

SEOだいぶ下がったか、、泣

というわけで、泣く子も黙るわけでもない久々の更新

アプリDLボタンのバッジ作成ツール

ここからバッジをサクッと生成できるんす!

https://play.google.com/intl/ja/badges/

UTMソース や、UTMキャンペーン を指定して、

どのブログや、SNSから流入してDLしたなどがわかるようになってます。

レポートは、Google Play Consoleの下記画面から見れるようです。

UTMタグで獲得チャネルの分析

https://developers.google.com/analytics/devguides/collection/android/v4/campaigns#google-play-url-builder

GooglePlay向けのUTMタグ生成サイトが、404になっていて、
どこで、android用のUTMタグの正しい形式を確認すればとおもっていましたが、バッジ作成ツールで生成すればよかったんですね。
先程の、バッジツールで、UTMソースや、キャンペーンを指定するとタグが反映されるので、
そちらでわかります。


<a href='https://play.google.com/store/apps/details?id=[パッケージ名]&utm_source=[UTMソース]&utm_campaign=[UTMキャンペーン]&pcampaignid=MKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1'><img alt='Google Play で手に入れよう' src='https://play.google.com/intl/ja/badges/images/generic/ja_badge_web_generic.png'/></a>

この部分。


https://play.google.com/store/apps/details?id=[パッケージ名]&utm_source=[UTMソース]&utm_campaign=[UTMキャンペーン]

他にも便利なツールが色々

こちらはiOS/Androidのバッジも作れるすぐれもの!

http://mama-hack.com/app-reach/

関係ありそうなサイト一覧

UnityAndroidで、下記エラーがSDKやなにかを入れたタイミングでエラーを履くようになった。

確認環境
* Unity2017 2.0f1
* Gradleビルド

こんなエラーや、


Build failure com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.dex.DexException: Multiple dex files define Landroid/support/annotation/AnimRes; See the Console for details.

こんなエラーや、


UnityEditor.BuildPlayerWindow+BuildMethodException: 3 errors at UnityEditor.BuildPlayerWindow+DefaultBuildMethods.BuildPlayer (BuildPlayerOptions options) [0x00207] in /Users/builduser/buildslave/unity/build/Editor/Mono/BuildPlayerWindowBuildMethods.cs:172 at UnityEditor.BuildPlayerWindow.CallBuildMethods (Boolean askForBuildLocation, BuildOptions defaultBuildOptions) [0x00050] in /Users/builduser/buildslave/unity/build/Editor/Mono/BuildPlayerWindowBuildMethods.cs:83 UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

こんなエラーや、


CommandInvokationFailure: Gradle build failed. /Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home/bin/java -classpath "/Applications/Unity/PlaybackEngines/AndroidPlayer/Tools/gradle/lib/gradle-launcher-2.14.jar" org.gradle.launcher.GradleMain "assembleRelease" stderr[ FAILURE: Build failed with an exception.

なにか原因かわからないため、解決するためにやったこと。

  • Player Settings の Publishing Setting > Custom Gradle Templateにチェックをいれ、
    カスタムのgradleをいじれる、mainTemplateをさわって、また戻したり。

  • Unityを再起動したり

  • Android SDKのToolsのAPIバージョンをあげたり。
    https://answers.unity.com/questions/1435579/how-can-i-fix-this-error-unityeditorbuildplayerwin.html

  • https://issuetracker.unity3d.com/issues/android-project-with-iap-plugin-fails-to-build-with-gradle-release-mode-only-and-throws-java-dot-io-dot-ioexception

Unityのバージョンを疑ったり

で、何かのタイミングで、エラーがでなくなり、無事APKファイルが履かれました…!

Unity で、Android gradle buildで、Multidexに対応する方法

UnityでAndroidアプリを作る際に、Multidexサポートに対応しないといけない場合に、
最初した際のメモ。

参考情報

https://forum.unity.com/threads/build-using-gradle-and-multidex-support.492117/

https://answers.unity.com/questions/1301593/android-gradle-build-error.html

要点

  • Custom Gradle Templateを使う (Build systemはgrandleに)

検証環境

  • MacOS High Sierra
  • Unity2017 2.0f3(Personal)

Unity NGUIで、ローカライズの設定手順

NGUIで、とりあえず英語と日本語を管理する方法

STEP.1 asset storeからインポートしたNGUIのLocalization.txtをリネームして、移動

これを、

Assets/NGUI/Examples/Resources/Localization.txt → Localization.csv

リネームして、

Assets/Resources/Localization.csv に移動。
※Resourcesフォルダが無い場合は、作ってね。

これをしないと、NGUIアセットをアップデートする度、ローカライズ文言がリセットされてしまいます (´;ω;`)

STEP.2 ローカライズの文言を作る

Assets/Resources/Localization.csv

をテキストエディタ等で開いて、英語,日本語のように記載していきます。

Localization.csvの中身


KEY,English,Japanese Flag,Flag-US,Flag-JA Language,English,Japanese NGUI_STAGE_1_NAME,Hamburger,ハンバーガー NGUI_STAGE_2_NAME,Sandwich,サンドイッチ

※カンマ区切りで、KEY,英語,日本語と記載しています。

STEP.3 Unityを再起動する。

これしないと、なぜか反映されなかったです。
※ビルドしても反映される事もあったり。

STEP.4 UI LabelにLocalizeをアタッチ

※先ほどLocalization.csvにKEYとして記載した、「NGUI_STAGE_1_NAME」を入力すると、英語、日本語が表示されます。

CentOS7 ターミナル上で、指定ディレクトリ以下、指定文字列一括置換

CentOS等で、大きいプロジェクトファイル内の文字を、
横断して一括で文字列置換したい時がある、
例えば、ハードコーディングしてしまった、定数や、ドメイン等。
指定文字列を一括置換したい時がある。

そんな時に使えるコマンド

下記はカレントディレクトリ配下のphpファイル全てを横断検索して指定文字列に置換している例


$ find ./ -type f -name "*.php" | xargs sed -i 's/置換対象文字列/置換後の文字列/g'

よく使うけど、よく忘れるのでメモ。

検索対象の確認だけなら、

指定ディレクトリ配下のファイルを横断して指定文字列を検索


$ find ./ -type f -name "*.php" -print | xargs grep '検索文字列'

以上

Unityの Color型 は Vector4型 から暗黙的に変換することができます。知らなかった。。

 function の引数にColor型を指定したい場合にどうやっていいかわからなかったけど、、これを使えばいいのね!


void func(Color color = new Vector4()){ }

https://docs.unity3d.com/jp/540/ScriptReference/Color-operator_Color.html

Color は Vector4 から暗黙的に変換することができます。

そうだっだんですね。。w