« first day (634 days earlier)      last day (3374 days later) » 

@Jamal / @200_success - I am working on resolving a bug with the review queues.... if you see a flagged post... please don't delete it yet.... ;-)
 
Ooh, +3 - is that all you guys?
The down votes have started.
 
@nhgrif - can you inspect the queue here, and see if there's anything in it for you: codereview.stackexchange.com/review/low-quality-posts (if there is, please ignore it).
 
@rolfl Sorry, I wasn't aware of it already. I'll hold back now.
 
heheh, no problem. It's just me understanding the queue.
 
7:11 PM
> I could not add the code above so I posted it below.
 
@Jamal What a reason! Clap Clap Clap
 
Hehe, nice trick. ;-)
 
What? Where?
 
I could not add the code above so I posted it below. I want to split the above code into two parts. The new part will take care of open/read file then to return the read data pointer back to main. Compiler constantly complained. — user4504270 17 mins ago
 
Haven't gotten an answer to this question yet... Is it allowed/common to have two questions about the same code (where in one case it's the only code in question, where in the other case it's 1K code out of 30K in that question)
9
Q: Parsing log files of HearthStone: The log reading API

skiwiI'm still working on a parser that can parse log entries from a game called HearthStone, the overall idea is that it will read the log file live when the game is running, parses the log file and show interesting and useful data in real time. For the question the focus is on the API I have create...

