読者です 読者をやめる 読者になる 読者になる

kakts-log

programming について調べたことを整理していきます

linux kernel linked list and process

プロセスについて調べていて、linuxカーネルにおいて各プロセスをどうやって扱っているのかを気になっていて参考になったエントリlinux kernel linked list implementationhttp://sumanadak.blogspot.jp/2006/09/linux-kernel-linked-list.htmllearning abou…

mac OS X において gccのインクルードパスの探し方

C言語でプログラミングする際に、stdio.hとか、いつも使う標準Cライブラリのヘッダーについて気になって調べようとするときに、gccがどこからヘッダファイルをincludeしているかわからない時があります。いろいろ調べてみると、macでも、linuxのディストリビ…

Object.observe adopted by ES7

Understanding Object.observe() method adopted at ES7.This method is useful for data-binding at javascript http://weblog.bocoup.com/javascript-object-observe/

node.js async module

asyncモジュールの以下のメソッドについて使う機会が多かったので、参考記事まとめseriesparallelwaterfallhttp://qiita.com/ishisak@github/items/cee2811a5a131d4ef946http://d.hatena.ne.jp/sheile/20111216/1324045972http://kiri-no-shima.blogspot.jp/…

Is Koa the Future of Node Frameworks?

http://dailyjs.com/2014/01/09/koa/Koaちゃんとつかってみる

nodeでモジュールのソースが読みたいとき

require('http')とか、require('connect')でモジュールをrequireしていて、使っているモジュールのソースが読みたい時、githubでソースを探して読むのも良いのですが、もっと手っ取り早い方法があり、コンソールでREPLを起動して、% nodeconsole.logで対象の…

atom.ioでeditorconfig対応

先日atom.ioのβ版の招待メールが届きました。https://atom.io/さっそくインストールして色々js関連のパッケージを入れて使ってみてます。共同開発でそれぞれことなるエディタを使って開発するチームにはeditorconfigが必須だと思うのですが、atom.ioにももち…

javascript メモ化

関数の複数回呼び出しによって発生する不要な処理を省略するために、前回までの結果をオブジェクトに記憶できるメモ化という最適化の考え方があります。jsのオブジェクトと配列はこのメモ化を行うのに最適です。フィボナッチ数を計算する再帰関数を作ってみ…

understanding node.js

understanding node.jshttp://debuggable.com/posts/understanding-node-js:4bd98440-45e4-4a9a-8ef7-0f7ecbdd56cb

unobtrusive javascript

unobtrusive javascripthttp://www.w3.org/wiki/The_principles_of_unobtrusive_JavaScriptサイ本にunobtrusive javascript について言及があったので後で読む

perlの正規表現 パターンを読みやすくする方法

perlで正規表現によるパターンマッチングを行う時、ある程度慣れた人でも、複雑な処理になるとどうしても読みにくくなったりすると思います/(....)+d/とか、/-?[0-9]:\.?[0-9]*/ とか、なにいってるのみたいな状態にぼくもなってます。これを読みやすくする…

perl foreachを使う際の注意点

perlで配列の要素全体に対して処理をするときにforeachを使うのはよくあることだと思います。文字列のリストすべてに対して繰り返し処理を行うときはforeach $word (qw/ hoge fuga hello /) { print " This is $word";}とこんなふうに書けば、各要素を繰り返…

python imaging library(PIL) を使ってみる

pythonで画像処理をしたいと考えたときに、python用のopencvライブラリが有名ですが、python imaging library(PIL)というpythonインタプリタでの画像処理を可能にするものがあり、以下のurlから無料でダウンロードして簡単に使うことが出来ますhttp://www.p…

python encodeについて

めっちゃべんきょうになるPythonのUnicodeEncodeErrorを知るhttp://lab.hde.co.jp/2008/08/pythonunicodeencodeerror.html

centos yumで Cannot retrieve repository metadata というエラーがでるとき

http://www.atmarkit.co.jp/flinux/rensai/linuxtips/a118yumerror.html↑が参考になりました/etc/yum.repos.d/ ディレクトリ以下にyumのレポジトリの設定があって、エラーがでたレポジトリの設定ファイルのenabledがenabled=1になっていたのが原因のようでし…

python 日付の計算

現在時刻における日付や、指定した日付を取得するときは、標準ライブラリであるdatetimeをインポートして使用できる。そして、取得した日付の1日前、1月前など、日付に関する計算を行いたい場合は、 datetime.timedeltaを利用するのが便利です。import dat…

expressでテンプレートエンジンにejsを指定したのに jadeがないって言われるエラーの対処法

