Top.Mail.Ru Yandeks.Metrika
Forum: "Grab";
Current archive: 2003.06.09;
Download: [xml.tar.bz2];


How stupid programmers? Find similar branches

Real   (2003-05-15 20:14) [0]

People tend to make mistakes. I propose to open a branch where everyone shares not their toughness, but stories about their glitches, when a seemingly simple task was solved for a long time (and what different thoughts came at that moment). Of course, you need to talk about those problems that were eventually resolved, followed by an attack of laughter.

Юрий Зотов   (2003-05-15 20:35) [1]

I caught this error 2 of the day

I wrote then on PL / 1. I’m citing the code on it because it contains the specifics of this particular language. But with comments to make it clear:

/ * that is, I is an integer variable of length 1 decimal. * /

D0 I = 1 TO 9 ...
/ * In Pascal, it will be like this: for I: = 1 to 9 do ... * /

Alles. The cycle is endless. While I localized the looping place (with some debugging tools!), While I stupidly looked and didn’t understand why this infection is cycling, 2 days passed.

After that there was really a fit of laughter. But first, abuse yourself and the very last words.

Zz_   (2003-05-15 20:44) [2]

Almost similar to Yuri Zotov © (15.05.03 20: 35)

for (unsigned short usTmp = 25; usTmp> = 0; usTmp -) {};

Fredericco   (2003-05-15 20:49) [3]

There was a place in a large section of code, something like this:
if b then DoSome1; DoSome2;
To conditionally execute 1 and 2, begin and end are needed. But I didn’t put them. I immediately make excuses: there was a lot of code, before this half a day I was looking for an error, time under 23, at work with 9-00, in short - I set foot. Moreover, for some reason, I got the idea that b = True (in fact, it was a False), and I did not understand what kind of thing DoSome1 wasn’t doing. Even before DoSome2 set ShowMessage - it worked, but DoSome1 did not want to. I fought for about an hour. When I realized that b = False, yes, and begin "I wouldn’t interrupt, I was offended by myself, pressed Power and went home.
Like this. :-)

panov   (2003-05-15 21:05) [4]

Recent example:
It took several days to resolve. Understood only after I was advised in the forum.

But the problem was that the window function did not redraw the window itself in NT, and everything was fine in W98.

A function of this kind:

function MyWndProc (Wnd: HWND; Mess: word; WParam: word; LParam: LongInt): LongInt; stdcall; begin case mess of WM_CREATE: Result: = 0; WM_DESTROY: begin PostQuitMessage (0); Result: = 0; end; else Result: = DefWIndowProc (Wnd, Mess, WParam, LParam); end; end;
For several days I tried to figure this out.
As a result, the problem was solved by replacing the types of procedure parameters ...

vuk   (2003-05-15 21:18) [5]

In our current project, the situation is widespread when forms implement interfaces. In one place we got a pair of global variables of the interface type, which at some moment are assigned a value, but they forgot to screw the zeroing. But I did not forget to fasten the compiler to the finalization ... We searched for a bug together for about an hour 3, because rained, sort of like, for an absolutely incomprehensible reason, and not every time. When they found the reaction was about the same as that of Yuri.

Ihor Osov'yak   (2003-05-15 21:23) [6]

2 Yuri Zotov © (15.05.03 20: 35)
2 Zz_ (15.05.03 20: 44)

SW is prettier :-) ...

About myself .. You won’t remember everything .. But the most "painful" was due to implicit recursion ..

Yes, I remembered .. More recently .. Cursed then for a long time ..

PostMessage (.., Super_Purer_CMD, ..

Suntechnic   (2003-05-15 21:23) [7]

> panov ©
From the same opera.

In Builder 4, try declaring a form constructor __fastcall TForm1 (TComponent * Owner); with the int parameter. Something like __fastcall TForm1 (TComponent * Owner, int index);
When creating an object of this type, the program simply sagged (as far as I remember, it went into recursion somewhere inside the VCL). But replacing the parameter with the long type solved the problem.
But I, most likely, didn’t even laugh, but cursed when, after several hours of research, it became clear what the problem was.

Zacho   (2003-05-15 22:17) [8]

A very interesting and useful topic :)

Probably one of my dumbest mistakes.
A small accounting program. For several hours, I’ve been trying to understand why when entering a new operation, it sets some kind of left date. And the same thing all the time. And more recently, everything worked fine. Many times he traversed and shoveled the entire code responsible for this. Then they began to visit thoughts of some rare and strange bug in the server, or a violation of the database structure. I did all kinds of database checks, backup / restore, etc. Useless.
And suddenly I remember that a couple of days ago for some kind of debugging I temporarily made a trigger forcibly setting this date. I forgot to delete it.
Laughing and swearing for a long time at the same time.

