Lightweight alternatives to phpBB
phpBB is the holy grail of free and open source forum/discussion board on the internet. With tons of plugins, themes and a amazing community, its probably the best too. But for those like me who don't want the bloat, and would rather use a simple and easy to manage forum, here are a few alternatives:
1. SimpleMachines - Probably the second best known free forum script. Slimmer than phpBB, and with a better, cleaner admin interface, its my personal favourie. And yes, it does have its fair share of themes/plugins and good community support.
2. FluxBB - This one is "really" light. The download comes in under 300kb, is XTML and CSS valid, and with a minimal but delightful interface is bound to loved by Mac fans.
3. bbPress - Comes from the creators of WordPress, its their in house forum software. Nuff said.
4. Vanilla - Other than having a tasty name, it also offers a very small and simple forum. Great for "minimal" fans.
5. Phorum - Its an open source PHP forum. Probably not as good looking as the others, but does the job well.
Javascript to generate query from form
One of the most mundane tasks in web development is insertion of forms into databases. Writing a query for each form is cumbersome and isn't the best way to go about it. Now before I get started, there are "far better" ways of doing it like using datagrid, or form designers, etc. Since I don't find them suitable for my taste, I've put together a very simple javascript that can do the job.
My example is based on PHP/MySQL and uses jQuery
The Problem: Generating an Insert Query for the particular form. Traditionally, if you form had say 25 fields, you'll name them, and post/get them to a server side script like php. Then you have to get each field using the $_POST or $_GET variables, and generate the query. Imagine doing this for 25 fields! Hope you get the point.
The Solution: Automatically traverse the form, generate the query using javascript, then submit it to the server side script by Ajax POST using jQuery. The function takes 3 arguments: table name, success message, error message.
The Limitations: As you'd imagine, there are a few serious limitations:
- The order of the form elements should match the order of the fields in the table. Needless to say the number of form elements should also match the number of fields in the table.
- The database name is hard coded into the server side script. Since my work involves only a single database, I find it easier to keep things simple.
Steps:
1. In your normal HTML form, arrange the input boxes in the order that they appear in your database table. In this example, we have 3 text boxes: user, email and pass.
<div id="container">
<form id="loginForm" method="POST" action="dbprocess.php">
<dd>
<dl><label for="user">Username</label></dl>
<dt><input type="text" name="user" maxlength="20" /></dt>
</dd>
<dd>
<dl><label for="email">Email</label></dl>
<dt><input type="text" name="email" maxlength="20" /></dt>
</dd>
<dd>
<dl><label for="pass">Password</label></dl>
<dt><input type="password" name="pass" maxlength="8" /></dt>
</dd>
<input type="submit" value="Submit" id="submitForm" />
</form>
</div>
2. Include the jQuery.js and formSubmit.js files in the header
3. Insert the following Javascript code that disables the submit button of the form, and calls our formSubmit function instead. The form submission is handled in the function via jQuery Ajax request.
<script type="text/javascript>
$(document).ready(function(){
$("#loginForm").submit(function(){
return false;
});
$("#submitForm").click(function(){
formSubmit("users","New user added successfully!","Error adding user!");
});
});
</script>
4. Write your server side PHP script to connect to the database, and perform the operation
<?php
$query = stripslashes($_POST["query"]);if(!$con = mysql_connect("localhost","root",""))
die("Database Connection Error");if(!mysql_select_db("login"))
die("Database does not exist");$result = mysql_query($query,$con);
if($result)
echo "1";
else
echo mysql_error($con);
mysql_close($con);
?>
And that's it! Your form insertion should be working provided you took care of the limitations. This script is useful if you have many forms with lots of input fields in your application. Comments, suggestions and criticisms welcome!
Download the script with example
Google open sources its updater: Omaha
The virtual owner of the web, Google has released its software update framework, codename "Omaha" under the open source license. What this means is that you can use the update framework in your own Windows apps. Since its being used in Chrome and Google Earth, you can be sure abot its robustness.
So if you have a windows application that needs updating, look no further than here. Detailed blog post here.
P.S: For Mac OS X, try Update-Engine
Custom php/apache file extension
Ever wondered how to have you own file extension instead of the boring .php? Just like arstechnica has .ars ? Well with just one line of code, you can make your webserver accept your custom extension!
1. Open the apache httpd.conf file
2. Add the line "AddType application/x-httpd-php .bot" without the quotes. What it does is instruct the server that .bot extension is a php file and that it should be treated as a normal php file
3. Rename your php file with extension bot
4. Open in web browser and see the magic!
Openslide – Open source alternative to slideshare
Just a quick heads up. One of the nice guys in India has floated a open source project to create an alternative to http://slideshare.net. The project is in the planning stage, so if anyone wants to help, you can contact the admin.
Read more about the project, straight from the guy who started it on his blog here
The sourceforge page is here