万年素人からHackerへの道

万年素人がHackerになれるまで殴り書きするぜ。

  • ・資産運用おすすめ
    10万円は1000円くらい利益
    資産運用ブログ アセマネ
    • ・寄付お願いします
      YENTEN:YYzNPzdsZWqr5THWAdMrKDj7GT8ietDc2W
      BitZenny:ZfpUbVya8MWQkjjGJMjA7P9pPkqaLnwPWH
      c0ban:8KG95GXdEquNpPW8xJAJf7nn5kbimQ5wj1
      Skycoin:KMqcn7x8REwwzMHPi9fV9fbNwdofYAWKRo

    CommonLisp Mac初める WebサーバWoo

    Lispはいろんなのがあるけど、sbclにした。 Common LispのWebサーバ「Woo」がだから。

    依存系のインストール(面倒なのでbrew

    brew install libev
    brew install sbcl

    パッケージ管理?QuickLispのインストール

    quicklisp.lisp がDLされ、それがあるフォルダで行う

    curl -O http://beta.quicklisp.org/quicklisp.lisp 
    sbcl --load quicklisp.lisp

    そのあとで、SBCLを起動

    sbcl

    その起動内したターミナルで初期化 ※~/quicklisp/setup.lisp"にはすでに入ってるっぽい。

    (load "~/quicklisp/setup.lisp")
    (ql:add-to-init-file)
    

    これで晴れてqlコマンドが実行できる。

    Wooのインストール

    (ql:quickload :woo)
    
    [package woo.ev.event-loop].......................
    [package woo.ev.condition]........................
    [package woo.ev.util].............................
    [package woo.ev.socket]...........................
    [package woo.ev.tcp]..............................
    [package woo.ev]..................................
    [package woo.response]............................
    [package woo.queue]...............................
    [package woo.specials]............................
    [package woo.worker]..............................
    [package woo.signal]..............................
    [package woo]....
    (:WOO)

    となればインストールされたっぽい。

    一旦SBCKから抜けて、

    hello_world.lispのファイルに書く

    (ql:quickload :woo)
    
    (woo:run
      (lambda (env)
        (declare (ignore env))
        '(200 (:content-type "text/plain") ("Hello, World"))))
    

    起動

    sbcl --load hello_world.lisp

    起動できる。

    5000がデフォルトのポートらしいので、

    http://localhost:5000 にアクセスすると、"Hello World"と表示される。

    Django 1.11で動かない

    from django.shortcuts import render
    
    ## 略
                return render_to_response('mysite/home_u.html',
                                          my_context,
                                          context_instance=RequestContext(request
                                                                          ))
    

    これが動かなくなってた。

    stackoverflow.com

    render_to_responseとかcontext_instanceとかいらなくなった。

    from django.shortcuts import renderに置き換える。 render_to_responserenderにする。 context_instance=RequestContext( )を外す。

    あとは、引数の順が変わることに注意!!!

    ログインのも関数からクラスベースに

    url(r'^account/login/$', 'django.contrib.auth.views.login', だったので、

    https://docs.djangoproject.com/en/1.11/topics/auth/default/#django.contrib.auth.views.LoginView

    Deprecated since version 1.11:
    The login function-based view should be replaced by the class-based LoginView.

    from django.contrib.auth import views as auth_views とインポートして

        url(r'^account/login/$', auth_views.LoginView.as_view(template_name='account/login.html'),
            name='login'),
    

    にした。