Home     Wordpress     Codex

Archive for May, 2009

Learning PHP Part Four – If and else

May 30th, 2009 by admin | No Comments | Filed in Learning PHP

Have you been playing around with the GET and POST arrays now?
If not, learn about foreach in PHP here.

What can I do now?
You can go ahead and use if to check the contents of variables.
Check this out.

If
The syntax for if goes like this:

if (statement) {
  Insert your code here
}

The statement will be checked, and if it is true the code within the { and } will be executed.
Take for example a script where you get a variable from the url, take the previous
example where you used $_GET['name'] to retrieve the ?name= part of the URL.

Now, if your name is John and you want the page to say hello to you but not to anyone else.


The $_GET['name'] == ‘John’ part is called the statement,
you probably understand it but it checks to see if the $_GET array variable
with the key ‘name’ contains a string ‘John’.

You can do similar tests with numbers, but then you won’t need the quotes
like the ones I have around ‘John’.

The example will then be:


Let us say you want to check if the name is NOT John.

You're not my master.

Else
Now, take the example where you output ‘Hi master’, what if you want
to print something to the ones not being the master? You can use else

You're not my master

That’s all for today, I don’t have so much time today so I am going to keep it quite short.
I will get back with a new article in these series in a couple of days, hope I’ll see you back here then!

Tags: , , ,

Really cool Spotify and last.fm Mashup

May 29th, 2009 by admin | No Comments | Filed in mashups

Just a short post for today, but I thought I’d make you aware of an application (that has been around for a while, but hey, it’s creative).

If you use Spotify and Last.fm this mashup of an application is a great way to find music on added to Spotify that matches your top 50 artists (or so, Vilhelm writes.)

Maybe you can find some goodies there!

Tags: , , ,

Learning PHP (3); Reserved vars and loops

May 28th, 2009 by admin | 1 Comment | Filed in Learning PHP

In my previous article I explained arrays and their use. But have you ever wondered what happens to those variables set in the url? They are contained within an array which is prefilled for your scripts.

The array variables $_GET, $_POST and $_SERVER are some of the interesting ones you can use.

The reserved $_GET variable
An example would be this type of URL.
http://www.example.domain/myphpscript.php?name=Espen

To catch the variable ‘name’ you can do this piece of PHP

<?php
echo “Hi ” . $_GET['name'];
?>

This will output “Hi Espen”.

Using the reserved $_POST variable
To get the variables from a form you can use $_POST['key'].
Look at this example:

Create this HTML form, change the path to myhelloscript.php to a place where you test your scripts.

<form action=”http://my.domain/myhelloscript.php” method=”post”>
<input type=”text” name=”name”>
<input type=”submit” value=”send it”>
</form>

Then create the file myhelloscript.php with the following contents

<?php
echo “hi ” . $_POST['name'];
?>

You see? The same result here, only now we’re using POST instead of GET (you can also notice that the URL does not contain the variables).

Looping over an array
Looping over an array can be very usefull in the case where you don’t know what the reference keys are.
Let us say you didn’t know that the key for the name in the previous post example was not called  ‘name’, how would you find it?

Here is an example of looping over an array, looping through all the key and value pairs.

<?php
$myarray = array(‘Espen’, ‘John’, ‘Lisa’, ‘Mark’);

foreach ($myarray as $value) {
echo $value . “<br>”;
}
?>

Now we’re saying for each ‘entry’ in $myarray get the entry as $value and do something with it between the { and }
So for each $myarray as $value: echo $value and a ‘<br>’ (to get a newline).

This example will output

Espen
John
Lisa
Mark

Getting the key
But that’s not the key, is it?  How do you find the keys?
This example will use the foreach command in another way to get the keys also

<?php
foreach ($myarray as $key => $value) {
echo $key . ‘ is ‘ . $value . ‘<br>’;
}
?>

Now you can also use the variable $key within the loop for each value to get the corresponding key.

This is an example of looping over the $_GET array

<?php
foreach ($_GET as $key => $value) {
echo $key . ‘ is set to ‘ . $value . ‘<br>’;
}
?>

A Challenge
The $_SERVER variable contains a lot of variables about the request, can you figure out how to show them all?

If you get any weird syntax errors or such, post them as a comment and I will try to help you out!

Tags: , , , , ,

Learning PHP – Part two; Arrays

May 26th, 2009 by admin | 1 Comment | Filed in Learning PHP