PS For those who did not work with the database with triggers. A trigger is a procedure that is triggered when an entry / change / deletion of a record in a table occurs.

RIMMER   (2003-05-15 23:45) [9]

It happened to me the other day ...
In the unit - 2 procedures, each of which reads approximately the same keys from two different ini-files. Do you finish it? They should read from different ones, but I set the string constant in both of them the same :)) I spent half a day trying to figure out why the second reader always reads the standard parameters, which I indicated to it ...

Style   (2003-05-16 01:42) [10]

Horror :)

prope $ 7A $ 64ure (TList: List);
TObject: = Object.Destroy;
Object.Add (TList);

I hope I don’t write this with a terrible hangover :)
Although everything happens with us :)))

Нуу   (2003-05-16 03:51) [11]

2 Yuri Zotov © (15.05.03 20: 35)
But honestly, I don’t understand?
Or I don’t understand "/ * that is, I is an integer variable of length 1 decimal. * /"?

АлексейК   (2003-05-16 05:16) [12]

I had 3 language on the computer - English, German and Russian. The result is that in one operator a pair of characters was typed in German. Naturally, they were no different from English, but the program did not want to compile. The error message did not in any way indicate this operator and did not cause any associations at all. I spent the whole evening, already beginning to think that the crackers have pens and that this can’t be, then I turned off the code sections and at the end I went to this particular operator, I died at 10 for another minute, then I dialed it again and everything began to work.

vidiv   (2003-05-16 05:30) [13]

I wrote it like this in the 6 dolphin:
const c1: array [boolean, boolean] of byte = (0,0,0,0);
--- They told me that it’s nuchno like this: const c1: array [boolean, boolean] of byte = ((0,0), (0,0)); ---
But the above inscription caused a bug in the dcc60 module, I even rearranged the dolphi, it didn’t work ...

This is troubles!

Думкин   (2003-05-16 05:42) [14]

I recently had when working with DirectDrow.
In one sword, he used BltFast with the flag DDBLTFAST_WAIT.
And then changed to Blt, but forgot to change the flag to DDBLT_WAIT.
The result was sad - on a huge number of computers everything went in a bundle, but not on one. Moreover, this computer was far away - I had to tinker with it to localize the problem, and even when it was localized - 15 looked stupidly for minutes and couldn’t get it at all - I found it only when I commented and started typing again.

ZeroDivide   (2003-05-16 08:32) [15]

> Nuu (16.05.03 03: 51)
> 2 Yuri Zotov © (15.05.03 20: 35)
> But I honestly do not understand?
I also did not understand what the variance of the values ​​of this variable is: /

I’ve been finished off like a standard checkbox in such procedures,
I had to use it like that because the radio group didn’t look beautiful:

Procedure TFm.Cb1clk (Sender: TObject);
cb2.Checked: = False;

Procedure TFm.Cb2clk (Sender: TObject);
cb1.Checked: = False;

But the most important thing is that I was dumb, even realizing the reason :)))

gek   (2003-05-16 09:28) [16]

I had a situation when 15 minutes stupidly looked at the copy function
and didn’t understand - why the compiler doesn’t see it.
It turned out that I entered the first letter in Russian.

pasha676   (2003-05-16 09:33) [17]

My trump error is trying to communicate with an external device, forgetting to turn on the power of the device :). Sometimes an eclipse lasts about ten minutes. The most interesting thing is that with good periodicity this thing is repeated :).

Vint   (2003-05-16 09:42) [18]

Yeah, after looking at the same section of code for several days and sort of trying everything and disconnecting everything, but the error turns out to be, it’s in sight that some kind of garbage breaks out not a laugh but a long mat: (((

And from the jokes that always got into my memory, at the first job I drunk 386 mother inserted and broke it ... wrote off :), and again, I drunk the cooler orb on 866 a 3 stump a year ago, and my hand slipped off, ripped off my screwdriver a layer of veins on the 8 metering pieces and broke off the angle at the prots ... but nothing soldered the motherboard, the percent worked but sometimes it was overloaded by itself, I then built up a corner with epoxy, tinted and replaced under warranty :))

ПИТОН   (2003-05-16 09:52) [19]

I've once compared instead +1 wrote *1.
So I tried to catch a week.

NickBat   (2003-05-16 10:38) [20]

Strength of habit.

Somehow in C ++ (or PHP, I don’t remember now) I wrote a comparison operator

if (s = 0) .....

For a long time I tried to understand why it is always true. The most interesting thing is that in the program text before this comparison, and after it was written correctly (==).

Cobalt   (2003-05-16 14:00) [21]

Now I wrote for 1С:
At first it was like this:
>> For Cycle Counter = 0 By Root.Number of Subordinates () - 1 Cycle
but cursed at going abroad. Then he did this:
>> For Cycle Counter = 1 By Root.Number of Subordinates () - 1 Cycle
(and the number of elements was 1 :))
I was surprised for a long time that it doesn’t go through the tree

