📜 ⬆️ ⬇️

Roads that change us

“Je ne comprendre pas,” he said plaintively. “I don't understand. Have
is there no view? Or I do not understand in Russian?
“No, it's all right, Charles,” said Yurkovski. “She looks,
of course have. Only different, understand? When she is on the ceiling,
she is like a ceiling. When on the couch - like a sofa ...
“And when on Gregoire, she’s like Gregoire,” Mollard said.
all joking.
A. and B. Strugatsky " Path to Amalthea "

I began my programming career at the age of ten. Perhaps earlier, just do not remember. I remember only how I “helped” my father to program the ancient Sparks, on a piece of paper, calculating the addresses of conditional and unconditional jumps in the machine code and enthusiastically driving brass rings into textolite tablets. Each ring carried information exactly one bit.

Then, somehow, eight-bit computers appeared. All the magazines that I read with ecstasy, at that time, from Radio to the application of “For Skillful Hands” UT-A (perhaps, with the exception of the “Young Naturalist”), printed more and more new schemes for personal computers! Unfortunately, I have always dealt with a soldering iron much worse than my father. My hands were not at all skillful.

There were no problems with the details; the drawers of the table were crammed with them. One day, when I just hinted that I wanted to make an oscilloscope, as a course project for the CPC, my father silently went to the storeroom and brought out the cathode ray tube. I still do not understand where he got it from and why he needed it. The fact is that with all this home abundance, radio components were a terrible deficit (as much at that time). Sometimes, at night, it was necessary to make forays to the radio dumping station known throughout the city in order to unearth (literally) something interesting.
')
In general, I never assembled my computer. Of course, this does not mean that I did not have access to computers! My friend (by the way, unlike me, he stamped the Spectrum and AON- s on the Z80 like cakes) was chic at that time, Vector 06C (C - meant color!), And I myself, for the weekend and on parole gave the legendary BC -shku! Moreover, with the monitor. I put all this burden on my hump through the whole area (yes, the times were not calm), and by Monday I returned it back.


I started with BASIC and FOCAL . However, contrary to Dijkstra’s famous statement, I don’t think it spoiled me much. Perhaps because before them, all the same, were the machine codes of Sparks? I do not know. I read Wirth and Lipsky and translated the algorithms into Basic. In BASIC of those years, it was monstrously difficult to express recursion (mainly because instead of local arguments of functions I had to use global arrays), but I achieved this.

When (on that Vector) I wrote my version of the " Hubert curve " in BASIC, my friend did not believe that this would work. According to him, there were much more entries in the subroutines than exits! Of course, he was wrong. The point is not in quantity. Eight queens were already worried about me. The vector for too long did not show signs of life! However, after a couple of minutes, he issued the first position. Afterwards, I was often amazed. That awful and absolutely incomprehensible (to me incomprehensible!) Code that I wrote, contrary to all expectations, always worked exactly as I had planned (well, perhaps, after a couple of corrections of stupid typos).

We tormented that Vector for a long time. When the games bothered me, they wrote in BASIC (a view of the tesseract from the inside, perhaps, changed my worldview forever). Or tried to understand the Fort (yes, he was there too!). Once, we even broke it. We just could not get past the possibility of setting the base of the number system to zero! At times, additional items to the cassettes contained amazing things. That's when I first saw "Chinese Chess"! Of course, the rules had to be calculated “by touch”, since all explanations for the game were also in Chinese.

My games with computers did not affect the choice of a future profession. I was going to be a chemist! Everything changed after a significant trip to Moscow, during which, my parents succumbed to my persuasion and purchased the MK-61 , the binder of the old numbers of "Quant" and the puzzle "Crystal". Perhaps it was my most productive trip to Moscow! On the very first day, having made all these acquisitions, I locked myself in an apartment with relatives, with my treasures. I did not react to external stimuli anymore.


I have got my personal computer! With all its EGOGGs , 160-step fads and “machine” codes. I tried to make the most of all the possibilities. Reducing the program by one byte made me ecstatic. PMK changed everything. He became the reason for which I applied to the Aviation Institute (for the 4th faculty), and not for the chemical department of Kazan State University, as I intended. PMK and the fact that I passed KAI out of competition and without entrance examinations (I was a medalist, yes).

KAI met me with the 8000th Pascal and the IVth Fortran . We were also taught Lisp and Prologue . And a lot of very different mathematics! However, probably not enough (I still do not know what a tensor is). The entire second floor of the seventh house was occupied by the EC. One car! EU-1046 ( IBM 370 all -rounder). And she was at my complete disposal! My and two dozen people who worked simultaneously in the " Virtual Machines System ". PDP-11 (from the third floor), I remember much worse.

In KAI, I contacted the “bad company” and quickly became a thunderstorm of the data center. Unlike admins, we read the system documentation with pleasure (in Russian!) And with no less pleasure applied the knowledge gained in practice. I knew how to do amazing things. He created private disk partitions, changed the passwords of virtual machines and wrote channel programs for animating pseudographics on an alphanumeric display.

Only a couple of commands from the console I could remove my virtual machine from the lists of monitored virtual machines monitored (it continued to stand out on machine time). After that, I became completely invulnerable. Such a virtual machine could not even be seen, not something to stop! In addition, I could hide files with my artworks, and hide them so that they could not be restored without knowing the name. Of course, administrators suspected something. After some of our pranks, we had to overload the real car, and this did not make them happy! Sometimes they tried to catch us, but somehow lazily and not at all inventive. I never got caught.

The means of ensuring the safety of SVM, by today's standards, may seem ridiculous. Passwords were encrypted with double-byte xor, and system privileges were set by a bit mask. Yes, this mask was in real, not virtual memory, but two (out of eight, as I recall) privileges provided access to it (in various ways). And both of them were provided to all users of the EC "by default"! It was a fun time.

