Saturday, April 30, 2011

आकर्षक वेबसाईटसाठी फ्लॅश(Flash) तंत्रज्ञान

वेबसाईटवर गद्य मजकुरापेक्षा चित्रे चटकन्‌ लक्ष वेधून घेतात. हलती चित्रे असल्यास वेबसाईटच्या आकर्षकतेत अधिकच भर पडते. फ्लॅश तंत्रज्ञानाच्या साहाय्याने आपल्याला अशी चित्रे वा ध्वनी-चित्रफिती बनविता येतात.यामुळे बहुधा जाहिरातींसाठी फ्लॅशचा वापर करण्यात येतो.

मॅक्रोमिडिया या कंपनीने वेबसाईट डिझाईनसाठी फ्लॅश, ड्रीमव्हीवर व फायरवर्क्स यांचा विकास केला. आता ती कंपनी फोटोशॉप व अ‍ॅक्रोबॅट रीडर बनविणार्‍या अडॊब कंपनीत विलीन झाली आहे.

फ्लॅश ५ पासून सुरुवात झालेले तंत्रज्ञान आता फार प्रगत झाले असून त्याच्या फ्लॅश १० पर्यंत सुधारित आवृत्या निघाल्या. त्यातून फ्लेक्स या आधुनिक तंत्रज्ञानाची निर्मिती झाली आहे.

फ्लॅश तंत्रज्ञानाचा परिचय

फ्लॅशमध्ये चित्रे काढण्यासाठी एक स्टेज (फलक) असते. काढलेली चित्रे वेगवेगळ्या लेअर्सवर (पातळ्यांवर) साठवून ठेवता येतात व त्यांची एकावर एक रचना करता येते. पारदर्शक कागदांवर वेगवेगळी चित्रे काढून व त्यांचा गठ्ठा करून सर्वसमावेशक एकच चित्र करता येते तशीच ही सोय असते.


याशिवाय स्टेजच्या वरच्या बाजूला टाईमलाईन दिसते. त्याच्यावर अनेक फ्रेम्स (चित्रचौकटी) आपण तयार करू शकतो.प्रत्येक फ्रेममध्ये अनेक लेअर्सचे चित्र असते.अशी चित्रे अनेक फ्रेम्समध्ये घातली की त्यांची एक चित्रफीत तयार होते. चित्रफीत तयार करण्याच्या या फाईलला .fla हे दुय्यम नाव असते. ही फाईल फ्लॅश मुव्ही (.swf हे दुय्यम नाव) म्हणून एक्स्पोर्ट केली की चित्रफीत कार्यान्वित होते. वेबपेजमध्ये याचा समावेश केला की ही चित्रफीत दिसू लागते. मात्र त्यासाठी कॉम्प्युटरवर फ्लॅश प्लेअर असावा लागतो. अन्यथा इंटरनेटवरून तो डाऊनलोड होऊन फ्लॅश मुव्ही दिसण्याची व्यवस्था वेबपेजच्या प्रोग्रॅममध्ये केलेली असते.

Friday, April 29, 2011

जुमला( Joomla) भाग-२

जुमला सीएमएस(माहिती व्यवस्थापन प्रणाली) वेबसाईटच्या डिझाईनसाठी वापरण्यात काय फायदे आहेत हे आपण जुमला परिचय या धड्यात पाहिले. जुमलाचे कार्य कसे चालते हे खालील चित्रात दाखविले आहे.


डाटाबेसमध्ये सर्व माहिती ठेवली जाते. पीएचपी प्रोग्रॅममार्फत ही माहिती घेऊन व टेम्प्लेट ( नमुना डिझाईन)च्या सीएसएसप्रमाणे सर्व्हरवर वेबपेज तयार केले जाते व ते युजरच्या ब्राउजर कडे पाठविले जाते.

आता जुमलाचा व्यवस्थापन कक्ष (बॅक एण्ड अ‍ॅड्मिनिस्ट्रेशन) कसा असतो ते पाहू.

व्यवस्थापन कक्ष
जूमलामध्ये डिझाईन केलेल्या वेबसाईटच्या व्यवस्थापन कक्षात प्रवेश करण्यासाठी वेबसाईतवरील लॉगिन बॉक्समध्ये यूजरनेम, पासवर्ड लिहून अथवा ब्राउजरच्या अ‍ॅड्रेसबारमध्ये वेबसाईटचे नाव व पुढे /administrator असे लिहून लिंक उघडावी लागते, उदा http://www.mysangli.com/administrator

व्यवस्थापन कक्ष वापरण्याचे अधिकार तीन प्रकारचे असतात.

