« first day (395 days earlier)      last day (3615 days later) » 

12:00 AM
RELOAD!
 
w00t!
 
@Mat'sMug Yeah--not only can't fly, but get so hungry they have nothing to eat but wires at SO headquarters!
 
lol
2
 
Close-Vote-Applied: (I should have done that as soon as I saw the question, actually)
0
Q: Retaining and passing data between Activities

lschessingerI'm making an Android app where users can create posts. This process of creating a new post can potentially be a few activities/screens, so I need a way to save and pass the data between the activities. My first (bad) solution was just to pass the data with the intent in a Bundle, but this soon ...

 
12AM UTC smells like napalm no clue what napalm smells like ...but vote-gun is smoking!!
 
12:06 AM
+55 rep today already? Oh, it's after 2 a.m. @Mat'sMug has votes again.
 
(hides)
 
Don't know how, but you must have missed some :(
 
not done yet.. oh shit 3 votes left
 
hehehehe
SANTA!
How do you do that ..... and not get caught by the scripts?
 
because it's not a suspicious voting pattern.
 
12:10 AM
codereview.stackexchange.com/review/first-posts <--- can't do that without votes.
 
true
hence I'm keeping the last 3 for reviews and [eventual] answers to my question (@ckuhn203 hint hint)
 
lulz @SimonAndréForsberg
Just posted @Mat'sMug
 
saw that :)
upvoted after reading read as "I'll be borrowing more from your code" ;)
 
haha
I will be.
 
you're right about the implicit default value for OpenFile
 
12:14 AM
It might need better eyes than mine. I had to get pretty nit-picky.
 
and not raising an error in the bofFlag check is potentially problematic in some use cases, you're right again.
 
Why is this stuff easier to see in someone else's code? If I could see this stuff in mine I'd be 10x better.
3
 
haha
oh the last part is where I disagree - CreateXxxx implies a factory method - anything other than that will retain the reference and the With block will not call the Class_Terminate event, and the 2nd block in the test will fail because File is already open...
 
Ahhh. Yeah. I hope you could hear the uncertainty in my tone.
I knew you were right. It just looks weird.
 
but you're probably right about Dim writer As New FileWriter that should replace Dim writer As FileWriter // Set writer = New FileWriter
 
12:19 AM
yeah.
gtg. cya guys.
 
later! and thanks for your feedback!!
 
np
 
@ckuhn203 If you could see things in your own code, the need for Code Review would be gone.
 
Truth.
 
(Was temped to write that as "If you could read your own code...")
 
12:21 AM
I have to disagree @SimonAndréForsberg - if you can see things in your own code, post a selfie answer!
 
Yeah, that's also a variant of course :)
I'm quite surprised by what the Android Documentation states... They're actually recommending singleton classes and public static fields!!
 
@Mat'sMug I think he has a point. Even if I posted something with the intent of self-answering and thought my answer had a perfectly beautiful result, I'd almost bet in any non-trivial amount of code, somebody would notice at least one real improvement I'd missed.
 
of course! that's why I never hold back with self-answering!
 
I must confess ... I don't know what the big deal is with singletons. I like them.
(right tool for the job)
 
when it's the right tool, then it's the right tool. That just happens much less often than singleton-lovers would like to...
5
 
12:27 AM
Sorry monkey, I'm with the Mug on this one!
 
@rolfl I think it's mostly a back-lash against over-use. For one reason or another, when the GoF book came out, lots of people when nuts using singleton for nearly everything. Many have now realized it wasn't the right tool for a lot of those jobs, and reacted by deciding it must be inherently evil.
 
p.128, point 4 is what most people missed I think.
 
