Profiles – Weekly Update 7

Hi Everyone!

As you know, I’m working on enhancing profiles.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/ as a part of GSoC’13 and this is my seventh weekly update regarding how things are going.

Once again, you can find my whole final schedule here: http://www.mertyazicioglu.com/2013/06/25/gsoc-2013-schedule-enhance-profiles-wordpress-org/

As you can see from the schedule, the things I was planning to complete by now was as follows:

July 28th – The new UIUI UI is an acronym for User Interface - the layout of the page the user interacts with. Think ‘how are they doing that’ and less about what they are doing. of profiles (Better Representation of the Information, Links to Profiles on Other Sites and A Better Way to List Plugins) should be complete by now.

…and I’m once again happy to announce that this week’s task was also a success!

Before moving onto the profiles, I just want to give a quick update regarding the plugins we will be installing to 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 and theme directories. I have just realised that I need to write special plugins for them as each have a different kind of workflow so here they are: new-plugin-notifier.php and new-theme-notifier.php! Needless to say, dotorg-activity-handler.php has also been updated to support these 2 new plugins.

Now I’m proud to present you the new profiles! 🙂

And the Edit screen where you edit the links to your profiles on other networks:

I’m really happy with how it turned out and sincerely looking forward to your comments.

See you after the midterm evaluations!

#gsoc, #profiles, #weekly-update

Profiles – Weekly Update 6

Hi Everyone!

As you know, I’m working on enhancing profiles.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/ as a part of GSoC’13 and this is my sixth weekly update regarding how things are going.

Once again, you can find my whole final schedule here: http://www.mertyazicioglu.com/2013/06/25/gsoc-2013-schedule-enhance-profiles-wordpress-org/

As you can see from the schedule, the things I was planning to complete by now was as follows:

July 23rd – The codebase for adding and editing Links to Profiles on Other Sites should be complete and the preparation for the new UIUI UI is an acronym for User Interface - the layout of the page the user interacts with. Think ‘how are they doing that’ and less about what they are doing. of the profiles should be started by now.

…as always, done! Well, turns out .org is already using the BuddyPress’ built-in Profile Fields feature so I won’t be adding any extra code to make this happen. Those fields will simply be defined in the administration panel of .org. To give you an idea on how the front-end will look, here is a screenshot with the social networks defined:

That screenshot is actually taken from my fully-functional local BP installation with the current profiles’ actual code. Since I was able to successfully replicate the real environment, accomplishing the next week’s task (theming) will be super easy. Here is how it looks today with the functional new Activity Stream. Note that there are no visual changes yet.

Before talking about the next week’s task, I want to talk about slight changes in the last weeks’ codes.

In order to make the wp-activity-listener.php both more maintainable, generic and overall whole a lot better, I converted it to a must-use plugin. Renamed it to DotOrg_Activity_Handler, put it into a class, registered it as an AJAX action, created a filterFilter Filters are one of the two types of Hooks https://codex.wordpress.org/Plugin_API/Hooks. They provide a way for functions to modify data of other functions. They are the counterpart to Actions. Unlike Actions, filters are meant to work in an isolated manner, and should never have side effects such as affecting global variables and output. (is_valid_request) that decides whether the request is authentic or not and finally updated the other plugins (bbPress and Trac) to function properly with this new structure. I’m really happy with the outcome and would like to thank @coffee2code and @boonebgorges for their comments and suggestions!

To sum up, sixth week’s goal has also been met in addition to the improvements made on the previous weeks’ codes and in the next week’s update, I will be presenting the new UI of the profiles!

See you next week!

#gsoc, #profiles, #weekly-update

Profiles – Weekly Update 5

Hi Everyone!

As you know, I’m working on enhancing profiles.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/ as a part of GSoC’13 and this is my fifth weekly update regarding how things are going.

Once again, you can find my whole final schedule here: http://www.mertyazicioglu.com/2013/06/25/gsoc-2013-schedule-enhance-profiles-wordpress-org/

As you can see from the schedule, the things I was planning to complete by now was as follows:

July 16th – The codebase for feeding the Enhanced Activity Stream from bbPressbbPress Free, open source software built on top of WordPress for easily creating forums on sites. https://bbpress.org. should be finalized and the codebase for fetching the Enhanced Activity Stream data should be complete by now.

…and I’m happy to let you know that we are now able to seamlessly push activities to BuddyPress’ Activity Stream.

The code that will receive the activities can be found in the repository: https://gsoc.svn.wordpress.org/2013/merty/wp/wp-activity-listener.php

