User:Daniel: Difference between revisions

Jump to navigation Jump to search
7 bytes added ,  27 March 2015
no edit summary
No edit summary
Line 2: Line 2:


I speak Chinese and English.
I speak Chinese and English.
I have 12 year experience using Linux as desktop and I have seven-year experience of image processing and analysis in biomedical area, specifically writing custimized scripts with Octave/Matlab, ImageJ plugins in Java and macro scripting to process and analyze super-resolution images.
I have 12 year experience using Linux as desktop and I have seven-year experience of image processing and analysis in biomedical area, specifically writing customized scripts with Octave/Matlab, ImageJ plugins in Java and macro scripting to process and analyze super-resolution images.
Currently, I am a PhD student at New York University studying molecular topology network prediction using graph theory, primarily programming in C++ on Unix/Linux.
Currently, I am a PhD student at New York University studying molecular topology network prediction using graph theory, primarily programming in C++ on Unix/Linux.


Line 8: Line 8:
I have known about GSoC program since 2010 or 2011 from the maintainer/help mailing list. Initially in 2007 for image processing purposes, when I was searching Matlab alternatives for Linux system, I found Octave, so I started to subscribe Octave mailing lists started reading the contributor communication seeing passionate and serious discussion, hoping someday I also have an @octave.org email account. Until one day, I found people discussing topics regarding GSoC, four or five years ago. So I have been having this idea of contributing to the Octave community for a long time.
I have known about GSoC program since 2010 or 2011 from the maintainer/help mailing list. Initially in 2007 for image processing purposes, when I was searching Matlab alternatives for Linux system, I found Octave, so I started to subscribe Octave mailing lists started reading the contributor communication seeing passionate and serious discussion, hoping someday I also have an @octave.org email account. Until one day, I found people discussing topics regarding GSoC, four or five years ago. So I have been having this idea of contributing to the Octave community for a long time.


Contributing to open-source is a great way to improve myself, and has always been my plan to get to know how the work in real life is done. Participating Google Summer Code is going to enable me get an in-dept understanding of Google's spirit and culture. Work and communication with other software engineers and scientific computing scientist in the open-source community in an coorperative way will allow me grow up fast.
Contributing to open-source is a great way to improve myself, and has always been my plan to get to know how the work in real life is done. Participating Google Summer Code is going to enable me get an in-depth understanding of Google's spirit and culture. Work and communication with other software engineers and scientific computing scientist in the open-source community in an corporative way will allow me grow up fast.


It will be an exciting and fruitful experience for me to code throught the summer, with the purpose also directly realted to my own research. My peer-review publication manuscripts will include much image processing/analysis, which will employ modules reated to Octave Image packages and topics about Image IO. Therefore, the GSoC project will directly benefit my research project and this motivate myself highly.
It will be an exciting and fruitful experience for me to code through the summer, with the purpose also directly related to my own research. My peer-review publication manuscripts will include much image processing/analysis, which will employ modules related to Octave Image packages and topics about Image IO. Therefore, the GSoC project will directly benefit my research project and this motivate myself highly.


I chose Octave because it is Octave introduced me to open source community; to let me see how a particular open-source community grow and evolve; how Octave gets more and more powerful, over the last eight yeaers.
I chose Octave because it is Octave introduced me to open source community; to let me see how a particular open-source community grow and evolve; how Octave gets more and more powerful, over the last eight years.


== Contact ==
== Contact ==


'''E-mail Addres'''s: daniel27183@gmail.com
'''E-mail Address'''s: daniel27183@gmail.com


'''IRC Handle''': '''dl11159'''
'''IRC Handle''': '''dl11159'''
Line 30: Line 30:
== Coding experience ==
== Coding experience ==
I took C++ programming course during my undergrad and now I code in C++ on a daily basis for my PhD thesis project.
I took C++ programming course during my undergrad and now I code in C++ on a daily basis for my PhD thesis project.
I started using Octave in 2007 for image processing/analysis. Later on I started using it for any general processing/analyzing/computing/ploting purposes. I also used it for my Scientific Computing course in graduate school.
I started using Octave in 2007 for image processing/analysis. Later on I started using it for any general processing/analyzing/computing/plotting purposes. I also used it for my Scientific Computing course in graduate school.
I followed online tutorial C++ OpenGL programming, eventually made a single user game.
I followed online tutorial C++ OpenGL programming, eventually made a single user game.
I do not have experience with Qt, only installed it on my computer three years ago to see how it looks.
I do not have experience with Qt, only installed it on my computer three years ago to see how it looks.
Line 36: Line 36:
I worked in a development team during an business competition during undergrad. I was responsible for the database design and implementation.
I worked in a development team during an business competition during undergrad. I was responsible for the database design and implementation.


