はてなキーワード: Eclipseとは
かつてはVim対Emacsでガチ戦争があったが、最近ではどっちも大差ないと認識が広まってきのこたけのこ戦争となった。
対してこれらのエディタとVisualStadioやEclipseのようなIDEの間には今こそガチ戦争が勃発している。
数で圧倒的に有意に立つIDEユーザと本物のプログラマを自称するエディタユーザの争いである。
エディタユーザはIDEユーザを能なしと罵っていて、それに一理あるという風潮があると思うが、騙されてはいけない。
致命的なのはエディタではIDEのような補完入力ができないのだ。
これなしでどうプログラミングするというのか。
あるいは自分一人でコーディングするような場合も問題ないだろう。
まさかいちいち対象クラスのコードやドキュメントを読むというのか。
覚えておけばいいと言う人もいるが、バカも休み休み言えといった感じだ。
そういうことを言う人は、コンパイラも使わず機械語直打ちなプログラミングやってればいいよ。
きっと素晴らしい情報処理能力でみるみるうちにコードを完成させてくれるだろう。
まあ、実際には一月かかっても2分木ヒープも実装できないだろうけど。
また、リファクタリングやプロジェクト管理も一貫してできるIDEは単なるテキストエディタなど物ともしない。
エディタ勢は、これらより便利なツール類がvim scriptやemacs lispで書かれているかのように言っているが、そんなものは実在しない。
あるなら、誰もが使っているはずだ。
というより、そんなものがあったなら、そもそもIDE自体作られることはなかったはずなのだ。
実態はない。
実態があるというなら、実際にエディタでIDEより優れた生産性でコードを書いている動画がYoutubeにあふれるはずである。
だが実際にはそんなものはない。
なぜか?
もちろん、やりたくてもできないからだ。
エディタ対IDEの戦争の正体は、エディタの生産性の低さがいつ暴かれるかと戦々恐々している自称スーパープログラマ達の、自己弁護と時代に取り残されたという怨嗟の声の集まりである。
今までプログラマーをやってきて、状況や環境に左右されず有用だったツールを書き残しておく。
基本的に Windows, Mac どちらでも動作するもの。
1. VirtualBox
ローカル PC 上に別の OS (Linux や Windows) を動作させる事ができるツール。複数の OS を同居させる事ができるので、自分の趣味用のサーバと仕事用のサーバを分けて管理したりできる。昔自分が Linux の勉強をした時は、メイン PC とは別にサーバ用 PC を買ってきて設定していたけれど、VirtualBox があればそんな面倒な事をしなくても済む。今は VirtualBox を更に簡単に設定できるたツールもあるみたいなので、それを使うのも良いかもしれない。
名前の通りパスワードを管理するためのツール。1Password https://agilebits.com/onepassword か KeyPass http://keepass.info/ が良いと思う。サーバサイドのプログラムを始めると、ssh やデータベース等、様々なアカウントを管理する必要が出てくる。root パスワードを忘れた時に、他の人がそれを覚えている保証は無いので保険としてぜひ導入して置いた方が良い。
何でも良いので、とりあえず汎用プログラミング向けエディタを使う事をお勧めする。Sublime Text http://www.sublimetext.com/、Eclipse http://www.eclipse.org/、Vim http://www.vim.org/、Emacs http://www.gnu.org/software/emacs/ あたり。Linux に関わるのであれば、Vim か Emacs どちらかは習得しておいた方が良いが、初期学習コストは高い。Eclipse は Java 以外の言語にも多数対応していて機能が豊富なので、最初はここから始めるのが良いかもしれない。もし Eclipse も難しいと感じたら、より普通のテキストエディタ寄りの Sublime Text から始める。
4. git
最近のオープンソースプロジェクトは github で公開されている割合が多い。そうで無くても git リポジトリの採用率はとても高いので、git のインストールは必須と言っても良い。また、個人用のリポジトリを作るのもとても簡単なので、小さいプロジェクトを始める時は最初に git init をしてしまうのが良いだろう。もちろん、svn や mercurial を使っているプロジェクトも存在するので、それらも適宜インストールする。
5. Google Account
これはツールでは無くて Web サービスだが、サイトのアクセス解析にしろ地図機能の実装にしろ、Web サイトの構築を Google 抜きで考えるのは難しい。また、開発メンバーとのコラボレーションを行う場合、Microsoft Excel をメールや DropBox でやりとりするよりも Goole Drive の Spreadsheet を使う方が便利な事も多いので、意識して Google を使うようにすると新しい発見がある。
+α.
ビールを飲みながらふと振り返って見ると、
いろいろと思うところがあり面白かったので、
酔いながらまとめてみる。
前職のSIerは技術力には自身があるらしく、技術力は負けません。と誰かが言っていた。
構成管理は「日付付きフォルダ」。javaのデプロイは、人の手でDB等接続先情報の構成情報を変更後、Eclipseからwarを生成。人の手でGUIからデプロイ。
実装(ひどければ設計も)海外へアウトソース。結果、java知ってますって人が「PermGen space?Xmxを上げとけ!」「Xmxはとりあえず、1.5Gで!」とドヤ顔とか。。
テストは、もちろん担当者が画面エビデンスを取りながらテスト。(もちろん、エビデンスやテストはリリースの時、確認の意味で使うだけ。)
障害時には基本、関係各所集まって、会議。。。プロパティファイルの差し替えだけで終わるのですが。。。。
ITを活用して、売上、利益を上げてきた。(もちろん、それだけじゃないけど)
構成管理はもちろんバージョン管理ソフト。ビルド、デプロイ作業はコマンドラインで一発。(ただし本番デプロイは一部人の確認作業あり)
実装も、内部で実施。テストはjunitで記述、一日に一度の自動テストと結果レポートが届く。
IT系システムの要件の優先順位の決定権は基本情報部門が持つ。(ただし戦略的に無理な場合あり)
自動テストと、皆が内部実装や仕様を強く知っているからか、自信をもって高速に機能を追加できている。
何より、自分でサービスを作っているからか、活き活きと仕事している。
ここ10年のBtoBの成果は、共通の技術基盤という妄想のために用意された
複雑大規模で、完全に閉じてて、他には誰も使えないEclipseで動く謎のゴミ。
自分達でも持て余して、パッケージ導入とか、結局Strutsスクラッチ開発だったね。
まあ、商売ネタとしては成立してたけど。
Struts1のサポートが切れる蓋を開けた時の状況は、笑いどころか失笑でした。
だからってBtoCも凄かったわけじゃない。
そこで事件が起きる。Railsの登場。
ビジネス的には、あんまりインパクトはなかったこれだが、歴史の転換を説明するのには便利。
Railsのアーキテクチャは、エンタープライズのアーキテクチャパターンを程よい感じに取りこんでいる。
Perlパクりから始まって、Javaのクラスパクッて、Railsも速攻パクった。
最近は、所謂関数系言語と分類されるパラダイムも最速でパクてる。
そんな感じで、RailsからパクッたフルスタックのMVCフレームワークが一気に広まる。
そしてこれらのフレームワークは、金魚のフンSierにとって銀の銃弾だったStrutsを、
鼻で笑えるもので、Strutsでドヤ顔してた彼らは、この時点からPHPerからも見下される存在になった。
エース開発リーダーさん。そろそろDIコンテナあたりは使えるようになった?
Javaの方が良いとか言うなら、せめてそのぐらいはフォローしたら良いんじゃないですかね。。。
ただ、これは結果から見たもので、本来の本当の流れは、ネットの普及にある。
BtoCの市場が巨大化し、パイが増えて、それだけ技術者も集まった。
優秀な人材がプロダクトを作れば、優秀なプロダクトが生まれる確率もあがる。
みんなで作れば凄いものが作れるという勘違いは、決してしないように。
これはアーキテクチャにも影響して、その方向性を決めるようになった。
SOAPは、優れていなかったわけじゃない。ただ単に閉じた世界すぎた。
RESTは、実用的なアーキテクチャなんてほとんど無い。ただみんなが適当にやってたのに名前付けただけだ。
だいたい今はそんな感じで
今後はアーキテクチャはBtoCが主導するだろう。
そこの社内SEさん。技術キーワードが凄いからって発注しちゃだめよ。
まともなもんが返ってくると期待しちゃいけない。
BtoBは、この鈍行の間、何もしなかったわけじゃない。
たった数パーセントの稼働率を上げるために、何十倍の時間や金をかけてきた。
彼らは、そういった品質に命をかけてきた。
ますだでリリース報告すると、いいことあるかもよと聞いて、やってきました。
あまけんβ- アマゾン商品の検索をいい感じに使えるサービスを開発中。
「あまけん」はアマゾン商品の検索をいい感じにできるサービスを目標に開発しました。
「あまけん」ではアマゾン商品の検索後、レビュー数などによる並び替えや、星の数でのフィルタリング、画像や簡易表示など表示モードの切り替えが可能です。
また検索後の並び替えなどでは、非常に高速に動作するため、商品の比較などに向いていると思います。
ますだ報告デフォルト(?)の、開発の流れや開発環境を簡単に。
検索後、お好みの星の数でフィルタリングした上で、レビュー数や売上ランキング順で並び替えて商品を比較するのがお勧めです。特にレビュー数は本家サイトにない指標なので、おすすめです。
表示モードは情報量と一覧性のバランスのいい”簡易”モードがお勧めです。お好みに合わせて、情報量の多い”詳細”モードや一覧性が高い”画像モードの使い分けも可能です。
アマゾン内で検索する前や後に併用して、あまけんの高速性を活かして、商品比較用にといった活用もおすすめです。
先日「飲み会版ソーシャルランチをつくってみた」を書いた者です。
上の記事では、僕がつくった「飲活」というサービスの説明が大半で、どうやってつくったのかとか説明が少なかったので、今回はそれについて書いてみようかと思います。
僕は「「飲活」」を作るまでも、iPhoneアプリを開発したり、webサービスのメンテナンスをしたりとプログラミングをしておりました。
しかし僕も何度かwebサービスの立ち上げを挫折しております。4回くらいかな。
最初はxoopsを使って、ツイッターで登録企業の広告をつぶやいたらポイントをもらえるサービスでした。
なんとxamppで門前払いされました。ローカル環境すらつくれませんでした。「くそ初心者は時間を無駄にするだけだから辞めろ」と言われた気分でした。
xamppだけに2日くらい朝まで格闘してしまい本当に時間を無駄にしました。当時はapacheの設定とかなんぞや状態ですからね。
次にやろうとしたのが、大学受験生向けのサイトで、受験生に教科ごとの講義をするのではなく、勉強のやり方を教えるよ!ってサイトです。
ほとんどhtmlでできそうなのですが、phpでメールを送ることができず挫折しました。
レンタルサーバーを借りたのですが、レンタルサーバーのphpの設定をしないといけないのを知らなかったり、やっと解決しても日本語化けに悩まされて止めた覚えがあります。これほど母国語が英語だったらどんなに楽かと思った時はありませんよ。プログラミングしてると今でもたまに思います。
次が、キックスターターのようでそうでないクラウドファンディングサービスをつくろうとしました。
ここでjavascriptと出会いました。いや、ちゃんと交際を始めたと言うべきか・・・。それまでjavascriptとすれ違っても虫を決め込んでいたのですが、いざ必要になって呼び止めてみると意外と良い奴でした。
しかし、ajaxにつまづいたり、サイト構成やディレクトリ構成、データベース構成や、デザインの調整などで複雑で面倒になり挫折してしまいました。
こうして書くと、僕がすごい諦めの早いやつで勉強もまともにしないやつみたいに思えますが、半分正解。諦めは悪いけど「ググればいける」という考えで勉強を怠っておりました。
だいたいプログラミング言語はどれも根本は似ているので、先述の3つ以外のプログラミング言語をやりたいと思ってる人でも参考になると思います。
また、以下の内容は、わけわからんけどwebサービスをつくりはじめる方を前提にしています。
まずは開発環境を整えましょう。
開発環境とは、自分の書いたプログラムをローカル(自分のパソコン)でのみ動作させる環境です。
つまり、自分がつくっているものを外部に見られることはありません。
です。
まずはこれらをインストールしてください。設定などの説明は割愛します。
僕はphpを使いました。
僕もそうでしたが、素人は当然プログラミングの全体像を想像できません。やりたいことを思いついても、どういうコードを書いたらいいかなんてすぐに想像できませんよね。
これも当然ですがその原因は、そもそもプログラムでなにができるか知らないからです。
なので、POSTやSESSION、配列などの基本的なものの存在を知りましょう。そしたら、「このページにはこの機能が必要だろう」というのが、"なんとなく"わかります。書き方はこの時点で別に覚えなくて大丈夫です。
例えば、オブジェクトを格納することが出来る「配列」という存在を覚えます。
この時点では、配列の作り方のコードとかは覚えなくていいですよ。「配列という存在を知る」ことが重要です。
基本的なことを学ぶときはネットではなく本を使う事を薦めます。
本は情報が体系的にまとめられていまうので、ネットよりも学びやすいです。
プログラミングは10年以上基本部分は変わっていませんので、「古いものを覚えちゃわない?」という無駄な心配はなくて大丈夫。
一方、発展的なことではネットで学びましょう、というかわからないことがあればネットで探しましょう。
どんなことを実現したいのかというゴールがないと必ず途方にくれます。
なので、まずはゴールを設定します。
例えば「「飲活」」なら、
などなど...。
その後に、各ページ毎に必要な機能と大まかなそのページのやることを決めます。
ログインページには、ユーザーが入力するフォームと送信ボタンがあって、なにも入力されずに送信ボタンが押されたらエラーメッセージを出そう。エラーがなくログインに成功したら、会員専用のエロビデオを見せよう。
とか。
例えば、しっかり考えず適当に、登録ユーザーのプロフィール画面を開発していて、ユーザー名、生年月日、出身大学を表示させるプログラムをつくったとします。
しかし、プロフィール画面が完成した後にメールアドレスも表示させないといけないことに気がついた場合、少しプログラムの変更が必要になります。
最初から、どのデータが必要なのかを決めていれば、こうした効率の悪さは回避できます。
実際は奇麗に開発できることは少ないですが、何も考えずに開発するよりは効率的です。
大まかな機能(ログイン)→具体的な機能(ログインページの機能)→具体的にログインページがやること→必要とするデータ
という流れでサイトの機能を決めることで、自分のやることが明確になりますし、勉強すべき内容も最小限に抑えられます。
ここで、どういうデザインにするのかを決めればもっと後で楽になります。
webサービスには必ず必須となるデータベースについて知る必要があります。
僕は、mysqlを使いました。
サーバーはさくらインターネットのレンタルサーバーを使ったので、さくらインターネットのデータベースを利用しました。
各ページで必要な機能とやることを決めたら、それを実現してくれる方法を本やネットで探します。
先述のとおり、必要な機能を決めていればそれを実現してくれるもののみを探せばいいので効率的になります。
見つけたら、あとはそれを使ってやりたいことをやるだけです。
具体的にはサンプルコードやAPI、フレームワーク(ライブラリ)を探すべきだと思います。
プログラミングに慣れるまではフレームワークを使うと上手く組み込めず、それが挫折の原因にもなりそうなので、主にサンプルコードを探せばいいと思います。
プログラミングってなんのためにあるかというと、人々の生活を楽にするためです。
人々を楽にするプログラミングで、わざわざ辛いやり方をするのは最悪です。
なので、どうぞ堂々と怠けてください。他人のつくったコードを使ってください。API、フレームワークを使ってください。
プログラムを書いたらデバッグしたり、ブラウザ(htpp://localhost)で見てやりたいことができているか確認してください。
特にこのサービスには特別なことや難しいことはやっておらず、正直phpの基本がある程度わかっていれば、このサービスの基本的部分は作れてしまいます。
デザインをつくりましょう。
僕は一から自分でデザインを考えたわけではなく、他の素敵なサイトを参考にさせていただきました。
また、サイトの見た目をつくるにはhtmlとcss、時にはjavascriptを使う必要があります。
オススメなのは、twitter社の提供するTwitter Bootstrapです。
http://twitter.github.io/bootstrap/index.html
ちなみに、「飲活」は、html、css、javascript(jQuery)を使っています。
つくったサイトをみんなに見てもらうためには、外部とネットワークのあるコンピュータにアップロードしなければなりませんし、ドメインもなければいけません。
コンピュータにはIPアドレスがあり、ネットワーク上の住所となっています。これにアクセスすると、「飲活」の住所とか「はてな」の住所とかあったりするわけです。これは数字でできており、これを人間が読みやすいものにしようというのがドメインです。
hatena.jpとかnomikatsu.comとかですね。これを取得しましょう!
自分で作ったり、VPSを使ったりすることもできますが、自分で管理をしなくていいという点で楽なので僕はレンタルしています。
僕は、さくらインターネットでレンタルしています。
僕のようにドメインの管理会社とサーバー会社が別だといろいろと設定をしなければなりません。
DNS(ドメインネームサーバ)というのがあり、「このドメインのあるサーバーはこれ、IPアドレスはこれ」と教えてくれるものです。
お名前ドットコムで取得したnomikatsu.comは、さくらインターネットのサーバにあるよと設定する必要があります。
実際には、さくらインターネットのネームサーバ情報を知り、お名前ドットコムでnomikatsu.comはこのネームサーバだよと設定してあげるのです。
これで、数分から数時間でnomikatsu.comにネットからアクセスすることが出来ました。
あとはサーバーにファイルをアップロードすれば、インターネットで自分のつくったサイトを見れます。
ファイルアップロードの仕方ですが、FTPクライアントを使います。
僕は、filezillaを使いました。
filezillaからホスト名やユーザー名などを設定してサーバーに接続します。
接続できたら、指定のディレクトリにファイルをアップロードすればOKです!
とにかく作り始めましょう。
僕は、本が書いてあるサンプルコードをそのまま勉強としてやるのはオススメしません。
だって、つまらないですもん。あれは、プログラムを書いていて基本がわからなくなったときに見返せばいいんです。
最初はまず作りたいものを決めて、PHPで何が出来るのかをざっくり勉強して、それを実現するのに必要なコードややり方を見つけて、実際に動くものをつくっていってください。
やりたいことをやらなきゃ飽きますし、本のサンプルコードよりも実際にwebサイトをつくった方が覚えます。
やったことがない人が勝手に難しいと思い込んでいるだけで、意外とやってみれば難しくありません。
簡単とまでは言えませんが、正直誰でもできます。
僕の場合は何度かプログラミングを挫折しましたが、こうして一つのものをつくることができるようになりましたし、iPhoneアプリなども会社では開発しています。
こんなやつでもできるので、諦めなければできます。
そんで、とても楽しいです。
本当につくりたいものがあるのなら、一度やってみる価値はありますよ。
明記してありますが、僕は初心者ではありません。初心者の方が勉強がてらサービスを作る一つのやり方というか流れを紹介したいと思って記事を書きました。
僕自身、なにもわからずプログラミングをはじめたときは、どう勉強したらいいかわからず辛い思いをしました。
素人がわけわからずプログラミングを始めると挫折しやすいと思いまして、僕が素人の時を振り返り、そして勉強してきた経験を使って、素人の方にサービスをつくっていく流れを書いたら素人の方も挫折しにくいかと思いました。
なので、僕は初心者ではありませんが経験者として素人がサービスをつくっていく方法を書きました。
また、飲活をつくった実際の流れと書きましたが、飲活をつくった流れを利用して、初心者がサービスをつくる流れを説明したかったんです。
emacsとの対比でvisual studio?
エディタの話してるんじゃないの?
個人的には、visual studioよりも、eclipse使うわwww
second lifeを卒業してはや3年。
やってる間よく聴いていたとか増田の経歴なんてどうでもいいな、中略!
最近ニコ動のキーワードでchouchouがランキング1位になってて「ん?」と思って見たらやっぱりあのchouchouだったー!
そして久しぶりに聴いてたら耳が幸せになったので!恥ずかしげもなくノリノリでオススメしちゃおうと思いましたまる
chouchouは音楽はもちろんPV、プロデュースとなんでも自分達でこなし、果てはJASRACも通さず著作権管理まで自分達でやっているユニットです。
仮想世界と言う国境のない世界で活動し、人種問わずの国際的評価を得ています。楽曲が海外の映画で採用されたこともあります。
インディーズながらハイセンスで完成度の高い作品を生み出し、口コミでじわりじわりと広まって知る人ぞ知る存在となっています。
ですが知名度はまだまだ低く、こんなもんじゃないと今回筆を取りました。
というわけでいきなり先ずは私をハイにさせている曲の紹介です
◆cloud 9
http://www.youtube.com/watch?v=hJLSHce3ugU
http://www.nicovideo.jp/watch/sm16824961
chouchouはいろんな曲調、アレンジ、表現に挑んでるユニットですが、これまたいいエレクトロ!
PVの素材もまた素敵で、フワフワと高速トリップ出来る感じが半端ないです。
iTunesでも買ったけどついついニコ動でPVごとループさせてしまう曲です。
続きましてはchouchouの原点と言うかスタンダードなイメージの曲です
◆coma
http://www.youtube.com/watch?v=X5NZYgCbpBk
http://www.nicovideo.jp/watch/sm2122474
ピアノベースの曲にウィスパーボイスで織り成す不思議な世界観。
PVに仮想世界を使ってその世界観を演出するのもこれぞ原点!と言った曲です。
そしてそんな原点からの変貌を告げた曲
◆neverland
http://www.youtube.com/watch?v=Jh1KtgFwhg0&feature
http://www.nicovideo.jp/watch/sm9485583
ファンの間で根強い人気を誇る評価の高い一曲です。
映像はchouchouではなくtadakumaと言う方が撮影、編集されたライブ映像です。
tadakumaさんはsecond life内でいろんなアーティストのライブ映像等を
撮影されてる方でchouchouとの絡みも多く、ライブ映像が流れたらtadakumaさんだと思ってください。
尚ニコ動のchouchouで度々表示される静止画は歌い手のjulietさんデザインのジャケ写です。
◆空知らぬ雨、空に知られぬ雪
http://www.youtube.com/watch?v=-v_MFka2UC0
http://www.nicovideo.jp/watch/sm16608928
常に新たな音を求めて止まないchouchou。
それ故に様々な音に取り組み、一曲一曲をその集大成といった形で聴くことが出来ます。
そんな変化の道中、優しい和の一曲です。
ピアノの旋律に心洗われるインストゥルメンタル曲
◆R.I.P
http://www.youtube.com/watch?v=D81Zj7hAtp0
http://www.nicovideo.jp/watch/sm9485336
そのピアノで仕上げたインストゥルメンタル曲もちょくちょく作られています
これがまたいい曲、素敵なBGMになる旋律が多くオススメです。
初の実写PVを採用!曲調も逆に珍しい普通のJ-POPを意識した一曲
◆anemone
http://www.youtube.com/watch?v=11TcH-abToU
http://www.nicovideo.jp/watch/sm12896656
ライブ会場の作成やらPVの作成やらジャケットのデザインやらと、
音楽以外もやたらと光るところのある2人です。
ニコ動でニコニコインディーズのアルバム企画「&」に参加!
http://www.youtube.com/watch?v=HY3K1pedtmM
http://www.nicovideo.jp/watch/sm14044276
果たしてchouchouはニコニコインディーズなのか?といったものはさておき、
企画のお陰もあってニコ動ではこの曲が1番人気となりました。
突如現れたハイセンスな一曲(PV含む)に度肝を抜かれた人が多かったようです。
もともとニコ動でも投稿してましたが、なかなか公に陽の目を見ることはありませんでした。
曲調としてはダークでクールな一曲。これまでとはまた一味違うchouchouを見ることができました。
◆LUNARIA
http://www.youtube.com/watch?v=jW4txpRbDKs
http://www.nicovideo.jp/watch/sm20694938
つい先日発表されたばかり、4/25日リリースの新曲です。
新しすぎてまだiTunesには並んでませんが、PVと一緒に楽しんでください。
連続リリースと言うことで来週には新たな曲がニコ生及びUstreamで公開されるようです。
ニコ生 http://com.nicovideo.jp/community/co233568
Ustream http://www.ustream.tv/channel/channel-chouchou
様々なスタイルの曲を紹介するという趣旨から曲紹介以上となりますが、省いた名曲数しれず。
TRICKERとかSign 0とかAve Mariaとかetc…
気に入ったらぜひいろいろ聞いてみてください。
原点から見て多様に変化しつつセンスにさらに磨きをかけていたことに驚き、衝動的に増田りました。
知らない人が圧倒的大多数でしょう。
それじゃもったいない!と思いました。
もっとたくさんの人にこの音楽を知って欲しく書きなぐりました。
◆Mement Mori
http://www.youtube.com/watch?v=lLhwstdPbNQ
http://www.nicovideo.jp/watch/sm10951724
chouchouの真骨頂、自分たちの世界観を仮想世界で表現したPVです。
流石に大掛かりなので仲間の手も借りて作りますが、ベースとなるデザインは歌い手のjulietさんが手掛けます。
32歳、営業職です。
プログラムとかなんもわからんちんなのですが、アプリを作りたいと思いたちアプリを
作ってみました。
とりあえず、アプリのランキングを見ていると、エロ系がやっぱり強いと思って、エロは正義!の名の下に
簡単にアプリを作るために、まずは簡単に作れるフレームワークを探す所から始まります。
フレームワークってなんですか?
それはね、なんだかわからないけど、簡単につくれるようになるものなんですよ。
詳しくは、
外人「システムを作るときに、よく利用する機能とか、構造とか、予めあると便利だろ?
俺が作っといてやったよHAHAHAHAHA」
っていう感じのものだそうです。
プログラミングなんてわからんちんだけど、HTMLくらいは作れるよ!
そんなあなたにPhoneGap(http://phonegap.com/)ということで、
とりあえずPhoneGapを使って見ることに。
でも、実際使ってサンプルを作ったりしてみると、動くは動くんだけど、
色々やろうとすると、Web上にあるドキュメントが古いのか、PhoneGapが最近になって
突如バージョンがあがったせいか、書いてる通りにやってみてもできない。
とりあえずiPhone Developer登録は既に完了していたので、Xcodeをつかってやるぜ!
俺は赤の扉を選ぶぜ!と思ったがはてさてどうすりゃいいのか。
HTMLをプロジェクトに追加するのはドラッグ&ドロップすれば完了だ。
その際にダイアログが出てくるので、"Create folder references for any added folders" を選択しておくと
元々のフォルダ構造とかが失われずそのまま追加できるのでいいぞ。
ほんでもって、UIViewControllerというのを作成する。
IBOutlet で UIWebView を利用するためのオブジェクト変数を用意しておいて、InterfaceBuilderから接続をする。
Files's Owner とかを右クリックして出てきた変数名と画面上についかしたUIWebViewをマウスでつなぎあわせれば
接続できるぞ。なんて簡単なんだ。
一番最初に行われる初期化の処理は viewDidLoad にでも書いておけばいいらしいのでここに書く。
UIWebViewはURLの書式になっていないと開けないようなので、それを調べることから始まる。
アプリ内に追加したリソースファイルは、アプリのデータに内皮されるらしい。
アプリが展開されるフォルダというのは、デバイスにより様々なのだが、そこから内皮されている
ファイルを取得するための処理というのがあるのでそれを利用する。
NSString *html_path = [[NSBundle mainBundle] pathForResource:@"index" ofType:@"html" inDirectory@"web"];
これでwebフォルダ内にあるindex.htmlファイルの絶対パスを教えてくれるというわけだ。
あとはこれを読みこませればOK。
[web loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:html_path]]];
NSURL というのがURL書式を記述するためのオブジェクトだと思っていただきたい。
ここではローカルファイルのパスを拾うため、 fileURLWithPath とするのがポイントだ。
file://nantarakantara/index.html みたいな書式になるんでしょうね。
なんだか色々理由はあるみたいなんですが、そうですかだめですか。
善は急げで、AndroidSDKとEclipseというものをダウンロード。
昔は色々設定が必要だったが、いまは開けば即使えるようになったらしい。便利便利。
こっちの場合も同じようなやつがあるんでしょう、ほらったWebViewこれを使えばいいらしい。
XCodeのときは、いかにもアプリの画面を作れば完成って感じだったけど、Androidの場合は
Layoutファイルというのを使わないといけないみたい。なんかこれはHTMLみたいな記法だな。。
どうなってんだかよくわかんないですけど、Layoutを作成して、WebViewを配置、
Androidの場合は、assetフォルダというのをつくってあげて、そこにHTMLファイルを
置けばいいらしいですよ。なるほどね。
WebViewでの開き方は、assetフォルダを直接開けばいいだけらしい。いえーい!
layoutに配置したWebViewをオブジェクト変数に呼び出して、、、
webView.loadUrl("file:///android_asset/web/index.html");
ひらいたーおっけーーーーーーー。
だけども、リンクを開くとブラウザが開いてしまうなあ。どうすればいいのこれは。
調べてみるとこうすればいいらしい。
webView.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
return false;
}
});
これで無事、WebView内で画面遷移するようになりました。
やっほー
そんで、なんとかつくりあげて、申請・・・
とかないんですね、公開したら公開されましたw
ていう感じで始めてつくってみたんで
よかったらダウンロードしてみて下さい!
https://play.google.com/store/apps/details?id=ff.appgroup.app001_hrenai
横だけど、VisualStudioに関しては、クソなものも多いMS製品の中でも屈指の神ツールだと思う。
VSに比べたらEclipseなんて使ってらんないし、xcodeもかなり微妙。
VisualStudio for macとかfor linuxとか出てくんないかなーといつも思う(VM入れろってのは分かるが)。
http://d.hatena.ne.jp/nowokay/20130322#1363969460
以下の記述のまとめ:
お前の言っているソフトウェア工学は今のソフトウェア工学じゃねえよ.
端的に言うとそんだけ.
で,本題.
まず,書いてる内容が古すぎて救いがたい.iPS細胞の研究がノーベル賞取った現状で,「実験材料に受精卵を使う万能細胞の研究なんて許されませんよ!」と主張されても,その何だ,困る,とかそういうの.
1999年、なにがあったかというと、XPエクストリーム・プログラミング入門という本が発行されたのです。リンク先は2版ですが、日本語版でも初版は2000年12月になっています。
で,何?2000年以降ソフトウェア工学が何も進んでないと主張したいの?
って最初に書いてあんのに,そこから崩れて何も出てきてないって主張はどっから出てきたの?自分が知らないことが分かってるのにドヤ顔で提言とか大丈夫か?
しかし、結局統一設計手法は完成せず、UMLだけが残りました。実際に使われているのはその一部です。CORBAも普及せず、WebプロトコルにあわせてSOAPが出てきたものの、結局単純なRESTが定着しました。XMLはいまは毛嫌いされています。大成功したはずのオブジェクト指向も、Webアプリではうまく適用できませんでした。
だから何だ.提案されても使いにくかったり,状況自体が変化したら無用になるに決まってる.まさか「ソフトウェア工学分野で提案された手法はどれだけ開発環境が変わっても生き延びていなければならない」とかいう寝言じみた主張でもしたいのか?言語に流行廃りがあるように,手法にも流行廃りはあるに決まってるだろ.
あとSOAPとXMLに関しては,その衰退過程自体がよくある話すぎて話にならん.一番最初に厳格な重量級の様式が定められて,それをベースに運用レベルを考慮した軽量級の様式が定義されて駆動するってのはよくある話.言い換えると,学術から出てきた理論的に正しい手法が,産業界で必要なところだけつまみ食いされる形で運用されるとか,サンプルは死ぬほどそこらじゅうに転がってねえか?
ああ,CORBAはまあ,うん,そのなんだ.アレはフォローできない.
実際のところ,UMLが残っただけで十分じゃねえの?最初に提案された時の理念さえブレてなければ,つまみ食いしたモノがはやってても提案者的には本望だろ.
今はCMMIだ.CMMは2000年にCMMIに統合されてる.今更XPの本出してくるところといい,真面目に2000年より前で知識止まってんだな.
はぁ?動的型付言語が普及したらなんでソフトウェア工学と離れんのよ?静的型付言語で使えて,動的型付で使えなくなる研究分野なんぞ,完全にソースコードに寄り添った研究だけじゃねえか.
「この手法はC言語を対象としている」って書いてある研究は他の全ての言語には一切適用できないと主張してんのと一緒だ.はじめてのCあたりからやり直せ.
ここで、やはりCMMの失敗がソフトウェア工学にとっての痛手だったように見えます。
もちろん、プロセスを規定することが難しいということは当時からも言われていました。それであるから、CMMはプロセスそのものを規定するのではなく、プロセスの規定方法を規定するというメタプロセスになっていたのです。
そして、すべての組織で同じプロセスを採用することはできないということから、5段階のレベルを設けました。また、プロセスは変化し続けなければいけないということから、CMM成熟度レベル5では「最適化している」という成熟度になっていました。
これはなかなかいいかもしれないということで、期待は大きかったと思います。
でも、とにかく運用が大変だとか、CMM成熟度レベル5でも品質がいいわけじゃないとか、そういう話がきこえてくるようになりました。
まず失敗を定義しろ.で,失敗したってんなら,CMMIで未だに新たな認定がなされてる(http://cmmiinstitute.com/assets/presentations/2012SepCMMI.pdf)理由を説明しろ.
で,運用が大変?当たり前だ.品質確保すんのに運用が楽とかあり得んだろ.従業員に好きにやらせてもアウトプットが高品質ならそもそもCMMIなんぞ必要無い.順序が逆だ.「CMM成熟度レベル5でも品質がいいわけじゃない」ってのも当然だ.アレは組織の成熟度を評価する指標であって,中で働く人間の能力を評価してるわけじゃない.というか流動すんのに評価なんぞできねえけど.
そもそも,CMMIレベル5ってのはおおむね高品質なものが出てくるだけで,人間が関わっている以上ある程度のばらつきは存在する.つーかさー,CMMIレベル5なら必ず高品質のモノが出てくるとか思ってんの?まさかまだ銀の弾丸の存在を信じてんの?「ISO9001に準拠してればリコールなんて発生しない!」と思い込むくらい残念すぎねえか,その思考回路.
ああ,「CMMI」じゃなくて本気で「CMM」の話をしてるんなら申し訳ない.もう無いんだから,CMMの話を最近全く聞かないのは当然で,勘違いしても仕方ない.悪いもしくは古いのはアンタの頭だ.
もともとソフトウェア工学に対しては「がっこーで現場しらない人が研究してる手法なんて使えない」のような声があったのですが、XPやアジャイルによって「現場から生まれた手法のほうが使えるよねー」というのが決定的になりました。
前半は正しい.ソフトウェア工学の最初期からずっとその手の意見はあって,未だに言われてる.が,後半は話にならん.
真面目に聞くんだけど,アジャイルソフトウェア開発宣言に名前が入ってる17人のうち,何人知ってる?何人が開発寄りで,何人が研究寄りか分かる?まさかKent Beck1人を見て「アジャイルは現場から!」とか寝言垂れて無いよな?そもそもKent Beckはコンピュータサイエンスで博士号持ってるし,開発寄りと主張していいのかどうかすら微妙なんだけど.
あとアジャイルも突発的に出てきたわけじゃなくて,プロトタイピングとかあの辺(とそれ以前)からの流れがあると思うんだけどなあ.
ソフトウェア工学が何を失敗しているかというと、その学問自体の認知度が低すぎることです。
ソフトウェア工学がどのような問題を扱う学問かが知られていない。どのような問題を扱う学問か知られていないので、その問題に直面している人がソフトウェア工学の成果を積極的には利用できない。
問題に直面してる人がソフトウェア工学の成果を積極的に利用できないうんぬんについては,最近の国際会議でもその辺を扱った研究が出てきてたりする.ICSE2012のDistingished paperのうちの1本がそんなん.Eclipseの検索ツール使わずに,テキストエディタにコピペしてCtrl+F使ってる人の話とか出てきてた覚えが.
ただ,ソフトウェア工学の認知度なんぞどうでもいいと思うんだけどなあ,別に.そっから出てきたモノが使われさえしてりゃあ.ソフトウェア工学研究の成果が,それと分からずに使われてるんならそれ以上に望むべきモノは無いだろうに.「これがソフトウェア工学様の研究成果でござーい」と大上段に振りかぶって,「ありがたや」の言葉と共に使われることを望んでる研究者なんぞいねえだろ.
就職活動で「半年でプログラムは覚えれるし専門は必要ない」のようなことを言われるという話があります。たしかにアルゴリズムなど実装技術の研究をしていた人をSIの開発現場で生かすのは難しいと思います。でも、ソフトウェア工学の専門知識は、半年で覚えれるものではないし、SIでの開発現場に必要になるはずです。
うん,そうですね.だがそれを学術側を知ろうともしてない人間が言うな.
ソフトウェア開発がある限り、ソフトウェア工学は必要なので、XP・アジャイルを織り込んで再構築して、認知度を高めていってほしいなーと思います。再構築とかは他力本願になってしまうけど。
ソフトウェア工学を再構築しよう,という動きとしては http://semat.org/ あたりがあるのでそっち参照.
あとさー,そもそも論として,ソフトウェア工学の研究内容を「現場」と「学術」に2分することが不可能だって分かってる?工学ってそういうもんだろ?その2分は「工学」と「理学」というレベルでは可能なのであって,既に工学にカテゴライズされてるソフトウェア工学を分けるのは不可能だ.それくらいは語の定義レベルの話なんで,分かっててくれ,頼む.
まあ暇ならトップ会議であるところのICSEのプログラム(https://files.ifi.uzh.ch/icseweb/fileadmin/downloads/ICSE2012_conference_program.pdf)でも眺めてみて,ソフトウェア工学の定義について悩んでみるのもいいかと思います.
実際のところトピックは割と流動的.最近はOSS周りが流行.gitのおかげで開発者の行動とか取りやすくなってる関係もあって.
つまりさー,なんでか知らんけど,この人の頭ん中では「ソフトウェア工学は静的型付言語を利用したウォーターフォール型開発でしか使えない」てことになってんだよな.
秘密のブックマーク、略して「秘ブ」というソーシャルブックマークサービスを作ってみました。
今は風俗嬢やってるんですが、(悲しいことに)時間があったっていうのと、
秘ブ.jp
(アダルト専用のソーシャルブックマークサービス)
http://anond.hatelabo.jp/20101203150748
・Rails3 と jQuery で、真面目にオシャレなエロサイトをつくってみました
私は、早く自立できるようにと高専を出て、田舎から東京に移り住み、事務として働いていた。
この時点ではエクセルとかワードとかは使える、マクロもちょっと組める程度のレベル。
自立したかったのは父親が生活費をパチンコとか女に溶かすような輩だったため。
私が自立したあと、両親は無事離婚。激務で薄給、母親と離れて暮らして寂しくても頑張っていた。
鬱病はつらい。何が辛いって、本人も辛いんだろうけど、荒んだ部屋の中で横になって息を潜めている母親の姿を見るのがきつい。
いつでも母親の側に駆けつけることができるように、お金と時間に余裕が欲しかった。
でもねー、全く稼げないwww 笑っちゃうくらい。
大衆店にいるんだけど、女の子もお店も多くて、私より若くて可愛い子がわんさかいる。
お客さんがつかないと収入0なんだよね。
店長やお店のお姉さんがマットや椅子を覚えな、ってアドバイスはくれるんだけど、
その頃教えてくれる先生がたまたまいなかった。(今は別の店に修行にいったからバッチリできるけど)
仕方ないからようつべとか動画サイトでソープのお仕事系の作品を見まくったわけ。
(余談ですがマ◯ティ夫人ってお店のマット技一覧のページはすごいよ!)
お客さんつかないから時間がすんごいあって、待機室でずーっと見てた。
で、マットの動画とか、ボディ洗いの動画探すんだけど、なかなか見つからない。
で、そんなことをしてるうちに思ったんだけど、エロサイトやエロ動画、
果てはマニアックな趣味の情報を共有できるサイトがあったら便利じゃないかな?と。
数少なく接客したお客さんで、わざわざブーツ持参で、顔面を踏みつけてくれ、って人がいたんだけど、
でも日本中を探したら、同じ趣味や、近い嗜好の人がいるんじゃないかな?って。
時間は私自身が病むほどあるし、そんなわけで制作に取り組みました、秘密のソーシャルブックマーク、
略して「秘ブ」(「秘部」とかけてあったり)
吉原の泡姫たちは、タクシー通勤する人が多いんだけど、私は三ノ輪の駅から歩いて通ってた。
元彼に借りたプログラムの本などどっさり持って。めっちゃ重いw
待機室でひたすら落ち込みながら金勘定するより、母親の心配をするより、何か生産的なことを考えていたかったんだよね。
この一年でかなり勉強して、ようやく公開できるレベルに達したかなとおもいます。
みんなが来てくれるかはわかんないけど、まあ来てほしいなと思う。
さて、湿っぽい話はここらへんにして、どうやって作っていったかを話しましょう。
・Semantic Scuttle
http://semanticscuttle.sourceforge.net/
・HeartRails Capture
http://capture.heartrails.com/
・Twitter Bootstrap
http://twitter.github.com/bootstrap/
・Bootswatch
サイトの構成なんかも書こうと思ったけど、セキュリティ的に良くないって聞いたし、
はてな民のみなさんに突っつかれるのが怖いので少しだけ(^_^;)
まあ違う意味で突っつかれるのは慣れてるんだけどw
簡単に書いとくと、HTML、CSS、PHP、MySql、javascriptくらい…なのかな?
Semantic Scuttleが裏でやってることはあまり詳しく分からないです。
どうやらまずはHTMLとCSSをやれということらしいので、そこから始めた。
使ったのはこれ。
メモ帳で簡単なWebページを作りながらだと結構スッと頭に入ってくる。
逆に言うと、読んでるだけだと全然あとで思い出せない。
「Ctrl+U」でページのソースを一発で見れることを知り、参考のために色んなサイトのソースを見まくった。
全部頭に入ったわけじゃないけど、ここまでで最低限、検索ワードが思いつくぐらいにはなる。
ここまでで大体一ヶ月くらい。
もちろんHTMLとCSSだけではてブ的なものが作れるわけはない。
っていうかほぼ路頭に迷った感じで「はてブ的なものを作る方法」をググりまくった。
結果「Semantic Scuttle」なるものでそれに近いサービスを作れることが判明。
「Semantic Scuttle」を調べてみると、どうやらPHPとMySQLで動いているらしい。
でもダウンロードしてみて中身を覗いてみても何が何やらさっぱり。
とりあえず2つ一緒に覚えられそうだと思って元彼にこの本を借りてきた。
XAMPPのインストールをして、PHP書いて、MySQLと接続して…
ふむふむ、書いてあるとおりに作ったのは作ったけど、あんまりわからん。というのが感想。
ちなみにPHPを書き始めるのにあたって、eclipseという統合開発環境(意味がいまいちわかってないけど)を紹介され、インストール。
コード書きやすすぎ、色分け便利すぎワロタwwwと思ったのを覚えている。
設定はめんどくさかったけどね。
eclipseについて詳しくは→http://www.javadrive.jp/eclipse3/
しかたない、まずはPHPだけでも頑張るかと思い、次に借りたのがこの本。
ひと通りサーッと読んで大体どんなことが書いてあるのかを頭に入れてから、
必要そうなところを詳しく読んで作ってみてっていうやり方をした。
MySQLのことにも触れてあるので、そっちの復習もできた。
クラスについても薄らぼんやりわかってきて、動くものを作れるレベルには上達。
この辺りは、サボったり迷ったり環境整えたりで2ヶ月くらいかかったかな。
さて、これでいけるだろうと意気込んで長らく保存しておいたSemantic Scuttleのソースコードを見る。
…わからん。
挫折。。
どうすればいいのってことで、元彼にヘルプ。
「MVCってのがあって、モデルとビューとコントロールってのが多分…」
「とりあえずindex.phpから見て行ったらいいんじゃないかな?」
ふーん。今でもMVCとかってのはほとんど理解してないけど、最後のは役に立った。
ファイル名やら関数名でプロジェクト内を検索しまくって、大体の構造を把握。
と簡単に書いてみたものの、この作業には2ヶ月ほど費やした。
構造はなんとなくわかったものの、実際触ってみると動かなくなるケースが多数。
ひと通りの勉強は一応したけど、実地のカスタマイズは非常に難しい。
他に使ってる人おらんのかなと思い探してみるとこんなものが。
・ソーシャルブックマークソフトScuttleの強化版Semantic Scuttleを導入してみる
http://tukaikta.blog135.fc2.com/blog-entry-70.html
ありがたくカスタマイズに利用させてもらう。ホント感謝しまくりです。
でも上のURLに書いてあること以外にもカスタマイズしたいところがあった。
1.ブクマ数を記録したい
1はだいぶ考えたんだけど、DBをちょっといじくって、フィールドを追加してそこに記録することにした。
2はPHPとDBをあれこれして、ド汚いコードながらも根性で実装。
3で再びの挫折。なぜならjavascriptを使わなければならないことが判明したから。
まだ勉強しなきゃいけないのか…とは思ったが、初心を思い出し、頑張ることを決意。
おらあああ!なんかjavascriptの本貸せやぁああああ!と丁寧に元彼に頼んでみたところこの本が手に入った。
JavaScript 第5版
うん、馬鹿じゃないの。こんなん理解できないよ。こっちは時間がないんだよ!
もう一冊なんか初心者向けを貸せ!
マンガでわかるJavaScript
読了したあと、ネットと前者の書籍で必要なところだけ調べることにした。
で、調べていったところ、4については
scriptタグでtypeを"text/javascript"にしてもPHPを読み込めるということがわかり、PHPで強引に表示させることにした。
3はもともとSemantic Scuttleにあったブックマークレットをちょこっと編集して解決。
これで大体1ヶ月半くらい。
一応CSSは勉強したけど、美術的センスのない事どこかのはいだしょうこお姉さんレベル。
でもデフォルトのデザインがダサいってことくらいは、かろうじてわかる。
あらん限りの人脈を使ってデザイナーさんを探したところ、やっとのことで0人見つかった。
どうも調べたところ、TwitterのBootStrapってのがいいらしい。
CSSを見てみるが、長い! 「Bootstrap 使い方」でググる。
よくわからないながらも↓とか見ながら手探りでコードを書いていく。
Twitter Bootstrapの使い方
http://greenapple-room.com/conc/user/TwitterBootstrap/bootstrap.html
これでとりあえず基本的なことがひと通りわかり、ちょっとだけよくなった。
だいぶ前にやったCSSを思い出すのが大変だった。
でもタイトル周りとかが全然ダサイまま。普通に自分で見てて萎えるので、さらに調べる。
見つかったのが↓
Bootswatch
あ、なんかこれいいなと思って「Slate」っていうテーマをいじくりいじくり、色々試しながらタイトル周りとかを整理。
まあこんな感じで大体できましたー!
全部で約8ヶ月…長かった…。憑かれたぜパトラッシュ…
・ググる ググる ググる!とりあえずなんでもググってみることが一番大事だとわかった。
誰かが同じようなことをしてることも多々あるし、少なくともヒントくらいは見つけられる。
・助けてくれる人がいるとかなり楽
ググっても出てこない情報は厳然としてある。そういう時は、経験者にアドバイスをいただく。
Yahoo知恵袋でもいいし、知人でもなんでも。ネットの優しい人達に感謝するようになった。
お店の掲示板では叩かれっぱなしだけどw
・プログラマーすごい
今まで何気なく見てたホームページだけど、膨大な技術の結晶なんだなと思った。
その端っこに触れただけの私のようなものでもそう感じるんだから、それはそれは深遠な世界なのでしょう。
せっかく作ったので、使ってやって下さい。
詳しくは↓をご覧あれ。
http://hibu.jp/bookmarkbutton.php
このサービスは一応「秘密の」もんなので、普段使ってるSNSのユーザー名とか使わないほうがいいんではないかと思います。
ブラウザに直接入力でも簡単にいけるようにドメインはまんま「hibu.jp」にしておいたので、
ブラウザにブクマするのもはばかられる方はダイレクトに飛んできて下さい。
スマホ版作りたいなぁ…
ちなみに、勉強したおかげか今現在はそこそこ本職のほうで稼げてはいます。
もし万が一このサイトが成功したりしたら風俗あがることも考えられるのかなぁ…
でも吉原にも遊びに来てくれると嬉しいな。
怖いところじゃないから、気軽にね。
あけおめ!今年は巳年。へび。へびと言えばPython。そう今年は全てのwebエンジニアがPythonを勉強する最高の環境が整った年なのです。
必要です!必要だと思います。もはやPythonはwebエンジニアにとって必修言語となりつつあると思います。Linuxの多くの箇所でシステム言語として用いられ、可読性の高さから多くの技術系書籍のサンプルコードとして用いられ、科学技術系分野におけるエコシステムの充実っぷりはますます磨きがかかっており、様々なライブラリがどんどん出てくる現状を「Pythonわからないから自分には関係無い」と遠巻きに眺めるのはもったいないです。
あなたが既に他の言語に慣れ親しんでいるなら、特にRubyなどに精通していれば「1週間」で基本的な読み書きは出来るようになるでしょう。そのくらいPythonは敷居の低い言語です。またweb上のチュートリアルドキュメントが大変に充実していますので(もちろん和訳済み!)費用0円で勉強開始できるお手軽言語でもあります。
これは大変に悩ましい問題で、自信を持ってお薦めできるバージョンが無いのが残念な現状です。2系と3系は特に文字コード周りを中心に言語体系にそれなりの差があり、日本語を扱うエンジニアにとっては悩ましい問題です。結論としては「どちらも読み書きできる」ようにした上で「3系で書く」ですかね。2と3の違いを理解しておかないと必ずどこかで躓きます。特にweb上の情報はまだほとんどが2系ですが、ぱっと見て2と3のどちらのバージョンで書かれた情報なのかを判断できないと多くのweb上の情報を利用できずにもったいないです。
先述しましたが和訳済みのチュートリアルが充実しているのがPythonの特徴でもありますので、まずは目を通す事をお勧めします。
ぜひ超充実したドキュメント群を覗いてみてください。「チュートリアル」を読めばだいたいの言語仕様がつかめるはずです。「ライブラリリファレンス」はあなたの最高の辞書となるでしょう。
その上で、やっぱり書籍で勉強したいということでしたら以下の本がお薦めです。
・プログラミング自体が初めての人向け
・他言語を既に知っている人向け
みんなのPython 第3版(柴田 淳) ・・・2版と3版で大きく内容が異なります 2版はPython2系、3版はPython3系を中心に解説
・進んだトピックを扱う中級者以上向け
pythonはインデントの存在があるので無機能エディタで大規模なコードを書くのは案外骨が折れます。贅沢系IDEの代表格はPyCharm(有料$99)でMac,Windows,Linuxの3プラットフォームに対応しており、一つのアカウントでいくつものマシンにインストールできます(同時に使う事はできない)。30日間の無料トライアルもありますしトライアル期間が過ぎても一回あたり(たしか)5分ぐらいなら継続して使えます。無料IDEだとEclipseプラグイン、Netbeansあたりでしょうか。Netbeansは公式開発は既に終了しておりあまり安定していません。
大規模な開発ならDjangoが第一候補。歴史が長いフルスタックなフレームワークですがまだ正式版がpython3系に対応していない。最近勢いがあるPyramidは3系に対応済み。各webフレームワークについては各開発者同士が「筋が悪い」「Pythonとしておかしい」「トレンドから3年は遅れてる」などとガチンコで思いの丈をぶつけ合っている以下の記事も参考にしてください。http://www.atmarkit.co.jp/news/201209/24/pycon.html
とりあえず最低でもDjangoとPyramidは両方使ってみてから自分にあった方を選択するといいと思います。
・Numpy/Scipy
科学技術系の人が好んでpythonを使う理由の一つがNumpy。数値行列計算を内部でCを使って計算するために非常に高速。インターフェイスは書きやすいpythonだけども実行速度はCネイティブ並みというとてもありがたいライブラリです。現在のPythonの盛り上がりに間違いなく大きく影響しているライブラリ。
・nltk
言語処理で使われるライブラリ。英語がベースとなってますが工夫すれば日本語でも全然使えます。参考文献 http://nltk.googlecode.com/svn/trunk/doc/book-jp/ch12.html
・multiprocessing
並列処理ライブラリ。CPUのマルチコアを全て使い切って無駄無く高速に処理を行いたい時に重宝します。個人的に大好きなライブラリ。頑張ればちょっとした分散並列システムも作れます。このライブラリのお陰で自宅にある10台*(擬似)8コアでお手軽python並列処理クラスタを30分ぐらいで作る事ができました。
(記事が長すぎたので前編・中編・後編に分けました)
僕ももう、リストラされそうなとあるおっさんなんですが、先日Webサービスを公開しました。
きっかけになったのはこの記事です。
http://anond.hatelabo.jp/20101203150748
こんな事できたら良いなぁと思っていると、他にもやっている方たちがいました。
http://matome.naver.jp/odai/2131952812556433001
http://anond.hatelabo.jp/20120318122617
Rails3 と jQuery で、真面目にオシャレなエロサイトをつくってみました - h300
http://d.hatena.ne.jp/inouetakuya/20120331/1333192327
http://anond.hatelabo.jp/20120914214121
http://blog.ropross.net/archives/99
これらを読んで自分もやってみたくなり、
先日の家入さんの折れずに挑戦を続ける姿を見てモチベーションも高まり、
7月21日~8月19日の30日でWebサービスを作りました。
最後の一週間はお盆休みでしたが、それ以外は平日は仕事をしながら土日をフルに使っています。
と言っても、いきなり高度な事をするのは大変なので、
本当に自分が作りたいサイトをやる前に、一度シンプルなサイトを作ってみる、という所までです。
やってみて改めて分かったのは、「自分でWEBサービスを作りたいと思っている人へ」の中の人はかなりがんばったんだなぁ、と。
かなりの熱意とモチベーションをもって、効率良くやらないと、一から勉強してあの短期間であのサイトは作れません。
プロ顔負けの技術とおもしろいアイデア、情熱をもって短期間でそれをやってしまった中の人は凄いです。
だから、Webサービスに夢を見る人(僕)も、Web業界の人も、あとHな人もブクマするのでしょう。(賞賛)
それでは、一般人が一般的ながんばりで確実にやれるだろう手堅いラインをお届けします。
偏差値40の僕が最低限ここまで出来たので、きっとあなたならもっと出来るはず。
ステップ7まではサクサク進めて、分からなくてもどんどん次に行きましょう。
今回ぼくが作ったサイトはこちら
■ステップ0:準備
・パソコンを用意
・ブラウザはChrome,IE,Firefox,Safariあたりをインストールしておく。Chrome便利。
・作りたいサイトのアイデアとデザインのイメージ、ドメイン名(○○○.comとか)のイメージ。
・作る理由とやる気
・はてブ便利、Web業界の皆さんの空気感を知るため、なるべくPCかスマホでチェック。
ブラウザを右クリックして「ソースを表示」すると出てくるアレです。
Yahoo!とかのソースを見るとかなり長いけど、全部書くわけじゃないから大丈夫。
ネットで調べても良いけど、やっぱり基礎知識は本が良いと思います。
メモ帳で書いてブラウザで表示して、メモ帳で直してブラウザF5で更新して確認、
何となく分かってきたら、より具体的に理解するためにこの本を読みます。
PHPについて調べる。
初めはこの本が勉強になりました。
書いてある通りロカールサーバー(XAMPPかMAMP)を入れて、自分のマシンでPHPが動くようにします。
データベースの使い方も一緒に書いてあるので入門に最適です。
次はこれを読みます。
普通に読んでいくと中盤のフレームワークを作る所で挫折するはずなので、一旦そこまででOK。
パーフェクトPHP
PHPの他の選択肢としてRubyやPythonもあるみたいですが、学習コストがかかりそうなのと、そのままでは動かないサーバーがあったりで、
最先端のプログラマーになる必要はないので、レガシー&枯れたPHP一択です。
カッコつけずにモチベーションが持続するうちに勝負です。
VPS(専用サーバーを仮想的に分割して安くしたサーバー)が流行ってますが、
学習コストがかかるのと勉強する事が増えるので割りきって始めは普通のレンタルサーバーにします。
VPSを借りるとLinuxの知識やWebサーバー、メールサーバー、及びそれらの保守管理などの知識が必要になります。
レンタルサーバーならある程度マネージドで、作ったプログラムが動かない時の原因の切り分けもしやすいです。
おすすめは「さくらのレンタルサーバー」のスタンダードプランです。データベースの使えない「ライト」プランは止めましょう。
その他、ロリポップ、CORESERVERなどいろいろあるので最低限PHP,MySQLが使えるサーバーを選びます。
サーバーを契約したらアカウント情報を確認して、FTPでログインしてみましょう。
http://sourceforge.jp/projects/ffftp/
ログインできたら、ステップ1で練習したファイルをアップロードしてブラウザで表示してみたり、
ステップ2で作ったPHPファイルをアップロードしてブラウザで実行してみたりします。
慣れてきたらFileZilla FTP Clientが便利です。
Webサービスのしくみを理解するために、WordPressを借りたサーバーに入れてみます。
WordPressはPHPで出来たCMS(コンテンツ管理システム)で、ステップ1~3がどう組み合わさって動くのか理解できます。
ブログや会社案内のサイト程度は作れてしまうので触れておいて損はないです。
テーマをいじったり、プラグインで遊んでみると理解が深まります。
オススメはこの本。
プラグインのまとめはこの辺りが親切。
2011年版!絶対にインストールしたいWordPressプラグイン45個
http://vanilla-stone.com/blog/wordpress/2011-edition-45-wordpress-plugin-pieces-install-absolute/
TwitterやInstagramと連携するプラグイン入れたり、CRONで自動化したりすると楽しくなってきます。
ここまでで何となくWebサイトのしくみが理解できると思いますが、
自分の作りたいサイトを一から書いていくと思うと心が折れると思います。
そこで、CakePHP(ケーキピーエイチピー)というフレームワークを勉強します。
フレームワークというのはWebサイトの開発で必要になることが多い色んな機能をまとめてくれている枠組みソフトです。
PHPの文法で、フレームワークの書き方のルールに従うだけで、様々な便利機能を簡単に使用でき、
フレームワークは他にRubyのRuby on Rails、PHPだとSymfonyやYiiなどかなりの種類があります。
CakePHP 1.3によるWebアプリケーション開発―オープンソース徹底活用
あと、余裕があればこれも購入。
注意したいのは、現在CakePHPのバージョンは1.3系と2.0系がありますが、1.3を使うという事です。
2.0系は新しい機能が付いたりパフォーマンスが良くなったりしていますが、2012年9月現在、
バージョンアップが激しく、関連書籍は2~3冊程度、Webの検索でもヒットするのは1.3の情報が圧倒的に多いです。
MVCというデータ処理・表示処理・それらのコントロール処理を分離して記述するルールや、
ステップ2では踏み込んでいなかったクラスが出てきますので、慣れるまではかなりの心折設計です。
難しすぎて僕は理解できなかったので、ここで一旦CodeIgniterに浮気しました。
CodeIgniterはCakePHPと同じPHPで書かれたフレームワークで、インド方面で良く使われてるらしい。日本だとまだマイナー、かな。
ライセンス問題で下火になっていますが習得の容易さとパフォーマンスが良いのでフレームワークという概念の把握にはオススメです。
僕はこれを読んでCodeigniterだけじゃなくてCakePHPも理解できました。
CodeIgniter徹底入門
ただ、CodeIgniterは簡単・高速で習得しやすいけど、
その分シンプルで機能が少ないので、ちゃんとしたサイトを作ろうと思うほど自分で書く部分が増えていきます。
セキュリティやユーザー認証なども素人が自前で一から作るのは危険なので、やっぱりCakePHPお勧めです。
開発する時はgitHubに上がっているデバッグキットを入れると便利です。
cakephp / debug_kit
https://github.com/cakephp/debug_kit/tree/1.3
http://codezine.jp/article/detail/5105
NetBeansを使う時のCakePHP用の追加モジュールはここ
https://github.com/evilbloodydemon/cakephp-netbeans/tree/autocomplete
中編はこちら
http://d.hatena.ne.jp/yamasawa8911/20120519/1337407233
だそうなので、俺が思うところを書いておきます。
基本的にMacのほうが羨ましいとは思うけれども(まあ、MacBookとかが欲しいんだよね、きっと)、でもきっとMacなんてフルスペックで使えるわけない。
周りの子に自慢したいとかいうのであるならば、あるいはどうしてもiOSアプリが作りたいというんだったら、それしか選択肢がないけれども、そうじゃないんだったら辞めましょう。
あとWindowsも、Windowsアプリとか、C#をいじりたいんです!っていう話であるならば、それに固辞するのも結構ですけど、そうじゃなくて、ITに行きたいなら、Windowsを捨ててLinuxにしましょう。
自分はGentooが好きですけど、ハードコアすぎるので、Ubuntuのほうがいいかと思う。
Linuxとか難しいんじゃないの……とか思うかもしれないですけど、Ubuntuは素晴らしいです。
Ubuntuは、知り合いの絵師のパソコンに入れたら、わりと好評でちゃんと使っていたので、それなりにパソコンが使えるならば、ちゃんと使えます。
プログラミング言語関係は、そのOSに依存するような環境を使いたいというわけではないのなら、Linuxにしておいたほうが、無難に使えます。
CとJavaでもいいとは思うんだけど、どちらもコンパイルが必要だし、コードを書くのに、ある程度の量(書きたいときに気軽に書くという感じではない、という意味)が必要なので、もう一つ言語を覚えた方がいいです。
PHP、Ruby、Python、Perl、Clojure、Haskell、お好きな言語をどうぞ。
ただ、PHPはどちらかといえばWebアプリケーションよりかな?という気がするので、PerlかRubyかPythonがいいかとは思いますが、お好みで。
自分はPythonのほうが好きですけど、Rubyのほうが割と見つけてもらえる確率は高いかもしれません。
あと、パブリックマンも「Railsでいこう!」というブログ名だったので、尊敬する人にあわせるならRubyのほうがいいんじゃないかと。
こわいおじさんににらまれたいならPerlのほうがいいでしょう。
ちなみに、Ruby on Railsは、割とWebサービスを作るのが楽になります。Herokuとかありますしね。Webアプリケーション周りということだったら、ついでにそのプログラミング言語で使われているメジャーなフレームワークとか調べながら勉強するといいかもしれません。
で、上記を踏まえて、エディタをちゃんと使いましょう。
パワーが有り余っているなら、総合開発環境であるところのEclipseでもいいんだろうとは思うんですけど、それはおっくう、というのならば、ちゃんとエディタの使い方を覚えましょう。
もう既にUbuntuを入れていると思うので、EmacsかVimを使いましょう。Vimのほうが好きではあるんですけど、キーバインドや、その他の癖を考えるとEmacsのほうがいいかなあという気がします。
Ubuntuを入れたなら、Geditというエディタも、Windowsのメモ帳の非じゃないくらい極まったエディタなので、それでもいいです。Windowsがそんなに好きなら、サクラエディタを使うといいでしょう。
あなたはどうやら貧乏だけれども、インターネットは使えているようなので、英語を読む練習をするといいです。
英語なんて全くわからない?ノープロブレム。そんなの適当でいいです。「なんとなくこういう意味かなー」とか、あるいは英語を読むだけでクラクラしない程度でいいと思います。
英語を読めると便利です。少しだけ多くの解説が読めるからです。
あと、英語が読めると「pdf Orailly」という魔法の言葉が使えたりするんですけど、何に使うかは想像におまかせします。
で、上記を踏まえてなんですが、コードを書きましょう。
コードなんて書いてなんぼです。「如何に優秀なハッカーになるべきか」という記事はゴロゴロありますが、そんなのは気休めに読むべきで、まずはコードを書きましょう。
なんだかんだいって、コードを書くのは経験がモノをいいます。量を書きましょう。そして躓きましょう。最初から質なんて無理です。
躓いたら、なんで躓くのか考えましょう。また、「こんなところが、コードを書く点で不満だなあ」と思うことがあれば、それも考えていきましょう。
偉い人がいろんなソリューションを考えてくれています。最初からそのソリューションがなぜ素晴らしいかなんて理解できないとは思います。躓いて始めて「ああ、だからこういう開発手法がいるんだ」ということを理解できるでしょう。
ついでに、コードで躓いたら、その躓いたところを、Twitterアカウントに積極的に発信していきましょう。
そのついでに、そのプログラミング言語を学んでいるTwitterアカウントをフォローしましょう。
あなたの呟いていることによっては、その人は興味を持ってくれるでしょうし、場合によっては手助けをしてくれるかもしれません。
あなたがサービスを立ち上げたら、積極的にRTをしてくれるかもしれません。
だいたいなれてきたところで、自分が作りたいものを作ってみましょう。そして公開してみましょう。できるならGithubで。
Githubに載せる理由は、ソースコードを公開したほうが、突っ込まれる率が高くなり、それに応じて勉強になるというところと、あとはGitというバージョン管理システムの勉強をしていたほうが、のちのちに便利だからです。SVNとかありますが。
あと、コードの引き写しに関しては、ブログに書くか、あるいはコードの断片を載せるという意味で、Gistに載せるという点もありますが、その辺りはご自由に。
VPSを借りてみましょう。あなたが貧乏だというのはわかっています。VPSとは、仮想専用サーバーのことです。
別に最初っから何でも揃ってるようなホスティングサービスでもいいんですが、サーバーを一から立てるという作業は、勉強にもなります。下手な技術書より余程勉強になったりします。
最初から借りると宝の持ち腐れとなると思うので、一つのWebサービスでもいいので、それを自分のマシン内でのみ見られるようなったら、借りるというのは一つの手だと思います。
VPSがつらいというのならば、Herokuとかもありかもしれないです。
コードを書くのが辛いなら、コードを読みましょう。人のコードはアイデアの山です。
自分の場合は、割と実例が無いと、挙動がピンとこなかったりするので、コードを読むことのほうが多いです。
特に、その言語で有名なライブラリとかいいかもしれません。ガンガン読みましょう。
あとは若さでなんとかなるでしょう。
ついでに、この文章を「テメーはなんにもわかってねえんじゃボケ」という言い方をして修正してくれる人もいると思うので、そういう人のアドバイスも真摯に受けとりましょう。