Saturday, September 25, 2010

Hello World - PyroCMS Module

/*---------------------------------------------------------------------------------------------
Update 10/16/2011:

This tutorial has been here for older version (< 1.0.x) of PyroCMS. Latest Stable PyroCMS release is v1.3.2
Please download and use following tutorial files which are for PyroCMS 1.3.2:

PyroCMS Hello World Module tutorial pdf for v1.3.2
Download Sample Hello World Module PyroCMS 1.3.2

Pyro docs have been significantly improved over the year. You can refer it too. If you need developers to work on your PyroCMS project you can contact us here - Semicolon Developers.

(Many thanks to Alan Martin from South Africa who forwarded me these updates.)

---------------------------------------------------------------------------------------------*/
PyroCMS Version: 0.0.9.9.x
What’s here:
------------------------------------------------------------
PyroCMS Module – Folder Location?
PyroCMS Module – Files Required & Folder Structure?
PyroCMS Module – Frontend/Backend Snapshot (of what we are going to build)
PyroCMS Module – Coding the Hello World module with full MVC implementation 
Why "<![CDATA  MySql stuffs     ]]>" required to be in correct format in details.xml ?
Hello world module Code
Summary
----------------------------------------------------------
With this text, I assume your familiarity with PyroCMS folder structure and theming, and you are testing on xampp.  I would explain how to make PyroCMS Module with very basic concepts from Codeigniter and PyroCMS.  Do double check what i have highlight here,  you may get errors installing/running the module we create, otherwise.
PyroCMS is good, but its documentation is not enough/not clear. I mean, once you know stuffs, its very easy to understand things at one shot, but it is rarely the case with beginners, that’s why i thought i would put the example on it.
Don’t copy-paste the code from the example below rather download source code from github, in copy pasting you might face quotes errors. mysql query might not work.

PyroCMS Module – Folder Location?

PyroCMS Core Modules
…..xampp\htdocs\pyrocms\application\modules\pages
”pages” is pyrocms core module that handles the pyroCMS page element

Custom Modules / Third Party Module / we are creating one now

Custom Modules are placed under projectname\third_party\modules  folder
xampp\htdocs\pyrocms\third_party\modules\helloworld
pyrocms – our project name
helloworld – the module we are going to create.
Remember Core and Third Party modules and their directories.

PyroCMS Module – Files Required?

PyroCMS requires at least a details.xml and one controller inside the module-name folder to be a module. I will explain file requirements for different types of module creation. Filenames and folders, are understood easily if you know Codeigniter MVC conventions. If you are not familiar with CI and trying to build PyroCMS module, still its easy to grasp the folder structure with one easy attempt like this. You can have following folders inside a custom module folder - config, controllers, helpers, libraries, models, views, js, css, img.
1. helloworld\details.xml
-> its basic structure is explained in detail below
-> this file contains module name, description, version etc.. and some useful configuration options that help PyroCMS understand our new module. Say Hello! Introduce your module here.
2. helloworld\controllers\helloworld.php
-> the name of the controller (file name & class name) keep them same as module name
-> If you need module just for front end and nothing required in backend, you’d need at least one controller, and extend the controller class from Public_Controller.
-> if you need to access these module from backend (like CRUD interface in backend), you’ll need  a controller class helloworld\controllers\admin.php which would extent Admin_Controller
When i write a file name like helloworld\controllers\helloworld.php i expect, you have created a helloworl.php controller inside controllers folder inside our helloworld module.
3. helloworld\views\helloworld.php
-> view file which would be used for displaying data from module controller
->If you don’t need to access database for your module these 3 files will suffice your need for creating module, otherwise you need model class too. Take your time to understand the folder structure.
-> if you thought to put backend admin controllers in setp 2 above, then think about placing its views too.

let’s place some view files as for admin side in a views\admin folder for easy structure: 

helloworld\views\admin\index.php
-> pass data to this view from admin controller
helloworld\views\admin\sidebar.php
-> sidebar partial that’s shown in left sidebar of the default backend theme.
-> partial is just few tags and php codes together. think of it as general “view file” . For eg. the box in the sidebar of other modules you see while browsing in admin.
4. helloworld\models\helloworld_m.php

So when we require database access or to implement business logic, we create models :
helloworld_m.php  <— this is a convention of underscore m, model class name would be Helloworld_m . You can create more model files as per your need.
Don’t forget to place these file on respective Models/Views/Controllers folder according the folder structure in the figure (at end of this section below)
1. helloworld\details.xml
2. helloworld\controllers\helloworld.php
      ----> helloworld\controllers\admin.php  [controller for admin interface]
3. helloworld\views\view_file.php
    -------> helloworld\views\admin\index.php –> admin main view
    ------> helloworld\views\admin\sidebar.php –> admin sidebar partial
4. helloworld\models\helloworld_m.php
If your module is complex, you end with more files, that’s okay.
PyroCMS module file/folder structure is MVC, just bundled within a module folder. That’s what makes PyroCMS HMVC ( Hierarchical Model View Controller). PyroCMS is codeigniter based, if you know codeigniter you have an option to understand HMVC and build your own CMS ;) Good Luck.

Here’s the PyroCMS helloworld module folder structure:
module_structure

PyroCMS Module – Frontend/Backend Snapshot

Let’s have a look at what our module will look in front-end and backend

Frontend: <h1><?php echo $msg; ?></h1> that’s it
front
(to see a module in action, we’d after installing helloworld module link one header navigation to our module)

Section of what you see when you add new navigation link:
link_module
Backend:

Module installed and listed in the Admin –> Modules-> Third party Section (we don’t create view for this listing, PyroCMS automatically lists our new module there if successfully installed, information is taken from details.xml)
modulelist
We have – index.php and  sidebar.php  for admin side view,
when we build template from these two view that will look as below on the admin side.
Hello World Module Page on admin side: 
 admin
noticed the – left sidebar? main content? helloworld link on the admin navigation, link to hello world module in the dropdown modules list ?

PyroCMS Module – Coding the module

The code is just for illustration purpose. My idea is to help you create and install your own custom module.

1. helloworld\details.xml
2. helloworld\controllers\helloworld.php
      a. ----> helloworld\controllers\admin.php  [controller for admin interface]
3. helloworld\views\view_file.php
      a. -------> helloworld\views\admin\index.php –> admin main view 
      b. ------> helloworld\views\admin\sidebar.php –> admin sidebar partial
4. helloworld\models\helloworld_m.php
we’ll create 1 (details.xml) + 2 (controllers) + 3 (views) + 1 (model file) = 7 files in total and respective folders Models\Views\Controllers and place them inside MVC folder structure.

1. helloworld\details.xml

A. basic file / when no backend and MySQL required:

-> When we don’t need custom table for our module in database or when we are just working on PyroCMS tables to access data, we can have a minimal details.xml as follows.
<?xml version="1.0" encoding="UTF-8"?>
<module version="0.1">
  <name>   
    <en>Helloworld</en>   
  </name>
  <description> 
    <en>Displays Hello World! Message to user</en>   
  </description>  
  <skip_xss>1</skip_xss>
  <is_frontend>1</is_frontend> 
  <is_backend>0</is_backend>
  <is_backend_menu>0</is_backend_menu>   
</module>

where:
<name> &  <description>  will help list the module in admin->modules->third party modules list.
<skip_xss>1</skip_xss> – skip_xss true
<is_frontend>1</is_frontend>  - front end of the module exists <is_backend>0</is_backend>  - module has no backend support
<is_backend_menu>0</is_backend_menu>   - module will not be listed in backend admin navigation
B. Advanced file / when backend of module exists and our module will have its own database table to operate:
<?xml version="1.0" encoding="UTF-8"?>
<module version="0.1">
  <name>   
    <en>Helloworld</en>   
  </name>
  <description> 
    <en>Displays Hello World! Message to user</en>   
  </description>  
  <skip_xss>1</skip_xss>
  <is_frontend>1</is_frontend> 
  <is_backend>1</is_backend>
  <is_backend_menu>1</is_backend_menu>   
    <controllers>
        <controller name="admin">
            <method>index</method>           
        </controller>
    </controllers> 
    <install>
