Laravel 5.5 實作(3) – 話題&問題

  • 創建 Topic model and migrate
    php artisan make:model Topic -m
$table->increments('id');
$table->string('name');
$table->text('bio')->nullable();
$table->integer('question_count')->default(0);
$table->integer('followers_count')->default(0);
$table->timestamps();
  • Topic 跟 Question 為多對多的關係
    php artisan make:migration create_questions_topics_table --create=question_topic
$table->increments('id');
$table->integer('question_id')->unsigned()->inddex();
$table->integer('topic_id')->unsigned()->inddex();
$table->timestamps();
  • Question.php
protected $fillable = ['title', 'body', 'user_id'];

public function topics()
{
return $this->belongsToMany(Topic::class)->withTimestamps();
}
  • Topic.php
public function questions()
{
return $this->belongsToMany(Question::class)->withTimestamps();
}

優化話題選擇

Select2

  1. select2.min.jsselect2.min.css 放到 resources/assets/css及js 底下

  2. resources/assets/js/bootstrap.js 引入 select2.js

try {
window.$ = window.jQuery = require('jquery');

require('bootstrap-sass');
require('./select2,min');
} catch (e) {}
  1. resources/assets/sass/app.scss 引入 select2.css

@import "./../css/select2.min"

  1. 執行 gulp ,這裡使用 mix
    > Laravel 的资源任务编译器 Laravel Mix | Laravel 5.5 中文文档
    > https://gulpjs.com/

 

#後端學習/Laravel/知乎

2017 年最弱密碼公佈

美國密碼管理應用公司 Splashdata 每年都會公佈一份「年度最弱密碼」榜單。

今年的榜單上,「123456」依舊穩坐榜單第一位,它在 2013 年-2016 年間都是第一位。連續四年衛冕亞軍的,是密碼本人的「password」。

此外,「123456」和「password」這兩個密碼還有 6 種相關變體,合計佔了排行榜前 25 名中的 8 位。

除了以上兩個密碼的變體,能進入排行榜前十的還有基於鍵盤鍵位的「qwerty」、情景感十足的「letmein(讓我進去)」、以及「football」和「iloveyou」。

值得一提的是,「starwars」首次上榜,排位第 16 ,也許是出於《星戰:最後的絕地武士》效應。而《權力的遊戲》啓發的「dragon」位置也上升了一位,處於第 18 位。
來源:https://www.inside.com.tw/2017/12/25/weakest-passwords-of-2017

YAMAHA 最新 AI 鋼琴家

我的伴奏不是人!全球最大的樂器製造商 YAMAHA 挑戰「科技與音樂」的完美結合,研發人工智慧合奏系統,訓練 AI「讀空氣」,及時預測人類音樂家動作,在最佳時機做出最合適的伴奏,無論鋼琴、管弦四重奏都能辦到,達到合奏的最高境界。

一般來說,人類與機器的合作,像是卡拉 OK 等方式,都是人類去配合機器才能夠成立,若以這樣的方式,機器與人類之間無法進行良好的「溝通」,便不能達到美好的合奏,在這樣的情況下,YAMAHA 研發出了這套機器能彈性配合人類的「AI 合奏系統」

連結:https://buzzorange.com/techorange/2017/12/18/yamaha-ai-pianoist/

Laravel 5.5 實作(2) – 設計問題表

