ほんじゃら堂

めんどくさい仕事をラクにする作業自動化レシピ集

node.jsでWebスクレイピングして取得データを保存する

node.jsでデータ収集のためのWebスクレイピングを行う。

Webスクレイピングの流れというのはだいたい決まっていて、

  1. WebページにアクセスしてHTMLを取得する
  2. 取得したHTMLの中から必要なデータを抽出する
  3. 抽出したデータを保存する

の3段階となる。

続きを読む

node.jsでリモートのLinux環境やデータベースの操作を自動化する

ぼくが仕事でLinuxサーバ環境に接続して行う操作というのはだいたい決まっていて、

  • コマンドでサーバの状態を確認
  • ログをファイル出力してダウンロード
  • サービスの設定変更と再起動
  • SSHトンネル経由でDBアクセス

のうちどれかを行うことが多い。

基本は手作業だったり、シェルスクリプトを作って

実行したりする形で対応できるものなのだけど、

結構めんどくさいので、

今回はnode.jsでどこまで自動化できるかを試してみたい。

続きを読む

node.jsがやたら非同期化しようとするのをasync/awaitでどうにか同期化する

node.jsのライブラリって

非同期的に実行できるようにしてくれてるものがとても多い。

きっとそれは大変ありがたいことなのだけど、

とりあえず動いてくれればそれで良いような

意識の低いコマンドラインツールを作るような時は

思ったような順番で処理が実行されなかったり、

コールバック地獄になったりで

「ただ同期的に動かしたいだけなのに!」と困ることがよくある。

何ならnode.jsを使う時の悩みの大半は

この非同期処理の部分なんじゃないだろうかと思うぐらい。

このままではnode.jsが好きになれん、

ということであれこれ試してみた結果、

v7.6から使えるようになったasync/awaitを

使う形でようやく自分なりのパターンが見えてきたので、

ここでまとめておきたい。

続きを読む

Vue.js + SVG でヌメロン風数当てゲームをつくる

Vue.jsでこども用ゲーム作成シリーズ第3弾。

前回作ったマインスイーパーは、ゲームルール自体の中毒性のおかげか、

たまにプレイしてくれてるようで作った甲斐があった。

blog.honjala.net

飽きないうちに次のゲームを作成しておこう、ということで

今回は昔テレビで観たヌメロンというゲームを参考に、

数当てゲームを作ってみた。

Numer0n - Wikipedia

続きを読む

Vue.js + SVG でマインスイーパーもどきをつくる

前回作った数当てゲームがこどもに好評だったので、

blog.honjala.net

次はもう少し複雑なマインスイーパー作成に挑んでみた。

数当てゲームはシンプルすぎて2秒で飽きられたけど、

マインスイーパーならしばらく遊んでくれるにちがいない。

今回は前回使った Vue + Vuex + TypeScript に加えて、

今後より高度なゲームを作るにあたって役に立つであろう、

SVGを使って画面を作成してみた。

続きを読む

数当てゲームを作る(Vue.js + Vuex + TypeScriptに挑戦)

料理人の子がパパにおいしい料理を作ってもらえるように、

うちの子も何がしかプログラマの子としてのメリットを受けて然るべきではないか、

と急に思い立ち、子供用のゲームを色々作ってあげよう!

と燃えてきたので、すぐ作れそうな「数当てゲーム」を作ってみた。

せっかくなので、興味があったけど試してなかったVue.jsも試してみた。

続きを読む

デザイナーとプログラマのわがままに応えて、テンプレートエンジンから生成されたHTMLファイルを元の部品ファイルに分割するツールを作る

f:id:piro_suke:20170529005556j:plain

Webアプリを開発する際、

最近の多くのテンプレートエンジンはHTMLをレイアウトや部品に分割して作成し、

それをextendしたりincludeしたりして1つのHTMLとして出力できるようになっている。

部品化することで、ヘッダーとかメニューとかフッターとか、

複数のページで共通して表示する要素を変更する際に、

1箇所だけ変更すれば済むようになるわけだ。

しかし部品化することで発生するデメリットもあって、

Webアプリとして実行してみないと完成版のHTMLが確認できない、

外部のデザイナーさんとデザインをやりとりしづらい、

といった問題が発生する。

続きを読む