interlude

プログラミングや私的なこと

ActiveRecordをちまちまと読みます その2

引き続き読み進めていきます。 https://github.com/rails/rails/blob/master/activerecord/lib/active_record/base.rb 上記リンクの38行目から読みます。ActiveRecordのパラメータの受け取り方についての説明が書いてます。 翻訳文 アクティブレコードは、コ…

ActiveRecordをちまちまと読みます その1

はじめに こんにちは!貧弱スキルなRailsエンジニアです。 ロクにSQLも書けない私がDBをよしなに出来るのも、ひとえにActiveRecord様のおかげであります。しかし普段お世話になっておきながら実は仕組みがあまり良くわかっていない・・。用法、用量を知らな…

MySQLでカラム名にcurrent_timeを使ってはいけない

表題のままなんだけど、where句で'current_time'というカラムに対して比較演算子を用いて抽出しようとしたけど期待される結果が出なくておかしいな?と思って調べたところcurrent_timeは予約語なんですね。。本来はカラム名に使わないのがベターなんですが、…

railsのaccepts_nested_attributes_forでhas_oneな時の注意点

Railsでモデル同士がhas_oneの関連を持っている時、buildしようとしたらundefined buildと怒られたので原因を調査したところ、子モデルをbuildしたい時は以下のようにすることが分かった。 has_many → 親.子.build has_one → 親.build_子 例えばUserという親…

gemfileでmysql2をbundle installしようとしたら失敗した件

bundle installしたら An error occurred while installing mysql2 (0.3.18), and Bundler cannot continue. Make sure that gem install mysql2 -v '0.3.18' succeeds before bundling. というエラーが出た。 gem install mysql2 -v '0.3.18'を実行するも、…

bundle installが失敗した時の解決法