OK, that explains why I don't know what the big deal is ;-)
@SimonAndréForsberg What, you are saying that there is a time/place for singletons (which is what I am saying, and Jerry is saying, and Mat's is saying?)
 
I'm with @Simon against public static fields!
 
unless they are final too
 
12:34 AM
right
 
@rolfl I have to admit, I use one singleton in my code. All it basically contains is an EventFactory and logging functionality.
 
thing is, since I learned about DI and controlling object lifetime, I don't see a single[ton] use case for that pattern anymore.
 
Ever since I noticed how much I wanted to make things more flexible, more generic, more general, I'm avoiding singletons.
 
@Mat'sMug I think it's one of several things many people missed. Another is that a lot of things people once thought of as "inherently single" (e.g., every computer will have exactly one display and one pointing device) isn't that way at all any more. Multiple screens are common, and having both a mouse and a (trackpad or touch-screen) is hardly rare either.
 
I used to have a game-model instance as a singleton but then I realized: Why on earth am I restricting myself like this?
 
12:38 AM
@JerryCoffin who's ever going to need more than 640K anyway?
 
... Speaking of which, I just realized I could remove the need for my singleton in my CardGame class. Thanks, rubber ducks!
 
I wonder if I run in to more use cases because I work in more parallel systems.
I use the singleton pattern to ensure concurrency correctnes.
 
Q: what's the difference between Singleton and .InSingletonScope()?
 
What kind of concurrency correctness?
 
@Mat'sMug I think Seymour Cray beat Bill Gates with that: Bill probably didn't say what's attributed to him, but Seymour Cray definitely did design some super-computers with only 18-bit addressing...
 
12:41 AM
@Mat'sMug Singleton I've heard of, but .InSingletonScope I've never heard of.
 
IBM Mainframe still supports 31 bit computing (that is not a typo)
 
Ninject IoC container configuration method ;)
@rolfl thanks for specifying :)
 
@rolfl At least from what I've seen, that was really its primary intent, originally. No need for any kind of locking, because only a single instance in a single thread can ever execute.
 
A: .InSingletonScope() can turn into .InRequestScope() in a matter of seconds
actually with Ninject you could also do .InThreadScope() ...
I ♥ IoC
(afk)
 
@rolfl Unless I'm badly mistaken, they actually still support the 24-bit addressing model too (don't they?)
 
12:47 AM
They do .... and that;s really why the 31-address-space is cheat.
The high-bit is an indicator whether the address is a 24 or 31 bit address.
 
Hmmm, birds have started singing here. 2:48 a.m. I guess that means bedtime!
Night
 
The architecture is a 32-bit bus, with switchable semantics.
Night!
 
@SimonAndréForsberg good night.
 
good night!
@Dukeling That's great, unless you happen to be suffering from short-term memory loss, bad eyesight, and short-term memory loss. — Undo Sep 5 '13 at 17:08
lol'd
 
This guy has offended me. Wanna guess why?
http://codereview.stackexchange.com/questions/52301/scripting-filesystemobject-replacement-module-in-vba
 
12:59 AM
@ckuhn203 Ah, I looked at my code again, and remembered why I split the Dim and the Set- I want CreateWriter to return Nothing and crash the With block with an Object not set native error to handle in the client code if the method was not able to open the specified file and return a FileWriter instance that owns a fileNumber for the specified fileName!
perhaps a comment would be in order...
 
English?
 
' vbDirectory option still includes files.
' FML
Function FolderExists(ByVal file_path As String)
 
Yeah. That's a good call @Mat'sMug. Always think of Mr. Maintainer.
No @rofl. "Error Handling is a horrid mess of GoTos in VB6"
 
note to self: add. punctuation.
 
That's his logic for not using it.
 
1:02 AM
you're going in? ;)
 
lol. I'm going to read it. Won't get around to it till tomorrow probably.
 
Maybe even I get a piece of the cake then :)
 
The cake is a lie @Vogel612.
 
The recipie sounded nice though
 
meh
 
1:08 AM
Stop killing baby unicorns man
 
Who's killing unicorns?

I hear they're tasty......
 
(cough)
 
2:00 AM
0
A: "Scripting.FileSystemObject" Replacement module in VBA

Mat's MugJust one quick little comment: Function Remove(file_path As String) As Boolean Remove = FileExists(file_path) If Remove Then Kill file_path End Function You're returning True if FileExists(file_path) returns True, not if the Kill call succeeded. And what happens if Kill blows up, ...

the "quick little comment" turned out being a whole answer!
@ckuhn203 would be proud!
 
2:19 AM
Depends how you see it: I find it more explicit to see check only assigned once... implicitly.... right. lol, indeed, it would be more explicit :) — Mat's Mug 1 min ago
but having a single spot that assigns to check makes the code more DRY doesn't it?
 
if it defaults to false, assigning it a default value of false is redundant isn't it
 
also, ..well because there's only a single assignation spot
@DaggNabbit you just earned my next-to-last upvote! ;)
 
