Wiki » History » Version 7
keiji ono, 12/04/2025 01:24 AM
| 1 | 1 | keiji ono | REPL起動 jlファイルを開いた状態で Shift+Enter または、"julia"と入れる |
|---|---|---|---|
| 2 | REPL終了 exit()を入れる |
||
| 3 | |||
| 4 | bashからの実行 |
||
| 5 | jlファイル先頭に 「#!/usr/local/bin/julia」を記述しファイルのchmodをして実行権限を与えてから |
||
| 6 | |||
| 7 | ./test.jl |
||
| 8 | |||
| 9 | python,php風だな |
||
| 10 | |||
| 11 | REPLからの実行 |
||
| 12 | |||
| 13 | include("path to test.jl") |
||
| 14 | |||
| 15 | この場合、「#!/usr/....」はいらない |
||
| 16 | |||
| 17 | REPLで"pkg"プロントにするには"]"をタイプ。出るには"^C"で。 |
||
| 18 | REPLでjlファイルをコンパイルするには |
||
| 19 | |||
| 20 | include("file name") |
||
| 21 | |||
| 22 | |||
| 23 | 一度コンパイルに成功するとそれがキャッシュにずっとあるので困る。以前はworkspace()というコマンドがあったみたいだが今は廃止されている。なので、replを再起動するしかないみたい。 |
||
| 24 | 2023/4/25現在 |
||
| 25 | repl起動でコンパイルされるが、repl起動後 include(..)で再コンパイルするとサクッと置き換えられるのでreplの再起動は必要ないみたい。 |
||
| 26 | |||
| 27 | DataFramesの説明 ちょっと古いけど |
||
| 28 | https://sinhrks.hatenablog.com/entry/2015/12/23/003321 |
||
| 29 | * Genieはこっちを見る |
||
| 30 | https://genieframework.com/docs/? |
||
| 31 | Genieのroute設定を削除するのはチュートリアルは古いので下記を実行する |
||
| 32 | |||
| 33 | julia>routes() |
||
| 34 | 4-element Vector{Genie.Router.Route}: |
||
| 35 | [POST] /posttest1 => #31 | :post_posttest1 |
||
| 36 | [GET] /test1 => #11 | :get_test1 |
||
| 37 | [GET] /hello => #9 | :get_hello |
||
| 38 | [GET] / => #7 | :get |
||
| 39 | |||
| 40 | julia>Router.delete!(:post_posttest1) ←delete!の引数がチュートリアルと違うから要注意 |
||
| 41 | |||
| 42 | 2 | keiji ono | h3. Genieアプリの起動とストップ |
| 43 | 1 | keiji ono | |
| 44 | 起動 |
||
| 45 | >cd (app dir) ex. cd Watchtonight |
||
| 46 | >bin/repl or julia |
||
| 47 | >up() ←shプロンプトでbin/serverでもサーバ起動はするが、Watchtonightサンプルの様に設定を読み込んだりする分にはup()でないといけないみたい |
||
| 48 | |||
| 49 | ストップ |
||
| 50 | ><ctrl+d> (windows/linux) |
||
| 51 | ><cmd+d> (macos) |
||
| 52 | |||
| 53 | Genieで起動するサーバの設定は./config/env/*.jlだが、変更したらイニシャライズが必要なので以下を再実行する必要がある。←down()/up()だけでは反映されない。 |
||
| 54 | 2 | keiji ono | serverのhost,portはenv配下を変えても反映されない。 |
| 55 | routes.jlの最終行に以下を指定するといいらしい。 |
||
| 56 | <pre> |
||
| 57 | up(port,server) |
||
| 58 | ex. up(8000,"0.0.0.0") |
||
| 59 | </pre> |
||
| 60 | 1 | keiji ono | |
| 61 | 別のやり方 |
||
| 62 | https://genieframework.com/docs/genie/tutorials/Loading-Genie-Apps.html |
||
| 63 | |||
| 64 | juliaプロンプトでアプリの場所にcd("...")で移動する |
||
| 65 | pkgプロンプトにして "activate ."を実行する |
||
| 66 | juliaプロンプトに戻って "using Genie"を実行する |
||
| 67 | 次に "Genie.loadapp()"を実行する |
||
| 68 | 最後に"up()"でサーバが起動する |
||
| 69 | |||
| 70 | APIKEYやpassword等は、.config/secrets.jlに書く。ここはgitignoreだから だそうだ。 |
||
| 71 | ここに記載されたデータはアプリケーション名でアクセスできるそうだ。 ex. MyGenieApp.pass とかかな? |
||
| 72 | https://genieframework.com/docs/genie/tutorials/The-Secrets-File.html |
||
| 73 | * Genie Tips: How to get the serverresponse on Genie |
||
| 74 | https://stackoverflow.com/questions/68127425/how-to-collect-http-response-status-using-genie-jl-in-julia |
||
| 75 | |||
| 76 | julia> using HTTP |
||
| 77 | |||
| 78 | julia> response = HTTP.get("http://127.0.0.1:8000/try") |
||
| 79 | HTTP.Messages.Response: |
||
| 80 | """ |
||
| 81 | HTTP/1.1 200 OK |
||
| 82 | Content-Type: application/json; charset=utf-8 |
||
| 83 | Server: Genie/1.18.1/Julia/1.6.1 |
||
| 84 | Transfer-Encoding: chunked |
||
| 85 | |||
| 86 | {"message":"Welcome"}""" |
||
| 87 | |||
| 88 | julia> response.status |
||
| 89 | 200 |
||
| 90 | |||
| 91 | 3 | keiji ono | h3. 開発環境のもろもろ |
| 92 | 4 | keiji ono | |
| 93 | v3.0リリース時の開発環境のDBアクセス方法 |
||
| 94 | |||
| 95 | -postgresql |
||
| 96 | sudo -u postgres psql -d <db name> |
||
| 97 | ex. Sudo -u postgres psql -d template1 |
||
| 98 | |||
| 99 | -mysql |
||
| 100 | mysql -u user -p<password> <db name> |
||
| 101 | ex. mysql -u user -puserpasswd mysql |
||
| 102 | |||
| 103 | -redis |
||
| 104 | redis-cli |
||
| 105 | |||
| 106 | ^mongodb |
||
| 107 | mongosh |
||
| 108 | |||
| 109 | |||
| 110 | 1 | keiji ono | PostgreSQL * sudo -u postrges psql |
| 111 | |||
| 112 | version確認方法 |
||
| 113 | sudo apt info postgresql |
||
| 114 | |||
| 115 | またはpsqlで接続後、下記を実行 |
||
| 116 | select version(); |
||
| 117 | |||
| 118 | 現状(2023/11/13)の開発マシンでは |
||
| 119 | PostgreSQL 14.9 (Ubuntu 14.9-0ubuntu0.22.04.1) on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0, 64-bit |
||
| 120 | |||
| 121 | ubuntu22ではsocketが/var/run/postgres配下に作成される。libPQ.jlからは/tmp配下にあることが期待されているようなので、postgresql.confを変更する必要がある。 |
||
| 122 | /etc/postgresql/14/main/postgresql.conf |
||
| 123 | |||
| 124 | # 2022/10/11 changed here from /var/run/postgresql -> /tmp |
||
| 125 | #unix_socket_directories = '/var/run/postgresql' # comma-separated list of directories |
||
| 126 | unix_socket_directories = '/tmp' # comma-separated list of directories |
||
| 127 | |||
| 128 | |||
| 129 | pg_ivmのインストールのために、postgresの各.hファイルが必要になるが、postgresのソース場所をライブラリリンク設定するのがめんどくさいときは、postgres-serverをインストールすると自動的に入るからいい感じ。 |
||
| 130 | その後、pg_ivmをmakeすればいい |
||
| 131 | |||
| 132 | sudo apt install postgresql-server-dev-16 |
||
| 133 | make USE_PGXS=1 |
||
| 134 | sudo make USE_PGXS=1 install |
||
| 135 | |||
| 136 | |||
| 137 | pg_ivmインストール後の設定は下記参照 |
||
| 138 | https://qiita.com/nuko_yokohama/items/0ae59f5d797bc79dcc06 |
||
| 139 | |||
| 140 | onoke@onoke-OptiPlex-990:~$ su - postgres |
||
| 141 | パスワード: |
||
| 142 | postgres@onoke-OptiPlex-990:~$ whoami |
||
| 143 | postgres |
||
| 144 | postgres@onoke-OptiPlex-990:~$ which createdb |
||
| 145 | /usr/bin/createdb |
||
| 146 | postgres@onoke-OptiPlex-990:~$ createdb ivm |
||
| 147 | postgres@onoke-OptiPlex-990:~$ psql ivm -c "create extension pg_ivm" |
||
| 148 | CREATE EXTENSION |
||
| 149 | postgres@onoke-OptiPlex-990:~$ psql ivm -c "\dx pg_ivm" |
||
| 150 | 4 | keiji ono | <pre> |
| 151 | 1 | keiji ono | インストール済みの拡張一覧 |
| 152 | 名前 | バージョン | スキーマ | 説明 |
||
| 153 | --------+------------+------------+-------------------------------------------- |
||
| 154 | pg_ivm | 1.7 | pg_catalog | incremental view maintenance on PostgreSQL |
||
| 155 | 4 | keiji ono | </pre> |
| 156 | 1 | keiji ono | mysql |
| 157 | |||
| 158 | root pw: aterui0 |
||
| 159 | start/stop: sudo systemctl start(stop) mysql |
||
| 160 | デフォルトではutf8mb4になっていて「補助文字」も扱える |
||
| 161 | 4 | keiji ono | <pre> |
| 162 | 1 | keiji ono | mysql> show variables like "chara%"; |
| 163 | +--------------------------+----------------------------+ |
||
| 164 | | Variable_name | Value | |
||
| 165 | +--------------------------+----------------------------+ |
||
| 166 | | character_set_client | utf8mb4 | |
||
| 167 | | character_set_connection | utf8mb4 | |
||
| 168 | | character_set_database | utf8mb4 | |
||
| 169 | | character_set_filesystem | binary | |
||
| 170 | | character_set_results | utf8mb4 | |
||
| 171 | | character_set_server | utf8mb4 | |
||
| 172 | | character_set_system | utf8mb3 | |
||
| 173 | | character_sets_dir | /usr/share/mysql/charsets/ | |
||
| 174 | +--------------------------+----------------------------+ |
||
| 175 | 4 | keiji ono | </pre> |
| 176 | 1 | keiji ono | killはpid指定で |
| 177 | 5 | keiji ono | |
| 178 | 6 | keiji ono | h3. on Mac |
| 179 | 7 | keiji ono | |
| 180 | 5 | keiji ono | postgres/mysql/redisはbrewでstart/stopする。 |
| 181 | <pre> |
||
| 182 | >brew services start/stop/restart <postgres/mysql/redis/mongodb> |
||
| 183 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
||
| 184 | 下記のリストから該当するものを入れる e.g. mysql@8.4 |
||
| 185 | |||
| 186 | >brew services info --all |
||
| 187 | ono-macbook-pro:Jetelina onokeiji$ brew services info --all |
||
| 188 | mongodb-community (homebrew.mxcl.mongodb-community) |
||
| 189 | Running: ✘ |
||
| 190 | Loaded: ✔ |
||
| 191 | Schedulable: ✘ |
||
| 192 | mysql@8.4 (homebrew.mxcl.mysql@8.4) |
||
| 193 | Running: ✔ |
||
| 194 | Loaded: ✔ |
||
| 195 | Schedulable: ✘ |
||
| 196 | User: onokeiji |
||
| 197 | PID: 666 |
||
| 198 | postgresql@14 (homebrew.mxcl.postgresql@14) |
||
| 199 | Running: ✔ |
||
| 200 | Loaded: ✔ |
||
| 201 | Schedulable: ✘ |
||
| 202 | User: onokeiji |
||
| 203 | PID: 7285 |
||
| 204 | redis (homebrew.mxcl.redis) |
||
| 205 | Running: ✘ |
||
| 206 | Loaded: ✘ |
||
| 207 | Schedulable: ✘ |
||
| 208 | </pre> |