Юрий Федоров   (2003-05-16 14:09) [22]

My worst case occurred when on a completely harmless line like Panel1.caption: = "" the program crashed.
I thought for two weeks, it turned out that in another module in StrCopy I forgot to allocate memory for the terminator (#0)

Marser   (2003-05-16 14:37) [23]

I won’t remember everything, there are serious glitches, but after a minute of hysteria everything is forgotten% -)

Style   (2003-05-16 14:51) [24]

And recently he randomly connected CLX to Delphi6;
In general, the distributor did the prog to the client. And there bam does not go .. Says come here to the library :(

In general, I did not understand everything. I don’t use anything, let's say the library .. It turns out that inside the code of my component I accidentally poked the Q key in front of forms, it turned out uses qforms;

And damn killed time !! It seems to be the components of the rule! In the code, everything is clean and damn fantastic :))

Dmk   (2003-05-16 14:59) [25]

To work with images, I created my own class. So it used a pointer to work with scan lines. And highlighted
pointer array length in the scan line. Highlighted always by the width of the image.
The class contained functions allowing you to rotate the image. Everything turned out fine, but miracles happened when scaling and drawing :) I was looking for a month. But then a sense of relief :)

han_malign   (2003-05-16 15:03) [26]

> NickBat © (16.05.03 10: 38)
> if (s = 0) .....
> For a long time I tried to understand why it is always true. ...
- maybe still a lie ???

clickmaker   (2003-05-16 15:18) [27]

while DS.Eof do begin

No comment.

han_malign   (2003-05-16 15:32) [28]

last, something like this ( for clarity)
Caption: = "Label1 deleting";
with Label1 do begin
Caption: = "Label1 deleted";

Игорь Шевченко   (2003-05-16 15:35) [29]

DS.Open ();
while not DS.Eof do begin
.... to the code screen ..
DS.Close ()

DS.Next was missed :)

Vlad Oshin   (2003-05-16 15:50) [30]

it was necessary to evaluate the percentage of unsuccessful attempts, compare with the predetermined

if (poor / all) <50 then
strange, it doesn't work ...

if round (poor / all) * 100 <0.5 then
strange, it doesn't work ...

Ihor Osov'yak   (2003-05-16 15:58) [31]

2 NickBat © (16.05.03 10: 38)

So, for this, first recommend the constant to write, and then the variable:

if (0 = s) {

The compiler would definitely not miss :-)

Threat - although he himself made such mistakes several times .. And then he searched for a long time ..

VAleksey   (2003-05-16 16:46) [32]

Literally 2 minutes ago realized.

qryTransCount.SQL.SaveToFile ("");
if not qryTransCount.Prepared then qryTransCount.Prepare;

about 30 min I could not understand why the program freezes.
Sin on the second line.
But the query optimized a little :-))

SPeller   (2003-05-16 16:48) [33]

I just found a mistake that I’ve been battling for exactly 24 hours since yesterday. I am writing a kind of sound engine to my own cursor, and when transferring function declarations in one of them I forgot to put stdcall; Just because of some kind of word, it took days, nerves and sleepless night :-))

VAleksey   (2003-05-16 16:48) [34]

> Igor Shevchenko © (16.05.03 15: 35)

> clickmaker © (16.05.03 15: 18)

Well this is generally a classic :-)

icWasya   (2003-05-16 18:39) [35]

from the last century

DO I = 1 . Xnumx MYPROC (I) 10 CONTINUE

everything compiles - and the MYPROC procedure is executed once with the 0 parameter.
what's the matter?
instead of a comma
it’s almost impossible to notice the difference on the printout
Fortran ignores spaces in the text (even inside the identifier)
and the variables are described implicitly - as a result, if you translate into pascal, then the correct code
for I: = 1 to 10 do MYPROC (I);
turned into
DOI: = 1.10; MYPROC (I);

Song   (2003-05-16 20:26) [36]

Var D1, D2: Double;

D1: = GetModulePrice; // 1,24
D2: = StrToFloat (Label21.Caption); // 1,24

IF D1 = D2 then ImageList1.Draw (... {green icon}} else
ImageList1.Draw (... {red icon});

For half an hour I could not finish why the red ikoka was drawn.

Snap   (2003-05-18 01:03) [37]

Simple code to refresh the page by timer. 3 For an hour I tried to understand why an error crawls out every time, it turned out I did not put the brackets in the condition :)))) but in pascal it works without the brackets :))))

In Delphi, I often forget to set the second parameter in reset or rewrite, and it turns out that each piece is 512 bytes :))))

DrPass   (2003-05-18 10:19) [38]