<![CDATA[  
DROP TABLE IF EXISTS hello_world;
-- command split --
CREATE TABLE hello_world (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`msg` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL
) ENGINE = MYISAM ; 
-- command split --
INSERT INTO `hello_world` (`id`,`msg`)
VALUES (NULL , 'hello world from PyroCMS module, from db'),
(NULL , 'Greetings from @bhu1st');
]]>
  </install>
<uninstall>
<![CDATA[
  DROP TABLE IF EXISTS hello_world;
]]>
</uninstall>
</module>
Did you see the changes??
is_backend set to one. i.e module accessible in backend. If database table are used just for storing information and no backend access required this can be set to zero.
<is_backend>1</is_backend>   - we are going to build module backend accessible
<is_backend_menu>1</is_backend_menu>  - module will be listed in admin side navigation menu  

Name of the admin controller and its methods

We add code  below when we create module that have backend interface.
<controller name=”admin”> tells we are going to create a
helloworld\controllers\admin.php  - controller
The controller that will extend Admin_Controller and we would have one method named index in it.
<controllers>
       <controller name="admin">
           <method>index</method>            
       </controller>
</controllers> 

MySQL Queries required at module install time
Before explaining this i want you to remember that details.xml file is a XML document.
Let me explain, What is this "<![CDATA  MySql stuffs     ]]>" doing here?

Everything inside a CDATA section is ignored by the XML parser, but will be used by PyroCMS module install routine.
XML Document Parser will parse all <element></element> but, characters inside the "<![CDATA  -----------    ]]>"  are not parsed by XML parsers and they are taken as raw string of characters.  So the advantage is we keep our required MySQL queries inside it, as normal storage. At XML document parse time (module installation),  the content between <install></install> is taken, split by the separator -- command split --  and executed over the PyroCMS database that we setup in PyroCMS installation process.
Remember:
a. Include your MySQL queries inside "<![CDATA” &    “ ]]>"
b. Separate each MySQL query by the separator
          -- command split --
c. the CDATA end marker ]]>" cannot contain spaces or line breaks before it. Just place it before </install> as

]]>
</install>

d. last query doesn’t need the -- command split --  separator
e. CDATA can not be nested 

So the code below contains two queries,  clear to see:

<install>
<![CDATA[  
DROP TABLE IF EXISTS hello_world;
-- command split --
CREATE TABLE hello_world (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`msg` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL
) ENGINE = MYISAM ; 
-- command split --
INSERT INTO `hello_world` (`id`,`msg`)
VALUES (NULL , 'hello world from PyroCMS module, from db'),
(NULL , 'Greetings from @bhu1st');
]]>
</install>
In this CDATA section, we first drop the table “hello_world” if exists in database, then we create and insert some data in the hello_world table. That’s it. Our table is created and populated with the supplied data, if module installation went fine, you should be able to see the hello_world table in PyroCMS database you setup before.
MySQL Queries required at module uninstall time
  <uninstall>
<![CDATA[
  DROP TABLE IF EXISTS hello_world;
]]>
</uninstall>
If you grasped the CDATA concept, only thing that concerns us in <uninstall></uninstall> code is the MySQL query “DROP TABLE IF EXISTS hello_world;”, yup, this will be triggered when you uninstall the module.  That’s fine. Tables created during install time will be deleted.

C. When your module is just accessed in backend, like Newsletter module etc..

 
<is_frontend>0</is_frontend>
<is_backend>1</is_backend>
<is_backend_menu>0</is_backend_menu>
refer code above with these settings for full details.xml code..

2. helloworld\controllers\helloworld.php

Code/comment explains itself, you may refer above sections too.
<?php  if (!defined('BASEPATH')) exit('No direct script access allowed');
/*
|-------------------------------------
| Publich Controller of our module
|-------------------------------------
| accessed from front end
|
| extends Public_Controller
*/
class Helloworld extends Public_Controller
{
    function __construct()
    {
        parent::Public_Controller();
    }
    function index()
    {
        //load model
        $this->load->model('helloworld_m');
        //get message from model
        $message = $this->helloworld_m->getHelloMsg();
        //pass message and build template
        $this->data->msg = $message;       
        $this->template->build('helloworld', $this->data);
    }
}

2. a. helloworld\controllers\admin.php  [controller for admin interface]

The controller file name “admin.php” since we specified so in our details.xml

<controllers>
       <controller name="admin">
           <method>index</method>            
       </controller>
</controllers> 

The Code:
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
/*
|-------------------------------------
| Admin Controller of our module
|-------------------------------------
| accessed from back end
| extends Admin_Controller
|
*/
class Admin extends Admin_Controller
{
    public function __construct()
    {
        parent::Admin_Controller();       
        //load model
        $this->load->model('helloworld_m');   
        //set views/admin/sidebar as 'sidebar' partial,
        //that is to be shown on Sidebar section of backend
        $this->template->set_partial('sidebar', 'admin/sidebar');
    }
    //Show Helloworld message to admin
    function index()
    {           
        //function triggred when we click on the module name in backend in the menu
        //get message from model
        $message = $this->helloworld_m->getHelloMsg();
        //pass message and build template
        $this->data->msg = $message;           
        $this->template->build('admin/index', $this->data);
    }
}
?>

3. helloworld\views\view_file.php

<h1><?php echo $msg; ?></h1>

3.a. helloworld\views\admin\index.php - admin main view 

Hi,
<br/> <br/>
<h2><?php echo $msg; ?></h2>

3.b, helloworld\views\admin\sidebar.php –> admin sidebar partial

see how it is set as sidebar partial in constructor of our Admin controller 2. a. helloworld\controllers\admin.php

  $this->template->set_partial('sidebar', 'admin/sidebar');

this view file would contain following html:
<div class="box">
    <h3>About Me</h3>   
    <div class="box-container">
        Bhupal Sapkota<br/>
        Kathmandu, Nepal<br/>
    </div>
</div>
i’ve put a little bit info about me, never mind. Put any <html> or Pyro stuff you like there.

4. helloworld\models\helloworld_m.php – our model class

<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
/*
|-------------------------------------
| Model Class of our module
|-------------------------------------
| for database access
|
*/
class Helloworld_m extends Model
{
    function __construct()
    {
        parent::Model();
    }
    function getHelloMsg()
    {   
        //get hello_world table
        $query = $this->db->get('hello_world');
        //if module successfully installed and data exists in table, grab it, return it
        if($query->num_rows() > 0){
            $result = $query->row_array();
            return $result['msg'];   
        }else { //otherwise return simple hello message       
            return "Hello world from PyroCMS Module!";
        }
    }
}
?>


Install Helloworld Module

->Download code from Helloworld PyroCMS Module in Github

zip your module, and upload it from the Modules –> Third party section, Upload link
If your MySQL queries had no problems, you’d see hello_world table added in PyroCMS database. Helloworld module will be listed in admin navigation, modules list, in third party section.

When you uninstall

module gets deleted from third_party\modules\ folder. think of having a backup before uninstall.

Module In Action

Access module from Admin Navigation menu or type this in browser:

Backend:
http://localhost/projectname/admin/modulename

 http://localhost/pyrocms/admin/helloworld
Frontend:
Assign one frontend navigation link to point our helloworld module
http://localhost/projectname/modulename
 http://localhost/pyrocms//helloworld

Output Check

I have added validation in our model Helloworld_m,
function getHelloMsg()
    {   
        //get hello_world table
        $query = $this->db->get('hello_world');
        //if module successfully installed and data exists in table, grab it, return it
        if($query->num_rows() > 0){
            $result = $query->row_array();
            return $result['msg'];   
        }else { //otherwise return simple hello message       
            return "Hello world from PyroCMS Module!";
        }
    }
If SQL executed successfully during module install, the $msg in view renders “hello world from PyroCMS module, from db” otherwise  "Hello world from PyroCMS Module!";

Conclusion

