330 karma · joined June 8, 2016
Contributors to OSS are giving away their time and energy. That seems to be at the core of open source. I'm not going to demand you pay for what I produce - I'm going to give it to you for free with minimal restrictions in the belief that I will also benefit from others doing the same.
It seems to me that asking how to make money by giving away one's work doesn't really make sense. If you value it highly enough to think you should be paid, then why give the work away for free in the first place. No one picks up trash from the side of the road motivated by cleaning up their community then asks how they can get paid for it after the fact. Either you are motivated to give away your time and energy; or you really want a paid job, but one where you feel like you are giving back to society more meaningfully than just helping a company make more money.
Doesn't it still require altering the TLS implementation to use the static DH keys instead of following the TLS 1.3 standard of using random keys?
It would be so simple you could even teach the business owner how to do basic updates, like changing the listed prices on the menu or changing the description of a dish. Sure, you don't get to charge them for these changes, but they'll be delighted they don't have to worry about paying a consultant's minimum fee just to update their menu.
If you aren't validating the email by sending an email that has to be replied to as part of the sign-up process (not after), then you are simply assuming that the email address was entered correctly without an opportunity for the person attempting the account sign up to correct it.
> Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it. — Brian Kernighan and P. J. Plauger in The Elements of Programming Style.
* Get feedback often from the business owners
* Get feedback often from the developers
* Get feedback often from the users
If Facebook is one of the primary ways you interact with a set of people, then it is natural you would exchange political ideas with them on Facebook. Having to take any political (or other potentially controversial) discussion to a separate communication medium makes Facebook rather bland. It's requires a form of self censorship.
The biggest benefit is that it makes code reviews easier for others because the reviewer can step through each commit. This makes the refactoring changes much more obvious.
Splitting the commits also makes it much easier to roll back a functional change that goes wrong or isn't needed while still keeping the refactoring improvements.
1. Refactoring does not change functionality. The observable behavior should be the same before and after.
2. Refactoring should be done one step at a time. Each step should be as small as possible and obviously correct.
3. When changing code, at any given time you should be working on a functional change or refactoring - never both at once. Ideally these should be split into separate commits as well.
I think beyond the principles something like extracting a chunk of code into a separate function is not a task that needs a proper name. It's just something that comes naturally once you get into a mindset of always making things better, or as we say where I work: "suck less." It's getting into this mindset that takes the most work. If every time I deploy code it sucks less, or even just on average, that's good enough.
Refactoring is compound interest for maintainability. Once people buy into this everything starts getting better.
I also believe that you should never ask permission to refactor - just do it. A gardener who's task is to mow the lawn shouldn't ask permission before pulling a weed just because it's outside the narrow scope of the task at hand. Likewise a programmer should not ask permission before refactoring code (excluding large, time consuming refactors).
This makes sense from the user's perspective. Maybe they trust Mailgun but do not trust Postmark. If they have explicitly agreed to you sharing their personal data with one company you shouldn't be able to start sending that customer's personal data to another company without their consent.
If you sign up for my service and I ask for consent to send specific data to SecuriCo for "user analytics and tracking" I shouldn't be able to change that to sending the data to the NSA without telling you. The whole point is that the user should be in control of what businesses are doing with their personal information.