スキップしてメイン コンテンツに移動

携帯セッションを管理するSinatraアプリケーション用プラグイン

Sinatra、Rackアプリケーションで携帯のセッション管理の自動化を行うためのプラグインをgithubに公開しました。
セッション情報をmemcacheに格納し、HTML中に自動的にセッションIDを埋め込みます。

機能
- ボディ内のリンクおよびフォームを解析し、自動でセッションIDのURLに変更します
- URL中に含まれるセッションIDをもとにセッションの管理を行います
- セッション情報はmemcacheに格納されます

昨年末に作った携帯サイト用の機能を切り出したものです。

MobileSession

コメント

このブログの人気の投稿

ESP8266で書き込めない時に対処したこと

ESP8266のチップで書き込めなかった問題が起こり、それについての対処を参考になる可方がいるかもということでブログにもメモとして残しておきます。 書き込みで失敗したケースとしては、 スイッチサイエンスさんのESP-WROOM-02ピッチ変換済みモジュール《シンプル版》 へのシリアル通信での書き込みができなかった問題 Over The Air(OTA)の機能を使うコードを、同じくESP-WROOM-02に対して転送するも、更新の途中でクラッシュし、書き込みが失敗するという問題 の二つです。 OTAまで使って書き込もうとしている背景は、ニャンパスとして Robip というプログラミング学習環境を作っていて、そのツールの中でWi-Fi経由での書き込み機能を対応することでスマートフォン、タブレットなどでのビジュアルプログラミングしたものが、OTA経由で電子工作のプログラミングができるようという機能があり、いくつかのESP8266を積んだモジュールへのサポートを増やそうとしたところ(ようはRobipとしての対応デバイスを広げたかった)上記の書き込みできない問題にぶつかりました。 Facebookのこちらに書いたことの詳細版です。 ESP-WROOM-02への書き込み出来ない問題 もともと、HaLake KitというコワーキングスペースHaLakeオリジナル基板は、ESP8266を積んでいますので、この書き込みツールとしてClojureで書いた robip-tool というのを用意していました。 このツールであればHaLake Kitには書き込めていたのですが、ESP-WROOM-02ピッチ変換済みモジュール《シンプル版》ですと最初の書き込みの段階で失敗することが分かりました。 そこで世界中で人気のESP8266ですので、色んなバージョンの書き込みツールがありまして、書き込みに成功するツールを探す旅が始まりました。 その際には、シンプル版だけでなく、HaLake Kit、ESPr Developer(ESP-WROOM-02開発ボード)、ESP-WROOM-02ピッチ変換済みモジュール《フル版》でも試して、全てで動くツールを検証しました。 途中、Go言語で書きなおしてみたりいろいろテストもしたのですが、結果的に全て

ClojureScriptとBLE

2017年Clojure Advent Calendar 15日目の記事として書きました。 今年、ニャンパスとして、またプライベートでいろいろとBLEを扱うコードをClojureScriptで書きましたので、まとめてみます。 使用したデバイスは、micro:bitです。秋葉原や通販等で手に入り、BLE、25個のLED、加速度センサーがついている学習用のボードです。ブラウザ上でビジュアルプログラミングでの開発ができたりと面白いので、年末年始に遊んでみてください。 ClojureScriptでの環境の作り方から始まって、micro:bitとPCとの接続、リモートでのLチカを試すというIoTなClojureScriptの内容となってます。 1. ClojureScriptで、BLEな環境を作る Node.js、npm、Leiningenを入れておいてください。プロジェクトを作ります。   $ lein new figwheel-node ble figwheel-nodeテンプレートを使い、できたファイルはこんな感じです。 ./project.clj ./README.md ./package.json ./.gitignore ./src ./src/ble ./src/ble/core.cljs ./dev ./dev/user.clj 今回、PC側をBLEのセントラルとして振る舞わせ、micro:bitをペリフェラルとして操作しますので、そのためセントラル側のプログラムとしてnobleというライブラリを使います。 OS毎に依存するものが違いますので、サイトで事前に確認しておいたほうが良いです。    https://github.com/sandeepmistry/noble ※nobleはMac、Linux、Windows、FreeBSDをサポートしており、 僕自身今年nobleを使ったコードをClojureScriptを使って、Windos、Mac、Linuxそれぞれで動かしていて動作は安定していました。 では、nobleを以下のコマンドを実行しておきます。   $ npm install noble ※普段はlein-npm等を使

HaLakeKit Lino開発しました!

少し前になりますが、 デブサミ2017 にて、IoTLTさんのブースで、HaLakeKit Linoを展示させていただきました。 HaLakeKit Lino デブサミでの展示 デブサミでの展示 HaLakeKit Linoは、BLEモジュールとして、昨年からニャンパスで作ってきていたもので、ボタン電池で駆動し、スマートフォン等から、BLEを手軽に操作してもらえるようなプログラムを書き込んであります。 ニャンパスの運営するコワーキングスペースHaLakeでもささやかにワークショップを行いました。 HaLake KitというESP8266を使ったデバイスをすでに開発して、プログラミング教室で利用していますが、HaLake Kitの場合は、IoTではありますが、Wifiモジュールですので、Wifiを前提としない、スマートフォンと直接接続が出来るBLE版が欲しかったというのが開発の動機です。 特徴としては、電圧が最大12Vで駆動し、実装されているMOSFETのお陰で、そのままの電圧をGPIOから出すことが出来ます。プログラムとして、4つのGPIOを制御できるようなBLEのプログラムが予め書き込まれているため、BLEデバイスのプロトタイプとして開発していくことが可能になっています。 また、オープンハードとして公開しており、KiCadで設計しています。BLEモジュールの開発PCBの参考にもぜひどうぞ。 https://github.com/nyampass/halakekit_lino Revisionが3となっていることからも分かる通り、3回目の設計であり、というのも当初想定したSoCが生産中止になったため、最終版で切り替えています。 サンプルとして動作するiOS、Androidアプリのソースコードも、Linoと連携するものをすでに要しており、今後Githubで時間のあるときに整理して公開予定です。 ニャンパス自体がソフトウェア開発がメインの会社ですので、できればライブラリ化して簡単にBLEモジュールを簡単に操作できるようにしたいと思っています。(Linoに限らずそういうことが出来れば理想。) ワークショップの情報は こちらのConnpass で行いますし、HaLakeで毎月開催のIoT勉強会でも触ってもらえるよう