やったこと gemのバージョンを最新にした。 gem update --system エラーメッセージは以下のとおり Gem::RemoteFetcher::FetchError: Errno::ETIMEDOUT: Operation timed out - connect(2) for "rubygems.global.ssl.fastly.net" port 443 (https://rubygems.…

Backbone.jsでモデルを作成する

Backbone.jsとは? jsのフレームワーク。煩雑になりがちなjsのコードを管理しやすくするためのもの。 Backboneモデルについて アプリケーションで使うデータを構造化したもの。 早速例として連絡先モデルを作ってみる。 // extend()メソッドを呼び出すことで…

ステータスコード304

ステータスコード304とは一体何かステータスコードは40種類くらいある 200番とか400、500番は馴染みがあると思うけど、 300番はあまり見たことがない。その中でも304は特に何なのか分からない 意味は「リソースは特に更新されてない」という内容になる 実際…

rubyモジュールの使い方

モジュールの使い方 module_functionで宣言するとメソッドとして扱える 例 def fuga(name) puts "#{name}" end module_function :fuga もしくはincludeしてあげることでメソッドとして扱える module hoge def fuga puts "fugafuga" end def self.fugafuga(na…

sinatraでPUTメソッドを実装したい

解決策 enable :method_overrideを記述すること sinatraのアップデートメソッドを実装しようとしたら、なかなか上手くかなかった。 (エラーメッセージは記録するの忘れた。後悔。。) そこで調べてみたところ、以下の記事を発見! SinatraでHTTPメソッドのDELE…

ストアドプロシージャは使うべきか

結論便利だとは思うけど、結局SQL書けた方が幅広く対応出来ると思うので、積極的に使おうとは思わない。ストアドプロシージャとはストアドプロシージャはデータベースの一連の処理手順をまとめたもの。 プログラミングでいうところのメソッド。メリット1.ア…

書きたいという気持ちが大事

書きたいという気持ちで書いたものは熱量を感じる。 絵も同じで描きたいという想いを掻き立てられてて描いたものは、 たとえ理解を得られないとしても本人は満足するはず。義務感で書いていても、文章を書くことに長けていれば一定の品質は担保されるのだろ…

脳味噌を見せる方法

結論から言ってしまうと、紙とかブログとかに自分の気持ちや考えたことを書いてみること。 人間は起きてから寝るまで毎日何かしら考え事をしてる。 ご飯は何を食べようかだとか、何の服を着るかとか学校とか仕事とかアニメとか 自分が関心のある出来事につい…

sinatraでyaml読み込もうとしたら出来なかった件

以下を参考にsinatraアプリを作成していると問題発生。 [Ruby] Sinatra + PostgreSQL + Unicorn な Web サーバーを Heroku に構築する | Developers.IO 以下のように設定したら動作したが、.envファイルを読みに行ってないのかな。。。 変更前: ActiveRecor…

MongoDBのMapReduce関数について

MapReduce関数 集計を行うための関数です。Map関数 emit = 必要な項目を抜き出すReduce関数 集計するロジックを担当する最後に上2つを掛け合わせることでMapReduce関数が出来上がるリレーショナルデータベースと違って、MongoDBはクエリの書き方が違うので S…

よくググって答えを探しますが

答えそのものよりも、考え方について書いてあるほうがありがたい 答えそのものが書いてあると、自分自身の考えが入り込む余地が無い。 答えが分かった時点で思考が止まってしまう。 正確には分かったつもりになって、それ以上理由や成り立ちを追求しようとし…

HTMLは何がハイパーなのか

ハイパーテキストってなんだ? テキストは文書だけど、ハイパーが付くということは、ウィキを参照すると「上」「超越」「向こう側」という 意味があるので、「文書を超えた文書」てことになる。 どの辺りがハイパーなのか 他の文書へリンクしたり、自分の文…

kintoneを無料で使う方法

使う方法は2つ。 1,30日間無料お試し期間を利用する 2,開発者ライセンスに申し込む 1,30日間無料お試し期間を利用する 以下のURLからemailアドレスを入力して送信する。 https://kintone.cybozu.com/jp/trial/ ※30日間が過ぎてお試し期間が終了したら、他の…

kintone勉強会を振り返って

【感想】 プロセス管理について参加者が理解してもらえたようだったので良かった。 参加者のkintoneへの理解度が高かったため、こちら側のつたない説明でも プロセス管理を理解して貰えたので、参加者に助けて貰えた部分が大きい。【どんな人だったか】 kint…

行動を先にするか、考えることを先にするか

自分は考えるより先に行動にする性格なのだけど、 何も考えずに行動すると、当初の目的から逸れていくことが多いことに気がついた。 具体的には実践と理屈の順番が 1,実践 2,理屈 になってるということ。 例えて言うなら、新作のゲーム買ってきて、説明書読…

カード型データベースはエクセルみたいなもの?

DB

カード型データベースについて調べてますが、 カード型データベース - Wikipediaを見ても "ある構造を持ったレコードを、単純に必要なだけ積み重ねた構造を持つ。" というなんだかよく分からない文章なので、余計に混乱する。ある構造ってどういう構造だ。 …

kintone プロセス管理のイメージ

kintoneのプロセス管理は、複数人でレコードの状態を管理する時に効果を発揮します。 プロセスというのは順番のことなので、順番を管理するということを意味します。プロセス管理のイメージは、作業内容と担当者を決めて、順番通りに処理する。というのがテ…

remark.js使ってスライドを作る

remark.jsとは マークダウンでスライドショーが作れるというツールのことです。http://remarkjs.com/上記のリンク先を見ると、スタイリッシュなスライドを作れることが分かる。早速使ってみるべく、githubへ。https://github.com/gnab/remarkスマホ対応もし…

手段じゃなく目的にこだわりたい

流行りの技術とか魅力的だけど、手段にこだわるのは間違ってるなと気づいた話です。先日、本屋に行った時のこと。 何か儲け話はないかなと株とか金融関連のコーナーを見ていると、rubyという文字が目に入ってきました。なぜここにrubyの本が置かれているのか…

kintone プロセス管理の設定画面で分かりにくいところ

プロセス設定画面の項目名と、項目の並び順だと少し分かりづらいかもしれません。 プロセス管理について 参照 https://help.cybozu.com/ja/k/user/whatsprocess.html プロセス管理機能ではワークフローを設定することが出決ます。 レコードのステータスを管…

kintone APIでレコードを追加する

kintone APIでレコードを追加する方法です。 最初にアプリの設定からフォームの配置とフィールドコードを設定しておく必要があります。 (function() { "use strict"; // 詳細画面を開いた時のイベント kintone.events.on('app.record.detail.show', function…

kintone APIのレスポンスパラメータのプロパティについて

kintone APIのレスポンスパラメータには、プロパティが14個用意されています。 ということでそれぞれのプロパティをアラートで表示させてみました。 (function() { "use strict"; kintone.events.on('app.record.detail.show', function(event){ // フィール…

kintoneでアプリのIDとレコード番号を取得する

kintoneで作成したアプリは、それぞれにアプリIDが割振られています。このアプリID、javascriptでレコードの操作を行う際に必要になります。ちなみに割振られたIDと、レコード番号を取得するコードは以下のようになります。 (function() { "use strict"; kin…

windowsにphpをインストール

php

ローカルのwindowsでLAMPの開発環境を構築するならXamppやvagrantを使うのが一般的です。 しかしコマンドラインからPHPのスクリプトファイルだけを実行したい場合にはXamppを起動させるまでもない。 じゃあwindowsにphpをインストールしてみよう!ということ…

配列とリストの違い

配列とリストの違いはメモリの確保の仕方が異なることです。 メモリの領域を意識しなくて良くなりましたが、意識しておくと幸せになれそうです。 要素の数とデータ型について 要素の数 格納出来るデータ型 配列 決まっている あらかじめ決められた型だけ リ…