Thursday, 17 May 2012

Access Facebook on Mobile Without the Internet

You can now use Facebook on any mobile phone without GPRS or the Internet. You can chat with Facebook friends, send messages, add friends and more.

Do you have an old mobile phone, like the Nokia 1100, that has no browser and can do little more than make phone calls? Or are you stuck in some remote place where there’s no Internet or no other form of data (EGDE/GPRS/3G) connectivity is available?
Not a problem. You can still use your Facebook account in India by dialing *325# (or *fbk#) from your mobile phone – this service requires no data plan or Internet and it will even work on phones of the Stone Age. Here’s a quick tour:
        

Use Facebook without the Data Plan

Facebook India has partnered with Fonetwish to bring Facebook on every mobile phone without requiring any apps or even the Internet.
You dial the *325# number, then enter your Facebook username and password and you are in. You can then send number based commands to access various features of Facebook, chat with friends who are online, add new people to your friends list, and more.
I played with the service for some time and it was a nice experience overall. If there were a Unix-like shell interface for Facebook, it would be much similar. Fonetwish says that this service is currently available for Airtel, Aircel, Idea and Tata Docomo users in India.
It may be too much work to read your Facebook news feed stories one by one but this is a good option to quickly update your Facebook status or for chatting with friends who are online. The price is reasonable too – you just have pay a subscription fee of 1.00 per day for unlimited usage.

5 Awesome Social Bookmarking Plugins For Your WordPress Blog

sharing has now become a trend and you can see people sharing interesting links and news articles on popular sites like Facebook, Twitter, Google+ etc. As a webmaster, you should definitely provide options for your readers to share content to these social sites. If you are using WordPress, then you have hundreds of plugins to customize your blog and like other categories, there are many plugins which help in social bookmarking.
Most of the blogs are using these social sharing buttons and in case you are not yet using, you should get started with it as it will increase the coverage of your blog and also increase the traffic from these sites. In this article we will cover the best plugins for WordPress for social bookmarking and sharing.
1. Sexy Bookmarks:
This is one of the most popular and attractive plugin with options to add almost all popular social sites. It adds an attractive social bookmarking menu to your posts, pages, index, or any combination of the three. you can customize the icons which you want to display on your posts and pages.
sexy bookmarks
2. Sociable:
This is yet again a very popular plugin with more than 1.5 million downloads. With sociable, you can customise the icons which you want to display and set the icon type and location. There is also a skyscraper which is displayed as a vertical floating bar.  You can select and customize several features, such as text, color, and length in order to ensure your readers and their friends a great Sociable Experience.
Sociable
3. Sharebar:
Sharebar adds a dynamic and fully customizable vertical box to the left of a blog post that contains links/buttons to popular social networking sites. For wide blogs, a vertical bar with popular sharing icons appears on the left of your post. If the page is resized below 1000px (default), the vertical bar disappears and a horizontal sharebar appears under the post title.
Sharebar
4. WP- Socializer:
WP Socializer is an advanced plugin for inserting all kinds of Social bookmarking & sharing buttons. It has super cool features to insert the buttons into posts, sidebar. It also has Floating sharebar.
Socializer
5. Share Buttons by Lockerz / AddToAny:
The WordPress plugin to help people share, bookmark, and email your posts and pages using any service, such as Facebook, Twitter, StumbleUpon, Google, Digg, Delicious, and well over 100 more sharing andsocial bookmarking sites.
Add to any
There are hundreds of other social bookmarking plugins available in the WordPress plugins repository, but we have covered the most popular ones only.

How To Recover from the Google Penguin Update Penalty


