JSON REST API

Hi everybody! Some of you may know me from various patches or WP-related endeavours: I’m Ryan McCue, developer of the SimplePie library used in coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress., along with a HTTPHTTP HTTP is an acronym for Hyper Text Transfer Protocol. HTTP is the underlying protocol used by the World Wide Web and this protocol defines how messages are formatted and transmitted, and what actions Web servers and browsers should take in response to various commands. library called Requests, and long-time core hacker. I’ve been working with WordPress for quite a while now, both on open sourceOpen Source Open Source denotes software for which the original source code is made freely available and may be redistributed and modified. Open Source **must be** delivered via a licensing model, see GPL. and professional work with clients. What you may not know is that I’m also studying Electrical Engineering and Maths at UQ in Australia, and I’m here to give you a heads up on my Summer of Code project over the coming months.

For those who missed the discussion on wp-hackers about my proposal, I’m working on a JSONJSON JSON, or JavaScript Object Notation, is a minimal, readable format for structuring data. It is used primarily to transmit data between a server and web application, as an alternative to XML.-based REST APIREST API The REST API is an acronym for the RESTful Application Program Interface (API) that uses HTTP requests to GET, PUT, POST and DELETE data. It is how the front end of an application (think “phone app” or “website”) can communicate with the data store (think “database” or “file system”) https://developer.wordpress.org/rest-api/. for core. I started on this with an initial proof-of-concept back at the end of last year, and I’m now working on expanding this out into a larger project. The code is being written as a pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party for testing, with the goal of having it integrated into core in some form post-GSOC.

I’m planning on following a release strategy similar to MP6, with a weekly release along with the updates included in the release. At the moment, I’m working on completing the basic reading and writing of post data having just completed the major design documents, and I’m hoping to get the first weekly release out next week. I have a more detailed timeline which you can check out in my announcement post on my blogblog (versus network, site).

(You’ll notice I’m currently about a week behind on my schedule, which I suspected may happen, as I’m in the midst of my final exams here. I’ve allocated an extra week just before the midsemester review for catching up if I don’t do so before then.)

As it is, the plugin is in a usable format, and you can grab it from either GitHub or Subversion. I’d also recommend checking out the GSOC Trac issues if you’d like to keep track of the status. I’d love to have your feedback (especially on the design documents) as I move forward.

Cheers, and I look forward to working with you all in the coming months!

#gsoc, #gsoc2013, #json-api, #rest-api

Hello everyone Applications for Google Summer of Code…

Hello everyone! Applications for Google Summer of Code are due in just 13 hours! (1900 UTC)

I’ve been reviewing a lot of proposals and ideas. But if you’re waiting until the last minute (like I’m doing with this post), here are some random nuggets:

  • Original ideas are encouraged! We have a great ideas page but we’re not going to complain if you submit something else.
  • You don’t need to be a computer science student! We’ve had liberal arts majors and things turned out just fine.
  • Please demonstrate your abilities by making an attempt to contribute to WordPress coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. or by writing a pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party. Even though this may happen after applications have closed, it could help.
  • You can submit more than one proposal. This is good because we won’t accept two students for the same proposal. And because you might have two great ideas but aren’t sure which one aligns better with our interests. That’s okay — submit them!

