History of one byte

History of one byte © Dmitry Galuscenko

I missed bytes. Only one. Yes Yes. The one that consists of eight bits. What? No, I'm not crazy, though God knows how thin was the boundary separating me from this condition. But all in order.

I am a programmer. But not just the programmer. I belong to a caste, which is sometimes referred to as systems analyst, sometimes kristalschikami. You know what it is? I'll explain when patient. I can not do without the specifics, but otherwise you will not be able to understand further.

We program odnokristallki chips, roughly speaking, is when the entire complex in a single chip. Program memory and data memory are separated and do not interact with each other. The program can not be run in RAM. The depth of the software stack is limited. Lots of what I can expect, there are eight levels deep, and I can not change the ultimate depth of the stack. Oh, you do not think that! I have the deep resources. 128 bytes of RAM already! It's all about everything. Variables there and that ... imagine it? With the program memory, too bad. Already eight kilobytes. And it is a snap to use. First you need to programmatically kerf desired memory bank, run it the right procedure, and on leaving she did not forget to come back where he was. Yes, we must bear in mind that within the bank I can only move and jump procedure calls, and referrals for conditions are possible only within a single page, ie 256 bytes.

That means, if I compare the two bytes and have to branch out, but if the label is not within 256 bytes, it is a letter to the village of my grandfather, the compiler only half the alert, they say, striding guy pants to watch out. And it's just the beginning! Berries I will now lay out, what would you have them fully able to enjoy. I have no command of subtraction. At all! Only add. Nothing of the luxury of a multiplication or division, I generally keep quiet, it is for lazy people. But I need to ensure that the decimal math. You penetrate slowly? Codes such toys lick so that you never dreamed of, especially if you have to solve the problem at the limit of the operational and program memory. Source code is not rewritten once. I'm just a little to solve the problem. I have to shove it in the damn crystal! Restriction variables, code size as a whole, the size of each procedure, and the number of calls. The slightest oversight ... pushed through the stack, and you threw out God knows where. And the compiler will not help. That he did not catch ... You think that's it? ;-) H-E is, my dear. My toy works in real-time ... This is where, in front of each tiny protsedurki my code needed to count and put down its execution time in milliseconds. My modules will not have to work more tightly fixed time, because I still have to scan kibordu and display, to keep up with sensors and provide control signals, and everything else should work without interfering skanningu or I missed pressing buttons or the display will be unpleasant flicker changing brightness. But that's not all! I have an interface.

Normal pisishny RS232C, the so-called Comporta. But if you think this is a separate chip, they say, put him bytes received from the buffer of bytes, then you are mistaken. Cost price. I'm doing it handles telipaya single bit port. Pens cliff chart starts, stops, and data. So:

If I dashed off a crucial task code, but it does not fit into memory - the problem is not solved. If, in addition, I created a greater number of variables, and they do not fit in the RAM - the problem is not solved.

If all of the Oka-docks, but the procedures are too long, destroyed realtime chart - the problem is not solved. If the procedures are too short, they are many, exhausted by the stack - the problem is not solved.

Any mediocre programmer, put it in such terms, shot on the second day. In general, in my opinion, the guys who work in this field, have nerves of steel and an indomitable will to win. We rarely associate with conventional programmers - we generally do not talk about. And not because we are snobs or the proud. Not necessarily. We find it hard to imagine programming under inexhaustible resources in high-level languages. Small screws? Buy the other, what's the problem? Few frames? Buy more, push the slot. Mega codes? And I'm with? This compiler is at fault. Buy a bigger car. It's like a different planet and I hope you will understand why.

It's like a beautiful white ocean cruiser in the vast expanse of ocean, swim wherever you want. And you try it in the Finnish archipelago steer. ;-) Or thread a needle at night. Moreover, the black thread.

Of course, we also have a set of crystals and choose them to develop a more meticulous than the groom bride and read the tea leaves and other improvised means, but will there be enough? But if the choice is made ... go back, usually no.

Well then. I brought you into the subject area, and I can continue my story.

Crystal did not like me at once. I knew immediately - tight fit. All the limit. Legal reserve 20% of the resource for possible mistakes - do not comply. However, other candidates were heavily redundant, and therefore expensive and irrational. Cost of all decided, I finally gave their consent and powerful and proud and handsome Intely Motorolly latest models left behind.

At first, everything went as it should. A couple of months of work and the crystals were stuffed code tests were normal, the boards are separated and worked slowly cranked gears and picking up speed, spin, powering a complicated and bulky machine production. And only occasionally ekalo my heart, because everything is very tightly! Three more than five percent of the resources are free. And it's damn little, take my word.

Although the work was done quite well, and I got their rightful compensation in the form of portions made fun of. Of course, a couple of places is quite adventurous, sometimes rather loose, but a few highlights happened.

