Get the latest raspbian image here
""" | |
Copyright 2019 Jason Hu <awaregit at gmail.com> | |
Licensed under the Apache License, Version 2.0 (the "License"); | |
you may not use this file except in compliance with the License. | |
You may obtain a copy of the License at | |
http://www.apache.org/licenses/LICENSE-2.0 | |
Unless required by applicable law or agreed to in writing, software |
function LookupO365Sku | |
{ | |
[CmdletBinding()] | |
param | |
( | |
[string] | |
$Sku | |
) | |
$skus = [Ordered] @{ |
""" | |
http://stackoverflow.com/questions/28022432/receiving-rtp-packets-after-rtsp-setup | |
A demo python code that .. | |
1) Connects to an IP cam with RTSP | |
2) Draws RTP/NAL/H264 packets from the camera | |
3) Writes them to a file that can be read with any stock video player (say, mplayer, vlc & other ffmpeg based video-players) | |
Done for educative/demonstrative purposes, not for efficiency..! |
Application: Zed-FULL.exe | |
Framework Version: v4.0.30319 | |
Description: The process was terminated due to an unhandled exception. | |
Exception Info: System.Xml.XmlException | |
at System.Xml.XmlTextReaderImpl.Throw(System.Exception) | |
at System.Xml.XmlTextReaderImpl.Throw(System.String, System.String[]) | |
at System.Xml.XmlTextReaderImpl.ParseText(Int32 ByRef, Int32 ByRef, Int32 ByRef) | |
at System.Xml.XmlTextReaderImpl.ParseText() | |
at System.Xml.XmlTextReaderImpl.ParseElementContent() | |
at System.Xml.XmlTextReaderImpl.Read() |
$Credential=Get-Credential -Message 'Plex Credentials' | |
$url = "https://plex.tv/users/sign_in.xml" | |
$BB = [System.Text.Encoding]::UTF8.GetBytes($('{0}:{1}' -f $Credential.GetNetworkCredential().Username,$Credential.GetNetworkCredential().Password)) | |
$EncodedPassword = [System.Convert]::ToBase64String($BB) | |
$headers = @{} | |
$headers.Add("Authorization","Basic $($EncodedPassword)") | out-null | |
$headers.Add("X-Plex-Client-Identifier","HASS") | Out-Null | |
$headers.Add("X-Plex-Product","Home Assistant") | Out-Null | |
$headers.Add("X-Plex-Version","V1") | Out-Null | |
[xml]$res = Invoke-RestMethod -Headers:$headers -Method Post -Uri:$url |
""" | |
Implementation of the Selenium Chrome WebDriver | |
with HTTP Response data included via the ChromeDriver performance logging capability | |
https://sites.google.com/a/chromium.org/chromedriver/logging/performance-log | |
The ChromeWebDriver response attribute(s) contain a dict with information about the response | |
{ | |
"connectionId": [Integer], | |
"connectionReused": [Boolean], | |
"encodedDataLength": [Integer], |
The official guide for setting up Kubernetes using kubeadm
works well for clusters of one architecture. But, the main problem that crops up is the kube-proxy
image defaults to the architecture of the master node (where kubeadm
was run in the first place).
This causes issues when arm
nodes join the cluster, as they will try to execute the amd64
version of kube-proxy
, and will fail.
It turns out that the pod running kube-proxy
is configured using a DaemonSet. With a small edit to the configuration, it's possible to create multiple DaemonSets—one for each architecture.
Follow the instructions at https://kubernetes.io/docs/setup/independent/create-cluster-kubeadm/ for setting up the master node. I've been using Weave Net as the network plugin; it see
version: '2' | |
services: | |
nginx: | |
image: jwilder/nginx-proxy | |
container_name: nginx-proxy | |
environment: | |
- DEFAULT_HOST=nuget.hangfire.io | |
links: | |
- proget | |
ports: |
/** | |
* Code to run a basic automatic greenhouse. | |
* | |
* - Temp/humidity sensor | |
* - Soil moisture sensor | |
* - Water pump | |
* - Ventilation fan | |
* | |
* @see http://saettfro.com/vaxthus/ | |
*/ |