投稿

Babel + Express + Vue = Awesome

バックエンドとフロントエンドを同時開発していくストロングスタイル バックエンドはExpress, フロントエンドはVueで作成。 VueCLIのテンプレが良い感じなのでそのまま採用してちょい足しする。 ディレクトリ構成 root |- /frontend |- /backend frontendはvue init webpackでサクッと作り、backendは自前で。 フロント側 $ vue init webpack frontend $ cd frontend $ yarn $ yarn dev localhost:8080にサーバーが立ち上がります。(webpack-dev-server) バック側 ここの諸々をまずやります。 https://onsen3.blogspot.jp/2017/11/node.html ルートから、 $ mkdir backend $ cd backend $ yarn init $ yarn add -D babel-cli babel-watch babel-preset-env rimraf standard $ yarn add express 次いで.babelrcやら.eslintrcやらの設定をします。 そして適当にExpressサーバーをたてます。 今回はポート3000でたてます。 サーバーが建ったら次の段階へ。 フロントとバックの連携 Vue側でプロキシを設定します。 つまり、localhost:8080にアクセスが来た時にlocalhost:3000に受け流します。 /frontend/config/index.jsを下記のようにいじる。 デフォルトだとproxyTableが空のオブジェクトになっているはず。 /frontend/config/index.js dev : { proxyTable : { '/api' : { target : 'http://localhost:3000' , changeOrigin : true } } } これでフロントのlo...

ExpressでSessionを使う(development環境)

この記事の続き https://onsen3.blogspot.jp/2017/11/node.html ※Production環境でこのまま運用してはいけない。 導入 セッションを使ってサーバーにデータを一時保存するには express-session を使う。 $ yarn add express-session ドキュメントに書いてあるが、v1.5.0以前はcookie-parserも必要だったようだが、現在では不要である。 Note Since version 1.5.0, the cookie-parser middleware no longer needs to be used for this module to work. index.js import express from 'express' import expressSession from 'express-session' const app = express () const session = expressSession( { secret : 'keyboard cat' , //何か入れる resave : false , saveUninitialized : false , cookie : {} }) app . use ( session ) saveUninitializedはtrueだと未初期化状態のセッションも保存するようになるが、未初期化状態のセッションを保存したい状況が分からないのでfalse。必要になったらtrueで。 cookieの設定はdevelopment段階なら空でも動く。 ただし、resaveをtrueにするならばsaveUninitializedもtrueにしなければならない。 使い方 express-sessionが導入できるとセッション情報をreq.sessionから扱えるようになる。 これは最初は空のオブジェクト{}。 したがって、下記のようにreq.sessionに値を格納するだけ。 app . get ( '/' , ( req ,...

サーバーをNodeで建てる

Expressの型定義があんまりイケてないので無理にTypeScriptにしなくていい気がする Babelの場合はビルドツール入れなくてもbabel-cliで十分という印象 目標はES6 + ホットリロード 前提: Node, yarn(or npm) Babelのセットアップ $ yarn init $ yarn add -D babel-cli babel-preset-env env以外のbabel presetを入れるのはオワコン ルートに.babelrcを作って .babelrc { "presets" : [ [ "env" , { "targets" : { "node" : "7.10" } }] ] } targetは適当に指定 package.jsonのnpm scriptsのbuildあたりにこれを追加 package.json { "scripts" : { "build" : "npx babel src --out-dir dist" } } 本筋とは関係ないが、babel-cliを入れたのでbabel-nodeが使えるので覚えておきましょう npx babel-node ./src/index.js でES6のまま実行できる Babelの動作確認 src/index.js export class Person { constructor () { this . name = 'John' } } 上記のように適当に構文作って $ yarn build dist/index.jsが自動生成されて変換されていたら動作確認終了 distは.gitignoreしとく ESLintをぶちこむ(任意) standardが好きなので今回はstandardを入れる $ ...

LLR

イメージ
LLRの基本形 上図において、緑→黄→赤と消す。 GTRを考えるとなんとなく緑→赤→黄のイメージがあるため順番に注意。 LLRの利点 ABACで先折GTRを狙うと下図のようになる。 上図で緑黄色が来ると、先折GTR狙いだと下図左のように黄色を分離させなければならない。一応全消しは取れる距離だが、GTRとして伸ばすことを考えると黄色が大量に必要になってしまう形。 そこで、黄色を分離させないで下図右のように置くことでLLRに移行できる。 LLRの基本土台とその派生 一番最初に挙げた例が本来のLLR。その他は派生形。 同時消しにならないように段差を確保する必要がある形もあるので注意。 段差の確保に使ったぷよは潜り込み連鎖尾に活用する。 また、下図のように赤の形が変わっても連鎖になる。 連鎖尾 連鎖尾が組めないと連鎖数がなかなか伸びない。 4, 5列目の段差が大きいため、そのまま雪崩を入れると苦労する。 簡単なのは右端に縦3を作る連鎖尾。 更に実戦的な連鎖尾は下図のようにY字を作る連鎖尾。 いろいろな連鎖尾。 速攻 上図のパターンは速攻を仕掛けやすい。 ハチイチで2トリが打てる形など。 連鎖に切り替えるときは段差に注意。

