« first day (874 days earlier)      last day (3143 days later) » 

12:00 AM
RELOAD!
@xponent: when you have working code and want a general review on style, decomposition, clarity, good idiom, brevity etc., use codereview.stackexchange.comsmci 23 secs ago
There are 1549 unanswered questions (94.3110% answered)
code review INTERRUPT — SirPython 2 mins ago
 
@Duga You INTERRUPTed yourself
2
 
@Duga I was too late....
Although, I actually posted it 2 minutes ago.
 
12:15 AM
0
Q: Check if a graph is semi-connected

FelipeA directed graph is semi-connected if there is a path from A to B OR B to A for all nodes. The following algorithm check if a graph is semi-connected. 1. Find Maximal SCCs in the graph 2. Build the SCC graph G'=(U,E') such that U is a set of SCCs. E'= {(V1,V2) | there is v1 in V1 and v2 ...

 
I'm missing something... groovy.lang.MissingMethodException: No signature of method: com.mongodb.BasicDBObjectBuilder.addUserDetails() is applicable for argument types: (java.util.LinkedHashMap) values: [[hello:1, world:2]]
def addUserDetails(Map details) {
    def detailsField = createUserDocument()
            .push("details")
    details.each { k,v ->
        detailsField.add(k,v)
    }
    detailsField.pop()
}
Anyone see something obvious?
 
How are you calling it?
 
This is the failing test:
    @Test
    void testAddUserDetails() {
        def testMap = [
                "hello": 1,
                "world": 2
        ]
        testUser.createUserDocument().addUserDetailsZ(testMap)
        def userDocBuilder = testUser.createUserDocument()

        println userDocBuilder.get().toString()
    }
Shit hold on
 
holding on shit.
 
I do not endorse the above statements.
 
12:20 AM
OK I noticed the extra Z at the end, but got the same error after fixing it
 
Whoops, I automatically added a "test" to the "addUserDetails" call.
 
@rolfl Wow.
 
@Phrancis What's the error?
 
6 mins ago, by Phrancis
I'm missing something... groovy.lang.MissingMethodException: No signature of method: com.mongodb.BasicDBObjectBuilder.addUserDetails() is applicable for argument types: (java.util.LinkedHashMap) values: [[hello:1, world:2]]
It seems like it's expecting something other than what I'm giving it
 
12:24 AM
It looks like you are passing a LinkedHashMap, and you want a Map.
 
LinkedHashMap is a map.
 
^ that's what I thought @monkey
 
Obviously, but is LinkedHashMap derived from it?
 
But I even tried it with a nondescript type expected in the method
 
@Phrancis .... I don't know groovy... but... you have:
 
12:26 AM
Huh.
 
def addUserDetails(Map details) {
    def detailsField = createUserDocument()
            .push("details")
Right?
 
Groovy takes Java code in it just fine, so fire away
Correct
 
So, what is detailsField?
itself?
why are you creating a new one?
You are calling that method addUserDetails like this:
testUser.createUserDocument().addUserDetails(testMap)
Are you sure that line is not supposed to be:
testUser.addUserDetails(testMap)
Or, alternatively, why are you creating a new user document in the addUserDetails call?
 
HOLY CARP that was it
Wow, nice catch, I get what you are saying
 
Good, because all I see is oddness, but that was the most oddness I could see.
3
 
12:31 AM
lol
 
I can find bugs in any code, but sometimes I have to make them first ;-)
5
 
12:42 AM
If our entire brain fired at once - irrecoverable seizure: biology.stackexchange.com/questions/39030/…
 
1:07 AM
String is an Object right?
 
Yes.
 
Good
 
Everything is an Object.
(At least, AFAIK.)
 
OK. Man, tests are demanding, but I would never have caught this problem with them
 
I like tests.
They are easier than writing normal code, once you have a good framework setup.
 
1:09 AM
@Hosch250 in .net, yes ;)
monking!
 
Monking.
 
1:23 AM
oink
Moink
Moinking
 
Guess what I just read?
 
wot m8?
 
this might be better suited for code reviewsp2danny 35 secs ago
 
> The Times (London, England), Friday, Jan 25, 1793; pg. 2; Issue 2516.
French Revolution.
 
1:32 AM
:) Serves the old jailbird right, too.
 
Very early hours monking here in BST (UTC+1).
 
