Friday, July 29, 2011

පහන් සිලක් දැල්වීමේ ආරාධනය 2011 කවි මඩුව

හිරු දෙවියනි හිරු මඩලට වඩින්නේ
සරස්වතී කුමරිය මෙහි වඩින්නේ
වැරදි නැතිය හරි දෙයකුයි කරන්නේ
සැම දෙස බලා සැමට සෙත සදන්නේ

සොදුරු දෙයකි අරඹන්නට හදන්නේ
සැමට සෙතක් ඇති බවකුයි සිතන්නේ
අද දින අපි කවි මඩුවක් කරන්නේ
කවි කම් මතින් හොද මිනිසුන් හදන්නේ

රතු පාවඩ නැත කවි පලසකි එලන්නේ
කවි කම් මතින් අපෙ මඩුවට වඩින්නේ
කවි කියන්න සැමටම සුබ පතන්නේ
පිළිගන්නේ ඔබ සැම හදපිරි තුටු සිතින්නේ

පහන් සිලක් දැල්වීමේ ආරාධනය

සමාව අවසර මිතුරනි පිළිගන්න
සම්ප්‍රධාය ඉදිරියටත් අප රැකගන්න
සැම දෙනාම එකාවන්ව ගොඩවන්න
ඇරයුම සැමටම තිරයක් පහනේ දල්වන්න

පහනේ තෙල් සුවදින් සිත් සැනසේවා
පහනේ ආලෝකය දසතම පැතිරේවා
පහනේ උණුසුම සැමටව සුවදේවා
පහනේ දැල්ල නිම වන තුරු නොනිවේවා


මුල්ම මාතෘකවලෙස "මත්පැන් හොඳද , නරකද?" ඔබගේ කැමැත්ත පරිදි තෝරාගන්නා ලදී


කවිමඩුවට මෙතනින් යන්න http://kavimaduwa.lankeeya.lk/index.php


උපුටා ගැනිම ලාංකීය සිතුවිලි


ඔබ

Sunday, July 17, 2011

අවසර දෙනවද අම්මේ‍

කලකට පසුවයි අම්මේ
ඔබ සමගින් එක මග යන්නේ
සැමදා දුටුවත්, ඔබේ රුව අම්මේ
කරුණා සේ‍නෙහස බුදු ගුණ වින්ද නිසා,
නුදුටුව ගානයි ඔබ මනු රුව අම්මේ
වියපත් වි ඇති බව දුටුව නිසා
මව් ස්නෙහස වැඩි වූවා අම්මේ

ඔබේ විඩාවට සවියක් වන්නට
දානය අරගෙන ගමේ පන්සලට
එන පෝයට එන්නද මා අම්මේ
සිල් සුවඳයි ඔබේ සුවඳයි
විඳින්න මට අවසර දෙනවද අම්මේ‍

මා ඔබ පුතුම නිසා අම්මේ
අවසර ඇත මා හැර යන්නට
නිවන් පුරට වඩිනා දා සිට, අම්මේ
යන මග එලි කර හරි මග කී නුඔඋබ
මගේ සවියගෙන මටම මවම වි එතකල් හිඳින්නඉඳපන් අම්මේ








Tuesday, June 14, 2011

Open Space ලංකාවට නවමු අත්දැකිමක්

බටහිර රටවල දැනටමත් ක්‍රියාත්මක වන ලංකාවට,අපිට අලුත් වූ සංකල්පයක් OPEN SPACE ආයතනය හඳුන්වා දී ඇත. සමහර විට ඔබට මෙය නවමු ඇත්දැකිමක්ද නොවනු ඇත. ඒ කෙසේ වෙතත් මෙම සංකල්පය කුමක් දැයි මුලින්ම හඳුනා ගනිමු. හිතන්න ඔබ නිර්මණයට දක්ෂයෙක්. නැතිනම් සංකල්ප වශයෙන් අලුත් දේ ඉදිරිපත් කරන්නෙක් තවදුරටත් කියන්නේ නම් විවිධ අංශයන්ගේ හැකියාව හා දැනුමක් ඇති අයෙක්. එසේ නම් Open Space යනු ඔබට ගැලපෙන ස්ථානයයි. විවධ අංශයන් හි විවිධ හැකියාවන් තියන පිරිසක් එක් තැනකට එකතු වි සාකච්චා කරමින් දැනුම බෙදා ගැනිම තමයි මෙම සංකල්පය. එයට පහසුකම් සැලසිමක් තමයි ඕපන් ස්පේස් සිදු කරන්නේ. මෙහදි එක් අයකුගේ වැඩකට තවත් අයෙකු බාදාවකින් තොරව එකතු කරගැනිම තමයි සිදුවෙන්නේ.



1. කොහෙද මේ ආයතනය තියෙන්නේ?
186, තුන් වෙනි මහල, ගාලු පාර, කොළඹ 4
[ගාලු පාරේ මැජෙස්ටික් සිටි සුපිරි වෙලඳ සල පසුකොට දෙහිවල දෙසට යන විට මුහුද පැත්තේම]

2. කවුද මෙතනට එන්නේ?
පාසල් සිසුන්, විශ්ව විද්‍යල සිසුන්, විවධ වෘතිකයන්.

3. පහසු කම්?
පාසලක පුස්ථකාලයක එහෙමත් නැත්නම් කාර්‍යලයක ඉගෙන ගන්නා හෝ වැඩකරන ඔබට එයින් මිදී ගෙදරක වටපිටාවක් මෙහිදි දැක ගත හැක. ඒ වගේම විවධ වූ දක්ෂතා හැකියවන් ඇති පිරිසක් නිතරම ගැවසෙන බැවින් ඕනෑම අවස්ථාවක ඔවුන්ගේ සහාය, ඔබට ලබා ගත හැක. මීට අමතරව අන්තර්ජාල පහසුකම් හා වායූසමනයද යුතු මිත්‍රශීලි වටපිටාවක් ලැබේ.



