tohokuaikiのチラシの裏

技術的ネタとか。

ckanを始めてみる

Getting started — CKAN 2.7.0a documentationを参考に始めてみる。CKANはバージョン2.7

CKANコマンドについて

CKANコマンドは、/usr/bin/ckanを直接使うのではなくpasterコマンドを使うことになる。

pasterコマンドを使うためには一旦ckanのシェルに入り、更にckanプロジェクトのルートディレクトリにcdする必要がある。

以下、インストール時にはroot権限だが一般ユーザーckanを作成してそこから実行している。

$ . /usr/lib/ckan/default/bin/activate
$ cd /usr/lib/ckan/default/src/ckan

とする。

これをやらないで普通にpasterコマンドを実行しようとすると

$ paster sysadmin add seanh -c /etc/ckan/default/production.ini
The program 'paster' is currently not installed. You can install it by typing:
apt-get install python-pastescript

と言われる。また、ckanプロジェクトのルートディレクトリに入らないと

(default)$ paster sysadmin add seanh -c /etc/ckan/default/production.ini
Command 'sysadmin' not known (you may need to run setup.py egg_info)

と言われたりする。

というわけで、

# su - ckan
$ . /usr/lib/ckan/default/bin/activate
(default)$ cd /usr/lib/ckan/default/src/ckan/
(default)$

とする。

管理ユーザーを追加

管理画面にログインするための管理ユーザーを作る。seanhという管理アカウントの場合は下記のckanコマンドを打つ。

(default)$ paster sysadmin add seanh -c /etc/ckan/default/production.ini
User "seanh" not found
Create new user: seanh? [y/n]y
Password:
Confirm password:
Creating seanh user
Added seanh as sysadmin

パスワードを入力して完了。

sysadminコマンドはその他にも色々と機能がある。

(default)$ paster sysadmin --help
Usage: paster sysadmin [options] Gives sysadmin rights to a named user

    Usage:
      sysadmin                      - lists sysadmins
      sysadmin list                 - lists sysadmins
      sysadmin add USERNAME         - add a user as a sysadmin
      sysadmin remove USERNAME      - removes user from sysadmins

Gives sysadmin rights to a named user

Options:
  -h, --help            show this help message and exit
  -v, --verbose
  -c CONFIG, --config=CONFIG
                        Config file to use.
  -f FILE_PATH, --file=FILE_PATH
                        File to dump results to (if needed)

より詳しくは、sysadminガイドを読むと良い。

テストデータの投入

これもckanコマンドのcreate-test-dataで。

(default)$ paster create-test-data -c /etc/ckan/default/production.ini
Running setup_app() from ckan.websetup
2016-11-02 07:15:06,052 INFO  [ckan.websetup] Creating tables: SUCCESS
Creating basic test data
/usr/lib/ckan/default/local/lib/python2.7/site-packages/sqlalchemy/orm/unitofwork.py:79: SAWarning: Usage of the 'related attribute set' operation is not currently supported within the execution stage of the flush process. Results may not be consistent.  Consider using alternative event listeners or connection-level operations instead.
  sess._flush_warning("related attribute set")
Creating basic test data: Complete!

Warningが出たけど2件のデータが投入された。 f:id:tohokuaiki:20161102161736p:plain

データ操作については、Database Management — CKAN 2.7.0a documentation を参考。

設定ファイル

設定ファイルは /etc/ckan/default/production.ini をいじって、apache restartさせる。

設定ファイルの細かいところは、Configuration Options — CKAN 2.7.0a documentationを参照。

ckanをインストールしてセットアップする

データポータルのCMSであるCKANをインストールしたのでその作業メモ. CKANのバージョンは2.7

環境設定

ソースかパッケージ化でインストールできるが、パッケージである.debでインストールしたいのでUbuntu14を用意。

Vagrantで環境を用意

最初、手持ちのUbuntu16でやってみたらミドルウェアのバージョンがうまく合わなくてすんなりいかなかったのでVagrantで新しく用意した。 参考

  • Vagrantをインストールし、cygwinを立ち上げてVagrantBoxを加える。
$ vagrant box add ubuntu14.04 https://cloud-images.ubuntu.com/vagrant/trusty/current/trusty-server-cloudimg-amd64-vagrant-disk1.box
$ vagrant init
  • initコマンドでVagrant使用するVagrantBoxをConfigureファイルVagrantfileに記述して起動
  config.vm.box = "ubuntu14.04" # VagrantBox名
  config.vm.network "private_network", ip: "192.168.56.11" # private アドレス
