さわらブログ

さわら(@xhiroga)の技術ブログ

VSCodeで"code"コマンドをinstallしたはずなのに、"command not found"になる → VSCodeの場所を見直そう

Visual Studio Codeは、ターミナルからcodeコマンドで起動するように設定できます。
ところが、Visual Studio Codeを終了するたびに、なぜかcodeコマンドが効かなくなってしまいました。
原因はVSCodeがDownloadsフォルダにあったせいでした。

参考: github.com

検証

どうしてDownloadsフォルダのVSCodecodeコマンドを維持できないのか、試してみました。

まずはcodeコマンドを設定して...
f:id:hiroga_cc:20180718193756p:plain

codeコマンドについて調べてみる

$ which code 
/usr/local/bin/code
$ ls -l $(which code)
lrwxr-xr-x  1 hiroaki  wheel  167 Jul 18 19:38 /usr/local/bin/code -> /private/var/folders/zb/d8jy9vyx53vbv1t5mgwj06rw0000gn/T/AppTranslocation/877962BA-DEEA-4883-BB3D-F6F6B276C7F9/d/Visual Studio Code.app/Contents/Resources/app/bin/code

# VSCodeを終了すると...
$ which code
# 何も表示されない

なんだこれ!ものすごい変なところにいるぞ。

一方、ちゃんとApplicationのVSCodeを起動してcodeを設定した場合は、

ogasawarahiroaki-no-MacBook-Pro:~ hiroaki$ which code
/usr/local/bin/code
ogasawarahiroaki-no-MacBook-Pro:~ hiroaki$ ls -l $(which code)
lrwxr-xr-x  1 hiroaki  wheel  68 Jul 18 19:44 /usr/local/bin/code -> /Applications/Visual Studio Code.app/Contents/Resources/app/bin/code

# VSCodeを終了しても...
$ which code
/usr/local/bin/code

どうやら、Downloadsフォルダのアプリケーションはいったん一時フォルダにコピーされてから実行されるらしい。
DLL読み込み脆弱性みたいなのの対策かな...?

丹波一人合宿中間レポ 〜田舎に移住ってあり得る選択肢なのか?〜

7月10日(火)から「一人強化合宿」と題して、プログラミング周りのいろんな勉強をするために丹波市に来てます。
f:id:hiroga_cc:20180713085132j:plain

もともと丹波市に全く縁はなかったのですが、FBで合宿地をお尋ねしたら推してもらいました。
f:id:hiroga_cc:20180713084350p:plain

で!行った先でいろんなUターン・Iターンの人々+地元の人々にお会いし、移住ってどんな時にあり得るのかな〜?と思った次第です。

いまの結論

移住する側が田舎暮らしがしたくて、かつ生計が立つスキルと行動力があり、受け入れ側にコミュニティがあれば良さそう
なんか丹波市+お会いした人たちはだいたい全部満たしてるんですよねー。すごい。
(すごい人を選んで紹介していただいているということなのでしょうが!)

移住する側

田舎暮らしがしたい人であること。
初めにお会いした「ふえのみち農園」の横山さんや、地域おこし協力隊で特産品の商品企画をされているゆかさん、「キャリー焼菓子店」の藤本さんなど、おっしゃっていました。

プラスこっちの方がもっと大事で、生計を立てるスキルがあること。
「地域おこし協力隊 失敗」とかで検索してみたんですけど、特にスキルがなくて仕事がもらえるものだと思っている人が失敗するパターンが多そうに見えました。
スタートアップで働くのに雰囲気が近そうだなーと思いました。課題はあっても人がいないからわざわざ仕事を教えてくれる人がいない点がそうですね。

丹波でお会いした人たちは、

特産品を使った商品企画とか

f:id:hiroga_cc:20180713090824j:plain

ポスターのデザインとか

f:id:hiroga_cc:20180713090804j:plain

インスタ映えするカフェの経営とか

f:id:hiroga_cc:20180713090900j:plain

そのほかリモートワークで仕事を請けてたりとか、みんなそれぞれスキルを持ってるんですよね。

逆にスタートアップと違うのは、ビジネスアイデアの独自性が問われていないことなのかなーと思いました。
この土地とマッチするビジネスモデルを探してくるスキルの方が大事って感じがします。

受け入れる側

食べ物、住む場所はなんとかなりそうなイメージがあります。
より大事なのは、地元の方々の中でも受け入れに好意的な人たちと繋がれるかどうか、すでに移住している先輩達と繋がれるかどうか...なのかしら。
お会いした中には地元の農家の組合さんもいて、そこは水耕栽培にチャレンジしたりイベントを企画したりアクティブに活動されてたから、そういう人たちがいるかどうかが目安になったりするのかな。

まとめ