දැනුම හා හැකියාවන් බෙදා ගැනිම හා එකතු කර ගැනිම තමයි මේ සංකල්පයේ මූලික අරමූණ වෙන්නේ. මෙතනදි ආයතනය පවත්වාගෙන යාමට යම්කිසි පිරිවැයක් දරන බැවින් සාධාරණ මුදලක් අය කරයි. එන පිරිස අතර සුහදත්වය ගොඩ නැගිමට හා හඳුනා ගැනිමට විවිධ වූ ක්‍රියාකාරකම්ද නිරන්තරයෙන් සිදු කරයි. පිටරට දෙයක් දේශීයකරණයට ලක් කර විවිධ වූ සමාජ මට්ටම් නියෝජනය කරමින් ලාංකීකයන් එක් කරගැනිම තමයි ඔවුන්ගේ අපේක්ෂාව. වයසේ ප්‍රශන්යක් හෝ සමාජ පන්ති මෙම ආයතනය හා සම්බන්ද වීමට ගැටලුවක් වෙන්නේ නැහැ. එන ඔනෑම අයෙකු ඉතා සුහද ලෙස පිළිගෙන එහි සිදුවන දේ ගැන කෙටි හැඳින්විමක් ලබාදීම මුලින්ම සිදුකරයි. ඊට අමතරව ව්‍යාපාරිකයන් සඳහා අවශ්‍ය ප්‍රමාණයට කාර්‍යාල පහසුකම්ද සලසා දෙයි. 


4. ඇයි කවුරුන් හෝ මෙතනට පැමිණිය යුත්තේ?
හිතන්න ඔබ තවමත් ඉගෙන ගන්න කෙනෙක්, පුස්ථකාලයක තියන වාතාවරණය හා මිනිසුන් වැඩිපුර ගැවසෙන ස්ථානයකත් අතරමැදි අවස්ථාවක් ඔබ බලාපොරොත්තු වෙන්නේ. ඒ වගේ ස්ථානයක් තමයි Open Space කියන්නේ‍. එහෙම නැත්නම් ඔබට ව්‍යපාරයක් තියනවා නමුත් කොළඔ හෝ ඒ අවටින් ඉඩක් නැහැ. එහෙමත් නැත්නම් කිහිප දෙනෙක්ට එකතු වෙලා යම් කිසි ව්‍යපෘතියක් කරගන්න තියනවා ඒත් තැනක් නැහැ. ඒ වගේ අවස්ථාවල Open Space ඔබට පහසුකම් සලසයි.

6. සිංහල බ්ලොග්කරුවන්ට දෙන්න තියන පණිවුඩය මොකක්ද?
"ඇවිත් බලන්න වෙනස අත්විඳින්න" -   විශ්මි පෙරේරා

"මේක අලුත් සංකල්පයක්, තවමත් ලංකාව තුල ගොඩනැගෙමින් පවතින්නේ ඒ වගේම මෙතනට කවුරු හරි මුලින්ම එන්නෙ මේ  මොකක්ද කියලා  බලන්න හැබැයි ආපූ මුල් දවසෙන්ම ‍ඔවුන් මේ ගැන වැටහීමක් අරගෙන නැවත වතාවක් එනවා. ඒ එක්කම කියන්න ඕනේ මුල් දවස නොමිලේ. ඒ හන්දා ඕන කෙනෙක්ට ඇවිත් බලන්න පුලුවන්" - විශ්මි පෙරේරා

7. ආරක්ෂාව
කිසිම ගැටලුවක් නැහැ ඕනෑම අයෙකුට බය නැතුව ඇවිත් යන්න පුලුවන්. මොකද දැනටමත් ‍පාසල් සිසුවියන් හා කන්තා පාර්ෂවයය මෙතනට එනවා. 


විශේෂ ස්තුතිය
මේ ගැන මාව දැනුවත් කලThink Media Consultants හි සංජය හා හර්ෂ, 
මාත් එක්ක මේ ගැන තොරතුරු සොයා ගැනිමට පැමිණි අනුරාධ 
කැමරාව සැපයූ ඇන්ජලෝ
Open Space සංකල්පය දැන ගැනිම හා ඒ ගැන තොරතුරු ලබා දෙන්නට අවස්ථාව සලසා දුන් විශ්මි පෙරේරා

නිධාන කතාව
මේ ආයතනය ගැන සංජය මට කිව්වට පස්සේ, පුදුම උනන්දුවක් ඇති උනා මේක ගැන හොයන්න. වෙබ්සයිට් එකට ගියා එකෙනුත් විස්තර ගත්තා. ඊට පස්සේ විශ්මිට මෙයිල් එකක් දාලා ඇහැව්වා //මම මෙහෙම සිංහල බ්ලොග් ලියන කෙනෙක්\\, මම කැමැතියි මේ සංකල්පය දැන ගන්න මට පුලුවන්ද වෙලාවක් වෙන් කරගන්න කියලා. ඇය එයට යහපත් ප්‍රතිචාර දක්වලා මට කැමති ‍දිනයක එන්න කිව්වා. ඒ වෙනකොට මට කැමරාවක් තිබුනේ නැහැ. ඔෆිසියේ හිත හොඳ එකා ඇන්ජලෝගෙන් ඒකත් ඉල්ලගෙන පණුවා[ අනුරාධ] වත් ඇද ගෙන ඔන්න මම ගිය සතියේ දවසක ඔය කියන තැනට ගිහින් තැනත් බලාගෙන පින්තූරත් අරන් විශ්මිගෙන් තොරතුරු අහගෙන අවා. ආ දැන් මට කැමරාවක් තියනවා රට ඉඳන් ලංකාවට ආව සිංහල බොලොක්ක කරුවෙක් මට ගෙනත් දුන්නා නොවැ කැමරාවක් :DDD 


මෙන්න කියවපල්ලා

Sunday, June 5, 2011

සින්ඩියක් හදන්නේ කොහොමද - Python syndi

සින්ඩියක් හදන්නේ කොහොමද කියන ප්‍රශ්ණය ගොඩක් අයට ඇති. සරළව කිව්වොත් මෙතන වෙන්නේ RSS හෙවත් ඔබගේ බ්ලොග් අඩවියේ තියෙන පෝෂක කියවන එක. සින්ඩිකට ඉල්ලුම් කරද්දි අපි RSS ලබා දෙන්නේ ඒ හින්දා. මතකද පහු ගිය ලිපිය ගූගල් වල වෙබ් සයිට් හොස්ට් කිරිම, Java පාදක කරගෙන ලිව්ව ලිපිය. අතුරු කතාවත් කියලාම වැඩේ පටන් ගන්නම්කෝ, ගිය සතියේ සයිබර් යාලුවෝ ටික නුවර ගිය වෙලාවේ පහන් කිව්වා Java වලට වඩා Python ලේසියි හා ඉක්මන් කියලා. ඒ වෙන කොටත් පයිතොන් ගැන මෙලේ හසරක් දැනං උන්නේ නැහැ. පස්සේ ගෙදර ඇවිත් තමයි මේ පයිතොන් වලින් සින්ඩියක් හදන වැඩේට අතගහලා බැලුවේ. ගුගල් දෙයියෝ හින්දා බය නැතුව වැඩේට බැස්සා.


