今回のWEB+DBPRESSはGitHub特集!初心者向けで分かりやすい
Code 27 June, 2012
DBを触るようになり、仕事関係で目を通しておいた方が良いかもしれないと勧められたこともあり、始めてWEB+DB PRESS Vol.69を買ってみました。結構高かったのですが。。 購入に至った本当の理由は表紙にGitHubとあったからかもしれません。アカウントは以前から持っていたものの、最近、ようやく使い始めはまりそうな勢いだったので、ちょうど良いタイミングでした。 35ページを割いてGitHubの特徴、Subversionとの違い、使い方などを説明してくれます。GitHubの最大の特徴でもあり、初心者に取って敷居の高いPull Requestに関しては、簡単に練習できるリポジトリなども用意してくれているという丁寧さです。僕もやってみましたが、はじめてのFork、はじめてのブランチ、はじめてのPull Requestとスムーズに試してみることができました。一回手を動かすと違いますよね。 GitHubに関してはしっかりと解説した定番本もありますし、ネットにも情報がたくさんありますが、初心者に取ってはこの記事にあるようなボリュームが最適ではないかと感じました。本だと情報量が多すぎて挫折する。ネットだと断片的すぎて全体像がわからない。この記事を読んで全体像を把握して、ネットで調べながら使って、ある程度使えるようになったら本を読んでさらに自分のものにするってのが良い流れかなと思いました。 この雑誌、はじめて買ったけどかなり丁寧で好印象。伝えるのが仕事だから伝えたら終わり、責任持たないという感じが全くなく、サポートするという姿勢が感じられます。ただ、サポートすると言っても限界があるので、限界を示唆した上でのサポートという誠実さ。いいなぁ。[…]
アメリカ人もちょっと不安で相談していたよ
Others 24 June, 2012
自分のブログが検索結果にどんな感じで表示されるか見てみようと検索してみたら、興味深いページを見つけてしまった。アメリカ人のQ&Aサイトらしい。質問者はどうやら30歳でプログラミングを始めることに対して誰かに背中を押してもらいたいようだ。実際の質問はこちら。 Is 30 years old too old to learn computer[…]
はじめてのbitbucket
Code 24 June, 2012
使ってみました!gitもgithubも初心者でgitの記法も曖昧な僕が。 bitbucketはgithubと同じようにgitリポジトリをリモートで管理できるホスティングサービスです。githubとの違いは無料でプライベート・リポジトリを無制限で作れるという点です。現時点で有料になるポイントは共同利用者が6名以上いる場合と、個人で使うにはほぼ無料で行けてしまいそうです。 僕もそうでしたが、恐らくgithubの便利さを知った後、プライベート・リポジトリが使いたくなりこちらに移ってくる人が大半ではないでしょうか。 今回は、そんな僕がbitbuketを利用してはじめてのリポジトリを作成するまでを記事にしてみました。githubと似ているところがあると思うので、慣れている人に取っては本当に簡単な作業だと思いますが、僕のようにgitもgithubも曖昧な人の参考になればよいと思います。また、非常に分かりやすい記事を見つけましたので説明の半分はそちらの記事を見ていただくことになります。 1. サインアップ〜ログイン〜リポジトリの作成 いきなりですが、”bitbucketの使い方 — Windows+TortoiseHg 2.x[…]
Markdownを試してみた
Code 24 June, 2012
ノートを取るときに、いつも一番手元にあるテキストエディットやら、evernoteやらで書いてしまいます。そして、バラバラになり結局見返すことがなかったりします。そこで最近は、ある程度の範囲のことは一つのテキストファイルにして、入力のタイミングで新しいファイルを作らないようにしています。 で、Markdownです。ちょっと前、どこかの記事でmarkedというアプリを目にしてから気になっていました。最近、githubやtumblrでも遭遇し、利用者が増えていそうなので手を出しておこうと思い、なんとか行動に移せました! ブログで検索すると、参考になる記事が本当にたくさんあるのですが、それは後ほど上げるとして、Markdownに関する自分の理解を書いておこうと思います(ほとんど参考記事からの知識ですが)。 僕の理解 僕の理解1: Markdownとは、文章をhtmlのように構造化する記法。ただし、非常にシンプル。 僕の理解2: Markdownとは、markdownエディタで見ると、htmlのようにきれいに見れる。また、html表示用に出力できるソフトも出回っている。 僕の理解した特徴 プレーンテキストなので軽い。融通が利く。[…]
Xcode4のコード補完が効かなくなったとき(強力編)
Code 24 June, 2012
Xcodeのコード補完が機能しなくなったとき、ありますか? 最悪な気分になりますね。でも、いつも通りググれば直ぐに回答が出てきます。僕も何度かその方法で解決してきました。 オーガナイザを起動し、Projectタブを開く。 Derived Dataのdeleteを押して削除する。 Xcodeを再起動してCleanしてビルドする 少し待つ 今まではこれで問題なく行けました。ただ、今回はさらに強力です。上記の方法が全く効きません。何度やってもだめです。プロジェクトをもう一つ作ってコードを移植…?そんなときに、助けてくれるのがstackoverflowです。 Xcode 4[…]
ストーリーを通してSQLを理解する
Code 16 June, 2012
今日は、SQLを理解する手助けになる本の一つ「Head First SQL ―頭とからだで覚えるSQLの基本」の紹介です。 数年前に小飼弾さんの記事で目にして購入しました。はじめてのMySQLでデータベースのことが全く分からないときに手に取り、一度目を通し、今また読み返しています。読み返すというよりはざっと内容を追う感じです。 プログラミング経験が浅く、はじめてSQLを触ろうとするときに感じるわけのわからなさ、面倒臭さ、イライラというのは僕も数ヶ月前に感じていたのですが、本書はその一部を軽減してくれるかもしれません。 イラストや図解などを多用した読みやすい入門書は多くありますが、文章はまともなものがほとんどです。しかし、本書に関しては文章が少しふざけています。ちょっぴりお調子者の主人公がSQL文と格闘しながら、次第に自分のビジネスを確立していくという物語がありますが、その軸が見えなくなるくらい、様々なケースが提示され、読者はそれを読みながらああでもないこうでもない、この絵はふざけている、なんか吹き出しのフレーズがなんだか変などと考えながら読み進めることになります。その過程でSELECT文から結合、セキュリティに関することまで一通りの基礎を学ぶことができます。 コマンドラインに実際に入力しながら学習するのもよいのですが(実際にデータベースを使った経験があった方が理解が高まるのは間違いないですが)、一度MySQLを使ったことがあり、基礎を固めたいという初級者に取っては、コマンドラインに入力せず読み進めていくことがある程度前提とされている本書は気楽に手に取れるものであり、よいのかなと思います。「さて、入力してみましょう」というコメントはほとんど文章中にでてきません。
githubでクローン(チェックアウト)する
Code 15 June, 2012
こんにちは。 先日の記事でプロジェクトのフォルダ名を変更したいという欲求を満たす為にプロジェクトのフォルダをXcodeから削除したり、追加したりしているうちに、gitが正しくフォルダを読み込まなくなってしまいました(汗)。そこで、とりあえず作業中のフォルダは破棄して、githubから変更前のプロジェクトを落とすことにしました。 でも、gitってsubversionとちょっと違うみたいでよくわからない。subversionのチェックアウトがクローンという言葉に該当するようです。ちょっと調べた結果やり方が分かったので備忘録的に乗せておきます。といっても本当に簡単です。 コマンドラインでクローンしたいフォルダに移動する。 下記のコードを実行する $ git clone git@github.com:morizotter/MZRUUID.git 以上です。ちなみに、”git@github.com:morizotter/MZRUUID.git”の部分は、アカウント名とリポジトリ名ですが人によって違いがあります。自分のものはリポジトリのページに表示されるようです。[…]
ブログにコードを書くこと
Code 10 June, 2012
きちんとブログを書き出したのは、2004年にはじめて以来2度目になります。その間に、何度か”作っただけ”のブログはありましたが、テーマが明確でなかったり、特に書くこともなかったりして続きませんでした。このブログはプログラムの学習過程を書いていくことに特化しようと思っています。 ブログに自分のつたないコードを書いてみて思うのは、本当に頭の中が整理されるということです。思い浮かんだことをそのまま伝えても、恐らく伝わらない。想定の読者(初心者に毛が生えた程度=僕と同等)のことを考え(恐らくまだ1人も継続読者はついていないと思いますが)、できるだけ伝わるように書こうとする。そうすると、追加で調べなければいけないことがあったり、あまり重要でないことは省いたりといったことを頭の中で実行していくことになります。その過程で頭の中が整理されて、学習結果がより身に付くと感じています。 コードを共有する為にgithubも初めてみました。まだまだ試行錯誤中なのですが、誰かに見られる可能性(今のところfollowerやdownload数は0)を考えると、何度も書き直して整理するようになります。 いやー、ブログはじめてよかった!
Xcodeプロジェクトの名前を変える
Code 10 June, 2012
ふと、githubにあげる公開ファイルの名前を統一しようと思い、プロジェクトの名前を変えることにした。調べてみると、Xcode4では比較的簡単に名前を変えることができるらしい。実際にやってみてできたところと、気になるところがあったのでメモ。 1. Xcodeの設定でProject名を変更 PROJECTをクリックすると右側に出てくるIdentifyのProject Nameを変更する。 2. 変更点を教えてくれるビューが出てくるので問題なければRenameする。 3. スナップショットを撮るか聞いてくる。後々のことを考えると撮っておいた方がよいと思う。スナップショットを撮った状態に後ほど戻れるので。 4.[…]
PHPからMySQLのデータベースへの接続
Code 10 June, 2012
PHPからMySQLへの接続に関する基本の「き」を書きたいと思う。ついでに、使い回し可能でシンプルなコードも残しておく。実際、これも検索したのだけれど、初心者レベルで理解が容易な情報がすぐに見つからなかったので。 想定読者は、「とりあえずPHPとMySQLをはじめた。MySQLへ接続も試した。ただ、すべてのファイルに何度もmysql_connect(‘‘,’‘,’*’)を書くのは面倒。クラス作成ももうちょっと慣れてからにしたい。」という方です。 準備 まずは、接続に必要な情報をまとめたファイルを作ります。DBConfig.phpとします。なんでこれが必要かというと、次に作成する基本のファイルから見る為なのですが、ファイルを一つにまとめない理由は、DBConfig.phpをブラウザからアクセスできない場所に置くことで、情報を取られるのを防ぐことが目的ということです。 <?php define("DB_SERVER","localhost"); // サーバ define("DB_NAME","dbname"); //[…]
MySQLにcreatedとmodifiedを記録するカラムを作る
Code 10 June, 2012
こんにちは。 MySQL初心者はぶつかる問題かもしれないということで一筆。MySQLで現在日時をデフォルトで指定できるcurrent_timestamp関数を使えるのはテーブルについて1カラムだけということなんですね。 なので、createdに登録日時、modifiedに更新日時を記録したい。登録時は両方current_timestampで指定し、modifiedはさらにon updateでcurrent_timestampを使うということができないのです。 でも同じことがしたい。調べた結果、ほぼ、[MySql] 登録日時の初期値と更新日時の自動更新 | So-Kai-App Noteに解決法がありました。 modifiedのみdefaultとon[…]
Xibを使ってカスタムセルを作る
Code 10 June, 2012
Xibを使ったUITableViewCellのカスタマイズに毎回少し躓いているのでまとめてみたいと思います。 具体的出来上がりはこのような形になります。 作成手順は次の通りです。カスタマイズ・セルを利用するテーブルビューを作成するところから始めます。 基本 UITableViewControllerを継承したサブクラスを作成する(TableViewController.h/.mとする)。 UITableViewCellを継承したサブクラスを作成する(CustomCell.h/.mとする)。 空のXibファイルを作成する(CustomCell.xibとする)。 CustomCell.xibのClassをCustomCellに変更する(デフォルトはUITableViewCell)。 CustomCell.xibのIdentifierに値を指定する(CustomCellとする。この部分はセルの再利用の際に必要になる) CustomCell.xibのFile’s[…]
UDIDを使わずにUUIDを使う
Code 4 June, 2012
新しいブログを作ってまだ記事も無いので、試しに一つ書いてみようと思います。 もう古い話題ですが、UDIDを使わずにUUIDを使う方法です。調べれば良さげな記事がネットにいくつか出てくるので、簡単に。 まずは結論から。 – (NSString*) generateUUID { //[…]