Then, the first IBM PC clones appeared in the city. XT -shkah, and after them, and AT with 286th processors were in our department. By the 3rd course I was already noticed by teachers and attracted to their individual labor activity. I wrote software on Turbo Pascal and 2nd FoxBase for Compressor Plant. So began my professional activity.

Work "at the department" brought quite a bit of money. Its main advantage was that after having worked in this way for about half a year I “became familiar” and more interesting offers became available to me. One of the teachers of the computer department (I myself was from the Department of Applied Mathematics) had his own company and I was offered to work on it.

The company produced and then sold a variety of things. Mostly security oriented. Video eyes, intercoms, combination locks with IR cards (since the intercom cameras worked partly in the IR range, a funny incident happened at one of the exhibitions) and so on. Among other things, there were several "crypto devices" connected to the ISA -computer's tire. I was offered to make a presentation on one of such devices as an introductory task. I did it in one night at the pulpit. Since I was not familiar with PowerPoint in those days, I had to use the same (already Borland) Pascal. In graphics mode and with EGA video effects. Of course, I got the job.



It was a time when I became closely acquainted with Borland C ++ and x86 assembler. Subsequently, I was very lucky, because our entire team was taken under the wing of the RCI of the National Bank. An HP-UX server and the 6th Oracle were added to the set of my toys (but then we couldn’t work with it). Since I was fascinated by Turbo Vision , first of all I sat down to develop a similar library under curses . However, no. Indeed, the first thing I wrote was this:

int main(int argc,char ** argv) { for (;!fork();); return 0; } 

By the time the diploma arrived. At the university (now university!) I almost did not show up, breaking through myself, through an individual schedule. Asymmetric cryptography, transputers and robust methods in statistics. RSA and Diffie-Hellman - that's all that remains of this in memory (and even that was not useful).

Graduation and my subsequent departure into the army were marked by scandal. The RCI did not want to let me go and, especially for me, entered the position (breaking it through the leadership of the Central Bank), which provided for armor from the army (past graduate school, I flew safely, because of my innate disorder). Unfortunately, I found out about the reservation at the very moment when I was conducting separate negotiations with the military registration and enlistment office, so that I would not be expelled from Kazan (the programmer profession has its advantages). The leadership of the National Bank has promised that I will not work in banks anymore. For now, the way it is.

After serving a year, I returned to another country. It was a terrible time. Fortunately, one of my fellow students worked as the head of the ACS department at the Children's Republican Clinical Hospital. He sheltered me. Salary was not some kind of God, but the work is not very dusty. We wrote software on FoxPro (knowledge of FoxBase was useful) for the needs of the hospital. I honed my FoxPro technique to perfection! For example, I learned how to open an unlimited number of modal windows, regardless of the stupid restrictions on the number of simultaneously executed reads (was that call like that called?).

Another blow for me was the widespread accession of Windows. I wrote a lot in C ++ and assembler, including resident programs and drivers, but I did it under MS DOS , in real mode! I did not know how to approach protected mode and Windows. Once, I complained about this fact to my friend (to one of that “bad company”) and heard from him a wonderful answer: “What is the matter? Just take Delphi and write! ". So I did.

Work in one of the state. organizations allowed me to master Delphi and, most importantly, Oracle. Seventh version, then 8.0 and divine 8.1.7. I still believe that this is the best that Oracle has done. What can I say, it included the implementation of the database server in the form of an NLM module for Novell Netware ! Having mastered Oracle, Delphi and its BDE (in order to connect one with another) I was ready to go on "free bread".

The right offer was not long in coming. The first cable television company was going to appear in the city! Thanks to the new CEO (I’ll manage without the names again), it was a matter of “ointment”. Lacked a very small - billing system. They asked me if I could write a billing and I honestly answered “Yes”, because I had no idea what it was. I wrote the cable TV billing (and used it for a long time). The first subscriber (in the next house) went to connect in the winter, “on sleds”.

At this job, there were a lot of things different. Support for Internet billing (this time corporate, not samopny), the introduction of payment cards, voice notification system, digital television ... There was no main thing, the work of the "court programmer" (in my eyes) could not be compared with a runny junior in a software development company purposefully. I was again promised that I would not be able to return (this time to the units of TAIF), but did not keep their promises. I returned to TVT later, at half-time, just before acquiring it by MTS.

At the new job, I was met by Delphi (wherever without it), C ++ (this time, under Windows) and of course Oracle. To begin with, our team (me and another former employee of TVT) was taken up with the development of a RADIUS server. Then there were Netflow, SNMP and a small (but very proud and specialized) InMemory database. All this was even introduced (somewhere in the Czech Republic). I was a fan of Richter and Alexandrescu and wrote various Compile Time horrors like this .


Then (another life, another project) was .Net and XSLT for a system of mass and fully automatic generation of various payments in Word, Excel and PDF formats. This time, I was already a team leader. In the next project, I had to program tsisk with the help of JavaScript, but it was no longer important. In my group there were about 10 people from three cities and 90% of the time was occupied by organizational work.

After this one-year nightmare, I returned to self-development, finding my niche in the company (for some reason, no one except me agreed to deal with PBX systems). In the meantime, having mastered Perl, I write mostly in Java. The frontend is written on it, with the help of GWT . Slowly master Postgres. I already study JavaScript “for the soul”, for one of my small pet-projects . Recently I received an offer to try my hand at Golang , but so far I have refused. Probably, the matter is insufficient motivation.

We are what we write. Today it is java and javascript. I try to make the most of their opportunities, but I am not going to dwell on them. I do not know what I will write tomorrow. I am (almost) 45 years old and I am open to everything new.

Source: https://habr.com/ru/post/324872/


All Articles