東村アキコについて
一年に一度の楽しみである、かくかくしかじかの新刊が発売された。毎年、かくかくしかじかの新刊を買って読むたびに、ムズムズとした気持ちになるので、俺と東村アキコの話を書く。
出会い
俺が初めて読んだ東村漫画は、大学の寮に入寮したての頃に読んだ、『ひまわりっ〜健一レジェンド〜』だった。寮で同じ部屋員となった、医学部のN君が毎週狂ったように買ってくる週刊モーニングに連載されていた作品である(今思えば、彼が毎週モーニング買ってなかったら、こんなに東村作品を読んでいなかっただろう)。
正直にいうと、「この漫画面白いけど、力強すぎて、そんなに流行らないかもなぁ」と思ったのだけれど、意味不明なノリに圧倒され一発で好きになった(東村作品は、基本的にキャラクターのテンションが異常に高く、身内ネタや80~90年代ドラマネタ、宮崎県のローカルネタなどが毎度鬼のように繰り返される)。「この面白さがわかるのは俺だけ」というような歪んだ親心も、自然と芽生えた。
かくして東村アキコは、俺の中で『俺だけが認める漫画家』となり、ホノオモユルにとっての高橋留美子的存在となったのだった。
俺だけの東村アキコでなくなった
あれはたしか、大学3年の冬だった。 大学の図書館でそれとなくネットニュースかなんかみていたら、突然東村アキコの名前が目に飛び込んできた。『ママはテンパリスト』この漫画を読め!一位受賞のニュースである。
ここからの東村アキコは本当にすごかった。ママテンに続き、『海月姫』の大ヒット。少女漫画感と、独特の狂ったテンションをきっちり両立させ、ノイタミナ枠でアニメ化までされる怪作となった。
自分が好きな漫画家が有名になったことが非常にうれしい反面、何ともいえないひっかかりが胸に残った。東村アキコは、 俺だけの東村アキコでなくなったのだ。
かくかくしかじか
俺は大学を卒業し、なんとなく仕事を始めて、季節は冬になった。途中まで集めていた『主に泣いてます』は大学卒業と同時に売ってしまい、東村作品とは少し距離を置くようになっていた(もちろん後で全巻買い直しました)。そんな矢先、新刊コーナーに平積みされた、『かくかくしかじか』を本八幡のくまざわ書店で見かけたのだった。
表紙に描かれた、絵筆を加えた女子高生は、明らかにアキコだった。この時点で彼女自身のことを描いた作品なのだとわかったが、表情はどことなくキッとしていて、『ママはテンパリスト』や『ひまわりっ』のアキコとは雰囲気が違っていた。
実際に読んでみると、やはりこれまでの作品とも、単なる自伝的作品とも違っていた。自伝というよりは、 彼女の懺悔や後悔の念の固まりである。
なるべきだった自分と、今の自分を真剣に見比べると、色々やり直したくなってくるのは皆同じなのだ。もうどうにもならないことというのは、どうしてこんなにどうにかしたくなるのか。やっぱり世の中、失敗も成功も、本人の思い通りにいかんもんだよなぁ。
しかしまぁ、そんな話だけで終わらないのが、東村アキコの作家性(人間性?)である。やっぱり、この人頭おかしい。もちろんいい意味で。
俺と東村アキコ
「すごいと思う漫画家は?」と聞かれたら、色々と考えてしまうが、「好きな漫画家は?」と聞かれたら、俺は東村アキコと即答する。
東村作品については、もはや冷静に分析しながら読むことはできなくてっている。 なんかもう、よくわからんけど好きなのだ。アキコが前からの知り合いみたいな気持ちになってる人は、たぶん俺だけでないはず(っていうかそう願いたい)。
ちなみに俺が一番好きな東村キャラクターは、二見です。キャラクターではないが。ご本人いらっしゃるが。
- 作者: 東村アキコ
- 出版社/メーカー: 集英社
- 発売日: 2014/01/24
- メディア: コミック
- この商品を含むブログ (15件) を見る
さくらVPS上にWebサービスを公開したはなし
正月で生活習慣が乱れまくったので、睡眠習慣を記録するWebサービスを作った。
おふとんグラフ
http://ofline.biz/
使用したもの
・サーバ:さくらVPS
・言語:Python
・フレームワーク:Flask(flask-oauth, flask-wtf, sqlalchemy)
・HTTPサーバ:nginx
・DB:MySQL
サービスを公開するにあたって、やったことをメモする。
さくらVPSのリモート設定
参考URL
http://blog.hybridism.com/?p=140
http://dogmap.jp/2011/05/12/vps-security/
※rootログインの禁止とか、ポートの変更とかは上記のサイトをそのまま参考にした。
公開鍵設定もほとんどそのままだけど、おぼえられんのでメモ。
公開鍵の設定
・クライアント側
~/.ssh に任意のフォルダを作り、その中に公開・秘密鍵を生成する GitHubとか使ってると鍵がごちゃつくので、VPS用のフォルダを任意の名前で作っておく $ mkdir ~/.ssh/サーバ名 $ cd ~/.ssh/サーバ名 $ ssh-keygen -t rsa -C "鍵名" ~公開鍵を作成~ Enter file in which to save the key (/home/yui/.ssh/id_rsa): /home/yui/.ssh/サーバ名/秘密鍵名('id_rsa-サーバ名'とかにすると管理しやすい) Enter passphrase (empty for no passphrase): パスワード(2回入れる)
秘密鍵:id_rsa-サーバ名
公開鍵:id_rsa-サーバ名.pub
が生成される。
秘密鍵の権限を600に変更しておく
$ chmod 600 ~/.ssh/サーバ名/id_rsa-サーバ名
公開鍵をscpコマンドでサーバに送っておく
$ scp ~/.ssh/サーバ名/id_rsa-サーバ名.pub ユーザ名@xx.xx.xx.xx: 公開鍵を指定して、ユーザのホームフォルダにコピーする
・サーバ側
.sshに公開鍵をauthorized_keysに設定(なければ空のファイルを作っておく)
$ touch authorized_keys authorized_keys(空ファイル)を作る $ cat さっき送った公開鍵 >> authorized_keys authorized_keysに公開鍵の内容を設定(上書き。複数のクライアントを設定することあるので。)さっき送った公開鍵はサーバから消しておく。 $ chmod 600 authorized_keys ここが間違っていて、はまりました
sshdの設定ファイル変更
/etc/ssh/sshd_configを以下のように修正(バックアップはとっておくこと) RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile %h/.ssh/authorized_keys #(コメント)を外して公開鍵認証を有効にする PasswordAuthentication no パスワード認証を禁止にする
sshdを再起動する
$ service sshd restart
・クライアントから正常にログインできるかチェック
$ ssh ユーザ名@xxx.xxx.xxx -i ~/.ssh/サーバ名/id_rsa-サーバ名 -i オプションで秘密鍵の場所をを指定すること 正しくつながれば、鍵を生成したときのパスワードを入力してログインできる サーバ側のauthorized_keysの権限設定が間違ってたりすると Permission denied (publickey,gssapi-keyex,gssapi-with-mic) となってログインに失敗する……
設定してない端末からログインできないことも必ず確認しておく。
バックアップ設定
参考URL
http://mukaer.com/archives/2012/03/14/vpscentos/
※mysqlのdumpとか、毎日定期的にバックアップとるようにした。
参考URLのやり方をほぼまねさせてもらった。
正月に読む本
- JavaScript: The Good Parts ―「良いパーツ」によるベストプラクティス
JavaScript: The Good Parts ―「良いパーツ」によるベストプラクティス
- 作者: Douglas Crockford,水野貴明
- 出版社/メーカー: オライリージャパン
- 発売日: 2008/12/22
- メディア: 大型本
- 購入: 94人 クリック: 1,643回
- この商品を含むブログ (184件) を見る
- プログラマが知るべき97のこと
- 作者: 和田卓人,Kevlin Henney,夏目大
- 出版社/メーカー: オライリージャパン
- 発売日: 2010/12/18
- メディア: 単行本(ソフトカバー)
- 購入: 58人 クリック: 2,107回
- この商品を含むブログ (336件) を見る
- 作者: ドストエフスキー,江川卓
- 出版社/メーカー: 新潮社
- 発売日: 1970/01/01
- メディア: 文庫
- 購入: 4人 クリック: 65回
- この商品を含むブログ (145件) を見る
レスポンスでcsvを返した時の問題
HTTPのレスポンスでcsvファイルを返す処理で問題発生。
ローカル環境で実行したときは正常にcsvを返せていたが、
IISを介して実行すると中身が空のcsvファイルが返ってきてしまう。
原因を調べていたところ、似たような現象についての記事を発見
http://stackoverflow.com/questions/11526396/how-to-response-write-on-iis7-5
※画面中断のBryan氏の回答
Fiddler2を使用してcsvファイルを返しているHTTPレスポンスをキャプチャしてみると、
bodyは空で、記事と同じようにContent-Encodingがgzipで返ってきていた。
やはり、IISが圧縮してからレスポンスを返してきているようだったので、
以下を参考にして圧縮設定を解除したところ、正常にcsvファイルを返すことできた。
http://technet.microsoft.com/ja-jp/library/ee431600.aspx
その際、動的圧縮だけでなく静的圧縮の設定も解除する必要があった。
静的圧縮を許している場合、一定サイズを超えたファイルを自動で圧縮するらしい。
http://blog.progfast.jp/labs/index.php/arts/iis-7-static-gzip/
その他参考:
http://niyodiary.cocolog-nifty.com/blog/2009/06/aspnetc-7eae.html
http://social.msdn.microsoft.com/Forums/en-US/914c6b1c-343f-4b9a-84b3-5960b33a51f0/responseend-responseclose-
http://pub.ne.jp/Chunn/?entry_id=1293658
Bitbucketのprivate repositoryとJenkinsの連携について
Bitbucketのprivate repositoryとJenkins使ってCIできる環境を作った。
主に以下の記事を参考にすれば解決だったが、自分用にメモを残す。
URL: http://qiita.com/ka_/items/acd019118eab298101f6
【環境】
Jenkins
JenkinsはさくらVPSのCentOS 6.3上で動いている。
※yumでインストールしたので、OS上にJenkinsユーザが追加されている状態
Git Pluginは既に追加済み。
※インストール時、以下のURLを参考にした
http://snickerjp.blogspot.jp/2013/10/yum-Install-Jenkins.html
http://futurismo.biz/archives/1348
Bitbucket
Gitでprivate repositoryを作成済み
【手順】
1. Jenkinsの公開鍵を作成する
以下のコマンドを実行して、Jenkinsユーザの公開鍵を作成する。
ssh-keygen 実行した際に、パスフレーズを聞かれるがEnterで跳ばしてOK
$ sudo su - jenkins $ ssh-keygen
2.Bitbucketに公開鍵を登録する
Bitbucketに作成しておいたリポジトリの、
設定(対象リポジトリ内の歯車マーク) > デプロイ鍵 > 鍵を追加
とたどって、keyに1.で作成した公開鍵(id_rsa.pub)の内容をコピペして鍵を追加する。
※ここまでの手順は以下の記事が参考になった
http://morizyun.github.io/blog/ssh-key-bitbucket-github/
3. Bitbucketにフックを設定する
設定(リポジトリ内の歯車マーク) > フック
からとたどって、プルダウンからPOSTを選択する。
その状態で、ホックを追加を押すとURLの入力を求められるので、以下の形式のURLを設定する。
http://Jenkinsのドメイン:8080/git/notifyCommit?url=git@bitbucket.org:xxxxxx/xxxxxx.git
4.Jenkins側の設定
Jenkinsにログインし、ダッシュボード > 新規ジョブ作成 から新しいjobを作成する。
ジョブを作成したら、そのジョブの設定から以下のように各設定を追加する。
■ソースコード管理システム
・Repositories(Repository URL) 対象リポジトリのURL(SSH)
・リポジトリ・ブラウザ bitbucketwebを選択し、URLに対象リポジトリのURLを入力
※Repositories(Repository URL)にURLを入力した際、初回はエラーが表示される。
コンソールから、以下のコマンドなど実行して.sshのknown_hostsにBitbucketを追加しておく。途中の質問にはyesを入力する。
$ git ls-remote -h git@bitbucket.org:xxxxx/xxxxx.git HEAD とか $ ssh bitbucket.org
■ビルド・トリガ
・SCMをポーリングにチェックを入れる。
※スケジュールは空でOK
あとは、接続テストとかビルドとかやってうまくいってるか確認すればOK
※接続テストに関しては、本文先頭の参考した記事参照
ここまで設定を行えば、Bitbucketにpushしたタイミングで、Jenkinsが自動でビルドするようになる。
準備は整ったので、次はnoseを使ってpythonのソースを自動でテストするとこまでできるようにする。
早起きについて
色々うまくいかない。
もっと勉強しなきゃいけないのに、時間がないからできない。
……と思っていたが、冷静に考えて単純に僕は起きるのが遅すぎるという結論に達した。
以下の書籍をダーッと読んで、とりあえず自分なりの戦略を立てることにする。
ただ早く起きれるようになりたいので(あと短絡的すぎて馬鹿っぽいのが厭なので)、「早起きで人生がうまくいく」的なタイトルの本は省いた。
※読んで考えたこととか、決めたこととか随時追記する。
「朝がつらい」がなくなる本―ぐっすり眠る、すっきり起きる習慣術。 (知的生きかた文庫)
- 作者: 梶村尚史
- 出版社/メーカー: 三笠書房
- 発売日: 2007/05/21
- メディア: 文庫
- 購入: 26人 クリック: 288回
- この商品を含むブログ (45件) を見る
- 作者: 堀忠雄
- 出版社/メーカー: 岩波書店
- 発売日: 2000/07/19
- メディア: 新書
- 購入: 21人 クリック: 173回
- この商品を含むブログ (63件) を見る
・生活時間帯の移動を頻繁に行うと生活習慣全体が不規則になる。
週を通して、睡眠を取る時簡単は変動しても1時間以内に。
夜更かし、朝寝坊も週に1回にしておくのが望ましい。
・睡眠時間の短縮は可能だが、無理なく縮められる時間は6時間。
睡眠時間を短縮する動機づけの強さが成功の鍵。
睡眠の科学―なぜ眠るのかなぜ目覚めるのか (ブルーバックス)
- 作者: 櫻井武
- 出版社/メーカー: 講談社
- 発売日: 2010/11/19
- メディア: 新書
- 購入: 3人 クリック: 62回
- この商品を含むブログ (13件) を見る
- 作者: 田中秀樹
- 出版社/メーカー: ベストセラーズ
- 発売日: 2008/03/08
- メディア: 新書
- 購入: 3人 クリック: 16回
- この商品を含むブログ (5件) を見る
- 作者: 遠藤拓郎
- 出版社/メーカー: フォレスト出版
- 発売日: 2009/06/19
- メディア: 単行本(ソフトカバー)
- 購入: 17人 クリック: 133回
- この商品を含むブログ (52件) を見る
- 作者: 志賀一雅
- 出版社/メーカー: 三笠書房
- 発売日: 2009/07/21
- メディア: 文庫
- 購入: 5人 クリック: 11回
- この商品を含むブログ (6件) を見る
・目を覚ましたら、伸びをする。
伸びをした後よく寝たと念ずる。
・自己暗示をかければ脳が満足してウンタラ〜
□試してみること
・目を覚ましたら、深呼吸・伸びをする。伸びをした後よく寝たと念ずる。
・目覚ましは、だらだらならさない。一発ならすだけにする。
・起きたら朝の光を一分浴びる。体動かす。
・目覚ましの位置を毎日変える
・5時間40分〜6時間00分睡眠(起床時間をレム睡眠時にぶつける)
年月日ばらばらのテキストボックス
年・月・日がばらばらのテキストボックスの、検証についてなど
基本的な方針は、年・月・日の入力内容を結合するテキストボックスを作り
その内容をCustomValidatorで検証する感じ。
.aspx側
<div> <asp:TextBox ID="TxtYear" runat="server" Width="60" class="DateTextBox" value=""></asp:TextBox>年 <asp:TextBox ID="TxtMonth" runat="server" Width="60" class="DateTextBox" value=""></asp:TextBox>月 <asp:TextBox ID="TxtDay" runat="server" Width="60" class="DateTextBox" value=""></asp:TextBox>日 <!-- 検証用のテキストボックス(年/月/日を結合する) --> <asp:TextBox ID="TxtDate" runat="server"></asp:TextBox> <asp:Button ID="SendButton" runat="server" Text="検証" ValidationGroup="DateValidator" onclick="SendButton_Click" /> <!-- --> <asp:CustomValidator ID="DateValidator" runat="server" ErrorMessage="正しい日付を入力して下さい。" ValidationGroup="DateValidator" ControlToValidate="TxtDate" onservervalidate="DateValidator_ServerValidate"></asp:CustomValidator> <script type="text/javascript"> $(function () { //タグのVisible="false"で非表示にすると、 //HTML出力時タグごと無くなるので、検証が失敗する。 $("#<%= TxtDate.ClientID %>").hide(); //「YYYY/MM/DD」形式に結合してDateTextBoxにセット $(".DateTextBox").change(function () { yearValue = $("#<%= TxtYear.ClientID %>").val(); monthValue = $("#<%= TxtMonth.ClientID %>").val(); dayValue = $("#<%= TxtDay.ClientID %>").val(); $("#<%= TxtDate.ClientID %>").val(yearValue + "/" + monthValue + "/" + dayValue); }); }); </script> </div>
.aspx.cs側
protected void DateValidator_ServerValidate(object source, ServerValidateEventArgs args) { DateTime dt; args.IsValid = (DateTime.TryParse(args.Value, out dt) ? true : false); } protected void Button2_Click(object sender, EventArgs e) { if (Page.IsValid) { //検証成功時の処理 foo(); } }
[IsValidプロパティについて]
検証コントロールを使用する場合、IsValidプロパティを使用して検証の成否を判定する必要がある。
※検証コントロールはあくまで、検証エラー時にエラーメッセージを表示するだけである。クライアントサイドで検証を行っている場合は必要ないが、基本的にはすべて検証の処理で成否判定を行うべきである。
【追記】
ユーザコントロール化して汎用的に使うなら、以下のようにValidatorGroup
をプロパティにして、呼び出し側からセットしてやればよい。
ascx.cs側
public partial class DateTextBox : System.Web.UI.UserControl { public string validtorGroup { set { DateValidator.ValidationGroup = value; } get { return DateValidator.ValidationGroup ; } } ~以下省略~
aspx.cs側
public partial class ValidTest : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { DateTextBox1.validtorGroup = "DateValidator"; } ~以下省略~