Lessons Learned from GSoC 2008

The GSoC 2008 summer is coming to its end. I wished I could tell the yonger Eva so much about what I have learnt so that she could have done her job better.

I have become familiar with the languages Flex and Actionscript 3, which I can say is the next generation scripting language of the Macromedia Flash Platform. More than that, I have taken up a visualization toolkit for Actionscript 3 which is Flare. This summer provides me tons of chances to polish my skills on debugging, more importantly, it also enhances my efficiency on self-learning.

However, there are regrets.

I wished I could have started reading the API for Flex first before digging into Flare. I wished I could have learnt more about software planning back in May. I wished I could have set milestone evenly such that I could have archieve more goals. I wished...

Nevertheless, I think I have chosen the right way(the open source development field) as a first start to get experience.

Evidence of the growing popularity of open source software can be found at midsize companies, in which many of them have their firms use or will soon deploy open source solutions for Web servers, browsers, database management, middleware, program development and security. However, despite of the rapid growing of open source software, the quality of code, documentation and the support of the communities are the tradeoffs yet to be improved.

If you are considering doing GSoC in the coming summer(2009), I strongly encourage you to apply . There are 3 things that you need to bare in mind: fun, enthusiasm and communication, of which you will experience a lot lesser if you are without any of those. In the coming years, observing from the trend of globalization, web-based programs is definitely another field with undiscovered potential yet to be explored, and I am very interested in joining forces to their development.

Posted byA nerdy girl at 11:18 PM 0 comments  

About Me

I believe I'm changing the world.

Borne in China, raised in Macau, doing my computer science undergraduate degree in Toronto, from the start of my life I have been surrounded by people who are culture complex. I see, experience and understand the culture differences that different nation has.

In another words, the world is also changing me.

Posted byA nerdy girl at 9:02 PM  

Wrapping up

For the last week of GSoC, I have been doing testing and Improving on user friendliness of my application. For this coming week, I will keep on testing my application out and do a screencast which talks about it.

Posted byA nerdy girl at 10:51 AM 0 comments  

This is challenging

After adding more functionalities to my program, I was trying to run it to see how the new functionalites may affect the "asynchronusized" result handlers. There I discoverred a bug in my program which cause Firefox 2 freezes when it handles multiple threads of those parallelly. It is obviously a concurrency problem and how lucky that I can encounter that at this time of the summer!!

Posted byA nerdy girl at 6:52 PM 0 comments  

Erm...2 more days to go for parsing XML!!!

Last week, the project finally looks closer and closer to what I have designed for my final project. It is organized into packages and actionscript classes according to functionalities while avoiding my code to get spaghetti. I am implementing and debugging the backend logic part for the classes that handle the parsing of the xml. After Wednesday, I should be moving onto user interface part to catch up with another demo next Wednesday!

Posted byA nerdy girl at 8:53 PM 0 comments  

Handling synchronus signals sent by HTTP requests

Actionscript does give Flex user more control in the design of the application. I am having fun this week. While I was enjoying coding in actionscript generating HTTP requests dynamically within a control, some issues came up when I press for the display of data too often, or when there are too much data. This is because the thread of displaying the GUI is faster than that of populating the dataProvider. The problem is fixed by having an actionscript class that extends IResponder, which arranges the order of the way the application responds to signals. Moreover, I have been studying the data fetched by the sensors and the way that may provide me more information about the software development progress.

Posted byA nerdy girl at 5:00 PM 0 comments  

More solutions for "security error accessing url" ?

Can this be solved without having the crossdomain.xml under the domain of the server? My application <pretty.swf> is recognizing the data <data.xml> to be remote. Although they are from the same domain, <pretty2.swf> does not work without loading the policy file.

From the security updates stated in Flash version 7 <source>, it states that:

...we added a new permission mechanism which allows broader cross-domain cooperation. You can perform data loading (loadVariables, XML, XMLSocket, runtime shared libraries, Flash Remoting) from outside a movie's own domain as long as the server providing the data provides a policy file—a small XML file that grants cross-domain loading permissions...

Since Flash 8 just has security modification for local sandbox(since my application telling me that the type of the sandbox of my application is remote), I was mainly looking at the newly released(Apr 2008, Flash 9) security updates, and found my problem does not quite suit in one of these catergories.

   
"Since my application and data are from the same domain, why pretty2.swf does not work without the crossdomain.xml?