සින්ඩියක් හදන්න කොච්චර ලේසිද කිව්වොත් මුලු සින්ඩියටම තියෙන්නේ ෆයිල් අටයි.


මුලින්ම දෙයියෝ ගාව තියන Getting Started: Python ලිපියට ගිහිල්ලා රවුමක් දාලා එන්න‍. එකේ තියනවා වින්ඩෝවල කොහොමද පයිතොන් ස්තාපිත කරගන්නේ කියලා.

මේකට ඔනේ
1.Python 2.5 - http://www.python.org/download/releases/2.5/‍‍‍
2.App Engine SDK - http://code.google.com/appengine/downloads.html
3.Windows Launcher for Google App Engine - http://code.google.com/p/google-appengine-wx-launcher/ -
හෝ http://code.google.com/p/google-app-engine-launcher/downloads/detail?name=GoogleAppEngine%20GUI.exe&can=2&q=
[ගුගල් වලට අප්ලෝඩ් කරන විදිහ]

වින්ඩෝස් 7 සඳහා තමයි සියලුම දේවල් මම යොදාගත්තේ. ඔය දෙකම භාගත කරගත්තට පස්සේ ඔබේ පරිගණකයේ සමාන්‍ය ආකාරයට ස්තාපනය කරගන්න පුලුවන්.


‍ගුගල් හොස්ටිං වල වෙනම ඩෙටා බේස් කතාවක් නැහැ. කෝඩ් එකෙන්ම තමයි ඩේටා බෙස් ටේබල් ඔක්කොම පාලනය කරන්න පුලුවන්.

සින්ඩියට අවශ්‍ය අපි හදන ෆයිල්
1. RSS ඇතුලු කිරිමට‍ ෆොම් එකක් - bloglist.py
2. සින්ඩි කේට් කිරිමට හෙවත් cron රන් කිරිමට - cronblogpost.py
3. ලිපි පෙන්විමට - synditest.py

ඔන්න ඔය ෆයිල් තුනෙන් තමයි මූලිකව ඕක වෙන්නේ, ඊට අමතරව තුන් වන පාර්ෂවයෙන් ඕනා වෙනවා feedparser කියන RSS කියවන කෝඩ් එක.

හරි දැන් එකින් එක ෆයිල් බලමු
1.app.yaml මෙයා තමයි සියල්ල පාලන කරන්නේ
application: lankeeyasyndi  මේ තියෙන්නේ ගුගල් එකේ අපේ ඇප්ලිකේෂන් අයිඩ් එක හෙවත් යූනික් නම
version: 1 මේක තියෙන්නේ කෝඩ් එක අප්ඩේට් කරද්දි වර්ෂන් වශයෙන් තියාගන්න
runtime: python
api_version: 1

handlers:
- url: /
  script: synditest.py - [ මේ ෆයිල් එක තමයි මුල් පිටුවට එන්නේ ]

- url: /bloglist
  script: bloglist.py - [ RSS ඇඩ් කරන්නේ මේ ෆොම් එකෙන්]
  
- url: /saveblog
  script: bloglist.py - [ ඇක්ෂන් එකක් වන saveblog ආපුවම මේ ෆයිල් එක ‍ලෝඩ් කරන්න ]
   
- url: /cronblogpost
  script: cronblogpost.py - [  ලිපි සොයා මෙහෙයුම කරන cron ෆයිල් එක ]
 
- url: /.*
  script: not_found.py - [  අනවහශ්‍ය URL ගැහැව්වොත් මේ පිටුවට යන්න ]


2. bloglist.py මෙයා ඉන්නේ RSS ෆෝම් එකට
import cgi

  import datetime

  import urllib

  import wsgiref.handlers
from google.appengine.ext import db

  from google.appengine.api import users

  from google.appengine.ext import webapp

  from google.appengine.ext.webapp.util import run_wsgi_app
ඔය ඉහතින් තියන එව්වා ඔනේ හරිද


"""Name - wapnisyndi """

  """Developer - WAP NISHANTHA SRI LANKA """

  """DATE -  2011-06-05  """
  මං ගැනත් සඳහනක්



class Blogroll(db.Model): මේ තියෙන්නේ බ්ලොග් ලිස්ට් එකට අදලා ටේබල් එක

  """Models an individual Guestbook entry with an author, content, and date."""

  

  burl = db.StringProperty(multiline=True)
  brss = db.StringProperty(multiline=True)
  bowner = db.StringProperty(multiline=True)
  bstatus = db.StringProperty(multiline=True)
  date = db.DateTimeProperty(auto_now_add=True)


def blogslist_key(blogslist_name=None):

  """Constructs a datastore key for a Guestbook entity with guestbook_name."""
  return db.Key.from_path('Blogslist', blogslist_name or 'default_blogslist')


class MainPage(webapp.RequestHandler):

  def get(self):

  self.response.out.write('<html><body>')
  blogslist_name=self.request.get('blogslist_name')


පහලින් තියෙන්නේ RSS ඉල්ලන FROM එක
# Write the submission form and the footer of the page

  self.response.out.write("""

  <form action="/saveblog" method="post">

  <table border="0" cellpadding="0" cellspacing="0">

  <tr>

  <td>Your Email</td>

  <td><input type="text" name="bowners" /></td>

  </tr>

  <tr>

  <td>Blog URL</td>

  <td><input type="text" name="burl" /></td>

  </tr>

  <tr>

  <td>Blog Rss</td>

  <td><input type="text" name="brss" /></td>

  </tr>

  <tr>

  <td></td>

  <td><input type="submit" value="send"></td>

  </tr>

  </table>

  <div></div>

  </form>

  </body>

  </html>""")


class Blogslist(webapp.RequestHandler):

  def post(self):

  blogslist_name = self.request.get('blogslist_name')

  blogroll = Blogroll(parent=blogslist_key(blogslist_name))
