Archive for the 'programming' Category



Small Update

Well it’s been a while since I’ve posted here. Most of what I would have posted here has gone to our official MyBB Blog. So unfortunately I haven’t really had much to post. Since we’re not giving a release date, it makes sense to fill you in as much as possible instead.

So for the last two weeks I’ve been working on the last and final ACP page; The Themes page. It’s going to be pretty cool and a lot simpler than MyBB 1.2’s. I’ll post an overview of the Themes & Templates section once I’m done with the Themes page on the Official MyBB Blog.

The theme’s page will still take a considerable amount of work to finish. Most of the front end is complete, but behind-the-scences things like when you save a theme still needs to be programmed or finished.

Why is it taking so long? First and foremost, the Theme’s system is extremely complex. More complex then something I’ve ever dealt with. The system was originally designed by Chris Boulton (Lead MyBB Manager & Programmer) and was planned to be finished by Chris, but his time has been taken up by many other things so it was handed off to me. While I can code the mockups created gererously by Chris B. and Justin S., the logic that goes on behind the scences isn’t something you can just pick up on and code in quickly. As I stated before, it’s extremely complex to do correctly.

So because of that Chris and I have been in constant communication about how x and y works. The only problem is our communication is limited to the weekends because of time constrains (And living half across the world from each other doesn’t exactly help either). Even then, the weekends can become busy with other priorities.

To sum this all up, we’re trying to wrap up MyBB 1.4 as soon as we can.

Nevertheless, we’ve had an awesome turn out for the public beta and over 400 bugs have been squashed since the beginning of beta testing. I have to definately thank everyone who has participated for contributing their feedback and findings for MyBB 1.4. Hopefully, 1.4 will turn out to be an awesome product.

School & MyBB

For the past 4 weeks I’ve been busy working on MyBB 1.4 and the upcoming Merge System as regular, but in addition to having to create a 4 minute video on the “Reign of Terror” with Robespierre for World History. I did this with two other friends. Seeing as most of this was done by me (most of the scripts, and the movie editing) I’ve uploaded it here for you to view:

As for MyBB, we’re continuing to pace forward. The target for the release of the Merge System RC1 (phpBB 2 & MyBB Converters) should be within the next few weeks. At this point I can’t say much more than that. The information flow will probably start to pick up soon.

GNU/GPL License

Recently I found myself updating my modifications / plugins to the GNU/GPL License. I’ve been asking myself why? And I think the answer to that is because it’s such a good way to share your experience, knowledge, and insight with the rest of the world and at the same time breeding a new generation of programmers through useful examples. I always knew there was a bigger part of me that just wanted to help people. What better way to do it than through the “most free” license out there?

Slave drivers

I’ve just finished coding (Well, Chris wrote the base of the code) a new feature in. MyBB 1.4 will now feature MySQL & PostgreSQL slave drivers. (Yes We’ve added PostrgreSQL and SQLite 2 & 3 support for MyBB 1.4). This will come for a great boost in speed on large forums that run on multiple servers (think if MyBB ever ran Gaia Online).

Using a MySQL/PgSQL slave driver allows us to separate SELECT queries from queries that modify the database (INSERT/UPDATE/DELETE etc). Allowing that will let each server be tuned to select or modifying to get the maximum performance out of each server and over all have a speed increase on the servers.

Not to mention we’ll be the first free forum software (afaik) to do it. In addition to this, we’ve made many other optimizations to MyBB 1.4 and we are continuing to do so. We just hope this continues to show how dedicated we are towards making you a product that is fast, free, and efficient!

Bitwise Operators - Revisited

A long while ago Chris had made a blog post on “Bitwise Operators“. Now, just to make it crystal clear, Bitwise Operators are not in MyBB 1.4. MyBB 1.2 was more focused on the code. MyBB 1.4 is focused more on features. Sorry folks, but there isn’t just enough time in the world!

However, I’d like to bring them up again and revisit the idea of what they are and how they work.

To re-iterate what Chris stated on his blog post, Bitwise operators are operators that work on a bit-level. You can assign “levels” to a number. This number indicates the level and later on, will be able to provide us with what users have what permissions. In turn you have an array of users each assigned a specific value.

We’ll use Chris’s crisp and clean example to show how bitwise operators work:

<?php
$notices['can_view'] = 1;
$notices['can_post_threads'] = 2;
$notices['can_post_replies'] = 4;
$notices['can_edit'] = 8;

$testers[1] = 1;
$testers[2] = 5;
$testers[3] = 9;
$testers[4] = 14;

foreach($testers as $key => $tester)
{
echo “$key”;
foreach($notices as $key => $notice)
{
if($tester & $notice)
{
echo ” - $key”;
}
}
echo “<br />”;
}
?>
Now this code will print out the following:
1 - can_view
2 - can_view - can_post_replies
3 - can_view - can_edit
4 - can_post_threads - can_post_replies - can_edit

Now you may be asking how  we got that? In case you missed it, tester 4 has a value of 14. Now look at what the tester got: “can_post_threads - can_post_replies - can_edit". can_posts_threads has a value of 2, can_post_replies has a value of 4, and can_edit has a value of 8. Now what does that all add up to? 14! And so on and so forth; See? Simple!

This system can make our most difficult permissions night-mares as easy as the above example. If our course doesn’t change, I believe you will be seeing a lot more of Mr. Bitwise in 2.0 than ever before.