にたまごほうれん草アーカイブ

はてなダイアリーで書いてた「にたまごほうれん草」という日記のアーカイブです。現在は「にたまごほうれん草ブログ」を運営中です。

メモ

参考サイト

CでOOP関連エントリ ぐぐってみると解説サイトがさらに結構あった。 Cによるオブジェクト指向の記述 Cによるオブジェクト指向'風'プログラミング Cで実現する「ぷちオブジェクト指向」:CodeZine メモ オブジェクトの内部構造を隠す方法。 まず、抽象データ…

まめちしき:巨大ファイルをコピー中にエクスプローラを閉じてしまった場合の進捗確認方法

タイトルがほぼ課題を言い尽くしてそうですが。 巨大ファイルをコピー中にWindowsのエクスプローラを閉じてしまうと、コピーのプログレスバーも一緒に閉じてしまい、進捗がわからなくなってしまいます。 そういう場合、「タスクマネージャを開いて、アプリケ…

ハッシュテーブルを実装してみる

急に思い立ってCでハッシュテーブルを実装してみました。 C言語での文字列を扱うプログラムというのがあまり得意ではないせいか中途半端に時間がかかってしまった。 ほとんどテストはしていないけど、以下のメソッドを使えるようにしてみた。 put: テーブル…

Ubuntuでgnome-appearance-propertiesがフリーズする

久しぶりにフォントを変えてみようとメニューから「外観の設定」でフォントタブを押すと、CPU使用率がMAXになり画面がフリーズしてしまいました。少し調べてみると、他にも同じ症例があったようで、なんとか解決。 Gnome Appearance Properties freezing - U…

擬似malloc続き

擬似mallocを作ってみるの続きです。 リングバッファの要領で(というかまんまリングバッファ)、ついつい入れてしまったmallocをあとから置き換えるためのmallocモドキを改良(?)してみました。 もちろんこんなのがmallocの完全な置き換えにはなるはずも…

Subversionで管理されているファイルの実行権限を取り除く

Windowsからのファイルコピーなどで、実行権限が付与されたままSVNでバージョン管理してしまっているファイルから実行権限を削除する方法。 $ svn propdel svn:executable hoge (ファイルhogeから実行可能属性を削除する)属性についてはsvn:executable以外に…

擬似mallocを作ってみる

C言語でmallocは便利だけれども、開発で多くの人が関わっている場合、他人のメモリリークや不正なアドレスへのアクセスなどのあおりを受けてSegmentation Faultなんていうことが結構あるそうな。 mallocで獲得したいメモリサイズが毎回固定の場合は、動的に…

シェルスクリプトで出力するファイル名に日付を付ける

よく使う割りに毎回覚えてなくてぐぐってしまう上にmanで読んでもよく理解できないのでメモ。 dateコマンドを使う。 (なんかコマンド) > output`date +%Y%m%d%H%M`これで、時刻まで付けたファイル名をつけられる。 例えば、output200804202348 とか。

SSHのログインが遅いのを改善する

うちのLinuxマシンは、以前からよくSSHでログインして使用していましたが、認証してからログインまでに少し時間がかかるのが問題でした。 といってもログインできないことはないのでしばらく放置していましたが、少し調べたら出てきたのでメモしておきます。…

psvnって

便利だなー。Emacs22をインストールしたら自動的についてきたっぽい。 psvn

文字列の扱いについて勘違い

今日、とあるコードを読んでいて、以下のような式を見た。 const char *str = NULL; str = "hoge hoge"; あれ、こんな代入ってできるんだっけ?と思ったが、以下のダメなコードと勘違いしていたようです。 char str[10]; str = "hoge hoge"; 前者は、char型…

Emacsをもっと使いたくなるコマンド

最近家のデスクトップもLinuxばかり使うようになって、Emacsを使う機会が非常に増えた。 使い方としては、ターミナルを全画面で開いてscreenを起動したあとEmacsを起動し、C-x 2やC-x 3で画面を分割していき、複数バッファを使うというもの。 Emacsに慣れて…

Cでもフィボナッチを書いてみる

Scheme演習第2回-問1と続・Scheme演習第2回-問1で、schemeで再帰と末尾再帰を用いてフィボナッチ数列を解いてみたが、練習のためにCでも書いてみた。(すぐできるか試してみたかった) 今回は計算結果を出力するのはおいといて、いきなり時間のみを計測。 #i…

UbuntuでのAdobeReader 8の日本語化

たいして苦労するものでもないのに苦労したのでメモ。 まずはインストール 既にacroreadはインストールしていたが、FirefoxでPDFのリンクを踏んでそのまま開こうとしたときに、「AdobeReader 8はまだインストールされていません」と出た。 そうかそうかと実…

Emacsの挙動がおかしい

先ほど、CVSから取得して自分でmakeしていたEmacsを削除し、aptでEmacsをインストールしてからなんだかよくわからない動作をするようになった。 症状としては、 ファイルを編集していると、C-x C-s でセーブするときに結構頻繁に数秒間固まる。 そこから復帰…

makeinfoってなんだ?