1. follow the file/folder structures and naming conventions.
2. Understand the module creation requirement and accordingly settings in details.xml
3. CDATA section of the details.xml needs to carefully saved. Check your queries in database before saving them in CDATA section.
4. Upload your module to install it.  [ remember to upload zip file, zip file name same as module name ]
[helloworld.zip] or [yourmodule.zip]
5. If upload failed, delete raw upload from third_party modules folder, database column if any, check your settings, check queries again, zip it, and re-upload.
5. If still couldn’t install it:
--> i think you now understand the module creation flow
--> insert few queries in database  [details.xml]
-> add your module settings in modules table in database [details.xml]
-> don’t wait for any other documentation ;) the kickass CMS, created over the kickass framework is really easy to grasp in one shot back tracing, 2-3 hours max  
-> hack it use it. contribute back if any.
-> if you are familiar with Codeigniter and not with HMVC  <------ read

Friday, September 3, 2010

Lorem Ipsum को कथा

Do you design, be it graphics or web design? or any other form of design type settings? Have you ever used Lorem Ipsum? What is your experience using Lorem Ipsum when designing for Nepali Unicode content?  

"Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."

You might have guessed till now, i am talking about the dummy text, yes Lorem Ipsum is a placeholder text, or filler or dummy text, that designers throughout the world use when working on  visual designs, web designs, any typographic work. If you are not familiar with Lorem Ipsum, i guess you are not in design. I might be wrong though, you should use it. Here is the reason why below.

Visit any site from Free Css Templates or search google for CSS layout, Photoshop design layouts or any sample design content of your interest  - you will end up with a nicely done design and Lorem Ipsum used as placeholder text.

If you like to know more about Lorem Ipsum, it’s history refer this wiki article or www.lipsum.com can be handy for you when working on designs and need a quick copy/paste version  of Lorem Ipsum.  We can find many Lorem Ipsum text generators that can give random latin text mixed up in paragraphs that can be sample content for us when designing web layouts. 

If you use Ms-word try typing following text in there to produce random lorem ipsum text


=lorem(i)

where,  i = natural number , genarates i paragraphs of random text

= lorem (i, j )

where i,j are natural number, where i = number of paragraphs and j = number of sentences per paragraph

 

Why Lorem Ipsum ?

Here’s a excerpt from wiki:

Even though using "lorem ipsum" often arouses curiosity because of its resemblance to classical Latin, it is not intended to have meaning. Where text is visible in a document, people tend to focus on the textual content rather than upon overall presentation, so publishers use lorem ipsum when displaying a typeface or design elements and page layout in order to direct the focus to the publication style and not the meaning of the text

Hope the idea is clear. It would always be better to use neutral content when presenting designs to our clients. That way we can, direct their focus on the look and feel of the design rather than on the sample content. Further, that sample content can be offensive sometimes.

i am working on a Nepal web site design, where i need all contents to be in unicode version. Traditional true type font would not render correct on every browser but thanks to unicode that we now can freely write नेपाली/Nepali anywhere in web and worry less about whether it will render correctly on the browsing end or not.

Here  i faced a problem, i was designing all sort of layouts for the site with Lorem Ipsum text, when design got ready and verified by my client (i convinced them all the text would be in Nepali in final version). Then, i started replacing dummy text with some Nepali unicode content! Huh, wtf? Did you know, the layout was all rendering
badly. All my effort for fixing the font size, margins, paddings – oh my, now i have to change them all to fit my Nepali unicode content. That was a complete waste of time.

Here’s a snapshot from sample free css template:  just for illustration
original

Noticed the font size 3em there in the <h1> style rule? See how nicely the “Welcome to my website” fit in the layout??  Below is the snapshot when i tried changing content 
to Nepali unicode.

 before0

Can you see the font-size:3em on Firebug inspect? Hope you can. But with this style rule our content looks a bit tangled, and not fitting nicely in the overall layout. And below i tried playing with different font size to fit the content: here’s the snapshot

after0

I went on replacing contents and changing css rules to fit my new content. I think, the scenario has always been like it when any of we worked on such projects. You might say that, the length of the text has destroyed the layout, yeah a sort of that too is responsible for the destroyed layout but i have here something more to say. 

Lorem Ipsum = ?

Wiki says,

A close English translation for Lorem Ipsum might be "pain itself" (dolorem = pain, grief, misery, suffering; ipsum = itself) .

 

If we want to say it in Nepali – it would translate as : दुख आफैमा

Below are two paragraphs that are mostly used as lorem ipsum text, which is in latin. The text is derived from Ciero’s De finibus bonorum et malorum (On the Ends of Goods and Evils, or  [About] The Purposes of Good and Evil ); Ciero was a Roman Philosopher/(106 BC) of the time.

The original version (with the excerpted items highlighted –which we are using now). Read the text in bold and you’ll catch the Lorem Ipsum dolor sit.. flow which sounds familiar, ain’t it?

Section 32/33 of the Book

[32] Sed ut perspiciatis, unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam eaque ipsa, quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt, explicabo. Nemo enim ipsam voluptatem, quia voluptas sit, aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos, qui ratione voluptatem sequi nesciunt, neque porro quisquam est, qui dolorem ipsum, quia dolor sit amet, consectetur, adipisci[ng] velit, sed quia non numquam [do] eius modi temporainci[di]dunt, ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit, qui in ea voluptate velit esse, quam nihil molestiae consequatur, vel illum, qui doloremeum fugiat, quo voluptas nulla pariatur?
[33] At vero eos et accusamus et iusto odio dignissimos ducimus, qui blanditiis praesentium voluptatum deleniti atque corrupti, quos dolores et quas molestias excepturi sint, obcaecati cupiditate non provident, similique sunt in culpa, qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio, cumque nihil impedit, quo minus id, quod maxime placeat, facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet, ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat..

Below is the english translated version of the original latin text:

H. Rackham's 1914 translation (with major source of Lorem Ipsum in bold)

[32] But I must explain to you how all this mistaken idea of denouncing pleasure and praising pain was born and I will give you a complete account of the system, and expound the actual teachings of the great explorer of the truth, the master-builder of human happiness. No one rejects, dislikes, or avoids pleasure itself, because it is pleasure, but because those who do not know how to pursue pleasure rationally encounter consequences that are extremely painful. Nor again is there anyone who loves or pursues or desires to obtain pain of itself, because it is pain, but occasionally circumstances occur in which toil and pain can procure him some great pleasure. To take a trivial example, which of us ever undertakes laborious physical exercise, except to obtain some advantage from it? But who has any right to find fault with a man who chooses to enjoy a pleasure that has no annoying consequences, or one who avoids a pain that produces no resultant pleasure?
[33] On the other hand, we denounce with righteous indignation and dislike men who are so beguiled and demoralized by the charms of pleasure of the moment, so blinded by desire, that they cannot foresee the pain and trouble that are bound to ensue; and equal blame belongs to those who fail in their duty through weakness of will, which is the same as saying through shrinking from toil and pain. These cases are perfectly simple and easy to distinguish. In a free hour, when our power of choice is untrammelled and when nothing prevents our being able to do what we like best, every pleasure is to be welcomed and every pain avoided. But in certain circumstances and owing to the claims of duty or the obligations of business it will frequently occur that pleasures have to be repudiated and annoyances accepted. The wise man therefore always holds in these matters to this principle of selection: he rejects pleasures to secure other greater pleasures, or else he endures pains to avoid worse pains.

Lorem Ispum for Nepali Desigs?

Like the development or design situations i mentioned above, what if we had any standard dummy text to be used ? This was just what i thought for the moment when i suddenly realized that  i need to replace all those sample Lorem Ipsum content with something that looks random unicode nepali content. So sad, we don’t have one!

I have argued above that, content to be used as placeholder text shouldn’t have any sensible meaning. But it was my curiosity that led me to go through what is their behind the Lorem Ipsum text.  I ended up with my own interpreted, Nepali version of Lorem Ipsum or say दुख आफैमा version.

i don’t understand latin, neither google translate helped here, with reference to the English version, Oxford Dictionary and our Nepali Shabdakosh, and few other English-Nepali/Nepali-English dictionaries, below is what i ended up in:

Closely look at the original text in latin – section [32], the Lorem ipsum passage starts at: 

Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit 

Which would mean:

"Neither is there anyone who loves grief itself since it is grief and thus wants to obtain it"

or  in Nepali

