chromebookにnodebrewをインストールして使おうと思ったらハマった
chromebookで開発者モードを使うとできることが広がることに気づいて開発者モード始めました
Google Chromebook pixel Wi-Fi 32GB モデル 米国版
- 出版社/メーカー: Google
- メディア:
- この商品を含むブログを見る
使ってるchromebookとは違う。pixel欲しい…
今回の検証に使ったchromebookはHTML5 Conferenceで頂いたものです
開発者モード
他に記事がいっぱいあるので省略
nodebrewインストール
普通にインストールスクリプトを実行すると$HOME/.nodebrew
要するに/home/chronos/user/.nodebrew
というディレクトリにインストールされる
この状態でPATHを通してnodebrew install
とか実行すると.nodebrew
以下にnodeのプログラムがインストールされるんだけど、Permission deniedで怒られる(chmod 777
とかやってみたけど駄目)
原因?
未だに原因よくわかってないけど、$HOME
以下に書き込めない?
(でもnodebrewはインストールできてるからそういうことでもなさそう)
== 2017/06/17 追記 ==
golangのインストールページ見てたら、実行権限つけて再マウントしてた。
chromeosのファイルシステムは基本的に書き込めないものらしい
sudo mount -i -o remount,exec /home/chronos/user/
とりあえずの解決方法
nodebrewはNODEBREW_ROOT
を指定すると任意のディレクトにインストールすることができる
なので.bashrc
に以下の内容を書き込んだ
export NODEBREW_ROOT=/usr/local/.nodebrew
この状態でインストールスクリプトを実行すると/usr/local/.nodebrew
にインストールされて、そこにPATHを通してやると普通にnodebrew install v8.1.2
とかできる
まとめ
なんとなくできるかなーと思って始めたら思ったよりハマってしまった。。
いろんな記事見てたらnvmでインストールしてるものばかりで、nvmができるならnodebrewでもできるでしょって気持ちだったからできてホッとした
nodebrewはなんとか動いたけどcurlがアップデートできなくて、僕らの戦いは始まったばかりだ…
さっきからずっとcurlをビルドしてる
— ゆず🦈 (@yuzu_441) 2017年6月15日
`crew upgrade curl`できなくない???
— ゆず🦈 (@yuzu_441) 2017年6月15日
rustupのアンインストール方法
ふとrustupをアンインストールしようとしたら何したらいいんや
— ☃️ゆず☃️ (@yuzu_441) 2017年3月22日
インストール方法はいろんな所で書いてるけど、アンインストールってどうやるのかなって気になった
やりかた
よく見たら普通に書いてた
rustup self uninstall
これでパスを自分で消せばおしまい
さて本当に消えるのか実行して確かめたのでこれから入れ直します…w
LINQによる配列操作
家にはmacとchromebookしかないのでc#とは関わりがないのですが
会社に行くとc#を書くお仕事なので、c#の特徴でもあるLINQについて調べたことをjsと比較しながら学びたいと思います
LINQの種類
メソッド式
var ary = {1, 2, 3}; var result = ary.Where(x => x % 2 == 0).Select(x => x * 2); Console.WriteLine(result);//=> [4]
以下のように改行してもいい
var result = ary .Where(x => x % 2 == 0) .Select(x => x * 2);
クエリ式
var ary = {1, 2, 3}; var result = (from x in ary where x % 2 == 0 select x * 2); Console.WriteLine(result);//=> [4]
()
で囲む必要はないが書いてた方が見やすい気がする
囲わないとこんな感じ
var result = from x in ary where x % 2 == 0 select x * 2;
これも改行してもちゃんと動く
var result = from x in ary where x % 2 == 0 select x * 2;
js arrayメソッド対応表
javascript | c# |
---|---|
map | Select |
filter | Where |
reduce | Aggregate |
forEach |
LinqのメソッドにforEach
はない
Linq style “For Each” - Stack Overflowによると、ToList
でList
に変換してからList#ForEach
を使うとできる
しかしToList
でList
に変換するのは効率が良くないので、できれば Reactive を使って実装するのが良いらしい
Aggregate(reduce)の使い方
aggregate
【動詞】【他動詞】
〈…を〉集合する,集める,集団とする.
【自動詞】
1 集まる.
2〔+補語〕総計〈…と〉なる.
(引用: weblio)
「配列の要素を全部足す」のような集約をするための関数
型定義
public static TAccumulate Aggregate<TSource, TAccumulate>( this IEnumerable<TSource> source, TAccumulate seed, Func<TAccumulate, TSource, TAccumulate> func )
(引用: Enumerable.Aggregate - MSDN)
実行例
var ary = {1, 2, 3}; var result = ary.Aggregate(0, (sum, x) => sum + x); Console.WriteLine(result);//=> 6 var result2 = ary.Aggregate(4, (sum, x) => sum + x); Console.WriteLine(result2);//=> 10