Posted byA nerdy girl at 5:15 PM 0 comments  

Possible approaches and structure

Build, UnitTest, Commit, CodeIssue, Coupling, Coverage, DevEvent and FileMetric.. These are the different sensordata types that the HackyStat sensors collect. After examining the sensordatatypespecification and dailyprojectdataspecification in detail, I came up with 2 main approaches(drafts), i.e., to visualize the data by users or by project, both providing 2 different layouts, in terms of time(daily) or in terms of sensordata types(only avaliable ones). While I was planning out my project, the more I think of it, the more I find it challenging to structure the whole project from scratch. After next week, I shall have a detailed layout of the structure of my coding.

Posted byA nerdy girl at 5:07 PM 0 comments  

Works

Projects

  • Geospatial, participate in a GIS by Ingres, under UCOSP.
  • Human Weather Network, a hack submitted to Yahoo! HackU at University of Waterloo/Toronto 2009, and won on voting.
  • Geokudo, a GIS that lets users to make sense their geographic data at their hands.
  • HackyStat data visualization, a tool that lets software project manager to understand the project progress better over time.
  • Family tree viewer, a course project from "Introduction to Software Engineering" to which design patterns were applied, written in Javascript and CSS.


    Computer science related courses
  • CSC 494/5h Independent Capstone Project
  • CSC 443h Advance Database
  • CSC 411h Machine Learning and Data Mining
  • CSC 363h Computational Complexity and Computability
  • CSC 369h Operating Systems
  • CSC 373h Algorithm Design & Analysis
  • CSC 324h Principles of Programming Languages
  • CSC 336h Numerical Methods
  • CSC 343h Introduction to Databases
  • CSC 310h Information Theory
  • CSC 309h Web Programming
  • CSC 301h Introduction to Software Engineering
  • CSC 207h Software Design
  • CSC 209h Software Tools and Systems Programming
  • CSC 236h Introduction to the Theory of Computation
  • CSC 258h Computer Organization
  • CSC 263h Data Structures and Analysis
  • CSC 290h Communication Skills for Computer Scientists
  • CSC 108h Introduction to Computer Programming
  • CSC 148h Introduction to Computer Science

    Posted byA nerdy girl at 3:04 PM  

    CV




    EDUCATION
    2006-2010: Honours bachelor of science, computer science information system specialist and mathematics minor, University of Toronto
    2005-2006: Pre-university Program, University of Macau
    2003-2005: High School, Sacred Heart Canossian College

    WORKING EXPERIENCE
    2009 Sept-May: UCOSP student of Ingres Geospatial, Toronto, Ontario
    2009 Summer: Co-founder and head developer of W3T Productions, Toronto, Ontario
    2008 Summer: GSOC student working with HackyStat, Google Summer of Code 2008, Toronto, Ontario
    2005-2006: Administration and acccounting department clerk, JM Construction Company Limited, Macau, China

    TECHNICAL SKILLS
    Main Languages: Java, Javascript and C
    Java: Experience in first/second/third year courses, including data structuring and software design
    Javascript: Experience in third year software design courses and also in personal projects
    C: Experience in second/third year courses, including TCP/IP socket programming, multi-threading, synchronization, signal and interrupt handling, file I/O, kernel-space programming, shell programming

    Minor languages: Python, ActionScript 3, PHP and shell script
    Platforms: Windows, Linux(Debian, Ubuntu) and OS/161
    IDE: Eclipse, Netbeans, Flex Builder

    VOLUNTEERING ACTIVITIES
    2009-2010: University of Toronto Computer Science Student Union Treasurer
    2008: Volunteer of Agile Conference 2008
    2008: Volunteer of 3rd Conference of Association for Software Testing(CAST)
    2007-2008: University of Toronto Department of Computer Science Ambassador
    2007-2008: University of Toronto Chinese Students and Scholars Association
    (UTCSSA), IT assistant
    2007: University of Toronto OutReach 2007 team leader
    2005: Volunteer of The Fourth East Asian Games 2005 held in Macau
    2004-2005: Sacred Heart Canossian College (Macau)Hardware group team leader

    AWARDS
    2006-Present Special scholarship from Macau SAR Government

    Posted byA nerdy girl at 1:17 PM  

  •