十二月講座のお知らせ

12月22日(土) 13時00分 - 17時30分 に、「高橋直大の『プログラマのための論理思考トレーニング〜問題を素早く把握し実装するために〜 初級編 7』」「Red Coder 高橋直大の『プログラマのための論理思考トレーニング 探索入門編 3』」を行います! Red Coder …

八月講座のお知らせ

8月25日(土) 13時30分 - 17時30分 に、「高橋直大の『プログラマのための論理思考トレーニング〜問題を素早く把握し実装するために〜 初級編 6』」「Red Coder 高橋直大の『プログラマのための論理思考トレーニング 探索入門編 2』」を行います! Red Coder …

六月講座のお知らせ

6月30日(土) 13時30分 - 17時30分 に、「高橋直大の『プログラマのための論理思考トレーニング〜問題を素早く把握し実装するために〜 初級編 5』」「Red Coder 高橋直大の『プログラマのための論理思考トレーニング 探索入門編 1』」を行います! Red Coder …

三月の講座が決まりました

3月17日(土) 14時30分 - 17時30分 に、「高橋直大の『プログラマのための論理思考トレーニング〜問題を素早く把握し実装するために〜 初級編 3』」を行います! Red Coder 高橋直大の『プログラマのための論理思考トレーニング〜問題を素早く把握し実装するた…

一月の講座が決まりました

1月29日(日) 11時30分 - 14時30分 に、「高橋直大の『プログラマのための論理思考トレーニング〜問題を素早く把握し実装するために〜 初級編 2』」を行います! Red Coder 高橋直大の『プログラマのための論理思考トレーニング〜問題を素早く把握し実装するた…

Red Coder 高橋直大からの挑戦 Red級編 1

Japan Alumni Group Summer Camp 2011 Day 2(JAGSummerCamp11Day2)で出題された難問「Attack the Moles」を、出題者が自ら教えます。Red Coder 高橋直大からの挑戦 Red級編 1講師はITmediaの『最強最速アルゴリズマー養成講座』でお馴染みの高橋直大さんです…

Red Coder 高橋直大からの挑戦 上級編 1

Japan Alumni Group Summer Camp 2011 Day 2(JAGSummerCamp11Day2)で出題された上級者向け問題を、出題者が自ら教えます。Red Coder 高橋直大からの挑戦 上級編 1講師はITmediaの『最強最速アルゴリズマー養成講座』でお馴染みの高橋直大さんです。 動画情報…

Google Code Jam Japan 2011 決勝 問題E 無限庭園

正解者が一人という超難問「無限庭園」の解説動画です。 講師はITmediaの『最強最速アルゴリズマー養成講座』でお馴染みの高橋直大さんです。Google Code Jam Japan 2011 決勝 問題E 無限庭園動画情報 時間 33分 画面 720x480 大きさ 286MB

高橋直大の『プログラマのための論理思考トレーニング〜問題を素早く把握し実装するために〜 初級編 1』

12月17日に、プログラミング初心者向けにプログラミング講座を行いました。Red Coder 高橋直大の『プログラマのための論理思考トレーニング〜問題を素早く把握し実装するために〜 初級編 1』70人ぐらいの方が見に来て下さったようで、本当にありがとうござい…

FNVハッシュ関数

FNVハッシュ関数は簡単に実装できるハッシュ関数です。 Twitterで見かけたので忘れないうちにメモ。 FNV-1 hash hash=offset_basis for each octet_of_data to be hashed hash=hash*FNV_prime hash=hash xor octet_of_data return hash octet_of_dataは変換…

CakePHPでOAuth

