文章

React Native Canvas介紹及修正在Android 12上的滾動效果

圖片
React Native Canvas介紹 https://github.com/iddan/react-native-canvas 如果你想在React Native上製在一個用手指在螢幕上繪圖的功能,那麼React Native Canvas會很適合你。 React Native Canvas 是一個很有趣的library,它可以讓你在React Native上使用類似HTML 5 Canvas的API。 那麼它是如何做到的?很簡單,就是直接使用WebView,然後寫一套API去把指令從React Native傳過去WebView。 在WebView那裡就是直接調用HTML 5的Canvas API了。 來看一下它的原始碼: 這個原始碼是我從 Canvas.js 裡抽出來的,可以看到其實就是一個WebView。而WebView component和React Native之間就是利用 onMessage 和 webview.postMessage 來進行溝通的。 這是一種很常用的WebView交換資料方式,詳細可以到react-native-webview的API文檔去查看。 onMessage (Prop): https://github.com/react-native-webview/react-native-webview/blob/master/docs/Reference.md#onmessage postMessage (Function): https://github.com/react-native-webview/react-native-webview/blob/master/docs/Reference.md#postmessagestr Library的其它檔案連接了各種Canvas API的interface,一般用到的都會有。 我自己是用來製作簡單的手指繪圖功能,效能還算不錯,如果我不說的話,基本上沒有人會知道這個繪圖功能是一個WebView做出來的。 當然,這就是得益於現在的手機越來越快,WebView效能越來越好,我現在連PDF都是用PDF.js來顯示的。回想很多年前,我也曾試在手機上使用PDF.js,但實在太慢。 以後有機會說說在React Native上用PDF.js。 話說回來,只要你會用HTML 5的Canvas AP...

ChatGPT說明了學會提問的重要性

圖片
最近最火熱的話題肯定是ChatGPT了,到處都是ChatGPT相關的報導和教學,連我媽都知道有這個玩意存在。 不如為何,最近和AI相關的應用好像真的多了不少,在ChatGPT出現前,大家已經在玩AI生成圖片了。從Midjourney到Stable Diffusion,很多不接觸AI的人都開始對這些魔法產生了興趣。 其實ChatGPT並不是OpenAI的新發明,如果我沒記錯的話,它的GPT已經做了幾年了,這幾年一直都有提供收費的GPT AI供開發人員使用。而ChatGPT之所以爆紅,根本原因是它提供了一般人能輕鬆使用的用戶介面,而不用去使用付費的API。 不管怎樣也好,現在大家用過了ChatGPT後,大概都已經回不去了,以後都會是一個有個人AI輔助的世界了,事實上很多人已經開始依賴了這些工具。 ChatGPT真的能夠在工作上和日常生活中幫到很大的忙,改變了工作的方式。這也許是新時代的工作方式,然而,一個新的技能也隨之而來,那就是學會提問。 從小的時候,已經被教導過學會提問是學習中重要的一環,現在可能更重要了。大家都在使用的AI工具,為什麼我用得比你更精準,出來的效果更好?可能就是我提問的技巧比較好。 現在網絡上有一個新興的詞,叫prompt engineering。就是我們對AI說的「咒語」,這還真是一個學問,你的prompt越詳細精準,出來的結果就更能符合你的目標。 所以,即使有了新的工具,也會需要新的技能才能運用自如。今天開始就訓練一下自己的表達能力和提問技巧吧! (本篇文章並不是由ChatGPT生成的,請放心閱讀)

是時候回來更新一下

圖片
好久不見!原來又很久沒有回來胡言亂語了。  今天放工後沒事做,在看看自己Google Drive裡有什麼檔案,就找到了陳年的Xanga封存。  對了,如果你以前有用Xanga寫日記,又沒有備份的話,你現在還是可以登入Xanga下載你的封存備份,好好保留過往的回憶。  我剛剛登入過了,是可以進去的,所以想備份的趕緊去下載吧!  那個熟悉的網址在這裡: http://xanga.com/ 我的Xanga封存還不少,畢竟寫了好幾年,每一兩天就會更新一下,後期更是喜歡寫長篇大論的文章。但是這些長篇大論的文章,多半是舒發己見,倒不及以前的短短幾句來得好。 以前多是記錄生活大大小小的事,現在我再閱讀起來,還是能回想起當日的畫面,即使只是短短幾句,已經可以足夠令我回憶起當天發生的事。 而那些文章,完全無法令我知道當天發生過什麼事,所以還是寫寫日記好,那些文章寫得再好,也沒有留下半點會回憶,更沒有稿費,說真的價值不大。 我剛剛也只是抽了一部份Xanga封存來看,不敢一次看完,這些珍貴的回憶,是要慢慢細味。 現在人大了,不能像以往一樣,什麼事都寫下來給人看,或者也已經沒人會看了,那些曾經訂閱的朋友們,都過去了。 過去了的,就是過去了。

好一段時間沒見,大家還好嗎?

圖片
Photo by Sylwia Bartyzel on Unsplash   哇!時間過得好快啊,不知不覺原來我已經很久沒有更新這裡了。 一直沒有更新這裡,是因為生活有點忙碌,一直想更新卻沒有動力去騰出一點空間來,這也許就是人類的惰性吧。 不過如果你問我到底在忙什麼,其實也沒有什麼,也是上班下班,朝九晚五的工作人生,基本上沒有什麼突破。 和上年本站更新的日子比起來,生活其實沒有多大的改變,新冠肺炎還在,大家還是要戴口罩,生活還是沒有回復正常。 希望疫情快點過去吧。

