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

久保清隆のブログ

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

プログラミング

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年に売れた…

「ハッカーと画家」を読んで学んだ、良いソフトウェアの創り方

ハッカーと画家 コンピュータ時代の創造者たち作者: ポールグレアム,Paul Graham,川合史朗出版社/メーカー: オーム社発売日: 2005/01メディア: 単行本購入: 109人 クリック: 4,884回この商品を含むブログ (582件) を見る本書は、基本的には良いソフトウェア…

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

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

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

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

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

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

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

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

ソフトウェア開発を成功に導く法則

デッドライン作者: トムデマルコ,Tom DeMarco,伊豆原弓出版社/メーカー: 日経BP社発売日: 1999/03/19メディア: 単行本購入: 14人 クリック: 111回この商品を含むブログ (161件) を見るソフトウェア開発の小説。 テーマはプロジェクト管理。 示唆に富む内容が…

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) #タイマーの設定を解除する。 以下、コード。時間がたつご…

プログラマーが覚えておくと便利な英単語

プログラマーとして覚えておくと便利な英語をまとめてみた。 プログラミング系 admission 許可 submit 提出する alias 別名 array 配列 attachment 添付 attribute 帰する、属性 common 共通の compare 比較 complete 完成 confirm 確認する configuration …

MySQLのデータを日付を条件に削除する方法 by Rails

MySQLのデータをRailsのメソッドを用いて削除するには、 destroy destroy_all delete delete_all の4つがある。この中で条件が指定できるのはdestroy_allとdelete_all。 destroy destroyとdestroy_allがある。 ロードしたモデルオブジェクトを削除する。 そ…

JavaScriptを利用してドメイン別に表示を変える方法

JavaScriptを利用してドメイン別に表示を変えるプログラムを書いた。 でも、HTMLファイルをブラウザで表示するだけだと、ドメインは空なんだよね。 ちゃんとドメインを持ってるWebアプリケーションにこのコードを書けば、 ちゃんとドメインによって表示する…

コマンドプロンプトでファイルを新規作成する方法【windows】

Windowsのコマンドプロンプトでファイルを作成するコマンドが存在していない。 そこで解決法を考えた。 (adsbygoogle = window.adsbygoogle || []).push({}); C:\> echo a > test.txtこれでtest.txtファイルが作られる。 でも"a"という文字が入ってる。それ…

svnのコマンドとオプション for Windows

自分用のまとめ。大抵のことは、右クリックで出来るんだけど。以下、コマンドプロンプトで行う。 コマンド ブランチの作成 svn copy トランクのURL \ ブランチのURL \ svn copy http://svn.example.com/repos/example/trunk \ http://svn.example.com/repos/…

RIA技術の基礎知識:Web制作者が知っておくべき7つのRIA技術まとめ

“不況”時代を切り拓く、7つのRIA技術の基礎知識(1/4)- @ITでRIAが特集されていたので簡潔にまとめてみた。RIAとはRich Internet Application(RIA)は、ウェブブラウザなどのクライアントの機能を活かした、従来よりも表現力に優れたインターフェースをもつ…

JavaScriptで背景を時間ごとに変えるプログラムを作った

JavaScriptで背景の色や文字の色を時間によって変えたり、 背景の画像を一定時間ごとに変えるプログラムを書いた。使った主なメソッドをまず簡単に説明する。 eval(s) :sという文字列を数値に変換する。 charAt(i) :文字列の中のi番目の文字を返す。 docum…

『ビューティフル コード』×『プログラマ35歳定年説』 by まつもとゆきひろ セミナーまとめ

