Another Blog

Mostly about computers, generally Linux-related

Thoughts on Smileys

AddThis Social Bookmark Button

Not seeing the other person face to face implies harder communication. In order to shorten otherwise long descriptions of our feelings, we have created a standardised, cold, near-useless (in real situations) feature called the smiley (various forms included). Things went downhill from here and social networks are, to my knowledge and opinion, the the all-time high of automatised interaction between two humans.

A picture is worth a thousand words, but the same picture three times over is worth a lot less, especially when you see it over and over again from various persons. I use smileys myself (who doesn’t?), but everyone should be aware that one cannot express things such as irony with a smiley, no matter how well animated, brightly coloured, or whatever more they think of.

The remembering and repeated use of intricate character combinations is something many people take pride in, but why not use that brain power to something better? The plain, classic smileys justify their use in otherwise serious, technical material as a means of relaxing the tone, as they in fact do in day-to-day conversation (try talking to a friend without using a smiley), but where will the madness end? Can you honestly tell me you laughed so long that your finger was stuck on the `)’ key?

So, my message is (although this doesn’t suit me, I’ll probably go back to writing about my tiny linux adventures): let’s try to write more coherent and gramatically correct text instead of polluting every other word with some smiley. There’s a time and place for everything, but smileys are too inflexible to be considered a means of communication.

September 3, 2007 Posted by | abstract | 4 Comments

User-Mode Linux — my choice for virtualization


AddThis Social Bookmark Button
I decided to finally learn how to properly use a virtualization method which is not VM Ware. I looked into Xen, User-mode Linux, and OpenVZ.

OpenVZ failed from the start, in that it had a single kernel for both host and guest. Because I intend to fool around (?) with the kernel, that was inadequate — I want to use a virtual environment exactly because I don’t want to screw up my whole setup when I experiment with kernel configuration and patches. Still, I am sure OpenVZ is not without its merits, it just didn’t serve my purpose.

Xen seemed an adequate choice, but required a whole empty-tree re-emerge. I started on it, but things (including kdm) stopped working after I emerged expat-2. The so name had changed, so I spent half a day recompiling various packages and using elinks to work my way through the instructions on the Gentoo forums. After this (which in fact had nothing to do with Xen), I proceeded to compile a kernel for Dom0. This proved so darn difficult for me (strange defaults), that I temporarily put Xen on hold until after I learn some more about the kernel. However, I must admit that Xen appealed to me the most, both in the way it handles guests and in that it can use Intel’s VT.

Of all these, User-mode Linux was the first I tried, and the one I am sticking with for now. It only runs linux and can’t use the Intel Virtualization Thingy, hence it is far inferior to Xen, but it also serves a different purpose. So I am sticking with dual-booting Vista for games momentarily.

After a few plain stupid mistakes, I got UML to work, started three machines and proceeded to build a bridge between the tap devices on my host. Much to my surprise, while experimenting with automating bridge creation, I noticed that networking between the three virtual instances (IPs 192.168.0.[1-3]) works without creating a bridge. It’s somewhat of a mystery to me why this happens, but then again I am short of clueless about networking.

Now I have three virtual linux instances (started on demand, of course) running the same kernel, with possibilities to expand to any number of such machines, study networking on them, change kernel configurations, perhaps even try a virtual cluster. Memory usage never jumped higher than 250 MiB, with Firefox, Thunderbird, Pidgin, KTorrent, and the three UML instances running at the same time. Of course, the latter were idle, but I am overall very satisfied with performance. It’s not like I’ll stress test my virtual environments — I will only play with them occasionally.

September 2, 2007 Posted by | linux, virtualization | 3 Comments

Oh, the irony…

A new high has been reached in Vista idiocy. After a 4 minute phone call which *I* will pay for (800 number won’t work), I finally re-activated my copy. I had upgraded the BIOS, which made Vista all jumpy about my switching processors (which I didn’t).

But the real reason I am posting is that out of the sudden, I don’t remember when, Explorer stopped allowing me to select multiple files. This persisted until today, when I finally got fed up. Microshaft has a solution [1], but (hold on) /it doesn’t work/!! Honestly, imagine my utter frustration. I even used two exclamation marks at the end of the previous sentence. Apparently (quoting from [1]), “This problem occurs because certain applications add a key to the registry. The key prevents you from selecting multiple items in Windows Explorer.” Way to go — notice no mention that these programs are in any way malicious (and I am sure they are not); thus, Microsoft screwed up again, and in such a dumb way they did.

A little more surfing around took me to [2], which has a link to [3]. A Visual Basic script (ugh) that automatically deletes the register keys. Probably the best use I have ever seen for Visual Basic.

Overall, the problem is probably not hard to fix, but it does make me wonder how anyone could screw up so bad. This post somewhat contradicts my policy not to blindly bash Microsoft, but I think I actually had a reason this time. I’ll give you this, though, the graphical interface is slick, but not distracting (I found Beryl terribly unproductive).

[1] http://support.microsoft.com/kb/934548/en-us
[2] http://forums.techarena.in/showthread.php?t=801647
[3] http://mysite.verizon.net/res18hr7/FixSingleSelect.zip

August 20, 2007 Posted by | vista | Leave a comment

Yes, it can get even more retarded

So I bought a new computer, installed Vista (legally) on in, and, after a few days of playing games, I decided to go back to Gentoo. Install went fine mostly, but then I got to the real creamy part about dual-booting Linux and Windows Vista.

Much to my surprise, and yours I am sure, M$ found yet another way of being retarded about OS design. Vista installs its bootloader *on a separate partition*, without letting you know. So, when I configured grub to boot vista off the partition I had installed it to, it was a no-go. A little googling around sorted the problem, but still… this makes you wonder, what’ll they think of next? And what’s more: is this on purpose or is someone really stupid enough to forget to specifically notify people of the change? I bet it’s the former.

Don’t get me wrong, I usually set up a separate /boot parition, but Windows Vista used the other NTFS partition, which I had created for storage. I am now seriously thinking of switching the vista bootloader to the partition on which the OS is installed, to be rid of this irregularity.

July 6, 2007 Posted by | linux, vista | 4 Comments

First functional variant of libspreadconv

I took advantage of the upcoming exam in Data Structures (I didn’t study for this one) to get some work done on my part of cspay. Libspreadconv is the part that converts a data structure (which I have defined) into an ods spreadsheet. The current implementation is incomplete (even the final version will be incomplete, but this is a subset of the subset) and probably extremely buggy — I can’t read valgrind output, but it does say that a lot of bytes have been lost and this can’t be good. I’m starting to have second thoughts about the way I’ve implemented certain things, so I should probably change them while the library is still not used by anyone. I also want to learn a bit of valgrind and clean up things. Bottom line: the current version is sloppy, slow, buggy and incomplete, but it was quite amazing to run the output through a validator, see it turned out ok, then to actually witness OpenOffice.org display what I intended.

A large part of the code I wrote is actually comments, but I like the way Doxygen spat them out. Right now, however, I have a (repeating myself) small, sloppy library with few routines and clumsy comments. But it’s a start. I think.

I’ve also been playing a game these days — the Romanian equivalent of TribalWars[1]. Sure it’s silly and time-consuming, but right now I _have_ time. When things change (or the game gets harder), I’ll probably quit, like I did with Utopia and the Blue Gecko games.

[1] http://www.triburile.ro/43827.html

June 20, 2007 Posted by | cspay, games, rosedu | | Leave a comment

Common Lisp

Instead of studying for exams and the like (of which I seem to have quite a lot), I found Practical Common Lisp [1] and decided to read at least part of it. This is similar to having read part of Advanced Python Programming last year before the exams. This apparent lack of concentration is actually a shift in focus to a language with a whole new discipline and approach. C still remains the language with which I have most in common, but functional programming is worth knowing, therefore I am planning a Lisp, Scheme and Haskell frenzy this summer.

I am also interested (but alas lack the time) in User Mode Linux. This will hopefully give me the opportunity to practice compiling the kernel, modifying it, and also “playing network” with multiple computers, complete with firewalls, NAT and the works.

[1] http://www.gigamonkeys.com/book/

May 29, 2007 Posted by | functional programming, linux | Leave a comment

A busy week

I actually wrote my first lines of code for cspay these days, but they were mere headers for the library I am writing. I started reading parts of the standard and making a rough sketch of what will have to be included in an ods file; the standard is huge, but hopefully things can be simplified to a bare minimum, stock proto-spreadsheet. I am having difficulties deciding what to take for granted and what to expect from the user. libspreadconv has to strike a balance between being easy to use and widely applicable; so, while we have to be able to customise styles, they shouldn’t have to be specified if one wants a plain sheet. I will probably ask my friends for help on the mailing list.

In a totally different direction, I took part in some student things which I can’t really translate in English. One for Physics, about the quantity of information transmitted by measurements (again, translation may have ruined the meaning), and in Mathematics, about the coding of information by neuronal spike trains. The latter was slightly more interesting, but we only had to do a translation — and the professor practically forced it down our throats, but all in all both events were useful and failry exciting (intellectually, mind you).

I also helped RobyC with a very interesting piece of homework: compressing a bmp file into jpeg. Most of the program was already done, including the headers and file input and output, all we had to do was encode the information. This proved difficult because of not having read the homework specification thoroughly enough. We spent hours debugging, with hex editors and all, only to have someone suggest a detail which we had left out. Infinitely stressing, especially since I had an exam the following day, but also very interesting; you kind of get that warm feeling of accomplishment when you see it’s actually a stadards-compliant jpeg file.

Busy as I was, I got into some serious Armagetron Advanced with the boys these days, causing me to see coloured walls in my sleep and to miss this mornings Data Structures course, which I heard was surprisingly interesting. Heading home tomorrow, with that guilty feeling of leaving Roxi behind and skipping two days of school, but also happy I’ll finally get to see my family (6 weeks is apparently quite a lot by my standards). I’ll have a lot of work to do for Numerical Methods and other projects when I return, but I have to get it over with somehow.

Damn anal wordpress added extra line breaks and my text (pasted from vim) looked like shite.

May 19, 2007 Posted by | cspay, games, programming, rosedu, school | | Leave a comment

Subversion troubles

Because cspay planning is advancing steadily (or so it seems to me), Razvan installed Subversion. It proved to be quite tricky though. It’s probably a security measure, but a “plain” Subversion repository (in that just a plain svn create was run) cannot handle multiple users. So we spent about two days experimenting with it, until Razvan finally set the right permissions for the folder (his time is even more limited than ours, obviously). I wrote a quick post-commit email notify bash script (wow, suprisingly, I could do that); all that remains right now is to actually start coding; I should write the base for libspreadconv, the bottom library which creates an OpenOffice XML spreadsheet from a generic structure (which should be decided upon). There is a lot of reading to be done, and quite little time, with late mid-terms and all.

Exciting, yes. Tiresome, you bet.

May 10, 2007 Posted by | cspay, rosedu | | Leave a comment

Further planning

We now have a name for the previously-unnamed-project — cspay. I prefer not to capitalize it, although some of my friends write it as CSpay or CSPay. The meeting today was fruitful and quite fun, with delightfully opposing opinions between the C guys (me, Razvan and Luci) and PHP folks (Alex and Mihai). Roxi and Andrei (andrew, whatever…) took a strategically quiet position, probably snickering at our endless quarrels. However, had we agreed on things from the start, it would surely have been a wrong design; hence the long discussion about the inner workings of our project were beneficial, or so I like to believe.

I got the task of designing a structure that represents a spreadsheet, and then writing the lowest of the libraries, converting that structure to an XML file. Not a particularly challenging task, algorithmically speaking, but interesting nevertheless. After the aforementioned hour-long discussion, we settled that the PHP scripts would also read the master cinfiguration file. Thus, we will write code that does the same thing twice: in PHP and in C. I’m not quite happy about that, but the alternative was getting really complicated; not complex, but complicated. And that I want to stay away from.

Once the name had been decided, Mihai wrote a simple and suprisingly functional IMO sketch, and Razvan quickly provided the space for it and a development wiki. Things are getting going, with most of the initial setup in place, save for a RCS. But we haven’t written any code yet (and will not do so at least for another week probably), so that is a non-issue.

We found an ini parser for C, there is a link for one in PHP on the wiki, so we are looking towards simple ini file for the configuration. We also found xmlindent, which is unmaintained (apparently died at 0.2.17 a couple of years ago), but functional and useful; we are thinking of adopting or perhaps forking the project as a side-task, maybe on the long run.

Things are exciting, and I hope they will stay that way — I am close to the usual “screw it all” phase of any project I start working on, but hopefully everyone will motivate each other.

April 25, 2007 Posted by | cspay, rosedu | | 1 Comment

Starting the Yet-to-Be-Named Project

I got rejected for Google Summer of Code, but that was to be expected. As easy as Plan 9 is and as much as I loved working with it at the beginning, such matters ar too serious to be covered within a week. Perhaps next year I will be better prepared in a field; I would of course like to try my hand at it again.

But Razvan (my Operating System Usage teacher in the first semmester) came up with a proposal to write a system that generates spreadsheets for hourly paid course assistants in our faculty. I naturally agreed and a team was quickly formed. We met today for the first time. While the project itself doesn’t sound like much, we decided to do it properly. We are using Razvan’s server for the entire development process (I got a new IMAP email address courtesy of him), including mailing lists, RCS (to be decided), web page, wiki and testing.

Everyone is very excited and we’ve already outlined a brief design: a C library for reading a configuration file and actually outputting the spreadsheets, a (probably PHP, which I’m not happy about) web interface, a minimal, console based program, which will be called by the web interface, and classic, offline programs for both Windows and Linux. We are considering GTK or wxWidgets. The latter looks better, but I’m reluctant to use C++ and it has no C bindings. The spreadsheets will be XML-based, using ODF and Open Office XML, but we’re planning to keep the config file simple (no XML, as parsing it would probably be harder than generating the documents).

For the moment, we still need to find a name, although a mailing list is in place. A wiki and versioning system will follow. I’ve chosen to read up on creating dynamic libraried and to think of the configuration and console program format. Razvan also suggested using a lexer, which is an entirely new concept to me (actually it was until a couple of hours ago).

Amazing how much a little planning can save; we probably would have switched ideas a lot of times and still wouldn’t have come up with a design close to this one. Still, as good as it seems, it will probably be subject to change once coding gets off the ground.

April 17, 2007 Posted by | cspay, programming, rosedu, school | | 2 Comments