$ vagrant up

CKANをインストールする

パッケージでインストールするの通り進める。

  • Vagrantで作ったばかりのUbuntu14をUpdate
# apt-get update
# apt-get install -y nginx apache2 libapache2-mod-wsgi libpq5 redis-server git-core
  • CKANのdebパッケージファイルをダウンロードしてインストールする
# wget http://packaging.ckan.org/python-ckan_2.5-trusty_amd64.deb
# dpkg -i python-ckan_2.5-trusty_amd64.deb
  • Postgresをインストールしてセットアップ
# apt-get install -y postgresql
  • CKANで使用するDBユーザー「ckan_default」を作る。パスワードが出るので指定する。
# sudo -u postgres createuser -S -D -R -P ckan_default
  • CKANで使用するデータベース「ckan_default」を文字コードUTF-8で作り、ckan_defaultユーザーに権限を与える。
sudo -u postgres createdb -O ckan_default ckan_default -E utf-8
  • チェックする
# sudo -u postgres psql -l
                                     List of databases
     Name     |    Owner     | Encoding |   Collate   |    Ctype    |   Access privileges
--------------+--------------+----------+-------------+-------------+-----------------------
 ckan_default | ckan_default | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
 postgres     | postgres     | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
 template0    | postgres     | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
              |              |          |             |             | postgres=CTc/postgres
 template1    | postgres     | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
              |              |          |             |             | postgres=CTc/postgres
(4 rows)

Solrのセットアップ

  • Solr Jettyをインストールする
# apt-get install -y solr-jetty
  • SolrのConfigurationファイル/etc/default/jettyを変更する
NO_START=0            
JETTY_HOST=127.0.0.1  
JETTY_PORT=8983       
  • Solrを起動する
service jetty start
  • Solrの動作チェック
# wget http://localhost:8983/solr/

・・・といってもなんかうまく出てこなかった・・・と思ったらfirewallが入ってたのかも?ま、とりあえず次へ。 * Solrのスキーマを設定・・・元のファイルをとっておき、ckanのSolrをシンボリックリンクする。

# mv /etc/solr/conf/schema.xml /etc/solr/conf/schema.xml.bak
# ln -s /usr/lib/ckan/default/src/ckan/ckan/config/solr/schema.xml /etc/solr/conf/schema.xml
  • Solrを再起動する
service jetty restart

CKANの設定をして起動

  • CKANのConfigureファイルを変更する /etc/ckan/default/production.ini を変更。*********は設定したPostgresアカウントのパスワード
solr_url=http://127.0.0.1:8983/solr
ckan.site_url = http://demo.ckan.org
sqlalchemy.url = postgresql://ckan_default:**********@localhost/ckan_default
  • ckanコマンドでDBを初期化
# ckan db init
  • Apacheとnginxをリスタート
# service apache2 restart
# service nginx restart

ブラウザで先ほど設定したckan.urlを開く

http://demo.ckan.org を開くと下記のようなものが見える。 f:id:tohokuaiki:20161102152410p:plain

んー。

ソースから入れようとしたり、OSを推奨のものに合わせればインストールは簡単かな。

ニンテンドークラシックミニ ファミリーコンピュータのタイトルとメーカーの一覧

を作った。 www.nintendo.co.jp

メーカーとタイトルの一覧

タイトル メーカー
1983年、1984年発売
ドンキーコング 任天堂
マリオブラザーズ 任天堂
パックマン ナムコ
エキサイトバイク 任天堂
1985年発売
バルーンファイト 任天堂
アイスクライマー 任天堂
ギャラガ ナムコ
イー・アル・カンフー KONAMI
スーパーマリオブラザーズ 任天堂
1986年発売
ゼルダの伝説 任天堂
アトランチスの謎 サンソフト
グラディウス KONAMI
魔界村 カプコン
ソロモンの鍵 テクモ
1986年、1987年発売
メトロイド 任天堂
悪魔城ドラキュラ KONAMI
リンクの冒険 任天堂
つっぱり大相撲 テクモ
1988年、1989年発売
スーパーマリオブラザーズ 任天堂
忍者龍剣伝 テクモ
ロックマン2 Dr.ワイリーの謎 カプコン
ダウンタウン熱血物語 テクノスジャパン
ダブルドラゴンⅡ The Revenge テクノスジャパン
1990年発売
スーパー魂斗羅 KONAMI
ファイナルファンタジーIII スクウェア
ドクターマリオ 任天堂
ダウンタウン熱血行進曲 それゆけ大運動会 テクノスジャパン
1991年、1992年、1993年発売
マリオオープンゴルフ 任天堂
スーパーマリオUSA 任天堂
星のカービィ 夢の泉の物語 任天堂

