Beer blog

The phpBBModders.net beer blog is not about beer, as the name may suggest. Here we discuss what’s going on in the phpBB world.

PHP Application Development (Part 1)

by Obsidian on 29 Jul 2009, 02:56

PHP Application Development (Part 1)


So, what are you making?

I am programming a PHP-based IRC Bot, using PHP 5 object oriented programming, codenamed Failnet.
Features include authorization, access lists for users, factoids, and much more.
You can check the wiki for a more detailed list for the plans concerning the Failnet 2.0 line, and you can look through the SVN for what is currently in development.
Failnet currently encompasses over 7,394 lines of code and nearly 150 SVN commits to the project as a whole, and there is a project analysis on Ohloh for it.


What is it like, doing it all yourself?

Well, you are all on your own. Instead of having a set of guidelines to follow, it's all up to you to choose what to do. This freaks some people out; yet others enjoy it.
Why?
You follow your own standards. Don't like them? Change them. You won't get constantly bossed around by the project lead saying it isn't good enough simply because you are the project lead. (This isn't entirely true though -- if you are developing something for a specific autdience, you need to adapt your standards to suit their needs as well, otherwise you can and most likely will lose that audience.)
For some people, being this independent is a problem. They simply don't know what to do. These people are so used to having a structure to follow that they get flustered when designing their own independent project simply because they do not have anyone providing that structure for them. To be honest, I was at that point once -- I had started a project and couldn't handle the size of it. Simply put, I didn't have enough experience with programming at the time and didn't know how to proceed.
For those people that don't feel comfortable with building your own project from the ground up, I say this to you: step back, and go do something else. You aren't ready. When you feel like you have enough experience to start your own independent project, then you should consider it, but not until then.

Creating your own PHP application (even when you borrow large pieces of code from another project) is a substantial undertaking, and you have to be prepared. It takes dedication, caffeine, and most importantly patience for beginning your own project.

What have you gained from all of this?

During the time that I've spent building Failnet, I have come to understand some of the things that developers of large projects emphasize -- it isn't easy being in charge. You have to do a lot, and I mean a lot of research into ways to do things.
I can't begin to say how often I've written code, then gone back to it later, scratched my head and said "what the heck is this?", then scrapped it entirely and rewrote it because I did not like how it worked. Time and time again I have gone back to the featurelist of my project and ripped a part out of it because it wasn't well thought out, it wasn't very doable, or it was just plain stupid. I can only imagine if Failnet grew popular, the feature requests I would get; in fact I dread it. But such is the curse of being widely used, and every heavily distributed application gets an enormous amount of requests that the developers have to go through and say "not only no, but HECK NO" to.
Now I understand the strenuous development process that the larger applications go through. It really opens your eyes, working on a larger-scale independent project.

How do you do it?

Well, you take a long time to sort everything out. When you are writing an entirely independent application, it takes even more time to sort out what you want it to do.
If you don't sort it out and code as you go, everything turns out a mess. I've experienced this on a few things that I've made -- it wasn't pretty.
If you are alone in building the project, or you are one of very few active developers, do yourself a favor and do not set public deadlines. It will be the end of you if you set deadlines if you have an audience -- they will nag you to death if you miss a deadline. Not to mention it reflects badly on your application.

It is also a good idea to hunt around for similar projects.

I did this myself with Failnet, and in the end it paid off. I found another IRC Bot coded in PHP with a great design, which was Phergie. I would have used it myself instead of writing my own, however I didn't like how it was coded in some places. The IRC protocol integration was beautiful, and the runtime method of using plugins to interact with encountered events was sheer awesome. The main issue was that I didn't want multiple connections at all -- that was overkill. Not to mention some of the methods were just outright stupid to have -- you could set the properties in the classes that made up in Phergie to public and just wipe out two methods for each property, since these properties were only to retrieve and set the property's value.
So, I took a bit here, and a bit there, and started rebuilding my code. Now, I've fully integrated the plugins system, and have begun integrating an SQLite database for the bot. It is amazing how far this project has come in the time I have been developing it -- when I started this project it was a mess of functions that powered Failnet. Today, Failnet boasts robust coding methods, powerful backend systems, plugins, and several other features.

When will your project be done?

Like any other open source project, it'll be done when it is done.

A new Modding Process: Part 1

by Ganon_Master on 20 Aug 2008, 21:09

Well, I always knew there was a blog here, but I have never written anything for it... So I will just do that now. :D In this series (of wich I do not know how long it will last), I will try out a way of MODding that is entirely new to me. The "managed" way of MODding.

In my years of phpBB MODding, I have always looked at creating MODs as a process. This is correct, you may say. But how do you interpret "process"? In my first few years of MODding I interpreted it different from how I do now. Back then, I created MODs something like this:

  1. I get an idea.
  2. I start editting code to get to this idea.
  3. Gather changes into a file.
  4. Test it once.
  5. Release to public.