१. सुपर अ‍ॅड्‌मिनिस्ट्रेटर - सुपर अ‍ॅड्‌मिनिस्ट्रेटरचे वेबसाईटवर पूर्ण नियंत्रण असते. त्याला वेबसाईटमध्ये सर्व प्रकारचे बदल करण्याचे अधिकार असतात.तसेच इतर प्रकारच्या युजर्सच्या अकौंटमध्ये फेरफार करण्याचे स्वातंत्र्य असते.
२. अ‍ॅड्‌मिनिस्ट्रेटर - अ‍ॅड्‌मिनिस्ट्रेटरला वेबसाईटमध्ये सर्व प्रकारचे बदल करण्याचे अधिकार असतात परंतु .सुपर अ‍ॅड्‌मिनिस्ट्रेटरच्या अकौंटमध्ये त्याला फेरफार करता येत नाहीत.
३. मॅनेजर - मॅनेजरला वेबसाईटवरील मजकूर व विभाग, व मेनू बदलण्याचे वा नवीन घालण्याचे अधिकार असतात. मात्र त्याला वेबसाईटच्या मांडणी वा पूरक प्रोग्रॅम वा सुविधांमध्ये बदल करता येत नाहीत.
अ‍ॅड्‌मिनिस्ट्रेटरने Admin विंडोमध्ये युजरनेम ( शक्यतो admin हेच नाव वापरले जाते) व पासवर्ड घातला की व्यवस्थापन कक्ष उघडतो.

यात वरच्या बाजूला आडवा मेनू दिसतो. त्यात साईट(वेबसाईटची सेटींग्ज), मेनू ( वेबपेजवरील विभाग), कंटेंट(वेबपेजवरील माहिती), कांपोनंट्स ( जुमला प्रणालीत जोडता येणारे प्रोग्रॅम), एक्स्टेंशन्स(बाहेरचे प्रोग्रॅम वा सुविधा), टूल्स (इतर साधने) व हेल्प ( मदत कक्ष) अशी शीर्षके दिसतात. या शीर्षकावर माउसने क्लिक केले की उभा मेनू उघडतो व त्यातील पर्याय दिसतात. यातिल योग्य पर्याय निवडून वेबसाईटचे मुख्य पान डिझाईन करणे(टेम्प्लेट निवडणे), मेनू ठरविणे, टेम्प्लेट निवडणे, नवे मोड्यूल्स वा कांपोनंट इन्स्टॉल करणे इत्यादी कामे करता येतात.

या मेनूच्या खाली Add New Article (नवी माहिती), Article Manager(विभागवार माहिती घालण्याची सुविधा), Front Page Manager (मुख्य पानावरील मजकुराची मांडणी), Section Manager (मुख्य विभाग व्यवस्थापन), Category Manager(उपविभाग व्यवस्थापन), Media Manager( चित्रे, ध्वनी, वा ध्वनी-चित्रफिती व्यवस्थापन), Language Manager( वेबसाईट वरील भाषेचा उपयोग), User Manager(नोंदणीकृत सभासदांचे व्यवस्थापन) Global Configuration( सर्व वेबपेजेससाठी समान सेटिंग्ज व्यवस्थापन ) असे पर्याय दिसतात. वरच्या आडव्या मेनूमधूनही हे पर्याय निवडता येतात फक्त सुलभतेसाठी हे मुख्य पर्याय ्चित्राद्वारे दर्शविलेले असतात.

यातील आवश्यक तो पर्याय निवडून वेबसाईटवर विभाग वा उपविभाग घालणे, नवी माहिती घालणे, फोटो अपलोड करणे, भाषा निवडणे यासारखी कामे करता येतात.

Thursday, April 28, 2011

वर्डप्रेस (Wordpress)भाग - १ - एक लोकप्रिय प्रभावी सीएमएस

वेबसाईट डिझाईनसाठी वर्डप्रेस ही एक प्रभावी व मुक्त माहिती व्यवस्थापन प्रणाली आहे. मायएसक्यूएल डाटाबेस व पीएचपी प्रोग्रॅम यांचा यात वापर केला आहे. ब्लॉग वेबसाईटपेक्षा अधिक सुविधा असणारी मात्र जुमला व द्रुपलपेक्षा खूप कमी मेमरी लागणारी व अधिक सुटसुटीत प्रणाली असून तिची रचना व कार्य समजण्यास अगदी सोपे आहे.

वर्डप्रेस प्रणालीमध्ये वाचकांच्या अभिप्रायासाठी व वेगवेगळ्या विषयांवर गटचर्चा करण्यासाठी विशेष सुविधा असल्याने व डिझाईनचे अनेक तयार नमुने ( टेम्प्लेट्स) वापरता येत असल्याने ही प्रणाली अत्यंत लोकप्रिय ठरली आहे.वर्डप्रेसची माहिती देणारी अनेक संकेतस्थळे आहेत.मात्र वर्डप्रेसची आधुनिक आवृत्ती मिळविण्यासाठी http://www.wordpress.org या वेबसाईटवरून वर्डप्रेसची झिप फाईल डाऊन लोड करावी.