blogroll.burl = self.request.get('burl')

  blogroll.brss = self.request.get('brss')

  blogroll.bowners = self.request.get('bowners')
blogroll.put()

  self.redirect('/') - ‍සයිට් එකට රිඩිරෙක්ට් කරලා දාන්න


application = webapp.WSGIApplication([

  ('/bloglist', MainPage), මෙතන ඉතා වැදගත් තැනක් - http://your.appspot.com/bloglist කියන url එකට මේ පිටුව ලෝඩ් කරන්න

  ('/saveblog', Blogslist) saveblog ඇක්ෂන් එකටත් මේ පිටුවම ලෝඩ් කරන්න

  ], debug=True)


def main():

  run_wsgi_app(application)


if __name__ == '__main__':

  main()

ඔය තියන අනික් එව්වාත් තියන්න එහෙම්ම ... මාත් තාම අලුත් නොවැ පයිතොන් වලට


3.cron.yaml මේයා ඉන්නේ අලුත් ලිපි හොයාගෙන යන වැඩේ ගුගුල් කාරයට දැනුම් දෙන්න
cron:
- description: hours summary job
  url: /cronblogpost
  schedule: every 1 hours - මේ කියන්නේ පැයකට සැරයක් කියලා

4.cronblogpost.py මෙන්න වැදගත් කෙනා ලිපි හොයන් එන්න කිව්වාම මෙයා තමයි වැඩේ ගොඩ දාලා දෙන්නේ
import cgi
import datetime
import urllib
import wsgiref.handlers
import feedparser
import sys
import re




from google.appengine.ext import db
from google.appengine.api import users
from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app

"""Name - wapnisyndi """
"""Developer - WAP NISHANTHA SRI LANKA """
"""DATE -  2011-06-05  """


පහලින් තියෙන්නේ RSS ලිස්ට් එක
class Blogroll(db.Model):
  """Models an individual Guestbook entry with an author, content, and date."""
 
  burl = db.StringProperty(multiline=True)
  brss = db.StringProperty(multiline=True)
  bowner = db.StringProperty(multiline=True)
  bstatus = db.IntegerProperty()
  date = db.DateTimeProperty(auto_now_add=True)

def blogslist_key(blogslist_name=None):
  """Constructs a datastore key for a Guestbook entity with guestbook_name."""
  return db.Key.from_path('Blogslist', blogslist_name or 'default_blogslist')

මේ තියෙන්නේ RSS වලට ගිහින් ලිපියකින් අපි ලබා ගන්න තොරතුරු තැන්පත් කරන ටේබල් එක
class Blogpost(db.Model):
  """Models an individual Guestbook entry with an author, content, and date.""" 
  burl = db.StringProperty(multiline=True)
  ptitle = db.TextProperty()
  btitle = db.TextProperty()
  purl = db.StringProperty()
  bcontent = db.TextProperty()
  bpatas = db.StringProperty(multiline=True)
  brss = db.StringProperty(multiline=True)  
  bstatus = db.StringProperty(multiline=True)
  pdate = db.DateTimeProperty()



def guestbook_key(guestbook_name=None):
  """Constructs a datastore key for a Guestbook entity with guestbook_name."""
  return db.Key.from_path('Guestbook', guestbook_name or 'default_guestbook')


class MainPage(webapp.RequestHandler):
   def get(self):       
        blogslist_name=self.request.get('blogslist_name')
        blogrolls = db.GqlQuery("SELECT * "
                                "FROM Blogroll "
                                "WHERE ANCESTOR IS :1 "
                                "ORDER BY date DESC ",
                                blogslist_key(blogslist_name))
ඉහත sql එකෙන් කරන්නේ Blogroll කියන ටේබල් එකේ තියන සියලු RSS ලින්ක් ගන්න එක
        for blogroll in blogrolls:
   if 1 < 2 :
    try:
     fileCount = 0     
     d = feedparser.parse(blogroll.brss)
     #print blogroll.brss     
     n = d.feed.title.encode('utf-8')          
     for entry in d['entries']:     
      #print entry.title.encode('utf-8')      
      guestbook_name = self.request.get('guestbook_name')
      greeting = Blogpost(parent=guestbook_key(guestbook_name))            
      greeting.ptitle = unicode(entry.title.encode('utf-8'), 'utf-8')
      greeting.burl = unicode(d.feed.link.encode('utf-8'), 'utf-8')      
      e = d.entries[fileCount]
      pu = unicode(e.link.encode('utf-8'), 'utf-8')
      #printme( pu )
      print "test"
      #print pu
      greeting.purl = unicode(e.link.encode('utf-8'), 'utf-8')
      #greeting.pdate = unicode(e.updated_parsed.encode('utf-8'), 'utf-8')      
      p = re.compile(r'<.*?>')
      bcon = unicode(entry.description.encode('utf-8'), 'utf-8')
      greeting.bcontent =  p.sub('', bcon)
      #greeting.bcontent = unicode(entry.description.encode('utf-8'), 'utf-8')
      greeting.btitle = unicode(n, 'utf-8')      
      postdatetime = e.updated_parsed
      #print postdatetime;      
      posted_datetime = datetime.datetime(
           entry['updated_parsed'][0],
           entry['updated_parsed'][1],
           entry['updated_parsed'][2],
           entry['updated_parsed'][3],
           entry['updated_parsed'][4],
           entry['updated_parsed'][5],
           entry['updated_parsed'][6],)
      greeting.pdate = posted_datetime     
      
      print "1"
      
      guestbook_name=self.request.get('guestbook_name')
      q = db.GqlQuery("SELECT * FROM Blogpost WHERE purl = :1", pu)
      #q = Blogpost.all()
      #q.filter("purl =", pu)      
      #q.order("-pdate")      
      results = q.fetch(1)
      if results:     
       for p in results:
        print "%s inches tall" % (p.purl)
      else:
       print "empty"
       greeting.put();
       print pu
       
       
                    
      fileCount += 1
      print "

2"
      
    except Exception: 
      pass
           
     
     
     
ඊට පස්සේ තියෙන්නේ ඔය උඩින් බ්ලොග් අඩවියක RSS කියවලා, 
අලුත් ලිපි තියනවා නම් එවා Blogpost කියන ටේබල් එකට දාගන්න විදිහ.
 මේ මමකරපු විදිහ. තව ලේසි ක්‍රම පහසු ක්‍රම තියෙන්න පුලුවන්. 
