A type-safe Java library that helps your code to interact with MongoDB documents and convert them to/from Java objects. (aka pojongo)
Python class for F2B Payment Gateway
equake/aws-spot-fleet-helper 2
Pythons library to help launching a fleet of Spot instances within AWS infrastructure Star
CodeIgniter Test
A type-safe Java library that helps your code to interact with MongoDB documents and convert them to/from Java objects. (aka pojongo)
Socket.io server implementation on top of Tornado framework
Generate a burndown chart from trello tasks
A WSGI gateway for the AWS API Gateway/Lambda proxy integration
issue commenttzapu/WiFiManager
WifiClientSecure, PubSubClient and WifiManager dont work together
@adeltc - What exactly is your issue? My configuration works, except for the .subscribe
from the pub/sub client.
comment created time in an hour
pull request commentJamesOsgood/mongodb-grafana
Update server to allow extended Mongo query syntax
Hi @nescohen bumping this issue. Should I continue pursuing this issue or look to other avenues for a solution?
Thanks for all your help thus far! Much appreciated!
comment created time in an hour
issue commenttzapu/WiFiManager
WifiClientSecure, PubSubClient and WifiManager dont work together
Shrug no one has posted logs from dev
comment created time in an hour
issue commenttgalal/yowsup
@Whomakes Follow the steps:
- Find
keystore.xml
on your device. - Extract the value of
client_static_keypair_pwd_enc
. It should look something like this:[2,"sdfsdfgsdf","cxvxcvzxcv","wetytryerrewf","fghktyvbfndygg"]
(a JSON array with 5 elements) - Create a JSONArray Java-object by loading in all the values in order. (In the example, the elements are replaced by
<iv>
,<ciphertext>
,<salt>
and<password>
. - Create a EncryptedClientStaticKeypair Java-object from the JSONArray Java-object.
- When you have this object, you can run the decrypt function on it. It will give you the
client_static_keypair
in bytes.
comment created time in 3 hours
startedJetBrains/kotlin
started time in 5 hours
startedinvertase/react-native-firebase
started time in 5 hours
starteduber/baseweb
started time in 5 hours
issue commentRobTillaart/Arduino
OK we found the cause, now to think of a good fix.
What I thought of last night was the following:
1. change the signature of add() to indicate effect of the addition. (good) 2. add a rescale function (bad & ugly) 3. double instead of float ??
// returns false if effectively nothing is added to sum. // either value == 0 // or sum has reached "overflow status" bool add(const float value); // rescale multiplies sum * factor and count * factor so average is conserved. // major drawback is that stddev etc is corrupted. void rescale(float factor); // 0 .. 1
in your application I would use - https://github.com/RobTillaart/runningAverage
by implementing (1) above there is at least an indicator of the problem.
Ok, will try with runningAverage. Thank you.
comment created time in 6 hours
startedfibreville/atrpg
started time in 6 hours
issue commentRobTillaart/Arduino
OK we found the cause, now to think of a good fix.
What I thought of last night was the following:
- change the signature of add() to indicate effect of the addition. (good)
- add a rescale function (bad & ugly)
// returns false if effectively nothing is added to sum.
// either value == 0
// or sum has reached "overflow status"
bool add(const float value);
// rescale multiplies sum * factor and count * factor so average is conserved.
// major drawback is that stddev etc is corrupted.
void rescale(float factor); // 0 .. 1
in your application I would use - https://github.com/RobTillaart/runningAverage
comment created time in 6 hours
push eventnucleic/atom
commit sha 24492581bedbff176ce5ef1ca388d241414bd487
cis: update for main branch renaming
push time in 7 hours
issue openedsui77/rc-switch
Cannot call a std library function in an ISR.
/* helper function for the receiveProtocol method */ static inline unsigned int diff(int A, int B) { return abs(A - B); }
should be changed to:
/* helper function for the receiveProtocol method */ static inline unsigned int diff(int A, int B) { return (A > B) ? (A - B) : (B - A); }
Now it runs flawless on the ESP32.
created time in 8 hours
issue commentsui77/rc-switch
AH, id not see that! Thanx.
comment created time in 8 hours
issue commentRobTillaart/Arduino
think think think ....
Aha, yes some internal numbers overflow after some time.
The library has a variable float sum. Your sketch adds between 0 and 1000 every time. Given the precision of a float it is possible that after some 20.000 additions the next addition is not significant anymore. However the other important variable uint32_t count, still increases (it can go to 4.000.000.000++), so we got in a scenario that sum stays constant and count increases. That would cause the average = sum / count slowly degrade.
TEST
Can you do a testrun and print AnalogValueStats.sum() and AnalogValueStats.count() ?
Version 0.4.2 ?
Do you have the latest version 0.4.2 -https://github.com/RobTillaart/Statistic ? That one can still overflow but at least we are testing with the same version
As it is getting late I have no solution right now. A first order band aid solution is replace all datatypes of float with double in the library. Then it will take far more time before the problem occurs.
to be continued tomorrow.
I did statistic update from 0.4.1 to 0.4.2 from your link and fix the sketch like you suggested:
<details>
#include "Statistic.h"
int AnalogValue = 0;
int n = 0;
Statistic AnalogValueStats(100);
//Statistic AnalogValueStats(100);
unsigned long previousMicros = 0;
unsigned long previousMillisVM = 0;
unsigned long previousTerm = 0;
void setup() {
Serial.begin(115200);
}
void loop() {
if (micros() - previousMicros >= 20) {
previousMicros = micros();
yield();
n++;
if (n > 100) {
AnalogValue = random(900, 980);
} else {
AnalogValue = random(810, 860);
}
if (n == 120) {
n = 0;
}
AnalogValueStats.add(AnalogValue);
}
if (millis() - previousTerm >= 5000) {
previousTerm = millis();
Serial.print("val, avg, max, sum, count: ");
Serial.print(AnalogValue);
Serial.print(", ");
Serial.print(AnalogValueStats.average());
Serial.print(", ");
Serial.print(AnalogValueStats.maximum());
Serial.print(", ");
Serial.print(AnalogValueStats.sum());
Serial.print(", ");
Serial.println(AnalogValueStats.count());
}
}
</details>
Yes, you are correct sum stays constant after 17179869184 :
<details>
val, avg, max, sum, count: 857, 964.78, 979.00, 16268537856.00, 16862481
val, avg, max, sum, count: 850, 965.20, 979.00, 16391465984.00, 16982528
val, avg, max, sum, count: 847, 965.61, 979.00, 16514776064.00, 17102948
val, avg, max, sum, count: 819, 966.02, 979.00, 16637747200.00, 17223037
val, avg, max, sum, count: 970, 966.42, 979.00, 16761069568.00, 17343469
val, avg, max, sum, count: 812, 966.82, 979.00, 16883889152.00, 17463410
val, avg, max, sum, count: 900, 967.21, 979.00, 17007192064.00, 17583823
val, avg, max, sum, count: 834, 967.59, 979.00, 17130012672.00, 17703765
val, avg, max, sum, count: 838, 963.86, 979.00, 17179869184.00, 17824120
val, avg, max, sum, count: 824, 957.40, 979.00, 17179869184.00, 17944278
val, avg, max, sum, count: 849, 951.01, 979.00, 17179869184.00, 18064802
val, avg, max, sum, count: 851, 944.77, 979.00, 17179869184.00, 18184204
val, avg, max, sum, count: 815, 938.55, 979.00, 17179869184.00, 18304706
val, avg, max, sum, count: 857, 932.43, 979.00, 17179869184.00, 18424821
val, avg, max, sum, count: 815, 926.37, 979.00, 17179869184.00, 18545351
val, avg, max, sum, count: 826, 920.41, 979.00, 17179869184.00, 18665402
val, avg, max, sum, count: 971, 914.51, 979.00, 17179869184.00, 18785862
val, avg, max, sum, count: 958, 908.72, 979.00, 17179869184.00, 18905509
val, avg, max, sum, count: 856, 902.97, 979.00, 17179869184.00, 19025944
val, avg, max, sum, count: 822, 897.31, 979.00, 17179869184.00, 19146031
val, avg, max, sum, count: 832, 891.70, 979.00, 17179869184.00, 19266485
val, avg, max, sum, count: 829, 886.18, 979.00, 17179869184.00, 19386450
val, avg, max, sum, count: 950, 880.70, 979.00, 17179869184.00, 19506955
val, avg, max, sum, count: 829, 875.35, 979.00, 17179869184.00, 19626269
val, avg, max, sum, count: 842, 870.01, 979.00, 17179869184.00, 19746688
val, avg, max, sum, count: 818, 864.76, 979.00, 17179869184.00, 19866603
val, avg, max, sum, count: 859, 859.55, 979.00, 17179869184.00, 19987093
</details>
I will also try your fix to change float with double and then lower samples (in my project) if i can managed to get correct avg numbers for a month and then I can do a reset aka AnalogValueStats.clear().
Thank you.
comment created time in 8 hours
issue commenttgalal/yowsup
JSONArray arr = new JSONArray(); arr.put(2); arr.put("<ciphertext>"); arr.put("<iv>"); arr.put("<salt>"); arr.put("<password>"); EncryptedClientStaticKeypair csk = EncryptedClientStaticKeypair.fromJSONArray(arr); try { System.err.println("Decrypted = "+Hex.fromBytes(csk.decrypt())); } catch (Exception e) { e.printStackTrace(); }
how to use it?
comment created time in 10 hours
issue commenttgalal/yowsup
Stuck on yowsup.axolotl.manager - Loaded 812 unsent prekeys
Hello, Anyone found the fix?
I'm facing the same issue.
comment created time in 10 hours
issue commentmarshmallow-code/marshmallow
Marshmallow error when deploying Flask app to server
Your tutorial is from 2013, it's too old and makes a lot of sense, I'm guessing it's actually using python2. you probably should find a modern deployment tutorial, like using Docker
comment created time in 11 hours
issue commenttzapu/WiFiManager
WifiClientSecure, PubSubClient and WifiManager dont work together
Any progress on this issue. I'm still seeing with the last versions of the wifimanager and PubSubClient. The symptoms I'm seeing the WifiManager Auto connect that stop broadcasting SSID in AP mode. As soon as I remove the TLS code (replace "WiFiClientSecure" with "WiFiClient" ), It works perfectly. When I put back "WiFiClientSecure", the AP mode stop working correctly, SSID is not visible anymore.
In the beginning, I though it was an out of memory issue then I moved the code that instantiates "WiFiClientSecure" after the Wifi Manager AutoConnect... so "WiFiClientSecure" is not instantiated before the WifiManager Autoconnect complete. Even then I still see the same issue.
Long story short, as soon as the code of "WiFiClientSecure" compiles, the WifiManager Autoconnect stops working correctly... even if we don't instantiate the variables.
comment created time in 13 hours
startedcli/cli
started time in 15 hours
startedsveltejs/svelte
started time in 18 hours
issue commentRobTillaart/Arduino
think think think ....
Aha, yes some internal numbers overflow after some time.
The library has a variable float sum. Your sketch adds between 0 and 1000 every time. Given the precision of a float it is possible that after some 20.000 additions the next addition is not significant anymore. However the other important variable uint32_t count, still increases (it can go to 4.000.000.000++), so we got in a scenario that sum stays constant and count increases. That would cause the average = sum / count slowly degrade.
TEST
Can you do a testrun and print AnalogValueStats.sum() and AnalogValueStats.count() ?
Version 0.4.2 ?
Do you have the latest version 0.4.2 -https://github.com/RobTillaart/Statistic ? That one can still overflow but at least we are testing with the same version
As it is getting late I have no solution right now. A first order band aid solution is replace all datatypes of float with double in the library. Then it will take far more time before the problem occurs.
to be continued tomorrow.
comment created time in 18 hours
issue commentRobTillaart/Arduino
MInimized your sketch to
#include "Statistic.h" int AnalogValue = 0; int AvgAnalogValue = 0; int MaxAnalogValue = 0; int n = 0; Statistic AnalogValueStats; //Statistic AnalogValueStats(100); unsigned long previousMicros = 0; unsigned long previousMillisVM = 0; unsigned long previousTerm = 0; void setup() { Serial.begin(115200); } void loop() { if (micros() - previousMicros >= 50) { previousMicros = micros(); yield(); n++; if (n > 100) { AnalogValue = random(900, 980); } else { AnalogValue = random(810, 860); } if (n == 120) n = 0; AnalogValueStats.add(AnalogValue); AvgAnalogValue = AnalogValueStats.average(); MaxAnalogValue = AnalogValueStats.maximum(); } Serial.print(AnalogValue); Serial.print(", "); Serial.print(AvgAnalogValue); Serial.print(", "); Serial.println(MaxAnalogValue); }
when I look at it with the Serial plotter it behaves quite well
Sorry I forgot to mentioned that it takes aboout 5min to get weird numbers, like it is shown in the graph...
comment created time in 19 hours
issue commentsui77/rc-switch
For the protocol you have it already into the master below: https://github.com/sui77/rc-switch/commit/ebe91719936265540adcb9766f6ed6e09befe48f
comment created time in 19 hours
issue commentRobTillaart/Arduino
MInimized your sketch to
#include "Statistic.h"
int AnalogValue = 0;
int AvgAnalogValue = 0;
int MaxAnalogValue = 0;
int n = 0;
Statistic AnalogValueStats;
//Statistic AnalogValueStats(100);
unsigned long previousMicros = 0;
unsigned long previousMillisVM = 0;
unsigned long previousTerm = 0;
void setup()
{
Serial.begin(115200);
}
void loop()
{
if (micros() - previousMicros >= 50)
{
previousMicros = micros();
yield();
n++;
if (n > 100) {
AnalogValue = random(900, 980);
} else {
AnalogValue = random(810, 860);
}
if (n == 120) n = 0;
AnalogValueStats.add(AnalogValue);
AvgAnalogValue = AnalogValueStats.average();
MaxAnalogValue = AnalogValueStats.maximum();
}
Serial.print(AnalogValue);
Serial.print(", ");
Serial.print(AvgAnalogValue);
Serial.print(", ");
Serial.println(MaxAnalogValue);
}
when I look at it with the Serial plotter it behaves quite well
comment created time in 19 hours
issue commentRobTillaart/Arduino
Hi again!
I prepared the sketch and repeated the weird avg values.
arduino ver.: SDK:2.2.2-dev(38a443e)/Core:2.7.3-3-g2843a5ac=20703003/lwIP:IPv6+STABLE-2_1_2_RELEASE/glue:1.2-30-g92add50/BearSSL:5c771be
The sketch:
#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>
#include "Statistic.h"
int AnalogValue = 0;
int AvgAnalogValue = 0;
int MaxAnalogValue = 0;
int n = 0;
Statistic AnalogValueStats(100);
//Statistic AnalogValueStats(100);
unsigned long previousMicros = 0;
unsigned long previousMillisVM = 0;
unsigned long previousTerm = 0;
void setup() {
Serial.begin(115200);
WiFi.mode(WIFI_STA);
WiFi.begin("ssid", "psk");
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
Serial.println(ESP.getFullVersion());
}
void loop() {
if (micros() - previousMicros >= 50) {
previousMicros = micros();
yield();
n++;
if (n > 100) {
AnalogValue = random(900, 980);
} else {
AnalogValue = random(810, 860);
}
if (n == 120) {
n = 0;
}
AnalogValueStats.add(AnalogValue);
AvgAnalogValue = AnalogValueStats.average();
MaxAnalogValue = AnalogValueStats.maximum();
}
if (millis() - previousMillisVM >= 10000) {
previousMillisVM = millis();
yield();
String VMDataStructure = "";
VMDataStructure += "pulse,host=test,name=analog_avg value=" + String(AvgAnalogValue) + "\n";
VMDataStructure += "pulse,host=test,name=analog_max value=" + String(MaxAnalogValue) + "\n";
VMDataStructure += "pulse,host=test,name=analog value=" + String(AnalogValue) + "\n";
send_to_vm_tcp(VMDataStructure);
}
if (millis() - previousTerm >= 5000) {
previousTerm = millis();
Serial.print("val, avg, max: ");
Serial.print(AnalogValue);
Serial.print(", ");
Serial.print(AvgAnalogValue);
Serial.print(", ");
Serial.println(MaxAnalogValue);
}
}
void send_to_vm_tcp (String content) {
HTTPClient http;
http.begin("http://172.22.0.243:8428/write?db=test");
http.addHeader("Content-Type", "application/x-www-form-urlencoded");
int httpResponseCode = http.POST(content);
if (httpResponseCode != 200 && httpResponseCode != 201 && httpResponseCode != 204 ) {
Serial.println("ERROR: vm insert error, http code:" + String(httpResponseCode));
}
http.end();
}
sketch output: <details>
val, avg, max: 818, 883, 979
val, avg, max: 836, 884, 979
val, avg, max: 858, 886, 979
val, avg, max: 821, 887, 979
val, avg, max: 940, 888, 979
val, avg, max: 817, 890, 979
val, avg, max: 903, 891, 979
val, avg, max: 971, 893, 979
val, avg, max: 828, 894, 979
val, avg, max: 833, 895, 979
val, avg, max: 859, 896, 979
val, avg, max: 811, 898, 979
val, avg, max: 853, 899, 979
val, avg, max: 801, 900, 979
val, avg, max: 837, 901, 979
val, avg, max: 813, 902, 979
val, avg, max: 918, 903, 979
val, avg, max: 811, 905, 979
val, avg, max: 824, 906, 979
val, avg, max: 818, 907, 979
val, avg, max: 849, 908, 979
val, avg, max: 813, 909, 979
val, avg, max: 827, 910, 979
val, avg, max: 809, 911, 979
val, avg, max: 916, 912, 979
val, avg, max: 816, 913, 979
val, avg, max: 805, 914, 979
val, avg, max: 856, 915, 979
val, avg, max: 840, 915, 979
val, avg, max: 846, 916, 979
val, avg, max: 833, 917, 979
val, avg, max: 822, 918, 979
val, avg, max: 828, 919, 979
val, avg, max: 915, 920, 979
val, avg, max: 803, 921, 979
val, avg, max: 837, 921, 979
val, avg, max: 814, 922, 979
val, avg, max: 834, 923, 979
val, avg, max: 809, 924, 979
val, avg, max: 959, 925, 979
val, avg, max: 846, 925, 979
val, avg, max: 850, 926, 979
val, avg, max: 966, 927, 979
val, avg, max: 852, 927, 979
val, avg, max: 837, 928, 979
val, avg, max: 834, 929, 979
val, avg, max: 839, 930, 979
val, avg, max: 833, 930, 979
val, avg, max: 841, 931, 979
val, avg, max: 806, 932, 979
val, avg, max: 815, 932, 979
val, avg, max: 837, 933, 979
val, avg, max: 815, 933, 979
val, avg, max: 825, 934, 979
val, avg, max: 814, 935, 979
val, avg, max: 838, 935, 979
val, avg, max: 909, 936, 979
val, avg, max: 966, 937, 979
val, avg, max: 832, 937, 979
val, avg, max: 816, 938, 979
val, avg, max: 828, 938, 979
val, avg, max: 969, 939, 979
val, avg, max: 845, 939, 979
val, avg, max: 835, 940, 979
val, avg, max: 804, 940, 979
val, avg, max: 824, 941, 979
val, avg, max: 825, 941, 979
val, avg, max: 911, 942, 979
val, avg, max: 836, 942, 979
val, avg, max: 943, 943, 979
val, avg, max: 820, 943, 979
val, avg, max: 811, 944, 979
val, avg, max: 800, 944, 979
val, avg, max: 826, 945, 979
val, avg, max: 802, 945, 979
val, avg, max: 800, 946, 979
val, avg, max: 821, 946, 979
val, avg, max: 815, 947, 979
val, avg, max: 831, 947, 979
val, avg, max: 838, 948, 979
val, avg, max: 853, 948, 979
val, avg, max: 847, 949, 979
val, avg, max: 801, 949, 979
val, avg, max: 859, 949, 979
val, avg, max: 811, 950, 979
val, avg, max: 814, 950, 979
val, avg, max: 803, 951, 979
val, avg, max: 928, 951, 979
val, avg, max: 822, 951, 979
val, avg, max: 926, 952, 979
val, avg, max: 832, 952, 979
val, avg, max: 855, 953, 979
val, avg, max: 803, 953, 979
val, avg, max: 845, 953, 979
val, avg, max: 833, 954, 979
val, avg, max: 832, 954, 979
val, avg, max: 807, 955, 979
val, avg, max: 809, 955, 979
val, avg, max: 836, 955, 979
val, avg, max: 856, 956, 979
val, avg, max: 837, 956, 979
val, avg, max: 803, 956, 979
val, avg, max: 846, 957, 979
val, avg, max: 822, 957, 979
val, avg, max: 841, 957, 979
val, avg, max: 949, 958, 979
val, avg, max: 924, 958, 979
val, avg, max: 903, 958, 979
val, avg, max: 849, 959, 979
val, avg, max: 855, 959, 979
val, avg, max: 852, 959, 979
val, avg, max: 908, 960, 979
val, avg, max: 921, 960, 979
val, avg, max: 842, 960, 979
val, avg, max: 922, 961, 979
val, avg, max: 831, 961, 979
val, avg, max: 856, 961, 979
val, avg, max: 806, 961, 979
val, avg, max: 824, 962, 979
val, avg, max: 810, 962, 979
val, avg, max: 839, 962, 979
val, avg, max: 941, 963, 979
val, avg, max: 814, 963, 979
val, avg, max: 845, 963, 979
val, avg, max: 851, 964, 979
val, avg, max: 842, 964, 979
val, avg, max: 808, 964, 979
val, avg, max: 828, 964, 979
val, avg, max: 839, 965, 979
val, avg, max: 908, 965, 979
val, avg, max: 856, 965, 979
val, avg, max: 827, 965, 979
val, avg, max: 971, 966, 979
val, avg, max: 819, 966, 979
val, avg, max: 849, 966, 979
val, avg, max: 837, 964, 979
val, avg, max: 856, 959, 979
val, avg, max: 816, 955, 979
val, avg, max: 960, 951, 979
val, avg, max: 906, 947, 979
val, avg, max: 834, 943, 979
val, avg, max: 825, 939, 979
val, avg, max: 802, 935, 979
val, avg, max: 815, 931, 979
val, avg, max: 819, 927, 979
val, avg, max: 914, 923, 979
val, avg, max: 847, 919, 979
val, avg, max: 922, 915, 979
val, avg, max: 853, 911, 979
val, avg, max: 811, 908, 979
val, avg, max: 859, 904, 979
val, avg, max: 816, 900, 979
val, avg, max: 836, 896, 979
val, avg, max: 820, 893, 979
val, avg, max: 816, 889, 979
val, avg, max: 829, 886, 979
val, avg, max: 840, 882, 979
val, avg, max: 813, 878, 979
val, avg, max: 850, 875, 979
val, avg, max: 832, 871, 979
val, avg, max: 828, 868, 979
val, avg, max: 814, 865, 979
val, avg, max: 850, 861, 979
val, avg, max: 830, 858, 979
val, avg, max: 841, 854, 979
val, avg, max: 831, 851, 979
val, avg, max: 823, 848, 979
val, avg, max: 856, 845, 979
val, avg, max: 827, 841, 979
val, avg, max: 816, 838, 979
val, avg, max: 806, 835, 979
val, avg, max: 811, 832, 979
val, avg, max: 838, 829, 979
val, avg, max: 803, 825, 979
val, avg, max: 848, 822, 979
val, avg, max: 803, 819, 979
</details>
values graph:
Thank you for your in advance, I really appreciate. Best regards, Peter
comment created time in 19 hours
issue commentageitgey/face_recognition
Multiple results for one person (face)
Hi there and thank for open this ticket , can you please share the full code of getting the names plus the distances for the people ? am stuck with this since a while warm regards
comment created time in 20 hours
issue openedsui77/rc-switch
According to the expressif documentation:
If the ISR is placed into IRAM, all constant data used by the ISR and functions called from ISR (including, but not limited to, const char arrays), must be placed into DRAM using DRAM_ATTR.
So:
static const RCSwitch::Protocol proto[] and const unsigned int RCSwitch::nSeparationLimit = 4300;
should be changed to:
static const DRAM_ATTR RCSwitch::Protocol proto[] and const DRAM_ATTR unsigned int RCSwitch::nSeparationLimit = 4300;
created time in 20 hours
issue commenthome-assistant-libs/pychromecast
The author of tvh_epg can check the return value:
chromecasts = pychromecast.get_chromecasts()
+ if isinstance(chromecasts , tuple)
+ chromecasts, browser = chromecasts
+ browser.close()
comment created time in 21 hours
issue commentRobTillaart/Arduino
No need to apologize, but being prepared is always a sign it is a serious request. Rob (Netherlands, I expect to be online till 23:00)
comment created time in 21 hours