Difference between revisions of "User:Bhinesley"

From BRL-CAD
(Experience: removed redundant statement)
(GSoC 2012 Project)
 
(40 intermediate revisions by 4 users not shown)
Line 1: Line 1:
 
== Who I am ==
 
== Who I am ==
My name is Brandon Hinesley. I am a 26 year old, unemployed, full-time student finishing up my sophomore year of a Bachelor of Science in Computer Science. I live in California. My preferred coding environment is in any *nix operating system, while using vi and screen.
+
My name is Brandon Hinesley. I'm a 27 year old, unemployed, full-time student in my junior year of a Bachelor of Science in Computer Science. I live in Bakersfield, CA. My preferred coding environment is in any *nix operating system, while using Vim and screen/tmux.
  
 
== Contact ==
 
== Contact ==
 
*IRC nick: bhinesley
 
*IRC nick: bhinesley
*email: [mailto:bhinesley@gmail.com bhinesley@gmail.com]
+
*email: [mailto:bhinesley+brlcad@gmail.com bhinesley@gmail.com]
  
 
== Experience ==
 
== Experience ==
I have 5 years of experience designing [https://picasaweb.google.com/lh/photo/_dWpWLr1esGb16X7_4DlNHMyrgI048JfNwPx7Dl9cn0?feat=directlink commercial plumbing systems in 3d], using AutoCAD. My experience is minimal with C/C++, Java, and Python, but I have coded dozens of VBA programs for several companies I have worked for. I was a Linux systems administrator for a small business network, as well, for about 3 years.
+
I participated in [[#GSoC 2011 Project|GSoC 2011 with BRL-CAD]], under Cliff, my official mentor. I have 5 years of experience designing [https://picasaweb.google.com/lh/photo/_dWpWLr1esGb16X7_4DlNHMyrgI048JfNwPx7Dl9cn0?feat=directlink commercial plumbing systems in 3d], using AutoCAD. I've also [https://picasaweb.google.com/lh/photo/uy-_CFMyTMVmso32iUyjV9MTjNZETYmyPJy0liipFm0?feat=directlink fooled around] a [https://picasaweb.google.com/lh/photo/HAuEHnoczzi-NEM0Gs5fM9MTjNZETYmyPJy0liipFm0?feat=directlink bit] in [https://picasaweb.google.com/lh/photo/RtLNLlTFSzjZHFWkb3lbZtMTjNZETYmyPJy0liipFm0?feat=directlink Blender]. I have experience in C/C++, and Tcl/Tk/Itcl/Itk. For 3 years I was a system administrator for a Linux/Windows based small business network.
  
 
== GSoC 2011 Project ==
 
== GSoC 2011 Project ==
I'm [http://www.google-melange.com/gsoc/project/google/gsoc2011/bhinesley/10001 migrating MGED commands to Archer], and cleaning up existing commands.
+
See the [[User:Bhinesley/gsoc2011|log and timeline]] or the [http://www.google-melange.com/gsoc/project/google/gsoc2011/bhinesley/1000 official GSoC project summary] for details. I migrated MGED commands to Archer/libged, and cleaned up existing commands. Later in the program, my focus shifted towards adding new capabilities to the libged oed commands, rather than simply migrating them.  
  
=== Log ===
+
== GSoC 2012 Project ==
*06/04/11
+
See my [[User:Bhinesley/gsoc2012|GSoC 2012 proposal drafts]].
**Reading documentation today.
 
*06/03/11
 
**Since the man command was made functional yesterday, today I started work on moving it into it's own file/class in tclscripts/man_browser.tcl. The class is now partially functional, and Archer.tcl has been mostly modified to work with it. I'm having problems with some Itcl/Itk stuff, so it's back to the books tomorrow.
 
*06/02/11
 
**I was still having problems today, but I knew that I really just need to read some more, so that's what I did. A couple hours later I figured out what I was doing wrong and made some progress.
 
**The man command only accepts commands that in fact have man pages as an argument, launches the man page browser,<s> but I'm not sure how to load the page for a particular command yet.</s> and loads the man page from the args. It appears to be fully working, plus improvements. There is still some refactoring/cleanup to do, though.
 
**Note: It would be nice if the man page browser TOC would jump to commands based on keyboard input, or if it had a filter. I've proposed it in #brlcad; I'll look into this once <s>I have a better handle on things</s> I'm done migrating it.
 
*06/01/11
 
**Reading documentation. Resuming migration of man command tomorrow.
 
*05/31/11
 
**Started logging progress to this wiki.
 
**Submitted patch [https://sourceforge.net/tracker/?func=detail&aid=3309910&group_id=105292&atid=640804 3309910]. This modifies Archer's opendb command, so that when no arguments are passed it behaves similarly to MGED. There is a small bug that I'm not sure how to fix yet.
 
**Taking (probably) the rest of the day to read Tcl/Tk and Itcl documentation.
 
*05/30/11
 
**Mostly done adding the man command to Archer; running into a wall with my Tcl/Tk and Itcl knowledge.
 
*05/29/11
 
**Submitted patch [https://sourceforge.net/tracker/?func=detail&aid=3309107&group_id=105292&atid=640804 3309107]. The Archer closedb command is an explicit part of my project.
 
**Submitted patch [https://sourceforge.net/tracker/?func=detail&aid=3309109&group_id=105292&atid=640804 3309109]. Changed MGED's new file input box to a dialog.
 
  
=== General plan ===
+
== Misc ==
My development timeline is rear-loaded. My plan is to migrate the 2 commands in each of the first two milestones quickly. I can then focus on cleaning up Archer  commands in order to become proficient with the relevant code. The remaining commands will be more challenging, so this will help later on.
 
  
=== Development timeline (from proposal) ===
+
=== Edit command, TODO ===
*June 14th
+
# Getting help for the edit subcommands is confusing. ex: 'help translate' doesn't work, since translate is really just a subcommand of edit. The current workaround is to use 'edit help translate' or 'translate help'.
**Milestone 1
+
# It is not possible to use the batch operator '.' as a particular coordinate, i.e. 'translate -k -y . -a cube.s sph1.s sph2.s sph3.s' will not work. It would increase orthogonality if this were supported, although it's not strictly necessary. A workaround for the aforementioned example is 'translate -k . -a -y cube.s sph1.s sph2.s sph3.s'. It would take some doing to get this working, but it could be viewed as an opportunity to refactor some poor design decisions along the way.
***A minimum of 2 commands will have been migrated to Archer by this date.
+
# All testing has been done by hand. There are so many possible combinations of options/args, surely some have been overlooked.
*July 5th
+
# Cleanup logic per TODO/FIXME's in edit.c. Minor impact.
**Milestone 2
+
# The basic commands rotate and scale are not yet implemented
***A minimum of 4 commands will have been migrated to Archer by this date.
+
# Other subcommands could be written, for example:
*July 5th to 11th
+
#* '''swap''' - switch one object out with another
**Prepare for mid-term evaluation: cleanup, review, handle of unanticipated issues
+
#* '''align''' - line several objects up with points on one or two axes (besides an intuitive name, it's not clear if this would be any better than using translate to perform this task, for ex: 'translate -k . -a -y cube.s sph1.s sph2.s sph3.s' moves sph[1-3].s to the same y-coordinate as cube.s, without changing x/z positions.)
*July11th – July 15th
+
#* other ideas?
**Mid-term evaluations due
 
*August 2nd
 
**Milestone 3
 
***A minimum of 7 commands will have been migrated to Archer by this date.
 
*August 16th
 
**Suggested 'pencils down' date
 
**Milestone 4
 
***A minimum of 10 commands will have been migrated to Archer by this date.
 
*August 16th - 22nd
 
**Prepare for firm 'pencils down' date: cleanup, review, handle unanticipated issues
 
*August 22nd
 
**Firm 'pencils down' date
 

Latest revision as of 01:43, 28 March 2012

Who I am[edit]

My name is Brandon Hinesley. I'm a 27 year old, unemployed, full-time student in my junior year of a Bachelor of Science in Computer Science. I live in Bakersfield, CA. My preferred coding environment is in any *nix operating system, while using Vim and screen/tmux.

Contact[edit]

Experience[edit]

I participated in GSoC 2011 with BRL-CAD, under Cliff, my official mentor. I have 5 years of experience designing commercial plumbing systems in 3d, using AutoCAD. I've also fooled around a bit in Blender. I have experience in C/C++, and Tcl/Tk/Itcl/Itk. For 3 years I was a system administrator for a Linux/Windows based small business network.

GSoC 2011 Project[edit]

See the log and timeline or the official GSoC project summary for details. I migrated MGED commands to Archer/libged, and cleaned up existing commands. Later in the program, my focus shifted towards adding new capabilities to the libged oed commands, rather than simply migrating them.

GSoC 2012 Project[edit]

See my GSoC 2012 proposal drafts.

Misc[edit]

Edit command, TODO[edit]

  1. Getting help for the edit subcommands is confusing. ex: 'help translate' doesn't work, since translate is really just a subcommand of edit. The current workaround is to use 'edit help translate' or 'translate help'.
  2. It is not possible to use the batch operator '.' as a particular coordinate, i.e. 'translate -k -y . -a cube.s sph1.s sph2.s sph3.s' will not work. It would increase orthogonality if this were supported, although it's not strictly necessary. A workaround for the aforementioned example is 'translate -k . -a -y cube.s sph1.s sph2.s sph3.s'. It would take some doing to get this working, but it could be viewed as an opportunity to refactor some poor design decisions along the way.
  3. All testing has been done by hand. There are so many possible combinations of options/args, surely some have been overlooked.
  4. Cleanup logic per TODO/FIXME's in edit.c. Minor impact.
  5. The basic commands rotate and scale are not yet implemented
  6. Other subcommands could be written, for example:
    • swap - switch one object out with another
    • align - line several objects up with points on one or two axes (besides an intuitive name, it's not clear if this would be any better than using translate to perform this task, for ex: 'translate -k . -a -y cube.s sph1.s sph2.s sph3.s' moves sph[1-3].s to the same y-coordinate as cube.s, without changing x/z positions.)
    • other ideas?