Finally, here are four more ideas in case nothing else appeals to you. (I’ll make sure these make it onto the ideas page next year.) If you’re still hunting, see if any of these set off bells in your head: (yes, there are WordPress plugins for everything, but innovation and new approaches are good things)

  • Activity. Activity streams, action history, notifications. Imagine what a dashboard could look like for a busy, multi-author site, and how helpful it could be to see what’s truly going on “right now” — as well as what you missed.
  • Meetups. Local WordPress communities organize a lot of meetups. A set of tools for organizers and the local community could be really helpful. (These tools could include integration with meetup.com and wordpress.orgWordPress.org The community site where WordPress code is created and shared by the users. This is where you can download the source code for WordPress core, plugins and themes as well as the central location for community conversations and organization. https://wordpress.org/ profiles.)
  • Dependencies. Allow plugins and themes to be dependent of one another. A theme could require a plugin or example, and WordPress would handle installing that plugin when you install that theme. Similar idea: Compatibility metrics. (Or: Can we be sure it is safe to upgrade everything?)
  • Bug tracker. WordPress can be a great platform for developer tools. Why not a bugbug A bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority. tracker? (Read the 2010 ideas page for more.)

Of course, there’s a lot of other great ideas on the 2013 page. If you haven’t looked recently, I added a few at the start of the application period, including some JavaScriptJavaScript JavaScript or JS is an object-oriented computer programming language commonly used to create interactive effects within web browsers. WordPress makes extensive use of JS for a better user experience. While PHP is executed on the server, JS executes within a user’s browser. https://www.javascript.com/.-heavy stuff (editor modes, HTML5 application cache, TinyMCE views). Good luck!

#gsoc

GSoC Chat

Mentors: GSoC chat in #wordpress-gsoc in about an hour if you’re available.

#gsoc

GSoC 2013 Update

We have been accepted as a mentoring organization for GSoC 2013. I’m already being bombarded by overenthusiastic students with questions, so we need to get our act in gear re mentor list and project list more or less now. Definitely by tomorrow.

IF you have worked on an assigned feature team in one of the last few releases, you can be a mentor, yay!
IF you haven’t worked on an assigned feature team but you’ve had multiple patches accepted in one of the last few releases, you can be a mentor, yay!
IF you have themes/plugins in the .org repo and the lead devs say your code is good, you can be a mentor, yay!
IF you don’t meet either of these criteria but think you’re skilled enough and want to contribute, I need to have your code vetted by the lead devs.

If you are in one of the “yay” categories, please add yourself to the mentor list at https://codex.wordpress.org/GSoC2013 and leave a comment here saying you did so. Then, go to http://www.google-melange.com/gsoc/org/google/gsoc2013/wordpress, scroll down, and follow the process to apply to be a mentor in the gsoc system. Note that it’s a little bit busted right now, so you might not get a confirmation back from me until they fix the existing bug there.

If you are in the maybe categoryCategory The 'category' taxonomy lets you group posts / content together that share a common bond. Categories are pre-defined and broad ranging., you can pingPing The act of sending a very small amount of data to an end point. Ping is used in computer science to illicit a response from a target server to test it’s connection. Ping is also a term used by Slack users to @ someone or send them a direct message (DM). Users might say something along the lines of “Ping me when the meeting starts.” me in irc, comment here, or email ([my username/irc nick]@wordpress.orgWordPress.org The community site where WordPress code is created and shared by the users. This is where you can download the source code for WordPress core, plugins and themes as well as the central location for community conversations and organization. https://wordpress.org/) me to get on the list of potential mentors that will have code reviewed by the leads.

Also, project ideas can be added to the wiki page as well IF you fall into the pre-approved to mentor category. Worth running ideas past the leads in irc for a gut-check first. Other ideas can be posted here for review.

Thanks!

#gsoc

GSoC 2013

It’s time for us to apply for GSoC 2013 if we want to participate. I can take care of the application, but will need everyone’s help in producing the project ideas and mentor sections.

“Why didn’t we get accepted last year?”

We didn’t get accepted last year because our Ideas page wasn’t as good as it had been in past years, and they wanted to make room for some new orgs, so we got cut. Our ideas page wasn’t great because we were planning to embed students in regular cycle feature teams, but we didn’t write up all the potential features this might have included. This year we need to write out all the possible features.

PROJECT IDEAS:

The more project ideas the better, so things that aren’t targeted for the next cycle but that we might want to do as a pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party to get some traction for inclusion in a later release would be great projects, too. Project ideas can include coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. features, plugins, themes, unit tests, etc. This includes work on .org site things like the plugin used to power WordCampWordCamp WordCamps are casual, locally-organized conferences covering everything related to WordPress. They're one of the places where the WordPress community comes together to teach one another what they’ve learned throughout the year and share the joy. Learn more. sites. The projects must be code, though, not design, documentation, etc. List your project ideas in a comment on this post. Please give it a title, and a short one-paragraph description. If there’s a ticketticket Created for both bug reports and feature development on the bug tracker. or relevant thread somewhere, link to it.

POTENTIAL MENTORS:

Want to volunteer to be a mentor? You need to be good enough with wp coding that you currently don’t need oversight to generally get it right (though obviously we all can get better with more eyes on code), and have enough time to be available to your student for feedback and code review (at least once per week, though more often is better). The time commitment can be anywhere from one hour to ten hours per week, depending on how far along your student’s project is, and what there is for you to review (an hour or two a week is typical). You get a GSoC tshirt at the end. Want to be a mentor? Leave a comment on this post with a short/one-paragraph little bio about yourself, what kinds of projects you are interested in/qualified to mentor, and links to your website, wordpress.orgWordPress.org The community site where WordPress code is created and shared by the users. This is where you can download the source code for WordPress core, plugins and themes as well as the central location for community conversations and organization. https://wordpress.org/ profile, and twitter account.

LEAD DEVELOPERS:

I know you are right smack dab in trying to get this release out, which is why I’ll take care of the application and associated materials. That said, I’m a bit out of the loopLoop The Loop is PHP code used by WordPress to display posts. Using The Loop, WordPress processes each post to be displayed on the current page, and formats it according to how it matches specified criteria within The Loop tags. Any HTML or PHP code in the Loop will be processed on each post. https://codex.wordpress.org/The_Loop. with core plans, so coming up with the potential projects list on my own would mean they might not mesh with the actual goals/plans of core team very well. I’ll be looking to you guys to give me a sense of priority/possible plans for the next dev cycle, and to tell me who is qualified to mentor a project from the final list of volunteers. Will pingPing The act of sending a very small amount of data to an end point. Ping is used in computer science to illicit a response from a target server to test it’s connection. Ping is also a term used by Slack users to @ someone or send them a direct message (DM). Users might say something along the lines of “Ping me when the meeting starts.” you offline for this.

Not sure how to write up a project idea or your short mentor bio? Take a look at the ideas page from 2011 for a guide.

Note 1: This year BuddyPress will be applying as a standalone organization with WP as the vouching organization. I’ll be helping Paul Gibbs get their application going.

Note 2: I haven’t announced it yet since it just happened, but we’ve been accepted as a mentoring organization for the Gnome Outreach Program for Women for the summer session. Unlike GSoC, where Google foots the bill, we’ll have to raise the money to cover our interns for the Gnome program, so I’ll announce it along with a fundraising drive. The Gnome program is a little broader than GSoC, and does allow non-code projects, so things like design, ux, documentation, translationtranslation The process (or result) of changing text, words, and display formatting to support another language. Also see localization, internationalization., community management, etc would all be possibilities there.

#gsoc, #gsoc2013

Will need two volunteers to be the admins…

Will need two volunteers to be the admins for GSoC, overseeing our application, mentor wrangling, and if we get selected, student wrangling. Good project management skills required, familiarity with core contributorsCore Contributors Core contributors are those who have worked on a release of WordPress, by creating the functions or finding and patching bugs. These contributions are done through Trac. https://core.trac.wordpress.org. a plus. Note: though most mentors will likely come from this group, it’s not my intent to pull devs away from development to be admins. Just posting here bc I know a number of project managers follow this blogblog (versus network, site). The adminadmin (and super admin) volunteers would be coordinated via the community group and would work with devs across coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress., themes, and plugins as needed. If interested in volunteering as an admin, pingPing The act of sending a very small amount of data to an end point. Ping is used in computer science to illicit a response from a target server to test it’s connection. Ping is also a term used by Slack users to @ someone or send them a direct message (DM). Users might say something along the lines of “Ping me when the meeting starts.” me. Thanks.

#gsoc

No GSoC 2012

WordPress was rejected as a mentoring organization from GSoC for this summer. This is unexpected, as I spent some time during the application period talking with Carol (Smith, the GSoC administrator) about our proposed approach of building a release cycle around GSoC and making it a mentorship-focused release and she seemed to approve the idea.

We can still do a summer mentorship-focused release for 3.5 if we want to, though. We could pimp it as independent study for credit for college students and put more focus on non-student potential contributors, such as from the pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party/theme ranks. If nothing else, it would avoid the inevitable couple of students who are only in it for the $$. We’ll need to decide if we still want to do something along these lines, or if we don’t.

Why did we get rejected? We don’t know yet. I used last year’s successful application as a template. There will be a feedback meeting in a week or so, and Carol says to attend that when it is announced and we can find out why during that meeting.

#gsoc

GSoC/Summer/3.5

Normally we don’t start talking about the next release until the current one is out the door, or at least in betaBeta A pre-release of software that is given out to a large group of users to trial under real conditions. Beta versions have gone through alpha testing in-house and are generally fairly close in look, feel and function to the final product; however, design changes often occur as part of the process./RC, so this post jumps the gun a bit, but for a good reason: the GSoC deadline. There are two approaches we could take toward our participation in GSoC this year, and one of them is tied closely to 3.5.

Historically

  • Good GSoC mentoring takes time. Time is hard to come by at the best of times, even harder for many during the summer.
  • Many of our previous GSoC mentors have held the position for several years and could use a break from trying to mentor while simultaneously working on features for a regular release.
  • Almost none of our GSoC projects have actually made it into coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress.. A few because they were plugins, but most because once GSoC is over there hasn’t been a concerted effort to follow up on these projects.
  • We often run late on dev cycles.

Since 3.4

  • We have ramped up several core contributorsCore Contributors Core contributors are those who have worked on a release of WordPress, by creating the functions or finding and patching bugs. These contributions are done through Trac. https://core.trac.wordpress.org. to more responsible/trusted roles as a result of the 3.4 process experiment (teams, cycles, updates, etc). This could mean more mentors.
  • We are running late in our dev cycle, and with SXSW about to eat a week, I’m thinking we’re about to get even more behind. My guess is we’re looking at a May launch, not April.
  • The stated intention of having all feature dev for the cycle tied to a central goal of making it easier to customize your site didn’t really happen. There were at least 3 teams working on features that had nothing to do with this, and another couple that were related, but not smack in the middle of it. Good features all, but we failed in sticking to that goal as a unifying concept.

Proposal

What if for 3.5, instead of it being a “regular” cycle, we made it a mentoring cycle tied to the GSoC schedule (shorter than normal)? If we assume 3.4 will launch sometime at the end of April or early May (and if it does happen earlier, awesome), that would put us in a position to start working on 3.5 right when the GSoC accepted students are announced.

If we chose a “release concept” (like customizing your theme, but something different) and outlined every feature/enhancementenhancement Enhancements are simple improvements to WordPress, such as the addition of a hook, a new feature, or an improvement to an existing feature./bugbug A bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority. that’s related, we could make those things be the potential GSoC projects. We could work in teams like in 3.4, but in this case each team would have a student or two working on things with them closely. Since these would be the only features being worked on (additional bug-fixing always ongoing, obviously),

  • Students would be guaranteed mentor attention and working with core
  • We would be more likely to do the work necessary to get student work to commit-worthy status
  • We would target a launch for late August to coincide with the end of GSoC (so we could do one more small release before end of year)
  • We could do additional outreach to include new contributors who do not qualify for GSoC (too young, too old, not in college, etc), improve our mentoring skills and processes
  • At the end of this mentorship-focused summer, we would not only have the features developed by mentees, but we would have an ideal pool of people to help us create documentation to help new contributors.

I’m thinking that what might make sense would be for there to be a team or two that doesn’t mentor or work on a feature for 3.5, but begins working on one of the more complex things we keep putting off, so that it could be the first thing into 3.6 (like gallery management or something similar).

Deciding on a release concept that could be done in a 2.5-3 month cycle would be important. I’m thinking maybe it could be the feedback loopLoop The Loop is PHP code used by WordPress to display posts. Using The Loop, WordPress processes each post to be displayed on the current page, and formats it according to how it matches specified criteria within The Loop tags. Any HTML or PHP code in the Loop will be processed on each post. https://codex.wordpress.org/The_Loop. — improving comments and communication with readers via htmlHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. emails, forms, etc on the front end and a UIUI User interface facelift of the comments/related screens on the back end, putting something cool into Twenty Twelve around this (or just support for something in core related to same), etc. There are a number of projects around this that have been done in the past that could be looked to for inspiration and/or what not to do, it’s needed attention for some time, and it’s not as complicated as something like media or multisitemultisite Used to describe a WordPress installation with a network of multiple blogs, grouped by sites. This installation type has shared users tables, and creates separate database tables for each blog (wp_posts becomes wp_0_posts). See also network, blog, site.

Thoughts? Specifically, thoughts on:

  • Doing a mentorship-focused release timed to GSoC
  • Potential areas of focus for 3.5 if we were to do this
  • Mentoring in teams like 3.4
  • Wanting to mentor in this case
  • How many students you think we could take on if we used teams like in 3.4

Comment here today, and tomorrow I’l round up the core team to see what people think based on the conversation so we can make a decision and I can update our application before the application deadline if needed. If we don’t do something like this, then I’m planning on reducing our GSoC student allotment to 5-6 students (we’ve asked for up to 15 in the past) to ensure enough mentors and adequate attention/follow-up on projects.

Thanks for your input!

#3-4, #3-5, #gsoc, #mentorship

In addition to the usual program of check…

In addition to the usual program of check-ins, questions, and strategy in today’s dev chat, I’d like to carve out a few minutes at the end to talk GSoC. I’ll probably start putting together our application this weekend to be a mentoring organization, and will need to know who we’ve got on tap for mentoring teams.

#gsoc

GSoC time Google announced GSoC and I’m guessing…

GSoC time! Google announced GSoC and I’m guessing we’ll do it again, so roll call: who wants to be a GSoC mentor this year? Second: who wants to be the administrator? I’d like to get it off my plate if possible. Candidate should be able to keep track of dates, have good writing skills, be willing to nag (even people you respect), and be able to prioritize GSoC communications.

#gsoc