I hope the author reconsiders their custom license that prevents any public forks of the code base. It's already very hard to get anything out of non-standard monoliths like this, with a custom license that chance drops close to zero.
1,672 karma · joined May 30, 2011
I hope the author reconsiders their custom license that prevents any public forks of the code base. It's already very hard to get anything out of non-standard monoliths like this, with a custom license that chance drops close to zero.
Do you know what sort of graph solution Blaze uses to handle 2 orders of magnitude more code, ie. manage 100's of millions of lines of code? I always assumed it was a distributed graph database, but your article seems to indicate something else.
- Easy to see the changes an author makes over time to a review
- Integrates with the Package and Ownership system to automatically assign reviewers
- Easy work on changes that touch many files
- Inline lint and code coverage results
- Built in display of unit test and CI results and overall coverage %
- Draft mode to delay review until tests & lint are clean
- Comments move properly as you make changes
- Easy to mark comments as done and find outstanding ones
- Comment on multiple lines instead of a single one
Things that are missing:
- No ability to comment on single characters
- Cannot mark certain files as important
- No way to explicitly mark a change as "simple" (like a rename)
- No web UI to make quick fixes (compared to GitHub is what is most missed)
The other question I have is about the stability of docker itself at scale. I worry about the reliability of essentially developer/server tooling in an embedded space where there is no ops team to help it along. Have you had any issues?
It’s not all about money of course, and if you can run your own place you can probably get into into a tier 1 tech company.
In the end though, don’t worry the managers will get their reports and everyone will at least have there feature box checked (assume you don’t care about Markdown).
struct S {
int x;
struct Foo {
int i;
int j;
int a[3];
} b;
};
S s1 = { 1, { 2, 3, {4, 5, 6} } };
0 - https://en.cppreference.com/w/cpp/language/aggregate_initial...- Has nice Python based DSL
- Strongly encourages 100% explicit dependency specification
- Has built in caching (local and remote)
- Built in test result caching
- a fully featured build graph query language
- Built in distributed execution support (for any build step)
- All work scales by part of tree you are building not it’s absolute size
- Support for fetching external source code and binary deps
- Has first class support for executing and testing containers
- Has first class support for code gen (ie you can build a compiler use it to generate code, then build its output,and everything works, no hacks in one build system)
The downsides:
- Works best if you all your code is built with Bazel, which makes deps hard
- Support for Python is weak, Ruby non existent, and Node is beta quality
- Has essentially zero convention, everything must be explicitly configured (ie explicitly describing go deps)
- Has a memory hungry local java daemon
- Has a more overhead than ninja (but is more accurate because of hashing and isolation)
At a high level Google is open sourcing things that have genuine value, but also make integration with their money making services easier.
There is a group such as your self that value the extra context the type provides. I think the counter to is that modern tooling can provide this information to you. To split the difference you can use auto just where the type is redundant, like with make_shared, or verbose and unneeded, like with iterators.
If you have an issue tracking or code review system you customize it so you can do "go/T123" and go to issue "T123". Or for common apps you can put in place simple patterns like "go/foo/id" and it opens that application to looking at that id.