350 karma · joined August 7, 2012
Founder: Permanent.Company https://permanent.company/ https://permanent.cloud/ @PermanentCPU
Permanent.Cloud is the personal cloud platform. We're building out https://Permanent.Cloud/Apps to be the best place to discover and collaborate on free cloud web apps and the open source projects behind them.
Now, you can also "Install" all of them, making Permanent.Cloud the easiest place for team leads to quickly spin up a WordPress blog, Discourse forum, Mattermost team chat, GitLab, JIRA, Cloud Bitcoin miner, etc. (any Docker container) with the click of a button.
We bill a fair fee each month based on usage, which you can easily put a cap on.
Buzzwords: TypeScript, koa, PostgreSQL, universal React, Kubernetes, AWS, Terraform
Looking to grow team and sustainability.
Also interested in what open source apps you and your startup are loving these days. e.g. GitLab w/ CI and Auto Devops is really making my life easy. Jenkins is always a winner too. What open source tools are you using every day? Which tools and apps should be in the 'starter pack' that every team can install on day one with one click?
ben@permanent.company
In practice, I think that an GraphQL API is still a form of REST.
People hate on REST when they should be hating on the bad instances of things that others made and said 'But it's REST!', regardless of whether it was or wasn't or that person had RTFM https://www.ics.uci.edu/~fielding/pubs/dissertation/fielding...
It's also relevant to the part of the book I'm reading now, which I highly recommend to anyone interested in QED, Electromagnetism, or even just Computer Science.
"The Emperor's New Mind" by Roger Penrose (1989) - http://en.wikipedia.org/wiki/The_Emperor%27s_New_Mind
and also GO FANOUT
Examples:
* "Class" syntax
* Comprehensions
* Modules
* `let` scoping
* Generators
It's a whole new ball game.I think a lot (over 50%) of JavaScript devs 5 years from now will still be using <= ES5, but only because they've so settled in their ways over the last 10 years.
$> diff <(node --v8-options | grep harmony) <(./iojs --v8-options | grep harmony)
1,6c1,18
< --harmony_typeof (enable harmony semantics for typeof)
< --harmony_scoping (enable harmony block scoping)
< --harmony_modules (enable harmony modules (implies block scoping))
< --harmony_proxies (enable harmony proxies)
< --harmony_collections (enable harmony collections (sets, maps, and weak maps))
< --harmony (enable all harmony features (except typeof))
---
> --es_staging (enable all completed harmony features)
> --harmony (enable all completed harmony features)
> --harmony_shipping (enable all shipped harmony fetaures)
> --harmony_modules (enable "harmony modules (implies block scoping)" (in progress))
> --harmony_arrays (enable "harmony array methods" (in progress))
> --harmony_array_includes (enable "harmony Array.prototype.includes" (in progress))
> --harmony_regexps (enable "harmony regular expression extensions" (in progress))
> --harmony_arrow_functions (enable "harmony arrow functions" (in progress))
> --harmony_proxies (enable "harmony proxies" (in progress))
> --harmony_sloppy (enable "harmony features in sloppy mode" (in progress))
> --harmony_unicode (enable "harmony unicode escapes" (in progress))
> --harmony_tostring (enable "harmony toString")
> --harmony_numeric_literals (enable "harmony numeric literals")
> --harmony_strings (enable "harmony string methods")
> --harmony_scoping (enable "harmony block scoping")
> --harmony_classes (enable "harmony classes (implies block scoping & object literal extension)")
> --harmony_object_literals (enable "harmony object literal extensions")
> --harmony_templates (enable "harmony template literals")I used to take a lot of pride in 'critical' thought. Certainly I frequently take this attitude toward the things floating around in my head, and I like that.
But I've learned not to do the same for ideas from others, especially in short comments on the internet, where it's basically a given that the other didn't fully express themselves anyway.
'critical' thought isn't all there is. 'constructive' thought is important too; maybe even more important. It's easy to be a critic and find 10 things wrong with another idea. It's harder, riskier, but more rewarding to then prioritize which of those 10 things should be worked out first and in what way.
If someone throws out a half baked idea. You can critique it. Most people stop there. But you can also continue forward and construct on top of it, propose changes, make it better.
I now try now to be not just critical but constructive in most parts of my life.
In my opinion, this is actually one of the only points of accountability for a corporation growing unchecked (which has this many varying complaints against them and some think act like thugs)
I grew up on the web, and the multi-directionality of it as a medium (including blog comments) has set my standards for the way I want to consume information (and interact with it). I don't trust information flowing to me that can't be annotated, corrected, and augmented by the wisdom of the crowd it's reaching.
It's Reuters' perogative to do this, but I think it just makes Reuters.com exactly like Reuters TV, it gives them a lot more control, but they're leaving a lot of opportunity on the table. That's usually what I expect from $30b companies though.
I look forward to having plenty of interactive communities to learn the same stuff on for the rest of humanity, even if Reuters is no longer one of them.
You'll learn a ton in your first job, and you'll have guidance. Don't worry about learning a TON before then.
This will likely be your last chance to do this until you're ready to quit your job or give up on opportunities for larger responsibility at the organization.
1. They're made up of three .-delimited segments: header.data.sig
2. JWT doesn't prescribe any particular sig algorithm. The header indicates by what method the {data} JSON object was signed to get {sig}. A common sig method is hmac-sha
3. JWT only provides a signature to assure that the {data} was not tampered with. The data is not private at all and easily inspected (which is nice for debugging). JWE can provide encryption http://tools.ietf.org/html/draft-ietf-jose-json-web-encrypti...
And for some: "Why is this useful?". It's useful if my API needs to receive requests to do serious business like delete things or post as your account. How do I know if the request is from a trusted source? Well if the trusted source has a secret key they can use to generate the {sig} according to the {data}, then I can verify that the requester had access to the secret key and therefore trusted.
There is also JSON Web Encryption, built on top of JWT, which provides encryption in addition to signatures. https://tools.ietf.org/html/draft-ietf-jose-json-web-encrypt...
http://blog.livefyre.com/say-hello-to-sidenotes/ http://blog.livefyre.com/architecting-sidenotes/ http://docs.livefyre.com/developers/app-integrations/sidenot...
We're eager to get feedback from anyone who tries it out.
for more information: http://web.livefyre.com/jobs
There are also benefits to your psyche. If you invest all at once, the asset value could drop by 50% the next day, and you feel horrible. If you had invested that money over time, your asset would not be 50% of your total investment.
Again, this doesn't actually mean you get more returns. It just reduces the volatility of your returns at any one point in time.
If you would like to get a good overview of strategies like this, read this wiki. http://www.bogleheads.org/wiki/Dollar_cost_averaging