Personal Details
Name: Jacob Gillespie
Email: me@jacobwg.com
Personal Website: http://jacobwg.com, http://cedarcanyonmedia.com
Skype ID or GTalk: jacobwg7600 on Skype, jacobwg7600@gmail.com on GTalk (preferred)
IRC nick: jacobwg
Phone number: +1 (972) 369-6651
School Name: University of Texas at Dallas
Years completed: I will have finished my Freshman (first) year
PHP Experience Level: Intermediate
WordPress Experience Level: Plugin/Theme Developer (although only for internal projects)
Project Description
Project Description on My Blog
Describe your idea in detail:
My proposed project is to upgrade WordPress’s multi-file uploader, integrating an existing open source project with additional more modern features while keeping the existing underlying APIs constant in order to not break compatibility with existing code and plugins.
Potential additional features would include, depending on browser support:
- Multiple file transports, starting with HTML5, with a fallback to Flash, then fallback to HTML4
- Drag and drop uploading
- On-the-fly image resizing
- Hooks for in-browser image processing (so that a plugin could add pre-upload sepia tone, for example)
My proposed project would consist of three stages:
- Researching and evaluating existing open source uploader projects in terms of how well they satisfy the requirements
- Adapting, if necessary, the chosen uploader for WordPress integration
- Performing the integration – writing backend PHP code and any required frontend glue code to integrate the uploader into WordPress
The goal of this project is to improve the overall user experience of the file uploader, allowing for an uploader that “just works” and progressively enhances based on the user’s browser and environment. The revamped uploader should also “just work” for developers, keeping existing WordPress hooks intact.
In past projects, I have had the opportunity to research file uploaders, and thus have the following projects as potential targets for further research:
- Plupload - http://www.plupload.com/ (WordPress plugin)
- Uploadify - http://www.uploadify.com/
- Ajax Upload jQuery Plugin - http://valums.com/ajax-upload/
- jQuery File Upload - http://aquantum-demo.appspot.com/file-upload
- Some combination of swfupload (https://github.com/alexanmtz/jqswfupload, https://github.com/ifunk/swfupload-jquery-plugin)
I have shared my draft proposal on wp-hackers, and thus far was provided with the link to WPlupload by Otto.
Plugin, theme, or core:
Due to the nature of the file uploader, this project is meant for core.
Anticipated challenges:
I have a few potential challenges, not necessarily anticipated ones: Cross-browser support / detection, maintaining the current code hooks.
Potential mentors:
Eric Mann (ericmann) has expressed via email his willingness to mentor this project.
Schedule of Deliverables
- April 25 – May 23 – Discuss approach with mentors, finalize my knowledge of the existing uploader system, continue research on existing open source projects
- May 23 – June 1 – Complete research and choose the starter project(s)
- June 1 – 13 – Make any required modifications to the uploader and/or write any required frontend glue code
- June 13 – July 15 – Work on backend PHP code
- July 15 – August 1 – Open time for completing frontend and backend code
- August 1 – August 22 – Rigerous testing and bugfixing
Obviously checks with mentors will be frequent and spread without.
Other commitments:
I will be unavailable from June 22-26 and July 1-5 as I will be volunteering at the Joni and Friends Family Retreat camps.
Open Source Development Experience
PHP Experience:
I started learning programming at age ten and began learning PHP at age eleven, so I’ve been learning for almost eight years now. Most of my live PHP experience has been coding themes for WordPress, Joomla, Drupal, and Magento, although have written internal extensions for WordPress and Joomla. I would consider myself an intermediate PHP programmer, familiar with syntax and intermediate programming concepts – I am very familiar with OOP as well as a little bit of functional programming.
I also started learning frontend stuff around the same time, and have since worked mostly with jQuery on the Javascript side. I am proficient in HTML(5), JavaScript, and CSS.
While still being reviewed, I have written two PHP apps for the Tonido Personal Cloud – a VNC remote desktop app and a µTorrent remote control. The µTorrent code is available on my GitHub page (https://github.com/jacobwg/tonido-utorrent), and the VNC app code is private on GitHub and available on request.
For that matter, I do have a few projects on GitHub, although most of what I have done has been with Ruby/Rails/Sinatra.
WordPress Experience:
I have been developing sites in WordPress for several years now, and have done a fair amount of work with theming and some personal plugin development. I have not contributed any plugins to the repository before and so here are a few core patches that I just finished (as jacobwg):
Other Open Source/Free Software Experience:
I have worked with Joomla, Drupal, Magento, Ruby on Rails, and Sinatra on a variety of other projects. I have a few small projects/forks at github.com/jacobwg.
I wrote a basic CMS extension for the Spree ecommerce platform (http://github.com/jacobwg/spree-cms)
Work Experience
Texas Beekeepers Association
texasbeekeepers.org
Sole webmaster since 2008, redesigned their static site using the Joomla CMS. We’ve since been through several updates / upgrades going from Joomla 1.0 to 1.5, with a WordPress-based version in progress. Involved both frontend programming and backend programming in PHP (mainly for the directory of beekeeping clubs).
Desert Creek Honey Co
desertcreekhoney.com
Sole webmaster since 2007, the website was designed from scratch. Initially, we using Joomla, both versions 1.0 and 1.5, with the VirtueMart ecommerce extension. We’ve since switched to a WordPress website with an Ecwid-backed shopping cart (WordPress shopping cart in the works). Involved mostly frontend programming for the various themes we’ve had. Running on my client WordPress network.
I am also involved in helping run the SEO, Google AdWords campaigns for Desert Creek Honey.
Collin County Hobby Beekeepers Association
cchba.org
Sole webmaster since 2009, the existing static website was redesigned with WordPress. Running on my client WordPress network.
Oakley Family Apiaries
livehoneybeeremoval.com
Sole webmaster, I redesigned their static site on WordPress in 2010, I have been involved in SEO work. Running on my client WordPress network.
Other Projects
I have worked on many personal projects and websites on the side that are more or less commercial:
Academic Experience
Academic Institution: University of Texas at Dallas, Richardson, TX
Current Program: BS in Computer Science, I will have finished my Freshman year
Anticipated Graduation: 2014
Academic Performance:
- Collin College Dual-Credit (in high school) – COSC 1436 – Programming Fundamentals I, C++ (A grade)
- Collin College Dual-Credit (in high school) – COSC 1437 – Programming Fundamentals II, C++ (A grade)
- CS 3340 Computer Architecture (B grade)
- CS 2336 Computer Science I (A+ grade, expected from current grades)
I used a lot of my web design / webmastering work as credit for high school.
GSoC for Credit: No, I am not using GSoC for credit
References:
No CS professors yet, but here are some work-related references:
- Jimmie Oakley of the Texas Beekeepers Association (treasurer@texasbeekeepers.org)
- Blake Shook of Desert Creek Honey (sales@desertcreekhoney.com)
Why WordPress
You’re applying to work with WordPress during GSoC because:
I love WordPress and consider it to be the best publishing platform out there. I have had many years of experience working with WordPress – most all my client sites run WordPress. Thus, I have a genuine desire to see WordPress improve. I have also experienced trouble with the existing file uploader in the past, so this is personally something I would love to see upgraded.
After GSoC, you envision your involvement with WordPress will be:
I most definitely can see myself becoming a core contributor as I continue building client sites with WordPress. I love how accessible the WordPress community and development team are, and would love to give time and code back.