News for hackers. Stuff that matters.

bcongdon

Re:Solving the “Miracle Sudoku” in Prolog on Monday May 25, 2020 @01:52PM (#23303164)
Thanks! This comment was super helpful. :) I made a couple updates to the post with these findings.

I suspected something like the `ff` labeling approach would improve the solution, but I had no idea how much of a difference `all_different` made vs. `all_distinct`!

Re:Ask HN: What is your blog and why should I read it? on Tuesday April 07, 2020 @02:16PM (#22805880)
https://benjamincongdon.me/blog

I like to write about productivity, Go/Rust, and my various web development projects. I also tend to write pretty frequently about programming language ergonomics.

Popular posts:

* https://benjamincongdon.me/blog/2019/11/11/The-Value-in-Gos-...

* https://benjamincongdon.me/blog/2018/03/23/Python-Idioms-in-...

* https://benjamincongdon.me/blog/2018/03/01/Scraping-the-Web-...

Favorite posts:

* https://benjamincongdon.me/blog/2019/03/07/Generative-Doodli...

* https://benjamincongdon.me/blog/2018/10/07/Wordscapes/

---

I also have a blogroll of other blogs I think are interesting: https://benjamincongdon.me/blogroll

... and a list of books that I've read: https://benjamincongdon.me/books

Pricing depends a lot on how much memory your job requires[1] and how much processing each record requires -- i.e. the pricing is more sensitive to usage.

As a very rough estimate, for a light-to-medium load of 1Tb, the cost would probably be in the ballpark of ~$0.50. AWS's own reference MR framework[2] (which is mostly a tech demo) quotes prices in a similar order of magnitude.

Corral isn't great for processing-heavy MR jobs, as Lambda pricing rises quickly if you need a lot of memory or take a lot of time with each record. But, for small-ish low-overhead jobs, it can pretty easily beat the pricing and hassle of using something like EMR.

[1]: https://aws.amazon.com/lambda/pricing/#Lambda_pricing_detail... [2]: https://github.com/awslabs/lambda-refarch-mapreduce/

Yeah, max execution time (and max memory usage) are the main constraints of using Lambda.

Corral deals with this by splitting input data into small enough chunks that each chunk can be processed within the timeout -- I exposed options for setting the amount of data that each Lambda function has to process. However, if each data item requires more than 5 min of processing, then corral won't work for you.

The "driver" that coordinates the Lambda functions runs locally (not in Lambda), so it doesn't have this constraint.

Hi HN, author here. Corral is my attempt at a performant, easy-to-deploy MapReduce. Unlike traditional frameworks like Hadoop, it uses AWS Lambda for execution and is “serverless” as a result. It was initially kicked-off by AWS adding Lambda support for Go, but draws on experience I’ve had using Lambda tools like Zappa[1] and Serverless[2] in the past.

I think there’s a lot of interesting applications for using function-as-a-service platforms as executors in data processing frameworks such as this.

If you’re interested more in the development/internals of this project, I wrote a blog post with more details: https://benjamincongdon.me/blog/2018/05/02/Introducing-Corra...

[1]: https://github.com/Miserlou/Zappa [2]: https://serverless.com/

Re:Notice of Data Breach on Thursday March 29, 2018 @06:14PM (#16711591)
The iOS app has been pretty good (if a bit buggy and slow), but the desktop web interface is so bad to the point that I haven't used it in over a year -- and I use myfitnesspal daily.
Re:Ask HN: What did you work on in 2017? on Sunday December 31, 2017 @07:22PM (#16043844)
This is so cool! I've been following Inconvergent's work (https://twitter.com/inconvergent). This seems like something I might be interested in.

Thanks for sharing!

Cool! I've been looking for something that does just this
Unfortunate that this doesn't apply to "The Pragmatic Programmer". Still, very cool show of support against DRM.
Hi HN,

This is a project I've been working on for a while now. It's a hobby horse to try new technologies, but I've really enjoyed working on it.

I'm a fan of the GamesDoneQuick (gamesdonequick.com) speedrun marathon that pops up to the top of Twitch twice a year. Inspired by previous sites that have done visualizations like this, I decided to take a crack at realtime stats last year.

This is the current iteration of GDQStatus, which is powered by React + Recharts and AWS Lambda.

The site itself is static - which is hosted in Github pages, and data is fetched from S3 (as a caching layer) with hot data served by a Lambda.

Let me know if you have any questions!