ほんじゃら堂

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

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も試してみた。

続きを読む

Java/Pythonプログラマの自分が今からC#を学ぶ価値があるかどうかを検討する

f:id:piro_suke:20180416234346j:plain

WindowsのGUIアプリとして作りたいものがいくつかあって、

PythonのGUIライブラリを

いくつか(PyQtとかwxPythonとかKivyとか)試してみたけどしっくりこず、

やっぱりWindows用アプリを作るなら.NETじゃない?

ということでC#での開発について調べている。

今まで「Windows限定でVisualStudioがないと開発できないJavaみたいな言語」という、

汎用的じゃないイメージがあって避けていたのだけど、

調べてみると.NET CoreとかLinuxでも動作するCUIアプリを開発する仕組みもあって、

興味が湧いてきた。

新しい言語を学ぶならメイン言語にする価値があるものが良いので、

自分がプログラミング言語に求めることが一通りできるかどうか、調べてみた。

続きを読む