එහෙම තියනවා නම් මාවත් දැනුවත් කරන්න ඇ     
     

application = webapp.WSGIApplication([
  ('/cronblogpost', MainPage)
  
], debug=True)


def main():
  run_wsgi_app(application)


if __name__ == '__main__':
  main()     
     


5.synditest.py මෙයා තමයි හොයන් ආපු ලිපි වෙන්වන කෙනා
from google.appengine.ext import db
from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app

"""Name - wapnisyndi """
"""Developer - WAP NISHANTHA SRI LANKA """
"""DATE -  2011-06-05  """



import os
from google.appengine.ext.webapp import template

ලිපි තියන ටේබල් එක
class Blogpost(db.Model):
  """Models an individual Guestbook entry with an author, content, and date.""" 
  burl = db.StringProperty(multiline=True)
  ptitle = db.TextProperty()
  btitle = db.TextProperty()
  purl = db.TextProperty()
  bcontent = db.TextProperty()
  bpatas = db.StringProperty(multiline=True)
  brss = db.StringProperty(multiline=True)  
  bstatus = db.StringProperty(multiline=True)
  pdate = db.DateTimeProperty()



def guestbook_key(guestbook_name=None):
  """Constructs a datastore key for a Guestbook entity with guestbook_name."""
  return db.Key.from_path('Guestbook', guestbook_name or 'default_guestbook')


class MainPage(webapp.RequestHandler):
   def get(self):
     guestbook_name=self.request.get('guestbook_name')
  
  q = db.GqlQuery("SELECT * FROM Blogpost ORDER BY pdate DESC LIMIT 100") 
දිනෙන් පිළිවෙල කරලා ලිපි සීයක් ගැනිම     
  
  template_values = {
            'greetings': q            
        }
  
  path = os.path.join(os.path.dirname(__file__), 'index.html')
  self.response.out.write(template.render(path, template_values))
  මෙතන කරලා තියෙන්නේ වෙනම තියන HTML ෆයිල් එකකට ඩේටා යවන්න එක. 
  
   
     
     

application = webapp.WSGIApplication([
  ('/', MainPage)
  
], debug=True)


def main():
  run_wsgi_app(application)


if __name__ == '__main__':
  main()     
     


6. index.html මේක තියෙන්නේ ඉහත පහේ තියන එකට සපෝට් විදිහට තියන ටෙම්ප්ලෙට් එකක් විදිහට
<html>
  <head>
  <title>wapnisyndi</title>
  <style>
</style>
  </head>
  <body>
  
  {% for greeting in greetings %}
  
  {% if greeting.burl %}
  <a href="{{ greeting.purl }}" class="">{{ greeting.ptitle }}</a> &nbsp;&nbsp;|&nbsp;&nbsp; <a href="{{ greeting.burl }}" class="">{{ greeting.btitle }}</a> | {{ greeting.pdate }}
  {% else %}
  An anonymous person wrote:
  {% endif %}
  <div class="">{{ greeting.bcontent }} &nbsp; ... &nbsp;&nbsp;<a href="{{ greeting.purl }}" class="">වැඩිදුර &gt;&gt;</a></div>
  <hr />
  <div>
  {% endfor %}
  </div>
    </body>
  </html>


7. not_found.py - මේ අනවශ්‍ය url එකක් ගැහැව්වොත් එන ෆයිල් එක
"""Name - wapnisyndi """
"""Developer - WAP NISHANTHA SRI LANKA """
"""DATE -  2011-06-05  """
print "not found"


8.feedparser.py මේක තුන් වන පාර්ෂවිය ලයිබ්ර්රි එකක් මෙතනින් ගන්න ඒක

හරි ඔච්චර තමයි. මේක තව ටිකක් වැඩි දියුණු කරගන්න. සම්පූර්ණ කෝඩ් එක මෙතනින් භාගන්න. ‍මේ කෝඩ් එක භාවිතයෙන් හදපු සින්ඩියක් මෙන්න

ඉහත කෝඩ් වලම සිංහලෙන් ලිව්වේ පැහැදිලි වෙන්න. නමුත් සම්පූර්ණ කෝඩ් එක භාගත්තාම  එහෙම පැහැදිලි කිරිම් නැහැ. ඔබත් ඔබටම කියා සින්ඩියක් හදාගන්න.


ටෙක්නිකල් දේවල් එපා නම් මේ පහත ලිපි බලන්න

1. ත්‍රිපිඨකය තුල සිංහලෙන් , ඉංග්‍රීසියෙන් සහ පාලියෙන් සෙවීම් සිදුකල හැකි පරිගණක මෘදුකාංගයක්
2. තරු මෙච්චර ආතල් ද????
3. නුඹ රහසින් ඇවිත්......
4. සිංහල බ්ලොග් වලට පුංචි තල්ලුවක්...මං කියවන බ්ලොග්...
5. ඔබ දන්නවද ලංකාවේ තියන කෝච්චි මොනවද කියලා
6. ආදරබර Network එක හෙවත් ගල් කොරියේ ලවු එක .


Wednesday, May 18, 2011

පිරිත සිංහලට හැරවීම මට හිතෙන හැටියට

මම උපතින් බෞද්ධයෙක් වෙමි. මා උත්සාහ දරන්නේ බුදු දහමට අනුව ජීවත් වීමටයි. එහෙයින් බුදු දහමට නිගරු කොට තෘප්තියක් ලැබිමට මට ‍කිසිම උවමනාවක් නැත. වසර 2600 ක් ගෙවී යන සම්බුද්ධ ජයන්තියේදි මේ සටහන තැබීමට මා සිතා සිටියේ මෙයට බොහෝ කලකට පෙරය. ඒ දවස අද උදා විය. ‍වැඩි දුර කතා කිරිමට පෙර මූලික හැඳින්විමක් මෙසේ ඉදිරිපත් කරමි.

