Author: Darek Krysmann
Bike prices
name | href | product_id | product_sku | price | date | |
---|---|---|---|---|---|---|
0 | Superlite V27 Disc 2021 | https://www.12gobiking.nl/sensa-superlite-v27-disc-2021 | 131077 | Superlite V27 Disc 2021 | 1074 | 2021-10-11 05:00:1633928405 |
1 | Travel Lite Disc 2021 | https://www.12gobiking.nl/sensa-travel-lite-disc-2021 | 131171 | Travel Lite Disc 2021 | 549 | 2021-10-11 05:00:1633928405 |
2 | Solero SL 24V 2021 | https://www.12gobiking.nl/solero-sl-24v | 142109 | Solero SL 24V 2021 | 629 | 2021-10-11 05:00:1633928405 |
3 | Strong SL 27v 2021 | https://www.12gobiking.nl/pegasus-strong-sl-27v-2021 | 127861 | Strong SL 27v 2021 | 1049 | 2021-10-11 05:00:1633928405 |
4 | Campagna 24 2021 | https://www.12gobiking.nl/sensa-campagna-24-2021 | 129315 | Campagna 24 2021 | 949 | 2021-10-11 05:00:1633928405 |
5 | Crossbike 2 2021 | https://www.12gobiking.nl/bulls-crossbike-2-2021 | 134040 | Crossbike 2 2021 | 699 | 2021-10-11 05:00:1633928405 |
6 | Common Basic 3v 2021 | https://www.12gobiking.nl/cortina-common-basic-3v-2021 | 78324 | Common Basic 3v 2021 | 519 | 2021-10-11 05:00:1633928405 |
7 | Crossway 100 2021 | https://www.12gobiking.nl/merida-crossway-100-2021 | 122649 | Crossway 100 2021 | 849 | 2021-10-11 05:00:1633928405 |
8 | Speeder 200 2021 | https://www.12gobiking.nl/merida-speeder-200-2021 | 124253 | Speeder 200 2021 | 849 | 2021-10-11 05:00:1633928405 |
9 | Common Transport 3v 2021 | https://www.12gobiking.nl/cortina-common-transport-3v-2021 | 94663 | Common Transport 3v 2021 | 579 | 2021-10-11 05:00:1633928405 |
10 | Superlite 24 2021 | https://www.12gobiking.nl/sensa-superlite-24-2021 | 139052 | Superlite 24 2021 | 829 | 2021-10-11 05:00:1633928405 |
11 | Wildcross 2021 | https://www.12gobiking.nl/bulls-wildcross-2021 | 134024 | Wildcross 2021 | 549 | 2021-10-11 05:00:1633928405 |
12 | Crossway 40 2021 | https://www.12gobiking.nl/merida-crossway-40-2021 | 122641 | Crossway 40 2021 | 619 | 2021-10-11 05:00:1633928405 |
13 | Quick Disc 3 2021 | https://www.12gobiking.nl/cannondale-quick-disc-3-2021 | 108421 | Quick Disc 3 2021 | 999 | 2021-10-11 05:00:1633928405 |
14 | Crossbike 1 2021 | https://www.12gobiking.nl/bulls-crossbike-1-2021 | 134032 | Crossbike 1 2021 | 649 | 2021-10-11 05:00:1633928405 |
15 | Savoie Gent 2021 | https://www.12gobiking.nl/stevens-savoie-gent | 148467 | Savoie Gent 2021 | 919 | 2021-10-11 05:00:1633928405 |
16 | Cross Bike Street 2021 | https://www.12gobiking.nl/bulls-cross-bike-street-2021 | 126284 | Cross Bike Street 2021 | 699 | 2021-10-11 05:00:1633928405 |
17 | Sub Cross 20 2022 | https://www.12gobiking.nl/scott-sub-cross-20 | 126560 | Sub Cross 20 2022 | 899 | 2021-10-11 05:00:1633928405 |
18 | Endeavour 8 2022 | https://www.12gobiking.nl/kalkhoff-endeavour-8 | 144303 | Endeavour 8 2022 | 1149 | 2021-10-11 05:00:1633928405 |
19 | Piazza 21V 2022 | https://www.12gobiking.nl/pegasus-piazza-21v | 143932 | Piazza 21V 2022 | 549.95 | 2021-10-11 05:00:1633928405 |
20 | Piazza 21V Disc 2022 | https://www.12gobiking.nl/pegasus-piazza-disc | 143941 | Piazza 21V Disc 2022 | 649.95 | 2021-10-11 05:00:1633928405 |
21 | Crossbike 1 2022 | https://www.12gobiking.nl/bulls-crossbike-1 | 143775 | Crossbike 1 2022 | 649.95 | 2021-10-11 05:00:1633928405 |
22 | Street Mover 2022 | https://www.12gobiking.nl/bulls-street-mover | 144784 | Street Mover 2022 | 1199 | 2021-10-11 05:00:1633928405 |
23 | Crossbike 2 2022 | https://www.12gobiking.nl/bulls-crossbike-2 | 143783 | Crossbike 2 2022 | 749.95 | 2021-10-11 05:00:1633928405 |

Short holiday in Provence during Corona (COVID-19) times

