Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Pocとか紙芝居とか

 Pocとか紙芝居とか

短時間でProof of Conceptを作ってっていわれたので紙芝居でいいやろとしたけど、「それでは見た目がなぁ」といわれてイラっとした人いると思います。そういう人はこれをみて笑えばいいと思うよ。

Avatar for fu7mu4

fu7mu4

May 17, 2026

More Decks by fu7mu4

Other Decks in How-to & DIY

Transcript

  1. Proof Of Concept とかで ダミーの Web サービスっぽいものを 作ることあるよね ? 相反する要件

    • それっぽいものを客先に見せたい • でも締切までに間にあわない Proof Of Concept とかで ダミーの Web サービスっぽいものを 作ることあるよね ?
  2. 開発環境 Emacs(slime) swank server common lisp のイメージ 書き 換え 4005

    TCP 実行中に、 swank サーバー経由 で実行イメージのデバッグや書き 換えできるよ ソースはそのままなので注意 ! common lisp ソース ファイル 実行
  3. こっそり 開発環境 Emacs(slime) ユーザー ブラウザ swank server POC システム powered

    by common lisp web server 443(or 80) TCP 4005 TCP 操作をのぞき見
  4. Web サーバー • 全部 Common Lisp • Allegro potable Server

    • Hunchentoot 、など • CGI が Common Lisp • Apache http server • Nginx
  5. • sbcl で web server 起動 • Emacs(slime) から接続 •

    実行中の動作 を変更 ホットデプロイデモ
  6. ;;;; Emacs の設定 ~/.emacs or ~/.emacs.d/init.el ;; package 初期化 (require

    'package) (setq package-enable-at-startup nil) (add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t) (package-initialize) ;; パッケージ一覧を更新 (unless package-archive-contents (package-refresh-contents)) ;; slime をインストール(未インストール時のみ) (unless (package-installed-p 'slime) (package-install 'slime)) ;; SBCL 実行ファイルパス または “ /usr/local/bin/sbcl” など (setq inferior-lisp-program "sbcl") ;; slime のロード (require 'slime) (slime-setup '(slime-repl))
  7. ;;;; server-swank.lisp ;;;; sbcl --load server-swank.lisp (ql:quickload '("hunchentoot" "swank")) (use-package

    :hunchentoot) (swank:create-server :port 4005 :dont-close t) (define-easy-handler (hello :uri "/") () (setf (hunchentoot:content-type*) "text/plain") "Hello from SBCL!") (defparameter *server* (start (make-instance 'hunchentoot:easy-acceptor :port 8080)))
  8. ;;;; server-swank.lisp ;;;; sbcl --load server-swank.lisp (ql:quickload '("hunchentoot" "swank")) (use-package

    :hunchentoot) (swank:create-server :port 4005 :dont-close t) (define-easy-handler (hello :uri "/") () (setf (hunchentoot:content-type*) "text/plain") "Hello from SBCL!") (defparameter *server* (start (make-instance 'hunchentoot:easy-acceptor :port 8080))) localhost:8080/ にアクセス →テキストで挨拶を返すだけ TCP 4005 ポート開けて Swank サーバーにアクセス
  9. Emacs で M-x slime-connect で localhost の 4005 ポートに接続してプロンプトの cl-user>

    から新しい easy-handler を定義してやればよい。 cl-user >(define-easy-handler (hello :uri "/new") () (setf (hunchentoot:content-type*) "text/plain") "new page !") それから web browser で開くだけ サーバーの再起動はなし http://localhost:8080/new