<div dir="ltr">Hi Guo Jian,<div style>just so you know, there's another application for the same project. This doesn't mean that yours can't be accepted, but it does impact your chances. Thank you for your interest.</div>
<div style>Good luck,</div><div style>--Juan</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, May 3, 2013 at 1:05 AM, orzhvs <span dir="ltr"><<a href="mailto:orzhvs@gmail.com" target="_blank">orzhvs@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>Hi.</div><div>� � I'm applying for the Google Summer of Code 2013, this is my proposal for the registry merging project.</div>
<div>� � I'll work on improving Wine's registry in its stability and simulation to solve frequently seen non user-friendly problems, which usually caused by that application or system settings are not stored and fetched correctly.�</div>

<div><br></div><div>Project & My Understand:</div><div>� � I'm most interested in the project "Registry - implement merging between HKEY_CLASSES_ROOT and HKEY_CURRENT_USER\Software\Classes".</div><div>� � Its core task is to implement RegOpenUserClassesRoot, which returns a key token of merging view of HKCU & HKLM classes rather than present returning HKCR Classes. The difficulity is that as a view of two independent registry trees, how to treat conflicts and make changes to two seperated entrys when using HKCR as root, and how to achieve the function with no or least effect on other part of registry operation such as RegOpenKeyExX. I have some seed ideas that maybe not mature but I like solving problems initially from a burst port :</div>

<div>� � Scheme 1. Registry operations based on hKey ( handle ) under HKEY_CLASSES_ROOT will be degeneration to full path in text, like "HKEY_CLASSES_ROOT\Subdir1", and try the operation after "HKEY_CLASSES_ROOT" replaced with "HKEY_CURRENT_USER\Software\Classes" and "HKEY_LOCAL_MACHINE\Software\Classes" in order, only the first success operation will be applied. This may satisfy the demand, both for query and modify. For details like the correct order, I'll make it out once get working on it. In this way, the HKCR key subtree does not exist in fact but only exists as a name.</div>

<div>� � Scheme 2. After the base registry is initialized, build the HKCR's subkey trees with a new pulled in object type (say it 'symbol link') that directly point to the correct keys from HKLM or HKCU. Thus operation in HKCR tree are redirected to corresponding branch internally. When operating the HKCR itself, like creating new subkeys direct under HKCR, the operation is redirected to HKCU classes. This scheme seems more fluent but needs some tricks in the server part.</div>

<div><br></div><div>What I'll Do :</div><div>� � First of all I'll do a lot of tests on pure winows registry to definite my questions and guesses, write one or more test reports on different version of windows, some of which is already being done now.</div>

<div>� � Followed by I will design the algorithms and data structures and make a complete development planation.</div><div>� � Then enjoying coding and debuging Wine. I love the procedure, during the longest part of this project, keep writing daily report.</div>

<div>� � Got the plan finished, I will applying improvement.</div><div>� � Finally strict tests will be done to show if I achieved the final goal and a conclude paper will be carefully submitted.</div><div>� � I'd like not only settle down the main project, but also several ideas to make Wine better, which are found in my daily use of Wine, such as add support for the shell context menu in Wine explorer for many convenient shotcuts of some software like the famous 7zip. I'll do this once time allows.</div>

<div><br></div><div>Why Me :</div><div>� � I myself is a faithful user of Wine. I know the thought of Wine and know not only basic usage but also a little implement of it.</div><div>� � I understand Windows registry both Windows API pretty well from nearly 8 years coding. Have done much test and hooks in windows including RegXXX in advapi32.dll or lower level NtOpenKey in ntdll.dll. Further more, I used to do some kernel debug tests and hacks on registry, like hiding, protecting a subkey from regedit, resolving values from hive file rather than using API. These things are done under interests. I've been learning Windows API and OS theories from books and network like msdn for long. Ofcourse there will be no problem in registry knowledge.</div>

<div>� � It's usual for me to write codes more than 1000 lines a day, for self use or for the competation ACM. I believe that I'm a careful man in codes and other things, I like discovering, guessing and proving.</div>

<div>� � To prove I've developed a not too bad coding style, please refer to my submisions on codeforces <a href="http://codeforces.com/submissions/adnim" target="_blank">http://codeforces.com/submissions/adnim</a> (to view code click numbers under column "#").</div>

<div>� � And this may be a little evidence denoting that at least I've used git before, <a href="https://code.google.com/p/eryapass/" target="_blank">https://code.google.com/p/eryapass/</a></div><div>� � I know what should I do and what should not. I'm sure aware of the legal requirements. All of my tests will be done only in the black-box ways. No reverse work on Windows files is allowed and needed in Wine project, though I'm good at that. All codes will be written creatively and nothing will be copied from existing ones like WRK, RcactOS or something else.</div>

<div>� � I love open source. I benefited much from the open source world and I'd be really happy to contribute to it one day.</div><div>� � The last but most important, I'm much willing and I'm looking forward to throwing myself among the crowd of codes this entire summer, making maxium effort to improve Wine. I'd like schedule my personal activities to avoid conflicts with the development, meaning it won't be too busy in my schoolwork.</div>

<div><br></div><div>Wine & Me :</div><div>� � In my childhood, I've been coding in F-Basic on Subor (a kind of TV-based computer made in China) when friends are playing football in yard, at about 8 years old. When I was 12 years old, i was building some little games to happy classmates, and have learned c and c++ 2 years latter, then x86 asm 2 more years latter. And have done some graduation-designs for college brothers before I got to university. Also I've developed some projects for local companies. I first installed Ubuntu in 2010 and gradually I'm interested in open source projects.</div>

<div>� � I'm 21 years old now, studying software engineering in Shandong University of Science and Technology in China. I'm a really enthusiastic user of Wine, who has been using it from version 1.2 to 1.4, on ubuntu, debian and gentoo. Since the first day I apt-got it I could not help trying all applications I used in Windows to it and making them running stably, during which I have learned much about configuring Wine. Another day I began to emerging that and I was once deep interested in building my customed Wine and Wine based tests.</div>

<div>� � I heard about GSoC last year but missed the time. This year, I decided that I will try my best to contribute, transform my ideas to powerful codes that people will run with satisfaction. Please do not hesitate to contact me.</div>

<div><br></div><div>� � Thanks.</div><div>� � Guo Jian</div>
<br><br>
<br></blockquote></div><br></div>