Hi.
 
Not sure if I'm an insomniac or CR-dependent or how to tell the difference
3
 
:)
LOL.
 
1:34 AM
@itsbruce There is no difference ;)
 
Sounds like most of the people here.
 
Everyone's a CRitic
 
And we like to improve CRap.
 
> "Hi! Welcome to Code Review! We're insomniacs who'd rather be up till' 1:00AM on Code Review rather than sleeping! Enjoy your stay!"
4
 
@EthanBierlein Since what's keeping me up most is an improvement to an answer I already posted, that's probably very true
 
1:37 AM
Oh man, 300 chat messages away in this room from 10K
 
How can you see how many there are?
 
@Hosch250 I thought he meant his own output, not the collective
 
Go to the screen where the rooms are listed, and hover your mouse cursor over your profile picture
 
I should write a script - to play FizzBuzz in chat through 300.
 
1:39 AM
Oh, you personally.
 
@EthanBierlein Or here: chat.stackexchange.com/…
 
Oh wow, I have 5% of the messages.
 
I only have 1%
 
Mat has 8, and rolfl has 10.
I knew I talked too much :(
 
:o
 
1:46 AM
Damn internet, stop being slow
 
The Defenestration of Ermintrude Inch is a science fiction short story by Arthur C. Clarke anthologized in Tales from the White Hart. It rounds out the collection describing the events leading to the departure of Harry Purvis, who tells all the other tales in the collection, from the White Hart, never to return. The pub itself gets a new manager and the narrator and his friends follow the old manager to a new establishment called "The Sphere". == Plot == The narrator tells how Harry Purvis had been telling the tale of Osbert Inch and his talkative wife Ermintrude. Being a sound engineer, Osbert...
 
2:25 AM
I find it annoying how Visual Studio highlights links in code blue, but doesn't have an interactivity of any kind for them. They're just an annoying blue color.
 
Ctrl+click
 
same in MS-Word ;-)
 
well now it's even more annoying
it opens in Visual Studio
 
yeah
 
2:27 AM
LOL IDE browsers
Eclipse does that too, it's terrible
 
it's IE actually
 
moar ewww
 
^^
 
somehow RubberDuck's IDE fires up his default browser, so there must be a setting I haven't seen somewhere
 
2:28 AM
his?
 
VS2013
@RubberDuck's
 
You guys are still using VS2013? Is there some sort of compatibility issue between 13' projects and 15' projects?
 
there's some sort of compatibility issue with .net 5.x and WinXP
 
OH. The dude RubberDuck, not the program Rubberduck
 
@Mat'sMug interesting
 
2:31 AM
we're on 4.5
 
WinXP D:
 
or Vista
yeah Vista actually
4.5 doesn't run on XP
 
To be fair, not very many things do run on XP anymore
 
uh
lots of banks still do
and churches
and many large companies
 
XP is no longer supported
hasn't been for a while
 
2:32 AM
But XP was ~15 years ago WHY
 
I'm pretty sure if you're a company or something you still get partial support. Or did that end already?
 
@Phrancis for the same reason I had to support IE6 in 2009 and that our teamlead feared LINQ would make our code unreadable so we had to code .net 2.0-style
 
@Phrancis Banking it systems are held together with string, rubber bands and glue
4
 
Why is that guy even teamleader?
LINQ != Unreadable
In fact, LINQ == Moar readable
 
something about the implications of lambdas. closures probably.
and paranoia
 