को नै छ र यहाँ जो दुख आफैमा मन पराउछ, किनकि यो दुख हो, त्यसैले त उ यसलाई पाउन चाहन्छ

Translation to [32]

तर मैले तपाइहरु सबैलाई भन्नैपर्छ, कसरि अबुद्धियुक्त तरिकाले सुख लाई बद्ख्वाई गर्ने अनि दुखलाई प्रसंशा गर्ने सोचको जन्म भयो, साथै म तपाइलाई यो प्रणालीको इतिबृति दिनेछु र सत्यको खोजि गर्ने महान खोजिकर्ता, मानब सुखको प्रमुख निर्माणकर्ताको सच्चा दर्शनहरुको बर्णन गर्नेछु | कोहिपनि सुखलाई यत्तिकै अस्विकार गर्दैन, मन पराउदैन वा नकार्दैन, किनकि त्यो सुख हो, तर किनकि उ तर्कसंगत ढंगमा सुखको खोजि गर्न जान्दैन अनि अत्यन्त दुखदायी परिणाम भोग्न पुग्छ | त्यसरीनै, कोहिपनि त्यस्तो छैन जो दुख आफैमा मन पराउछ, खोज्छ वा चाहन्छ, किनकि त्यो दुख हो, तर किनकि कहिलेकाही त्यस्ता परिस्थितिहरु देखापर्छन जसमा कडा परिश्रम र दुखमा नै उ कुनै अपार सुख प्राप्ति गर्छ | एउटा सानो उदाहरण लिनुपर्दा, हामीमध्य कति छौं जो निरन्तर कठिन शारीरिक कसरत गर्न तत्पर हुन्छौ, यसबाट केहि फाइदा लिने बाहेकको अरु कुनै कारणमा ? तर कोसंग के अधिकार छ, त्यस्तो मान्छेको गल्ति औल्याउने जो त्यो सुख छान्छ जसमा कस्टदायी परिणाम छैनन ? अथवा त्यस्तो मान्छेको जो त्यो दुख त्याग्छ जसमा कुनै सुखदायी परिणाम छैन ?

Translation to [33]

अर्कोतिर, हामी नैतिक रुपमै बद्ख्वाई गर्छौ र मन पराउदैनौ, त्यस्ता व्यक्तिहरु जो कुनै क्षणिक सुखको बान्कीहरुको हर्ष र आस्चर्यमा छलिएका अनि अनैतिक भएका, इच्छाहरुमा यति अन्धो भएका कि, उनीहरु पछी आउने दुख र अप्ठेरो देख्न सक्दैनन; र उत्तिकै दोष तिनीहरुमा पनि जान्छ जो कमजोर संकल्पको कारण आफ्नो कर्तब्यमा असफल हुन्छन, यो कडा परिश्रम र दुखले पूर्णरुपमा संकुचित हुनु भन्नु जस्तै हो | यी मामलाहरु छुट्याउन एकदम सरल र सहज छन | कुनै फुर्सद को समयमा, जब हाम्रो इच्छाशक्ति स्वछंद हुन्छ र जब हामी आफुले उत्कर्षमा गर्न चाहेको केसैले प्रतिबन्ध गर्दैन, सपूर्ण सुख स्वागत गरिनुपर्छ र सपूर्ण दुख त्यागिनुपर्छ | तर केहि खास परिस्थितिहरु र कर्तब्य को परिबन्धहरु अथवा ब्यबसायिक दायित्वहरुमा, धेरैजसो यस्तो लाग्छ कि सुखहरु छाडिनुपर्छ अनि झिजोलाग्दो कुराहरु स्विकारिनुपर्छ | बुद्दिमान मानिस त्यसैले यस्ता मामलामा छनोट को यो सिद्धान्तमा अडिग हुन्छ : उ सुखहरु त्याग्छ ता की अरु ठुला सुखहरु सुरक्षित गर्न सकोस, वा उ दुखहरु सहन्छ ता की अरु नराम्रा दुखहरु भोग्न नपरोस |

Wow! What the insight. I nodded, Lorem Ipsum is the secret to pleasures and pains in life. On completing this translation and re-reading actually felt like happiness and sadness are mere the choices in life, the idea is we should know how and when to choose one. We have to choose both, but circumstances matter!

But, still, after going through the two paragraphs overnight, i was in confusion how to interpret the first line:

"Neither is there anyone who loves grief itself since it is grief and thus wants to obtain it"

As

 को नै छ र यहाँ जो दुख आफैमा मन पराउछ, किनकि यो दुख हो, त्यसैले त उ यसलाई पाउन चाहन्छ

i chatted with my gurus, discussed with my colleagues and I skyped with my friends about how can we interpret the meaning. We had some discussions:

Here are some lines my friends shared when i asked for the interpretation:
- दुखलाई माया गर्ने कोहि छैन, किन कि त्यो दुख हो, तर दुख चाहिन्छ
- कहिले काहीँ दुख पनि रमाइलो बनिदिन्छ

The meaning of the line sounds more profound when we read it like:

बुद्दिमान मानिस सुखहरु त्याग्छ ता की अरु ठुला सुखहरु सुरक्षित गर्न सकोस, वा उ दुखहरु सहन्छ ता की अरु नराम्रा दुखहरु भोग्न नपरोस,  …… को नै छ र यहाँ जो दुख आफैमा मन पराउछ, किनकि यो दुख हो, त्यसैले त उ यसलाई पाउन चाहन्छ |

Here is how the CSS template that i was playing around for the illustration, ended up filled with this translated Nepali text as a sample/placeholder:  http://bit.ly/nepsum

I concluded the experience as,  we need to find some Lorem Ipsum text that preserves the uniqueness and beauty our language, that encourages our designs on our own.

If you are now reading this line, i guess, you are, please do share some words about the post and also i would love to hear your views on better translation.

References:

- The template is used from http://www.freecsstemplates.org/
- Lipsum Web site : http://www.lipsum.com/
- Wiki Article about Lorem Ipsum: http://en.wikipedia.org/wiki/Lorem_ipsum
- http://www.dictionary.com.np
- http://www.nepalisabdakos.com/
- Project I am involved in : Shabdasamyojan

Thursday, August 12, 2010

Nepal In - PHP Arrays

What is Nepal in PHP Arrays - Project ?
 
Are you a PHP developer in Nepal ? or do you use MySQL in your projects. How many of you have easier access to the places & cities of Nepal in simpler arrays, that can be taken for reference and used.

I am currently involved in a project named Gharbeti.com (get updates here ) and got in situation where i need to use the places in Kathmandu to implement the site theme. Gharbeti.com – The Rentals Solutions In Kathmandu.

I was searching through web, searching for some arrays of places, cities, districts headquarters etc. But i was not lucky enough to find them. Instead i thought i would search for places and list them as PHP Arrays or MySQL tables. This wiki page was handy though.

There is a project named PHP Arrays in Github -  I was solely inspired by this project. But, limiting myself to my country i decided to list resources related to Nepal in PHP arrays. This was how all it begun.

What is included in this project till now:

1. Places In Kathmandu - PHP Array & MySQL table
-> listing of most popular places in Kathmandu.
    -places_in_kathmandu.php
    -places_in_kathmandu.sql   


2. 14 Zones & 75 districts of Nepal
    -> 14 Zones (Anchals), 75 (Districts/Headquarters)
     -14_zones_75_districts_of_nepal.php


3. 75 Districts of Nepal and their Latitude & Longitude values.
    -> 75_districts_latitude_longitude.php
    -> If you want to calculate Latitude Longitude values by yourself: here's a little snippet using Google Maps API that we can loop through by yourself.

        $country = "Nepal";
        $city = "Kathmandu";
        $addEncoded = urlencode($country).",+".urlencode($city);
        $geoCode = file_get_contents("http://maps.google.com/maps/api/geocode/json?address=".$addEncoded."&sensor=false");                   
        $response = json_decode($geoCode);
        $lat = $response->results[0]->geometry->location->lat;
        $lng = $response->results[0]->geometry->location->lng;


    -> Pick up any latitude, longitude pair and try browsing in the following link format:
        This link should bring out Map for Chitwan district

 

Do you want to contribute to this Project?

