Liveness: The kubelet uses liveness probes to know when to restart a Container.
Readiness: The kubelet uses readiness probes to know when a Container is ready to start accepting traffic.
https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/
Friday, May 10, 2019
Wednesday, May 8, 2019
Share directory over HTTP with Python
cd the directory you want to share, and
# For Python >=2.4 python -m SimpleHTTPServer 8888 # For Python 3.x python3 -m http.server 8888Then you can access this http server with: http://your_host_ip:8888
Friday, May 3, 2019
PlantUML example
@startuml hide footbox title HANA CDN Service database HANA == Initialization == CDN -> Kafka: get Last PFCDIK of today CDN <- Kafka: Last PFCDIK of today note over CDN: set Last PFCDIK as 0 if no PFCDIK was found for today ||| == Poll/Publish delta changes == loop every 1 minute CDN -> HANA: changes since Last PFCDIK of today CDN <- HANA: delta changes CDN -> Kafka: publish delta changes to topic CDN -> CDN: update local Last PFCDIK of today end
Thursday, April 25, 2019
Base64 encoded string to Decimal
We are using kafka-connect-jdbc to streaming data out of HANA Views, and the decimal columns are now saved as base64 encoded strings in Kafka.
To decode it with Python:
To decode it with Java:
To decode it with Python:
"""Convert a base64 encoded string to decimal b64str: the base64 encoded string Example: 'ATFvqA==' -> 20017064, 'JA==' -> 36 """ def b64_string_to_decimal(b64str): decoded_bytes = base64.b64decode(b64str) decimal_value = decimal.Decimal(int.from_bytes(decoded_bytes, byteorder='big')) return decimal_value
To decode it with Java:
/* * Convert a base64 encoded string to decimal * b64str: the base64 encoded string * Example: 'ATFvqA==' -> 20017064, 'JA==' -> 36 */ public BigDecimal base64StringToDecimal(String b64String) { BigDecimal bigDecimal = new BigDecimal(new BigInteger(Base64.getDecoder().decode(b64String))); return bigDecimal; }
Tuesday, October 30, 2018
parameter in Kotlin Primary constructor
var/val within constructor declares a property inside the class. When you do not write it, it is simply a parameter passed to the primary constructor, where you can access the parameters within the **init** block or use it initilize other properties. Constructor parameter is never used as a property.
Tuesday, May 29, 2018
2d array in python3
m = 5
n = 3
a = [[0 for x in range(n)] for y in range(m)]
Or a shorter version:
a = [[0]*n for y in range(m)]
Note: shortening this to something like the following does not really work since you end up with 5 copies of the same list, so when you modify one of them, they all change.
a = [[0]*n]*m
print(a)
a[1][2] = 3
print(a)
[[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]]
[[0, 0, 3], [0, 0, 3], [0, 0, 3], [0, 0, 3], [0, 0, 3]]
You can use [0] * n since Python cannot create a reference to the value 0(it's not an object) and this produces [0,0,0]. Then if you pretend you had a variable x = [0,0,0] then
c1 = x * 5
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
c2 = [x] * 5
[[0, 0, 0], [0, 0, 3], [0, 0, 0], [0, 0, 0], [0, 0, 0]]
[[0, 22, 0], [0, 22, 0], [0, 22, 0], [0, 22, 0], [0, 22, 0]]
n = 3
a = [[0 for x in range(n)] for y in range(m)]
Or a shorter version:
a = [[0]*n for y in range(m)]
Note: shortening this to something like the following does not really work since you end up with 5 copies of the same list, so when you modify one of them, they all change.
a = [[0]*n]*m
print(a)
a[1][2] = 3
print(a)
[[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]]
[[0, 0, 3], [0, 0, 3], [0, 0, 3], [0, 0, 3], [0, 0, 3]]
You can use [0] * n since Python cannot create a reference to the value 0(it's not an object) and this produces [0,0,0]. Then if you pretend you had a variable x = [0,0,0] then
c1 = x * 5
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
c2 = [x] * 5
[[0, 0, 0], [0, 0, 3], [0, 0, 0], [0, 0, 0], [0, 0, 0]]
[[0, 22, 0], [0, 22, 0], [0, 22, 0], [0, 22, 0], [0, 22, 0]]
Subscribe to:
Posts (Atom)