Skip to content

Zeroplex 生活隨筆

軟體開發、伺服器和生活瑣事

小 縮小字型大小。 中 重設字型大小。 大 放大字型大小。

作者: 日落

2017 年部落格的 review

Posted on 2018 年 1 月 7 日2021 年 3 月 12 日 By 日落 在〈2017 年部落格的 review〉中尚無留言

下雨天哪裡都不能去,只好發個廢文。

開始工作,下班後其實沒剩下多少體力和精神可以整理文章和經驗,部落格文章也相對少了很多,因此今天才有辦法幫去年整年的紀錄做個簡單的回顧。

去年 page view (PV) 最多的是「部落格的圖床」。看來大家都很想找到一個操作簡單又可以免費使用的圖床,之前試過幾個方案:

  • Flickr
  • Imgur
比較可惜的是 Flickr 主機在國外,且網路頻寬看起來不大,回應速度實在有夠慢的,賣給 Yahoo 以後越改越不好用。Imgur 若沒有註冊成會員,則圖片好像在沒有人檢閱一段時間後便會自動刪除。
最後我找到比較折衷的方法是 AWS s3。剛好本站的流量極小 (廢文沒人看 XD),再加上主要以程式碼居多,所以圖片數量也少,使用 s3 當作圖床,一年平均下來一個月大約只要台幣 3 元左右就可以跑得很順 (我使用 Tokyo 的 bucket),目前只缺一個好用的圖片上傳工具。

而 PV 第二名的是「尾寮山路況」。很明顯的大家希望能在數小時的挑戰前,確認自己的身體狀況以及路況,以免有什麼萬一。
去年年初將尾寮山攻頂的狀況,拿來當作自己身體復健的進度參考。在一次颱風後留下路況紀錄,沒想到能幫上其他人的忙,小驚訝了一下。


第三名則是「為 Gitlab 加上 CI runner」,猜測應該是操作難度較高,所以讓大家把所有可以找到的資料都抓來看了一遍,也因此該筆記點閱率較高。

個人覺得 Gitlab 真的是一個功能蠻齊全的程式碼管理、協作平台,但是因為功能齊全也導致架設的成本偏高,不是花錢解決問題就真的只能花時間了。目前仍在 9.x to 10.x migration 奮鬥,希望前輩有什麼奇淫巧計也能和大家分享。


今年有什麼計畫嗎?沒,就船到橋頭自然直。

這個站從以前的作用就是一個個人的筆記,防止自己魚腦把花了數天搞定的解決方法忘記而開始撰寫的,如果能幫助到其他人,這些筆記當然會更有價值,但當初並沒有這個構想。

若你覺得這個站對你有幫助,歡迎使用 CC-by-name 方式轉貼,也歡迎留言互相交流。謝謝。

Tags:生活雜記

PHP 近幾年生態圈一些可惜的地方

Posted on 2018 年 1 月 5 日2021 年 3 月 12 日 By 日落 在〈PHP 近幾年生態圈一些可惜的地方〉中尚無留言

進幾年 Laravel framework 竄紅,大家也趨之若騖,相對其他的 framework 就被冷落了,實在有點可惜。

Laravel 有其特色,但個人用了幾個版號,覺得 Laravel 比較適合中大型專案、以及快速開發,在往後維護和升級難度都不低 (5.1 migrate 到 5.4 根本是地獄)。

php-framework-benchmark at 2017/02

而如雨後春筍般冒出來的 Laravel library 很多又只能供 Laravel 使用,很難在其他 framework 上使用。Laravel 開發出來的元件耦合度也不低,很難拉出來供其他人使用 (Symfony 的各個元件都是 library,可以透過 composer require 供需要者使用)。結果讓想要使用其他 framework 的人找不到資源可以使用,少了很多選擇。

個人比較想看到的是,各種 framework 都能有社群協助一起發展,PSR 把一些好的設計制定成開發規範,大家遵守便能讓一個 library 在多個平台使用,而不是讓 Laravel 獨大,讓 PHP 的生態系變得單調、沒有選擇。

最近因公司需要而翻了近十個 framework、以及 CRM,並從中截長補短撰寫適合公司使用的 framework,希望以後有時間可以整理成公版讓其他有類似需求的人也來用看看。(本來想再愚人節發布的,似乎來不及了 TAT)

Tags:PHP, 生活雜記

PHPStan 靜態分析工具

Posted on 2018 年 1 月 4 日2021 年 3 月 12 日 By 日落 在〈PHPStan 靜態分析工具〉中尚無留言

前陣子從 gslin 那邊看到 PHPStan 這個工具,剛好手上有需要測試的程式,就拿來掃一掃。常見的問題大多都可以抓到,甚至連 doc comment 有錯誤也會抓出來。

下面弄個個 demo code 讓大家稍微看一下實際狀況。

Hello.php:

<?php
namespace Zero;

class Hello
{
    /**
     * @param array $name
     */
    public function greeting(): void
    {
        $test = '123';
        echo "Hello $namen";
    }
}

bootstrap.php:

<?php
require __DIR__ . '/../vendor/autoload.php';