Here’s my follow up on my PHP articles, this time I am going to talk a bit about arrays. They are so important that you should learn about them sooner than later.

What are arrays?
This quote is from wikipedia.org

An array is a systematic arrangement of objects, usually in rows and columns. Specifically, it may refer to several things.

That’s exactly what it is, it’s a variable (see previous post) containing several values (like a shelf with several compartments) that can be retrieved by a key (the number on the compartment). Array keys are per default a number, but it can also be an associative array with text strings for keys.

So make an array and fill it with data
Here is an example on how to declare an array:

<?php
$bookshelf = array(
‘old books’,
‘new books’,
‘cooking books’
);
?>

The variable name is $bookshelf, it is set to be an array(). The contents is put in between the (), but you can also declare an empty array by doing this:

$bookshelf = array();

By default, the first value will have the key 0, the second will have 1, etc.
To refer to a value within an array and echo it out to display:

<?php
$bookshelf = array(
‘old books’,
‘new books’,
‘cooking books’
);

echo $bookshelf[0];

?>

The result outputted from this script will be:

old books

By using the [ and ] signs behind a variable you are referring to it as an array, what you put between them is the key you are using. Try to change the value between them to 1 and check the result.

Adding values to a PHP array
You can make use of the array_push() function to insert more variables to a previously declared array.

<?php
$bookshelf = array(
‘old books’,
‘new books’,
‘cooking books’
);

array_push($bookshelf, ‘dvds’);

echo $bookshelf[3];

?>

You can also set a variable directly by using the key

<?php
$bookshelf = array(
‘old books’,
‘new books’,
‘cooking books’
);

$bookshelf[3] = ‘dvds’;

echo $bookshelf[3];

?>

Deleting a value from a PHP array
Several ways to this also, you can use array_pop() to unset the last value in the array.
The unset() function can be on the array value to unset it.
You can set it to null by referring to the key

array_pop($bookshelf);
unset($bookshelf[3]);
$bookshelf[3] = null;

While these are regular arrays, there are other possible ways to use this. A string variable like $name = “Espen”; in my previous article is actually an array of characters. $name[0] will refer to ‘E’, 1 will refer to ’s’ so on and so forth.

Associative Arrays in PHP
You can use keys which are not numbers in an array, those are called associative arrays.
Here is an example, I bet you understand most of the basics now, and in case NOT – drop me a comment!

$bookshelf['favourite'] = ‘Marketing 911′;
echo $bookshelf['favourite'];

In my next article you will get magic behind the array variables $_GET, $_POST and $_SERVER to finally be able to handle user input from forms and every secret of the request. Want to know when I post it? Get Learning by RSS.

Tags: , ,

Learning PHP – Part one

May 24th, 2009 by admin | 4 Comments | Filed in Learning PHP

Do you want to learn PHP?

I’ve been coding (or scripting if you want) PHP actively for myself for probably 10 years now, over the years I’ve had a lot of questions about it and have done a lot of small favours for people. I would be happy to give away some of my knowledge, so please ask if there is anything.

I am going to teach PHP from basic to advanced, I will try to keep it to one article every other day.
Subscribe to my feed if you don’t want to miss out on this chance.

Basic Introduction
What is PHP? It is a scripting language that resides on the server-side as opposed to javascript which is downloaded and ran by the client (which is called client-side).

To be able to execute PHP scripts, you need access to a webserver that runs PHP scripts – there are a lot of alternatives.
I am not going to explain them here, but I am sure it is possible to arrange something if you need a place and is into learning.
It is also possible to run an Apache server locally with PHP.

My First PHP Script
Create a file named first.php and this is the contents

<?php
echo “hello (word)”;
?>

Save this file somewhere on the webserver and try to go to the url.
It will display: hello (world)

Explanation
The first line is <?php, this tells the webserver that it is about to parse PHP scripting. You need this before every piece PHP script for it to be executed as PHP.

The second line is echo “hello (world)”;, this is actually the PHP script line.
It uses the built-in function ‘echo’ to display a string, the string needs to be contained within quotes.
And notice that the ending of the line is ;, this finishes off the statement.
If you were to forget the ; and had several lines of code the server will continue to feed the rest of the code into the echo function, which would probably not work or give really really unexpected results.

The third line is ?>, this tells the webserver that the PHP script is over.
When it reaches this tag, it will continue to output the rest of the page to the browsing user. This means that you can use PHP in between HTML to generate dynamic responses.

