See http://www.softwarequalityconnection.com/2011/09/making-the-most-of-gpu-acceleration-in-your-web-apps/
Some frameworks for WebGL
Getting started with Three.js
Volume rendering example
Wednesday, September 7, 2011
Tuesday, September 6, 2011
How to kill a process tree on Windows
Option 1: Query the system to generate the process tree, then kill each process in the tree as noted below.
http://stackoverflow.com/questions/3235218/how-terminate-child-processes-when-parent-process-terminated-in-c/5680096#5680096
http://stackoverflow.com/questions/3235218/how-terminate-child-processes-when-parent-process-terminated-in-c/5680096#5680096
However, there is a corner case that if some of the processes in the tree invokes some other processes between the step collect process <=> create tree, then we will miss the newly created process.
Option 2: Use Job Objects mechanism provided by Windows
On the topmost parent, create a Job Object and assign the current process to it. This way, the later invoked descendant processes are automatically added into the Job Object. Then we can kill the Job Object to kill the entire tree.
http://msdn.microsoft.com/en-us/library/ms684161%28VS.85%29.aspx
This option avoid the corner case on Option 1, however, we need to program the code into the parent process in order to do this.
Example of using Job Objects from C#
http://stackoverflow.com/questions/3342941/kill-child-process-when-parent-process-is-killed
DLL Init/Cleanup sequence
See ctrdll.c
- crtdll.c: BOOL WINAPI _CRT_INIT()
- crtdll.c: BOOL __cdecl __DllMainCRTStartup()
... this call _CRT_INIT()
- crtexe.c: int __tmainCRTStartup()
... similar to __DllMainCRTStartup()
Basic sequence for DLL_PROCESS_ATTACH
for each DLL
- Call __CRT_INIT() -> invoke C initializers then C++ constructors
- Call DllMain hook
Basic sequence for DLL_PROCESS_DETACH
for each DLL
- Call DllMain hook
- Call __CRT_INIT() -> invoke C+_ destructors and C atexit()/_onexit() ... reverse order of initialization
Basic sequence for DLL_THREAD_ATTACH and DLL_THREAD_DETACH
for each DLL
- Call DllMain hook
CWinApp::InitInstance and CWinApp::ExitInstance are called as part of DllMain hook (they are only called for DLL_PROCESS_ATTACH and DLL_PROCESS_DETACH).
Article regarding the order of DLL loading:
http://blogs.msdn.com/b/oleglv/archive/2003/10/28/56142.aspx
"Well, turns out that the loader seems to be preserving the order in which the imported DLLs are listed in the Imports Section of the loading executable."
- crtdll.c: BOOL WINAPI _CRT_INIT()
- crtdll.c: BOOL __cdecl __DllMainCRTStartup()
... this call _CRT_INIT()
- crtexe.c: int __tmainCRTStartup()
... similar to __DllMainCRTStartup()
Basic sequence for DLL_PROCESS_ATTACH
for each DLL
- Call __CRT_INIT() -> invoke C initializers then C++ constructors
- Call DllMain hook
Basic sequence for DLL_PROCESS_DETACH
for each DLL
- Call DllMain hook
- Call __CRT_INIT() -> invoke C+_ destructors and C atexit()/_onexit() ... reverse order of initialization
Basic sequence for DLL_THREAD_ATTACH and DLL_THREAD_DETACH
for each DLL
- Call DllMain hook
CWinApp::InitInstance and CWinApp::ExitInstance are called as part of DllMain hook (they are only called for DLL_PROCESS_ATTACH and DLL_PROCESS_DETACH).
Article regarding the order of DLL loading:
http://blogs.msdn.com/b/oleglv/archive/2003/10/28/56142.aspx
"Well, turns out that the loader seems to be preserving the order in which the imported DLLs are listed in the Imports Section of the loading executable."
Thursday, August 25, 2011
Thursday, August 18, 2011
Installer
How to enable Windows Installer logging
* http://support.microsoft.com/kb/223300
* Many tips
http://www.robertdickau.com/msi_tips.html
* Orca MSI editor
http://www.technipages.com/download-orca-msi-editor.html
* http://support.microsoft.com/kb/223300
* Many tips
http://www.robertdickau.com/msi_tips.html
* Orca MSI editor
http://www.technipages.com/download-orca-msi-editor.html
Monday, August 8, 2011
Tuesday, July 19, 2011
Sunday, July 3, 2011
Bull's eye
* Bull's eve fusion on Volume Rendering
* Technical Aspects of Bull's eye
Hearts
- {Left,Right} x {Atrium,Ventricle}
- Diastole, Systole
- Left Ventricle -> Apex ... Base
- Coronary arteries:
- RCA: Right Coronary Artery
- LAD: Left Anterior Descending
- LCX: Left Circumflex
* Good introduction inside the thesis
* Technical Aspects of Bull's eye
Hearts
- {Left,Right} x {Atrium,Ventricle}
- Diastole, Systole
- Left Ventricle -> Apex ... Base
- Coronary arteries:
- RCA: Right Coronary Artery
- LAD: Left Anterior Descending
- LCX: Left Circumflex
* Good introduction inside the thesis
Saturday, July 2, 2011
Isosurface rendering
http://www.csc.lsu.edu/~karki/SV/09-Isosurfacing.pdf
SlimDX, .NET wrapper for DirectX: http://slimdx.org/
SlimDX, .NET wrapper for DirectX: http://slimdx.org/
Saturday, June 25, 2011
Javascript HTML CSS
* Non-integer offsetWidth and offsetHeight in IE9 and FF4
http://vadikom.com/dailies/offsetwidth-offsetheight-useless-in-ie9-firefox4/
* Memory Leak:
http://www.javascriptkit.com/javatutors/closuresleak/index.shtml
http://msdn.microsoft.com/en-us/library/Bb250448
http://stackoverflow.com/questions/1051090/how-can-i-control-ie6jqueryjquery-ui-memory-leaks
http://www.reigndropsfall.net/2011/01/05/internet-explorer-event-handler-leaks/
http://kirblog.idetalk.com/2011/06/prototype-17-memory-leak.html
Drip http://outofhanwell.com/ieleak/index.php?title=Main_Page
* How to handle IE6
http://www.virtuosimedia.com/dev/css/ultimate-ie6-cheatsheet-how-to-fix-25-internet-explorer-6-bugs
* Speeding up access
http://developer.yahoo.com/performance/rules.html
http://vadikom.com/dailies/offsetwidth-offsetheight-useless-in-ie9-firefox4/
* Memory Leak:
http://www.javascriptkit.com/javatutors/closuresleak/index.shtml
http://msdn.microsoft.com/en-us/library/Bb250448
http://stackoverflow.com/questions/1051090/how-can-i-control-ie6jqueryjquery-ui-memory-leaks
http://www.reigndropsfall.net/2011/01/05/internet-explorer-event-handler-leaks/
http://kirblog.idetalk.com/2011/06/prototype-17-memory-leak.html
Drip http://outofhanwell.com/ieleak/index.php?title=Main_Page
* How to handle IE6
http://www.virtuosimedia.com/dev/css/ultimate-ie6-cheatsheet-how-to-fix-25-internet-explorer-6-bugs
* Speeding up access
http://developer.yahoo.com/performance/rules.html
* Cache control
Four headers:
◆ Last-Modified
◆ Expires
◆ Pragma
◆ Cache-Control
- public: Can be cached anywhere
- private: Only cacheable by browsers
- no-cache: Cannot be cached anywhere
- must-revalidate: Caches must check for newer versions
- proxy-revalidate: Proxy caches must check for newer versions
- max-age: A duration, in seconds, that the content is cacheable
- s-maxage: Overrides the max-age value for shared cachesC
Conditional GET and Etag http://jagbarcelo.blogspot.jp/2009/03/conditional-get-and-etag-implementation.html
Caching tutorial http://www.mnot.net/cache_docs/