Category Archives: Uncategorized

Contributing to Open source in 8 easy steps

 

If you want to find a job as a programmer, a four year degree may not be enough.Formal education can only tell employers so much about what you know and how you work. Fortunately, most of the internet is now run by open source software, which anybody, and I do mean anybody, can contribute to. In 2015, over 98% of servers are run using some form of Linux, an operating system that was written by community of thousands over the past 23 years. http://www.w3cook.com/os/summary/ Almost every kind of software out there has an open source counterpart that you can download, compile, or make changes to yourself. It’s a great way to teach yourself programming and get the attention of prospective employers. You may think, well that’s fine and good for a genius like you, James, but how do *I* get into open source software? Easy, just follow these 8 steps.

1. Get a Github account
Github.com is kind of like Facebook for programmers. It allows you to post your code and track all of your changes using a handy version control program called git. Just head to github.com and pick a username and password!
2. Find a project
This step is going to be different for each person, but you generally want to pick something that people are using and are contributing to. That way you can get more feedback from people in charge of the project or from the users. You can find new projects by browsing github, sourceforge, or by looking up any old open source product you like to use, like firefox or WordPress. When it comes to web software, my favourite place to find new projects is Refactorcop. It was a winner at the 2014 rails rumble, and it analyzes github projects on Ruby on Rails, and makes sure they comply with the code standards in the Ruby style guide. You can use Refactorcop’s search engine to find projects that need code cleanup, a process that doesn’t change the program’s functionality, but ensures that the code is easier to read and contribute to.

3. Check the issues page
Once you choose an open source project, you should check the issues page on the repository to find out where you can contribute. These may be features, bug fixes, or general annoyances that users have noticed. These issue pages are also a good way to tell if your project is active. Active projects mean that you will be able to get quick feedback on any code you contribute.

4. Fork the project
“Forking” refers to a process where you create your own “branch” of a software project within its version control system, which is kind of like a family tree for computer programs. If you are still confused, I think Github’s help page can do a better job of explaining it then I can.

5. Download and Test the project
This may be the most important step of the whole process. It proves that this program you want to work on isn’t broken. It can also give you some inspiration for changes you want to add yourself. Use the git clone command to download the code.

6. Program
This is where that four year degree (and a lot of google) comes in. Add your code, make sure it’s readable, test it out, and commit it to your branch!

7. Submit a pull request
Once you are confident that your code has made the software better, send a pull request to the original project. Here is Github’s tutorial on pull requests.

All that’s left is to wait for the project manager to approve your changes, and voila! You are now contributing to the open source community! Sit back, crack a beer, and know that you have made the future just a little bit better! Thanks goes out to Dan Kubb and everyone else in the Fraser valley Ruby Brigade who introduced me to this whole process.

Introducing the Writing Machine

Well, it looks like I’ve been called out. I had been thinking of starting a writers group. You know, an online place where people could come together in the spirit of mutual creative motivation. It’s always easier to keep your word count up if you have 2 or more people expecting your word count every day. But I had a question, what happens when you finish your first draft and you are not creating new material? How do you track your editing if you are not using a word count to track your progress?

So I decided to talk to my favourite self-publishing experts at the Smarter Artist Podcast, and asked them how they would track their editing.

Believe it or not, they answered! We had nice little back-and-forth about how one would do this and they said they would put my question on a future episode. And they did! You an listen to their answer here, but basically, you can use the number of words in the chapter or short story you are editing as your word count. Of course, you can track other factors like time spent, the place you are working in, even the time of day.

When I found this podcast episode, I realized that I had not started the writing group I  mentioned in my email. They did not use my last name, and I could simply disavow the proclamation forever, but I decided if I needed to kick in the ass to do this, this podcast episode would do the job.

So, after messaging all of my writer friends, I started a new group on slack.com. I called it the writing machine because I want to focus on the day-to-day habit of writing. Before all that discussion about prose, structure and character development can happen, I believe that you need to focus on production. You can’t improve a product that’s not there. If you develop the habit of writing every day, it becomes automatic, and so it’s a writing machine.

I always get a little nervous setting up groups like this, but I promised myself that I would learn more about creating communities this year. What better way to learn than by creating one myself? There’s still plenty of room here at the writing machine. If you want to join, send me your email address, and I’ll send you an invite.

4 Questions for 2016

Rummaging back through my 2015 posts, I found that I had set a bunch of goals for myself. Sure, I accomplished a few things last year. I moved, put another 10,000 words on my novel, and read 88 books (okay, most of them were graphic novels and audio books, but still). Other goals were kind of a bust, like restarting one of my old blogs, or setting up a twitch streaming channel. There was only one difference between the goals I achieved and the goals that I did not. It’s all habit. Just about everything that I’ve completed or finished last year came down to whether I was working on it every day for a given length of time. It’s one of those dull truths that you can only learn from experience.

Now that it’s a new year, I want to change my focus. Last year, it was all about finding out how to achieve, now I want to find out how to make a bigger impact. So instead of having goals for 2016, I want ask some basic questions to frame my actions. It’s about making better choices about what do, rather than how to do it. Here’s what I want to know in 2016:

1. How do I create community?

Throughout my life I’ve put a lot of emphasis on going it alone or taking the path less travelled. It’s given me the courage to seek out a lot of new experiences and take on unusual challenges. However, that effort only really pays off when you can share it with a great community.

Communities have brought us the current convention scene, hospitals, and copious amounts of open source software. There is still a lot I don’t know about them, though. How do you create a good community? How do you keep a good one going? I guess my first step to figuring this one out is to contribute more. I need to share things that I’ve found or created. I also need to encourage everyone else who tries to do the contributing. So, if you like to share your work, expect my likes and comments.