My Second PHP Script
Heck, since it’s the first post and the first script was so easy.. I will show you another script and teach how variables work.
I will move on to more advanced things later, so keep watching if this is way too basic for you. There will be more blood! :D

<?php
$name = “Espen”;
$age = 23;
$twice = $age * 2;
echo “My name is ” . $name . ” and my age is ” . $age . “, if I had lived twice as long I’d be ” . $twice;
?>

Explanation
The first line of PHP script is $name = ‘Espen’;.
The dollar sign ($) indicates that this is a variable, variables are used to contain dynamic information like if you want to display it at several places in your document.

The variable name is actually ‘name’, and it is set to contain anything behind the equal (=).
The string behind the equal sign is “Espen”, notice the ; ending again.
Because it is contained within quotes, PHP automatically identifies it as a string, it will not work without quotes.
I will show some examples between the difference in double and single quotes later.

The second line is $age = 23;.
As before, notice the dollar sign and also notice the ; ending.
Because age is an integer, you don’t need quotes. If you use quotes around the age like ‘23′, PHP will identify it as a string and doing calculations on it can fail.

The third line is $twice = $age * 2;
This sets the variable named $twice to contain whatever is in the variable $age and multiply it with two.
We know from before that $age is set to 23, so this will yield a result of 46. $twice now contains 46.

The fourth line is:
echo “My name is ” . $name . ” and my age is ” . $age . “, if I had lived twice as long I’d be ” . $twice;

One of the methods of combining variables into another is the usage of the period character (.) There are other and better ways to do it, but that may be to complicated for a beginner for now.
Some if you may relate this to javascript where they use + to combine variables.
So this actually feeds a lot of parts of information to the echo function to display it:
“My name is ” is the first part, the next variable will be printed right after it – so notice the white space before the last qutoe.
Then the period character is used to append the variable $name to it.
The string ” and my age is ” is appended by . again, notice white spaces before and after the string.
You probably understand the rest of it now.
Notice that any white space added that is not contained within quotes will not be displayed either.

If anything is unclear or completely wrong, feel free to drop me a comment!
More learning is coming: Subscribe to my feed.

Tags: , , , ,

Google Maps in Flash with the Flex SDK and haXe

May 23rd, 2009 by admin | No Comments | Filed in mashups

and getting it to work together.. seems like people have a lot of issues with this, so here are the steps you have to take.

If you do not have an API key, sign up for one here.

This way of installing haXe is pretty bad and should be avoided, but it made it easy swapping haXe versions fast.
I use the haXe version 1.19 together with the Google Maps Flash API.

Lets first get haXe and the Googles Flash API

root@devbox:/usr/local/src$ mkdir flashdevelopment
root@devbox:/usr/local/src$ cd flashdevelopment/
root@devbox:/usr/local/src/flashdevelopment$ wget -q \

http://maps.googleapis.com/maps/flash/release/sdk.zip

root@devbox:/usr/local/src/flashdevelopment$ wget -q \

http://haxe.org/file/haxe-1.19-linux.tar.gz

root@devbox:/usr/local/src/flashdevelopment$ unzip -q sdk.zip
root@devbox:/usr/local/src/flashdevelopment$ tar -zxf \
haxe-1.19-linux.tar.gz

To make haXe work:

root@devbox:/usr/local/src/flashdevelopment$ cd haxe-1.19-linux
root@devbox:/usr/local/src/flashdevelopment/haxe-1.19-linux$ cp haxe /usr/bin/
root@devbox:/usr/local/src/flashdevelopment/haxe-1.19-linux$ cp haxelib /usr/bin
root@devbox:/usr/local/src/flashdevelopment/haxe-1.19-linux$ cp haxedoc /usr/bin/
root@devbox:/usr/local/src/flashdevelopment/haxe-1.19-linux$ mkdir /usr/lib/haxe
root@devbox:/usr/local/src/flashdevelopment/haxe-1.19-linux$ ln -s /usr/local/src/flashdevelopment/haxe-1.19-linux/std/ /usr/lib/haxe

Now we need to generate hxclasses from the SDK to make it usable in haXe

root@devbox:/usr/local/src/flashdevelopment$ cd lib
root@devbox:/usr/local/src/flashdevelopment/lib$ mv map_1_9.swc map_1_9.zip
root@devbox:/usr/local/src/flashdevelopment/lib$ unzip map_1_9.zip
Archive: map_1_9.zip
inflating: library.swf
inflating: catalog.xml
root@devbox:/usr/local/src/flashdevelopment/lib$ haxe –gen-hx-classes library.swf