My current PhD thesis work is the my biggest project so far. It's writtn in C++. I got to learn to get source code organized and its design pattern, even just the documentations plays very important role in maintaince and debugging efficicy.
My current PhD thesis work is the my biggest project so far. It's written in C++. I got to learn to get source code organized and its design pattern, even just the documentations plays very important role in maintenance and debugging efficiency.


Other related courses I took include Fundamental Algorithm, C programming, Java programming, Computer Nextwork, Database Management, and Big Data Programming (Hadoop ecosystem).
Other related courses I took include Fundamental Algorithm, C programming, Java programming, Computer Network, Database Management, and Big Data Programming (Hadoop ecosystem).


"""Progress of Commits and patches""": Not yet. I have been playing with imtranslate and imadjust. As we know imtranslate.m in Octave image package implemented the translation using Fourier interpolation for 2D images only, differing from or incompatible with the MatLab version.
"""Progress of Commits and patches""": Not yet. I have been playing with imtranslate and imadjust. As we know imtranslate.m in Octave image package implemented the translation using Fourier interpolation for 2D images only, differing from or incompatible with the MatLab version.


I changed my computer lately for some reason, and there was only Matlab 2009 installed on the Mac OS, cannot run imtranslate. Yesterday I found I could access the Matlab 2014 version from the cluster of my universty, so I just got a chance to test it this morning.
I changed my computer lately for some reason, and there was only Matlab 2009 installed on the Mac OS, cannot run imtranslate. Yesterday I found I could access the Matlab 2014 version from the cluster of my university, so I just got a chance to test it this morning.


I was trying to install the image package on Octave 4.0.0, found out the one of the dependency package --- control package has yet to work on Octave 4.0.0. So I may have to use 3.8.2 to test it and start implementing the imtranslate possessing both 2D and 3D processing capability and being compatible with Matlab.
I was trying to install the image package on Octave 4.0.0, found out the one of the dependency package --- control package has yet to work on Octave 4.0.0. So I may have to use 3.8.2 to test it and start implementing the imtranslate possessing both 2D and 3D processing capability and being compatible with Matlab.
Line 53: Line 53:
I started using Linux twelve years ago. My desktop evolves from Redhat, Federo, Gentoo, Ubuntu, Archlinux, Mint, until now I have two laptops, one is for normal work on Ubuntu, the other has Archlinux just for fun.
I started using Linux twelve years ago. My desktop evolves from Redhat, Federo, Gentoo, Ubuntu, Archlinux, Mint, until now I have two laptops, one is for normal work on Ubuntu, the other has Archlinux just for fun.


I am familiar with most of the popular utilies/tools on Unix/Linux, including gcc, gdb, make, bash, perl, sed, awk, grep, cut, tr, ed, ldd, vim, ctag, tmux, screen....I have some experience with SDL, OpenCV and OpenGL.
I am familiar with most of the popular utilities/tools on Unix/Linux, including gcc, gdb, make, bash, perl, sed, awk, grep, cut, tr, ed, ldd, vim, ctag, tmux, screen....I have some experience with SDL, OpenCV and OpenGL.


Previoulsy, I played with them just for fun, so I never publically post anything, until I started thinking I could also be the one to produce some fun stuff.
Previously, I played with them just for fun, so I never publicly post anything, until I started thinking I could also be the one to produce some fun stuff.


== Feeling fine ==
== Feeling fine ==
I am feeling fine with all (IRC, mailing lists, source management systems, make, gdb, gcc) except I dit not know Mediawiki or other wiki software.
I am feeling fine with all (IRC, mailing lists, source management systems, make, gdb, gcc) except I did not know Mediawiki or other wiki software.
I have been studying in the list for many years, checking the mailing list everyday is a hobby of mine already. I will contribute more after the GSoC towards obtaining an octave.org domain email. That's my plan.
I have been studying in the list for many years, checking the mailing list everyday is a hobby of mine already. I will contribute more after the GSoC towards obtaining an octave.org domain email. That's my plan.


