Ads by Google

Friday, May 9, 2008

Aligning Text in Emacs Buffers

Surprisingly, I found this a bit hard to do. As an example, I wanted to align

4000 1 2
11 1 44
1 0000 999
as
4000 1 2
11 1 44
1 0000 999

After checking the documentation, I found that align.el is the built-in library that could be used. Trying it as M-x align on the marked text didn't work nor did the regexp option with [[:space:]]. Then I checked the emacswiki for alignment but didn't find an example there that worked with numbers.

Edited the wiki and posted the question and it was quickly answered. From the look of it, it appears that other methods are slightly easier than the solution provided. Especially table-insert function which can be quite easy to create and edit.

Thursday, May 8, 2008

Open Office 3.0 beta is out

Just saw this on the LWN site and this is pretty timely. If the thunder can be stolen from the OOXML ratification by the ISO and the ODF standard made more popular,it should make a dent somewhere.

The complete feature list is available on the Openoffice website and the only irritating thing is the line New, Fresh-looking Icons. I'd rather a stable, feature rich editor than "fresh" fancy icons on the screens. We've got that from one vendor whose product upgrades are more like new coats of paint hiding the rot within.

Why take that route at all?

To be honest, though I have Openoffice installed, I've fired it up around 10 times to read versions of Microsoft Office files that I receive rarely. Which is about all since I use LaTeX for typing out documents. Other family members don't notice the difference between the office suites that much, so it helps there.

I suppose these days, it's hard to get excited about Office suites when the majority have Microsoft Office suite as the default desktop tool. Pity, it could save them a whole bunch when they use just a fraction of the feature list.

Wednesday, May 7, 2008

A few thoughts on the Sun MySQL backtracking

OK, now that all parts of MySQL is going to be free, there are a couple of things which still stand out.

If you want to do a tiered service of free, Incident support contract, service contract, and variations there of, just don't do it immediately after an Open Source buy. This seems pretty obvious....in hindsight.

And when you backtrack, you need to generate the same level of notoriety/publicity that caused you to backtrack, so that people know you came to your senses. This is even more difficult in this Internet drive-by visit,10 sec attention span.

This was an Open Source buy, which means proprietary products selling tactics need to be done differently. If the selling had been along the lines of ; upto 4 CPUs no charge, anything higher, support will cost you, it would be a big deal with respect to OTHER Database vendors.

One, the vast majority of LAMP servers are on low end stuff and individuals tinkering with it, so no one will probably complain on the pricing front.

Second, you raise the bar for the other database vendors by cutting out their low end revenue segment (Oracle editions are free on single CPU machines and for personal use). Forced to compete with MySQL on multiprocessor boxes, you drive the database costs lower, cannibalizing prices in the process.

Three, if you benchmark it on your hardware and make it come out on top,(it's your product after all), you make a good TCO case with zero software acquisition cost for the customer but backed by your company support on YOUR hardware. You use the software to drive the hardware sales.

Heck, if Sun's multicore is as good as they claim, benchmarking on lower Mhz chips with more cores should show some results to crow about?

Let's see how this pans out.

Tuesday, May 6, 2008

Blue Screen of.....never mind

A little macabre thought over this article. Would you want that in your car?

:)

Sunday, May 4, 2008

Printing address labels using LaTeX

One of the best things about CTAN is that it has all the software for your everyday needs. For the last couple of weeks, I'd been sending out some large number of snail mails to a lot of organisations. And my handwriting is pretty much crap; even I can't decipher it after a few days. The return address looked like I had an epileptic seizure when writing it. And the solution was to print out my return address on labels. I could spent half an hour, doing it on my own (which would have been crappy too) but why reinvent the wheel? I was pretty confident that it had been done before.

Since I had MikTeX installed, I fired up the package manager and soon enough, located the labels package. Installing through the package manager was a breeze. And the documentation is excellent. Here's what you need to type to print a A4 sheet of your own address labels.

\documentclass[a4paper,12pt]{article}
\usepackage[newdimens]{labels}
\LabelCols=3 %3 columns of labels
\LabelRows=7 % 7 rows of labels
\numberoflabels=21 % number of repeated labels