Yesterday I wrote a program (it was too lazy to type a frame, so I just copied generic.pas from turbo-Pascal sorts):
function WindowProc (Window: HWnd; Message, WParam: Word;
LParam: Longint): Longint;
And for almost an hour I tried to figure out why she hangs?

Malder   (2003-05-18 11:58) [39]

Yuri Zotov, sorry for the stupidity, but I also did not understand what it means
> I is an integer variable with a length of 1 decimal

Юрий Зотов   (2003-05-18 12:25) [40]

> Nuu (16.05.03 03: 51)
> ZeroDivide © (16.05.03 08: 32)
> Malder © (18.05.03 11: 58)

This is an integer variable with a range of 0..9. The compiler’s peculiarity is that the overflow control code is not built, but instead, the code is built that “discards” the leading decimal places. As a result, we get: if I = 9, then after adding another unit I will be equal to zero. Hence the loop (I can never exceed the upper limit of the cycle).

Not so miracles were possible in PL / 1. For example, almost any type of data there was easily converted to almost any other type of data. The thing is very powerful, but also very dangerous. It requires attention, accuracy and a thorough understanding of what you are doing and how it will be processed by the compiler. Otherwise, the consequences are unpredictable, and catching such errors is usually very difficult.

Malder   (2003-05-18 12:31) [41]

Yuri Zotov, then I did not understand

if I = 9, then after adding another unit I will be equal to zero. Hence the loop
D0 I = 1 TO 9 ...
/ * In Pascal, it will be like this: for I: = 1 to 9 do ... * /

Well, the cycle will be executed for the last time at i = 9 and that’s it. What kind of looping?

Юрий Зотов   (2003-05-18 12:37) [42]

> Malder © (18.05.03 12: 31)

So ... and what is a cycle in machine code built by the PL / 1 compiler?

1. The cycle is executed at I = 9.
2. I increases by 1 and it turns out I = 0.
3. Checked: I over 9? No. So, let's go first.

Malder   (2003-05-18 12:56) [43]

Oh, yes, I did. No wonder the branch is called :-)

kaif   (2003-05-18 14:08) [44]

2 Yuri Zotov © (18.05.03 12: 37)
Cool mistake!
My worst mistake (periodically admit):
with DataSet do
while not eof do
.... (If there is a lot of code, then I forget Next)
I always get confused in any places where you need to count the quantity either from scratch, or from one. For example, for i: = 5 to 15 it is clear that it will work 11 times, but in
s: = copy (s, pos (s2, s), Length (s) - pos (s2) + 1)
I will definitely make a mistake.
Another favorite mistake:
usually if I write instead with DataSet do
while not Eof do

Out of habit thinking that Eof DataSet meant.
The Delphi compiler in this case for some reason understands the Eof of the text of the form module and calmly compiles the project. And at startup, everything crashes.
Strange, but in SQL, I almost never make mistakes. This is probably why I like to reduce all accounting tasks to SQL.

Nick Denry   (2003-05-18 14:11) [45]

If just on the topic and judging by itself, then much!

kaif   (2003-05-18 14:17) [46]

I made the most terrible mistake in my life working as an electronic engineer. I was developing a large circuit and I wanted to make there a parity bit in a certain bus. Well, I inserted there, of course, a logic element summing modulo 2 all the bits of the bus. Then it turned out that at some point I needed to predict the value of this check bit before adding two numbers (and the circuit worked on very large frequencies), without thinking twice, I figured out all the options and decided that if the added number is even, then the check bit can be do not change, and if it is odd, change the bit to the opposite value. I was just let down by a pun. In Russian, parity and odd sound the same, although they are two different things. When the board was manufactured and launched, I searched for the error all day. I walked in circles, everything seems to work right, but it works right or wrong ... When I discovered the error, it seemed to me that I was going crazy ...

Юрий Зотов   (2003-05-18 15:46) [47]

> kaif © (18.05.03 14: 17)

That's what I had to face ...

In the 10-bit counter on the D-flip-flops during a time T, pulses of a given frequency (PWM) are received. At the end of the interval T (along the trailing edge of the "window"), a polling pulse is generated that overwrites the information from the counter into RAM (also 10 D-flip-flops with combined C-inputs). Then a reset pulse is generated, the counter (but not RAM) is reset and the cycle repeats. Everything was collected on the 133 series, the packing frequency is 512 kHz (which is very far from the maximum for this series), the real values ​​of T are such that overflow is excluded.

In general, the standard scheme of digital measurement of the time interval should work ironically. OK, we begin to look at the layout - and we see that in RAM all the time sits zero! I check the installation, I look at the passage of signals, their synchronization - everything is OK. The counter works fine, everything is fine with the RAM, the necessary pulses arrive where it is needed and on time - but in the RAM it is still zero! There is power, microcircuits are not broken, everything is OK at the information inputs of RAM, a polling pulse arrives at the clock inputs (and on time), permissible branching coefficients are not exceeded (i.e., there is no signal sub-gate, edges are not blocked) - but the RAM is still silent like a partisan in interrogation!