Say in this question I want to get MatchingIterator reviewed
(It's just one class of that whole big question)
 
7:21 PM
@Jamal OP took bad advice from @shivsky and replaced the original working code with a broken attempted rewrite.
 
Hello
 
Hello
 
Hello
 
Hello
 
Hello
 
7:24 PM
Hello
 
Hello
 
Hello
 
Bonjour
 
Konbanwa
 
Hola
 
7:26 PM
Jo estet
 
नमस्कार
 
大家好
你们好
 
Sawubona
 
안녕하세요
สวัสดี
 
Guten Tag Abend
 
7:28 PM
こんにちは。
 
Salut
 
Now my screen is full... back to serious business, eh?
 
All right, I'm out of languages.
 
שלום
 
?????????????
 
7:28 PM
That should be right-aligned ^^
Hebrew.
 
translate: שלום
(from Hebrew) Hello
 
مرحبا
 
All right, STOP!
3
 
That is Arabic.
OK.
 
Thank you.
 
Huh?
 
I think the people at Meta need help voting me into oblivion: meta.stackexchange.com/questions/247718/…
 
For those who aren't usually around at night, or who may have missed it:
5
Q: Code Prettify - Choose your favorite or make your own!

PhrancisWell all like code, let's face it. And with Code Review's upcoming graduation "colors" I'm sure that many would like for the large amount of code that is posted daily in questions and answers to look top-notch. Whether Stack Exchange would be able to get CR our own code formatting is a bit up i...

> Who will come up with the most popular design? Remains to be seen!
 
@Phrancis I really liked the black/gray pattern you had in the original question.
 
0
Q: Looping through array and aggregating result in PHP

Daniel CostaI need to loop through a set of data (example below) and generate an aggregate. Original data format is CSV (but could be other kind). Data is ordered by LOGON and QUERY ascending. LOGON;QUERY;COUNT L1;Q1;1 L1;Q1;2 L1;Q2;3 L2;Q2;1 I need to sum the quantities by LOGON and QUERY and print a tab...

 
7:33 PM
This is my favorite style so far: meta.codereview.stackexchange.com/a/4964/34073
 
@rolfl empty
 
@Hosch250 Huh?
Oh, that. I can make and post that one too, it's one of the Prettify original themes, called Sons of Obsidians.
 
1
Q: Laravel repetitive Controller class and big Repository class

topherI am still new to Laravel, just learned the Repository pattern. I tried to implement it on my project, here's the result: MemberController.php -- this one is a bit too long and has repetitive codes <?php class MemberController extends \BaseController { private $repo; public function ...

 
@nhgrif Full?
 
0
Q: EF Code First Seed Method for States/Countries

jburto121I am working to complete this even further, but here's what I go thus far... See my other post for the definition. Part I of my Code: protected override void Seed(Identity.Console.IdentityDBContext context) { //Add Country and States... context.Countries.AddOrUp...

 
7:55 PM
I just received a job offer: usajobs.gov/GetJob/ViewDetails/392668600
Somehow the gov got my email from the U or something.
I don't qualify.
 
> TRAVEL REQUIRED
Occasional Travel
Occasional travel may be required.
 
I wouldn't mind the traveling.
I don't have one year at GS-9.
 
what amuses me is the reduncancy that may amuse me
 
Oh, yeah.
> For the GS-11, you must have one year of specialized experience at a level of difficulty and responsibility equivalent to the GS-9grade level in the Federal service.
> You may substitute education for specialized experience as follows: A Ph.D. or equivalent doctoral degree or three (3) full academic years of progressively higher level graduate education leading to such a degree.
 
@Vogel612 Reminds me of the Buzz Lightyear meme.
 
7:58 PM
@Hosch250 I'll post actual examples tonight but for now it works with that theme
 
@Hosch250 Nice, but, it needs tags like StackExchange....
what languages, what skills, what OS's, etc.
 
Yeah, they should hire me to redesign the system.
 
@Phrancis I don't like the white there...
 
Yeah I know, it will look better in code blocks, like this;
 
I still don't like the white...
 
8:01 PM
What white?
 
I have my operators in green, keywords in purple and names in a dark orange
 
The braces and variable names?
 
@Hosch250 punctuation and names, yes
 
-1
Q: EF Code First Seed Method for States/Countries Part II

jburto121Here's Part II from my previous code snippet: -- protected override void Seed(Identity.Console.IdentityDBContext context) { new Entities.Country() { Alpha2 = "IL", Alpha3 = "ISR", ISO3166_2 = "ISO 3166-2:IL", NumericCode = Convert.ToInt32("376"), EnglishShortName = "Israel", Nam...

 
@rolfl you asked me about low-quality post queue?
 
8:03 PM
Ahh, you're right, I did.... and thanks. It was a time-sensitive thing, and I figured it out...
thanks.
 
I still prefer the standard JetBrains format - white background, text in dark colors, mainly black.
2
 
I wonder what my browser is up to.
Fixed.
The rendering went completely wacko.
 
@Donald.McLean If you'd like to provide me a screenshot, I can make it and put it up for voting too
 
What the hell? That question with 3 parts orso, what's up with that?
 
0
A: Basic Block Building Game Part 2

Alexis KingYour code style is good, but first and foremost, I want to talk about the two major logical problems with your code: randomness and camera control. Randomness You've mentioned that you have a desire to make the world infinite at some point. Well, if you want to do that, you're going to need t...

 
8:09 PM
-2
Q: EF Code First Seed Method for States/Countries Part III

jburto121See my previous post for Part II. See my first post for Part I protected override void Seed(Identity.Console.IdentityDBContext context) { //add this after US States = new List<Entities.State> { new Entities.State() { ISOC...

 
What?!?!
4 parts now?
@AlexisKing Nice, but I'm out of votes.
 
Well I'm at rep cap, so I don't mind if you wait till tomorrow. ;P
 
Oh, I see.
 
I'm mostly joking.
 
8:11 PM
Oh.
 
I can't stand white background. I prefer not staring into a lightbulb.
 
@nhgrif Well, the trick is to not turn the brightness up that high.
 
@nhgrif I actually turn down the brightness on my monitors, else it's hell.
 
And not sit in a dark room.
 
Be in a light room and let the screen get covered with dust.
 
8:14 PM
@AlexisKing You're going to want to start rationing your answers if you want all those votes to count.
That's a really good answer.
 
@rolfl Yeah, I've considered that. :/
 
Oh yeah, almost forget, this university course registration system is worthless
 
Really?
 
They now actually implemented that you get a confirmation by email including an unique id, because in the past registrations would simply get lost
It could be that you were registered for a course, and after 2 weeks you were gone
 
I have to hunt down 5-digit codes to register, but other than that, it is select your grading system (audit, A-F, pass/fail), and click Done.
They should allow you to search by class title - ITM 3020, for example, instead of 5-digit codes buried elsewhere.
 
8:18 PM
So currently if your registration gets 'lost', you're still screwed, but at least you can now prove that you are screwed
 
@Phrancis Like that.
 
@Donald.McLean I can't say I specifically like Scala, but at least it's normally readable!
 
@skiwi And it helps that it's an implementation of a standard Java interface.
 
I hadn't noticed that yet
 
Is winning the Super Bowl a realistic goal?
 
8:21 PM
It's when you get into some of the stuff where the API authors are in love with operator overloading that things get tricky.
 
My brother just said it is.
 
@AlexisKing When you start wondering how much rep you could have had.... consider this: data.stackexchange.com/codereview/query/164174/…
 
I've only repcapped once, and not on this site.
 
@Donald.McLean Ok I should be able to make that fairly easily. Do you have a particular name or should I just call it Donald McLean's theme?
 
@Phrancis Please call it IDEA theme. It's pretty much standard IDEA colors.
 
8:25 PM
Cool, I'll ping you when I put it up then
 
Thank you!
 
Not sure I'll be able to get it exact but it should be close. Do you have a piece of example code you'd like for me to include?
 
Hmmm. It was this question that I repcapped on:
29
A: Did the witches know that the Wizard of Oz was a fraud?

Donald.McLeanIn the opening chapter of "Glinda of Oz", the fourteenth (and last written by Baum himself) of the series, the audience is introduced to "Glinda's Great Book of Records". The book is described thus: on the pages of which are constantly being printed a record of every event that happens in a...

/**
 * This class is a specialized input stream that is designed to check and drain the system buffer (by reading
 * whatever is available from the socket) pretty much every time there is a read operation.
 *
 * This is necessary because the DADS server is able to write a large amount of data to the AOI socket, overflowing
 * the system buffer if we don't keep it drained. Buffer overflows cause fatal parse errors.
 */

class GreedyBufferedInputStream(private var socket: Socket, logger: Logger = null) extends InputStream with TimeoutAdjustable {
 
@Donald.McLean Can you please indent it in chat? (Edit, Select all, Ctrl+K)
 
Sorry about that.
 
8:33 PM
Much better, danke
 
hm, this kinda took a bad turn from revision 7, despite my cautioning against doing what he did: codereview.stackexchange.com/posts/78467/revisions
he thanked me with words multiple times, but no upvote.... odd
 
@janos They changed the code after you answered? Think it should be rolled back?
 
he added an alternative implementation
 
Question... I want to create a Command interface that has an execute() and an undo() method, is that acceptable, or should I create a Command interface with execute() and a RedoableCommand with undo() that extends the Command interface? The latter feels slightly more right, but makes it more complex
 
I told him to ask a new question, but this is what he did anyway
 
8:48 PM
I have rolled back your revisions to your question. Etiquette here on Code Review suggests two things: Changes you make to your code that are inspired by answers to your quesiton, should be presented for review in a new question (What you may and may not do after receiving answers). Secondly, it is polite to upvote, and accept those answers that most help you with your concerns. — rolfl ♦ 10 secs ago
 
^^^ I should add that to my auto-comment list
and thanks Santa Rolfl
 
np
 
@skiwi I think the former, but you might also want an isUndoable?
 
user image
2
 
@Donald.McLean It's in this case the only type of commands I ever want in my application
 
8:52 PM
@skiwi You don't always get what you want.
 
for real undoable commands, maybe you're looking for the memento pattern
 
@Donald.McLean Well... it's my application :p
@janos That one seems quite complicated for the task at hand though
 
I see, you don't want to overengineer
 
yup
 
the question is hard to answer without seeing the bigger picture of your code
 
8:58 PM
There is no bigger picture yet, so that's kinda hard to help with
 
@skiwi In my experience, the easiest way to implement undo feature is to reset the whole thing and start over again.
re-doing all actions except the last
 
if the big picture is not clear yet, then start simple
you can always overcomplicate things later
2
 
Hmm, say an exception occured during the command execution, should the isExecuted() method then throw an exception stating that an exception has occured, or throw false?
 
@janos my girlfriend would be a good candidate to be a programmer, she's always complicating things later down the road! (I'm just being funny here)
 
most girlfriends do ;)
@skiwi isExecuted() should not, as the exception occurred before
 
9:08 PM
@janos Is it even my concern to make sure that isExecuted() returns a 'correct' value in case of an exception?
 
oopsie, created a bad flag (by mistake), hope the mods won't be too mad
 
I created this, maybe it's over-engineered already
@Override
public void execute() {
    if (executed) {
        throw new IllegalStateException("This command has already been executed");
    }
    try {
        executed = true;
        executeImpl();
    } catch (Exception ex) {
        executed = false;
        throw ex;
    }
}
 
Hello
 
Hello
 
Hello
 
9:10 PM
Oh no.....
Wait, never mind.
 
@skiwi If you set executed = true after calling executeImpl(), then there should never be a need to set executed = false, and thus no need to catch the exception at all. If you are concerned with thread safety, then the whole execute() method would need to be synchronized.
 
@200_success Hmm... my gut's feeling that I was overcomplicating was correct then
Is making it synchronized worth it?
I'm not intending thread safety
 
It's certainly more correct with synchronization. I'd put in the synchronization unless you are very concerned with performance.
 
Currently there is not much activity...
 
9:27 PM
@200_success Not concerned about performance here, and yea the fact that the executed could not be aligned also came into mind
Should I also synchronize the if (executed) check then?
 
Synchronize the whole method.
 
Ok, lastly, is it better to use a private final Object lock = new Object() lock to synchronize on?
 
All right...I am home now and I will start working on an answer to that meta question...
 
@Donald.McLean is there any special coloring/formatting for markup language in IDEA?
 
If you want to go that route, then take a look at the java.util.concurrent package.
 
9:34 PM
@Phrancis I'm not sure what you mean by that. Could you please explain?
 
Particularly Executor
 
0
Q: Golang async but sequential enqueue with buffered channel

Rafael BarrosThe objective of this program is to call enqueue sequentially with multiple URLs, and never block, fetching the URLs asynchronously, but on the order they were entered. In other words: keep calling enqueue to add urls to a buffered channel (queue) (possibly with a specific callback), and consume...

 
@Donald.McLean XML / HTML and things like that
<values>
  <value type="word">foo</value>
  <value type="number">42</value>
</values>
 
@Phrancis Something like that?
 
Yes, thank you sir that's perfect
 
9:46 PM
Any C# people around?
 
maybe
@Hosch250 what's up?
 
Any C# people asquare?
 
Why is it so important to use the var keyword?
 
@Hosch250 In what language?
 
In C#.
 
9:47 PM
What's the alternative to using var?
I don't know C#....
 
Right, duh. I know the answer in Scala and JavaScript. :-)
 