නෙත් FM පටන් ගත් මුල් සමයයි. සියලු ජනමධ්‍ය වලින් බුදුදහම හා සම්බන්දිත වැඩසටහන් හා බොදු ගීත ඈත් වෙමින් තිබු යුගයයි. වෙනසක ඇරඹුම සටහන් කරමින් රේඩියෝ කලාව තුල නැවතත් පිරිත් ගාථා හා බුදු දහම හා සම්බන්දිත වැඩසටහන් වලට ඉඩක් නෙත් FM තුලින් ලැබුණි. මට මතක විදිහට වසර 2007 හෝ 2008 දි පමණ සෑම උදෑසනකම එම ගුවන් විදුලි නාලිකව හරහා පිරිත් විකාශණය කරයි. එය සිංහලයට හරවාද ප්‍රචාරය කලේය. [තවමත් එය විකාශනය වනවා දැයි මා නොදනි].  එකල බෝඩිං ජිවිතයක් ගත කල මාගේ එක් පුරුද්දක් වූයේ අනිවර්යයෙන්ම මෙම සිංහලෙන් යන පිරිත් දේශනාවට කන් දිමයි. එහි ඇති කනට මිහිරි බව නිසාම එය ඇසුවෙමි. නමුත් කල් යත්ම මට එය එපා විය. ඉන්පසු ‍එම ‍සිංහල පිරිත් මා ඇසුවේ නැත.

පිරිත් සිංහලට හැරවීම පිළිබඳ මට ප්‍රශ්න කිහිපයක් ඇත
1. ඇයි මේක සිංහලට හරවන්නේ?
2. ඇයි මේ පරිවර්තනය වර්තමානය කාලය තුල කරන්නේ?
3. ඇයි පූරාණයේ පාලි භාෂාවෙන් ඇති බැරෑරුම් දේශන සඳහා හෙළ අටුවා පමණක් සකසා, පූර්ණ පරිවර්තනයක් නොකලේ?
4. එකල ප්‍රධාන භාෂා මධ්‍ය සිංහල ලෙසත්, ප්‍රසිද්ධීයේ රහතුන් වහන්සේ සිටියත් එකල මෙම පරිවර්ථනය සිදු නොවුනේ ඇයි?
5. බෞද්ධයෙක් විදිහට ත්‍රිපිටකයේ සටහන් වි ඇත්තේ බුදුරදුන්ගේ දේශන ලෙස විස්වාශ කරන මා, දැන් සිදු කරන සිංහලට පරිවර්තන පිරිත් දේශණා වල නිරවද්‍ය තාවය තහවුරු කරගන්නේ කෙසේද?
6. කිසියම් දිනක සිංහල පරිවර්තනය සම්මතයක් වූ කල, එහි යම් හෙයකින් බුදු රජාණන් වහන්සේගේ දේශනයක් වැරදියට අර්ථ කථනය වි ඇත්නම් එහි වගකීම ගන්නේ කවුද?
7. සිංහලයෙන් පහදා දීම හා පරිවර්තනය කීරිම කාරනා දෙකක් නොවන්නේද?


පාලියෙන් අසනා පිරිත් දේශනා  වල තේරුම මම නොදනිමි. එහෙත් එය අසා සිටිම කැමැත්තෙමි. නමුත් සිංහල පරිවර්තනය ගැන මට දැන් නම් කිසිඳු පැහැදිමක් නැත. සමහර විට මෙය මට අවේණික වූ ගැටලුවක් වන්නට ඇත. එ‍ය එසේ නම් කිසිම ගැටලුවක් නැත. එහෙත් අනාගතයේදී සිංහලෙන් ලියූ පිරිත් දේශනා සම්මතයක් වුව හොත් එහි අනතුරක් ඇති බව 2600 වෙනි සම්බුද්ධ ජයන්තිය සමරන අද මෙසේ සටහන් කර තබමි.


මේ ලිපිත් කියවා බලන්න
1. මුස්ලිම් පල්ලියක බිම හිඳගෙන කුරාණය කියවීමි | A Story of the Submitted
2. කණ්ඩින ජාතකය | සම්බුද්ධ ජයන්තිය වෙනුවෙනි
3. ශ‍්‍රී සම්බුද්ධත්වය දැක තවමත් දොහොත් මුදුන් තබා සාදු කාර දී හමාර කළා පමණි !!!
4. යෙහෝවාගේ සාක්ෂිකරුවෝ වෙනුවට බුදු රජානන්ගේ සාක්ෂිකරුවෝ / Buddha's Witnesses instead of Jehova's Witnesses


වැප්

Thursday, April 28, 2011

අන්තිම ලියුම ලිව්වා

මේ කතා සිද්ධිය ගොඩ නැගෙන්නේ එකදාස් නමසිය බර ගනං වල සිද්ධීයක් විදිහට, සපුගස් කන්ද කණිෂ්ඨය හෙවත් වර්තමාන සෝභිත විද්‍යාලයේ පහ වසරේ ඉගෙනුම ලබන බුද්ධීමත් ළමයෙක් වටා. මේ අති බිහිසුනු සිද්ධිය හෙවත් අවසන් ලියමන ලියන්න කියලා බල කරන්නේ එම වසරේ උගන්වපු පාසල් ගූරුතුමිය විසින් බව තමයි ආරංචිය.  පහවසර කඩ ඉම් විභාගය හෙවත් ශීෂ්‍යත්වයට අදලා පැවරුමක් විදිහට පාසල් ගුරුතුමිය කියනවා පන්තියේ ළමයින්ට ලියමනක් ලියාගෙන එන්න කියලා. කාටද ලියුම ලියන්න කියෙන්නේ...... ඔව් ඔව් හොඳම යාලුවාට තමයි. ඒ පුංචි දරුවා මෙන්න මෙහෙම ලියමන ලියනවා.


හිතවත් අමිල,

නිවන් සැප ලැබේවා!
ඔබගේ සැපදුක් කෙසේද? මම නම් සුපුරුදු සුවෙන් සිටිමි. ගොඩ කාලයකින් ලියුමක් එවීමට නොහැකි වූ නිසා මෙම ලිපිය ලියමි. 

අද ඉස්කෝලේ ගියා. පාසල් ගෙදර වැඩ බොහෝ ඇති බැවින් මම නවතිමි.

මීට
විශ්වාස
බුද්ධීමත් ළමයා


ඉතින් මේ අති බිහිසුනු ලියුම බුද්ධිමත් ළමයාගේ දෙමව්පියෝ දකිනවා. දැකලා මේ ගැන විස්තර කරලා දෙනවා. ඒත් මං මේ තාමත් කල්පනා කරන්නේ නිවන් සැප මේ අත්මේ ගන්න බැරිද කියලා. ඊට පස්සේ නම් ඒ  ළමයා එකම ලියුමක් වත් ලිව්වේ නැහැලු