I fight 3 of the day, I break my head and so on and so on - I do not understand anything. Finally, he made an almost fantastic assumption that, due to the delay in the operation of the microcircuits (in the clock generation circuit), a second, false, polling pulse is formed at the trailing edge of the reset pulse (this circuit was built in such a way that theoretically this was possible, although the probability is practically the error was, one might say, zero). And this false impulse once again rewrites information from a counter that has already been reset to RAM - that's why zero sits there. And because of the inertia of the oscilloscope, I simply do not see these “jumps” in RAM.

I began to check. At first, these false impulses could not be caught. Well, there are none, that's all. Then he came up with some unique oscilloscope (almost the only one in the company), with some kind of furious speed and with a long afterglow of the tube. And caught it! Firs, they were some nanosecond pulses and even on such an oscilloscope I could barely see them at maximum brightness of the screen.

Well, then everything was already simple. One of the microcircuits had an inactive inverter, through it I launched one of the signals (i.e., I shifted the forming front by the duration of this signal) - and everything instantly worked.

Five minutes of work, literally 2 soldering. A few days were lost. But after that incident, I ALWAYS painted the time diagrams taking into account delays.

Malder   (2003-05-18 17:28) [48]

And why then such a code does not go in cycles in delphi

var i: byte;
for i: = 1 to 255 do

Ihor Osov'yak   (2003-05-18 18:03) [49]

2 Malder © (18.05.03 17: 28)

The compiler in pascal - it’s smart .. Put a breakpoint, after stop do Ctrl_Alt_C - and look ..

2 Yuri Zotov © (18.05.03 15: 46)

Impulse racing is power .. Not like bugs in cycles ... However, when a suspicion arose about this situation, a few peaks usually clung to the ground - and questions were usually resolved .. I mean, it's not that there were a few peaks forever, but in the fact that they ran into races again ... In especially clinical cases, I had to hook the D-trigger in the divider mode into two, and watch the signal already at its output ..

Yes, I also remembered, a little off topic - but the problem of quick wits for former electronic engineers - I was still a young specialist, but after this incident my colleagues were very respectful. A board came with installation, there were about a hundred 555 cases, of course, near each 0.1 at the roundabout .. One of these capacitors is KZ ..
Usually, in this case, all the capacitors were gradually evaporated, or the power was cut a little, almost using the "half division method" .. But then it dawned on me a bit and I debated this capacitor for two minutes after the first hit ..
How was this done? :-)

kaif   (2003-05-18 19:45) [50]

2 Ihor Osov "yak © (18.05.03 18: 03)
The only thing that so far comes to my mind is that I provided a good current from the source - a current stabilizer and with my finger I looked for the conder to be heated ... Although, probably, I did not guess? ...

2 Yuri Zotov © (18.05.03 15: 46)

I also pulled a couple of times on nanosecond pulses. Searched for things with D-trigger dividers like Ihor Osov "yak.

Ihor Osov'yak   (2003-05-18 19:55) [51]

2 kaif © (18.05.03 19: 45)

Almost guessed. Well, the current is not very large, but such that the millivolt 20-30 runs on the board (from low voltage to 1V through resistance, low voltage so that nothing burns out if the short circuit disappears) .. And then the differential. the oscilloscope observed a voltage drop. You can also ordinary) ..
And heating is problematic - the tracks could be heated faster than a short capacitor ..

kaif   (2003-05-18 20:01) [52]

Once my mother-in-law asked me to fix an electron microscope at work. I'll tell you, the thing is stressful ... Tesla. The guy over there has been dumb for 2 weeks - he couldn’t figure out the schemes. So he shows me these schemes - complete darkness. I thought that if this guy 2 can’t fix the week, maybe it’s not about the schemes ... At least I won’t be able to figure it out in an hour ...
I say, come on first, but why did you get the idea that the microscope is not working? He says, look, the arrow of the device shows that there is no vacuum, but there is a vacuum, since the box with the sample is not pulled out by hand. I pulled the box before turning on the pump and after. The species, indeed, is not pulled out. And there, besides the main pump, there is also diffusion, which is built on cunning principles, such as a spiral in a vacuum, which heats up and accelerates all rubbish through a special cone in order to receive a supervacuum. So I thought. I’m saying, man, are you sure that there is a necessary vacuum there? Maybe the device is right that there is no vacuum there? He is again for his own, like a box is not pulled out ... I say, hear, man, and if you have 0.05 atmospheres there, for example, so you think you can pull out the box?
The whole man suddenly turned blue and ran to the pump room. He came running and said that everything was in order. In the pump, it turns out, long ago the oil is over. Filled oil - it all worked.
Again a pun (vacuum - vacuum) ... i.e. what, in fact, to call a vacuum ...

