Monthly Archives: February 2012

ஈமேக்ஸ் உரைதிருத்தி – ஓர் அறிமுகம்

ஈமேக்ஸ் (emacs) – இதை என்னவென்று அறிமுகம் செய்வது? வெறும் உரைதிருத்தி (text editor) என்று கூறிவிட முடியாது; அதையும் தாண்டிப் பலவற்றைச் செய்யவல்லது. கிட்டத்தட்ட ஓர் இயங்குதளத்திற்கு இணையான மென்பொருள். ஆம், எழுத்துக் கோப்புகள் (text documents) தொடங்கி, JPEG, PNG போன்ற படக்கோப்புகள், PDF ஆவணங்கள் எனப் பல வகையான கோப்புகளைக் கையாள வல்லது.

கோப்புகளைப் பார்ப்பதும் திருத்துவதும் வெறும் சிறு பகுதிதான். இதைக்கொண்டு மின்னஞ்சல் அனுப்பலாம், கிட் (git) போன்ற திருத்தக் கட்டுப்பாட்டு மென்பொருட்களைக் (revision control systems) கையாளலாம், முனையத்தைப் (terminal) பயன்படுத்தலாம். மேலும் நாள்காட்டி, கணிப்பான்(calculator), விளையாட்டுகள் எனப் பல வசதிகளை உள்ளடக்கியது. அதனைக் கிட்டத்தட்ட ஓர் இயங்குதளத்திற்கு இணையாதென நான் கூறியதன் காரணம் இப்போது புரியும் என்று நினைக்கிறேன் 🙂

இதற்கு இன்னொரு சிறப்பம்சமும் உண்டு. கட்டற்ற மென்பொருள் கோட்பாட்டின் தந்தையென அழைக்கப்படும் ரிச்சர்ட் ஸ்டால்மன் அவர்களால் உருவாக்கப்பட்டு, GPL உரிமத்துடன் (இதுவும் அவர் வடிவமைத்ததே) வெளியடப்பட்ட முதல் மென்பொருள் ஈமேக்ஸ்.

இத்தகைய சிறப்பான ஒரு மென்பொருளைக் கற்றுக்கொள்ள இன்னும் ஏன் தாமதிக்க வேண்டும்? வாருங்கள் ஈமேக்ஸ் உலகத்திற்குள் புகுவோம்.

நிறுவுதல்

பல குனு/லினக்ஸ் இயங்குதளங்களில் தொகுபதிவகத்திலேயே (repository) ஈமேக்ஸ் கிடைக்கும். அந்தந்த இயங்குதளத்தின் பொதி மேலாண்மை மென்பொருள் வாயிலாகவே நிறுவிக்கொள்ள முடியும். உபுண்டு இயங்குதளத்தில் நிறுவ, முனையத்தில் கீழ்க்காணும் கட்டளையை இடவும்:

sudo apt-get install emacs23

ஈமேக்ஸ் கட்டளைகள்

ஈமேக்ஸ் கட்டளைகளைப் பார்க்கும் முன்பு, இரு குறியீடுகளை அறிந்து கொள்வது பயனுள்ளதாய் இருக்கும்.

குறியீடு பொருள்
C-x Ctrl விசையுடன் சேர்த்து x விசையை அழுத்தவும்
M-x Meta (Alt) விசையுடன் சேர்த்து x விசையை அழுத்தவும்

கோப்பைத் திறத்தல்

Cx அழுத்தி Cf அழுத்தியதும் நிலைகாட்டி (cursor) சாளரத்தின் கீழ்ப்பகுதியில் வந்து நிற்கும். அங்கே திறக்கவேண்டிய கோப்பிற்கான பெயரை இடவும்.

Screenshot of opening a file in emacs

Screenshot of opening a file in emacs

கோப்பை சேமித்தல்

கோப்பில் மாற்றங்கள் செய்தபின் அதனை சேமிக்க, Cx Cs (C-x அழுத்தியபின் C-s அழுத்தவும்).

கோப்பை மூடுதல்

சேமித்த கோப்பை மூட Cx k (Cx அழுத்தியபின் k அழுத்தவும்) Enter

ஈமேக்ஸை விட்டு வெளியேற Cx Cc

உரை திருத்துதல்

உரையின் ஒரு பகுதியை select செய்ய, எப்போதும் போல Shift-ஐ அழுத்திக்கொண்டு அம்புக்குறிகளைப் (arrow keys) பயன்படுத்தலாம். அல்லது, அப்பகுதியின் தொடக்கத்தில் நிலைகாட்டியை வைத்து C-<space> அழுத்திவிட்டு, பின்னர் அம்புக்குறிகளைக் கொண்டு தேர்வு செய்யலாம்.

தேர்வு செய்த பகுதியை நகலெடுக்க Mw

தேர்வு செய்த பகுதியை அழிக்க Cw. மற்ற உரைதிருத்திகளில் இருப்பது போல் அல்லாமல், வெட்டுவதும் அழிப்பதும் (cut & delete) ஈமேக்ஸைப் பொறுத்தவரையில் ஒன்றே. அதாவது delete செய்யப்படும் எந்த ஓர் உரையும் clipboard-ல் இருக்கும். எனினும், Backspace அல்லது Delete விசைகளைக் கொண்டு ஒவ்வோர் எழுத்தாக அழிக்கப்படும் உரை க்ளிப்போர்டிற்குச் செல்லாது.

