CentOS6まわりのトラブルの忘備録

CentOS6を使っていた時に発生したエラーの対処を忘備録として書いておきます。

問題:yum updateができない

更新が止まったリポジトリは移動されているので、以下のようにリポジトリの位置を変更する。

$ sudo sed -i -e "s|mirror\.centos\.org/centos/\$releasever|vault\.centos\.org/6.6|g" /etc/yum.repos.d/CentOS-Base.repo
$ sudo sed -i -e "s|#baseurl=|baseurl=|g" CentOS-Base.repo
$ sudo sed -i -e "s|mirrorlist=|#mirrorlist=|g" CentOS-Base.repo
#  yum update

[tips][Linux]旧バージョンCentOSでyum更新できなくなった時 - Akira's Tech Notes


問題:yum updateでメジャーバージョンを上げたくない

2つの方法がある。

1. --releaseverオプションを指定する。

$ yum --releasever=6.4 update

2. /etc/yum/varsへ変数ファイルを追加。

$ echo 6.4 > /etc/yum/vars/releasever

yum updateで古いマイナーリリースへ固定する · GitHub

問題: vagrantで立ち上げたCentOS6がマウントエラー起こしてる

これやった後に

yum install dkms binutils gcc make patch libgomp glibc-headers glibc-devel kernel-headers

これをやる

yum install kernel-devel

そして再起動

virtualbox - modprobe vboxguest failed - Super User

初めて競技プログラミングに参加した件

以前から気になっていた競技プログラミングに参加してみました。

AtCoderの時間が合いそうな手近なヤツに登録して、参加を待つ。

CODE FESTIVAL 2018 qual A - CODE FESTIVAL 2018 qual A | AtCoder

使用する言語は無論C++、得意というわけではないのですが(むしろ最近使ってないからよくわからん……)競技プログラミングのトップ勢はみんなC++とどこかで聞いたものですから、色々回答とかも探しやすいと思って。

そして、午後9時からスタート

続きを読む

CSSセレクタとBeautifulSoupの解析結果が違う???

Python、BeautifulSoupでスクレイピングのコードを書いていた時のことです。

あるページのdiv.hugahugaをスクレイピングしたく、ChromeのコンソールからCSSセレクタで実行したところ問題ないかなと思いました。

$$('div.hugahuga');
>[5]

(ちゃんと5件取れてる!OK!)

しかし、BeautifulSoupで同じようにやってみたところ、なぜか4件しか取れず困惑。

results = soup.find_all("div", class_="hugahuga")
len(results) #=>4

なぜ???
確認してみましたが、特に関数やパラメータが間違っているわけでもなく、ページ取得が失敗しているわけでもありませんでした。

色々試してみた結果、BeautifulSoupの解析器をlxmlからhtml5libに変えてみたところ、無事全件取得することができました。
今まで何も考えず脳死でlxmlを使ってきて初めて痛い目を見ました。ちゃんと確認しないとダメですね……。

小林泰三『完全・犯罪』を読んで

SF・ミステリ作家の小林泰三の短編集「完全・犯罪」を読んでの感想です。

全体の感想

短編5作品を収録した短編集。ジャンルはSF、ミステリー、ホラーと多種多様。
特に好きなのは「双生児」「隠れ鬼」

双生児は一卵性双生児の双子の話、『私たちはあらゆるものを共有していた。』の一文が最後のオチの伏線になっているのは見事。ホラー色が強いSF

隠れ鬼はホラー。ある日浮浪者に追われた体験で、子供の頃の鬼ごっこの出来事を思い出す。鬼ごっこの背景に関する考察がとても面白い。鬼ごっこに明確なルールはない、だから明文化はされず子供達の阿吽の呼吸によってルールが作られる。このルールを利用することで一人の子供をいじめることができる。というのは納得してしまった。


以下、作品ごとの感想になります。

続きを読む

HTML5+javascriptで書けるプログラム

最近electronなるフレームワークを見つけた。
HTML5とnode.jsでGUIアプリケーションを作れるらしい。

VS CodeAtomもこのフレームワークで製作されているらしいので、信頼性はありそう。
GUIといえばこれまで.Frameworkしか使ってこなかったから、Macで開発できるというのだけでも大きい。

コンテナアルゴリズムremoveやuniqueで削除する時の注意点

`remove`や`unique`は要素を削除するが、コンテナの長さは変更されない。
そのため、アルゴリズム適用後は、いらない長さを`erase`関数で削除する必要がある。

std::vector<int> v;

v.erase(
  std::remove_if(
    changeNums.begin(),
    changeNums.end(),
    [](int x){ return x >= 5; }
  ),
  v.end()
);
std::vector<int> v;

v.erase(
  std::unique(
    changeNums.begin(),
    changeNums.end()
  ),
  changeNums.end()
);