But I know the Swift alternative to var...
 
It essentially makes C# a weakly-typed language.
So, int i = 5; can become var i = 5;.
And string s = "test"; can become var s = "test";
 
it doesn't make it weakly typed
the compiler can guess the correct type
 
I prefer writing the names out so I can see what they are at a glance, but people keep telling me to use var.
Well, yes, but so can Python's when I write s = "test"
And that is weakly typed.
 
9:52 PM
I'm glad Java doesn't have a var keyword, as tempting as it would look, it would also complicate the whole type system
 
@Hosch250 var does NOT make C# a weakly-typed language. var is STILL statically-typed. dynamic is a whole different story though.
 
@Hosch250 Nope. First, the term “weakly typed” does not have a well defined meaning. But we can talk about static vs. dynamic, and manifest vs. inferred typing. In C#, the var keyword asks the compiler to infer the static type from the right hand side of an assignment. Using dynamic would not infer a static type for that variable, and the type would be checked at runtime. Python also uses dynamic typing.
 
OK, I see.
Anyway, what is the importance of using var?
Why can't I use int and string and the like instead?
 
what's the type of var foo = new { Bar = "abc" };?
 
I don't know.
 
9:56 PM
it's an anonymous type - it's still statically typed, but you don't need to know exactly what type it is - it's compiler-generated anyway. LINQ uses it plenty.
 
