一群棒子的技術部落格

[Mac] 解決 zsh command not found
develop tool

[Mac] 解決 zsh command not found

前言: Mac 預設的 shell 為 bash , 但由於 zsh 有 oh-my-zsh 提供各種不同配合各種開發工具的 theme 如:git 等等,所以許多人會從 bash 轉到 zsh 不過有時在安裝一些開發工具時,你必須開發工具的 環境變數 的 path , 加到 zsh 的 shell ,不然常常在 終端機 下 command 時,會出現 : zsh: XXX command not found > 其實 bash 有時也會有同樣的問題 查看 shell 查看整體環境變數: printenv 你可以看到 shell 的屬性為:

Ubuntu 16.04 Kernel Panic 解決方法
server

Ubuntu 16.04 Kernel Panic 解決方法

今日遭遇到了 Ubuntu Server 無法開機的情況,只要一進入系統就會看到如下圖的畫面。 我們可以看到最下方有提到 Kernel panic 可以大概知道是與 Kernel 有所關聯,拜一下 Google 大神果不其然的有人跟我有同樣的狀況。 Kernel panic and unable to boot Ubuntu 16.04 after updating [https://askubuntu.com/questions/898449/kernel-panic-and-unable-to-boot-ubuntu-16-04-after-updating] 解決方法 重開機進入選擇作業系統的畫面並且切換核心版本,並且更換預設的開機 Kernel 版本,我們可以先找一下可以使用的 Kernel 版本。 sudo grub-mkconfig | less 找一下可以看到類似 Ubuntu, with Linux 4.4.0-70-generic 我們將它複製起來,

穿透的 div ( pointer-events )

穿透的 div ( pointer-events )

pointer-events pointer-events 為控制滑鼠目標的 CSS3 屬性 > The pointer-events CSS property specifies under what circumstances (if any) a particular graphic element can become the target of mouse events. 雖說大部分為製作 SVG 時使用,不過在特定情況時在 div 上使用也是可以的 製作穿透的 div 穿透的 div 這需求非常常見,例如:連結上著遮罩,或是製作選單在展開前把選單藏在畫面上,都是用的到的 使用 pointer-events 很容易就可以達到我們想要的效果 pointer-events:auto auto 為 pointer-events

jQuery事件處理技巧:Decide resize (and scroll)

jQuery事件處理技巧:Decide resize (and scroll)

情境: 相信大家對 jQuery 的 resize 與 scroll 等事件並不陌生,近期在開發 jQuery Plugin 時 , 碰到一個問題 , 我需要在 resize 事件發生時 , 針對 視窗的 放大 與 縮小 , 執行不同的 method 與 event 這類的需求,其實是非常常見的,像是 scroll 事件中,只針對滾輪在 往上 滾動時,讓隱藏的選單出現於畫面中,就是我們在使用網頁的使用者體驗中,最常見的例子 作法 : > 此部份我以 resize 事件為範例, 同邏輯 scroll 事件也適用下列方法 範例: (function($){ var previousDimensions = { width: $(window)

Git Alias 簡化你的 Git 指令
GIT

Git Alias 簡化你的 Git 指令

前言: 如標題,就是進一步增加你使用 Git 的體驗,簡化 Git 的指令,使你在操作上更簡潔更便利 簡單來說: 我們可以把 $ git status 簡化成: $ git st 使你在使用 Git 上能更便利更簡單更上手 如何使用: Git 命令別名 下面提供 2 種方式,進行操作 1. git config : 我們可以直接使用 git config 來設定我們的 命令別名 指令如下 : $ git config --global alias.{指令別名} {指令} 範例如下 : $ git config --global alias.st status 只需簡單一行指令,就可以達成我們的效果

bug

表單送出無回應?

今天實際上又碰到個案例,其實這個問題幾個月前碰過一次,可是當時沒有時間去好好研究問題,這次終於知道原因了,藉此快點筆記起來 情境 我有一個很多選項的表單,當我按下送出,程式運作是正常的,可是系統並沒有收到任何資料。恩..當下畫面也沒有顯示出任何錯誤訊息。那麼我是怎麼知道原因的呢,萬變不離其宗…查 log 。 PHP Warning: Unknown: Input variables exceeded 1000. To increase the limit change max_input_vars in php.ini. in Unknown on line 0 這個參數的意思就是,表單可以送出 GET 或 POST 給 PHP 的最大上限量。 解法 看到這裡,解法在

響應式網站-不可缺少的Veiwport標籤
Html

響應式網站-不可缺少的Veiwport標籤

什麼是Viewport標籤? Viewport它是網頁HTML的一種META標籤,專為手機瀏覽器設計的。 有些屏幕很小的手機,但解析度卻可以做得很大,比如iphone7默認分辨率為:1920 * 1080,比許多電腦桌面的都還大,傳統PC網站直接放到手機上閱讀時,界面就會顯得非常小,閱讀體驗就很差,這時候就會需要一種將原始視圖在手機上放大的機制,使用Viewport標籤可以解決這個問題。 如何使用Viewport標籤? 將code放置在head裡面即可,如以下範例。 此範例的設定就會依照手機螢幕的解析度去做相對應的縮放了 !<!DOCTYPE html> <html> <head> <title>viewport</title> <meta name="viewport" content="width=device-width, initial-scale=1.0">

WordPress 學習筆記: wp_list_categories add class

WordPress 學習筆記: wp_list_categories add class

情境 : 分類列表 在 Web 中非常的常見,而 WordPress 在針對 分類列表 處理上 , 提供了一個方法叫做 wp_list_categories() [https://developer.wordpress.org/reference/functions/wp_list_categories/] , 這也是我在 WordPress 中第一次製作 分類列表 Google 關鍵字 wordpress categories list ,第一筆就找到的, wp_list_categories() [https://developer.wordpress.org/reference/functions/wp_list_categories/] 這個方法在使用上十分的容易,也提了許多的屬性 (例如:層級、排序、

開發 Drupal 你都怎麼 Debug ?
Drupal

開發 Drupal 你都怎麼 Debug ?

前言 身為一位開發 Drupal 的工程師,平時寫寫 code 也是很正常的事情,不管你是很土炮的使用 PHP 的 print_r() 還是 var_dump() 又或是使用模組 devel [https://www.drupal.org/project/devel] 自帶的 dpm() 這些都是很好用的 debug 工具。 你會可能會遇到一個狀況 說了這麼多我們 debug 都是在本機上作業,可是當我們遇到了本機無法測試的狀況就很頭大了。比如說:有些程式是背景傳送的,也就是一定要在網路上找的到你的網站才能接收到資料,這個時候就只能寫 PHP log 或是用 Drupal 的 watchdog [https://api.drupal.org/api/drupal/includes%

SVG 入門 : 基本圖形繪製
SVG

SVG 入門 : 基本圖形繪製

簡介: SVG 可縮放式向量圖形 ( SVG , Scalable Vector Graphics ) 是前端工程師不可錯過得技術,不只因 圖片向量 使圖片不會因放大縮小而失真外,SVG 為原本不足的 HTML 帶入了新的概念 — 利用標籤來做圖 從簡單的直線、曲線、圓形、矩形,到複雜的任意路徑、填充樣式、座標轉換與動畫,我們可以利用標籤的形式來完成 而且因 SVG 的圖片是由 標籤 組成,所以我們可以對圖片裡的任何物件進行操作,也可以配合 Css 與 javaScript 達到更多的效果與互動 入門: 個人認為 實做 是最好的學習途徑, 我們可以重最簡單的圖形繪製開始 SVG 標籤 在網頁中插入 SVG 圖形 <svg> ....... </svg&

WordPress 學習筆記: 將 php 的 Variable 傳遞給 JavaScript 檔案

WordPress 學習筆記: 將 php 的 Variable 傳遞給 JavaScript 檔案

前言: 如標題,在做任何應用的開發,對工程師而言這種需求並不少見,而在 WordPress 開發中,更是常見,因為很多 WordPress 的 Variable 與 Method , 都是經 php 開發後所提供 情境: 最典型的例子就是 get_template_directory_uri( ) [https://developer.wordpress.org/reference/functions/get_template_directory_uri/] 了 : 這是 WordPress 用來回傳 版型根目錄 所提供的 Method,在 JavaScript 的開發中,尤其是在 Ajax 的應用,往往都會需要 檔案目錄的路徑 來協助提取我們要的資料 那如何將

PHP 密碼加密函式
PHP

PHP 密碼加密函式

為什麼需要加密 輸入帳號密碼這種事情每天都在做,可是你有沒有想過,到底密碼是以什麼樣子的形式再傳送的,如果你有一點資安想法的話應該不難想到,密碼這種東西不應該以明文來傳送的,如果你常看人說某某功能某某網站的密碼是以明文來傳送的那真的挺糟糕的。 加密方式 列出個人常用的加密方式 md5 [http://php.net/manual/en/function.md5.php] sha1 [http://php.net/manual/en/function.sha1.php] 或是使用 hash [http://php.net/manual/en/function.hash.php] 也是可以 $srting='some text'; echo md5($srting); echo sha1($srting); echo

Drupal 你還在慢慢刻表單寫資料進 variable 嗎?試試 system_settings_form 吧
Drupal

Drupal 你還在慢慢刻表單寫資料進 variable 嗎?試試 system_settings_form 吧

為何我們需要這個? 系統控制表單那是什麼東西?可以吃嗎?在這之前你必須要認識 Variable [https://www.drupal.org/project/variable] 這個模組。那麼 variable 又是什麼呢,Drupal 很多的系統設定都是以 variable 的方式存在系統後台上面,舉凡網站名稱(site name)、網站口號(slogan)、外觀(theme)設定等,這些都是以 variable 的形式儲存在後台內。 那麼話說回來,system_settings_form 跟 variable 有啥關係?作用就在於有些系統設定想要給使用者改,又不想開放這麼大的權限讓使用者亂搞,就會需要用到它了。 我該怎麼看到 variable 當我們將 variable 模組裝起來之後,要開啟附加模組 variable_admin 就可以看到儲存於後台全部的 variable

WordPress 學習筆記: 如何在 WordPress 中 引入 JavaScript 檔案

WordPress 學習筆記: 如何在 WordPress 中 引入 JavaScript 檔案

前言 : 如果你是有一般 Html 跟 JavaScript 基礎你應該都知道,我們在 Html 上開發 JavaScript 時之前 , 除了直接在 script 標籤裡直接開發外,就直接用以下方式引入 JavaScript 的檔案: <script src="myscripts.js"></script> 雖然使用這種方法在 WordPress 中也是行得通,不過你可能會碰到以下的問題: * 檔案路徑的問題 * 因為 header.php 與 footer.php 重複使用 , 導致 js 在不必要時候載入 使用 WordPress 內建方法 : WordPress 本身就有提供 引入 JavaScript

硬碟壞軌怎麼辦?先試試看自救吧
硬碟

硬碟壞軌怎麼辦?先試試看自救吧

雖然說硬碟這種東西,現在的平均壽命大概是三年左右,不過還是能省則省,如果有天你的硬碟壞軌了該怎麼辦?如果沒有什麼重要的東西就沒必要資料救援了,難得碰上了一次外接硬碟壞軌就順手記錄了一下過程。 指令 首先先打開你的 Windows 命令提示字元,或是直接 開始 搜尋 cmd 執行,並且打入以下指令 chkdsk e: /f /r 自行將 e: 替換成你的槽,就會看到如下圖的過程 整個硬碟掃描完成,運氣好就可以找到硬碟了。 本人親測有用

還在找 Loading 素材嗎? loading.io 快速產生客製化 Loading 素材,支援 GIF、CSS 、SVG
平台

還在找 Loading 素材嗎? loading.io 快速產生客製化 Loading 素材,支援 GIF、CSS 、SVG

還在找 Loading 效果的圖片嘛 ? * 不會製圖? * 樣式太少? * 顏色不對? 沒關西 ! loading.io [https://loading.io/] 提供你快速產生你想要的 loading 效果 loading.io可以做什麼? 你可以選擇 loading.io [https://loading.io/] 提供的任何樣式並對它進行客製化,包含: * 圖片大小 * 圖片背景 * 圖片物件顏色 * 與圖片的執行速度 * 等等… 並且決定要匯出的格式,包含: * CSS * SVG * GIF 因為它網站操作界面還滿清楚的,所以在這就不多介紹了~ 在此推薦此好物 > 前端工程師懶一點有什麼錯 XD

jQuery事件處理技巧:Delay scroll (and resize)

jQuery事件處理技巧:Delay scroll (and resize)

目的: * 優化 jQuery scroll 與 resize 的事件觸發 * 大幅減少重複的代碼,達到效能優化 > 參考文章:delay-scroll-handlers-javascript [https://dannyvankooten.com/delay-scroll-handlers-javascript/] 底下文章皆以 scroll 事件為例: 情境: 我們在開發互動式網站時,通常 scroll 事件都是少不了的,現在很多 UI 的設計都會對 滾動 這個事件進行客制化,畢竟他是使用者與網站最主要的互動。 在程式端,如果你使用是 jQuery 一定都是使用 .scroll() [https://api.jquery.com/scroll/],來進行事件驅動,如下: $(window).scroll(function(){ console.log('scroll event&

新手必看 Drupal Module 整理列表
Drupal

新手必看 Drupal Module 整理列表

Drupal Module 整理列表 對於新手來說學習 CMS 架站最困難的點就是:如何挑選模組,以及模組的功用為何,連選擇模組都是一門學問,自己摸索又會浪費大量的時間在踩雷上,不如看看以下整理出來的模組清單,以下這些模組都是個人使用過所整理出來的,個人常使用的模組也會推薦給大家。 又有鑑於突然想找模組卻又忘記模組名稱,又或是有看到好用的模組卻沒記錄起來這件事情感到可惜,特別開此一篇文章來記錄模組的名稱以及功能,希望能幫助到學習 Drupal 的新手,也藉由此機會整理模組。 大綱索引 本文的介紹方式將會以 基本模組-區塊-資料架構-資料呈現-排版-權限-功能增強 這樣的大方向來進行模組分類,也可以點標題的連結找快速跳到你想看的類型。 個人必裝的模組 建立好一個新的 Drupal 站有些模組是必裝的,很多強大的模組都是基於這些模組所開發出來的,這些模組也可以算是核心模組了吧,甚至有些是 Drupal8 也直接納入核心功能。 區塊 (Block) Block 為 Drupal 的功能之一,區塊的好處在於可以到處重複使用,壞處就是權限的控管並沒有很詳細的處理而且他不是 Entity

WordPress學習筆記:使用jQuery實做ajax無限捲軸

WordPress學習筆記:使用jQuery實做ajax無限捲軸

目的: 使用jQuery在 WordPress 中實做ajax無限捲軸 參考文章:getting-loopy-ajax-powered-loops-with-jquery-and-wordpress–wp [https://code.tutsplus.com/articles/getting-loopy-ajax-powered-loops-with-jquery-and-wordpress--wp-23232] 一、前製準備: * 在網站版型目錄下新增一個 .php 的 file (此以 loopHandler.php 為此 php 檔案做命名) * 在網站版型目錄下新增一個 js 目錄以存放所需的 js 檔案 * 於 剛新增的 js 目錄下新增一個 .js 的 file (此以 ajaxLoop.js 為此 js 檔案做命名) > 在 WordPress 中引入 javascript 檔案 需要在

初步認識 Drupal Behaviors

初步認識 Drupal Behaviors

前言 作為 Drupal 前端開發者,想必曾發生過,在Drupal 的 Ajax 一旦觸發後,你所撰寫的 Javascript 會對動態的元素,起不了任何作用。 這麼強大的 Drupal 難道沒有辦法解決這個方法嗎? 其實是有的,Drupal Javascript API 提供了一個方法叫 Behaviors 。接下來小編帶讀者們認識 Drupal Behaviors 的強大之處。 > 為何 Javascript 對動態元素會沒有任何作用,如對這有興趣可以參考這裡的簡單說明 [https://bonze.tw/drupal-ajax-%E5%9F%B7%E8%A1%8C%E5%BE%8C-javascript-%E6%9C%83%E6%B2%92%