2. How do I use my knowledge to help people?

It’s a funny thing. The older I get, it feels like my knowledge is getting rarer. Everyone gets in to more specialized fields and suddenly I have more friends who don’t know about computers than those who do. How can I share that knowledge in a way that can help a lot of people? The great thing about sharing knowledge is that doesn’t cost anything to distribute. Even 20 years ago if you wanted to educate people you at least needed to print out a pamphlet or something. These days all it takes is a Facebook page and you are off to the races. The trick then, is to know what people want to know at any particular place and time.

3. How do I automate more?

Automation is the very soul of my career. Programming takes human thought and it applies it to the same repetitive tasks, over and over again. It frees your brain up for the sort of specialized thinking that humans are good at, but machines aren’t. Of course, automation doesn’t need to apply to just machines. I agonize over a lot of little decisions, such as when to place a phone call, where I really should just make a choice and accept the consequences.

4. How many cute little cafes can I take my wife to?

There’s this place in Aberdeen Center called the Sugarholic cafe. It had well-dressed wait-staff and a lot of crown moulding. I had a croquette sandwich, and Sara had some crab pasta. I want to find more places like that.

So there you have it. A little bit of navel-gazing, but with a direction to look outward. I’m still going to work on stuff, too. The novel is going to be DONE this year, come hell or high water. Beyond that, I’m not going to plan any future side projects. I’m going to be in a different head space once this one is done, so I can make the decision when I get there. Other than that, I’ll just try to keep my house clean, get to work on time, and hang out with my family on the weekend.

Voting 2015

Yesterday I went to an Advance poll to vote early. My station at a local middle school was lined up out into the rain for most of Monday. Over 2.4 million people voted over the weekend, a 16% increase over the last election. Either we are in a titanic struggle for the soul of our country for the next four years, or we have finally discovered how to use awkward Thanksgiving political conversations for peaceful purposes.

Still, the Conservatives will probably win in my riding no matter who I vote for. The fate of our leadership ultimately rests on what goes on in Ontario and Quebec anyhow. I don’t like it, but I’m putting my ballot in anyways. Like many democratic rights, if you don’t use it, you lose it.

If I can’t have the election I want, at least I can make sure my fellow voters are well-informed. If you want to know what your local MP has debated on or how they voted, go to openparliament.ca. It contains full text transcripts of every parliament since 1994. Included are also the voting records on every bill since then, such as the Anti-Terror Act Bill C-51, the Strengthening of Canadian Citizenship act Bill C-24 and The Fair Elections Act Bill C-23.

You can just type the issues you care about into the search box and find out how your MPs have acted on them in real life as opposed to their campaign promises.

Now here’s where I turn into your disapproving Dad and tell you to vote. As a favour to me. I know you think you are just encouraging them, and I know you think you can’t make a difference. I’m not asking you to vote for the benefit of any one party. I want you to think you have a say in this country’s future. It’s a little trick of human nature. If I can get you to go through the motions of heading to your local school gym and ticking that box, you may start to think of yourself as someone who cares about what’s going on in Ottawa and will take action when the need arises. If that happens, then we just might have a chance at having some real change in this country.

August/September Review: Well, that was fast.

So I thought figuring out my new job and commute would be a mad dash. Clearly the universe did not believe I knew the meaning of a mad dash. It. proceeded to remind me.

No sooner had I spent a week on the job when Sara and I finally got an offer on our condo. It had been on the market for 6 months, and there were so many false starts and lightning-round cleaning sessions that we had begun to lose hope. A university student needed our place for the coming fall semester, and suddenly we were out on a property tour again. The first few houses were underwhelming, with the kind of upkeep that I can only classify as a “renovator’s dream”. Then a vision appeared off a former country main road. It had a double garage, a backyard, a spacious kitchen, and a basement. Not a suite mind you, but a basement that I could put an office in while I watched Gavin in the rec room! After some deliberation, we put in an offer. It was rejected, and we were suddenly faced with the prospect of being homeless. 48 hours later, we learned that the other buyers had dropped their offer. The house was ours.

So I had gone from taking sad selfies while job-hunting at the local library to commuting to an exciting new job, packing everything I owned into my parents’ garage, and staying in their basement while we waited to take possession. It was completely nerve-wracking having to co-ordinate things over the phone while on my lunch break. Fortunately, my amazing wife, who coordinates 60 12-year-olds for living, made sure our family was in good hands. She managed to fit all of this in even as she started the new school year as teacher team leader. Thanks, Honey!

In the end, we made it into our new house, I’m typing this at my very own desk in my very own study, and I have not done ANY side-project work since my last blog entry. However, I’m ready to get back to it with some new strategies.

Now that I’m working at company that doesn’t require me to bring my own computer, everything I do on my Macbook is either for entertainment or professional development. I’ve got a little tool installed called “RescueTime“, that tracks which apps or websites I’m working on at any given time. I used it before a performance analysis tool to measure my focus, but I think I can now use it as a time-tracker. I can also set goals on it so I can improve my time management step by step. Plus I get all these cool infographics breaking down my time. Why don’t we take a look at August and September?

Screen Shot 2015-10-04 at 9.07.29 PMScreen Shot 2015-10-04 at 9.07.37 PM
Wow, that is a lot of red there. Okay, it looks like I’ve got some work to do here. That’s okay! I can also use the pomodoro technique to enhance my focus. The pomodoro technique involves working in 25-minute bursts broken up by a 5 minute break. I’ve tried to use it before over an 8 hour day, and I felt it didn’t really work since I might forget to take my break or I would forget to track my time properly. If just do one or two pomodoro sessions tonight, I might be able to stick to it.