कोणत्याही प्लॅटफॉर्मच्या सर्व्हरवर याचे इन्स्टालेशन करता येते. डोमेनसाठी होस्टींगस्पेस घेतल्यानंतर सीपॅनेल कंट्रोलमधून फाईल मॅनेजर उघडून त्यात वर्डप्रेसची झिप फाईल (wordpress-3.1.2.zip) अपलोड करावी. व तेथेच अनझिप करावी (त्यातील फाईल्स सुट्या कराव्यात.) फाईल मॅनेजरच्या पीएचपी सर्व्हरवर एक मायएसक्यूल डाटाबेस तयार करावा लागतो. नंतर त्या डाटाबेसचे नाव, युजरचे नाव, डाटाबेससाठी पासवर्ड, सर्व्हरचा आय. पी अ‍ॅड्रेस (वा वेबसाईटचे नाव) ही सर्व माहिती जमा केली की केवळ पाच मिनिटात आपल्याला ही नवी वेबसाईट कार्यान्वित करता येते.


वेबसाईटचे नाव ब्राउजरच्या अ‍ॅड्रेस बारमध्ये घातले की इन्श्टॉलेशन फोल्डरमधील फाईल कार्यान्वित होतात व इन्स्टॉलेशनसाठी सूचना दिल्या जातात. वेबसाईट व्यवस्थापन कक्षात प्रवेशासाठी admin व पासवर्ड द्यावा लागतो. तीन चार टप्प्यात सर्व माहिती भरून झाली की इन्स्टॉलेशन फोल्डरचे नाव बदलावे लागते. आता पुन्हा वेबसाईटचे नाव ब्राउजरच्या अ‍ॅड्रेस बारमध्ये घातले की वेबसाईट आपल्याला दिसू लागते.या वेबसाईटची रचना व चित्रे वर्डप्रेसच्या ठराविक नमुन्याप्रमाणे असतात. यात बदल करण्यासाठी तसेच वेबपेजेसमधे माहिती भरण्यासाठी आपल्याला वेबसाईटच्या व्यवस्थापन कक्षात प्रवेश करावा लागतो. यासाठी वेबसाईटचे नाव व पुढे /wp-admin असे लिहावे लागते. येणार्‍या तक्त्यात admin व पासवर्ड घातला की व्यवस्थापन कक्ष ( Administration panel -Dashboard) दिसू लागतो.

आता डाव्या रकान्यामध्ये मजकूर लिहिण्यासाठी पोस्ट्स(Posts), चित्रे, फोटो वा ध्वनीचित्रफीत घालण्यासाठी मिडिया(Media), लिंक्स(Links), पेजेस(Pages) व अभिप्रायासाठी कॉमेट्स(Comments) अशी नावे दिसतात. यावर क्लिक केले की संबंधित माहितीचे पान उघडते.. आपल्याला वेगवेगळ्या विषयांवर लेखन करावयाचे असल्यास व विभाग -उपविभागात ते ठेवायचे असल्यास वेगवेगळ्या कॅटेगरी (Categories) तयार करता येतात व पोस्ट केलेल्या वेबपेजेसचे विभागवार वर्गीकरण करता येते.
ज्ञानदीपने http://svranade.dnyandeep.com http://shubhangi.dnyandeep.com या ब्लॉग वेबसाईट वर्डप्रेसमध्ये केल्या आहेत त्या पहाव्यात.

Sunday, April 24, 2011

कोड इग्नायटर (Codeigniter) भाग -२

व्ह्यू (Views)
व्ह्यू म्हणजे साधे वेबपेज किंवा वेबपेजचा एखादा भाग, उदा. हेडर किंवा बॅनर, मेनू वा तळटीप. हे व्ह्यूज पाहिजे त्याप्रकारे दुसर्‍या व्ह्यूत समाविष्ट करता येतात. व्ह्यू हे स्वतंत्रपणे कार्यान्वित करता येत नाहीत. कंट्रोलरमार्फत त्यांचे संचालन होते. येथे कंट्रोलरचे काम एखाद्या ट्रॅफिक पोलिसासारखे असते. कोणता व्ह्यू दाखवायचा व कोणता नाही ते कंट्रोलर ठरवितो.

व्ह्यू तयार करणे
blogview.php हा व्ह्यू तयार करण्यासाठी खालील प्रोग्रॅम लिहावा.
(येथे html टॅगसाठी * हे चिन्ह वापरले आहे.)
*html*
*head*
*title* ज्ञानदीप ब्लॉग*/title*
*/head*
*body*
*h1*माझ्या ज्ञानदीप ब्लॉगवर आपले स्वागत आहे!*/h1*
*/body*
*/html*

