おしまい日記

さようなら

一人暮らしはじめて2ヶ月経ったけどあってよかったもの・いらないもの

あって良かったもの

  • フライパン(テフロン加工とかしたやつ): これひとつで鍋とかいらなくなる

  • WiiU: ゼノクロとかでGW消えた

  • 折りたたみベッド: 部屋の空間が違う。腰の悪い人は要マット

  • そこそこデカイ冷蔵庫(256L): 料理とか食材とか置いとく人向け。自分は冷凍室があまりがち

  • クイックルワイパー: 手軽にゴミとか毛とか処理できる

  • 日当たり: 洗濯物乾きやすい+電気代の節約

  • 近所の公園(or レクリエーション施設): 健康値が高まる+暇つぶし

 

無くても良いもの(いらなくなったもの)

  • 圧力鍋: (自分は)めっちゃ使いづらかった。蓋閉じんのめんどい

  • 必要以上の食器: お茶碗とかマグカップとか使ってない。飲み物とか口のみやし

 

欲しい物

  • 電気ポッド: インスタントとかお湯を作るのに。家のIHがヘボすぎる

  • プロジェクター: 壁紙が白+WiiIUがあるので一度試してみたい

  • インスタントコーヒー: 電気ポッドとセットで

  • 現金

 

特に印象的なのがフライパン

これ一つで大抵の料理は作れるし、焦げにくいし手入れも簡単

料理が好き or 自炊する人は買ったほうが良いと思う

rbenvでハマった

研究室のサーバ(ubuntu 14LTS)に自作したクソrailsアプリを乗せよう

と思い、rbenvを導入しようとして見事にハマった過程をメモしとく。

 

ハマったこと

 ズバリ、パッケージがダウンロードできないなんでやねん

 詳しくは、rbenvのプラグインとして入れるruby-buildがパッケージの

 ダウンロードでコケる

 

 なんでやねん

 

プロキシ設定の問題

 .curlrcと/etc/.wgetrcにproxy設定したが解決ならず

 

curlwgetの謎オプション

 ruby-buildに設定されてたcurlwgetの謎オプションを-oを除いて

 全部消したところ動いた

 

あとrubyも最新の2.1.2も含めて、ちゃんとbuildできた

いったい、あの謎オプションはなんだったのか・・・

 

(補足)rubyのビルドに必要なパッケージ

            Home · sstephenson/ruby-build Wiki · GitHub

Python Tips

ファイル行数の数え方

 初期: len(open("some_file").readlines())

 最近: sum(1 for _ in open("some_file"))

 

fraction ~ 有理数を扱うためのライブラリ

 192:有理数を使う

 

 使い方としては、dictionaryのkeyに”2/3”といった、演算結果を与えたかったが

 実数をkeyに持たせるのはヤバいので、だったら分数を与えてやろうと。

 

 以下、試してみた結果です。

 

 >>>from fractions import Fraction

 >>> a

 Fraction(1, 2)

 >>> b

 Fraction(1, 2)

 >>> dic = {}

 >>> dic[a] = 0

 >>> dic[b] = 0

 >>> dic

 {Fraction(1, 2): 0}

 >>> dic[a] += 1

 >>> dic[b] += 1

 >>> dic

 {Fraction(1, 2): 2}

 

 a==b  ---> Trueなので、簡単な商の演算で、同じ計算結果となるものを

 dicでまとめることができる。

Dropbox APIの使い道とか考えて挫折した経験

背景:大学のプロキシサーバがnot ftpなので、google driveとかdropboxみたいな

   オンラインストレージに直接データぶっこむスクリプトとか組めたら最高じゃね?

   → dropboxに動的なスクリプト置いて動かそうぜ!

 

結果:失敗

 

理由:1.dropboxにwebサーバ的な役割を期待した→AWSでやれ

   2.html5とjsでweb上のデータを動的にローカルに保存しようとした→それ、ウイルスやん

 

こんなことも思うに至らず、一日無駄にした感じ

