Summer of Code 2008

From Emergent

Jump to: navigation, search

Contents

Top priority major effort items

This list is intended to be in rough priority order within categories, and overall categories in rough priority order but with people working in parallel..

Misc

GUI

  • [BETA] rewrite edit panels using QFormLayout framework (Qt 4.4 only) -- hopefully much faster rendering! current system is deadly with larger edits (Brad)
  • UNDO!
  • (related to Undo) autosave
  • [BETA] tables: 4d grouping in data editor; possibly user-controllable grouping
  • tables: tweak the external table support to make it more automatic -- in essence, enable tables to transparently be external files (no manual saving required)

Threading and GPU

see Benchmark Analysis for detailed results

  • optimized cons -- new design for optimizing the connection-level memory and access stuff
  • [DONE] Update Bench code (Brad):
    • more modular: try to make the net stuff independent of the algo stuff
    • implement conventional (legacy) and Qt 4.4 Concurrency threading
  • Integrate threading more seamlessly with existing code and fix weird dispatch or whatever performance bug (Brad, Randy)
  • We should also explore an alternative "best use" of cores, which would be to provide very simple built-in support for running parallel batches -- right now, it is quite "geeky" (command line), but most serious users will need to do this, so gui support would be great
  • Do initial impl of GPU sender-based comp in bench code and determine if this is feasible -- very important for spec'ing cluster etc.

Building/Plugins/64 bits

  • convert to CMake? (Brian, Randy)
  • [PROTOTYPED (on Win64)] (Win) move to VS 2008 (this is needed for Qt, and to keep up to date) (Brian, Brad)
  • [PROTOTYPED (on Win64)] (Win) need to move to the open source version of Qt (Brian, Brad)
  • thereby fixing all issues with plugins? (Brian, Brad) NOTE: this requires coordinated effort with 4.1 and cmake to address issues of plugins and better integrate to Emergent

64 bits

  • validate on Mac
  • [DONE--seems to be working] tease out remaining issues, if any, on Linux
  • [PROTOTYPED] Win64 (Brad)
    • STATUS: initial debug run crashes on proj load in Coin somewhere
    • ISSUES: simage not ready for Win64; sndfile currently not ready for Win64 (but may be soon, according to Erik)

Net visualization etc.

  • simple table-based UnitNames paradigm (w/ option to suppress excessive repeating with groups -- overclutters display)
  • the network "foot" guy at the bottom is a PIG! -- maybe we can provide a way to control what you see on it (which could be nice if you want to add stuff not there!) -- also add rotation, positioning of it (Randy)

Web interfacing

  • libsubversion interface to checkin/out models, programs etc: need to design how this will work (Brian, Brad, Randy)
  • some kind of additional interface to wiki that somehow coordinates with wiki (Brian, Wolfi, Brad, Randy)
  • perhaps some further way of coordinating wiki/svn with ModelDB

Server socket interface

  • finish that and test with ACT-R etc (Brad, Randy)

Other lower pri/minor stuff

  • data tutorial!!! (Randy)
  • finish gendoc (Brian)
  • GLM/ANOVA other common data analysis routines that are easy to impl but powerful and widely used (Randy w/ help from Jeremy, Brad)
  • data code for dealing with composting sub-group level bit patterns to make overall input patterns (bits lib from hip model)
  • hot links between data tables and MATLAB, R, etc?
  • determine if neuroml would actually be of any value to anyone at all before impl
  • maybe that new glass brain fmri-like viewer?

Programs and Parameters

  • event-driven, "inside out" standard program, to facilitate things like auditory, visual, motor, integrated models, etc. that have various things at various time frames, and tend to be more continuous than trialed
  • clean up and possible reorganize presentation of methods in browser -- VERY confusing right now (hint: people are often most likely to need the methods unique to the type of object, NOT common taBase guys): Randy: do you know about the category selector?? perhaps making this have memory would help a bit. really just a matter of adding more #CAT_ comments and perhaps tweaking the selector

Audioproc

  • provide simple visualization of blocks -- would be esp nice if they had a little graphic on them, so you could just snapshot the thing for a diagram in posters etc. Randy: this strikes me as exceedingly specialized and better suited for powerpoint..
  • autocorrelation, for decoding the Interaural Time Difference block data

Done

  • [DONE] fixup remaining QT3_SUPPORT dependencies (brad)
  • [DONE] fix tree browser move operation -- more generally revisit design of tree browser code relative to Qt mechansims and try to find a more natural impl -- this lets us upgrade to recent Qt releases on mac, which fixes other bugs.. (Brad, Randy)
  • [DONE] keyboard accelerators (emacs keys in all edits, tab completion in Program exprs (highpri)
  • [DONE] fix view context menus to show two sub-menus, one for the view and one for the object being viewed. BugID:150
  • [DONE] add flag to std vars to enable them to be local only, esp for objects, so the objs don't stick with ref counts -- this is esp important for things like mat slices -- this is already dealt with -- there is a LocVars progel that you put these guys in -- (maybe) provide the mat slicing El or at least try to make this easier -- this is dealt with above and just need to add refcounting to css taPtr* guys.
  • [NOT DOING!] more user-friendly way to express global model parameters: Randy: we've been through this 100 times -- give up. the current system is great. it takes one line to grab vars from other programs. keeps things encapsulated while also providing easy sharing.
  • [DONE] keyboard shortcuts for programming, maybe some kind of overall prefs editor but maybe not..) (Randy, Brad, Brian?)
Personal tools