2013-01-01から1年間の記事一覧

データ構造とアルゴリズム

c

http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-087-practical-programming-in-c-january-iap-2010/lecture-notes/ でC言語を学習中。 例題をいくつかやってみた。 バイナリツリー #include <stdlib.h> #include <stdio.h> struct tnode { int data</stdio.h></stdlib.h>…

onScrollイベント

どの位置までスクロールしたかを拾ってみるテスト。 gist:8083161

Cache-Controlヘッダ

Cache-Controlヘッダについて、理解があやふやだったのでstudyinghttpとRFCを読んでまとめてみる。 http://www.studyinghttp.net/header http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.3 HTTP 1.0と1.1 HTTP/1.0ではCache-Controlは実装…

Practical Programming in C - Lec01

http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-087-practical-programming-in-c-january-iap-2010/index.htm をやってみることにした。学んだことをメモしていく。 gccオプション -I includeヘッダのpathを指定。 -g gdbコマン…

オンラインツールまとめとく

プログラミング学習 Codeacademy : プログラミング(英語) ドットインストール: プログラミング(日本語) Dash : サイトデザイン(英語) サイトビルダ Wix Strikingly

syncとfsync

理解が曖昧だったので、きちんと調べてみた。 sync(2) sync() を呼び出すと、バッファされたファイルのメタデータとデータ本体に対して行われた全ての変更が、対応するファイルシステムに書き込まれる。 fsync(2) fsync() は、ファイル記述子 fd で参照され…

複数ファイルから書き込む

複数ファイルから書き込む時には、排他ロックを掛ける or 一時ファイルに書き込んでrenameが常套手段。前者については 共有ロックと排他ロックとで調べたので、後者について。 #include <stdlib.h> #include <stdio.h> #include <unistd.h> #include <fcntl.h> #include <string.h> #include "error.h" #defin</string.h></fcntl.h></unistd.h></stdio.h></stdlib.h>…

複数プロセスからの書き込み - file tableとcurrent offset

同時に複数プロセスから書き込むとファイルが壊れるというが、壊れるというのはどういうことか。 出典: Advanced Programing in the Unix Environment - Figure3.7 異なるプロセスから同じファイルをopenすると、異なるfile tableエントリー(current file o…

共有ロックと排他ロックと

perldoc -f flock http://perldoc.jp/func/flock flock FILEHANDLE,OPERATION FILEHANDLE に対して flock(2)、またはそのエミュレーションを呼び出します。 成功時には真を、失敗時には偽を返します。 (中略) OPERATION は LOCK_SH, LOCK_EX, LOCK_UN のい…

Learning JavaScript - arguments

js

引数を配列に変換する方法。 function listByCall() { return Array.prototype.slice.call(arguments); } function listByApply() { return Array.prototype.slice.apply(arguments); } console.log(listByCall(1,2,3)); // [1, 2, 3] console.log(listByApp…

Learning JavaScript - scope

スコープはブレース{}そのものとは無関係ということに注意。 var list = ['perl', 'ruby', 'javascript']; var i; for (i=0; i < list.length; i++) { var lang = list[i]; } console.log(lang); // javascript

Learning Ruby - class

#!/usr/env/ruby class Dog FORMAT = 'we have %d dogs.' @@num = 0 class << self def count sprintf(FORMAT, @@num) end end def initialize(name) @name = name @@num += 1 end def say 'I am ' << @name end end puts Dog.new('pochi').say puts Dog.new…

Learning JavaScript

js

曖昧な知識をきちんと自分のものにしたい。 最強オブジェクト指向言語 JavaScript 再入門! from Yuji Nojima がわかりやすかった。 プロトタイプチェーン var a = {name: 'a'}; var b = Object.create(a); console.log(b.__proto__ === a); // true console…

brew install vim for neocomplete on Mac

neocomplcacheからneocompleteに乗り換えるため、luaサポートなvimをMacにインストールする。 $ brew install lua $ brew install vim --HEAD --enable-interp=ruby,perl,lua --with-lua こんだけ。ruby,perlはおまけ。知っていればかんたんだけども。

Getting Started with Vagrant Again..

インストール Vagrantfile # -*- mode: ruby -*- # vi: set ft=ruby : VAGRANTFILE_API_VERSION = "2" Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| config.vm.box = "centos6.4-x86_64" config.vm.network :private_network, ip: "192.168.33.1…

Getting Started with Vagrant

クリーンな環境であれこれ試したい時にはやっぱりVM使って、いらなくなったら捨てちゃえばいいよねー。ということでVirtualBox + Vagrantをお試し。 環境 Host: MacBookAir OS X Mountain Lion Guest OS: CentOS 6.4 x86/64 VagrantのBase Boxを探す 今回はh…

HTML5 Documents

W3C 仕様書 WHATWG 仕様書 HTML5 differences from HTML4 HTML5 differences from HTML4日本語訳 DIVE INTO HTML5 The WHATWG Blog HTML5 Tracker

カテゴリとプロトコル

カテゴリ あるクラスの一部分のメソッドを実現する。関係の深いもの・用途が似ているメソッドをまとめたり、Frameworkが提供しているクラスにメソッドを追加したりすることができる。 NSString+Decoration.h #import <Foundation/Foundation.h> @interface NSString (Decoration) +(NS</foundation/foundation.h>…

インスタンス変数、プロパティ、メソッド

普段はもっぱらperlだったせいもあり、なかなかobjective-cの文法がアタマに入ってこないので整理してみる。 オブジェクト指向 「もの」として識別できる 状態=属性を持つ 他のオブジェクトにメッセージを送ることができる メッセージを具体的にどう処理する…

Using Facebook Graph API with Perl

読んでおくべきドキュメント Server Side Loginに関しては、まずはこの3つを読んでおけばよい。 https://developers.facebook.com/docs/concepts/login/login-architecture/ https://developers.facebook.com/docs/howtos/login/server-side-login/ https://…

MySQL SHOW STATUS - 接続数を確認する

コマンド $ mysql -uroot -e 'show status' | grep -E 'Max|Threads' Max_used_connections 12 Threads_cached 0 Threads_connected 1 Threads_created 13280 Threads_running 1 Max_used_connections The maximum number of connections that have been in …

evalとreturn

#!/usr/env/perl use strict; use warnings; sub eval_func { eval { return 1; }; if ($@) { return 0; } } my $res = eval_func; printf "%s\n", $res; # $res is blank!!! ハマった。perldoc -f evalしてみると... In both forms, the value returned is …

Job Description - Engineering Manager

Facebook Software Engineering Managers are clearly characterized by progressive technical experience and demonstrated progression in management responsibility. Responsibility Be both a highly technical, hands-on coder and effective people …

Test::MockTimeとCORE::Globalと

Test::MockTimeの使い方にハマって調べたことをメモっておく。 Test::MockTime package Test::MockTime; ... BEGIN { *CORE::GLOBAL::time = \&Test::MockTime::time; *CORE::GLOBAL::localtime = \&Test::MockTime::localtime; *CORE::GLOBAL::gmtime = \&T…