Now, there are some changes that has to made to make haXe like the API
I generated the working sources with a newer version of haXe, and applied the changes to it.
This makes the patchfile a bit larger than it had to be, because I had to make a patch against my haxe 1.19-generated hxclasses/ folder.
Anyways, this works and it is against the 1.9 file from Google.

root@devbox:/usr/local/src/flashdevelopment/lib$ wget -q \

http://arpa.no/googlemaps.diff

root@devbox:/usr/local/src/flashdevelopment/lib$ patch -p0 < \
googlemaps.diff

Clean up a bit so we can just develop here:

root@devbox:/usr/local/src/flashdevelopment$ rm lib/map_*
root@devbox:/usr/local/src/flashdevelopment$ rm haxe-1.19-linux.tar.gz sdk.zip

Lets try to create just a simple map, this file will be /usr/local/src/flashdevelopment/MyMap.hx

import com.google.maps.Map;
import com.google.maps.MapEvent;
import com.google.maps.LatLng;
import com.google.maps.MapType;
import com.google.maps.controls.ZoomControl;
import com.google.maps.controls.MapTypeControl;
import com.google.maps.controls.PositionControl;

class MyMap extends Map {
static function main() {
var app:MyMap = new MyMap();
flash.Lib.current.addChild(app);
app.setSize(new flash.geom.Point(400,400));
}

public function new(){
super();
addEventListener(MapEvent.MAP_READY, onMapReady);
}

private function onMapReady(event:MapEvent) {
setCenter(new LatLng(40.416740,-3.703250), 2, MapType.NORMAL_MAP_TYPE);
setZoom(2,false);
addControl(new ZoomControl());
addControl(new PositionControl());
addControl(new MapTypeControl());
}

}

Now we need to make a way for haXe to understand how to compile this with the API, so this is the contents of:
/usr/local/src/flashdevelopment/compile.hxml

-swf map.swf
-swf-version 9
-cp lib/hxclasses/
-swf-lib lib/library.swf
-main MyMap

Use haXe to compile this map into an SWF:

root@devbox:/usr/local/src/flashdevelopment$ haxe compile.hxml
root@devbox:/usr/local/src/flashdevelopment$

Voila! Your first Google Flash Map, fresh from the oven.. the filename is map.swf
Try to include this on a webpage, check the source here if you don’t know how to do it.
Your API key should be in the flashvars when applying the flash object on a webpage.
&ltparam name=”flashvars” value=”key=key”/&gt

Here is my result, I messed up the width/height of my app, but it works:

Hope someone can have use out of this! :)

Tags: , , ,

7 Websites with a good API for Mashups

May 22nd, 2009 by admin | 1 Comment | Filed in mashups

Mashups. To be able to think creatively about it you must know which sites offer an API. And then; what kind of data you can expect to be able to access. Here is a list of websites which offer an API. Some are the most popular, but you will find a little golden egg or two in this list.
fb_logosm

Facebook have an API, you can use most of the data users have stored at facebook, like friends, profile info, photos.
API Docs: Facebook API Documentation

twitter_logo
From Twitter you can get the user data, followers, friends and status updates. A previous article on this website was about Twitter applications.
API Docs:
Twitter API Documentation

lastfmlogo
With the last.fm API you can retrieve user data, most popular songs and everything stored within last.fm

A friend of mine created this mashup of Spotify and Last.fm.
API Docs: Last.Fm API Documentation

bitlylogo

With the bit.ly API you can expand and shorten URL’s, then gather statistics about traffic on those specific short URL’s.
A lot of Twitter users post links shortened with bit.ly, so it would also be possible to keep track of what’s popular by the use of this API.
API Docs: Bit.ly API Documentation


Create your own maps, you can use Google Maps API to display geodata in your mashup.
API Docs: Google Maps API Documentation

GeoNames
With the GeoNames API you can get data for your Google Maps; Airports, Hotels and a lot of other things. Trivial resource!
API Docs: GeoNames API Documentation

digglogo

With the Digg.com API you can get current popular stories from all categories, the digg count, comments and a lot of other data.
API Docs: Digg.com API Documentation

That’s the list!

Which other popular APIs exist? If you have used another API, leave a comment!

Tags: , , , , , , , ,

HOWTO: Creating the Simplest Twitter API Client in PHP

