HackerTrans
TopNewTrendsCommentsPastAskShowJobs

niftich

no profile record

comments

niftich
·8 lat temu·discuss
JSON-LD is a significant cognitive leap to reason about [1], and its descriptive power goes beyond what you could do with XML. A JSON-LD document is effectively an RDF document coupled with a JSON document, in a seemingly human-friendly form, although lots of people will recognize the letters but have no clue what they're reading.

For that matter, link relations too are a cognitive leap, and no one writes 'smart REST clients' anyway: these days, to consume a "REST API" you use the first-party official library, or something you found on github, or something you wrote in 3 hours where all the URLs are formed by string concatenation. Within one vendor's one particular REST API, the benefits of HATEOAS are typically minimal, which is why it's so frequently omitted and no one complains except REST pedants.

It also doesn't help that the field still hasn't settled down in ~10 years: JSON Schema, widely used for JSON schemas due to the lack of an official mechanism, recently decided they wanna get into hypermedia too [2], and there's also the enticingly named JSON API, which offers a similar data model too. And let's not forget about stuff ~2011-2013 like HAL [3], which didn't really become big, but never fully went away.

Swagger is absolutely much the new WSDL/SOAP ecosystem, complete with first-party code generators. In the WSDL days, all of your code generators were third-party, and due to enough knobs in WSDL and enough accumulated design baggage, it wasn't always interoperable [4]. But when it was, it was pretty magical for ~2003.

Swagger had clout and name recognition to kill the other schemes that are largely the same, but then they renamed it OpenAPI to play up the consensus against competing codegen/specs like RAML. Now that Mulesoft has agreed to bring RAML under the OpenAPI umbrella, there's less integrated competition, but then OpenAPI's uptake will be limited by those put off by serious tooling who opt for simpler description languages instead. It's a mess.

[1] https://www.w3.org/2013/dwbp/wiki/RDF_AND_JSON-LD_UseCases [2] http://json-schema.org/specification.html [3] http://stateless.co/hal_specification.html [4] https://blogs.msdn.microsoft.com/dotnetinterop/2005/01/17/ne...
niftich
·9 lat temu·discuss
A month ago on the thread about AWS opening up a region in Sweden, a discussion ensued [1] about the lack of major cloud provider datacenters in Africa.

I wrote [2] that a good site in Africa would be challenging, because one would have to "pick a spot touched by more than one thick pipe, in jurisdiction known for political and civic stability and a regime with rough compatibility to the ideology and national security apparatus of western allies -- their home base and primary source of customers; receptive and promoting of foreign investment, and having access to multiple reliable, redundant power sources from which to draw energy."

While South Africa ranks high on stability and ideological compatibility, and reasonably on fiber [3], my understanding was that reliable and redundant utility power supply is a significant issue [4][5]. I'd be curious to see whether co-generation will be used to overcome these limitations.

[1] https://news.ycombinator.com/item?id=14031565 [2] https://news.ycombinator.com/item?id=14035251 [3] https://upload.wikimedia.org/wikipedia/commons/d/d4/Cable_ma... [4] http://www.fin24.com/Economy/SA-fears-dark-days-ahead-as-pow... [4] http://www.aljazeera.com/indepth/features/2015/03/crippling-... [5] http://www.aljazeera.com/indepth/features/2015/03/crippling-...
niftich
·10 lat temu·discuss
I forgot that with Prime you get free unlimited photo storage (a lookalike of the $12/year tier) until a sibling comment on the OP.

Since then I've done bursts of uploading with rclone from two different networks, first a slower one, and then a faster one. Amazon throttles you pretty aggressively, and rclone occasionally just appears to pause indefinitely (on Win64) as it's waiting for the pacer or a response. It's a bit annoying and confusing and I'm not sure how to proceed other than to kill the process.

Luckily it's nondestructive to just start it again with the same args. Though low-tech, a wrapper script around it could automate that away too.
niftich
·10 lat temu·discuss
Arguably the most distinguishing benefit is transparent en-/decryption of the contents of your sync-set, such that the cloud copy is always encrypted by your key that's only available at your endpoints --- this is unrelated to being encrypted with a vendor-controlled key.

EDIT: Also, most 'official' cloud drive clients place a folder into your homedir, like ~/Google Drive or ~/OneDrive or ~/Box Sync. Only files placed into these folders get synced up and down. This client allows arbitrary local paths to be synced up or down.
niftich
·10 lat temu·discuss
Great summary. The 'don't roll your own crypto' argument is mostly just shorthand to 'defer to the opinion of experts, use ready-made constructs when possible, and if not, then exercise caution when hooking crypto primitives together in unproven ways'. djb is without a doubt a crypto expert and his NaCl library provides sane defaults and good interfaces for implementing crypto in your application.

The other relevant tptacek post is 'Cryptographic Right Answers' [1], which suggests using the NaCl default for encrypting (ie. Secretbox [2][3]), so the rclone author is deferring entirely to NaCl for crypto, as it's recommended.

[1] https://gist.github.com/tqbf/be58d2d39690c3b366ad

[2] https://godoc.org/golang.org/x/crypto/nacl/secretbox

[3] https://nacl.cr.yp.to/secretbox.html
niftich
·10 lat temu·discuss
This fills a real need for me. It does nearly everything I want.

Aside from the program itself, your documentation is really good, and special +1 for documenting the crypto thoroughly (and another +1 for using NaCl's building blocks in a safe way).

As a related point, I recently bought a Chromebook (still unopened), which pushes you heavily towards storing your files in Google Drive. It makes me uneasy to store certain things unencrypted, so I'll investigate writing a compatible implementation for ChromeOS.
niftich
·10 lat temu·discuss
Along this point, C# and VB.NET have SQL-like expressions that can be used for processing, called LINQ [1]. They even get the order of the clauses correct!

A feature like this may help your programmers who are used to thinking in terms of filter -> select -> order.

[1] https://msdn.microsoft.com/en-us/library/bb397927.aspx