35
A: Why is type inference useful?

amonLet's take a look at Java. Java can't have variables with inferred types. This means I frequently have to spell out the type, even if it is perfectly obvious to a human reader what the type is: int x = 42; // yes I see it's an int, because it's a bloody integer literal! // Why the hell do I ...

 
Oh, I can see that from the new {}.
Well, why do people tell me to use var instead of int and string?
 
and that's why Java can never have LINQ no matter how hard it tries.
because SomeType foo = new SomeType(); is freakin' annoyingly redundant to read (and to type) IMO.
 
But you don't use the new keyword in ints and strings.
I can see myself using var in that instance - the type is right there anyway.
 
yeah....... but dude, if you can't mentally infer the type of "foobar", you have other problems...
 
9:59 PM
I can - but it is faster for me to not.
So I spend a little extra time to make my code easier to read later.
 
it's just one of these flamewars.... I like var, I love var I use var as much as I can
 
It is easier for me to reconstruct what the code is doing when I don't have to pause and calculate types.
 
others don't.
more often than not, you don't need to actively care about the type
 
So, no raptors will get me if I don't use var?
Or psychopathic maintainers or something.
 
nope. but I'll rip your code apart on CR if you're not consistent about usage/non-usage of var ;)
all that matters is consistency.
 
10:01 PM
OK, I'll just continue not using it.
BTW, there are instances in which you cannot use var.
 