आता ही फाईल कोड इग्नायटरच्या application/views/ या फोल्डरमध्ये सेव्ह करावी.
मागच्या धड्यातील उदाहरणात ज्याप्रमाणे blog.php फाईल कंट्रोलरच्या साहाय्याने प्रकाशित केली होती त्याप्रमाणे blogview.php फाईल खालील क्लासद्वारे प्रकाशित करता येईल.
class Blog extends CI_Controller {

function index()
{
$this->load->view('blogview');
}
}
ब्राउजरमध्ये ती पाहण्यासाठी मागच्या उदाहरणाप्रमाणे
example.com/index.php/blogview/
अशी लिंक वापरावी लागेल.
एका वेबपेजचे अनेक सुटे भाग एकत्र जोडून वेबपेज (class Page ) करण्यासाठी खालीलप्रमाणे प्रोग्रॅम लिहिता येतो.

class Page extends CI_Controller {

function index()
{
$data['page_title'] = 'Your title';
$this->load->view('header');
$this->load->view('menu');
$this->load->view('content', $data);
$this->load->view('footer');
}

}
वरील उदाहरणात Page नावाचा क्लास तयार करून त्यात वेबपेजचे शीर्षक, हेडर, मेनू, $data या माहितीसंचातून घेतलेला मजकूर व तळटीप हे व्ह्यू एकत्र जोडता येतात.

कोड इग्नायटर (Codeigniter) भाग -१

पीएचपी प्रोग्रॅमिंग भाषा वापरून वेबसाईट डिझाईन करण्यासाठी आवश्यक असणार्‍या सर्व सुविधांच्या लायब्ररी व सोप्या पद्धती असणारे कोड इग्नायटर हे एक प्रभावी फ्रेमवर्क आहे.कोहाना हे फ्रेमवर्क कोड इग्नायटरचे फ्रेमवर्क वापरून विकसित केले आहे.


कोड इग्नायटरची वैशिष्ठ्ये
१. कमी मेमरी लागणारे छोटेखानी फ्रेमवर्क
२. उत्तम कार्यक्षमता
३. पीएचपीच्या वेगवेगळ्या आवृत्तीवर व होस्टींग प्लॅटफॉर्मवर चा्लू शकणारे फ्रेमवर्क
४. इन्स्टॉल करताना अगदी कमी सेटींग्ज आवश्यक
५. पीअरसारख्या मोठ्या लायब्ररीची आवश्यकता नसेल तर कोड इग्नायटर अधिक योग्य पर्याय
६. गुंतागुंतीचे प्रोग्रॅम लागत नाहीत. टेम्प्लेट(वेबसाईट मांडणी)चे कोड शिकावे लागत नाही.
७. फ्रेमवर्कविषयी सर्व तांत्रिक माहिती सहज समजण्याजोगी
कंट्रोलर
कंट्रोलर म्हणजे क्लास फाईलचे असे नाव की जे वेबपेज URI (Universal Resource Indicator) शी जोडून शोधता येईल. उदाहरणार्थ blog.php हा क्लास
example.com/index.php/blog/
असा लिहिला तर कोड इग्नायटर त्याचा अर्थ blog.php असा घेतो.

खाली दिलेले Blog या क्लासचे उदाहरण पीएचपीच्या टॅगमध्ये लिहिले की blog.php हा क्लास तयार होईल.
class Blog extends CI_Controller {

public function index()
{
echo 'Hello World!';
}
}

यात CI_Controller म्हणजे कोड इग्नायटरचा मुख्य क्लास. या क्लासपासून Blog हा क्लास तयार केला आहे. क्लासच्या नावातील पहिले अक्षर नेहमी कॅपिटल असावे लागते.
कोड इग्नायटर कंट्रोलरसाठी राखीव नावे
कोड इग्नायटर कंट्रोलरमध्ये अनेक नावे व फंक्शन्स वापरली जातात. आपले सर्व क्लास त्या मुख्य कंट्रोलरपासून बनविले जाणार असल्याने आपल्या प्रोग्रॅममध्ये ती नावे क्लाससाठी वा इतरत्र वापरता येत नाहीत.
या राखीव नावांची यादी.

* Controller
* CI_Base
* _ci_initialize
* Default
* index

Functions


* is_really_writable()
* load_class()
* get_config()
* config_item()
* show_error()
* show_404()
* log_message()
* _exception_handler()
* get_instance()

Variables


* $config
* $mimes
* $lang

Constants

* EXT
* FCPATH
* SELF
* BASEPATH
* APPPATH
* CI_VERSION
* FILE_READ_MODE
* FILE_WRITE_MODE
* DIR_READ_MODE
* DIR_WRITE_MODE
* FOPEN_READ
* FOPEN_READ_WRITE
* FOPEN_WRITE_CREATE_DESTRUCTIVE
* FOPEN_READ_WRITE_CREATE_DESTRUCTIVE
* FOPEN_WRITE_CREATE
* FOPEN_READ_WRITE_CREATE
* FOPEN_WRITE_CREATE_STRICT
* FOPEN_READ_WRITE_CREATE_STRICT