2:35 AM
lol
Anonymous functions are actually really cool if you use them correctly
 
        var issues = parseResult.Declarations.Items.Where(declaration =>
            !ignoredScopes.Contains(declaration.ParentScope)
            && declaration.DeclarationType == DeclarationType.Parameter
            && !interfaceMembers.Select(m => m.Scope).Contains(declaration.ParentScope)
            && PrimitiveTypes.Contains(declaration.AsTypeName)
            && ((VBAParser.ArgContext) declaration.Context).BYVAL() == null
            && !IsUsedAsByRefParam(parseResult.Declarations, declaration)
for some values of "correctly"
 
There are still people writing web applications in Delphi
And banking systems still using COBOL
 
COBOL is still in a fair amount of places, namely the military, and others
 
@EthanBierlein The Peter Principle applies to IT team leads in spades
Less so in pure tech companies, but even there, engineers find it difficult to respect non-technical managers and most engineers make bad managers.
 
what a beautiful paradox!
 
2:43 AM
@Mat'sMug Catch 22
In organisations where tech is just a resource, senior managers tend not to be able to assess the skill of engineers and also tend to mistrust anybody whose expertise makes them feel stupid
So the middle management layer tends to accumulate incompetents who themselves only promote incompetents under them
 
till incompetence takes the business down
 
C. Northcote Parkinson (inventor of Parkinson's Law) called it Injelitance
Combination of incompetence and jealousy
@Mat'sMug Aye. If the company culture can't fight it, the whole organisation congeals
 
I wonder how they're doing now. I saw on LinkedIn my former colleague is now team lead
 
2:59 AM
I stay in touch just so I can hear about how bad it is. =;)-
 
lol
 
Moving a deeply entrenched waterfall culture to Agile... rigghhhttt...
 
yesterday, by Mat's Mug
AGILE rule #1 42: You're doing it wrong
 
Agile rule #42.a: If you think you're doing it right, you're definitely doing it wrong.
 
haha
 
3:02 AM
 
Hmm annoying issue, data is not being added to the builder :|
 
It makes VSO slightly less awful.
 
VSO?
 
@Phrancis you should totally drop that and use Linq
 
@RubberDuck BTW.Java
 
3:03 AM
> Visual Studio Online
 
Ah ok
 
Yeah, package management is sorely missing. I've everyone talked into a NuGet server for common code, but then I saw that announcement.
 
This code is so wrong wrong wrong - And I wrote it
 
Happens to the best of us.
I write something all foobarred at least once a day.
3
 
Rubberducking... Hm. Can I make a method in one class accept what is returned from another method in the same class?
(yes probably bad design, have not been through CR yet because it's broken)
Hm. Can I make a parameter of one method expect the type of the other method?
Or am I losing my mind?
 
3:15 AM
night
 
L8er m8
 
wait
b4 i g0
go to the cactus room real quick
 
O nice
 
3:31 AM
0
Q: Implementation of a lock-free fixed-sized allocator

cr_oagI've tried implementing a lock-free fixed-size allocator while trying to learn synchronization through atomic variables. Here are the related classes. template_utility.h #ifndef OAG_TEMPLATE_UTLITY_H #define OAG_TEMPLATE_UTLITY_H namespace oag { template <typename C> using Pointer_type ...

 
3:42 AM
OK I'm starting to think that it's not my class method that's wrong, but my test Map
    def testMap = [
            "hello": 1,
            "world": 2
    ]
No that's valid... wtf
 
4:24 AM
Wait, I can fix this. Picture another field. In the middle sits the only creature the first creature is afraid of. Now just-- wait, where did THAT one go?
4
 
Maybe more suited for CodeReview? — Zsw 26 secs ago
 
4:42 AM
 
5:12 AM
@Hosch250 LOL @ hover message
 
monking @all
 
monking
How are you @chillworld?
 
good, and you @Phrancis?
 
Not bad
Trying to get my code to work :D
 
sql code?
 
5:18 AM
No Groovy (Java)
 
ooohhh, I saw once groovy here by mine collegue. Not for me, I need more structure ;)
 
I'm just missing something about class methods that I think I'm very close to figuring out
 
I'm breaking mine head how I must implement this :
Users (come from LDAP) they are in different groups. A group stands for office and all or srt or comdo
Users can be in more then 1 office. (groupname concat the office and al or srt or comdo)
Can I help with something?
 
I'd love help, but I feel I really got to figure out why this isn't working on my own, so I "get it" then :)
Is it common for a class' method to take an instance of itself (the class) as arg?
 
Quality random functions have many pitfalls. Suggest posting your solution here as an answer or for review at http://codereview.stackexchange.comchux 1 min ago
And also this seems to be a Code Review based questions — Sandesh 52 secs ago
 
5:57 AM
This question is more suited for codereview.stackexchange.com. — Samuel Liew just now
This question should be on for codereview.stackexchange.com — Let me see 16 secs ago
For code review see Code Review. — Peter Wood 48 secs ago
 
6:29 AM
mhh normally not @Phrancis or it should be a static method
@phrancis or is it another instance?
 
monking!
 
0
Q: Payment flow of stripe in a database in Django

