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. https://www.php.net/manual/en/index.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. https://www.php.net/manual/en/index.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

I changed the global header footer to use…

I changed the global headerHeader The header of your site is typically the first thing people will experience. The masthead or header art located across the top of your page is part of the look and feel of your website. It can influence a visitor’s opinion about your content and you/ your organization’s brand. It may also look different on different screen sizes./footer to use #wporg-header and #wporg-footer, rather than #header and #footer. I think I caught all of the special styling situations, but if not, leave a comment.

Recently, the header/footer was added to translate.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/, which runs GlotPress. The theme is here.

#design

So I had a thought the other week…

So I had a thought the other week.

How feasible would it be / would there be any interest in running an OpenGrok install for WordPress plugins? Perhaps at something like plugins.opengrok.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/?

It would make it a lot simpler to check for namespace conflicts with plugins, compatability questions, find usage details for APIs and filters, and it would save a goodly amount of time and hard disk space for anyone currently using @markjaquith‘s WordPress Plugin Directory Slurper (which eats over 4 gigs, takes hours to install, is a nuisance to keep updated, and takes forever to ack/grep through) (but is still far better than any current alternative).

The biggest difficulty that I can see is narrowing it down to scanning only the active branch, since some plugins keep an empty trunk folder, with just a readme.txt to point to the currently released branch. Unless it just scans an install of the slurper being run on an wporg server.

#ack, #grep, #opengrok

Things are in full swing now with the…

Things are in full swing now with the wp10 site. Spoke to Jen a few days ago, and i’m outlining (mostly technical) point here to get some additional feedback and discussion going:

1. We are going to be extracting images from tweets and instagram posts with the #wp10 hashtag during the event, and displaying them “live” on the site. I have two rough but functional plugins in my GitHubGitHub GitHub is a website that offers online implementation of git repositories that can easily be shared, copied and modified by other developers. Public repositories are free to host, private repositories require a paid subscription. GitHub introduced the concept of the ‘pull request’ where code changes done in branches by contributors can be reviewed and discussed before being merged by the repository owner. https://github.com/ account, so feel free to look those over or provide better alternatives. The key here is that photos are is extracted and placed into WordPress’s media library, which i think is a good way to archive things.
2. Design isn’t yet established – Jen is reaching out to the potential designer as we speak – but generally speaking think of a pInterest or similar display that auto-updates on a page.

I’m new relatively speaking to how things work with the servers and accounts, etc. So two potential questions I would like someone to educate me about as soon as possible:

1. How does one get file-level (SFTPSFTP SFTP is an acronym for Secure File Transfer Protocol: A standard protocol to move computer files from one host to another over the Internet with enhanced security., etc.) access to the wp10 site?
2. Most likely scripts will require traditional cron (not WP cron) to 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.” the social media channels every few minutes. Confirmation and thoughts on this would be appreciated.

Thanks. Can’t wait to get this together in a quick and orderly fashion (crossing fingers).

David Bisset will be helping out with the…

David Bisset will be helping out with the wp10 site, adding him as an author here in case he needs to ask for help.

#wp10

Not sure if this is new since the…

Not sure if this is new since the MP6 styling stuff making it onto the .org theme, but I haven’t noticed it before, so might be related. The alignleft doesn’t seem to be working on the .org news blog as shown here.

#news-blog

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

Time Shortcode for Make P2s

A couple of weeks ago, Siobhan pointed out to me the difficulties in talking about times for IRC meetups on the various P2P2 P2 or O2 is the term people use to refer to the Make WordPress blog. It can be found at https://make.wordpress.org blogs. She suggested a shortcodeShortcode A shortcode is a placeholder used within a WordPress post, page, or widget to insert a form or function generated by a plugin in a specific location on your site. to make it easier to specify times.

So I wrote a first draft of a shortcode to make this a bit easier. It’s not perfect, but I figured to go ahead and tell people now, so that you all could go ahead and start banging on it and telling me what the problems are.

Usage: [time] some-time-format-here [/time]

By “some-time-format-here”, I’m being a bit generous. You can use pretty much any time format you can think of and it will attempt to figure it out. With extra emphasis on “attempt”.

Stuff like this all works:

  • March 30, 2013 1pm UTC
  • April 4th at 1pm
  • April 4th around 1pm
  • April 4th 2012 1pm
  • next monday 1pm CDT
  • 1pm UTC

Now, a few important points:

  • If you don’t specify a timezone, you’ll probably get UTC. This is just for now, until I work out a better way.
  • If it can’t figure it out, you’ll notice no change in your text. Hopefully.
  • If it gets really confused, it’ll probably say January 1st, 1970. 🙂
  • “Absolute” times are more likely to work than “relative” ones. Give a date, and year, and time, and timezone, and you’ll probably be good.
  • Timezones matter in terms of daylight savings. GMT is not the same as BST (British Summer Time).

So, what’s the point? Well, if it can figure out what time you meant, then it’ll encode that and a bit of 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 will then localize that time to the viewer of the make P2 in question on load, assuming their browser knows what timezone they’re in.

So when I post “April 3rd, 2013 6:30pm CDT” (my current time) in the time shortcode, it’ll show this instead: April 3rd, 2013 6:30pm CDT. What you see there depends on where you live.

Hopefully this will make it somewhat easier to schedule IRC meetups and such. Let me know when (not if) you break it. Happy to iterate.

#make, #plugin