Thursday, April 21, 2011

With malice toward none

"With malice toward none, with charity for all, with firmness in the right as God gives us to see the right, let us strive on to finish the work we are in; to bind up the nation's wounds; to care for him who shall have borne the battle, and for his widow and his orphan - to do all which may achieve and cherish a just and lasting peace, among ourselves, and with all nations."
---- Abraham Lincoln's Second Inaugural Address, March 4, 1865.

"You have been my eyes
Things I didn't know I saw
You showed me were there

The soft wind that soothes
Is, at root, the hurricane
Which can destroy you

It's your firing squad
But I don't need a blindfold
I have died before

Wit should not be used
As a sword to inflict scars
Till its edge is honed"

--- Like Haiku Tanka other Verse
By Don Raye

Faith is like glass. Once broken, it can't be joined.

Occasions do not make man either good or bad
They only show what he is.

I do not want to continue in the post of authority in any social service when there is a speck of doubt in anybody's mind about my character.

Tuesday, April 19, 2011

माझ्या मना बन दगड

'











Translation of Marathi poem by Vinda Karanadikar
माझ्या मना बन दगड Oh my mind. Become a stone
माझ्या मना बन दगड
हा रस्ता अटळ आहे !
अन्नाशिवाय, कपड्याशिवाय
ज्ञानाशिवाय, मानाशिवाय
कुडकुडणारे हे जीव
पाहू नको, डोळे शिव!
नको पाहू जिणे भकास,
ऐन रात्री होतील भास
छातीमधे अडेल श्वास,
विसर यांना दाब कढ
माझ्या मना बन दगड!

हा रस्ता अटळ आहे !
ऐकू नको हा आक्रोश
तुझ्या गळ्याला पडेल शोष
कानांवरती हात धर
त्यांतूनही येतील स्वर
म्हणून म्हणतो ओत शिसे
संभाळ, संभाळ, लागेल पिसे!
रडणाऱ्या रडशील किती?
झुरणाऱ्या झुरशील किती?
पिचणाऱ्या पिचशील किती?
ऐकू नको असला टाहो
माझ्या मना दगड हो!

हा रस्ता अटळ आहे !
येथेच असतात निशाचर
जागोजाग रस्त्यावर
असतात नाचत काळोखात;
हसतात विचकून काळे दात
आणि म्हणतात, कर हिंमत
आत्मा विक उचल किंमत!
माणूस मिथ्या, सोने सत्य
स्मरा त्याला स्मरा नित्य!
भिशील ऐकून असले वेद
बन दगड नको खेद!

बन दगड आजपासून
काय अडेल तुझ्यावाचून
गालावरचे खारे पाणी
पिऊन काय जगेल कोणी?
काय तुझे हे निःश्वास
मरणाऱ्याला देतील श्वास?
आणिक दुःख छातीफोडे
देईल त्यांना सुख थोडे?
आहे तेवढे दुःखच फार
माझ्या मना कर विचार
कर विचार हास रगड
माझ्या मना बन दगड

हा रस्ता अटळ आहे !
अटळ आहे घाण सारी
अटळ आहे ही शिसारी
एक वेळ अशी येईल
घाणीचेच खत होईल
अन्यायाची सारी शिते
उठतील पुन्हा, होतील भुते
या सोन्याचे बनतील सूळ
सुळी जाईल सारे कूळ
ऐका टापा! ऐका आवाज!
लाल धूळ उडते आज
त्याच्यामागून येईल स्वार
या दगडावर लावील धार!
इतके यश तुला रगड
माझ्या मना बन दगड
Oh my mind. Become a stone
This road is unavoidable
People shuddering , without food, without clothes
Without knowledge, without status
Do not see, stich your eyes
Don't see the the life without meaning
There would be shocking dreams in night
Your breath would get choked
Forget them, suppress your feeling
Oh my mind, become a stone

This road is unavoidable
Do not hear their cry
Your throat would become dry
Close your ears by hands
Still the sounds will enter the ears
Hence I say pour hot lead into them
Keep calm, control yourself
Otherwise you will become mad
If you are cryer, how long you can cry
If you keep expecting, how long you will expect
If you getting broken, how long will you get broken
Hence do not hear such cries
Oh my mind, become a stone

This road is unavoidable
The nightwalkers live here
Dancing in the black night
Laugh with their black teeth
And say, become bold
Sell your soul, get the money
Man is fake, gold is truth
Remember this remember this
You will be afraid hearing such scriptures
Instead become a stone, No regrets