kaif   (2003-05-18 20:07) [53]

In general, I’ll tell you there is no more exciting activity than catching a mouse in your room if it has settled there. Here is a true lesson for the detective mind ... I once 3 hours so the mouse calculated. You will calculate a new place where she is hiding, and she, a yurk - and to a new place, and one that does not even enter my head ... So I found 3 hours in 100 hours in a small room where it turns out the mouse can hide ... when all the places were exhausted, she simply began to rush about the room and I caught her. Let go with honors on the street ...

Malder   (2003-05-18 20:16) [54]

Yes, great. It turned out that the FOR cycle in Delphi is implemented in such a way that it will be executed once for any :-)

I did not suspect ...

kaif   (2003-05-18 20:22) [55]

2 Malder © (18.05.03 20: 16)
More precisely, not a cycle, but a test condition at least once, but it should be checked. In general, this can be verified.

Need to write
i: = 0;
for i: = 5 to 4 do
ShowMessage (IntToStr (i));

If 0 shows, then that is not so.
I think it will show i = 5.
Although I do not exclude that in such an explicit form, the optimizer can throw this part of the code.

Malder   (2003-05-18 20:28) [56]

No, 0 will show. And another warning will write that the cycle will never be executed, so the cycle is thrown out of the code (optimization does not play a role). Accordingly, the value of i will not be replaced by a normal value.
You also did not see the execution of the FOR loop in Delphi in assembler.

If the loop is not executed, then it throws it out, if it is executed at least once, then in assembler the commands in the loop are executed for the first time actually up to cmp

wnew   (2003-05-19 00:59) [57]

> Ihor Osov "yak © (18.05.03 19: 55)

It is a common practice for operators to find the damage by turning on the device through a current-limiting resistance, best of all through an ordinary incandescent bulb of suitable power, the fact is that the filament increases its resistance when heated, which further favors the safety of the electronic device under study. Moreover, this method does not often have to be used with binary electronics, because in most cases it is not multi-point, but in analog devices, especially in various power amplifiers, it is a very good tool that facilitates the search for damage. And yet, such a method, in my opinion, was not inevitable during the repair of the infamous switching power supplies for TVs such as 2USTST, 3USTST with a KU112 thyristor.
I didn’t want to say anything, just inspired. For 10 years I’m not doing my favorite thing, longing.

Юрий Зотов   (2003-05-19 02:47) [58]

wnew © (19.05.03 00: 59)

The barter is called ...

Digitman   (2003-05-19 11:38) [59]

Here was my "situation":

WinMe, MSOffice2000

a floppy disk with a * .doc file is inserted, an attempt to open / read the Word file "oh right from the floppy disk ..." dead "hang ... reboot ... everything! alles kaput!" booted ", which is called - blue dead screan c swearing at kernel32 and a certain VXD driver (I don’t remember which one, but judging by the name it supposedly has nothing to do with the hardware at all) ...
I remove this driver from the auto-start, reboot - the same "blue trouble", but with a link already to another VXD ...

Neither rollbacks to previous selfpoints, nor OS overlay regeneration, nor manual replacement of suspicious system files with obviously working from another machine, nor comparison of system driver files with correct date / size / version with files of obviously working result drivers does not give...

the only hope is the "safemode" mode is still working ...

I took a steam bath with the problem, I remember, for at least a week, in the evenings (the machine was home, not working), improving a couple of hours of time and conducting a bunch of (far from "blind", non-systemic) experiments ... the log is fine, everything is fine. files and all drivers - supposedly too, all settings - correspond ... well, it doesn’t work - and that’s it! (...

but for all that, the same OS installed in a different directory on the same disk from the same distribution kit (minimal, "clean" installation) works as expected, without question !!

“stupidity”, my own, was revealed when, in desperation, I decided to do it all. I need to reinstall the 32-bit IDE controller drivers, which caught my eye, when I went through all the OEM software that came with my time seller cars on nondescript floppy disks ..

because temporary forced blocking of the extended mode of working with disk devices, as it turned out, gave an interesting result - the system began to boot at least successfully! a rare case, but - immediately suggested that ..

I quickly updated the driver from a floppy disk and - lo and behold! - the system came to life !!
why I didn’t do it right away - I won’t know my mind) ...
although the existing IDE driver file was no different (externally, by its primary characteristics) from the one I installed from the floppy disk, it turned out that it was actually damaged: WinMe was in some incredible, completely unpredictable way " managed to "roll into one of the clusters occupied by the file, zeros !!

