未熟学生エンジニアのブログ

TetsuFeの個人開発ブログ

TetsuFeはテツエフイー と読みます。FlutterやWeb周り全般、チーム開発について語るブログ

毎日GitHubにコミットする計画

経緯

iPhoneアプリ「Contributions for GitHub」をインストールしてみたら、毎日の自分のコミット量が見えるようになり、「コミットが少ない・・・」ということに気づきました。

f:id:swiftfe:20171114154101j:plain

github.com

そこで、「もっとコミットしなければ!」ということで、毎日GitHubにコミットすることにしました。

とりあえず11/14から毎日最低1コミットを目標にしていこうと思います!

目先のプロジェクト

  • WebBookBrowser

Web漫画のブラウジングやお気に入りリストを登録できる俺得アプリです。
エロ雑誌などのリンクをSafariのお気に入りに入れたくない場合などに使うのが主な用途です笑

github.com

自分のポートフォリオの作成+HTML・CSSの勉強として、ポートフォリオサイトを作成します。
冬のインターンに向けても使えるかな、という狙いもあります

github.com

  • 顔認識アプリ

顔認識していろいろしようというアプリです。
何をするかほとんど決まっていません

github.com

終わりに

「Contributions for GitHub」かなりいいアプリなので、iPhoneAndroidユーザはぜひ使ってみてください!

Qiitaの記事通りgit reset —hard して泣いた話

教訓

 

  • Gitのcommitを取り消したいときは、$ git reset —soft HEAD^ を使う。

  • むやみに$ rm -rf .gitは しない。

 

本題

Qiitaの記事で、

$ git commit を取り消したいときは、

$ git reset —hard HEAD^

すればいいよと書いてあったので、いいねも300件超えてたし、なんの気なしに実行した。

(ここで実は、前のcommitで追加した全てのファイルが消えていた・・・)

そして、フォルダ名を変更して(ここでファイル名を変更したのであれば、ファイルが消えたことに気づけていた…悪い偶然は重なるものです)

$ git add

$ git commit “改めてcommit”

すると、

nothing to commit

という文字が。なぜ?と思ったが、ここで自分は何が起きているか気づかずに「gitの不具合?」と思い、

$ rm -rf .git

をして、一からgit initし直せば直ると思って実行してしまった。

その結果、全てのファイルが完全に消えてしまった…(gitの記録が消えたので)

 

少ないファイル数だったが、戻すのに1時間かかった。

 

今度からは$ git reset —softを使おう。

 

そう強く心に決めると同時に、あのQiita記事を恨むのであった…

初心者は説明も読まず雰囲気でコピペを実行してしまうこともあるはず。おそらく他にも犠牲になった人がいるだろう…QiitaにBadボタンが追加されていれば、犠牲者たちは確実に押しただろう。(あまりいいことではないが)

Bad評価があれば、もう少し注意深く読むようになるのではないか。Qiitaの開発チームの方には、実装を強く願います。

 

でも—hardは注意が必要ということで、いい勉強になりました。

 

P.S. そもそも--hardがいる場面って結構少ないのでは、と思いました

UnityをHigh Sierraで使うとカーネルパニックになる場合の対処法(*必ず解決するとは限りません)

UnityがHigh Sierraカーネルパニックを起こす

最近、High Sierraにバージョンを上げたところ、Unityの調子が悪くなり、3Dのゲームになると、頻繁にカーネルパニックを起こして困っていました。 そこでUnityのフォーラムを見るととりあえずの経験則(英語)が書いてあったので、それを日本語で書いておきます。(訳ではないです)

解決法

  • Unityのバージョンを2017.1.1p3以降に変更する
  • Unityのレンダリング設定をOpenGLからMetalに変更する

この二つです。

Unityのバージョンを2017.1.1p3以降に変更する

まずは、Unityのバージョンを2017.1.1p3以降にしましょう。

  1. 現在のUnityをアンインストール(普通に「アプリケーション」にあるUnityのフォルダを削除すればOK)
  2. Unityのバージョンを2017.1.1p3以降をここからダウンロード・インストール

(私は2017.1.1p4にしました)

Unityのレンダリング設定をOpenGLからMetalに変更する

これは、プロジェクトごとに行う必要があります(多分)
なので、プロジェクトを開いてから設定を行います。プロジェクトを開いて設定を変更する前に落ちてしまう可能性もあります・・・

  1. プロジェクトを開く
  2. Edit > Project Settings > Playerを選択すると、Inspectorが開くので、Player Settings > Other Settings > Metal Editor Support にチェックを入れてください。

そのまま保存できればOKです。

これで私の環境では、とりあえず3Dゲームもうまく動くようになりました。
さらにいい方法があるよ!という方はぜひコメントで教えてください。

追記

https://forum.unity.com/threads/unity-and-macos-10-13-high-sierra.474527/page-5

ここにフォーラム原文があります。

  • disable MSAA in Quality Settings

これも有効かもしれないので、もしMetal Editor SupportをONにしてもエラーが出る場合は、これも設定すると良いと思います。

pythonでファイルパスからファイル名のみを取り出して新しいファイルパスを作成する

