AtomでLisp開発するときにカッコを忘れられるパッケージ3選

Lispといえばカッコが有名だ。

「カッコの数や範囲を常に注意して書く言語なんて馬鹿げてる!」と普通の人なら思うだろう。

実際のところ Lisper はそこまで気にしちゃいない、全てはエディタがやってくれる、らしいのだ。

Lisp で有名なエディタは Emacs だが、Atom でカッコを忘れられるパッケージ探してみたので紹介しようと思う。

language-lisp

構文ハイライト

lisp-paredit

カッコが足りなかったり多すぎたりすると教えてくれる。

良い感じでインデントしてくれる。

(カッコの範囲を簡単に変えたりできるけど、それは後述のパッケージがやってくれるので気にしなくて良い)

parinfer

インデントに基づいて閉じカッコを自動的に補完してくれる。

このパッケージのおかげでカッコのことを忘れて自由にLisp開発できる。

 

これらのパッケージでカッコを忘れて Lisp を楽しんで!!

仮想環境とかサーバーが外部から繋がらない時にするデバッグ方法!

こういうときに大事なのは、エラーになりそうな怪しい箇所の範囲を縮めていくこと!

始めに確認するのはネットワーク上にIPアドレスがあるかどうか。外部からpingを打つべし。

ping xxx.xxx.xxx.xxx

xにはアクセスしたいサーバーやら仮想環境のIPアドレスが入る。
もし失敗するなら仮想環境のツール、例えばVirtualBoxの設定などが怪しい。この辺は検索すればたくさん出てくるので、そんなに困ることはないはず。

pingが成功したならば、次に確認すべきはポートが開いているかどうか。

telnet xxx.xxx.xxx.xxx pppp

xにはIPアドレス、pにはポート番号が入る。
自分の場合はwindows環境だったので標準機能?の telnet を使ったが、ポートが開いているか確認できればよい。

telnetのインストール方法や使い方は以下を参照してください。
http://www.atmarkit.co.jp/ait/spv/0207/06/news002.html

失敗したならばポートが開いていない。仮想環境やサーバー側のファイヤーウォール関係が怪しい。「自分の使ってるOS ポート開放」と検索すれば方法は出てくるはず。ポートを開放しても失敗する場合、次のデバッグ方法を参照して欲しい。
成功したなら外部からのアクセスはできていることになる。それでも思った結果が出ないのであるならば、仮想環境やサーバー側の問題となる。

ここまで来てしまった人は、外部からのアクセスができないと思っていたけど実は全然関係なかった!!
という人なのだ。だからエラー原因の箇所を狭めていくというのは大切なことなのだ。検討違いの対策に何時間消えたことか……

次に確認すべきは仮想環境内のOSの設定やサーバー側のポートの開放状態。

netstat -anp

自分の場合はLinuxだったので netstat を使った。オプションは好きにカスタムしよう。上記のオプションぐらいはチェックしておくと良いかも。大概は上記のままでオーケーなはず。

netstatのオプションは以下を参照してください。
http://itpro.nikkeibp.co.jp/article/COLUMN/20060227/230845/?ST=spleaf

たぶん表示結果に目的のポート番号は表示されていないだろう。
逆に表示されている場合は目的のサービスとは違うサービスが占領しているのだろう。その時は netstat の p オプションでPIDがわかっているはずなので kill するなりなんなりしよう。

ここで考えるべきは目的のサービスが自分の思ってるポート番号と違う可能性だ。公式ドキュメントを見直すのも良いと思うが、今回は簡単にサービスを起動している時としていない時で netstat の結果を見比べれば良い。

そして見つけたポートを開放してアクセスすれば成功しているはず!
それでも失敗している or ポートが見つからないなら、サービスの起動や設定を見直すべき。


いつも環境構築には苦労させられるが、それはエラーを特定するのが大変だからなのであろう。
根本としてコンピュータがどう動いているか、インターネットがどう通信しているかなどを知らず、特定をするための推理すらできないのが問題なのだと思う。
今回の例にしても、IPアドレスがあって、ポートがあって、サービスがあってという流れを知らなければ範囲を狭めることも出来なかったであろう。
今回、特定するにあたって初めて telnetnetstat の存在を知った。インターネットについてもよくわからないことが多い。こういった分野も勉強していかなければならないと感じた日であった、まる

ゲームエンジンのまとめのまとめ【 HTML5 & JavaScript 】

Googleのまとめ

http://html5gamedevelopment.com/category/html5-engines/

MDNのまとめ

