ipify是一個可以取得public的的API
這是上次在看SweetAlert2範例時不小心看到的
ipify還提供相當多的程式語言範例,其中還可以指定以json的格式回傳資料
只要照著直接調用就可以了

以 PHP 來說以前我的寫法和網路上網友提供的方式是這樣子的

是不是又臭又長吶!!
但現在直接用ipify的話直接用file_get_contents呼叫API就可以了

天丫!!是不是輕鬆又愉快丫!!

而或是今天我想在shell script裡取得public IP在以往我肯定得再研究一番
但現在呢?

總之ipify還供相當多的語言(Python、Ruby、Java、Perl、Go、JavaScript、jQuery……等)
初步看來官方還提供各種語言的Libraries,可以讓您直接在Project引入呼叫
超級無敵的吶

另外官網的網址是掛載在ORG底下
看來應該也會是一個蠻穩定的Project
只是目前還不支援IPv6
可惜可惜

大家不妨也體驗看看吧!!

朋友最近介紹了一個強大的好物給我
這是一個兼具標亮及可自定義的 JavaScript彈跳視窗 SweetAlert2
雖然我還沒開始使用
但光看官網的範例就已經知道他的厲害之處了
所以不得不上來記錄一下
改天要用時才不會忘記

網路上順便爬了一下發現介紹文也不少
在vue.js上整合好像也不是問題
不過目前初看好像得先裝好webpack
但現在還沒學到webpack所以等過一陣子再來研究
另外官方的範例也蠻詳細的
所以這裡也就不多介紹了

[相關文章]

  1. 在 Vue 使用 SweetAlert2
  2. [前端] 快速上手讓人驚豔的JS alert、confirm dialog – SweetAlert2 (含整合ASP.net WebForm範例碼)
  3. SweetAlert2官方中譯版本

最近才開始研究 Vue.js
但因為JavaScript以前就寫的少
所以一切都在趺跌撞撞的狀態
就連芝麻小豆般的錯誤都可以debug一天一夜

這二天好不容易搭配 Vue-resource 成功到後端資料庫撈出資料
前端也可以渲染出資料
但Chrome的Console就是會出現一大段的錯誤

Templates should only be responsible for mapping the state to the UI. Avoid placing tags with side-effects in your templates, such as <script>, as they will not be parsed.

上網查找了一下
這樣子的錯誤通常是因為HTML的標籤不成對所造的
所以自己再重新檢查後
發現我的<table>少了一對</table>
補上後就好了
原來是自已在耍笨!!

近日有個小小project,任務很簡單:接收對方API POST過來的Data。
很直覺的想法就是在Laravel開個project,開個Route讓對方把資料丟到我指定的URL。
開好後我自己用PostMan測試了一下,發現無法接收資料,反而出現了
“The page has expired due to inactivity. Please refresh and try again”
很直覺的就想到和CSRF有關….

因為 Laravel 5 在 POST、PUT、DELETE 的路由方法中,預設都會進行 CSRF Token 的檢查。
確認 POST 過來的資料中 _token 的資料值與 Session 中的 token 是否相符,或是驗證標頭中的 X-CSRF-TOKEN 是否相符。

可是呢,我這個案子並無法直接對方對方的技術人員,僅有業務窗口,溝通上並不容易。
還好,這台主機對外就只為對方開放,其它的連線都是阻擋的。索性就想把這個路由的CSFR給關了!!

設定方法很簡單,只要在 app/Http/Middleware/VerifyCsrfToken.php 這個檔案中把要關閉CSRF的路由加上去就可以了!!

緣由

其實十幾年來一直使用Wordpress在寫Blog, 雖然最近這5~6年來也不怎麼在更新了(覺得挺可惜的)。
只是慢慢覺得Wordpress真的好肥大,前台還好,但後台的管理就顯得吃重!

最近,因為工作需要想要找一個平台來撰寫系統需求,看來看去好像 Gitbook最符合我想要的,可以順便玩玩MarkDown好像也不錯,無奈免費帳號無法建立Private Book……
後來在官網看到可以可以申請education discounts,結果申請信寄出去一個星期,連個拒絕信都沒收到。

最後無意間看到FB前端群組有人在討論Hexo,然後就與前陣子小玩一下的Medium平台和Hexo之間抉擇中,還是把Hexo裝了起來。

Medium

