Blog

Archive for July, 2010

OSCON 2010

Posted by Sam in Events with the tags , , , , , on July 28th, 2010

The O’Reilly Open Source Convention has been held annually since 1999, allowing students, entrepreneurs, enthusiasts, and professionals to attend informative sessions and tutorials as well as visit the expo hall and mingle with others holding a common technical interest. This year, for the first time ever, phpBB was among the exhibitors in the Expo Hall.

Left to Right: Yuriy, Nathan, Cullen, Sam

What we expected

Despite phpBB3’s fantastic security record, we expected to meet some attendees who were only familiar with phpBB2. Anticipating questions dealing with security, we came prepared with laminated placards displaying pie charts and details of all issues reported for the phpBB3 line – the flagship phpBB version for the past 3 years.

What we didn’t expect

Very few people asked about phpBB’s security and walked past the placards to ask us questions about features, bridges, future plans, etc. Many of the other Open Source project exhibitors visited our booth and expressed their warm feelings toward the project and positive experiences using the phpBB software. Rather than having to defend ourselves, we were instead answering interesting questions and tipping our hats to compliments.

New Beginnings

Of all the different questions we were asked, the most common was surprising, to say the least. Over the course of the two days, we heard “Does phpBB integrate with Drupal?” so often that we began keeping count. This sparked some internal discussion, and we visited the Drupal booth, which was conveniently located just around the corner from us. There is already a community developed Drupal module for integration with phpBB, but multiple reports suggested that it was unstable and poorly written. Its scores within the Drupal database suggest that it is largely unusable in a live environment, which was a huge shock to us. After the first night, we returned to our hotel room and began planning a new phpBB-maintained Drupal plugin. Work on this has already begun and more information will be available soon.

Some very popular open source projects were present at OSCON, and a number of them approached us about presenting at their upcoming events. We are, of course, very excited about these plans and will keep you updated on our upcoming speaking/presentation engagements either via this blog or on the board.

After the Expo

On Thursday evening, we attended an informal “Birds of a Feather” session. Organizer Douglas Bell (Webmacster87), Cullen Walsh (ckwalsh) and Lorelle VanFossen all spoke about running online communities. We later joined them for dinner at a local restaurant.

phpBB.com server

The following day we joined the OSUOSL Open Bus Tour for a view of the Oregon State University campus and Open Source Lab. OSUOSL rented a wifi and power equipped bus for the 90 minute journey and we had a blast with the other attendees. You can see us with Lance from OSUOSL and the 2 phpBB.com servers (underneath the Berties) to the left.

We are very grateful to have such friends in the Open Source world.

What we took from this

We are glad to have met so many wonderful people at OSCON and look forward to maintaining the new bridges that have been formed. Speaking directly to phpBB users was a unique experience and we walk away with a better perspective of what the community expects from us. We will continue to improve over the next year and will be ready to address your updated concerns at next year’s event.

Please discuss this blog post in the phpBB OSCON 2010 topic in the Discussion Forum.

Please discuss this blog post in the phpBB OSCON 2010 topic in the Discussion Forum.

Deploying phpBB on Windows Azure

Posted by Kellanved in Development with the tags , , , , on July 26th, 2010

Windows Azure is the Mircrosoft cloud computing solution. One thing that might come as a surprise is that is specifically intended to run php applications (well, it runs .net too, even java). Long story short, we got introduced to the azure platform during the JumpIn! Camp. The project to get phpBB running on the Azure platform started right there – now it’s showing results.
Read the rest of this entry »

(Re-)introducing Area51 – phpBB Development Discussion

Posted by A_Jelly_Doughnut in Development on July 25th, 2010

Go record that handball violation. We made an error. Back in February when naderman detailed his vision for phpBB, he forgot to mention exactly how YOU could get involved.

The missing piece was a description of Area51, which has scattered links around phpBB.com, the bug tracker, the code forge, and so forth. But its purpose is never clearly explained. So here we go:

Most feature requests would begin as Discussion topics, where you might write:

I think phpBB should have a recycle bin for posts. This would eliminate problems with moderators deleting posts that really should not be deleted. The recycle bin should allow posts to be restored at any time, and should appear in the moderator control panel.