サクっとWebアプリを作りたくなったときにやってること

いつもvueの公式boilerplateにちょい足ししてる 公開はビルドしたやつをfirebaseでホスティングが手っ取り早い Node, yarn, VueCLIが入っているのが前提 Node, VueCLIは必須、yarnはnpmで代用可 セットアップ $ vue init webpack <APP_NAME> $ cd <APP_NAME> $ yarn $ yarn add material-design-icons-iconfont roboto-fontface material-design-icons-iconfont vue-material vuex lodash $ yarn add -D node-sass sass-loader pug pug-loader stylus stylus-loader $ yarn dev ホットリロード インポーーーート /src/main.js /* css */ import 'material-design-icons-iconfont' import 'roboto-fontface' import 'vue-material/dist/vue-material.css' /* libraries */ import Vue from 'vue' import VueMaterial from 'vue-material' import Vuex , { Store } from 'vuex' import _ from 'lodash' import App from './App' Vue . use ( VueMaterial ) Vue . use ( Vuex ) Vue . config . productionTip = false const store = new Store ({ // Vuex Store here }) /* eslint-disable no-new *...

かっこいい定形連鎖

イメージ
赤がいっぱい来ると置き場に困る場面 コンセプト 上図鉄ぷよ(青)が消えて1段下がることを利用して上に階段を乗せる こんなんどうでしょう 連鎖の流れは本来の鉤積みと変わらず黄→緑→青でなかなか組みやすい というのも、赤が挟まっているだけで積み自体は鉤積みを浮かせただけに過ぎないから 間に挟む形は階段ではなく下図のように3列使うと連鎖尾の幅が広がる 黄→緑→青が最も自然なつなぎ方 鉤積みを浮かせるだけ 青→緑→黄と裏から回るパターンもかっこいい 階段風に消えていくので、5列目の緑黄は上下逆になる 赤を敷いた後にすぐ青ゾロが来た場合 はこちらに移行する これ以外で無理矢理繋げようとすると土台がでこぼこになって飽和連鎖量が下がる より実戦的な形の模索 赤の形はおそらく下図が最も受けが広い 下図のように完成する 下図左のような作りかけの鉤  →  上図右からさらに赤に偏ると結構困る(下図)   実戦的には下図のように単発を挟む 4個分なので落下ボーナスを加えると約1列分降る 消さずに土台を組めるのが下図 黄色を5連結にして6列目まで挟み込むことで連鎖の順番をコントロール

GTR自体のキーぷよ外し

イメージ
GTR自体のキーぷよというのは上図の鉄ぷよのこと ツモによってはここを後乗せしたほうが良い場合がある http://ips.karou.jp/simu/pv.html?_Aec0q0A4eCs2 上図左で青ゾロを土台に使っても良いが、青を分離することになるので折り返し付近の完成が遅くなる 割と土台も折り返しも中途半端になって組みづらくなるパターンが多い気がする そこで、GTR自体のキーぷよを省略して折り返しを作ってしまう(上図右) この形を便宜上後乗せGTRと呼びたい ネクストに赤青があれば格好のツモなのでわざわざ後乗せGTRにする必要はない よって、青ゾロは土台に使ってよい(下図) 普通に横Y字狙い 問題はキーぷよを省略した後 上図左の鉄ぷよ部分に変なぷよを置かないように注意!! 赤以外を置いた場合はそのぷよをちゃんと消さなければならない 上図右のようにちゃんと赤を乗せると連鎖がつながります 意外と形は悪くない 緑のキーぷよを外すと、GTRを修復することもできます 下図左端は仮テンパイした緑の連結を足して消せるようにしたパターン 青発火で本線がつながる 緑青でハチイチ単発をすると、青が消えて赤が残るため、GTRが修復される 緑青で発火せずにキーぷよを乗せれば本線が伸びる ってな感じ 更におしゃれな上からGTR 使いづらい端を使えるメリット 実戦で撃てたらめちゃくちゃかっこいいし、ぱっと見繋がっていないように見える 見た目は謎だが、組んでいる最中はゴミなくいつもの折り返しの上を組む感じなので見た目よりは簡単なはず 止まらずに組むのは難しそう あとどこまで組んだか忘れそう 高度なやつ せっかくの後乗せなので、従来のGTRにとらわれない発火ができる というのも、普通のGTRはL字の発火点が1列目にしか存在しないが、後乗せGTRではL字を2列目から発火できる(下図右) さっきまでの後乗せGTRの連鎖例はすべて従来型のL字を1列目から発火するパターンだった(下図左) というわけで、下図のようなエグめの連鎖が組めます 緑発火で赤黄同時消しの2ダブ、青を1列目に乗せれば赤発火で本線(下図) 宇宙もどき ...Some...