Use the github repo url, clone a local copy or fork it, add files and push the changes.

Saturday, August 7, 2010

7 + 1 twitter tips : my experience !

1. What is on the twitter profile picture link?

When we go on someone’s twitter profile we see – small profile pic, twitter username, numbers of following & followers, profile bio,  indication of you following the user or not and their tweets. Have you ever clicked on that small profile image? try clicking it and you’ll see there’s a big image (originally uploaded by the user). You get some feelings when you get to see someone’s big picture. Or let’s say the real picture is behind the small one :P

Smaller one:

profile-pic

Larger one:

profile-pic-big

just  to mention, this picture is from my India tour, we were on the way to Water Kingdom in a boat :)

2. Write the 160 character bio and profile url

Whenever i have to know something more about a twitter follower or the person i am following i quick scan their bio and profile url.

Twitter always wanted to save their server space they provide to their user that’s why they don’t allow more information on the profile page. And never mind, it was a joke. I think the idea is to shift focus to tweets and updates. what you tweet conveys you and your persona. The more you tweet the more of you shows up in your tweets list.

That’s a plus for sure, still i think the 160 character bio and the url you provide their in your profile information is equally important to mark your identity. Use it to convey the message why you are in twitter. It will result in more like minded followers and hence more fun.

Have a quick bio setup, have a personal url (your site, your portfolio, your business, your blog anything). This increases your twitter and other search visibility, lets your follower be in more touch. Your twitter follower will travel along with the url you provide and will interact with your business or say blog. That’s again a plus.

3. It’s not that bad to start conversation first :)

Is their any special reason for the one who starts conversation has to be someone other than you?

The fun begins when you start conversations with your following/followers. Cheers them on their success stories. Suggest to their confusion. Give review of their blog posts. The idea is, don’t wait for others to begin talk with you. Go with your, “just to mention kind of expression” and say : “ hello @billgates how are you doing? Here’s a handshake for your good day :) “

provided :
tweets = original content (stories, feelings, blog posts by the twitter user)
and the receiver is not a BOT!
(look into the tweet’s source, if there is From API, it is more likely a bot)

You can use service like Twitoaster : The Twitter Conversations Service, to get threaded version of your twitter conversations.

4. How to find who is tweeting near your location? (use twitter search)

nearktm

I never expected that twitter will ever add Kathmandu city in the Location Wise Trending List. But ain’t there a way to find twitter friends near your location?

You can always opt to use advanced search operators or advanced search page to search for tweets and users you want.

The search operator near with syntax near:location as search query will result in the result page containing tweets from that specific location. The location string has to match the address provided in the twitter users profile page.

For eg. If you use twitter near kathmandu, try near:kathmandu as search string. The result will show you real time tweets coming from around kathmandu.

search-results

Don’t forget to click on the Save This Search link so that the search query will be saved for future use. Now its the right time to use the Tip number 3 above.

newtweets-search

You’ll never miss the tweets near your location onwards, there is no other as easy as this way to find people near you to be friended with, sitting just in front of twitter interface.

 

5. Do you use Lists?

Twitter list gives you place to organize the tweet feeds you receive. Create a list, name it the way you want and add related friends to lists. How tangled your following/followers ratio gets, you now have a list that will always keep you up and front  with updates from the users in the list. This is very effective way to never miss tweets from the people you like.

Twitter lists will show you recent updates and you can even have a office meeting or organizational discussion adding related users in the list. This would be more useful.

I have a list web-lovers-entrepreneurs, i follow @photomatt one who initiated wordpress @jwage who created doctrine @codinghorror – i don’t want to miss this blog, @philsturgeon codeigniter and stuffs, @fabpot  - he is the one who thought symfony, @tylerhallhe is engineer in yahoo @jeresig – i wonder why he thought $  in jQuery, @biz, @ev – they gave us this twitter thing and few more profiles in this list. I always like to read their tweets. This list is very handy, i even have bookmarked it.

Since twitter list are visible in user profiles now, the listing gives one more chance to get visible to the person you follow. The description you add to the list can actually add a lasting impression on the users you have in it. Better you make the list name and description taking in account the users you intent to have in it.  Further, the list you created is visible to everyone, and they too can follow the list to get updates without actually following the people (without increasing the number of following in their profile)

Here are some list i created:

Singers Bands I like : http://twitter.com/bhu1st/singers-bands-ilike
Twitter Friends Near Kathmandu : http://twitter.com/bhu1st/twitter-friends-near-ktm
Follow Back List: http://twitter.com/bhu1st/follow-me-i-will-follow-u

What with the private list:

Private list are visible to only you. If you would like to follow some users privately, without letting them know you follow them, include them in the private list. This comes useful sometimes ;)

There are services like Listorius which maintains directory of popular twitter lists. You can use it to find some useful lists to follow. 

6. And Favorites??

How often you favorite tweets? One feature i don’t like about twitter is - it is very hard to traverse through your own and others twitter timeline. What if you wanted to check once the link your friend shared back some weeks? This is where the favorites feature comes handy. If you like a tweet, favorite it (that little star link attached in tweet box ), its like you are going to check that favorited tweet later. Try it, it saves a lot time.

favr

Favorites list is public and you can check on others profile what they have favorited. 

Here is a service called Favstar to help with popular and your own favorites.

7. Why care the : Retweets Link

links

There are three tabs under Retweets Link Retweets By Others, Retweets By You and Your Tweets Retweeted.

Retweets By Others

What your followers are retweeting? This tabs gives some space to the retweets in your twitter connection (following/followers). You can get insights about what is popular within your connections. It is more like getting to know your follower, what type of content they like and got popular. Check this tab frequently and if you find the info useful retweet it.

Retweets By You

What you retweet will be listed here. The advantage of this tab is more like the Favorites Link.

 Your Tweets Retweeted

Does what you share got retweeted? This tabs lists all the info about your tweets that got retweets.

And here’s a bonus REMINDER:

7+1 :  Beware! You are in public place

Twitter is public place, like the one we live outside of twitter,  unless explicitly you have set your profile to private from the settings option.

By public i mean, let us discuss

- our tweets are visible to everyone, to each and every search engine, to each search bot or crawler that are constantly indexing our tweets

- we never know where our tweet ends up and what it would be used for.

- would you share your email address in tweets, so that few bots with regular expression searches will list your email address in their index and you will end up getting spams in your mailbox.

- do we talk about what is the color of our underwear in public place?

- some things are better be said to a closest pals then be sent as tweet.

Then,

I think we should at least follow some public etiquettes before clicking on the publish button.

Happy Tweeting!

Monday, August 2, 2010

Few nepalese sites to mention and the possibilities

I have been wondering about some Nepalese products that exists online, created by Nepalese and Serving us. The list may go longer but i have selected few site that i noticed are mention worthy.

I personally feel that popular sites like Google, Facebook (which killed the hi5 commity of Nepal and of the world altogether) , Twitter, eBay, Amazon they hold some share on bringing the Nepalese community online. We are shifting, yes the shift is becoming more visible these days. The demand for Nepal Telecom's ADSL Service, ISPs like Wordlink, Merchantile is increasing day by day.

Here’s a graph from Google Public Data, which clearly shows the increasing internet users in Nepal.

nepal

I use Twitter actively, and its been more than a year since i have been tweeting, i noticed that the tweets status in TPM (Tweets Per Minute) around Kathmandu is increasing, it was around 1-2 Tweets/Minute a year ago and now ~ 25 TPM. It's amazing. People sitting on the Facebook wall may too have noticed that they suddenly get friend’s request from a old friend whom they never thought would have an online profile.

The facts are interesting. We are staying more online. Searching for the reason why we are accepting internet as a medium to be in  – i concluded that the web is becoming more essential to connect, to share and to communicate. I hardly remember any SMS reaching my mobile inbox since all my friends gathered around in Facebook. They send me message in facebook and i receive it at my Gmail inbox. Wow!

My point about these discussion is, on one hand we have the number of internet users increasing but on the other hand look at our own Nepalese products online, how many of us use Nepali web service to communicate or say to do business/shopping? To find an answer to this question i searched for some products/services we use online which are actively maintained by Nepalese. The way these  sites in the list below serving is praiseworthy. These websites may have their own business motives but equally they are providing/promising quality web services.

