javascript

【Markdown】はてなブログの独自画像タグをimgタグに変換する方法

はてなブログの記事をローカルのMarkdownエディターで編集したいのですが、 はてなのMarkdown記法には独自タグが使われているためうまくいきません。 愛用のTyporaで記事を書きたいのですが。。 独自タグにはいくつかありますが、まずは記事編集でよく使う画…

1次元オセロの問題

こんにちは。 今日はひさしぶりにプログラミングの問題です。題材はオセロゲーム。 オセロゲームといえば8x8の2次元の盤面に白と黒の石をおいていくゲームですが、今日はそれを1次元にしたようなお題です。 お題 8x1の盤を使ってオセロをする。 盤面に白と黒…

【スプレッドシート】おじさん専用!予算管理用日付関数

こんにちは。 Googleスプレッドシートで予算管理をしようと企むオジサンです。 予算管理では様々な日付でグルーピンが必要になります。 たとえば年度ごとに集計とか、四半期ごとに集計とか... そのために「2019/01/01」のような日付を「FY2018」みたいな値に…

【スプレッドシート】カスタム関数を作る

GoogleスプレッドシートはGAS側に定義した関数(カスタム関数)を呼び出すことができます。 これを使いこなせたら最強だなと思ったのでいろいろ調べました。 GASに定義したカスタム関数を呼ぶ GAS側に function hello() { return 'hello'; } という関数がある…

GASのDateコノヤロー!

GASのDateに腹が立ったのでメモ。 var date = new Date('2020-01-01') これは想定通り2020年1月1日になります。 これに時刻を追加したこれは? var date = new Date('2020-01-01 09:00') なぜか1970年になります。 一方、同じgoogle製のchromeで同じコードを…

ツリー構造の問題

プログラミングの問題です。 親子関係のあるツリー構造の問題です。 親が子を持つか、子が親を持つか、相互に持つか、考え始めるといつも悶々としてしまうんですよねー。特に答えはないですが悶々としてみてください。 以下はjavascriptで書いてますが言語は…

【GAS】シートをDBのテーブルっぽく使う

最近、GoogleAppsScriptにハマり始めた GASはjsのバージョンが古くて好きじゃなかったけど、開発環境のセットアップが不要で気軽に始められるのが良い で、いろいろ作ってるとスプレッドシートをDBのように扱いたくなるのでライブラリ化した シートをDB化で…

javaのStream#map()とjsのArray#map()は実行順が違う

