« first day (354 days earlier)      last day (3962 days later) » 

13:03
I'm thinking about starting to work with Stream<E> as input/output of methods over actually collections for my own stuff
wondeering how it turns out
Only I'm not too sure, if Stream was iterable then it would work out a whole lot better I think
@skiwi Indirectly, it is iterable.
@SimonAndréForsberg Not as much as you cannot correctly change variables as they need to be effectively final
Or wait
It does have an Iterator
aha it's time to go home yes yes yes :)
 Status: lower bound of possible caffeine-level reached. Please immediately refill caffeine.
2
So you can do what you want with it
13:10
holy sh*t I am so damn tired...
see you all tommorow or in a few hours when I have time @home
and it's only 3PM.
@chillworld cya
I wonder if I should submit a substantional improvement request as a JEP (openjdk.java.net/jeps/0) or simply ask the mailing list...
@skiwi Exactly, it has an .iterator method, but for some reason it doesn't implement Iterable (probably because Streams can be infinite)
being infinite is not an excuse.....
13:13
then why doesn't it implement Iterable?
It is because being able to obtain it as Iterator<E> implies that it can be re-used
@rolfl It's not about the infinitiness
Streams can only be iterated over a single time
^^^ that is the answer that makes most sense.
So I have an idea, but need to assess first how much it effects compability and binary compability:
Create new interface `OnetimeIterable`.
Make the `Iterable` interface extend that.
Make the `Stream` interface extend that.
Apply the enhanced for-loop on `OnetimeIterable` as opposed to `Iterable` currently.
(backticks, y u no work?)
0
Q: Any class implementation