メーカー別本数

半分近くが任天堂のもの。なかなか権利関係とか面倒そうだからかな。

メーカー 本数
任天堂 14
KONAMI 4
テクモ 3
テクノスジャパン 3
ナムコ 2
カプコン 2
サンソフト 1
スクウェア 1

アプリ不要 iPhoneのSafariでテキストから書式情報を除去する方法

純粋なテキストデータだけが欲しい時ってないですか?

私は、Gmailでメールを作るときにリッチテキストにしたくない(書式情報を無しにしたい)ので、そういう時がままあります。SafariのテキストをGmailアプリのメール作成時にコピペすると、書式もコピーしてしまうんですよね。

iPhoneの「メモ」っていうアプリもありますが、これも書式が付いてくる。

Windowsとかならメモ帳立ち上げて一度コピペしなおせば書式情報が落ちるのになー・・・とか思いつつ、iPhoneでそれだけの為にアプリを入れるのもどうかなと。そもそもそんなに使わないし。

ということで、Safariを使う。

Webページで複数行テキストが入れられるアレを書式情報を落とすエディタ代わりに使います。

やり方は簡単で、ブックマークとして以下の文字列を登録し、そのブックマークにアクセスする。

data:text/html;base64,PGh0bWw+PGhlYWQ+PG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLCB1c2VyLXNjYWxhYmxlPW5vIj48L2hlYWQ+PGJvZHk+PHRleHRhcmVhIHN0eWxlPSJ3aWR0aDoxMDAlO2hlaWdodDo5MCU7Zm9udC1zaXplOjEuMmVtIj48L3RleHRhcmVhPjwvYm9keT48L2h0bWw+

f:id:tohokuaiki:20160912163444p:plain

この文字列何?

これは、以下のPHPを実行したものです。

data:text/html;base64,<?php
echo base64_encode('<html><head><meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no"></head><body><textarea style="width:100%;height:90%;font-size:1.2em"></textarea></body></html>');

このブックマークにアクセスすることで、Base64でコードしてこのHTMLを吐き出すようになります。

font-size:1.2emは自分がそれくらいが良いかなと思ったから。

鳥越さんのハフィントンポストのインタビューで打線組んだ

1.(右) 僕はニコ生は基本的にメディアとして認めていない
2.(中) 俺は知らなかったの。ニコニコから話が来ていたなんて。
3.(遊) ネットにそんなに信頼を置いていない。しょせん裏社会だと思っている。
4.(一) ペンの力って今、ダメじゃん。全然ダメじゃん。力ないじゃん。
5.(二) それは知らない。僕は全くノータッチだから。なくなったの?知らない。見たこともないし。(自分のホームページについて)
6.(左) 池上さんの話って何?選対の部分でカットしているから、なぜか僕は全く知らない。
7.(三) 日本国民はいつ気が付くのか。気が付いていないんだよ、まだ。騙されているんだよ。
8.(捕) 今の国民ははっきり言うと、ボケてますよ。
9.(投) 彼ら(若者)は何もわかってない。わかっていればもう少し真剣になる。

中継ぎ:宇都宮さんは、最終的にはそれを、口実に使ったんですよ。
抑え:俺も色々やったけれど、(メディアが)昔のようには取りあげてくれない。
代打:それは僕ではなくて、選対の判断だから。
代走:「厚化粧」ってそんなネガティブな意味じゃないからね。「病み上がり」に比べたら。

控え:
夕方にはもう帰って飯食ってるってこともありましたからね。「これでいいのかな、選挙」って思ったこともありましたよ(笑)
...と思った有権者も、いたかもしれない。証拠はないです。
気が付いたときには残り10日くらいだった
日本でリベラルが勝っていますか。勝っていないでしょ。負けてるんですよ。現実に。
僕は一つの捨て身の駒になってもよかったんだなと
日本のリベラルは「塊はあるな」と。でも足りない。

引用元

前編 www.huffingtonpost.jp 後編 www.huffingtonpost.jp