959 karma · joined April 28, 2017
Perhaps we could eliminate both problems, by handling authentication outside of the browser, and then injecting an auth cookie into a new browser tab?
1. `curl site.com/login` to get the login form as HTML
2. Extract the form submission URL and the name of the user/pass fields
3. Pipe a key from Vault, to a URL encoded HTTPS POST request (curl again)
4. Receive the resulting session cookie and the login-success URL from the login response
5. Insert or replace this cookie into Firefox's jar
6. Open a new browser tab to the login-success URL
This way, the browser never sees the password, and the clipboard never holds it. The session cookie is still just as vulnerable as ever, but is of a lower value, assuming that it alone does not grant the ability to change the user's password or PW recovery email address. The entire sequence could be scripted into an `authenticate my-user@site.com` command, which would depend on a connected Vault client (or some other backend scheme). I have no idea if this would work on mobile operating systems, it might not be possible to write to the FF cookie jar from another app.Right now, I have everything in Keepass, and no good way to synchronize that between devices. Merging key repos is a royal pain, but mainly, I don't like the idea of trusting everything to an organization that I can't hold accountable. Running my own service on a generic tiny EC2 cluster feels like an improvement, although I would still worry a little about the virtual neighbors.
The report recommended jumping clear, and then using this hopping escape strategy. It did not recommend or countermand moving the vehicle to break a potential circuit; I guess that situation is too complicated for a blanket policy.
If ORY was a full stack content editing service, rather than just a client with a demo server, then you could still run it unmodified, making it easy to share the source (just link to the official repo). Your other services could either operate on the data being saved by ORY-service, or communicate with it via an HTTP API (whose implementation would be an open component of the ORY-service). But once again, your own software would not fall under the AGPL, because they do not extend, or trivially wrap, ORY.
The only way an AGPL license would force a user of ORY to share their own code, would be if they forked ORY and extended its own codebase, or wrapped it in a trivial adaptor for some framework or platform, e.g. a Wordpress plugin.
IANAL, and the AGPL is a long read, but I do feel like I understood it, and could use this alongside closed-source services.
Contrast that with a system of map-filter-reduce pipelines over an append-only data set, like a classic CouchDB. A reasonable pipeline can be composed by a junior dev, just by repeatedly asking "What do I want this report to summarize? What information do I need to collect or reject, for that summary? How can I transform the shape of the information that is currently in front of me, into the input that I wanted when I planned the high-level end result?" And, if they need help with that last part, then at least they are asking for help with a small subset of the problem, instead of "Something is wrong in this forest of queries, can you take a look at it with me?" Or, "I need to add a column, may I ALTER TABLE?" They can even prototype the whole thing on an array in Javascript, if they are more comfortable there.
SQL can be a beautiful language that feels very natural, once you have had a few years to build up fluency in it. It might make for an excellent shell language. But, having spent time prototyping systems in CouchDB (which were admired for their elegance, but rejected due to the relative obscurity of Couch, grrr!), I have to say, that my previous bias for querying over transforming, was ultimately holding me back, bogging me down in leaky abstractions. We should have started with MR, and then learned SQL only when presented with something that doesn't fit the MR paradigm, or even the graph processing paradigm, which IMO is also simpler than SQL.
As for the original subject, yes, Hadoop is a pig, ideally suited to enterprisey make-work projects. All the way through the book, I kept thinking, "there has got to be a simpler way to set this up."
We might become a species that undergoes metamorphosis from a carbon based body to a silicon based body. How much of a caterpillar remains in a butterfly, when it emerges/ascends?
It is a rack of tensor processing units. https://cloudplatform.googleblog.com/2016/05/Google-supercha...
When your client and server are both running the exact same UI code, then keeping the server rendered HTML in sync with the initial state of the client side DOM, is just a matter of keeping the application state in sync. That is done be serializing it into the response and then reading it from the client side app during init.
But, if the server is using an entirely different codebase to render HTML, then it would take heroic automation to keep that in sync with what the client expects. Better to just use a different type of client side framework, in that case, I guess; seeing React clients backed by servers that are written in neither JS nor compile-to-JS languages is another surprise.
Just curious, how does a PHP application handle server side rendering? By shelling out to a headless browser? What if the content is so personalized that server side caching isn't helpful, is it still viable to SSR a React client?
There are some extra perks to a good co-working space, though. It is library-quiet, and you are surrounded by people who are living and working a similar plan. I was actually able to informally recruit a guy who often worked near me, when we needed to bang out a bunch of UI components and their services, for a design that the client and I had already detailed fairly well.
It is different for Americans, though, they are on the hook for income tax regardless of where in the world they reside.
If you and your SO are a developers, then I would highly recommend a work-cation in Prague. I spent a few weeks at a really cool co-working space, PaperHub, which was part of the Institute of Cryptanarchy (lol). They take BTC for everything, the transit system is a dream, and there are tiny little specialist grocery stores everywhere. If I was ever going to return to the same place twice, it would be Prague.
Beware of burnout, though - there is no rest in this lifestyle. The home office wants me online during their business day, and constantly learning new cultures is a huge cognitive load. After two years of this, I needed to settle down for a while; right now I am resting between jobs, thanks to a very supportive mother. Oh, make sure to take good care of your parents, they may end up being the only solid, reliable people in your life.
"underprivileged" is a term we use around here, and the social systems do seem to have a sensible set of filters for it: low household income, mental illness or physical disability, lack of formal education, refugee status, etc. The good thing about a label like "underprivileged", is that a person can truly overcome it and put it behind them. It does not have to be a part of their cultural identity, it is just an environmental problem to be solved.
How does one build and maintain a co-op? Could anyone recommend a book on the subject, that covers a variety of nations or regions?
At one point, I built a sortable filterable table for an admin UI, using React. One of the admins was a "no js" guy, and he thanked me for building the whole thing in functional HTML. Up until that point, I had no idea that the admin side of the system was even usable without JS; that was just a natural consequence of optimizing for SEO and load speed (server side rendering, URL representation for all significant state).
It would be really interesting to compare the economics of shipping large volumes of fuel around moon system, to shipping them around a relatively tiny ocean.