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

Learning Advanced JavaScript#1

Learning Advanced JavaScriptという素敵なチュートリアルを見つけたので、頑張って理解してみる。#90項目あるので抜粋です。 #2: Goal: To be able to understand this function: このチュートリアルの目標は以下の関数を理解すること。 // The .bind metho…

Webデザイン勉強会@Tokyo #3

参加してきました。 実際のWebサイトをユーザ視点で利用してみて、そのサイトの使いやすさについてディスカッションしてみるという内容でした。 前提: 作り手視点とユーザ視点 デザインだけを見てると作り手本位になりがち ユーザの属性や利用状況を見ると、…

モジュールと名前空間

GoogleのClosure Toolsを触っていて、JSの名前空間がよくわかっていなかった。 教科書:JavaScript 第5版 モジュールと名前空間 当初のJSはHTML中に小さな単純なスクリプトを書く程度 現在は複雑になってきている →外部モジュール、ライブラリが登場 JSの言…

コンセプトからのビジュアルデザイン開発

12/7(月)にPOINT OF VIEW #1という勉強会に行ってきました。 POINT OF VIEWでは、デザイナー視点でのWeb制作をディスカッションするというコンセプトの勉強会の様です。 コンセプトからのビジュアルデザイン開発 今回参加させていただいた#1のテーマは「コン…

Pythonのバージョンをあげた時に、easy_installも新しいPython用にする

MacのPython2.5を2.6にアップグレードして easy_installでMercurial、Sphinxを入れようとしたけれど Python2.5のeasy_installが起動してしまったので 以下、やることのメモです。 ez_setup.pyをダウンロードする。 $ python ez_setup.py #既存のeasy_install…

自分に足りない色々なこと

目標 現在、プログラミングやらネットワークやら、コンピュータの勉強をしているが 結局のところ、それで何がやりたいのか・何を作りたいのかが具体的に定まっていない。何も定まってなければ、勉強もただの「準備運動」に過ぎない。 「準備運動」ばかりで本…

XMLの要素を抜き出す

ex)Twitterのステータスを確認 http://twitter.com/help/test.xmlTwitter が正常に稼動していれば、以下が返って来ます。 <ok>true</ok> cf)http://apiwiki.twitter.com/Twitter-REST-API-Method%3A-help%C2%A0test このXMLドキュメントから"true"を抜き出す >>> fro…

2.現在時刻にあわせてやる気のでるメッセージを出力

#!/usr/bin/python #-*- coding:utf-8 -*- import time def hurray(): """ 現在の時刻にあわせてメッセージを表示する """ now = getTime() #時間帯毎のメッセージ times = {0 : "早く寝ろ。", 1 : "おはよう。早起きだね。", 2 : "今日の予定は?", 3 : "も…

