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

எல்லா மென்பொருளிலுமே ஒரு “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 செய்து, “தமிழில் நிரல் எழுது” என்ற புத்தகம் படி ஒவ்வொரு நிரல் எழுதி, இயக்கி பயிலுங்கள்.


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

கடைசி கட்டம் – நிரல் உரைதல்

வெளியீடு செய்யும் முன் ஒரு மென்பொருளில் சில வழிமுறைகளை பின்பற்றுவது பொறியியல் நடைமுறை.

  1. தனி பரிசோதனை (unit tests)
  2. கூட்டு பரிசோதனை (integration tests)
  3. இயங்குதளம் நிறுவல் பரிசோதனை (operation system installation tests)
  4. பயனர் இடைமுகம் பரிசோதனை (user interface testing)

இவை எல்லாவற்றையும் செய்தால் ஒரு நல்ல மென்பொருளை தரமாக உருவாக்கலாம் என்பது கணினியியலில் நடைமுறை புரிதல்.

பரிசோதனைகளில் ஏதேனும் ஒருசில பிழைகள் கண்டறிந்தால் அல்லது சில வழுக்களை கண்டறிந்தால் அவற்றை தீர்வு செய்தபின் தாமதாமாக வெளியீடு செய்வதும் நடைமுறை பழக்கம்.

கடைசி கட்டம் என்பது மென்பொருள் வெளியீட்டில் (code freeze) என்ற கட்டத்தை கடந்த பின்பே ஒரு தைரியத்துடன் மென்பொருளை வெளியிடலாம். இதற்க்கு பல குழுக்கள், பொறியாளர்கள் சேர்ந்து உழைக்கவேண்டும். இப்படி குழுக்கள் கிடைக்காத திட்டங்கள் தொடர்-வெளியீடு (agile/நளினமுறை) என்ற படியாக நிரல்களை வெளியீடுக்கு தயார் செய்துகொள்வது சகஜம்.

மென்பொருளில் பிழை/வழு இல்லாத மென்பொருள் என்பதே இல்லை. இதில் உள்ள பொறியியல் சிக்கல் (complexity) கையாள்வதற்கு ஒரு மனிதர் தேவை – இதனை முழுதுமே செயற்கை நுண்ணறிவால் (A.I.) தானியங்கி படுத்தமுடியுமா என்பது காலத்தால் மட்டுமே சொல்லக்கூடிய கேள்வி.

மேலும் மென்பொருள் வெளியீட்டில் உள்ள கடைசி கட்ட, மென்பொருள் உரைதல் என்ற பொறியியல் நிலையை பற்றி அடுத்த அத்தியாயத்தில் பார்க்கலாம்.

-முத்து

 

அகர முதல எழுத்தெல்லாம் …

கணினியியல் (computer science/computing)  என்பது கணிதத்தின் ஒரு சிறு பகுதி. சிந்தனை களத்தை தாண்டியே மொழி அமைய வேண்டும் என்பதானால் மொழியாக்கம் என்பது இரு தீவுகளுக்கும் இடையே ஓடும் ஒரு பாலம்.

இப்படி கணினியியலில் ஒரு தரமான ஆங்கில புத்தகம் “Rubykin” (ரூபி தோழமை, என்று மொழியாக்கம் செய்யலாம் ). இதனை தமிழ் தண்ணார்வாலர்களுடன் எழில் மொழி அறக்கட்டளையின் சார்பாக மொழிபெயர்த்து வருகிறோம்.

சாதாரணமாகவே இந்த “lost in translation” எனப்படும் சிக்கல் உள்ள வேலை – இதில் நுட்பங்களும், கணினியியல் என்பதும், உள்ளதால் சிறிது தாமதம் ஆனது. முதலில் RubyKin எழுதியவர்களிடம் உரிமைகளை Creative Commons பொதுவெளியில் வெளியிட கேட்டோம். திரு. டக் வ்ரைட் (Doug Wright) அவர்கள் புத்தகமும், படங்களையும் சேர்த்து பொதுவெளியில் கொடுத்தார்.