The discussion topic should help to form an overview of what aspects the proposed feature would have. It is also a place to gauge relative interest and find a developer.

If you have already a substantial understanding of the coding requirements of a feature, you might move along to the RFC (request for comments) stage. In an RFC, more implementation details should be included. If any code has been written, that should be part of the RFC. Depending on the extent of the feature and whether or not there is already code to look at would influence how long an RFC should be. Again, feedback will be given and in particular feedback about inclusion in phpBB.

The bug tracker is used to track accepted RFCs, so if an RFC is accepted at area51 a bug should then be filed. Once the code is complete, the feature should be merged into phpBB’s github repository.

And a brief word of explanation about why this error took so long to uncover:
Area51 has always existed (dating back to 2001 or so), and has always been used for the purpose of discussing and testing the future version of phpBB. It had not been used much in recent times because there was no real development of a future version until earlier this year. Since Area51 was linked from phpBB.com, we implictly thought that people would find it and would know what was going on.

phpBB “Ascraeus” 3.1 Feature Freeze

Posted by naderman in Development with the tags , , , , on July 20th, 2010

Yesterday marked the announced feature freeze date for phpBB Ascraeus 3.1. We have postponed this date once before and we are still a bit behind schedule, but we will stick to it this time. We have picked a number of features with unfinished implementations or still in RFC phase which we believe to be very important and which can be realistically finished in time. We are still learning to work with our new development model and I’m sure we will improve until the phpBB Arsia 3.2 release. All features that are implemented or suggested after today are going to have to wait for phpBB Arsia 3.2 to become part of phpBB (small exceptions may be made).

As you can see from the list below this release is going to focus on improving a number of existing features as well as improving MOD installation & MOD writing. The following is the list of features and improvements for 3.1 in no particular order:

Merged:

Patch in progress:

RFC only:

  • Migrations (UMIL) RFC Ticket Data Providers RFC
  • Changing IP banning to use ‘longest prefix matching’ RFC Ticket
  • Ability to delete auto login keys RFC Ticket
  • Authentication Plugin Refactoring, User Integration & OpenID RFC Ticket
  • Session Backend Abstraction (memcache support) RFC Ticket
  • Search Backend Refactoring RFC Ticket
  • Pre-Compile Template Includes RFC
  • Overridable imageset and theme paths for CDNs RFC

I would like to thank the rest of the development team for their work so far, and am looking forward to to finishing the first release of Ascraeus together with them. A special thank you goes to all the other volunteers who have brought great ideas to the proposal process and have provided us with high quality patches. They have really made me appreciate our active community and I’m looking forward to more collaboration during the next steps toward 3.1. You can find a list of all the contributors who have written code that was already merged at github This list will gain in length over the coming months as more of the proposed changes are merged.

Please discuss this blog post on the forum.

How to set up a test board for modding

Posted by battye in Development, Modifications with the tags , , , on July 16th, 2010

This article was written primarily for MOD writers interested in ways to optimise testing. Everyone has their own style of testing which works for them, and this is only one such style.

A good way to test MODs is by using a local setup. A local setup is an installation on your own computer or network, as opposed to a remote setup which would typically be your website (as it is hosted by another company in a “remote” location). This means that less time is spent uploading and downloading through FTP as any changes you make take effect almost instantly. An added benefit is you can continue developing and testing your modifications when you are without an internet connection.

There are many types of software which will allow you to create a local setup, such as XAMPP and EasyPHP. What these programs do is install PHP, a database like MySQL and Apache in their own sandbox which only runs when you start the program. For the purposes of this article, I will look at EasyPHP.

Installation instructions can be found at http://www.easyphp.org. Once EasyPHP is installed, in Windows Explorer navigate to the local web server directory. In the case of EasyPHP v2.0b (and depending on how you configured the software during installation) then it might be C:\Program Files\EasyPHP 2.0b1\www

Now that EasyPHP is set up, a quick way to install phpBB3 is to use phpBB QuickInstall (by tumba25 and evil<3). Of course, you can simply install phpBB3 as you would normally – but for the purposes of testing MODs by using QuickInstall there is the added flexibility of being able to install multiple boards very quickly (such as if you wanted to have a separate test board for multiple MODs).