java8から追加されたmap 他の言語にも似た機能はありますが実行順が違うので備忘録的なメモ javaのmap Stream.of(1, 2, 3, 4, 5) .map(v -> { System.out.printf("%dに1を加える\n", v); return v + 1; }) .map(v -> { System.out.printf("%dを2倍する\n", v…

carloでHTTP通信してみる

carloとは 疑問 クロスドメインなサイトにajaxでHTTP通信できるの? 1. hello world setup htmlを作る index.jsでhtmlを読み込む 起動 2. UIからnodeを呼ぶ index.jsに呼ばれる側を作る htmlからnodeを呼ぶ 実行 3. node-fetchで通信する node-fetchのインス…

アクションRPG Day5 衝突

前回はアニメーションをやりました naosim.hatenablog.jp 今回は壁との衝突です Phaserの衝突は優秀で、プレイヤと壁それぞれに衝突する領域を定義したら後は勝手に計算してくれます プレイヤーの衝突定義 プレイヤークラスのcreateメソッドをいじります 何…

phaserでアクションRPG Day2 フィールドの作成

前回phaserのセットアップをしました naosim.hatenablog.jp 今日はフィールドを表示してみます で...いきなり壁... コードをcodepenで書いてたけどcodepenは画像を扱えなかった... ワークアラウンドはあるけど本質的じゃないコードが入るといやなのでjsdo.it…

phaserでアクションRPG Day1

アクションRPGが作りたくなった あとゲームフレームワークのPhaserがバージョン3になってたので勉強も兼ねて開発経過をメモします 初期状態のおまじない var config = { type: Phaser.AUTO, width: 400, height: 400, physics: { default: 'arcade', arcade:…

【GAS + kotlin】コードを分割してメンテしやすくする

前回、GASをkotlinで開発する方法を書きました naosim.hatenablog.jp この記事で「3万行を超えるkotlin.jsをコードに直接コピペする」と書きましたが、さすがにそれでは辛い 幸いGASは同一プロジェクトのスクリプトを簡単に呼べるのでそれを利用してファイル…

GASをkotlinで開発する方法

ちょっと強引な方法ですが動いたのでメモ 動いたと言ってもhelloworldが出ただけなので、その先に落とし穴があるかもしれない... intellijでkotlinjsのプロジェクトを作成し、コーディングする build.gradle Main.kt ビルド GASでコードを読み込む おまじな…

jsのクラスってコンストラクタに全部書いた方がよくね?

jsのクラスはこんな感じで書きます class Position { constructor(x, y) { this.x = x; this.y = y; } getX() { return this.x; } getY() { return this.y; } getDistance() { return Math.sqrt(this.x * this.x + this.y * this.y); } } この書き方の辛いと…

スクロールするとメニューがでるやつ作った

最近のサイトでよく見るやつ ライブラリが欲しかったけど、検索ワードがわからなかったり、jquery依存だったりでイイのが当たらなかったので自作しました コード ある要素が画面外に出たら通知するスクリプトです 使い方と動作 See the Pen menu by なおしむ…

【js】FetchAPIってのがあるらしい

ajaxといえばXMLHttpRequest でも直接触りたくないからそれを使うためだけにjqueryを入れる でもそれだけのためにjquery入れるのは辛いのでaxiosを入れてみる でもaxiosはまだv0.18だしなぁ じゃぁXMLHttpRequest直接触る? うーーん いつも↑このループに入…

ServiceWorkerでsvgを書き換えるメモ

twitterLiteのようなプログレッシブウェブアプリが作りたいのでServiceWorkerを使ってみました 面白いけど、ちょっと癖があるのでメモ とりあえずProxyが面白そうなので今日はそのサンプルを載せます そもそもServiceWorkerて何? 正しい説明はググってくだ…

jsonschemaジェネレータを作ろうと思った

jsonschemaはつらいよ たとえばapiのレスポンスがこんな感じだとします 正常 { "status": { "code": 200, "message": "ok" } } 異常 { "status": { "code": 500, "message": "internal server error" }, "errors": [ { "error_type": "unknown_error", "erro…

mermaidを非同期で読み込む

UMLを書くツールのmermaidがすごくいいのですが 使ってると共通部品を別ファイルとして外だししたくなってきます そうなるとajax等で動的に読み込む仕組みがほしくなります ただmermaidのデフォルトだと HTMLがreadyになったタイミングでパースとかの処理が…

UMLを書くならmermaidがおすすめ

UMLを書くときはPLANTUMLを使っているのですが レイアウトを思ったように配置してくれなくてイライラします

【node.js】ゼロからWebサーバを作ってみる

普段node.jsでwebサーバを作るときはexpress等のライブラリを使うかと思いますが 以前の記事で自前で作った流れで、もう少しサーバらしくしてみました。 まずは公式サイトからコピペ ↓ここにコードがある。 Node.js® とは これをそのままコピペする const ht…

【enchant.js】Mapの座標に小数が入ると表示が崩れる

個人的にenchant.jsの最大の長所はMapクラスで当たり判定までやってくれることだと思う。他のゲーム用ライブラリでもMapクラスはあるけどそこまではやってくれない。 そんな便利なMapクラスですが最近使ったら表示がおかしくなってしまったので原因を調べた…

gulpでFTPサーバにデプロイする

ひとりアドベントカレンダー4日目の記事です。 何番煎じかわかりませんが書きます。 FTPサーバに自動デプロイすること自体はやってるひとも多いと思いますが 実は私は毎回手動でやってました。 以前自動化したことはあるんですが、間違ってルートディレクト…

JS用2Dゲーム開発フレームワーク「phasejs」のropeを使う

ひとりアドベントカレンダー3日目の記事です。 phaser.jsってなに? JS用2Dゲーム開発フレームワークです。 特徴としてはスマホでサクサク動くことが特徴です。 一時期流行ったenchant.jsに比べるとメチャクチャ動作が軽いです。 他のライブラリと比べても…