2013-05-01から1ヶ月間の記事一覧

emacsで改行コードを変更して保存

C-x Return fして、ミニバッファでunix, mac, dosのいずれかを入力してreturn。 C-x C-sしてファイルを保存すると改行コードの変更が反映される。 参考 【教育用端末】 emacsでのファイル保存時の改行コードの変更の仕方 — 神戸大学情報基盤センター

emacsとzshの設定ファイルをDropboxで共有する

emacsとzshの設定ファイルが異なるマシンでばらばらに進化してしまい我慢の限界に。重い腰を上げて設定ファイルの共有化に乗り出した。今回のファイル共有の対象はMacとCygwin。 emacsの設定ファイルの共有 Dropboxの設定 Dropboxに以下のようなディレクトリ…

Pythonで、文字列の一部の文字を変更する

Pythonの文字列は、作成後に変更することができない。 例えば、ある文字列strの3文字目を'z'に書き換えるつもりで以下のようなコードを書くと #!/bin/env python # -*- coding: utf-8 -*- str = "abcdefghi" str[2] = 'z' 以下のようなエラーが出て実行がで…

VC++のコンパイルをコンソールで実行

Visual Studio 2012 Expressの場合。 すべてのプログラム→Microsoft Visual Studio 2012→Visual Studio Tools→Developer Command Prompt for VS2012をクリック コンソールが立ち上がる where clと打ちEnter 以下のようにパスが表示されればOK C:\Program Fil…

diffの結果をカラーで閲覧

コンソールでdiffの結果をカラーで見る方法のメモ。 普通のdiffの結果をカラーで見る colordiffというコマンドが使える。 diff before.txt after.txt | colordiff | less -R とすると、diffを色付けしたものをカラーで閲覧できる。以下はその例。(diffの-uオ…

flickrのストレージ1TBに挑戦

先日、flickrが写真を1TBまで無料でUPできるようにしたというニュースを目にしました(米Yahooが Flickr を全面リニューアル、無料で1TBまでアップロード可能に - Engadget Japanese)。そこで写真のアップロードを開始。実際にやってみて分かったことは: デ…

tigの操作方法メモ

git

Gitを勉強中。まずGitで何が起こってるのかを把握しやすくするために、CUIでコミット履歴などを参照できるtigをお試し中。Vimっぽい操作感覚という噂を聞いていたので、Vimを使ったことのない自分としては難しそうに思えたが、カーソル移動さえ慣れればなん…

wgetでよく使うオプション

--wait=5 ファイルをDLするごとに5秒待つ --recursive 再帰的に、つまりリンクを辿ってページをDLする --level n 再帰の深さをnとする --span-hosts 異なるホストのページもDLする --no-directories ディレクトリを作らない -A .zip 拡張子が.zipのファイル…

STLのaccumulate()を使うときはオーバーフローに気をつける

C++

STLにはvectorの各要素の数の和を出力するaccumulate()という便利関数があるが、気をつけないとオーバーフローによりはまってしまう。その例として以下のコードを見ていただきたい。コードの意図は、1000000000 + 1000000001 + ... + 1000000009を計算してsu…

C++で2分探索

入力として与えられた整数がある値以上のときはtrue, そうでないときはfalseを返すブラックボックスな関数bool Check(int n)があるとする。その「ある値」を求めるコードが以下。 #include <iostream> using namespace std; bool Check(int num){ return (num >= 7777)</iostream>…

標準出力、標準エラー出力をシェルで操る

zsh

すべてUNIXの部屋 コマンド検索:リダイレクト (*BSD/Linux)からの引用。たったこれだけのことが覚えられないなんて、といつも絶望的な気分になる。 標準出力と標準エラー出力をまとめて less で見る % command 2>&1 | less 標準出力と標準エラー出力をまとめ…

structのtypedef, CとC++での違い

C++

もしかしたら長らく勘違いしていたかもしれないこと。 Cの場合 Cでは構造体を定義するのに以下のように書く。 struct data_t { int num1; int num2 }; この構造体の変数を宣言するときには以下のように書く。 struct data_t d; でも毎回struct data_tって書…

プログラムコンテスト用のマクロ

C++

これまでプログラムコンテスト参加時にあまりマクロは使わないようにしていたが、上位陣のコードを読むときに必須だということで、今後は自分でも使えるようにしようかと考え中。上位陣が多く使っていそうなマクロを集めた。__typeofを使ってイテレータの型…

C++で構造体をソートする4つの方法(おまけあり)

C++

自分で定義した構造体data_tをvectorにつっこみ、STLのsort()関数でソートすることを考える。以下のように書いてコンパイルを試みると、読解不能な大量のエラーメッセージとともにコンパイルが失敗する。 #include <iostream> #include <string> #include <vector> using namespace std</vector></string></iostream>…