プログラミング
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 高橋直大の『プログラマのための論理思考トレーニング〜問題を素早く把握し実装するた…
Japan Alumni Group Summer Camp 2011 Day 2(JAGSummerCamp11Day2)で出題された難問「Attack the Moles」を、出題者が自ら教えます。Red Coder 高橋直大からの挑戦 Red級編 1講師はITmediaの『最強最速アルゴリズマー養成講座』でお馴染みの高橋直大さんです…
Japan Alumni Group Summer Camp 2011 Day 2(JAGSummerCamp11Day2)で出題された上級者向け問題を、出題者が自ら教えます。Red Coder 高橋直大からの挑戦 上級編 1講師はITmediaの『最強最速アルゴリズマー養成講座』でお馴染みの高橋直大さんです。 動画情報…
正解者が一人という超難問「無限庭園」の解説動画です。 講師はITmediaの『最強最速アルゴリズマー養成講座』でお馴染みの高橋直大さんです。Google Code Jam Japan 2011 決勝 問題E 無限庭園動画情報 時間 33分 画面 720x480 大きさ 286MB
12月17日に、プログラミング初心者向けにプログラミング講座を行いました。Red Coder 高橋直大の『プログラマのための論理思考トレーニング〜問題を素早く把握し実装するために〜 初級編 1』70人ぐらいの方が見に来て下さったようで、本当にありがとうござい…
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は変換…
Twitter等で使われているOAuthをCakePHPで使うライブラリを紹介します。 OAuth consumers for CakePHP - by cakebaker 導入方法 OAuth consumer classをダウンロード CakePHPのルートディレクトリか、appディレクトリで展開する(それぞれ「vendors/OAuth」か…
RequestHandler->getClientIP()の事を調べていたら、RequestHandler->getClientIP()が返す結果は信用できないという記事を見つけました。 CakePHPのgetClientIPを使っていいのは小学生までだよねー 簡単に言うと、HTTP_X_FORWARDED_FORは簡単に偽装できるの…
CakePHPでは「action名/値1/値2/...」 のような形式でアクセスすると、各値をactionの引数として渡す事ができます。しかし、文字によってはうまくいかない場合があるようなので、確認できた範囲内で書いておきます。 #、%23 #又は%23以下が捨てられる %、%25…
プログラムの実行を一時的に休止する関数として、sleep()、usleep()、nanosleep()があります。 sleep()は秒単位、usleep()はマイクロ秒(100万分の1秒)単位、nanosleep()はナノ秒(10億分の1秒)単位で休止できます。 sleep() #include <unistd.h> unsigned int sleep(uns</unistd.h>…
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>…
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>…
GLibには自動拡張する配列があります。要素の追加、削除が容易に行えます。 GArray #include <glib.h> typedef struct { gchar *data; guint len; } GArray; GArray* g_array_new(gboolean zero_terminated, gboolean clear_, guint element_size); #define g_array_</glib.h>…
glibcのハッシュテーブル #include <search.h> int hcreate(size_t nel); ENTRY *hsearch(ENTRY item, ACTION action); void hdestroy(void);nelでハッシュテーブルに格納できるデータ数の最大値を設定します。 キーには文字列しか使えません。 hdestroy()を呼ぶとハッ</search.h>…
getline()、getdelim() #define _GNU_SOURCE #include <stdio.h> ssize_t getline(char **lineptr, size_t *n, FILE *stream); ssize_t getdelim(char **lineptr, size_t *n, int delim, FILE *stream);Linuxで使える関数です。 getlineはstreamから一行読み込み、*li</stdio.h>…