it seems like writing var foo = undefined in javascript or local foo = nil in lua
yay! :D
 
or var foo = default(bool); in C#
perhaps I could add Debug.Assert check = False in the error handler. That I could do.
 
The SO answer I linked was much better than my actual answer =p
that you just upvoted
 
2:35 AM
Added Debug.Assert as a counterpoint ;) — Mat's Mug 14 secs ago
 
i don't understand vba's naming conventions
or at least this guy's naming conventions
he's got camels like sWalk and snakes like folder_path
 
some people have never head of naming conventions
 
^ vba devs
lol jk
it's weird how everything is in StudlyCaps
but are variables supposed to be snake cased or camel
 
@DaggNabbit part truth... ..
there's no snake casing in VB_
 
well this guy has a lot of variables like folder_path and nobody complained
so i figured it was kosher
 
2:46 AM
the only time you should see an underscore is for Sender_EventName() event handler methods, and Class_MethodName() implementations
well in my conventions...
 
hmm, you don't really need them there either do you
i guess it's hard to tell functions from classes with all the studly case
 
Dim _something As String doesn't compile in , ... not sure about
 
interesting... i suppose .net is totally different
man i remember using vb6 ages ago, do people still use that?
 
daily job: maintain a big pile of mud.
 
sounds not fun
 
2:51 AM
depends
hmm not fun, but funny, yeah ;)
 
i don't get why legacy code needs daily maintenance
how does that happen
like what is it you're actually doing with that code every day
 
because it was written without any specs and had ridiculous deadlines, and architecture, what's that? no "big picture" of the system whatsoever, they just keep adding hair and tentacles to the beast, week after week, year after year.
(cough) just an opinion out of the blue, not thinking of any particular place (cough)
 
i've been in situations where people are trying to do that... had to tell them look, if you keep tacking stuff on to this thing, the amount of resources you'll need each time you want to tack stuff on is going to grow exponentially
just plan to EOL the thing and build another one
and do it right this time, don't outsource everything as cheap as possible ;)
 
the problem is that management thinks it's working code that has always done the job, when the reality is that they've been paying full-time programmers for years, to grow a huge procedural mess. When I came on board there were a grand total of 0 classes in the project (that had nothing to do with the API the code base is extending), which consists of a single DLL.
we recently installed a new version of the app the API is for, they had updated to a newer version of some grid OCX that was in use in some 160 forms... we rolled back the install right! I was hired to understand, maintain and rewrite this code base... still waiting for the rewrite part to happen.
 
so they know it needs a rewrite... maybe you can push for it
i've been bitten with that in .net before, some third party component changed its api and you couldn't find the old version anymore, and it broke tons of forms
when we migrated it to a new server
 
3:07 AM
Where I work a form that blows up brings the entire app down.
 
yeah it did in this case
we eol'd it and moved on to something else, lol
nobody wanted to work on an old .net app from 2005 anyway
and it was for a pretty specific industry where the game was kind of changing anyway
 
lol. the code was written (its first lines) around that, 2005-2006
 
wow realy
i thought vb6 was done by then
 
it's cheap
 
.net was in version 2.5 or 3
 
3:10 AM
2.0 or 3.5 ;)
 
lol that's what i meant, 3.5
wait wasn't there a 2.5
i thought i had an old book on that somewhere around here
hmm, i found a vb.net book from 2003, a design patterns book, and a copy of strunk and white
but no .net 2.5
 
0
Q: Is there a more semantic way to markup Price Lists? Example as Table and as Description List

timI have a pricing list that I can make sense of as both a table and as a description list. Using a table feels hackish. I thought a dl might be appropriate because description lists "are useful for displaying metadata as a list of key-value pairs" according to the docs at MDN Here's a codepen w...

 
3:27 AM
@DaggNabbit There never was a .NET 2.5 (at least no such thing was publicly released). The released version numbers were 1.0, 1.1, 2.0, 3.0, 3.5, 4.0, ...
 
3:41 AM
it must have been .net 3.5 i'm thinking of, there was no c# or asp.net 2.5 either
apparently they started scaling back support for it in 2005 and eol'd it by 2008
but it's still supported... idk, confusing
 