Twitter等で使われているOAuthをCakePHPで使うライブラリを紹介します。 OAuth consumers for CakePHP - by cakebaker 導入方法 OAuth consumer classをダウンロード CakePHPのルートディレクトリか、appディレクトリで展開する(それぞれ「vendors/OAuth」か…

安全になったRequestHandler->getClientIP()

RequestHandler->getClientIP()の事を調べていたら、RequestHandler->getClientIP()が返す結果は信用できないという記事を見つけました。 CakePHPのgetClientIPを使っていいのは小学生までだよねー 簡単に言うと、HTTP_X_FORWARDED_FORは簡単に偽装できるの…

actionにパラメータを渡す時に注意すべき文字

CakePHPでは「action名/値1/値2/...」 のような形式でアクセスすると、各値をactionの引数として渡す事ができます。しかし、文字によってはうまくいかない場合があるようなので、確認できた範囲内で書いておきます。 #、%23 #又は%23以下が捨てられる %、%25…

日付時刻(2)

asctime_r()、ctime_r()、gmtime_r()、localtime_r() char *asctime_r(const struct tm *tm,char *buf); char *ctime_r(const time_t *timep,char *buf); struct tm *gmtime_r(const time_t *timep,struct tm *result); struct tm *localtime_r(const time_t…

日付時刻(1)

asctime()、ctime()、gmtime()、localtime()、mktime()、timegm() 標準のCで使える関数ですが、知らない人が多いと思うので紹介しておきます。 #include <time.h> struct tm { int tm_sec; /* 秒 */ int tm_min; /* 分 */ int tm_hour; /* 時間 */ int tm_mday; /* </time.h>…

RPGの素人と玄人を見分ける10の方法

オープニングを見て喜ぶのは素人。開発の背景について語り出すのは玄人。readme.txtがオープニングなのがローグライカー 見た目の美しさを褒めるのは素人。見えない所まで作り込んでいる事を褒めるのは玄人。アスキー文字に萌えるのがローグライカー 壮大な…

スリープ

プログラムの実行を一時的に休止する関数として、sleep()、usleep()、nanosleep()があります。 sleep()は秒単位、usleep()はマイクロ秒(100万分の1秒)単位、nanosleep()はナノ秒(10億分の1秒)単位で休止できます。 sleep() #include <unistd.h> unsigned int sleep(uns</unistd.h>…

一度も動かしてないTwitterクライアントがTwitterにブロックされた。何を言っているのか(ry

昨日、Twitterから「規約に反しているから、そちらのクライアントに割り当てたOAuth tokenを無効にした」という旨のメールが来ました。 OAuth tokenというのはTwitterで認証をするために必要な物で、あらかじめTwitter側にクライアントを登録して割り当てて…

同一セッションで複数のアクションを同時に呼べなくなったときの対処法

CakePHPでサイトを構築していると、時間がかかるアクションの実行中に他のアクションが実行できなくなる時があります。 他のページに移動できないだけなら問題ないのですが(むしろ有り難い)、Ajaxで途中経過を別アクション経由で取得したい時等に困ります。 …

投げ銭として簡単に利用できそうなサービス

プログラマー、デザイナー、ブロガーが手軽に投げ銭を受け取れたらいいなぁ、と思うので、投げ銭として簡単に利用できそうなサービスをまとめてみました。 日本でも欧米の様に投げ銭が普及するといいですね。 はてなポイント 送信できる人:はてなユーザ 受…

諸葛亮Bot作りました

『諸葛亮集』の内容を呟く諸葛亮Botを作りました。 諸葛亮のtwitter bot 朝10時に一回だけ呟きます。 なお、botの作成には次のサイトを参考にさせて頂きました。 プログラミングができなくても作れるTwitter botの作り方 プログラミングができない人もみんな…

退院しました

一月二日から盲腸の手術をする為に入院していましたが、先ほど無事に退院しました。 今日から又がんばっていきたいと思います。

商鞅Bot作りました

法家思想を基に秦の改革を進め、秦の天下統一の礎を築いたことで有名な商鞅のtwitter botを作りました。 商鞅のtwitter bot 朝7時30分に一回だけ呟きます。 「商君書」で検索しても書き下し文が出て来ないので、読みずらい漢字には振り仮名を振りました。 な…

孫子bot作った

『孫子』のtwitter botを作りました。 『孫子』のtwitter bot 朝7時に一回だけ呟きます。 基本的に書き下し文ですが、たまに日本語訳も付いています。日本語訳が流れるのは次の日になりますが・・・。 余裕ができたら、話しかけられたときにランダムに文章を…

三略bot作った

「柔よく剛を制す」で有名な『三略』のtwitter botを作りました。兵法が好きな人はどぞー。 『三略』のtwitter bot 朝8時に一回だけ呟きます。 基本的に書き下し文ですが、意味が分かりづらそうなものには日本語訳を付けました。日本語訳が流れるのは次の日…

twitterのfollowing、followersを得るスクリプト

twitterから簡単にfollowing、followersの一覧を得る方法として、Rがあるようです。 iGraphでTwitterのネットワークを表してみる igraphでTwitterのネットワークを描いてみる2 しかし、100人までしか取得できないし、僕自身がRに慣れていないので、自分でス…

すかすかの配列から効率良く全要素を取り出す

一番右端に立っているビットの位置を求めるアルゴリズムが載っていました。http://d.hatena.ne.jp/siokoshou/20090704#p1 http://chessprogramming.wikispaces.com/BitScan#DeBruijnMultiplationまさしく黒魔術!良くこんなの思いつくなぁ、と感心する事しき…

自動拡張する文字列用バッファ

GString #include <glib.h> typedef struct { gchar *str; gsize len; gsize allocated_len; } GString; GString* g_string_new(const gchar *init); GString* g_string_append(GString *string, const gchar *val); GString* g_string_prepend(GString *string, con</glib.h>…

ガーベージコレクタ

メモリリークの問題に悩まされている人は多いと思います。ガーベージコレクタを使うと、メモリ管理の煩わしさから解放されます。 Boehm GC #include <gc/gc.h> void GC_INIT(void); void *GC_MALLOC(size_t size); void *GC_MALLOC_ATOMIC(size_t size); void *GC_REA</gc/gc.h>…

DNS

djbdns #include <djbdns/dns.h> void dns_random_init(const char seed[128]); int dns_ip4(stralloc *out, const stralloc *fqdn); int dns_name4(stralloc *out, const char ip[4]); int dns_mx(stralloc *out, const stralloc *fqdn); djbdnsに含まれているライブラリ</djbdns/dns.h>…