新しくプログラミング言語を覚えたい(ry -1

新しくプログラミング言語を覚えたいときに行うべき10の練習問題 今更ながら、Pythonでやってみました。 1.何らかのカウントアップメッセージをを1から100まで出すけど、3のときだけアホになる! #! /usr/bin/python #-*- coding:utf-8 -*- def nabeatsu(): "…

Gitのインストール(Mac)

Gitことはじめ git:分散型バージョン管理システムCVS、Subversionに代表される集中型バージョン管理システムでは 共用レポジトリが中央に1つだけあり、そのレポジトリにアクセスして各操作を行う。対して、分散型バージョン管理システムでは、ユーザ一人一人…

また再帰

自然数の構造に従った再帰 自然数:0から始まり、1,2,3と増え、無限に続く数。 自然数の様な無限に続くデータ構造を扱う場合には、まず、曖昧性の無い形で定義することが重要になる。 0は、自然数である。 nが自然数ならn+1も自然数である。 階乗を求める再帰…

関数のネスト

関数呼び出しの結果を、他の関数に渡すこと(関数のネスト、入れ子)で シンプルな関数を組み合わせて、全体として複雑な処理を簡単に行うことが出来る。整数のリストを受けとったら、それを昇順にして返す関数(挿入法) (* 整数リストと整数nを受けとったら、…

再帰関数

与えられたリストに0があるかどうかを調べる関数を作ってみる。 (* リスト内に0が含まれているかを調べる *) (* contain_zero : int list -> bool *) let contain_zero lst = match lst with [] -> false | first :: rest -> if first = 0 then true else fa…

リスト

リストの構造 リスト=同じ型のデータが任意の数並んだデータ ※レコードは、複数のデータが決められた個数だけ並ぶ。 空のリスト Ocamlでは空のリストはで表現する。(要素が0個のリスト) 空のリストに要素を加えるには 追加する要素 :: [] と書く。 (* 曜日の…

さらにレコード

「プログラミングの基礎」の目標であるメトロネットワーク最短路問題にレコードを応用する。 必要な情報の定義 まず、メトロネットワークの構造のうち、駅名を定義する。 駅名の情報は 駅名 ひらがな ローマ字表記 所属する路線名 の4つの情報を持つレコード…

レコード

レコード 前回は、内部構造を持つデータとして「組」というのをやった。 以下のような形で記述することで、hogeのとった点数は80であるというデータを表す。 ("hoge", 80) ただ、これだと常に(名前, 点数)の順番、要素の数を守らないといけないのと 単純にデ…

組とパターンマッチ

組 : 複数のデータを並べて1つのデータにしたもの。 今までのような単純な数値や、文字列ではなく それらを組み合わせて1つのデータを形成する。2次元平面上の座標のような感じで # (3.14, 2.71) ;; - : float * float = (3.14, 2.71) という、float * float…

エラーの種類

構文のエラー 構文がおかしいとき。 # let x 3 ;; Error: Syntax error 変数を宣言してるのに「=」がない。「;;」にアンダーラインが現れる。 他にも、if文でthenが無いとか、()の対応がおかしい場合はこれ。 未定義の変数 # 3 + a ;; Error: Unbound value …

条件分岐

条件分岐 if 条件 then 式 else 式 条件はbool型 then,elseの式は同じ型の持つ必要がある #if 2 < 1 then 3 else 4 ;; - : int = 4 #if "true" = then 3.14 else 2.72 ;; Error: This expression has type string but is here used with type bool #if "a" =…

関数の作り方

前回の復習。 関数の定義 作成する関数の目的を考える -> 関数の型(引数、戻り値)を決める 入力と出力、テストプログラムを書く 関数の本体を作る 2.で作ったテストで動作を確認 ※1.はコメントとしてちゃんと書いておく そういえば、「プログラミングの基礎…

関数。の続き

関数の型 # let f x = (x *. x) *. 22. ;; val f : float -> float = <fun> val f : float -> float = fは float型xを受け取ったら float型の値を返す 関数である と読む。 上の例では、float型xを受け取ったら、float型の値を返すので 関数fはfloat型ぽいけれど</fun>…

変数の補足

変数の話で、「らしい」を連発してますが 時給を表す変数を書き換えるだけで良くなる。 と、これだと、定数を定義してるのと変わらないけれども。。 関数型言語での変数は基本、書き換えることが出来ない「らしい」。 1回定義したら、そのまま。 上の例で「w…

プログラミングの基礎-2

変数 # let 変数名 = 式 ;; 変数が必要になる時というのは、ある同じデータが複数必要な時。 例えば、1ヶ月のバイト代を計算してみると (* 時給950円で週3回(5時間、4時間、8時間)働いた月の給料 *) # ((950 * 5) + (950 * 4) + (950 * 8)) * 4 ;; という様…

プログラミングの基礎-1

プログラマーズホリデーにて情報を入手した「プログラミングの基礎/浅井健一」をしこしこやっていこうと思います。 関数型言語OCaml(オーキャムル) 関数型言語 単純、かつ強力 = より人間の思考レベルに近い記述が出来る 記述量が少ない プログラミングは、…

配列を使ったリスト - 改

C

上のコードだと、扱うデータが変更になった場合に書き直しづらい。 ex)topは要素の位置をint型で返すが、countが返すint型の値は要素数を表している。 この様な時は、プログラムとデータ型を分離して独立したデータ型として表現する。(抽象データ型-Abstract…

配列を使ったリスト

C

「C言語10課 データ構造とアルゴリズム編」 リストの機能 機能名 関数名 やること 初期化 init リストを空にする 先頭を求める top リストの先頭位置を返す 次の要素を求める next 次の要素位置を返す 要素数を求める count リストの要素数を求める 要素の値…

プログラマーズホリデー

行ってきました。 @La Maisonnee ARを見せていただいたり Vi(VIM) or emacsだったり ポメラあったり 日本電子(私が通ってる学校)の先輩がいたり(AI科?) 最近になって、外に出るのが楽しいと思える様になりました。 昔の自分は死ねば良いと思います。 以下の…

POKEN買った

名刺を作ってない&紙が無くて作れなかったので 朝一でPOKENを買いに行きました。 初仕事を終えたPOKEN氏 ビックカメラ店内の端っこにある閉じたレジの傍らにPOKENが。。 店員さんに聞かないとわからんわw 店員さん曰く 「時々、ネットで見た人が買いにくるん…

4ビットマイコン

大人の科学マガジン vol.24 4ビットマイコンを購入

暗号化技術

盗聴、なりすまし、改ざんなどの問題に対応するために暗号技術を使う。 共通鍵方式 暗号化と複合に共通の鍵を使う。欠点) 鍵を盗まれると終了。 相手毎に別の鍵を管理しないと行けないので管理が大変。 DES トリプルDES AES FEAL 公開鍵方式 暗号化と複合に…