Principles and Practices, Project management : 27 Jan

Neil gave weekly lecture on digital fabrication and different possibilities emerging as its by products, evoking CBA and fab lab community perspectives. The second half of lecture went as a detailed showcase of different web development standards, version control architectures, and project management tools.

We all love to do audacious projects. To see the results effectively it needs to be collaborative, modular and reproducable. Using webpages to document and express our ideas are essenial for others across the globe to understand and support meaningful projects.

My objective

  • Explore different markdown language flavours.
  • Keep the theme of site like a book.
  • Simple and one page architecture.
  • Able to convert the content into a html file in one step.
  • Able to include computational plots and graphs.

My Experience

  • Git Repository : For any project we need a file storage system in place. FA16 uses gitcloud, supported by popular gitlab.com. Its a combination of file storage in cloud and git based version control. This solves many issues like tracking changes in our code, secure transfer through ssh key pair created etc.

I used our remote guru Francisco’s tutorial for setting up git repo in my ubuntu 14.04 LTS. It went smooth. I tried couple of git push pull events to see the way how it works. Each student is getting a shared linux server space managed by gitlab. It needs an index file to point our web content, when the url on fab academy student page is clicked.

  • Webpage Documentation : This took me to find a suitable web development workflow. I started from Francisco’s documentation tutorial again. This made me more curious to check out different markdown language flavours. W3C gives an idea of web frameworks and philosophy behind it. I looked at HTML and few other formats from here.

Web Documentation Workflow management was another challenge. Initially i tried the method Francisco mentioned and installed Atom for documenting the pages. Also installed pandoc for converting the file into html. It worked and I was happy. But when i tried to make a table of contents, its getting tricky. So I looked for other packages.

I liked Brackets.io, but i feel its not a documentation platform, more of a web designing tool. It helps to convert your psd web designs to code in an easy way. Came across GFM - Github flavoured Markdown language. But i wasnt sure of it yet, so I browsed again to find an easy to write, easy to convert, easy to export workflow. Finally found RMarkdown with an extension .Rmd.

RMarkdown Approach

RMarkdown is a dynamic documentation technique with built in support from R language. We can write in conventional markdown format and convert the output to HTML, PDF or Doc formats easily. Fun lies in ability to include R code chunks in document which makes it responsive. Another interesting factor is that, you can make the document intelligent with this. I can write, I have 'r 4+6+5' lines of code in this page and it will display as, I have 15 lines of code in this page. So cool right, A simple inline computing engine is fun to work while documenting. Moreover this format can include table of contents easily with styling css themes available to beautify the document.

The best way to go for RMarkdown is to download Rstudio, an open source IDE for developing R based packages. Its very helpful because the

  • R console,
  • realtime html viewer,
  • markdown text editer all available under one single window.

While executing R commands, I can see how my code reflects without going to a browser, console gives warnings and text editer responds to syntaxes. What more i need to jump start. This tutorial will help you to install r base packages in ubuntu.

Rstudio needs knitr, a package which gives several dynamic capabilities and pandoc for file conversion into html. Once you have rstudio ready with above packages, go to File and create a new RMarkdown file.

Go to File > New File > RMarkdown (.Rmd)

I got a sample page iside Rstudio with some demo code. Clicked on the Knit HTML icon at the top-center of text editor. Boom !. I got my HTML page rendered in a second on the right side pane. Its just awesome.

rmarkdown

rstudio

Decided to remove all the contents and started my documentation saga with Rmarkdown. It can also use css files to stylise. I havent experimented much with it so far. All I am doing now is to get familiar with RMarkdown and finish my initial documentation.

I am keeping a book based documentation theme. Every week’s documentation will be divided as

  • Introductory notes from Neils lecture,
  • Stating My objectives,
  • Sharing my experience with tools,
  • detailing the approach i used to finish the assignment
  • publishing my insights of the week.

Finally copied my files to my local git folder, and pushed to fablabtrivandrum repo.

git pull                  # pull other students changes
git add --all             # add your changes
git commit -m "message"   # write a meaningful message
git push
  • Task Management is done with Taiga. I tried many other platforms. What I wanted was an online task management platform, where a bit of data visualisation tools are also available. I created a profile in Taiga in my name. Created a sprint, (sprint is a time bounded tracking event), FabAcademy2016 from 27 Jan to 22 June. Created next sprint from 3 Feb to 10 Feb, with CAD as name. I am gonna use the platform to manage my weekly tasks and final project. My final project can be tracked here and weekly projects on corresponding sprints.

My Insights

  • Git and Version Control : GitLab is the online repo linked to your workspace, Git is the version control architecture to manage the repo. Git commands help you do the basic updates and analysis. Commit gives you the history of project.

  • Markdown and Documentation : Markup and Markdown are two different web content creation standards.HTML is Hyper Text Markup Languagae, which uses markup elements to distinguish form and function. Markdown is created for user generated content platforms like stack overflow, github etc where the content made by any public user will not conflict with existing markup elements. John grubber created markdown approach, which helped different markup languages.

  • RMarkdown

  • Html conversion

  • Basic syntax

  • Markdown-Cheatsheet

  • RMarkdown-cheatsheet

  • Task Management and Taiga : Taiga is an open source platform to track project development. Basic workflow is interesting, user needs to tell taiga a userstory and tasks can be created out of it. Time bounded tasks can be created as sprints. Assigned Points related to each user story will be added when the tasks marked as complete.

Final Project

I have been dabbling around robotics for a while. This semester i am gonna experiment a two 6 DOF arms working collaboratively to help the master in his works. Modules of project will be basic Robotic arm design with 6DOF, Two Arm control/communication interface, I/O device to teach the arm for an action, Basic Gripper design.

Not sure how far i will finish in this semester. To me its worth spending my time and curiosity on something like this. Ofcos it can be mounted with whatever we want to on the hand. Still my aim will be to impart some AI into the platform.

A first look of what i am intented to make is shown here.

Ofcourse many things including selection of motors, torque calculation, weight management, forward and inverse kinematics, code for close loop feedback, communications etc need to be figured out. Still the effort is pushing me to look on different aspects of HTMAA while designing and making the project.