As others have mentioned, you can find variations of this around online, but if you wish to roll you own (perhaps to add other features or what have you), you could knock it out in about 20 lines of Python using the built in CSV library and Openpyxl [1].
Did you actually read the article? Here's the most relevant quote:
> The reality, however, is that China has struggled to create enough white-collar jobs for its soaring population of college graduates. In mid-2013, the Chinese government revealed that only about half of the country’s current crop of college graduates had been able to find jobs, while more than 20 percent of the previous year’s graduates remained unemployed.
I think this statement is not completely accurate.
First, it doesn't factor in the expansion of higher education in the last 20 years. I don't have the statistics at hand, so I will just use my hometown as an example. Exactly 20 years ago, ~120 high school students from my hometown were enrolled into colleges (including both 4- and 3-years colleges). This year, approximately ~1400 will enter colleges this fall semester. That is more than 10 times. Note the total number of people of ~18 years old hasn't been increased. On the contrary, I think it is decreased, as a result of one-child policy.
Second, I think it has become common that countries, including USA, have been struggling to create enough white-collar jobs. I have both current and ex- colleagues who graduated from Ivy Leagues and are/working in customer service, support, marketing associates, etc. What they majored in colleges, like English, Classics, Psychology, etc. really doesn't help them much on looking for their first or second jobs. It is similar in China, but I wouldn't say it is worse or better there.
I imagine displaced blue-collar workers are looking for jobs in areas quite a bit different from displaced college-educated white-collar workers. The problem with the job market facing college graduates seeking white-collar jobs seems to be a different issues from one of automation of factories.
Just like how in the US, the problems faced by liberal arts majors struggling to find work is going to be quite different from that of factory workers who lost their jobs when the production moved overseas.
That's in part due to China's recent expansion into higher education, which the article ignores. Also, the services and skilled trades are not traditionally college-graduate jobs.
> The bottom line is that when two parties enter into a contract voluntarily, that should be the end of the matter.
That is a very black and white view; real life has a certain nuance that just isn't captured by blanket statements like this.
You'll miss things if you limit yourself to a single level of abstraction: while it makes sense to the two parties to look at it like that, there is also a larger-scale, societal interest that certain sorts of contracts not be allowed. Thus, society makes rules about contracts and employment. For example, we ban slavery, indentured servitude, and child labor because as a society, we've determined that those are exploitive (even if you can get children who would willingly work for you, or people who would sell themselves to you).
These sorts of laws are what make us a society. For an example of a what happens without them, take a look at Somalia.
I worked at a company that was acquired earlier this year and I didn't care for the new employment contract. Unfortunately, the sale was contingent on a certain percentage of the team signing the new employment contract. I had a lawyer look at the whole thing and he told me that because of the way the deal was worded I could sign and quit without affecting things.
I looked at the contracts a ton myself and basically made no sense of it. The lawyer spent a couple hours and it was a big help.
Had a friend mention he was going to do this on a job interview and the company he was talking to almost immediately cut him a settlement check to keep him from doing it and to just make him go away.
Don't ever assume something a company is doing is on the up-and-up.
Can you elaborate? He was interviewed as in, came in off the street, so to speak, to interview, made mention of having a lawyer review contract language and was cut a check?
Or was this an interview with the acquiring company?
He went through a phone screening, then a technical interview. They made him an offer and sent him a contract. A clause in particular caught his eye:
Employee fully and unconditionally grants, assigns and transfers to the Company any
and all Inventions created, developed, discovered, conceived, invented, learned, or
suggested by Employee during the performance of Employee’s obligations under this
Agreement and for a period of one (1) year thereafter, whether or not such
Inventions are made during working hours or on the property of the Company, whether
or not such Inventions are related to the business, activities or interests of the
Company and whether or not such Inventions are patentable, copyrightable, or
protectable with a trademark, service mark or otherwise.
He asked me to look it over, a more experienced eye I guess. As soon as I opened the document, big red flag, it was 15 pages long. I've never had anything over 3 pages. The more I read it, the worse it got. They really, really needled in on the invention thing, and had all these side rules that it included anything that wasn't even patentable, and that you wouldn't argue against any claim they made unless you could prove that your work had been done before starting there by producing a patent. They required 30-days notice before leaving, which in PA is illegal to stipulate. There were restrictions for two years against soliciting anyone they had ever solicited, not just their customers. There were statements that unpaid overtime was expected, which is also illegal in PA (employees are allowed to work unpaid overtime but it cannot be a requirement for employment). And there were weird things in there like stipulating that the employee worked exclusively for the CEO. What was the point of that? It was just a complete mess.
So I suggested he should get a lawyer to review it. In the mean time, they started pressuring him to sign, he told them it was with the lawyer right now (though he hadn't yet found one, he was just stalling), and they freaked. Cut him a check of a few thousand dollars to go away and agree to a gag order.
But I didn't agree to shit! However, I still won't name them because I'm fairly certain they'd launch a full-frontal libel lawsuit against me. Just one of those kinds of places.
during the performance of Employee’s obligations under this Agreement and for a period of one (1) year thereafter
This sort of term is exactly why you get a lawyer to review the contract. If it's enforceable (big "if", in many places) then that's a guaranteed year you can't realistically either be employed by anyone else in the industry or be working on something like open source projects to keep your skills up to date. As career death sentences go, that's probably pretty close for anyone early in a career in software, web development, or any similar creative field.
Their biggest worry was probably that the reviewing lawyer would smell blood, track down other employees (or former employees) and offer them to litigate on contingent. Truly abusive contracts will get thrown out and all those mandatory unpaid overtime hours and what not will suddenly become owed, with interests.
I won't name the "Uber for Lawyers" service we recently used for a minor task, but it was just as bad as you might think it would be. I would not recommend anything like that to anyone, especially for trivial services.
When hiring another firm I did a lot of prelim research on Avvo.com - they give you a good amount of detail and user reviews without having to create an account. It's easy to find the attorneys who are listed on there without having to use Avvo's system.
I still think the best way to find an attorney in a specific field is to ask other attorneys in any other field.
Having heard horror stories of Uber drivers asking the equivalent of, "Which bridge is the Golden Gate Bridge?" I cannot imagine the clusterfuck that would result from an Uber for lawyers.
Asking for a recommendation from friends/family is best, even if their lawyer doesn't specialize in employment law. In the case where the lawyer doesn't do employment law, say you were recommended by a friend/family and ask them if they can refer you to a lawyer with the right expertise.
Failing that, contact your state bar association. For example, the CA bar association offers a list of certified lawyer referral services that will help you find a lawyer with the right expertise: http://www.calbar.ca.gov/Public/LawyerReferralServicesLRS.as...
I don't think the objection is to being direct. It's to dramatically expressing contradiction when you are in fact agreeing.
Next time try something like, "Yes yes yes, definitely find a specialist employment lawyer. Referrals and the state bar are a good way to do that, but make sure you end up with somebody who has spent a few years dealing directly with cases like this."
At no point does he say to get advice from that non-specialized lawyer. He even says that if the lawyer doesn't practice employment law, to simply get a referral. What more do you want? A massive billboard with "only use employment lawyers here"?
If you're a member of a professional association or union, they might be able to provide you employment-contract advice. In Denmark in the engineering field for example, most workers are members of the engineers' union 'Ingeniørforeningen', which will provide you employment-related legal advice [1].
If the OP is in the US: in the US, 'labor law' and 'employment law' are two different specialties. Labor law focuses on the laws concerning unions, organized labor, and collective bargaining, while employment law is concerned with laws affecting all aspects of the employer-employee relationship. You'd want an employment law specialist for this sort of issue, or a generalist lawyer with experience in helping software engineers deal with employment law issues.
Asking for a labor Lawyer won't get you anywhere, but smutticus is right that reaching out to Unions or Labor Lawyers and asking for an employment lawyer is a smart move.
Big Unions often employ or know top notch employment lawyers (it's not a focus for unions, but they still might work together on select cases), employment lawyers that can scare the acquiring company before negotiations begin :p
FindLaw is a Thompson Reuters business, so I trust it enough, and it came up with 43 results which it seems should be enough to find something adequate.
I've had success selecting lawyers with Avvo in the past. They have a new service called AvvoAdvisor that will connect you with a lawyer immediately (I haven't tried it, but I've tried Lawdingo which was OK). I think this can help you perhaps get a bird eye view on your matter and pre-select someone for more thorough work.
If you're in California I can give you a recommendation (I have no affiliation with him aside from hiring him in the past). I don't know of a general way of finding a lawyer on short notice.
That is probably worth what you pay for it. I'd be happy to let an Indian lawyer review documents under Indian law but for a situation in the US or in Europe I'd use a local lawyer specializing in the problem domain (in this case labour law).
'Generic legal language' is not your problem, specific legal language applicable to this specific case is the problem and if $20 is the differentiating factor then you might as well quit the job or sign the contract anyway.
Thank you for posting this (it was quite a surprise to see his name here).
I was a close friend of Emil for a long time. Before he passed, I had gotten busy with work and hadn't spoken to him in a while. I saw some of our mutual friends the weekend before it happened and had planned to call him. Really wish I had made that call sooner.
Take what Jonathan Kinlay says about HFT with a grain of salt. He worked at a friend's firm briefly before leaving without making a single profitable strategy (although his excel models were profitable of course). While what he says in this article is in the ballpark of correct, he is not the best source of information on modern HFT.
I'm actually serious about this -- read anything on HFT strategies online with a grain of salt, because you are the type of person HFT firms are looking to exploit. In HFT it can be very hard to know if you're the hunter or the prey.
Some strategies that involve complex positions might post small daily returns. Then, an event can come along and wipe out a month of profit, or more. It's a shark eat shark world.
Right. HFT relies on finding arbitrage opportunities, which are limited and temporary. Unless you're building AI that will adjust to other players' strategies in real-time, you're behind the game.
It is nice to realise that people who clearly have stellar resumes still get this kind of knocking when sticking their heads above the parapet - it makes me feel worrying about the stuff people could say about me should not stop me from putting my head up more often.
Take what this commenter says about OP with a grain of salt. He had a friend that hired OP and seems to be bitter that OP left before he could profit off of him. While what he says may be in the ballpark of correct, an anon poster making ad hominem comments is not the best source of information on the OP.
This is blatant misinformation. Please stop spreading it.
Canceling orders is something _all_ participants do. It's a vital part of risk management and a healthy market. Some markets do have minimum quote lives, but they typically fail as market makers cannot manage risk there, so trading moves elsewhere. The only time I've seen a market place survive adding MQL's is when they were on the order of milliseconds, not minutes.
There are certainly strategies that are manipulative. For example, having a hidden order on the ask and posting an inflated bid then pulling it once your ask gets filled. Since you posted it with no intention to get filled and with the intention of manipulating the price, that's spoofing, and illegal.
But the fact that someone placed an order and then canceled it when the price got close means exactly nothing -- everyone does it as a part of normal business.
Confused: you describe the practice as both 'spoofing, and illegal" and "means exactly nothing". Which is it? How do you tell the difference from innocent cancellation and malfeasance? Maybe that's what the Op was getting at.
Spoofing laws hinge on "intent". Like literally the exact same behaviors have a different legal status based on "why" you did it.
The way spoofing rules are usually proven is via examinations of patterns (like do you only do the cancel trick when it directly moves markets into your real position) or via old fashioned examination of documents (did you send an email that said "Let's spoof this market like crazy").
I did not. I described canceling orders as no big deal. Spoofing is illegal and very much a big deal. Spoofing implies canceling but canceling does not imply spoofing.
In the example I gave, the spoofer's intent is to encourage people to cross the spread into their resting order to avoid paying the spread themselves.
On the other hand, say someone has been resting an order for a long time, for example to buy at 9 because they think that's a good price. Until the bid is at that price, they are unlikely to get executed so they'll keep the order regardless of their position. But maybe they have a large long position on when the bid reaches 9, so they decide to cancel their order to prudently manage their risk by not buying more. This is obviously important in a healthy market -- firms that fail to manage their risk run the risk of cascading failures (if their clearing firm can't cover their losses.
It's pretty easy to tell one from the other most of the time, especially for regulators with access to account tagged data.
TokuMX supports most of Mongo's features besides the aggregation framework last I looked. Better locking, transaction support, better indices too -- you should check it out.
This is the last one of these posts I'll ever respond to, I promise. And I'll give you the same response I've given every other time before:
You should not base your decision of database (or anything else for that matter) on marketing copy. For something as important as your primary data store, you should at minimum read the full documentation and run some tests with dummy data to see if it will even plausibly work for your use case.
I used MongoDB successfully for years with a large data set (>1TB) and 100% production uptime for more than 3 years. I never lost data. Your claim that you will unavoidably lose data is baseless and without merit. In fact, every issue you listed has been fixed, again, counter to your claim.
Personally, these days I prefer TokuMX if I'm looking for something compatible with MongoDB, but these baseless attacks on MongoDB have to stop.
EDIT: Every time I make a post like this, I get some downvotes without responses. Please tell me why I'm wrong. If it's just that I'm abrasive... Well, you would be too if you were addressing the same thing for the Nth time.
Not the downvoter - but I can totally understand the downvote.
The fact your anecdotal evidence is that you did not lose any data doesn't mean the internet is not full of people who have lost data with Mongo. I have no idea what your workload is, but my experience with data loss and uptime has not been as great as yours.
I'm not for bashing things either - I think there are cases Mongo might be appropriate, I just don't like countering claims with "it worked for me on this one data set". If it drops writes for one out of 100 people that's still a big reason to avoid it if that's a big concern for you. As for "these issues have been fixed" you're welcome to open the issue tracker - no one at Mongo claims all of these issues have been fixed (then again, PostgreSQL has open issues too) so your claim that "these issues have been fixed" is kind of odd...
I only brought that up to counter his claim that data loss is inevitable. Of course my anecdote doesn't mean it's not common =) But anecdotes are all anyone else has, and every time I've read one about someone losing data, they either hadn't read the documentation, or just didn't understand the semantics of what they were doing. Very very rarely, especially these days, has it been an actual DB bug (though I will admit I got Mongo to core one time on 2.4 doing a compaction).
And it's a little disingenuous to point at the issue tracker -- as you say, everyone has open issues. The specific things that are mentioned though have been fixed: writes are checked by default now, the global lock has been broken up into per table locks, etc. There may still be common issues that aren't being addressed, but if there are, I'm not aware of them.
Anecdotes are not all one has. We have researchers, and it seems you might have missed yesterday's https://aphyr.com/posts/322-call-me-maybe-mongodb-stale-read... (or previous posts on the matter). This link debunks the value of RTFM for Mongo or misunderstanding the API or the rarity of the bug being the DB.
I think that it is disingenuous to say that because a fuzzer found certain obscure scenarios where there are issues that automatically everyone is going to be affected by it and that the database has no merits.
Also, if I have to choose a datastore, although marketing shouldn't be important, funding is and MongoDB has had some huge funding rounds in the past. This gives me a lot more confidence in choosing it.
If I say "its inevitable that you will get into an accident while drunk driving" and you say "I've been drunk driving for years with 100% no accidents" I would assume you are being dense.
How is it not valid? There are documented tests of exactly how and why the database loses data (just like there are studies showing the effects of alcohol), and you have claimed that "it's fine, because it never happened to me". You said the claim was baseless when it wasn't - there is another very popular HN post recently documenting how someone ran a test, proved the database was losing data, and the issue was closed as wontfix (but later reopened). Is aphyr's entire article baseless (and the one he wrote 2 years ago).
In the face of actual data, and reproducible tests - isn't saying something like "well it didn't happen to me" dense?
The comparison might be insensitive, so excuse me for hurting your feelings, but I don't see how its invalid.
A more apt analogy then would be someone saying "My database runs with 100% uptime for 3 years, so there is no reason for me to keep backups"
I promise I'm not trying to troll. Given how the data loss can occur in MongoDB (partitions, silently lost writes) - how do you know that "I never lost data." How do you verify this?
I'm pretty sure that I could kill 0.01% of writes of any random application (which doesn't require extensive audits, like banking for example) and nobody would notice for a really long time. And if the effect was ever noticed, application code would be the first place to look at for the reason.
Amen brother. You should never base your db decisions on either marketing copy _or_ HN know-it-all complainypants. :)
We actually evaluated TokuMX extensively last year, pre pluggable storage engine. We might have pursued it if they had implemented a compatible oplog at the time, but with a migration path that consisted of dumping and importing production data -- and no way to re-elect the old primary if there were any production problems -- that made it simply a non-starter for me.
They did eventually implement a compatible oplog, which was a good product decision, but the entire TokuMX engineering team recently quit Tokutek en masse so it's still not a great option in my book. Too bad.
> You should not base your decision of database (or anything else for that matter) on marketing copy. For something as important as your primary data store, you should at minimum read the full documentation and run some tests with dummy data to see if it will even plausibly work for your use case.
The issue is that they even lie in their documentation[1].
Also Mongo not necessarily loses data in a catastrophic way, you might have some old or inconsistent data here and there. If you have an authoritative source of data I would compare the data in Mongo with it. Also [1] shows how you can get data corruption even with highest safety settings due to broken design.
[1] https://openpyxl.readthedocs.org/en/latest/