Tuesday, July 25, 2006
AMD is Buying ATI!
Oh, my gods! That's big news! It has been in the rumors for some time now, but it was just officially announced that AMD is going to acquire ATI in its entirety for some $5.5 billion! (The number is probably off, because it depends on the stock share value of the companies.)
I don't know what I should make out of this deal. I've always liked AMD far better than Intel (that's primarily because of the segmented memory model of x86, (Intel was responsible for that, not AMD) and my problems with it in the early years of my programming! You know what they say, old hatereds die hard!) But recently Intel has introduced its Core 2 Duo processors which just knocks all other processors out of the competition, performance- and power- and price-wise.
And I've never hidden the fact that I've always prefered nVidia GPUs. They're just more stylish! (For the record, I have an Athlon 64 3000+ on nForce3 250 with a GeForce 6600.) Of course with the merger, nVidia is going to receive the most heat.
Anyway, I guess my next system will be a dual core Intel CPU with a (maybe SLI) nVidia GPU. I'll have to wait and see.
Monday, July 24, 2006
IAUM CCC 3
As I have mentioned in passing before, we are holding the third "IAUM CCC" this year. Basically, it's a programming contest for individuals who live in Iran (or understand Farsi in general.)
The tournament consists of one online round, and two on-site rounds. For dates and info check out the official site.
The official website is at http://www.csc.ir/ccc3/, so be sure to check it out if at all interested. Also, you have to signup on KOPCS (the Kludgy Online Programming Contest System!) which is located here.
Thursday, July 20, 2006
Movie List
This is my movie list. I don't think I'll add to it in the coming month.
As I have said before, I have the whole "Friends" TV show, and the whole "Robotech" animation series. Plus a few dozen other films which are either on WORM media, or have sub-par quality.
Here it is:
Saturday, July 15, 2006
Winds of Change
OK, I admit. The title is not entirely accurate. Not only because the original thing is "Wind of Change" (singular,) but also because things are not changing, but things are happening.
I know, I haven't been writing anything interesting here for a while (have I ever?) but many things have been happening. Let me give you an overview.
My ADSL was out again. And it happened over the weekend so I just had two days without connectivity. It just came back on!
My phone was out for a month. I just checked and it was back too! Although it could have been back for a week.
My cellphone was disconnected because of a dispute between me and the telecom company. It's not resolved, but my service is renewed (because I paid the damn outrageous bill.)
We are holding another programming contest in IAUM (that's my university.) The contest is called "IAUM-CCC 3". It has three rounds. An Internet-based first round and two on-site rounds at the end of Mordad (second half of August.) Hope to see you then (I will see you then, because I already know every body who occasionally reads my babbling!)
The first part of my graphics programming tutorial is almost finished. It's awful! But I'll post it as soon as I can.
I'm thinking about writing a one-part tutorial about ripping a DVD and making a good-quality DivX file (XviD, rather) out of it. Is there any interest?
I've had several other (two actually) algorithm implementations (a GCD algorithm, and one for finding the nearest pair of points) lined up to post. Hadn't have the time to clean them up and organize my thoughts.
I have also written a cryptography library (a very simple, albeit useful one.) I brushed it up and made a manual for it. I will post more soon. The library is called "yCrypto" by the way.)
Well, that's it. For now. Over and out.
I know, I haven't been writing anything interesting here for a while (have I ever?) but many things have been happening. Let me give you an overview.
My ADSL was out again. And it happened over the weekend so I just had two days without connectivity. It just came back on!
My phone was out for a month. I just checked and it was back too! Although it could have been back for a week.
My cellphone was disconnected because of a dispute between me and the telecom company. It's not resolved, but my service is renewed (because I paid the damn outrageous bill.)
We are holding another programming contest in IAUM (that's my university.) The contest is called "IAUM-CCC 3". It has three rounds. An Internet-based first round and two on-site rounds at the end of Mordad (second half of August.) Hope to see you then (I will see you then, because I already know every body who occasionally reads my babbling!)
The first part of my graphics programming tutorial is almost finished. It's awful! But I'll post it as soon as I can.
I'm thinking about writing a one-part tutorial about ripping a DVD and making a good-quality DivX file (XviD, rather) out of it. Is there any interest?
I've had several other (two actually) algorithm implementations (a GCD algorithm, and one for finding the nearest pair of points) lined up to post. Hadn't have the time to clean them up and organize my thoughts.
I have also written a cryptography library (a very simple, albeit useful one.) I brushed it up and made a manual for it. I will post more soon. The library is called "yCrypto" by the way.)
Well, that's it. For now. Over and out.
Saturday, July 08, 2006
Congratulations, Ehsan!
Yesterday (Friday, Tir 16th, 1385) one of my best and oldest friends got married. The cruel fact of life was that the ceremony was in Tehran, and I couldn't be there, and between my own hectic life and his obviously busy schedule, I couldn't get in touch with him.
I know he doesn't read my weblog, and I know the chances for him to someday stumble upon this is infinitesimal, but here's to him:
Howdy old pal! I wish you and your wife a merry life. Sorry I didn't come and didn't call, and generally acted as if I didn't know you!
Congratulations again, Ehsan!
Sunday, July 02, 2006
IEEE 754
That's the floating point number format standard. What do you know about how floating point numbers are stored? (We are not talking about arithmetic.)
My experience with programmers is that many of them don't know anything about these formats. Sure, they know that the real numbers are stored as sign, fraction and exponent triplets, but nothing more. After all, who needs to know how computers actually work these days, right?
Well, if you think like that, I'm sorry for you. These line of thought may be practical (I hate that fact,) but it's not at all part of the hacker/geek spirit. Here's a brief description about how floating point numbers are stored, according to IEEE-754.
I thought there were 3 formats for floats, but as it turns out, there's four. They are 32, 43, 64 and 80 bits (who've ever heard of a 43-bit float? Honestly?) The most widely used form is the 64-bit, or "double precision" one.
This format (and all others) have a single sign bit (the MSB), with "0" for positive and "1" for negative numbers. Then comes an 11-bit exponent field. And after that, a 52-bit fraction part, for a total of 64 bits (it's 8 and 23 bits for the 32-bit single precision format.)
As you know, floating point numbers are stored as some for of scientific notation, with base 2. Basically, that means that the value is the result of the multiplication of a M by two to the power of E.
But that's not the whole story. First of all, you have to realize that every number you write in binary, has a '1' as it's leftmost bit. Think about it! Without zero-padding on the left, every number must have a non-zero digit at its left, and in radix-2, that means a 1. So we omit that 1 and save one bit. In our scientific notation, the M must be normalized to be greater or equal to 1, and less than 2.
Second of all, the E is not the exponent, but the exponent minus 1023. That is, if you want 2 as E, you have to set the exponent to be 1025. This way, you can accommodate negative values as well. You might wonder why the common two's-complement method why not used. Well, I don't know all the reasons, but one of them probably has been the side effect that using this method, and the field layout being what it is (first exponent, then fraction) you can compare normalized floating point values just as integers, using the bit pattern! (not considering the sign bit, of course.)
More precisely, the final number is calculated like this:
value = -1sign bit * 2exponent - 1023 * (1 + fraction / 252)
The above is used when 0 < exponent < style="font-style: italic;">normal number. There are also a few special case values that you need to know about as well:
- If exponent is 0 and fraction is 0, the value is ±0.0;
- If exponent is 0 but fraction is nonzero, the value is denormal and equal to ±F/21022+52;
- If exponent is 2047 and fraction is 0, the value is ±∞;
- If exponent is 2047 and fraction is nonzero, the value is ±NaN (Not a Number. There are 252-1 of these!)
Subscribe to:
Posts (Atom)