Profiles – Weekly Update 13

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 thirteenth weekly update regarding how things are going.

This past week, I fixed all the bugs @coffee2code reported and also wrote 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 WordPress to install on blogs under the make subdomain so that we can track the publishing activities on these blogs as well. You can see the plugin here: new-blog-post-notifier.php. Also, updated the documentation to reflect the addition.

This week, as you know, is the final week so I’ll be wrapping things up and preparing a screencast. Also, Jen will probably be providing us some feedback regarding the 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./UXUX UX is an acronym for User Experience - the way the user uses the UI. Think ‘what they are doing’ and less about how they do it. of the new profile design.

See you next week!

#gsoc, #profiles, #weekly-update

Profiles – Weekly Update 12

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 twelfth weekly update regarding how things are going.

While Scott is working on deployingDeploy Launching code from a local development environment to the production web server, so that it's available to visitors. the new profiles to .org, I decided to complete the next week’s task, which was:

September 9th – Any necessary documentation should be written by now.

You can see the documentation here. Thought it might come in handy for the maintainers of these plugins and installations on .org 🙂

See you next week!

#gsoc, #profiles, #weekly-update

Profiles – Weekly Update 11

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 eleventh weekly update regarding how things are going.

Scott is currently working on getting the new profiles integration with .org as soon as possible. I’ll be back with more once everything is ready on the .org end. Finally we’re getting there! 🙂

See you next week!

#gsoc, #profiles, #weekly-update

Profiles – Weekly Update 10

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 tenth weekly update regarding how things are going.

Unfortunately, we could not arrange a meeting with Jen to evaluate the first round of feedbacks and decide how to proceed 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./UXUX UX is an acronym for User Experience - the way the user uses the UI. Think ‘what they are doing’ and less about how they do it.-wise. Since the task of deciding how to further shape the UI is pretty much the only big task left, Boone, Scott and me will be making some alternative plans. Scott will guide us regarding what needs to be done for the current code to be deployedDeploy Launching code from a local development environment to the production web server, so that it's available to visitors. (testing, review etc.).

See you next week!

#gsoc, #profiles, #weekly-update

Profiles – Weekly Update 9

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 ninth 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:

August 12th – All the known bug fixes should be done by now.

…and it’s done! 🙂

Since I tested the plugins pretty much every single week until the midterm evaluations and fixed the issues I came across, they really seem bug-free in my development environment. Therefore, no changes were made there.

The theme, on the other hand, is the newest piece of the puzzle and naturally it had bugs/unhandled scenarios such as elements overflowing into other elements, missing the code for the Google Plus icon, design of the areas when the user is not logged in, design of the elements that change when the user is displaying his/her own profile but does not have the necessary info on file etc. These are all fixed now.

In addition to these fixes, reorganized the 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. code by removing unnecessary codes and making sure everything complies with WordPress’ PHP Coding Standards. Also, refactored the CSSCSS CSS is an acronym for cascading style sheets. This is what controls the design or look and feel of a site. line-by-line to ensure that it fully complies with WordPress’ CSS Coding Standards which resulted in making too many changes.

Finally, as I mentioned in my previous blog post, I was planning to work on how we can handle props in commit messages better which I also did. Had some time to learn regular expressions so I was able to write a better regular expression for it and handle the matches in a cleaner way. After spending hours staring at my regular expression to find out what’s wrong with it as it was not returning all matches for each sub-expression, I learned that PCRE is only capable of returning the last match of each sub-expression. Therefore, to my knowledge, it is not possible to match usernames solely with a regular expression. I tested my new solution on the last 25 commit messages and successfully extracted usernames from them.

Here is my previous quick and temporary solution:

preg_match('/props ([a-zA-Z0-9, ])*./', $_POST['message'], $matches);
$usernames = substr($matches[0], 6, -1);
$usernames = explode(', ', $usernames);

And here is my new and slightly better solution: (I’m looking forward to your suggestions on enhancing it)

$regex = '/props\s+((?:(?:\w+\b(?<!\bfixes))(?:[,][ ]*)?)+)/i';
preg_match_all( $regex, $_POST['message'], $matches );
$usernames = explode( ',', $matches[1][0] );
$usernames = array_map( 'trim', $usernames );
$usernames = array_filter( $usernames );

So everything I planned for this week has been completed, except the meeting with @jenmylo.

My original plan for the next week was as follows:

August 19th – Another round of feedbacks from the users should be gathered by now.

Since we were not able to evaluate the first round of feedbacks, I think we should start with doing that and ask for another round of feedbacks once the necessary changes/implementations are made.

See you next week!

#gsoc, #profiles, #weekly-update

Profiles – Weekly Update 8

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 eighth 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, there are no tasks due today so instead I want to talk about how I will proceed this week.

After presenting the new design of the profiles.wordpress.org in my previous weekly update, I received some really good suggestions and I would like to sincerely thank everyone who took their time to share their thoughts, you rock! 🙂

So this week, I’m planning to have a chat with Jen to decide how we should proceed 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./UXUX UX is an acronym for User Experience - the way the user uses the UI. Think ‘what they are doing’ and less about how they do it.-wise, of course, if she has time. We need to figure out how we should handle the users with no plugins/themes and the users with too many plugins/themes. The comments I received in my previous blog post included possible solutions for this very issue so we already have a few ideas on how we can solve them 😉

In addition to that and fixing small theme bugs, I will be working on how we can better handle props in commit messages.

See you next week!

#gsoc, #profiles, #weekly-update

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