The Home Page of Serge.P

JPEG picture of Serge.P Hi. I am Serguei Patchkovskii and this seems to be my home page - or at least nobody else had claimed it to be his, her, or its home page. Probably because its not cute enough for anybody apart from me to want it. Anyways, for as long as this happy state of the affairs is going to continue it is almost certainly my own home page.

If you came here because you'd like to offer me a job (fat chance!) here is my resume. Even if you do not have a job to offer, or have moral objections against offering jobs to guys wearing white T-shirts and three-days-old stubble, you are still welcome to read it.

By following this link, which leads to the complete text of my Ph.D. thesis, you can learn as much as you'd ever like to know (and probably more) about analytical calculation of the first-order response properties in some semiempirical quantum chemical methods. As far as I can tell, this is the definitive treatise on the subject.

Occasionally, I go to chemical conferences and even present posters. Nowadays, in order to drastically reduce the amount of quality family time available to scientists, the posters are customarily prepared in various electronic formats. This makes it very easy to put them on the Web - so that not only the select academics but also Joe Random Public can appreciate what a jerk the poster's author is. Anyhow, enjoy it - if this is the kind of thing you do enjoy.

Here, you can download a molecular structure editor (including the complete source code in C and x86 assembler language) I wrote a long, long time ago. The binary will only run under MS DOS (or in a DOS box on a Windows or Linux system), and the source code will not compile with anything except for Turbo C, but it is still a very nice program - even if I say so myself. It is certainly the only program I know which can rotate a molecule of 5000 atoms drawn with nice realistically looking balls and sticks on a lowly i386/16MHz computer lacking any hardware acceleration. It also includes a user-extensible interface to other programs, and can be configured to read output files generated by almost any popular quantum-chemical application.

Another link of interest to people vaguely interested in chemical subjects is a brute force point group determination program. Unlike any other symmetry treatment packages I encountered, it can handle an arbitrary point group, provided that the group has no symmetry axes of the order higher than 8 (proper rotations) or 10 (improper rotations). It can also detect approximately symmetric structures (and assign deviations to each of the symmetry elements).

I recently started to move my old tapes to CDs, and was surprised to find that all Linux sound recording programs I was able to find occasionally drop sound frames on my home system if recording at the CD quality (16 bits/sample, stereo, 44.1kHz sampling rate) - even if running on an otherwise empty system. Given that this corresponds to the sustained data rate of just 176Kbytes/second, I found this extremely distressing: by any measure, Intel Celeron-400 in that system is at least an order of magnitude faster than R4k-100 in SGI Indigo2 I used back in '93. My home system has 3.5 times the main memory bandwidth than the Indigo2 (180Mbytes/second vs 50Mbytes/second according to Stream); it also has a faster disk - and still, the Indigo2 has no trouble at all with four CD-quality audio streams at the same time, even under heavy load.

After going through the source code of some of those utilities, I wasn't all that surprised anymore: neither one of them made use of real-time priorities. They also neglected to lock their buffers in memory; all but the best ( yarec) used synchronous file I/O in the same execution thread they used for sound acquisition. So, I set out to write a bullet-proof sound capture utility for Linux. The product of two very amusing weekends can be downloaded here. It is still not bullet proof, and will never be: under heavy write I/O load, my 2.2.12 kernel sometimes holds control for more than 200ms in a row, so that even sound acquisition to memory fails. Nonevertheless, it stands up to my everyday usage very well, not loosing samples while surfing the net, editing code, and so on - which is a great improvement. Any suggestions for further improvement of the code are welcome. After a bit of tinkering with the kernel, I realized that enabling interrupts during IDE data transfers makes sound acquisition much more robust under high I/O load. If you are feeling adventurous (doing so with certain hard drives and IDE controllers may corrupt your file system), the magic incantation is '/sbin/hdparm -u 1 /dev/hda'.

Picture Gallery In addition to all my other vices, I love photographing thing; any things - it does not matter what they are, as long as they look pretty to me. Sometimes, when I take particular care to remove the lens cap, aim the camera straight, and manage not to drop the exposed film in the nearest stream afterwards, the pictures I get back from the lab also do not look too distressing - or, at least, they do not look bad enough to require an emergency session with your shrink. Once in a blue moon, I even get the colours almost right! If you'd like to see some of those photographs, please follow this link to my picture gallery. If you find that the colours do not look quite right on your screen, don't be too surprised: I am so proud of those photographs that I keep them for myself. Having a graphics system capable of displaying at least 24-bit colours, and a display with linear colour response may also help, as none of the images in the gallery have been gamma-adjusted: it is the responsibility of the browser on your side to correct for the deficiencies of your display.

Click here for the cookie of the day. Or, if you feel bored today, this link will feed you a new cookie every three seconds. If you wish to download my complete cookies collection in the form of an executable Perl script, please press here.

This page in under construction - at the hole-in-the-ground stage, give or take.

Last updated: January 1, 2000