ゆるふわ技術日誌

エンジニア見習いの悪戦苦闘日記

論文とElm

今日やった事

論文

だいぶ書き足した。合計で9ページになった。

ボスに途中経過見せたら、普通に良さげな反応が返ってきたので神やん、と思った。

引き続き書き進めていく。

Elm

今日もElmやった。

今日は以前Reactで作ったこれ↓

https://uutarou10.github.io/line-number-generator/

をElmで再現するのにチャレンジした。

結果↓

github.com

https://happy-swanson-debfd3.netlify.com/

うまくいった!

パイプライン演算子がむずかしい。

明日以降で非同期処理とか副作用のある処理をやっていく。

明日の予定 / やること

  • 研究
  • Elm

雑談

はらへた。

Elmに再入門

今日やった事

Elmに(再)入門した。

昔挫折したElmに再入門した。今度は何か作りきるまではやめない方針。

とりあえずElm公式のGuideにある例を噛み砕きながら写経した。

module Main exposing (Model, Msg(..), init, main, update, view)

import Browser
import Html exposing (Html, button, div, text)
import Html.Events exposing (onClick)


type alias Model =
    Int



-- initはModel型の値という意味の**型注釈**


init : Model
init =
    0


type Msg
    = Increment
    | Decrement



-- updateはMsgとModelを引数にとってModelを返す関数


update : Msg -> Model -> Model
update msg model =
    case msg of
        Increment ->
            -- Incrementだったらmodelに1を足して返す
            model + 1

        Decrement ->
            model - 1


view : Model -> Html Msg
view model =
    div []
        [ button [ onClick Decrement ] [ text "-" ]
        , div [] [ text (String.fromInt model) ]
        , button [ onClick Increment ] [ text "+" ]
        ]


main =
    Browser.sandbox
        { init = init
        , update = update
        , view = view
        }

正直Html Msgとかありとあらゆることがどういうことなのか全然わからない。どこを読んだらわかるのかもわからない。辛い。

研究

ちょっとだけ論文を書き進めた。一回書いたところを後から書き直すの結構辛い。

明日の予定 / やること

  • 研究
  • Elm

ちょっと研究論文放置気味なので明日は少し気合い入れてやる。

雑談

Elmわかり手になる日が来るのか…?

SIMPLE COUNT DOWNリリースしました

今日やった事

SIMPLE COUNT DOWNリリースしました

ずっと作っていたけどとりあえず大きなタスクは片付いたと判断したので、リリース!

f:id:uutarou:20181201233747p:plain

timer.mogam.in

カウントダウンタイマーを作って、共有したりできるミニマルウェブアプリです。

ブログではどんな感じに作っているかとかずっと書いてきたので、その辺はまぁ割愛で。

Nuxt.jsの初歩の初歩を学ぶにはそこそこいい規模感のアプリだったかなという所感。

今回、element uiを使ってはいるもののボタンやら日付を入力するフォームやらの部品で頼っただけでそのほかは自分でCSSを書いてみた。案外ちゃんとCSSと向き合ったことがなかったのでその辺も学びがあって大変よかったと思う。個人的なこだわりとしては、画面幅に合わせて文字サイズが可変になるあたりとか結構いい感じに動いてて嬉しい。


ただその一方で、来年4月からはプロとして働くという立場でこの程度のもの作って満足しているようではいけないな、という反省もありつつ。

開発する手を止めたらそこで死ぬと思っているので、これからも継続的に何か作るなり勉強を続けていきたいと思っています。

研究

ちなみに今日もちゃんと論文書いていました。一応ね。

明日の予定 / やること

  • SA
  • 論文

雑談

なにか一つのものを作り込むというのが案外性に合っているのかもと今回の一件で思った。次は別の技術を使って何か作りたいがアイデアが…。

何かないかなぁ…。

今日やった事

研究

論文書いた。研究室からいろいろと本を持って帰ってきたのでそこそこ捗った。

