« first day (2787 days earlier)      last day (2143 days later) » 
00:00 - 22:0022:00 - 00:00

12:02 AM
weird guy
 
@bolbteppa I think the comments by Sam Sinai are really great. Shame Ron doesn't want to hear it.
 
Yeah
 
the guy asking him to get cognitive therapy?
 
1:01 AM
0
Q: Pedagogical questions about physics

PetroglyphSparked by the discussion in the comments in the question How to teach modeling physical systems, especially if it is off-topic, I started looking for pedagogical questions about physics. I didn't find much and there is no site comparable to Mathematics Educators Stackexchange, where pedagogical ...

 
 
2 hours later…
2:35 AM
Is it okay to link the meta question I posted to my original question on Stack Exchange? I couldn't find a policy on that in the FAQ or while searching for it.
 
@Petroglyph It's fine to put a link to your original question in to the meta question. But I'd be wary of putting a link to the meta question in to your original question.
Not that we really have a policy against it, but I can't really think of any good reason that you would need to link to a meta question from a main-site question.
 
All right, thank you :-)
 
 
1 hour later…
3:40 AM
@ACuriousMind I don't. If it does have a meaning then I'd guess it stems from a Gaelic word.
 
4:26 AM
ok going to call me guardian force :P sip some tea and then watch HBO. Wrote some epic code today
I (we some superior minded coders) are going to disrupt this mofo!!
.. . ... . . . .. . .. . . .
Such code . . .
 