$hello = new ZeroHello();
$hello->greeting(123);

然後執行 PHPStan 做 level 5 的分析:

 ------ ------------------------------------------------------ 
  Line   src/Hello.php                                         
 ------ ------------------------------------------------------ 
  10     PHPDoc tag @param references unknown parameter $name  
  14     Undefined variable: $name                             
 ------ ------------------------------------------------------ 

 ------ --------------------------------------------------------------------- 
  Line   src/bootstrap.php                                                    
 ------ --------------------------------------------------------------------- 
  7      Method ZeroHello::greeting() invoked with 1 parameter, 0 required.  
 ------ ---------------------------------------------------------------------

從 PHPStan 給的錯誤訊息,就可以在執行 PHP 之前預防錯誤發生。

不過有一些比較可惜的地方:

  • PHPStan 一定要吃 autoload 規則,看起來是為了要解 PHP Refelction 問題,所以比較就的程式就 GG 了
  • Hello.php 裡面有個沒使用到的變數 $test 沒有被抓到,不然應該可以再把程式清的更乾淨
Tags:PHP

PHP 將 HTTP POST field 的 . (dot) 改為 _ (underscore)

Posted on 2017 年 12 月 21 日2021 年 3 月 12 日 By 日落 在〈PHP 將 HTTP POST field 的 . (dot) 改為 _ (underscore)〉中尚無留言

今天遇到很奇怪的行為,在 PostMan 將 HTTP POST data 丟給 PHP 以後,參數名稱裡面有 . (dot) 的字元,全部都被改為 _ (underscore) 了。像是 field 名稱為「article.title」的欄位名稱,在 PHP 底下取值必須使用 $_POST[‘article_title’]。

原本以為 RFC 裡面有的定義 reserve word,但是找了半天找不到。最後原因是 PHP 為了支援 register_global,但是 PHP 變數名稱又不允許使用 . (dot) 當作名稱的一部分,最後就自動轉為 _ (underscore)。

這個行為不管有沒有啟動 register_global 都會出現,即使上了 PHP 7.2 都已經不支援了,這個行為仍然存在。

ref:

  • https://stackoverflow.com/a/3742678/8681141
  • PHP: Variables From External Sources – Manual


後來做了個簡單的測試,在 HTTP POST 依序送出二個 field data:

a.b=100&a_b=200

這時候再印出 $_POST:

var_dump($_POST);

array(1) {
  'a_b' =>
  string(3) "200"
}

所以後面的會打贏前面的 … (所以「世界上的戰爭沒任何人贏了,只有戰爭贏了」)

Tags:PHP

火線獵殺 野境 之 終極戰士 (Predator)

Posted on 2017 年 12 月 17 日2021 年 3 月 12 日 By 日落 在〈火線獵殺 野境 之 終極戰士 (Predator)〉中尚無留言

先說結論:這是一個破壞遊戲平衡的設計

自己 solo 試過幾次。第一次拿機槍當作主要武器,但是因為終極戰士 (Predator) 一受傷就會逃跑,所以機槍頂多賞幾發子彈以後就打不到了。

所以上面的影片,我改用傷害最大的 HIT 狙擊槍,並改成近距離的瞄準鏡,這樣可以確定一槍有讓終極戰士中彈就可以造成比機槍還要高的傷害。但很可惜,solo 還是沒有成功解開任務。

從上面的影片,可以注意到終極戰士的幾個特性,給有興趣挑戰的人參考:

  • 終極戰士的武器攻擊力很高,被擊中直接說再見
  • 終極戰士的武器類似電漿 (?) ,移動速度沒有非常快。所以被開槍以後往側邊衝刺是有機會躲掉攻擊的。
  • 如果電漿 (?) 還沒擊中你,但是你開槍擊中終極戰士且讓他決定暫時撤退,則電漿會跟著一起消失 (影片 15:30 左右)
  • 給予一定的傷害以後,終極戰士會有第二種攻擊模式:用樹藤攻擊。此種攻擊會先在地面上標示攻擊位置、傷害範圍,看到記得趕快跑 (見影片 14:20 左右的畫面)。使用此種攻擊方式時,終極戰士並不會現身。
我完到這邊就失去興趣了,所以剩下就交給其他高手研究。敬祝各位武運昌隆。
Tags:生活雜記, 遊戲

文章分頁

上一頁 1 ... 91 92 93 ... 318 下一頁

其他

關於我  (About me)

  文章 RSS Feed

  留言 RSS Feed

Apache AWS Bash C/C++ Docker FreeBSD GCP Git Google Java JavaScript Laravel Linux Microsoft MSSQL MySQL Nginx PHP PHPUnit PostgreSQL Python Qt Ubuntu Unix Vim Web Windows WordPress XD 作業系統 分享 好站推薦 專題 攝影 新奇搞笑 新聞 旅遊 生活雜記 程式設計 網路架站 網頁設計 資訊學習 資訊安全 遊戲 音樂


創用 CC 授權條款
本著作係採用創用 CC 姓名標示-相同方式分享 4.0 國際 授權條款授權.