AlexanderI have tried to integrate stripe in my Django website (and I did), and now I would like to explain the flow so that you can tell me what improvements that I must make: Verify if the email exist in DB. If the email exist (if the member already subscribed for a plan ), assign him the same custome...

 
6:46 AM
@chillworld Probably a XY Problem!
@TheKittyKat monking!
 
mhhh should I add the users in an office or not (in the model)
 
7:26 AM
0
Q: Check if username is admin OR is in CSV

Max van der BurgI want to check if the input, which is a username, is in the CSV file, and when it is in it, I would like to login with that name: if keuze_11 == "login": while True: import csv csvfile='login.csv' try: f = open(csvbestand, 'r') reader = csv.re...

0
Q: Brute force shortest path in Java

coderoddeI had to ask myself a couple years ago: before Edsger Dijkstra invented his famous shortest path algorithm, how brute force approach would seem. Below is my version. It's super slow, but I find it funny. BruteForceShortestPath.java: package net.coderodde.graph.experimental; import java.util.Ar...

 
7:45 AM
It seems that your code currently works, and you are looking to improve it. Generally these questions are too opinionated for this site but you might find better luck at CodeReview.SE. Remember to read their question requirements as they are more strict than this site. — Kyll just now
 
@Malachi of course it is, you could use HTML tags such as <a> and <img>. Create an issue on my repo and I can add such functionality to my "Code Review Shield Generator".
 
Zak
8:10 AM
Morning
 
8:27 AM
Monkinh
 
Monking
 
Welcome to SO. Please visit the help center to see how to ask questions. In this case include some code and make a jsfiddle.net with rendered html. Alternatively ask on codereview. If there are console errors include them too — mplungjan 8 secs ago
@mplungjan If there are errors it's off topic for Code Review and better kept here instead. — SuperBiasedMan 39 secs ago
 
Zak
8:49 AM
I almost forgot, IT'S FRIDAY!
 
Yeah, I noticed when I got paid. :)
 
9:08 AM
0
Q: Why is removing subviews from superview in Objective-C creating memory leaks?