Were you affected by the recent algorithm update by Google called as the Penguin Update? Then this article *may* help you because what we are going to discuss below is some of the points suggested by Google itself. If you are a blogger whose blog has been surviving all the Google Panda Update Penalties and finally got hit with the recent update then this is something you need to read. We have had earlier covered a few articles like Recovering from Google Panda Algorithm Update39% Traffic Drop with Google Page Layout Panda Update & How Google Panda Update Went Wrong – Few Proofs
  • Remove Any Paid Links : If you have had sold any links on your blog by charging a few dollars then its time you should be removing them because Google can easily find out if its a paid link or not. The point is that the link buyer usually buys links in bulk from similar blogs and all of them get penalized for doing so. A few dollars earned from this would lead you to loose a lot of Organic traffic. If you have still not done this, its time to remove those links and refund the money.
  • No more Links Buying : If you have been buying links in bulk from different blogs then its time to stop those campaigns because Google has started tracking all the websites which have got huge back-links with the anchor text being the targeted keywords clearly giving them a hint that its a paid link. Natural links are generally earned with the blog name in the anchor text and not the main keyword in the anchor which is why the spiders easily find these and penalize those blogs.
  • Focus on Ads Vs Content Ratio : If you have still not read our article on Google Page Layout Updatethen you need to read it because we have had clearly informed that you need to start building a active community and not just focus on some quick money by trying to earn from every visitor to your blog. Ensure that you can push as much related content to your readers and try to display very less % of ads on your blogs above the fold area.
  • Stop Keyword Stuffing : If you follow the suggestions by so called guru’s on the web who suggest you to add some keywords within your articles, then you are doing it completely wrong. Google suggests you to write articles for your readers and not for the Search Engines, which means that you should never add / stuff keywords on your blog post content. If you were doing this from a while, its suggested to fix those articles or delete them and go for clean useful content which is useful for your blog readers.
  • Send Feedback to Google : Still not able to figure out why the traffic is not back even after fixing up everything, then its time to send feedback to Google in detail about your issue and wait for the webmasters team to check the same. You can access the same here and ensure that your blog traffic was affected on the update which happened on April 24th and not something which happened in some other date range.

Wednesday, 16 May 2012

How to Integrate OutBrain Widgets Manually on WordPress Blogs