Nepali News Sites

 

bbcBBC Nepal Service

 

nagariknews

Do you remember when Nagarik News started their publication? Now, look at the online issues, and all the active news community we have around.

tht

THT – The Himalayan Times, this is my personal favorite national English daily.

ekantipur

Kantipur Publication has done very good service bringing their publications online.

 

Nepali Money Beginning to flow - Online

nibl

I think no other bank in Nepal is so open to web implementations. Whenever i heard of some online business service launch, NIBL is there to support them. Either you pay your online bills, or buy a recharge card for you NTC mobile.

esewa

eSewa Nepal is the product of F1 Soft International. It is a Payment Gateway, for those of us familiar with Paypal (but has been of no use in Nepal), eSewa is the similar kind of product. Look at the services they offer with eSewa: here. The online transaction status from the site says: It’s  671510 Total transaction through eSsewa. This is quite impressive.


payway

Pay Way, the product of Young Minds,  is an online payment gateway. I have not tried it yet but it promises to bridge the gap we have with our Paypal account. We can send and receive money from Paypal to our Payway account or directly to our bank account with Payway.

muncha

Muncha was buzz in my school days, and is still a good service provider, though i can’t say why they still are not planning to change the web site look. I still remember the day when people were saying, “now we can do shopping online”. The site is active, and accepts many of the ATM cards we have in Nepal, Credit cards and bank account payments.

We see, with more crowd coming online, Nepalese money too is travelling online, but are we ready get maximum benefit from this changes?? What i have to say is before we allow our money online we need  1000 more munchas, shops & services online – that would serve for us, serve our product. 

 

Find Jobs In Nepal Online


It was after my graduation, i started searching for a job through the internet. Would you believe me, i applied for the job through one of these sites and got hired.

 

jobsnepal 

Jobs Nepal lists all the current Open Jobs, the organization, full time – part time status & number of days remaining to apply for the job. How many of us are searching for jobs through these sites?? Ain’t this service useful?

merojob

Merojob too is a Job Board Site, looks promising. i think its neat and clean interface will surely make user experience better.

dmslist

dmslist, build on wordpress free cms,  is a product of Digital Max Solution, simple look but with live job openings. Cheers to DMS for this product and hosting.

 

Nepali Forum

Blog & Community

 

Here are some places where Neplese gather to share, argue and discuss with each other online.

mazzako

The Mazzako forum status itself speaks more about its existence.

mysansar

Mero Sansar, its not a news site, its blog. I personally like the site slogan, and now and then visit the site to get some views about current issues in country. There’s a difference between a News portal (see Nagarik News Site) & a blog. The blog is free expression, no bounds to the expression of the authors, follow language etiquettes and respect your readers and present the idea in your fantasy. I admire the way Mero Sansar bloggers are contributing.

 fossnepal

 

So you may wonder why FOSS Nepal got listed here! This is the only community in Nepal which does that offline what it says online. I myself was/am active in the FOSS Nepal community. We planned, discussed about events, messages, trainings everything online and gathered on the spot to make it happen real. The days we celebrate Software Freedom Day, every year, the training program we provide every once in a while, we needs such community to be multiplied in Number if  we want to see changes in Nepalese technology sector.  You can join FOSS – Nepal Google Group here.

 

Nepali Social Network

 

thulo

We have Thulo Social Network here - a Nepalese Social Network. The site looks promising in the technology used, and in providing social network functionality to its users. Before suggesting you to try the thulo network, i think we should first understand the essence of social network. Be it Facebook or Twitter or anything else if it has to be a social network – it needs to have users. We are the users, and our networks travels wherever we move. Invite some of your closest network to thulo network, lets enjoy social networking in our own style, with our own product.

 

Nepali Telephone/Mobile Service
Providers

I have listed two sites below, and hope this two sites co-operative with each other and allow NTC users to send web message to NCELL users and NCELL users could send web SMSes to NTC users. For the stuffs to happen, the organization behind them needs co-work, i think.

ntc

There is not a single day we do not curse NTC for its bad service, but look at the changes it brought in the country. Our last decade is know as the communication decade. Lots of things have changed, the land lines to mobile switch, the mobile to ADSL switch. NTC has always been there as back bone of the communication sector in the country. The NTC web site is quite functional. How many of you use the web sms service daily? 

ncell

I can’t forget the organization that promises international standard services in our price. Be it bringing GPRS to country or excellent schemes for student to business persons, i always admired the ideas NCELL have for the country.  It was always NCELL which did the initiation for the VAS Mobile services.  Look at the site, and check how they changed their brand in just 3 days.

Completing this list i remembered something i heard back in my school days. It was like, Nepalese will never invest on products other than noodles ( नेपालीहरु चाउचाउ बाहेक अरु कुरामा लगानी गर्दैनन ). Technology is changing, things will change and we need to change the way we look at things to invest upon. Have you ever thought supporting a project like Thulo network to give a front space in country web social networking ? Have you ever had an idea to invest on a project like eSewa or Payway. Have you ever thought bringing your organization business online? or bringing your shopping center to provide online service?

Time has come now to stop thinking and start investing.

Thursday, July 15, 2010

Design or develop, which to do first?

Don’t expect “you should do this first” kind of solution to this question, i am asking question here. I’d like to limit the discussion to the web development context. Before going further, i would like to clear two things, by design i would mean requirements analysis, design prototyping & designing the actual ‘web interface’ (technology you’d use are: js/html/css/design tools), by develop, i would mean the coding, writing codes to implement the project logic (php/java/.net etc).

If you are independent web designer, you may ask why the heck i am asking such question. Or if you belong to the independent developers (coder) this question might surprise you too.  The answer to this question holds importance when it is taken in the context where designers and developers work together to develop a complete web project.

Imagine a situation,  the projects needs to be worked out within a deadline, but then you are stuck in the middle of a project – a slight fixing required, some extra bit of design to be added and some more codes to be written to make the design functional, which were out of the initial plan set.  Now what would you think needs to be done first? Should we design first ? or Should we code first ? It’s true changes in the project in middle of the development creates headaches, to the designer, to the developer and to the overall team. My experience with web development projects says, it would make more sense if we could workout the design first and add codes later. It’s always easy and time saver (and deadlines are expected with ease ) to proceed with a design in hand.

The interesting thing about the situation is not actually the design or the code required to be added. This ain’t so easy to conclude at this situation.  It’s about the designer and the developer who actually were working on the project. The designer worries whether her changes will fit to the code set or not, the developer thinks he’d mess up the overall design with use of nasty <tables> (unfortunately, not every developer in the planet feels comfortable with html and css stuffs) The designer would expect coder to work on his own first and then later she would add html/css to fit the code, the coder would say, ‘i will work once the design is ready!’. So yeah, question arises here, what to do first? and who would take the decision, and things becomes worst when there is no project manager.

The subtle thing i noticed during such situation was different than what most of you anticipated. There are few such designers and developers who would happily accept that they did something wrong in the  middle of the project. We are always proud, we don’t design with mistakes and our code can never be wrong to produce output that damages the overall application look. Why should we be tagged irresponsible of the mess ? Isn’t it like, you jump down the bridge first  and i will follow you! Will you?

I think this kind of question should not come in development environment. The situation, without decision, becomes counter productive under Application Development Process  and Software Development Life Cycle. One hand you are reaching deadline & on the other hand you are hung up in situation that’s merely a problem with your own ego. Working on team requires mutual understanding and co-operation on every aspect of the project. It is your responsibility to understand your role as a team member, take initiation and work on the project. Whether you design or develop things.

Saturday, May 29, 2010

Why you should Twitter ?

It’s been a year since i joined Twitter. Tweeting what i found useful out there surfing, thinking that might interest some one else out there too and tweeting my days as i am living.

First day at twitter was hell. No idea about the interface. Most interesting,  sharing something would be called tweeting! I wondered, what the heck this tweet thing is?? Slowly i began to understand how tweet chirps & why it rocks!


stat