I have also updated the bbPress and TracTrac Trac is the place where contributors create issues for bugs or feature requests much like GitHub.https://core.trac.wordpress.org/. plugins to send the requests to the correct URLs:
https://gsoc.svn.wordpress.org/2013/merty/bbpress/bb-plugins/new-post-notifier.php
https://gsoc.svn.wordpress.org/2013/merty/trac/plugins/ActivityStreamNotifier.py

Enabling bbPress and Trac plugins, and dropping wp-activity-listener.php to the root directory of WordPress is all there is to it. Every single new topic, new post in a topic, new ticket, new comment in a ticket and changeset will now be forwarded to the WP installation which will create an Activity Stream item based on it.

Now, I have a feeling that this might not be the correct way of doing this, but after spending quite a bit time on it, I could not find a reason why this should not be the solution. I’m sincerely looking forward to hearing your suggestions on this.

To sum up, fifth week’s goal has also been met and in the next week’s update, I will be presenting the codebase for adding and editing Links to Profiles on Other Sites.

See you next week!

#gsoc, #profiles, #weekly-update

Profiles – Weekly Update 4

Hi Everyone!

As you know, I’m working on enhancing profiles.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/ as a part of GSoC’13 and this is my fourth weekly update regarding how things are going.

Once again, you can find my whole final schedule here: http://www.mertyazicioglu.com/2013/06/25/gsoc-2013-schedule-enhance-profiles-wordpress-org/

As you can see from the schedule, the things I was planning to complete by now was as follows:

July 9th – The codebase for feeding the Enhanced Activity Stream from bbPressbbPress Free, open source software built on top of WordPress for easily creating forums on sites. https://bbpress.org. should be ready and the codebase for feeding the Enhanced Activity Stream from TracTrac Trac is the place where contributors create issues for bugs or feature requests much like GitHub.https://core.trac.wordpress.org/. should be finalized by now.

…and I’m happy to let you know that both are done!

The codebase for feeding the Enhanced Activity Stream is pretty much just a bbPress 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 that hooksHooks In WordPress theme and development, hooks are functions that can be applied to an action or a Filter in WordPress. Actions are functions performed when a certain event occurs in WordPress. Filters allow you to modify certain functions. Arguments used to hook both filters and actions look the same. to bb_new_post action which triggers when someone posts a new reply toa an existing topic or creates a new one.

The bbPress plugin can be found in the repository: https://gsoc.svn.wordpress.org/2013/merty/bbpress/bb-plugins/new-post-notifier.php

The second task was, as you can see above, to finalize the codebase for feeding Enhanced Activity Stream from Trac. As you might remember from the last week, I wrote 2 Trac plugins for that task: ActivityStreamNotifier and ActivityStreamRepositoryNotifier where the first one fires when a new ticket is added or a comment is added to an existing ticket, and the second one fires when a new commit occurs on the repository being tracked. After reading @nacin‘s comment, I have decided to join those two plugins into a single plugin and drop the part where I was extracting prop’ed usernames from the changeset message. Now the APIAPI An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways. receives the original revision message and decides what to do with it all by itself.

The final version of the Trac plugin can also be found in the repository: https://gsoc.svn.wordpress.org/2013/merty/trac/plugins/ActivityStreamNotifier.py

I will still be making changes on the bbPress plugin in the following week to finalize them.

To sum up, fourth week was also a success and in the next week’s update, I will be presenting the codebase for fetching the Enhanced Activity Stream data (BuddyPress plugin) and the final form of the codebase for feeding the Enhanced Activity Stream from bbPress.

See you next week!

#gsoc, #profiles, #weekly-update

Profiles – Weekly Update 3

Hi Everyone!

As you know, I’m working on enhancing profiles.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/ as a part of GSoC’13 and this is my third weekly update regarding how things are going.

Once again, you can find my whole final schedule here: http://www.mertyazicioglu.com/2013/06/25/gsoc-2013-schedule-enhance-profiles-wordpress-org/

As you can see from the schedule, the things I was planning to complete by now was as follows:

July 2nd – The codebase for feeding the Enhanced Activity Stream from TracTrac Trac is the place where contributors create issues for bugs or feature requests much like GitHub.https://core.trac.wordpress.org/. should be ready by now.

To be able to feed the Activity Stream with the Trac data, I had to find a feasible way to establish a bridge between them.

