Go Challenge 3: write a photo-mosaic generating web application(golang-challenge.com) |
Go Challenge 3: write a photo-mosaic generating web application(golang-challenge.com) |
Seems like quite a bit of work for the chance of winning a bunch of ebooks.
> 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.
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.
> Seems like quite a bit of work
That's why it's called a challenge.
I think the last challenge sounded more difficult because the problem was much more unique.
This challenge is more practical because you will be doing very common things like consuming REST APIs, writing HTTP handlers, routing, templating, optional database, etc. Most of this is doable by importing net/http and html/template and reading some basic tutorials [1].
Edit: Oh, and on top of all that, it's supposed to be deployed on a server... Seriously, screw that, I'm not paying hosting costs for a crappy contest like this.
That's a little strong, it says: "You need to write test cases for the main flow. Do submit your test case file. You can use a useful tool goconvey - use its UI without using their DSL. GoConvey supports Go's native testing package." (My emphasis).
It is odd to demand only using the standard lib, and at the same time call out a tool as a replacement(?)/augmentation to "go test" -- but the challenge also mentions other external services and tools.
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.