プログラミング
railsのflashについて、よく忘れるのでメモ。 ※ここで言うflashは、Macromedia Flashとは全く関係ない。Railsのセッションを利用した機能のflashについて。 flash とは? ログイン時のウェルカムメッセージや、項目追加の成功通知など、ユーザに簡単な通知を…
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(1.8.6)で大量のデータを検索することがあったので、ハッシュと配列の検索速度はどのくらい違うのかを検証してみた。 検証用コード ※面倒なので変数名とか超適当にした。 # compare_hash_speed_with_array.rb 1 #!/usr/local/bin/ruby 2 n = 120000 3 4 …
ロシアの研究者 A.P.Ershovは、プログラミングに必要な才能として、6つを挙げた。 これは、確かにそうだなと思った。才能は磨いていけるものと信じて、これらの才能を磨いていけるように、メモをしておく。 プログラミングに必要な6つの才能 第一級の数学…
Linuxでプロセスを終了させたい時どうするか。 普通は、killコマンドを使って、プロセスおよびジョブを終了させる。 kill プロセスID しかし、これではプロセスを終了させられない時がある。 こういう時は、シグナルも送ってあげると解決することが多い。終…
高橋征義(日本Rubyの会会長、読者側代表)さんとコンピュータ書仕掛人(出版社側代表)の方たちによる『新春座談会 このコンピュータ書がすごい!2011年版』に参加してきた。 開催日時 2011年01月08日 19:00〜21:15 @ジュンク堂池袋本店 概要 2010年に売れた…
前回書いたMySQLパフォーマンスチューニングのためのインデックスの基礎知識に引き続き、MySQLのパフォーマンスチューニングについて学んだことをまとめ。 MySQLを使っていると、クエリが遅い理由をつきとめる必要が出てくる。 どうやって遅いクエリをつきと…
仕事でMySQLのパフォーマンスチューニングをしていて、インデックスについて分かっていないことが多かったので調べたことをメモ。基本的なところから学習しなおした。MySQLのインデックスは、カラムが特定の値をもつレコードの迅速な検索に使用される。イン…
単数形を複数形に、複数形を単数形にする方法 単数形と複数形の変換は以下のメソッドでできる。 String#pluralizeで単数形を複数形に。 String#singularizeで複数形を単数形に。 テーブル名などで複数形がわからなくなったりしたらこれを使えばいい。 #通常…
Debian Project/Google ソフトウェアエンジニア鵜飼文敏さんの講演動画を見たのでまとめ。内容は、フリーソフトウェア、オープンソフトウェアのハッカー、Google内のハッカーがどのようにソフトウェアを作っているか。少し前の講演だけど、ハッカーを目指す…
RailsのActiveRecordのfindメソッドで:includeオプションを使うとき、複数のテーブルをincludeできないかなぁと思って色々と試していたら、配列とハッシュを利用して実現できた。例えば、顧客が複数のサイトを持っていて、各サイトごとに複数のプロジェクト…
今までLinuxは使う機会がなかったのでほとんど勉強してこなかったが、業務でLinuxを使いこなせた方が便利だし、最近は、Railsで有名な松田さんとid:yuum3さんにコーチングをして頂いていて、Linuxを使えないとコーチングの進行に支障をきたすので、勉強する…
プログラマとしてとりあえず知っておいた方が良いと思うサーバ・ネットワークの知識を簡単にまとめた。 ドメイン名と名前解決 サーバとネットワークは切り離せない関係にある。 インターネットの仕組み インターネットとは、ある一定の決まりで作られた、世…
MySQLのorderだと、五十音順がうまく並び替えができなかった。 例えば、辞書順だと、「わだ」、「わたなべ」の順になるはずが、 MySQLだと、「わたなべ」、「わだ」の順になる。 つまり、濁点が後ろに来てしまう。そういうわけなので、Rubyを使って強引に並…
web制作をしてて日付や時刻を入力するためのフォームを作ることがよくある。 Railsには年月日時分を自動的に作成してくれるヘルパーメソッドがある。今まで知らずに地道にドロップダウンリストを作成してしまっていた。。 便利なのでまとめておく。 4つのヘ…
Ruby on RailsとJavascriptを使って、リンク文字をクリックするとフォームにその文字を(違う文字でもいいけど)自動入力するコードを書いた。 方法 ビューで、 <script type="text/javascript"> //<![CDATA[ function SetMsg(strNum) { var strMsg; strMsg = strNum; document.form1.student_</script>…
mixiアプリを作ってみた。簡単なアプリを作るなら、開発体制を整えるところから始めても15分くらいでできる。 開発体制を整える mixiに登録する mixiDeveloper に登録する mixiDeveloper登録ページ 携帯メールアドレスにmixiからメールが届く mixi@mixi.jpの…
パーサを用いると、webページのタイトルや内容などの情報を取得できる。 パーサの意味 パーサ(parser)とは、parse(構文を解析する)するもの。具体的にいうと、人が書いたプログラムソースの構文を読み取り、プログラミング言語などの記述仕様に合わせ、構文…
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を追加しようと思って、さらに初期値に他のテーブルの関連づいたレコードの更新日時を代入したかった。 そのための方法をまとめておく。まず、マイグレーションファイルを作成する。 Tagテーブルにupdated_atカラムを追加する…
色彩は、Webサイトが どのように際立つか ユーザの目にとまるか ユーザーにどのような感情を芽生えさせるか ユーザがどんな動作をするか に大きな影響を与える。 ユーザの属性に合わせて適切な色彩を使うことは、売上を増大させたり、滞在時間を長くしたり、…
どうしても眠いときのための JavaScript - IT戦記 を参考にしてタイマーを作ってみた。 残り時間によって文字の色が変わる。 途中で止めることができるし、再スタートもできる。 時間になると、指定したURLを開く。 使ったメソッド timer = setTimeout(関数,…
Ruby(1.8.6)で文字コードを変換したかった。 Rubyで文字コードを変換するには、 kconvを利用する方法 nkfを利用する方法 iconvを利用する方法 の3つがある。 csvダウンロードするために、utf-8をsjisに変換する必要があった。 kconvを用いる方法 Kconvは自…
JavaScriptの基本文法 JavaScriptの勉強1 〜基礎の基礎 JavaScriptの概要とscriptタグJavaScriptの勉強2 〜基礎の基礎 JavaScript概要と基本文法JavaScriptの勉強3 〜基礎の基礎 簡単なプログラムを書くJavaScriptの勉強4 〜基礎の基礎 変数と配列と条件…
使ったメソッドの説明 substring(i,j) // i+1番目の文字からj番目の文字までを抜き出す。 例)"abcde".substring(1,3)は、"bc"となる。 timer = setTimeout(関数,ミリ秒) // ミリ秒後に関数を一度だけ実行する。 例)timer = setTimeout("scroll()", 1000)だ…
JavaScriptのメソッドで文字列の扱い方をまとめた。 点滅させたり、色を変えたり、リンクを張ったりできる。 メソッド 説明 fontsize(3) フォントサイズ変更(1〜7) fontcolor("#3333aa") 文字の色を設定する(#rrggbb) big() 文字を大きくする small() 文字を…
Rails1.x系において、 Railsでページ管理するには、paginateメソッドが使える。 指定したモデルクラスに対し、自動的に件数と、指定した件数分のデータを取得できる。 ※Rails2.x系では、標準コンポーネントから外されてしまったので、ページネーションのプラ…
JavaScriptで簡単なストップウォッチを作ってみた。使ったメソッドをまず簡単に紹介。 setInterval(関数, 時間) #タイマーを設定する。時間(ミリ秒)ごとに関数が実行される。 clearInterval(timer) #タイマーの設定を解除する。 以下、コード。時間がたつご…