大人しく、さくらかAWS使おうかな

 

*今日の参考サイト

Save Web Files to Dropbox, Google Drive and SkyDrive

画像とかpdfとか、簡単なデータを直接オンラインストレージに落とせるサイト

ただ、ftpサーバ上のドライバzipとか、動画データは落とせんかった

 

https://www.inkfilepicker.com/

上記サイトの利用してるjsライブラリ(API)

アップロードしたいデータを保存して、一時的な保存先のURLを返すサービス

 

使い方としては、オンラインストレージに溜め込んだデータをwebサービスに利用したり、

スクリプトに与えたい時とかに便利そう

 

とりあえず、ftpサーバは全滅してほしい

modを考える

AtCoderの問題で、整数のmodを考える問題が出された時の考え方。

今日の問題とか(特に、問2とか)

Welcome to AtCoder Beginner Contest #006 - AtCoder Beginner Contest #006 | AtCoder

 

例えば、整数Nとmodとして与えられた整数Mが与えられた時、

整数Nは

  N = int(N/M)*N + N%M

なので、

  N = (int(N/M)*N, N%M)

のように、商と剰余のペアとして考えると、問題を簡単に考えられたかも。

 

なので、次回からmodを問われる問題を出されたら、整数を商と剰余のペアとして考よう!

・・・と思うに至ったのをメモ。

c++のsetから平衡2分探索木まで

c++のsetを利用して、集合演算とか楽にしたいなー、と考えたのがきっかけ。

 

まずは、以下の記事。

「なぜsetを使っちゃいけないの?」 (1/4):CodeZine

vector, list, set, dequeのパフォーマンスを実験したよ - nursの日記

  

その中でも、setの実装に使われている、「赤黒木」っていう単語が気になって調べてみた。

赤黒木 - Wikipedia

c++のvectorとmap

結論としては、vectorとかmapとかの、初歩的なコンテナをいじいじした話

 

コンテナとは?

 ~ 同じ型のオブジェクトの集まりを表現するクラス。

   Cで言う、配列と構造体を合わせて、かつオブジェクト指向に対応させたもの。

 

で、今日主に使ったのが、vectorコンテナとmapコンテナ。

 

以下のサイトを参考にしました。

C++編(標準ライブラリ) 第2章 vector

C++編(標準ライブラリ) 第10章 map

 

イテレータの生成と使い方が分かれば、OKなのかも。

 

ハマった所としては、

 std::vector<int> hoge(100);

と初期化すると、hogevectorに与えられた型によって、値を持つから注意。

 

上のint型だと、各vectorの要素が0を持つので、push_backとかすると悲惨になる。

動的配列なので、配列と違って初期化とか考えず使うのがベストかも。

 

mapは、key値にソート(比較)できる型じゃないとエラーを吐く。

 

後、文字列のsplitが分からなかったので、以下のコードを利用した。

C++で文字列のsplit | Story of Your Life

 

このうち、

std::vector<std::string> split(const std::string &str, char delim){

  std::istringstream iss(str); std::string tmp; std::vector<std::string> res;

  while(getline(iss, tmp, delim)) res.push_back(tmp);

  return res;

}

 

を利用させて貰いました。

まるで動作がわからないけど・・・

 

次は、boost_pythonを利用して、pythonの拡張ライブラリをc++で書く。

 

*追記

 mapのvalueにコンテナを入れる時のハマりどころ

 ○ std::map<int, vector<int> > hoge;

 × std::map<int, vector<int>> hoge;

 

 理由は、std::coutに利用される<< や >>と区別をつけるため。

 知らないでいると、辛い。

 

 あと、std::set<int>について

C++マニアック,STL の set の使い方,how to use STL set,標準テンプレートライブラリ,standard template library,コンテナ,container,C++言語講座

 

 ぶっちゃけ、集合演算がめんどい・・・

 簡単に演算子で計算できないものか、スクリプトの集合演算に慣れるとなかなかつらい。