https://developer.mozilla.org/ja/Apps/Game_engines_and_libraries

上記のURLはエンジンについて書かれているページだが、他のページにはゲームを作るために必要な色々なことが書いてある。衝突検出、アニメーション、3Dなどのテクニックや、プログラミングパターンなど。詳細はコチラ

Clayのまとめ

https://html5gameengine.com/

広告や配布などを簡単にしてくれるClayさんのサイト。人気順で並んでおり、コメントやサンプルゲーム、ライセンスなどが見れる。

 

以上、まとめのまとめでした。

爆速 Twitter Bot 作成ツール。プロトタイプ版を公開

何を作ったの?

 

今回作った「 BotFactory 」をひとことで言うと、Bot 作成ツールです。ただし返信速度が数秒という爆速となっております。Twitter Stream API を Node.js を使ってさばいていくので大量のリクエストであっても爆速で捌ける、はずです。

現状では返信の機能しかありません。定期的にツイートしたり、自動でフォローしたりしません。使い方もある程度プログラムの嗜みがないと難しいと思います。プロトタイプ ver 0.1 なので勘弁くだせぇ。

もちろん目指すところはプログラムなんぞ知らなくても簡単にゲーム用Botが作れる、です。詳しくは前回の記事まで

github.com

 

簡単じゃない使い方

Node.js とか Git とか少し使えるぜ、という方向けの説明になります。

  1. npm install botfactory
  2. Twitter のアプリ管理ページからアプリを作って、コンシューマーキーや、アクセストークンなど4種類をコピーしてきます。
  3. それらを使って README を見ながら AI を作っていきます。
  4. Heroku などのサーバーにアップしたら完成。

たったの4ステップで完成ですわ!

 

まとめ

爆速返信 Bot ってだけでも意外と需要はある気がしないでもない。ご意見・感想・質問・雑談までなんでも気軽に送ってください。ブログコメントでも @keke_moto へのツイートでも。開発の協力も常時募集中!

「BotFactory」を俺が説明する

ゲームのキャラクターに、聞いたり、話したり、頼んだり、そんな風に進んでいく物語は楽しいと思いませんか。

 

何を作りたいのか

ゲーム用 Bot ツールです。Botを使ってゲームをしたいのです。ゲームのキャラクターと会話して冒険したいのです。ただし現状の Bot ツールではゲームとして遊ぶには物足りないものが多々あります。そしてこの現状を打破すべく「BotFactory」を開発します。

 

どんな感じか?

2016/10/12の現在、既存のツールを使ったプロトタイプ版を公開しています。

 このゲームは「ツイートしてるだけで時給一万円。ただしアイコンが素敵な赤色をしている人のみ」というおいしい仕事が突然になくなってしまった。なぜなくなったのか気になって夜も眠れない、調べてほしいという相談から始まります。

キャラクターであるBotに『』で囲まれたキーワードを@ツイートしていくことで話を進めていきます。

 こうしてキャラクターの話を聞いて、推理し、謎を解くミステリーとなっております。まだまだプロトタイプですのでご意見・ご感想などまだまだ募集中です。

 

誰でも作れる話

今回はプロトタイプ版でサクッと作りたかったので twittbot を使って作りました。プログラムなど必要なく簡単に作れるので興味があれば皆さんも作ってみてください。

twittbot.net

もし作って頂けたならばけけもと@keke_motoに報告してくださると嬉しいです。微力ながら宣伝もします。

2016/10/12の現在、あまり見せられる状態でない製作中のHPもあるよ!

 

問題点

データを保存できないというのがゲームとして表現を狭めてしまいます。

例えばフラグ管理ができません。特定の行動した場合に返信内容を変えるなどができません。例えば戦闘ができません。HPが保存できず、レベルも保存できません。例えばデッキが保存できません。データの保存以外でもサイコロが振れません、カードをランダムに配れません。

これらを解決する開発支援ツール「BotFactory」を作ろうと思います。

 

機能(予定)

  • データの保存、編集
  • チャットツール(TwitterFacebook)の多様化
  • 返信速度の変更

大量のアクセスに耐えられるNode.jsと、様々なチャットツールに対応できるHubotを使って作っていく予定です。

Githubhttps://github.com/red-icon

 

まとめ

今後はこのはてなブログを通して開発状況を報告していきたいと思っています。ちょっとどうなるかわかりませんが、少しずつ開発していきたいと思います。

んでもって開発に協力してくれる人も募集!プログラムができなきゃできないことや、プログラムなんて全く必要ないこともあります。詳しくは @keke_moto やブログコメントにて