எழில் – டுவிட்டரில் ஒரு தானியங்கியாக

தொடக்கம்

சென்ற வாரம் எழில் மொழியை டுவிட்டர் வழி செயல்படுத்த ஒரு உத்தி ஒன்றை உருவாக்கலாம் என்று தீர்மானித்தேன். பல செயல்பாடுகள் facebook, skype, போன்றவை messenger bot என்ற தானியங்கிகள் வழி செயல்படுவது ஓர் இரண்டு ஆண்டுகளாக சமணியமாகின.  இதே போல கடந்த மாதம் கனடாவில் குறள் பாட் என்ற தானியங்கி facebook செயலி பற்றி  கேள்விப்பட்டேன்; நிரைய நாட்களாக இப்படி ஒரு எழில் இடைமுகம் கொடுக்க வேண்டும் என்று எண்ணினேன், இதற்க்கு இப்போது ஒரு காலம் வந்துவிட்டது!

வழி

ஏற்கனேவே குறள்களை புதுவள்ளூர் @puthuvalluvar என்ற முகவரியில் தானியங்கி வழி செய்திருந்தேன். இது தற்போது செயலுற்று கிடக்கிறது ஆனால் இதனை செயல்படுத்த python-twitter என்ற நிரல் தொகுப்பை பயன்படுத்தினேன்; இதனை கொண்டு @ezhillangbot என்ற புது கணக்கில் ஒரு தனியாகியை உருவாக்கினேன். இதன் மூல நிரல் இங்கு. twitter பக்கம் நீங்கள் ஒரு

பயன்பாடு

இதனை ஒரு cron-வேலையாக நிறுவிய பின்னர் அனைவரும் பயன்பாடு செய்ய இப்படி உங்கள் கணக்கில் இருந்து ஒரு எழில் நிரலை டுவீட் செய்யுங்கள்;

               @ezhillangbot அச்சிடு(“வணக்கம் உலகம்!”)

இதனை படித்துவிட்டு தானியங்கி உங்கள் பெயரை சூட்டி நிரலின் விடையை அளிக்கும்; உதாரணம்,

ezhillangbot-tweet-toezhillangbot-execution-1

இதனை நீங்களும் பரிசோதனை செய்து எனக்கு தகவல்கள் சொல்கிறீர்களா ? டுவிட்டரில் நேர்வழி சொல்லுங்கள், இல்லகாட்டி இங்கும் சொல்லுங்கள்!

நன்றி.

முத்து

எழில் உதவி ஆவணம் காட்டி மேம்பாடு

எல்லா மென்பொருளிலுமே ஒரு “Help” (உதவி) மெனு கொடுப்பது IT துறையில் உள்ள ஒரு எழுதாத சட்டம் என்றே சொல்லலாம்.

இப்போது இந்த எழில் செயலி எழுதியில் ஒரு உதவி ஆவணம் கட்டியை முன்னாடியே இணைத்திட்டோம். ஆனால் அது மனசுக்கு பிடித்தமாதிரி இல்லை.

இப்போது இந்த window (சாளரத்தில்) எனக்கு மூன்று விஷயங்கள் பிடிக்கவில்லை; இதற்க்கு படம் 1 உதவியாக இருக்கும்:

  1. புத்தகத்து தலைப்பு “0” என்று சொல்லக்கூடாது; இது நீக்கப்படவேண்டும்.
  2. அடுத்து அத்தியாயங்களின் தலைப்பு இடது பக்கம் ஆரம்பித்து  இருக்கவேண்டும்.

    ezhil_book_screen_updates

    படம் 1:   எ ழுதி உதவி ஆவணம் காட்டி

  3. அடுத்து அத்தியாயத்தின் தலைப்பை பெரிய எழுத்துக்களில் இருக்க செய்யவேண்டும்.

இவற்றை github வழு பட்டியலில் issue என்று பதிவு செய்தேன்

 

 

இதனை GTK3+ documentation கைவசம் வைத்து நிரலை மாத்தி எழுதலாம். இதற்க்கு முன்னும் பின்னும் ஒரு மணி நேரம் மேல் ஆனது.

ஒவ்வொரு முறையும் ezhil-lang/editor/DocView.py என்ற நிரலை மாற்றிய பின் python ezhuthi.py என்று இயக்கி “உதவி > புத்தகம்” என்ற மெனுவில் இருந்து சுடக்கி இதன் தோற்றத்தை சரிபார்க்கவேண்டும்.

எல்லாம் சரியானதும் இது போன்று காட்சி அளித்தது:

ezhil_book_screen_updated

படம் 2: திருத்தம் செய்த நிரலில் “உதவி > புத்தகம்” தோற்றம்

இதனை github-இல் உடனே சேர்த்துவிட்டேன். இப்போது எழில் ஆவணம் காட்டி மேம்பாடு செய்தாச்சு ! மீன்டும் பார்க்கலாம்.

-முத்து

எழில் கற்க வீடியோ பயிற்சி – learn programming videos