CVSからとってきたEmacsをmakeしようとしたらmakeinfoがないと怒られた。 apt-get install makeinfoしても出てこないのでなんのパッケージに入っているのかわからない。 texinfoというパッケージに入っているらしい。 makeinfoがない - ひげぽん OSとか作っ…

screenでスクロールする方法

普通の場合、出力結果はスクロールアウトしてしまいます。 この状態で、screenの機能を用いてバックスクロールしてみましょう。 バックスクロール(コピーモードに移行) ^Z [ESC]または^Z [とキーインします。 USING SCREEN EXAMPLE part2 私の場合は、.scree…

演習を解いてみる

いいもの見つけた。しばらくは、これを解いて慣れていこう。 5つの整数を引数として受け取り、そのうち偶数が奇数より多い場合は#tを返し、奇数が偶数より多い場合は#fを返す述語even>odd?を定義せよ。当然、いろいろな定義の仕方がある。 > (even>odd? 1 2 …

関数を定義してみる

簡単な再帰を使った階乗。 gosh> (define (fac n) (if (= n 1) 1 (* n (fac (- n 1))))) fac gosh> (fac 5) 120 gosh> (fac 8) 40320ふむふむ。括弧が最後にたくさんついて数を数えるのが大変。 インタラクティブモードでのgoshも、Emacsに付属のscheme-mode…

DELL VOSTRO 200へのFedora 8インストールメモ

一点のみ。 1. インストーラーが進まなくなる → BIOSの設定からHDDを、IDEからRAIDに変更 tips : tips/01.コンピュータ関連/UNIX/Linuxめも.txt これをしないと、画面がテキストモードでバグった状態になる。 あとはさくさくインストール完了。現状問題なし。

Pythonで書かれたニコニコ動画ダウンローダー

MOONGIFT: » CUIでニコニコ「ニコニコ動画保存 Nicovideo Downloader」:オープンソースを毎日紹介 SourceForge.jp: Project Info - ニコニコ動画保存 Nicovideo Downloader きっともっと簡単に使えるものが色々ある、と思いました。 中身が多少分かる分、Pyt…

Windows上でTrac月とApacheを共存させる

既に開発用にApacheをインストールして常時起動してあるWindows XPのPC上に、Trac月をインストールしようとしたところ、ちょっと面倒なことになったので解決までの道のりをメモ。 Trac月は、クリックするだけでWindows上に簡単にTracやSubversionのシステム…

UDPSocket#recvfromの逆引きタイムアウト待ちをなくす

DNSのない閉じたネットワークでUDPSocketを使ったプログラムを動作させていると、パケットが届いてからrecvfromメソッドで読み込まれるまで数秒間の遅延が発生していました。 調べたところ、Rubyのソケットではデータ受信時に送信アドレスのホスト名の逆引き…

RFCをHTMLに変換するスクリプト

SourceForge.net: rfc2html.php(phpspot開発日誌経由) RFCを読もうとするたびにプレーンテキストで書かれているせいか読みづらくて仕方がない。 というわけで探してみたら上記のスクリプトがありました。なかなかキレイになってくれて良い。 ただ、以下の…

UDPで通信する

なんかややこしかったのでメモ。 受信側 require 'socket' u1 = UDPSocket.open() u1.bind("0.0.0.0", 10000) p u1.recvfrom(65536) 送信側 require 'socket' u2 = UDPSocket.new() u2.connect('localhost', 10000) u2.send('Hello world!' , 0) 実行結果 先…

find -execの使い方

条件にマッチしたファイルに一個ずつ-exec以下のコマンドを適用していく。これは便利。 % find . -name \*~ -exec rm {} \; ⇒ カレントディレクトリ以下の *~ をリストアップして「rm 検索したファイル名」を実行する。{}の場所には検索したファイル名が入る…

REXMLで同名の要素を全部まとめて取り出す

例えば、 <foo> <bar attr="1"/> <bar attr="2"/> <bar attr="3"/> </foo> みたいなXMLがあって、名前がbarの要素を取り出すには当然の如く、 require 'rexml/document' doc = REXML::Document.new(File.open("sample.xml").read) elems = doc.root.elements["foo/bar"] # なんかの処理 とすれば、elemsにはbar要素が…

画像を読み込んで表示

夕方から別のことをしてたのでお勉強続き。 画像を読み込んでみる。(参考:ActionScript3.0による画像処理) package { import flash.display.*; import flash.text.*; public class Test03EmbedResource extends Sprite { // resource [Embed(source='data…

Spriteクラス

ActionScriptは本当に初心者なので、サンプルで継承しているSpriteクラスが何かすらわからず。 そういうときはドキュメント読む。 Sprite クラスは、表示リストの基本的要素です。つまり、グラフィックを表示でき、子を持つこともできる表示リストノードです…

URLが指定したホストのものかチェックする

とりあえずホストだけチェックできればいいかな、と。 #! /usr/bin/perl -w use strict; use warnings; my @valid_hosts = ( "hoge.com", "fuga.co.jp" ); sub validate { my($url) = @_; my $ret = -1; foreach my $vhost (@valid_hosts) { if ($url =~ /^s…