Laravel Debugbar導入でつまったのでメモメモ
基本的に以下のやり方でやりました。
/memory_limit で検索
i でインサートモード
memory_limit = -1 に修正
esc
:wq で保存して終了
な感じでOK
けど、どうしてもデバッグバーで表示されない。
そこでログを調べると以下のような記述が。
[2020-05-13 20:47:40] local.ERROR: Debugbar exception: Route [debugbar.openhandler] not defined. [2020-05-13 20:58:31] local.ERROR: Debugbar exception: Route [debugbar.openhandler] not defined. [2020-05-13 20:58:58] local.ERROR: Debugbar exception: Route [debugbar.openhandler] not defined. [2020-05-13 20:59:20] local.ERROR: Debugbar exception: Route [debugbar.openhandler] not defined. [2020-05-13 21:26:15] local.ERROR: Debugbar exception: Route [debugbar.openhandler] not defined. [2020-05-13 21:48:08] local.ERROR: Debugbar exception: Route [debugbar.openhandler] not defined. [2020-05-13 21:54:45] local.ERROR: Debugbar exception: Route [debugbar.openhandler] not defined. [2020-05-13 21:56:09] local.ERROR: Debugbar exception: Route [debugbar.openhandler] not defined. [2020-05-13 22:06:53] local.ERROR: Debugbar exception: Route [debugbar.openhandler] not defined.
なんのこっちゃ。ルートがうまく設定できていない的なエラーかな。
よくわからないのでそのまま検索すると以下のような指示が出てきた。
php artisan clear-compiled php artisan clear php artisan cache:clear php artisan view:clear php artisan route:clear php artisan config:clear
困ったときの再起動くらいの気持ちで全てのコマンドを実施。
結果
デバッグバー出てきました!!!
今回docker環境だったのでうまくいかなかったのかもしれません。
あとがき
.envに記述した内容が反映されてなくてcache:clearしたことを思い出しました。
もう困ったときはclearしておけば良いかもしれません。
Laravel学習メモ 検索機能の実装
Laravelで検索機能を実装する中で調べたことのメモです。
今回はやりたかったことは例えば検索で「PHP」と入力すると、PHPに対応するIDを取得するというもの。
具体的に以下のように記述することでうまくいきました。
モデル名::where(検索したいカラム名,検索で入力した値)->pluck(取得したいカラム)->toArray();
もっと具体的に書くと
$skillIds = Skill::where('skill_name',$request->input('search'))->pluck('id')->toArray();
みたいな感じです。
「PHP」のような検索キーワードはinput('search')で取得して、その値に対応するIDを取得して、配列型で返しています。
この配列形で返すというのが大事で、LaravelのDB操作では返り値が以下のようになっているので気をつけましょう。
プログラミングの学習方法について
はじめまして、おーやといいます。
これまで出会ったプログラミングの学習方法について、備忘的にまとめました。
どの方法が良いかは人によると思うので、プログラミング勉強しようかな?と思っている人は参考にしてくれると嬉しいです。
勉強始める前に知っておくと良いと思うこと
まず勉強しようと思っている人は色々な目的があると思います。
- 転職したいから
- フリーランスで自由な生活をしたいから
- 副業で稼ぎたいから
- 今の会社でスキルが足りないから
- 個人サービスを立ち上げたいから
- 起業したいから
- とにかくお金が稼ぎたいから
- プログラミング学習方法を発信して稼ぎたいから
その目的を達成するためにどの言語をどういう風に勉強すれば良いかが変わってきます。
例えば、HTML/CSS/XD/PhotoShop/Illustrator → JavaScript/PHP → WordPressのようなルート勉強する方法があります。
デザインやマークアップを学んで、Web制作会社やクラウドワークスからLDや企業Webサイトの制作を受注して稼ごうという人のルートですね。
初学者が学びやすいスキルが多いですが、その反面競争率が高く、単価が低い印象です。
少ない稼働で高い月単価を稼ぎたいのであれば、他の方法を選んだ方が良いかもしれません。
ただし、WordPressで月100万以上稼いでいるという人もいますし、そのような人がどのように稼いでいるのか調べて、自分も同じようにできるか考えてみると良いでしょう。
何がいいたいかというと勉強を始める前に
- どうなりたいかを調べる
- そのために今やっている学習は適切かを調べる
をしっかりやった方が良いということです。
これは私がなんとなくプログラミングの勉強をはじめてしまって、だいぶ遠回りしたなぁと思っているからこその提言です(笑)
どのプログラミング言語から始めたら良いかの調べ方ですが
みたいな方法があります。
調べる時に注意して欲しいのはポジショントーク。
どういうことかというと情報発信している人には目的があって、例えば、HTML/CSSの学習教材を売りたいと思っている人に
「副業で稼ぐために何を勉強すれば良いですか?」
と聞けば
「HTML/CSSが一番良いね!初心者が始めやすいし、まだまだ稼げるし」
と答えるでしょう。
「3ヶ月で月100万円稼げます!私のコミュニティに入って勉強すればね!」みたいなのは本当に可能かよく考えるようにしましょう。
前書きがめちゃくちゃ長くなってしまいました(笑)
ここからプログラミングの学習方法についてわかる範囲で紹介しようと思います。
プログラミング学習サイト
学習方法として多くの人がおすすめしているのが、プログラミング学習サイトの利用でしょう。
有名どころだとプロゲート。
環境構築不要で、実際にコードを打ちながら学習できるので初心者にはとっつき安いと思います。
ただ、過去に大学でプログラミングを学んだことがあったり、業務でマクロを作ったことがあったりするような人には物足りないかもしれません。
少し難易度は上がりますが無料チュートリアルサイトを活用した学習もあります。
有名どころだとRailsチュートリアルやReactチュートリアルでしょうか。
完全初心者だとかなりの確率で挫折すると言われていますが、個人的にはとても勉強になる素晴らしい教材だと思っています。
書籍
昔からある王道な方法です。個人的には一番大好きな方法。
理由は二つ
- 書いている人のバックグラウンドにある程度信頼がおけるから
- 文字を読むことが好きだから
「10年の開発経験から現場で必要な基礎知識を網羅しています」みたいな話はtwitterで言われても信用しにくいですが、本の筆者紹介なら信用できるだろうという感じ。
あと動画や音声よりも文字を読む方が好きというのが一番大きいかもしれません。これは完全に個人の趣味の話です。
オンライン学習教材
紙の書籍ではなく、オンラインで教材をダウンロードして学習します。
ダウンロードできるプラットフォームとしては、noteやtechpitというものがあります。
書籍と比べると、より実践的なアプリを作りながら学習するものが多い印象。
書籍は実践的なアプリを作るより、プログラミング言語がどういうもので、どんなことができるかを網羅的に学習したい時に便利です。
またオンライン学習教材は、感想や進捗報告がよくtwitterで上がっているので、それをみると参考になるかもしれません。
動画
youtubeやUdemy、ドットインストールでプログラミング学習動画が多数アップされています。
youtubeなら完全に無料、Udemyもセール時であれば、2,000円以下で大ボリュームの動画教材が購入可能です。
ドットインストールも月額980円の有料会員になることでみれる動画が増えます。
文字を読むのが苦手という人には最適な学習方法かもしれません。
プログラミングスクール
古今東西、様々なプログラミングスクールがあります。私はテックキャンプエキスパートコース(旧テックエキスパート)に通っていました。
価格は安くはなかったですが以下のような点がよかったです。
- 学習進捗をきびしく管理してもらえる
- 競争を煽られることで学習が進む
- チーム開発が経験できる
プログラミングスクールは、価格や学習期間、学習内容が大きく違うので自分に一番あったところを選んで下さい。
くれぐれもポジショントークには気をつけて!
スクール関係者にアドバイス求めたらほとんどが自分のスクールを進めるということを覚えておきましょう。
オンラインサロン
インフルエンサーと呼ばれる人たちが月額制のオンライサロンをやっています。
そこに入会して、学習教材を使って学習したり、サロン内のメンターと呼ばれる人に質問できるようです。
私があまり利用したことが無いので多くは語れないのですが、サロンについてはとても興味があるので、入会した時は感想をブログに書きたいと思います。
ただ中には入会金数十万円みたいなサロンもあるようなので気をつけましょう。
個人的には月3000円以下くらいのサロンに試しに入ってみて、良ければ続けるし、合わなければやめるというのが良いように思います。
ちなみにオンラインサロンは、信者と呼ばれる支援者とアンチと呼ばれる敵対者で、常に戦争状態なので、その評判が正しいのか中々判断しにくい印象です。
個人メンターに教えてもらう
プログラミング学習の界隈ではよくメンターという言葉が出てきます。
メンターとは、指導者とか助言者とかそんな感じに捉えてもらえたらと思います。
プログラミングを学習したい人が、学習方法や学習する中でつまった時に相談できる人がメンターです。
学習のための課題を出してくれたり、転職支援をやってくたり、メンターによってやってもらえることは大きく変わります。
また、料金も片手間なので数千円で良いよという人から、しっかりアドバイスするので数万円という人までかなり幅広い印象。
メンターを探す方法は例えば
- ココナラで探す
- bosyuで探す
- MENTAで探す
などプラットフォームで探すやり方と、twitterのようなSNSでプロフィールにメンターやりますと書いている人にお願いする方法など色々あります。
最後に
いかがだったでしょうか。私がわかる範囲のプログラミング学習方法について紹介しました。
どの方法が一番良いというのは無いと思うので、自分に合う学習方法を見つけるためのお役に立てたら嬉しいです!
それでは!
どれだけ調べてもバインドの意味がわからない
どれだけ調べてのバインドがよくわからない。
バインドについてわかりやすく解説しているページはないだろうか。
上記のページが調べた範囲ではわかり安かったけど、それでもやっぱりわからない。
デジタルマーケティングについて
無料ということで読んでみました。
内容を自分用に要約
マーケティングは「売れ続ける仕組みを作ること」
売りたい気持ちは見透かされる。買いたい気持ちづくりが大事。
AISAS
Attension → Interest → Search → Action → Share
マーケティングの歴史
2005 バナー広告、SEO、SEM、メールマガジン、アフィリエイト
2016〜 AI、AR、VR
デジタルマーケティングでは「どの媒体」より「誰に」の方が重要
検索による比較が可能
企業からの発信だけでなく、消費者の多様な声を参考にできる
リアルタイムにメッセージが変化するコミュニケーションが可能
売上 = 新規顧客 + 既存顧客*継続率
売上構造、顧客構造を把握することが重要
デジタルマーケティングで一番大事なのは
デジタルマーケティングの仕組みを把握し、自社ビジネスの現状を整理すること
全体像
お客様との接点
↓
サイトに訪問
初回利用、リピート、リピート・・・ロイヤルカスタマー化
メール、サイトUIの改良、LINE、ロイヤリティ
売上を上げるためにまずやることは
売上の構造を知ること
(大矢メモ:どんな時でも現状把握が一番大事。目標設定、課題解決策を考える前に何につけても現状把握。完璧な現状把握は自ずとやるべきことを浮かび上がらせる。現状把握できる仕組みを最初から作っておく必要がある。)
顧客の定義
新規顧客
1年目以内に初めて利用した顧客
継続顧客
2年目以降も利用してくれた顧客
2年目も継続してくれる率が50%以上あることが大切
(大矢メモ:この辺りの定義は最初に社内で合わせる必要があるだろう)
新規顧客からの売上、継続顧客からの売上。これらを分けて把握することが重要。
顧客ごとに購入回数、購入金額、継続率を確認していく。一番大事なのは継続率。
毎年新規顧客を取り込まないとビジネスが成り立たないのは厳しい
長く使ってくれているお客様ほど継続率が上がっていく
新規顧客獲得のために広告費を多く使っても、離脱率が高くてはジリ貧
(大矢メモ:そういう意味で弊社のビジネスモデルも昔はそうだった。今は離脱されない仕組みができていていい感じ。一人あたりの売上より離脱されないことが本当に大事というのは身に染みて感じている。)
F2転換が最も大事。2回目を購入してくれれば、3回、4回と購入してもらえる。
F0(認知)
ディスプレイ広告、リスティング広告、SNS広告、アフィリエイト
F1(新規購入)
ABテスト、サイトUI
F2(2回目購入)
商品、ステップメール、DM
CPA:新規顧客を1件獲得するために必要なコスト
CPO:商品を1件購入してもらうために必要なコスト
新規はCPAをみるが、F2以降はCPOを意識する必要がある
F2に注力するのが最も効率的な方法
(大矢メモ:市場を予測するよりも、小さく試して効果が出るかを何回も繰り返した方が効率がいいように思う。インフラ事業のように小さく試すことが難しい場合はしっかり予測した結果を元に1回だけやるが、サービス事業であれば、試す→直す→試すというサイクルが低コストでできるので、まずは試してみるということができる)
F2転換で最も大事なのがタイミング
最初にサービスを利用してから何日以内にもう一度使ってもくれないとリテンション率が大きく下がるという期間を知ることが大事
どの商品の購入が次の購入につながるかを知ることが大事
そもそもいい商品でないとF2転換しない
サービスを利用し初めてすぐはみんな不安。そのタイミングで不安を解消できるようなメールを送れば効果的。メールを送るタイミングは非常に重要。なんとなく1週間に1回のように送ってはいけない。
CRM=顧客のデータを分析し、適切なコミュニケーションを考えて、長期的な関係を構築していくこと
CRMを考える時、お客様がどう感じているかということにだけ集中する
お客様に直接、どう感じているか聞くことがとても重要
初めてサービスを受けた時に素晴らしい体験をすると、継続してそのサービスを続けたいと思うようになる。
(大矢メモ:gooitの場合、サービスを作るもはメンターなので、メンターにいいサービスを作ってもらう仕組みが重要そう。こちらとしてはメンター、メンティーにとって使いやすいUI/UXを提供することが大事。使いやすいももっと具体的に定義する必要がある)
2回、3回と使ってくれた人にさらに継続して使ってもらうための施策がロイヤルティプログラム
多く使えば使うほど、嬉しいサービスが積み上がっていくとユーザーは似たようなサービスがあっても移動しなくなる。(JALの例)マイルがたまると、予約が早くできる
サービスの利用履歴等から適切なタイミングでメールやLINEで新しいサービスを伝えるのがマーケティングオートメーション(MA)
ユーザ全員に一律で同じメールを送るのではなく、ユーザごとにカスタマイズされた情報を提供する。
広告費はお客様はどれくらい継続して、その期間にどれくらサービスを利用してくれるかを計算し、何ヶ月後にキャッシュを回収できるかを考えて、設定する。売上の10%が広告費というのは間違い。
この商品でいい体験をすると、お客様が自社のファンになってくれるというのが大事
初回利用のハードルを下げることが大事。同意に体験のハードルを上げる。
そうすることでサービスを必要としていない冷やかし客を減らすことができる。
CPA Cost Per Acquisition()
CPO Cost Per Order(注文)
CVR Conversion Rate
コンテンツマーケティング・・・コンテンツを充実させることで集客をふやす
コンテンツマーケティングは非常に難易度が高い。リスティング広告やSNS広告から始めた方がいいのでは。
広告でまずやるべきは何か→アフィリエイトとSEM(SEOやリスティング広告)
商品を知っていて探している人向けの広告。まずはこれをしっかりとやり切る。
次にやる施策が「商品の存在を知らない潜在的な顧客」へプッシュする広告。
SNS広告。かなり細かいセグメントにだけ広告を打つ事ができる。
ディスプレイ広告。yahooやgoogleが運営しているサイトだけでなく、外部提携しているサイトにも広告を打つ事ができる。ここ数年ディスプレイ広告が伸びている。
ネイティブ広告。twitterで言えば、通常の投稿と同じように広告が流れてくる。
SNSは目的があって見にくるのではなく、何となく見ている人が多い。そんなサービスがあるなんて知らなかったという人に届けるのが得意。
みんなちゃんとやっていない。アフィリエイトに強い人が入っただけで売上が3倍に上がったりした。
・売れる仕組みを作る
・検索生、双方向性、即時生
・売上における顧客構造
・リテンションではF2に注力
・CRMは恋愛
・広告費は回収期間を考慮
・優先度の高い広告から実施
・サイト改善はKPIが重要
・カスタマージャーニーを意識してブランドを作る
・全社で強いチームを作る
パスを通すでつまづいた話
laravelコマンドを使おうとしたときに何度やっても
zsh: command not found: laravel
で困った時の話。
解決方法は以下の通り
・シェルをbashに変更
・.bash_profileに正しいパスを設定する
問題が発生した経緯は以下の通り
Laravel入門にしたがってLaravelをインストールして、Laravelコマンドを使えるようにPATHを設定したがうまく行かない。
PATHの設定がbash_profileだったにも関わらず、コマンドの実行はzshでやっていた。
zshってなんやねんとなって調べてみるとシェルの一種らしい。
シェルの説明は以下がわかりやすい。
https://wa3.i-3-i.info/word11219.html
人の命令をコンピュータに伝える仕組みを覚えておけば良さそう。
話を戻す。
zshという仕組みを使ってlaravelコマンドを使おうとしてたんだけど、今回はbashでlaravelコマンドを使うための設定を入れていたようだ。
変更方法は以下の通り
設定ファイルを変更→保存するためには少しvimの使い方を知る必要がある。
iで入力モード
更新後、:wqで保存して終了できる。
再起動してzshからbashにシェルを変更したけどやっぱりうまく行かない
-bash: laravel: command not found
zshと少し表記が違うけどやっぱり見つからない
今回パスを設定したのは.bash_profileなのでそれを開いてみる
それと単純にパスのスペルミスだった
スペルを修正することで無事laravelコマンドが実行できるようになった
(蛇足)パスを通すってどういうこと
よくパスを通すって言葉を聞くのでこの機会に少し調べてみた。
ターミナルでコマンドを実行するときに実行ファイルのフルパスを入力しなくても実行ファイル名だけ入力すれば実行できるようになる仕組み
っていうのが私の理解です。
laravelコマンドを例にとると、パスを通さなくても
$ /Users/ooya/.composer/vendor/bin/laravel
と動く。ただ長いので
$ laravel
と入力しても動くようにするのがパスの仕組み
.bash_profileをみると以下のような記述がある
export PATH=~/.composer/vendor/bin:以下略
~はホームディレクトリを表す。私の場合は/Users/ooyaと同じこと
binフォルダの中にlaravelっていう実行ファイルがあるのでこれでちゃんとパスが通ったことになる。
実際にFinderでそのフォルダに行ってみるとちゃんと実行ファイルが確認できる。
隠しファイルを表示させましょう( command + shift + . )
副業(ダブルワーク)探しのためにやったことまとめ
テックキャンプ卒業してから案件獲得までにやったことをまとめました。
参考にして下さい。
Wantedly
転職活動する人はみんな使っているイメージ。副業も探せるかなーくらいの気持ちで使いました。プロフィール登録は項目が多いのでちょっと大変。
成果の以下のような感じでした。
9件 応募
3件 面談 → 案件1件獲得
1件 お祈り
5件 返信なし
以外と面談までしてもらえた印象です。
面談までいけた要因は「職歴」だったかなと。そこそこの規模の会社で上流工程(要件定義)を長いことしていたので、そこをみて話してみようかなともらえた感じです。
ポートフォリオはほとんど見られていませんでした。面談中にスクール通って勉強してたんですね〜みたいになることが多かったです。
あっ、そういえばテックキャンプのチーム開発成果物の話になったんですが、あまりいい印象を持たれていませんでした。自分で必要な機能や実装方法を考えて工夫して作った成果物じゃないと話を聞いてもうすい印象とのこと。
こういう見方をする社長さんもいるくらいの参考情報です。
週末ワーカー
副業をメインに扱うサイトです。
契約はシューマツワーカーと行って時給2500円のような報酬形態です。
ここでは20社以上応募したのですが、面談までいけた提案はありませんでした。
紹介されている案件が経験者向けが多いというのが要因な気がしています。
案件事態はフロントエンドからサーバサイドまで幅広くあるので、プロフィールを改善してもっと申し込めば何かしら仕事がえられたかもしれません。
ワークシップ
リモート可能、1日数時間、土日可能な案件が多数紹介されています。
こちらも20社以上応募したのですが、面談までいけた提案はありませんでした。
チームランサー
様々なプロジェクトでメンバーの募集がされています。
ただ、登録されているプロジェクトはどれも挑戦的な内容で安定的に報酬が期待できる物が少ない印象でした。
仕事というより、好きなことをみんなでやるサークルという感じ。
1件エントリーしましたが、反応無し。
クラウドワークス
Web開発案件が全然獲得できなくて、Web制作案件の獲得を目指して、クラウドワークスを開始。
LP案件、WordPress案件の獲得を目指して10件ほど提案するも獲得ならず。
twitterでは30件提案して1件獲得みたいな話もあって中々難しかった。
ココナラ