Okay after a year now, i admit i am addicted to twitter now, a day without tweet?? Ahh something is missing. lol. i decided to write why i find twitter useful. It might help someone starting out with twitter.

This is how the idea about this post came in mind:

planning

I’ll be posting one tweet a day chaining them to each other in reverse order from 10 to 1.


Click the link below to go through all the 10 tweets

Why you should twitter?

I started writing this blog post back in May 29th. Its June 14th today, 15 days, 10 chained tweets & this post, i am happy that finally completed this share. My idea about this post was, i wanted to share why twitter as a service is a good place to hang out and give a try. These are solely my view about the service and any views from your side is highly welcomed. Please bear with the length of the post, i couldn’t make it short!

1st tweet:

1

Take it as a web SMS with everyone with their unique identity @username. If you want to talk with someone, just send a tweet to them addressing their username adding @ prefix to it, and there you done. The first thing i found interesting when i started with twitter was its username thing, your contact address is now: @yourusername why bother with those trailing domain names like gmail.com or live.com ??
The simplest of all, you will have a @username that’ll represent you as a person throughout the globe.

Twitter is a bit confusing at first. But few really understand the fun being in it and get attached. Most of them take it hard to grasp and from the first day or two, stop thinking about twitter. If you left just creating your twitter account you are the one who know it well :) But here i am trying to share with you actually what people say good about twitter.

The idea behind twitter is to allow people express their thoughts in 140 characters. Does that counts? Does such small piece of information have any value?? Think about every people in the world tweeting and sharing about things around them in 140 characters, this produces the content enough to read throughout your life. And it’s by far the human nature to pass the meaningful information to others, which is what twitter expressions get higher values. More ever, value of such expressions will come out more profound when that information is processed or presented in a meaningful way The Twitter Trends, that are build around the highest talked topics in twitter are one of the examples of such extraction. And where else in the cloud you’d find such a highly user filtered content??

Twitter facilitates social networking, but it's not a social networking website. In fact, the way Twitter works is quite different from social networks: when you accept friend requests on social networks, it usually means you appear in that person's network and they appear in yours. Following on Twitter is different, because instead of indicating a mutual relationship, following is a one-way action that means you want to receive information, in the form of tweets, from someone. Twitter allows people to opt-in to (or opt-out of) receiving a person's updates without requiring mutual following.
from support entries : Twitter

Actually, twitter is not a Social Network. Twitter themselves don’t call it a social network, it is one of the largest site in web with enough userbase to keep it stand out among other web services. It’s actually a Microblogging Service. Call it anything you like, this a place where people gather, share & talk about things that matters to them and their life. There are endless possibilities with such group of people. You can call it a social network, a news media or a information broadcast service. Say it a place where you keep up with your and your friend’s day to day life. Call it a place to hang out with new people around the world or call it a place to share what you like. If you are a marketer or in business, take it as business tool and start tracking you customer re-views. If you own a blog or some online business, there’s no other service like twitter to get some specific visitors. You are a university student doing some data analysis, there’s no other service as lively as twitter to refer. You are a musician, want to get in touch with your fans, take it as a place to meet with your fans. Give it any use you want. But answer to this question: How do you use your mobile ??? to SMS ?? to call friends? okay fine, it’s completely up to you to use the mobile service, for anything or any purpose you want,  what i am talking here is, exactly, twitter is a way, a tool, the world is using Twitter to SMS 140 characters to others. Give it any direction you like, give it a name you like, use it wherever you need.

2nd tweet:

2

Out of the millions of tweets from different geo locations, different cultures and variety of people twitter is trying to extract some really breaking topics as trends. You being in twitter, actually will be contributing to the information from your locality. We can build twitter application on the top of twitter APIs and build our own online community around our shares. This will be representing our views in the world wide web.

Join twitter today and start tweeting - what ever happening around you, what you find interesting and what matters to you. Start following some people. Get interactive. Be polite, learn about the conversation etiquettes/twitter etiquettes. Slowly you’ll begin to realize you are actually sharing your day to day life in twitter. The good part is everyone is doing the same.

3rd tweet:

image

Twitter is increasing in its userbase day per day. People will finally land up in twitter i am sure on this. The simple interface, with new experience. Despite being such a large web service, twitter provides a very simple one step privacy feature. If you like to go private with you twitter profile, simply goto: Settings –> and mark your profile as private & save it. Done!

privacy block

Most of the time, this one simple privacy tick will suffice your privacy requirement. If you find some of people you follow or those following you annoying simply visit their profile and block them or report as spam.  I loved twitter for this simplicity in privacy setting.

list

Twitter list are great in the sense, they show all the latest tweets from the people in the list. Create a twitter list & think about your live office meeting :) really great! The most interesting is the privacy feature of the list. Please, read the note in the snap above.

 

4th tweet:

4

You may think tweeting would be useless, unless you are a brand using twitter for business, a celebrity or someone with higher number of followers, this ain’t need to be so. Behind every twitter name, there’s a face, like yours, and who knows that face might have same interest as you have. Every tweet/piece of information is equally exposed, sharable and holds certain human value. Each tweet shares an equal chance to be a trend or a master piece of information.

What do you think can be shared in 140 characters? A blog? or a story? or what? an announcement?? The concise nature of tweet itself demands some higher degree of insightful, useful & interesting 140 character inside it to be sharable and build interest in people in your network or to a completely stranger. But don’t hold an urge to be interesting, informative, it’s your lifestream – be you and tweet your thing! That is what becomes your brand in twitter. This will lead you to a circle of people around you who hold similar taste of life.

5th tweet:

5

The timestamp below each tweet ( like …..few seconds ago) speaks about the Real Time nature of twitter. The real time here would mean – as it happens! Yeah, twitter is a stream of shared thoughts around the globe as they are happening right now. 

As i am writing this post now: The Apple Worldwide Developers Conference (WWDC) is going on. If we searched twitter for the WWDC keynote, it would show all the stream of tweets related to the conference. Yup, getting in touch with like minded people in real time was never this easy. You may like to watch: Twitter Search or Google Trends about the WWDC. Look at the Google search, you’ll see all the real time content is fetched from twitter. Even Google failed to beat Twitter’s real-time nature.

For quick glimpse of real time tweets let’s search for Google itself in Twitter & Google Trends. We will see hundreds of tweets coming per second on the topic.

Like these, getting info about any event, any topic of interest & meeting people who share the same interest is easier in twitter. Whether it was about Haiti or whether about the Google OS launch. The tweets were conveying the real time messages everywhere. Millions of people around the world were helping, fund raising for the support in Haiti with twitter. Peoples were arguing about the promises made by Google on the launch of Chrome OS. One reason, i want to live tweeting is this Right Here, Right Now thing.

Some other places to search for twitter content : Bing, Monitor (monitor let’s you search about three topics of interest at once & keep up with them, try using it)  Twazzup, Scoopler. All these services exists but i am happy with the search in twitter itself: http://search.twitter.com. Below, here are some sample search that you might enjoy. Before doing a search a search in twitter, i recommend you look at the Twitter Search Operators. These operators will help you filter your search to more useful tweets.

Twitter Search Examples:

Searching for movie this weekend?? Here’s a quick twitter search from the examples at twitter that will search tweets containing the word "movie", but not "scary", and with a positive attitude -  movie -scary :)

If you live around Kathmandu and want to find what people around are tweeting search near:kathmandu