தமிழில் எப்படி கணினி நிரலாக்கல் கற்றுக்கொள்வது ? முதலில் எழுதி செயலியை உங்கள் Windows OS அல்லது Linux OS இல் download செய்து, “தமிழில் நிரல் எழுது” என்ற புத்தகம் படி ஒவ்வொரு நிரல் எழுதி, இயக்கி பயிலுங்கள்.


இந்த வீடியோ பட்டியல் உங்களுக்கு கைகொடுக்கும்.

அல்கோரிதம் – அடுக்குகளை தலைகீழ் படுத்துவது எப்படி ?

Move 1,2,3 disks from peg #1 to peg #2, with peg #3 as intermediate. Move disk 4 from peg #1 to peg #4. Then move all disks from peg #2 to peg #3 using peg #1 as intermediate.

இந்த வாரம் அமெரிக்காவில் “long weekend” அதாவது மூன்று-நாள் வார விடுமுறை – காரணம் மே மதம் நான்காம் திங்கள் “Memorial day” என்கிற “அமெரிக்க போர்வீரர் நினைவு தினம்”. இதனை ஒட்டி சராசரி குடும்பங்கள் நாடெங்கும் உல்லாச பயணம், சுற்றுலா என்று செல்வது அமெரிக்க பண்பாடு. இந்த ஆண்டு எங்கள் வீட்டில் விருந்தினரை வரவேற்கிறோம் – பயணம் என்பது இந்த ஆண்டு எங்கள் விருந்திரனுக்கு மட்டுமே! சரி அப்போது ஒரு புதிய தரவமைப்பு பற்றி ஒரு blog post போடுவோம் என்று எழுத ஆரம்பித்தது இங்கே.

அடுக்கு (Stack) என்பது ஒரு மிக அடிப்படை கணினி நிரலாக்க கோட்பாடு. ஒரு அடுக்கு தரவமைப்பில் செய்யக்கூடிய நடவடிக்கைகள் ஆனது : மேல் நுழை (push), மேல் நீக்கு (pop) என்பது.

ஒரு அடுக்கை இப்படி (கீழ் கண்டபடி) உருவாக்கலாம்:

எ = அடுக்கு()
மேல்_நுழை( எ, "அ" )
மேல்_நுழை( எ, "ஆ" )

இது கணினியில் ஒரு அடுக்கு போலவே உருவெடுக்கும்,

    
   --> [ ஆ ]
       [ அ ]
      --------
அடுக்கு "எ" என்பதில் இரண்டு உருப்படிகள் உள்ளது; 
இதில் "மேல்" உருப்படி "ஆ" என்ற மதிப்பாகும்.

மேலும் இந்த அடுக்கில் மற்ற உயிரெழுத்துக்களை முழுதாக சேர்க்கலாம்:

மேல்_நுழை( எ, "இ" )
மேல்_நுழை( எ, "ஈ" )
மேல்_நுழை( எ, "உ")
மேல்_நுழை( எ, "ஊ")
மேல்_நுழை( எ, "எ")
மேல்_நுழை( எ, "ஏ")
மேல்_நுழை( எ, "ஐ")
மேல்_நுழை( எ, "ஒ")
மேல்_நுழை( எ, "ஓ")
மேல்_நுழை( எ, "ஔ")

கணினியில் இதன் தோற்றம் இப்படி இருக்கும்,

   --> [ ஔ ]
       [ ஓ ]
       [ ஒ ]
       [ ஐ ]
       [ ஏ ]
       [ எ ]
       [ ஊ ]
       [ உ ]
       [ ஈ ]
       [ இ ]
       [ ஆ ]
       [ அ ]
அடுக்கு "எ" என்பதில் பன்னிரண்டு உருப்படிகள் உள்ளது; 
இதில் "மேல்" உருப்படி "ஔ" என்ற மதிப்பாகும்.

நம்ம இங்கே ஆயுத எழுத்து “ஃ” என்பதை சேர்க்கவில்லை; உங்களுக்கு வேண்டுமானால் நீங்கள் சேர்த்து கொள்ளலாம்.

அடுக்கின் வரிசை மாற்றுவது எப்படி ?

இப்போது அடுக்கு “எ” இதன் வரிசை மாற்றுவது எப்படி ? ஒரு குவிப்பில் இருந்து “மேல் எடு” என்று செய்தால் என்ன விளைவு என்று முதல் படியாக பார்க்கலாம் – இதன் விளைவு மேல் உள்ள உருப்படியை அழிக்கும்.

மேல்_எடு( எ )
# தற்போது குவிப்பு 'எ' வில் 11 உருப்படிகள் மட்டும் இருக்கும்.
# ஏற்கெனவே உள்ள மேல் உருப்படி 'ஓ' அழிக்கப்பட்டது.
# புதிய மேல் உருப்படி 'ஓ' என்று ஆனது.

இப்போது இந்த அடுக்கின் நிலை,

 -->   [ ஓ ]
       [ ஒ ]
       [ ஐ ]
       [ ஏ ]
       [ எ ]
       [ ஊ ]
       [ உ ]
       [ ஈ ]
       [ இ ]
       [ ஆ ]
       [ அ ]
அடுக்கு : எ 