node開発において、フレームワークであるexpressを使うと簡単にアプリケーションのスケルトンが作れます今回、express 3.4.7において、テンプレートエンジンにejsを指定して以下のコマンドを入力してnode_express_testという名前のスケルトンを作成しましたe…

node Unhandling 'error' event というエラーがでたときの対処法

node.jsでHTTP通信をするためのサーバーとクライアントを作りましたエコーサーバはlocalhostでport:1337で待ち受けて、クライアントからPOSTでリクエストがきたら処理するようにしていますHTTPエコーサーバhttps://github.com/kcpjunky/node_http/blob/maste…

process.nextTick() まわりのまとめ

nodeをつかってリアルタイムな何かを作りたいと思っていて、久々にコードを書きつつ勉強していました。nodeのイベントループの仕組みを理解するうえでキモになるprocess.nextTick()について、ふんわりとしかわかっていなかったので、いろいろググってみたた…

python 文字列型のjoinメソッド

ある文字列が格納されているリストがあり、その要素をすべて並べて一つの文字列にしたい場合は文字列オブジェクトのメソッドであるjoinメソッドを使うといいtext = ['aaa','bbb','ccc'] str = ''.join(text) print str ### "aaabbbccc"が表示される ここで、…

python 文字列操作

pythonにおける文字列操作についてあるテキストファイルがあるとして、text = """ helloworlddesu"""という文字列があるとするこの文字列を操作することを考える。↑の文字列は、 hello world desu という文字列になるが実際には、改行文字の \nも文字として…

junit org.hamcrest.CoreMatchersについて