The first thing that came to my mind was writing a Trac 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 that hooksHooks In WordPress theme and development, hooks are functions that can be applied to an action or a Filter in WordPress. Actions are functions performed when a certain event occurs in WordPress. Filters allow you to modify certain functions. Arguments used to hook both filters and actions look the same. to each of the processes we want to generate an Activity Stream item from. This seemed like the best solution but at the time, it was not clear on my part whether it would be complicated to write one or not.

The second thing was following the current method and writing an outsider PHPPHP PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used open source general-purpose scripting language that is especially suited for web development and can be embedded into HTML. http://php.net/manual/en/intro-whatis.php. script to check for the Trac activities. Although this was an option, I would better stay away from this method, obviously. 🙂

Honestly, I was expecting thing on the Trac side to get really problematic but turns out, and thankfully, I was wrong. Putting the plugins to the Trac’s plugins directory is everything that needs to be done to make them work. Requests are sent immediately after tickets are created, replies are added or commits are made. I really think that Trac plugins should be what we will be using for the Trac-BP connection, since a standalone PHP script will most likely be more prone to breaking as it will be completely working from the outside and will be more vulnerable to future changes in Trac.

As a result, I came up with two Trac plugins which you can see here: https://gsoc.svn.wordpress.org/2013/merty/trac/plugins/

ActivityStreamNotifier: Fires when a new ticket is created or a reply is added to an existing ticket.
ActivityStreamRepositoryNotifier: Fires when a commit is made.

I will still be making changes on both these two plugins in the following week to finalize them.

To sum up, third week was also a success and I have already started working on the codebase on the BuddyPress side, to make sure things will be ready when they’re needed.

In the next week’s update, I will be presenting the codebase for feeding the Enhanced Activity Stream from bbPressbbPress Free, open source software built on top of WordPress for easily creating forums on sites. https://bbpress.org. and the final form of the codebase for feeding the Enhanced Activity Stream from Trac.

See you next week!

#gsoc, #profiles, #weekly-update

Profiles – Weekly Update 2

Hi Everyone!

As you know, I’m working on enhancing profiles.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/ as a part of GSoC’13 and this is my second weekly update regarding how things are going.

First of all, you can find my whole final schedule here: http://www.mertyazicioglu.com/2013/06/25/gsoc-2013-schedule-enhance-profiles-wordpress-org/

As you can see from the schedule, the things I was planning to complete by now was as follows:

June 25th – A wireframe of the new profile design (Better Representation of the Information), a local replica of the live environment (Enhanced Activity Stream) and the research regarding how we can feed the Activity Stream with TracTrac Trac is the place where contributors create issues for bugs or feature requests much like GitHub.https://core.trac.wordpress.org/. and bbPressbbPress Free, open source software built on top of WordPress for easily creating forums on sites. https://bbpress.org. data properly (Enhanced Activity Stream) should complete by now.

Now let’s go into some details 🙂

I actually prepared the wireframe of the new profile design even before the coding started, so I was running ahead of the schedule for that task. I shared it with my mentors and no change was proposed. The only thing mentioned was the existence of the Gamification-related widgets I put for demonstration purposes only. As mentioned in my previous weekly update, we are not planning to work on Gamification this summer but we will most certainly work on it after the GSoC completes. So here is the wireframe I prepared which is still and completely subject to change, as Jen will be helping us on this 🙂

The New Profile Design

This is mostly just to explain better what I have in my mind right now.

My other task was to replicate the .org environment to be able to work on “Enhanced Activity Stream”-related tasks. I have installed bbPress, Trac, WordPress and BuddyPress locally and will be testing the codes I will be writing, on those installations in the upcoming weeks.

Finally and most importantly, my final task for this week was to conduct a research regarding how we can feed the Activity Stream with Trac and bbPress data properly. As a result of that research, I have decided to write a BuddyPress 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 receive the data we will be using to feed the Activity Stream. Here are the pieces of data I’m planning to store:

  1. Support Forums Activity
    1. New topic
    2. New reply
  2. Trac Activity
    1. CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. Trac
      1. Props
      2. New Ticket
      3. Reply in Ticket
    2. Plugins Trac
      1. New commit
      2. New Ticket
      3. Reply in Ticket
  3. Plugin Directory Activity
    1. New Plugin
    2. New Favorite
    3. New Review
  4. Theme Directory Activity
    1. New Theme
    2. New Review