Twitter users, use hash tags (#) anything with a # prefix, searching for a Job?? try searching for #job or job

You may wonder, what people mention @billgates, try this: to:billgates (this search might look scary at first, what the heck?? can people see my conversations?? but this applies to all the public profiles in twitter. Twitter conversations are public, If you like more privacy send direct messages or go fully private with your twitter profile. )

Want to listen a song, any random song?? okay songs are mostly shared with hastags like #np #nowplaying #listening #song etc.

Let’s filter them so that we’d only see tweets send from Blip.fm "listening to" source:blip.fm
Let’s broaden the search for something to watch or listen to  "listening to" OR now playing OR #np OR #nowplaying filter:links

FIFA, World cup 2010 is going to be fun with twitter:  #worldcup or #wc2010

There are endless possibilities using the twitter search & operators. And most of all, to get all this information from twitter you don’t even need a twitter account. Twitter search is public & can be accessed without setting up your account. Just land to the twitter home page start using the search.

Okay this was about how you’d get what information you want from twitter, but in the run, if you go on tweeting you too will be contributing to this open and real time place. So why don’t give a try now??

6th tweet:

6

You may wonder why 140 character limit?? Here’s what twitter have to say about the 140 limit:

SMS (i.e., texting on your phone) limits each message to 160 characters. Twitter takes that limit and reserves 20 characters for your username, leaving you 140 characters to play with. That’s how it started and we’ve stuck with it!
Taken from Twitter101 for Business  –  from Twitter 

140 is by no mean a limit. Twitter is ambitious to make it possible to allow people tweet from every possible device connected to the web, from your latest Android or from an oldest handset in the drawer. The limits in the character allows this to be possible, older devices do not support lengthy texting & twitter is about texting in Web.

There are sites available to attach your now playing lists (Blip.fm), your birthday celebration pictures (Twitpic), your important contribution announcements to the web or shorten the links you are sharing (Ping.fm, Goo.gl, Bit.ly etc). There are enough services available to share stuffs in twitter. With these free services, you’ll shorten the links & simply copy paste or auto share them in your tweets. There you go without crossing the limit.

The popularity of tweet has led the web to focus more on content rather then length. All popular sites like Google, Youtube, Flickr, every blog in the planet, now support url shortening to facilitate sharing on twitter to save some space to add your thought.140

I suggest you review your tweet once after writing it, give it some time, make it sharable, readable & interesting. This will increase you writing skills, your concentration skill & most of all you’ll learn to be economical – you’ll learn to value each space that’s left on the top right corner of the tweet box. Being content full with each tweet adds value to your profile too.

So will you get shrunk by these 140 characters micro blogging service?
There can be a limit on the number of characters you can tweet but not on the value of your thoughts that you attach to them!

7th tweet:

7

As far as my experience with Twitter says, twitter has never advertised anything or suggested any profile to follow. I like following back, i follow who follow me. In the scene, where every person in the world is tweeting & the service provider, Twitter Inc,  never used any any algorithm to target me as a business source for them, i am happy for their service. Join twitter and enjoy the add free platform. Follow people who interest you, enjoying being in the open sharing environment. I don’t want to argue here about twitter competitors like facebook, foursquare etc. who try to connect people with their algorithms & target personals for their benefit. But i enjoy the freedom in tweeting.

I see three types of personalities in twitter,

1. Person who enjoy their immediate niche. Enjoy following their closest circle & following their tweets. Including celebrities.
2. People who follow back for following them [ i am in this list ;) ]
3. Twitter Bots or Applications. Own twitter profile for business motives.

When you go through the profile of these three genres of twitter users you’d easily identify their category, by looking at their profile. Twitter bot are easily identified by looking at the source they tweet from that is : API. The point here is, you should  find which category you fall in? What’s the idea behind your twitter use??  

I tried many twitter apps to organize my twitter life. I used, tweetdeck, sysmic, ping etc but Twitter Web is enough for me. Their List service is enough to keep up with my nearest friends. Thanks Twitter for the add free environment. And i always argued, sometimes emotions are more important than algorithms! This applies 100% to twitter. It respects your choice, no suggestions, no advertisements and you follow people or be friends with them by choice, not because an algorithm behind their web server is monitoring your activity. 

 

8th tweet:

8

Twitter’s is a real time stream of data, 140 characters long, each with a meaning to certain person or community or nations.

According to TweeSpeed  there come around 35K tweets per minute. If you want to see the numbers of tweets increasing in real time look at the GigaTweet Application .

tweets per minutes

Twitter philosophy regarding the twitter use is they want people to be able to tweet from every device in the world. So, where does that data goes?? Is their any use of them?

Twitter has provided excellent APIs. These APIs are used to access the twitter data in real time. With these APIs People are building very useful application each minute, giving tweets more values & meaning.  Squidoo has a list The Only Twitter Applications List You'll Ever Need. Check out the list to find out Twitter Apps that suits your need. Many applications like Twitter Visualization are giving tweets a nice looks. Check out  the Twitter Vision app, it shows real time tweets in the global map.  Twitter fall is another app i enjoy. Mentionmap is one app that let’s you see your interactive nature in twitter, shows the network of people you frequently talk with in twitter. Here is the I love version of Twistori. Twistori grabs the tweets containing emotional words like Love, Hate, Think, Believe, Feel, Wish and shows them with a nice animation. If you want to get some positive feelings, you might enjoy looking at the real/tweet stories in the twistori application.

These are one set of application that add value to the tweet. Another set of application exists which add twitter use itself. Every web application these days supports twitter. With the very open API from twitter & some programming knowledge you can build an app for yourself. The availability of twitter apps for wide verity of use adds meaning to the point why one should twitter.

9th tweet:

9

It’s true, you follow Oprah Winfrey, and enjoy reading her tweets. How would the moment you react when she mentions you tweet??? Would you like to share this feeling ?

Wide acceptance of twitter from celebs has made it a place to be in, follow them. Enjoy their lifestyle. If you are in doubt whether she’s real Oprah or not go to her twitter and check for the badge – Verified Account above her name in profile page. If you want to know about what’s verified account read this page from twitter.

I enjoy listening to Coldplay. i follow them, yeah i follow the real Coldplay Band. Here’s how :

verified

Sharing about the moment like this, i discovered Jacqueline Bigar’s twitter after 4 or 5 months being in twitter. It was one of the best moment i had in twitter, really enjoyed following her. 

Some cool people i follow in twitter:

This guy sings for me, John Mayer
David Gray
Born to be DJ, Paul van Dyk,
Greenday
Jason Mraz
They are starting up, i enjoy their songs. Acid House Kings
Imogen Heap
He has become my favorite writer, Chetan Bhagat

10th tweet :

10

Yeah, It takes just 2 minutes to setup twitter, 2 days to grasp it, 2 weeks to gather some crowd & 2 months to addiction!

Setting up a twitter account is just few clicks. Provide your basic info, have a representing avatar and there you go. It’ll take no more than 2 minutes if you are going to try now. 

I was wondering how should i send my first tweet back then. Don’t worry, write whatever you have in your mind. It’s fine. Your profile, number of tweets, number of following followers will say you are the beginner. We will be happy to welcome you.

After setting up your account, give some time to understand the twitter itself. Learn what’s twitter. Twitter101 is excellent guide if you want to use twitter for your business. There’s one amazing article from Web Designer Depot, The Ultimate Guide for Everything Twitter. This article will help you understand basics of twitter, how to make your profile represent yourself,Twitter Etiquettes, twitter terms and everything else you need to know about using twitter. When i was beginning, I fortunately followed @mashable who became my twitter guru! They have setup excellent guide on twitter. Go through the guide to understand – the real value of twitter. Within two days of reading what’s twitter you’ll understand how the twitter works, value of your profile, mentions, retweets, hashtags, twitter lists & more. This will give you the feel about real value of your twitter. What i meant to say is, learn and know about the place you are going to be on forever onwards.

The first thing after setting up account people do is search for friends, celebrities & like minded people around. Use twitter search to find  your friends in twitter. Gather some crowd. Follow your favorite celebrities. Invite your friends to use twitter, the more friends you have around to interact  with the more fun twitter will become. You can follow me if you will. Don’t forget to mention you read this post.

Now you are ready to tweet on the go, the more you tweet the more chance that you’ll appear on twitter search and hence more like minded friends. Same applies when you search.

Tweeting is about sharing, the more you share the more you will be attached to the twitter. Look how exciting it becomes when a unknown friend from somewhere around the globe mentions you thanking for your last tweet. It becomes a habit, a lifestyle. If you were blogging till now, twitter will really fascinate you, it’s just about writing 140 characters with some meaning. One tweet will capture your one moment. It’s your life stream. Be true to what you are, do not show off. With your nearest circles all in the twitter it will become a day to day place to be in. Accept it as a place you value & you will be benefited. Within short time or not more than two months, i guarantee you’ll become addicted to tweeting. Don’t blame i didn’t warn you!

Welcome to twitter.