junit4でテストケースを作成する際、あるメソッドの戻り値が正常化をテストする際に予想される値と実際の値を比較する必要がある。 その際には予想値 expected実際の値 actualというint型の変数があったとしてテストメソッドの中でassertThat(actual, is(ex…

・マシンにHDDドライブを追加する・VMマシン上に5.0GのHDDドライブを2台追加する /dev/sdb1 /dev/sdc1LV作成後作成、マウント後、LVMスナップショット機能を使って 対象のパスで静止点を作る (今回は/datalvcreate -s -L 200MB -n snap_te…

osX サブモニター2枚で最高のデスクトップ体験を

自宅用のmacbook pro15インチ用に、23インチのサブディスプレイを購入しはや半年。自宅でいろいろ作業をしているともう一枚ディスプレイがあれば良いなという欲求がどんどん出てきてしまい、benq GL2450を購入しました。このbenq GL2450、通常の横長だけで…

python クラスとimportについて

pythonでのコーディングを勉強し始めた当初、モジュールのimport関連でエラーが出ていろいろつまづいたことがあったので、それを整理するためにまとめてみる。ある親クラスがあり、それを継承する子クラスを実装しようとする親クラスを定義したモジュールが …

apache ログ アクセス順 回数出力

cat access_log | awk '{ print $1 }' | uniq -c | sort -r | awk '{print $2,$1}'10.160.32.24 310.160.32.51 18awk初めて使った

python lambda式とdef

pythonでコーディングする上である処理をまとめてdefで関数の定義をして、利用するときはその関数名を呼び出して利用する。 defによる関数定義 def sum(x, y, z): return x+y+z 言うまでもなくただ3つの引数を+演算子により足したものを戻り値として返すメ…

python 拡張代入について

pythonで数値または文字列を扱った演算を行うときに、普通に=で代入する以外に、拡張代入を用いることが出来る。 拡張代入とは、他の言語にもみられるように、数値を足す時に += や -=を用いて変数に値を代入することである。 例えば、数値型の変数に、ある…

python python変数の型チェックについて

pythonの変数の型のチェックについてまとめてみる 配列を作った時の型の確認 type関数を使うことで引数のオブジェクトの型をチェックできるlist = [1,2,3,4]type(list)type(list[0]) リスト型とint型がかえってくる さらに、type()関数自体も、オブジェクト…

pythonの勉強をはじめた

最近、javaとjsだけじゃなくて、ほかの言語もちゃんと勉強したい欲が出てきたので、pythonの勉強をはじめた。 自然言語処理系の本を読んでいて、文字列処理の際に便利だという記述が多かったので。どんなフレームワークがあるかとか、まだわかってないので、…

java Remove Control Flag

以下の3つのメソッドは、与えられたint型の配列から、目的の数字があるかどうかを判定するメソッドであり、処理自体は変わらないが、1から3に行くにつれてリファクタリングされている。 あるものを判定するためのメソッドでは、目的の数字があるかどうかの…

javascript 数値と文字列の型 演算

var x = 10;var y = '10';var z = 10;var t = sum(2,3,4);var p = x + y + z;print(t);print(p);function sum(x,y,z) { return x+y+z;}結果 t = 9p = 101010 となるのはなぜ? 疑問なのは、数値x,yと文字列10の変数zを関数sumの中に入れた場合に、x+y+zの演…

シンボリック定数について 当たり前だけど忘れがちなこと

もし、あるコードの中で2つの定数x,yが必要だとするxはある物の個数で、yはxの2倍の値を保持するものと考えたときに、もしxが100だとするとpublic static final int X = 100;public static final int Y = 200;と安易に宣言するのはリスキーである。 もし実…

java static イニシャライザについて

参考Javaで定数クラスを使用するときに、知っておくと嬉しいかもしれない小技http://kanouk.typepad.jp/kanolog/2008/05/java-b5e4.htmlリファクタリングに関する本を読んでいて、マジックナンバーをシンボリック定数に置き換えるという基本中の基本を学んで…

eclipse maven install時のエラー

eclipseでsvnによりチェックアウトしたプロジェクトをmaven buildしようとしたときのエラー[INFO][INFO] --- maven-resources-plugin:2.5:resources (default-resources) @ -core ---[debug] execute contextualize[INFO] Using 'UTF-8' encoding to copy fi…

javascript typeof演算子について

javascriptは、変数自体に型がなく、代入したものによって型がきまる動的型付けの性質をもっている。型については、以下の6種類がある。 文字列型(文字型は存在せず、1文字の長さの文字列で表現する)数値型(javaなどのように、intやfloatなどの区別は無…

java Prototypeパターンについて

現在、デザインパターンについて学んでいて、Prototypeパターンについて難しい点が多々あったため、考えを整理するためにまとめてみる。Prototypeパターン 今まで、あるクラスのインスタンスを作成する場合、new クラス名(); とクラス名を指定していた。シス…

java 抽象クラスについて

抽象クラスとは、インターフェースとは違い、抽象メソッドだけでなく、実装された具象メソッドを備えるモノである。抽象クラスは、それ自体ではインスタンスを作成することが出来ず、そのクラスを継承したクラスを作成することで、はじめてインスタンスの作…

java pleiadesplugin導入

javaの開発環境構築のため、eclipseを導入し、日本語化するためにpleiadesを入れる際に参考になったサイト↓http://supportdoc.net/support-general/pleiades-mac.htmlかなり簡単だった

java static final int とenumの違いについて

javaの勉強をしていて、最近まで恥ずかしながらenumについて全く知らなかった。 enumについて調べた上で、 static final int で宣言した定数と何が違うのかという疑問も浮かんだので、 enumについての簡単な説明と、上記の疑問について、両者の違いをまとめ…

node イベントループ枯渇状態

nodeでアプリケーションを作成する際、1つ1つの処理を出来るだけ軽く、簡素にして数多くのI/Oイベントを素早く処理出来るように設計することが重要である。イベントループについて考える際、コードの内容によって、1つの処理が完了しないために次のステッ…

node イベントループの詳細

イベントループがどのようにして動作しているかを理解するために、簡単にイベントループの流れの説明を行う。イベントループの処理は、大まかに5つのステップに分かれている。1 setTimeout()のコールバック実行2 process.nextTick()のコールバック実行(メ…

openframeworks box2dライブラリ

結構前に作ったやつopenframeworks でbox2dのライブラリを使う。クリックしたらボールオブジェクトを生成して、ボタンによって重力の方向が変わります。https://vimeo.com/55470193openframeworksは、日本語コミュニティーがまだ小さいので、英語で書かれた…

node イベントループについて

nodeにおけるイベントループは、whileループ処理で実装されている。ループ処理はI/Oイベントの処理の実行時や、I/Oイベントの発生待機のオブジェクト(ハンドル)の登録時に維持される。以下のコードは、ハンドルもしくはリクエストが何も登録されていないた…

node モジュールのスコープ

以下のコードは、3つの関数をmodule.exportsにより外部公開していると同時に外部公開しない変数countを用いている。変数countはファイルの先頭で定義されているが、この変数のスコープはモジュール内である。var count = 0;module.exports = { say: functio…

node Httpサーバ

超基本 Httpサーバについて require('http');で httpモジュール読み込みhttp.createServer()によりHttpサーバオブジェクト作成作成したサーバオブジェクト.listen(port,'アドレス')で指定したポートへのリクエストを待ち受けるリクエストがあったときの処理 …

URLエンコード

URLエンコードあるフォームに入力されたデータは、getでサーバに送られる。その際に、入力パラメータはURLの一部としてサーバのサーブレットに渡される。しかしURLにおいては日本語は使えないので、ここで日本語の文字化けの問題が発生する。URLエンコードは…