\begin{document}
\boxedaddresslabel[\fboxsep=3pt]
{\textbf{From:\\ Sivaram} \\Line1\\Line2 \\Bangalore \\Karnataka}

\boxedaddresslabel[\fboxsep=3pt]
{\textbf{From:\\ John Doe} \\Line1\\Line2,\\ Bangalore \\Karnataka}

\end{document}

%%% Local Variables:
%%% mode: latex
%%% TeX-master: t
%%% End:

Save and run PDFLaTeX on the file and you should get a 2 page PDF that has 21 address labels on each.

Locate a paper cutter and chop the paper and you have your address labels ready. That's it. It took me half an hour to do this. Which is the same time to do it on my own, :-) but at least this is definitely much better than the trial and error method of trying out fonts with different sizes and boldness.

Friday, May 2, 2008

Shell backticks deprecated!

I didn't know that till I saw this post on comp.unix.shell. For someone who still works on old Solaris boxes that is a shocker. In the nicest possible way.

But if you look at the thread, it appears that it is applicable only to the bash shell and more modern variants. For a minute, I thought it was something which was always there for older shells and only I didn't know about it.

At least, now that I know about it, I can safely use the new idiom with the Linux boxes that I get my hands on. But almost all my work environment is with customer's UNIX boxes which come with the default bourne shell which I cannot change.

So, while good to know, I think I shall have little use for it in my work environment

Thursday, May 1, 2008

Trying out various blogger bits

The more I use blogger, the more i want to make my blog similar to the gazillion blogs out there on the Internet. :-)

So, the first thing I did was a bit of vanity stroking by hooking up with sitemeter.

Then I saw Clustrmaps and I wanted that. So installed that too.

Soon, my blog is going to be exactly identical to everyone else's.

That's a comforting thought, isn't it?

Tuesday, April 29, 2008

How to start a massive flamewar!

When you make a blog posting like this. Armageddon time. :-)

Sunday, April 27, 2008

Binding Keys in Emacs

In Emacs, the keys can be rebound to call any function one desires.One of the many uses of rebinding is to call frequent functions that are operated on the buffer one is working on. And the key bindings can be local or global depending upon whether the functionality makes sense across all buffers or only to the type of buffers worked on (text, tex etc.)

Here for example is what I have mapped for TeX mode. I have outline-mode enabled by default for LaTeX files.
(add-hook 'LaTeX-mode-hook
(function (lambda ()
(setq fill-column 68)
(auto-fill-mode t)
(flyspell-mode 1)
(TeX-PDF-mode 1) ;;turn on PDF mode.
(outline-minor-mode t)
(ruler-mode t)
(local-set-key "\C-cf" 'beamer-template-frame)
(setq ispell-extra-args '("--mode=tex"))
(paren-toggle-matching-quoted-paren 1)
(paren-toggle-matching-paired-delimiter 1))))
Now, this puts an outline-mode menu on the menu-bar whose keybindings
are atrocious! :-)

Now in outline-mode, the most frequently used functions are

Show All
Show Entry
Hide Body
Hide Entry

at least by me.

Now, I'd like to map the keys as follows

Hide Body F7

Show All S-F7 shift F7
Hide Entry F8

Show Entry S-F8 shift F8

Next, open a LaTeX file and enable outline-mode, if it has not been done so. Then, M-x local-set-key RET f7 hide-body. Test it by hitting F7. If it works, then do C-x ESC ESC, you should see the following form in the minibuffer. Copy it to the scratch buffer. Repeat the above M-x local-set-key with S-F7 to bind it to show-all and copy the form to the scratch buffer.

You should have something like this in your scratch buffer.
(local-set-key (quote [f7]) (quote hide-body))
(local-set-key (quote [S-f7]) (quote show-all))
Repeat the above actions for hide-entry and show-entry to use F8. Of course you can bind it to any other key than the suggested F7 & F8 function keys. If you're happy with it, you could add it to the LaTeX-mode-hook function after the outline-mode is enabled.

Note that the idea of C-x ESC ESC ( repeat-complex-command) to get the key bindings is got from here. As the post suggests, it's far easier to let Emacs generate the correct key binding forms instead of doing it by hand.

And it might be a good idea to associate some logic to the key bindings. I use the key and shift key to toggle between two opposite actions. At least that sounds logical to me.