Brainstorm
From Helioviewer Wiki
Helioviewer Brainstorm
Contents |
Helioviewer Project
Usability
- Create a short page explaining, in simple terms, what the different data sources are. (see http://blog.chromoscope.net/data/ for an example).
- Enable Helioviewer.org to function even when offline.
Meta
- Status page showing the status of each of our services, e.g., is the JPIP server working? Is the tiling server working? Are we transferring files from LMSAL? Are we writing files locally and are those files being transferred?
Helioviewer.org
Features/Events
- The feature/event accordion allows you to navigate to a given event time. update observation date time to that of the feature/event?
- Add animation to event marker icons so that when mouse becomes relatively close, they enlarge and become easier to click. For hv.org, this could be done using something like jQuery Approach.
- Use event marker size or transparency to indicate closeness to observation date? (that way you can draw user's attention to most relevant events).
- Server-side or client-side interpolation between event date and image date to more accurately plot event markers.
Usability
- Enable automated and simple bug submitting using the Launchpad API. (Currently unable to install required python modules on web-host).
- Refocus viewport after resizing? (e.g. grab center coords before-hand, then use moveTo to re-center on that point, or, can keep track of size change in Width/Height).
Create a stack for message-queue items.DONE: MessageConsole Class/jGrowl.*- For new Helioviewer.org installations, have index.php display a welcome message and installation instructions. This could be done either by renaming the actual index.php to something else, or by having some flag in Config.ini (e.g. display_install_instructions) which is initially set to true and is turned off during the installation.
Performance
Client-side
- Use CSS sprites for event icons, etc.
- Optimize CSS Selectors
- Optimize JavaScript $() Selectors - For CSS, simpler selectors perform better. How about in JS? For example, profile for-loop for $("div > .test") vs. $(".test").
- Client-side tiling using canvas (example)
- Investigate the possibility of using web workers to speed up certain actions.
Server-side
- APC
- Add support for JasPer and make it easy to chose either Kakadu/JasPer.
Monitoring
- Create a daily "profiles" folder to monitor effects of changes in code on performance. Firebug, YSlow, and Google Pagespeed can all be used. Is it possible to automate the profiling & logging process?
Server-side/API's
- Google Maps style API/Mashups
Other
- Timepicker-style Layer Selection? (http://haineault.com/blog/71/)
- Potential of HTML5 - for example, detecting HTML5 features http://diveintohtml5.org/detect.html
- Tornado web server from Facebook - http://www.tornadoweb.org/
- More HTML5 http://carsonified.com/blog/dev/html-5-dev/how-to-draw-with-html-5-canvas/
- Canvas for Explorer http://excanvas.sourceforge.net/
- Free plugin Quicktime 7.6.4 running in Firefox 3.5.3 (OS X 10.5.8) can display JPEG2000 files.
- Visualization library for Javascript http://thejit.org/
- Javascript and SVG http://karmaeducation.org/2009/12/17/tutorial-iii-the-adventure-continues-javascript-and-svg/
- Time Series Data Server http://sourceforge.net/projects/tsds/files/
- Helioviewer Mobile ("Sunspot?")
- Cross-browser Java applet plugin that we might be able to use to write only Theora on the server but play everywhere using Cortado http://www.theora.org/cortado/
- Jquery Plugins http://www.techfeedr.com/blog/2010/02/10-most-useful-jquery-plugins/
- New jQuery date picker http://www.filamentgroup.com/lab/update_date_range_picker_with_jquery_ui
- Live broadcast system to allow site admins to send out exciting messages to users currently on Helioviewer.