人類都在計劃登陸火星了,為何卻連一個聊天室都做不好

圖片
Photo by  Kev Costello  on  Unsplash 如果你2000年代有上網的話,應該對聊天室不陌生。使用聊天室時,先設定好一個暱稱,然後就可以選擇任何主題的頻道進去聊天。聊天室是當時很多人上網的最佳消遣地點,很多人可以由早聊到晚,樂此不疲。 除了聊天室,人們還會使用ICQ等等通訊軟件。在我看來,ICQ和MSN Messenger這些通訊軟件也是聊天室的一種,只不過有專屬軟件,和背後使用的技術不同而已,但是作為使用者不必理會。當然因為技術不同,通訊軟件可以更為即時推送訊息,而聊天室是每數秒才會更新一次螢幕上的訊息,但總的來說,使用上的意義分別不大。 到了智能手提電話開始普及,就多了例如Whatsapp這些通訊軟件,這當然也是聊天室的一種,有單對單的聊天室,而多人的群組就更像傳統聊天室。 其實聊天室這種東西已經出現了很多年,但至今仍然是程式編寫人員的惡夢。要寫出一個好用的通訊軟件仍然不容易。 2000年代聊天室已經可以有各種特效,例如可以把訊息字體放大,變粗體,閃爍,甚至是在螢幕上滾動。而直至數年前Apple iMessage和Google Allo(已中止營運)才以此為賣點,可以為訊息加入特效,而且還相當陽春。 上年,Whatsapp推出了「私下回覆」功能,在一個群組裡,你可以私下對某成員進行訊息回覆。如果你聰明的話,你應該明白我接下來要說甚麼了。對了,這不就是聊天室一向已有的功能嗎,「分屏私下對話」,這種東西一早存在了。但明顯地大家都已經忘記了這種古老科技,而把它作創新科技看待。更離譜的是,Whatsapp要多年後才有此基本功能。 其實我自己的日常工作之一,正正就是開發通訊軟件。這顯然並非新科技,但這工作仍然充滿困難。20年前已普及的聊天室到了今天,仍然有開發困難,實在是十分可笑的。幾乎每年都有新的通訊軟件推出,而這些通訊軟件都是各自各重新編寫的。至少,應該發展出一個通用標準,讓這個世界不用再浪費人力和時間天天重覆做著一模一樣的事。就像瀏覽器世界,Microsoft也轉到Chromium內核了,我認為這是非常好的事,開發者也不用浪費時間去支援不同內核,可以專注創新。 人類都在計劃登陸火星了,為何卻連一個聊天室都做不好?

試試使用UV box來殺菌

圖片
早前買的一款UV-BOX 因為最近的肺炎疫情,令大家都更注重個人衛生。早前就入手了一款UV紫外光盒用來殺殺電話上的細菌。 要留意一下,我是說細菌,不是病毒,所以是不可以用來殺肺炎病毒的啊!不過可以殺菌也很好,畢竟電話螢幕上的細菌比廁所還要多吧! 買的時候也有懷疑過到底有沒有用的,不過剛巧幾天前有媒體請了大學教授測試了幾款UV殺菌產品,都證實是有效殺菌的,所以使用時就更放心了。 除了殺菌外,也可以用清潔劑來清潔螢幕,可以看我之前介紹過的 Whoosh! 。

冷靜點,寫App又不是整火箭

圖片
Elon Musk,從支付網站到電動車和火箭,真真正正的Rocket Science 開始長篇大論前,先要告訴讀者,我是從事IT行業的,是一個App developer。 其實App developer在我眼中是一個低科技工作者,只是一個科技工人。要入行做一個App developer實在不難,你不需要大學畢業,可能只是上幾個有關課程已經可以開始工作了。 當然,有人會認為高質素的developer非常難聘請,這個情況很多行業也會有,即使是醫生律師也會有質素問題。但普遍來說,你並不需要聘請一個非常高質素的developer去工作。原因是大部份你會做到的功能,都已經有前人做好,你只需要像積木一樣將不同部份砌好就可以了。而質素的差異並不會太大影響結果,都是「手板眼見功夫」,有手有腳,做起來沒有問題的。即使真的沒有前人做好,要重頭寫也不是很難的工作。 很多developer都會討論和交流寫App的心得,而且非常深入。因為一個App裡面可以是一個小宇宙,架構的確是可以非常複雜的。但App終究只是一個App,再複雜也是只一個App,又不是整火箭。當然有人會說寫App也是一種大學問,要精通也非易事,但難易是相對的,在科技工種來說,寫App確實是相對最易的工作。 我認為App developer可以算是基本上沒有科研成份的科技工種,是IT界的組裝工人。如果想令人生有點意義,可以考慮去寫火箭控制軟件,醫療設備軟件等等mission critical software。當然,只有真正精英才可以做此等工作,因為搞不好會死人的。我自問就沒有能力。 做了這麼多年developer,很多日常工作已經是駕輕就熟。每每看見入行不久的年輕人,為了使用哪一個library討論得面紅耳熱,只是想講一句,「冷靜少少,it's not rocket science。」