ஏற்கனவே வெட்டப்பட்ட அல்லது நகலெடுக்கப்பட்ட உரையை paste செய்ய Cy (y = yank)

உலாவுதல் (navigation)

பொதுவாகப் பயன்படுத்தப்படும் அம்புக்குறிகள், Home, Endஆகிய விசைகள் அல்லாமல் ஈமேக்ஸிற்கென்றே உரித்தான சில விசைகள் உள்ளன. அவற்றுள் சில:

ஓரெழுத்துப் பின்னால் செல்ல C-b

ஓரெழுத்து முன்னால் செல்ல C-f

முந்தைய வரிக்குச் செல்ல C-p

அடுத்த வரிக்குச் செல்ல C-n

வரியின் தொடக்கத்திற்குச் செல்ல C-a

வரியின் இறுதிக்குச் செல்ல C-e

இவை முதலில் சற்றுக் கடினமாகத் தோன்றினாலும், பழகிக்கொண்டால் விரைவாகத் தட்டச்சு செய்ய முடியும் (விசைப்பலகையில் அம்புக்குறிகள் இருக்கும் ஓரமாகக் கையை நகர்த்த வேண்டியதில்லை).

குறிப்பு: இதுபோன்ற கணினி தொடர்பான தமிழ்க் கட்டுரைகளுக்கு கணியம் மின்னிதழ் (e-magazine) ஒரு நல்ல ஊடகம்.

Why join a startup?

This started as a comment to a job posting that I posted in Facebook. This is simply a gist of differences between startup and corporate culture, that made me choose a startup (from a choice of 1 startup and 1 corporate) and that I realized in my 9 months experience at the startup. This post is mainly targeted at college students who have heard from their senior friends and relatives only about corporate world and not having much idea about how different startup culture is. That said, this may seem trivial to some people.

Here goes the significant differences, not in any particular order. I wouldn’t categorize them as pluses and minuses. Those who find more pluses than minuses (not just in count, but in overall effect) are potential candidates for a startup 😉

  • No one gives you work to do. You take up responsibilities.
  • There will be no one to teach/train you. You learn by mistakes and so your learning will be much stronger.
  • You get to learn a lot of new technologies. And those are open technologies that will be useful to you even if you leave the company.
  • You are free to experiment things, as the company itself is experimenting its business ideas.
  • From no other place you can learn business better, if you are interested.
  • The office may not be multi-storeyed and fancy, but there is nothing like the fun you can have (not just the fun of coding, contact me offline to know more :P).
  • There will be no fixed working hours. Not even the “If you finish the work you can leave” stuff. You work for your satisfaction. If you prefer usual 9AM-5Pm working hours, corporate world suits you better.
  • You can take up responsibilities of any higher level (that would otherwise take years in a corporate to reach that position), if you are really interested. (For example, I’ve interviewed people).
  • As the team is much smaller (mostly single digit), your efforts can never go unnoticed.
  • Your thoughts and ideas are so significant. And decision making will be truly democratic.
  • You may not get periodical salary hikes and goodies in initial years. But once established, the growth can be exponential.

In short a start-up is for those who want to achieve great heights by following their passion, definitely not for those who want a stable regular life.

If you feel I’ve missed some points, feel free to comment below. It will be helpful to at least me 🙂

Auto-compile LESS file to CSS in emacs

LESS CSS is a great way of writing CSS code, thanks to its set of extended features that are not at all possible with CSS. Nested rules, variables, color functions, etc make it very handy. As the final output seen by the browser is plain CSS, there is no need for any third-party library or whatever.

Being an emacs user (and a fan) for a while, I’ve been looking for a way to compile LESS files to CSS, as and when they are saved. It would be even better if I could bind it to a keyboard shortcut, say F9. (This is not something big, just that I didn’t do it so far.)

My directory structure is like this:
LESS files in /some/path/less/
CSS files in /some/path/css/

So compiling a LESS file, say /some/path/less/style.less should output to /some/path/css/style.css

Here is the code that you have to add to .emacs

;; Function to compile current buffer (if it's a LESS file) to CSS
(defun compile-less-css ()
  "Compile LESS to CSS"
  (interactive)
  (if (string-match ".less$" (buffer-file-name))
    (async-shell-command (concat "lessc -x " (buffer-file-name) " "
      (file-name-directory (directory-file-name (file-name-directory buffer-file-name)))
      "css/" (file-name-sans-extension (file-name-nondirectory buffer-file-name)) ".css") nil nil))
  (delete-other-windows))

;; HotKey  to compile LESS to CSS
(global-set-key '[f9] 'compile-less-css)

;; To compile whenever the file is saved, uncomment the following line:
;(add-hook 'after-save-hook 'compile-less-css)

After saving the file, load the file so that the changes take effect. To load the file,
Mx load-file.

Enter .emacs in the prompt. Done! Now open a LESS file in emacs and press F9.

Happy hacking 🙂