இப்போது அழித்த மேல் உருப்படியை புதிய அடுக்கு ‘ஏ’ வில் மேல் நுழைத்தால் – அதையே ‘எ’ என்ற அடுக்கில் உருப்படிகள் உள்ளவரை அதில் மேல் எடுத்து, ‘ஏ’ வில் மேல் நுழைத்துக்கொண்டே இருந்தால் என்ன ஆகும் ?
இதனை நிரல் படுத்தி பார்க்கலாம்.

ஏ  = அடுக்கு()
மேல்_நுழை( ஏ, "ஔ")
@( நீளம்( எ ) > 0 ) வரை 
    மதிப்பு = மேல்_எடு( எ )
    மேல்_நுழை( ஏ, மதிப்பு )    
முடி

தற்போது அடுக்கு ‘எ’-வின் நிலை காலியானது:

 -->[ ]
அடுக்கு : எ 

ஆனால் அடுக்கு ‘ஏ’-வின் நிலையோ – வரிசை மாற்றப்பட்டது!

-->[ அ ]
   [ ஆ ]
   [ இ ]
   [ ஈ ]
   [ உ ]
   [ ஊ ]
   [ எ ]
   [ ஏ ]
   [ ஐ ]
   [ ஒ ]
   [ ஓ ]
   [ ஔ ]
அடுக்கு : ஏ 

இந்த நிரல் துண்டு Python மொழியில் இப்படி எழுதலாம்,

# (C) 2017 Ezhil Language Foundation
# This code is shared under public domain
# Ref: https://ezhillang.wordpress.com
import tamil
import pprint

class Stack:
    def __init__(self):
        self.store = list()

    def top(self):
        return self.store(-1)

    def __len__(self):
        return self.store.__len__()

    def push(self,val):
        self.store.insert(-1,val)

    def pop(self):
        val = self.store.pop()
        return val

    def display(self):
        pprint.pprint(list(zip(range(self.__len__()-1,0,-1),self.store)))
        
a = Stack()
for letter in tamil.utf8.uyir_letters:
    a.push(letter)
a.display()

rev_a = Stack()

while len(a) > 0:
    val = a.pop()
    rev_a.push(val)

print("Original stack => ")
a.display()
print("Reversed stack => ")
rev_a.display()

இதன் வெளியீடோ கீழே உள்ளபடி:

[(11, 'ஆ'),
 (10, 'இ'),
 (9, 'ஈ'),
 (8, 'உ'),
 (7, 'ஊ'),
 (6, 'எ'),
 (5, 'ஏ'),
 (4, 'ஐ'),
 (3, 'ஒ'),
 (2, 'ஓ'),
 (1, 'ஔ')]
Original stack => 
[]
Reversed stack => 
[(11, 'ஔ'),
 (10, 'ஓ'),
 (9, 'ஒ'),
 (8, 'ஐ'),
 (7, 'ஏ'),
 (6, 'எ'),
 (5, 'ஊ'),
 (4, 'உ'),
 (3, 'ஈ'),
 (2, 'இ'),
 (1, 'ஆ')]

எழில் : முதல் பக்கம் வடிவமைப்பு

முதல் பக்கம் என்றாலே கொசம் சிக்கல். பிள்ளையார் சுழி, தென்னாடுடைய சிவனுக்கும் வணக்கம் எனவும் பல வணங்குத்தல்கள் உள்ளன. ஆனால் தமிழ் மொழிக்கு சிறப்பான ஒரு சின்னத்தை கொண்டு எழில் மொழியில் முதல் பக்கம் அமைக்கப்பட்டது.

small-ezhil-splash-5

படம் 1: எழில் மொழி முதல் பக்கம் – செயலியில் தொடங்குதல்.

எழில் – தமிழ் கணினி மொழி

“தமிழில் நிரல்படுத்தி கணிமை பழகுவோம்!” என்பது புதிய கொள்கை

படம் சில மணி நேரம் முன்னேற வடிவமைக்கப்பட்டது. எந்த தமிழ் எழுத்துருக்கள் என்று சொல்லமுடியுமா உங்களால் ?

நன்றி

-முத்து

 

 

தமிழ் 99 விசை பலகை இடைமுகம் – Tamil99 keyboard interface for Ezhil

கணினியை பார்க்காத சிறுவன் எப்படி உள்ளீடு செய்வான் ? தமிழில் எழில் மொழி ஆர்வலர்கள் பாதிக்குமேல் நிரல் உள்ளீடு செய்வதற்கு தனி தமிழ் விசைப்பலகை இல்லை. இந்த பிரச்சினைகளை தீர்வு செய்ய ஏற்கனவே சில மூன்று பட்டை உள்ளீடு பட்டன்-களை கண்டோம். தற்போது முழு விசை பலகை (keyboard) இடைமுகம் ஒன்றை உருவாக்கி மேம்படுத்தி வருகிறேன்.

ezhil_March20_2017

படம் 1: Tamil 99 keyboard interface for Ezhil editor; தமிழ் 99 விசைப்பலகை இடைமுகம் எழுதியில். 

உங்களுக்கு எதுவும் கருத்துள்ள பின்னூட்டங்கள் இருந்தால் தெரிவிக்கவும்.

நன்றி.