229 karma · joined December 21, 2014
If we were discussing 1 vs. 2 cans of soup from the local grocery for the same price, of course everyone would buy 2 - you can save the additional can for another day. Here, we're talking about fast food that has to be eaten within a couple of hours. There is no "deal" to be had by buying a larger quantity if you're not willing to eat it.
The only sad thing about this article is the apparent inability to understand why someone won't stuff their face with more food than they can eat without making themselves sick and likely obese.
That said, it's a difficult system to implement properly. Android went that route, and it almost works - almost. Android's available permissions are too plentiful, and yet certain permissions are too broad in scope. I wouldn't want a desktop application to have to ask for separate privileges for every little piece of functionality, but for certain critical actions it would be nice to have some clue as to what is going on.
Perhaps in another 20 years someone will finally invent a privilege escalation system that somehow manages to be both very specific and yet not time consuming for the customer to manage. What a dream. :)
Every adult should have the same government-mandated financial burden and reimbursement cheques in the mail. Why shacking up or pumping out kids gives the adults involved an advantage in their financial livelihoods is ridiculous. :(
What could be useful would be a generated report for all your queries with possible suggestions, grouping together queries with the same partial prefix columns, and the cardinality that each index would result in. Then one could manually review to look for the most significant improvements possible. I think a fully automated attempt (even built-in heuristics that modified indexes over time) would sometimes result in a bad decision being made that could theoretically crash your application. Perhaps with a few years of perfecting a solution this could become the norm. :)
Windows Update is a serious security requirement for any Windows install. Disabling it should clearly require explicit consent from the user.
Another strategy too commonly used by poorly run companies. If you feel someone will be worth $X more in only 3 months, they are worth paying that from the start. Kick the employee to the curb before their probation ends if they don't meet your expectations for the full salary. These games some companies will play ("we'll hire you at $x and then in 3 months we promise you'll get another $x") is despicable manipulation of employees' trust.
I worked for one company that did this to any new hire that was a pushover (they tried with me, I only accepted after constant back and forth for "HR approval" of my expected salary which was average market rate at the time). The gimmick is that nobody automatically got the promised raise at 3 months, and nearly everyone who went to fight for it never received it. An employee had to have already embedded themselves deeply enough into a product and be considered a "hero" in order to receive anything. The result was that the great developers would leave after being stabbed in the back, leaving the least talented people in play.
Suffice it to say, I don't even negotiate for salary or vacation time anymore. I request $x and X vacation days, and if the first offer comes back with anything less, I give them one chance to fix it. If the second offer is still shortchanged, I drop them. Unless you are desperate to find a position for financial reasons or you need your first job in the industry, these games being played during the hiring process are a strong indication as to the quality of the employer in general.
If I found bit shifting in an interview code sample as a replacement for basic multiplication, I would ask the developer why they chose to do it that way. They'll either a) calmly explain that their computer science classes taught it that way or it's a habit they've adopted after writing code for embedded systems or similar where the optimization actually made a difference, or b) their ego will make an appearance with a "because I'm so senior" attitude. The latter is not a good sign.
Ugh. I've been in a similar position, assisting with pouring over candidates. The worst part about salary being the limiting factor is you've quite literally wasted your time weeding through the poor candidates to find the honest-to-goodness best to hire - only to not be allowed to have the cream of the crop. It's ridiculous how much time some companies are willing to invest in finding the best talent, only to turn them down because of an extra $10-30k/year. If you're not willing to hire the talent, don't spend the time searching for them. Just post your job ads with your salary expectations, and accept the first people through the door if that's how you're going to operate.
Apparently Quebec makes it much easier for citizens from a select list of countries to obtain permanent residency, as opposed to what you'll find elsewhere in the country. It still takes a long time dealing with loads of bureaucracy (especially the requirement for basic French language skills which can be handled via courses while here), but I haven't yet met anyone who has had to leave before they manage to obtain their permanent residency.
Random aside: Moldova has proven to be the source of my favourite people. There are so many Moldovans here due to a simplified immigration process for their country. There's just something so refreshing about how they carry themselves: friendly, humble, utterly proud and self-confident, and without ego. It's nice to meet people who are pleasant without plastering a fake-ass smile on their face all day long. When you see them smile or hear a laugh, you know it's genuine!
tldr; I believe Quebec is conditionally easier (based on country of origin) to immigrate to than other Canadian provinces. And, um, Moldovans are genuine people - more of you need to move here so I can eventually find a lifelong mate. :p
Does Google not offer much higher limits if you're willing to pay? I'd be curious to try a similar app, but it seems that popularity might kill one pretty quickly with such low API limits.
1. Fade timeout on messages (10 to 20 seconds).
2. Clicking on a chat bubble needs to bring it to the front (change the z-index). Sometimes just want to read a specific message hidden behind another, and having to click to close gets tired fast. Extra bonus if future messages from the same person you've clicked on once always pop up on top of others in the area (or provide a little "pin" option in each chat bubble, but that will probably clutter too much).
And as a separate suggestion already mentioned by others:
3. The ability to toggle the enableHighAccuracy boolean. Exact street address is a little too creepy.
And yet people who want to argue against the use of it simply because they don't want to learn something new now have a useful link to throw around as "proof" that a very successful strategy is "harmful". I guarantee in the next year I will have to go point by point and refute this damn article to some stubborn team lead or another senior dev.
Nobody should ever write an article outright bashing a strategy that they either don't fully understand or personally have not managed to integrate successfully in their own day-to-day. Bare minimum, if you're going to publish an article critical of a tool, don't name it so aggressively as to sound like it's fact rather than a single personal point of view.
Unfortunately, a lot of businesses want to accept credit cards online with little to no effort in managing the risk. 1-2% doesn't sound like enough wiggle room, but if a company isn't using misleading marketing, is not defrauding users, has a product actually worth what they are charging, and offers instant support for refunds - then staying under 2% is not difficult. Too many businesses want the risk to be handled by external forces. If you want to accept money online, make sure your business is prepared to manage the risks. You can't just drop in the payment processing and wait for the money to roll in.
"We can handle 20% of users at 5 Mbps, and the other 80% at 250 kBps. So we'll sell the 5 Mbps. But we won't restrict sales to 20% of customers, we'll sell to as many as want it and then throttle to handle overloads on the system." There is no way to make this situation acceptable. Don't sell what you can't provide. Pretty fucking simple.
I imagine you've done more than most people who customize passwords based on the site/domain name, but you should never share the specifics of your algorithm. It reduces brute force effort against you from nearly infinite to possibly hackable.
It's against the ToS to do so, but of course Facebook is willing to expose all that information for anyone willing to break the rules.
Because of the possibility for abuse, chances are high that some/many of the inputs are pure bullshit anyway - people saying they're happy when they're downright miserable, out of fear of being scoped out if they log negative results.
Just another management PR stunt so they can gloat about how happy their employees are, when the results may be fabricated. Perhaps this would work in a small company where downward trends in happiness result in immediate changes based on employee suggestions. For every medium and large sized company I've worked for, this would just be another manipulative game pushed onto employees by management who will never implement any real change but can show the CEO ridiculous charts about how "happy" the employees are.
tldr; Management loves to show off reports like these, but the values input are often meaningless and only serve to antagonize employees rather than help.
It's such a simple thing to do on the backend, and yet I'd never seen this before. So simple to implement, but gives an amazing first impression.
A product that cuts short on presenting a polished product on the outside, may very well have the same ugliness to its internal components.
Or, as sometimes happens, 90% of the effort went into the design, and the product itself is crap. That happens too. ;)
With all the CSS transforms, animations, canvas, 3d libraries, etc., I'm now utterly lost. I've gone from being an intermediate frontend guy to a 6/10 on the core necessities (all that earlier knowledge is still the foundation), but like a 1/10 or 2/10 with all the new stuff. I could probably get to 4/10 if I put in the effort, but I have a very strong gut feeling that I simply do not have the... faculties... required to be an intermediate frontend guy in 2015.
All that to say... codepens like these I've seen blow me away. I don't even bother trying to dig into the CSS. It's just beyond me. ;)
Employer, start of project: "Oh, it'll save time? Great!" Employer, end of project: "You said it'd save time, lies!" Developer: "I specifically explained how it saves time in the long run. Not the initial implementation." Employer: "..."
This disastrous ecosystem exists with QA too (which is again, a form of testing). A lot of companies - usually the smaller ones - don't invest any resources at all for QA. Others just do point-and-click smokescreen tests that'll discover bugs that are blatantly obvious (also typically the ones the developer should never have committed to begin with). Real, proper QA? That requires investing serious time into test cases - completely figuring out every possible interaction and scenario that can take place. All before a single actual test is run. And similar to unit/functional tests, QA test cases need to be reviewed whenever the smallest bit of functionality changes.
The reality is that most employers who "want test cases" want there to be a magical solution that gives all the benefits, without any effort.