Anonymous
5:01 AM
@JohnRennie Morning! Do you have Visual Studio handy? I'm trying to reproduce a weird error a program (someone sent me is causing) and I'm not sure if it is a compiler issue or a faulty code (probably the latter, but I'm not getting any errors/warnings)
 
@Blue Yes, I have VS on this laptop.
What do you want me to test?
 
Anonymous
@JohnRennie Oh, great. I'm coming in 5 mins :)
 
Anonymous
I'm back....just uploading the code
 
Anonymous
 
Anonymous
5:14 AM
Sample Command Line Arguments:
 
Anonymous
L=100 p=0.3 d0=0.4 d1=0.6 n=1
 
Anonymous
L=100 p=0.3 d0=0.4 d1=0.6 n=100
 
Anonymous
L=1000 p=0.3 d0=0.4 d1=0.6 n=1
 
Anonymous
L=1000 p=0.3 d0=0.4 d1=0.6 n=100
 
Anonymous
These are the test cases
 
Anonymous
5:18 AM
The weird thing is that for the same test case, it is sometimes generating the output and sometimes it isn't.
 
D:\rhs\c>clusters L=100 p=0.3 d0=0.4 d1=0.6 n=1
# Seed: 10542474428453626471
# Iterations: 1
# Rows: 100
# Columns: 100
# P(1): 0.300000000
# P_diag(0): 0.400000000
# P_diag(1): 0.600000000
 
Anonymous
@JohnRennie Yup, that isn't the full output! However, sometimes for that test case it was generating the full output when I commented out the fflush statements
 
Anonymous
But when re-run, it didn't
 
Anonymous
Lemme see if I can generate the full output:
 
Ah yes, if I run it repeatedly I sometimes get the full output and sometimes don't
 
Anonymous
5:22 AM
@JohnRennie Exactly!
 
Anonymous
Lol, this is the weirdest code I've ever seen :P BTW is it showing any "warnings" on yours?
 
It compiles without warnings, if that's what you mean.
 
Anonymous
Yep, I meant that only
 
Anonymous
Same here
 
Anonymous
Umm...so any ideas what's going on? :/
 
Anonymous
5:24 AM
I'm trying to debug it myself....but couldn't spot much so far
 
Anonymous
It's using the POSIX thingy
 
Anonymous
(but I don't think that's a problem)
 
Anonymous
The issue probably is memory mismanagement of some kind
 
When it doesn't print anything it takes longer to run ...
 
Anonymous
Right
 
Anonymous
5:27 AM
Maybe it is generating the output but for some reason not displaying it? :/
 
Anonymous
Actually you can comment out the whole for (arg = 1; arg < argc; arg++) block
 
Anonymous
Will make it easier to debug...by just adjusting the default
 
The do_work function is crashing
 
Anonymous
Aaah...possible
 
Anonymous
`static inline void do_work(cluster_work *work)
{
size_t i = work->iterations;
while (i-->0) {
do_work_disjoint_set(work);
do_work_count(work);
do_work_update(work);
}
}`
 
Anonymous
5:32 AM
And this function is calling 3 other functions...hm
 
printf("burp 1 - %i\n", i);
		do_work_disjoint_set(work);
printf("burp 2 - %i\n", i);
		do_work_count(work);
printf("burp 3 - %i\n", i);
		do_work_update(work);
printf("burp 4 - %i\n", i);
just prints:
burp 1 - 0
So it's crashing in the first call to do_work_disjoint_set(work);
 
Anonymous
Interesting
 
Anonymous
Checking do_work_disjoint_set
 
Anonymous
`static void do_work_disjoint_set(cluster_work *work)
{
const size_t rows = work->rows;
const size_t cols = work->cols;
cluster_label *const matrix = work->matrix;
prng *const rng = &(work->rng);

/* Fill in the matrix */
{
const uint64_t limit = work->p_one;
size_t i = rows * cols;
while (i-->0)
matrix[i] = (2 * i) + prng_probability(rng, limit);
}

/* When we examine each cell, it is enough to merge it
left, up-left, up, and up-right. Essentially, we consider
 
@Blue Stick loads of printfs in and see where they stop printing anything
 
Anonymous
5:42 AM
Doing that!
 
Anonymous
`/* Generate a disjoint set in work->matrix, describing a matrix
filled with ones and zeroes.
*/
static void do_work_disjoint_set(cluster_work *work)
{
printf("Level 1\n");
const size_t rows = work->rows;
const size_t cols = work->cols;
cluster_label *const matrix = work->matrix;
prng *const rng = &(work->rng);

printf("Level 2\n");
/* Fill in the matrix */
{
const uint64_t limit = work->p_one;
size_t i = rows * cols;
while (i-->0)
matrix[i] = (2 * i) + prng_probability(rng, limit);
 
Anonymous
Output:
 
Anonymous
# Seed: 15726239593266041131
# Iterations: 1
# Rows: 100
# Columns: 100
# P(1): 0.500000000
# P_diag(0): 0.300000000
# P_diag(1): 0.700000000
Level 1
Level 2
Level 3
Level 4
Level x
Level y
Level x
Level y
Level x
Level y
Level x
Level y
Level x
Level y
Level x
Level y
Level x
Level y
Level x
Level y
Level x
Level y
Level x
Level y
Level x
Level y
Level x
Level y
Level x
Level y
Level x
Level y
Level x
Level y
Level x
Level y
Level x
Level y
Level x
Level y
Level x
Level y
Level x
Level y
Level x
 
Anonymous
It isn't reaching printf("Level 5\n");
 
Anonymous
5:59 AM
The last output is Level x
 
Anonymous
Not Level y
 
Anonymous
That gives some clue
 
Anonymous
` /* First element on row r. */
{
const size_t prev = r * cols;
const size_t curr = prev + cols;
const uint64_t limit = limits[LABEL_COLOR(matrix[curr])];
unsigned int merge = 0;

/* Merge up? */
merge |= (SAME_COLOR(matrix[curr], matrix[prev])) << 0;

/* Merge up-right? */
merge |= (SAME_COLOR(matrix[curr], matrix[prev + 1]) && prng_probability(rng, limit)) << 1;

switch (merge) {
case 1: /* Up */
djs_join2(matrix, curr, prev);
break;
case 2: /* Up-right */
djs_join2(matrix, curr, prev + 1);
 
Anonymous
Lemme put in some more print statements...lol
 
@Blue when C++ programs crash randomly that's usually a memory corruption problem. A heap or stack corruption. It generally involves rogue pointers or writing past the beginning or end of an array.
 
6:16 AM
@Blue when I run it in the VC IDE I get:
 
Anonymous
"read access violation"?
 
Anonymous
What's that
 
Anonymous
2
Q: C++ Read Access violation error

DorkMonstuhI am currently getting an "0xC0000005: Access violation reading location 0xcccccce0." error and I have tried diagnose the problem...I think the problem comes in when my rule of 3 that I have defined comes in play and points me to here. size_type size() const { // return length of sequence ...

 
The value of the pointer djs is FD98D6B2 (see the error message). It's trying to read from an invalid memory address.
This looks like stack corruption to me
 
Anonymous
while (1)
 
Anonymous
6:24 AM
Infinite loop
 
Anonymous
Hmm
 
If you're using VS2017 create a new console app and paste in the code from clusters.cpp. Then you can use the VS debugger to try and track what's going on.
@Blue the loop contains a return that exits from it.
It might be worth putting in some trap for excessive looping though
 
Anonymous
@JohnRennie But that's in the else part, no?
 
Anonymous
What if that else condition is never satisfied
 
@Blue yes, so it could be getting stuck
Anyhow, I need to work now. Back ina while.
 
Anonymous
6:28 AM
No worries. Thanks
 
Anonymous
I'm seeing what I can do
 
Anonymous
Bit shift operations always seem error-prone to me
 
@Blue to be fair >>1 is just dividing by 2
 
Anonymous
Yeah, but I still didn't understand the code logic though :P Try to decipher what they're doing
 
Anonymous
6:43 AM
Basically, there's an invalid index from originating I guess
 
7:05 AM
@Blue Have you tried compiling it on Linux?
Just remove the stdafx include and it should compile.
 
Anonymous
Oh, I didn't. Trying
 
7:29 AM
@JohnRennie Because Linux is the solution :)
 
I know you're only teasing, but for the record if you can run Visual Studio, i.e. if you have a PC it will run on, then you should run Visual Studio.
 
Anonymous
@JohnRennie It's working fine on Linux! What was the problem then ? Program was not compatible with Windows ? (Still couldn't figure out the reason)
 
Anonymous
Maybe Windows doesn't support some of the POSIX standards...still weird
 
7:49 AM
There are probably differences between gcc and the VS compiler.
Exactly what's causing the problem could be tricky to pin down
 
Anonymous
Well, it's working so all's good for now. I can postpone deciphering the code for a bit later XD I just need to check whether the output files match with the program which I wrote. :P
 
Anonymous
@JohnRennie Any way to loop from Ubuntu terminal with different command line arguments ? I don't to add another loop in the program. Something like 'for (p = 0.0 to 1.0) {....}'
 
I'm sure you can use shell command to do that. However I know next to nothing about shell scripting in Linux.
 
Anonymous
@JohnRennie That looks like it. Trying
 
8:10 AM
> I don't [want] to add another loop in the program.
^ sounds like you've got some re-factoring to do
 
Anonymous
@EmilioPisanty Umm...what ?
 
i.e. move the bulk of whatever you're calculating to main_calculation_function(parameters) and then bracket that in however many 'admin' for-loops your scan requires
adding a dimension to the scan should be an operation that works within a span of 10-20 lines of code
 
@EmilioPisanty it's someone else's code that is only needed for a short while.
Under the circumstances a quick hack is perfectly appropriate :-)
 
@JohnRennie "sounds like" $\neq$ "you absolutely need to"
;-)
in other news, wasn't there an extremely similar question to this one somewhere in the archives?
-1
Q: How to answer when the question is based on a wrong premise?

JavierI ask this wondering about my answer to this recent question, though this applies in a more general setting. The situation is that the question asks about the physical interpretation of the typical curved-spacetime-as-rubber-sheet analogy, which as has been said multiple times on the parent site,...

I'm thinking some two years back or so
 
8:46 AM
 
9:02 AM
@Slereah hmmmm. close, but not quite there.
we don't throw it out
we just, uh, "improve it"
in the same way that a kid with a box of crayons might "improve" the looks of that new gizmo you just bought
 
9:20 AM
@EmilioPisanty I don't see what you mean...
user image
2
 
Anonymous
10:10 AM
1
A: Looping with different command line arguments from Ubuntu terminal

David CollinsBash doesn't support floating point arithmetic - so you have to resort to something like bc - as in the example below. The easiest thing to do would be to place this in a Bash script. (You will need bc installed.) for ((i=0; i<=100; i++)) do x=`echo "scale=2; $i/100" | bc` y=`echo "scal...

 
Anonymous
@JohnRennie Finally done. Yay! :D (Also, learnt something useful today ^)
 
@Blue Cool :-)
 
@Blue @JohnRennie wasuup.
 
Morning :-)
 
I ordered a Kindle E-reader 5 yesterday and I'm so excited, it will arrive tommorow.
What have you been guys up to?
 
10:36 AM
@NovaliumCompany Kindle's are great for recreational reading. They aren't so good for textbooks because the screen is a bit small. For a textbook you really need to see at least a whole page at a time and preferably two pages - like a real book.
 
 
2 hours later…
12:09 PM
Ok @JohnRennie.
I haven't really tried to see if it's hard, so I can't give an opinion.
 
12:39 PM
ohai
 
 
2 hours later…
2:47 PM
@NovaliumCompany I used a Kindle for years and I really like them.
 
3:41 PM
@JohnRennie courtesy ping - I reopened this one, I really don't think it's a dupe
 
this is correctly dupe-closed tho
 
4:09 PM
gotta get my computer set upppppp
 
4:22 PM
physics.stackexchange.com/questions/413149/… <--- I don't agree with this closure. That question is essentially just asking to compare/contrast Fusion and Fission which is certainly a valid physical question.
 
@enumaris Does the water in a water bottle evaporate? (Come into an equilibrium)
 
to some extent yes
 
Maybe the air in the bottle is causing some effects?
 
the air in the bottle effects how much water evaporates. If the bottle was rigid and you took out all the air more water would evaporate.
At a given temperature
 
Yep makes sense.
 
4:42 PM
mmmhm
 
5:09 PM
My Kindle 5 arrives tommorow, I can't stop thinking about it... When it comes, you wouldn't see me for weeks :D
 
I'm actually in a conundrum on what to read atm
 
With billions of books existing, I'm sure you'll figure that out.
 
the IT department is having problems setting up CUDA on my computer...
might be delayed further...
disappointing
 
:: googleling what CUDA is ::
 
5:13 PM
Some programming extention?
 
allows GPU acceleration for machine learning
 
Is it hard to learn machine learning? I've been looking around the internet, but I'll probably read a book (on my new Kindle 5 xD)
 
not hard
much simpler than physics imo :P
 
Ok, I'll look around for a simple machine learning book.
 
machine learning is a pretty broad topic tho
 
5:18 PM
maybe neural networks then?
 
all the way from linear/logistic regression up through advanced A.I.
neural networks are all the rage right now
 
What do you mean?
 
they are very popular
 
Yep, I know.
 
they generally fall under supervised learning though...except for the autoencoders
 
5:20 PM
Supervised means that you have to teach it, right, with examples?
 
yeah
labeled examples
 
Yep, I actually have a little example of a supervised thing in Python, mind looking at it?
 
uh sure
 
Ah, I have deleted it. But it bascially uses a library which makes it super easy to enter some values, the system will find some sort of logic in them, and then, if you enter new values, you get the results in probability.
 
kind of a vague description...
 
5:25 PM
I know, I told you I'm new to this.
 
but supervised learning is generally "given this input, predict a likely outcome"
 
unsupervised is generally "how can I represent this input in a lower dimensional way?"
And Reinforcement learning is "GIMME ALL THE REWARDS"
rawr
 
Unsupervised looks complicated, so I'm not digging there yet.
 
it's not any more complicated than supervised learning imo
 
5:26 PM
What do you mean in a lower dimensionl way?
Meh, I gues I'll read about it. (On my brand new Kindle 5 xDD)
 
generally unsupervised learning is to cluster stuff
or reduce dimensionality
 
Gimme an example?
 
Say you have 5000 objects, and you describe each object in that set with a 200 dimensional vector: (x,y,z,...,200 variables here)
unsupervised learning generally tries to see if maybe you can split those 5000 objects into N (say 20) distinct groups OR if you can represent each of those objects with a N<200 dimensional vector (x,y,z,...,N variables here) without losing too much information.
 
Got it, so basically simplifing without loosing too much info about the objects.
 
yeah
so it can be applied as widely as from data compression to market segmentation
 
5:34 PM
Seems cool.
 
it's alright
deep learning is all the rage tho
There's some deep unsupervised learning algorithms I suppose...
 
5:50 PM
Suppose I wanted to make a chat bot that I can chat with, you know, like it's a real person. What skills would I need to do that?
 
A.I. god
skills
 
Well, cleverbot have done it?
 
No chat bot at the moment is "like a real person"
Even the google assistant is still a ways away
 
Of course, but there are some pretty close results.
 
most of that would be in the domain of natural language processing
 
5:53 PM
For a real AI to exist, you basically have to create consciousness, which is God's job.
 
well there's some debate on that lol
tho it's mostly philosophical
 
It's imperfections at it's finest.
 
i.e. if you create an A.I. which is indistinguishible from humans, at what level would you still say "it doesn't have consciousness"
sorry not i.e., I meant e.g.
 
In my opinions, humans are pretty close to cracking the code for AI but we have to be careful.
I'll take a shower now, see you later.
Now imagine my Kindle arrives after 5 minutes :D
 
Apparently the photo electric effect is a bound state problem in qft
What's going on with bound states in qft
Why do almost no standard qft books even mention them
 
6:00 PM
scattering is so hot right now
scattering is like Hansel
bound states is like Zoolander
 
ja
 
QFT is obsessed with scattering prolly cus that's the only way to test those energy regimes at which QFT is necessary right...
 
@bolbteppa Because they're hard - since we effectively don't know the interacting Hilbert space, you can't investigate them as straightforwardly as you would in ordinary QM
 
hmmm
 
I thought all of qft was just scattering :(
 
6:04 PM
pretty much
 
How could it be? E.g. confinement is clearly not a scattering phenomenon, but it is an important part of QCD
 
u come up with some scattering experiment, you draw feynman diagrams, you try to calculate the S-matrix, you cry a little, you calculate the S-matrix, you cry a lot, and then you get your answer.
^important to not neglect steps 4 and 6
 
But rigorously showing confinement is hard - you can make heuristic arguments about Wilson loops and static quark pairs, but I'm not sure we know how confinement really works in full QCD. That's almost necessarily the realm of lattice computations since the coupling is large so perturbation theory doesn't work, and QFT lattice simulations are hard, too
 
maybe the theorists haven't cried enough
neglected steps 4 and 6
 
"With regard to phenomena, I recall wondering, as a student, why some of the fundamental things I studied in NRQM seemed to disappear in QFT. One of these was bound state phenomena, such as the hydrogen atom. None of the introductory QFT texts I looked at even mentioned, let alone treated, it. It turns out that QFT can, indeed, handle bound states, but elementary courses typically don’t go there.
Neither will we, as time is precious, and other areas of study will turn out to be more fruitful. Those other areas comprise scattering (including inelastic scattering where particles transmute types), deducing particular experimental results, and vacuum energy. "
 
6:08 PM
Part of that is that the usual Monte Carlo method people use runs into a numerical sign problem when doing stuff like QCD
 
@Semiclassical Not the only problem, there's also e.g. fermion doubling
 
Oh, sure
 
So looking at chapter's 4 and 5 in the amazon toc view here:
It looks like chapter 4 is basically solving the hydrogen atom as a bound state problem treating the EM field as a classical field
Then chapter 5 is bound state problems where you use a quantum EM field
 
That one just happens to be close to my heart because the issue is largely that the integrals involved are highly oscillatory
 
They seem to solve the photoelectric effect, Zeeman, Stark
 
6:11 PM
woah, landau and lifshitz did many more books than I thought lol
 
I wonder what's wrong with what they do?
Why is it not good enough to be included in every qft book, I mean the photoelectric effect basically started quantum theory
 
their EM book was quite good
 
That EM book might be my bible, but I don't know it off by heart yet :(
Even half of it it's so insane
 
did these guys just survey all of physics
lol
 
Yeah
In a prison naturally
The Course of Theoretical Physics is a ten-volume series of books covering theoretical physics that was initiated by Lev Landau and written in collaboration with his student Evgeny Lifshitz starting in the late 1930s. It is said that Landau composed much of the series in his head while in an NKVD prison in 1938-1939. However, almost all of the actual writing of the early volumes was done by Lifshitz, giving rise to the witticism, "not a word of Landau and not a thought of Lifshitz". The first eight volumes were finished in the 1950s, written in Russian and translated into English in the late 1950s...
 
6:13 PM
@bolbteppa I don't think it's not "good" enough - but QFT doesn't make any particular prediction about the photoelectric effect we hadn't known without it, does it?
 
In which case there’s at least a hope that saddle point approximation (aka the main workhorse behind semiclassical methods) has a hope of clarifying the matter
 
maybe I'll get all their books...
 
The focus on scattering amplitudes is because it is a "true QFT" prediction - you can't explain what's going on any other way
 
I would argue the other explanations are wrong :p
haha
 
I might just have to try to read all of them before I die lol
 
6:15 PM
That is the goal
 
not sure I can reach that goal
 
The first 3 chapters are phenomenal, some insane stuff about polarization density matrices leads to the Pauli-Lubanski pseudo-vector
So emission and absorption are basically bound state problems, that's why...
 
is there QCD in that series
 
The following is probably too simplistic but: nonperturbative QFT is a lot harder than pertubative QFT
 
They don't make that clear that it's bound state problems as far as I can see browsing through it
 
6:18 PM
if L+L can help me understand QFT that would be phenomenal
 
No QCD, the earlier edition of this book has more on what they knew about the strong interactions, but it's from the 50's, Bjorken and Drell has a similar chapter full of guesses
No path integrals either, it's all just brute force (vicious) derivations based on thought
 
With QED, that’s mostly fine because the coupling constant is small and therefore most of the asymptotic series you see can be well-approximated by a finite number of terms
With QCD, though, the coupling constant isn’t small
And therefore life becomes hard
 
I think qcd is too modern to just learn the most up to date version, need to go through the history and see the delicacies, it's just so hard haha
Same with strings, which of course is about god damn Regge qcd stuff before qcd was invented :\
The known stuff, for which answers are there, is hard enough :(
 
yeah if L+L was written in the 50's then no chance of much QCD as we know it there
 
Ahh.. nothing feels better than a hot shower.
 
6:26 PM
'Weinberg notes on p.560 that: the theory of relativistic effects and radiative corrections in bound states is not yet in entirely satisfactory shape. This quote from 1995 is still valid today, 20 years later.'
 
pain
 
ohai
 
6:41 PM
ohai
 
finished school today.
forever
unless I resit
who knows
a world of opportunity.
or not depending
 
@CooperCape Yay! So what are you doing here? Go party! :P
 
@ACuriousMind That's next week (not everyone's finished). Monday, wednesday
thursday and friday
 
@CooperCape Nice! Just have 3 or 4 or 7 or 8 or who knows how many years of uni ahead of you :P Enjoy!
 
Ah, I see :)
 
6:45 PM
@Mithrandir24601 Here's hoping, never know might have to take a gap year.
That would be interesting
 
graduated from college?
or high skoo?
 
Both in the Uk, but high schoo everywhere else.
because apparently we call what isn't college, college.
 
hmmm
so you could have up to 12 more years of skoo left
assuming you do a 8 year phd
4 year undergrad
 
Solution: Don't do a PhD :P
 
I dunno I kinda wanna go into research.
But of course that's subject to change
 
6:53 PM
3 year undergrad in uk, 1 year msc, 3-4 year phd
 
Yeah, a lot will happen between now and then. Don't sweat it ;)
 
Just let the wind take me.
 
No broad education courses
 
@enumaris That's twice as long as the one I'm doing
 
7:32 PM
@Mithrandir24601 that's the maximum length for an experimental physics PhD at my alma mater
theorists are limited to 7 years
most people do 6 years
I did 7 years cus I'm lazy
5 years is generally the fastest...but if you can convince your committee and department and graduate department...maybe 3 years is doable
 
@enumaris Counting the years starting from what?
 
@enumaris Blimey...
 
It includes the Master's though
so maybe there's a slight difference there
 
ah
 
Generally PhD programs here in the States include the Master's degree as an intermediate degree.
My program also gave me a C.Phil degree
dunno why
 
7:38 PM
@enumaris That would be an extra year - most PhDs here would be 3-4 years but I did one with an extra year (sort of equivalent to doing a masters, to some approximation), so we get 4 years, or 4.5 years if we end up with an extension for whatever reason
 
hmmm
yeah not sure why ours is longer :P
 
8:35 PM
@JohnRennie So, I did a bit of googling and apparently "Rennie" comes from the name "Reynold", which in turns seems to mean something like "counsel of the ruler".
 
9:21 PM
I'm on a roll answering neural network questions in cross validated hehe
not many upvotes though.. :(
 
Surreal
@vzn he talks about the Dirac sea around 7.00
 
He's going off on renormalization at the end
 
does anyone in here happen to have experience in solidworks?
 
00:00 - 22:0022:00 - 00:00

« first day (2787 days earlier)      last day (2143 days later) »