and I'll continue to silently cringe at all these redundant type declarations :)
 
Like var v = null;
Not that that is commonly used anyway...
 
and when do you actually need to initialize a reference type with null anyway?
 
Who knows....
I was just experimenting.
 
but you're right, there are places where you can't use it. fields can't use var, for instance.
 
10:17 PM
Wow. Sometimes I'm not an idiot.
 
@Donald.McLean ^^ Does this look pretty close?
(can't display in an actual code block right now)
 
@Phrancis Yes, that looks great. Thank you.
 
@Mat'sMug Would you mind checking my answer here: codereview.stackexchange.com/a/78921/34073
I'm not sure if I am missing something and told him to do something stupid.
 
^^^ In Java, you can have multiple classes in the same file. They just cannot be all public. I think it's better to drop that dubious remark about Java.
 
0
Q: Tile Rendering/Position Updating Performance

FrigidDevThe code below grabs the contents of a .txt file, and scans each character of it, using that data to create a tile set. My main concern, is that for each loop, I am opening and closing a file each time, and that is obviously performance-intensive. I want to create an array of images, based on the...

 
10:23 PM
@janos Thanks. I picked that up from my Java class at the U.
At least, from the book for that class.
 
hopefully they won't teach anything incorrect you can't unlearn ;-)
TTGTB
 
See you.
 
@janos 'night!
 
see ya!
 
I forgot about abstraction, so my answer was invalid.
I deleted it.
 
10:36 PM
0
A: CoreData or code-backed UML reviews

nhgrifDisclaimer: This answer will not address the linked question specifically. Rather, it will offer some clarification on what CoreData is and isn't, and how this compares to thinks it might easily be confused with. Before we talk about what CoreData is, let's talk about what CoreData isn't. ...

 
Morning pro-s
 
@Hosch250 why did you delete it?
 
I forgot about data abstraction.
I think my main point was invalid.
Or maybe not.
You see, they have this:
public interface IWcfModel
{
    List<ConsoleData> DataList { get; set; }
    event Action<List<ConsoleData>> DataArrived;
}
And later, they have this:
 
Hmm... I generally don't like the idea of allowing collection properties to be set.
 
class DispatchingWcfModel : IWcfModel
{
    public List<ConsoleData> DataList
    {
        get { throw new NotImplementedException(); }
        set { throw new NotImplementedException(); }
    }
}
So, in my answer, I told them to not do the second.
Should they, or shouldn't they, be doing that?
Because they are abstracting from IWcfModel, I guess they probably shouldn't be?
Maybe they should have implemented it, or is there a case where this is good?
 
10:42 PM
@nhgrif and because it is backed by SQLite, there are ways to effectively seek out specific Entities you've saved using CoreData. - so, it's like if I post a screenshot of a .edmx entity data model designer and ask for it to be reviewed... I still think it's nice support info, but not the crux of a good CR post.
 
I don't know what .edmx or entity data model designer is
And I'm not saying that the specific question is on or off-topic.
 
basically CoreData for Windows dev
 
My answer really isn't an answer so much as a question...
But it's important for people to understand CoreData before the community makes a decision for CoreData.
 
@Hosch250 I think you make good points
 
OK, so I will make a comment about that and undelete it.
 
10:44 PM
Most iOS/OSX developers don't even know what CoreData is... never mind the CodeReview community which, outside of me and bazola, none of the regulars even write in a language that could use CoreData as far as I know.
Because importantly, CoreData is not a database. CoreData is not a database schema. And CoreData is not a UML.
And finally, just because a question isn't a good question doesn't automatically mean it's an off-topic question.
 
if I get this right (skimmed through your post - looks like a great explanation BTW), then it's essentially a drag-n-drop designer to create entity classes that map to some data (SQLite?)
 
