Saturday, March 31, 2007

Beryl is going to be Coral.

Beryl was a fork of Compiz, but both converged. (Compiz plugins are running on Beryl.) This merge makes sense. I hope both teams with similar proficiencies to lead Beryl/Compiz successful. Coral is not official, yet. But, community seems to like it.

Monday, March 26, 2007

So far, So good with Xemacs

This time, I am using Xemacs for longer than the last time I tried. Especially, after exchanging Caps_Lock with Control_L. My last finger was relieved so much thanks to this. I would like to say that the machine is not properly configured for emacs if Caps_Lock insists to be 'Caps Lock' key.

For windows XP, Microsoft released a utility called 'Ctrl2Cap' for this purpose. I ran into somebody explaining regedit to do this. It was not only ugly, but also NT based. So, another googling brought me to microsoft website, which was the exactly what I was looking for.
Ctrl2cap must be installed from command line prompt. And it required reboot which xmodmap on Linux didn't require. Hey, what do I expect on Windows? I have decided not to compare Windows and Linux long time ago... If it wants to be rebooted, reboot the box.

One problem for this. I was using Windows XP from rdesktop connection. Windows by default does not allow to display 'shutdown' menu from rdesktop session. I just guessed if Windows have 'shutdown' command from the prompt. YEP, there it was. Rebooting windows from command prompt is reasonable command and it was there. I issued 'shutdown -r -f' and it rebooted without any pain. Xemacs on both of my systems.

Friday, March 23, 2007

opened an account in

Okay, you may ask 'What in the world IS PLAYTALK? ' Simple answer is another blog posting service. ( No. I am too much simplifying.. ) Another answer is that it is a community of people who connect each other by posting very short comments.

Why is that? Well.. sometimes I may not want to post full blown blog entry for many reason. But, leaving a log for this shortly can be done in this website. Input method is not only from a computer but also from a cell phone.

You may say, 'Hey, it is Korean.' Sorry, I still speak in Korean. Looked in carefully, you may find a link called 'international'. They try to be English friendly, but how good will depend on their contribution to keep it up.

Tuesday, March 20, 2007

Yet, another IDE

I have been looking and comparing Xemacs and Eclipse. Now, I am bringing up another one.
The title seems very weak, but I was very impressed by spe.