Line 66: Line 66:
* I can work 40 hours per week during GSoC.
* I can work 40 hours per week during GSoC.
* I have access to Mac OS high performance powerstation at my lab.
* I have access to Mac OS high performance powerstation at my lab.
* I have access to Linux on the univesity cluster.
* I have access to Linux on the university cluster.
* I have access to Windows on my laptop
* I have access to Windows on my laptop
* I have access to Linux on My labtop, will be used for most of the tasks of Image IO GSoC 2015 project.
* I have access to Linux on My laptop, will be used for most of the tasks of Image IO GSoC 2015 project.


*I do not think it would be an issue even though I do not have administrator privileges over the Linux cluster/MacOS. Wouldn't --prefix be enough?
*I do not think it would be an issue even though I do not have administrator privileges over the Linux cluster/MacOS. Wouldn't --prefix be enough?
Line 75: Line 75:
* Please describe how useful criticism looks from your point of view as committing student.
* Please describe how useful criticism looks from your point of view as committing student.


It is critically important, that's one of the reason I want to join Octave commnity.
It is critically important, that's one of the reason I want to join Octave community.


* How autonomous are you when developing? ''If you answer both subquestions with "Yes, definitely", we are a tad confused. ;-)''
* How autonomous are you when developing? ''If you answer both subquestions with "Yes, definitely", we are a tad confused. ;-)''
Line 83: Line 83:
** Do you like to discuss changes intensively and not start coding until you know what you want to do?
** Do you like to discuss changes intensively and not start coding until you know what you want to do?


Yes, I tend to gather enough information. Sometimes, more than enought.
Yes, I tend to gather enough information. Sometimes, more than enough.
** Do you like to code a proof of concept to 'see how it turns out', modifying that and taking the risk of having work thrown away if it doesn't match what the project or original proponent had in mind?
** Do you like to code a proof of concept to 'see how it turns out', modifying that and taking the risk of having work thrown away if it doesn't match what the project or original proponent had in mind?
Yes. But I think it is not about like or not, it has to be in the workflow, not to mention that I am learning.
Yes. But I think it is not about like or not, it has to be in the workflow, not to mention that I am learning.
Line 90: Line 90:
==== Improve Octave's image IO ====
==== Improve Octave's image IO ====
I chose this project from the wiki <http://wiki.octave.org/Summer_of_Code_Project_Ideas>  
I chose this project from the wiki <http://wiki.octave.org/Summer_of_Code_Project_Ideas>  
In scientific research at large, there are many data recorded in the form of image; there exist many varities of image format. Presently, Octave uses GraphicsMagic (GM), a library capable of handling many of them in one single C++ interface. Nevertheless, GM still has its limitations including:
In scientific research at large, there are many data recorded in the form of image; there exist many varieties of image format. Presently, Octave uses GraphicsMagic (GM), a library capable of handling many of them in one single C++ interface. Nevertheless, GM still has its limitations including:
1. GM has build option quantum defineing the bitdepth to use when reading an image makes difficult to find an balance between accessable depth of image and memory usage, implying it needs extra care to rescale the image.
1. GM has build option quantum defining the bitdepth to use when reading an image makes difficult to find an balance between accessible depth of image and memory usage, implying it needs extra care to rescale the image.
2. "GM supports unsigned integers only thus incorrectly reading files such as TIFF with floating point data
2. "GM supports unsigned integers only thus incorrectly reading files such as TIFF with floating point data
GM hides away details of the image such as whether the image file is indexed. This makes it hard to access the real data stored on file"
GM hides away details of the image such as whether the image file is indexed. This makes it hard to access the real data stored on file"
Line 104: Line 104:
Community bonding period
Community bonding period


     Getting familiar with the image package and octave packaing system and related octave/C++ source codes.
     Getting familiar with the image package and octave packging system and related octave/C++ source codes.


     Interaction with mentors and the community members when necessary
     Interaction with mentors and the community members when necessary
Line 111: Line 111:


         Determine the image format and make priority queue of the tasks.
         Determine the image format and make priority queue of the tasks.
         Fully communicating with mentors to figure out the feasibilities of different possibilities about listings of image formats in prority order and candidate C++ libraries to reference from. Study them briefly and start studing the target one(s).
         Fully communicating with mentors to figure out the feasibilities of different possibilities about listings of image formats in prority order and candidate C++ libraries to reference from. Study them briefly and start studying the target one(s).


2nd week (06/01/- 06/07)
2nd week (06/01/- 06/07)
Anonymous user

Navigation menu