Love to see projects that focus on the "boring" parts of getting infrastructure up and running. Something like this can save a bundle of time. This is a great project with a great team behind it!
HN user
stevvooe
Decent overview, but, remember that when evaluating something, projects change over time. Even better, you can be the change you want to see! Thus far, the grpc project has been fairly responsive in making solid changes, either through PRs or filing issues. ;)
Regarding the complaint about errors, there is already protocol support for structured error handling: https://godoc.org/google.golang.org/grpc/status. https://github.com/grpc/grpc-go/pull/1358 should make this easier to use. In practice, the provided error code set is very good, so give them a try before making things more complex.
Worst case, you can just stuff things in a header or trailer.
Note that I did not say "more granular layers" but more "more granular filesystem representation". This is a key point in achieving better data sharing. In fact, these use cases are not ruled out, but bolstered by OCIs approach. The introduction of alternative systems will be much easier to do when OCI is broadly implemented.
As far as metadata is concerned, your suggestion is exactly what OCI does. The problem with ACI is that it embeds a large part of the metadata into a tar file, which has to be fetched in its entirety. OCI is mostly metadata scaffolding, made up of indexes, manifests and configs that can all be fetched without large bandwidth requirements.
The compositional aspect that you've brought up has been explored and it doesn't make a whole lot of sense to cram that into images. Typically, such a system requires composing container filesystems through named references, allowing components to be independently rebuilt. Because this composition often relies on details of the target deployment media (orchestration system, container runtime, specific operating system, etc.), especially in how it deals with the security of name resolution, baking it into an image format leads to massive inflexibility.
Moving it up the stack works much better and avoid the technical complexities that come with doing it within images. We can see this image composition in action in k8s PODs, docker stacks and other systems. Such constructions can be distributed through OCI images, through media types, but they are based on the compositional capabilities of the target system.
There is no real advantage to a dependency graph versus a list of layers. Originally, Docker images were actually fetched in sequence, similar to the ACI approach, but this blocked parallelization on each subsequent step. What has become OCI uses a list of layers to avoid this bottleneck.
As long as images share layers, network traffic would be the same in either scenario.
Reduced transfers will be achieved by formats that have a more granular filesystem representation. Right now, we are really held back by the continued use of tar, but that is another problem.
AppC has layers[0]. In fact, an ACI is just a layer.
While layers are codified into the OCI specification, the manifest system is flexible and allows for future extension. The main goal of OCI is to provide a specification for what is already widely deployed without introducing too many new concepts.
[0] https://github.com/appc/spec/blob/master/spec/aci.md#image-m...
Disclosure: OCI Maintainer, Docker Employee
Nix has been a very cool project to watch over the years.
You can address part of the problem of picking up extra data in final images by declaring temporary build locations, such as `/var/lib/cache`, as a volume. Anything written to a volume won't be included in the final image.
It seems you are trying hard to find something in my statement with which to refute. I was merely pointing out that the GP's conclusions are probably incomplete, given the data we have on lead.
Most of my previous comments were quite non-committal. For instance, the phrase "lead-soil levels seem to have some negative effect" was cherry-picked for your analysis, and given much stronger meaning than intended. First, let's examine the word choice of "seem". It means "give the impression or sensation of being something or having a particular quality." This modifies the statement, to imply that the data "gives the impression" that there is "some negative effect". This is a much weaker statement than a hypothesis on the effect of lead-soil levels on poverty-stricken neighborhood. Perhaps, that statement would have been more clear if written as, "lead-soil levels seem to have an effect on crime". The implication from the sentence that follows is that the value of "some" is "crime".
It very well could be that lack of political power caused lead-producing activities to be concentrated in low-income neighborhoods. However, the issue at hand is not that lead-soil levels cause poverty; it's that lead-soil levels increase the incidence of crime. This point may not have been clear, as conceded above.
Indeed, correlation does not imply causation, but we know much about the health effects of lead [1] and its impact on decision making. We know that the correlation of crime rates with increasing and decreasing lead-levels, in a variety of situations, throughout many policies and governments, holds. We know both a pathway and have a strong correlation. Dismissing this as happenstance is unwise.
Yes, I do mean areas with high poverty areas or low income.
I am not really suggesting any particular cause of poverty, but lead-soil levels seem to have some negative effect. The more important suggestion is that its not just income disparity, anonymity and juxtaposition of poverty and wealth, if at all, that leads to higher crime rates in cities.
In fact, mixed-income neighborhoods have been linked to better social mobility, but that is getting off-topic.
Not disagreeing outright, but there are studies[1] that link high-poverty areas with higher lead concentrations. There was also an interactive map, some time ago, that showed lead soil levels by zip code and they definitely seemed to match up with more problematic neighborhoods. Clearly, the factors you call out have an influence, but lead seems to be a part of that equation.
[1] http://www.ncbi.nlm.nih.gov/pubmed/22752852
Edit: switched low with high.
Many people carry out fruitful lives in The Nut.
Create a separate ServeMux for your application and let the utilities register to the DefaultServeMux via init (and you can even register your own!). Bind the DefaultServeMux to the debug port (6060) using http.ListenAndServe(debugPort, nil) and bind your app to its port (8080) with http.ListenAndServe(appPort, appMux).
Didn't Nintendo already beat that theme to death?
After following the development of Go for awhile, I've come to idolize Rob Pike's terse, accurate communication style.
You're not way off, but, in this case, it has more to do with the fact that the Cove 2 Octopi are particularly beloved among the Seattle diving community.
That octopus has been at Cove 2 on Alki for years. I got my SCUBA certification there nearly 8 years ago and every greybeard diver raved about this particular octupus. One of the stops on the certification dive was this old, broken sewer line that exposed a cornucopia of marine life, including this huge octopus.
May he/she rest in peace.
Edit: Probably not the same octopus [1] but it made me nostalgic.
[1] http://en.wikipedia.org/wiki/Enteroctopus_dofleini#Lifespan_...
Where does this stand against dropwizard?
real developers who work in teams and have to maintain their codebase a month down the road stay the hell away from it.
As a fake developer, our team has had little issue with code maintenance "a month down the road". I'm not sure what "real" developers" are using but their platitudes must be an effective resource.
It was ambiguous, with the name of the company being the first word of the sentence ;).
IADNAL, but its a matter of risk. If one uses juju in operations scripts to implement proprietary services, do you have to make those scripts available to end users? At what point does your software become "derivative" of juju? This interpretation definitely borders on FUD, buts its easier not to take the risk when other options are available.
Juju is a great project and you guys are way ahead of the game but the AGPL licensing is problematic for proprietary services built on that platform.
Devices emit radiation whether they are using the radio or not. If its burning power, there is an emission, albeit small in comparison and probably hard to detect without specialized instruments.
If the radios are simply on, link layer protocols will be transmitting control signals that can easily be detected with something as simple as a smart phone.
If they can come to my seat and tell me to turn off my device because they detected a source of interference, then I will turn off the device. If they can't or aren't willing to detect the source of interference, the real risk is likely dubious.
Furthermore, avionics equipment should be and is designed to work despite minor external interference. If a consumer electronics device, such as an iPhone or laptop, could drastically effect the operation of avionics equipment, it should not be considered flight worthy. Granted, certification tests probably don't consider such radiation sources, but the risk is so small its likely its not even worth testing.
Agreed that the articles reasoning is weak surrounding the "takin' o'r jerbs!" arguments; the cost of a lousy developer is insurmountable. However, the comparison with H-1B and indentured servitude is what is all to accurate in my personal experience. It's stomach churning to watch an individual, often a friend, be squeezed into an uncomfortable situation by an employer because of the conditions of their visa. H-1B visa's tip too much of the balance in employer/employee negotiations to the employer's favor.
> map[rhubarb]bool is how Go does sets
Actually, you should use map[rhubarb]struct{} since a struct{} requires no storage. You can test membership with this:
_, ok := m[strawberryRhubarb]Actually, I was very relieved it was not.
That explains the dead birds all over RWC.
How does Schneier's abstract not complement Professor Eben Moglen's argument?
stevvooe
I'm not sure. I haven't closely studied the difference between each algorithm. My guess would be that sort -u would perform better as the data set gets larger with a good block size setting because it does do an external sort. Cardinality would also affect the performance. If the unique set handily fits in memory, an external sort on a large data set wouldn't be very efficient.
Sort will actually externally sort blocks into temp files and merge them. Adjusting this block size can help with thrashing.
Awk may still be better for uniquification.