4:04 AM
@DaggNabbit BASIC idea: VB6 development (using the IDE and associated tools) was supported only up to 2008. Running programs you developed using VB6 was supported for another 5 years after that. As I read it, that expired about a year ago, so now all bets are off. It probably still works, but if it doesn't, that's your problem not theirs (at least officially--but for enough money, that could probably change).
As for the "it problem still works", it basically comes down to this: Windows hasn't changed much in the last year, and until it does, old programs will probably still work. Furthermore, Microsoft is pretty well aware that compatibility with old programs is a big selling point for Windows in general, so chances are more VB6 programs will still work for a while to come, but their attention to it will probably slowly fade.
 
good night gentlemen
 
@Mat'sMug Good night.
 
wo wo wo wo ..wait a minute
Public Function CreateWriter(ByVal path As String, Optional ByVal overwrite As Boolean = True) As FileWriter
    Dim writer As FileWriter
    Set writer = New FileWriter
    If writer.OpenFile(path, overwrite) Then Set CreateWriter = writer
End Function

Public Function CreateReader(ByVal path As String) As FileReader
    Dim reader As FileReader
    Set reader = New FileReader
    If reader.OpenFile(path) Then Set CreateReader = reader
End Function
that's not right
should be Dim writer As New FileWriter
or
no. that's all.
ok now I can sleep well :)
 
@JerryCoffin that's pretty much how I interpreted it, maybe I'm not fully grasping the concept of ending support for developers. It sounds like you could still develop with it, and it's still supported by the platform, so what does it really mean to end developer support? Maybe it's just like a warranty running out or something
 
4:24 AM
@DaggNabbit Basically, it means if you can get it to work, great--but you're entirely on your own. Likewise, if you sell something to a customer and it quits working for them, you have no room to complain to Microsoft about that either.
 
lol, yeah, I just can't picture MS rushing to help you even if it were supported, so I wonder what the real difference is
although, who knows, maybe people's customers were updating their systems and vb6 apps were breaking, and the app vendor was calling up MS getting them to push patches or something
 
@DaggNabbit I'm not sure. I've called their help lines a few times, and they did actually give pretty good support (though in most cases, the answer was: "nope, the product simply isn't intended to do what you wanted").
@DaggNabbit Largely a question of size and money. If I ask for something, chances are it will have no result. If a product manager from, say, HP asked exactly the same thing, chances of it having an effect would probably be a lot higher.
 
4:43 AM
0
Q: Populating a ListView via a php script in Android app using AsyncTask

user1282637this class retrieves JSON data from a PHP script and uses the data to populate a ListView using AsyncTasks. Any ideas on hw to improve? Thanks! public class MainActivity extends ActionBarActivity { ArrayList<Location> arrayOfLocations; LocationAdapter adapter; @Override protected void onCreate...

 
5:29 AM
@rolfl Thanks! I should write that on a card and keep it in my wallet. :)
6
Q: Check if a number is divisible by 3, efficiently

