Any more from Google <your country here>?
57 karma · joined March 28, 2015
[ my public key: https://keybase.io/hakvroot; my proof: https://keybase.io/hakvroot/sigs/aVnt0zlvCCiaQOa7syC5IIVpdAu41PQ3uzIoFaBeLJ8 ]
Any more from Google <your country here>?
For any other versions or source releases I'll post an update!
On another note, I'd encourage you to write a streaming download service. Compared to file uploading - storing - downloading I found it fun to do but also quite non-trivial to accomplish. I am planning to have another go at it myself, but with a different language (Go, Pony or Elixir). When run alongside of each other with the same UI/frontend/api it would make a nice benchmarking mechanism :).
The backend is written in Java(8) and it is built with the following (noteworthy) components :
Netty[1] - Extremely fast and stable Java networking framework,
serves static files and relays traffic
(both tasks are custom implementations)
Guice[2] - IoC container by Google, nice for keeping the code clean
jOOQ[3] - I log some statistics in PostgreSQL
(file size, content type, transfer time - but no filenames).
If you're comfortable with SQL jOOQ is a real breeze to use.
The backend is hosted on the cheapest VM option at Digital Ocean (Amsterdam region), (which seems to be holding up pretty well so far :). I do run PostgreSQL on another $5 VM, so the Station307 server only has to worry about serving static content and moving large chunks of bytes around. SSL certificates are kindly provided by Let's Encrypt[4].For the frontend, I know for a fact it uses left-pad (babel-core)... Written in JavaScript (ES2015 + JSX) and built with :
Mithril[5] - Fast, small and simple React-like framework, quite a joy to use.
Bootstrap[6] - Because not having to worry about L&F is quite nice.
Trimmed it down a bit by only importing the parts I needed (SCSS).
And I think that's about it. If there's anything else you'd like to know, let me know! [1] http://netty.io
[2] https://github.com/google/guice
[3] http://www.jooq.org
[4] https://letsencrypt.org
[5] http://mithril.js.org
[6] https://getbootstrap.com
edit: formatting D:If there are any (more) questions on the what or how, I'm happy to answer them. The day here is however coming to an end so it might take me a couple of hours. While I'm gone, please be aware that the service is running on a $5/month VM ;).
An interesting difference is that in the browser the rePOSTing is done through scripting whereas when using cURL or Wget (or httpie, or ...) the server will issue a 307 Temporary Redirect allowing cURL/Wget to send the file again without manual intervention. Hence the name! (although that doesn't really account for the "Station" part yet)
Simple file sharing between devices that don't have to be in the same network. Awesome because it (should :o) work on pretty much any device with a somewhat recent browser.
Given the sheer amount of work for one piece, with The Three Graeae appearing to be around 1000 lines of code, I'm also quite amazed he managed to produce seven. Brilliant, and Art indeed.