Django + Hylang
DjangoでHylangを使ってみるテスト
Projectの作成
# 必要なライブラリの設定 # (mkvirtualenvとかはインストールしてあること前提) $ mkvirtualenv django $ pip install hy $ pip install django # Djangoプロジェクト作成 $ django-admin startproject hydjango $ cd hydjango # DBとかのセットアップ $ python manage.py migrate $ python manage.py startapp hyapp # Templateフォルダ作成 $ mkdir templates
ファイルの変更
- hydjango/settings.pyを編集
INSTALLED_APPS = ( # なんやらかんやら書いてあるので、最後に下記を追加 'hyapp', ) # ... TEMPLATES = [ 'BACKEND': ... # DIRSの所に、上で作成したtemplatesフォルダを指定する 'DIRS': [os.path.join(BASE_DIR, "templates")], 'APP_DIRS': ... ... ]
- templates/hyapp_index.htmlを編集
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title></title> </head> <body> <h2>Hylang + Djangoサンプル</h2> </body> </html>
- hydjango/urls.pyを編集
# import文に下記を追加 import hy import hyapp from hyapp import views # urlpatternsに下記を追加 urlpatterns = [ url(r'^admin/', include(admin.site.urls)), # 下記を追加 url(r'^', hyapp.views.main), ]
(import os) (import [django.shortcuts [render]]) (import [django.http [HttpResponse]]) (import [django.template [RequestContext loader]]) (defun main [request] (setv template (.get_template loader "hyapp_index.html")) (setv context (RequestContext request {})) (HttpResponse (.render template context)))
- サーバ実行
$ python manage.py runserver 0.0.0.0:8888
- ブラウザで次URLにアクセスする
http://localhost:8888/
GitHub
下記に上げたので参考にどうぞ
https://github.com/dis-kaichi/hylang-samples
所感
とりあえず、views.pyをviews.hyに変えるだけでよかったので、難しくはなかった。
需要あるのかねコレ?
公式サイト見るとhttps://github.com/paultag/djlisp/tree/master/djlispみたいなのがあるので、完全にhylangにしたい場合はそっちを参考にすると良いかも
GitHub連携メモ
GitHubと連携する方法
いつも忘れるのでメモ。
GitHub上でプロジェクト追加
別にローカルでもいいけどめんどいので、GitHub上でやる
ローカルにクローン
GitHub上の「SSH clone URL」を参照して、ローカルにクローンを作る。
# サンプル
git clone git@github.com:dis-kaichi/hylang-samples.git
Gitの設定
# 取り敢えずGlobalで設定する ## user.name/user.emailは設定しないとcommitができないので必須 git config --global user.name "UserName" git config --global user.email "MyEmail@xxx.com" git ocnfig --global core.editor vim
ファイル編集
# 追加 & Commit
git add my_program.hy
git commit
GitHubにpush
# サンプル
git push git@github.com:dis-kaichi/hylang-samples.git
こんな感じ。
プリンタドライバインストール
プリンタドライバのインストール
ドライバDL
Linuxでプリンタのドライバをインストールする場合、Windowsの様に接続したら勝手にやってくれるわけではないので、自分でドライバを持ってくる必要がある。
今回の型番は「PIXUS MG4130」なので、以下からLinux/Ver3.60/Debian版をDLする。
http://cweb.canon.jp/cgi-bin/download/select-os.cgi?i_cd_pr_catg=011&i_cd_pr=3161&i_pr_search_word=&i_fl_select_pr_catg=1
libtiff4がapt-getでインストールできない
ここ参照How-to Install libtiff4 for Ubuntu 14.04 Trusty LTS Linux Easy Guide
必要なパッケージをインストール
上記のtarファイルを解凍すると、packagesディレクトリの中に、amd64(64bit)のdebファイルが2つある。
それらをインストールしようとすると、パッケージが足りないと言われるので、色々追加する。
# 色々追加したもの(下) sudo apt-get install libtiff4-dev libtiff5-dev libtiffxx5 zlib1g-dev libjpeg-dev libjpeg8-dev libjbig-dev liblzma-dev libjpeg-turbo8-dev libtiff4
日本語打ち込み小ネタ
mozc + 月配列
mozcで月配列を実現する方法は、以前紹介したが、この入力で1個問題がある。
例えば「は」(1文字)を入力したい場合、「a」を入力するのだが、aを入力しただけでは「は」に変換されない。
次に何か文字を入力するか、「F6」などでひらがなにする必要があり、かなり面倒。
結論としては、どうしようもないので、ひらがなにするキーを打つ事になるのだが、「F6」はフォームポジションを崩すので、べつなキーでやる事にする。
mozcショートカットキー
mozcのデフォルトのショートカットキーを利用して解決する。
キー | 機能 |
---|---|
C-u | ひらがな |
C-i | カタカナ |
C-p | 英字全角 |
C-t | 英字半角 |
ちなみにWindowsでもできるので活用しよう
ディスプレイ追加
Basixでディスプレイ追加
久しぶりにやったら、やり方を忘れていたので、備忘としてメモしておく。
Linux,画面解像度のお手軽設定( cvt, xrandrの利用)|世界的日曜WEBプログラマー日記
基本的に上記参照。
ディスプレイをPCに挿して、下記コマンドを実行。
xrandr --current
下記の様に表示される。
端子一覧と利用できるサイズが表示されるので、適当なものを選ぶ。
(下記はノートPCの画面(LVDS1)のみであるが、ディスプレイが接続されているとHDMI1, VGA1の下に一覧が表示される。)
Screen 0: minimum 320 x 200, current 1366 x 768, maximum 32767 x 32767 LVDS1 connected 1366x768+0+0 (normal left inverted right x axis y axis) 344mm x 194mm 1366x768 60.0*+ 1360x768 59.8 60.0 1024x768 60.0 800x600 60.3 56.2 640x480 59.9 VGA1 disconnected (normal left inverted right x axis y axis) HDMI1 disconnected (normal left inverted right x axis y axis) DP1 disconnected (normal left inverted right x axis y axis) VIRTUAL1 disconnected (normal left inverted right x axis y axis)
HDMIでテレビを繋いだ場合の設定。(今回設定した内容)
長いので、スクリプトにしておいた方が良いかと。
xrandr --output LVDS1 --mode 1366x768 --rate 60.0 --output HDMI1 --mode 1920x1080i --rate 59.9 --primary --right-of LVDS1
PythonでLISP
PythonでLispがしたい
Hy(hylang)とか言う、LISP方言があるらしい。
公式
数多くのLISP方言があるが、このHyの何がすごいのかというと、Pythonで実装されているのである。
雰囲気的には、 Javaに於けるClojureみたいなもので、HyとPythonの連携が容易である。
つまり、PythonistaでLisperの人にとっては夢のような言語なのである。
(実行速度が速いかどうかは置いといて。。。)
ClojureからJavaライブラリが容易に扱えるように、HyからPythonのライブラリも容易に扱える。
Vimで使う場合
VimにはHy用のfiletypeは(多分)無いので、何か別のもので代用する必要がある。
何がベストなのかは分からないが、とりあえずClojureにしている。
(関数の引数とかの書き方がClojureっぽいので)
; vimrcに下記を書いておくと、自動的にファイルタイプを設定してくれる au BufRead,BufNewFile *.hy set filetype=clojure ; または起動後に、下記を実行 ; :set filetype=clojure
インストール & 実行
インストールはPythonのライブラリ環境操作コマンドであるpipより簡単にできる。
; インストール
pip install hy
; 実行
hy sample.hy