優點

  • 線上編輯平台,不需架站技術
  • 隨處可編輯內容,提供手機APP
  • 可以為不同的主題建立不同的publications

缺點

  • Markdown語法使用上卡卡的(這應該是我對MarkDown還不熟的關係)
  • 程式碼高亮功能太弱了,雖然可以插入GitHub gist或是CodePen和JSFiddle的方式處理,但實在不怎麼方便。(會影響發文的動力)

Hexo

優點

  • 版面選擇性較多
  • 系統是建在自己的環境,如果不發佈出去,在localhost將Server跑起來,還是可以寫一些比較Private的文章或是文件。
  • 討論的文章很多:Medium寫的人不少,但認真爬文,文章並不多
  • 文章可以轉成靜態網頁,並發佈到GitHub(GitPages)平台去,瀏覽速度蠻快的。也不用自己架站!!
  • 好備份,因為文章的原始檔是Markdown的md檔,不需要資料庫,萬一以後出問題,很好還原!

缺點

  • 系統安裝不難,建立很快。。。 但對於系統架構的運作及流程,真的是花了我一些時間研究及除錯。
  • Hexo實在太土炮了~~ 雖然Hexo也可以安裝後台管理套件,但實在是蠻陽春的。大部份的操作及設定都得在Command Line 及修改設定檔的方式完成
  • 系統環境受限,不方便在不同電腦上發文。得將安裝環境複制到其它電腦或是必需對Git有一定程度的操作才可以轉移。

後記

這是一個簡單的初體驗,但也花了我幾天時間讓整個站能完善。說實在的,並不難,大多的時間都花在排解細節和搞懂和GitHub之間的關係上。
其次就是想把原本在Wordpress上的陳年文章轉過來,但發現轉移的過程發現有些文章怪怪的,進而還會影響靜態網頁檔的產生。
最後還是暫時先放棄,等之後真的有時間再確認!!

原本我是在GCP上起了一台免費的instance,在上面安裝Hexo,最後再發佈到GitHub。好處是,不管我在什麼電腦環境,我都可以遠端連到那台VM上撰寫文章。
但是,用VI打中文編輯長篇文章,還是覺得太痛苦了。最後我把整個環境複制到NAS上再同步到 Mac Pro,在Mac上可以用vscode編輯,再切到Command Line 發佈出去,很是方便吶!!

這也是一個沒效率的實例,為了喝牛奶而養了頭牛。繞了一大圈,原本要寫的系統需求書,到現在還沒個影~~~ XD

參考資料

主程式的安裝過程就不交待了,網路上超多分享文,官網的文件也交待的很仔細。
倒是佈景主題與第三方套件的安裝及與Github的整合這一塊我覺得會花上一點心力。
以下就列出幾篇安裝過程中對我有幫助的文章,也希望日後如果重建,可以再回憶一下!!

最近安裝了 MySQL 5.7的版本後發現
使用預設的Root密碼(空白)居然無法進入
上網查了一下, 居然log檔裡有很特別的密碼字串
grep ‘temporary password’ /var/log/mysqld.log

還好用以下的方式,將初始密碼給改掉了!!
1. Stop mysql:
systemctl stop mysqld

  1. Set the mySQL environment option
    systemctl set-environment MYSQLD_OPTS="--skip-grant-tables"

  2. Start mysql usig the options you just set
    systemctl start mysqld

  3. Login as root
    mysql -u root

  4. Update the root user password with these mysql commands
    mysql> UPDATE mysql.user SET authentication_string = PASSWORD('MyNewPassword')
    -> WHERE User = 'root' AND Host = 'localhost';
    mysql> FLUSH PRIVILEGES;
    mysql> quit

  5. Stop mysql
    systemctl stop mysqld

  6. Unset the mySQL envitroment option so it starts normally next time
    systemctl unset-environment MYSQLD_OPTS

  7. Start mysql normally:
    systemctl start mysqld

Try to login using your new password:
7. mysql -u root -p

最近在玩 Laravel
在Mac OSX上安裝環境是蠻順的
但這二天試著在CentOS上安裝
發現使用laravel new projectname 時
會有以下的訊息
-bash: laravel: command not found
上網查了一下解決方式
大部份的人及官方文件都是提示你

Make sure to place the ~/.composer/vendor/bin directory (or the equivalent directory for your OS) in your PATH so the laravel executable can be located by your system.