環境

python3

やりたいこと

例えば、globなどで複数のファイルのファイルパスを取得して、そのファイルに何らかの変更を加えたファイルをちょっとファイルパスを変えて保存したいとします。

例えば、HTMLファイルから、HTMLタグを除去し、そのファイル名を./eliminated_tags/example.txt という形で保存したい時を考えます。

このとき、以下のようなディレクトリ構成であるとします。

  • eliminate_html_tags.py
  • html
    • example1.html
  • eliminated_tags
    • ここにHTMLタグを削除したファイルを置きたい
import re
import glob

filenames = glob.glob("./html/*")
for filename in filenames:
    with open(filename, 'r') as html_f:
        html = html_f.read()
        text = re.sub(r'<[^>]*>','\n',html)
        text_filename = re.search(r"/[^/]*\.txt",filename).group().replace('/','').replace('.html','.txt')
        with open('./eliminated_tags/'+text_filename,'w') as text_f:
            text_f.write(text)

上のコードの中の以下の3行がポイントです。 re.searchで、'/example.html'の部分を取り出し、
str.replaceで、'example'の部分を取り出しています。

text_filename = re.search(r"/[^/]*\.txt",filename).group().replace('/','').replace('.html','.txt')
        with open('./eliminated_tags/'+text_filename,'w') as text_f:
            text_f.write(text)

このように書くと、

  • eliminate_html_tags.py
  • html
    • example1.html
    • example2.html
    • ...
  • eliminated_tags
    • example1.txt
    • example2.txt
    • ...

といったような形で保存できます!

Django で Could not parse the remainder エラー

Djangoを使っていたら、

Could not parse the remainder: '['user_talk']' from 'dump['user_talk']'

というエラーがでました。

どうやら、DjangoではtemplateでDictionaryを扱うときは、
dump['user_talk']のようにはかけないらしく、

dump.user_talk

のように書かないといけないということでした。

{% block content %}
<div>
    {% for dump in dump_list %}
        <p>{{ dump.user_talk }}</p>
        <p>{{ dump.ai_talk }}</p>
        {% empty %}
                <h2>Sorry, no historys</h2>
    {% endfor %}
</div>
{% endblock %}

のように書き換えたところ、エラーは出なくなりました。

【Android studio】他の人が作ったプロジェクトを実行した時のエラー Configuration is still incorrect. Do you want to edit it again?

環境

macOS 10.13
android studio 2.3.3

Android studioで他の人が作ったプロジェクトを実行した時のエラーについて解決策を書いておきます。

他の人が作ったプロジェクトを開く

まず、誰か他の人が作ったプロジェクトをOpen an exsisting Android Studio projectから開きます。
ここで、まずlocal.propertiesを変更しろと言う警告表示が出て来たので、そのファイルに書いてあるパスをlocal.propertiesに設定する。(警告表示に書いてあるままを書く。
警告表示を消すまでにファイルを編集すると、自動的に開いてくれる。

実行できない

実行しようとすると、
Configuration is still incorrect. Do you want to edit it again?
という風にでた。どうやら、設定が間違っているらしい。でも、実行時に出てくるウィンドウでは設定できそうにない。

Android studioに表示された「Event Log」タブを見ると、

Gradle project sync failed. Please fix your project and try again.
とか、
failed to find Build Tools revision 26.0.1
とか出ていた。
どうやら、他の人が作った時に使っていたSDKのバージョンが自分のインストール済みのSDKのバージョンとは違ったらしい。

まずは、そのプロジェクトで使っているバージョンを調べる。android studio上でappファイルのタブを見る

(略)
 compileSdkVersion 26
    buildToolsVersion "26.0.1"
    defaultConfig {
        applicationId "com.example.***.***"
        minSdkVersion 15
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
(略)

ここのbuildToolsVersionにあったSDKを自分のAndroid studioにインストールする。
SDKのインストール方法は、上のバーのTools > Android > SDK Manager といき、そこで対象のSDKにチェックを入れて、Applyを押す。

その後、キャッシュのクリアをします。
file > invalidate cache / restart > 青になっているボタンを押す(なんと書いてあったかは忘れました)
これをするとAndroid studioが自動的に再起動します。

再起動したら、実行できるようになりました!

【10/18 アップデートしました】「フレーズ英単語1800 センター対策編」

本日、「フレーズ英単語1800 センター対策編」のアップデートを行いました。
今回のアップデートでは、主に以下の点が新しくなりました。

  • 壁紙の変更が可能に
  • toeicボタンの廃止

壁紙の変更が可能に

壁紙を設定できるようになりました。単語リスト・苦手リスト・カード・テストの4つのシーンで壁紙を設定できます。
壁紙を自分の好きなキャラクターにしたりするとアプリを開くのも楽しみになるのではないでしょうか。ちなみに僕はNEWGAME!の青葉ちゃんを背景にしています。

f:id:swiftfe:20171018111040j:plain

toeicボタンの廃止

これは何故か残っていたのですが、toeicには対応する予定はなく、バグと思われる可能性があるため、廃止しました。