From today become a stone
What would stop without you?
Can anybody live by drinking
Tears on the cheeks?
Can your exhaust air
give breath to dying person?
And your utter sorrow
can it give them any comfort?
The pains are too large
Oh my mind, think over
Think more, laugh more
Oh my mind become a stone

This road is unavoidable
The dirt here is unavoidable
The nausa here is unavoidable
But a time will come
When the dirt will become manure
Small specks of injustice with grow wild
This gold will become cross
All will get crucified
Hear sounds of horse
Red dust has started floating in the air
The warrior will come after that
He will sharpen his weapons on you stone
This much success is plenty for you
Oh my mind, become a stone.

Sunday, April 17, 2011

कोहाना फ्रेमवर्क

जुमला(Joomla), द्रुपल(Drupal)सारख्या या माहिती व्यवस्थापन प्रणालींसाठी जास्त मेमरी, पीएचपी व वेगळ्या डाटाबेसची आवश्यकता असते. शिवाय या प्रणाली मोठ्या व गुंतागुंतीच्या असल्याने त्यांचा वापर सहसा मोठ्या वेबसाईटसाठी करण्यात येतो.वर्डप्रेस (Wordpress) आकाराने सुटसुटीत व छोट्या वेबसाईटसाठी योग्य सीएमएस (CMS) आहे पण यासाठीही वेगळ्या डाटाबेसची आवश्यकता राहते.

कोहाना हे पीएचपी प्रोग्रॅमिंग भाषेवर आधारित एक ऑब्जेक्ट ओरिएन्टेड फ्रेमवर्क आहे.त्याची रचना कोड इग्नायटर नावाच्या मोड्यूल, व्ह्यू, कंट्रोलर(HMVC-Hierarchical Model View Controller) पद्धतीवरून तयार केली आहे. ते ओपनसोर्स (मुक्त) प्रकारचे असल्याने त्याचे लायसन्स घ्यावे लागत नाही.

कोहाना फाईल सिस्टीम
कोहाना फाईल सिस्टीम कास्केडिंग (उतरंड प्राधान्यक्रमावर आधारित) प्रकारची असून त्यात तीन प्रमुख थर आहेत.
1.अ‍ॅप्लिकेशन (Application Path)
2. मोड्यूल (Module Paths) कोहाना मोड्यूल्सची यादी
3. सिस्टीम(System Path) यात सर्व महत्वाच्या फाईल्स व क्लास नोंदलेले असतात.

कोहानाची फाईल सिस्टीम अशा प्रकारे बनवलेली आहे की त्याची व्याप्ती पाहिजे तेवढी वाढविता येते. त्यासाठी वेगळ्या डाटाबेसची गरज नसते. ते कॉम्प्युटरवर इन्स्टाल करताना विशेष सेटींग्ज (कॉन्फिगरेशन) करावी लागत नाहीत. कोहानामध्ये आवश्यक ते सर्व कोहाना क्लास आहेत. कोहानामध्ये पीएचपी 5 प्रोग्रॅमच्या आटोलोडींग (__autoload function) सुविधेचा उपयोग केलेला असल्याने(Kohana::autoload) बाहेरच्या क्लास फाईल समाविष्ट करण्यासाठी प्रत्येकवेळी include() वा require() यांचा वापर करावा लागत नाही

युजरकडून भरली जाणारी माहिती तपासण्याची (व्हॅलिडेशन) व्यवस्था, अनधिकृत माहिती प्रवेश होऊ नये यासाठी योग्य ती सुरक्षा व्यवस्था, प्रोग्रॅममधील चुका पाहून दुरुस्तीची सोय इत्यादी आवश्यक वैशिष्ठ्यांनी कोहाना परिपूर्ण आहे.त्यामुळे आधुनिक वेबसाईट डिझाईन क्षेत्रात ते मान्यता पावले आहे.

ज्ञानदीपने काव्य झाले गाणे (kavyazalegane.com), महाराष्ट्र टेक्निकल एज्युकेशन सोसायटीची वेबसाईट (mtesociety.org) कोहाना फ्रेमवर्क वापरून डिझाईन केल्या आहेत.

Saturday, April 16, 2011

ऊप (OOP) ऑब्जेक्ट ओरिंएन्टेड प्रोग्रॅमिंग

बेसिक(Basic) व सी (C) या कॉम्प्युटर प्रोग्रॅमिंगच्या भाषा प्रोसिजर ओरिंएन्टेड भाषा आहेत. म्हणजे येथे प्रोग्रॅमिगचे कार्य पहिल्या ओळीपासून सुरू होऊन शेवटच्या ओळीपर्यंत एका क्रमाने होते. याउलट सी++(C++) ही ऑब्जेक्ट ओरिंएन्टेड प्रोग्रॅमिंग भाषा आहे.आता बहुतेक नव्या प्रोग्रॅमिंगसाठी प्रोसीजरऎवजी ऑब्जेक्ट ओरिंएन्टेड पद्धत वापरली जाते.