QuickInstall is very easy to use, simply download it from http://www.phpbb.com/mods/quickinstall/ and extract the zip file. Create a new directory in the EasyPHP local web space (www) called quickinstall and copy all of the extracted files into this directory. Then in your web browser, go to http://127.0.0.1/quickinstall/index.php – you should see a page like this:

Once you have filled in the forms and pressed submit, QuickInstall is configured and ready to use. This means you can now create test boards. To do this, go to the Main Page tab and fill out the options in the forms provided. When you get to the setting where it asks to install AutoMOD, make sure you select “Yes”.

It will take a few minutes to install and copy the files across to the new directory (in this case “test”).

Once this is has happened, the browser will automatically redirect you to the newly installed phpBB3.

Once this is done, if you have already written (or partially written) a MOD then you can install it on the test board. Installing your MOD is a simple matter of navigating to the Administration Control Panel (ACP) and clicking the AutoMOD tab. From here, providing your MOD is in the correct MODX format and can be read by AutoMOD, the MOD will be installed very quickly.

If the MOD installs correctly, you will see a message like this:

Now your MOD has been installed. If you have yet to start writing your MOD then you can edit the files directly, as mentioned above this is a huge time saver. In this example, the test board is located in C:\Program Files\EasyPHP 2.0b1\www\quickinstall\boards\test – so the files that require editing can all be found in that test directory.

Note: if you ever want to delete a directory this can be done very easily by navigating to the “Manage Boards” tab of QuickInstall and selecting the board, and clicking delete. There is no confirmation message, so be sure that you want to delete it before proceeding.

There are some other useful tips to bear in mind when running a test board.

The easiest way to check the performance of the script (the MOD) is to enable DEBUG and DEBUG_EXTRA in config.php.

@define(‘DEBUG’, true);
@define(‘DEBUG_EXTRA’, true);

QuickInstall enables this by default. To turn this off is as simple as commenting those lines out.

The purpose of DEBUG is to show page load and simple query information in the page footer:

DEBUG_EXTRA is very similar (and only works if DEBUG is enabled), except it shows the explain link:

Clicking the explain link leads to the SQL report page, which lists database query information:

It is worth noting that DEBUG and DEBUG_EXTRA can be used on individual pages. If you don’t want that footer information appearing everywhere, then you can comment out those two lines in config.php but include them at the top of the PHP file for any individual page. For instance, if the lines were commented out of config.php but included under the <?php line of index.php – then the debug information would appear only on the index page.

Another useful benefit of enabling DEBUG is to see PHP notices. For instance, suppose I included the line echo $dog[6]; at the top of index.php. If DEBUG is disabled then the script will run error-free, despite that variable never being defined.

With DEBUG enabled, the PHP notice will be shown. This is important because it does reduce the amount of mistakes and potential bugs in code. (Note: the PHP notices can be shown with DEBUG disabled if you include error_reporting(E_ALL | E_NOTICE); in the file. This is handy if you want to see the notices, but for whatever reason do not want the additions to the page footer).

When dealing with cached database queries, during testing you might want to clear the cache (or at least clear any cached queries relevant to your MOD). You may or may not want to remove this code once testing is complete, depending on the MOD. By including the line $cache->destroy(‘sql’, MOD_TABLE); you can remove any cached queries relating to the specified table (you would change MOD_TABLE to the constant of whichever table you want to clear the cache for).

When making changes to the template, it is very annoying to have to Purge Cache after each change. Fortunately this can be made a lot easier, by going to the Server configuration -> Load settings page in the ACP and setting “Recompile stale style components” to Yes.

Remember to exercise caution when editing templates though. It is always better to edit the html files directly instead of editing the templates from within the ACP. Edits from within the ACP are stored in the database, they don’t physically change the file. Therefore if you have made edits in the ACP to a given file, then if you edit that file directly in the future the changes you made within the ACP will be lost.

I hope this article has been of some help. If you already enjoy writing MODs, now you can enjoy testing them as well!