GitHub登録時のメール認証時に「What!?」エラーが出る

経緯


GitHubに、メインアカウントとは別のアカウントを用意しました。

登録自体は正常に終了し、メール認証してね画面まで進んだところ・・ 


謎のエラーに遭遇

認証メールからGitHubにログインするとエラーが出て入れません。 

 What‽ Your browser did something unexpected. Please try again. If the error continues, try disabling all browser extensions or using a different browser. Please contact us if the problem persists.


解決方法

Chromeで開いていたのを、シークレットモードからログインすればなんなく進みました。

シークレットじゃない状態でも開けるようにするには、

おそらく複数アカウントを持っていると出るので、

一度、普通にログイン済みのアカウントをログアウトかつ、

ブラウザのキャッシュなどをクリアしないと解決しないと思われます。

Unityの「instantiate is null」エラーを解決する

問題点

インスペクタに正しく参照を設定しているにも関わらず、

ArgumentException: The Object you want to instantiate is null. UnityEngine.Object.CheckNullArgument (System.Object arg, System.String message) 

がコンソールに出ました。

なぜか未実行時にも出て、実行時にも当然出るのでおかしいなと思っていたのですが、
ステップ実行したら一瞬で原因がわかりました。

原因


- 「Awake」ではなく「クラスコンストラクタ」でInstantiateしていました。
- もともとピュアクラスだったものをビヘイビアに変えたときにコンストラクタをAwakeにするのを忘れていました。
- 「コンストラクタ」をやめて「Awake」内に入れて解決しました。

NG例:

public class YourClass : MonoBehaviour
{
    public YourClass() {
        var dest = Instantiate( sourcePrefab );
    }
}

OK例:

public class YourClass : MonoBehaviour
{
    private void Awake() {
        var dest = Instantiate( sourcePrefab );
    }
}


まとめ


クラスコンストラクタをAwakeに書き直してみましょう!

Rider2020.1 のコンテキストメニューでフォーカスがひっかかる

JetBrains Rider 2020.1 のMacでのお話。

右クリでコンテキストメニューを開いたとき、
「リファクタリング」と「折りたたむ」にフォーカスが当たるとひっかかって
他のコンテキストメニューになかなかフォーカスが移ってくれない事がある。

自分としては、リファクタリングはShift+F6で名前変更するくらいだし、
折りたたむは使わんしコンテキストメニューにそもそもいらんのよねと思っていたので、
そもそも項目を削除できないか設定をあれこれ見ていたところ、以下で解決した。

Preferences>外観&振る舞い>Menus and Toolbars>エディタのポップアップメニューアクション>EditorPopupMenu1.FindRefactor
から「リファクタリング」と「折りたたむ」を[ - ]を押して削除すればOK。

GAE/Goを1.12環境にした & Go 1.11+Mod導入あたりからVSCodeがおかしかったのを直した話

GoogleAppEngine で Go+goon を使って開発していたのだが、

メジャーアプデ的な事が行われるので、Goのバージョンを1.11まで引き上げる事になった。

で、1.12 とModとやらを入れたのだが、そこからVSCode上の挙動がおかしく、

・入力補完がされない

・定義へジャンプができなくなった

・保存するたびにエラーや警告箇所を出してくれる機能が死んでる

ともうだめじゃねこれってくらい従来と異なる環境となった。


で、結局解決したのでメモっておく。

【GAE/Go 2gen対応でやったこと】


1.goのバージョンを上げる準備


.bash_profile に
export GO111MODULE=on
と追記して保存。
コマンドで、「source ~/.bash_profile」として反映させる。


2.GoogleAppEngineのドキュメントに従って go1.11or1.12 を入れた

1.12でもいいみたいだけどローカルで動かせない説がある。本当かはまだ試してない。


3.ファイルの配置を変えた


◆ 今までのファイル構成

app.yaml
src/main.go


◆ 1.11からの構成

app.yaml
go.mod
main.go


4.main.goの頭を変えた

package src
だったのを
package main
に変えた。


5.go.modを作った

自分の場合、GAE/goのプロジェクトルートで「go mod init main」と叩いた。
出来上がったら「go build」すると、goonなど依存関係がgo.mod内に追記されて勝手に落としてくれた。


6.go version コマンドを叩いて出たバージョンをgo.modに追加した。

自分の場合は1.12.7だったので「go 1.12.7」と追加した。

ここまでで、go.modの中身は
module main

go 1.12.7

require (
github.com/mjibson/goon v1.0.0
golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297
google.golang.org/appengine v1.6.2
)
みたいになってるはず。(requireは使ってる物によって変わるので気にせず)


7.app.yamlも変えた

runtime: go112
service: default

instance_class: B1
basic_scaling:
max_instances: 1
idle_timeout: 1m

main: ./
(以下略)
とした


【VSCodeをgo1.12+modに対応させる】


1.goplsを入れる準備

※すでにgoの拡張機能が入っている状態として話を進める。
VSCode実行中に「Command(Ctrl)+,」でsetting.jsonと入力
「setting.jsonで編集」をクリックする。
    "go.useLanguageServer": true,
そこに上記を追記して保存する。


2.goplsをダウンロードした

以下のコマンドを叩く
go get golang.org/x/tools/gopls@latest
goplsがインストールされる。

3. VSCodeにgoのtoolsを入れた

VSCodeを実行中に「Command(Ctrl)+Shift+P」を押すか
表示>コマンドパレットを選ぶ
出てきた入力欄に「Go: Install/Update Tools」と入力しEnterを押す
なんかリストが出てくるので、入力欄左のチェックボックスをチェックし全部インストールする。

4.VSCodeを設定した

setting.json に以下をまるっと追記し保存。VSCodeを再起動したらちゃんと補完などが動くようになった。
{
"go.languageServerExperimentalFeatures": {
    "autoComplete": true,
    "documentSymbols": true,
    "findReferences": true,
    "format": false,
    "goToDefinition": true,
    "goToTypeDefinition": true,
    "hover": true,
    "signatureHelp": true,
    "rename": true,
    "workspaceSymbols": true,
    "diagnostics": true,
},
"go.testOnSave": true,
"go.lintOnSave": "package",
"go.formatTool": "goimports",
"go.testFlags": [
    "-v"
],
"go.autocompleteUnimportedPackages": true,
"[go]": {
    "editor.codeActionsOnSave": {
        "source.organizeImports": false
    },
}
}

[GAE/Go] could not get package for dir "ディレクトリ": no buildable Go source files ディレクトリ

久々にアップデートをしたGAE/Goアプリをデプロイしようと

gcloud app deploy --project YOUR_PROJECT_NAME

とした時に、

could not get package for dir "ディレクトリ": no buildable Go source files ディレクトリ

的なエラーが出てデプロイできなくなった。

解決方法は、srcフォルダをやめる。

src内の.goをすべて1階層上に移したら直った。