

Go Challenge 3: write a photo-mosaic generating web application - JoeAcchino
http://golang-challenge.com/go-challenge3/

======
a2800276
This challenge seems a bit over the top. The task is to write a fully
functional service for creating a photo mosaic service that accesses third
party apis for sourcing the photos. Constraints are that you are not allowed
to use any libs from outside the include standard library (though you are
expected to write tests using some tool the challenge author is apparently
trying to push)... The whole things has to be deployed and publicly
accessible.

Seems like quite a bit of work for the chance of winning a bunch of ebooks.

~~~
shurcooL
> Create a fully functional web app

> Do not use anything but standard library

Is this a high school homework or a realistic real world challenge? No thanks.

I'd say it's not just a bit over top, but ridiculously over the top. Maybe
it's just me.

~~~
jerf
No, the Go standard library really does have everything you need to do all
this. The only thing that makes me go "Really?" is the actual process of
generating the photo mosaic, but that's just because despite appearances
that's actually a substantial challenge no matter what library support you
have (barring one custom designed for this use case). Technically, yes, the Go
library has what you _need_ to do that, but you'll be writing an awful lot of
image processing code on your own to get even "good" results.

[http://golang.org/pkg/image/](http://golang.org/pkg/image/)

I also find it amusing that you are "banned" from "ghosting" (putting a faint
copy of the image below the mosaic), as that would actually require additional
code to implement, and, again, even more so to do _well_...

Everything else is definitely present out-of-the-box. This is a absurdly large
task for a "challenge", IMHO, but it's all perfectly doable out-of-the-box.

~~~
4ydx
Granted I haven't written my own mosaic generator, but it seems little more
than iteration and averages.

~~~
jerf
If you make the pictures really small relative to the mosiac, to the point
that pictures are very nearly just pixels, yes, that works.

However, the next time you see a professionally-done photomosaic, take a
moment and really look at it. Especially look at the sharp lines of contrast
in the original image. If the mosaic draws from a large source of images,
you'll find that you can follow the line through the source images themselves,
not just between images. For instance, if you've got a sharp horizontal
beige/blue line, you will find that the algorithm will pick up an image of a
sunny desert day or something where the line for the horizon is approximately
correct.

To do a quality job requires at least edge detection and some fuzzy matching
of the primary edges of images, which also means you need to break the image
down into more than just averages, you need to be counting the colors of
segments of the images.

Nothing impossible about this, of course, it's just that it's an awful lot of
work for a challenge like this, considering the stakes.

~~~
4ydx
I am probably missing something, but I would think that treating each sub-
image as its own grid would be more than enough for a decent mosaic generator.
It seems to me you would get your edge detection for free this way. I just
don't think it would be hard, but, again, I haven't done it myself so I'm sure
there are surprises within.

------
iDemonix
This seems more like creating an entire service from start-to-finish rather
than an exercise on learning a language. I appreciate the authors are likely
trying to do this because the exercise touches on so many different areas, but
personally I'd be put off by this, when learning it's always more enticing to
go for bite-size challenges, so you can see progress easier and create
milestones/goals.

------
yodsanklai
How long do you think this would take for someone already familiar with the
language and web app development?

~~~
wtf_is_up
Maybe a week, give or take a couple days, depending on how familiar you are
with facebook API.

------
mrits
The challenge seems really boring to me.

------
4ydx
Two of the three examples seem to use ghosting. I wonder how much those sites
make?

------
dharma1
ahh.. was hoping it'd be a stitching/mosaicing app

