I spent last week at several beaches in Corsica and when I came back I figured I would want to prolong the silence of not reading e-mails for one more day. And how peaceful that felt, I can only recommend that. Instead I spent Monday in my hammock an continued reading a Clive Cussler novel.
When I returned to my office on Tuesday I found more than 270 unread e-mails in my inbox. It took me around 4 hours to comb through these with a jackhammer and to trim it down to like a dozen or so that I will have to act upon.
When I got around to perform the first actual work-related action it was that I added my first third-party component to my well-visited Parts Store.
Third Party Components in Cocoanetics Parts Store
The thing that I call the “Cocoanetics Parts Store” is basically a feature of my custom-built WordPress template that allows me to add “Parts” as one would add “Pages”. Ordering is done via e-mail and invoices are created manually as PDFs. Still I see hundreds of people – developers? – peruse these pages every day and so I decided a while ago to put an ad on there. With much success, this very ad is the only one that even has somebody on the waiting list.
I figured that with hundred of people stumbling onto Cocoanetics.com every day why not also let them find some really great components that other developers are selling, provided that there is an affiliate system in place that lets me get a cut of purchases being made.
Sensible TableView is my first such component that I get a share on. If you want to get the same kind of exposure as well, I am happy to provide it if you can furnish me an affiliation.
MyAppSales Fixes – Hooray for Open Source
Next order of business were several problems people had with MyAppSales since Apple again tinkered on iTunes Connect. Several countries had been moved to their own regions causing the financial reports for these regions to not show. Also some other change broke downloading of daily and weekly reports.
I had open sourced MyAppSales a while ago for the express reason that well versed developers like the ones using it can contribute fixes for such problems. It took a bit of encouragement – as well as an acute problem coupled with my absence – to get two guys to step up to the plate and provide fixes for these two new issues.
It seems to me that now many people seem to be aware how easy it is to contribute to some other developer’s project. So let me summarize the steps right now.
How to contribute to Open Source Projects
Generally the process to contribute to any open source project on GitHub is really simple once you did it for the first time.
- you set up git and GitHub
- you fork a project you want to contribute something – however small – to.
- you clone your fork to your local hard disk
- you modify your local copy and commit the changes, providing sensible descriptions in the commit messages
- you push your local clone to your online fork
- you create a pull request for the original master
- the owner might require some further changes, he will communicate with you via the pull request. If you respond to such e-mails they will automatically be appended to the conversion
- further commits you make to the branch you pushed will show up as updates to the pull request
- finally when the owner is happy he can merge your changes into the master with just one button
You can see the individual changes and who made them on the MyAppSales commit history on GitHub. Those are also a great place to learn about how other developers are tackling certain issues.
My other big open source project next to MyAppSales is NSAttributedString+HTML and lately this is gathering more and more steam. In my absence two new pull request were sent, one about adding support for rule-based styles and one to make font creation thread-safe. Since there are several projects with 3.2 support dependent on this we have to keep 3.2 compatibility at least until 5.0 is out. So I had to ask the author of the update to also provide this and he did. After that I could merge it with master.
The rule-based styles pull request need a bit further clean-up, so I am waiting for the author to provide that. It’s always very interesting to eavesdrop on such a commentary exchange. The original author can always decide to ignore a pull request if it is not up to his standards, but if a contributor steers his additions in a path that the maintainer likes then magic happens.
This magic is also the reason why I prefer pull requests over patches because there you can actually reap the fame for the code you contributed because you show as author of the added lines for all eternity. Or put differently: the git blame command shows if a future problem stems from a change you made.
And off again …
I had to cut short my first work day after the vacation because stress started creeping back in after 4 hours sitting in front of my iMac. So I put off some other work items that still stand between me and Inbox Zero. Tomorrow is another great day for that.