ラック
Home > ブログ > 記事 > 2017年2月 > 雑多な近況報告

雑多な近況報告

カテゴリ: プログラム, ブラウザ

真面目な話ではなく、「大きく取り立てるほどではないけれども、一応書いておこうか」というような感じの内容が2つできたので、1つの記事の中でまとめて書いておこう、とそれだけです。

node.js

まず一点。ちょっとした雑談の中で「チャットツールっぽいものを作ってみたいねー」という話が出たので、node.jsの勉強がてら作ってみました。node.jsということは、当然WebSocketの実装であるsocket.ioを使用しました。

ベースのコードはこちらのサイト様のもので、ここにいくつかの機能を追加しました。

  • アクセス元のIPアドレスでユーザを自動判定(IPとユーザの紐付けとなるマスタデータはMySQL上に保存)
  • 発言時にサーバ時刻を取得して、上記のユーザ名と共にそれをメッセージに付与。発言者・発言時刻・発言内容をセットで1行に出力する
  • 発言時にMySQLに書き込み、ログをDBに保存することに。これを使って、ページにアクセスした時間より前の発言内容も見られるように

イントラでの使用を想定、というかテストのために作った上に機能の実装を最優先にしたのでセキュリティはガバガバになってしまったのがネック。雰囲気はつかめましたが、ちゃんとした書き方もしていないでしょうし…。

本当は部屋割り(ルームとかチャンネルとかグループ分けとか言われたりする機能)も実装したかったのですが、そこまでは辿り着けず…。

一方で、よく言われる「コールバック地獄に陥りやすい」というのはよく分かりました。socket.ioによるサバクラ間のデータのやりとりのコードの雰囲気もつかめました。こうした雰囲気がつかめただけでも新しい知見を得たことになるのかな、きっとなったのだと思っておきます。

Chromeの拡張機能

続いて二点目。昨晩ふと思い立ったのですごく雑なChrome拡張機能を作ってみました。Chrome拡張機能を作る、というのも初めての経験なのでここ最近「初めてやってみた」ものが急に増えました。いかに今まで怠けていたのか…。

さて、作ったChrome拡張機能については特設ページをご覧ください。ざっくりと概要を説明すると

  • 機能: PC版TwitterのWeb画面に1/27に追加された「モーメント」タブ。今まで「通知」タブがあった場所に突如追加されたので、何かと邪険な扱いを受けていますが…これを非表示にします。
  • 制作時間: 約10~20分。…いやだって「モーメントタブに付いているクラスを特定してcssでdisplay:none;する」だけでしたし…。

という非常に雑なものです。なお、Chrome拡張機能ってストアに登録するには手数料5.00$がかかるらしいですね。ということでストア登録はしていません。手順は面倒になりますが、登録されていないオレオレ拡張機能でも使えるようにする手順はあるらしいので…。

あ、使用は自己責任でお願いします。あと名前は駄洒落です。

※制作の際の参考サイトは以下。

今回初めて知ったのですが、拡張機能ってHTML、css、jsで作れるのですね…。あとは拡張機能だと明言するmanifest.json。色々やろうと思うとスコープがページ表示のスコープと異なるとか、制約があったりするようですが基本的にはWebの技術でいける、と。そういう仕組みだったのかー、と触ってみて感心しきりでした。


以上二点、node.jsのテストと、(非常に雑な)Chrome拡張機能の作成を行ってみたというお話でした。

タグ: javascript, ネタ, Chrome

 



関連する記事一覧