久保清隆のブログ

ライフハック、健康、旅行など、役立つ情報を書きます。

プログラミング

flashの使い方:Railsの基礎知識

railsのflashについて、よく忘れるのでメモ。 ※ここで言うflashは、Macromedia Flashとは全く関係ない。Railsのセッションを利用した機能のflashについて。 flash とは? ログイン時のウェルカムメッセージや、項目追加の成功通知など、ユーザに簡単な通知を…

Rubyで配列内の重複する値を抽出する方法

Rubyで重複する値を排除したい場合は、uniqメソッドを使えばOK。 a = [1, 2, 3, 4, 5, 6, 5, 4] a.uniq #=> [1, 2, 3, 4, 5, 6] 重複している値があるかどうかを調べるなら、uniqを利用すれば簡単にわかる。 a = [1, 2, 3, 4, 5, 6, 5, 4] a.size == a.uniq.…

Rubyのハッシュと配列の検索速度の違い

Ruby(1.8.6)で大量のデータを検索することがあったので、ハッシュと配列の検索速度はどのくらい違うのかを検証してみた。 検証用コード ※面倒なので変数名とか超適当にした。 # compare_hash_speed_with_array.rb 1 #!/usr/local/bin/ruby 2 n = 120000 3 4 …

プログラミングに必要な6つの才能

ロシアの研究者 A.P.Ershovは、プログラミングに必要な才能として、6つを挙げた。 これは、確かにそうだなと思った。才能は磨いていけるものと信じて、これらの才能を磨いていけるように、メモをしておく。 プログラミングに必要な6つの才能 第一級の数学…

Linuxのkillコマンドの使い方

Linuxでプロセスを終了させたい時どうするか。 普通は、killコマンドを使って、プロセスおよびジョブを終了させる。 kill プロセスID しかし、これではプロセスを終了させられない時がある。 こういう時は、シグナルも送ってあげると解決することが多い。終…

2010年に売れた、読んでおきたいコンピュータ書まとめ 〜このコンピュータ書がすごい

高橋征義(日本Rubyの会会長、読者側代表)さんとコンピュータ書仕掛人(出版社側代表)の方たちによる『新春座談会 このコンピュータ書がすごい!2011年版』に参加してきた。 開催日時 2011年01月08日 19:00〜21:15 @ジュンク堂池袋本店 概要 2010年に売れた…

MySQLパフォーマンスチューニングのためのクエリの基礎知識

前回書いたMySQLパフォーマンスチューニングのためのインデックスの基礎知識に引き続き、MySQLのパフォーマンスチューニングについて学んだことをまとめ。 MySQLを使っていると、クエリが遅い理由をつきとめる必要が出てくる。 どうやって遅いクエリをつきと…

MySQLパフォーマンスチューニングのためのインデックスの基礎知識

仕事でMySQLのパフォーマンスチューニングをしていて、インデックスについて分かっていないことが多かったので調べたことをメモ。基本的なところから学習しなおした。MySQLのインデックスは、カラムが特定の値をもつレコードの迅速な検索に使用される。イン…

Railsで単数形を複数形に変換する方法と、その変換がうまく行かない場合の対処法

単数形を複数形に、複数形を単数形にする方法 単数形と複数形の変換は以下のメソッドでできる。 String#pluralizeで単数形を複数形に。 String#singularizeで複数形を単数形に。 テーブル名などで複数形がわからなくなったりしたらこれを使えばいい。 #通常…

Googleエンジニアから学ぶ、ハッカーになるための勉強法

Debian Project/Google ソフトウェアエンジニア鵜飼文敏さんの講演動画を見たのでまとめ。内容は、フリーソフトウェア、オープンソフトウェアのハッカー、Google内のハッカーがどのようにソフトウェアを作っているか。少し前の講演だけど、ハッカーを目指す…

Railsのfindメソッドのincludeオプションで、複数のテーブルをincludeする方法

RailsのActiveRecordのfindメソッドで:includeオプションを使うとき、複数のテーブルをincludeできないかなぁと思って色々と試していたら、配列とハッシュを利用して実現できた。例えば、顧客が複数のサイトを持っていて、各サイトごとに複数のプロジェクト…

Linux素人がLinuxを使えるようになるための基礎知識

今までLinuxは使う機会がなかったのでほとんど勉強してこなかったが、業務でLinuxを使いこなせた方が便利だし、最近は、Railsで有名な松田さんとid:yuum3さんにコーチングをして頂いていて、Linuxを使えないとコーチングの進行に支障をきたすので、勉強する…

プログラマに最低限必要なサーバ・ネットワークの知識

プログラマとしてとりあえず知っておいた方が良いと思うサーバ・ネットワークの知識を簡単にまとめた。 ドメイン名と名前解決 サーバとネットワークは切り離せない関係にある。 インターネットの仕組み インターネットとは、ある一定の決まりで作られた、世…

Rubyで氏名を五十音順(辞書順)に並び替える

MySQLのorderだと、五十音順がうまく並び替えができなかった。 例えば、辞書順だと、「わだ」、「わたなべ」の順になるはずが、 MySQLだと、「わたなべ」、「わだ」の順になる。 つまり、濁点が後ろに来てしまう。そういうわけなので、Rubyを使って強引に並…

Railsで日付・時刻を入力するためのフォームを簡単に作る方法まとめ

web制作をしてて日付や時刻を入力するためのフォームを作ることがよくある。 Railsには年月日時分を自動的に作成してくれるヘルパーメソッドがある。今まで知らずに地道にドロップダウンリストを作成してしまっていた。。 便利なのでまとめておく。 4つのヘ…

