Yeah, I guess I see what you are trying to say. I just want to clarify when I say predictable, I mean that given a set of operations. No matter the order they come in, the results will be the same. This makes OT powerful in that everyone just needs the operations eventually in order to have a consistent document. The only middle ground that I could see that would allow predictability in the document, and help mitigate these silent errors would be to notify users of when they have both edited the same range before consistency was reached. This would catch "almost" any case that I think you are talking about, although would of course miss the situations in which semantic errors arise due to errors in very different parts of the document(e.g. referencing a figure 2.1, while someone changes that figure to 2.2), but these errors can still easily arise with a single editor, and so are not really unique to OT. I do think that it would be nice to have a solution to that problem though...
I would expect that if an editor makes a change, their change should be preserved. There is no general case where you can decide which edit to keep, because in some cases(like the one you presented) people are editing the exact same sentence, but far more often people will not make edits to the same small part at the same time(at least in the real world). This makes OT very practical since generally the eventual consistency can be reached quickly, and there is consistency, so the results with given inputs are predictable.
This is cool! I've been working on something similar in Go, but I haven't spent much time on it recently. Is this a purely front-end application, or is there a server associated with it?
Regardless of whether or not they are legally in the right, this is a definite dark-pattern. Users should not exist on your site unless they signed up. Full stop. This shouldn't be a question of whether they should allow users to delete themselves, but rather why they are creating users for people who don't even know about the service.
At the last company I worked at, one of the first things they told us was,"you must take these certain breaks at approximately certain times in the day". The timing didn't have to be exact, but this approach allowed people to take breaks in a more informal manner(they could adjust an hour or so in either direction), but kept compliance with regulations. I think this approach allows the employers to be somewhat informal about breaks, without opening themselves to lawsuits.
The insert is still an N operation since N in this case is the number of nodes in the list. It would only be O(1) if the list was of constant size(and even that would be misleading). The worst case is still infinity, because you are concerned with a single insert operation, and not that there are some making progress. We are merely concerned with the progress that a given insert operation makes, and there could potentially be an infinite loop. You can reduce the probability of this happening by shortening the loop between repeating the CAS operation.
Otherwise I think it would be awesome to see profiling results, I suspect that the garbage collection time can be reduced significantly. I have recently been implementing a locking thread-safe queue, and I think it would be interesting to compare the differences in speed and garbage produced, just to get a better idea of the pros and cons. I suspect if you shortened the retry loop you have, your implementation would be faster.
When I said flawed, I meant that it was not really enforcing order on insertion, but for many applications, this doesn't matter that much. Close enough is often good enough(and the probability of this going wrong is fairly small, except in extreme cases).
These queues are thread safe and lock-free, but they are far from efficient. My biggest issue here is that the runtime evaluations are wrong. The insert operation is definitely an average runtime of N (where N is the number of elements in the queue) and a worst case of infinity(since the insert operation is restarted if a race condition occurs, an insert operation could be repeated forever). I don't know if I missed anything, so I could be wrong, but this implementation seems incredibly flawed.
That said, it is always nice to see new data-structures and I really wish there were more posts like this. I always like to see the different ways that people try to solve these problems.
I've never heard this, could you provide some sort of evidence of this? I was always under the impression that warranties were purely manufacturer defined and could be voided for any reason the manufacturer stated up front.
Look, I understand you may not understand what it is like having ADHD, but your post came off incredibly dismissive. Telling a person with ADHD to "just focus" can be like telling a person in a wheelchair to "go for a run": it is incredibly frustrating to hear and can be nearly impossible. This may be a hard concept for you to get your head around, but this is a real problem for some people and medication is a real(and often necessary) solution to a real problem.
I think you are being a bit dismissive of what is a widely accepted mental disability[1][2][3][4][5]. If you want to spout some nonsense about how you feel about the field, that's fine, but note that you are falling into the same category of people that don't believe in climate change because winter was "pretty cold". It just so turns out that the world is not all about you, and while it may be difficult to understand that this may be a real issue for some people, you shouldn't say that this is a substance abuse problem. To say that is at the very least ignorant.
If you use vagrant heavily, you are almost forced to use packer at one point. There are certain things you simply have to put into a base image and packer is the best way to do that. However, I will say the support for vagrant seems fairly responsive, while packer seems basically unsupported.
The first few chapters have some really good lessons in them. It isn't really, in my opinion, a great book to read all the way through, but the little stories in the margins are well worth reading.
For programming, "Game Coding Complete" by Mike McShaffry and David Graham. The book gave a very nice intro to a number of design considerations and given that McShaffry did a decent amount of game programming in the early days of programming, there are discussions of how they dealt with incredible design constraints. The book served as a good introduction to thinking about performance and size of the software that I build today. The book introduced me to concepts like how hardware could introduce unexpected performance changes. I honestly don't do much game programming at all, but it was a very nice introduction to some otherwise difficult topics. I think that even some experienced developers could get something out of that book.
At any responsible business with 100+ employees, third party software often passes through legal if it doesn't adhere to a pre-existing license(apache, mit, etc.). I think it wouldn't be correct to assume that there are only a few people concerned with licenses, especially because no license means all rights reserved, and you guys are pretty close to "no license". There are excellent licenses to choose from, and some already seem to fit your needs(as you describe them).
On another note, I personally see a license as one of many signs of product maturity. If there is a well established license in place, then that tells me the product is likely pretty stable and this along with other factors helps me determine if I should make the time investment to try and use that product. I think the issue here isn't whether your current users are having any problems with your license, but rather there are likely potential users who haven't even touched it because of the license. Having an explicit license is very helpful in the long run.
The long answer: It depends on what your biggest constraint is. If your biggest constraint is server cost, then I would suggest C++. C++ has come a long way in terms of web services, and if you are doing both image processing and machine learning, then C++ will give you unparalleled performance and access to libraries. However, if your primary constraint is developer hours, then python is the way to go. You won't have the same explicit control, but for OpenCV and Machine Learning, Python has excellent support and you will end up having much more concise, readable code.
I understand that there was a specific intention in using the term lightweight, but the proper term would have been small. This is a small language, but it is most certainly not lightweight. There really isn't such thing as a "lightweight language for the JVM" and that isn't the fault of the language, but rather the JVM. Lua, for example, is a lightweight language.
I think(hope) you just chose bad examples there(aside from that community leader one). I feel that the right reaction is to get as much information on what actually happened and act accordingly. If there is actual evidence that such allegations are true, and it sufficiently outweighs the evidence against, then the outrage is well deserved. However, what happens far too often is that people read an article from buzzfeed, gawker, or some shady source and feel that they have gathered all of the necessary information, when in fact the way such an article will portray a situation is not anywhere close to an accurate description of what happened.
I generally am suspicious of any article saying that someone did something super illegal/inappropriate/outrageous if it doesn't provide any real evidence for the allegations. 90% of the time the truth is far less interesting...
I'm not so sure. One of the advantages of these more mainstream languages is the combination of an incredibly large selection of libraries and many people having already made the mistake you will make. This means when you run into an issue, there are already several posts on stack overflow about it, and you move on without issue.
I really like this because by default it gives all of the http headers and makes everything look really nice. Curl still has its place, and I wouldn't dream of replacing it, but I would definitely use this as a sort of command line shortcut. Cool project.
I don't think that rewriting LaTeX is the right route, but rather compiling something else into LaTeX or making a good LaTeX editor(one where you wouldn't actually be writing straight LaTeX). I think a sort of SASS or Coffeescript type language for Latex would be excellent.
Seriously though... The number of researchers who expect us to accept wild claims at face value without releasing data is unbelievable. It should be a prerequisite for most journals since it would help protect the journals from false experiments.
Ok, so this is "decentralized" in the sense that a communication from one client will be sent directly to another client, but you still have to have a centralized discovery method. Correct me if I'm wrong, but doesn't WebRTC already cover the same bases? I think I might be missing what is really new or interesting here.
One of the things that is weird to me is that Javascript is not necessarily the easiest language to learn. With the kind of odd function composition nature of Javascript, I think that Ruby and Python(or maybe Lua) are the much easier languages to learn, and Javascript gets all of the love because it can do front-end development well. I honestly think unless anyone is going for strictly web-development, that they should start with something other than Javascript.
OOP abstracts pieces of functionality into objects, which is closer to how we view the real world. It is often much easier to think about code that has been abstracted into objects, given that good abstractions have been made. This makes code re-usability more well organized. This all breaks down, however, when the task at hand is not well suited to OOP(think data science). If the number of abstractions per amount of code gets to be too great than OOP starts to become somewhat detrimental. In this case Functional would be easier to read and have more efficient abstractions.
Look I get that many people like to make these broad statements about the quality of one model vs the other, when the reality is that they do better for different things. OOP works really well for abstracting and creating easy to read and write code. Functional Programming works much better for data science related tasks. The truth is both are here to stay, and that is a good thing.
Look, I understand that Thiel may have been on a kind of personal vendetta, but I can't really argue that what he has done is wrong. Gawker regularly does what a number of other journalistic outlets do as well, that being: printing these ridiculous and false stories and then some time later printing a correction in fine print at the bottom. There needs to be more accountability for these "journalists" because in some cases they ruin others' lives and act as if they have done no wrong because they "eventually" published a correction...