இன்று கிட்டத்தட்ட ஐம்பது சதவிகிதம் கூடுதலாக (> 50%) இந்த காரியம் நிறைவேறியது. மேலும் இந்த வேகத்தில் சென்றால் 2017 ஆண்டு முடிவுக்குள் இந்த புத்தகத்தை மொழிபெயர்க்கலாம்  என்று தோன்றுகிறது.

பங்களித்தவர்கள் அனைவருக்கும், RubyKin எழுத்தியவருக்கும் நன்றி.

Project ‘padai’ – scripts to launch Tamil server instances

Over the years of my open-source development I have moved towards using more cloud computers for various reasons of convenience. However getting a cloud computer from one of the major providers like AWS, Azure etc. requires a lot of setup time to bring it to a usable state for Tamil software development.

Primarily for Tamil software development on Windows 10 (or later) is slightly more easier, compared to Linux/Unix machines, because basic Unicode font and rendering support works out of the box. However in Linux cloud-machines X-windows, Window manager, and desktop support is not common – let alone Tamil support!

So everytime to setup a cloud instance I had to spend a few hours tracking down the packages, installing the dependencies, running host of shell commands to ensure its all lined up to see Tamil text rendered correctly on the remote-screen. This would typically take away time I spend building binary packages for project Ezhil.

Knowing vaguely you can make this system administration and server conf tasks simplified using shell-scripts or tools like Fabric, I researched them earlier; then I asked in our Tamil software community from my Twitter account what could be the solution:

tweet_June1_2017

I got recommendations to use Ansible and build a Docker image for the server of interest from Shrinivasan (aside: Congratulations to Shrinivasan named as 2016 Tamil Computing award winner for his work on Tamil and Indian-language projects at WikiMedia foundation and Wikipedia!)

Now I figured my familiarity in bringing up machines using Python or shell-scripting could be useful in getting me off the ground right away – while I could find ways to get expertise on Docker or Ansible to help me out. So I put together all the scripts I used for bringing up Fedora/24 and Ubuntu/16 machines for Ezhil development.

The result is ‘Padai’ project –  currently two nice scripts to get you from basic IaaS server to a working Tamil script rendering computer for Ezhil development in 10-minutes for both Fedora and Ubuntu. Check it out here.

Looking forward for your support and sending us your pull-requests.

-Muthu

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

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, 'ஆ')]

மே 21 – எழில் மொழி பரிசோதனை வெளியீடு

வணக்கம்,
1. எழில் மொழி பரிசோதனை வெளியீடு மே மாதம் 21-ஆம் நாள்  வெளியீடு செய்யப்பட்டது; இந்த முறை சென்ற மாதம் செய்த மேம்பாடுகள் அனைத்தும் ஒருங்கிணைந்து Windows 64-bit தளத்தில் இயங்கும் வகை செய்யப்பட்டது.
   கிடைக்கும் மேம்பாடுகள் :
   (அ) license உரிமம் தெரியும் வகை செய்யப்பட்டது.
   (ஆ) அமைப்புகள் (settings) சேமிக்கும் வகை வசதிகள்
   (இ) சென்ற பரிசோதனை வெளியீதில் பிழை திருத்தங்கள் 
   (ஈ) எழில் இயக்கியில் பிழை செய்திகள் தமிழாக்கம் செய்தல் 
2. இதனை  http://ezhillang.org/download.html இங்கு பெற்று நீங்கள் ஒரு சிறுவர் சிறுமிக்கோ அல்லது ஒரு பள்ளிக்கூடத்தில் எழில் மொழியை பற்றி பேசலாம், அல்லது உங்கள் சுய பயன்பாட்டிற்கும் நீங்கள் பெறலாம்.
3. பிழைகள் இருந்தால் மறுமொழி கூறவும்.
நன்றி,
-முத்து