二元搜尋法 | Easy | LeetCode#704 Binary Search
題目敘述
題目中有一個整數陣列 nums, 這個陣列是以排序的陣列,並且在這當中想要找到 target 這個元素的 index, 如果沒找到就回傳 -1。並且要求所實現的演算法其實時間複雜度為 $O(Log n)$
解法我的作法123456789101112131415161718192021222324252627282930int search(int* nums, int numsSize, int target) { // init int i,mid=0,low=0, high=numsSize-1; // Binary search // 1. find lower index and high index according to the length of array // 2 calculate middle value ...
建立 Lambda 函數 URL 的步驟
甚麼是 Lambda URL ?
官方定義: 函數 URL 是 Lambda 函數專用的 HTTP(S) 端點。您可以透過 Lambda 主控台或 Lambda API 建立及設定函數 URL。當您建立函數 URL 時,Lambda 會自動為您產生不重複的 URL 端點。函數 URL 一旦建立,其 URL 端點便永遠不會變更。
函數 URL 端點的格式如下:
1https://<url-id>.lambda-url.<region>.on.aws
要特別注意的是,某些region並不支援使用 function URL,這時可能就要用老方法: API Gateway + Lambda Integration
存取控制在建立 function URL 的時候可以透過 AuthType 參數,來決定 Lambda 如何對 funcion URL 的請求執行身分驗證或授 ...
橫向擴展ActiveMQ
Amazon MQAmzon MQ 上有託管 Active MQ 這個訊息佇列的服務,近期有碰到問題是問說,要怎麼樣在 Amazon MQ 上做 Horizontal Scaling,
首先簡單解釋一下 Vertical Scaling 跟 Horizontal Scaling 的差異。
Scaling意味著擴展,Vertical Scaling著重於單一實體的運算能力增強,所以Vertical Scaling可能會是更好的 CPU/GPU,更大的記憶體容量等等,
以 AWS 服務來說,可能會是更換實例,MQ的話就會是從 t3.Micro 換成 m5.large
[+] 執行個體類型 - https://docs.aws.amazon.com/zh_tw/amazon-mq/latest/developer-guide/broker-instance-types.html
而 ...
【學習筆記】OTA Update -1
什麼是 OTA Update (Over The Air Updtae)?透過無線通訊去對設備進行軟體/韌體更新
OTA 的流程
Notify
設備會被通知有擱置的OTA更新
設備可以選擇忽略更新或者接受更新以觸發下載
Download
設備通過各種支援的協定進行更新下載
更新包會下載到預先設定好的儲存區域
Ex. S3 Bucket
更新可能是全新的韌體映像或現有韌體的補丁
Verify
驗證更新包的有效性
Install
設備通過更新包開始更新(通常是通過 bootloader)成最新的韌體
安裝後可以執行檢查以驗證功能
設備將向 OTA 更新提供者報告韌體更新成功
主要分成這四個步驟
模組化 OTA 更新
模組化 OTA 由幾個小型函式庫和一個協調器(Orchestrator)組成。
每個 Lib 負責特定的子任務,例如通知待處理的 OTA 更新或透過 ...
【爬山紀錄】七星山主峰 + 東峰
簡介由於生長在台北多年還沒去七星山主峰的三角點,趁著難得的好天氣出遊踩點
這次爬七星山的主要路線是從 小油坑登山口 -> 七星山主峰 -> 七星山東峰,接著原路返回到 小油坑停車場
七星山是台北市內最高的山,海拔達到 1120 公尺
小油坑地熱口地熱口附近硫磺味很重,但天氣冷其實靠近挺暖的
湧出的硫磺泉會沸騰冒泡
七星山主峰通往主峰的路上幾乎都是石頭階梯,但階梯路途中挺多陡上,建議攜帶登山杖
現在是11月的芒草季,但這裡風大,芒草都被吹得彎曲,但景色還是挺美
假日會很多登山客要來跟這根拍照,就自行考量要不要留個紀念了
七星山東峰主峰往東峰的路段只需再走 0.3K,可以選擇一次蒐集兩個峰頂。但從七星主峰到七星東峰的部分路段較為濕滑,建議穿有防滑的登山鞋來。
草叢順帶一提,一路上都有很多像是下面這樣,人可以通過的樹叢,如果透過離線地圖看是可以發現路的,而且也能發現有綁繩子,舊 ...
機群佈建(Fleet Provisioning) - 預先佈建裝置到 AWS IoT
簡介什麼是機群佈建(Fleet Provisioning)?機群佈建當中也有分成 要求佈建 (Provisioning by Claim) 還有 透過信任的使用者佈建 (Provisioning by Trusted User)
要求佈建裝置可以使用內嵌的佈建宣告憑證(Claim Certificate)(這是特殊用途的憑證) 和私有金鑰 來製造。如果這些憑證已向 AWS IoT 註冊,該服務可以將它們交換為裝置可用於一般操作的唯一裝置憑證。
透過信任的使用者佈建在許多情況下,如終端使用者或安裝技術人員等信任的使用者初次使用行動應用程式在其部署的位置設定裝置時,裝置會連線至 AWS IoT
在本篇文章中,主要會介紹透過 要求佈建 的方式來去進行機群佈建
要求佈建的流程
設置 - AWS IoT Core建立憑證以及公私鑰對產生用於佈建的憑證。
可以在 AWS IoT Console ...
Hands-On Practice: AWS IoT Device Shadow
Intro - What is AWS IoT Device Shadow?In real world, sometime it is difficult to get the actual device state in real time in such IoT scenarios.
A device shadow can overcome this challenge, Device Shadow can consider a virtual virtual representation of a device which managed by the IoT Things resource created in AWS IoT Core.
The Shadow document is a JSON or a JavaScript notation doc that is use ...
Hands-On Practice: Amazon SNS Fan out to Amazon SQS
IntroductionAmazon SNS offen works well with Amazon SQS, by subscribing SQS to SNS, the SNS service can push messages to SQS. This may eliminating the need to periodically check or “poll” for updates.
What is Amazon SQS?By official definition
Amazon SQS is a message queue service used by distributed applications to exchange messages through a polling model, and can be used to decouple sending and ...
Hands-On Practice: S3 Gateway Endpoints
What is S3 Gateway Endpoints?
Let’s consider a scenario
How could your Lambda function access the content in the S3 bucket?
If you want a service to access the content in the S3 bucket, it usually go through VPC endpoint. S3 supports two types of VPC endpoint,each of which is Gateway endpoint and Interface endpoint
The diffeences between two types of VPC endpoints are listed below
S3 Gatewa ...
Lambda_layer 概念和實作
前言針對 Lambda 設定,絕大多數人一定碰過 ImportModuleError 所以各位可以跟著以下的情境,開一個一樣的 Lambda 環境逐步操作。
情境
Region: IAD(us-east-1)
Runtime: Python3.11
Lambda Name: “ITHomeLambdaFunction”
Lambda code1234567891011import json requestsdef lambda_handler(event, context): # TODO implement x = requests.get('https://www.ntust.edu.tw/') print(x.text) return { 'statusCode': 200, ...