This might make sense for small modifications, but it is said that it works a lot worse then the following structure:

  1. I get an idea.
  2. I write down the idea and the exact features that I want: what does this MOD do?
  3. I look at points of improvement or conflict and write the points down in a logical order.
  4. Start scripting according to that order.
  5. Gather changes into a file and check if something doesn't add up.
  6. Test the entire thing yourself.
  7. Does it do what you wrote down in step 2? If not, go back.
    Send to a select group of people for more testing.

If thumbs up from small testing group, release to public for more testing.
Why is the second structure better then the first? Downside is that it has more steps and takes more time. But what this technique has over the other is some sort of quality insurance. It makes sure that you will release a product that matches your idea. Also, it adds an extra step of testing to eliminate bugs. This is said to work well for small modifications (Simple Points System) as well as large modifications (Advanced Dungeons & Rabbits). For larger modifications it is more of a requirement. ADR is one of my best examples for this. Up untill now I have tried to do it using the first method, and as some people might know, failed miseraly. :P This is the reason I am prepared to try this way of MODding, and will try to keep you up to date with all my latest opinions and obersvations.

In the next post, I will show you how I wrote my project plan.

phpBB Blog?

by Semi_Deus on 13 Jul 2008, 16:41

And suddenly there was a blog...
Why a blog? Apparently some team members had to get some stuff off their mind. But whats it all about then? Already three blog posts have been published with some very interesting information.

It seems that wGEric was getting a lot of complaints about the long process of mod validation. As we can see here too :mrgreen: It is a clear statement of what needs to be done before a mod is validated, and what you should do to make it happen fast.

Also battye has posted some interesting stuff about managing your forum on not only a technical level, as webmaster and administrator, but also on a user level to ensure your users of profits from your website in a great way.
All very nice and good information.

But what really stands out is the information provided by Kellanved.
It seems that certain rumors about security problems with phpBB3 are still wandering around. He is talking about an XSS problem with the private messaging system, SQL injection and administrator powers,
and is constantly referring too a certain th0r. Who is this guy?
As Kellanved tells us, google him and you will see. So I did.

http://th0r.info/

This is the website that Kellanved, apparently, was referring to.
It is a hacker website as it seems, and is full of info about insecure websites, and other minor failures of which hackers could profit. But as Kellanved explains. There is no such thing as an XSS problem. You cannot inject SQL into phpBB3 and you can certainly not give yourself administrator powers as a guest or registered user. Though these problem have been there. When?
Well Kellanved tells us: "Fixed a loooong time ago"

So his message really is, report anything you find, even if you are not sure.
But do not listen to these stories. Find error's yourself, and report them. If none, then phpBB is going the right way. But it seems that phpBB’s reputation regarding security has not yet recovered completely.

Cheers

phpBBHacks.com "Hacks and Styles Idol"

by eviL<3 on 28 Jun 2008, 12:50

Just a bit more than a week ago, patrick from phpBBHacks.com announced the "phpBBHacks.com phpBB 3 Hacks and Styles Idol" competition.

What's this all about?
It's a competition for MOD and style authors. The winner will be named "Hacks Idol" or "Styles Idol". There is a ton of stuff you can win. The worth for each of the winners sums up to over $900! You can get an ipod touch and a ton of books. The winners are elected via voting in the phpBBHacks.com.

How can i participate?
All you have to do is submit a new MOD or style to the phpBBHacks.com database (one that's never been in). You may have to specify which one you want to nominate in case not all are nominated. You have to read about how the voting works to understand that part. For this, go to the announcement.

Get a move on
The submission deadline is 12:00 pm on the 12th of july, so you better get going! ;)

I personally will probably be submitting one or two of my own 8-). But only the best :beer:.

Update
The deadline has been extended from the 4th to the 12th of july. So we get a little more time. :)

Devteam += ToonArmy.

by eviL<3 on 12 Jun 2008, 16:28

The phpBB development team is a mystery to many. First we had the mysterious join of APTX, who still has a total of 7 posts. At area51 he has a few more. He didn't commit very much to the SVN, actually hardly anything else than the base for the brand new bbcode parser! His name is "Marek", according to the SVN checkins.

Then there is another mysterious face, that was added not too long ago. You do not know anything about this person. He is not in the dev team officially, if you go to the code forge, however, you will see "Manuel Pichler". Who is this person? Further research shows, that he has a blog, and seems also Zend PHP5 certification. He is developer of a project called "phpUnderControl". Maybe this is related to the not-too-old "code sniffer"?

And now we have a new development team member: ToonArmy. This name however should ring a bell. ToonArmy has been very active at phpBB.com, with 1152 posts. The addition did happen pretty fast though. I congratulate him to this addition, and i'm curious to see some contribution!

Yay. :beer:

Teh Slave [Bot] is a nub

by eviL<3 on 01 Jun 2008, 19:07

This blog post title could possibly raise three questions.

1. Who is "Teh Slave [Bot]"?
2. Why is "Teh Slave [Bot]" a nub?
3. Why is this in the phpBBModders.net footer?

Hello world (again)

by eviL<3 on 27 May 2008, 21:05

After a total rework the beer blog is back again! 8-)