はてなキーワード: ruby on railsとは
ゆーすけべーさんが以前に作ってたimeeroみたいな感じです。画像Blogをスクレイピングしてエロ画像を効率的に見るサイトです。
なお、先程解約手続きを済ませたので4月末くらいに見れなくなります。エロサイト自体にあまり興味がなく、ローンチしたらやる気が無くなったのです。
テスト駆動開発がやりたく、DSLに強いロック魂を感じたRSpec。
はやりに乗ってBootstrap。
特にCapistranoは名前がキュートでやっていることがカッコイイのでどうしてもやりたい技術でした。
あと、メインとなるRailsはこの記事に書いているスキルの中で唯一経験が無かったというのが一番の理由です。Rubyが好きなのもありますけどね。
いやぁ、退職しようとすると会議室で8時間説教されるって都市伝説じゃないんですね〜。
ところで転職活動をした感覚だと、今より給与が2倍出るところでも簡単に内定が出ることが分かりました。
転職活動やエロサイト作成を通して精神的な余裕も出ましたので、もう少しSIerそのものの問題、仕事の進め方などを熟考した上で、本当に正しいSIerのあり方を考えたいと思います。無理そうなら逃げます。
以上、よろしくお願いいたします。
「ミクミク走ってQ!」はブラウザで簡単に遊べる3Dアクションクイズゲームです。ゲームのルールは簡単で、クイズの問題が表示されて、回答の壁に向かって走るというものです。
ユーザー登録なしでプレイできるのでぜひプレイしてみてください!
紹介動画: http://www.nicovideo.jp/watch/sm23275229
クイズの問題はWebサイトから投稿することが出来ます。問題の投稿にはユーザー登録(無料)が必要です。ゲームのプレイはユーザー登録不要です。
開発技術はクライアントUnity、サーバーRuby On Railsです。
詳しくはqitaに書いたのでそちらを見てください
Playbooks — Ansible Documentation
railsbox - Fast and easy Ruby on Rails virtual boxes
Ansible入門 (全15回) - プログラミングならドットインストール
Amazon.co.jp: 入門Ansible eBook: 若山史郎: Kindleストア
Amazon.co.jp: Ansible Configuration Management 電子書籍: Daniel Hall: Kindleストア
Red HatがITオートメーションのAnsibleを$150Mで買収へ…OpenStackデプロイをDevOpsのために簡易化
Git Clone (スタートアップスクリプトID:112600117316)
指定のGitリポジトリをcloneし、指定の実行ファイルを自動的に実行します。
https://github.com/philc/terraform
fog - The Ruby cloud services library
A list of base boxes for Vagrant - Vagrantbox.es
Discover Vagrant Boxes | Atlas by HashiCorp
https://github.com/ryotarai/itamae
Itamae - Infra as Code 現状確認会 // Speaker Deck
Amazon.co.jp: Chef実践入門 ~コードによるインフラ構築の自動化 (WEB+DB PRESS plus): 吉羽 龍太郎, 安藤 祐介, 伊藤 直也, 菅井 祐太朗, 並河 祐貴: 本
Docker - Build, Ship, and Run Any App, Anywhere
[翻訳] Dockerについてよくある勘違い | TechRacho
Puppet Labs: IT Automation Software for System Administrators
Web上に転がっている情報をプログラミングによって自動で拝借する技術を「スクレイピング」というらしい。
今まで欲しい情報を取得するときはコピーアンドペーストを繰り返していたから、もし「スクレイピング」ができたらすごい嬉しい。
ぼくは阪神タイガースが好きだから、阪神タイガースの情報をスクレイピングできたら楽しそうだと思った。
特に2軍の試合結果をスクレイピングできれば楽しそうだと思った。
だって、将来のスターは2軍で頑張っているからだ。あと、2軍の試合はいつも見れないからだ。
http://hanshintigers.jp/farm/score/score20131004.html
スクレイピングを使えばそれぞれの選手の成績を自動で拝借することができるだろうか。
もし、拝借することができたら毎日の試合結果をグラフにしてみて、2軍選手の調子を見てみたい。
2軍選手の調子が良かったら1軍にあげたほうがいいかもしれないからだ。
あいにく、ぼくには相談できる人がまわりにいない。そもそも友達がいない。友達がいないから阪神タイガースが好きな友達だっていない。
スタメン談義はいつも一人だし、唯一話すバイト先の店長は巨人ファンだ。
何をどうすればスクレイピングができるのか、よくわからない。言語はpythonとかrubyとかruby on railsとかを使うといいらしいことは分かった。
プログラミングの技術はほとんどない。昔授業でhello worldとかif文とかやったけど、もうほとんど忘れちゃった。言語はパスカルとかいうのだった。
もし助言がもらえて、pythonとかrubyとかruby on railsとかを使ってスクレイピングができたら、
みんなに公開したいし、スタメン談義をしたい。公開の仕方はよくわからないし、阪神ファンがいるかわからないけど、したい。
けど、する。
だから、助言がほしい。
ついちょっと前まで、プログラミング素人でしたが、Amazonマーケットプレイスの1円本を買いまくって、はまってしまい、
もっとポチりたくなったので、作ってみました。宣伝かなと思いましたが、
http://anond.hatelabo.jp/20130124061507
こういった「エロサイト作ってみた」に大いに刺激されたので、一つの区切りとしてここで書かせていただくことにしました。
◯なぜ作ったか
・しかし、Amazonでは、1円本だけを対象にした検索はとてもしづらかった
◯なにができるのか
・amazonのマーケットプレイスの本の中から、1円で買える本だけを対象に検索ができる。
・常に100位までの人気順に表示しているので、ポチりたくなりやすい。
◯使用した技術
・HTML
・CSS
・Ruby
・amazon - Product Advertising API
ドットインストール http://dotinstall.com/
→ ざっと全体像を把握するのに適していました。
はじめてのプログラミング → http://www.amazon.co.jp/%E5%88%9D%E3%82%81%E3%81%A6%E3%81%AE%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0-%E7%AC%AC2%E7%89%88-Chris-Pine/dp/4873114691/ref=sr_1_1?s=books&ie=UTF8&qid=1384405206&sr=1-1&keywords=%E3%81%AF%E3%81%98%E3%82%81%E3%81%A6%E3%81%AE%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0
Ruby on Rails 3 アプリケーションプログラミング → http://www.amazon.co.jp/Ruby-Rails-%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0-%E5%B1%B1%E7%94%B0-%E7%A5%A5%E5%AF%9B/dp/4774146633/ref=sr_1_1?s=books&ie=UTF8&qid=1384405245&sr=1-1&keywords=ruby+on+rails
基礎からのMySQL → http://www.amazon.co.jp/%E5%9F%BA%E7%A4%8E%E3%81%8B%E3%82%89%E3%81%AEMySQL-%E5%9F%BA%E7%A4%8E%E3%81%8B%E3%82%89%E3%81%AE%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA-%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9E%E3%81%AE%E7%A8%AE%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA-%E8%A5%BF%E6%B2%A2-%E5%A4%A2%E8%B7%AF/dp/4797344385/ref=sr_1_7?s=books&ie=UTF8&qid=1384405287&sr=1-7&keywords=mysql
Herokuだと、ものすごく簡単にサービスを公開できます。Ruby On RailsとHerokuの組み合わせは最強です!
・
・
・
と書いてきましたが、パズルの組み合わせのような感じで、調べて→調べて→調べて・・・が続くなので、モチベーションを保つこと
目標をはっきりと定めて、終わりを見えるようにすること、楽しみながらやること、が大切だと思いました。
仕事がツラくて死にたい。でもどうせ死ぬなら死ぬ前にセックスがしたい。
SEX AND DIE
http://sex-and-die.herokuapp.com/
金くれ
Railsのscaffold便利すぎ。むしろこれしか使ってない。
Ruby on Rails 4入門 (全28回) - プログラミングならドットインストール
元々Rails3版はやってたんだけど、Rails4になってStrong Parametersだったり変更されてる部分がちらほらあったから、Rails3しか勉強してない人はひと通り見てみるといいかも。
bootstrapが便利らしいけど、デザインにこだわる必要はないなと思ったので省略。
jqueryもアニメーションとかajaxとかしないので使用せず。
認証はomniauthでtwitter認証できるようにした。
匿名で書き込めるようにする・ユーザー登録してもらうというのも考えたけど、匿名で書き込みは、書いたあと応募してきたセックス相手との連絡が取れないし、ユーザー登録はいちいち新しいWebサービスの登録をするのはめんどうだろうな(ってか自分はめんどう)と思ったから、twitter認証を入れることにした。
twitterで登録しているID・名前・写真を使えるのでいちいちユーザー登録の必要もなし。
詳細はtwitter経由でやり取りしてもらえればって感じです。
omniauthの導入はここを参考にした。
ASCIIcasts - “Episode 241 - 簡単なOmniAuth”
とりあえずは無料で使えるのも非常に嬉しいところ。
一部ハマったところもあったけど、そのあたりはherokuの公式マニュアルに書いてあった。
日本語でまとまってるサイトないかなーと漁ってみたけど、すなおに公式見るのが一番早かった。
■注意ポイント
Gemfileに以下を追記
gem 'sqlite3', group: [:development, :test] gem 'pg', group: [:production] gem 'rails_12factor', group: :production
よっこらせっくす。
VPSサーバ | AWS EC2 |
---|---|
言語 | Ruby2.0p245 |
フレームワーク | Rails4.0 |
画像のリサイズ | carrierwave |
ストレージ | AWS S3 |
DB | AWS RDS |
処理はRuby on Railsで実装。 ログイン処理はdevice 画像のアップロードやリサイズはcarrierwave carrierwaveってすごいのね。たった数行書くだけでアップロードした画像を複数サイズにリサイズし、S3に保存までしてくれます。 インフラ周りはAWSにお任せ、THE最小構成ですね。 同時に7人アクセスしたらあぼーんです。 本来ならELBとAuto Scalingでミディアム2台くらい使いたいところですが、我慢。 RDSもmicroインスタンスなんで、これもクソ遅いらしいですが、ゆくゆくはミディアムにはしたいです。 あと、前回作ったWebサイトのAMIを利用したんですが、本当に便利ですね! 動くものを作るまでの時間がほぼ0でした! AWSは個人利用者には少々割高かと思いますが、こういった便利なところがいいんですよね~。
色々書いたけど、ここまでの文はリリースしたときにテンションがあがってた時に書いた文なののよね。
ぶっちゃけローンチして一ヶ月たつけど、登録数4人。しかも全部知り合い。
興味があったらみていただければと・・・と思ったけど宣伝乙とか言うんだろ。
実装から今まで頭の中で思い描いたことの9割は裏目にでてるか失敗してるかうまくいってない。
こんな難しいのか、サイト運営って。
http://anond.hatelabo.jp/20130922195049
Ruby on Railsで可愛い子が集まるエロサイトを公開するまでの24H
http://anond.hatelabo.jp/20130918212415
【Ruby on Rails勉強】 xvideosまとめサイトっておいしいの?
http://anond.hatelabo.jp/20130823201154
http://anond.hatelabo.jp/20130813215918
オレの作ったエロサイト
http://anond.hatelabo.jp/20130813210121
http://anond.hatelabo.jp/20130811134648
http://anond.hatelabo.jp/20130701224121
エロ系2ちゃんねるのまとめサイトから画像を集約するサイトを作成
http://anond.hatelabo.jp/20130626190929
仕事で3ヶ月ほどRuby on Railsに触れる機会があったので、色々と調べているうちにRailsでエロサイトを作るのが流行っているというのを知りました。
そこで、自分でも作ってみようかと思いました。
2番煎じなのは重々承知ですが、とにかく作ってみることが重要なのです。
今回のエントリでは、個人的にエロサイトを作成して公開するまで自分でやった方法を紹介します。
※公開後の状況なども書き込みします。
CuteClipper : http://cuteclipper.night-generations.info/
既にあるものなら新しく作る必要はないわけで、、、今回は自分の使いたい機能を作ってみました。
Xvideosの動画サイトの多くは、動画を選択すると他のサイト(ブログみたいなやつ)に飛ばされてしまい、
そのサイトで、動画のある場所を探さないといけないことが多くてめんどくさい。
自分で作るのならh300さんのように分かりやすいサイトにしたいと思いました。
たくさんの動画を観て廻るものの、本当にいいと思う動画は大体3本くらいです。(自分の場合)
なので、3本まで動画をストックする機能があるといいなと思いました。
本番環境のherokuはドメインの設定も簡単で助かりました。
rails newしてdb作成して、基本的なアプリを作成しました。
動画情報の解析のため、RailsのGemのnokogiriを使用しました。
nokogiriはhtmlなどの解析をして、情報を取得することができます。
Ruby - Nokogiriでスクレイピング - Qiita [キータ]
//localStrage.setItem("key","value"); localStorage.setItem("test","テスト"); //localStrage.getItem("key"); localStorage.getItem("test"); //"テスト"
レイアウトにはあまり時間を掛けず、bootstrapを利用しました。
twitter bootstrap railsを使ったら職が見つかり彼女も出来て背も3センチ伸びました。 - ppworks blog
タグクラウドはacts-as-taggable-onで簡単に実装できます。
ということで、ここまでで出来上がったものを本番環境にアップします。
herokuはgitでpushをするだけで簡単に本番環境にデプロイ出来ます。
とにかく動かすという目標のためにはherokuはベストチョイスです。
スピードに関しては、海外サーバという点が難点ですが、今回はjavascriptをメインにしたことで、それほど問題はありませんでした。
解析の仕方を覚えるためにもGoogle Analyticsを使用しました。
公開の準備として以下の作業をしました。
ただ、公開することを最優先にしたので、しっかり作りこんではいないです。
公開します。
今の投稿方法だとエラーが発生しやすいので修正してからじゃないとなぁ
後は、並び替えるだけなんですが、まずはカウントが貯まるまではソートも何もないので・・・
ストック回数だけじゃ物足りないので、評価をつけれるようにしたいです。
でも、たくさんの人に使ってもらえるものを作るというのは、とても大変ですね。
今回、CuteClipperを作りながら、他のWebアプリを観てきました。
そういうアプリの中で、自分のアプリを埋もれさせない努力を続けていかないといけないですね。
がんばります。というやる気がでました。
ども。
以前、はてな匿名ダイアリーで日記を書いた者です。
→【Ruby on Rails勉強】 xvideosまとめサイトっておいしいの?
上の記事でも書いていますが、Railsはおろか、Rubyを初めて触った人間がゼロからWebサービスをリリースするために利用しているGemを公開したいと思います。
サイト名 | onalife(オナライフ) |
---|---|
URL | http://www.onalife.com |
説明 | xvideos動画の共有・ユーザー参加型のまとめサイト |
developmentモードで起動する際のデータベースはsqlite3を使うようにしています。
コーディング→サーバー起動→動作確認→コーディング…という流れになりますが、サーバーを起動する際に、
$ rails s
と実行するだけでサーバーが起動できるため大変手軽です。
サーバー起動後はブラウザで http://localhost:3000/ でアクセスすれば開発用のサイトを確認できます。
productionモード(本番環境)で利用するのはMySQLを使うようにしています。
理由は他のWebサイトで推奨されていたため。
sqliteの場合だと、単純にDBのデータをファイルとして扱っており、同時に複数アクセスがあった際、最初のアクセス中にファイルがロックされてしまう仕様との記事をどこかで見たため、MySQLを使うようにしています。
developmentとproductionで動作を分けるには、 config/database.ymlで分けることができます。
development:
database: db/development.sqlite3
pool: 5
timeout: 5000
production:
encoding: utf8
pool: 5
timeout: 5000
よくWebサービスのページ下にある [1][2]・・・[X]といったリンクが表示されている、あれです。
http://memo.yomukaku.net/entries/238
https://github.com/amatsuda/kaminari
Unicorn + Nginx + Rails で構築しています。
効果の違いなどはGoogle先生に質問すると大量に返答がありますのでこちらでは割愛。
ONALIFE(オナライフ)では、xvideosの動画URLや画像パスを抜き出す為に、こちらのGemを使っています。
http://himaratsu.hatenablog.com/entry/2013/04/27/002249
自作するとなるとかなり労力使いますから…こういったところは極力他の人が作ってくれたものを流用してもバチはあたらんでしょう。
https://github.com/mbleigh/acts-as-taggable-on
通常だと管理画面も rails g xxx とかやって controller 作って、 view 作って…とかやらないといけませんが、こちらのGemを使うと一瞬で終わります。
素晴らしい!!
当サイトでは、投稿していただいたxvideosの動画が不適切な場合などに消去する必要があるため、どうしても管理者向けの画面が欲しかったのでこちらを使いました。
データベースを直接操作して delete とかできちゃいます。
http://www.func09.com/wordpress/archives/1136
自分のサイトのアクセス傾向を解析して、どうすればアクセスが伸ばせるか、ということを考察するのに必要不可欠な機能です。
通常、Google Analytics にサイトを登録すると、Javascript のコードが生成されるので、それをWebサービスに貼り付けるだけで完了ですが、こちらのGemを使うと、Google Analytics で生成されるID番号のみを登録するだけで自動的に挿入されるようになります。
まだONALIFE(オナライフ)は発展途上のサービスです。
機能を拡張していくうえで、先人たちのありがたいGemをどんどんこれからも活用していければ、と思っています。
みなさんもこれは便利!というお勧めのGemがあれば是非教えて頂ければと思います。
以上、ONALIFE(オナライフ)で利用しているGem一覧の紹介でした。
http://anond.hatelabo.jp/20101206224349
http://anond.hatelabo.jp/20101203150748
http://anond.hatelabo.jp/20120914214121
サイト名 | onalife(オナライフ) |
---|---|
URL | http://www.onalife.com |
説明 | xvideos動画の共有・ユーザー参加型のまとめサイト |
Webサービスの勉強には「アダルトサイト」という記事をはてなの記事で何回か読んだことがあるため、今回は便乗しました。
ありきたりかも知れませんが、「Xvideosから誰でもお気に入り動画を追加してまとめる・みんなで共有」できるサービスを作ります。
協力していただける方は、サービスを使っていただいて、要望・コメントしていただけると助かります。
http://ja.wikipedia.org/wiki/PDCAサイクル
ではないですが、
試験リリース → テスターによるテスト → 問題抽出 → 問題解決のためのプラン → 解決 → 最初に戻る
を繰り返していき、
などを考察していければよいと思っています。(あくまで勉強目的)
ありません
※だって恥ずかしいし、煩わしいよね
シーンを登録してください
今回どうしても満たしたい仕様は以下です。
検索?
要望あれば検討ということにしました。(他に優先すべきことが多々あるため)
お仕事 | 主に組み込みLinux系 |
---|---|
Web開発経験 | なし(Wordpressを昔にちょこっと触った程度) |
プログラミング歴 | 10年目くらい |
---|---|
使える言語 | C言語、ShellScript、Perl、Make |
お触りした言語 | C++、C#、VisualBasic、Python |
時代の流れに乗ろうかと。
仕事内容は主に組み込みLinuxです。Linuxカーネルをごにょごにょしたり、開発環境の整備(プロジェクト全体のMakefile管理)、システム部分の機能実装などをやっており、PythonやRubyといった言語には縁がない状況です。
昔から機会があればRubyかPython、PHPとかでWeb系の知識も身につけたいと思っていましたが、今回思い切って勉強しようと思いました。
皆さんの中にも新しい言語を勉強するときに、とっかかりがよくわからなくて諦めた経験を持っている方は結構いらっしゃるのでは?
インターネットで検索するといろいろなサイトが出てきますが、なかなかゼロから学習するのには向いていない場合が多いです。
そ・こ・で!
私は以下のサービスを使いました。
Ruby on Railsの動画を何度も見て、基本的なプロジェクトの立ち上げ方・コーディング方法などが学べました。
平日 | 1時間/日 |
---|---|
休日 | 2~3時間/日 |
こんな程度です。
平日 | 0時間 |
---|---|
休日 | 1時間/日 |
平日は1時間未満が多かったですね。
ドットインストールの講座を1・2個見て終わりというような感じでした。
無理をしない、です。
私のように、長いスパンでコツコツ積み上げていくのがよいのかもしれません。
短いスパンでリリースしようとすると、1日あたりの学習&プログラミング時間が相当確保しないと難しいように思います。
この時間を確保することの困難さがモチベーションの低下の原因ではないかと思います。
一日平均4時間(休日含む)でやれば1カ月から2カ月くらいでそこそこのサービスをリリースできそうです。
結構はてなで「初心者がWebサービスをリリース」なんて記事を見ますが、みなさん本当にすごいな、と感じました。
自分でいざサービスを立ち上げてみて、初めてわかることもたくさんあります。
プログラミングの仕事しているにも関わらず、ベータ版リリースまで約半年ほどかかってしまいました。(そもそも時間をそれほど確保できなかったのも原因ですが)
もしよろしければwebサービスを使ってみて不満点をコメント欄にでもどんどん記入してください!
今後の参考にしたいです!
タグはなるべく詳細に入れてもらえると、自動的に動画を関連付けます。
友達がいなくてひとりぼっちな人のための、「ぼっちチャット」というチャットサービスを作ってみました。
今は大学生やってるんですが、(悲しいことに)時間があったので、
都内大学生。
だいたいこんなヤツです↓
プログラミングは趣味でちょっと。これまでに完成したものは少ない。
ぼっちの人同士でヒマを潰すためのチャットです。どこかのぼっちの方とチャットでお話ができます。
以下の条件に当てはまる方であれば、どなたでも利用可能です。
自分と同じような非コミュが集まるWebサービスを作ってみたかった。
Rails使用経験は、過去に掲示板風のシステムを作ったくらい。
読んだ本は、
http://www.amazon.co.jp/dp/4274068668/
だけ。
ドットインストールにはお世話になりました。
http://dotinstall.com/lessons/basic_rails
約1週間くらいでひとまず完成。
オシャレハットマン家入とホリエモンが「ロゴなんて5000円で十分でしょ」と言って批判されているらしいけど、それってもう英語圏では遠い昔に通り過ぎた話なんですよね。その辺のwebサービスとかのロゴなんて5000円が適正相場になってるのが英語圏の現実です。本当に日本人というのは頭が古いと言うか井の中の蛙というか、日本語という壁に守られて温々育っちゃって時代遅れの主張をよーいドンで一斉に始めちゃう恥ずかしい所がありますねえ。
そりゃ名だたる企業のロゴだったらそれなりの制作料になるわけですが、小さい企業とかローンチしたばかりのwebサービス、スマホアプリなどのロゴで10万以上かけて作る人はもう絶滅しました。いません。死にました。今のトレンドは「テンプレートから既成のロゴを選択して、+自分の企業名のフォントだけを手作業でデザイナーに入れてもらう」形式です。つまり同じロゴを使ってる企業やサービスが世界中にたくさんあるわけですよ。たくさんあるって言っても世界は広いからほとんどバッティングなんてしないわけですね。例えば最近見たパン屋さん向けのロゴで人気のものは15件も売れてるわけですが、世界中にいくつパン屋さんってあるんでしょうか。星の数ほどありますね。だから被ってたって問題にはならないわけです。それが2013年のロゴに対する世界の人々の普通の感覚です。
インターネットやスマホアプリの普及のお陰で、ロゴに対する需要は1990年に比べると15倍になったそうです。今や一般のブロガーですら自分のロゴを持つ時代ですからね、そのぐらい増えてても不思議ではありません。それに対して、ロゴを軽く作れちゃうぐらいのデザインスキルとソフトを持っている人は20年前から比べるとなんと50倍になったそうです。供給量は需要の伸びを大幅に超えてるんですね。これがロゴの価格低下の最もたる原因の一つです。あんな二次元の適当な仕事でクリエイティブなんてもう恥ずかしくて名乗れない時代なのです。(もちろんトップクラスの仕事は別ですよ、あくまで下の方ってこと)
こういった傾向は別にデザイン業界に限りません。例えばほんの8年前、2005年当時を振り返ってみましょう。
・MovableTypeでちょっとしたブログを書いているだけでネットメディアから取材が来ました。
・Ruby on Railsに詳しいというだけでRuby界で一目置かれました。
どれもこれも、今はその辺の20歳の大学生でもできるレベルですよね。それがたった8年前はもてはやされてたわけです。
ランサーズ(http://www.lancers.jp/)などの例を挙げるまでもなく、クラウドソーシングサービスによってますますクリエイティブの単価は下がっています。需給のミスマッチは価格を押し上げる方向に働きますが、ランサーズのようなサービスによってロゴ作れる人とロゴを欲している人がいとも簡単に繋がれるようになって、つまり需給ミスマッチが改善されている訳ですが、それによって何が起きるかと言うとますます価格が下がるんです。当たり前です。どんな世界もこういう風にできてます。この理屈がわからない人は学部一年生が読むような経済学の教科書でも読んでから出直してください。
僕みたいなデザイナーですらロゴ5000円は仕方ないかなと受け入れてます。だってブランドもCIも無いようなその辺の小さな事業主向けのロゴなんて、理屈も理念もへったくれも無いわけです。事業主の個人的な趣向に合わせてなんとなーーーく小綺麗なロゴを作るだけの仕事です。そんな仕事はもうまともなクリエイティブを持った人間はやってませんよ。そういう仕事で飯が食える時代はとっくの昔に過ぎたんですね。
なんだかこの手の話に毎回妙に怒る人いるじゃないですか。デザイナーでもないのに。なんなんでしょうねああいう人って。誰のために怒ってるの?デザイナーの権利のため?それとも社会のために正義を訴える自分に酔いたいから?こんなくだらないことに怒る暇があったら他に怒るネタはあるでしょう。怒るべきネタが。ほんと暇人ですよね皆さん。
僕らデザイナーは怒る暇があれば勉強します。僕は毎日2時間割いて、新しい技術・世界のデザイン趨勢・他文化の勉強・異業種との情報交換・ヘルニアにならないための運動などなど、生き残る為に必死で頑張ってます。怒ってる暇があれば勉強するのがどんな世界でも生き残るための唯一の策なんですよ。デザイン業界のグローバルな流れも知らないで、感情論で「5000円は安い!人権侵害だ!」って、そういう人はサヨク活動でもやってたらいいんじゃないですか。もうそういう時代じゃないんです。
「らびっとブックマーク」
「管理をする」ことに重点を置いた(ノンソーシャル)ブックマークサービスです。
■作ったいきさつ
ブラウザのブックマークが貯まりに貯まってたので、ブラウザじゃなくてオンラインで管理しようと思ったところ
「じゃあ自分で作ってみるか」
ということで作りました。
・はてブは?
もちろんはてブでもブックマーク管理してたんですが「もっと一覧性が高かったらなぁ」とか、「ラベリングができたらいいなぁ」とか、
単純に管理するという点に注目したとき、もっと機能が欲しいと考えました。
■制作について
製作期間は2ヶ月くらい。
使った言語はPHPで、フレームワークは「CodeIgniter」というものを使いました。
実はプログラミングの勉強は1年半ぐらいやってて、Webサービス(のプロトタイプ)をいくつか作ったことがありますが、リリースまで出来たのは今回が初めてです。
最初は流行の「Ruby on Rails」から勉強しました。
本を買ったり、ネット上のチュートリアルを参考にしたりしました。
流行だったこともあって、情報収集にはそこまで困りませんでした。
そこで当時考えたToDoリストにゲーム性を加えたWebアプリを作ろうとしたんですけど、どうしても本番環境へのデプロイができなくて、そこで挫折…。
ならば別のフレームワークを!と思って次に手をつけたのがPythonのフレームワーク「Django」
Railsより動作が速く、もともとPythonを勉強してたこともあり、親しみを持てた一方で書籍やネットでの情報が少なくて苦労もしました。
簡単なアプリを作ってデプロイを試みたんですけど、結局こちらでも成功まで辿りつけませんでした…。
と焦り始めたところで、次に目をつけたのがPHPの「CakePHP」でした。
「PHPを使ったら負け」みたいな文言をネットでよく見かけていた
ので、あえて敬遠していたのですがここまでくると手を出さずにはいられませんでした。
結果から言うとこちらは先の2つでの苦労が嘘のようにいとも容易くデプロイができました。
このままCakePHPで制作を進める予定でしたが、何故かここら辺で別の事に手を出して、構想していたToDoリストアプリの制作を中断しました。
そして数ヶ月の空白期間を隔て、今回のオンラインブックマークサービスのネタを思いつきました。
その間に出会ったのが「CodeIgniter」というフレームワークで、CakePHP同様PHPベースですが、こちらは軽量フレームワークです。
動作が速く、学習コストも低いのが魅力的でした。(デプロイも簡単。)
ということでこちらを採用して制作し、今回リリースまでこぎつけました。
これから独力でWebサービスを作ろうと思ってる方は、使うフレームワークの仕組みだけでなく、本番環境にデプロイすることまで見越した勉強をしないと
自分みたいにフレームワークに左右されて余計な時間を取られてしまうので、その辺は注意した方がいいかもしれません。
(ただそれらを通して学んだことは無駄にはならないと思います。)
■感想
今回実質の製作期間は2ヶ月くらいでしたが、それに至るまでの勉強も含めるとかなりの時間と労力を費やしていて、Webサービスをちゃんとしたサービスとして
立ちはだかる壁としては
技術がなぁ…
↓
デザインがなぁ…
↓(ある程度の妥協)
デプロイがなぁ…
↓
宣伝がなぁ…
↓
運用がなぁ…
みたいな感じだと思います。
最近はてブでも「Webサービス作った」系のエントリが上位に昇っていますが、
もうすぐ30歳になるのに、昨年末で職場がなくなりハローワークに行っても求人が無いので
PHP ruby Nginx WordPress Bootstrap を使ってWebサービスを作りました。
今までバックエンドしか作ったことがなく、フロントエンドをやりたかった。
趣味でやっていて目標の物を作ったら満足し、継続してやらない。
なので今まで覚えてた事を忘れて一からやり直す事が多かった。
とゆう勢いで…
Bootswatch
Mechanize
スクレイピングしなきゃ!
いつもスクレイピングはSimple HTML DOM Parser
http://t-taira.hatenablog.com/entry/20120429/1335658939
「なにこれRubyすごいこんな数行で」
RubyでスクレイピングしたデータをMYSQLに保存までは完成。
次はサイトをどうしようかと考え…
cakePHPかな…
WordPressに決定。
一番時間がかかった…
デザインは昔からまったく出来なかったので Bootstrap に。
http://webdesignrecipes.com/first-time-wordpress-origin-theme/
ここを見ながらテーマに落としていくのは簡単でした。
WordPress初めてなのですごく参考になりました。
http://kray.jp/blog/wordpress-tuning/
http://tech.aainc.co.jp/archives/3022
Webサービスを作って公開するのが、こんなに楽しいとは思わなかった。
次はCakePHPとかフレームワークを覚えて新しいサービスを作りたい。
ruby on railsもいいな
でも、早く再就職したいです…
オープン系のデスクトップアプリ開発、Webプログラミング、システムプログラミングを仕事にする人向けとして考えてみた。
学習環境はUbuntu Linuxで、デスクトップ上のターミナルか、WindowsからTeraTermでsshログインして行うことを想定。
なので前提知識としてLinuxのabcくらいは教えておくとして、もし来年度やるならこんなもんかな。
結構分量多めだけど、これでも基礎の基礎に絞った感じ。
おまけ:Pythonで学ぶ関数型プログラミング
なお、上述のカリキュラムでやらない言語(VB、javascript、C++、Objective-C、C#、PHP、Rubyなど)やWebフレームワーク(Django、Ruby on Railsなど)は、全てこれらの応用で覚えられると思うので、基礎教育終了後に各現場にてOJTで習得してもらう。
IDEも使わないけど、はじめの一歩で軽量エディタ+コマンドラインをやり込んでいれば正直どうにでもなるので省略。
あと最後がおまけ扱いな上にLISPで学ばないのは、要するに「リストすげー!超すげー!!」という感動を胸に今後も頑張ってもらうのが狙いなので(だって現状使う機会殆ど無いし)、最初にやって一番手に馴染んでいるツールで、理解のコアになる部分にサクッと触れて欲しいということ。
例に漏れず件のエントリーに影響を受けまして、Ruby on Rails を利用したサービスを作ってみました。
一つもアクセスがないため宣伝ついでに利用したgemや作成する際に参照したサイトを載せますので、「Rails初心者っす」とか、自分と同じく「そもそもプログラミングとか知らねっす」という方はちょっとしたナレッジとしてご活用くださいまっせ。開発ガンガンやってる方には価値ある情報たぶんないよー。
最初はMac標準のエディタで書いてたけど、どこかの記事を読んでからは「Sublime Text 2 (http://www.sublimetext.com/)」に乗り換えました。すごく…便利です…。ターミナルはMac標準のアレです。オススメがあったら教えてください。
完成までにやったこと、実装するために参考にしたサイトを並べます。
RubyとRailsの環境を構築する。(http://www.oiax.jp/rails/rails3/install.html)
簡単にウェブアプリの土台を作れるScaffoldという機能を使って遊んでみる。(http://www.techscore.com/tech/Ruby/Rails/quick-start/Rails4/4-1)
行き詰まったので本を買う。(たのしいRuby、Ruby on Rails 3 アプリケーションプログラミング、Rails 3 レシピブック)(※ 同タイミングで買ったわけではないです。簡単にウェブアプリを作るだけなら「Ruby on Rails 3 アプリケーションプログラミング」とインターネットに接続できる環境があれば十分だと思います。ていうか他の二冊はまだ全部読んでない。)
ひと通り分かった気になり、作りたいものを作る作業へ。
$ rails new sicolip
色んなgemがあって迷う。
・Device(https://github.com/plataformatec/devise) ・omniAuth(https://github.com/intridea/omniauth)
でも、
・Deviceはメールアドレスでの認証 ・omniAuthはtwitter/fb認証
個人的に
・エロサイトにメアドを登録したくない ・エロサイトの認証がtwitter/fbってなんか怖い
ということで、自前で実装。has_secure_password(gem:bcrypt-ruby) を利用する。
サイトをクリップ(URLを投稿)したときに該当するサイトのタイトルとか内容を取得する処理。
Nokogiri::HTML(open(target_url))
こんな感じでNokogiriオブジェクトを取得して、
return doc.xpath('//title').text
こんな感じでタイトルを取得する。こちらでxpathほかのお勉強。
ログインしている人にしかクリップ(URLの投稿)をさせたくない。そんなときに使える認可処理。
クリップしたサイトの情報をタグで管理したい。タグ機能の実装を手抜きできるのがこのgem。
・https://github.com/mbleigh/acts-as-taggable-on
・http://prototype-beta.com/tags/acts-as-taggable-on
上記を参考に。
クリップしたサイトの情報をタイトルや内容、またはタグから検索したい。
その処理を手抜きさせてくれるのがsunspotさん。サーバにデプロイしたあとに
$ rake sunspot:solr:start
・http://railscasts.com/episodes/278-search-with-sunspot?language=ja&view=asciicast
・http://outoftime.github.com/sunspot/docs/
will_pagenateっていうgemもあるんだけど、kaminariが最近の流行りらしい。
・https://github.com/richardiux/sunspot_with_kaminari
ということで、はてなブックマークみたいなブックマークレットを作る。
・http://d.hatena.ne.jp/ky2009/20090108/1231405893
herokuとやらが設定周りの色々めんどくさいことを肩代わりしてくれるという噂。しかも無料。
→ sunspotが有料オプションでした。やめる。
AWSというAmazonのサービスが設定によっては無料らしい。
→ ほんとに無料だった。AWS内のElastic Beanstalkというサービスが、herokuみたいにめんどくさいことを色々やってくれる。
・http://blog.serverworks.co.jp/tech/2012/06/28/aws-elastic-beanstalk/
・http://qiita.com/items/811cd9b614d8d300628e
そんなこんなで出来上がったものは陳腐なものかもしれませんが、まがいなりにもひとつのサービスができました。ここ1カ月だらーっとRubyとRailsをさわってみて感じたことは、ウェブアプリを作るのって特別なことじゃないんだなーっていう。どこかで誰かも言ってましたけど、開発している最中はパズルを解いてる感覚でした。ウェブに転がるピースを探して、フレームワークにあてはめていくようなそんな感覚。
おしまい!
(記事が長すぎたので前編・中編・後編に分けました)
僕ももう、リストラされそうなとあるおっさんなんですが、先日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とかもありかもしれないです。
コードを書くのが辛いなら、コードを読みましょう。人のコードはアイデアの山です。
自分の場合は、割と実例が無いと、挙動がピンとこなかったりするので、コードを読むことのほうが多いです。
特に、その言語で有名なライブラリとかいいかもしれません。ガンガン読みましょう。
あとは若さでなんとかなるでしょう。
ついでに、この文章を「テメーはなんにもわかってねえんじゃボケ」という言い方をして修正してくれる人もいると思うので、そういう人のアドバイスも真摯に受けとりましょう。
http://www.yamdas.org/column/technique/hatenablog.html
なお、タイトルに PART I とあるが、このネーミングはメル・ブルックスの『珍説世界史 PART I』にちなんだもので、PART II 以降は存在しない。つまり、あなた(ソフトウェア企業)が絶対すべきでないことは、Joel Spolsky にとってこの文章に書かれることだけなのだ。それは何か?
まぁ、そんなわけないんだけどね。
「最近のはてなの体たらくへの失望感に名前を付けたい」というだけの文章にマジレスするのも我ながらどうかと思うし、気持ちは分からなくもないんだが、最近は「はてブ」以外全く使ってない俺でも、長年お世話になってきたはてなに対してそれなりに愛着というものがあるわけで、ディスられるばかりの流れに少しばかり反抗を試みたい。これは、それだけのエントリだ。
というわけで、以下に書くのは、技術の話でも倫理の話でもない。どうか気軽に読んでほしい。
実例を挙げる。
今やワールドワイドな影響力を持つ勝ち組ソーシャルサービスのTwitterだが、彼らは、ここ数年でバックエンドの大半をスクラッチから完全に書き換えた。しかも、RubyからJavaへと、使用言語すら変更してしまった。
http://d.hatena.ne.jp/teppei-studio/20110709/1310168002
もう一つ。Tumblrも、LAMPアーキテクチャからJVMベースへ切り替えた。その過程で、Twitterがオープンソース化した技術を取り入れたりもしている。
http://blog.kyanny.me/entry/2012/02/19/002256
『「古いコードはクズだ」というのは錯覚だ』というJoelの意見は、一面では正しいが、他の面では間違っている。なぜなら、あるソフトウェアに求められていること(要件)は、時間と共にどんどん変化するからだ。
書き直そうが、書き直すまいが、一番ダメなソフトウェアとは「ユーザの要求に応えられないソフトウェア」だ。規模や環境の変化によって古い技術の技術的限界に直面したり、ビジネス環境の変化に追随する必要が出てきたのなら、「スクラッチから書き直す」のは立派に一つの選択肢だ。
はてなダイアリーの最初のバージョンがどういうものかは俺もよく知らないが、おそらく「LAMP」がエッジなキーワードとして持て囃されていた頃に書かれたプロダクトなんじゃないかな(間違ってたら突っ込みを)。それから時代は下り、Ruby on Railsに代表されるCoCなフレームワークの登場を経て、今や大規模分散や非同期を前提としたアーキテクチャが当たり前の時代。当然改修はしているだろうけど、MySQLを職人芸で負荷分散していた時代からは大分遠いところに来たのは間違いない。
何より、はてなダイアリーといえば「はてな記法」とカスタマイズの自由度の高さがウリだったわけだが、これらの存在が、今や機能追加や改良の妨げになっているとしても不思議じゃない。
はてなブログ開発の動機として「今どきの技術で、最初からやり直す」というのがあるのは間違いないが、それは「スクラッチからの書き直し」だから悪手なのだろうか。結局のところ、レガシーコードのメンテナンスを続ける場合と比べてどちらがより低コストか、という話の結論によるとしか言えない。
はてダのソーシャル要素といえば「トラックバック」と「idコール」と「キーワードリンク」だったわけだが、全部Twitter(とTogetter)に持っていかれたよね、という話。
だから、「はてダver.2」や「ブログ2.0」を望む声が大きいのは理解できるけど、ぶっちゃけ、そんなもんに開発リソースを突っ込んでも勝ち目なんか無い。んで、それに代わるアイディアを持ってる奴はどこにもいないと。だから、既存コードの改良ではなくスクラッチから書き直し、スモールスタートでフィードバックを受けながら方向性を考えていく、という方向性はそんなに間違っていないと思う。
ただ、現状を放置すると「それTumblrでできるよ」という話にしかならん、というのはその通りで。それ以外だと、もしgithubがblogサービスを始めたりすると、かなり客を持っていかれるのではないかという予感はする。いっそのこと、Tumblrのデッドコピーから始めるのが一番早いのかもしらんね。
少し別の話を。
これは、Twitterのgithubレポジトリだ。上でも書いた通り、Twitterはサービスをスクラッチから書き換えた。で、その過程で開発した内部向けのフレームワークを、どんどんオープンソース化している。彼らが、内部の技術をきちんと体系化して再利用可能にしていることの証左と言える。
一方、はてなのgithubレポジトリ。正直、サンプルとかプラグインばかりですね、と。
色々と理由はあるんだと思うが、一つ思うのは職人芸頼りで自分たちの技術を体系化するという部分が弱いんじゃないか、ということ(はてな発のオープンソースで広く使われてるのって何かあったっけ?)。
先ほどから散々「書き直していい」と主張しているが、誰かが言っていた通り、技術の本質を捕まえきっていない状態でフルスクラッチをやっても、失敗する可能性は高い。はてなブログがどちらなのかは、中の人にしか分からないことだけど。
はてなが経営的にあまり状況がよろしくない、という推測はおそらく当たっているのではないかと思う。
タイムラインで、誰かが「まっとうな方法で収益化する方法を真面目に考えるべきだった」と言っていたのを見た。それをしていれば、今回のような事態を招くことは無かったのだろうか。
だが、「まっとうなビジネスモデル」とは何だろう。実際問題として、ここ最近成功しているネットサービスのビジネスモデルで「ターゲティング広告」と「マスなユーザベースから抽出したビッグデータを解析して売る」以外で何か有力なものはあっただろうか。FacebookにせよTwitterにせよ、収益化の原動力はユーザ行動解析だったりするわけだ(彼らがオープンソース化に積極的なのは、インフラ技術が差別化の源ではない、という面もある)。
まぁ、あとはガチャだが、どちらにせよ現状では高木先生の逆鱗に触れるようなものしかないよね。
そんなわけで、それらに代わる第四のマネタイズモデルを思いついた人は、ぜひ近藤さんに教えてあげると良いんじゃないかな。あればだけど。
今後はてながどうなるかは分からないけど、一つ希望したいことがあるとすれば、故伊藤計劃氏のダイアリーがこの先も保全されることを望みたい。
それは、エントリを全て魚拓しろ、という話ではもちろんない。彼の生前に書かれたエントリは、当時の「はてな」という生態系を構成する一部でもあるわけで、そこから切り離して文章だけをアーカイブしてもあまり意味がない。
Pythonの方が弄れる対象が多いのに、なんでウェブ系だとPHPの方が流行ってんだろ
端末からのテキスト処理も楽だし、数値計算周りのライブラリも充実しているのに
PHPが優遇されているのって歴史的な経緯以外に何か他の理由でもあるのか?
けどまぁ、情弱な文系SEが大半を占めているバカだらけの日本じゃ別にPHPで困ることもないか
数値計算や端末からのテキスト処理なんてWeb系じゃ大して使わないからなあ…
Pythonに関しては、ZopeさえコケていなければWebサーバ用LLとして大成功していたはずなのに、
Railsなんかが登場したおかげで、すっかり影が薄くなってしまいますた....
ってか、railsにインスパイアされたフレームワークって今じゃ幾らでもあるよね
djangoとかCakePHPとか。rubyってRoRを使いたいユーザを除くと、
pythonやPHPの方がユーザー数は圧倒的に多いと思うんだけど
本家のrailsって、他を遥かに越えるほど良いものなんだっけ?
44
Zopeが登場した当時、「RDB+PHPはもう古い、これからはOODB+ZopeがWebの中軸になる!」と
少なくとも自分はZopeからPythonという言語を知ったし、その時点でRubyは知らなかった
そして、その後のORM(RDB)+Railsの出現と華々しい革新性への注目は、誰もが知っているだろう
今でもZopeの開発は継続されてはいるが、結果的に当初の期待が大きく裏切られたという事実は動かしがたい
djangoとCakePHPについては実際に触っていないので憶測になるが、おそらく技術水準ではRailsと同等だろう
しかしRailsはRailsでコミュニティの活動が活発だし、その進化は異常に早い
Railsに何か致命的なトラブルが発生して開発が停滞する、あるいはdjangoやCakePHPから
何かのイノベーションが提示されでもされない限り、後発のdjangoやCakePHPがRailsに追いつくのは無理
Railsは決して技術的に完璧なWebフレームワークではないんだけどね....(たとえばSeaSideのような.... )
だからこそ「もしもZopeが....だったなら」という「たら・れば」感はPythonコミュニティの潜在認識になっている
C a k e P H P は う ん こ
CakePHP使ってんの?
可哀そうにw
でもやっぱりいつもの使い慣れたLL(Python/Ruby)で
Webサービスを書きたいってのがある
求人数は
Ruby on Rails>>>>>>>>Django
http://www.indeed.com/jobtrends?q=django%2Cruby+on+rails&l=
どういうことなの?
求人数が多いのはそのためだと思うよ
なんかのミスかと思ったがアメリカでもRuby on Railsは人気があるのかなあ・・・
Pythonのほうが使いやすいと思うのだがフレームワークはRailsが優位なんだろうか
Djangoは周辺ライブラリが微妙だし本体も鈍くさい感じがする。
でも、FlaskはSinatraより好きだから、Pythonが嫌いってわけではない。むしろ好き。
ただ、いざ作り始めるとやっぱりRailsが楽だなあってなって、Railsを使い続けている。
同感だ
同じように思っている人が他にもいて安心した
PHPはフレームワークが乱立しすぎているから、RailsをPHPで実装してみようというやつが出てきた。
それに比べてPythonは、Zopeというデファクトスタンダードが既に存在していたけど、
ただ、どうやってもRailsもどきがRailsを超えることはできないのは間違いない。
パクリはオリジナルを超えられない(キリッ って定型句だけど、
これってキリッって言いたいだけだと思う。
D言語って超えたって?
B言語って超えたって?
PHPで同じ事をできないわけではないだろうけど、Ruby on Railsほど簡潔にはできない
まあくだらねえWEBサービス作って喜んでる情弱は早く死ねって事だよ
そういう理由じゃなくてRailsのほうが単純に情報もプラグインも多いからでしょ
linuxじゃデフォのツールなんだし、ツールとの連携を考えたらpython一択じゃん
わざわざ不合理で不完全な言語を使うなんて
もしも
>linuxじゃデフォのツールなんだし、ツールとの連携を考えたらpython一択じゃん
真実であるのなら、今頃はdjangoの情報とプラグインが溢れかえっているはず
yumや、gdbとgnomeの拡張がpythonであるからといって、それをwebアプリでも使いたいと思う人は少ないというだけのこと。
ソースからインストールする必要があったとしても、web開発ではrubyを使いたいという人が多いというだけのこと。
というか、世界中のPythonプログラマが Remeber Zope!! を合い言葉に
打倒RailsたるWebフレームワークを開発しているはずだけど、
Railsも登場してから、かなりの年月が経過しているんだけどなぁ....
その間にもRailsはRails 3が登場して、REST/AJAXの強化等の進化が継続しているよ
Ruby では
ary.map {|x| x**2}
map(lambda x: x**2, ary)
となり、lambda の本体が1つの式では表現しきれなくなると
.....
と書き換える必要があります。
f = lambda x:(x and f(x-1)*x)or 1
RubyにはPythonのように「lambda本体は式でなければならない」という限定がありませんから、
f = lambda{|x|if x == 0 then 1 else x*f.call(x-1) end}
または
f = lambda{|x|x == 0 ? 1 : x*f.call(x-1)}
と書けます。lambda内でreturnが使えますから、書きたければ
f = lambda{|x|if x == 0 then return 1 else return x*f.call(x-1) end}
でもOKです。
348
これはPythonをdisっているように見せかけてRubyをdisっているのか? と一瞬思ってしまったw
だってRubyのほうが長くない?CLのfuncallみたいなcall()がちょっとうざいし…
そしてどっちもlambda式の中で束縛変数の名前で再帰可能、と
print [x*2+100 for x in [1,2,3,4,5] if x > 2 and x < 5]
暗号のように見える。
puts [1,2,3,4,5].select{|i| i > 2 and i < 5}.map{|i| i*2+100}
思考の流れと、コードの流れが一致しているので書きやすい。
map(lambda x: x*2+100, filter(lambda x: x > 2 and x < 5, [1,2,3,4,5]))
pythonて可読性が高いのをうたってる割にはそこいまいちだよね
Rubyの場合には、左から右へと無名関数がデータフローあるいは
関数型プログラミングに不慣れな初心者でも、参照透明性のあるコードが自然に書ける
プログラマにとって優しい or プログラミングの楽しさを教えてくれるのがRuby
それと比較すると、Pythonのコードは、関数型プログラミングというものが
いかに高度で難解なものであるかという事をもったいぶってプログラマに押し付ける
もしもPythonしか知らないプログラマであれば、関数型 = 難解 という印象を持つだろう
階乗計算くらいだと単純すぎて、ナゼ重要なのかが分かりづらいと思うのでコードで示す
result_list = source_list.map { |elem|
x = foo(elem.x) # ここが局所宣言を書く部分
x + y # 最後に評価された式の値が、無名関数のリターン値になる
}
Rubyでは、map等に与える無名関数の中で局所的な環境(クロージャ)が作られるから、
x = foo(...) のような代入文がいくつでも(= 複雑な処理でも)書ける
このポイントは、実用的なプログラムを関数型風で書こうとした時に、威力を発揮する
余計分かりづらくなった
高卒ドカタなんだろうなぁと可哀想になる
集合の表記に似せてることが分かるから
355
>map/filterはfor/ifと同じだと言っているだけだから、難解という印象は持たない。
関数型プログラミングに慣れた、あるいは得意な人であれば、そういった印象なんだろね
Rubyの魅力はこれから関数型プログラミングを学ぼうとする初心者、 あるいはそんな初心者へ教える立場から見た、優しさ or 分かりやすさなんだ
[1,4,3,2].sort.reverse.map{|x| x.to_s}.join('-')
Pythonだと読みにくい。
'-'.join(map(str, reversed(sorted([1,4,3,2]))))
Pythonでは思考の流れと一致しないばかりか、「カッコだらけ」のコードになると.....
カッコだらけのコードを分かりやすくする基本的な方法は静的単一代入じゃないか
Rubyのやり方は基本ではなく玄人のやり方だろ
Pythonでは組み込みの型でメソッドチェインはやって欲しくないな
似たようなコレクションtuple,deque,array,queue等にも同じメソッドが必要になってくるし。
372
外部のライブラリでも列挙可能なものは、たいていEnumerableモジュールをimportしてますね
Rubyユーザーは列挙可能なものはmapやselectできて当然だろって思ってる気がします
Pythonは「何かを便利に書くためのしわ寄せ」をはっきり寄せてくる
得意と不得意を言語レベルではっきり主張するのでメリケン好みと言えなくもない
Rubyは全方位になんとなく八方美人なので、全体的になんとなく書きやすくてなんとなくキモくて遅い
「書きにくいってことはその処理に向いてないってことだから諦めろ」を地で行く
無名関数が文を使うほど複雑なら名前を付けるのが Python 流と想像。
これを読みづらいと感じるのは、左から右に流れる
もしかしてアラビア語ネイティブな人からすると逆に読みやすいのか?
というタイトルの記事をいつか書けるようになりたいなっ
ああっ、ちょっと待って。できるだけ多くの人の目に入ってくれたらと思ってやった出来心なんだよ。許して。
でもさ、HTML?ああ、ホームページビルダーで見たことある!レベルの人間なんだよ。
だからこの記事読んでも何を勉強すればいいのか皆目見当がつかない。HTMLやればいいのは間違いなさそうだけど。
でも俺は「完全に一致」みたいな検索システムが作りたいわけじゃない。
利用者が自分でページを作って、そこに人が集まってみたいなページがつくりたいんだ。ごめんよくわかんないよね。
Facebookの中のFacebookページの仕組みの部分だけをつくりたい、というのが一番近いかも。
ねえ、何を勉強すればいいと思う?こういうのはてなーの人なら詳しいと思って。
あ、待った!そうだよね、自分で何も調べずに教えてとか礼儀に欠けるよね。ちょっとタンマ。
==============================================================================================
よし、調べてきた。Ruby on RailsっていうのがWEBサービスを簡単に(?)作れるらしいですね。
でも、それが自分の作りたいものに適しているのかが分かりません。
少なくとも「完全に一致」の人はRoR(こう略すので正しいんだよね?)使ってないし。
だから、自分がこれからRoRを勉強するのが適策なのか、そうじゃないのかだけでも教えていただければ幸いです。
いや、ごめん、ホントはそんなことが聞きたかったんじゃないんだ。
本当は上記エントリでやる気になったけど、一人でスタートするのが寂しいから、誰かに「頑張れ」って言って欲しかっただけなんだよ。
かまってちゃんで申し訳ない。
【音注意】Count Down Tube http://www.leno-ig.com/ja/youtube/channel/
Count Down Tubeはチャンネル別に、トップソングをカウントダウン形式で視聴出来ます。
iTunes Music Store のプレビュー(30秒)では物足りなかったのが一番の理由です。
プレビューの短さを補うために、YouTubeにあるPVを再生しようと思いました。
また、1曲づつクリックして再生するのが手間だったので、カウントダウン形式で自動再生させました。
計4日で内訳は
「iTunes Music Store 、YouTube、アーティスト、ユーザすべてにメリットがある」
「アクセス増への対策」
「広告」
「機能追加」
[twitter:@leno_ig]
http://anond.hatelabo.jp/20101219185436
http://anond.hatelabo.jp/20101203150748