Ruby on RailsとJavascriptを使って、クリックした文字をフォームに自動入力する方法

Ruby on RailsとJavascriptを使って、リンク文字をクリックするとフォームにその文字を(違う文字でもいいけど)自動入力するコードを書いた。 方法 ビューで、 <script type="text/javascript"> //<![CDATA[ function SetMsg(strNum) { var strMsg; strMsg = strNum; document.form1.student_</script>…

mixiアプリの作り方 誰でもできる、超簡単mixiアプリ開発

mixiアプリを作ってみた。簡単なアプリを作るなら、開発体制を整えるところから始めても15分くらいでできる。 開発体制を整える mixiに登録する mixiDeveloper に登録する mixiDeveloper登録ページ 携帯メールアドレスにmixiからメールが届く mixi@mixi.jpの…

パーサ(parser)とは:webプログラマの基礎知識

パーサを用いると、webページのタイトルや内容などの情報を取得できる。 パーサの意味 パーサ(parser)とは、parse(構文を解析する)するもの。具体的にいうと、人が書いたプログラムソースの構文を読み取り、プログラミング言語などの記述仕様に合わせ、構文…

CGIとは 〜CGIの基礎知識

CGIとは CGIは、Common Gateway Interface の略。 CGIという仕組みを使って、HTMLだけでは実現できなかったアクセスカウンタや掲示板などを作ることができる。 自分のホームページを持ってるけど、HTMLだけを使った単純な状態からランクアップしたい人や、プ…

オブジェクト指向とは プログラミング初心者のためのオブジェクト指向入門

新人研修で、プログラミングを教えることになったので、オブジェクト指向を説明する必要があるためまとめた。 『なぜ、あなたはJavaでオブジェクト指向開発ができないのか』 を参考にした。なぜ、あなたはJavaでオブジェクト指向開発ができないのか―Javaの壁…

プログラミングの名言・格言まとめ

プログラミングの名言、格言をまとめた。 We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil 我々は、開発時間を97%程度にしか減らせないような、微々たる効率化はやめるべきだ。 未…

【Rails】新しく追加するupdated_atにレコード毎に異なる初期値を入れる方法

Railsで、テーブルにupdated_atを追加しようと思って、さらに初期値に他のテーブルの関連づいたレコードの更新日時を代入したかった。 そのための方法をまとめておく。まず、マイグレーションファイルを作成する。 Tagテーブルにupdated_atカラムを追加する…

WEB制作者なら最低限知っておくべき色彩心理とWEBセーフカラー、WEBセーフカラーを出力するRubyコード

色彩は、Webサイトが どのように際立つか ユーザの目にとまるか ユーザーにどのような感情を芽生えさせるか ユーザがどんな動作をするか に大きな影響を与える。 ユーザの属性に合わせて適切な色彩を使うことは、売上を増大させたり、滞在時間を長くしたり、…

JavaScriptでタイマーを設定

どうしても眠いときのための JavaScript - IT戦記 を参考にしてタイマーを作ってみた。 残り時間によって文字の色が変わる。 途中で止めることができるし、再スタートもできる。 時間になると、指定したURLを開く。 使ったメソッド timer = setTimeout(関数,…

文字コードの変換方法まとめ 〜Rubyで文字化けした時の対応方法

Ruby(1.8.6)で文字コードを変換したかった。 Rubyで文字コードを変換するには、 kconvを利用する方法 nkfを利用する方法 iconvを利用する方法 の3つがある。 csvダウンロードするために、utf-8をsjisに変換する必要があった。 kconvを用いる方法 Kconvは自…

JavaScript基礎講座 まとめ

JavaScriptの基本文法 JavaScriptの勉強1 〜基礎の基礎 JavaScriptの概要とscriptタグJavaScriptの勉強2 〜基礎の基礎 JavaScript概要と基本文法JavaScriptの勉強3 〜基礎の基礎 簡単なプログラムを書くJavaScriptの勉強4 〜基礎の基礎 変数と配列と条件…

JavaScriptで文字列をスクロールさせるコード

使ったメソッドの説明 substring(i,j) // i+1番目の文字からj番目の文字までを抜き出す。 例)"abcde".substring(1,3)は、"bc"となる。 timer = setTimeout(関数,ミリ秒) // ミリ秒後に関数を一度だけ実行する。 例)timer = setTimeout("scroll()", 1000)だ…

JavaScript入門 〜文字列の装飾まとめ

JavaScriptのメソッドで文字列の扱い方をまとめた。 点滅させたり、色を変えたり、リンクを張ったりできる。 メソッド 説明 fontsize(3) フォントサイズ変更(1〜7) fontcolor("#3333aa") 文字の色を設定する(#rrggbb) big() 文字を大きくする small() 文字を…

Railsでページ管理するためのメソッドの使い方

Rails1.x系において、 Railsでページ管理するには、paginateメソッドが使える。 指定したモデルクラスに対し、自動的に件数と、指定した件数分のデータを取得できる。 ※Rails2.x系では、標準コンポーネントから外されてしまったので、ページネーションのプラ…

JavaScriptでストップウォッチを作った。

JavaScriptで簡単なストップウォッチを作ってみた。使ったメソッドをまず簡単に紹介。 setInterval(関数, 時間) #タイマーを設定する。時間(ミリ秒)ごとに関数が実行される。 clearInterval(timer) #タイマーの設定を解除する。 以下、コード。時間がたつご…