引用 ueditor 編輯器
> [laravel-ueditor](https://github.com/overtrue/laravel-ueditor)

###  創建 Controller
php artisan make:controller QuestionsController --resource

—resource 建好增修改查 method

創建 Model

  • php artisan make:model Question -m
    > -m 順便執行 migrate

定義 questions 資料表欄位

  • 修改data->questions
<br />$table->increments('id');

$table->string('title'); // 標題

$table->text('body'); // 內容

$table->integer('user_id')->unsigned(); // 發起者

$table->integer('comments_count')->default(0); // 評論數

$table->integer('followers_count')->default(1); // 關注數

$table->integer('answers_count')->default(0); // 回應數

$table->string('close_comment', 8)->default('F'); // 是否可評論

$table->string('is_hidden', 8)->default('F'); // 是否隱藏文章

$table->timestamps();

添加 Router

  • web.php
<br />Route::resource('questions', 'QuestionsController', ['names' => [    'create' => 'question.create',    'show' => 'question.show']]);

看整個路由:php artisan route:list

Laravel 5.5 實作(1) – 登入&註冊

定義 User 資料表欄位

  1. 修改database->users
$table->increments('id');
$table->string('name')->unique(); // 姓名
$table->string('email')->unique(); // 信箱
$table->string('password'); // 密碼
$table->string('avatar'); // 頭像
$table->string('confirmation_token'); // 認證token
$table->smallInteger('is_active')->default(0); // 是否啟用
$table->integer('questions_count')->default(0); // 問題數
$table->integer('answers_count')->default(0); // 回答數
$table->integer('comments_count')->default(0); // 評論數
$table->integer('favorites_count')->default(0); // 收藏數
$table->integer('likes_count')->default(0); // 點讚數
$table->integer('followers_count')->default(0); // 關注數
$table->integer('followings_count')->default(0); // 被關注數
$table->json('settings')->nullable();
$table->rememberToken();
$table->timestamps();
  1. 執行 php artisan migrate

 

使用內建 auth

  • 執行 php artisan make:auth
  • 修改 RegisterController.php
protected function create(array $data)
{
$user = User::create([
'name' => $data['name'],
'email' => $data['email'],
'avatar' => '/images/avatars/default.png',
'confirmation_token' => str_random(40),
'password' => bcrypt($data['password']),
]);

return $user;
}
  • 修改 User.php
protected $fillable = [
'name', 'email', 'password', 'avatar', 'confirmation_token'
];

 

中文化模板

登入註冊頁面

  • app.blade.php
  • app.php
  • home.blade.php
  • login.blade.php
  • register.blade.php
  • email.blade.php
  • reset.blade.php

提示字串

  • validation.php
'custom' => [
'email' => [
'unique' => '信箱已被申請',
],
'password' => [
'confirmed' => '兩次密碼輸入不相同',
],
],
  • 註冊提示 passwords.php
'password' => 'Passwords must be at least six characters and match the confirmation.',
'reset' => 'Your password has been reset!',
'sent' => 'We have e-mailed your password reset link!',
'token' => 'This password reset token is invalid.',
'user' => "We can't find a user with that e-mail address.",
  • 登入提示 auth.php
'failed' => 'These credentials do not match our records.',
'throttle' => 'Too many login attempts. Please try again in :seconds seconds.',

laradock 遇到 mysql 3306 被佔用

遇到 3306 被佔用,先查找 TCP 找到被誰佔用,接著清除

 

  • 查詢port:netstat -anp tcp | grep {port num}
  • sudo lsof -i :80 | grep LISTEN
  • sudo kill -9 92

  • 全部容器重啟:docker restart $(docker ps -a -q)

  • 將容器全刪掉:docker rm $(docker ps -a -q)
  • 將鏡像全刪掉:docker rmi $(docker images -q)
  • 重啟 Docker 的 Nginx:docker-compose up -d nginx
  • 停止所有正在運行的容器:docker kill $(docker ps -a -q)

美圖秀秀推出全球首位 AI 繪師

美圖機器人 Andy 上線僅 4 天,就有 1900 萬人體驗過。Angelababy、唐嫣等明星在第一時間也親身體驗了這款實用的拍照 App,她們的插畫風照片在微博上累積獲得了 40 多萬的轉發點贊量。

上線的這幾天,朋友圈裡也冒出不少好友的使用體驗自拍。她們評價這款 App「好用」、「漫畫風贊」、「神態刻畫度比較高」。

 

原文:https://buzzorange.com/techorange/2017/12/08/ai-andy-draw/

Laravel 安裝 Valet 環境

環境

  • node:v8.9.1
  • nom:5.5.1
  • php:7.1.12
  • mysql:14.14

– valet:2.0.6

Valet

安裝 Valet

Laravel 學院 – Valet
Laravel Valet 手把手安裝教學

  1. 使用 brew update 將 Homebrew 安裝或更新到最新版本。
  2. 通過 Homebrew 使用 brew install homebrew/php/php71 命令安裝 PHP 7.1 。
  3. 通過 Composer 使用 composer global require laravel/valet 安裝 Valet。
  4. 確保 ~/.composer/vendor/bin 目錄位於系統的「PATH」中。

    Vim ~/.zshrc
    最下面增加:export PATH=$PATH:~/.composer/vendor/bin

  5. 運行 valet install 命令來配置和安裝 Valet 和 DnsMasq,並註冊 Valet 後台隨機啟動。

  6. 安裝完 Valet,使用 ping foobar.dev 命令在終端上的 ping 任何一个 *.dev 的域名。如果 Valet 安裝正確,可以在終端機上看到来自 127.0.0.1 的響應。

升級 Valet

  1. $ valet stop
  2. $ valet uninstall
  3. $ composer global require laravel/valet
  4. $ valet install
  5. $ valet restart

服務站點

Valet 提供兩個命來來為 Laravel 的站點提供服務:parklink
– 輸入 mkdir ~/Sites 在 Mac 上創建一個新的目錄。
– 輸入 cd ~/Sitesvalet park 將當前的工作目錄作為 Valet 搜索站點的路徑。
– 接下來,在這個目錄中創建一個新的 Laravel 站點:laravel new blog。
valet open 或在瀏覽器中打開 http://blog.dev。

AI 已經會寫 AI 啦

AI 也能自行「繁衍」?根據《The Week》報導,Google AI 系統 AutoML 創造了自己的孩子「NASNet」,能夠進行圖片、影像辨識與分類,其表現甚至比人類工程師撰寫的 AI 還要強大!

由 AutoML「生下」的 NASNet,主要被設計來辨識圖像、影片中的人、車、交通號誌等各種物件;根據研究結果,在經過數千小時的訓練後,NASNet 已經能夠以 82.7% 的準確度辨識圖像。

 

來源:https://buzzorange.com/techorange/2017/12/06/google-ai-write-new-ai/

Laravel 部署到 Heroku

Heroku 網站部署

申請 Heroku 帳號

Heroku

下載 & 安裝 Heroku CLI

Heroku CLI

  1. $ brew install heroku/brew/heroku

  2. 安裝完後執行
    ​​​$ heroku login

螢幕快照 2017-12-07 下午12.23.50.png

 

  1. 於專案輸入 git init 加入 git 版控,接著執行
    $ heroku create your-serve-name
    若只輸入 $ heroku create,Heroku 會隨機配給你名字
    > ps. Heroku serve 的名稱需為小寫,可使用-

螢幕快照 2017-12-07 下午12.26.03.png

 

  1. 將專案推向 Heroku
    $ git push heroku master

記得要先 git add git commit

螢幕快照 2017-12-07 下午1.35.54.png

 

Laravel 部署到 Heroku

直接 push 後一開始會出現 Forbidden

螢幕快照 2017-12-07 下午1.40.39.png

根目錄添加 Procfile

螢幕快照 2017-12-07 下午3.03.38.png

設定 APP key

Laravel 使用 App Key 來完成對用户繪畫及其它信息的編碼加密操作,因此我們也需要將 App Key 加入到 Heroku 的配置中。

生成 App Key:

$ php artisan key:generate
將生成的 App Key 附加到此命令行後面以完成配置:

$ heroku config:set APP_KEY=…

螢幕快照 2017-12-07 下午2.15.51.png

 

完成

螢幕快照 2017-12-07 下午2.21.50.png