JavaDeveloperEfficient way to check if a number is multiple of three. Looking for code review, best practices and optimizations. public final class DivThreeEfficiently { private DivThreeEfficiently() {} /** * Returns true if the input number is divisible by three. * Else returns false. ...

Why is this still open? I think it has provoked a great discussion, but the code is clearly broken with just a few cursory tests.
I'm not saying, "Close it right this instant!" :) I've seen other questions closed with broken code and seemingly good answers. I just want a clear guideline. Any ideas?
 
5:54 AM
morning all
you have earned the "java" tag badge
that's nice
 
6:30 AM
@SimonAndréForsberg the longest line takes up 1.25 of my 2 screens
hello @all
 
hey @nobody
finally, gonna put back mine example of the hot topic of yesterday
 
wow, my first gold badge on SE
 
6:55 AM
gratz
6
A: Find the subarray with the max sum

chillworldIt's hard to say but if I get this with an interview, you will not pass. On the other hand, I'll find it good you come to here to learn. Number 1 is really red flags. Let's start with the review. 1. No public static void main(String args) with logic. I removed the comment lines to point it ou...

added mine code in it, @Nobody can you check for some mistakes?
 
Monking
 
Monking @skiwi:
@chillworld: I am no java expert what is this for:
 
moning @skiwi
 
 private MaxSubArrSum() {
    }
 
@Nobody oh sorry :)
to make the class not initiable
 
6:59 AM
@Nobody That could technically only a private constructor
That moment when you mis the bus by 30 seconds in the morning...
Only 5 mins late though
 
that's all right still
 
true
 
TTS :)
 
TTS = time to sleep?
 
@chillworld: Looks like a O(n*n) solution to me
 
7:02 AM
I'm still not able to do that question
 
@skiwi almost time to smoke :)
@Nobody I'm no analyst but I think you are right
 
it is fairly easy: you have an outer loop that goes through all N entries in the array and an inner loop that goes trough all remaining
that gives you (N+1) * N / 2 accesses which is O(N*N)
 
but in contradiction of simons answer I do that cause when an array consist of all negatifs you have to be able to return the least negatif number
and you have to count every subarray possible in mine opinion
 
It depends on the exact definition of the task (this has been discussed yesterday)
 
indeed
 
7:14 AM
and even if you need to return the biggest negative number there is a solution very similar to @Simon 's that does that in O(n)
 
but beside the algorithm (I do not discuss that could be better, cause I know mine limitations there) the code is pretty clean and readable?
 
It is too wide for the code window on CR ;) but I would not see this as an issue
and I dislike the name counter where it actually is the lower bound of the sub arrays that are currently calculated
 
I'm jaleous that you even got correct answers
 
@skiwi: To whom to you refer?
 
All that have managed to get correct answers.
 
7:20 AM
@Nobody that's true, that could be refactorred to lowerIndex
it's a (bad) habbit of me calling the "i" counter for every for loop
 
Okay then correct answers in which sense? From your program, from SE? From your wife during wedding ceremony?
 
Ah, I meant about the maximum sub arra yproblem
 
that the solution works?
well yesterday I thought I had a working solution, but it was so bad :s
It was simon who pointed out an array of whole negatifs could be given
an other fault that I didn't pointed out of the OP is taking int for sum
array of int could be { 2147483647, 1000, 2147483647 }
big problem then
 
I may have a concise solution... If I can ever check if it returns the correct value because it's taking so long
 
long?
system crashing?
 
7:32 AM
It's almost correct
but not possible to debug :D
And slow
 
how come it's slow?
 
private int computeMaxSum(final int[] array) {
    return IntStream.range(0, array.length)
            .map(i -> IntStream.range(i, array.length)
                    .map(j -> Arrays.stream(array)
                            .skip(i)
                            .limit(j - i)
                            .sum()
                    )
                    .max()
                    .orElse(0)
            )
            .max()
            .orElse(0);
}
Because that ^
 
streams :) I should learn it but then I ask myself why. We are still working java 6 here
 
Yay
There was a small error
.limit(j - i + 1)
is that should be
 
that's the same logic as me but java 8?
 
7:42 AM
0
Q: status column change active to expire based on time in stored procedure code

Rinku Baruahi want to show the status of the record based on the departure_time column as "active" or "expire" help me build stored procedure http://i.stack.imgur.com/sP1gd.png

 
Well it's a really bad algorithm, because it runs in something O(n^3)
Parallel slows it down ^^
Parellizing on some points does speed it up marginably
 
0
Q: status column change active to expire based on time in stored procedure code

Rinku Baruahi want to show the status of the record based on the departure_time column as "active" or "expire" help me build stored procedure http://i.stack.imgur.com/sP1gd.png

off topic
but I retracted vote to change must include code to be reviewed
but now I can't vote it again :)
 
0
Q: Finding the sub-array with maximum sum - my slow approach

skiwiI decided to give the maximum sub-array sum problem an interesting go, however I will assure you that it doesn't perform well, and that I would never put this in production. I'd like a review on this, if possible, it would be cool to see the running time, I'm sure it's upper bounded by at most O...

Posted it for fun :)
 
0
Q: Finding the sub-array with maximum sum - my slow approach

skiwiI decided to give the maximum sub-array sum problem an interesting go, however I will assure you that it doesn't perform well, and that I would never put this in production. I'd like a review on this, if possible, it would be cool to see the running time, I'm sure it's upper bounded by at most O...

 
Is there no tag for ? :(
Fun times for the one trying to analyze that :P
 
8:03 AM
wow my cpu had 120% load for a short period
2
 
@Nobody What?
120%?
 
Teach me :P
 
My compiling processes all reached the 100% mark (those broad plateaus) but the installation process made this short peak that goes above the plateau level to the next mark which would be 120%
 
That's quite nice
 
8:07 AM
I have never seen this happen before
I mean: I know of those turbo boost technologies but they only apply when one core is fully loaded (which would account for 25% on this scale)
 
I haven't ever seen it either here
Ugh... In FXML you need to encode whitespaces as %20... what for URLs? Even if it's quoted
Not that I use whitespaces a lot there
 
0
Q: Vectorization of matlab code for fast execution?

user3237134My code works in the following manner: 1.First, it obtains several images from the training set 2.After loading these images, we find the normalized faces,mean face and perform several calculation. 3.Next, we ask for the name of an image we want to recognize 4.We then project the input image ...

0
Q: API Design - Why is better a “cursor” response over an array response?

Javier ManzanoI'm developing an API and I've just asking this because I've been designing my apis this way since 2 years ago. When I have to answer with a collection of objects, I always send as response an object like this: {data: [object], next: int} Just to prevent large response times, large response s...

 
 
1 hour later…
9:36 AM
0
Q: stop flickering of object in screen in java

oIrCThis is the smallest SSCCE of my project.With this code I get flickering on the screen Main class (on which i start the application) import javax.swing.JFrame; public class MainFrame { public static void main(String[] args) { final JFrame frame = new JFrame(); fin...

0
Q: Caching on entity's property and dependency to third party on a getter

rgazelotI have an implementation problem that I don't find the best solution to resolve it. I have a simple entity : <?php class Game { // array private $statistics; // Datetime private $ended; ... public function isEnded() { return new Datetime >= $this->ended; ...

 
9:52 AM
Monking @Simon
looks like your tendency is towards becoming Jamal
 
monking simon
 
10:17 AM
someone strong in finding mem leaks?
 
Monking again
@chillworld Maybe, in small pieces of code ;)
 
mhh the whole project :)
have a hprof file where I should find the problem
 
Not that I really mind about the size, but it's harder to help then
 
following this guide a little
if better => show/tell me
 
Well, I'd recommend profiling memory usage and then first seeing what objects survive the longest
Those might give an indication
 
10:29 AM
I think I have found something
wait 10 min, for netbeans comes along again :s
 
You have a fast PC at work? ;-)
 
lol no
@home I do :)
@home intel 6 core, 16Gb ram and ssd hard disk
and if I could win xp but now it's win 7 on it :D
 
Why would you want WinXP?
 
Can't help it, in love with xp :)
 
@DavidHarkness It is open because the OP was not aware of the brokenness. It did work to the best of his knowledge.
@Nobody you mean by waking up late?
 
10:42 AM
yep
 
yeah, I know :/
 
or rather: later than yesterday?
 
Might have something to do with the time I go to bed
 
@SimonAndréForsberg Monking, did you see the code I posted yet? ^^
 
@skiwi I've opened the tab, will take a look
 
10:44 AM
@SimonAndréForsberg Just say WTF and I'll be happy.
 
OK then:
WTF
 
Did you mean it? ;)
 
Well.... I was almost going to write yesterday that "10 bucks says that @skiwi will use at least two Java 8 features for this code, probably streams and lambdas"
so I'm not very surprised by your solution
 
@SimonAndréForsberg Well... A real efficient version wouldn't be using them though
 
aah netbeans is again to the leak
so instance size 131.088 => char[] and contains 65535 char with value " "
I gues something is definitly wrong there :)
 
10:53 AM
Any 2k+ around?
 
yes, @SimonAndréForsberg, @skiwi
@Nobody
 
My Netbeans doesn't want to create an FXML file...
 
but @ckuhn203 why do you need a 2k+ user?
 
@ckuhn203 Yes, what's up?
 
Someone's abusing the edit system. codereview.stackexchange.com/questions/52124/…
 
10:56 AM
@jamal or @200_success we need you :)
that seems strange yes
 
I'll just flag it for mod attention then. Thanks guys.
 
@ch
@ckuhn203 I think its an edit you made, can that be?
6
A: Find the subarray with the max sum

chillworldIt's hard to say but if I get this with an interview, you will not pass. On the other hand, I'll find it good you come to here to learn. Number 1 is really red flags. Let's start with the review. 1. No public static void main(String args) with logic. I removed the comment lines to point it ou...

you see, same here and there was I the last editor
 

« first day (395 days earlier)      last day (3615 days later) »