While I was playing with spe, I wondered 'what spe stands for?' So, I clicked on about menu. There it says Stani's Python Editor. Okay. I clicked on the Homepage hyper link, and I got Error and googled it and found
Interesting tool like this have wrong link brought some sympathy for short, but later I guessed if it is supported by blender, then not so bad.
I found this when I was searching for PyCrust. spe uses PyCrust integrated. The biggest advantage of spe is evaluator. The reason why I love python is, I feel very comfortable with Python. Everything looks easy with it. But, still I needed to look up pydoc many times just for function signature. My short term memory is pretty at idiotic level. :(
What spe makes me excited is, at least, I can reduce time for looking up function header. Its editor uses space over tab character for indentation. 'Copy and paste'able to Xemacs. Nice...

Monday, March 19, 2007


I ran into this project when I was googling about making Xemacs IDE environment.

Eclipse is a heavy-weight, but very feature rich framework for developers. Eclipse provides very nice view for Java developers. However, they provide C/C++ (CDT), Python (PyDev), and basically all plugins for all languages. I am sure that I can find some plugin which somebody made for some reasonable reason.

Mylar is an eclipse plugin and it gives a different perspective when watching a source code in BIG project. I lost demo presentation clip link, but it can be found very easily at mylar home. I installed eclipse 3.2 and tested Mylar quickly. Hyper link from a source code is a nice feature but, it was not available in 3.2. They said it is available in 3.3. I stopped research at this point, because I have many jobs to finish. But, definitely, this is worth learning.

Sunday, March 18, 2007


I am a vim user. I have been using Vim since the beginning of my linux life. About 2 years ago, I started to get interest on emacs, but I have never had a chance to approach to it. Partly because of busy tasks always drew me back to vim to get the job done. Partly because I am lazy... And I never stick to Emacs for more than 3 days.

Now I am trying to get Emacs once again. I installed Xemacs and got a annoying terminal bell when I made a mistake on the editor. A temptation to go back to vim.. But, I googled and set the visual bell. It is annoyingly in complicated place like:

Options -> Advanced(Customize) -> Emacs -> Environment -> Sound -> Visual Bell

And I suffered to toggle the value to non-nil. What made this application one of the best editor in opensource group? Sure, I saw too many configurable places which I have no idea. Let's try to stick to Xemacs for a while and see why it is a good editor!

Wednesday, March 14, 2007

Windows compatible OS in Open Source

I have run into an interesting project called, ReactOS. Different from wine, it provides a full OS like linux, but interestingly it is Windows compatible in binary level (binary executables and device drivers, too!! ) . This sounds like a good alternative when Microsoft stop supporting WinXP.

Friday, March 9, 2007

Beryl from svn

I decided to check out beryl from svn and compile on my own. Before I went there, I researched a little bit and found many people suffered from compiling beryl with many issues. I said 'lets see how tough it is' and changed myself in fighting-with-compile mode.

Unfortunately, big fight did not happen. I had about three issues, but that was it. I am sure if it was Gentoo, this issues must not be the big problem.

1. AM_PATH_PYTHON issue.
It was specifically ubuntu issue. Ubuntu ships automake 1.4 by default. But AM_PATH_PYTHON macro was added later than this. So, it was a simply old package problem. Well, aptitude remove and installing newer package was quite easy.

2. GL/glxtokens.h was not found.
Beryl svn check-out obviously had this file under beryl-mesa directory. But actual make line didn't have -I entry for this directory. I wondered if it was a bug, or there was a missing piece to expose this directory for the compilation session. Well, either didn't matter to me. My laziness just symlinked GL directory under /usr/local/include and life goes on...

3. Several missing library issues.
It was a matter of time to resolve these issues. Mostly I needed to fill the gap, modify makeall script to bypass packages which were successfully built, and then rerun makeall. Missing libraries actually were basically required '-dev' packages to be installed. I missed gentoo so much while fixing these problems.

Basically this was it. And I could run beryl with Wall plugin. I have found beryl added more features including bypass opacity which freed me 'XLIB_SKIP_ARGB_VISUALS' for rdesktop.

Well, now the next question is, why did I do that? When I develop my current project, my PC is soaring for resources and I turn down beryl for that. I just compiled the package I don't use often? It looks like, but this tells how much I like beryl.

Wednesday, March 7, 2007

How much do you enjoy programming?

This article introduced the book 'iWos'. The key question that he mentioned was "How often do you write a program for yourself? Do you have a project which have been maintained for more than a year? Isn't it unreasonable to expect somebody else develop code worth more than a year although you don't have one worth more than a year? "

When I looked back myself, I felt ashamed.

dynamic loading using dlopen API in C++

I just ran into this problem randomly this morning.

Think about the problem that overladed functions in C++ are in .so file and we need to load them in dynamic manner. If it is in C, it is fairly easy because we can not use the name which is already defined. One to One relationship. So, C compiler can map the symbol name as a function name in the symbol table. Nice.

Okay, in C++, simple function name will not work as a symbol name in the symbol table. One example is the overloaded functions. So, C++ compiler needs to generate other necessary information attached to the function name for symbol table. This process is called 'Name Mangling'. Unfortunately ANSI C++ does not define how to mangle names. It's all up to compiler, which means, binary level compatibility is not preserved. One SO file per system !!

Therefore, in essence, overloaded functions can not be dynamic. In addition to it, to make any C++ function dynamic, they need to be in extern "C" closure without overloading support.

Now more complicated problem occurs when we need to load a class in dynamic manner. Non-static class member function needs an instance to be in the symbol table. But, dlopen() and building an instance makes an 'chicken and egg' problem. Thinking of this problem will be my next thing for fun thought, later.