‍මරයියා විසින් බ්ලොග් කලාව නැංගීවිමට ආරම්භකල බ්ලොග් ලිපි 50 හේ තවත් එක් අවස්ථාවකී.

මේ තියෙන්නේ ලිපි ටික

1.මාරයා-http://ctkumara.blogspot.com/2011/04/blog-post_28.html
2. රංග-http://r4ng4.blogspot.com/2011/04/blog-post_28.html
3.සුදු හංසි-http://kaveej.blogspot.com/2011/04/blog-post_1513.html
4. නලියා-http://dayariya.dcreation.info/?p=1133
5.සඳරු-http://hisahasa.blogspot.com/2011/04/blog-post_28.html
6.ඉෂාර-http://blog-ishara.blogspot.com/2011/04/facebook-blog-reader.html
7.සඳුනි-http://sdsithuvili.blogspot.com/2011/04/06.html
8.ශානිකා- http://sulagawageawidin.blogspot.com/2011/04/blog-post_27.html
9.අනුරාධ- http://ananthayata.blogspot.com/2011/04/ii.html
10.තනෝජා අක්කා-http://thanojar.blogspot.com/2011/04/blog-post_28.html
11.ඉෂාරගේ 2වෙනි ලිපිය-http://blog-ishara.blogspot.com/2011/04/find-owner-of-facebook-photo.html
12.ලසිත- http://panaakuru.blogspot.com/2011/04/blog-post.html
13.නිශ්- http://dilhannish.blogspot.com/2011/04/blog-post_28.html
14.ලහිරු- http://lahirucc.wordpress.com/2011/04/28/%e0%b6%9a%e0%b7%8f%e0%b6%bd%e0%b7%99%e0%b6%9a%e0%b7%92%e0%b6%b1%e0%b7%8a/
15.ලහිරුගේ දෙවැන්න-http://lahirucc.wordpress.com/2011/04/28/%E0%B6%AD%E0%B7%80%E0%B6%AD%E0%B7%8A-%E0%B7%80%E0%B6%BB%E0%B6%9A%E0%B7%8A-%E0%B6%86%E0%B6%AF%E0%B6%BB%E0%B6%BA-%E0%B6%85%E0%B7%84%E0%B7%92%E0%B6%B8%E0%B7%92%E0%B7%80/
16.සඳුනිගේ දෙවැන්න-http://sdsithuvili.blogspot.com/2011/04/blog-post_28.html
16.ප්‍රියන්ත- http://priyantha-ab.blogspot.com/2011/04/blog-post_28.html
17.ඩිලාන්-http://sonodilan.blogspot.com/2011/04/blog-post_28.html
18.නිශාචරයා- http://stepsonfreeway.blogspot.com/2011/04/turning-point.html
19.කුශාන්-http://sithangi.blogspot.com/2011/04/blog-post.html
20.මාලන්-http://wenasak.blogspot.com/2011/04/blog-post_28.html
21.වත්සලා-.http://sodurusitha.blogspot.com/2011/04/feel-love.html
22.වැප්-http://wapnishantha.blogspot.com/2011/04/blog-post_28.html

23.රොබින්- http://robinin.blogspot.com/2011/04/blog-post_28.html

වැප්

Saturday, April 23, 2011

ගූගල් වල වෙබ් සයිට් හොස්ට් කිරිම

මම සාමාන්‍යයෙන් මේ බ්ලොග් අඩවියේ ටෙක්නිකල් දේවල් ලියන්නේ නැහැ. ඒත් මේක නොලියත් බැහැ. ඒ හින්දා ඔන්න පියවරෙන් පියවර ලියන්න හදන්නේ නොමිලේ ගුගල් වල හොස්ටිං කරන හැටි. ගුගල් වල නොමිලේ හොස්ටිං කරන්න පුලුවන් කියලා දැන ගත්තේ දින 2009-11-13  ටත් කලින් ඒ කියන්නේ දැනට අවුරුද්දකටත් වැඩියි. මේ ක්‍රමය අහම්බෙන් දැන ගත්තේ ගූගල් වේව් හරහා. සමහර අයට මතක ඇති http://lankanrella.appspot.com/ ලින්ක් එක. [ කිහිප දෙනෙක්ම කමෙන්ට්  දැම්ම  බින්කු මලිත් සදීප]. ඊට පස්සේ මට ඕක එහෙම්ම අමතක වෙලා ගියා. ඊට පස්සේ මතක් උනේ පහන් ලා හත්මාලුව ගුගල් එකට අරන් යනවා කිව්වට පස්සේ. මුලින්ම අර මුල්ම ඇප්ලිකේසන් එකට කමෙන්ට් කරපු අයටයි, ඊලඟට නැවත මතක් කරලා දුන්නු පහන්ටයි ස්තුති වන්ත වෙලාම මේ වැඩේ පැහැදිලි කරගෙන යන්නම්.

මේකේදි අපිට පුලුවන්
1. අපේ ඩොමෙයින් නාමයක් අරගෙන වැඩේ කරන්න හරි  උදා - http://inetlanka.com  http://wapnishantha.lk
2. appspot එකේ සබ් ඩොමෙයින් එකක් විදිහට කරන්න හරි. උදා - http://lankanrella.appspot.com/

