This is so cool - they use the GPL!
on
The Indie Game Jam
·
· Score: 2, Interesting
The code is released under GPL, and is available on sourceforge for everyone to play with. I've always wanted to develop games, so looking at *actual* game code is really exciting. I know I can do that elsewhere too, but these are (supposed to be, anyway) top-of-the-line game developers doing their stuff. I'll be downloading the source for sure:-)
If you re-read my posting, you'll (hopefully) discover that I said nothing about them not *supporting* 3D games. But for the time that 3D gaming has reigned supreme (mid 90's and on), they have not been contenders for the throne in 3D gaming. Period. I will not claim that certain old cards like your Impression+ couldn't support some old games (that I admittedly never heard of), but that doesn't detract from what I meant (and hoped I wrote) - when the 3D card war began for real, they didn't fight. I've played my share of 3D games on Matrox hardware, sure - but the important FPS/$ ratio was not very good.
To have taken a long slumber from the 3D graphics scene is not possible for someone who was never there. Matrox always made killer 2D cards, but their 3D performance has *always* been - well - lacking (I would have written ridiculous, but I'm such a nice guy:-). Of late, even their 2D cards were overtaken by the recent batch of 3D cards due to the huge advances in memory bandwidth seen in the 3D cards. I've used several of their cards for office/development stuff, and they're good at that. G100, G200 and G450 cards come to mind, the latter being quite good at rendering video with mplayer on one head while I'm using the other for work.
Your solution sounds good at first, but it fails to take into account the many channels of sound that most movies have (Dolby THX, for instance - my almost-local cinema has LOTS of speakers to send THX sound through). So what you suggest would essentially limit the sound to ordinary stereo, with no positional audio or surround - hardly a good solution, since the cool sound is part of the reason to go to the movie theater in the first place.
I have not had that many problems with chattering kids, but cell-phones in movie theaters are PITA big-time.
Most large (and many not-so-large) software projects are routinely handled by cutting them into little pieces, that can be made by anyone without the full view of the project. This means that anyone trying to bypass this "measure" would simply have to cut the project to pieces and assign the pieces to non-suspecting programmers. Then they'd put it back together, and the latest spyware, spam-mailer or whatever would be ready to roll.
This is where it reminds me of that Monty Python piece about the killing joke - it was so deadly that it was distributed among many during its development, and most just had one word to work with:-O. Some poor bastard saw two words, and almost died from it:-)
Actually, it sounds like Ada has a mixture of Pascal syntax, Visual Basic (ugh!) parameter passing possibilities, easy threading as in Java, generic features as C++ and object-oriented features like - well - lots of languages. In fact, from your description it sounds a LOT like Borland Delphi on steroids:-)
Maybe I'm just pulling this out of my a**, but wasn't Ada also designed to make it less difficult to PROVE the correctness of programs? This would be the reason why the US DOD uses Ada a lot in mission-critical systems, and sometimes mandates the use of Ada.
I think the reason for it's lack of popularity is based on a historical lack of platform bindings, and - as you correctly state - bad compilers. Ada *IS* a clean and useful language, but when you can't *DO* much with it, it stops being a viable option.
"It would take a breakthrough in the technology of working with large biomolecules like DNA for molecular computers to beat their electronic counterparts". So while the article also mentions code-breaking as an obvious application for this... device..., electrons will be our computing friends for the foreseeable future.
If memory serves me correctly, the problem described in the REAL article is a 3-SAT, but algorithmics class was years back and beginning to fade from memory...
I distinctly remember playing Asteroids on my Atari 2600 almost constantly an entire summer. I was in my early teens back then, and my mum would bug me to try (in vain, of course:-) to make me leave the house. In the end I got chestpains from being hunched over my console for to long. That made me leave the house once in a while, but MAN was I hooked! Then suddenly I got bored to death with it (after playing 9 hours straight on the same game) and have never played it since.
The only other times I have had this game addiction were with Warlords (on my Amiga) and Civilization (on one of my first PC's), but that's another story.
[snip] It would not be unlike Microsoft to introduce an undocumented API which allows apps to behave differently in swap, but that's just speculation [snip]
I like conspiracy theories as much as anyone, but this one I think I can debunk. IE shares a lot of code with the rest of the GUI part of Windows (iexplore and explorer are intimately connected == uses many of the same DLLs), and explorer.exe has many parts that are used all over. Since these will get constant (at least regular) usage, their pages just doesn't get swapped out that much.
Another possible explanation is that Mozilla is written in C++ (it is, if memory serves my correctly). Often, OO programming splinters code into many methods with little code in each. Since most compilers place methods in order of appearance in the sourcefiles, calling only a few selected ones of these and having a relatively deep inheritance hierarchy (which further distances code parts), the actual code executed will be scattered all over the memory area. If different classes in the hierarchy are located in different cpp files (they often are for overview and simplicity), they are also linked into mostly random parts of the memory area. This all means that the 4Kb pages holding the methods called don't get many hits, so they are prone to being swapped out by the rather aggressive VMM in Windows.
It should be entirely possible to monitor the swap activity while doing a certain task using the standard monitoring system in WinNT/2000. Doing this on a standard installation after the initial loading of the application, and counting page faults all the way through a fixed sequence of web pages, once for IE and once for Mozilla, one could get a reasonable overview of whether page faulting is really to blame. Someone who cares enough should probably go do it;-)
Actually it's entirely possible that they make these mistakes ALL THE TIME and you only find out because the mistakes get left alone since they've gone home for the weekend. This would give the appearance of far more errors on weekends due to tampering on fridays, when in reality it's just because there's someone around to fix the errors they make on ordinary weekdays.
The way they did it, it seems like we are more anxious to talk about our physical bodies rather than our minds and esthetics.
If you think of it, most people are just like that...
He he, I wonder how the plague would look if the Taliban sent up the probe.
There would have been no woman on the plaque (IANAA==I Am No An American, but that's a "q", right? The "g" thing is a horrible disease if memory serves me correctly). And the guy would have a huge beard and an AK-47.
I think one huge advantage is privacy. The laser is very focused, and eavesdropping would be all but impossible. Although the signal does spread, gets scattered and refracted a lot in unfavorable weather conditions (other posts handle this very capably), it's still a very narrow signal. Compare this with broadcasting radio-signals, where everybody with a compatible receiver within range can eavesdrop. Sure there can (and should be) encryption on broadcast signals, but making the signal physically inaccessible is far superior protection IMHO.
It is correct that XML contains its own metadata, which is (sort of) wasteful in terms of transmission size. But that metadata is highly predictive and therefore compresses very well. This is exactly the reason why XML-specific compression works so well (as other posters pointed out).
You are right that valuetypes can (and indeed should be) used to transmit structures in an efficient manner. They do, however, still have to pad the structures to comply with the word boundary specified in IIOP. This padding is done automatically by the ORB to comply with the package standard specified in IIOP, but if you look at the specs you'll see a lot of padding with zeros to align at 4 (or is it 8?) byte boundaries. Transmitting lots of, say, 16 bit values this way is highly wasteful of resources. There are issues concerning arrays and sequences that remedy this, but these are not always preferable.
In some ways, you can think of XML as a textual (and somewhat verbose) marshaling of parameters and return values. Look at XIOP for a GIOP implementation that does exactly this.
I agree that the reasons for using XML in this particular project does not seem clear, but (in my experience) many projects tend to use XML even when not entirely sure that it's the best choice right now, just to open their system to future integration with third-party systems in an easy way. Most projects have a tendency to grow after being deployed, and "future-proofing" your app is a valid argument for using XML (IMHO, anyway).
What do you mean, efficient? I know a bit about IIOP (and its generalized cousin, GIOP), and I've always thought that it was sort of wasteful on bits. It requires extensive (and not very simple) padding and deals with little vs big endian issues. For its purpose (primarily transmitting remote method invocation parameters and return values in a platform-independant way) it's probably as good as binary gets while retaining platform independance, but that doesn't make it any good at compressing. The padding in IIOP makes an IIOP package less predictive (sp?) than most XML, usually leading to inferior compression performance (previous posters have already explained that a lot of communication hardware does the compression transparently). Besides, IIOP does not easily transfer deep hierarchies, and most certainly does not carry its own documentation (as most XML does by way of the tagging) - you need access to the IDL file at both ends, whereas you can do lots of stuff with XML without having real access to its DTD or Schema. In fact, one may not even exist...
There are no requirements in IIOP (or GIOP, for that matter) that packages be compressed. In fact, to ensure cross-ORB functionality as intended in CORBA 2.x+ (not sure of the version - I'm not in the office right now) you'd probably have to forego compression unless it is explicitly stated in the CORBA standard that it is mandatory to implement it (it might say that, but I don't recall reading about it).
If you need to tunnel your request over HTTP to circumvent firewall issues, I'd stick with the ones that are supported by HTTP/1.1 (gzip and deflate) for nice and easy operation. If you need no tunneling I'd go for XML-specific compression, and previous posters already demonstrated that they know more about the specific products avaliable for this purpose than I do, so I'll leave at that.
In my own personal experience, the exact number of hours I need to sleep can be considerably reduced with seemingly no ill effects. It went something like this: start out from your current level, say, 8 hours. Then sleep half an hour less for a month, no exceptions. No late sleeping on weekends, and go to bed at roughly the same time every night. After that month, your body will pretty much have compensated. Then take away another half hour for a month. Then another. Then...
Sooner or later you'll hit the barrier where your body can't compensate any more - don't continue beyond that point, because you'll just wear yourself out. My personal low is about 6 hours - YMMV.
BTW, if you REALLY want to know how little sleep is actually necessary, just have kids:-)
Winston Churchill did this without the aid of a Visor. His solution? Sit in a comfortable chair, hold your keys in one your hands and let that hand rest in such a way that when releasing the keys they'll fall to the floor. Then fall asleep - when you are about to enter deep sleep your muscles will loosen and your keys will hit the floor, making sufficient noice to wake you up. Simple, but very efficient:-)
Re:Where the hell is Microsoft's PR agency?
on
al Qaeda Hacks XP?
·
· Score: 1
That may be the Al-qeada plan to destroy America. make sure all MS products stop working after a certain date
Like, say, the release date? Face it - then al-qaeda has been doing this for a long time:-)
Let me guess - you run DOS and Win 3.11 apps too? Can't seem to find that MS Word 2000 thing for Win 3.11...
Seriously, does replacing an '89 Civic require you to learn an entirely new UI? Did the pedals move? Have they been replaced by a joystick? No speedometer or fuel-gauge anymore? Point is, of course it doesn't require you to learn any new UI - it's still a car. There are no fundamentally new things you can do with a '01 model that you couldn't do with a '89 model. Or vice versa.
Would you rather have backward compatibility through countless versions? This has been tried, you know - the x86 CPU architecture has it's roots in ancient CPU designs, and has generally been backward compatible for ages. It's been lifted up to x386 compatibility, sure, but that's still way old and a huge constraint on the available choices. Or what about the Windows APIs? I've coded a lot of 16- and 32-bit apps in Windows (yeah, I know - but it's my job), and you still see lots of outdated crap in the Win32 API, just to keep backward compatibility.
The point is - the cost to upgrade the system once in a while is (usually) money well spent on getting a system that's not getting way too old. It may cost you now, but you'll probably end up saving countless hours of frustration later. At least that's what my experience tells me...
From the article: IIS, which is used to run Web sites, is sold separately and comes bundled with Windows 2000 [...] and Windows NT.
Is sold seperately AND comes bundled? And here I was thinking that Yahoo! was just the name of the website, not a description of their writers. IIS is NOT sold seperately - period. BTW, what asshole would buy a product that comes bundled with the OS that the product requires? Duh...
The code is released under GPL, and is available on sourceforge for everyone to play with. I've always wanted to develop games, so looking at *actual* game code is really exciting. I know I can do that elsewhere too, but these are (supposed to be, anyway) top-of-the-line game developers doing their stuff. I'll be downloading the source for sure :-)
If you re-read my posting, you'll (hopefully) discover that I said nothing about them not *supporting* 3D games. But for the time that 3D gaming has reigned supreme (mid 90's and on), they have not been contenders for the throne in 3D gaming. Period. I will not claim that certain old cards like your Impression+ couldn't support some old games (that I admittedly never heard of), but that doesn't detract from what I meant (and hoped I wrote) - when the 3D card war began for real, they didn't fight. I've played my share of 3D games on Matrox hardware, sure - but the important FPS/$ ratio was not very good.
To have taken a long slumber from the 3D graphics scene is not possible for someone who was never there. Matrox always made killer 2D cards, but their 3D performance has *always* been - well - lacking (I would have written ridiculous, but I'm such a nice guy :-). Of late, even their 2D cards were overtaken by the recent batch of 3D cards due to the huge advances in memory bandwidth seen in the 3D cards.
I've used several of their cards for office/development stuff, and they're good at that. G100, G200 and G450 cards come to mind, the latter being quite good at rendering video with mplayer on one head while I'm using the other for work.
Your solution sounds good at first, but it fails to take into account the many channels of sound that most movies have (Dolby THX, for instance - my almost-local cinema has LOTS of speakers to send THX sound through). So what you suggest would essentially limit the sound to ordinary stereo, with no positional audio or surround - hardly a good solution, since the cool sound is part of the reason to go to the movie theater in the first place.
I have not had that many problems with chattering kids, but cell-phones in movie theaters are PITA big-time.
Most large (and many not-so-large) software projects are routinely handled by cutting them into little pieces, that can be made by anyone without the full view of the project. This means that anyone trying to bypass this "measure" would simply have to cut the project to pieces and assign the pieces to non-suspecting programmers. Then they'd put it back together, and the latest spyware, spam-mailer or whatever would be ready to roll.
This is where it reminds me of that Monty Python piece about the killing joke - it was so deadly that it was distributed among many during its development, and most just had one word to work with :-O. Some poor bastard saw two words, and almost died from it :-)
Actually, it sounds like Ada has a mixture of Pascal syntax, Visual Basic (ugh!) parameter passing possibilities, easy threading as in Java, generic features as C++ and object-oriented features like - well - lots of languages. In fact, from your description it sounds a LOT like Borland Delphi on steroids :-)
Maybe I'm just pulling this out of my a**, but wasn't Ada also designed to make it less difficult to PROVE the correctness of programs? This would be the reason why the US DOD uses Ada a lot in mission-critical systems, and sometimes mandates the use of Ada.
I think the reason for it's lack of popularity is based on a historical lack of platform bindings, and - as you correctly state - bad compilers. Ada *IS* a clean and useful language, but when you can't *DO* much with it, it stops being a viable option.
read the headline as "Heedless Windows 2000 Servers"?
The REAL article states that
... device ..., electrons will be our computing friends for the foreseeable future.
"It would take a breakthrough in the technology of working with large biomolecules like DNA for molecular computers to beat their electronic counterparts".
So while the article also mentions code-breaking as an obvious application for this
If memory serves me correctly, the problem described in the REAL article is a 3-SAT, but algorithmics class was years back and beginning to fade from memory...
Oh my God! The dead have risen from their graves and are supporting Microsoft!
I guess the only way back is through the (Bill) Gates of Hell...
I distinctly remember playing Asteroids on my Atari 2600 almost constantly an entire summer. I was in my early teens back then, and my mum would bug me to try (in vain, of course :-) to make me leave the house. In the end I got chestpains from being hunched over my console for to long. That made me leave the house once in a while, but MAN was I hooked! Then suddenly I got bored to death with it (after playing 9 hours straight on the same game) and have never played it since.
The only other times I have had this game addiction were with Warlords (on my Amiga) and Civilization (on one of my first PC's), but that's another story.
If they tried to etch me onto Pioneer, they would have had to launch a second probe to continue the image.
If it'd make them launch another probe in tandom, then I'd be all for it ;-)
[snip]
It would not be unlike Microsoft to introduce an undocumented API which allows apps to behave differently in swap, but that's just speculation
[snip]
I like conspiracy theories as much as anyone, but this one I think I can debunk. IE shares a lot of code with the rest of the GUI part of Windows (iexplore and explorer are intimately connected == uses many of the same DLLs), and explorer.exe has many parts that are used all over. Since these will get constant (at least regular) usage, their pages just doesn't get swapped out that much.
Another possible explanation is that Mozilla is written in C++ (it is, if memory serves my correctly). Often, OO programming splinters code into many methods with little code in each. Since most compilers place methods in order of appearance in the sourcefiles, calling only a few selected ones of these and having a relatively deep inheritance hierarchy (which further distances code parts), the actual code executed will be scattered all over the memory area. If different classes in the hierarchy are located in different cpp files (they often are for overview and simplicity), they are also linked into mostly random parts of the memory area.
This all means that the 4Kb pages holding the methods called don't get many hits, so they are prone to being swapped out by the rather aggressive VMM in Windows.
It should be entirely possible to monitor the swap activity while doing a certain task using the standard monitoring system in WinNT/2000. Doing this on a standard installation after the initial loading of the application, and counting page faults all the way through a fixed sequence of web pages, once for IE and once for Mozilla, one could get a reasonable overview of whether page faulting is really to blame. Someone who cares enough should probably go do it ;-)
Actually it's entirely possible that they make these mistakes ALL THE TIME and you only find out because the mistakes get left alone since they've gone home for the weekend. This would give the appearance of far more errors on weekends due to tampering on fridays, when in reality it's just because there's someone around to fix the errors they make on ordinary weekdays.
The way they did it, it seems like we are more anxious to talk about our physical bodies rather than our minds and esthetics.
If you think of it, most people are just like that...
He he, I wonder how the plague would look if the Taliban sent up the probe.
There would have been no woman on the plaque (IANAA==I Am No An American, but that's a "q", right? The "g" thing is a horrible disease if memory serves me correctly). And the guy would have a huge beard and an AK-47.
I think one huge advantage is privacy. The laser is very focused, and eavesdropping would be all but impossible. Although the signal does spread, gets scattered and refracted a lot in unfavorable weather conditions (other posts handle this very capably), it's still a very narrow signal. Compare this with broadcasting radio-signals, where everybody with a compatible receiver within range can eavesdrop. Sure there can (and should be) encryption on broadcast signals, but making the signal physically inaccessible is far superior protection IMHO.
It is correct that XML contains its own metadata, which is (sort of) wasteful in terms of transmission size. But that metadata is highly predictive and therefore compresses very well. This is exactly the reason why XML-specific compression works so well (as other posters pointed out).
You are right that valuetypes can (and indeed should be) used to transmit structures in an efficient manner. They do, however, still have to pad the structures to comply with the word boundary specified in IIOP. This padding is done automatically by the ORB to comply with the package standard specified in IIOP, but if you look at the specs you'll see a lot of padding with zeros to align at 4 (or is it 8?) byte boundaries. Transmitting lots of, say, 16 bit values this way is highly wasteful of resources. There are issues concerning arrays and sequences that remedy this, but these are not always preferable.
In some ways, you can think of XML as a textual (and somewhat verbose) marshaling of parameters and return values. Look at XIOP for a GIOP implementation that does exactly this.
I agree that the reasons for using XML in this particular project does not seem clear, but (in my experience) many projects tend to use XML even when not entirely sure that it's the best choice right now, just to open their system to future integration with third-party systems in an easy way. Most projects have a tendency to grow after being deployed, and "future-proofing" your app is a valid argument for using XML (IMHO, anyway).
What do you mean, efficient? I know a bit about IIOP (and its generalized cousin, GIOP), and I've always thought that it was sort of wasteful on bits. It requires extensive (and not very simple) padding and deals with little vs big endian issues. For its purpose (primarily transmitting remote method invocation parameters and return values in a platform-independant way) it's probably as good as binary gets while retaining platform independance, but that doesn't make it any good at compressing. The padding in IIOP makes an IIOP package less predictive (sp?) than most XML, usually leading to inferior compression performance (previous posters have already explained that a lot of communication hardware does the compression transparently). Besides, IIOP does not easily transfer deep hierarchies, and most certainly does not carry its own documentation (as most XML does by way of the tagging) - you need access to the IDL file at both ends, whereas you can do lots of stuff with XML without having real access to its DTD or Schema. In fact, one may not even exist...
There are no requirements in IIOP (or GIOP, for that matter) that packages be compressed. In fact, to ensure cross-ORB functionality as intended in CORBA 2.x+ (not sure of the version - I'm not in the office right now) you'd probably have to forego compression unless it is explicitly stated in the CORBA standard that it is mandatory to implement it (it might say that, but I don't recall reading about it).
If you need to tunnel your request over HTTP to circumvent firewall issues, I'd stick with the ones that are supported by HTTP/1.1 (gzip and deflate) for nice and easy operation. If you need no tunneling I'd go for XML-specific compression, and previous posters already demonstrated that they know more about the specific products avaliable for this purpose than I do, so I'll leave at that.
In my own personal experience, the exact number of hours I need to sleep can be considerably reduced with seemingly no ill effects. It went something like this: start out from your current level, say, 8 hours. Then sleep half an hour less for a month, no exceptions. No late sleeping on weekends, and go to bed at roughly the same time every night. After that month, your body will pretty much have compensated. Then take away another half hour for a month. Then another. Then ...
Sooner or later you'll hit the barrier where your body can't compensate any more - don't continue beyond that point, because you'll just wear yourself out. My personal low is about 6 hours - YMMV.
BTW, if you REALLY want to know how little sleep is actually necessary, just have kids :-)
Winston Churchill did this without the aid of a Visor. His solution? Sit in a comfortable chair, hold your keys in one your hands and let that hand rest in such a way that when releasing the keys they'll fall to the floor. Then fall asleep - when you are about to enter deep sleep your muscles will loosen and your keys will hit the floor, making sufficient noice to wake you up. Simple, but very efficient :-)
That may be the Al-qeada plan to destroy America. make sure all MS products stop working after a certain date
Like, say, the release date? Face it - then al-qaeda has been doing this for a long time :-)
Let me guess - you run DOS and Win 3.11 apps too? Can't seem to find that MS Word 2000 thing for Win 3.11...
Seriously, does replacing an '89 Civic require you to learn an entirely new UI? Did the pedals move? Have they been replaced by a joystick? No speedometer or fuel-gauge anymore? Point is, of course it doesn't require you to learn any new UI - it's still a car. There are no fundamentally new things you can do with a '01 model that you couldn't do with a '89 model. Or vice versa.
Little changes yes - entirely new UI, no.
Would you rather have backward compatibility through countless versions? This has been tried, you know - the x86 CPU architecture has it's roots in ancient CPU designs, and has generally been backward compatible for ages. It's been lifted up to x386 compatibility, sure, but that's still way old and a huge constraint on the available choices. Or what about the Windows APIs? I've coded a lot of 16- and 32-bit apps in Windows (yeah, I know - but it's my job), and you still see lots of outdated crap in the Win32 API, just to keep backward compatibility.
The point is - the cost to upgrade the system once in a while is (usually) money well spent on getting a system that's not getting way too old. It may cost you now, but you'll probably end up saving countless hours of frustration later. At least that's what my experience tells me...
So Microsoft has gone full circle. They started our with Microsoft Basic, and now they're peddling Visual Basic :-)
From the article: IIS, which is used to run Web sites, is sold separately and comes bundled with Windows 2000 [...] and Windows NT.
Is sold seperately AND comes bundled? And here I was thinking that Yahoo! was just the name of the website, not a description of their writers. IIS is NOT sold seperately - period. BTW, what asshole would buy a product that comes bundled with the OS that the product requires? Duh...