This week’s “stupidity" made me, of course, have fun, giggle at myself with all my heart ... but, by the way, it gave me reason to seriously think about the need / possibility / desire for further operation of such an OS, which at any unexpected moment, is the most insidious way can destroy everything and everything ... the final decision was made quickly enough - WinMe must die forever on this machine, and henceforth - no and in no way reincarnation!))

Vint   (2003-05-19 11:42) [60]

> wnew © (19.05.03 00: 59)

the same garbage ...

... I’m going to the market like iron ore, and there 555 ТМ all sorts of ЛА7 transistors 315, 312, КУ 202 transistors damn such nostalgia for childhood ...;)))

years 15 did not collect anything, right now, just repair, well, on the little things, but as I see it straight itchy hands :))

kaif   (2003-05-19 11:59) [61]

Somehow in the office of my partner, one user (accountant) patched up. It’s not clear to her, it doesn’t know how to do it, then show it to her. Every five minutes the computer hangs ... (mysticism already). I understand when a person has never seen a computer in his eyes, but in addition, she was also a rare fool ...
So, at some point, when she’s completely sick of it, she calls me, and the inscription on the screen:
"Not system disk or disk error"
Well, I'm generally inflated. I didn’t even look. I say - you have flown Vinc. TPA for such fools must fly.
Then after 2 hours comes up. Says: "And I repaired the computer!".
I already oh. I say: "How ???". And she says. She got a floppy disk - it worked.

Юрий Зотов   (2003-05-19 12:20) [62]

> kaif © (19.05.03 11: 59)

We had one user - just got the admin with her militant stupidity. Up to the point that he wrote her instructions - how to copy a file to a floppy disk. And she still did not succeed. Yes, she didn’t try too much, she believed that copying a file to a floppy disk was the administrator’s responsibility. Like, he gets paid for it. So I ran into him daily.

The most wonderful thing is that when she entered work in her resume, she wrote - "fluency in a computer." Circus.

Sha   (2003-05-19 12:27) [63]

2Vint © (19.05.03 11: 42)

wal   (2003-05-19 12:39) [64]

Just yesterday at home I depicted the following:
File subst.bat
subst z: d: \ temp

He sat and looked at the screen and running lines for half an hour. It came a very long time.

Darts   (2003-05-19 12:55) [65]

The secretary of 50 years worked at my last job. A nice, lovely woman, she owned Word and Lines brilliantly. Then she left work for school. I also quit my job, but in another company.
About 3 months have passed, the month of 2001 of the year has come. I urgently needed to make a project, and took a computer from school for a week (my friends helped and did not have one yet). A week passed and I gave away the computer. But lost the compact with Delphi 5.
I searched for a long time, rummaged everything at home, wondering where he could go in a mystical way.
I had to buy a new one, summer has passed, autumn has come. It seems to have been October. At school, the computer that I worked with earlier flashed. They called, and asked to see what was the matter. OK, I went to watch. In the process of research, I clicked on the tray button. Imagine my amazement when I saw my missing CD, which was abbreviated "Delphi". But finally I was finished off by the phrase uttered by the secretary, who was standing behind me, when he picked up the CD in his hands and pushed the tray back.
Here she is:
"- Put it back, please, otherwise Windows will not boot without it ..."

In short, you can’t imagine on purpose.

vidiv   (2003-05-19 13:02) [66]

var s: string;
for s: = 0 to length (s-1) do ....

NailMan   (2003-05-19 14:02) [67]

The bulk of the code was the following piece:
var p: pointer; f: integer;
GetMem (p, Sizeof (TD3DATTRIBUTERANGE) * MaterialCount);
FileRead (F, p, Sizeof (TD3DATTRIBUTERANGE) * MaterialCount);
FreeMem (p);

I tried to catch AV 4 hours, at night, after a day without sleep.
By the way, this error is what I have, what a familiar programmer has - a constant phenomenon.

Malder   (2003-05-19 15:17) [68]

File subst.bat
subst z: d: \ temp

He sat and looked at the screen and running lines for half an hour. It came a very long time

But it hasn’t come to me yet. Although I did not run. So what ?

Юрий Зотов   (2003-05-19 15:27) [69]

> Malder © (19.05.03 15: 17)

Duc ... run - see. :about)
There is infinite recursion.

Malder   (2003-05-19 15:53) [70]

I started it. All OK. Z drive appeared:

I do not understand...

Malder   (2003-05-19 15:54) [71]

Redid for subst z: / d

Disk Z: cleaned. Vrosha as it should be all

Юрий Федоров   (2003-05-19 15:59) [72]

>> Malder © (19.05.03 15: 54)
Not otherwise, the batch file is not so named as
wal © (19.05.03 12: 39)

Malder   (2003-05-19 16:30) [73]

Pancake :-))))))))))))))))

Mike B.   (2003-05-19 16:43) [74]