To find the best way to listen to the Trac activity, I dug the Trac documentation quite a bit and analysed some of the Trac plugins. Luckily, Trac is fairly pluggable and we can write a plugin in Python that passes the necessary data to BuddyPress. However, I’m not quite sure whether it is okay to add a plugin to Trac for this purpose, or not. If we can’t, then I’ll be writing a PHPPHP PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used open source general-purpose scripting language that is especially suited for web development and can be embedded into HTML. http://php.net/manual/en/intro-whatis.php. script that regularly runs and checks to see if there are any new Trac activity, instead.

Similarly, in order to bind to Support Forums, Plugin Directory and Theme Directory, I will be writing bbPress plugins that send the data to BuddyPress, just like the plugin/script for Trac does.

To sum up:

Screen Shot 2013-06-25 at 10.46.13 PM 1

To give some details regarding the endpoints I may use to listen to Trac activities:

Screen Shot 2013-06-25 at 10.46.28 PM

In the next week’s update, I will be presenting the codebase for feeding the Enhanced Activity Stream from Trac and hopefully a little bit more 😉

See you next week!

#gsoc, #profiles, #weekly-update

Profiles – Weekly Update 1

Hi Everyone!

I’m Mert Yazicioglu from Ankara, Turkey and I will be working on enhancing profiles.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/ this summer. I’m currently studying Computer Technology and Information Systems at Bilkent University for a BS degree and I have just completed my junior year.

I have been actively using WordPress for the past 2.5 years and have been trying to contribute WordPress one way or another since. Apart from the countless WordPress projects I worked on and being listed as a CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. Contributor since version 3.3, my most notable involvement with WordPress was participating and successfully completing Google Summer of Code 2011 by developing a migrationMigration Moving the code, database and media files for a website site from one server to another. Most typically done when changing hosting companies. tool for WordPress, called WordPress Move. It has been downloaded more than 58,000 times so far and it is being downloaded more than 100 times every single day.

This summer, I will be working on enhancing profiles.wordpress.org which I think has a really great potential to bond the WordPress community even better. As we have a limited time, we can only realise some of the ideas I have proposed in my proposal and to decide which to drop, we held a meeting together with my mentors Boone B. Gorges and Scott Reilly, last Tuesday.

In that meeting, we have decided to drop the following three ideas I have proposed[0] from the scope, as the other tasks need much more attention: Latest Posts, Showcase and Following Each Other. Although we have decided to drop these from the scope, we will most likely implement these after the Google Summer of Code. These are good examples of how we can develop the new profiles further, so naturally these should be worked on after the new profiles are ready to be used.

We have also decided that the following three tasks are relatively easy to tackle and should be a part of the things we will be working on this summer: Better Representation of the Information, Links to Profiles on Other Sites, A Better Way to List Plugins and Enhanced Activity Stream. Though, the last one will really be tricky 🙂

Finally, if we have enough time left, we will be working on creating a Profiles Homepage, on which I’m planning to present some data such as: The Newest 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., The Newest 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 Authors, The Newest Theme Creators, The Recent Rockstars etc. and a feed on which we show the recent activities of the users. Our main goal there will be to motivate users.

In my proposal there was also Gamification but having so much on our plates, we had to either pick Profiles Homepage or Gamification as a task to work on if we have some extra time left. As I mentioned before, we will be working on the tasks we are dropping today, after Google Summer of Code completes and Gamification is certainly one of them. We will most probably add simple motivators here and there to provide some simple Gamification anyway.

I think we have a great summer ahead and I’m sure we will be able produce something really valuable for the WordPress community!

See you next week!

[0] http://www.mertyazicioglu.com/2013/05/02/gsoc-2013-proposal-enhance-profiles-wordpress-org/

#gsoc, #profiles, #weekly-update

On profiles under the activity stream where it…

On profiles, under the activity stream (where it lists coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. and plugins tracTrac Trac is the place where contributors create issues for bugs or feature requests much like GitHub.https://core.trac.wordpress.org/. + forum activity, if it’s empty it says “This user currently does not have any WordPress activity.” It should probably say “This user currently does not have any 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/ activity.” to differentiate between stuff that happens here vs elsewhere that isn’t tracked by us.

#profiles

On this blog both gravatar and name link…

On this blog, both gravatarGravatar Is an acronym for Globally Recognized Avatar. It is the avatar system managed by WordPress.com, and used within the WordPress software. https://gravatar.com/. and name link to the .org profile. I think that is the ideal standard. On the /community blog, gravatar links to gravatar profile and text name links to own site. Can we standardize it across Make blogs that gravs and names link to the .org profiles?

#gravatar, #profiles