Iulian OnofreiI have a category for UIView which contains this method to remove all of its subviews: - (void)empty { for (UIView *subview in self.subviews) { [subview removeFromSuperview]; } } and upon profiling my project I see multiple memory leaks all pointing to this code: [wrapperView...

0
Q: Accessing UserControl's DataContext from another UserControl

Sirwan AfifiGiven these classes: public partial class MainPage : UserControl { public MainPage() { InitializeComponent(); //... } } public partial class LoginForm : StackPanel { private LoginRegistrationWindow parentWindow; private LoginInfo loginInfo = new LoginInfo(); p...

 
9:46 AM
0
Q: React.js filter children component via input component

ThomasReggiI'm trying to break down the individual functionality of a advanced table UI into different react components. (Right now all table components are really heavy). I came up with this way of exposing properties of a component to the parent component which allows components to talk to each other. It...

 
Zak
Well, that was fun. Just spent half an hour trying to figure out why my new custom_Functions module wouldn't compile.
It was because I'd named a sub identically to the sub it was calling.
The error message was distinctly unhelpful in pointing that out
 
It seems like error messages can only either be entirely helpful in showing the error or a garbled mess of misleading gibberish.
Though I could imagine when two things are named the same the error is inherently hard to read.
 
Zak
"Wrong Number of Arguments or Invalid Property Assignment"
In this case, I would argue, actively harmful
 
Uff, yup.
That's why I constantly complain to people for ignoring errors on CR
 
10:06 AM
@Thomas : I think best place for this question is codereview.stackexchange.comhuMpty duMpty 26 secs ago
 
10:31 AM
Random functions have many pitfalls. Suggest posting your solution here as an answer or for review at http://codereview.stackexchange.comchux 36 secs ago
 
10:46 AM
why not post it in CodeReview? — M.kazem Akhgary 39 secs ago
You need to profile this with a lot finer granularity. Your loop is mostly about calling the comparer, if this takes so long that it will not be possible to achieve 20x speedup then it isn't the loop-based code that is the problem, it is the comparisons. Also, this code belongs on CodeReview. — Lasse V. Karlsen 58 secs ago
 
0
Q: Is there a better design pattern for console commands?

ArtOfCodeI've made a console. Pretty standard, you type a command, it does something. However, the issue that comes to my mind is scaling: if I want to add hundreds of commands, I have to manually add a new Command instance for each one individually, which is... less than ideal. The full code is stored i...

 
This post has had a weird path on SE: http://codereview.stackexchange.com/questions/105673/trying-to-use-global-variables-for-referencing-directories-in-python-2-5

It was off topic on here, then moved to Programmers where they answered it and OP accepted their answer... then it was migrated back here.
 
I'm actually questioning myself if I'm the only one who use our archtype like it should be
finding bugs in it everywhere
 
11:12 AM
1
Q: Efficiently checking if a large enumeration has a consistent order

InBetweenThe scenario is as follows: We have a streamed enumeration that we have to check if it's ordered or not before processing it (about 75-80% of the time it is ordered). We are talking about pretty big enumerations, in the range of 10-100 million elements. Because the first step processing the data...

0
Q: PHP/Symfony2: Using traits vs services to reduce controller verbosity

FeroxiumAt the moment we have a bundle where controllers do most of the work (bad). Having hundreds of lines of code in a controller action makes it hard to read, and also introduces plenty of bugs. This is a generalised, simplified example where some data is encoded and used to build a Datatable: //...

 
11:28 AM
If you want code review, use code review codereview.stackexchange.comNeoaptt 9 secs ago
 
11:43 AM
1
Q: Javascript Best Process Chain Approach - Implementation Atempt

Maurício D'Angelo FernandesIntroduction Hello there. To keep it short, I've been researching about Javascript and JQuery function chaining and different callback techniques. I am trying to create a very generic code that allows chaining, and in a way that I may create several parallel chains without them interfering in on...

 
12:39 PM
Great answer. +1 for that. As for your question why DB's allowing null - well, because people are sloppy doing the preparations, lazy doing maintenance and stupid doing code reviews. And just to be clear - on occasion, I'm those people. Not this time, though. :) — Konrad Viltersten 19 secs ago
 
Greetings, Programs. Back from vacation.
 
Ready for Sunday Night?
 
What's on Sunday night?
 
12:56 PM
It's the night before Monday D:
 
0
Q: how to avoid copy-paste in a proxy web service which handles three different input structures in similar way

protI'm a newbie and I'm new to C# (thus statics and copy-paste) and I'm painfully aware that this code smells. I try to implement a web service that handles a similar pass-through logic with three different data structures that are processed by three corresponding different methods of an external s...

 
@rolfl Sadly, it looks like we're going to have rain Sunday night here in central Maryland.
 
@SimonForsberg I take it the first link is the image and the second link is the link to the question, right?
 
monking!
interesting
> This weekend's eclipse marks the end of a tetrad, or series of four total lunar eclipses set six months apart. This series began in April 2014.

The 21st century will see eight of these tetrads, an uncommonly good run. From 1600 to 1900, there were none.
 
1:16 PM
Should be moved to Code ReviewTushar 14 secs ago
 
@rolfl CBC fail: picture in the article's heading is that of a.. solar eclipse..
 
Zak
@Mat'sMug That one did confuse me for a little bit.
 
@Mat'sMug I asked them to change it, so they did.
 
1:32 PM
lol
 
@rolfl Technically, if you say "lunar eclipse", the full moon part is redundant.
 
I know....
But, also, technically, it is the only time the moon is full.
Which, technically, means there's never a full moon ;-)
See... that's what being pedantically technical does....
 
Actually, no. Moon is full if all of the visible surface is lit. During a non-eclipse full moon, the moon is only slightly above or below the Earth's shadow, so there would be a point on the Earth which is precisely on the lunar track and at that one point, at one specific instant, the moon would be exactly full.
 
Hm. It looks like I received a LinkedIn invite from someone who apparently had their code reviewed by me. From what I can find, the only relevant question was from last year, and I only edited it.
 
1:54 PM
Afternoon :)
 
1
Q: Deleting all the matching items in single linked list

HanusriI have the following code which I implemented to delete all the nodes for the matching value. My code handles all the 63 varieties of test cases scenarios including scenarios like deleting 1 from linked list 1->1, leaving the linked list empty. public ListNode RemoveElements(ListNode head, int...

 
@Jamal perhaps they're willing to endorse your editing skills? ;-)
 
lol
2
 
2:17 PM
hi
2
 
hi
2
 
Zak
hi
Mindless star wall!
2
 
°/ @Phrancis
3
 
\o
3
 
I was thinking about how to make a function that given a matrix returns a list of tuples, where the first item of the tuple is an item of the matrix and the second is the neightobours of it, In Haskell (actually I would like to map over the tuples rather then generating them but oh well...), Maybe I should post this as a CodeGolf challange
 
2:26 PM
If you want an unreadable solution that does it in 10 characters ya
5
 
Zak
Code Golf is not the place to go for advice on writing good code.
 
Is there an equivalent to Code Golf for writing fast code, or is that just a logistical nightmare for comparing times?
 
@Mat'sMug I am writing a readable solutino in Python now
 
Zak
performance improvements are On-Topic for SO and for CR
for some values of "On-Topic"
 
Oh I know, but I meant in the way that Code Golf is like a friendly competition.
 
Zak
2:29 PM
Oh, right.
I guess yeah, it would be a lot of administration, because you'd have to determine proper benchmarking
So yeah, "Logistical Nightmare" about sums it up :)
 
^^
 
@Mat'sMug done in 603 chars, ungolfed
 
1
Q: Iterate faster through the Android file system and find specific files using java multithreading

tochkovI'm trying to extract specific files and visualise them in a list/grid. For that purpose I'm starting a Service to do the background job, and when it finishes it fires an Intent which will be captured by a Fragment/Activity. The files are extracted in an singletone container which feeds the adapt...

 
@SuperBiasedMan you can post fastest code challanges on CodeGolf but they are rare
 
This question belongs to Code ReviewThomas 17 secs ago
Remember to include the code in question over here at Codereview.se — Caridorc 32 secs ago
 
2:55 PM
possible answer invalidation by cr_oag on question by cr_oag: codereview.stackexchange.com/posts/105656/revisions
 
3:08 PM
Man ASP.NET can be a pita sometimes.
 
Fast code challenges are rare on PPCG because they have to be tested on a single machine.
 
If it works question is more appropriate on codereview.stackexchange.comcharlietfl 10 secs ago
 
@Hosch250 And then I'm sure some people cry foul about the machine being the reason their code was slower.
 
Ping from the Bose!
Playing my music through the Bose now, so the ping came from the Bose too.
 
Well, this has become a hybrid of MVC and MVVM...awesome.
2
I guess it could be worse.
 
3:20 PM
@EBrown Throw a bit of MVP, copy/pasta, and spaghetti in there too.
 
Ugh, can't find the name of what I'm looking for. Makes finding it quite hard.
3
 
@Hosch250 Nah, I think this hybrid will work well.
 
LOL.
 
I think it's actually going to work out well. I could probably remove all the MVVM crap, but I like it this way.
 
What's the official name for blocks of data sent between threads or services?
I thought it was mail, but that doesn't give any hits.
Perhaps this would make a good Programmers question...
 
3:24 PM
@Mast Packet/frame?
Message?
 
Message sounds good.
 
At the application layer, it is messages.
 
@peterK Ah ok, in that case - charlietfl's suggestion of Code Review is probably appropriate - just ensure you review their how to ask page, as snippets of code won't be enough — James Thorpe 14 secs ago
 
I'm not sure what the Transport layer calls it, but the Networking layer calls it packets.
The data-link layer calls it frames, and the physical layer calls it an electrical signal.
 
Yea, I did some TCP work a while back so that sounds familiar.
 
3:26 PM
Taking a networking class now.
 
@Duga I love this guy
 
Yep, ViewModels are the ticket here.
 
Thanks @Hosch250
 
3:45 PM
0
Q: My jquery touchSlider plugin

Sherali TurdiyevI wrote range slider for my project one year ago. I optimized many time. But, it isn't optimal way. Besides that, I want to: - improve counts of sliders - change hammer.js touch events to native ones - optimize structure - add multiple themes How can I do better slider? Please, review my p...

1
Q: Is this a valid implementation of 0-1 Knapsack?

Louis93It seems alright to me with some basic test cases. The idea is as I understand to solve the sub-problems with smaller to bigger weights up until the maximum allowable weight, and to vary the items in the store with each weight. Any input would be great: function knapsack_01(max_weight){ v...

 
hello
 
Wtf was I doing with this code.
 

« first day (874 days earlier)      last day (3143 days later) »