Project Log

Week Log
Week1, Semester 1/2016 1.kick-off meeting on Monday, potential project briefs sent out via Email by Mano. 2.Made a list of project preference and gave it to Mano.
Week2, Semester 1/2016 Had first meeting for my BTech 451 project with project structure and details given out.
Week3, Semester 1/2016 Had another meeting with Mano. In this meeting, I was told to have an overview about my task. Four things have done throughout the week: 1.Had a look at PHP, and saw how HTML was generated from PHP scripts. 2.Had a look at how LinkPad worked. It compiled small C# fragments and gave the results quickly. 3.Had a look at HTML parser. 4.Did some research on reflection and dynamic assembly loading in .NET
Week4, Semester 1/2016 Had a FaceTime with Mano as the regular meeting could not be hold in Easter break. I attended a few tutorials about scripting language and knew the c# code can be compiled on the fly.
Week5, Semester 1/2016 Had a regular meeting with Mano after break, I have made good progress on the my program which was used to test whether C# can be treated like a scripting language, and my program could sucessfully compile C# code within an assembly at runtime.
Week6, Semester 1/2016 Had another meeting with Mano in this week, I was told to extend my program by using One dynamic link library(.DLL) which contains some implementations written by other people, and I did some researches about functionalities given by Reflection in .NET Framework. After having some extent knowledge about scripting language, I used my program to load an assembly that contains some C# code, and then executed them as part of my program, it did invoke a type’s method at runtime.
Week7, Semester 1/2016 Had a regular meeting with Mano and showed my progress, I received some C# code examples from Mano and I learnt a command line option parser by them.
Week8, Semester 1/2016 Mid-break, no meeting. I started to prepare for introduction seminar and learnt about HTML parser.
Week9, Semester 1/2016 I did some research on HTML parser, I found HTML Agility Pack is an agile HTML parser that builds a read/write DOM and supports plain XPath, and I tried to using it to indentify the fragments in the HTML file and figure out the location which line and which characters
Week10, Semester 1/2016 Had a FaceTime with Mano as there was no time to arrange a meeting, it was good to find out that C# code fragments embedded in HTML file could be enclosed within some special symbols and regarded as "Processing Instructions (PIs)".
Week11, Semester 1/2016 Had another meeting in this week. I have checked out that HMTL Agility Pack could not identify "PIs". Then I treated HTML files as XML files and use XML parser, but there still had errors during parsing. I showed Mano my progress and discussed the potential alternative plans and next steps of the project.
Week12, Semester 1/2016 No meeting in last week of this semester. I started to prepare my mid-year report and final exams.
Week1, Semester 2/2016 In this week, we discussed about the second plan, As the HTML Agility Pack does not provide an ability to extract C# fragment codes with format of Processing Instruction (PI) from a HTML file. There may have two alternative ways to resolve this issue, which are creating an own HTML parser based on the requirements given by my project, or introducing a new tag like into HTML file.
Week2, Semester 2/2016 I have been coding for the past week. Still trying to get my own HTML parser completed. After discussing with Mano, we thought first choice was time consuming and could not guarantee the stability of its own, we prefered to take the second solution.
Week3, Semester 2/2016 I have create some sample HTML files with embedded C# code fragments which were enclosed within new tags, and I found they could be extracted out by using HTML Agility Pack without errors.
Week4, Semester 2/2016 Had a regular meeting with Mano. I was told that there is another issue may occur during the parsing step, some special characters need to be escaped in HTML (e.g. <, >, &) and therefore if they appear in code fragments, they need to be escaped too. They may mix-up the view of HTML parser, and errors will appear.
Week5, Semester 2/2016 I still struggled with parsing HTML, since the extracted code fragments could not be invoked rightly at runtime.
Week6, Semester 2/2016 After having a meeting with Mano, I started to merge all steps that I have already studied and finished, then integrated them into a real application.
Week7, Semester 2/2016 I was still working on my program. I also did some tests using my own examples and worked on this section of my report.
Week8, Semester 2/2016 Had a brief discussion with my supervisor about the last step of my coding. The last step is to replace all C# code fragments within HTML file, which means my engine enables to re-edit HTML and replace certain texts inside it. So the idea is having a HTML template with some certain texts that are going to be replaced by other texts, in this project, the certain text are the inner texts of some specified HTML tags.
Week9, Semester 2/2016 I have almost finish my coding, and I had a meeting with Mano this week, we discussed about how to wirte some effective tests for evaluation of my program.
Week10, Semester 2/2016 Had a meeting and showed my supervisor my progress about evaluation, and I was told that my project was well but I had to consider the self-independence of my program, since introducing an external dependency sometimes brings with it a legal security risk. I tried to base our work on existing standard library packages, it would be better and safer.
Week11, Semester 2/2016 This week I had a brief meeting with my supervisor. We discussed about my report and how I should present for final seminar. I started to prepare the final report and seminar.
Week12, Semester 2/2016 Still working on my final report and presentation.