user3476093I have made an any class in C++, base loosely on boost::any, but written differently. I was checking to see if I had done it correctly and that there were no mistakes in it: class any { public: any() : dt(new data<void *>(0)) { } template<class T> any(con...

Then an Iterator still implies that you can iterate multiple times
13:18
backticks + multiline chat message = don't work
gotta love it...
 assertEquals(instance.getFieldOfEnumType().ToString(), "ENUMELEMENT")
e-nu-me-le-ment
rewritten to:
 assertEquals(Enum.ENUMELEMENT, instance.getFieldOfEnumType());
Might be the wrong way around there
for the rest, waay better :)
 assertEquals(expected, actual)
dw, I got that covered..
13:23
Oh wait, it is correct then ^^
yep. I also thought. WTF? did that guy RTFM?
and the fun thing is, everywhere else, it's done in the correct order...
not correctly, but in the correct order.
Wee it doesn't give errors!
public interface Traversable<P extends Traversable<?, ?>, C extends Traversable<?, ?>> {
    default public boolean hasParent() {
        return (getParent() != null);
    }

    public P getParent();

    default public boolean hasChildren() {
        return (getChildren().count() > 0);
    }

    public Stream<? super C> getChildren();

    public void setParent(final P parent);

    public void addChild(final C child);

    default public void addChildren(final Stream<? extends C> children) {
Glad I got a no-brain assignment today..
even after the third cup of coffee it's impossible to understand that..
and I know it's not that hard
Well this thing might not be too straight forward:
public static class Void implements Traversable<Void, Void> { }
isn't that just a method walker??^^
13:31
hello @MattS.
like instance.getClass().declaredMethods()
or however it worked..
you know what actually surprises me...
There are other rooms, with 82 users currently talking in 40 rooms.
Thats a bunch of rooms with only like 2 people in them
(talking)
of all the sites, I'd expect more
well that depends on what you define as talking, and if one user counts as user for each room he's in..
we've got 5 talking right now
what, only??
13:33
talk
I had expected more of you!
now 6
129 users active in the last 60 minutes.
I think talking is notifiable by our icons in the room, if they are transparent or not
and 57 rooms active in the last 120 minutes.
is @SimonAndréForsberg talking then?
13:34
oh, you know what... my stats were old, they don't refresh unless you refresh the page
There are other rooms, with 132 users currently talking in 57 rooms.
I don't think he is
welll, he's like half idle, not full idle... never go full idle
you might wanna look at this
that does include people just idle in chat though....it it quite a few
Gotta bump them talk stats
13:38
@NiallSzalkai just btw. I also can't make sense of most skiwi posts...
4
public class AbstractTraversable<P extends Traversable<?, C>, C extends Traversable<P, ?>> implements Traversable<P, C> { }
^ that...
I can still make sense of mine...
looks wrong... should be:
 public abstract class AbstractTraversable
I wanted to post a fucked up function declaration I wrote in C++, but it is almost readable since I switched to C++14 yesterday :/
13:41
@rolfl Why? I think I need to know the types
template<typename Function, typename First,
         typename Indices=index_range<1u, function_traits<Function>::arity>>
auto curried(Function&& func, First first)
    -> decltype(curried_impl(std::forward<Function>(func), std::forward<First>(first), Indices()));
ah
I see
I have one problem though... A Traversable.Void messes things up
But I could reduce it even further with decltype(auto).
Because it is not a prent of Page :(
@skiwi Abstract class should be public abstract
13:43
template<typename Function, typename First>
auto curried(Function&& func, First&& first);
@rolfl Yeah, slipped through right there
@skiwi I don't follow the reason for Traversable ... so I don't follow the logic. Then again, I don't have time to get my head around why you need it either.... but, as an observation, when you have to create esoteric structures to streamline your logic, you are often doing it wrong at a more basic level.
Hmm, what as the name again of an element that is not inside a specific set, but the least upper bound of a set?
Scratch that, I can google myself, now I know the name
@rolfl It has to do with the typecasting I'd else need to do, which in the end, may have been a better solution
int sizeBeforeDelete = customerServiceBean.getAll().size();
customerListManager.deleteCustomer(currentCustomer.getId());
int sizeAfterDelete = customerServiceBean.getAll().size();
assertNotSame(sizeBeforeDelete, sizeAfterDelete);
^^^^ WAT THA....
I'll need to drop my last requirement, as else I can never have endnodes, which is kind of, annoying
13:48
unit tests are forgiven for code style and other common sense violations.... I give tests an order of magnitude of latitude over other code.
I have done some really, really crazy things in unit tests....
ask @skiwi
Actually, unit tests are closely related to PCG ... ;-)
@rolfl well it's possible to write that waaaay better...
assertNotSame is also okay when adding....
databaseCustomer = customerServiceBean.getById(customerId);
assertNull(databaseCustomer);
@rolfl You can still defend your tests, they are purely there to check that you are dong things correct.
I should've built it using TDD to guide myself more
woof.
Ahem, I believe I licensed that under MIT, meaning you have to give attribution to me. ;) I'd prefer "The Supreme Overlordly Knob of the Door, Superior to Mankind in All Ways," but anything goes — Doorknob 42 mins ago
Only doges go woof
Quick question, this is bad, right?
package dpc2.base.records.tesseract;

import java.util.Objects;
import org.jdom2.Element;

/**
 *
 * @author Frank van Heeswijk
 */
public class Page extends AbstractTraversable<Traversable.Void, Area> {
    public Page(final Element element) {
        Objects.requireNonNull(element);
    }

    @Override
    public Traversable.Void getParent() {
        return null;
    }

    @Override
    public void setParent(final Traversable.Void parent) {
        throw new IllegalStateException("The Page element has no parent.");
Should I rather create a static factory method, that creates a Page based upon an Element?
Or are dependencies in such case allowed
13:58
@Vogel612 I can't make much sense of my own posts!
I hate macs >.<
2
I can't find this image file on it, Its definitely there as I'm using it to vm windows 7
@skiwi Apart from not actually saving away the element as an instance field.... and apart from the fact I am not sure what Traversable.Void is .... and I don't know why you need Traversable .... then, it looks ... well, like it will work?
can we get some more attention to all the answers on this question?
19
Q: Is it bad practice to increment more than one variable in a for loop declaration?

afuzzyllamaWhile coding today, I came across the following loop in C#: for(int x = 0; x < max_x_index; x++){ for(int y = 0; y < max_y_index; y++, count++){ some2DarrayRepresentedBy1D[count] = ...; } } Would this be consider bad practice? Would the following be a better way to achieve the...

I need to work.....
@rolfl Well sure it'll work, so there's no real preference over creating a static factory method over it then I guess
14:17
I am not sure I understand the problem you are trying to solve... (in fact, I am pretty sure I don't understand it), so my advice is pointless.
Okay, then don't mind me
I guess it's a candidate for a CR question in the future
Time to make up a log file for some group project which all of us totally forgot ;)
Good thing there's a commit history in git ;)
@skiwi I have to agree with monkey, I also don't understand why you need Traversable...
C folk ...:
Wont an optimization flag help with the unroll? Also, BTW, you should discover the 2nd Monitor - Code Review chat room. — rolfl ♦ 1 min ago
hello
hey @Mat'sMug
14:30
@rolfl you've been Jamalized by Community♦!
C folk?
TTQW, cya
later!
"It fixed up bad links."
that's cool
14:36
"http://data.stackexchange.com/code%20review%20stack%20exchange/revision/161395/‌​205718/huntingbugsinbountyjoins"
14:46
0
Q: Pretty way of keeping sensitive info out of a logged command string in ruby?

CHKI have a long command that I am building with shovels (<<), with the intention of eventually running system(command). I'd like to log the command string, to make sure it is built properly, right before I execute the command. However, the command has to contain account credentials that I don't wan...

Supposedly..
I was too lazy ( to fix them all )but I fixed at least like the useful bountifulii query
0
Q: Creating Enum vs Nullable bool for readability?

lllWhich one is more verbose? private bool? _hasChangesToReconcile; public bool HasChanges() { if (!_hasChangesToReconcile.HasValue) { if (Model != null) { using (var broker = _documentBrokerDelegateFactory()) { return broker.Value.H...

15:04
@StackExchange bordering the line of off-topicness for non-working code
@StackExchange @Jamal I answered this question and then less than a minute later the user changed what I answered about........ what do you think?
0
Q: Tagged unions in Dart

user1338952Motivating Example: A financial plan has assets, uniquely identified by the asset's name, and holdings, each uniquely identified by its account's name and symbol. When expenses come in, they need to be paid for by selling holdings and/or assets. Selling of holdings should come first, then if req...

15:21
@Malachi Roll-back the edit, and add a comment pointing to the FAQ
be polite.
@rolfl well he was doing it as I answered.
@rolfl like withing 15-30 seconds of my posting the answer.
Well, then, I would 'lump it', and delete the answer....
it sucks, but you can't win them all.
2
If people only knew how many times I was part way through a really long answer, and palacsint, 200_success, Simon, or someone else posted essentially the same answer as the one I was about to.... and I just click cancel, and move on... ... :(
0
A: Mixing MVC and MVVM with Zk framework

chillworldYou can mix the 2 technologies. I do not support it, unless the different pages are complete on their own like an about.zul. You just have to take care if your pages will not affect the other team members their pages. What do I mean with that : If your collegue's triggering an global-command wh...

Nice answer or not?
@rolfl but that still hurts after the effort you already put in it
Just 12 messages when going home! Didn't miss much
@rolfl Don't click cancel, add an unique point to your answer!
2
15:44
@SimonAndréForsberg It seems like you quite easily iterate over streams in a normal fashion:
private void init15() {
    Stream<Integer> stream = IntStream.iterate(0, i -> i + LocalTime.now().getSecond()).skip(1).limit(10).boxed();
    for (int i : iterable(stream)) {
        System.out.println("i = " + i);
    }
}

private <T> Iterable<T> iterable(final Stream<T> stream) {
    return stream::iterator;
}
dutch people here? I just have seen a so funny video in dutch
Some reporter falling in the water?
better
granny at upperware party
NSFW ....
NSFHWPO
15:49
lols
(Not suited for home with parents around)
Very good and detailed answer with new stuff for me to learn. Thank you. — Sillicon Touch 1 min ago
@rolfl When that happens to me, I just post it anyways. Even though I just say the same thing with different words.
0
Q: fractions data type -- when to reduce?

john mangualHere is my Python implementation of a simple fractions class: class frac: def __init__(self, a,b): self.a = a self.b = b def __add__(self, x): return frac(self.a*x.b + self.b*x.a, self.b*x.b) def __mul__(self, x): return frac(self.a*x.a, self.b*x...

nice gratz, what was the question,
ffound it
If you click on the '1 min ago' it goes to the answer.
15:51
already voted that :(
@skiwi Huh, that iterable method you got there looks interesting... not sure how stream::iterator works exactly there...
brb going to make dionner
@skiwi If that one works, would for (int i : stream::iterator) { work also?
@skiwi Generally, generic methods should be static, I consider it a bug when they are not
Away for a second, 3 pings
15:56
@Malachi I think you should have voted to close the question as "not working" and "example code".
@SimonAndréForsberg The latter doens't work, already tested
@rolfl Note taken.
@SimonAndréForsberg It is because you need to return something that implements the Iterable<T> interface, which consists out of just Iterator<T> iterator(), which stream -> stream.iterator(), hence stream::iterator is.
It will work .... once.
After that, the iterator will be empty.
That ^^ is an important point to keep in mind
@ChrisW I can still do that. it does look like example code doesn't it?
and done
1
Q: One line way (preferably) to print 80 (or more) same characters

Sillicon TouchI want to print a lot of the same characters and I don't want to use a for loop and I'm also looking for a way to do it as less lines as possible. Even better I would like to be able to store that string in a static variable to use again and again. This is how I currently do it (ugly but at leas...

16:04
@StackExchange ?
we should close that one right ?
There is a meta discussion about that.
this one in particular
I could answer this one
It is not fit for SO (the code works).
It is not fit for programmers (it has working code).
And, two answers in.
Both point to SO, and neither are a great review, but both answer the question.
Exactly
that's why I had a comment, since really this is not a good fit for Code Review
16:08
Let me put an answer on that question.... what I would have liked to see ... ;-)
@konijn Although ChrisW's mainly regurgitated those answers.
I added more meat to my Answer
1
A: Creating Enum vs Nullable bool for readability?

Malachithis code here can be simplified if (!_hasChangesToReconcile.HasValue) { if (Model != null) { using (var broker = _documentBrokerDelegateFactory()) { _hasChangesToReconcile = broker.Value.HasSectionChanges(Model.Id); } } else { _has...

0
A: One line way (preferably) to print 80 (or more) same characters

rolflString constants in Java are very efficient. In practice, your code is very high-performing. The issue here is not about how fast the code runs, because, essentially, it cannot be run any faster than this. If you want to have more efficient code in terms of space, then the practical thing to do ...

16:28
@Malachi I think you mean e.g. return false not Return = false?
@ChrisW yeah oops
is "return" all lowercase? it must be capitalized in VB?
And storing the return value in a instance variable caches the value, in case HasCHanges is called more than once. So you're suggestion (return instead of assign) isn't exactly the same behaviour.
@ChrisW it looks like the value that is given by "broker.Value.HasSectionChanges(Model.Id)" is a boolean itself
that is the reason why I thought I could do it that way
@skiwi I must admit that I'm a bit confused by the :: syntax in Java 8. In this case, does it return an Iter ... wait a minute.... Oh, I start to understand it now...
Well, @rempax .... that was ..... unexpected.
@konijn - now, the real question is whether my answer deserves all those upvotes....
And .... as expected, and, as with other questions of the type, the question is now on the "Hot Questions" margin.
16:45
@SimonAndréForsberg Did you recommend me "Artificial Intelligence: A modern approach" some time ago?
And the award for the most infficient dashes generation goes to...
private void init16() {
    String dashes = Stream.generate(() -> "-").limit(80).reduce("", (s1, s2) -> s1 + s2);
    System.out.println(dashes);
}
17:01
@skiwi Yes, I did.
@SimonAndréForsberg I need to read it now for my course on university :)
0
Q: Not able to coninuously read the incoming data from com port while there is data

user41187using System; using System.Text; using System.Collections.Generic; using System.ComponentModel; using System.Windows.Forms; using System.IO; using System.IO.Ports; namespace SerialPortApplication { public partial class Form1 : Form { private System.IO.Ports.SerialPort comPort = n...

This is a book that would be worth getting, but just grabbing a PDF for now as I've been so stupid to really buy all my recommend books in line my first year of study
I regret the most one where the teacher told us explicitely to buy the book, then figure out we never use it, and then figure out he was the author of the book.
@skiwi Why not use Stream.generate(() -> "-").limit(80).collect(Collectors.joining()); ?
@SimonAndréForsberg That's also a fair option
Too bad that all of them are bad
17:04
lol, yeah, it's still inefficient
what course are you going to study now?
Coudl still go with lambdas and stringbuilder though
Rational agents: robots & artificial intelligence
It was the same for me with the books at university, I quickly realized that I wouldn't use them so I stopped getting them.
Appereantly it's called like that
Oh that sounds nice
@StackExchange off-topic
17:05
I don't seem to be able to do an "Artificial Intelligence" course on the computer science track though
This one will be less technical
^^ Getting crowded here
2
Was there a working link for that book when you suggsted it? Because I got a pdf now from some place far away
Ah, but even if it's less technical it's probably still useful to go into the theoretical stuff.
17:07
I think that's a different book, but it was the link I had saved somewhere
@SimonAndréForsberg I happen to know, that past 32, you no longer get the icons for the people, but just .....
Let's see if we can make that happen.
only 4 to go until we're 32 here
2 here
@skiwi You're right, it's a different book... didn't notice that. Would you happen to have a link to that pdf? :)
if you want to program AIs, this upcoming programming contest looks very interesting: codingame.com/cg
and beautifully done
click on Training and check out any of the exercises
it's like codility on steroids
the actual contest will be on Saturday, the details: codingame.com/cg/#!challenge:29
17:11
Why 6pm... Around dinner time
@skiwi you're in Europe timezone?
@janos Yep
Though it's somethign to consider
Hmm I kind of dislike the setup in the examples there, they don't encourage you to code anything structured, rather hack stuff in.
Not sure if they allow multiple files etc.?
probably not
@skiwi - any Java program can be written as a set of static classes inside the main class.
Reading it is a problem though
True
17:22
How to get Jackson to write the <?xml version="1.0" encoding="utf-8"?> header when using XML? sigh
I think this will be a SO question...
use JDOM?
Are you working/employed at the moment?
let me rephrase that .... are you still between jobs?
new XmlMapper().configure(ToXmlGenerator.Feature.WRITE_XML_DECLARATION, true) - thank you previous SO question
@rolfl I was considering using JDOM, but I remembered how lovely Jackson is to use :)
No, I'm not working at the moment.
I just saw this this morning
17:42
@BenVlodgi I don't have unity on this machine and not sure I should install it....
@Malachi I don't have it on my work comp either. Unity is just a gameengine
or like a game-engine platform
@BenVlodgi I probably shouldn't install it anywhere then
I am a video game addict
hah
its not like a game manager
its like XNA
sorta
I have the original 2048 pinned on this browser and that flappy2048 now too.
actually, I think it is C#
17:45
yeah I know
This is a list of games using a version of the Unity (game engine). The main article on the Unity Engine gives further details on the engine itself and its versions. {| class="wikitable sortable" |- ! Title !! Year Released |- |- | GooBall || 2005 |- | Dead Frontier || 2008 |- | Off-Road Velociraptor Safari || 2008 |- | Three Kingdoms Online || 2008 |- | Cartoon Network Universe: FusionFall || 2009 |- | Uberstrike || 2009 |- | Max & the Magic Marker || 2010 |- | Thomas Was Alone || 2010 |- | Battlestar Galactica Online || 2011 |- | Family Guy Online || 2011 |- | I Am Playr || 2011 |- | Roc...
but now I can say I can play it because I don't have it. and then I won't play it and get addicted
it is particularly popular with mobile devs
:D
@BenVlodgi maybe I should use it for my game that I have had in the works since the beginning of time
@Malachi indeed, you may want to... its much nicer than trying to re-invent the wheel and the lightbulb at the same time
17:48
@BenVlodgi well I have Monogame, doesn't that use Unity???
Monogame uses the last version of the XNA Framework and builds on top of it I think.
I need to get back into that this coming winter, when I don't want to leave my house for days at a time
I found a way to cheat at Flappy 2048!
function cheat() {
    for (var i = 0; i < walls.length; i++) {
        for (var j = 0; j < walls[i].cells.length; j++) {
            walls[i].cells[j].setValue(bird.value);
        }
    }
}
setInterval(cheat, 500);
18:08
Maybe someday I'll try to answer some questions on Math SE. Right now I'm just doing edits...
3
Is this what I can expect from the book?
"One very simple agent function is the following: if the current square is dirty, then suck; otherwise, move to the other square."
18:35
> You've earned the "Nice Answer" badge for Printing 80 (or more) times the same character.
2
@rolfl what?
^^^^ for a question that was about to be closed .... ;-)
2
Can you review a single line of code ....? Q.E.D.
oops
does "+" concatenation work in VB for strings? I always thought it was "&" and that you could only use "&"
How do I get my question to be reopened? How is it off-topic? — user41187 47 mins ago
The OP has seen that it's off-topic, but apparently hasn't read past that part...
Should be closed as: unclear what you are asking ... what's a COM port??
18:47
@rolfl I see you have read the code to?
I'd be interested to make an AI for driving cars... And just see what happens.
5
@rolfl It's a misspelling of "comport", as in: "A young lady must comport herself well to attract the proper sort of gentleman." :-)
ugh. 4th "emergency deployment" completed. Having one hell of a shitty day.
@Mat'sMug that sounds like a lot of fun, knock it off!
@Mat'sMug Not sure whether to take that literally? What's an 'emergency deployment'? A trip to the washroom?
Have you taken an imodium?
18:52
lol
4
when you can't test anything and have to "fix that quick" and rush code into production and discover that there's another bug to fix and then you need to rush fixed code into production and then that uncovers another bug and then you fix it and then you need to rush fixed code into production ...
^^^ you could always get a better job .... just saying.
ironically, I got an inmail (LinkedIn) today from a consultant firm that found my profile interesting.
3
and I'm still waiting for a phone call from Monday's "interview"
I wonder if companies really act when they can see that people can code well, be it SO, CR, open source project, etc.
careers.stackoverflow.com
@Mat'sMug we are firefighters, what do you expect?
18:58
@skiwi Based on my recent experience in job hunting, I'd say ~5-10% do. Although that's a fairly small number, I don't view it negatively: it's a decent screening process for finding a place to work that honestly cares about coding ability.
I build the fires .... ;-)
my Resume will say "putting out fires regularly" as the catchphrase at the top, whatever that is called
it's my fault, I converted the concatenated SQL query to a parameterized one (using my automagical SqlCommand class) and the table was expecting a varchar when the rest of the app had that value as an int.. I missed the single quotes from the original query when I "translated" the command string. CStr(theValue) fixed it.
@Mat'sMug good catch
@Mat'sMug can you Concatenate with "+" in VB? A String I mean
...and of course nobody had asked me to convert concatenated SQL queries into parameterized ones - but if I don't do it, it's never going to happen!
@Malachi "abc" & "def" should work
19:02
0
Q: vb.net general insert function

renevdkooiI am new to vb.net and one of the functions I wrote is below. The idea behind it is to just send a dictionary and table name to the function and get the result i din return. Is this good practice or just silly? Public Function dbInsert(ByRef EntryDetails As Dictionary(Of String, String),ByRe...

"abc"+"def" works too
I find & less ambiguous in VB6, but in .net I'm leaning more towards the C#-esque "+" concatenation. Although string.Contat is the ultimate way to go (safer, will throw exception if any arg is null).. but it always depends on the circumstances
so it is correct in vb.net
should be, yeah
Java is the right thing / correct thing .... just being facetious
@rolfl wut?
19:06
That's what.
"C#"+"Java" throws MakeUpYourMindException
ugh. I need to review some code.
See my 1-liner review?
+1'd.
ta ... it was a proof-of-concept, related to your meta post...
Thought you should at least be aware of it: meta.codereview.stackexchange.com/questions/1583/…
0
Q: Code runs too slowly (2-5 minutes)

James WilsonSome background. I am building a new system that is using some tables from an old system. so for each user on this new system I need to go to the old system and total up their sales. Currently it takes between 2-5 minutes to load. public static List<DailyTeamGoal> GetListDailyTeamGoals(int te...

0
Q: Is there a more elegant solution than this spaghetti code without completely revamping the whole page?

Matthew JohnsonI use 'GROUP_CONCAT' to get comma separated lists of a person's educational background. Included in those lists are the type of degree, major, issuing establishment, and year received. degreeType is a required field and cannot empty. Prior to looping, I split the lists into arrays, like so: $...

19:19
@StackExchange uh, yeah, stuff the spaghetti into a blender, you'll get an elegant soup.
19:34
(+1 anyway)
Every time I see GROUP_CONCAT, I die a little inside.
New user needs welcoming votes:
@200_success napalm'd
"use a profiler" they say... yeah, but Do you really need to select, sort and materialize all orders just to sum up OrderTotal? - I think I've solved a performance issue, without a profiler ;)
aaaah, see? having a better day already! Yay CR!
5-days old user has a cool avatar and just answered the GROUP_CONCAT question:
Yoda, Czech Republic
373 5

« first day (354 days earlier)      last day (3962 days later) »