And then ... Then it all started. Lacking a very important function of the device, which have missed directors. And even they, and the customer. It was he suddenly remembered that here, they say, guys, then there is such a small thing to be. Well, sheer nonsense, chesslovo, but without it in any way. Well, forget about it in the formulation, who does not happen? But it is very easy to add Well, compared to the rest of your bells and whistles? Again, thank God, do not forget the sensor. It's just a program!

These directors !!! Their karma is understood that it is necessary to the customer! Even if it is necessary to saw his skull and a sieve to sift through all of its contents!

But shouting will not help. And I sat down for two weeks at home, forbidden to disturb me. In the brain bred little siren svetoforchik. Beep! The flash of red! The first program the bank is exhausted! Repaking. Optimization of the pages and code memory banks. Beep! RAM is exhausted! Revision of operational procedures. This variable nafig. And without these you can do if there another way to go.

Beep! The failure of the stack! Straight face into the floor. Like this!? I was on the eighth level !?
Beep! Out of sight marks vnutristranichnyh transitions!
Beep! Breach of realtime procedures guzzle too much time!
Beep! Exhausted second memory bank!

And so many, many times. Painstakingly, byte by byte, I pushed the body of this
Cursed new function continually recompressing code layout of the pages, the banks, optimizing code size chart realtime, memory usage,
and that, and simply rewriting modules from scratch.
Maybe you think, eight kilograms of binary code is not enough? Ha! Instruction is one and two-byte. This is not a three-byte zaylog or even Intel's eighties. Sometimes I ran to me mate, as they say, and that, but I was a little disposed to schmooze "for life».

After a week and a half, I realized that things were bad. I have more than half a dozen solutions and has stood on the site. I knew each procedure and function of heart, and every byte in the face! It was all in vain. The picture froze ... She did not want to come to life!
I did not have a single byte. This shows all solutions. Total single byte!

He ran to the other, I dropped him all the time with options for making diagrams and plans of the bank and returned to his den. Sleep. In what may become - to sleep. We need a clear head. We need a new idea. I'm devastated. The next few days are not given anything. I assembled and disassembled code, stringing it as sparkling beads, and packed it into various shapes figures, trying to find a form in which all the pieces of the puzzle will develop into one without any gap and also no gap will be included in the prepared place for them.
Places lacking ... one byte code ... I kneaded like clay and I fabricate him anything, but ... one, only one byte!
Probably something like experiencing a musician to write a symphony, trying to find a single note that would make his work sound. Or an artist looking for the same, unique brushstroke that will enliven the picture. And without this, everything is dead, and all the work is only good in the trash ...

Once in a dream I got dressed and went out into the street. Underfoot disgusting screamed snow. All around was gray and somehow dull. I no longer needed any Dive Computers or print. The whole scheme was in me ... Or is beyond me? She pomigivala prosvirkami colored, having a form of bizarre and something even beautiful three-dimensional figures, or is some fishnet design?
Thin squeaked control markers timestamps hanging tightly to these strange crystals, some fascinating shapes. And it flew, somewhere moving and rotating, in which the country is changing the shape of the channel? Tube? It zipping close to all of its walls, as if on cue invisible navigator, at the right moment, it is unclear what turning on a whim, to the brink of not acting fast upon an obstruction. But what his captain or whoever? Navigator? It will not pass away! It can not go! But no! Miraculously, all the construction is somehow gracefully dodge, exactly at the right moment and silently slips ... no!
Majestically pass the obstacle ahead of the next ... And ... And suddenly, the edge openwork structures its tiny ledge clings. Squeal and roar! Burst and rumpled sparkling thread, all broken into a million pieces ...

Lord! The same stack! It bypasses the stack! So that's what it looks like!
When I run out of depth, it seems to cling with a bang and collapses, breaking their delicate designs ...

In a certain place I see a bench with some lonely old lady on it. I need to sit down, too ... is contrary saleswoman flowers, dancing in the cold. I do not like old women ... And this ... What kind of trouble, almost disgusting. Well she looked at me? Who is she? What is sitting here? Probably, nothing to do. That they are always crowded in the store, and because they do not have time to buy. And screaming in the bus, what would they have given way. Probably, watching these idiotic fashionable series, as they are there? Maria? And who was there crying?
What they understand !? Who can understand how much knowledge and work that is necessary to build it? How many sleepless nights have to spend? How to read? And every day, and not stupid novel about love and friendship?

Who are generally able to understand !? These latter-day dudes who call themselves programmers? Sloppy writing on foksprah, Clipper and Basic? And always ask the question: tell me what team I need to dial? And what a help to check out? And when the manual in Russian translate? And that their so-called "soft"? Great stotysyachevariantnye vechnozhivye warehouse and accounting? Imperishable creations. All for one person. If there are differences, because in rough and glyuchnosti code. Gluck sitting on a glitch and bug chases ...
That would make their codes of carving in stone, like the ancient masons, what would a little thinking about what they write ... Or those tehnokrysy? It is necessary, to write viruses that used to mean the people made famous muck! Ugh!