May 21st, 2009 by admin | No Comments | Filed in Twitter

Do you run a website? Heard about the Twitter API? Try it!

I have been playing around with the Twitter API lately, all though the OpenAuth is a bit more hassle they still support the ‘old’ API for a bit longer. Twitter has not set a definitive date on when these applications will stop working but it will happen.
In the mean time, it’s a good way to learn how to play with the API without dealing with all the openauth stuff.

I have created an example function that you can use to create your own Twitter applications, it does not support or have any sense of sessions but if you intend to play, check it out! Extend it, tell me about your changes!

You need Zend for this example to work, and more specifically the Zend Json decoder part. It helps parsing the JSON information sent from Twitter.

<?php
/* Simple Twitter API Client Example utilizing Zend/Json
* http://www.cfg.no/ – Espen Holm Nilsen 20090521
*/
require_once ‘Zend/Json.php’;

function twitterJsonGet ($strUser, $strPassword, $strUrl) {
$strBasicAuth = base64_encode($strUser . ‘:’ . $strPassword);
$strRequest = “GET ” . $strUrl . “.json HTTP/1.1\nAuthorization: Basic ” . $strBasicAuth . “\nUser-Agent: PHPTwitter 1.0 (http://www.cfg.no)\nHost: twitter.com\nAccept: */*\r\n\r\n”;
$fd = fsockopen(‘twitter.com’, 80);
if (!$fd)
die(“Could not connect to Twitter”);
fputs($fd, $strRequest);
while (!feof($fd)) $buf .= fgets($fd, 1024);

$res = explode(“\r\n\r\n”, $buf);

if (!preg_match(“/^HTTP\/1\.1\s200\sOK/”, $res[0]))
return FALSE;

return Zend_Json::Decode($res[1]);
}

if ($_POST['twitteruser'] && $_POST['twitterpass']) {
$user = twitterJsonGet($_POST['twitteruser'], $_POST['twitterpass'], ‘/account/verify_credentials’);
print “You are <a href=’http://twitter.com/” . $user['screen_name'] . “‘>” . $user['screen_name'] . “</a><br>”;
print “You follow ” . $user['friends_count'] . ‘ people and have ‘ . $user['followers_count'] . ” followers.<br>”;
}

?>

<form action=’?’ method=’POST’>
Twitter username<br><input type=”text” name=”twitteruser”><br>
<br>
Twitter password<br><input type=”password” name=”twitterpass”><br>
<input type=”submit” value=”Who am I?”>
</form>

The application example runs live here: http://arpa.no/twitter.php
Since it’s Twitter specific, you should Tweet it, or retweet if you saw it in a Tweet! :D

Good luck, let me know how you do!

Tags: , ,

14 Excellent Power Twitter Tools and Tips

May 21st, 2009 by admin | 2 Comments | Filed in Twitter

Are you a Twitter user? Looking to Twitter more effectively?
Recently created a new Twitter account because of big differences in my crowd, my cisco network twitter user
These are 14 applications that will give you more control over Twitter!

  1. TweetDeck is an excellent application for Twitter. You can group the people you are following, have widgets with custom searches. This application makes it possible to stay on top at all times! This application is also one of the most popular Twitter clients.

    Pros: Time saving and clean overview!

  2. Twitterrific is a Twitter App for iPhone, makes it possible to Tweet on the move. This is the way Twitter was intended to be used.
    twitterific

    Pros: Mobility!

  3. Twibble Mobile is an application for other java enabled smart phones, like the Nokia N95 or BlackBerry.
    Twibble Mobile

    Twibble Mobile

    Pros: Mobility, tweet on the go!

  4. TwitIQ is a genious application that looks very much like the usual Twitter web interface, but it is massively extended. It also supports managing of multiple accounts, so for you (I read somewhere) 16% of users this can be a good choice for a primary Twitter web interface.
    twitiq_logo

    Pros: Management of multiple accounts, time saving.

  5. SocialWhois is a powerful application, their catch line is “who you should follow, and why.”. This is a great way to extend your Twitter bubble and find new people to socialize with. You can search for people based on their interests, hence find people who are relevant and not always just go for the most followed ones.
    socialwhois

    Pros: Extend your Twitter network without just following all the popular people

  6. Your Twitter Karma is an application where you can find the self-centered people who you are following but are not following you back, you can check the ones you want to unfollow and just press one button to bulk unfollow the people you want.

    Pros: Effectively manage your Twitter Network, and do cleanups with bulk operations.

  7. TwitScoop
    twitscoop_logo
    TwitScoop keeps a track of what’s buzzing on Twitter and it displays it very playfully and graphic, the tag cloud is dynamically updated. You can search for words and get a graph of their popularity. This is just an awesome application!

    Pros: Keep a track of what’s buzzing!

  8. TIP: Maintain Your Twitter Profile
    You should choose your Twitter username wisely, it’s preferably going to have a connection with you or your company. Twitter usernames like ’supahdupahwoman90′ gives an extra unprofessional touch, and may cost you a bunch of followers, ONLY because of the user name.

    Keep your Twitter profile updated, unless you have one, get a profile picture and maybe also personalize your profile with a custom background image, but don’t get too noisy with the colors.

  9. TwitPic
    TwitPic helps you post pictures to Twitter, this is the most popular way to share images on Twitter today. A lot of Twitter clients have built-in support for TwitPic. It is worthy a spot here!
    twitpic-logo

    Pros: Share pictures on Twitter.

  10. Twubble helps you extend your Twitter network, it goes through your friends and finds people that two or more friends are following, a lot like Facebooks friend suggestion way of finding people.
    twubblelogo

    Pros: Find new people fast.

  11. Seesmic Desktop has gained a lot of popularity lately, it is a good alternative to TweetDeck and users seem to be arguing about which one is the best one.
    seesmic_desktop_logo

    Pros: Time saving and clean overview, like TweetDeck.

  12. Digsby is a popular IM application; it supports Twitter, Facebook, MSN, email and a lot more. It is an all-in-one IM client.
    digsby_logo

    Pros: Support for multiple networks, time saving.

  13. TIP: Join discussion
    When I first joined Twitter I was like everyone else just tweeting things like “I’m on the subway”, and in my primary language. Be interesting, and most of all; join discussion! Think about your social life, do you join discussions or do you just run into a bunch of people who are talking, and start talking about that you took the subway there and the colors of the seats?
    My guess is no, and you should follow the same etiquettes on Twitter.
  14. Twitt(url)y is great for catching what links are the most popular on Twitter, in real time!
    twitturly_logo

    Pros: Keep track of what’s popular!

Which Twitter applications do you use? Post a comment!

Did you like this post? follow me on Twitter!

Tags: , , , , , , , , ,

Half Year Unfolded: All The Secrets I Found In 6 Months!

May 19th, 2009 by admin | No Comments | Filed in Making your first online dollar

There has been a lot of progress in this blog project, and I have started to earn money on a regular basis. This actually made me a bit lazy and I went a couple of months without updates on gho.no, and this blog has been hanging for six months both because of lazyness and because of a turbulent real life (I use that excuse often now, I know!).

Anyways, here’s what I have learned – some of this is repetition of my previous posts but most importantly you will see my exact results and use that to get your blog or website further. I got very little response on my free blog hosting post, all though I host my girlfriends blog now, at least someone picked up on it! :)

