Editing User:Hcurtis0010/GSoC2014Proposal

From BRL-CAD

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision Your text
Line 1: Line 1:
 +
Personal Information
  
 +
Name: Henry Curtis
 +
 +
E-mail Address: hcurtis0010@kctcs.edu
 +
 +
IRC Username: hcurtis
 +
 +
 +
 +
Background Information
 +
 +
This summer I hope to participate in GSoC for the first time. My background is a little unusual in that I worked in the advertising industry for 11 years before being downsized. Later, I was fortunate enough to be selected for a program called Code Louisville whose purpose is to increase the number of programmers in my area.
 +
 +
Code Louisville was a positive experience that led me to return to school full time in order to earn a programming degree. I am currently in my second year at Jefferson Community and Technical College, and my course work thus far has included C++, Java, HTML5, CSS, JavaScript, and PHP.
 +
 +
 +
 +
Project Title
 +
 +
Using a Reusable Library to Improve DXF Import
 +
 +
 +
 +
Project Summary
 +
 +
DXF, or Drawing Exchange Format, is graphic image format often used with CAD software like OpenSCAD. Currently, OpenSCAD imports DXF manually and cannot handle elements such as curves. To address this problem, I will convert BRL-CAD's DXF importer into an external library that can be used with OpenSCAD. Because only one OpenSCAD class contains code for the DXF import, modifications to the import will not negatively affect the other source code.
 +
 +
 +
Detailed Project Description
 +
 +
Objective
 +
Enable the use of a convenient, reusable BRL-CAD library for DXF import to OpenSCAD
 +
 +
 +
Project Scope and Approach
 +
Within this proposal, I consider improving import as critical and deem related tasks (such as improving export) as something that can also be done if time permits.
 +
 +
Also, I will use a wide variety of resources to help me achieve my goal. These include my own knowledge, mentor feedback, books, articles, and sites like forum.openscad.org.
 +
 +
 +
Documentation
 +
A library's documentation is important because it helps determine the way in which that library will be utilized. Consequently, I will append Doxygen comments to the library files.
 +
 +
 +
Additional Comments
 +
It bears mention that the use of a reusable external DXF import library is a good idea also because BRL-CAD's license is less restrictive than that of OpenSCAD. That increases the likelihood that the library will be disseminated widely, taking advantage of one of open-source software's major benefits.
 +
 +
 +
Deliverables/Outcomes
 +
A basic, reusable, external DXF import library that supports items like splines and that will be incorporated into OpenSCAD
 +
 +
A stronger bond between the BRL-CAD and OpenSCAD communities--the result of a true win-win situation
 +
 +
 +
Development Schedule
 +
April 21-May 19 (Community Bonding Period)
 +
At this time, I will learn about the way in which BRL-CAD conducts business. I will also make use of the valuable opportunities I will have to interact socially with my teammates.
 +
 +
Moreover, during this phase I will be examining the source code, reading the documentation, and conducting research. Next will come in-depth analysis, algorithm creation, and coding.
 +
 +
Throughout this period, I will discuss with the mentors and other developers how I can optimize the improvements I am incorporating and what the final plan for creating the new library will be. The result will be a well-considered course of action.
 +
 +
 +
May 19-June 23 (Evaluation Period 1)
 +
Although there might be some additional research, analysis, and design during this phase, my principal focus will be writing code. I will check in often with my mentors and record my daily progress in a log.
 +
 +
 +
June 23-July 27 (Evaluation Period 2)
 +
I will continue writing code, checking in with my mentors, and recording my progress.
 +
 +
More specifically, this phase will involve activities such as the implementation of the new library's structures, the selection of functions' details (such as return types and parameters), unit-level testing, and code-coverage assessment.
 +
 +
I will also incorporate error handling into my code and add documentation. Incidentally, the documentation will appear not only on the BRL-CAD wiki but also in pdf files.
 +
 +
 +
July 28-August 3 (Wind-Down)
 +
This is when I will tie up any loose ends. This might include scrubbing code, improving the documentation, and performing additional tests. I also will produce demos for the new functionality and conduct performance analysis.
 +
 +
 +
August 4-10 (Delivery)
 +
I will put the final touches on the project and deliver it.
 +
 +
 +
Deadlines
 +
August 11: Recommended “pencils down” date
 +
August 18: Final “pencils down” date
 +
 +
 +
Major Milestones
 +
By June 23: Finish a solid first draft of the new library
 +
 +
By July 27: Complete unit testing of the new library
 +
 +
By August 3: Incorporate the finished new library into OpenSCAD
 +
 +
By August 10: Deliver the final product to my mentoring organization
 +
 +
 +
 +
Time Availability
 +
 +
I will work on the project 40+ hours/week.
 +
 +
I will have no competing demands on my time during the Summer of Code period:
 +
 +
I will not have any other jobs, and I will not be in school.
 +
 +
I am single and have no children.
 +
 +
I will not be taking any trips during the Summer of Code period. (My plans are firm on that.)
 +
 +
Also, once GSoC ends, I will continue contributing to my project, to BRD-CAL, and to OpenSCAD.
 +
 +
 +
 +
Why BRL-CAD?
 +
 +
I appreciate how encouraging and helpful BRL-CAD’s mentors have been from the start. In addition, I like the very detailed and well-organized GSoC information that the organization has provided online. It is obvious that the mentors' level of sincerity and professionalism is very high, and that is a another reason I am interested in working with them.
 +
 +
 +
 +
Why Henry Curtis?
 +
 +
Although my programming skills are still developing, I can offer the team many strengths.
 +
 +
I am an experienced, mature worker who will have no problem putting in 40+ hours a week, following action plans, and meeting deadlines. I have had many years of full-time employment in which doing that was critical to my success.
 +
 +
As I wrote above, I will have no competing demands on my time during the Summer of Code.
 +
 +
I have no problem receiving and offering constructive criticism.
 +
 +
I am an excellent communicator both verbally and in writing.
 +
 +
I am organized and an outstanding planner.
 +
 +
I have extensive experience working in teams because of my many years in advertising (an industry in which teamwork is crucial). Also, I have worked in collaboration with others on many school projects. My team experiences have helped give me the right attitude to succeed in open-source projects.
 +
 +
I enjoy learning new things, and I possess a naturally analytical mind.
 +
 +
I am passionate about doing a good job, and I feel fortunate to have found an organization that might be open to giving an entry-level programmer like me a chance.
 +
 +
I like geometry, and the technology behind CAD fascinates me.
 +
 +
Because both BRL-CAD and I are in the United States, coordinating schedules with mentors (if needed) would be easy.

Please note that all contributions to BRL-CAD may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see BRL-CAD:Copyrights for details). Do not submit copyrighted work without permission!

To edit this page, please answer the question that appears below (more info):

Cancel Editing help (opens in new window)