サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
Pixel 9
tagamidaiki.com
みなさんこんにちは! Railsで僕がよく使うimpressionistというRailsのGemがあるのですが、それを用いてランキング機能を作りたい!と思ったので共有します。 一参考になればいいなぁと思います。 ランキングのコード ひとまずコードです。 # return [ #, #, ....] def daily_article_ranking ids = Impression.where("created_at >= ?", Time.now.yesterday).where("created_at <= ?", Time.now).group(:impressionable_id).order('count_all desc').limit(10).count.keys Article.where(:id => ids).order("field(id, #{ids.join(',
みなさんこんにちは! リレーションを組んでリレーション先も同時に消す方法を勘違いしていたので自分の戒めのためにメモとして残しておきます。 データを消すときはdeleteメソッドを使ってcascadeをtrueにすればリレーション先も消してくれると思っていました。 ただドキュメントよく見ると、この値、defaultではtrueなんですよね・・・ これではうまく消えない・・・ではどうすればいいのかというとリレーションを組んでいる部分でdependentオプションをtrueにしておかなければならないのです(´・ω・`) つまり2箇所をしっかりtrueにしておけばリレーション先もうまく消えてくれる、ということです。 これだけではブログ記事としてはなんだかなぁなので一応確認しておきます。 データベース、コードの確認 最後に データベース、コードの確認 CakePHPは前まとめたもので作ってあることを
みなさんこんにちは 最近は個人プロジェクトもお仕事でやらせていただいてるプロジェクトもGithubで管理することが増えてきました Githubだとissueとかmilestoneとかも管理出来るので楽ですよね ただ全部GUIだとすごい面倒なんです、出来ればターミナルから全部やりたい。GUIに移動するのもターミナルから開くんならストレスも少ない。 てことで色々探してたらやっぱありますね。ありがたいの言葉しかないです。 Githubの色んな機能をターミナルから使えるようになるhubとissueをターミナルから確認出来るgit-issue これらのインストールの仕方、使い方等をまとめとこうかと思います hubのインストール、使い方 インストールはめちゃ簡単 Macなら $ brew install hub で入ります! インストールが出来たかどうかの確認は下のように表示されたらOKっす $ gi
こんにちは! Rubyのgemであるcapybara-webkitをインストールしてスクリーンショットを自動で撮って来てもらおうと思ったのですが、 MacのほうでもCentOSのほうでもqmakeコマンドがないよって怒られてしまったのでまとめて調べてみました。 以下のページに全て書いてありました。 Installing Qt and compiling capybara webkit OS X Mavericks 10.9とMountain Lion 10.8の場合 OS X Mavericks 10.9とMountain Lion 10.8の場合はHomebrewであればとても簡単です $ brew update $ brew install qt4 もし他のMacOSの場合は参考ページに書いてあるのでそちらをご確認ください。 Installing Qt and compiling ca
こんにちは! 普段からFacebookのAPIを叩いたりしているのですが、アクセストークンの取得の方法をなんとなくまとめる機会があったので、このブログでも軽くまとめていこうかなと思います。 そもそもアクセストークンって? アクセストークンとは、APIを叩くために必要な鍵みたいな存在です。 ちょっと重要な情報(非公開にしている投稿や画像、個人情報など)をAPI経由で取得したい!と思ったとき、その情報を取得しても構わない人にアクセストークンを渡すことによってデータへのアクセスを許可する役割があります。 とりあえず重要な情報にアクセスしようとするとアクセストークンが必要になるよ!ってことだけ覚えておくといいかもしれません。 今回取得するFacebookのアクセストークンは自分自身へのアクセストークンを取得する方法なので、例えば自分の持っているFacebookページの投稿に対するインプレッションを
jQueryで親要素や子要素を取得する方法をまとめてみました。 なんだかんだで書いておかないと忘れてしまうので。。。 親要素を取得する parent([条件等]) 直近の親要素のみを取得し、1つ上以上の親を探さない。 条件を書かなければ直近の親要素を、条件を書くと条件に一致する場合は要素が、一致しない場合は空の配列が返ってくる 例) #content の親要素である div を取得する children([条件等]) その要素の子要素のみ取得する。子孫は取ってこない。 条件にあてはまる場合はその要素が、あてはまらない場合は空の配列で返ってくる。 例) 子要素の span を取得する (p に囲まれた span は取得出来ない) 最後に jQueryを使って長いですが、未だにちょくちょくしか使わないためメソッド名と使い方が覚えられない。。。 ということでメモ記事でした。誰かの参考になれば!!
最近はRubyOnRailsをごりごりいじって色々やってます。 その中でrails_admin gemを導入する機会があったのですが、結構つまづいてしまったので記録として残しておこうと思います。 Rails – 4.1.0 Ruby – 2.1.0 rails_admin – 0.6.2 devise – 3.2.4 まずはGemfileに以下を追記します。 gem 'rails_admin' gem 'devise' rails_adminでは管理者ログインとしてDevise gemを使うことが出来ます。 その他にもSorceryやManuallyというgemも使えるようですが、自分はDevise gemしか使ったことないのでDeviseにします。 そしてインストールしてdeviseをインストールします。 $ bundle install $ bundle exec rails g de
みなさんこんにちは!! 以前CakePHPとWordPressでアプリを組んだのでリレーションとか色々書いていこうと思います。 WordPressではデータを入力、保存するのみで、主なデータ表示はCakePHPで行いました。 WordPressのデータをCakePHPで取得するために設定する CakePHPとWordPressはインストール済み、また記事は何個か入っている、タグも何個か設定してある前提でやっていきます。 今回やるのは「記事からその記事に結びついているタグを表示する」ことと「タグからそのタグが結びついている記事を表示する」ことです。 自分でもちょっとおかしいと思うところは結構ありますw WordPressのデータベースの構造は以下を見ればわかります。 http://wpdocs.sourceforge.jp/データベース構造 CakePHPではきつそうな部分が混ざってますがそ
こんにちは! 最近隣のエンジニアやいつかどこかの記事でSlimやばい的なことを聞いた気がするのでじゃぁやるか!って完全にノリで今回Slimに入門してみます。 そもそもSlimとは?? Ruby製のテンプレートエンジン。 軽くて速く、また習得するのも容易。 Slimをやるときにとりあえず覚えておくといいのは 拡張子は.slim インデントの深さで入れ子構造を表現する 通常のHTMLから, >, />を取り除くと基本OK それでは実際のコードを見てみましょう。 とその前にSlimをインストールしましょう。 gem install slim 今回検証に使った環境は以下です。 Ruby・・・2.1.0 Gem・・・2.2.0 Slim・・・2.0.2 以下がSlimのサンプルコードです doctype html html head title Slim Example meta name="key
みなさんあけましておめでとうございます! 2ヶ月くらい更新してなかったですが、ブログは書き続けてたほうがいいなぁと思っていたので新年からまた書き始めます! それでは早速書いていきましょう。 最近Composerを使ってCakePHPでFacebookログインを実装したので、そこまでの流れをまとめておこうと思います。 Composerで必要なものをインストールする composer.jsonから作っていきましょう。 CakePHP、Facebook PHP SDKをインストールするので以下のように書けばインストール出来ます。 { "name": "facebook-login", "repositories": [ { "type": "pear", "url": "http://pear.cakephp.org" } ], "require": { "pear-cakephp/cakeph
RubyのGoogleDrive Gemを使ってGoogleDriveをさわろうとしたところ、OAuthの認証でつまづいたのでそのメモします。 OAuth2.0の流れはこんな感じです。 ClientIDとClientSecretを発行する 認証する アクセストークンを取得する リフレッシュトークンからアクセストークンを再取得する GoogleDrive gemを使ってみる ClientIDとClientSecretを発行する まずはプロジェクトを作成します。 https://cloud.google.com/console/project APIsから「Drive API」と「Drive SDK」をONにします。 「Credentials」から「CREATE NEW CLIENT ID」から今回のプログラムで使う必要項目を取得します。 以上のような項目を選択 これでClientIDとCli
みなさんはgitを使えますか? 僕は今まで複数で開発する経験がなかったのでバージョン管理システムすらほとんど使ったことがありませんでした。 ただ、1人で開発するにしても、履歴が残せるというのはすごいメリットだと思うので今回gitを勉強しました。 githubも使いたいですしね! 今回のこの記事では、僕がgitをまぁまぁ使えるレベルまでに行った勉強方法をまとめました。 もしこれから勉強しようとしている人がいたら参考にしてみてください。 まずはネットで概略をつかむ gitとはどういうものなのかをつかみましょう。 この段階では手を動かして実際にgitを使ってみてもいいですし眺めるだけでもいいです。 どういうものなのか、どういうことが出来るのかを最初に俯瞰しておくとのちのち役に立つかもしれません。 以下は僕が参考にした記事です。 参考にしてみてください。 イラストでわかる!git入門の入門 Git
こんにちは! 前から1回Facebookページのタブを作る流れをまとめたいと思っていたのでこの機会にまとめちゃいたいと思います! ちなみにFacebookページのタブとは、下の赤枠の部分のことをさしています。 タブページを作るのに必要なもの SSLの通ったサーバー Facebookページ Webページを作成するための知識 それでは作っていきましょう。 Facebookアプリを作成する 昔書いた記事にFacebookアプリを作る方法があるのでそこまでやってください。 「設定」から「App Domains」の部分に今回使用するサーバーのドメインを登録しておいてください。 「Add Platform」をクリックして「ページタブ」を選択してページタブ情報を入力します。 「Page Tab Name」はページタブの名前を(Facebookページのタブ画像の下に表示される文字列です)、「Page Ta
こんにちは! そういえばComposerでCakePHPをインストールしたあと実際にアプリ開発を始めるまでの記事を書いていないことに気づいたので書きます!! Composer、最初いじったときどうしたらいいのかわからなかったのですが最近やっと慣れてきてもう手放せない子になりつつあるのでもしまだ使ってない!って方の手助けが出来ればいいなぁなんて思ってます! それではやっていきましょう!! Composerをダウンロード それではいきます! Composerとは(簡単に) composerはライブラリの依存関係を解決してくれるツールです。 例えばあるプロジェクトではAというプラグイン、Bというプラグイン、Cというプラグインが入っていないと動かない!みたいなことがあったとします。 そのときドキュメントを作って1個ずつダウンロードしてインストールして・・・ってやってると、正直やってられないですよね
CakePHP2を使い始めて約2年が経ちましたが最近やっとコアライブラリまで目がいくようになりました(遅い) CakePHPにはコアライブラリとしてたくさんの便利な関数がつまっています。 これらを知っているだけでも開発が相当便利になるなぁと最近感じているのでその中から今回は「String」ライブラリの中から便利だなぁと思う関数を紹介したいと思います。 Stringライブラリの使い方 使いたいクラス内で以下のコードを挿入すればあとはスタティックに使うことが出来ます。 App::use('String', 'Utility'); String::tokenize($data, ":"); String::tokenize($data, $separator = ‘,’, $leftBound = ‘(‘, $rightBound = ‘)’) $separatorで$dataをトークン化します
みなさんこんにちは! ついにCakePHP3のdev preview 1が出ましたね! CakePHP 3.0.0 dev preview 1 released テンション上がったので少しですが試してみようと思います。 CakePHP自体の開発スピードが最近上がってきたと感じるのでわくわくしてます。 それでは一緒にいじっていきましょう! CakePHP3をインストールする CakePHP3からComposerが必須になったのでComposerからインストールします。 $ curl -sS https://getcomposer.org/installer | php $ php composer.phar create-project -s dev cakephp/app . これでインストール完了です!簡単!ひゃっほーい! CakePHP2からはdatabase.phpがなくなり、app
まだまだあけましておめでとうございます。 年始をいかがお過ごしでしょうか。 私はいつものように、日常と変わらない生活をしています。 さてさて、ユニットテストの件ですが、以前更新して随分時間が経ってしまいましたが、書いていこうかなぁと思います。 今回はバリデーションをテストするための方法を書こうと思います。 前回の routes.php に対するテストの記事は以下になります。 CakePHP2でユニットテスト 〜route.php編〜 バリデーションを適応していく 今回はUserモデルに対してnameにnotEmptyを、telに対して独自のバリデーションであるcheckNotEmptyとnumericOnlyを適応していると仮定します。 User.php App::uses('AppModel', 'Model'); class User extends AppModel { public
こんにちは! 最近流行り?のComposerを使ってCakePHPを導入していましたが、色々使いにくいなぁと思っていたのですが、それは僕が使い慣れてないだけだったので、これからCakePHPをComposerで導入しようと思っている人向けにやるべき初期設定を書こうと思います。 それでは始めましょう composer.jsonの設定 composer.jsonの設定は以下のような感じです。 本当に最低限のインストールしかしない設定になっています。 { "name": "test-app", "repositories": [ "type": "pear", "url": "http://pear.cakephp.org" ], "require": { "pear-cakephp/cakephp": "2.3.*" } "config": { "vendor-dir": "Vendor/"
app.coffeeのコード 以下が今回書きなおしたCoffeeScriptのコードです! コンパイルすればapp.jsが生成されるのでそれを下のindex.htmlに読みこめば使えるはずです。 app.coffee jQuery -> class Task extends Backbone.Model defaults: title: 'do something' completed: false validate: (attrs) -> if _.isEmpty attrs.title 'title must not be empty!' initialize: -> @on 'invalid', (model, error) -> $('#error').html error class Tasks extends Backbone.Collection model: Task cl
みなさんこんにちは。 今回はCakePHP2でユニットテストをする方法を書いていきます。 僕は最近やっとCakePHPを使い始めて1年経過しましたが、多少大きな開発になるとやはりテストを書いたほうが早く開発が出来ますね。 また、やはりなんといってもテストがあるととにかく安心する!←これ大事 開発を進めていくにあたって、安心というものは最高に重要ですね。 僕は普段忙しくても、routeのテスト、モデルのテストは必ず書くようにしています。 最低限ここらへんのテストが正常であれば動くので。 viewとcontrollerは変更が激しいのでなかなか書かないんですけどね。。。 さて、前置きはこれくらいにして、これから何回かにわけて route.phpのテスト Modelのテスト Controllerのテスト Viewのテスト を書いていきたいと思います。 それでは今回はroute.phpのテストを書
> 簡単にCSVダウンロードが可能になるCSVヘルパーの作成方法をまとめます。 ここに貼ってあるコードは僕のgithubからダウンロード出来ます。 >> cakephp-csv-helper – github それでは使い方を紹介します。 まずはCsvHelper.phpを作成しましょう。 app/View/Helper 以下に CsvHelper.phpとして以下のコードをコピペしましょう。 <?php class CsvHelper extends AppHelper { var $delimiter = ','; var $enclosure = '"'; var $filename = 'Export.csv'; var $line = array(); var $buffer; function CsvHelper() { $this->clear(); } function c
この記事はSMASHING HUBに掲載された 12 Evil HTML Tag Mistakes You Really Should Avoid の内容を日本語訳したものです。 HTMLを書く仕事をしている人たちはHTMLポリシーについて熟考し、気をつけなければならない。ここでは、コード内でよくある小さなミスを取り上げ、それぞれのHTMLタグのミスに名前をつけました。これから取り上げるようなミスを避けたいのであれば、この記事はあなたを助けることになります。以下で、コーディング中に犯しがちなもの、無視されがちなものについて解決策とともに、議論しています。これらのヒント(チップス)はHTMLを書く仕事をしている全ての人たちにとって役立つものになるでしょう。 ミス1:HTMLタグの間違ったネスト HTMLタグの適切な閉じ方は重要です。HTMLタグは上から書いた順とは逆の順番で閉じていかなければ
単純に乱数を生成したい場合は rand()関数を使いましょう。 rand() マニュアル http://jp2.php.net/manual/ja/function.rand.php ただこの場合、0〜10の乱数が2個必要!とかいうときに結構な確率で数字がかぶってしまいます。 なので次のようにしましょう。 range($min, $max)関数で $minから$maxまでの整数値を得る range()関数 http://jp2.php.net/manual/ja/function.range.php shuffle()関数で値をシャッフル shuffle()関数 http://jp2.php.net/manual/ja/function.shuffle.php コードで書くとこうなります。 shuffle($random); // 配列をランダムに並び替える // $randomには $r
PHPで0詰めをしようとした場合、printfで制御してやれば簡単に出来たのですが、JavaScriptの場合だとどうしても0詰めがうまく出来ない。 普通にやっちゃうと桁が合わずにカッコ悪い感じになってしまいます。 2012/8/6 14:4 2012/11/13 8:14 2012/1/3 8:9 8月6日20:18 追記 @inaba_n 様にアドバイスをいただいたので追記します。 以下のように書くと更に高速になります。 <script> var date = new Date(); var dd = ("0"+date.getDate()).slice(-2); // 08 </script> 上記の書き方だと、最初に紹介した書き方より高速に動きます。 無理やり型変換をしている部分がない分それだけ速く動きますね。 情報提供ありがとうございます! —–以上追記—– 調べた結果、ここのブ
みなさんこんにちは。 FacebookのGraphAPIってやっぱ楽しいですね。 個人情報をここまで簡単に取れるAPIをいじれるのはとても楽しいですよ。 今回はPHPを使ってあるページにいいねが押してあるかどうかを判別する方法を紹介します。 簡単なことではありますが、2通りの方法を紹介します。 以下が今回の記事の目次です。 ◯ 今回やること 1, Facebookページにいいねが押してあるかどうかを判別する 2, あるWebページにいいねが押してあるかどうかを判別する ◯ 最後に 今回やること ページにいいねが押してあるかを判別するのですが、ページにも2種類あります。 Facebookページ その他のWebページ 僕が調べた中では、それぞれやり方が異なっていたため、それぞれのやり方を紹介します。 以下からPHPのFacebookSDKをダウンロードしておいてください。 github – F
みなさんこんばんは。 深夜ではありますが、ブログを書きたくなったので更新します。 僕は本が大好きです。 本が大好きなのでついつい買ってしまいますし、積読しているものも多いです。 また、本がたくさんある空間も好きです。なので暇さえあれば本屋さんに行ってぶらぶらしています。 僕は今渋谷にいますが、渋谷には本屋さんがたくさんあります。 今日はそんな渋谷の本屋さんにランキングをつけて、僕が好きな本屋さんTOP3を決定したいと思います。 第3位 小さいけど落ち着く本屋さん 啓文堂 渋谷 マークシティ前店 第3位のこの本屋さんは、いつもいる場所からとても近いのでよく通っています。 僕ははやりプログラマーであるので、プログラミングの本がたくさんあるコーナーにいつも行ってしまいます。 ただ、最近中国語にも興味を持ち始めたので、言語のコーナーにもよく出没しています。 最近気づいたのですが、ここの本屋さんの言
単一のフィールドでバリデーションを行うには、モデルでバリデーションを定義してやればいいのですが、複数のフィールドにかかるバリデーションはどうすればいいのかわかりませんでした。 今回取り扱う、複数のフィールドにまたがるバリデーションというのは以下のような電話番号のフィールドや名前のフィールドなどです。 結論からいうと、 自分で関数を定義する ことによって解決しました。 例えば、空のフィールドを許さないバリデーションを行う場合は以下のようにモデルに書くと思います。 モデル <?php class Posts extends AppModel { public $validate = array( 'test_field' => array( 'rule' => array('notEmpty'), 'message' => '文字を入力してください。' ) ); } ここでruleに指定してあ
こんにちは。 Google スプレッドシートに書込が出来て喜んでいるたがみです。 早速ですが、Googleスプレッドシートに書き込みが出来ることを知っていますか? これ出来ると便利なんですよねー。 フォームから入力されたデータを見る人はプログラムわからない人だったり、データベース触れない人だったりするんですが、ExcelベースのGoogleスプレッドシートだと見た目Excelなんで抵抗なく、触ることが出来ます。 ということで簡単なPHPのクラスを作ったので紹介します。 ただまとめただけではありますが、簡単にスプレッドシートに書込が出来ます! Githubにアップロードしているのでダウンロードしてください。 GgSpread – github それでは簡単なサンプルを作成してみましょう。 1, Zendフレームワークをインストールする ダウンロードしてきたGgSpreadを使用するためには、
jQueryはとても便利なプラグインです。 JavaScriptの普及を助けたといっても過言ではありません。 jQueryのおかげで煩雑なコードをかかずに綺麗なコードで色々なものが作れるようになりました。 今回は少し忘れやすい、jQueryでフォームから値を取得する方法をまとめていきます。 テキスト よく使われる1行のテキストボックスです。 これはとても簡単でform要素に .val() で値を取得することが出来ます。 HTML <form id="test-form"> <input type="text" name="test-form" value="56"> </form> JavaScript var formValue = $('#test-form [name=test-form]').val(); var val = Number(formValue) || 0; // N
次のページ
このページを最初にブックマークしてみませんか?
『tagamidaiki.com』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く