My Status
analytics-monthly-ghono
This image is my weekly visitors graph from Google Analytics.
I now have between 100 and 200 unique readers per day on my Networking With Cisco blog. My ‘crowd’ seems to be filled with a lot of people that surf the web at work, because in weekends I only have between 50 and 100 unique readers, but in return the ones who find their way on a Sunday read a bit longer. (Maybe preparing for work?)

ghono-feedsubscibers
The image is my Google FeedBurner stats.
My feed has had on average 31 subscribers the past half year, all though it has become some more lately after I started socializing on Twitter more actively.

My PageRank has now climbed to 2 from non-existing, which is pretty good. I have written about how to get a higher PageRank before.

So How Did I Make It That Far?
I had a lot of progress when I was very active and wrote a lot of content for the site, you must focus on what the reader wants to read about. I think my writing has become better in time, and that my posts has become more informative and exciting to read – but I can’t say that for a fact. But like everything, writing will also improve as you practice it.

By staying active in the blogosphere, follow me on Twitter if you want to keep in touch with what I am currently doing. I can say this much; There is an exciting project which is soon to be complete that you can take part in using.

One of the things I am doing now is analyzing keywords, trying to find keywords which are searched a lot but with few competitor sites. This often means a lot of research to get the information right, but it will be rewarding to see a bunch of search engine users dump in on your site and finding exactly what they need!

Now I want to know how your blogging progress is going, please leave a comment or trackback when you respond. :)

Tags: , , , , , , , , ,