programming

C の復習

この間データ構造の勉強をしている学生を見て、久しぶりにアルゴリズムとデータ構造の復習をしたくなり、ヒープソートを書いて見ました。ヒープソートは大まかな処理自体は知っていたけど、作った事も特になく、C の復習を兼ねて書きました。 heapsort.c コ…

rails の備忘録

attr_accessible の挙動を忘れないように記録。 class LineItem < ActiveRecord::Base attr_accessible :product, :product_id, :id, :updated_at, :cart_id, :created_at belongs_to :cart belongs_to :product end 上記のモデルを作成していたとすると、at…

Mac OS X の rename コマンドが正常動作しなかった為自作しました

リネーム先が既にあるとか言ってエラー吐き続けてたので自分で作った話。本当は rename コマンドが正常に動けば良かったんですが、動かなかったので Ruby で書きました。 さらっと書いただけなんで中身すかすかですが目的が達成出来たのでそれでよしとして、…

大学シャトルバスのタイムテーブルを呟く Bot

まぁ今更 Twitter の Bot を作ったところで特に目新しい話が出る訳ではありませんが、備忘録という事で。先ず、うちの大学のシャトルバス運行タイムテーブルが大学のアクセスとして載せられていまして、バスに乗ろうという時にはわざわざそこにアクセスする…

Web サービスの作り方 -新しいを生み出す為の 33 のエッセイ-

Webサービスのつくり方 ~「新しい」を生み出すための33のエッセイ (Software Design plus) Web サービスの作り方を読み終わりました。やる気の問題で購入してから時間が大分経ちましたが面白い本でした。ただし、どの言語でも良いですがある程度のプログラミ…

C 言語ポインタ完全制覇

C言語ポインタ完全制覇 (標準プログラマーズライブラリ) C 言語ポインタ完全制覇読了しました。 いろいろ手を出してきての今更感ある C 言語の勉強ですが、戻ってきた価値は大いにありました。 今まででもそれなりに (大きくないプログラムの) ソースを読む…

XOR 交換アルゴリズムと一時変数を使ったスワップ

先日本を読んでいて、スワップのコードを見たときに XOR 演算を使って一時変数を使わずに変数の中身を交換する事が出来る事を思い出し、wikipedia 巡りをしていました。最近のプロセッサ事情では XCHG 命令一発で交換できるらしく、実は XOR 交換アルゴリズ…

プログラマのためのサバイバルマニュアル

プログラマのためのサバイバルマニュアル 久しぶりにブログの更新です。 プログラミングのみの話かと思いきや、会社での立ち居振る舞いを含めたプログラマの行動の指南書になっていました。 先ずは目次。 第1部 プロフェッショナルのプログラミング 1章 本番…

Padrino と git の兼ね合い

最近 Padirno を使う様になったのですが、git のリモートリポジトリによるソースの管理を行なった所エラーがでて詰まりました。下記のコマンドはコントローラーの生成ですが、実行すると、 $ padrino g controller sample create app/controllers/login.rb c…

Create Your Own Programming Language

以前から言語を作る事に興味がわいていたのですが、中々難しそうに見えて尻込みして挑戦出来ていませんでした。それが、昨日急に言語を作りたい衝動にかられて wikipedia 巡りをしてしまいました。最近盛り上がってきつつあり、Rails にも採用された CoffeeS…

Rails っぽいコンフィグ

前回 MySQL を Ruby から操作出来るようにしたので、今回は Rails のように開発版と本番の切り替えを簡単に行えるようにしました。 とは言え、サーバの動作時に切り替えるようなものではなく、スクリプトが動作するときに指定した設定で読むだけのものです。…

Ruby on Rails 3 ポケットリファレンス

かなり遅くなりましたが、Wings さんより献本頂いた本を読み終えました。ポケットリファレンスの Rails 3 版です。 Ruby on Rails 3 ポケットリファレンス Rails 3 の導入から始まり、各メソッドについて詳しく書かれています。ここからの入門としては開発の…

StumpWM に影響されて... run-or-raise の実装

StumpWM を使ってると run-or-raise が非常に便利で便利で困ってしまいます。これが無いと自分がセッティングした場所にいくのがめんどくさいんですよね。フレームサイズとか、位置とか、お気に入りのポジションがありますからね。で、Emacs でもその機能が…