हे ऑब्जेक्ट ओरिंएन्टेड प्रोग्रॅमिंग किंवा `ऊप' म्हणजे काय?

प्रोग्रॅमचे छोटे छोटे भाग क्रमवार एकानंतर एक असे न लिहिता प्रत्येक भागासाठी एक विशिष्ट नावाचा स्वयंपूर्ण प्रोग्रॅम वस्तुसंकल्पना (ऑब्जेक्ट) या स्वरुपात मांडला जातो. ही संकल्पना समजण्यासाठी काही उदाहरणे पाहू.

आपणास पशु, पक्षी, माणूस, देव या शब्दांचे अर्थ माहीत आहेत. माणूस म्हटले की आपल्या मनात त्याचे विशिष्ट गुणधर्म व कार्यपद्धती लगेच लक्षात येतात. आपण माणूस ओळखूही शकतो. सजीव वस्तूंप्रमाणे मोटार, पंखा, यासारख्या वस्तू वा बँक, शाळा, दवाखाना यासारख्या संकल्पना आपल्याला समजतात. मात्र यातील कोणतीही गोष्ट केवळ त्या संकल्पनेच्या स्वरुपात अस्तित्वात नसते तर त्याचे प्रत्यक्षातील अस्तित्व विशिष्ठ नावाच्या प्रतिरूपात आपणास पाहता येते. उदाहरणार्थ देव संकल्पना स्पष्ट करण्यासाठी आपल्याला राम, गणपती असे प्रत्यक्षातील देवाचे रूप सांगावे लागते. माणसाचे उदाहरण देताना विशिष्ठ नाव असणारी व्यक्ती वा शाळा संकल्पना मांडताना प्रत्यक्षातील उदाहरण द्यावे लागते.

वस्तूची(ऑब्जेक्टची) मूळ संकल्पना क्लास(Class) या संज्ञेने प्रोग्रॅमिंगमध्ये व्यक्त केली जाते. क्लासमध्ये त्या वस्तूचे गुणधर्म(Properties), कार्यपद्धती(Methods) व घटना(Events) यांची माहिती दिलेली असते. क्लास स्वतः काही कार्य करू शकत नाही तर त्यापासून बनलेली प्रत्यक्ष वस्तू ( ऑब्जेक्ट) कार्य करू शकते. म्हणजे क्लासपासून प्रत्यक्ष नाव असलेली वस्तू तयार करून त्या वस्तूकडे कार्य होते.

ऑब्जेक्ट स्वरुपातील प्रोग्रॅम करण्यासाठी क्लास लिहावा लागतो. व त्याचा वापर करण्यासाठी त्याचा प्रत्यक्ष अवतार(Instant) विशिष्ठ नावाच्या ऑब्जेक्टच्या स्वरुपात मांडावा लागतो. उदाहरणार्थ कुत्रा या शब्दावरून आपल्याला प्राण्याच्या प्रकाराविषयी माहिती झाली तरी मोत्या हा एक कुत्रा आहे या वाक्यावरून मोत्याचे गुणधर्म आपणास प्रत्यक्ष दाखविता येतात.एका ऑब्जेक्टचे असे अनेक अवतार ( प्रतिरुपे) निरनिराळ्या नावाने तयार करता येतात. त्यांच्या गुणधर्मात फरक असले तरी त्या सर्वांचे कुत्रा या संकल्पनेचे गुणधर्म एकच असतात.

अशा पद्धतीचा प्रोग्रॅमिंगमध्ये काय उपयोग ? अशी शंका येणे स्वाभाविक आहे. आता दंडगोलाकृती ठोकळ्याचे घनफळ काढण्यासाठी लागणार्‍या प्रोग्रॅमचा क्लास तयार केला व त्यापासून वेगअवेगळ्या विशिष्ठ त्रिज्या व लांबी असणार्‍या ठोकळ्यांसाठी या क्लासपासून केलेल्या ऑब्जेक्टचा वापर केला तर त्यांची घनफळे काढता येईल.याठिकाणी घनफळ काढण्याचा क्लास (प्रोग्रॅम) मुख्य प्रोग्रॅमपासून वेगळा ठेवता येईल. असेच वेगवेगळ्या कामासाठी अनेक क्लास तयार करून ठेवलेले असतील तर मुख्य प्रोग्रॅम करताना फक्त या क्लासच्या ऑब्जेक्ट्चा वापर करावा लागेल. प्रोग्रॅम समजण्यास सोपा होईलच शिवाय घनफळ कसे काढले जाते याचा प्रोग्रॅम गुप्त राहील. ब्लॅक बॉक्स वा जादूची पेटी असते त्याप्रमाणे याचे दिलेल्या माहितीवर गुप्तपणे प्रक्रिया करून उत्तर देण्याचे कार्य राहील.

ऊप प्रोग्रॅमिंगची पद्धत एकदा समजली की शास्त्रशुद्ध व प्रभावी प्रोग्रॅमिंग करणे सहज शक्य होते.

जुमला - परिचय

जुमला(Joomla) ही एक वेबसाईट डिझाईन करण्यासाठी, पीएचपी(PHP) व मायएसक्यूएल ( MySQL) डाटाबेसवर आधारित बनवलेली सुरक्षित (Secured)व मुक्त (Free) माहिती व्यवस्थापन प्रणाली (Content Management System) आहे.

स्वयंपाक करताना लागणारे पदार्थ निरनिराळ्या ड्ब्यात वा भांड्यात ठेवलेले असतात. आवश्यकतेनुसार व आवश्यक त्या प्रमाणात ते पदार्थ घेऊन त्यावर प्रक्रिया करून खाद्य्पदार्थ बनविला जातो. तशाचप्रकारे वेबपेजसाठी लागणारी सर्व माहिती वेबपेजमध्ये स्थायी स्वरुपात न ठेवता वेगळ्या डाटाबेसच्या वेगवेगळ्या टेबल्समध्ये ठेवली जाते व पीएचपी प्रोग्रॅमच्या साहाय्याने आवश्यकतेनुसार ती डाटाबेसमधून घेऊन व त्याचे योग्य संकलन करून वेबपेज बनविले जाते.

वेबपेजचे वेगवेगळे भाग स्वतंत्र फाईलमध्ये तयार करून पीएचपीद्वारे ते कसे एकत्र जोडता येतात हे आपण पाहिले. त्याचप्रमाणे संकेतस्थळावरील माहितीची मांडणी वेगळ्या सीएसएस फाईलमध्ये ठेवून ती वेबपेजला लिंक कशी करतात हेही आपण शिकलो आहे. जुमलामध्ये केवळ वेबपेज नव्हे तर सम्पूर्ण वेबसाईटमधील सर्व पानांचे डिझाईन असणारी टेम्प्लेट (संकेतस्थळ आराखडा) बाहेरून जोडण्याची व्यवस्था केलेली असते. त्यामुळे वेबसाईटचे संपूर्ण स्वरूप चटकन बदलता येते. पीएचपी आधारित वेबसाईट पूर्णपणे सुरक्षित नसते व त्यात हॅकरकडून पीएचपी प्रोग्रॅममध्ये बदल करून विकृत माहिती प्रसिद्ध होण्याचा वा वेबसाईट बंद होण्याचा धोका संभवतो. जुमला प्रणालीमध्ये प्रत्येक पीएचपी प्रोग्रॅमला सम्रक्षक कवच असते व अधिकृत मार्गाखेरिज दुसर्‍या कोणत्याही मार्गाने हॅकरला प्रवेश करता येत नाही.

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

जुमला सॉफ्टवेअर सर्व्हरवर इन्स्टॉल करावे लागते. जुमलाची झिप फाईल सर्व्हरवर टाकून ती तेथे उघडली की जुमला इन्स्टालेशनसाठी आवश्यक माहिती भरण्यास सांगितले जाते. जुमला इन्स्टॉल झाल्यावर इन्स्टालेशन फोल्डरचे नाव बदलावे लागते. असे केले की जुमला वेबसाईट कार्यान्वित होते.

जुमला वेबसाईटचा मुख्य फायदा म्हणजे वेबसाईट अपडेट करण्यासाठी एफटीपी न लागता युजर पासवर्ड वापरून युजरला त्यातील माहितीत बदल करता येतात. त्यामुळे वेबडिझाईनची तांत्रिक माहिती नसतानाही व्यवस्थापकास वा युजरला वेबसाईटवर बदल करता येतात.

ज्ञानदीपच्या बर्‍याच वेबसाईट जुमला प्रणाली वापरून तयार केल्या आहेत. उदा. मायसांगली डॉट कॉम(www.mysangli.com), मायमराठी डॉट कॉम (www.mymarathi.com), संस्कृतदीपिका डॉट ओआरजी(www.sanskritdeepika.org), विज्ञान डॉट नेट (www.vidnyan.net)इत्यादी.

आता जुमलाची रचना कशी असते ते पाहू.

Monday, April 11, 2011

सोनियाचा दिवस

न्यू इंग्लिश स्कूल, सातारा येथे १९६० मध्ये मी दहावीत शिकत होतो. त्यावेळी शाळेच्या हीरक महोत्सवानिमित्त काढलेल्या विशेषांकात प्रसिद्ध झालेला माझा खालील लेख मला गत स्मृतीत घेऊन गेला. आपणासही आपले शालेय जीवन यात दिसेल.