読者です 読者をやめる 読者になる 読者になる

ゆずめも

私による私のためのメモ的なブログです。主に勉強した事について書いてます。

rustupのアンインストール方法

インストール方法はいろんな所で書いてるけど、アンインストールってどうやるのかなって気になった

やりかた

よく見たら普通に書いてた

github.com

rustup self uninstall

これでパスを自分で消せばおしまい

さて本当に消えるのか実行して確かめたのでこれから入れ直します…w

LINQによる配列操作

家にはmacchromebookしかないので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によると、ToListListに変換してからList#ForEachを使うとできる
しかしToListListに変換するのは効率が良くないので、できれば 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

firebase hosting入門

前回からfirebaseを使い始めました。

yuzu441.hateblo.jp

今回は第2弾ということでfirebase hostingを使ってみたいと思う。

tl;dr

  • firebase-toolsインストール
  • firebaseコマンドでログイン
  • firebase consoleでプロジェクト作成
  • firebaseコマンドで雛形作成
  • firebaseコマンドでデプロイ
  • firebaseにデプロイしたものを確認

インストールとか

まずはfirebaseのCLIツールをインストールしてログイン。 今回はfirebaseの説明だけをしたいと思うのでNode.jsのインストールは省略します。

npm i -g firebase-tools
firebase login

firebase loginを実行すると 「Allow Firebase to collect anonymous CLI usage information?」と出て来ると思いますが これはよくある「匿名の情報を収集して良いか」なのでY or N好きな方を選べばいいと思います。

firebase hostingでプロジェクトを作る

firebase consoleにアクセスしてテストプロジェクトを作成する。

適当にプロジェクト名を入力して、「国/地域」は日本を選択。

プロジェクト作成からアップロードまで

インストールと準備が終わったので、プロジェクト以下コマンドでプロジェクトを作成する。

firebase init

f:id:yuzu441:20170227225420p:plain

そこから選択肢をポチポチしていきます

  • 「Hosting: Configure and deploy Firebase Hosting sites」を選択
  • 「What Firebase project do you want to associate as default?」上で作成したプロジェクト名を選択
  • 「What file should be used for Database Rules?」そのままEnter
  • 「What do you want to use as your public directory?」そのままEnter
  • 「Configure as a single-page app (rewrite all urls to /index.html)?」nを選択

初期化が終わったら以下コマンドでデプロイする

firebase deploy

これでdeploy完了!

hostingされているページを確認する

firebase consoleで作成したプロジェクトを選び、hostingのページを選ぶと <project名>-<なんかID>.firebaseapp.comと書かれたものがあるので、それをクリックすると以下のようなページが表示される

f:id:yuzu441:20170227225453p:plain

ちなみに

<project名>-<なんかID>.firebaseapp.com/foo.htmlのような存在しないページにアクセスすると404.htmlが呼ばれます。 これは存在しないページにアクセスしようとした時に404.htmlが決め打ちで返されるようになっているみたい。

firebase hosting document