If you have been searching for the best option to display related posts on your blog, then its suggested to opt for a service which is not hosted on your blog and which is offered by a third party service provider with the main advantage being that you don’t have to expect any server loads.
We have earlier discussed on the best related posts plugins for your blog and what all should be implemented and what should be avoided. We have tried the linkwithin plugin and also other plugins but the best of all would be the one offered by Outbrain because of the flexibility and the perfection in the display of your related blog content.
You can find that we have implemented this service on our other blogs and the way they have displayed the widget is very good. The service comes with multiple options when you select the Get Blog widgets options ranging from Text & Text + Thumbnail type widgets which are free to use and can be implemented within 60 seconds on your blog. You can implement the same on WordPress, TypePad, Blogger, Drupal, Sqyarespace or any other website type using the Javascript Embed options. If you select the WordPress option then its available only for the self hosted blogs in the form of a plugin with limited areas to implement the same, but when you would like to implement it anywhere on your blog then its suggested to select the Javascript option.
You will be given a Javascript like the following which has to be placed in your theme / template files where you would like to render the related posts.
<script language=’JavaScript’>
var OB_langJS = ‘http://widgets.outbrain.com/lang_en.js’; var OBITm = ’1333343610290′;var OB_raterMode = ‘none’;var OB_recMode = ‘strip’;
var OutbrainPermaLink=’<strong>DROP_PERMALINK_HERE</strong>’;
if ( typeof(OB_Script)!=’undefined’ )OutbrainStart(); else { var OB_Script = true; var str = unescape(“%3Cscript src=\’http://widgets.outbrain.com/OutbrainRater.js\’ type=\’text/javascript\’%3E%3C/script%3E”); document.write(str); }
</script>
You just need to ensure that you replace the ‘DROP_PERMALINK_HERE’ line with your blogs permalink code which will make the plugin work perfectly. In case of a self hosted blog this has to be replaced with <?php echo currentPageURL(); ?> which is the correct code. Once done you need to ensure that you have added the following code at the end of your functions file just before the ?> of the functions.php file.
function currentPageURL() { $curpageURL = 'http'; if ($_SERVER["HTTPS"] == "on") {$curpageURL.= "s";} $curpageURL.= "://"; if ($_SERVER["SERVER_PORT"] != "80") { $curpageURL.= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"]; } else { $curpageURL.= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"]; } return $curpageURL; }
Once you have added the code in the functions file followed by the above outbrain code in the templates file, the widget would start rendering the related posts automatically and sometimes it would take upto a few hours for the service to index all your content and generate a screenshot for the same. Once done you also get other options like showing Recommendations in your posts, showing paid advertisements or giving away the same under the list of charities mentioned in your outbrain account.

Create Stylish File Upload Progress Bar with Jquery and PHP


We received many tutorial requests from 9lessons readers that asked how to create file upload progress bar with PHP and Jquery. In this post Arun Kumar Sekar had developed few lines of code using PHP APC library, it is very simple getting the server file upload process every few second and increasing the bar color using jquery css property. Just take a look at this demo.



Download Script     Live Demo

Developer
Arun Kumar Shekar
Arun Kumar Sekar
Engineer
Chennai, INDIA

To run this script you have to install PHP apc library extension or for PHP 5.4 not required, just follow the steps to enable the extension. For web page design we implemented with bootstrap CSS library for any information check my previous post Bootstrap Tutorial

Windows APC Installation
Follow this link Click Here
In php.ini include apc.rfc1867 = on 

Linuk APC Installation
Follow this Link Click Here
In php.ini include apc.rfc1867 = on 
php.ini located in /etc/php.ini

get_progress.php
Contains PHP code it identifies file upload status from server process. 
<?php
session_start();
error_reporting(0);
/*
// For PHP 5.4 users
$progress_key =ini_get("session.upload_progress.prefix")."uploadImage"; // uploadImage is a Form name
$current = $_SESSION[$progress_key]["bytes_processed"];
$total = $_SESSION[$progress_key]["content_length"];
echo $current < $total ? ceil($current / $total * 100) : 100;
*/
// For PHP 5.2+ php_apc.dll or php_apc.so holder
if(isset($_GET['progress_key']) and !empty($_GET['progress_key'])){
$status = apc_fetch('upload_'.$_GET['progress_key']); 
    echo $status['current']/$status['total']*100;
exit;
}
?>

index.php
General form file upload with PHP. You have to include validation rules, please check my previous post for help. 
<?php
$uiq = uniqid();
$image_folder = "uploads/";
$uploaded = false;

if(isset($_POST['upload_image'])){
if($_FILES['userImage']['error'] == 0 ){
$up = move_uploaded_file($_FILES['userImage']['tmp_name'], $image_folder.$_FILES['userImage']['name']);
if($up){
$uploaded = true;
}
}
}
?>
<form name="uploadImage" id="uploadImage" enctype="multipart/form-data" action="index.php?progress=<?php echo($uiq)?>" method="post" class="well">
<label>Upload File</label>
<input type="file" name="userImage" id="userImage" /> 
<span class="badge badge-info" style="display:none;">0%</span> 
<input type="submit" class="btn btn-success" name="upload_image" id="upload_image" value="UPLOAD FILE" /> 
<div class="progress" style="display:none;"><div class="bar" style="width:0%;"></div></div>
</form>

JavaScript File
Contains simple javascript implemented with Jquery properties getting server file process every few seconds. 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.js"></script>
<script type="application/javascript">
$(document).ready(function(){
var randIDS = '<?php echo $uiq?>';
// Add Hidden Field
var hidden = $("<input>");
hidden.attr({
name:"APC_UPLOAD_PROGRESS",
id:"progress_key",
type:"hidden",
value:randIDS
});
$("#uploadImage").prepend(hidden);
$("#uploadImage").submit(function(e){

var p = $(this);
p.attr('target','tmpForm');

// creating iframe
if($("#tmpForm").length == 0){
var frame = $("<iframe>");
frame.attr({
name:'tmpForm',
id:'tmpForm',
action:'about:blank',
border:0
}).css('display','none');
p.after(frame);
}
// Start file upload
$.get("get_progress.php", {progress_key:randIDS, rand:Math.random()},
function(data){ 
var uploaded = parseInt(data);
if(uploaded == 100){
$(".progress, .badge").hide();
clearInterval(loadLoader);
}
else if(uploaded < 100)
{
$(".progress.badge").show();
$(".badge").text(uploaded+"%");
var cWidth = $(".bar").css('width', uploaded+"%");
}
if(uploaded < 100)
var loader = setInterval(loadLoader,2000);
});

var loadLoader = function(){
$.get("get_progress.php", {progress_key:randIDS, rand:Math.random()}, function(data)
{
var uploaded = parseInt(data);
if(uploaded == 100){
$(".progress.badge").hide();
parent.location.href="index.php?success";
}
else if(uploaded < 100)
{
$(".progress, .badge").show();
$(".badge").text(uploaded+"%");
var cWidth = $(".bar").css('width', uploaded+"%");
}
});
}
});});
</script>

test4

test4