System improvements at Conservancy
byon December 7, 2016
When I joined Conservancy, we discussed system administration as one of my early responsibilities. (One of many—you might remember the long list of possible functions for my position.) Like any organization our size, there are plenty of improvements to our systems that we wanted to make, but were tough to prioritize against our other responsibilities. Since I joined in August, I’ve kept an eye out for easy opportunities to invest a little time now that will save us effort in the long run. As we start looking back on 2016, I wanted to highlight some of the public-facing improvements that I’ve made as part of this effort, and share a little about the tools and services that make them possible.
I deployed domain keys on our mail servers. Now each outgoing e-mail is signed to demonstrate that it came from an authorized user at Conservancy, and not an impostor. To make a long story short, this means our mail is more likely to land in your inbox, and not in your spam folder.
Thanks to our friends at Let’s Encrypt, all of Conservancy’s web sites are served over HTTPS exclusively. This includes not just our main site here and copyleft.org, but also web front-ends for Mailman and Kallithea. Using HTTPS everywhere helps keeps everyone’s communications with us more secure.
It’s nice that Let’s Encrypt offers free SSL certificates to save us money, but I think what I like even more is that the service saves us time. Using their client software, I’ve mostly automated the process of obtaining and renewing certificates. We don’t have to manually track expiration dates, renew certificates, and install them on our systems anymore. That time is freed up to help our member projects.
I wrote systemd service definitions for several public-facing services that didn’t already have them. Before this, each service was managed by ad hoc scripts, which could fail if something unusual happened. systemd has given us a simple, standard way to manage each service and its runtime environment. We get more service reliability and security for less effort.
I built tools to help automate some of Conservancy’s day-to-day accounting work. Our biggest project here is the payment and reimbursement request system, which is still in development. Behind the scenes, I’ve also written some scripts to help automate smaller tasks like saving and filing receipts from our different accounts.
I upgraded our Kallithea installations to the latest stable version, here and on copyleft.org. This was my first time working with Kallithea, but their documentation made the upgrade process a breeze. We’ve seen improved service stability and uptime with the new version, too. Kudos to the entire Kallithea team for a job well done.
A typical Conservancy office
© Karen Sandler, CC BY-SA
This is all in addition to some usual day-to-day system administration: buying and managing domains, keeping up-to-date with security fixes, and so on. All this work should all make Conservancy’s systems a little nicer for everyone who uses them today, and free up all our time for more important work tomorrow. I love having this opportunity to put some of my technical know-how to good use, so Conservancy can better serve its member projects and the broader FOSS community, and that wouldn’t happen without help from the Supporters who sustain our operations. If you’re already a Supporter, thank you for making this work possible. If not, please join today so we can continue providing necessary infrastructure for important FOSS projects.
Come see Conservancy at linux.conf.au 2017
byon December 5, 2016
Are you coming to linux.conf.au in January? So are we! We’re presenting a variety of sessions, so whether you’re just starting to learn about free and open source software, or a seasoned contributor who wants to hear about cutting-edge issues, we’ve got something for you.
On Thursday Karen and Bradley offer A Practical Guide to Compliance with the GNU GPL, a pragmatic tutorial on how to comply with the most popular FOSS license. The focus is on providing concrete actions you can take to comply. There’s something for everyone who works with GPL’ed software, whether you’re an upstream contributor, distributor, or lawyer.
On Friday Karen presents Surviving the Next 30 Years of Free Software. As the FOSS community matures and time marches on, we’re starting to see cases where a contributor passes away and a project has to work out legalities with their estate. Karen will explain the law in this area, and suggest next steps for projects and the broader community to make these transitions easier.
As part of the Kernel Miniconf, we’ll also run another feedback session about our GPL Compliance Project for Linux Developers. Just like the sessions at ELC EU and LPC, this is your opportunity to hear more about what the program does, how it works, ask questions, and offer ideas for improvement. All interested contributors are welcome to attend. We’ll announce schedule details as they’re available.
We’re looking forward to seeing everyone in Hobart!
Code Sprints, Contractors, and Commits: PyPy in 2016
byon December 1, 2016
This series covers new developments and exciting projects taken on by Conservancy member projects. To learn more about Conservancy member projects, or the non-profit infrastructure support and services offered by the Conservancy, check out Conservancy’s Projects page!
Thanks to the generous support of donors and contributors, PyPy contracted Ronan Lamy at the beginning of June to help move forward work on Py3k. Lamy has been a Pypy core developer since 2012, and his work in refactoring old code has been invaluable to the project.
PyPy is an implementation of Python, one of the most popular programming languages in the world. It’s fast and light without sacrificing features available in CPython and other systems used to execute programs written in Python.
The Py3k project is important for the future of PyPy. Since the publication of Python 3, coders, developers, and organizations have been tackling the technical and social challenges of updating from Python 2. For PyPy, supporting Python 3 means supporting the Python community—those wanting to use PyPy will be able to work with projects using Python 2 and Python 3. In addition to donations received through the Conservancy’s fiscal sponsorship, a $200,000 award from the Mozilla Foundation to Baroque Software is helping to make a Python 3.5 PyPy a reality.
Over June, Lamy made hundreds of commits to PyPy—creating clean code, fixing translations, increasing testing capabilities, and expanding Windows functionality. Rather relentless, he combed through commits and contributions, chasing down everything from unnecessarily hacky code to serious problems. Without the financial support of donors, this work would likely remain unfinished. Lamy spoke at PyCon UK this September, where he talked about the current state of PyPy.
Currently, PyPy is a “good and… usable drop-in replacement for CPython” for 2.7, and during 2017 that usability should extend to Python 3.3 and 3.5. In order to achieve this goal, Python 3.5 will continue to be a major priority for PyPy in the months ahead, as well as JIT code generation. Additionally, there are a number of “side projects,” like RevDB.
ContractPatch, Step 3: It's never too late
byon November 30, 2016
We understand that we may lose a little credibility with the other side when we look backwards. We're reluctant to break the psychological bond we formed when we reached agreement — even if that agreement was communicated by little more than silent assent. We worry that we look sloppy and unprepared, since we had a chance to bring up whatever concerns we had the first time we discussed that point, and we didn't.
Employees in particular can feel that way about the agreements they signed with their employer.
As Karen stated in our last entry, people likely will never have as much power over their employer as they do the moment just before they sign their employment agreement. I certainly agree, and we would all be wise to use that leverage as best we can while we have it. But what about the rest of us, who have already signed that agreement? All is not lost. Despite what our psychology tells us, it's never too late to go back to the negotiation table with your employer.
The stakes and the power dynamic are different, to be sure. From the employer's perspective, a recruit with a job offer in hand is potential personified; whereas an employee has an actual performance record and history of relationships — and, of course, a demonstrated willingness to work for the employer at the terms they already agreed to.
So, perhaps you're in a situation where you have some regrets about the employment agreement you signed. Or, perhaps you're up for a promotion, or a transfer, or some other change in job duties. Or, perhaps your priorities have changed, and you'd like to adjust where you're willing to give and to get accordingly. You should consider at least two factors when deciding how best to proceed.
Factor #1: is the juice worth the squeeze?
While it's certainly possible to renegotiate an employment agreement, every employee should recognize that the subtle cost of doing so is real. Your employer is presumably fine with the status quo, and you'll be asking them to spend time and/or resources considering your requests. As a threshold matter, you should be candid with yourself about the stability of that status quo: the cost of attempting to renegotiate might be much higher if your position with your employer is shaky than if you're a rising star. In addition, changes in responsibilities and/or title may afford you a unique opportunity to reconsider the terms of your employment.
You should also do your best to determine what others in comparable positions receive from their respective employers. Market data will give you a better sense of what your employer might be willing to concede in a renegotiation. Obtaining this data isn't always an easy task: salary benchmarking for various industries is generally available on the web, but information about industry practices regarding other terms of employment is harder to come by. One of our long-term goals with ContractPatch is to gather and present information that enables both employees and employers in the tech sector to efficiently negotiate better employment agreements.
Lastly, you should compare the value you place on each of your requests to their cost to your employer. Employers usually manage their employees' salaries closely, so a straight-forward request for a raise is usually a zero-sum game: more money for you, less remaining in the employer's budget for something else. But it might be harder to quantify the employer's cost for other requests — particularly if they relate to more non-monetary requests like ownership of copyrights in your work, flexibility to pursue and contribute to extra-curricular activities, etc. You'll likely need to rely on your understanding of your employer's culture and business model to estimate the cost (if any) your employer would incur to grant those non-monetary requests.
Obviously, the easiest renegotiations are the ones where you're confident in your standing with your employer, you value your requests a great deal, your requests are in-line with industry practices, and you think your employer will incur minimal costs in granting them. And, of course, context matters: an employer who has given you a promotion but who doesn't have the budget to give you a commensurate salary bump is likely to treat non-monetary requests differently than an employer who has just backed up the Brinks truck for you. Your risk/reward calculus will depend on your assessment — and will go a long way in determining when and how to reopen discussions with your employer.
Factor #2: what does your existing employment agreement say about it?
I know this should go without saying. But many an employee has signed their employment agreement without fully understanding all of the terms they've agreed to. So, as you consider whether to renegotiate your agreement, make sure you're familiar with the existing agreement. If you don't have a copy handy, you should request a copy from your employer to have on file.
Once you've reviewed your existing agreement, compare the current language with your wish list of requests. In particular, you should know whether your requests would require actual amendments, or if you're merely looking to clarify vague or even seemingly contradictory language.
So, if you have a firm grasp on your current employment agreement and how you'd like to see it changed — and if you're comfortable that obtaining some or all of those changes is worth the risk — you're ready to start renegotiating. If your assessments are accurate, you might be surprised as to what your employer is willing to concede the second time around.
Over the course of this series, we'll start to drill down into specific subject areas commonly covered (sometimes expertly, other times poorly) in employment agreements for employees in the tech sector. If there are particular topics you'd like us to cover, you can sign up for our mailing list and offer suggestions. We look forward to continuing the conversation.