matthew as a q.

競技プログラミングメイン

vector形式の図をMacのPowerpointで作成する

環境

流れ

  • 図をPowerpointで作成する
  • 選択したスライドの印刷画面を開いて、左下から「PostScriptで保存...」を選択し、「〜.ps」形式で保存する(ここではhoge.psとする)。
  • hoge.ps」形式のファイルをps2epsコマンドで、.eps形式に変換する。

具体的には以下のコマンドを実行する。

ps2eps --rotate=+ hoge.ps

これでhoge.epsができるので、それをtexファイルから呼び出してやることで、論文に埋め込める。

見たいゲーム実況者のランクイン動画のみ表示するページ作った

毎回ランキングから、お気に入りのゲーム実況者のゲーム実況動画を探して、サムネをクリックするのはめんどくさい。

ページを開いただけで、お気に入りのゲーム実況者のゲーム実況動画が集まっててほしい。

作った

24時間ランキング

ソース
takeknock/nico_favgamers · GitHub

今回は、APIを叩いてなんかサービスをつくろうと思って、2日くらいで作ってみた。
既存のランキングページのRSSから動画IDを取ってきる→その動画IDで投稿者情報とか取ってくる→お気に入りの投稿者か判別→お気に入りの投稿者ならその動画を表示

今後

見た目を綺麗にする
ランキング情報は最低1時間に1回更新でやっているが、それで得た動画IDから情報を引っ張ってくるところのAPI毎回叩きにいってるので、さらに回数減らすように改善する
↑の関係でCGIがHTML生成するのに時間かかりすぎて、誰かが1時間以内にこのページにアクセスしていないと「Internal Server Error」が出るのを直す
いらない変数が残っているのを消す
コメントなど汚いので、直す

11/29追記
見た目はsassである程度手軽に綺麗にした。
Internal Sever Errorを回避するために、24時間おきに自動で動画IDを取得するようにした。具体的には、IDをsetするメソッドを切り出して、それをcronで24時間おきに叩きに行って、動画IDをPstoreで保存している。CGIが叩かれた際には保存された動画IDを用いて動画情報を引っ張ってきている。これによって動画APIを叩きにいく回数もだいぶ減った。

今月のマイはてブまとめ【9月号】

ピックアップ

☆これやって、Bitcoinのソース読みたい。
ソースコードを読むための技術


ライフハック

定期的に見直したいチェックリスト
今の仕事でどれくらい潜在能力を磨けるかがわかるチェックシート | ライフハッカー[日本版]


自分で使おうと思った。
センスや才能は不要。東大首席弁護士が薦める「7回読み勉強法」とは? | ライフハッカー[日本版]
これも。
夫婦喧嘩の絶えない同僚が上司に相談した時に、上司が話した『夫婦円満のコツ』が予想外のものだった - 子育てちゃんねる
決断する際の材料に。
TABLOG:10年前のとある新入社員が初めての転職を決意するまで - livedoor Blog(ブログ)
フェーズによって必要な人が違うというのが興味深い。(野武士→コンサル)
フリークアウト、イグニスの2社の創業から上場に関わった男の語るスタートアップが陥りがちな5つの問題(フリークアウト佐藤裕介) | STARTUP SCHOOL
これから英語を使う機会が増えるので。
日本人として、英語で説明する事が多い話題(1)初対面で聞かれる事 - @kum_i log
この術、会社に入って使えそう。
我が社に驚愕の新人が来た結果wwww:ハムスター速報
自分で生きていくために日々、気をつけておきたいこと。
コミュニケーションコストがかかる人は相手にされない | サイボウズ式

育児のリアル
育児しんどいマンガ『夜泣き編』 - するめブログ

研究教養

査読コメントの表現集
査読表現集 General Comments編

情報科学

グラフ理論、データ構造とアルゴリズム
Tomonari MASADA @ Nagasaki University - home

DNSの学び方
http://www.e-ontap.com/dns/seccon2014/assets/player/KeynoteDHTMLPlayer.html#0
Deep Learning の概要をサッと知るのに使える。
深層学習入門

あまりちゃんと知ることがなかったから、ふむふむ読んでた。
本当は楽しいインターネット

プログラミング



プログラマが勉強すること - きしだのはてな

例えば「写経」という言葉を避けてみる。 - 西尾泰和のはてなダイアリー


Ruby on Railsガイド。なんか作りたい欲が高まってる。
Ruby on Rails ガイド
JSの非同期処理のきれいな書き方。これ使ったもの作ってて、沼にハマってる。(まだ抜け出せていない模様)
generatorとJavaScriptの非同期処理 - Qiita

セキュリティ

オンラインCTFまとめ

数学

ガロア理論の教科書らしい
Table of Contents


政治・経済・社会

へー。
スペインでの独立運動に「クレヨンしんちゃん」が使われる深い理由 - NAVER まとめ

これから介護の問題はもっと身近なものになっていく。今知らないのは潜伏事例が多いだけなのかもしれないが。
就活さえ出来ない…~大学生の日常・将来を奪いうる若年性認知症と親の介護~ - 認知症を早くみつける!東大生のブログ
こういう手を付けられていないところを開拓するの、大変だけどおもしろそう。
葬儀業界の不透明な料金をはっきりさせた会社「ティア」が受けた嫌がらせとは? - ライブドアニュース


RFinanceYJを使えるようにするまでに必要だったこと+α

基本的にこれでおk 

install.packages("RFinanceYJ")

