User:Bhinesley
Contents
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 vim and screen.
Contact
- IRC nick: bhinesley
- email: bhinesley@gmail.com
Experience
I have 5 years of experience designing 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.
GSoC 2011 Project
I'm migrating MGED commands to Archer, and cleaning up existing commands.
Log
- 07/7/11
- Design/mock manual page for the rotate command seems to be mostly done. It could probably use some more examples to ensure that I haven't missed anything.
- Plan for the week
- Finish all 3 command mock manuals
- Ensure the proposed operations are acceptable to everyone
- Implement alter command syntax handling
- Get translate working again (but through alter this time)
- 07/6/11
- Improved some things with the proposed translate command functionality.
- Resolved all known conflicts and ambiguities in rotate command manual page. Started adding to EXAMPLES section, to help define behavior further.
- Laid out skeleton of scale command's manual page
- 07/5/11
- Started inventing new rotate command behavior by writing a mock manual page for it, as inspired by translate command. Much more complicated, though.
- 07/7/11 - 07/7/11
- 07/1/11
- Revised translate command manual page per conversation with Sean.
- Started setting up for consolidating translate/rotate/scale -> alter, for common syntax handling.
- 06/30/11
- Proposed new functionality for the translate command, and wrote a mock manual page for it. Hashed out the details with Sean.
- Cleaned up some translate command logic.
- 06/29/11
- translate now supports all 4 types of translations mentioned yesterday.
- Plan
Work on making ged_translate() support the remaining 3 main types of translations- Add support for absolute positioning using preset or default keypoints
Rename translate() (probably), and further prepare it for being exposed via ged_private.h- Implement on ged_rotate() and ged_scale(). I may pull common functionality out of ged_translate() and put it into one large function or wrapper that handles all 3 commands, such as "ged_oed()", if they are similar enough.
Implement one of the simpler commands on my list, to ensure that my GSoC milestone #2 is satisfied.
- 06/28/11
- Translation of all objects in a single combination's tree now works.
- Note: not including absolute translations using a keypoint, the mged oed equivalents of the 4 main types of translations are:
oed / comb1.c/kp.s ;# all instances of comb1.coed comb1.c comb2.c/kp.s ;# only the instance of comb2.c in comb1.coed / shape.s ;# all instances of shape.soed comb1.c shape.s ;# only the instance of shape.s in comb1.c
- 06/27/11
- Isolated core of ged_translate functionality into a separate function, which will eventually be exposed so that other functions can use it (ex: otranslate)
- 06/26/11
- 06/25/11
- 06/24/11
- Wrote ged_validate_path()
- Quieted all 511 warnings about using number formatting other than %zu for a size_t argument.
- Plan
- The next step for the translate command is to perform the actual translations.
- 06/22/11, 06/23/11
- Created a ged_is_path function to determine if db_full_path structs contain valid paths (this will be used by the translate command, at least)
- 06/21/11
- 06/17/11, 06/20/11
- Got behind on this log. I took the day off on Saturday, Sunday, and Tuesday.
- I've become more familiar with how the .g database is used internally, and also cleared up some misunderstandings of how the MGED oed operations work.
- Implemented fairly robust argument handling for translate command.
- Plan
- Continue working on 'translate'. The first target is a working command with defaults only.
- 06/16/11
- Started setting up the translate command (temporarily translate2 for mged)
- 06/15/11
- Reading code and messing around with MGED/Archer to get a handle on how oed works
- Replaced 'erase_all' command with 'erase -r'
- 06/14/11
- Reading code; I couldn't really get anything accomplished today, so perhaps we'll call this my day off.
- Plan
- Start work on migrating next set of commands
- 06/13/11
- Tried to fix a bug in Archer's ls command, where any arguments are echoed, regardless of whether they are objects. Identifying the problem was the easy part... it would be complex to fix it properly.
- Tracked down a commit that revealed a bug, which prevented ray-tracing.
- 06/12/11
- Fixed a bug in Archer/MGED man command handling
- Fixed a bug in ManBrowser
- Fully documented and cleaned up ManBrowser
- 06/11/11
- 06/10/11
- Did a manual inspection of all 58 lsort calls, and ensured that any lsearch's that immediately followed them used the -sorted switch to force binary rather than linear searching.
- Plan
- Patch bugs, clean up Archer commands, etc.
- Continue reading code to figure out how a libged registry might work.
- 06/09/11
- Spent about 1/2 the day trying to build with cmake (I've been using automake up until now). Ended doing a fresh checkout and building outside the source directory, as recommended by ``Eric.
- Committed all of the patches that I had submitted before I was given commit access.
- Reading code to gain an understanding of how a libged registry might be constructed.
- 06/08/11
- Made ManBrowser fully operational as a replacement for existing faculties.
- Added -disabledPages and -enabledPages options to ManBrowser, to allow for fine-tuning of available pages.
- Modified Archer/MGED to use ManBrowser, and removed obsoleted faculties.
- 06/07/11
- Changed ManBrowser to inherit from iwidgits::dialog. It now creates the window properly, activates, loads the table of contents and Introduction.html. Selection binding of the ToC is not working yet. Still some cleanup to do.r
- Plan: I'd really like to have ManBrowser done within a day or two, so that I still have about a week before my first milestone. We'll see.
- 06/06/11
- Tried to figure out how to reliably center the Manual Page Browser without manually determining the center, etc. Could not get it working correctly if my life depended on it.
- Read a chapter on Itcl, and made some changes to ManBrowser because of it.
- I received commit access today, so I cleaned things up so that I could start committing regularly. I submitted my working changes to the man command, and my nonworking progress on the ManBrowser mega-widget.
- 06/05/11
- 06/04/11
- 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,
but I'm not sure how to load the page for a particular command yet.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
I have a better handle on thingsI'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 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
General plan
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)
- June 14th
- Milestone 1
- A minimum of 2 commands will have been migrated to Archer by this date.
- Milestone 1
- July 5th
- Milestone 2
- A minimum of 4 commands will have been migrated to Archer by this date.
- Milestone 2
- July 5th to 11th
- Prepare for mid-term evaluation: cleanup, review, handle of unanticipated issues
- July11th – July 15th
- Mid-term evaluations due
- August 2nd
- Milestone 3
- A minimum of 7 commands will have been migrated to Archer by this date.
- Milestone 3
- 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