接著我就照做設定
Setup PATH: export PATH="~/.composer/vendor/bin:$PATH"
發現問題依然存在
後來又將composer重裝,發現我的安裝路徑和別人不同
是放在
~/.config/composer/vendor/bin
重新再設定一次$PATH就OK啦….

export PATH="~/.config/composer/vendor/bin:$PATH"

只是為什麼路徑會不同呢?

最近想來玩玩 Phalcon, 但是我的OSX是安裝MAMP,所以Phalcon官方針對OSX提供的安裝方法似乎不太管用。
上網查找了一下,發現必需將MAMP裡的PHP重新再編一下,終於是裝起來了,所以,來記錄一下吧!!

1.確定你MAMP所跑的PHP版本:
這部份你可以在MAMP的console或是用phpinfo()看看
像豆子早前安裝的版本就是 PHP 5.5.23

2.確認MAMP PHP bin 的目錄路徑:
一般來說 MAMP PHP bin的安裝路徑會是在
/Applications/MAMP/bin/php/phpx.x.x/bin
以上的x.x.x就是您PHP的版本
以豆子的環境來看,路徑就會是
/Applications/MAMP/bin/php/php5.5.23/binOpen

3.開開Terminal並執行下列指令:
export PATH=/Applications/MAMP/bin/php/php5.5.23/bin:$PATH

4.到PHP官網下載PHP的source檔:
這部份可能要留意一下,像豆子的PHP是5.5.23,但官網現在主要提供的版本己經到5.5.35,這是沒有關係的。
就把它下載下來,放到以下目錄:(預設是沒有include/php目錄的,請自建)
/Applications/MAMP/bin/php/php5.5.23/include/php

5.Configure the PHP source:
cd /Applications/MAMP/bin/php/php5.5.23/include/php
./configure
在這個部驟,豆子出現以下的錯誤:
configure: error: Please specify the install prefix of iconv with --with-iconv=

但明明豆子的 /usr/bin/iconv 明明就有,但怎麼指定就沒效
上網查一下,就用brew 重新安裝 libiconv吧

brew install homebrew/dupes/libiconv

然後再用以下指令重新configure

./configure --with-iconv=brew --prefix libiconv

之後就會看到Thank you for using PHP.的訊息啦

6.Compile Phalcon:
接著下載Phalcon回來Compile
git clone --depth=1 git://github.com/phalcon/cphalcon.git
cd cphalcon/build
sudo ./install

這階段豆子又卡關了。。。
出現:$PHP_AUTOCONF environment variable. Then, rerun this script.
所以,用brew再裝裝autoconfig再重新configure
brew install autoconf

7.在php.ini裡加入phalcon extension file
如果不知道你的php.ini在那裡,用phpinfo()看一下最保險
在php.ini裡加上
extension=phalcon.so

8.重啟MAMP

9.檢查:
在phpinfo()的資訊裡應該就會多一個 phalcon的相關資訊囉

phalcon

最近幫同事解這個問題
話說這台 HP DL320E G8 還真是折磨人
去年在這一台上安裝CentOS 6
但就發現
明明做了Raid 1
但在安裝作業系統裡還是會看到二顆硬碟
當時翻找了很多文章才知道是抓不到磁碟陣列卡的驅動
(裝了不少主機的經驗,這還是頭一遭)
最後到官網下載DD檔,解壓縮後放到隨身碟
在centos 6 安裝的前導畫面
載入USB裡的驅動後
終於是可以認到Raid了
但卻發現系統裝好後作業系統會開不起來

Continue reading

1.先移除系統原本的mysql-libs
yum remove mysql-libs

2.到官網下載最新版本的rpm,並安裝
wget http://dev.mysql.com/get/mysql57-community-release-el6-7.noarch.rpm
rpm -Uvh mysql57-community-release-el6-7.noarch.rpm
yum install mysql-community-server

3.接著就可以啟用服務了
service mysqld start

4.用這種方法裝好的mysql,其預設的root密碼是藏在/var/log/mysqld.log裡的
所以more一下就可以看到
2016-02-03T08:11:46.993568Z 1 [Note] A temporary password is generated for root@localhost: ,F1WDenwkXBu
上面的,F1WDenwkXBu就是密碼,每個人安裝後的臨時密碼並不會相同

5.別忘了利用mysql_secure_installation工具設定root密碼,並將一些anonymous的帳號及非localhost的權限拿掉,就大功告成囉

更詳細的安裝方法可以參考官網的手冊