මෙතනදි තව දෙයක් කියන්න තියනවා. ඒ තමයි .lk හා .com/net යනාදිය කරන්නේ දෙවිදිහකට. මොකද .lk වලින් අපිට DNS මාරු කරනවා වගේ වැඩ වලට වෙනම ඇඩ්මින් පැනල් එකක් දෙන්නේ නැහැ. ඒ හින්දා ඔබට තියෙන්නේ .lk නමක් නම් ඔවුන්ට කියන්න ghs.google.com කියන නෙම් සර්වර් එකට මැප් කරන්න කියලා. ඔබට තියෙන්නේ .com /.net යනාදි එකක් නම් ඔබටම පුලුවන් මේ Name Servers මාරු කරගන්න. ඔනේ නම් පුලුවන් සබ්ඩොමෙයින් එකක් උනත් ගුගල් වල හොස්ට් කරන්න [ උදා http://test.wapa.inetlanka.com/ ]

සබ් ඩොමෙයින් එකක් ගුගුල් වලට මැප් කිරිම
‍1.cPanel එකට ලොග් වෙන්න
2. Simple DNS Zone Editor වලට යන්න
3. ඔබගේ ඩොමෙයින් නාමය තෝරා,Add a CNAME Record වලට පිවිස රූපයේ ආකරයට Name [test] ලෙසත් CNAME [ghs.google.com] ලෙසත් යොදන්න
4.ඉන් පසු සේව් කරන්න
පැය කිහිපයකට පසු එය ගුගල් වලට මැප් වනු ඇත.

ගුගල් ඇප් එකක් සෑදිම‍
මේ සඳහා ජාවා හා පයිතන් යන භාෂා දෙක යොදගැනේ. මා අත්දැකිම් ලැබුවේ ජාවා සමග බැවින් ඒ පැත්තෙන් පමණක් කතා කරමි.
1.ඔබගේ ජිමෙයිල් ගිණුමට අතුලු වන්න
2. https://appengine.google.com වෙත පිවිසෙන්න
3. එහි ඇති create application වෙත ගොස් කැමති නමක් දි [wapnishantha.] සබ් ඩොමෙයිනයක් වෙන් කරගන්න [ http://wapnishantha.appspot.com/ ]

පළමු ඇප්ලිකේෂනය සෑදිම
ඉහත කී පරිද මේ සඳහා යොදා ගැනෙන්නේ ජාවා භාෂාවයි. මෙහිදි වෙබ් සයිට් එක ගොඩ නැගීම හා එය ගුගුල් වලට උඩුගත කීරිම යන දෙකම සිදුවන‍්නේ eclipse.හරහාය. එම නිසා එය මුලිනම් භාගත කරගත යුතුව ඇත. ඉන්පසු ගුගල් හා eclipse අතර සම්බන්දය ඇති කරන ප්ලගින් එක දමා ගත යුතුව ඇත. ඒ සඳහා http://code.google.com/appengine/docs/java/tools/eclipse.html හී Installing the Google Plugin for Eclipse කොටස උදව්වට ගන්න.

http://code.google.com/appengine/docs/java/gettingstarted/creating.html දක්වා ඇති පරිද ඔබ ලෙහෙසියෙනම් මුල්ම උදාහරණ කොටස කරගත හැක. මෙතන මා එය සිංහලයට නගනවාට වඩා එතනිනම් ගොස් බැලිම වඩා වටිනු ඇතැයි සිතමි. [කිසියම් ගැටලුවක් තිබුනොත් අහන්න]

ඇප් එක ගුගල්ට උඩුගත කීරිම
eclipse හරහාම මෙය සිදුව නිසා මෙම http://code.google.com/appengine/docs/java/gettingstarted/uploading.html පිටුව සහායට ගෙන එය උඩුගත කරගන්න. මේ අවස්තාවට පැමිණි පසු http://lankanrella.appspot.com/ අකාරයේ සබ්ඩොමෙයිනයකට ඔබගේ කෝඩිං අතුලත්ව ඇත.

අපේ ඩොමෙයින් නාමයක් හා ගුගල් ඇප් එක එකතු කිරිම
මේ සඳහා සහායක පිටුව http://code.google.com/appengine/docs/domain.html වෙයි. අපේ ඩොමෙයින් නාමයක් යොදාගන්නේ නම් ඒ නමින් වෙනම ගිනුමක් අවශ්‍ය වෙයි. ඒ සඳහා https://www.google.com/a/cpanel/domain/new ට පිවිසෙන්න. දැනට අපි සතුව අපගේ සාමන්‍ය ජිමෙයිල් ගිනුම හා ගුගල් ඇප් සඳහා වෙනම ගිනුවක් වශයෙන් ගිනුම් දෙකක් ඇත.

සියලුම ගුගල් ගිණුම් වලින් ඉවත් වි පහත පියවර අනුගමනය කරන්න

1. සමාන්‍ය ගුගල් ගිනුමට ලොග් වන්න
2.https://appengine.google.com/ පිවිස ඔබගේ අදලා ගුගල් ඇප්ලිකේෂනය තෝරාගන්න
3. එහි ලින්ක් එක https://appengine.google.com/dashboard?&app_id=ඔබගේ අප්ලේකේෂන් අයිඩි වනු ඇත
4.Administration ලෙස දක්වා ඇති වම් පස තිරූවේ Application Settings වලට පිවිස http://code.google.com/appengine/docs/domain.html පිරිද ඔබගේ ඩොමෙයින් නාම ඇතුලත් කරන්න. ඒ සමගම ඔබට ගුගල් ඇප්ගිනුමට මාරු‍වීමට සිදුවනු ඇත.[ එම පියවර 4 වන පියවර කරන විට ඉබේම සිදුවෙයි ]

දැන් ඔබේ ඩොමෙයින් නාමයට, සෑදූ ගුගල් ඇප් එක එකතූ වී ඇති නිසා හා කලින් විස්තර කල පරිදි එය ගුගල් හොස්ටිං වලට මැප් කර ඇති බැවින්. අපේම කියා වෙබ්සයිට් එකක් ගුගල් වල හොස්ට් වි ඇත.ඉහත උදාහරණය විවිද ඩොමෙයින් නාම සඳහා අත්හදා බැලුවෙමි.  පහත උදාහරණ බලන්න

http://wapnishantha.appspot.com/ ->http://www.wapnishantha.lk/ හෝ http://wapnishantha.lk/
http://lankanrella.appspot.com/ ->http://test.wapa.inetlanka.com/

මට හැකි පරිදි ඉහතින් විස්තර කලෙමි. සමහර විට මෙය පැහැදිලි නැති විමටත් පුලුවන. ප්‍රශ්න ඇතොත් අහන්න.කරලාම බලලා අත්දැකිමක් ගන්න. ගොඩාක් විස්තර තියනවා ඇඩිමින් පැනල් එකේ

වැප්

හික්කඩුව Sailors' Bay - Hikkaduwa - කොරෝනා

   කොවිඩ් ඇවිත් අවුරුද්දකටත් වැඩියි. ට්‍රිප් නොගිහින් අවුරුදු දෙකකටත් වැඩියි. ඔක්කොමත් හරි බ්ලොග් ඒකට පෝසට් ඒකක් අන්තිමට දාලා තියෙන්නේ 2019....