> Malder © (19.05.03 16: 30)
To this topic :)

Malder   (2003-05-19 17:36) [75]

tried :-)

AlexKniga   (2003-05-19 18:21) [76]

TIndex = (crX, crY, crZ);
j, p: TIndex;

For j: = Low (TIndex) to Pred (p) do

The project was transferred from TP to Delphi. Everything works in TP; in Delphi it loops when p = crX.
And all due to the fact that the internal representation of the Enumerated type in TP is a signed integer, while in Delphi it is unsigned.

Asteroid   (2003-05-20 02:21) [77]

Used the old OpenGL unit. It did not have the functions glGenTextures, glDeleteTextures, and some others. Accordingly, somewhere I found prototypes and prescribed them. The program was buggy in some, while in others everything was fine. I suspected that it was in the wrong prototypes. I found a more recent GL12 unit in which there were functions, but I forgot to delete the old prototypes ... the program, essno, was buggy. For two weeks I was thinking what was the matter - and only now I discovered that I had forgotten to remove them :)

kaif   (2003-05-20 03:12) [78]

Supertupism occurred to me today.
In connection with the introduction of a new form of payment order from June 1 to 2003, a month ago I was sent documents on how to make it. The documents of the Central Bank provided the sizes and numbers of the fields. The TIN and PPC fields were entered. Plus the mysterious fields below.
There was no indication of what to enter there in these documents ... As I understand it, do not need to enter anything therethat these fields are filled in by the bank itself. Redid the program PlatPor under the new format and put it on the site. After the demo version from 2 sites where it has been downloaded, more than 200 people receive a letter in which the client asks for such things ... I have my hair on end. Urgently starting to find out. It turns out that these fields need to be filled in and there is one more document from 3's of brands such as GTK, GNS and someone else. I almost had a heart attack yesterday ... Today, I redid it all day.
By the way, if anyone is interested in my new payment, especially if someone has downloaded the wrong option - I recommend (forgive me the moderators). You can download it on my website
Databases are not used. Everything is stored in text files.

vidiv   (2003-05-20 07:15) [79]

The eternal problem, because of which I almost buried my screw ... As soon as I tried to treat it (not only with my fist) ... it was read from any other machine, but mine wasn’t ... I stupid for half a day, I really it was a pity to format it ...
But in the end, it turned out to be just Boot from floppy. yo

Vlad Oshin   (2003-05-21 15:01) [80]

today I almost shot myself
everything works fine and suddenly crashes
what just did not think :)
but did not think in the place of reading from ini
corrected yesterday manually (so faster, damn it) - but not so little, only today I barely found it on F7, uff

Forgive me XX and their mother :)

Mike B.   (2003-05-21 15:18) [81]

I am writing an accounting program (more precisely, I’ll add it right in the course of use - it so happened). The function calculates the posting parameters (subconto values), should be called twice (for debit and credit) for several postings. I think for a short time I am writing one call, the rest is copy / paste / edit. Naturally, I forgot to edit a couple of places. Now, comrade, who is testing my calls, says in such an operation, such debit entries are all correct on credit nonsense. I looked at it myself, I quickly understand what’s the matter, I’m fixing it (I change the debit for credit in the right places).
Now stupidity actually begins: at this moment I am distracted and I leave the computer for 10 minutes, having returned, I remember that I need to finish with this issue I climb into the same module and now I change the credit for debit everywhere, including those already fixed places. I send it to test, after a while the bell rings: the picture is absolutely symmetrical to the previous one: on the loan correctly, on the debit of nonsense :) Here is such a circus

Pages: 1 2 3 whole branch

Forum: "Grab";
Current archive: 2003.06.09;
Download: [xml.tar.bz2];


Memory: 0.94 MB
Time: 0.078 c
2003-05-28 16:39
Property Editor with a modeless window

2003-05-23 06:50

2003-05-19 19:43
Paradox and users

2003-04-09 09:26
LAN chat room

2003-05-24 17:18
Transition from Delphi 5 to Delphi 7.

afrikaans albanian Arabic armenian azerbaijani basque belarusian bulgarian catalan Chinese (Simplified) Chinese (Traditional) croatian Czech danish Dutch English estonian filipino finnish French
galician georgian German greek haitian Creole hebrew Hindi hungarian icelandic Indonesian Irish italian Japanese Korean latvian lithuanian macedonian malay maltese norwegian
persian polish portuguese Romanian russian serbian slovak Slovenian Spanish swahili Swedish ภาษาไทย turkish Ukrainian urdu Tiếng Việt welsh yiddish bengali bosnian
cebuano Esperanto gujarati hausa hmong igbo javanese kannada Khmer lao latin maori marathi mongolian nepali punjabi somali tamil telugu yoruba
English French German Italian Portuguese Russian Spanish