この調子で明日もやっていく。

個人開発

毎日1コミット以上することを目標にちまちまと個人開発をしています。

ちょろちょろCSSを書いたり、細かい挙動を直したりしていた。そろそろ手を入れるところが少なくなってきたので、Twitterでばらまくなり、なんなりしてみようかなと思った。

(ちなみに、あわよくばAdsenseで儲けてやろうと目論んでいたのですが、コンテンツがなさすぎるという理由で審査に落ちてしまいました。残念。)

最新のスクショを貼っておく。

f:id:uutarou:20181201233747p:plain

f:id:uutarou:20181201233817p:plain

明日の予定 / やること

  • 研究論文
  • 個人開発

雑談

今日くらいは早く寝て生活リズムを整えようかな

Firebase Functionsで環境変数が使いたい話

今日やった事

研究

論文を書き書きしてた。今日の進捗は2ページ。

Firebase Functionsで環境変数を使う話

Firebase FunctionsからSlack通知を投げたくて、Webhook URLを環境変数に持たせたかった、という話。

結論から言うと、環境変数は使えないので環境変数に代わる設定をしてやれば良い。

$ firebase functions:config:set slack.webhook="https://xxx"

みたいなコマンドを実行してやるとFirebase側にシークレットを登録できる。ちなみに名前のところは小文字しか使えないかつ.でネストしないといけない。なんでや。

で、コードを以下のような感じにする。

const functions = require('firebase-functions');
const slack = require('slack-notify')(functions.config().slack.webhook);

exports.slackNotification = functions.firestore.document('timers/{timer}').onCreate((snap, ctx) => {
  slack.send({
    channel: '#notify',
    icon_emoji: 'grinning',
    text: `hogehoge`,
    username: 'SIMPLE COUNT DOWN'
  });
});

ポイントは2行目の部分。

明日の予定 / やること

  • 研究論文
    • 修正点も出てきたのでガンガン書き進める

雑談

1週間があまりにもはやすぎる。土日もちゃんと集中力を切らさずに作業できるといいが、家だとどうしてもなぁ…。

てか、今日で11月終わりかよ…。

初めてまともにCSSと向き合った気がするよ

今日やった事

Nuxtでいろいろやった

論文を書かないといけないとわかっていながら、やる気が出なかったのでちまちまと自分のアプリケーションを作っていた。

Nuxtと言っておきながら今日はCSSを書いたりしていた。レスポンシブ対応難しい。

f:id:uutarou:20181129212532g:plain

使ったテクニックとしては、

coliss.com

これを使って、文字サイズを可変にした。

まずまず耐えられる感じにはなったかなという感じ。

研究(論文)

今日は少しだけ書き進めた。考えながら書き進めて破綻したので、もう少しなにをどんな順序で書くか考えをまとめてから書き始めないとダメだなと思った。当たり前である。

明日の予定 / やること

  • iPhoneバッテリー交換
  • 研究論文

雑談

www.itmedia.co.jp

こんな記事が出ていましたが、なんとか予約を取ることに成功したので、バッテリーを変えに明日は立川まで行ってきます。(八王子にもあるが予約が取れなかった)

そのあとは学校に戻って普通に論文書く予定。

いよいよ論文を書き始めた。

今日やった事

研究

いよいよ論文を書き始めた。いかに言語化することが難しいか身を以て痛感した。

とりあえず2ページくらい書いた。明日も同じくらいの分量書けると良さそう。

Nuxt

今日はずっと論文書いていたのであんまり進捗ないがとりあえず、GoogleAnalytics入れたりしてみていた。正直Nuxt関係ない。

github.com

これがそのDiff。Module入れて設定するだけで使えるし、とても便利。

明日の予定 / やること

  • 研究(論文書き)
  • SA

雑談

ずっと集中して論文を書いていたら腰がめちゃくちゃ痛い。

姿勢悪いのが多分原因。