It maps to data... but you can't just map it to any data.
 
OK, undeleted.
 
It is backed by SQLite... but you can't go grab a SQLite database and map your objects to that SQLite database.
 
you can't?
 
10:46 PM
Would you mind reviewing it when you have time?
 
CoreData can only use a SQLite db that it created itself.
 
oh.. so it's just a limitation of the tool then
 
It creates it in a special way. That it uses SQLite is an irrelevant implementation detail of CoreData.
 
If it is bad, collect at least two buddies and downvote it so I can delete it and get a badge.
 
lol
 
10:47 PM
It's not a mapping tool.
 
but it generates entity types... I'm missing something.
 
CoreData is to creating a data model what any interface builder is to creating an interface.
Xcode interface is backed by a .xib file which happens to have an xml format.
That is uses an xml format is an irrelevant implementation detail.
 
the generated entities don't map to the generated SQLite data??
 
I don't know.
I'm not an Apple Engineer working on CoreData.
And I've never tried to query a CoreData generated SQLite database.
You don't query for CoreData objects like you would query for rows in a SQLite database.
That's not how you use CoreData.
 
what's the use of generating a data model backed by SQLite if the damn thing won't map to the generated db?
 
10:50 PM
You can use CoreData to get your objects in/out of the SQLite database it generates.
 
it really sounds (and looks) like some kind of ORM
 
But I don't know what the actual structure of the backing database would actually look like necessarily.
 
exactly like Entity Framework stuff
 
And it doesn't really matter what the actual SQLite database even looks like.
You're never going to do any SQLite work at all ever under any circumstance.
 
but saying that "you're not querying a database" is playing on words @nhgrif
 
10:52 PM
Are you querying a database when you look through an array for objects matching a certain criteria?
 
you're querying objects that [insert black magic going on here] end up hitting a database and returning you entities loaded with data that's coming from that database
 
At any point in the future, Apple could decide that they've come up with some different better way to store the objects on disk that's not SQLite.
Because, as I said, SQLite is an irrelevant implementation detail.
 
yes, that's irrelevant indeed
 
EXACTLY!
That SQLite is backing CoreData is a completely irrelevant implementation detail.
 
I can create an Entity Framework data model, and map it to a MySQL database, then re-map it to an SQLite or SQL Server one if I want - because the providers are implemented.
 
10:54 PM
@nhgrif - question - can you build an application that does something useful using only the CoreData component?
 
^^
that's the point - a CR post that would only include the generated classes wouldn't be code that does anything
 
Is that the criteria for a question being a good CR post? Or even an on-topic CR post?
 
whether it's EF or CoreData
 
Can't I post a CR question about a Person class?
 
No, much simpler than that.
 
10:55 PM
code that works as intended is code that does something, no?
 
I can use CoreData to make a Person class.
And I can build a Person class by hand.
 
and if your Person class is designed wrong, your code won't work as expected.
 
Right... and you can design a person CoreData class wrong too...
 
Is it possible to express a complete 'thing', a class, a program, a usable function using only the CoreData component
 
A complete program? No.
A complete class? Yes.
 
10:57 PM
but a complete Person yes.
OK,
 
Yes, a complete person could be expressed with CoreData only.
But... if it's me... I extend CoreData.
I design CoreData, my person has a firstName and lastName attribute.
 
So, if you were to build a complete Person class, and want to have it reviewed by soeone, and you built it completely in CoreData, how would you ask them to review it?
 
can a Person class alone (or even with alll its relationships) be the object of an on-topic CR post?
 
Then I auto-create the class and give it a fullName attribute, etc.
 
just selfied my second SciFi Question --> scifi.stackexchange.com/a/80406/25784 anyone want to check it out and see how I did?
it has to do with coding, kind of
 
10:58 PM
@rolfl That would be the more appropriate screenshot.
I don't know whether that would be on or off topic for CR.
But that's better than the question that prompted this meta.
Because to anyone that knows CoreData, there's no difference between that screenshot and the .h file it would generate.
 
That would be 'example code', but, conceptually that could be names, phones, etc.
 
Except.... except... the .h file if pasted as plain text... means better search results.
 
the whole designer thing is just fluff - at the end of the day, the question is "can we review a model all by itself" - and the answer is no, in my opinion
 

« first day (634 days earlier)      last day (3374 days later) »