This year we all will probably remember as “The Corona year”. Everything we used to has changed in just a few days. Our way of working, how we approach other people and what I like to write about the way we spend holidays.
After a week in south France in early summer we come back somehow unsatisfied. The accommodation was not what we expected and Provence as the rest of World was different. You could not feel like you are on holidays when at every occasion you are reminded about pandemic. Going out to restaurant is not what we used to, having a chat with locals feels awkward sometimes simply not right. Most of good restaurants are booked few days in advance which is difficult if staying only a few days in a place.
Anyways cycling was the general idea for the 2020 summer holidays. We have not cycled to much this time in France (Provence) but one scenic ride will always remind me of this beautiful area. The route goes along the mighty river Rhone.

The GPX track can be downloaded here.
Elapsed Time | Moving Time | Distance | Average Speed | Max Speed | Elevation Gain | Calories Burned |
---|---|---|---|---|---|---|
05:06:12
hours
|
03:43:11
hours
|
50.23
km
|
13.50
km/h
|
38.88
km/h
|
219.00
meters
|
1,510
kcal
|
On the road we have passed nice castle few lovely villages and follow a road wher Tour de France was going later in September 2020.

Another interesting place is the bicycle suspension bridge build on remains of older bridge which was bombarded during World War 2. The place is now called “Passerelle himalayenne” and is a bridge especially build for cyclist. After riding it I noticed warning sign informing that it is prohibited to ride a bike on the bridge, you can only walk it with a bike.
The suspension bridge of the type developed by Marc Seguin was built in 1858 and is a listed historic monument. After being severely damaged in the 20th century, it was restored as a Himalayan footbridge in 2013, enabling the ViaRhôna cycle path to cross from Ardèche to Drôme.

Python code to download DMS Task Logs using the AWS DMS Task ID
Surece: https://idk.dev/python-code-to-download-dms-task-logs-using-the-aws-dms-task-id/
Slightly modified script still need to fix the datetime issue and adat for AWS Lambda.
import boto3, json, sys, time
from os import environ
import datetime
def start_time_milliseconds_since_epoch(): #time_string):
ts = int(time.time()*1000) - 8640000
print('Start time', ts)
return(ts)
def end_time_milliseconds_since_epoch():
ts = int(time.time()*1000)
print('End time ', ts)
return(ts)
def get_replication_tasks():
client = boto3.client('dms')
response = client.describe_replication_tasks(Filters=[
{
'Name': 'replication-task-id',
'Values': [
replication_task_id,
]
},
],
MaxRecords=100,
Marker='')
return response['ReplicationTasks']
def get_replication_instance_arn():
for ReplicationTasks in get_replication_tasks():
ReplicationInstanceArn = ReplicationTasks['ReplicationInstanceArn']
return ReplicationInstanceArn
def get_replication_instances():
client = boto3.client('dms')
response = client.describe_replication_instances(Filters=[
{
'Name': 'rep-instance-arn',
'Values': [
rep_instance_arn,
]
},
],
MaxRecords=100,
Marker='')
return response['ReplicationInstances']
def get_replication_instance_id():
for ReplicationInstances in get_replication_instances():
ReplicationInstanceIdentifier = ReplicationInstances['ReplicationInstanceIdentifier']
return ReplicationInstanceIdentifier
def get_cloudwatch_log_events(log_group):
client = boto3.client('logs')
kwargs = {
'logGroupName': log_group,
'limit': 1000,
'startTime': start_time,
'endTime': end_time
}
while True:
response = client.filter_log_events(**kwargs)
yield from response['events']
try:
kwargs['nextToken'] = response['nextToken']
except KeyError:
break
replication_task_id = 'celonis-dms-s3publish-part1'
rep_instance_arn = get_replication_instance_arn()
start_time = 1596672000000 #start_time_milliseconds_since_epoch()
end_time = 1596758400000 #end_time_milliseconds_since_epoch()
log_group = "dms-tasks-" + get_replication_instance_id()
# print(end_time - start_time)
def main():
for event in get_cloudwatch_log_events(log_group):
sys.stdout.write(event['message'].rstrip() + 'n')
if __name__ == '__main__':
main()
ADSBExchange
Links to AdsbExchange:
Mapview:
Link to current data posted to ADSBEx:
Nordstrom: Event-Sourced Serverless Architectures
What is Hello Retail?
Hello Retail is a proof-of-concept Serverless architecture for a retail store. The team at Nordstrom built the project to experiment with Serverless Event Sourcing.
https://read.acloud.guru/serverless-event-sourcing-at-nordstrom-ea69bd8fb7cc
Flask example 1
from flask import Flask, request, render_template
app = Flask(__name__)
@app.route('/')
def my_form():
return render_template('my-form.html')
@app.route('/', methods=['POST'])
def my_form_post():
text = request.form['text']
processed_text = text.upper()
return processed_text
if __name__ == '__main__':
app.run(host='localhost', port=80)
Request registration plate data:
import requests
url = "https://opendata.rdw.nl/resource/m9d7-ebf2.json"
plate = 'GB224X' #str(input("Enter registration number plate..."))
querystring = {}
querystring["kenteken"] = plate
#querystring = {"kenteken":"GB224X"}
headers = {
'User-Agent': "PostmanRuntime/7.20.1",
'Accept': "*/*",
'Cache-Control': "no-cache",
'Postman-Token': "43d07009-34de-4c57-99d9-af76e648cd9b,f85a65e3-2d6f-47df-813e-d4d592abff65",
'Host': "opendata.rdw.nl",
'Accept-Encoding': "gzip, deflate",
'Connection': "keep-alive"
}
def rdw():
response = requests.request("GET", url, headers=headers, params=querystring)
data = response.text
return data
print(rdw())