リファクタリング: Ruby エディション-第 1 章-

リファクタリング:Rubyエディション 『リファクタリング』の Ruby 対応本で、以前から非常に読みたかった本です。とは言え半年くらい家の本棚で眠ってました。リファクタリングは勘所が中々難しく感じるので Ruby に慣れるまで置いてました。今思うと完全に…

基礎と実践 Linux ネットワークプログラミング-Chapter 1-

Linuxネットワークプログラミング C 言語を用いて Linux のネットワークプログラミングを勉強する為に読み始めました。目的はネットワークの知識と技術の理解です。自分自身あまりネットワークを真面目に勉強してこなかったのでわからないことが多くあり、今…

JavaScript パターン - 優れたアプリケーションのための作法 -

JavaScriptパターン ―優れたアプリケーションのための作法 実は The Good Parts を読みながら JavaScript パターンも読み進めてました。本当は JavaScript 第 5 版を推奨されていたのですが、かなり分厚いので先に薄い本を片付けたい気持ちがありました。内…

JavaScript The Good Parts

JavaScript: The Good Parts ―「良いパーツ」によるベストプラクティス 前回宣言した通り The Good Parts 読んでみました。Head First JavaScript から続き、id:dankogai さんが言われている JavaScript 本の 2 冊目です。総ページ 200p 程度の薄い本なので…

Head First JavaScript-頭とからだで覚えるJavaScriptの基本-

Head First JavaScript ―頭とからだで覚えるJavaScriptの基本 id:dankogai さんがプログラミング初心者が始めるべき言語が JavaScript と言っており、尚且つ初めに読むべき本として紹介されていた本を読んでみました。今まで JavaScript 自体にあまり好意的…

良いコードを書く技術-読みやすく保守しやすいプログラミング作法-

良いコードを書く技術 −読みやすく保守しやすいプログラミング作法 (WEB+DB PRESS plus) 前々からプログラミング作法について色々な書籍に手を出してきました。これが今年度初めの作法本です。Java のコードを例に解説しているのがほとんどで、他言語しかや…

まつもとゆきひろコードの世界-スーパー・プログラマーになる 14 の思考法-

まつもとゆきひろ コードの世界~スーパー・プログラマになる14の思考法 以前僕が Ruby を始めたときに読んで内容をあまり理解出来ずに置いていた本をもう一回読み直しました。内容は基本的には Ruby の機能紹介で、コードを用いて Ruby に使用されている技術…

CodeCraft -エクセレントなコードを書くための実践的技法-

Code Craft ~エクセレントなコードを書くための実践的技法~ サブタイトルにある通りこの本の目的はエクセレントなコードを書くための手法を勉強しようと言う物です。ではいったいエクセレントなコードとは何なのか? と疑問になります。この本ではエクセレン…

Python の処理で気になる事があったので考察してみた

今日 Twitter 上で気になる発言があったので調べてみました。 どうも 1.__add__(n)__ した時に通らないとの事。 確かに試したところエラーが返ってくる。 Python 2.6.1 (r261:67515, Jun 24 2010, 21:47:49) [GCC 4.2.1 (Apple Inc. build 5646)] on darwin …

return 文に括弧を付けない理由について思い出したからメモしてみた

C 言語で良く見かける returnz(0); return 分に括弧は付けちゃいけない。こんな話を学部 3 回生の頃から先生に言われ続けて、理由も聞かされていましたがその時はしっかりと理解出来ていませんでした。覚えていたのは 括弧を付けるとエラーが出る時に発見す…

プログラマーのためのソースコードを読む技術

最近ソースコードを読む機会が増えてきたのでソースコードリーディングkの技術を学ぶ為に本屋で思わず手に取りました。この本はコードを読む為の技術がメインかと思いきや、書く為の技術に関しても言及しています。 中でも PHP でアセンブラの仕組みを実装す…

プログラミング教育という研究テーマのまとめ書きみたいなもの

ちょっと自分の研究についてまとめ書きしておきます。先ずは問題提起から。 最早プログラミング教育の定説となりつつある (既になっている?) 問題です。 レジナルド・ブレイスウェイトが書いていることを読んだとき、私はそんなわけないだろうと思っていた。…