地方移住って話しか聞いたことなかったけど実際にお会いしてお話を聞けてよかった!
地方在住の方にこれからイベントでお会いしたらいろいろ質問したいことができました( ´ ▽ ` )ノ

ちなみにこれから帰宅までの7日間はちゃんと勉強に集中します。笑

疑問

  • 丹波のUIターンのコミュニティって、どうして震災以降から来た人が多いんだろう?
  • 移住者のコミュニティができる以前に来た人、できてから来てお世話になっている人の話を聞き比べてみたい。
  • これまでいろんな移住された方に会わせていただいたけど、これだけうまく行ってる(ように見える)以上は受け入れ側・行政側のスキルも相当なのではなかろうか。
  • 農家さんってどのくらいの土地があれば自分の分の作物が作れるのかしら。

1Password7で"Unsecured Website"の警告を消す方法

1Password7からオレンジ色の警告が出るようになりました。

f:id:hiroga_cc:20180703063021p:plain

これってどうやって消したらいいの?と公式フォーラムで尋ねると以下の回答が。
discussions.agilebits.com

"Hi @hiroga, you can disable this banner by adding the http tag to the item :smile:. We are looking to improve this functionality in future versions."
httpってタグをつければ消えるみたいですね。

f:id:hiroga_cc:20180703063142p:plain

消えた!どうしてもhttpになってしまうサイトもあるから、こういう対応は助かりますねー。

ASのLFをORDER BYで再現するときの落とし穴

AS400のLFをORDER BYで再現するときの落とし穴

現場で先輩に指摘されて「なるほど」と思ったのでメモ。

ASにはLF(LOGICAL FILE= 論理ファイル)という仕組みがあり、普通のDBでいうところのVIEWに相当する。
このテーブルに対してあるキー(例えば商品コード)でレコードを検索するとき、ASではSQLを使わずに、商品コード順にソートしてあるLFを上から順に探索し、最初の1件をつかむようにしている。
そのため、LFにもソート順として(商品コード:昇順)がセットされている。

しかし、普通のDBなら検索条件を使う。そのため、LFのソート順をそのまま持ってくると意味がない条件がひとつできる。
これを先輩に指摘されました(普通に見れば気が付きそうなものだけど・・・)

(あれ・・・VIEWのソート順って、SELECTを実行する前のスキャンのパフォーマンス向上には役立つの?それともスキャン後の結果を並び替えるときにしか使われない・・・?よくわからない!)

「インストーラリソースの読み込み中にエラーが発生しました。」

MacBookをアップデートしようとしたら以下のような画面になってしまい、アップデートが進まなくなってしまった。 f:id:hiroga_cc:20180701091250j:plain

コンピュータにmacOSをインストールできませんでした  
インストーラリソースの読み込み中にエラーが発生しました。  
インストーラを終了してコンピュータを再起動してからやり直してください。  

ググったところ、こちらの方が一連のツイートで手順と直った報告をされていたので真似して直しました。

やり方

  1. macBookをセーフモードで再起動する。
    電源ボタンを押した瞬間からShiftキーを押しっぱなしにしていればOK!

  2. ディスクを選んで起動する(途中の画面の写真を取得し忘れました...ごめんなさい!) f:id:hiroga_cc:20180701224947j:plain

その他

Apple公式のCommunityでも同じ症状の方がちらほら。こういう時は英語でググった方が問題解決が早いよね。

https://discussions.apple.com/thread/8342136

returnの神様

returnの神様

2018年6月30日訂正:RPGにもLEAVEというのがあり、Javaのreturn同様にサブルーチンを途中で抜けることができます。
以下の記事は十分な知識がない状態で書いたものです。

RPGには現場でたまたま自分が担当したサブルーチンにはLEAVE(returnに相当)がない。
(ちなみにクラスもない。現場で見た限りは...)

だからネストが深くなるんだってことに今日気がついてちょっと感動した。
より正確にはこんな感じ。
* サブルーチン(メソッドでもいい)は、基本的に処理を最後までやるように作られている。
* プログラムでは、処理結果に応じて処理を続けるかやめるかを判断することがある。
(多分リソースの状態に関心があるのでは。帳票をある状態にするとか、データの状態が期待値になるまで続ける、とか)
* サブルーチンで更新をすると、処理を途中でやめられないので、if文で括るしかなくなってしまう。

(GOTO文とか使えば別なのかもしれない。っていうか、returnって実質縛りのあるGOTO文では?)

例えば

@A1000 *IN93
*IN93 IFEQ *OFF
@A1100
...
...
...
ENDIF

RPGを書いたことがないのでテキトーです)

こんな風に、残りの作業をずっとIFのなかで過ごすことになる。

Javaとかなら

int updateCount = client.update();
if (updateCount > 0) { return; }
client.insert(dto)
...
...
...

ちょっと見やすくなった。 returnの発明って誰がしたんだろう。ありがたいなー。

Expo Client can only be used to view your own projects... 自分以外が作ったExpoのデモアプリはiPhoneでロード不可になったそうです

ExpoでTrending Projectsを動かしてみたいですよね?
最近こんなエラーが出るようになりませんでしたか?

Sorry, you are not allowed to load "(PROJECT NAME)"
...
Expo Client can only be used to view your own projects. To view this project, please ensure you are signed in to the same Expo account that created it.

f:id:hiroga_cc:20180509080100p:plain

どうやらAppleのアプリ公開時のReview対策で、iOSに関しては自分以外が作成したExpoアプリをQRコードからロードできなくなったそうです。
ソースはこちら。 blog.expo.io