新サービスのデータベースあれこれ
Last update
2018/11/06(火)
目的
今回はPHPでデータベースにアクセスする時の処理について考える場面になったので、必要なデータについてや、今後の方針などについて考えます。今回はメモ的な要素多めです。
データベース作ろう
カクテルレシピ共有サイトって何が必要なんですかね。
- 登録番号
- レシピ名
- ユーザー名
- シェイカーの有無
- 使用したお酒
- レシピ詳細
- 使用したお酒以外で使った物があれば表示。
「使用したお酒」をどう処理する?
本来の想定では、使用したお酒を登録する際に、お酒の写真を載せるなどのUIにしようかと思いましたが、カクテルは同様のお酒を使用しても分量などで味が変わるものであるため、必ず使用したお酒を再度レシピ詳細に記入する必要があると考えを改めました。 そのため、今回のサービスでは「使用したお酒」についてのUIをあまり追求しないことにしました。
AmazonAPIについて
デプロイをするまでに至ってないため、今回の制作では導入を見送る方向になりそうです。 リキュールや日本酒など、お酒ベースでのレシピ検索に関しては精度は下がりますが、文字列部分一致の方で進めていこうかなと考えてます。
現状の課題
ようやく非同期通信の処理を書くところに来ているので、まずは思い出すところから。現在はJQueryとPHPとの間でどのように処理するのがいいのか検討しています。
git pushがリジェクトされる。
Last update
2018/11/04(日)
目的
今回、commitしたファイルがバグありで出してしまったのでcommitを修正したいということでcommitの修正からそのPushまでです。 今回の記事は記憶で書いてます
参考資料
作業内容
まずはじめにローカルcommitの修正から行います。 今回修正するコミットは直近のコミットだったのrebaseでvimが起動させます。
その後vimに表示されるコミット情報の先頭に表示されている「pick」を「exit」に変更します。 (すみません…ここはevidenceなしです…参考資料参照してください。)
$git rebase -i HEAD^
vimで変更後コミットの内容を変えていこうと思います。
まずは通常通りaddしたあとrebaseします。
コミットの内容も変更する場合は、git commit --amend
を使ってコミットメッセージを変更します。
コミットを変更したら、次はPushをします。
今回のpushでは、オプションでfを使います。
$git add index.html $git rebase --continue $git push -f origin master
今回のような場合、オプションなしでPushを行うと下記のようなエラーが出る場合があるので、オプションをつけてPushします。
error: failed to push some refs to 'git@<URL>' hint: Updates were rejected because the tip of your current branch is behind hint: its remote counterpart. Integrate the remote changes (e.g. hint: 'git pull ...') before pushing again. hint: See the 'Note about fast-forwards' in 'git push --help' for details.
これでリモートとローカルでコミットを変更できました。
補足
今回はオプションでfを使いましたが、このオプションは強制的にプッシュするため、本来はあまりよろしくないようです。
WindowsでLinuxコマンドを使いたい
Last update
2018/11/02(金)
目的
今回はWindows上でLinuxコマンドを使って操作したいなと思ったので、それをできる環境を作ることにしました。
参考資料
作業内容
今回の主な作業内容は
- WSLの有効か
- Linuxディストリビューションをインストール
powershell
まずはpowershellでの操作からWSLを有効化します。 powershellを開いて、以下のコマンドを入力しました。
$Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
うまく動くと再起動を促されたので、再起動を行います。
Linuxディストリビューション
LinuxディストリビューションはWindowsアプリストアからダウンロードできます。今回はUbuntuのディストリビューションをインストールしました。
インストール後に起動を行い、しばらく待っているとユーザ作成の画面が出るので任意のNameとPasswordを設定します。
これで完了。
以下がevidenceです。
Installing, this may take a few minutes... Please create a default UNIX user account. The username does not need to match your Windows username. For more information visit: https://aka.ms/wslusers Enter new UNIX username: <username> Enter new UNIX password: <password> Retype new UNIX password: <password> passwd: password updated successfully Installation successful! To run a command as administrator (user "root"), use "sudo <command>". See "man sudo_root" for details. <username>@<machine>:~$
動かしてみる
実際にLinuxコマンドを入力してみると、何も表示されないのです。 エラーをはいてなく、何が問題なのかわからなかったため、とりあえず、アップデートをしました
$sudo apt update $sudo apt upgrade -y
それでも全くうまくいかんので、試しにコマンドプロンプトでlsコマンドを入力してみたら、普通に実行できる環境になってました。
$bash $ls
これでLinuxコマンドで操作する環境が整いました。
まとめ
時間かかりすぎた気がする…
補足
翌日、コマンドプロンプトでディストリビューションがインストールされてないと言われました。 Ubuntuを開いてみたら何故かエラーを出していました
Installing, this may take a few minutes... Installation Failed! Error: 0x800703fa ????????????????????? ????????????????????? Press any key to continue...
PCを再起動後したら解消しました。
参考資料
jQueryを使ってみる
目的
インターンシップで初めてJavaScript用ライブラリjQueryを初めて触れたので今回のjsはjQueryを使ってみようと思います。
今回の追加
今回はトップページの検索項目について更新を行いました。
主な機能
- カテゴリ別のプルダウン
- すべて
- レシピ
- お酒
- 検索入力画面
こんだけのHTMLとJQueryを書きました
記述内容
今回は別途のJSファイルに記述しました。HTMLでの参照コードはHEADタグに記述する為、$().ready(function(){ })
で囲うことでHTMLを読み込み後、処理を実行するようにしました。
// HTMLが全て読み込まれたら実行 $().ready(function(){ $('#s_top').click(function(){ var s_cate = $('option:selected').val(); var s_word = $('#s_word').val(); }); });
進捗
だめだこりゃ。
新サービスについて
サービス案
新しいサービスを作ろうとする中で色々案が出ました
- 動画コマース
トレーディング支援サービス(前作ろうとしてたやつ)
同人誌中古通販サービス
- カクテルレシピ共有サービス
- グッズ値段比較サイト
- ストレス共有サイト
- 自分のこと好きな人の特徴計測サイト
- 行きたい目的地から一番近いホテルを探すサービス(各種ソート付き)
- 発送予定をカレンダー自動出力
できそうなこと、出来無さそうなことを考慮して、やっぱカクテルオリジナルレシピ投稿サービスにすることにしました。
機能面について
検索
- 持ってるお酒、使いたいお酒からカクテル検索
- カクテル名でも検索可能
- 各検索画面でソート可能
レシピ詳細
- カクテルに使った材料
- 味(風味など)
- 使ったカクテルをすぐにAmazon購入ページにつなげる
- その他レシピ詳細
その他機能
とりあえずはこんな感じ。
サービス名
サービス名を何にするかは大事。 既存のサービスにCOCKTAIL BASSなるサービスが有るため、このサービスと色々差別化したい。
SELECT COCKTAIL
はどうだろうか。
理由はこのサービスはカクテルを自分の持ってるお酒から選べるのが最大の特徴であるからだ。
課題
開発前から様々な課題が想定される
課題は多い。がやってみようと思う。
GitBushをちゃんと使う
目的
今回はサービスを新しく作るためにGitを使いたいと思ったので、masterのpushまでを行います。
参考サイト
やったこと
今回はXAMPPを使ってローカルでの開発を行うので、Htdocsにディレクトリ移動します。そのディレクトリでMasterのPushを行う
$git init $touch index.html $git add index.html $git commit -m "Create index.html"
次はGitのリモート作業ですね同時にPushも行います。
$git remote add origin <URL> $git push origin master
一応masterのPushまでは終わりました。以下がevidenceです。
$ git push origin master Enumerating objects: 3, done. Counting objects: 100% (3/3), done. Delta compression using up to 4 threads. Compressing objects: 100% (2/2), done. Writing objects: 100% (3/3), 462 bytes | 462.00 KiB/s, done. Total 3 (delta 0), reused 0 (delta 0) remote: remote: Create a pull request for 'master' on GitHub by visiting: remote: https://github.com/<username>/<remote repository name>/pull/new/master remote: To https://github.com/<username>/<remote repository name>.git * [new branch] master -> master
このリポジトリを使ってこれから開発をしていきます。
Ubuntu上でHadoopを動かしたい~環境構築~
今回の目的
参考ページ
Apache Hadoop 2.5.0 セットアップ手順 その1 – ローカル実行からシングルノードクラスター起動まで
作業内容
インストール環境
- virtualbox
- Ubuntu18.04
- Hadoop ver3.1.1
Javaのインストール
Javaのインストールを行う。今回はOpenJDKをインストール
$sudo apt-get update $sudo apt-get install -y default -jdk
インストールが終わったら、javaのバージョンを確認
Openjdk version "10.0.2" 2018-07-17 OpenJDK Runtime Environment (build 10.0.2+13-Ubuntu-1ubuntu0.18.04.2) OpenJDK 64-Bit Server VM (build 10.0.2+13-Ubuntu-1ubuntu0.18.04.2, mixed mode)
Hadoopのインストール
参考ページのHadoopは古いバージョンだったので、ver 3.1.1をインストール
$wget http://ftp.riken.jp/net/apache/hadoop/common/hadoop-3.1.1/hadoop-3.1.1.tar.gz
バージョンを変更したらダウンロードはできたみたい
次はzipファイルの解凍をします。ディレクトリをどこにしようか悩んだけど、新しいディレクトリ作ってそこに入れてみることにします
$pwd /home/"user_name" $mkdir Hadoop $ls examples.desktop ダウンロード デスクトップ ビデオ ミュージック hadoop-3.1.1.tar.gz テンプレート ドキュメント ピクチャ 公開 $mv hadoop-3.1.1.tar.gz Hadoop/
$pwd /home/"username" $tar xvfz hadoop-3.1.1.tar.gz $ls hadoop-3.1.1 hadoop-3.1.1.tar.gz
次の手順「コマンドのディレクトリへパスを通します」何を言っているのかわからんのです。とりあえずやってみた
$pwd /home/"username" $sudo vi /ect/profile
結論:できなかった ので、emacsをインストールしてそちらで起動してみることにした
$sudo apt install emacs25 $emacs ~/.profile
なんか開いたんで、最終行にパッチを追記(?)してみる
・・・ export PATH=/home/"username"/Hadoop/hadoop-3.1.1/bin $source ~/.profile
次はJAVA_HOMEをhadoop-envに指定します(これもよくわからん)
$pwd /home/”username”/Hadoop/hadoop-3.1.1/etc/hadoop $emacs hadoop-env.sh
#/etc/hadoop/hadoop-env.sh #set to the root of your Java installation export JAVA_HOME=/usr/lib/jvm/default-java
追記が完了したらhadoopコマンドを実行
$hadoop Usage: hadoop [OPTIONS] SUBCOMMAND [SUBCOMMAND OPTIONS] or hadoop [OPTIONS] CLASSNAME [CLASSNAME OPTIONS] where CLASSNAME is a user-provided Java class OPTIONS is none or any of: --config dir Hadoop config directory --debug turn on shell script debug mode --help usage information buildpaths attempt to add class files from build tree hostnames list[,of,host,names] hosts to use in slave mode hosts filename list of hosts to use in slave mode loglevel level set the log4j level for this command workers turn on worker mode SUBCOMMAND is one of: Admin Commands: daemonlog get/set the log level for each daemon Client Commands: archive create a Hadoop archive checknative check native Hadoop and compression libraries availability classpath prints the class path needed to get the Hadoop jar and the required libraries conftest validate configuration XML files credential interact with credential providers distch distributed metadata changer distcp copy file or directories recursively dtutil operations related to delegation tokens envvars display computed Hadoop environment variables fs run a generic filesystem user client gridmix submit a mix of synthetic job, modeling a profiled from production load jar <jar> run a jar file. NOTE: please use "yarn jar" to launch YARN applications, not this command. jnipath prints the java.library.path kdiag Diagnose Kerberos Problems kerbname show auth_to_local principal conversion key manage keys via the KeyProvider rumenfolder scale a rumen input trace rumentrace convert logs into a rumen trace s3guard manage metadata on S3 trace view and modify Hadoop tracing settings version print the version Daemon Commands: kms run KMS, the Key Management Server SUBCOMMAND may print help when invoked w/o parameters or with -h.
これが表示されたらOKみたい!!!
次にやりたいこと
MapReduceで実際に分析してみたいです