No. Not I want to sit on this bench, in the company of this ... Where am I going? Remembered. For another, I'm going. He can tell what? Damn bytes! What I got against the right? All are engaged in the business, why would the worst, what I mean? Talented people missing everywhere. Something much I see ...
pripeklo My friend opened the door and stares at me. "Well?" "Well what?»
& quot; Tell me only one & quot; I say grimly, going to the apartment. "Can you give me one byte? Just one. I'm willing to give it to you for anything. I bytes is not enough, you know? Well, I do not fit into the crystal! »

A friend for some time silent. "I watched your codes.»

"So what? Found anything? »

& quot; No. & Quot; he says quietly, and after a pause, he continued: "Immaculately associated lace. Not a single loop. Joints are not visible. Filigree. Boxed. Straight lepota. On each line, you can put a sign of quality. And carved in marble. And all uniformly nor seals no voids. Monolith, but flexible. But .. »

"That 'but'? .. Yes, you do not pull the cat's tail! Not Motel soul! And without you sick! "I explode.

"Most places I can not understand ... I do not know ... Just see how it is ... beautiful. Intangible somehow. Do not grasp the mind ... Like here now, but it flies away ... It's like a snowflake, when you try to take it in hand. Or sounds even misunderstood, but the perceived music .. »

"What nonsense are you talking about !? What the hell ?! snowflake What kind of music!? Can you help me or not !? "I was rattling. "You're my friend. Help me, huh? You just tell me where to fit this byte .. "I am looking forward to it. "For fresh, nezamyleny eyes. For one, only one operator, without which you can do everything! ALL! The problem is solved, you know? And I'm in the coffin of life ... forever .. "I whisper grabbed him by the sleeve," After all, there is a hell of a row, and I'm just a man, was wrong, missed, and did not notice ...? And I do not need anything. Hi fame nor praise. I only wish that it flew away b ... What used to let me go ... huh? Well, I have no more strength. Well, let's go, let you look more codes .. »
"Give up," he says. "Refuse? From what? "I do not understand. "Take another crystal».
"You are crazy!!?? How is it - another !! ?? Heaps of crap boards, assemblers, adjusters, salary details !? Is that a joke !! ?? Do you think it's on the computer, I want a couple of lines added and no one would notice !! ?? Zero cost, and adds even megabytes of code !? And the people? They do believe me! I told - "Yes! & Quot; I did agree, though, and saw that the headroom is nearly on zero! And they have already done it! Enclosures, metal, food. They are just waiting for the code! You know the consequences of the change of the crystal? You know how much it will cost the byte! One byte !! & quot;
I myself am deafened by their screams ...
"Fool." Slap the word falls to the ground like a bale of wet laundry. "Retreat! Forget it! We are the guys for three days, as the look of these codes. I collected all who could. I immediately realized that something was wrong with you. You have no mistakes! None. Moreover, we do not understand how you managed to do this stuff. »
My knees buckled and I sat down whether, or slumped in a chair.
I deep down I knew it. And then I began to speak ... It was a strange monologue ...
It was as if someone shouted, whispered and shouted again with my voice:

& Quot; ... I thought all this time. I realized that is not so important this project, as a measure of my responsibility. Well, he did not dare to, well, to remake it somehow all. Damn it! Not so this is important. Shame there ... My case is different. In me. You know, I have long been a slave who does, what will they say, justifying it earn money for the family. For a long time I was a mercenary. My services My programs are very expensive. You know, I do not presume for simple things. Let him get rich. I assume and work for themselves. Yes, I have long been spit on the money! They have little or no power over me! I should be more! And I carefully hide it. Because interesting challenge I am willing to do for free, and then another and priplachu for it. You yourself know what it is !? Well?! You're also not doing this for the money! There is only one thing I never told no one. When I'm doing - flying ... And do not lie to me, you do not know what it is! Everyone knows that! Just prefer not to remember, or not to believe! You know this, too! It's like a childhood dream. Remember? We soar high, high and rush, squealing with delight overflowing! A sweep us under the forests, mountains and the sea! Do you think it was a dream !? No! And I figured it out a long time! Just say afraid. Shame on you, fool! But now I do not care! It is our soul flies! For real! And the mind says that we are asleep. Do you understand? And why, when we grow up, we stop flying? A!? Why?! Why do we stop dreaming that dream? Do not you know? I know! Because our soul is heavier because the value of money, the conventions of the society seized power over us and our soul is no longer able to lift this burden! How! We're straight, flattens, what would be a carpet, on which will wipe his feet! Oh, what a good reason, such reasoned explanation as to why it was necessary to bend that way, and as we have for someone doing it.
We have time to yourself every day, convincing ourselves that we are living right. And I do not want to, I could no longer lie! You do not understand how it relates to this diabolical byte !? Everything is very simple. I have long I can fly! And the work is helping me in this. Yes Yes! The higher voltage spikes in the solution of their problems, I take off. No!

What is it?

Wow! What for?

It's me! ...


See also

New and interesting