web-career.comに参加した。 内容のまとめと感想を書いた。 ビューティフルコード ※セミナーでBeautiful Code: Leading Programmers Explain How They Think (Theory in Practice (O'Reilly))を紹介していた。 それも参考にするとよいかも。 コードとは? コ…

ハッシュのキーを文字列、或いはシンボルに統一するには?stringify_keysとsymbolize_keys:Rubyの基礎知識

ハッシュのキーに、文字列とシンボルが混ざっていて困ることがある。 例えば、 {:a => "b", "c" => "d", :e => "f"}このハッシュに何らかの操作を施したい時、キーは統一されていた方がよい。そういうときに便利なメソッドが以下の2つ、ハッシュのキーを文…

JavaScriptで計算機を作った(改)

昨日のコードは名前の付け方とかダメダメだったので書き直した。 ついでに連続計算もできるようになった。 今回はコードの説明も書いた。 ちなみに見た目はこんな感じ。 <html> <head> <title>電卓</title> <script language="JavaScript"> var val = ""; var stock = ""; operator=""; function setValue(n){ val += n</head></html>…

JavaScriptで簡単な計算機を作ってみた

JavaScriptで簡単な計算機を作ってみたけど、続けて計算はできない。 もっと改良したいな。 ⇒改良しました <head> <title>電卓</title> <script language="JavaScript"> var ans = ""; var val = ""; operator="+"; function setValue(n){ ans += n; document.forms[0].elements[0].value=ans; } function setOpe</head>…

JavaScriptでデジタル時計を表示するプログラムを書いてみた

JavaScriptで現在時刻を表示するプログラムを書いた。 <html> <title>CLOCK</title> <head> <script language="JavaScript"> function clock(){ c = new Date(); h = c.getHours(); m = c.getMinutes(); s = c.getSeconds(); document.clockForm.digitalClock.value=h+":"+m+":"+s; setTimeout("clock()",1000); } </script> </head> <body> </body></html>

MySQLのdump(ダンプ)でデータをバックアップ/復元:MySQLの基礎知識

MySQLのdump(ダンプ)でデータをバックアップ/復元する方法(コマンド)についてまとめた。目次 dump(ダンプ)とは MySQL dumpでデータのバックアップを取る dumpファイルからデータを復元する MySQLのオススメ書籍 dump(ダンプ)とは dump(ダンプ)とは、デバッ…

JavaScriptの勉強7 〜基礎の基礎 オブジェクト指向とメソッド、プロパティ

オブジェクトの位置と配列 一つのページの中に複数のフォームやテキストフィールドなどのオブジェクトがある場合、特定のオブジェクトから値を取り出したり、書きこんだりするとき、そのオブジェクトの位置を示す必要がある。 オブジェクトの全体の構成 オブ…

JavaScriptの勉強6 〜基礎の基礎 イベントハンドラ(イベント処理)

イベントハンドラとは イベントとは、ページに対してユーザが特定の操作をすること。 イベントハンドラとは、イベントが起きたとき、特定のプログラムをブラウザに実行させること。イベントハンドラは「on〜」で始まり、このイベントメッセージを受け取り、…

JavaScriptの勉強5 〜基礎の基礎 関数

関数の定義の仕方と関数の意義 「関数を定義する」とは、よく使う処理や定型的な処理を一つにまとめること。 関数の意義 同じような処理をするために同じコードを何度も書くのではなく、関数としてまとめておいて、必要な時にその関数を呼び出すようにする。…

JavaScriptの勉強4 〜基礎の基礎 変数と配列と条件文、繰り返し

変数のつけ方 var salary;これはsalaryという変数を定義したことになる。 また、 var salary = 250000;これはsalaryという変数に初期値として25000を入れた、ということ。 ちなみにvarは省略可能。 変数名は、予約語を除き、自由につけてよい。 配列をつくる…

JavaScriptの勉強3 〜基礎の基礎 簡単なプログラムを書く

前回からだいぶ日があいてしまったけどまたJavaScriptの勉強再開。 前回、前々回はJavaScriptと文法などの決まりごとについて勉強した。 JavaScriptの勉強1 〜基礎の基礎 JavaScriptの概要 JavaScriptの勉強2 〜基礎の基礎 JavaScript概要と基本文法 今回…