Voice check: clear.
Seatbelt: buckled. Liftoff in T-minus 3..2..1…
This first week as an intern at CirrusMio has felt like a hyper-relaxed astronaut debriefing, getting a feel for the tools that I need to succeed in my anticipated exploration of Moonbase. It might not be an actual trip to the lunar body, but I’m just as excited for the coming weeks of learning and discovering at CirrusMio. My figurative spacesuit is strapped on tight, and I’m ready to go.
My ultra-intense training outline has included a run through the centrifuge, and these:
- Github flow
- Github Pages
- Atom Editor
Let me run through each of these, so that you too are locked and loaded to launch into working with Moonbase.
The open source platform for developing software projects of any size, personal or enterprise, which is utilized for version control. Especially when operating with a large team with countless approaches to any one problem, Git saves projects from ending up as mangled, confusing, spaghetti code, by carefully merging individual work back together into the aggregate project so that it may be deployed cleanly.
Github is a social network that uses the Git version control system. It serves not only a programming portfolio, but an entire way of producing projects. Here’s a paraphrased rundown of Github’s full guide:
The overall progress of a project is set on a ‘master branch’, like the strong and linear trunk of a great tree. What lies on this path is indicative of the operation of the final product. From here we have:
- Branching: A path or environment set aside from the the master branch to try out new ideas and work invidually. Branching is ideal for fixes and features, and the branch names should reflect that. If your branch helps you discover a unique solution, you can merge branch back with the master branch.
- Commits: Any change made to a file (add, edit, delete). Each commit takes a snapshot of your current progress on a feature, so that you can return to that version at any point. Not only are commits important to the developer, but also any other users to track each state of your progress. It is vital to write clear messages to communicate what is going on with each commit, saving you or any collaborators down the road.
- Pull: Initiates discussion about your commits. Sending out a Pull Request asks the recipient for advice and review of your work, so that it may be pieced back into the master branch. Pull requests preserve a record of the historical changes to your code, allowing all to see your thought process and how the decision was made.
- Discuss & Review: Pull requests come back with suggestions and fixes on your branch, so a conversation is started. Make your edits and keep in contact.
- Deploy: After numerous Pull Requests and a final review, your branch can be deployed back to the master branch.
- Merge: The master branch is finally made to incorporate your changes. Congratulations!
A great service for testing out websites, offering plenty of attractive and responsive templates as well as free hosting for one site. Build webpages from the ground up, or begin with a flashy template with Github Pages. There are a number of ways to get a free hosting platform, I’ve used Google Drive’s hosting ability, but it’s awesome that you get a whole site with your own domain at no cost with Github Pages, even if it is for just once site.
“A simple, blog-aware, static site generator”.
Jekyll takes a bunch of raw text files in a number of file formats found in a template directory and converts them into HTML via Markdown, and then renders an operational website. Jekyll is actually the engine behind Github Pages, so popping your rendered page into that service will allow you to host your site for free!
To use Jekyll, you will need Mac OS X or Linux to run it, but a work around does exist for Windows. I have not been able to work the Windows alternatively currently, due to issues with Ruby’s file association.
A plain text formatting syntax, and a software tool for converting plain text to HTML. Markdown serves as a component of Jekyll.
Atom is an open source text editor, which is both user friendly and Github-based. I currently use Sublime Text for code editing, but I took a quick glance at Atom with the help of some online debates:
Strengths: Package development, Github ecosystem, site previews with Markdown
Weaknesses: Emmet editor plugin, not quite as polished as Sublime Text
For the most part Atom vs Sublime is just a matter of personal preference, Coke or Pepsi, Metallica or Megadeth, ‘jif’ or ‘gif’. I’m still leaning towards Sublime, partly because I kind of love the Cobalt color scheme, but also due to faster operation and a bigger user community backing it. I can foresee Atom getting the upper hand if Sublime 3 is a bust and/or open sourcing adds to the web’s favor of the editor, but for now I’d rather stay a member of the Sublime fan club. The notifications to purchase the full version of Sublime haven’t driven me crazy just yet!
In the next steps for preparing to board Moonbase, I’m brushing up on Ruby to be able to develop with the On Rails backend, and can’t wait for the learning, mentoring and challenging projects ahead of me!