参考(Rで株価〜RFinanceYJ関数を使う2 | ウェブディレクターのための統計入門



使うCRAN国内ミラーを指定していなかったため、パッケージのインストールが出来なかった。

$ ~/.Rprofile

options(repos="http://cran.md.tsukuba.ac.jp")

と記入して、使うCRANミラーを指定しておく。

参考(CRAN国内ミラーの使い方 - RjpWiki



そしてまたRを起動して、install.packages("RFinanceYJ")して、

> mufj <- quoteStockTsData('8306.t',since='1970-01-01')
> mufj2 <- quoteStockTsData('8306.t',since='2008-01-01')

を実行すると以下の様なエラーが出た。

> 以下にエラー order(financial.data$date) :  引数 1 がベクトルではありません

RFinanceYJは直接Yahoo Financeのページからデータを取ってきているため、細かいページの変更でも使えなくなる可能性が高いそうだ。

以下のページに書かれているように修正する。
Rでチャートを書いてみる(5) - なんだかなぁ


もう一度、

> mufj <- quoteStockTsData('8306.t',since='1970-01-01')

を実行してしばらく待つとmufjにデータが格納された。

確認してみる。

> head(mufj)
           date    open    high     low   close volume adj_close
3297 2001-04-02 1180000 1220000 1150000 1220000  40225      1220
3296 2001-04-03 1200000 1260000 1190000 1250000  17521      1250
3295 2001-04-04 1260000 1300000 1230000 1300000  21559      1300
3294 2001-04-05 1300000 1310000 1250000 1250000  11709      1250
3293 2001-04-06 1250000 1250000 1190000 1250000  11414      1250
3292 2001-04-09 1210000 1250000 1190000 1200000  14017      1200

データを保存したい場合は、

> write.table(mufj, "~/yourownpath/mufj.txt")

グラフを表示するには、

> plot(mufj2[,1],mufj2[,5],type="l",xlab="Year",ylab="ClosingPrice")

f:id:takeknock:20140906195233p:plain

websvnのCentOSへの導入

  • 参考資料
  1. http://www.eli-sys.jp/2012/07/17/centos6-2%E3%81%ABsubversion%EF%BC%881-6-11%EF%BC%89%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%83%BB%E7%92%B0%E5%A2%83%E6%A7%8B%E7%AF%89/
  2. websvnについて | メランジ雑記帳


1.のほうでは、WebSvnの導入のところだけ参考にした。

  • 導入

yum一発。

  • 設定

1.のほうの設定に加えて、2.のほうの設定もやる。
2.のほうは、
/etc/websvn/config.php
に、

$config->useAuthenticationFile(‘/var/www/svn/conf/svn.authz.conf’); 

とした。

その際に、websvnのページにBasic認証をかけた。

    AuthType Basic
    AuthName "WEB SubVersion Authorization Realm"
    AuthUserFile /var/www/svn/conf/svn.passwd
    Require valid-user

を/etc/httpd/conf.d/websvn.confのDirectoryタグ内に追加。

そして、その認証を通った全員が読み込みだけできるように設定した。
/var/www/svn/conf/svn.authz.conf(先に導入していたsvnmanagerのユーザ管理ファイルと同一のもの)に

[/]
*=r

と追加。

  • 403エラー発生

Apacheのアクセス制御にひっかっかったので、下記記事にしたがって、すべてのホストからのアクセスを受け付けるようにした。

#Deny from all

Apacheのアクセス制御をちゃんと理解する。 - こせきの技術日記

外部リポジトリのパッケージとの競合問題とその解決策

  • そもそも外につながってない時

Loading mirror speeds from cached hostfileの次の行あたりに、つながりません、みたいな表示が出る。

Processing Dependencyみたいに表示されて、外部リポジトリ名がいくつか見えて、インストールが完了しない。
私のところで起こっていたこととしては、remiレポジトリから入れたphpなどがデフォルトのレポジトリphpよりも新しく、yum install mysql-serverをしたときに、入れられるmysqlのバージョンや、その依存関係のあるパッケージがすでに入れているphpなどのパッケージとは一緒にはうまく動かない、ということをyum側が判断してくれて、installするのを止めていたみたい。

rpm -e remi-release
rpm -e rpmforge-release
    • 対策2:コンフリクトしているパッケージの削除
rpm -qa | grep remi

*remiは適時、コンフリクトしている外部レポジトリ名に変えてください。
を実行すると、remiという単語が入った、rpmのパッケージが見つかる。

コンフリクトしてるパッケージを1つ1つ除去していく。

sudo yum remove compat-mysql51

*compat-mysql51は適時、さきほど表示されたrpmパッケージ名に変えてください。

    • 予防

このような事態を避けるために、基本的にyum install するときには-yオプションをつけずに、どのパッケージがインストールされようとしているかをチェックする。

  • 謝辞

某nmfproducer氏に感謝。

gitlabでerror [Can't verify CSRF token authenticity]

新たなプロジェクトを作成しようとすると、ログイン画面に戻されるエラーが発生した。
(いくつかレポジトリ作成した後に、サブディレクトリにディレクトリを変更する設定を行ったせい??)

以下の記事が引っかかったが、これでは解決しなかった。
Can't verify CSRF token authenticity on 6-5-stable · Issue #6134 · gitlabhq/gitlabhq · GitHub

Trouble Shooting Guide · gitlabhq/gitlab-public-wiki Wiki · GitHub


しょうがないので、大したデータもなかったので、クリーン。。